From 8a53b057bc1b6922a2a3a438b09ca8ab9b8f0dc6 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Mon, 6 May 2024 19:03:48 -0700
Subject: [PATCH 01/11] Update README.md
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index f211f6f26..38d275c63 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,5 @@
# Lab 5 - Starter
+
+
+### Name: Evan Kauh
+### Partners: None
From 9c45f398517143390feb46dde689e0c6595f5942 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 00:40:04 -0700
Subject: [PATCH 02/11] expose + adding package.json
---
.gitignore | 3 +-
assets/scripts/expose.js | 68 ++++++++++++++++++++++++++++++++++++++--
expose.html | 2 +-
package.json | 13 ++++++++
4 files changed, 82 insertions(+), 4 deletions(-)
create mode 100644 package.json
diff --git a/.gitignore b/.gitignore
index 496ee2ca6..58b805fea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-.DS_Store
\ No newline at end of file
+.DS_Store
+node_modules/
\ No newline at end of file
diff --git a/assets/scripts/expose.js b/assets/scripts/expose.js
index 962d7a33c..fd8b0fbdf 100644
--- a/assets/scripts/expose.js
+++ b/assets/scripts/expose.js
@@ -1,7 +1,71 @@
// expose.js
-
+var currHorn;
window.addEventListener('DOMContentLoaded', init);
function init() {
- // TODO
+ const hornSelect = document.getElementById('horn-select');
+ const exposeImage = document.querySelector('#expose img');
+ const volume = document.getElementById('volume');
+ const volumeImage = document.querySelector('#volume-controls img');
+ const soundButton = document.querySelector('button');
+ const audio = document.querySelector('audio');
+ const jsConfetti = new JSConfetti();
+
+
+ hornSelect.addEventListener('change', function() {
+ updateHorn(this.value, exposeImage, audio);
+ });
+
+ volume.addEventListener('input', function(){
+ audio.volume = this.value / 100;
+ updateVolumeImage(this.value, volumeImage);
+ });
+
+ soundButton.addEventListener('click', function(){
+ audio.play();
+ if (currHorn == 'party-horn'){
+ jsConfetti.addConfetti();
+ }
+ });
+}
+
+function updateHorn(hornType, exposeImage, audio) {
+ currHorn = hornType;
+ switch (hornType) {
+ case 'air-horn':
+ exposeImage.src = 'assets/images/air-horn.svg';
+ exposeImage.alt = 'Air Horn';
+ audio.src = 'assets/audio/air-horn.mp3';
+ break;
+ case 'car-horn':
+ exposeImage.src = 'assets/images/car-horn.svg';
+ exposeImage.alt = 'Car Horn';
+ audio.src = 'assets/audio/car-horn.mp3';
+ break;
+ case 'party-horn':
+ exposeImage.src = 'assets/images/party-horn.svg';
+ exposeImage.alt = 'Party Horn';
+ audio.src = 'assets/audio/party-horn.mp3';
+ break;
+ default:
+ exposeImage.src = 'assets/images/no-image.png';
+ exposeImage.alt = 'No image selected';
+ break;
+ }
+}
+
+function updateVolumeImage(volLevel, volumeImage) {
+ if (volLevel == 0){
+ volumeImage.src = 'assets/icons/volume-level-0.svg';
+ volumeImage.alt = 'Volume level 0';
+ } else if (volLevel < 33) {
+ volumeImage.src = 'assets/icons/volume-level-1.svg';
+ volumeImage.alt = 'Volume level 1';
+ } else if (volLevel < 67) {
+ volumeImage.src = 'assets/icons/volume-level-2.svg';
+ volumeImage.alt = 'Volume level 2';
+ } else {
+ volumeImage.src = 'assets/icons/volume-level-3.svg';
+ volumeImage.alt = 'Volume level 3';
+ }
}
\ No newline at end of file
diff --git a/expose.html b/expose.html
index 50e011c9b..e45f39f67 100644
--- a/expose.html
+++ b/expose.html
@@ -32,7 +32,7 @@
diff --git a/package.json b/package.json
new file mode 100644
index 000000000..8d5589ef5
--- /dev/null
+++ b/package.json
@@ -0,0 +1,13 @@
+{
+ "devDependencies": {
+ "jest": "^29.7.0"
+ },
+ "scripts": {
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
+ },
+ "type": "module",
+ "jest": {
+ "transform": {},
+ "verbose": true
+ }
+ }
\ No newline at end of file
From f7d8f968777057679c0f314ce280aec5de835e27 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 11:19:24 -0700
Subject: [PATCH 03/11] update explore.js
---
assets/scripts/explore.js | 57 +++++++++++++++++++++++++++++++++++++--
1 file changed, 55 insertions(+), 2 deletions(-)
diff --git a/assets/scripts/explore.js b/assets/scripts/explore.js
index 777f5ee3a..15534937b 100644
--- a/assets/scripts/explore.js
+++ b/assets/scripts/explore.js
@@ -2,6 +2,59 @@
window.addEventListener('DOMContentLoaded', init);
+
+const synth = window.speechSynthesis;
+var text;
+var voices = [];
+var voiceSelect = document.getElementById('voice-select');
+
function init() {
- // TODO
-}
\ No newline at end of file
+ const button = document.querySelector('button');
+ const smileImage = document.querySelector('#explore img');
+ const textarea = document.getElementById('text-to-speak');
+
+
+ if (speechSynthesis.onvoiceschanged !== undefined) {
+ speechSynthesis.onvoiceschanged = populateVoiceList;
+ }
+
+ populateVoiceList();
+ console.log("This Runs");
+
+ button.addEventListener('click', function(){
+ text = textarea.value;
+ speak(text, smileImage, voiceSelect.value);
+ });
+}
+
+
+function populateVoiceList(){
+ voices = speechSynthesis.getVoices();
+
+ for (var i = 0; i < voices.length; i++){
+ var option = document.createElement('option');
+ option.value = i;
+ option.innerHTML= voices[i].name + '(' + voices[i].lang + ')';
+ voiceSelect.appendChild(option);
+ }
+}
+
+function speak(text, smileImage, selectedVoiceName){
+ const utterThis = new SpeechSynthesisUtterance(text);
+
+ utterThis.voice = voices[selectedVoiceName];
+
+ synth.speak(utterThis);
+
+ utterThis.onstart = function(){
+ smileImage.src = 'assets/images/smiling-open.png';
+ }
+
+ utterThis.onend = function(){
+ smileImage.src = 'assets/images/smiling.png';
+ }
+
+ utterThis.onerror = function(event) {
+ smileImage.src = 'assets/images/smiling.png';
+ }
+}
From ec9fad03f8bb53057d1456a4fb51985ffd72d724 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 11:35:45 -0700
Subject: [PATCH 04/11] jest fix
---
README.md | 6 +
package-lock.json | 3483 +++++++++++++++++++++++++++++++++++++++++++++
package.json | 10 +-
3 files changed, 3494 insertions(+), 5 deletions(-)
create mode 100644 package-lock.json
diff --git a/README.md b/README.md
index 38d275c63..e558531fd 100644
--- a/README.md
+++ b/README.md
@@ -3,3 +3,9 @@
### Name: Evan Kauh
### Partners: None
+
+
+
+### Check Your Understanding:
+1. Yes, since unit tests help ensure that individual components of the software perform as expected in isolation.
+2. Yes, since a unit test can precisely measure whether this limit is enforced correctly under various conditions.
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..e2cb7d4d1
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,3483 @@
+{
+ "name": "Lab5_Starter",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "devDependencies": {
+ "jest": "^29.7.0"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz",
+ "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz",
+ "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
+ "dev": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.24.2",
+ "@babel/generator": "^7.24.5",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.24.5",
+ "@babel/helpers": "^7.24.5",
+ "@babel/parser": "^7.24.5",
+ "@babel/template": "^7.24.0",
+ "@babel/traverse": "^7.24.5",
+ "@babel/types": "^7.24.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz",
+ "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.5",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.24.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
+ "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
+ "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.24.3",
+ "@babel/helper-simple-access": "^7.24.5",
+ "@babel/helper-split-export-declaration": "^7.24.5",
+ "@babel/helper-validator-identifier": "^7.24.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
+ "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
+ "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
+ "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
+ "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
+ "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz",
+ "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.24.0",
+ "@babel/traverse": "^7.24.5",
+ "@babel/types": "^7.24.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
+ "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.24.5",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz",
+ "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
+ "dev": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz",
+ "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz",
+ "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
+ "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.24.0",
+ "@babel/types": "^7.24.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
+ "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.24.2",
+ "@babel/generator": "^7.24.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.24.5",
+ "@babel/parser": "^7.24.5",
+ "@babel/types": "^7.24.5",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz",
+ "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.24.1",
+ "@babel/helper-validator-identifier": "^7.24.5",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
+ },
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/reporters": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.7.0",
+ "jest-config": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-resolve-dependencies": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+ "dev": true,
+ "dependencies": {
+ "expect": "^29.7.0",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.6.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "dev": true,
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/source-map": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-result": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
+ "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "dev": true
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.12.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz",
+ "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "dev": true
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dev": true,
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "dev": true
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
+ "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/transform": "^29.7.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.6.3",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
+ }
+ },
+ "node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
+ "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
+ "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "dependencies": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001616",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz",
+ "integrity": "sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz",
+ "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==",
+ "dev": true
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true,
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "dev": true
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "node_modules/create-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
+ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "prompts": "^2.0.1"
+ },
+ "bin": {
+ "create-jest": "bin/create-jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dedent": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
+ "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
+ "dev": true,
+ "peerDependencies": {
+ "babel-plugin-macros": "^3.1.0"
+ },
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.758",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.758.tgz",
+ "integrity": "sha512-/o9x6TCdrYZBMdGeTifAP3wlF/gVT+TtWJe3BSmtNh92Mw81U9hrYwW9OAGUh+sEOX/yz5e34sksqRruZbjYrw==",
+ "dev": true
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/expect-utils": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dev": true,
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "dev": true,
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
+ "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
+ "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
+ "dev": true,
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.7.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
+ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^5.0.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
+ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^1.0.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.7.0",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.7.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
+ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "create-jest": "^29.7.0",
+ "exit": "^0.1.2",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "yargs": "^17.3.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-jest": "^29.7.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "dev": true,
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
+ "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
+ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
+ "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
+ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
+ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
+ "dev": true,
+ "dependencies": {
+ "jest-regex-util": "^29.6.3",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
+ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/environment": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-leak-detector": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-resolve": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
+ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/globals": "^29.7.0",
+ "@jest/source-map": "^29.6.3",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
+ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.7.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/semver": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
+ "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
+ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.7.0",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
+ "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "dependencies": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+ "dev": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-locate/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dev": true,
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pure-rand": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
+ "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ]
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "dev": true
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "dependencies": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dev": true,
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.15",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz",
+ "integrity": "sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
+ "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "dependencies": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index 8d5589ef5..f928e5ed4 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,13 @@
{
"devDependencies": {
- "jest": "^29.7.0"
+ "jest": "^29.7.0"
},
"scripts": {
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
},
"type": "module",
"jest": {
- "transform": {},
- "verbose": true
+ "transform": {},
+ "verbose": true
}
- }
\ No newline at end of file
+}
From 9e6708790cb4b398fd211e03f45da98f8762b4a3 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 12:30:11 -0700
Subject: [PATCH 05/11] adding unit tests
---
__tests__/sum.test.js | 4 +-
__tests__/unit.test.js | 88 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 91 insertions(+), 1 deletion(-)
diff --git a/__tests__/sum.test.js b/__tests__/sum.test.js
index a98ab36e7..a1e65ed16 100644
--- a/__tests__/sum.test.js
+++ b/__tests__/sum.test.js
@@ -1,5 +1,7 @@
// sum.test.js
+import { sum } from '../code-to-unit-test/sum';
+
test('adds 1 + 2 to equal 3', () => {
- // TODO
+ expect(sum(1,2)).toBe(3);
});
diff --git a/__tests__/unit.test.js b/__tests__/unit.test.js
index 118a476e0..94d662398 100644
--- a/__tests__/unit.test.js
+++ b/__tests__/unit.test.js
@@ -9,3 +9,91 @@ import {
} from '../code-to-unit-test/unit-test-me';
// TODO - Part 2
+
+// isPhoneNumber() unit tests
+test('checks if 646-467-3046 is a phone number', () => {
+ expect(isPhoneNumber('646-467-3046')).toBe(true);
+});
+
+test('checks if 000-000-0000 is a phone number', () => {
+ expect(isPhoneNumber('000-000-0000')).toBe(true);
+});
+
+test('checks if aaa-aaa-aaaa is a phone number', () => {
+ expect(isPhoneNumber('aaa-aaa-aaaa')).toBe(false);
+});
+
+test('checks if 123-123 is a phone number', () => {
+ expect(isPhoneNumber('123-123')).toBe(false);
+});
+
+
+// isEmail() unit tests
+test('checks if evankauh@gmail.com is an email', () => {
+ expect(isEmail('evankauh@gmail.com')).toBe(true);
+});
+
+test('checks if hello@yahoo.net is an email', () => {
+ expect(isEmail('123@yahoo.net')).toBe(true);
+});
+
+test('checks if evan.kauh.gmail.com is an email', () => {
+ expect(isEmail('evan.kauh.gmail.com')).toBe(false);
+});
+
+test('checks if word is an email', () => {
+ expect(isEmail('word@gmailcom')).toBe(false);
+});
+
+
+// isStrongPassword unit tests
+test('checks if a1234 is strong password', () => {
+ expect(isStrongPassword('a1234')).toBe(true);
+});
+
+test('checks if Evan_123_Kauh is strong password', () => {
+ expect(isStrongPassword('Evan_123_Kauh')).toBe(true);
+});
+
+test('checks if 1234a is strong password', () => {
+ expect(isStrongPassword('1234a')).toBe(false);
+});
+
+test('checks if isstrongpassword will return false for passwords over 15 characters', () => {
+ expect(isStrongPassword('ThisPasswordIsWayWayWayTooLong')).toBe(false);
+});
+
+
+// isDate unit tests
+test('checks if 12/03/2002 is a date', () => {
+ expect(isDate('12/03/2002')).toBe(true);
+});
+
+test('checks if 1/2/9999 is a date', () => {
+ expect(isDate('1/2/9999')).toBe(true);
+});
+
+test('checks if 12032002 is a date', () => {
+ expect(isDate('12032002')).toBe(false);
+});
+
+test('checks if 12/03/123 is a date', () => {
+ expect(isDate('12/03/123')).toBe(false);
+});
+
+// isHexColor unit tests
+test('checks if FFF is a Hex Color', () => {
+ expect(isHexColor('FFF')).toBe(true);
+});
+
+test('checks if 123a44 is a Hex Color', () => {
+ expect(isHexColor('123a44')).toBe(true);
+});
+
+test('checks if 1 is a Hex Color', () => {
+ expect(isHexColor('1')).toBe(false);
+});
+
+test('checks if 3333333 is a Hex Color', () => {
+ expect(isHexColor('3333333')).toBe(false);
+});
\ No newline at end of file
From 4ee9bf85d40b272e7019ac0f8a7ad634997b8547 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 12:35:01 -0700
Subject: [PATCH 06/11] Update README.md
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index e558531fd..62434dabb 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,11 @@
### Name: Evan Kauh
### Partners: None
+### Expose.html link:
+https://evanykauh.github.io/Lab5_Starter/expose.html
+### Explore.html link:
+https://evanykauh.github.io/Lab5_Starter/explore.html
### Check Your Understanding:
1. Yes, since unit tests help ensure that individual components of the software perform as expected in isolation.
From 15501082fa36d2ad5737ae2178d7586db2e6dd72 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 12:36:20 -0700
Subject: [PATCH 07/11] Create main.yml
---
.github/workflows/main.yml | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 .github/workflows/main.yml
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 000000000..0f9ccffe6
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,13 @@
+name: Unit Tests # name of the test
+
+on: [push] # the Github Action will activate "on" the event that you "push" to the repo
+
+jobs: # the things being executed
+ tests: # the name of your status check, will become important when you do branch protection
+ runs-on: ubuntu-latest # which device on Github's server that you are running the Actions on
+ steps:
+ - uses: actions/checkout@v4 # using version 4 of Actions
+ - name: Install Dependencies
+ run: npm install
+ - name: Unit Test
+ run: npm test ./__tests__/sum.test.js # the actual testing line
From 4c19e871b0ddf7d8b590cded6c20b6ff0ce4fdea Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 12:37:59 -0700
Subject: [PATCH 08/11] testing branch: should be wrong
---
__tests__/sum.test.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/__tests__/sum.test.js b/__tests__/sum.test.js
index a1e65ed16..c318bc3c3 100644
--- a/__tests__/sum.test.js
+++ b/__tests__/sum.test.js
@@ -3,5 +3,5 @@ import { sum } from '../code-to-unit-test/sum';
test('adds 1 + 2 to equal 3', () => {
- expect(sum(1,2)).toBe(3);
+ expect(sum(1,2)).toBe(4);
});
From 010e516ee2cb3e20ef1bd11271aa5553212cd6cc Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 14:45:01 -0700
Subject: [PATCH 09/11] fix sum error
---
__tests__/sum.test.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/__tests__/sum.test.js b/__tests__/sum.test.js
index c318bc3c3..a1e65ed16 100644
--- a/__tests__/sum.test.js
+++ b/__tests__/sum.test.js
@@ -3,5 +3,5 @@ import { sum } from '../code-to-unit-test/sum';
test('adds 1 + 2 to equal 3', () => {
- expect(sum(1,2)).toBe(4);
+ expect(sum(1,2)).toBe(3);
});
From 9d24f136c61b5ed640cce500c05a47579cae755d Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 14:49:05 -0700
Subject: [PATCH 10/11] Update main.yml
---
.github/workflows/main.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 0f9ccffe6..edc978670 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -11,3 +11,5 @@ jobs: # the things being executed
run: npm install
- name: Unit Test
run: npm test ./__tests__/sum.test.js # the actual testing line
+ run: npm test ./__tests__/unit.test.js
+
From c699ecddfb00a528c260390e762cb7265b2fcd80 Mon Sep 17 00:00:00 2001
From: evanykauh <94486303+evanykauh@users.noreply.github.com>
Date: Tue, 7 May 2024 14:50:12 -0700
Subject: [PATCH 11/11] merged and myError photo upload
---
merged.png | Bin 0 -> 489799 bytes
myError.png | Bin 0 -> 489296 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 merged.png
create mode 100644 myError.png
diff --git a/merged.png b/merged.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d30cdfc4730b8d6079f2d96a1335f4258212d6b
GIT binary patch
literal 489799
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
z
A;P3!X#FB9}Eqm|5zVr0MlNMejEFqK<8x
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