From c82722dadb6f7dcac5a6d5ae5d3080cd05ce820f Mon Sep 17 00:00:00 2001 From: Alex Bean Date: Fri, 16 Apr 2021 12:01:16 +0200 Subject: [PATCH 1/3] feat: create response without signature --- package-lock.json | 1591 ++----------------------------- src/AuxDidAuth.ts | 57 ++ src/SiopDidAuth.ts | 20 + src/interfaces/DIDAuth.types.ts | 11 + src/interfaces/Errors.ts | 1 + validatedid-did-auth-2.3.0.tgz | Bin 0 -> 100002 bytes 6 files changed, 146 insertions(+), 1534 deletions(-) create mode 100644 validatedid-did-auth-2.3.0.tgz diff --git a/package-lock.json b/package-lock.json index 98ddf30..efd94e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "@validatedid/did-auth", - "version": "2.2.3", + "version": "2.3.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -96,10 +96,6 @@ }, "engines": { "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" } }, "node_modules/@babel/core/node_modules/@babel/code-frame": { @@ -159,9 +155,6 @@ "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { @@ -387,9 +380,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-bigint": { @@ -399,9 +389,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-properties": { @@ -411,9 +398,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-meta": { @@ -423,9 +407,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-json-strings": { @@ -435,9 +416,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { @@ -447,9 +425,6 @@ "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": { @@ -459,9 +434,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-numeric-separator": { @@ -471,9 +443,6 @@ "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": { @@ -483,9 +452,6 @@ "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": { @@ -495,9 +461,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-chaining": { @@ -507,9 +470,6 @@ "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": { @@ -519,16 +479,12 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/polyfill": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", - "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", "dependencies": { "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" @@ -537,9 +493,7 @@ "node_modules/@babel/polyfill/node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.", - "hasInstallScript": true + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "node_modules/@babel/runtime": { "version": "7.13.10", @@ -922,9 +876,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { @@ -940,16 +891,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.1.0.tgz", "integrity": "sha512-N/W9Sbn1/C6Kh2kuHRjf/hX6euMK4+9zdJRBB8sDWmihVntjUAfxbusGZKzDQD8i3szAHhTz8K7XADV5iFNfJw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/address": "^5.1.0", "@ethersproject/bignumber": "^5.1.0", @@ -966,16 +907,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.1.0.tgz", "integrity": "sha512-8dJUnT8VNvPwWhYIau4dwp7qe1g+KgdRm4XTWvjkI9gAT2zZa90WF5ApdZ3vl1r6NDmnn6vUVvyphClRZRteTQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bignumber": "^5.1.0", "@ethersproject/bytes": "^5.1.0", @@ -990,16 +921,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.1.0.tgz", "integrity": "sha512-qQDMkjGZSSJSKl6AnfTgmz9FSnzq3iEoEbHTYwjDlEAv+LNP7zd4ixCcVWlWyk+2siud856M5CRhAmPdupeN9w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abstract-provider": "^5.1.0", "@ethersproject/bignumber": "^5.1.0", @@ -1012,16 +933,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.1.0.tgz", "integrity": "sha512-rfWQR12eHn2cpstCFS4RF7oGjfbkZb0oqep+BfrT+gWEGWG2IowJvIsacPOvzyS1jhNF4MQ4BS59B04Mbovteg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bignumber": "^5.1.0", "@ethersproject/bytes": "^5.1.0", @@ -1034,16 +945,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.1.0.tgz", "integrity": "sha512-npD1bLvK4Bcxz+m4EMkx+F8Rd7CnqS9DYnhNu0/GlQBXhWjvfoAZzk5HJ0f1qeyp8d+A86PTuzLOGOXf4/CN8g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0" } @@ -1052,16 +953,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.1.0.tgz", "integrity": "sha512-vBKr39bum7DDbOvkr1Sj19bRMEPA4FnST6Utt6xhDzI7o7L6QNkDn2yrCfP+hnvJGhZFKtLygWwqlTBZoBXYLg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/properties": "^5.1.0" @@ -1071,16 +962,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.1.0.tgz", "integrity": "sha512-wUvQlhTjPjFXIdLPOuTrFeQmSa6Wvls1bGXQNQWvB/SEn1NsTCE8PmumIEZxmOPjSHl1eV2uyHP5jBm5Cgj92Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/logger": "^5.1.0", @@ -1096,16 +977,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.1.0.tgz", "integrity": "sha512-sGTxb+LVjFxJcJeUswAIK6ncgOrh3D8c192iEJd7mLr95V6du119rRfYT/b87WPkZ5I3gRBUYIYXtdgCWACe8g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/logger": "^5.1.0" } @@ -1114,16 +985,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.1.0.tgz", "integrity": "sha512-0/SuHrxc8R8k+JiLmJymxHJbojUDWBQqO+b+XFdwaP0jGzqC09YDy/CAlSZB6qHsBifY8X3I89HcK/oMqxRdBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bignumber": "^5.1.0" } @@ -1132,16 +993,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.1.0.tgz", "integrity": "sha512-dvTMs/4XGSc57cYOW0KjgX1NdTujUu7mNb6PQdJWg08m9ULzPyGZuBkFJnijBcp6vTOCQ59RwjboWgNWw393og==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abi": "^5.1.0", "@ethersproject/abstract-provider": "^5.1.0", @@ -1159,16 +1010,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.1.0.tgz", "integrity": "sha512-fNwry20yLLPpnRRwm3fBL+2ksgO+KMadxM44WJmRIoTKzy4269+rbq9KFoe2LTqq2CXJM2CE70beGaNrpuqflQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abstract-signer": "^5.1.0", "@ethersproject/address": "^5.1.0", @@ -1184,16 +1025,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.1.0.tgz", "integrity": "sha512-obIWdlujloExPHWJGmhJO/sETOOo7SEb6qemV4f8kyFoXg+cJK+Ta9SvBrj7hsUK85n3LZeZJZRjjM7oez3Clg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abstract-signer": "^5.1.0", "@ethersproject/basex": "^5.1.0", @@ -1213,16 +1044,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.1.0.tgz", "integrity": "sha512-00n2iBy27w8zrGZSiU762UOVuzCQZxUZxopsZC47++js6xUFuI74DHcJ5K/2pddlF1YBskvmMuboEu1geK8mnA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abstract-signer": "^5.1.0", "@ethersproject/address": "^5.1.0", @@ -1243,16 +1064,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.1.0.tgz", "integrity": "sha512-vrTB1W6AEYoadww5c9UyVJ2YcSiyIUTNDRccZIgwTmFFoSHwBtcvG1hqy9RzJ1T0bMdATbM9Hfx2mJ6H0i7Hig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "js-sha3": "0.5.7" @@ -1266,32 +1077,12 @@ "node_modules/@ethersproject/logger": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.1.0.tgz", - "integrity": "sha512-wtUaD1lBX10HBXjjKV9VHCBnTdUaKQnQ2XSET1ezglqLdPdllNOIlLfhyCRqXm5xwcjExVI5ETokOYfjPtaAlw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] + "integrity": "sha512-wtUaD1lBX10HBXjjKV9VHCBnTdUaKQnQ2XSET1ezglqLdPdllNOIlLfhyCRqXm5xwcjExVI5ETokOYfjPtaAlw==" }, "node_modules/@ethersproject/networks": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.1.0.tgz", "integrity": "sha512-A/NIrIED/G/IgU1XUukOA3WcFRxn2I4O5GxsYGA5nFlIi+UZWdGojs85I1VXkR1gX9eFnDXzjE6OtbgZHjFhIA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/logger": "^5.1.0" } @@ -1300,16 +1091,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.1.0.tgz", "integrity": "sha512-B8cUbHHTgs8OtgJIafrRcz/YPDobVd5Ru8gTnShOiM9EBuFpYHQpq3+8iQJ6pyczDu6HP/oc/njAsIBhwFZYew==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/sha2": "^5.1.0" @@ -1319,16 +1100,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.1.0.tgz", "integrity": "sha512-519KKTwgmH42AQL3+GFV3SX6khYEfHsvI6v8HYejlkigSDuqttdgVygFTDsGlofNFchhDwuclrxQnD5B0YLNMg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/logger": "^5.1.0" } @@ -1337,16 +1108,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.1.0.tgz", "integrity": "sha512-FjpZL2lSXrYpQDg2fMjugZ0HjQD9a+2fOOoRhhihh+Z+qi/xZ8vIlPoumrEP1DzIG4DBV6liUqLNqnX2C6FIAA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abstract-provider": "^5.1.0", "@ethersproject/abstract-signer": "^5.1.0", @@ -1373,16 +1134,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.1.0.tgz", "integrity": "sha512-+uuczLQZ4+no9cP6TCoCktXx0u2YbNaRT7lRkSt12d8263e702f0u+4JnnRO8Qmv5nylWJebnqCHzyxP+6mLqw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/logger": "^5.1.0" @@ -1392,16 +1143,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.1.0.tgz", "integrity": "sha512-vDTyHIwNPrecy55gKGZ47eJZhBm8LLBxihzi5ou+zrSvYTpkSTWRcKUlXFDFQVwfWB+P5PGyERAdiDEI76clxw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/logger": "^5.1.0" @@ -1411,16 +1152,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.1.0.tgz", "integrity": "sha512-+fNSeZRstOpdRJpdGUkRONFCaiAqWkc91zXgg76Nlp5ndBQE25Kk5yK8gCPG1aGnCrbariiPr5j9DmrYH78JCA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/logger": "^5.1.0", @@ -1440,16 +1171,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.1.0.tgz", "integrity": "sha512-tE5LFlbmdObG8bY04NpuwPWSRPgEswfxweAI1sH7TbP0ml1elNfqcq7ii/3AvIN05i5U0Pkm3Tf8bramt8MmLw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/logger": "^5.1.0", @@ -1467,16 +1188,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.1.0.tgz", "integrity": "sha512-kPodsGyo9zg1g9XSXp1lGhFaezBAUUsAUB1Vf6OkppE5Wksg4Et+x3kG4m7J/uShDMP2upkJtHNsIBK2XkVpKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bignumber": "^5.1.0", "@ethersproject/bytes": "^5.1.0", @@ -1489,16 +1200,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.1.0.tgz", "integrity": "sha512-perBZy0RrmmL0ejiFGUOlBVjMsUceqLut3OBP3zP96LhiJWWbS8u1NqQVgN4/Gyrbziuda66DxiQocXhsvx+Sw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/constants": "^5.1.0", @@ -1509,16 +1210,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.1.0.tgz", "integrity": "sha512-s10crRLZEA0Bgv6FGEl/AKkTw9f+RVUrlWDX1rHnD4ZncPFeiV2AJr4nT7QSUhxJdFPvjyKRDb3nEH27dIqcPQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/address": "^5.1.0", "@ethersproject/bignumber": "^5.1.0", @@ -1535,16 +1226,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.1.0.tgz", "integrity": "sha512-isvJrx6qG0nKWfxsGORNjmOq/nh175fStfvRTA2xEKrGqx8JNJY83fswu4GkILowfriEM/eYpretfJnfzi7YhA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bignumber": "^5.1.0", "@ethersproject/constants": "^5.1.0", @@ -1555,16 +1236,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.1.0.tgz", "integrity": "sha512-ULmUtiYQLTUS+y3DgkLzRhFEK10zMwmjOthnjiZxee3Q/MVwr3rnmuAnXIUZrPjna6hvUPnyRIdW5XuF0Ld0YQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abstract-provider": "^5.1.0", "@ethersproject/abstract-signer": "^5.1.0", @@ -1587,16 +1258,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.1.0.tgz", "integrity": "sha512-LTeluWgTq04+RNqAkVhpydPcRZK/kKxD2Vy7PYGrAD27ABO9kTqTBKwiOuzTyAHKUQHfnvZbXmxBXJAGViSDcA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/base64": "^5.1.0", "@ethersproject/bytes": "^5.1.0", @@ -1609,16 +1270,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.1.0.tgz", "integrity": "sha512-NsUCi/TpBb+oTFvMSccUkJGtp5o/84eOyqp5q5aBeiNBSLkYyw21znRn9mAmxZgySpxgruVgKbaapnYPgvctPQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/bytes": "^5.1.0", "@ethersproject/hash": "^5.1.0", @@ -1678,9 +1329,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { @@ -1841,7 +1489,7 @@ "node": ">= 10.14.2" }, "optionalDependencies": { - "node-notifier": ">=8.0.1" + "node-notifier": "^8.0.0" } }, "node_modules/@jest/source-map": { @@ -2477,19 +2125,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, "node_modules/@typescript-eslint/experimental-utils": { @@ -2507,13 +2142,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" } }, "node_modules/@typescript-eslint/parser": { @@ -2529,18 +2157,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, "node_modules/@typescript-eslint/scope-manager": { @@ -2554,10 +2170,6 @@ }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/types": { @@ -2567,10 +2179,6 @@ "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/typescript-estree": { @@ -2589,15 +2197,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, "node_modules/@typescript-eslint/visitor-keys": { @@ -2611,10 +2210,6 @@ }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@validatedid/did-jwt": { @@ -2681,10 +2276,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "dev": true }, "node_modules/acorn-walk": { "version": "7.2.0", @@ -2729,10 +2321,6 @@ "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ansi-colors": { @@ -2754,9 +2342,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { @@ -2766,9 +2351,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { @@ -2790,9 +2372,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { @@ -2823,20 +2402,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -2893,9 +2458,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-union": { @@ -2928,28 +2490,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/arrify": { @@ -2991,12 +2531,20 @@ "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.1.1.tgz", "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", "dependencies": { - "pvutils": "latest" + "pvutils": "^1.0.17" }, "engines": { "node": ">=6.0.0" } }, + "node_modules/asn1js/node_modules/pvutils": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", + "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -3015,13 +2563,6 @@ "node": ">=0.10.0" } }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true, - "peer": true - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -3093,16 +2634,6 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, - "node_modules/axe-core": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", - "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/axios": { "version": "0.21.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", @@ -3111,13 +2642,6 @@ "follow-redirects": "^1.10.0" } }, - "node_modules/axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true, - "peer": true - }, "node_modules/babel-jest": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", @@ -3135,9 +2659,6 @@ }, "engines": { "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/babel-plugin-istanbul": { @@ -3189,9 +2710,6 @@ "@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": { @@ -3205,9 +2723,6 @@ }, "engines": { "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/babel-runtime": { @@ -3222,9 +2737,7 @@ "node_modules/babel-runtime/node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.", - "hasInstallScript": true + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "node_modules/babel-runtime/node_modules/regenerator-runtime": { "version": "0.11.1", @@ -3278,21 +2791,7 @@ "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "node_modules/base64url": { "version": "3.0.1", @@ -3396,10 +2895,6 @@ }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/bs-logger": { @@ -3435,20 +2930,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -3488,9 +2969,6 @@ "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { @@ -3523,9 +3001,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-lite": { @@ -3580,9 +3055,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/char-regex": { @@ -3736,9 +3208,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cliui": { @@ -4358,22 +3827,12 @@ "node_modules/core-js": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.1.tgz", - "integrity": "sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } + "integrity": "sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg==" }, "node_modules/core-js-pure": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", - "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } + "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==" }, "node_modules/core-util-is": { "version": "1.0.2", @@ -4453,13 +3912,6 @@ "node": ">=0.10.0" } }, - "node_modules/damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true, - "peer": true - }, "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -4514,11 +3966,6 @@ }, "engines": { "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } } }, "node_modules/decamelize": { @@ -4782,9 +4229,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dotgitignore/node_modules/p-locate": { @@ -4856,18 +4300,8 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "peer": true - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -4923,9 +4357,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-to-primitive": { @@ -4940,9 +4371,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/escalade": { @@ -4972,7 +4400,8 @@ "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1" + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "bin": { "escodegen": "bin/escodegen.js", @@ -4980,9 +4409,6 @@ }, "engines": { "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" } }, "node_modules/escodegen/node_modules/estraverse": { @@ -5094,9 +4520,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-airbnb": { @@ -5111,13 +4534,6 @@ }, "engines": { "node": ">= 6" - }, - "peerDependencies": { - "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4 || ^3 || ^2.3.0 || ^1.7.0" } }, "node_modules/eslint-config-airbnb-base": { @@ -5132,10 +4548,6 @@ }, "engines": { "node": ">= 6" - }, - "peerDependencies": { - "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0", - "eslint-plugin-import": "^2.22.1" } }, "node_modules/eslint-config-airbnb-typescript": { @@ -5156,9 +4568,6 @@ "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" } }, "node_modules/eslint-import-resolver-node": { @@ -5236,9 +4645,6 @@ }, "engines": { "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -5279,41 +4685,6 @@ }, "engines": { "node": ">=10" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">= 4", - "eslint": ">=5" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", - "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.11.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.0.2", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^3.1.0", - "language-tags": "^1.0.5" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" } }, "node_modules/eslint-plugin-prettier": { @@ -5326,82 +4697,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz", - "integrity": "sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ==", - "dev": true, - "peer": true, - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.3", - "object.fromentries": "^2.0.4", - "object.values": "^1.1.3", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.4" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", - "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "peer": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-scope": { @@ -5427,9 +4722,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { @@ -5550,16 +4842,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.1.0.tgz", "integrity": "sha512-2L6Ge6wMBw02FlRoCLg4E0Elt3khMNlW6ULawa10mMeeZToYJ5+uCfiuTuB+XZ6om1Y7wuO9ZzezP8FsU2M/+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], "dependencies": { "@ethersproject/abi": "5.1.0", "@ethersproject/abstract-provider": "5.1.0", @@ -5783,9 +5065,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/exit": { @@ -6100,9 +5379,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { @@ -6140,9 +5416,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { @@ -6168,19 +5441,8 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "engines": { "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } } }, "node_modules/for-in": { @@ -6237,21 +5499,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dev": true }, "node_modules/fs-access": { "version": "1.0.1", @@ -6291,7 +5539,6 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -6339,9 +5586,6 @@ "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-own-enumerable-property-symbols": { @@ -6665,9 +5909,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-stream": { @@ -6680,9 +5921,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-value": { @@ -6784,9 +6022,6 @@ }, "engines": { "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { @@ -6823,9 +6058,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { @@ -6843,9 +6075,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby/node_modules/ignore": { @@ -6904,7 +6133,6 @@ "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", "dev": true, "dependencies": { "ajv": "^6.12.3", @@ -6939,10 +6167,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, "node_modules/has-flag": { "version": "4.0.0", @@ -6960,9 +6185,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-value": { @@ -7108,9 +6330,6 @@ "dev": true, "bin": { "husky": "lib/bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" } }, "node_modules/iconv-lite": { @@ -7128,21 +6347,7 @@ "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "node_modules/ignore": { "version": "4.0.6", @@ -7164,9 +6369,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-fresh/node_modules/resolve-from": { @@ -7229,9 +6431,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-local/node_modules/p-locate": { @@ -7297,21 +6496,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "peer": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -7343,10 +6527,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, "node_modules/is-boolean-object": { "version": "1.1.0", @@ -7358,9 +6539,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-buffer": { @@ -7376,9 +6554,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-ci": { @@ -7400,9 +6575,6 @@ "dev": true, "dependencies": { "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-descriptor": { @@ -7424,9 +6596,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-descriptor": { @@ -7454,9 +6623,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { @@ -7487,9 +6653,6 @@ "dev": true, "engines": { "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-fn": { @@ -7546,9 +6709,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { @@ -7567,9 +6727,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-obj": { @@ -7619,9 +6776,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-regexp": { @@ -7649,9 +6803,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { @@ -7664,9 +6815,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-text-path": { @@ -7694,9 +6842,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-utf8": { @@ -7921,14 +7066,6 @@ }, "engines": { "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } } }, "node_modules/jest-diff": { @@ -8187,14 +7324,6 @@ "dev": true, "engines": { "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } } }, "node_modules/jest-regex-util": { @@ -8292,9 +7421,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-resolve/node_modules/p-locate": { @@ -8336,9 +7462,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-resolve/node_modules/read-pkg/node_modules/type-fest": { @@ -8521,9 +7644,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-watcher": { @@ -8561,10 +7681,7 @@ "node_modules/jose": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/jose/-/jose-3.9.0.tgz", - "integrity": "sha512-4ntSay2SGWz9B+Hgzor9fuFHefY2/rNTwpxGk829oOOGEBsV5lPKhqBMfsVjyai5/0DoW/nztE+Nt8nGI7Bs1w==", - "funding": { - "url": "https://github.com/sponsors/panva" - } + "integrity": "sha512-4ntSay2SGWz9B+Hgzor9fuFHefY2/rNTwpxGk829oOOGEBsV5lPKhqBMfsVjyai5/0DoW/nztE+Nt8nGI7Bs1w==" }, "node_modules/js-sha256": { "version": "0.9.0", @@ -8636,14 +7753,6 @@ }, "engines": { "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } } }, "node_modules/jsdom/node_modules/acorn": { @@ -8665,18 +7774,6 @@ "dev": true, "engines": { "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } } }, "node_modules/jsesc": { @@ -8756,10 +7853,8 @@ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { + "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" } }, "node_modules/jsonparse": { @@ -8802,20 +7897,6 @@ "verror": "1.10.0" } }, - "node_modules/jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "peer": true, - "dependencies": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, "node_modules/jwt-decode": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", @@ -8840,23 +7921,6 @@ "node": ">=6" } }, - "node_modules/language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", - "dev": true, - "peer": true - }, - "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dev": true, - "peer": true, - "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -8909,9 +7973,6 @@ }, "bin": { "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" } }, "node_modules/lint-staged/node_modules/commander": { @@ -8941,9 +8002,6 @@ }, "engines": { "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" } }, "node_modules/load-json-file": { @@ -8992,9 +8050,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -9038,9 +8093,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update": { @@ -9056,9 +8108,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/slice-ansi": { @@ -9073,9 +8122,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/log-update/node_modules/wrap-ansi": { @@ -9092,19 +8138,6 @@ "node": ">=8" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "peer": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -9140,9 +8173,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-dir/node_modules/semver": { @@ -9185,9 +8215,6 @@ "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/map-stream": { @@ -9228,9 +8255,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow/node_modules/find-up": { @@ -9274,9 +8298,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow/node_modules/p-locate": { @@ -9318,9 +8339,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { @@ -9369,9 +8387,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/merge-stream": { @@ -9792,10 +8807,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, "node_modules/object-keys": { "version": "1.1.1", @@ -9831,9 +8843,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.entries": { @@ -9851,25 +8860,6 @@ "node": ">= 0.4" } }, - "node_modules/object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -9895,9 +8885,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/once": { @@ -9919,9 +8906,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optionator": { @@ -9948,9 +8932,6 @@ "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-finally": { @@ -9972,9 +8953,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { @@ -9987,9 +8965,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { @@ -10002,9 +8977,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { @@ -10047,9 +9019,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parse5": { @@ -10131,9 +9100,6 @@ "dev": true, "engines": { "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { @@ -10378,25 +9344,6 @@ "node": ">= 6" } }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "peer": true - }, "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -10430,14 +9377,6 @@ "tslib": "^2.1.0" } }, - "node_modules/pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -10461,21 +9400,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dev": true }, "node_modules/quick-lru": { "version": "4.0.1", @@ -10690,23 +9615,6 @@ "node": ">=0.10.0" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", @@ -10714,9 +9622,6 @@ "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/remove-trailing-separator": { @@ -10759,7 +9664,6 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, "dependencies": { "aws-sign2": "~0.7.0", @@ -10797,16 +9701,12 @@ }, "engines": { "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" } }, "node_modules/request-promise-native": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", "dev": true, "dependencies": { "request-promise-core": "1.1.4", @@ -10815,9 +9715,6 @@ }, "engines": { "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" } }, "node_modules/request-promise-native/node_modules/tough-cookie": { @@ -10887,9 +9784,6 @@ "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-cwd": { @@ -10929,7 +9823,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, "node_modules/restore-cursor": { @@ -10974,9 +9867,6 @@ }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rsvp": { @@ -10993,20 +9883,6 @@ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { "queue-microtask": "^1.2.2" } @@ -11032,21 +9908,7 @@ "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "node_modules/safe-regex": { "version": "1.1.0", @@ -11500,21 +10362,6 @@ "dev": true, "optional": true }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -12187,25 +11034,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/string.prototype.matchall": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz", - "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/string.prototype.trimend": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", @@ -12214,9 +11042,6 @@ "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { @@ -12227,9 +11052,6 @@ "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/stringify-object": { @@ -12331,9 +11153,6 @@ "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-color": { @@ -12397,10 +11216,6 @@ "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/table/node_modules/json-schema-traverse": { @@ -12421,9 +11236,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/terminal-link": { @@ -12437,9 +11249,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/test-exclude": { @@ -12633,10 +11442,6 @@ }, "engines": { "node": ">= 10" - }, - "peerDependencies": { - "jest": ">=26 <27", - "typescript": ">=3.8 <5.0" } }, "node_modules/ts-node": { @@ -12660,9 +11465,6 @@ }, "engines": { "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" } }, "node_modules/tsconfig-paths": { @@ -12713,9 +11515,6 @@ }, "engines": { "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, "node_modules/tsutils/node_modules/tslib": { @@ -12783,9 +11582,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedarray": { @@ -12839,9 +11635,6 @@ "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/union-value": { @@ -12938,7 +11731,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, "node_modules/use": { @@ -13135,9 +11927,6 @@ "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-module": { @@ -13173,9 +11962,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrappy": { @@ -13202,18 +11988,6 @@ "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", "engines": { "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } } }, "node_modules/xhr2": { @@ -13290,7 +12064,7 @@ "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": ">=4.0.1", + "y18n": "^4.0.0", "yargs-parser": "^18.1.2" }, "engines": { @@ -13341,9 +12115,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/yargs/node_modules/p-locate": { @@ -13358,6 +12129,12 @@ "node": ">=8" } }, + "node_modules/yargs/node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, "node_modules/yargs/node_modules/yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", @@ -13387,9 +12164,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } } }, @@ -14706,7 +13480,7 @@ "jest-resolve": "^26.6.2", "jest-util": "^26.6.2", "jest-worker": "^26.6.2", - "node-notifier": ">=8.0.1", + "node-notifier": "^8.0.0", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", @@ -15429,8 +14203,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "7.2.0", @@ -15534,17 +14307,6 @@ "sprintf-js": "~1.0.2" } }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -15611,19 +14373,6 @@ "es-abstract": "^1.18.0-next.1" } }, - "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - } - }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -15662,7 +14411,14 @@ "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.1.1.tgz", "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", "requires": { - "pvutils": "latest" + "pvutils": "^1.0.17" + }, + "dependencies": { + "pvutils": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", + "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" + } } }, "assert-plus": { @@ -15677,13 +14433,6 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true, - "peer": true - }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -15734,13 +14483,6 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, - "axe-core": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", - "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==", - "dev": true, - "peer": true - }, "axios": { "version": "0.21.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", @@ -15749,13 +14491,6 @@ "follow-redirects": "^1.10.0" } }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true, - "peer": true - }, "babel-jest": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", @@ -16813,13 +15548,6 @@ "array-find-index": "^1.0.1" } }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true, - "peer": true - }, "dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -17128,13 +15856,6 @@ "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", "dev": true }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "peer": true - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -17351,8 +16072,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", - "dev": true, - "requires": {} + "dev": true }, "eslint-import-resolver-node": { "version": "0.3.4", @@ -17465,26 +16185,6 @@ "@typescript-eslint/experimental-utils": "^4.0.1" } }, - "eslint-plugin-jsx-a11y": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", - "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", - "dev": true, - "peer": true, - "requires": { - "@babel/runtime": "^7.11.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.0.2", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^3.1.0", - "language-tags": "^1.0.5" - } - }, "eslint-plugin-prettier": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", @@ -17494,58 +16194,6 @@ "prettier-linter-helpers": "^1.0.0" } }, - "eslint-plugin-react": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz", - "integrity": "sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ==", - "dev": true, - "peer": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.3", - "object.fromentries": "^2.0.4", - "object.values": "^1.1.3", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.4" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "peer": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "peer": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", - "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", - "dev": true, - "peer": true, - "requires": {} - }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -18988,18 +17636,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "peer": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -19637,8 +18273,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "26.0.0", @@ -20013,8 +18648,7 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -20115,17 +18749,6 @@ "verror": "1.10.0" } }, - "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "peer": true, - "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - } - }, "jwt-decode": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", @@ -20144,23 +18767,6 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, - "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", - "dev": true, - "peer": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dev": true, - "peer": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -20345,16 +18951,6 @@ } } }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "peer": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -20934,19 +19530,6 @@ "has": "^1.0.3" } }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -21313,27 +19896,6 @@ "sisteransi": "^1.0.5" } }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "peer": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "peer": true - } - } - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -21364,11 +19926,6 @@ "tslib": "^2.1.0" } }, - "pvutils": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", - "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" - }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -21556,17 +20113,6 @@ "safe-regex": "^1.1.0" } }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, "regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", @@ -22164,18 +20710,6 @@ "dev": true, "optional": true }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -22739,22 +21273,6 @@ } } }, - "string.prototype.matchall": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz", - "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==", - "dev": true, - "peer": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, "string.prototype.trimend": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", @@ -23540,8 +22058,7 @@ "ws": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", - "requires": {} + "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==" }, "xhr2": { "version": "0.1.3", @@ -23605,7 +22122,7 @@ "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": ">=4.0.1", + "y18n": "^4.0.0", "yargs-parser": "^18.1.2" }, "dependencies": { @@ -23646,6 +22163,12 @@ "p-limit": "^2.2.0" } }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, "yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", diff --git a/src/AuxDidAuth.ts b/src/AuxDidAuth.ts index 7fbb48d..3522293 100644 --- a/src/AuxDidAuth.ts +++ b/src/AuxDidAuth.ts @@ -35,6 +35,7 @@ import { DidAuthValidationResponse, DidAuthVerifyOpts, DidAuthKeyCurve, + DidAuthResponseOptsNoSignature, } from "./interfaces/DIDAuth.types"; import { getPublicJWKFromPrivateHex } from "./util/JWK"; import { DEFAULT_PROOF_TYPE, PROOF_TYPE_EDDSA } from "./config"; @@ -295,6 +296,61 @@ const createDidAuthResponsePayload = async ( }; }; +const createDidAuthResponsePayloadNoSignature = async ( + opts: DidAuthResponseOptsNoSignature +): Promise => { + if ( + !opts || + !opts.redirectUri || + !opts.identifiersUri || + !opts.nonce || + !opts.did + ) + throw new Error(DidAuthErrors.BAD_PARAMS); + // Get PUBLIC KEY from opts.identifiersUri + + // eslint-disable-next-line @typescript-eslint/naming-convention + let sub_jwk: JWK; + let sub: string; + + if (!opts.identifiersUri) throw new Error(DidAuthErrors.NO_IDENTIFIERS_URI); + try { + const getResponse = await axios.get(opts.identifiersUri); + if (!getResponse || !getResponse.data) + throw new Error(DidAuthErrors.ERROR_RETRIEVING_DID_DOCUMENT); + const didDoc = getResponse.data as DIDDocument; + if ( + !didDoc.verificationMethod && + !didDoc.verificationMethod[0] && + !didDoc.verificationMethod[0].publicKeyJwk + ) + throw new Error(DidAuthErrors.ERROR_RETRIEVING_DID_DOCUMENT); + + sub_jwk = didDoc.verificationMethod[0].publicKeyJwk; + sub = opts.did.includes("did:key:z6Mk") + ? utilJwk.getThumbprintFromJwkDidKey(sub_jwk) + : utilJwk.getThumbprintFromJwk(sub_jwk); + } catch (error) { + throw new Error( + `${DidAuthErrors.ERROR_RETRIEVING_DID_DOCUMENT} Error: ${JSON.stringify( + error, + null, + 2 + )}` + ); + } + + return { + iss: DidAuthResponseIss.SELF_ISSUE, + sub, + nonce: opts.nonce, + aud: opts.redirectUri, + sub_jwk, + did: opts.did, + vp: opts.vp, + }; +}; + const verifyDidAuth = async ( jwt: string, opts: DidAuthVerifyOpts @@ -352,4 +408,5 @@ export { createDidAuthResponsePayload, isInternalVerification, verifyDidAuth, + createDidAuthResponsePayloadNoSignature, }; diff --git a/src/SiopDidAuth.ts b/src/SiopDidAuth.ts index 81ffc25..1ad40c2 100644 --- a/src/SiopDidAuth.ts +++ b/src/SiopDidAuth.ts @@ -17,6 +17,7 @@ import { DidAuthResponseIss, DidAuthRequestPayload, DidAuthKeyAlgorithm, + DidAuthResponseOptsNoSignature, } from "./interfaces/DIDAuth.types"; import { DidAuthErrors } from "./interfaces"; import { @@ -27,6 +28,7 @@ import { signDidAuthExternal, createDidAuthResponsePayload, verifyDidAuth, + createDidAuthResponsePayloadNoSignature, } from "./AuxDidAuth"; import { VID_RESOLVE_DID_URL } from "./config"; import { util } from "./util"; @@ -143,6 +145,23 @@ const createDidAuthResponse = async ( ); }; +const createDidAuthResponseObject = async ( + opts: DidAuthResponseOptsNoSignature +): Promise => { + if ( + !opts || + !opts.redirectUri || + !opts.registrationType || + !opts.identifiersUri + ) + throw new Error(DidAuthErrors.BAD_PARAMS); + + const didAuthResponsePayload: DidAuthResponsePayload = await createDidAuthResponsePayloadNoSignature( + opts + ); + return didAuthResponsePayload; +}; + /** * Creates an URI Request * @param opts Options to define the Uri Request @@ -397,4 +416,5 @@ export { createDidAuthResponse, verifyDidAuthRequest, verifyDidAuthResponse, + createDidAuthResponseObject, }; diff --git a/src/interfaces/DIDAuth.types.ts b/src/interfaces/DIDAuth.types.ts index 4ff6bfc..0bec42d 100644 --- a/src/interfaces/DIDAuth.types.ts +++ b/src/interfaces/DIDAuth.types.ts @@ -127,6 +127,17 @@ export interface DidAuthResponseOpts { vp?: VerifiablePresentation; } +export interface DidAuthResponseOptsNoSignature { + redirectUri: string; + identifiersUri: string; + nonce: string; + state: string; + registrationType: RegistrationType; + responseMode?: DidAuthResponseMode; + did: string; + vp?: VerifiablePresentation; +} + export interface InternalVerification { registry?: string; rpcUrl?: string; diff --git a/src/interfaces/Errors.ts b/src/interfaces/Errors.ts index 8851c22..3777750 100644 --- a/src/interfaces/Errors.ts +++ b/src/interfaces/Errors.ts @@ -9,6 +9,7 @@ enum DidAuthErrors { INVALID_AUDIENCE = "Audience is invalid. Should be a string value.", REQUEST_OBJECT_TYPE_NOT_SET = "Request object type is not set.", NO_REFERENCE_URI = "referenceUri must be defined when REFERENCE option is used", + NO_IDENTIFIERS_URI = "identifiersUri must be defined to get the publick key", BAD_SIGNATURE_PARAMS = "Signature parameters should be internal signature with hexPrivateKey, did, and an optional kid, or external signature parameters with signatureUri, did, and optionals parameters authZToken, hexPublicKey, and kid", REGISTRATION_OBJECT_TYPE_NOT_SET = "Registration object type is not set.", SIGNATURE_OBJECT_TYPE_NOT_SET = "Signature object type is not set.", diff --git a/validatedid-did-auth-2.3.0.tgz b/validatedid-did-auth-2.3.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a0debc03b7ecc678eb96b6a43cf3ddbd6cf3edca GIT binary patch literal 100002 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 z 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

BYzu7$ZQQ!6{JsyOG99Pq=Y{5HXTlB1cd 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 literal 0 HcmV?d00001 From 663e8d66be6b7eef5c58f9345ae811641ef757ab Mon Sep 17 00:00:00 2001 From: Alex Bean Date: Mon, 19 Apr 2021 09:33:59 +0200 Subject: [PATCH 2/3] test: unit and e2e test --- src/AuxDidAuth.ts | 1 - src/index.ts | 1 + tests/e2e/SiopDidAuth.spec.ts | 68 ++++++++++++++++++++ tests/unit/SiopDidAuth.response.spec.ts | 85 +++++++++++++++++++++++++ 4 files changed, 154 insertions(+), 1 deletion(-) diff --git a/src/AuxDidAuth.ts b/src/AuxDidAuth.ts index 3522293..c46d0c1 100644 --- a/src/AuxDidAuth.ts +++ b/src/AuxDidAuth.ts @@ -307,7 +307,6 @@ const createDidAuthResponsePayloadNoSignature = async ( !opts.did ) throw new Error(DidAuthErrors.BAD_PARAMS); - // Get PUBLIC KEY from opts.identifiersUri // eslint-disable-next-line @typescript-eslint/naming-convention let sub_jwk: JWK; diff --git a/src/index.ts b/src/index.ts index ee4b505..b925925 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,6 +10,7 @@ export { createDidAuthResponse, verifyDidAuthRequest, verifyDidAuthResponse, + createDidAuthResponseObject, } from "./SiopDidAuth"; export { JWTClaims, JWTHeader } from "./interfaces/JWT"; export { OidcClaim, OidcClaimRequest } from "./interfaces/oidcSsi"; diff --git a/tests/e2e/SiopDidAuth.spec.ts b/tests/e2e/SiopDidAuth.spec.ts index 65172f5..71f8fca 100644 --- a/tests/e2e/SiopDidAuth.spec.ts +++ b/tests/e2e/SiopDidAuth.spec.ts @@ -9,6 +9,7 @@ import { verifyDidAuthRequest, verifyDidAuthResponse, } from "../../src"; +import { signDidAuthInternal } from "../../src/AuxDidAuth"; import { getLegalEntityTestAuthZToken, getPublicJWKFromDid, @@ -19,6 +20,7 @@ import * as mockedData from "../data/mockedData"; import { DidAuthResponseMode, DidAuthVerifyOpts, + DidAuthResponseIss, } from "../../src/interfaces/DIDAuth.types"; import { getPublicJWKFromPublicHex } from "../../src/util/JWK"; @@ -1039,4 +1041,70 @@ describe("VidDidAuth using did:key tests should", () => { ); // 5 minutes of expiration time }); }); + + describe("createDidAuthResponseObject", () => { + it("should create Did Auth Response Object without signature", async () => { + expect.assertions(7); + const { did, hexPrivateKey } = await getUserEntityTestAuthZToken(); + const entityAA = await getLegalEntityTestAuthZToken("COMPANY E2E INC"); + const authZToken = entityAA.jwt; + const entityDid = entityAA.did; + const state = DidAuthUtil.getState(); + const nonce = DidAuthUtil.getNonce(state); + const opts: DidAuthTypes.DidAuthResponseOptsNoSignature = { + redirectUri: "https://app.example/demo", + identifiersUri: `https://dev.vidchain.net/api/v1/identifiers/${did};transform-keys=jwks`, + nonce, + state, + responseMode: DidAuthResponseMode.FORM_POST, + registrationType: { + type: DidAuthTypes.ObjectPassedBy.VALUE, + }, + did, + }; + + const jwt: siopDidAuth.DidAuthTypes.DidAuthResponsePayload = await siopDidAuth.createDidAuthResponseObject( + opts + ); + expect(jwt).toBeDefined(); + + const signedToken = await signDidAuthInternal( + jwt, + DidAuthResponseIss.SELF_ISSUE, + hexPrivateKey + ); + + const optsVerify: DidAuthVerifyOpts = { + verificationType: { + registry: process.env.DID_REGISTRY_SC_ADDRESS, + rpcUrl: process.env.DID_PROVIDER_RPC_URL, + didUrlResolver: `https://dev.vidchain.net/api/v1/identifiers`, + }, + nonce, + redirectUri: opts.redirectUri, + }; + const validationResponse = await verifyDidAuthResponse( + signedToken, + optsVerify + ); + expect(validationResponse).toBeDefined(); + expect(validationResponse.signatureValidation).toBe(true); + expect(validationResponse.payload).toBeDefined(); + + const expectedPayload = mockedData.DIDAUTH_RESPONSE_PAYLOAD; + expectedPayload.did = did; + expectedPayload.nonce = expect.any(String) as string; + expectedPayload.aud = opts.redirectUri; + expectedPayload.iat = expect.any(Number) as number; + expectedPayload.exp = expect.any(Number) as number; + expectedPayload.sub = expect.any(String) as string; + expectedPayload.sub_jwk = await getPublicJWKFromDid(did); + + expect(validationResponse.payload.iat).toBeDefined(); + expect(validationResponse.payload).toMatchObject(expectedPayload); + expect(validationResponse.payload.exp).toStrictEqual( + validationResponse.payload.iat + 5 * 60 + ); // 5 minutes of expiration time + }); + }); }); diff --git a/tests/unit/SiopDidAuth.response.spec.ts b/tests/unit/SiopDidAuth.response.spec.ts index 3116950..6094bcb 100644 --- a/tests/unit/SiopDidAuth.response.spec.ts +++ b/tests/unit/SiopDidAuth.response.spec.ts @@ -8,6 +8,7 @@ import { DidAuthTypes, DidAuthUtil, JWTHeader, + createDidAuthResponseObject, } from "../../src"; import { mockedKeyAndDid } from "../AuxTest"; @@ -299,3 +300,87 @@ describe("create Did Auth response tests should", () => { expect(responsePayload).toHaveProperty("sub_jwk"); }); }); + +describe("create Did Auth response object tests should", () => { + it("throw BAD_SIGNATURE_PARAMS when no identifier url is set", async () => { + expect.assertions(1); + + const opts = { + redirectUri: "https://entity.example/demo", + registrationType: { + type: DidAuthTypes.ObjectPassedBy.VALUE, + }, + }; + await expect(createDidAuthResponseObject(opts as never)).rejects.toThrow( + DidAuthErrors.BAD_PARAMS + ); + }); + + it("create a valid response token with external signature and registration by value", async () => { + expect.assertions(3); + const state = DidAuthUtil.getState(); + const did = "did:vid:0x29A9D0FDb033BFCb39B8E6CA2A63Bd1B0a2b80c4"; + const opts: DidAuthTypes.DidAuthResponseOptsNoSignature = { + redirectUri: "https://entity.example/demo", + identifiersUri: `https://dev.vidchain.net/api/v1/identifiers/${did};transform-keys=jwks`, + state, + nonce: DidAuthUtil.getNonce(state), + registrationType: { + type: DidAuthTypes.ObjectPassedBy.VALUE, + referenceUri: `https://localhost:8080/api/v1/identifiers/${did}`, + }, + did, + }; + jest.spyOn(axios, "get").mockResolvedValue({ + data: { + verificationMethod: [ + { + publicKeyJwk: { + kty: "EC", + crv: "secp256k1", + x: + "62451c7a3e0c6e2276960834b79ae491ba0a366cd6a1dd814571212ffaeaaf5a", + y: + "1ede3d754090437db67eca78c1659498c9cf275d2becc19cdc8f1ef76b9d8159", + kid: "JTa8+HgHPyId90xmMFw6KRD4YUYLosBuWJw33nAuRS0=", + }, + }, + ], + }, + } as never); + + type DataInput = { + payload: Record; + }; + + jest + .spyOn(axios, "post") + .mockImplementation(async (_url: string, data: DataInput) => { + // assign specific JWT header + const header: JWTHeader = { + alg: DidAuthTypes.DidAuthKeyAlgorithm.ES256KR, + typ: "JWT", + kid: `${did}#keys-1`, + }; + const jws = await createJwt( + data.payload, + { + issuer: did, + alg: DidAuthTypes.DidAuthKeyAlgorithm.ES256KR, + signer: SimpleSigner( + "278a5de700e29faae8e40e366ec5012b5ec63d36ec77e8a2417154cc1d25383f" + ), + }, + header + ); + return Promise.resolve({ + status: 200, + data: { jws }, + }); + }); + const response = await createDidAuthResponseObject(opts); + expect(response).toBeDefined(); + expect(response).toHaveProperty("sub"); + expect(response).toHaveProperty("sub_jwk"); + }); +}); From 9af8040af2d844f7704435dc01efc81425f21ddf Mon Sep 17 00:00:00 2001 From: Alex Bean Date: Mon, 19 Apr 2021 09:45:29 +0200 Subject: [PATCH 3/3] refactor: update version --- CHANGELOG.md | 6 ++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 941a189..c700be1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. +## [2.4.0](https://github.com/validatedid/did-auth-oidc-siop/compare/v2.3.0...v2.4.0) (2021-04-19) + +### 🚀 Features + +- create response without signature ([c82722d](https://github.com/validatedid/did-auth-oidc-siop/commit/c82722dadb6f7dcac5a6d5ae5d3080cd05ce820f)) + ## [2.3.0](https://github.com/validatedid/did-auth-oidc-siop/compare/v2.2.4...v2.3.0) (2021-03-31) ### 🚀 Features diff --git a/package-lock.json b/package-lock.json index efd94e5..2581002 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@validatedid/did-auth", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 275738a..4db324e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@validatedid/did-auth", - "version": "2.3.0", + "version": "2.4.0", "description": "Validated ID Authentication library that implements an OIDC-SIOP with DIDs", "author": "Validated ID", "license": "Apache-2.0",