diff --git a/.ds.baseline b/.ds.baseline
index ecc49e08b..b84a53351 100644
--- a/.ds.baseline
+++ b/.ds.baseline
@@ -133,7 +133,7 @@
"filename": ".github/workflows/checks.yml",
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"is_verified": false,
- "line_number": 61,
+ "line_number": 67,
"is_secret": false
},
{
@@ -141,7 +141,7 @@
"filename": ".github/workflows/checks.yml",
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"is_verified": false,
- "line_number": 95,
+ "line_number": 101,
"is_secret": false
}
],
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
index cc5a92deb..edd14c6ea 100644
--- a/.github/workflows/checks.yml
+++ b/.github/workflows/checks.yml
@@ -23,6 +23,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: "22.3.0"
+ - name: Install dependencies
+ run: npm install
- uses: ./.github/actions/setup-project
- uses: jwalton/gh-find-current-pr@v1
id: findPr
@@ -86,10 +92,10 @@ jobs:
- name: Clone API
uses: actions/checkout@v4
with:
- repository: GSA/notifications-api
- path: 'notifications-api'
+ repository: GSA/notifications-api
+ path: "notifications-api"
- name: Install API dependencies
- working-directory: 'notifications-api'
+ working-directory: "notifications-api"
run: make bootstrap
env:
DATABASE_URL: postgresql://user:password@localhost:5432/test_notification_api
@@ -99,7 +105,7 @@ jobs:
NOTIFY_E2E_TEST_PASSWORD: ${{ secrets.NOTIFY_E2E_TEST_PASSWORD }}
NOTIFY_ENVIRONMENT: development
- name: Run API server
- working-directory: 'notifications-api'
+ working-directory: "notifications-api"
run: make run-procfile &
env:
DATABASE_URL: postgresql://user:password@localhost:5432/test_notification_api
@@ -185,12 +191,12 @@ jobs:
- name: Run OWASP Baseline Scan
uses: zaproxy/action-baseline@v0.9.0
with:
- docker_name: 'ghcr.io/zaproxy/zaproxy:weekly'
- target: 'http://localhost:6012'
+ docker_name: "ghcr.io/zaproxy/zaproxy:weekly"
+ target: "http://localhost:6012"
fail_action: true
allow_issue_writing: false
- rules_file_name: 'zap.conf'
- cmd_options: '-I'
+ rules_file_name: "zap.conf"
+ cmd_options: "-I"
a11y-scan:
runs-on: ubuntu-20.04
diff --git a/.gitignore b/.gitignore
index 57a363cd0..d0a03e6f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -123,6 +123,8 @@ app/templates/vendor
secrets.auto.tfvars
terraform.tfstate
terraform.tfstate.backup
+requirements.txt
+terraform/sandbox/requirements.txt
# Playwright
playwright/
diff --git a/app/__init__.py b/app/__init__.py
index 76f3664cd..f32a98b6c 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -368,11 +368,23 @@ def make_session_permanent():
def create_beta_url(url):
- url_created = urlparse(url)
- url_list = list(url_created)
- url_list[1] = "beta.notify.gov"
- url_for_redirect = urlunparse(url_list)
- return url_for_redirect
+ url_created = None
+ try:
+ url_created = urlparse(url)
+ url_list = list(url_created)
+ url_list[1] = "beta.notify.gov"
+ url_for_redirect = urlunparse(url_list)
+ return url_for_redirect
+ except ValueError:
+ # This might be happening due to IPv6, see issue # 1395.
+ # If we see "'RequestContext' object has no attribute 'service'" in the logs
+ # we can search around that timestamp and find this output, hopefully.
+ # It may be sufficient to just catch and log, and prevent the stack trace from being in the logs
+ # but we need to confirm the root cause first.
+ current_app.logger.error(
+ f"create_beta_url orig_url: {url} \
+ url_created = {str(url_created)} url_for_redirect {str(url_for_redirect)}"
+ )
def redirect_notify_to_beta():
@@ -380,6 +392,7 @@ def redirect_notify_to_beta():
current_app.config["NOTIFY_ENVIRONMENT"] == "production"
and "beta.notify.gov" not in request.url
):
+ # TODO add debug here to trace what is going on with the URL for the 'RequestContext' error
url_to_beta = create_beta_url(request.url)
return redirect(url_to_beta, 302)
diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py
index 53bf069b6..4c70b85fd 100644
--- a/app/main/views/dashboard.py
+++ b/app/main/views/dashboard.py
@@ -105,6 +105,8 @@ def service_dashboard(service_id):
".view_job", service_id=current_service.id, job_id=job["id"]
),
"created_at": job["created_at"],
+ "processing_finished": job["processing_finished"],
+ "processing_started": job["processing_started"],
"notification_count": job["notification_count"],
"created_by": job["created_by"],
"notifications": aggregate_notifications_by_job.get(job["id"], []),
diff --git a/app/main/views/send.py b/app/main/views/send.py
index e3bc8ccb4..6f2817826 100644
--- a/app/main/views/send.py
+++ b/app/main/views/send.py
@@ -1053,8 +1053,13 @@ def get_email_reply_to_address_from_session():
def get_sms_sender_from_session():
- if session.get("sender_id"):
- return current_service.get_sms_sender(session["sender_id"])["sms_sender"]
+ sender_id = session.get("sender_id")
+ if sender_id:
+ sms_sender = current_service.get_sms_sender(session["sender_id"])["sms_sender"]
+ current_app.logger.info(f"SMS Sender ({sender_id}) #: {sms_sender}")
+ return sms_sender
+ else:
+ current_app.logger.error("No SMS Sender!!!!!!")
def get_spreadsheet_column_headings_from_template(template):
diff --git a/app/notify_client/__init__.py b/app/notify_client/__init__.py
index 9ee75e3cd..f78573090 100644
--- a/app/notify_client/__init__.py
+++ b/app/notify_client/__init__.py
@@ -65,6 +65,7 @@ class NotifyAdminAPIClient(BaseAPIClient):
or "user/email" in arg
or "/activate" in arg
or "/email-code" in arg
+ or "/verify/code" in arg
):
still_signing_in = True
@@ -79,7 +80,7 @@ class NotifyAdminAPIClient(BaseAPIClient):
# we are not full signed in yet
pass
elif not current_user or not current_user.is_active:
- current_app.logger.error(f"WHY FAILING {args}")
+ current_app.logger.error(f"Unauthorized URL #notify-compliance-46 {args}")
abort(403)
def post(self, *args, **kwargs):
diff --git a/app/templates/new/components/header.html b/app/templates/new/components/header.html
index 3e3d6fef8..18760c899 100644
--- a/app/templates/new/components/header.html
+++ b/app/templates/new/components/header.html
@@ -38,7 +38,7 @@
diff --git a/app/templates/partials/jobs/status.html b/app/templates/partials/jobs/status.html
index 99b5768e8..42cf4a4b7 100644
--- a/app/templates/partials/jobs/status.html
+++ b/app/templates/partials/jobs/status.html
@@ -37,7 +37,9 @@
Your text has been sent
- {{ job.template_name }} - {{ current_service.name }} was sent on {{ job.created_at|format_datetime_normal }} by {{ job.created_by.name }}
+ {{ job.template_name }} - {{ current_service.name }} was sent on {% if job.processing_started %}
+ {{ job.processing_started|format_datetime_table }} {% else %}
+ {{ job.created_at|format_datetime_table }} {% endif %} by {{ job.created_by.name }}
diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html
index dd0279629..aba7d2ac6 100644
--- a/app/templates/views/dashboard/dashboard.html
+++ b/app/templates/views/dashboard/dashboard.html
@@ -41,7 +41,7 @@
Template
- Time sent
+ Job status
|
Sender
@@ -69,7 +69,8 @@
{{ notification.template.name }}
|
- {{ job.created_at | format_datetime_table }}
+ {{ (job.processing_finished if job.processing_finished else job.processing_started
+ if job.processing_started else job.created_at)|format_datetime_table }}
|
{{ notification.created_by.name }}
diff --git a/gulpfile.js b/gulpfile.js
index 7c87a2b79..f80eee6e0 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -27,7 +27,6 @@ plugins.uglify = require('gulp-uglify');
const paths = {
src: 'app/assets/',
dist: 'app/static/',
- templates: 'app/templates/',
npm: 'node_modules/',
toolkit: 'node_modules/govuk_frontend_toolkit/',
govuk_frontend: 'node_modules/govuk-frontend/'
@@ -150,8 +149,6 @@ const images = () => {
paths.govuk_frontend + 'assets/images/**/*',
paths.src + 'images/**/*',
paths.src + 'img/**/*',
- paths.template + 'assets/images/**/*'
-
])
.pipe(dest(paths.dist + 'images/'))
};
diff --git a/package-lock.json b/package-lock.json
index 4a3baa176..a4e0e0165 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,11 +12,11 @@
"@uswds/uswds": "^3.8.1",
"cbor-js": "0.1.0",
"chart.js": "^4.4.3",
- "govuk_frontend_toolkit": "8.1.0",
+ "govuk_frontend_toolkit": "^9.0.1",
"govuk-frontend": "2.13.0",
"hogan": "1.0.2",
"jquery": "3.7.1",
- "morphdom": "2.7.2",
+ "morphdom": "^2.7.3",
"python": "^0.0.4",
"query-command-supported": "1.0.0",
"sass-embedded": "^1.77.5",
@@ -29,7 +29,7 @@
"@babel/preset-env": "7.24.7",
"@uswds/compile": "^1.1.0",
"better-npm-audit": "^3.7.3",
- "gulp": "^4.0.2",
+ "gulp": "^5.0.0",
"gulp-add-src": "^1.0.0",
"gulp-babel": "8.0.0",
"gulp-better-rollup": "4.0.1",
@@ -1897,6 +1897,29 @@
"node": ">=0.4"
}
},
+ "node_modules/@gulpjs/messages": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz",
+ "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@gulpjs/to-absolute-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz",
+ "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-negated-glob": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"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",
@@ -2851,6 +2874,431 @@
"sass-embedded": "1.69.5"
}
},
+ "node_modules/@uswds/compile/node_modules/ansi-colors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
+ "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-wrap": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/async-done": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz",
+ "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.2",
+ "process-nextick-args": "^2.0.0",
+ "stream-exhaust": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/async-settle": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
+ "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "async-done": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/bach": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
+ "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-filter": "^1.1.1",
+ "arr-flatten": "^1.0.1",
+ "arr-map": "^2.0.0",
+ "array-each": "^1.0.0",
+ "array-initial": "^1.0.0",
+ "array-last": "^1.1.1",
+ "async-done": "^1.2.2",
+ "async-settle": "^1.0.0",
+ "now-and-later": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/copy-props": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz",
+ "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "each-props": "^1.3.2",
+ "is-plain-object": "^5.0.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/each-props": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz",
+ "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.1",
+ "object.defaults": "^1.1.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/each-props/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/fast-levenshtein": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz",
+ "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@uswds/compile/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/findup-sync": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
+ "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/fined": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
+ "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expand-tilde": "^2.0.2",
+ "is-plain-object": "^2.0.3",
+ "object.defaults": "^1.1.0",
+ "object.pick": "^1.2.0",
+ "parse-filepath": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/fined/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/flagged-respawn": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
+ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@uswds/compile/node_modules/glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/glob-watcher": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz",
+ "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-done": "^1.2.0",
+ "chokidar": "^2.0.0",
+ "is-negated-glob": "^1.0.0",
+ "just-debounce": "^1.0.0",
+ "normalize-path": "^3.0.0",
+ "object.defaults": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/gulp": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz",
+ "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "glob-watcher": "^5.0.3",
+ "gulp-cli": "^2.2.0",
+ "undertaker": "^1.2.1",
+ "vinyl-fs": "^3.0.0"
+ },
+ "bin": {
+ "gulp": "bin/gulp.js"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/gulp-cli": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz",
+ "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-colors": "^1.0.1",
+ "archy": "^1.0.0",
+ "array-sort": "^1.0.0",
+ "color-support": "^1.1.3",
+ "concat-stream": "^1.6.0",
+ "copy-props": "^2.0.1",
+ "fancy-log": "^1.3.2",
+ "gulplog": "^1.0.0",
+ "interpret": "^1.4.0",
+ "isobject": "^3.0.1",
+ "liftoff": "^3.1.0",
+ "matchdep": "^2.0.0",
+ "mute-stdout": "^1.0.0",
+ "pretty-hrtime": "^1.0.0",
+ "replace-homedir": "^1.0.0",
+ "semver-greatest-satisfied-range": "^1.1.0",
+ "v8flags": "^3.2.0",
+ "yargs": "^7.1.0"
+ },
+ "bin": {
+ "gulp": "bin/gulp.js"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/@uswds/compile/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -2860,6 +3308,256 @@
"node": ">=8"
}
},
+ "node_modules/@uswds/compile/node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/is-descriptor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
+ "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/is-extendable/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,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/last-run": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
+ "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "default-resolution": "^2.0.0",
+ "es6-weak-map": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/liftoff": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
+ "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend": "^3.0.0",
+ "findup-sync": "^3.0.0",
+ "fined": "^1.0.1",
+ "flagged-respawn": "^1.0.0",
+ "is-plain-object": "^2.0.4",
+ "object.map": "^1.0.0",
+ "rechoir": "^0.6.2",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/liftoff/node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/micromatch/node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/micromatch/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/mute-stdout": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
+ "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dev": true,
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/replace-homedir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
+ "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "homedir-polyfill": "^1.0.1",
+ "is-absolute": "^1.0.0",
+ "remove-trailing-separator": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/@uswds/compile/node_modules/sass-embedded": {
"version": "1.69.5",
"resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.69.5.tgz",
@@ -3039,6 +3737,47 @@
"node": ">=14.0.0"
}
},
+ "node_modules/@uswds/compile/node_modules/semver-greatest-satisfied-range": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
+ "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sver-compat": "^1.5.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/@uswds/compile/node_modules/supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -3054,6 +3793,119 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
+ "node_modules/@uswds/compile/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/undertaker": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz",
+ "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-flatten": "^1.0.1",
+ "arr-map": "^2.0.0",
+ "bach": "^1.0.0",
+ "collection-map": "^1.0.0",
+ "es6-weak-map": "^2.0.1",
+ "fast-levenshtein": "^1.0.0",
+ "last-run": "^1.1.0",
+ "object.defaults": "^1.0.0",
+ "object.reduce": "^1.0.0",
+ "undertaker-registry": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/undertaker-registry": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
+ "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/v8flags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
+ "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "homedir-polyfill": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@uswds/compile/node_modules/yargs": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz",
+ "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^5.0.1"
+ }
+ },
+ "node_modules/@uswds/compile/node_modules/yargs-parser": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz",
+ "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^3.0.0",
+ "object.assign": "^4.1.0"
+ }
+ },
"node_modules/@uswds/uswds": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/@uswds/uswds/-/uswds-3.8.1.tgz",
@@ -3284,7 +4136,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
"integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/argparse": {
"version": "1.0.10",
@@ -3309,6 +4162,7 @@
"resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz",
"integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"make-iterator": "^1.0.0"
},
@@ -3330,6 +4184,7 @@
"resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz",
"integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"make-iterator": "^1.0.0"
},
@@ -3360,6 +4215,7 @@
"resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz",
"integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-slice": "^1.0.0",
"is-number": "^4.0.0"
@@ -3373,6 +4229,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -3382,6 +4239,7 @@
"resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz",
"integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^4.0.0"
},
@@ -3394,6 +4252,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -3403,6 +4262,7 @@
"resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
"integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -3412,6 +4272,7 @@
"resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz",
"integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"default-compare": "^1.0.0",
"get-value": "^2.0.6",
@@ -3421,6 +4282,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/array-sort/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -3435,6 +4306,7 @@
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
"integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -3458,30 +4330,44 @@
}
},
"node_modules/async-done": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz",
- "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz",
+ "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.2",
- "process-nextick-args": "^2.0.0",
- "stream-exhaust": "^1.0.1"
+ "end-of-stream": "^1.4.4",
+ "once": "^1.4.0",
+ "stream-exhaust": "^1.0.2"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
- "node_modules/async-settle": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
- "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==",
+ "node_modules/async-each": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz",
+ "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/async-settle": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz",
+ "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "async-done": "^1.2.2"
+ "async-done": "^2.0.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/asynckit": {
@@ -3539,6 +4425,13 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/b4a": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
+ "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/babel-jest": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
@@ -3756,23 +4649,31 @@
}
},
"node_modules/bach": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
- "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz",
+ "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "arr-filter": "^1.1.1",
- "arr-flatten": "^1.0.1",
- "arr-map": "^2.0.0",
- "array-each": "^1.0.0",
- "array-initial": "^1.0.0",
- "array-last": "^1.1.1",
- "async-done": "^1.2.2",
- "async-settle": "^1.0.0",
- "now-and-later": "^2.0.0"
+ "async-done": "^2.0.0",
+ "async-settle": "^2.0.0",
+ "now-and-later": "^3.0.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/bach/node_modules/now-and-later": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz",
+ "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
}
},
"node_modules/balanced-match": {
@@ -3781,11 +4682,20 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
+ "node_modules/bare-events": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz",
+ "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true
+ },
"node_modules/base": {
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -3804,6 +4714,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -3816,6 +4727,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
"integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-accessor-descriptor": "^1.0.1",
"is-data-descriptor": "^1.0.1"
@@ -3824,6 +4736,27 @@
"node": ">= 0.4"
}
},
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/beeper": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
@@ -3876,6 +4809,44 @@
"url": "https://bevry.me/fund"
}
},
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/bl": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz",
+ "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^6.0.3",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -3950,6 +4921,31 @@
"node-int64": "^0.4.0"
}
},
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
"node_modules/buffer-builder": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz",
@@ -3990,6 +4986,7 @@
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -4190,6 +5187,7 @@
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
@@ -4240,74 +5238,15 @@
}
},
"node_modules/cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==",
+ "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,
+ "license": "ISC",
"dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "node_modules/cliui/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cliui/node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
- "dev": true,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cliui/node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
- "dev": true,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cliui/node_modules/wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==",
- "dev": true,
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
"node_modules/clone": {
@@ -4362,6 +5301,7 @@
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4377,6 +5317,7 @@
"resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
"integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arr-map": "^2.0.2",
"for-own": "^1.0.0",
@@ -4391,6 +5332,7 @@
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
@@ -4449,6 +5391,7 @@
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
"integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
@@ -4467,6 +5410,7 @@
"engines": [
"node >= 0.8"
],
+ "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
@@ -4503,18 +5447,23 @@
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
"integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/copy-props": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz",
- "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz",
+ "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "each-props": "^1.3.2",
+ "each-props": "^3.0.0",
"is-plain-object": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
}
},
"node_modules/core-js-compat": {
@@ -4808,6 +5757,7 @@
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4855,6 +5805,7 @@
"resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
"integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kind-of": "^5.0.2"
},
@@ -4862,11 +5813,22 @@
"node": ">=0.10.0"
}
},
+ "node_modules/default-compare/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/default-resolution": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz",
"integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.10"
}
@@ -4910,6 +5872,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-descriptor": "^0.1.0"
},
@@ -4953,6 +5916,7 @@
"resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
"integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -5073,25 +6037,17 @@
}
},
"node_modules/each-props": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz",
- "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz",
+ "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-plain-object": "^2.0.1",
+ "is-plain-object": "^5.0.0",
"object.defaults": "^1.1.0"
- }
- },
- "node_modules/each-props/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 10.13.0"
}
},
"node_modules/electron-to-chromium": {
@@ -5405,6 +6361,7 @@
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
"integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^2.3.3",
"define-property": "^0.2.5",
@@ -5423,6 +6380,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -5431,13 +6389,15 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/expand-tilde": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
"integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"homedir-polyfill": "^1.0.1"
},
@@ -5487,6 +6447,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extendable": "^0.1.0"
},
@@ -5499,6 +6460,7 @@
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-unique": "^0.3.2",
"define-property": "^1.0.0",
@@ -5518,6 +6480,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -5530,6 +6493,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
"integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-accessor-descriptor": "^1.0.1",
"is-data-descriptor": "^1.0.1"
@@ -5538,12 +6502,35 @@
"node": ">= 0.4"
}
},
+ "node_modules/fancy-log": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
+ "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-gray": "^0.1.1",
+ "color-support": "^1.1.3",
+ "parse-node-version": "^1.0.0",
+ "time-stamp": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true
},
+ "node_modules/fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fast-glob": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
@@ -5567,10 +6554,24 @@
"dev": true
},
"node_modules/fast-levenshtein": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz",
- "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==",
- "dev": true
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz",
+ "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fastest-levenshtein": "^1.0.7"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.9.1"
+ }
},
"node_modules/fastq": {
"version": "1.15.0",
@@ -5590,6 +6591,14 @@
"bser": "2.1.1"
}
},
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -5616,224 +6625,46 @@
}
},
"node_modules/findup-sync": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
- "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz",
+ "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^3.0.4",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.4",
"resolve-dir": "^1.0.1"
},
"engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/findup-sync/node_modules/braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
- "dev": true,
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/is-descriptor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
- "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/findup-sync/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
- "dev": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
- "dev": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/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/findup-sync/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/findup-sync/node_modules/micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/micromatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dev": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync/node_modules/to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
- "dev": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "node": ">= 10.13.0"
}
},
"node_modules/fined": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
- "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz",
+ "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
+ "is-plain-object": "^5.0.0",
"object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
+ "object.pick": "^1.3.0",
+ "parse-filepath": "^1.0.2"
},
"engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/fined/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "node": ">= 10.13.0"
}
},
"node_modules/flagged-respawn": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
- "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz",
+ "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/flush-write-stream": {
@@ -5851,6 +6682,7 @@
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
"integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -5860,6 +6692,7 @@
"resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
"integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"for-in": "^1.0.1"
},
@@ -5899,6 +6732,7 @@
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"map-cache": "^0.2.2"
},
@@ -6036,6 +6870,7 @@
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
"integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -6116,212 +6951,17 @@
}
},
"node_modules/glob-watcher": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz",
- "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz",
+ "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "anymatch": "^2.0.0",
- "async-done": "^1.2.0",
- "chokidar": "^3.6.0",
- "is-negated-glob": "^1.0.0",
- "just-debounce": "^1.0.0",
- "normalize-path": "^3.0.0",
- "object.defaults": "^1.1.0"
+ "async-done": "^2.0.0",
+ "chokidar": "^3.5.3"
},
"engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/glob-watcher/node_modules/anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "dev": true,
- "dependencies": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- }
- },
- "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
- "dev": true,
- "dependencies": {
- "remove-trailing-separator": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "dev": true,
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
- "dev": true,
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/is-descriptor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
- "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
- "dev": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.1",
- "is-data-descriptor": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/glob-watcher/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
- "dev": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
- "dev": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/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/glob-watcher/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/glob-watcher/node_modules/micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/micromatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
- "dev": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-watcher/node_modules/to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
- "dev": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "node": ">= 10.13.0"
}
},
"node_modules/global-modules": {
@@ -6329,6 +6969,7 @@
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
"integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"global-prefix": "^1.0.1",
"is-windows": "^1.0.1",
@@ -6343,6 +6984,7 @@
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
"integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expand-tilde": "^2.0.2",
"homedir-polyfill": "^1.0.1",
@@ -6359,6 +7001,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -6420,9 +7063,10 @@
}
},
"node_modules/govuk_frontend_toolkit": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/govuk_frontend_toolkit/-/govuk_frontend_toolkit-8.1.0.tgz",
- "integrity": "sha512-KzuMy+xhH/QKJHYJYS4p6ZiPg1CWSd4TKJFBFzngpVnk2tbvEvfAw/yLoRmzgukd/9V4d9oDSA4dIXRFb7XvDA=="
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/govuk_frontend_toolkit/-/govuk_frontend_toolkit-9.0.1.tgz",
+ "integrity": "sha512-ItW0GZ4j2bgXrWg0m4Yj31gmb3HtDLWQvFMPt3ZV8YCNKviFsDvRnoerzz8PBwfK74lOPpHL+2FtYDG8XVrYpg==",
+ "license": "MIT"
},
"node_modules/govuk-frontend": {
"version": "2.13.0",
@@ -6439,21 +7083,22 @@
"dev": true
},
"node_modules/gulp": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz",
- "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz",
+ "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "glob-watcher": "^5.0.3",
- "gulp-cli": "^2.2.0",
- "undertaker": "^1.2.1",
- "vinyl-fs": "^3.0.0"
+ "glob-watcher": "^6.0.0",
+ "gulp-cli": "^3.0.0",
+ "undertaker": "^2.0.0",
+ "vinyl-fs": "^4.0.0"
},
"bin": {
"gulp": "bin/gulp.js"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=10.13.0"
}
},
"node_modules/gulp-add-src": {
@@ -6632,64 +7277,142 @@
}
},
"node_modules/gulp-cli": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz",
- "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz",
+ "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-colors": "^1.0.1",
- "archy": "^1.0.0",
- "array-sort": "^1.0.0",
- "color-support": "^1.1.3",
- "concat-stream": "^1.6.0",
- "copy-props": "^2.0.1",
- "fancy-log": "^1.3.2",
- "gulplog": "^1.0.0",
- "interpret": "^1.4.0",
- "isobject": "^3.0.1",
- "liftoff": "^3.1.0",
- "matchdep": "^2.0.0",
- "mute-stdout": "^1.0.0",
- "pretty-hrtime": "^1.0.0",
- "replace-homedir": "^1.0.0",
- "semver-greatest-satisfied-range": "^1.1.0",
- "v8flags": "^3.2.0",
- "yargs": "^7.1.0"
+ "@gulpjs/messages": "^1.1.0",
+ "chalk": "^4.1.2",
+ "copy-props": "^4.0.0",
+ "gulplog": "^2.2.0",
+ "interpret": "^3.1.1",
+ "liftoff": "^5.0.0",
+ "mute-stdout": "^2.0.0",
+ "replace-homedir": "^2.0.0",
+ "semver-greatest-satisfied-range": "^2.0.0",
+ "string-width": "^4.2.3",
+ "v8flags": "^4.0.0",
+ "yargs": "^16.2.0"
},
"bin": {
"gulp": "bin/gulp.js"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=10.13.0"
}
},
- "node_modules/gulp-cli/node_modules/ansi-colors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
- "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
+ "node_modules/gulp-cli/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-wrap": "^0.1.0"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/gulp-cli/node_modules/fancy-log": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
+ "node_modules/gulp-cli/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/gulp-cli/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/gulp-cli/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/gulp-cli/node_modules/glogg": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz",
+ "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sparkles": "^2.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/gulp-cli/node_modules/gulplog": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz",
+ "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "glogg": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/gulp-cli/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/gulp-cli/node_modules/sparkles": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz",
+ "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/gulp-cli/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/gulp-concat": {
@@ -7057,22 +7780,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/gulp-plumber/node_modules/fancy-log": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/gulp-plumber/node_modules/kind-of": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
@@ -7156,22 +7863,6 @@
"postcss": "^8.0.0"
}
},
- "node_modules/gulp-postcss/node_modules/fancy-log": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/gulp-prettyerror": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/gulp-prettyerror/-/gulp-prettyerror-2.0.0.tgz",
@@ -7281,22 +7972,6 @@
"node": ">=10.0"
}
},
- "node_modules/gulp-svgstore/node_modules/fancy-log": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/gulp-svgstore/node_modules/replace-ext": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
@@ -7399,6 +8074,163 @@
"node": ">=0.4"
}
},
+ "node_modules/gulp/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,
+ "license": "MIT"
+ },
+ "node_modules/gulp/node_modules/fs-mkdirp-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz",
+ "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.8",
+ "streamx": "^2.12.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/gulp/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,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/glob-stream": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz",
+ "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@gulpjs/to-absolute-glob": "^4.0.0",
+ "anymatch": "^3.1.3",
+ "fastq": "^1.13.0",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "is-negated-glob": "^1.0.0",
+ "normalize-path": "^3.0.0",
+ "streamx": "^2.12.5"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/lead": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz",
+ "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/now-and-later": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz",
+ "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/resolve-options": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz",
+ "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "value-or-function": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/to-through": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz",
+ "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "streamx": "^2.12.5"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/value-or-function": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz",
+ "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/vinyl-fs": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz",
+ "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fs-mkdirp-stream": "^2.0.1",
+ "glob-stream": "^8.0.0",
+ "graceful-fs": "^4.2.11",
+ "iconv-lite": "^0.6.3",
+ "is-valid-glob": "^1.0.0",
+ "lead": "^4.0.0",
+ "normalize-path": "3.0.0",
+ "resolve-options": "^2.0.0",
+ "stream-composer": "^1.0.2",
+ "streamx": "^2.14.0",
+ "to-through": "^3.0.0",
+ "value-or-function": "^4.0.0",
+ "vinyl": "^3.0.0",
+ "vinyl-sourcemap": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/gulp/node_modules/vinyl-sourcemap": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz",
+ "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "convert-source-map": "^2.0.0",
+ "graceful-fs": "^4.2.10",
+ "now-and-later": "^3.0.0",
+ "streamx": "^2.12.5",
+ "vinyl": "^3.0.0",
+ "vinyl-contents": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/gulplog": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
@@ -7494,6 +8326,7 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
"integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"get-value": "^2.0.6",
"has-values": "^1.0.0",
@@ -7508,6 +8341,7 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
"integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^3.0.0",
"kind-of": "^4.0.0"
@@ -7521,6 +8355,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -7533,18 +8368,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"dev": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
- "dev": true,
+ "license": "MIT",
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -7589,6 +8413,7 @@
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
"integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parse-passwd": "^1.0.0"
},
@@ -7600,7 +8425,8 @@
"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
+ "dev": true,
+ "license": "ISC"
},
"node_modules/html-encoding-sniffer": {
"version": "3.0.0",
@@ -7687,6 +8513,27 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "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"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
"node_modules/ignore": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
@@ -7758,15 +8605,17 @@
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">=10.13.0"
}
},
"node_modules/invert-kv": {
@@ -7774,6 +8623,7 @@
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
"integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -7805,6 +8655,7 @@
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz",
"integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"hasown": "^2.0.0"
},
@@ -7854,6 +8705,7 @@
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
"integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"hasown": "^2.0.0"
},
@@ -7866,6 +8718,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
"integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-accessor-descriptor": "^1.0.1",
"is-data-descriptor": "^1.0.1"
@@ -7879,6 +8732,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
"integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -7969,6 +8823,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10223,7 +11078,8 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz",
"integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/keyboardevent-key-polyfill": {
"version": "1.1.0",
@@ -10231,10 +11087,14 @@
"integrity": "sha512-NTDqo7XhzL1fqmUzYroiyK2qGua7sOMzLav35BfNA/mPUSCtw8pZghHFMTYR9JdnJ23IQz695FcaM6EE6bpbFQ=="
},
"node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
"engines": {
"node": ">=0.10.0"
}
@@ -10249,16 +11109,13 @@
}
},
"node_modules/last-run": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
- "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz",
+ "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==",
"dev": true,
- "dependencies": {
- "default-resolution": "^2.0.0",
- "es6-weak-map": "^2.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/lazystream": {
@@ -10278,6 +11135,7 @@
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
"integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"invert-kv": "^1.0.0"
},
@@ -10307,34 +11165,22 @@
}
},
"node_modules/liftoff": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
- "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz",
+ "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "extend": "^3.0.0",
- "findup-sync": "^3.0.0",
- "fined": "^1.0.1",
- "flagged-respawn": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.0",
- "rechoir": "^0.6.2",
- "resolve": "^1.1.7"
+ "extend": "^3.0.2",
+ "findup-sync": "^5.0.0",
+ "fined": "^2.0.0",
+ "flagged-respawn": "^2.0.0",
+ "is-plain-object": "^5.0.0",
+ "rechoir": "^0.8.0",
+ "resolve": "^1.20.0"
},
"engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/liftoff/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=10.13.0"
}
},
"node_modules/lilconfig": {
@@ -10357,6 +11203,7 @@
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
@@ -10373,6 +11220,7 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"error-ex": "^1.2.0"
},
@@ -10608,6 +11456,7 @@
"resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
"integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kind-of": "^6.0.2"
},
@@ -10620,6 +11469,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10638,6 +11488,7 @@
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
"integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10653,6 +11504,7 @@
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"object-visit": "^1.0.0"
},
@@ -10665,6 +11517,7 @@
"resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
"integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"findup-sync": "^2.0.0",
"micromatch": "^3.0.4",
@@ -10680,6 +11533,7 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arr-flatten": "^1.1.0",
"array-unique": "^0.3.2",
@@ -10701,6 +11555,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -10714,6 +11569,7 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
"integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"extend-shallow": "^2.0.1",
"is-number": "^3.0.0",
@@ -10729,6 +11585,7 @@
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
"integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"detect-file": "^1.0.0",
"is-glob": "^3.1.0",
@@ -10744,6 +11601,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
"integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-accessor-descriptor": "^1.0.1",
"is-data-descriptor": "^1.0.1"
@@ -10757,6 +11615,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -10769,6 +11628,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
"integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.0"
},
@@ -10781,6 +11641,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -10793,6 +11654,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -10805,6 +11667,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -10817,6 +11680,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -10826,6 +11690,7 @@
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -10850,6 +11715,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -10863,6 +11729,7 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
"integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
@@ -10981,6 +11848,7 @@
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -10994,6 +11862,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -11006,6 +11875,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -11026,9 +11896,10 @@
}
},
"node_modules/morphdom": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.2.tgz",
- "integrity": "sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg=="
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.3.tgz",
+ "integrity": "sha512-rvGK92GxSuPEZLY8D/JH07cG3BxyA+/F0Bxg32OoGAEFFhGWA3OqVpqPZlOgZTCR52clXrmz+z2pYSJ6gOig1w==",
+ "license": "MIT"
},
"node_modules/ms": {
"version": "2.1.2",
@@ -11036,14 +11907,23 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/mute-stdout": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
- "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz",
+ "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
+ "node_modules/nan": {
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz",
+ "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
@@ -11067,6 +11947,7 @@
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -11089,6 +11970,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -11102,6 +11984,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -11115,6 +11998,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
"integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-accessor-descriptor": "^1.0.1",
"is-data-descriptor": "^1.0.1"
@@ -11128,6 +12012,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -11140,6 +12025,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -11152,6 +12038,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11199,6 +12086,7 @@
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
@@ -11211,6 +12099,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -11274,6 +12163,7 @@
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11297,6 +12187,7 @@
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
@@ -11311,6 +12202,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -11332,6 +12224,7 @@
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.0"
},
@@ -11362,6 +12255,7 @@
"resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
"integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-each": "^1.0.1",
"array-slice": "^1.0.0",
@@ -11377,6 +12271,7 @@
"resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
"integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"for-own": "^1.0.0",
"make-iterator": "^1.0.0"
@@ -11390,6 +12285,7 @@
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -11402,6 +12298,7 @@
"resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz",
"integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"for-own": "^1.0.0",
"make-iterator": "^1.0.0"
@@ -11448,6 +12345,7 @@
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"lcid": "^1.0.0"
},
@@ -11526,6 +12424,7 @@
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
"integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-absolute": "^1.0.0",
"map-cache": "^0.2.0",
@@ -11568,6 +12467,7 @@
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11602,6 +12502,7 @@
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
"integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11650,6 +12551,7 @@
"resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
"integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-root-regex": "^0.1.0"
},
@@ -11662,6 +12564,7 @@
"resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
"integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11707,6 +12610,7 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11716,6 +12620,7 @@
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
"integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11725,6 +12630,7 @@
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pinkie": "^2.0.0"
},
@@ -11835,6 +12741,7 @@
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
"integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11949,6 +12856,7 @@
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
"integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -12066,6 +12974,13 @@
}
]
},
+ "node_modules/queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/rcfinder": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz",
@@ -12104,6 +13019,7 @@
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"load-json-file": "^1.0.0",
"normalize-package-data": "^2.3.2",
@@ -12118,6 +13034,7 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up": "^1.0.0",
"read-pkg": "^1.0.0"
@@ -12131,6 +13048,7 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-exists": "^2.0.0",
"pinkie-promise": "^2.0.0"
@@ -12144,6 +13062,7 @@
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pinkie-promise": "^2.0.0"
},
@@ -12156,6 +13075,7 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.2",
"pify": "^2.0.0",
@@ -12211,15 +13131,16 @@
}
},
"node_modules/rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "resolve": "^1.1.6"
+ "resolve": "^1.20.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/regenerate": {
@@ -12260,6 +13181,7 @@
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"extend-shallow": "^3.0.2",
"safe-regex": "^1.1.0"
@@ -12273,6 +13195,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -12286,6 +13209,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -12298,6 +13222,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -12400,6 +13325,7 @@
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
"integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -12409,6 +13335,7 @@
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10"
}
@@ -12424,17 +13351,13 @@
}
},
"node_modules/replace-homedir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
- "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz",
+ "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==",
"dev": true,
- "dependencies": {
- "homedir-polyfill": "^1.0.1",
- "is-absolute": "^1.0.0",
- "remove-trailing-separator": "^1.1.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/replacestream": {
@@ -12470,7 +13393,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/requires-port": {
"version": "1.0.0",
@@ -12512,6 +13436,7 @@
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
"integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expand-tilde": "^2.0.0",
"global-modules": "^1.0.0"
@@ -12551,7 +13476,8 @@
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
"deprecated": "https://github.com/lydell/resolve-url#deprecated",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/resolve.exports": {
"version": "2.0.2",
@@ -12567,6 +13493,7 @@
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12"
}
@@ -12721,6 +13648,7 @@
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ret": "~0.1.10"
}
@@ -13104,22 +14032,24 @@
}
},
"node_modules/semver-greatest-satisfied-range": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
- "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz",
+ "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "sver-compat": "^1.5.0"
+ "sver": "^1.8.3"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/set-function-length": {
"version": "1.2.2",
@@ -13143,6 +14073,7 @@
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -13158,6 +14089,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -13262,6 +14194,7 @@
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"base": "^0.11.1",
"debug": "^2.2.0",
@@ -13281,6 +14214,7 @@
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"define-property": "^1.0.0",
"isobject": "^3.0.0",
@@ -13295,6 +14229,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -13307,6 +14242,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
"integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-accessor-descriptor": "^1.0.1",
"is-data-descriptor": "^1.0.1"
@@ -13320,6 +14256,7 @@
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kind-of": "^3.2.0"
},
@@ -13332,6 +14269,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -13344,6 +14282,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -13352,13 +14291,15 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/snapdragon/node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -13369,6 +14310,7 @@
"integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
"deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
"dev": true,
+ "license": "MIT",
"dependencies": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0",
@@ -13447,7 +14389,8 @@
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
"integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
"deprecated": "See https://github.com/lydell/source-map-url#deprecated",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/sourcemap-codec": {
"version": "1.4.8",
@@ -13470,6 +14413,7 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -13479,13 +14423,15 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true
+ "dev": true,
+ "license": "CC-BY-3.0"
},
"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,
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -13495,7 +14441,8 @@
"version": "3.0.18",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
"integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
- "dev": true
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/split": {
"version": "0.2.10",
@@ -13514,6 +14461,7 @@
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"extend-shallow": "^3.0.0"
},
@@ -13526,6 +14474,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -13539,6 +14488,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -13551,6 +14501,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -13569,6 +14520,7 @@
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
"integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
}
@@ -13599,6 +14551,7 @@
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
"integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"define-property": "^0.2.5",
"object-copy": "^0.1.0"
@@ -13616,11 +14569,22 @@
"duplexer": "~0.1.1"
}
},
+ "node_modules/stream-composer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz",
+ "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "streamx": "^2.13.2"
+ }
+ },
"node_modules/stream-exhaust": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
"integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/stream-shift": {
"version": "1.0.3",
@@ -13641,6 +14605,21 @@
"node": ">=6.9.5"
}
},
+ "node_modules/streamx": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz",
+ "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-fifo": "^1.3.2",
+ "queue-tick": "^1.0.1",
+ "text-decoder": "^1.1.0"
+ },
+ "optionalDependencies": {
+ "bare-events": "^2.2.0"
+ }
+ },
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -13761,11 +14740,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/sver": {
+ "version": "1.8.4",
+ "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz",
+ "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==",
+ "dev": true,
+ "license": "MIT",
+ "optionalDependencies": {
+ "semver": "^6.3.0"
+ }
+ },
"node_modules/sver-compat": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
"integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"es6-iterator": "^2.0.1",
"es6-symbol": "^3.1.1"
@@ -13793,6 +14783,16 @@
"node": ">=10.0.0"
}
},
+ "node_modules/teex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz",
+ "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "streamx": "^2.12.5"
+ }
+ },
"node_modules/test-exclude": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -13807,6 +14807,16 @@
"node": ">=8"
}
},
+ "node_modules/text-decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz",
+ "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "b4a": "^1.6.4"
+ }
+ },
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -13926,6 +14936,7 @@
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -13938,6 +14949,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -13950,6 +14962,7 @@
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
@@ -13977,6 +14990,7 @@
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -13990,6 +15004,7 @@
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
"integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -14003,6 +15018,7 @@
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
"integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-accessor-descriptor": "^1.0.1",
"is-data-descriptor": "^1.0.1"
@@ -14016,6 +15032,7 @@
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -14028,6 +15045,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -14129,7 +15147,8 @@
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/uglify-js": {
"version": "3.17.4",
@@ -14153,33 +15172,29 @@
}
},
"node_modules/undertaker": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz",
- "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz",
+ "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "arr-flatten": "^1.0.1",
- "arr-map": "^2.0.0",
- "bach": "^1.0.0",
- "collection-map": "^1.0.0",
- "es6-weak-map": "^2.0.1",
- "fast-levenshtein": "^1.0.0",
- "last-run": "^1.1.0",
- "object.defaults": "^1.0.0",
- "object.reduce": "^1.0.0",
- "undertaker-registry": "^1.0.0"
+ "bach": "^2.0.1",
+ "fast-levenshtein": "^3.0.0",
+ "last-run": "^2.0.0",
+ "undertaker-registry": "^2.0.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=10.13.0"
}
},
"node_modules/undertaker-registry": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
- "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz",
+ "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/unicode-canonical-property-names-ecmascript": {
@@ -14227,6 +15242,7 @@
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -14261,6 +15277,7 @@
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
"integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-value": "^0.3.1",
"isobject": "^3.0.0"
@@ -14274,6 +15291,7 @@
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
"integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"get-value": "^2.0.3",
"has-values": "^0.1.4",
@@ -14288,6 +15306,7 @@
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"isarray": "1.0.0"
},
@@ -14300,10 +15319,22 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
"integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
"node_modules/update-browserslist-db": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
@@ -14348,7 +15379,8 @@
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
"integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
"deprecated": "Please see https://github.com/lydell/urix#deprecated",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/url-parse": {
"version": "1.5.10",
@@ -14365,6 +15397,7 @@
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -14396,15 +15429,13 @@
"dev": true
},
"node_modules/v8flags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
- "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz",
+ "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==",
"dev": true,
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.10"
+ "node": ">= 10.13.0"
}
},
"node_modules/validate-npm-package-license": {
@@ -14412,6 +15443,7 @@
"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,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
@@ -14431,6 +15463,37 @@
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
},
+ "node_modules/vinyl": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz",
+ "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone": "^2.1.2",
+ "clone-stats": "^1.0.0",
+ "remove-trailing-separator": "^1.1.0",
+ "replace-ext": "^2.0.0",
+ "teex": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/vinyl-contents": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz",
+ "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bl": "^5.0.0",
+ "vinyl": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/vinyl-fs": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
@@ -14665,7 +15728,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
"integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
@@ -14822,24 +15886,22 @@
}
},
"node_modules/yargs": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz",
- "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^5.0.1"
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/yargs-parser": {
@@ -14851,82 +15913,14 @@
"node": ">=12"
}
},
- "node_modules/yargs/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/yargs/node_modules/camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/yargs/node_modules/get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
- "dev": true
- },
- "node_modules/yargs/node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
- "dev": true,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/yargs/node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
- "dev": true,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/yargs/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/yargs/node_modules/y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
- "dev": true
- },
"node_modules/yargs/node_modules/yargs-parser": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz",
- "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==",
+ "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,
- "dependencies": {
- "camelcase": "^3.0.0",
- "object.assign": "^4.1.0"
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/yocto-queue": {
diff --git a/package.json b/package.json
index a078ab896..82c89301d 100644
--- a/package.json
+++ b/package.json
@@ -28,11 +28,11 @@
"@uswds/uswds": "^3.8.1",
"cbor-js": "0.1.0",
"chart.js": "^4.4.3",
- "govuk_frontend_toolkit": "8.1.0",
+ "govuk_frontend_toolkit": "^9.0.1",
"govuk-frontend": "2.13.0",
"hogan": "1.0.2",
"jquery": "3.7.1",
- "morphdom": "2.7.2",
+ "morphdom": "^2.7.3",
"python": "^0.0.4",
"query-command-supported": "1.0.0",
"sass-embedded": "^1.77.5",
@@ -45,7 +45,7 @@
"@babel/preset-env": "7.24.7",
"@uswds/compile": "^1.1.0",
"better-npm-audit": "^3.7.3",
- "gulp": "^4.0.2",
+ "gulp": "^5.0.0",
"gulp-add-src": "^1.0.0",
"gulp-babel": "8.0.0",
"gulp-better-rollup": "4.0.1",
diff --git a/poetry.lock b/poetry.lock
index 879c2a436..6c80bb40f 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -182,17 +182,17 @@ files = [
[[package]]
name = "boto3"
-version = "1.34.144"
+version = "1.34.146"
description = "The AWS SDK for Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "boto3-1.34.144-py3-none-any.whl", hash = "sha256:b8433d481d50b68a0162c0379c0dd4aabfc3d1ad901800beb5b87815997511c1"},
- {file = "boto3-1.34.144.tar.gz", hash = "sha256:2f3e88b10b8fcc5f6100a9d74cd28230edc9d4fa226d99dd40a3ab38ac213673"},
+ {file = "boto3-1.34.146-py3-none-any.whl", hash = "sha256:7ec568fb19bce82a70be51f08fddac1ef927ca3fb0896cbb34303a012ba228d8"},
+ {file = "boto3-1.34.146.tar.gz", hash = "sha256:5686fe2a6d1aa1de8a88e9589cdcc33361640d3d7a13da718a30717248886124"},
]
[package.dependencies]
-botocore = ">=1.34.144,<1.35.0"
+botocore = ">=1.34.146,<1.35.0"
jmespath = ">=0.7.1,<2.0.0"
s3transfer = ">=0.10.0,<0.11.0"
@@ -201,13 +201,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
[[package]]
name = "botocore"
-version = "1.34.144"
+version = "1.34.146"
description = "Low-level, data-driven core of boto 3."
optional = false
python-versions = ">=3.8"
files = [
- {file = "botocore-1.34.144-py3-none-any.whl", hash = "sha256:a2cf26e1bf10d5917a2285e50257bc44e94a1d16574f282f3274f7a5d8d1f08b"},
- {file = "botocore-1.34.144.tar.gz", hash = "sha256:4215db28d25309d59c99507f1f77df9089e5bebbad35f6e19c7c44ec5383a3e8"},
+ {file = "botocore-1.34.146-py3-none-any.whl", hash = "sha256:3fd4782362bd29c192704ebf859c5c8c5189ad05719e391eefe23088434427ae"},
+ {file = "botocore-1.34.146.tar.gz", hash = "sha256:849cb8e54e042443aeabcd7822b5f2b76cb5cfe33fe3a71f91c7c069748a869c"},
]
[package.dependencies]
@@ -817,13 +817,13 @@ pycodestyle = "*"
[[package]]
name = "flake8-pytest-style"
-version = "1.7.2"
+version = "2.0.0"
description = "A flake8 plugin checking common style issues or inconsistencies with pytest-based tests."
optional = false
-python-versions = ">=3.7.2,<4.0.0"
+python-versions = "<4.0.0,>=3.8.1"
files = [
- {file = "flake8_pytest_style-1.7.2-py3-none-any.whl", hash = "sha256:f5d2aa3219163a052dd92226589d45fab8ea027a3269922f0c4029f548ea5cd1"},
- {file = "flake8_pytest_style-1.7.2.tar.gz", hash = "sha256:b924197c99b951315949920b0e5547f34900b1844348432e67a44ab191582109"},
+ {file = "flake8_pytest_style-2.0.0-py3-none-any.whl", hash = "sha256:abcb9f56f277954014b749e5a0937fae215be01a21852e9d05e7600c3de6aae5"},
+ {file = "flake8_pytest_style-2.0.0.tar.gz", hash = "sha256:919c328cacd4bc4f873ea61ab4db0d8f2c32e0db09a3c73ab46b1de497556464"},
]
[package.dependencies]
@@ -1344,9 +1344,13 @@ files = [
{file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"},
{file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"},
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"},
+ {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"},
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"},
+ {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"},
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"},
+ {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"},
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"},
+ {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"},
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"},
{file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"},
{file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"},
@@ -1681,7 +1685,6 @@ files = [
{file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"},
{file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"},
{file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"},
- {file = "msgpack-1.0.8-py3-none-any.whl", hash = "sha256:24f727df1e20b9876fa6e95f840a2a2651e34c0ad147676356f4bf5fbb0206ca"},
{file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"},
]
@@ -2290,20 +2293,20 @@ certifi = "*"
[[package]]
name = "pytest"
-version = "8.2.2"
+version = "8.3.1"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"},
- {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"},
+ {file = "pytest-8.3.1-py3-none-any.whl", hash = "sha256:e9600ccf4f563976e2c99fa02c7624ab938296551f280835ee6516df8bc4ae8c"},
+ {file = "pytest-8.3.1.tar.gz", hash = "sha256:7e8e5c5abd6e93cb1cc151f23e57adc31fcf8cfd2a3ff2da63e23f732de35db6"},
]
[package.dependencies]
colorama = {version = "*", markers = "sys_platform == \"win32\""}
iniconfig = "*"
packaging = "*"
-pluggy = ">=1.5,<2.0"
+pluggy = ">=1.5,<2"
[package.extras]
dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
@@ -2528,6 +2531,7 @@ files = [
{file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"},
{file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"},
{file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"},
+ {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"},
{file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"},
{file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"},
{file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"},
@@ -3107,4 +3111,4 @@ files = [
[metadata]
lock-version = "2.0"
python-versions = "^3.12.2"
-content-hash = "5e401543af85348b3df85fb128689c492ed4eedd18d705eca209738e7e82d2b9"
+content-hash = "88de80e0f647245eb3c773a9400631523199747c804184d2226babcbae2e05d9"
diff --git a/pyproject.toml b/pyproject.toml
index 596f06ac7..a405c6be9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -39,8 +39,8 @@ wtforms = "~=3.1"
markdown = "^3.5.2"
async-timeout = "^4.0.3"
bleach = "^6.1.0"
-boto3 = "^1.34.144"
-botocore = "^1.34.144"
+boto3 = "^1.34.146"
+botocore = "^1.34.146"
cachetools = "^5.4.0"
cffi = "^1.16.0"
cryptography = "^42.0.8"
@@ -80,13 +80,13 @@ freezegun = "^1.5.1"
flake8 = "^7.1.0"
flake8-bugbear = "^24.1.17"
flake8-print = "^5.0.0"
-flake8-pytest-style = "^1.7.2"
+flake8-pytest-style = "^2.0.0"
isort = "^5.13.2"
jinja2-cli = {version = "==0.8.2", extras = ["yaml"]}
moto = "*"
pip-audit = "*"
pre-commit = "^3.7.1"
-pytest = "^8.2.2"
+pytest = "^8.3.1"
pytest-env = "^1.1.3"
pytest-mock = "^3.14.0"
pytest-playwright = "^0.5.1"
diff --git a/terraform/README.md b/terraform/README.md
index 7390e3947..74f181514 100644
--- a/terraform/README.md
+++ b/terraform/README.md
@@ -1,132 +1,3 @@
# Terraform
-This directory holds the terraform modules for maintaining your complete persistent infrastructure.
-
-Prerequisite: install the `jq` JSON processor: `brew install jq`
-
-## Initial setup
-
-1. Manually run the bootstrap module following instructions under `Terraform State Credentials`
-1. Setup CI/CD Pipeline to run Terraform
- 1. Copy bootstrap credentials to your CI/CD secrets using the instructions in the base README
- 1. Create a cloud.gov SpaceDeployer by following the instructions under `SpaceDeployers`
- 1. Copy SpaceDeployer credentials to your CI/CD secrets using the instructions in the base README
-1. Manually Running Terraform
- 1. Follow instructions under `Set up a new environment` to create your infrastructure
-
-## Terraform State Credentials
-
-The bootstrap module is used to create an s3 bucket for later terraform runs to store their state in.
-
-### Bootstrapping the state storage s3 buckets for the first time
-
-1. `cd bootstrap`
-1. Run `terraform init`
-1. Run `./run.sh plan` to verify that the changes are what you expect
-1. Run `./run.sh apply` to set up the bucket and retrieve credentials
-1. Follow instructions under `Use bootstrap credentials`
-1. Ensure that `import.sh` includes a line and correct IDs for any resources created
-1. Run `./teardown_creds.sh` to remove the space deployer account used to create the s3 bucket
-
-Notes:
-- The `run.sh` commands will move your `cf target` to the `notify-management` space, so make sure to re-target afterwards.
-- If you have trouble with `./run.sh plan`, try getting on the GSA VPN. It may be necessary to connect to the cloud.gov API.
-
-### To make changes to the bootstrap module
-
-*This should not be necessary in most cases*
-
-1. Run `terraform init`
-1. If you don't have terraform state locally:
- 1. run `./import.sh`
- 1. optionally run `./run.sh apply` to include the existing outputs in the state file
-1. Make your changes
-1. Continue from step 2 of the boostrapping instructions
-
-### Use bootstrap credentials
-
-1. Run `./run.sh show` if you need to retrieve the credentials
-1. Add the following to `~/.aws/credentials`
- ```
- [notify-terraform-backend]
- aws_access_key_id =
- aws_secret_access_key =
- ```
-1. Copy `bucket` from `bucket_credentials` output to the backend block of `staging/providers.tf` and `production/providers.tf`
-
-## SpaceDeployers
-
-A [SpaceDeployer](https://cloud.gov/docs/services/cloud-gov-service-account/) account is required to run terraform or
-deploy the application from the CI/CD pipeline. Create a new account by running:
-
-`./create_service_account.sh -s -u `
-
-## Set up a new environment manually
-
-The below steps rely on you first configuring access to the Terraform state in s3 as described in [Terraform State Credentials](#terraform-state-credentials).
-
-1. `cd` to the environment you are working in
-
-1. Set up a SpaceDeployer
- ```bash
- # create a space deployer service instance that can log in with just a username and password
- # the value of < SPACE_NAME > should be `staging` or `prod` depending on where you are working
- # the value for < ACCOUNT_NAME > can be anything, although we recommend
- # something that communicates the purpose of the deployer
- # for example: circleci-deployer for the credentials CircleCI uses to
- # deploy the application or -terraform for credentials to run terraform manually
- ./create_service_account.sh -s -u > secrets.auto.tfvars
- ```
-
- The script will output the `username` (as `cf_user`) and `password` (as `cf_password`) for your ``. Read more in the [cloud.gov service account documentation](https://cloud.gov/docs/services/cloud-gov-service-account/).
-
- The easiest way to use this script is to redirect the output directly to the `secrets.auto.tfvars` file it needs to be used in
-
-1. Run terraform from your new environment directory with
- ```bash
- terraform init
- terraform plan
- ```
-
- If the `terraform init` command fails, you may need to run `terraform init -upgrade` to make sure new module versions are picked up.
-
-1. Apply changes with `terraform apply`.
-
-1. Remove the space deployer service instance if it doesn't need to be used again, such as when manually running terraform once.
- ```bash
- # and have the same values as used above.
- ./destroy_service_account.sh -s -u
- ```
-
-## Structure
-
-Each environment has its own module, which relies on a shared module for everything except the providers code and environment specific variables and settings.
-
-```
-- bootstrap/
- |- main.tf
- |- providers.tf
- |- variables.tf
- |- run.sh
- |- teardown_creds.sh
- |- import.sh
-- /
- |- main.tf
- |- providers.tf
- |- secrets.auto.tfvars
- |- variables.tf
-```
-
-In the environment-specific modules:
-- `providers.tf` lists the required providers
-- `main.tf` calls the shared Terraform code, but this is also a place where you can add any other services, resources, etc, which you would like to set up for that environment
-- `variables.tf` lists the variables that will be needed, either to pass through to the child module or for use in this module
-- `secrets.auto.tfvars` is a file which contains the information about the service-key and other secrets that should not be shared
-
-In the bootstrap module:
-- `providers.tf` lists the required providers
-- `main.tf` sets up s3 bucket to be shared across all environments. It lives in `prod` to communicate that it should not be deleted
-- `variables.tf` lists the variables that will be needed. Most values are hard-coded in this module
-- `run.sh` Helper script to set up a space deployer and run terraform. The terraform action (`show`/`plan`/`apply`/`destroy`) is passed as an argument
-- `teardown_creds.sh` Helper script to remove the space deployer setup as part of `run.sh`
-- `import.sh` Helper script to create a new local state file in case terraform changes are needed
+The instructions for how to use the Terraform in this repo are the same [as those in the API repo](https://github.com/GSA/notifications-api/tree/main/terraform#terraform).
diff --git a/terraform/bootstrap/main.tf b/terraform/bootstrap/main.tf
index 241cd1ed6..a518530f1 100644
--- a/terraform/bootstrap/main.tf
+++ b/terraform/bootstrap/main.tf
@@ -1,24 +1,20 @@
locals {
- cf_api_url = "https://api.fr.cloud.gov"
s3_service_name = "notify-terraform-state"
}
module "s3" {
- source = "github.com/18f/terraform-cloudgov//s3"
+ source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0"
- cf_api_url = local.cf_api_url
- cf_user = var.cf_user
- cf_password = var.cf_password
- cf_org_name = "gsa-tts-benefits-studio"
- cf_space_name = "notify-management"
- s3_service_name = local.s3_service_name
+ cf_org_name = "gsa-tts-benefits-studio"
+ cf_space_name = "notify-management"
+ name = local.s3_service_name
}
resource "cloudfoundry_service_key" "bucket_creds" {
name = "${local.s3_service_name}-access"
service_instance = module.s3.bucket_id
-}
-output "bucket_credentials" {
- value = cloudfoundry_service_key.bucket_creds.credentials
+ lifecycle {
+ prevent_destroy = true
+ }
}
diff --git a/terraform/bootstrap/providers.tf b/terraform/bootstrap/providers.tf
index cce97ee8f..7b9ce5c7f 100644
--- a/terraform/bootstrap/providers.tf
+++ b/terraform/bootstrap/providers.tf
@@ -9,7 +9,7 @@ terraform {
}
provider "cloudfoundry" {
- api_url = local.cf_api_url
+ api_url = "https://api.fr.cloud.gov"
user = var.cf_user
password = var.cf_password
app_logs_max = 30
diff --git a/terraform/demo/main.tf b/terraform/demo/main.tf
index 5a38faf17..4223e29e4 100644
--- a/terraform/demo/main.tf
+++ b/terraform/demo/main.tf
@@ -1,9 +1,15 @@
locals {
- cf_org_name = "gsa-tts-benefits-studio"
- cf_space_name = "notify-demo"
- env = "demo"
- app_name = "notify-admin"
- recursive_delete = false
+ cf_org_name = "gsa-tts-benefits-studio"
+ cf_space_name = "notify-demo"
+ env = "demo"
+ app_name = "notify-admin"
+}
+
+resource "null_resource" "prevent_destroy" {
+
+ lifecycle {
+ prevent_destroy = true # never destroy demo
+ }
}
module "redis-v70" {
@@ -21,12 +27,11 @@ module "redis-v70" {
}
module "logo_upload_bucket" {
- source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1"
+ source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0"
- cf_org_name = local.cf_org_name
- cf_space_name = local.cf_space_name
- recursive_delete = local.recursive_delete
- name = "${local.app_name}-logo-upload-bucket-${local.env}"
+ cf_org_name = local.cf_org_name
+ cf_space_name = local.cf_space_name
+ name = "${local.app_name}-logo-upload-bucket-${local.env}"
}
# ##########################################################################
diff --git a/terraform/development/main.tf b/terraform/development/main.tf
index 767256c3f..939b5a3fb 100644
--- a/terraform/development/main.tf
+++ b/terraform/development/main.tf
@@ -11,12 +11,11 @@ data "cloudfoundry_space" "dev" {
}
module "logo_upload_bucket" {
- source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1"
+ source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0"
- cf_org_name = local.cf_org_name
- cf_space_name = local.cf_space_name
- recursive_delete = local.recursive_delete
- name = "${var.username}-logo-upload-bucket"
+ cf_org_name = local.cf_org_name
+ cf_space_name = local.cf_space_name
+ name = "${var.username}-logo-upload-bucket"
}
resource "cloudfoundry_service_key" "logo_key" {
name = local.key_name
diff --git a/terraform/production/main.tf b/terraform/production/main.tf
index 433770a55..771558ce2 100644
--- a/terraform/production/main.tf
+++ b/terraform/production/main.tf
@@ -1,9 +1,15 @@
locals {
- cf_org_name = "gsa-tts-benefits-studio"
- cf_space_name = "notify-production"
- env = "production"
- app_name = "notify-admin"
- recursive_delete = false
+ cf_org_name = "gsa-tts-benefits-studio"
+ cf_space_name = "notify-production"
+ env = "production"
+ app_name = "notify-admin"
+}
+
+resource "null_resource" "prevent_destroy" {
+
+ lifecycle {
+ prevent_destroy = true # never destroy production
+ }
}
module "redis-v70" {
@@ -21,12 +27,11 @@ module "redis-v70" {
}
module "logo_upload_bucket" {
- source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1"
+ source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0"
- cf_org_name = local.cf_org_name
- cf_space_name = local.cf_space_name
- recursive_delete = local.recursive_delete
- name = "${local.app_name}-logo-upload-bucket-${local.env}"
+ cf_org_name = local.cf_org_name
+ cf_space_name = local.cf_space_name
+ name = "${local.app_name}-logo-upload-bucket-${local.env}"
}
# ##########################################################################
@@ -54,7 +59,7 @@ module "api_network_route" {
# https://cloud.gov/docs/services/external-domain-service/#how-to-create-an-instance-of-this-service
###########################################################################
module "domain" {
- source = "github.com/18f/terraform-cloudgov//domain?ref=v0.7.1"
+ source = "github.com/18f/terraform-cloudgov//domain?ref=v0.7.1" # TODO: upgrade this
cf_org_name = local.cf_org_name
cf_space_name = local.cf_space_name
diff --git a/terraform/sandbox/main.tf b/terraform/sandbox/main.tf
index b831b44d6..ad0748199 100644
--- a/terraform/sandbox/main.tf
+++ b/terraform/sandbox/main.tf
@@ -1,19 +1,15 @@
locals {
- cf_org_name = "gsa-tts-benefits-studio"
- cf_space_name = "notify-sandbox"
- env = "sandbox"
- app_name = "notify-admin"
- recursive_delete = true
+ cf_org_name = "gsa-tts-benefits-studio"
+ cf_space_name = "notify-sandbox"
+ env = "sandbox"
+ app_name = "notify-admin"
}
-module "redis" { # default v6.2; delete after v7.0 resource is bound
- source = "github.com/18f/terraform-cloudgov//redis?ref=v0.7.1"
+resource "null_resource" "prevent_destroy" {
- cf_org_name = local.cf_org_name
- cf_space_name = local.cf_space_name
- name = "${local.app_name}-redis-${local.env}"
- recursive_delete = local.recursive_delete
- redis_plan_name = "redis-dev"
+ lifecycle {
+ prevent_destroy = false # destroying sandbox is allowed
+ }
}
module "redis-v70" {
@@ -31,12 +27,11 @@ module "redis-v70" {
}
module "logo_upload_bucket" {
- source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1"
+ source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0"
- cf_org_name = local.cf_org_name
- cf_space_name = local.cf_space_name
- recursive_delete = local.recursive_delete
- name = "${local.app_name}-logo-upload-bucket-${local.env}"
+ cf_org_name = local.cf_org_name
+ cf_space_name = local.cf_space_name
+ name = "${local.app_name}-logo-upload-bucket-${local.env}"
}
# ##########################################################################
diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf
index 338d440e4..99ef28590 100644
--- a/terraform/staging/main.tf
+++ b/terraform/staging/main.tf
@@ -1,9 +1,8 @@
locals {
- cf_org_name = "gsa-tts-benefits-studio"
- cf_space_name = "notify-staging"
- env = "staging"
- app_name = "notify-admin"
- recursive_delete = true
+ cf_org_name = "gsa-tts-benefits-studio"
+ cf_space_name = "notify-staging"
+ env = "staging"
+ app_name = "notify-admin"
}
resource "null_resource" "prevent_destroy" {
@@ -13,7 +12,6 @@ resource "null_resource" "prevent_destroy" {
}
}
-
module "redis-v70" {
source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0"
@@ -29,12 +27,11 @@ module "redis-v70" {
}
module "logo_upload_bucket" {
- source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1"
+ source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0"
- cf_org_name = local.cf_org_name
- cf_space_name = local.cf_space_name
- recursive_delete = local.recursive_delete
- name = "${local.app_name}-logo-upload-bucket-${local.env}"
+ cf_org_name = local.cf_org_name
+ cf_space_name = local.cf_space_name
+ name = "${local.app_name}-logo-upload-bucket-${local.env}"
}
# ##########################################################################
diff --git a/tests/app/main/views/accounts/test_choose_accounts.py b/tests/app/main/views/accounts/test_choose_accounts.py
index 1ead9dd0d..77e06d6ca 100644
--- a/tests/app/main/views/accounts/test_choose_accounts.py
+++ b/tests/app/main/views/accounts/test_choose_accounts.py
@@ -67,7 +67,7 @@ SAMPLE_DATA = {
}
-@pytest.fixture()
+@pytest.fixture
def mock_get_orgs_and_services(mocker):
return mocker.patch(
"app.user_api_client.get_organizations_and_services_for_user",
diff --git a/tests/app/main/views/service_settings/test_service_setting_permissions.py b/tests/app/main/views/service_settings/test_service_setting_permissions.py
index 16240d716..b7c945902 100644
--- a/tests/app/main/views/service_settings/test_service_setting_permissions.py
+++ b/tests/app/main/views/service_settings/test_service_setting_permissions.py
@@ -7,7 +7,7 @@ from app.main.views.service_settings import PLATFORM_ADMIN_SERVICE_PERMISSIONS
from tests.conftest import normalize_spaces
-@pytest.fixture()
+@pytest.fixture
def get_service_settings_page(
client_request,
platform_admin_user,
diff --git a/tests/app/main/views/service_settings/test_service_settings.py b/tests/app/main/views/service_settings/test_service_settings.py
index 599491e08..a9895ef99 100644
--- a/tests/app/main/views/service_settings/test_service_settings.py
+++ b/tests/app/main/views/service_settings/test_service_settings.py
@@ -33,7 +33,7 @@ from tests.conftest import (
FAKE_TEMPLATE_ID = uuid4()
-@pytest.fixture()
+@pytest.fixture
def _mock_get_service_settings_page_common(
mock_get_inbound_number_for_service,
mock_get_free_sms_fragment_limit,
diff --git a/tests/app/main/views/test_accept_invite.py b/tests/app/main/views/test_accept_invite.py
index 1fc355abb..01dab9876 100644
--- a/tests/app/main/views/test_accept_invite.py
+++ b/tests/app/main/views/test_accept_invite.py
@@ -100,19 +100,19 @@ MOCK_JOBS = {
}
-@pytest.fixture()
+@pytest.fixture
def _mock_no_users_for_service(mocker):
mocker.patch("app.models.user.Users.client_method", return_value=[])
-@pytest.fixture()
+@pytest.fixture
def mock_get_existing_user_by_email(mocker, api_user_active):
return mocker.patch(
"app.user_api_client.get_user_by_email", return_value=api_user_active
)
-@pytest.fixture()
+@pytest.fixture
def mock_check_invite_token(mocker, sample_invite):
return mocker.patch("app.invite_api_client.check_token", return_value=sample_invite)
diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py
index c51acaafc..d0d48bffc 100644
--- a/tests/app/main/views/test_dashboard.py
+++ b/tests/app/main/views/test_dashboard.py
@@ -1882,7 +1882,7 @@ def test_service_dashboard_shows_batched_jobs(
assert len(rows) == 1
-@pytest.fixture()
+@pytest.fixture
def app_with_socketio():
app = Flask("app")
create_app(app)
diff --git a/tests/app/main/views/test_two_factor.py b/tests/app/main/views/test_two_factor.py
index d1f38d1ab..27e1ce33f 100644
--- a/tests/app/main/views/test_two_factor.py
+++ b/tests/app/main/views/test_two_factor.py
@@ -9,7 +9,7 @@ from tests.conftest import (
)
-@pytest.fixture()
+@pytest.fixture
def mock_email_validated_recently(mocker):
return mocker.patch(
"app.main.views.two_factor.email_needs_revalidating", return_value=False
diff --git a/tests/app/models/test_template_list.py b/tests/app/models/test_template_list.py
index 1a620809d..874d4fc9b 100644
--- a/tests/app/models/test_template_list.py
+++ b/tests/app/models/test_template_list.py
@@ -12,7 +12,7 @@ VIS_PARENT_FOLDER_ID = "bbbb222b-2b22-2b22-222b-b222b22b2222"
INV_CHILD_2_FOLDER_ID = "fafe723f-1d39-4a10-865f-e551e03d8886"
-@pytest.fixture()
+@pytest.fixture
def _mock_get_hierarchy_of_folders(
mock_get_template_folders, active_user_with_permissions
):
diff --git a/tests/app/s3_client/test_s3_logo_client.py b/tests/app/s3_client/test_s3_logo_client.py
index 92ce34c37..dc6e419e2 100644
--- a/tests/app/s3_client/test_s3_logo_client.py
+++ b/tests/app/s3_client/test_s3_logo_client.py
@@ -19,14 +19,14 @@ svg_filename = "test.svg"
upload_id = "test_uuid"
-@pytest.fixture()
+@pytest.fixture
def upload_filename(fake_uuid):
return EMAIL_LOGO_LOCATION_STRUCTURE.format(
temp=TEMP_TAG.format(user_id=fake_uuid), unique_id=upload_id, filename=filename
)
-@pytest.fixture()
+@pytest.fixture
def bucket_credentials(notify_admin):
return notify_admin.config["LOGO_UPLOAD_BUCKET"]
diff --git a/tests/app/test_cloudfoundry_config.py b/tests/app/test_cloudfoundry_config.py
index 6eea0dd95..433f2c73e 100644
--- a/tests/app/test_cloudfoundry_config.py
+++ b/tests/app/test_cloudfoundry_config.py
@@ -13,7 +13,7 @@ bucket_credentials = {
}
-@pytest.fixture()
+@pytest.fixture
def vcap_services():
return {
"aws-elasticache-redis": [{"credentials": {"uri": "redis://xxx:6379"}}],
diff --git a/tests/app/utils/test_csv.py b/tests/app/utils/test_csv.py
index a7e77055b..d603fcd0e 100644
--- a/tests/app/utils/test_csv.py
+++ b/tests/app/utils/test_csv.py
@@ -71,7 +71,7 @@ def _get_notifications_csv(
return _get
-@pytest.fixture()
+@pytest.fixture
def get_notifications_csv_mock(
mocker,
api_user_active,
diff --git a/tests/conftest.py b/tests/conftest.py
index 592ec9403..de1ff28a3 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -53,17 +53,17 @@ def notify_admin():
return app
-@pytest.fixture()
+@pytest.fixture
def service_one(api_user_active):
return service_json(SERVICE_ONE_ID, "service one", [api_user_active["id"]])
-@pytest.fixture()
+@pytest.fixture
def service_two(api_user_active):
return service_json(SERVICE_TWO_ID, "service two", [api_user_active["id"]])
-@pytest.fixture()
+@pytest.fixture
def multiple_reply_to_email_addresses(mocker):
def _get(service_id):
return [
@@ -99,7 +99,7 @@ def multiple_reply_to_email_addresses(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def no_reply_to_email_addresses(mocker):
def _get(service_id):
return []
@@ -109,7 +109,7 @@ def no_reply_to_email_addresses(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def single_reply_to_email_address(mocker):
def _get(service_id):
return [
@@ -128,7 +128,7 @@ def single_reply_to_email_address(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def get_default_reply_to_email_address(mocker):
def _get(service_id, reply_to_email_id):
return {
@@ -145,7 +145,7 @@ def get_default_reply_to_email_address(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def get_non_default_reply_to_email_address(mocker):
def _get(service_id, reply_to_email_id):
return {
@@ -162,7 +162,7 @@ def get_non_default_reply_to_email_address(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_add_reply_to_email_address(mocker):
def _add_reply_to(service_id, email_address, is_default=False):
return
@@ -172,7 +172,7 @@ def mock_add_reply_to_email_address(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_reply_to_email_address(mocker):
def _update_reply_to(
service_id, reply_to_email_id, email_address=None, active=None, is_default=False
@@ -185,7 +185,7 @@ def mock_update_reply_to_email_address(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def multiple_sms_senders(mocker):
def _get(service_id):
return [
@@ -221,7 +221,7 @@ def multiple_sms_senders(mocker):
return mocker.patch("app.service_api_client.get_sms_senders", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def multiple_sms_senders_with_diff_default(mocker):
def _get(service_id):
return [
@@ -257,7 +257,7 @@ def multiple_sms_senders_with_diff_default(mocker):
return mocker.patch("app.service_api_client.get_sms_senders", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def multiple_sms_senders_no_inbound(mocker):
def _get(service_id):
return [
@@ -284,7 +284,7 @@ def multiple_sms_senders_no_inbound(mocker):
return mocker.patch("app.service_api_client.get_sms_senders", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def no_sms_senders(mocker):
def _get(service_id):
return []
@@ -292,7 +292,7 @@ def no_sms_senders(mocker):
return mocker.patch("app.service_api_client.get_sms_senders", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def single_sms_sender(mocker):
def _get(service_id):
return [
@@ -310,7 +310,7 @@ def single_sms_sender(mocker):
return mocker.patch("app.service_api_client.get_sms_senders", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def get_default_sms_sender(mocker):
def _get(service_id, sms_sender_id):
return {
@@ -326,7 +326,7 @@ def get_default_sms_sender(mocker):
return mocker.patch("app.service_api_client.get_sms_sender", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def get_non_default_sms_sender(mocker):
def _get(service_id, sms_sender_id):
return {
@@ -342,7 +342,7 @@ def get_non_default_sms_sender(mocker):
return mocker.patch("app.service_api_client.get_sms_sender", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_add_sms_sender(mocker):
def _add_sms_sender(
service_id, sms_sender, is_default=False, inbound_number_id=None
@@ -354,7 +354,7 @@ def mock_add_sms_sender(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_sms_sender(mocker):
def _update_sms_sender(
service_id, sms_sender_id, sms_sender=None, active=None, is_default=False
@@ -366,7 +366,7 @@ def mock_update_sms_sender(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def multiple_available_inbound_numbers(mocker):
def _get():
return {
@@ -406,7 +406,7 @@ def multiple_available_inbound_numbers(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def no_available_inbound_numbers(mocker):
def _get():
return {"data": []}
@@ -416,12 +416,12 @@ def no_available_inbound_numbers(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def fake_uuid():
return sample_uuid()
-@pytest.fixture()
+@pytest.fixture
def mock_get_service(mocker, api_user_active):
def _get(service_id):
service = service_json(
@@ -432,7 +432,7 @@ def mock_get_service(mocker, api_user_active):
return mocker.patch("app.service_api_client.get_service", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_statistics(mocker, api_user_active):
def _get(service_id, limit_days=None):
return {
@@ -445,7 +445,7 @@ def mock_get_service_statistics(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_detailed_services(mocker, fake_uuid):
service_one = service_json(
id_=SERVICE_ONE_ID,
@@ -476,7 +476,7 @@ def mock_get_detailed_services(mocker, fake_uuid):
return mocker.patch("app.service_api_client.get_services", return_value=services)
-@pytest.fixture()
+@pytest.fixture
def mock_get_live_service(mocker, api_user_active):
def _get(service_id):
service = service_json(
@@ -487,7 +487,7 @@ def mock_get_live_service(mocker, api_user_active):
return mocker.patch("app.service_api_client.get_service", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_create_service(mocker):
def _create(
service_name,
@@ -510,7 +510,7 @@ def mock_create_service(mocker):
return mocker.patch("app.service_api_client.create_service", side_effect=_create)
-@pytest.fixture()
+@pytest.fixture
def mock_update_service(mocker):
def _update(service_id, **kwargs):
service = service_json(
@@ -538,7 +538,7 @@ def mock_update_service(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_raise_httperror_duplicate_name(mocker):
def _update(service_id, **kwargs):
json_mock = Mock(
@@ -563,7 +563,7 @@ TEMPLATE_ONE_ID = "b22d7d94-2197-4a7d-a8e7-fd5f9770bf48"
USER_ONE_ID = "7b395b52-c6c1-469c-9d61-54166461c1ab"
-@pytest.fixture()
+@pytest.fixture
def mock_get_services(mocker, active_user_with_permissions):
def _get_services(params_dict=None):
service_one = service_json(
@@ -589,7 +589,7 @@ def mock_get_services(mocker, active_user_with_permissions):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_services_with_no_services(mocker):
def _get_services(params_dict=None):
return {"data": []}
@@ -599,7 +599,7 @@ def mock_get_services_with_no_services(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_services_with_one_service(mocker, api_user_active):
def _get_services(params_dict=None):
return {
@@ -620,7 +620,7 @@ def mock_get_services_with_one_service(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_template(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -637,7 +637,7 @@ def mock_get_service_template(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_template_with_priority(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -655,7 +655,7 @@ def mock_get_service_template_with_priority(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_deleted_template(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -673,7 +673,7 @@ def mock_get_deleted_template(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_template_version(mocker, api_user_active):
def _get(service_id, template_id, version):
template_version = template_version_json(
@@ -684,7 +684,7 @@ def mock_get_template_version(mocker, api_user_active):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_template_versions(mocker, api_user_active):
def _get(service_id, template_id):
template_version = template_version_json(
@@ -697,7 +697,7 @@ def mock_get_template_versions(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_template_with_placeholders(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -712,7 +712,7 @@ def mock_get_service_template_with_placeholders(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_empty_service_template_with_optional_placeholder(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -726,7 +726,7 @@ def mock_get_empty_service_template_with_optional_placeholder(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_template_with_multiple_placeholders(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -741,7 +741,7 @@ def mock_get_service_template_with_multiple_placeholders(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_template_with_placeholders_same_as_recipient(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -756,7 +756,7 @@ def mock_get_service_template_with_placeholders_same_as_recipient(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_email_template(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -773,7 +773,7 @@ def mock_get_service_email_template(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_email_template_without_placeholders(mocker):
def _get(service_id, template_id, version=None):
template = template_json(
@@ -790,7 +790,7 @@ def mock_get_service_email_template_without_placeholders(mocker):
return mocker.patch("app.service_api_client.get_service_template", side_effect=_get)
-@pytest.fixture()
+@pytest.fixture
def mock_create_service_template(mocker, fake_uuid):
def _create(
name,
@@ -811,7 +811,7 @@ def mock_create_service_template(mocker, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_template(mocker):
def _update(id_, name, type_, content, service, subject=None, process_type=None):
template = template_json(
@@ -824,7 +824,7 @@ def mock_update_service_template(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_create_service_template_content_too_big(mocker):
def _create(
name,
@@ -861,7 +861,7 @@ def mock_create_service_template_content_too_big(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_template_400_content_too_big(mocker):
def _update(id_, name, type_, content, service, subject=None, process_type=None):
json_mock = Mock(
@@ -925,7 +925,7 @@ def _template(template_type, name, parent=None, template_id=None):
}
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_templates(mocker):
def _create(service_id):
return create_service_templates(service_id)
@@ -935,7 +935,7 @@ def mock_get_service_templates(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_more_service_templates_than_can_fit_onscreen(mocker):
def _create(service_id):
return create_service_templates(service_id, number_of_templates=20)
@@ -945,7 +945,7 @@ def mock_get_more_service_templates_than_can_fit_onscreen(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_templates_when_no_templates_exist(mocker):
def _create(service_id):
return {"data": []}
@@ -955,7 +955,7 @@ def mock_get_service_templates_when_no_templates_exist(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_templates_with_only_one_template(mocker):
def _get(service_id):
return {
@@ -975,7 +975,7 @@ def mock_get_service_templates_with_only_one_template(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_delete_service_template(mocker):
def _delete(service_id, template_id):
template = template_json(
@@ -992,12 +992,12 @@ def mock_delete_service_template(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_redact_template(mocker):
return mocker.patch("app.service_api_client.redact_service_template")
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_template_sender(mocker):
def _update(service_id, template_id, reply_to):
return
@@ -1007,12 +1007,12 @@ def mock_update_service_template_sender(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def api_user_pending(fake_uuid):
return create_user(id=fake_uuid, state="pending")
-@pytest.fixture()
+@pytest.fixture
def platform_admin_user(fake_uuid):
return create_platform_admin_user(
permissions={
@@ -1029,7 +1029,7 @@ def platform_admin_user(fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def platform_admin_user_no_service_permissions():
"""
this fixture is for situations where we want to test that platform admin can access
@@ -1038,17 +1038,17 @@ def platform_admin_user_no_service_permissions():
return create_platform_admin_user()
-@pytest.fixture()
+@pytest.fixture
def api_user_active():
return create_api_user_active()
-@pytest.fixture()
+@pytest.fixture
def api_user_active_email_auth(fake_uuid):
return create_user(id=fake_uuid, auth_type="email_auth")
-@pytest.fixture()
+@pytest.fixture
def active_user_with_permissions_no_mobile(fake_uuid):
return create_service_one_admin(
id=fake_uuid,
@@ -1056,7 +1056,7 @@ def active_user_with_permissions_no_mobile(fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def api_nongov_user_active(fake_uuid):
return create_service_one_admin(
id=fake_uuid,
@@ -1064,17 +1064,17 @@ def api_nongov_user_active(fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def active_user_with_permissions(fake_uuid):
return create_active_user_with_permissions()
-@pytest.fixture()
+@pytest.fixture
def active_user_empty_permissions(fake_uuid):
return create_active_user_empty_permissions()
-@pytest.fixture()
+@pytest.fixture
def active_user_with_permission_to_two_services(fake_uuid):
permissions = [
"send_texts",
@@ -1097,7 +1097,7 @@ def active_user_with_permission_to_two_services(fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def active_user_with_permission_to_other_service(
active_user_with_permission_to_two_services,
):
@@ -1110,22 +1110,22 @@ def active_user_with_permission_to_other_service(
return active_user_with_permission_to_two_services
-@pytest.fixture()
+@pytest.fixture
def active_caseworking_user():
return create_active_caseworking_user()
-@pytest.fixture()
+@pytest.fixture
def active_user_view_permissions():
return create_active_user_view_permissions()
-@pytest.fixture()
+@pytest.fixture
def active_user_no_settings_permission():
return create_active_user_no_settings_permission()
-@pytest.fixture()
+@pytest.fixture
def api_user_locked(fake_uuid):
return create_user(
id=fake_uuid,
@@ -1134,7 +1134,7 @@ def api_user_locked(fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def api_user_request_password_reset(fake_uuid):
return create_user(
id=fake_uuid,
@@ -1142,7 +1142,7 @@ def api_user_request_password_reset(fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def api_user_changed_password(fake_uuid):
return create_user(
id=fake_uuid,
@@ -1151,12 +1151,12 @@ def api_user_changed_password(fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_send_change_email_verification(mocker):
return mocker.patch("app.user_api_client.send_change_email_verification")
-@pytest.fixture()
+@pytest.fixture
def mock_register_user(mocker, api_user_pending):
def _register(name, email_address, mobile_number, password, auth_type):
api_user_pending["name"] = name
@@ -1169,7 +1169,7 @@ def mock_register_user(mocker, api_user_pending):
return mocker.patch("app.user_api_client.register_user", side_effect=_register)
-@pytest.fixture()
+@pytest.fixture
def mock_get_non_govuser(mocker, api_user_active):
api_user_active["email_address"] = "someuser@example.com"
@@ -1180,7 +1180,7 @@ def mock_get_non_govuser(mocker, api_user_active):
return mocker.patch("app.user_api_client.get_user", side_effect=_get_user)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user(mocker, api_user_active):
def _get_user(id_):
api_user_active["id"] = id_
@@ -1189,7 +1189,7 @@ def mock_get_user(mocker, api_user_active):
return mocker.patch("app.user_api_client.get_user", side_effect=_get_user)
-@pytest.fixture()
+@pytest.fixture
def mock_get_locked_user(mocker, api_user_locked):
def _get_user(id_):
api_user_locked["id"] = id_
@@ -1198,12 +1198,12 @@ def mock_get_locked_user(mocker, api_user_locked):
return mocker.patch("app.user_api_client.get_user", side_effect=_get_user)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user_pending(mocker, api_user_pending):
return mocker.patch("app.user_api_client.get_user", return_value=api_user_pending)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user_by_email(mocker, api_user_active):
def _get_user(email_address):
api_user_active["email_address"] = email_address
@@ -1212,7 +1212,7 @@ def mock_get_user_by_email(mocker, api_user_active):
return mocker.patch("app.user_api_client.get_user_by_email", side_effect=_get_user)
-@pytest.fixture()
+@pytest.fixture
def mock_dont_get_user_by_email(mocker):
def _get_user(email_address):
return None
@@ -1222,7 +1222,7 @@ def mock_dont_get_user_by_email(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user_by_email_request_password_reset(
mocker, api_user_request_password_reset
):
@@ -1232,28 +1232,28 @@ def mock_get_user_by_email_request_password_reset(
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user_by_email_user_changed_password(mocker, api_user_changed_password):
return mocker.patch(
"app.user_api_client.get_user_by_email", return_value=api_user_changed_password
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user_by_email_locked(mocker, api_user_locked):
return mocker.patch(
"app.user_api_client.get_user_by_email", return_value=api_user_locked
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user_by_email_pending(mocker, api_user_pending):
return mocker.patch(
"app.user_api_client.get_user_by_email", return_value=api_user_pending
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_user_by_email_not_found(mocker, api_user_active):
def _get_user(email):
json_mock = Mock(return_value={"message": "Not found", "result": "error"})
@@ -1264,7 +1264,7 @@ def mock_get_user_by_email_not_found(mocker, api_user_active):
return mocker.patch("app.user_api_client.get_user_by_email", side_effect=_get_user)
-@pytest.fixture()
+@pytest.fixture
def mock_verify_password(mocker):
def _verify_password(user, password):
return True
@@ -1274,7 +1274,7 @@ def mock_verify_password(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_user_password(mocker, api_user_active):
def _update(user_id, password):
api_user_active["id"] = user_id
@@ -1283,7 +1283,7 @@ def mock_update_user_password(mocker, api_user_active):
return mocker.patch("app.user_api_client.update_password", side_effect=_update)
-@pytest.fixture()
+@pytest.fixture
def mock_update_user_attribute(mocker, api_user_active):
def _update(user_id, **kwargs):
api_user_active["id"] = user_id
@@ -1294,7 +1294,7 @@ def mock_update_user_attribute(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_activate_user(mocker, api_user_active):
def _activate(user_id):
api_user_active["id"] = user_id
@@ -1303,14 +1303,14 @@ def mock_activate_user(mocker, api_user_active):
return mocker.patch("app.user_api_client.activate_user", side_effect=_activate)
-@pytest.fixture()
+@pytest.fixture
def mock_email_is_not_already_in_use(mocker):
return mocker.patch(
"app.user_api_client.get_user_by_email_or_none", return_value=None
)
-@pytest.fixture()
+@pytest.fixture
def mock_revoke_api_key(mocker):
def _revoke(service_id, key_id):
return {}
@@ -1318,7 +1318,7 @@ def mock_revoke_api_key(mocker):
return mocker.patch("app.api_key_api_client.revoke_api_key", side_effect=_revoke)
-@pytest.fixture()
+@pytest.fixture
def mock_get_api_keys(mocker, fake_uuid):
def _get_keys(service_id, key_id=None):
keys = {
@@ -1339,7 +1339,7 @@ def mock_get_api_keys(mocker, fake_uuid):
return mocker.patch("app.api_key_api_client.get_api_keys", side_effect=_get_keys)
-@pytest.fixture()
+@pytest.fixture
def mock_get_no_api_keys(mocker):
def _get_keys(service_id):
keys = {"apiKeys": []}
@@ -1348,7 +1348,7 @@ def mock_get_no_api_keys(mocker):
return mocker.patch("app.api_key_api_client.get_api_keys", side_effect=_get_keys)
-@pytest.fixture()
+@pytest.fixture
def mock_login(mocker, mock_get_user, mock_update_user_attribute, mock_events):
def _verify_code(user_id, code, code_type):
return True, ""
@@ -1362,17 +1362,17 @@ def mock_login(mocker, mock_get_user, mock_update_user_attribute, mock_events):
)
-@pytest.fixture()
+@pytest.fixture
def mock_send_verify_code(mocker):
return mocker.patch("app.user_api_client.send_verify_code")
-@pytest.fixture()
+@pytest.fixture
def mock_send_verify_email(mocker):
return mocker.patch("app.user_api_client.send_verify_email")
-@pytest.fixture()
+@pytest.fixture
def mock_check_verify_code(mocker):
def _verify(user_id, code, code_type):
return True, ""
@@ -1380,7 +1380,7 @@ def mock_check_verify_code(mocker):
return mocker.patch("app.user_api_client.check_verify_code", side_effect=_verify)
-@pytest.fixture()
+@pytest.fixture
def mock_check_verify_code_code_not_found(mocker):
def _verify(user_id, code, code_type):
return False, "Code not found"
@@ -1388,7 +1388,7 @@ def mock_check_verify_code_code_not_found(mocker):
return mocker.patch("app.user_api_client.check_verify_code", side_effect=_verify)
-@pytest.fixture()
+@pytest.fixture
def mock_check_verify_code_code_expired(mocker):
def _verify(user_id, code, code_type):
return False, "Code has expired"
@@ -1396,7 +1396,7 @@ def mock_check_verify_code_code_expired(mocker):
return mocker.patch("app.user_api_client.check_verify_code", side_effect=_verify)
-@pytest.fixture()
+@pytest.fixture
def mock_create_job(mocker, api_user_active):
def _create(
job_id,
@@ -1416,7 +1416,7 @@ def mock_create_job(mocker, api_user_active):
return mocker.patch("app.job_api_client.create_job", side_effect=_create)
-@pytest.fixture()
+@pytest.fixture
def mock_get_job(mocker, api_user_active):
def _get_job(service_id, job_id):
return {"data": job_json(service_id, api_user_active, job_id=job_id)}
@@ -1424,7 +1424,7 @@ def mock_get_job(mocker, api_user_active):
return mocker.patch("app.job_api_client.get_job", side_effect=_get_job)
-@pytest.fixture()
+@pytest.fixture
def mock_get_job_doesnt_exist(mocker):
def _get_job(service_id, job_id):
raise HTTPError(response=Mock(status_code=404, json={}), message={})
@@ -1432,7 +1432,7 @@ def mock_get_job_doesnt_exist(mocker):
return mocker.patch("app.job_api_client.get_job", side_effect=_get_job)
-@pytest.fixture()
+@pytest.fixture
def mock_get_scheduled_job(mocker, api_user_active):
def _get_job(service_id, job_id):
return {
@@ -1448,7 +1448,7 @@ def mock_get_scheduled_job(mocker, api_user_active):
return mocker.patch("app.job_api_client.get_job", side_effect=_get_job)
-@pytest.fixture()
+@pytest.fixture
def mock_get_cancelled_job(mocker, api_user_active):
def _get_job(service_id, job_id):
return {
@@ -1464,7 +1464,7 @@ def mock_get_cancelled_job(mocker, api_user_active):
return mocker.patch("app.job_api_client.get_job", side_effect=_get_job)
-@pytest.fixture()
+@pytest.fixture
def mock_get_job_in_progress(mocker, api_user_active):
def _get_job(service_id, job_id):
return {
@@ -1481,7 +1481,7 @@ def mock_get_job_in_progress(mocker, api_user_active):
return mocker.patch("app.job_api_client.get_job", side_effect=_get_job)
-@pytest.fixture()
+@pytest.fixture
def mock_get_job_with_sending_limits_exceeded(mocker, api_user_active):
def _get_job(service_id, job_id):
return {
@@ -1498,17 +1498,17 @@ def mock_get_job_with_sending_limits_exceeded(mocker, api_user_active):
return mocker.patch("app.job_api_client.get_job", side_effect=_get_job)
-@pytest.fixture()
+@pytest.fixture
def mock_has_jobs(mocker):
return mocker.patch("app.job_api_client.has_jobs", return_value=True)
-@pytest.fixture()
+@pytest.fixture
def mock_has_no_jobs(mocker):
return mocker.patch("app.job_api_client.has_jobs", return_value=False)
-@pytest.fixture()
+@pytest.fixture
def mock_get_jobs(mocker, api_user_active, fake_uuid):
def _get_jobs(service_id, limit_days=None, statuses=None, page=1):
if statuses is None:
@@ -1564,7 +1564,7 @@ def mock_get_jobs(mocker, api_user_active, fake_uuid):
return mocker.patch("app.job_api_client.get_jobs", side_effect=_get_jobs)
-@pytest.fixture()
+@pytest.fixture
def mock_get_scheduled_job_stats(mocker, api_user_active):
return mocker.patch(
"app.job_api_client.get_scheduled_job_stats",
@@ -1576,7 +1576,7 @@ def mock_get_scheduled_job_stats(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_uploads(mocker, api_user_active):
def _get_uploads(service_id, limit_days=None, statuses=None, page=1):
uploads = [
@@ -1608,7 +1608,7 @@ def mock_get_uploads(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def _mock_get_no_uploads(mocker, api_user_active):
mocker.patch(
"app.models.job.PaginatedUploads.client_method",
@@ -1618,7 +1618,7 @@ def _mock_get_no_uploads(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_no_jobs(mocker, api_user_active):
return mocker.patch(
"app.models.job.PaginatedJobs.client_method",
@@ -1629,7 +1629,7 @@ def mock_get_no_jobs(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_notifications(
mocker,
api_user_active,
@@ -1680,7 +1680,7 @@ def mock_get_notifications(
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_notifications_with_previous_next(mocker):
def _get_notifications(
service_id,
@@ -1705,7 +1705,7 @@ def mock_get_notifications_with_previous_next(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_notifications_with_no_notifications(mocker):
def _get_notifications(
service_id,
@@ -1728,7 +1728,7 @@ def mock_get_notifications_with_no_notifications(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_inbound_sms(mocker):
def _get_inbound_sms(service_id, user_number=None, page=1):
return inbound_sms_json()
@@ -1739,7 +1739,7 @@ def mock_get_inbound_sms(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_inbound_sms_by_id_with_no_messages(mocker):
def _get_inbound_sms_by_id(service_id, notification_id):
raise HTTPError(response=Mock(status_code=404))
@@ -1750,7 +1750,7 @@ def mock_get_inbound_sms_by_id_with_no_messages(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_most_recent_inbound_sms(mocker):
def _get_most_recent_inbound_sms(service_id, user_number=None, page=1):
return inbound_sms_json()
@@ -1761,7 +1761,7 @@ def mock_get_most_recent_inbound_sms(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_most_recent_inbound_sms_with_no_messages(mocker):
def _get_most_recent_inbound_sms(service_id, user_number=None, page=1):
return {"has_next": False, "data": []}
@@ -1772,7 +1772,7 @@ def mock_get_most_recent_inbound_sms_with_no_messages(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_inbound_sms_summary(mocker):
def _get_inbound_sms_summary(
service_id,
@@ -1785,7 +1785,7 @@ def mock_get_inbound_sms_summary(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_inbound_sms_summary_with_no_messages(mocker):
def _get_inbound_sms_summary(
service_id,
@@ -1798,7 +1798,7 @@ def mock_get_inbound_sms_summary_with_no_messages(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_inbound_number_for_service(mocker):
return mocker.patch(
"app.inbound_number_client.get_inbound_sms_number_for_service",
@@ -1806,7 +1806,7 @@ def mock_get_inbound_number_for_service(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_no_inbound_number_for_service(mocker):
return mocker.patch(
"app.inbound_number_client.get_inbound_sms_number_for_service",
@@ -1814,7 +1814,7 @@ def mock_no_inbound_number_for_service(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_has_permissions(mocker):
def _has_permission(*permissions, restrict_admin_usage=False, allow_org_user=False):
return True
@@ -1824,7 +1824,7 @@ def mock_has_permissions(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_users_by_service(mocker):
def _get_users_for_service(service_id):
return [
@@ -1843,7 +1843,7 @@ def mock_get_users_by_service(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_s3_download(mocker):
def _download(service_id, upload_id):
return """
@@ -1855,7 +1855,7 @@ def mock_s3_download(mocker):
return mocker.patch("app.main.views.send.s3download", side_effect=_download)
-@pytest.fixture()
+@pytest.fixture
def sample_invite(mocker, service_one):
id_ = USER_ONE_ID
from_user = service_one["users"][0]
@@ -1879,7 +1879,7 @@ def sample_invite(mocker, service_one):
)
-@pytest.fixture()
+@pytest.fixture
def encoded_invite_data():
"""
This mimics what API does when it encodes invite data in
@@ -1898,7 +1898,7 @@ def encoded_invite_data():
return invite_data.decode("utf8")
-@pytest.fixture()
+@pytest.fixture
def expired_invite(service_one):
id_ = USER_ONE_ID
from_user = service_one["users"][0]
@@ -1922,7 +1922,7 @@ def expired_invite(service_one):
)
-@pytest.fixture()
+@pytest.fixture
def mock_create_invite(mocker, sample_invite):
def _create_invite(
from_user, service_id, email_address, permissions, folder_permissions
@@ -1940,7 +1940,7 @@ def mock_create_invite(mocker, sample_invite):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_invites_for_service(mocker, service_one, sample_invite):
def _get_invites(service_id):
data = []
@@ -1955,7 +1955,7 @@ def mock_get_invites_for_service(mocker, service_one, sample_invite):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_invites_without_manage_permission(mocker, service_one, sample_invite):
def _get_invites(service_id):
return [
@@ -1977,7 +1977,7 @@ def mock_get_invites_without_manage_permission(mocker, service_one, sample_invit
)
-@pytest.fixture()
+@pytest.fixture
def mock_accept_invite(mocker, sample_invite):
def _accept(service_id, invite_id):
return sample_invite
@@ -1985,7 +1985,7 @@ def mock_accept_invite(mocker, sample_invite):
return mocker.patch("app.invite_api_client.accept_invite", side_effect=_accept)
-@pytest.fixture()
+@pytest.fixture
def mock_add_user_to_service(mocker, service_one, api_user_active):
def _add_user(service_id, user_id, permissions, folder_permissions):
return
@@ -1995,19 +1995,19 @@ def mock_add_user_to_service(mocker, service_one, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_set_user_permissions(mocker):
return mocker.patch("app.user_api_client.set_user_permissions", return_value=None)
-@pytest.fixture()
+@pytest.fixture
def mock_remove_user_from_service(mocker):
return mocker.patch(
"app.service_api_client.remove_user_from_service", return_value=None
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_template_statistics(mocker, service_one, fake_uuid):
template = template_json(
service_one["id"],
@@ -2033,7 +2033,7 @@ def mock_get_template_statistics(mocker, service_one, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_monthly_template_usage(mocker, service_one, fake_uuid):
def _stats(service_id, year):
return [
@@ -2053,7 +2053,7 @@ def mock_get_monthly_template_usage(mocker, service_one, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_monthly_notification_stats(mocker, service_one, fake_uuid):
def _stats(service_id, year):
return {
@@ -2076,7 +2076,7 @@ def mock_get_monthly_notification_stats(mocker, service_one, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_annual_usage_for_service(mocker, service_one, fake_uuid):
def _get_usage(service_id, year=None):
return [
@@ -2111,7 +2111,7 @@ def mock_get_annual_usage_for_service(mocker, service_one, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_monthly_usage_for_service(mocker):
def _get_usage(service_id, year):
return [
@@ -2162,7 +2162,7 @@ def mock_get_monthly_usage_for_service(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_annual_usage_for_service_in_future(mocker, service_one, fake_uuid):
def _get_usage(service_id, year=None):
return [
@@ -2189,7 +2189,7 @@ def mock_get_annual_usage_for_service_in_future(mocker, service_one, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_monthly_usage_for_service_in_future(mocker):
def _get_usage(service_id, year):
return []
@@ -2199,7 +2199,7 @@ def mock_get_monthly_usage_for_service_in_future(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_events(mocker):
def _create_event(event_type, event_data):
return {"some": "data"}
@@ -2207,12 +2207,12 @@ def mock_events(mocker):
return mocker.patch("app.events_api_client.create_event", side_effect=_create_event)
-@pytest.fixture()
+@pytest.fixture
def mock_send_already_registered_email(mocker):
return mocker.patch("app.user_api_client.send_already_registered_email")
-@pytest.fixture()
+@pytest.fixture
def mock_get_guest_list(mocker):
def _get_guest_list(service_id):
return {
@@ -2225,17 +2225,17 @@ def mock_get_guest_list(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_guest_list(mocker):
return mocker.patch("app.service_api_client.update_guest_list")
-@pytest.fixture()
+@pytest.fixture
def mock_reset_failed_login_count(mocker):
return mocker.patch("app.user_api_client.reset_failed_login_count")
-@pytest.fixture()
+@pytest.fixture
def mock_get_notification(mocker):
def _get_notification(
service_id,
@@ -2266,7 +2266,7 @@ def mock_get_notification(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_send_notification(mocker, fake_uuid):
def _send_notification(
service_id, *, template_id, recipient, personalisation, sender_id
@@ -2278,7 +2278,7 @@ def mock_send_notification(mocker, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def client(notify_admin):
"""
Do not use this fixture directly – use `client_request` instead
@@ -2288,7 +2288,7 @@ def client(notify_admin):
yield client
-@pytest.fixture()
+@pytest.fixture
def logged_in_client(
client, active_user_with_permissions, mocker, service_one, mock_login
):
@@ -2299,7 +2299,7 @@ def logged_in_client(
return client
-@pytest.fixture()
+@pytest.fixture
def _os_environ():
"""
clear os.environ, and restore it after the test runs
@@ -2312,7 +2312,7 @@ def _os_environ():
os.environ[k] = v
-@pytest.fixture() # noqa (C901 too complex)
+@pytest.fixture # noqa (C901 too complex)
def client_request(logged_in_client, mocker, service_one): # noqa (C901 too complex)
def _get(mocker):
return {"count": 0}
@@ -2505,7 +2505,7 @@ def normalize_spaces(input):
return normalize_spaces(" ".join(item.text for item in input))
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_data_retention(mocker):
data = {
"id": str(sample_uuid()),
@@ -2521,17 +2521,17 @@ def mock_get_service_data_retention(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_create_service_data_retention(mocker):
return mocker.patch("app.service_api_client.create_service_data_retention")
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_data_retention(mocker):
return mocker.patch("app.service_api_client.update_service_data_retention")
-@pytest.fixture()
+@pytest.fixture
def mock_get_free_sms_fragment_limit(mocker):
sample_limit = 250000
return mocker.patch(
@@ -2540,7 +2540,7 @@ def mock_get_free_sms_fragment_limit(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_create_or_update_free_sms_fragment_limit(mocker):
sample_limit = 250000
return mocker.patch(
@@ -2571,7 +2571,7 @@ def set_config_values(app, dict):
app.config[key] = old_values[key]
-@pytest.fixture()
+@pytest.fixture
def valid_token(notify_admin, fake_uuid):
return generate_token(
json.dumps({"user_id": fake_uuid, "secret_code": "my secret"}),
@@ -2580,7 +2580,7 @@ def valid_token(notify_admin, fake_uuid):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_valid_service_inbound_api(mocker):
def _get(service_id, inbound_api_id):
return {
@@ -2597,7 +2597,7 @@ def mock_get_valid_service_inbound_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_valid_service_callback_api(mocker):
def _get(service_id, callback_api_id):
return {
@@ -2614,7 +2614,7 @@ def mock_get_valid_service_callback_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_empty_service_inbound_api(mocker):
return mocker.patch(
"app.service_api_client.get_service_inbound_api",
@@ -2622,7 +2622,7 @@ def mock_get_empty_service_inbound_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_empty_service_callback_api(mocker):
return mocker.patch(
"app.service_api_client.get_service_callback_api",
@@ -2630,7 +2630,7 @@ def mock_get_empty_service_callback_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_create_service_inbound_api(mocker):
def _create_service_inbound_api(service_id, url, bearer_token, user_id):
return
@@ -2641,7 +2641,7 @@ def mock_create_service_inbound_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_inbound_api(mocker):
def _update_service_inbound_api(
service_id, url, bearer_token, user_id, inbound_api_id
@@ -2654,7 +2654,7 @@ def mock_update_service_inbound_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_create_service_callback_api(mocker):
def _create_service_callback_api(service_id, url, bearer_token, user_id):
return
@@ -2665,7 +2665,7 @@ def mock_create_service_callback_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_callback_api(mocker):
def _update_service_callback_api(
service_id, url, bearer_token, user_id, callback_api_id
@@ -2678,14 +2678,14 @@ def mock_update_service_callback_api(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def organization_one(api_user_active):
return organization_json(
ORGANISATION_ID, "organization one", [api_user_active["id"]]
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_organizations(mocker):
def _get_organizations():
return [
@@ -2705,7 +2705,7 @@ def mock_get_organizations(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_organizations_with_unusual_domains(mocker):
def _get_organizations():
return [
@@ -2726,7 +2726,7 @@ def mock_get_organizations_with_unusual_domains(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_organization(mocker):
def _get_organization(org_id):
return organization_json(
@@ -2743,7 +2743,7 @@ def mock_get_organization(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_organization_by_domain(mocker):
def _get_organization_by_domain(domain):
return organization_json(ORGANISATION_ID)
@@ -2754,7 +2754,7 @@ def mock_get_organization_by_domain(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_no_organization_by_domain(mocker):
return mocker.patch(
"app.organizations_client.get_organization_by_domain",
@@ -2762,7 +2762,7 @@ def mock_get_no_organization_by_domain(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_organization(
mocker,
mock_get_organization,
@@ -2774,7 +2774,7 @@ def mock_get_service_organization(
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_service_organization(mocker):
def _update_service_organization(service_id, org_id):
return
@@ -2805,7 +2805,7 @@ def _get_organization_services(organization_id):
]
-@pytest.fixture()
+@pytest.fixture
def mock_get_organization_services(mocker, api_user_active):
return mocker.patch(
"app.organizations_client.get_organization_services",
@@ -2813,7 +2813,7 @@ def mock_get_organization_services(mocker, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_users_for_organization(mocker):
def _get_users_for_organization(org_id):
return [
@@ -2827,7 +2827,7 @@ def mock_get_users_for_organization(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_invited_users_for_organization(mocker, sample_org_invite):
def _get_invited_invited_users_for_organization(org_id):
return [sample_org_invite]
@@ -2838,7 +2838,7 @@ def mock_get_invited_users_for_organization(mocker, sample_org_invite):
)
-@pytest.fixture()
+@pytest.fixture
def sample_org_invite(mocker, organization_one):
id_ = str(UUID(bytes=b"sample_org_invit", version=4))
invited_by = organization_one["users"][0]
@@ -2852,7 +2852,7 @@ def sample_org_invite(mocker, organization_one):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_invites_for_organization(mocker, sample_org_invite):
def _get_org_invites(org_id):
data = []
@@ -2868,7 +2868,7 @@ def mock_get_invites_for_organization(mocker, sample_org_invite):
)
-@pytest.fixture()
+@pytest.fixture
def mock_check_org_invite_token(mocker, sample_org_invite):
def _check_org_token(token):
return sample_org_invite
@@ -2878,7 +2878,7 @@ def mock_check_org_invite_token(mocker, sample_org_invite):
)
-@pytest.fixture()
+@pytest.fixture
def mock_check_org_cancelled_invite_token(mocker, sample_org_invite):
def _check_org_token(token):
sample_org_invite["status"] = "cancelled"
@@ -2889,7 +2889,7 @@ def mock_check_org_cancelled_invite_token(mocker, sample_org_invite):
)
-@pytest.fixture()
+@pytest.fixture
def mock_check_org_accepted_invite_token(mocker, sample_org_invite):
sample_org_invite["status"] = "accepted"
@@ -2901,7 +2901,7 @@ def mock_check_org_accepted_invite_token(mocker, sample_org_invite):
)
-@pytest.fixture()
+@pytest.fixture
def mock_accept_org_invite(mocker, sample_org_invite):
def _accept(organization_id, invite_id):
return sample_org_invite
@@ -2909,7 +2909,7 @@ def mock_accept_org_invite(mocker, sample_org_invite):
return mocker.patch("app.org_invite_api_client.accept_invite", side_effect=_accept)
-@pytest.fixture()
+@pytest.fixture
def mock_add_user_to_organization(mocker, organization_one, api_user_active):
def _add_user(organization_id, user_id):
return api_user_active
@@ -2919,7 +2919,7 @@ def mock_add_user_to_organization(mocker, organization_one, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_update_organization(mocker):
def _update_org(org, **kwargs):
return
@@ -2929,7 +2929,7 @@ def mock_update_organization(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_organizations_and_services_for_user(
mocker, organization_one, api_user_active
):
@@ -2942,7 +2942,7 @@ def mock_get_organizations_and_services_for_user(
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_non_empty_organizations_and_services_for_user(
mocker, organization_one, api_user_active
):
@@ -2989,7 +2989,7 @@ def mock_get_non_empty_organizations_and_services_for_user(
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_just_services_for_user(mocker, organization_one, api_user_active):
def _make_services(name, trial_mode=False):
return [
@@ -3014,7 +3014,7 @@ def mock_get_just_services_for_user(mocker, organization_one, api_user_active):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_empty_organizations_and_one_service_for_user(
mocker, organization_one, api_user_active
):
@@ -3036,7 +3036,7 @@ def mock_get_empty_organizations_and_one_service_for_user(
)
-@pytest.fixture()
+@pytest.fixture
def mock_create_event(mocker):
"""
This should be used whenever your code is calling `flask_login.login_user`
@@ -3053,19 +3053,19 @@ def url_for_endpoint_with_token(endpoint, token, next=None):
return url_for(endpoint, token=token, next=next)
-@pytest.fixture()
+@pytest.fixture
def mock_get_template_folders(mocker):
return mocker.patch(
"app.template_folder_api_client.get_template_folders", return_value=[]
)
-@pytest.fixture()
+@pytest.fixture
def mock_move_to_template_folder(mocker):
return mocker.patch("app.template_folder_api_client.move_to_folder")
-@pytest.fixture()
+@pytest.fixture
def mock_create_template_folder(mocker):
return mocker.patch(
"app.template_folder_api_client.create_template_folder",
@@ -3073,7 +3073,7 @@ def mock_create_template_folder(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_and_organization_counts(mocker):
return mocker.patch(
"app.status_api_client.get_count_of_live_services_and_organizations",
@@ -3084,7 +3084,7 @@ def mock_get_service_and_organization_counts(mocker):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_service_history(mocker):
return mocker.patch(
"app.service_api_client.get_service_history",
@@ -3497,7 +3497,7 @@ def create_template(
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_invited_user_by_id(mocker, sample_invite):
def _get(invited_user_id):
return sample_invite
@@ -3508,7 +3508,7 @@ def mock_get_invited_user_by_id(mocker, sample_invite):
)
-@pytest.fixture()
+@pytest.fixture
def mock_get_invited_org_user_by_id(mocker, sample_org_invite):
def _get(invited_org_user_id):
return sample_org_invite
@@ -3519,19 +3519,19 @@ def mock_get_invited_org_user_by_id(mocker, sample_org_invite):
)
-@pytest.fixture()
+@pytest.fixture
def fake_markdown_file():
input = "#Test"
return input
-@pytest.fixture()
+@pytest.fixture
def fake_jinja_template():
input = "{% if True %}True{% endif %}"
return input
-@pytest.fixture()
+@pytest.fixture
def fake_soup_template():
input = "Test"
return input
diff --git a/tests/end_to_end/conftest.py b/tests/end_to_end/conftest.py
index 30ca363f5..64e48a8fd 100644
--- a/tests/end_to_end/conftest.py
+++ b/tests/end_to_end/conftest.py
@@ -68,7 +68,7 @@ def login_for_end_to_end_testing(browser):
context.storage_state(path=auth_state_path)
-@pytest.fixture()
+@pytest.fixture
def end_to_end_authenticated_context(browser):
# Create and load a previously authenticated context for Playwright E2E
# tests.
@@ -82,13 +82,13 @@ def end_to_end_authenticated_context(browser):
return context
-@pytest.fixture()
+@pytest.fixture
def end_to_end_context(browser):
context = browser.new_context()
return context
-@pytest.fixture()
+@pytest.fixture
def authenticated_page(end_to_end_context):
# Open a new page and go to the site.
page = end_to_end_context.new_page()
diff --git a/tests/notifications_utils/clients/redis/test_redis_client.py b/tests/notifications_utils/clients/redis/test_redis_client.py
index ac228849d..909f7685f 100644
--- a/tests/notifications_utils/clients/redis/test_redis_client.py
+++ b/tests/notifications_utils/clients/redis/test_redis_client.py
@@ -8,17 +8,17 @@ from freezegun import freeze_time
from notifications_utils.clients.redis.redis_client import RedisClient, prepare_value
-@pytest.fixture()
+@pytest.fixture
def mocked_redis_pipeline():
return Mock()
-@pytest.fixture()
+@pytest.fixture
def delete_mock():
return Mock(return_value=4)
-@pytest.fixture()
+@pytest.fixture
def mocked_redis_client(app, mocked_redis_pipeline, delete_mock, mocker):
app.config["REDIS_ENABLED"] = True
@@ -46,7 +46,7 @@ def mocked_redis_client(app, mocked_redis_pipeline, delete_mock, mocker):
return redis_client
-@pytest.fixture()
+@pytest.fixture
def failing_redis_client(mocked_redis_client, delete_mock):
# nota bene: using KeyError because flake8 thinks Exception
# and BaseException are too broad
diff --git a/tests/notifications_utils/clients/redis/test_request_cache.py b/tests/notifications_utils/clients/redis/test_request_cache.py
index 472d9398b..cab88a827 100644
--- a/tests/notifications_utils/clients/redis/test_request_cache.py
+++ b/tests/notifications_utils/clients/redis/test_request_cache.py
@@ -4,7 +4,7 @@ from notifications_utils.clients.redis import RequestCache
from notifications_utils.clients.redis.redis_client import RedisClient
-@pytest.fixture()
+@pytest.fixture
def mocked_redis_client(app):
app.config["REDIS_ENABLED"] = True
redis_client = RedisClient()
@@ -12,7 +12,7 @@ def mocked_redis_client(app):
return redis_client
-@pytest.fixture()
+@pytest.fixture
def cache(mocked_redis_client):
return RequestCache(mocked_redis_client)
diff --git a/tests/notifications_utils/conftest.py b/tests/notifications_utils/conftest.py
index 0b8f3bce8..7150b1486 100644
--- a/tests/notifications_utils/conftest.py
+++ b/tests/notifications_utils/conftest.py
@@ -9,7 +9,7 @@ class FakeService:
id = "1234"
-@pytest.fixture()
+@pytest.fixture
def app():
flask_app = Flask(__name__)
ctx = flask_app.app_context()
@@ -20,7 +20,7 @@ def app():
ctx.pop()
-@pytest.fixture()
+@pytest.fixture
def celery_app(mocker):
app = Flask(__name__)
app.config["CELERY"] = {"broker_url": "foo"}
@@ -39,7 +39,7 @@ def sample_service():
return FakeService()
-@pytest.fixture()
+@pytest.fixture
def rmock():
with requests_mock.mock() as rmock:
yield rmock
|