diff --git a/package-lock.json b/package-lock.json index 2a46423..8d401c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,6 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -62,7 +61,6 @@ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -103,7 +101,6 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", @@ -118,7 +115,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -133,7 +129,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -146,7 +141,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", "dev": true, - "peer": true, "dependencies": { "@babel/compat-data": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", @@ -165,7 +159,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -175,7 +168,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, - "peer": true, "dependencies": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -189,7 +181,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -202,7 +193,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -215,7 +205,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -235,7 +224,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -245,7 +233,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -258,7 +245,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -271,7 +257,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -290,7 +275,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -300,7 +284,6 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", "dev": true, - "peer": true, "dependencies": { "@babel/template": "^7.18.10", "@babel/traverse": "^7.19.0", @@ -329,7 +312,6 @@ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", "dev": true, - "peer": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -358,7 +340,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -394,7 +375,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "dev": true, - "peer": true, "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -407,7 +387,6 @@ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.0.tgz", "integrity": "sha512-JyXXoCu1N8GLuKc2ii8y5RGma5FMpFeO2nAQIe0Yzrbq+rQnN+sFj47auLblR5ka6aHNGPDgv8G/iI2Grb0ldQ==", "dev": true, - "peer": true, "dependencies": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -421,7 +400,6 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.10", @@ -436,7 +414,6 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.19.0", @@ -458,7 +435,6 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", @@ -549,7 +525,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -563,7 +538,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -573,7 +547,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -582,15 +555,13 @@ "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.15", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -655,7 +626,8 @@ "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", @@ -668,6 +640,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -769,7 +742,6 @@ "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" @@ -820,7 +792,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -847,8 +818,7 @@ "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true, - "peer": true + "dev": true }, "node_modules/asynckit": { "version": "0.4.0", @@ -860,7 +830,6 @@ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -869,6 +838,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -890,8 +860,7 @@ "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 + "dev": true }, "node_modules/balanced-match": { "version": "1.0.2", @@ -1013,8 +982,7 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ], - "peer": true + ] }, "node_modules/chai": { "version": "4.3.6", @@ -1150,7 +1118,6 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, - "peer": true, "dependencies": { "safe-buffer": "~5.1.1" } @@ -1161,7 +1128,6 @@ "integrity": "sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A==", "dev": true, "hasInstallScript": true, - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -1191,8 +1157,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/debug": { "version": "4.3.4", @@ -1302,15 +1267,13 @@ "version": "1.4.248", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.248.tgz", "integrity": "sha512-qShjzEYpa57NnhbW2K+g+Fl+eNoDvQ7I+2MRwWnU6Z6F0HhXekzsECCLv+y2OJUsRodjqoSfwHkIX42VUFtUzg==", - "dev": true, - "peer": true + "dev": true }, "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 + "dev": true }, "node_modules/es-abstract": { "version": "1.19.5", @@ -1384,6 +1347,7 @@ "integrity": "sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==", "dev": true, "hasInstallScript": true, + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -1756,6 +1720,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, + "peer": true, "dependencies": { "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", @@ -1907,6 +1872,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, + "peer": true, "dependencies": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", @@ -1989,7 +1955,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", "dev": true, - "peer": true, "dependencies": { "array-includes": "^3.1.5", "array.prototype.flatmap": "^1.3.0", @@ -2031,7 +1996,6 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -2044,7 +2008,6 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, - "peer": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -2416,7 +2379,6 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2426,7 +2388,6 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -2516,7 +2477,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -2957,7 +2917,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -2982,7 +2941,6 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true, - "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -3001,7 +2959,6 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, - "peer": true, "dependencies": { "array-includes": "^3.1.5", "object.assign": "^4.1.3" @@ -3014,15 +2971,13 @@ "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, - "peer": true, "dependencies": { "language-subtag-registry": "~0.3.2" } @@ -3156,7 +3111,6 @@ "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" }, @@ -3446,8 +3400,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", @@ -3463,7 +3416,6 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3523,7 +3475,6 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -3541,7 +3492,6 @@ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dev": true, - "peer": true, "dependencies": { "define-properties": "^1.1.4", "es-abstract": "^1.19.5" @@ -3684,8 +3634,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/picomatch": { "version": "2.3.0", @@ -3713,7 +3662,6 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, - "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -3747,8 +3695,7 @@ "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 + "dev": true }, "node_modules/readdirp": { "version": "3.6.0", @@ -3766,15 +3713,13 @@ "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -3854,6 +3799,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.2.tgz", "integrity": "sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==", "dev": true, + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -4003,7 +3949,6 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -4112,7 +4057,6 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -4243,6 +4187,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4281,7 +4226,6 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], - "peer": true, "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" diff --git a/package.json b/package.json index cee8b8e..e842439 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "method-node", - "version": "2.0.0", + "version": "2.0.1", "description": "Node.js library for the Method API", "main": "dist/index.ts", "module": "dist/index.mjs", diff --git a/src/resource.ts b/src/resource.ts index f7bae6d..58e6c8e 100644 --- a/src/resource.ts +++ b/src/resource.ts @@ -62,14 +62,7 @@ export default class Resource extends ExtensibleFunction { } private getDefaultUserAgent(): string { - // @ts-ignore - return `Method-Node/v${ - require(// @ts-ignore - process.env.NODE_ENV === 'TEST' - ? '../../package.json' - : '../package.json', - ).version - }`; + return `Method-Node/v2.0.1`; } private configureRequestInterceptors(): void { diff --git a/src/resources/Account/types.ts b/src/resources/Account/types.ts index 873e0ca..d41fc4b 100644 --- a/src/resources/Account/types.ts +++ b/src/resources/Account/types.ts @@ -70,6 +70,9 @@ export interface IAccountProductListResponse { attribute?: IAccountProduct; transaction?: IAccountProduct; payment_instrument?: IAccountProduct; + 'payment_instrument.card'?: IAccountProduct; + 'payment_instrument.inbound_achwire_payment'?: IAccountProduct; + 'payment_instrument.network_token'?: IAccountProduct; }; export const AccountSubscriptionTypes = { @@ -398,6 +401,7 @@ export interface IAccountSubscriptionsResponse { transaction?: IAccountSubscription; update?: IAccountSubscription; 'update.snapshot'?: IAccountSubscription; + card_brand?: IAccountSubscription; }; export interface IAccountSubscriptionCreateOpts { diff --git a/src/resources/Simulate/Accounts/CardBrands.ts b/src/resources/Simulate/Accounts/CardBrands.ts new file mode 100644 index 0000000..a945ff6 --- /dev/null +++ b/src/resources/Simulate/Accounts/CardBrands.ts @@ -0,0 +1,26 @@ +import Resource from '../../../resource'; +import Configuration, { IResponse } from '../../../configuration'; +import type { IAccountCardBrand } from '../../Account'; + +export interface ISimulateAccountCardBrandCreateOpts { + brand_id: string; +} + +export default class SimulateCardBrands extends Resource { + constructor(config: Configuration) { + super(config.addPath('card_brands')); + } + + /** + * Simulates a Card Brand for a Credit Card Account. + * https://docs.methodfi.com/reference/simulations/card-brands/create + * + * @param opts ISimulateAccountCardBrandCreateOpts + * @returns Returns the Card Brand object. + */ + + async create(opts: ISimulateAccountCardBrandCreateOpts) { + return super._create, ISimulateAccountCardBrandCreateOpts>(opts); + } +}; + diff --git a/src/resources/Simulate/Accounts/index.ts b/src/resources/Simulate/Accounts/index.ts index a1636e8..47ad8f6 100644 --- a/src/resources/Simulate/Accounts/index.ts +++ b/src/resources/Simulate/Accounts/index.ts @@ -1,11 +1,14 @@ import Resource from '../../../resource'; import Configuration from '../../../configuration'; import SimulateTransactions from './Transactions'; +import SimulateCardBrands from './CardBrands'; export class SimulateAccountsSubResources { transactions: SimulateTransactions; - constructor(acc_id:string, config: Configuration) { + cardBrands: SimulateCardBrands; + constructor(acc_id: string, config: Configuration) { this.transactions = new SimulateTransactions(config.addPath(acc_id)); + this.cardBrands = new SimulateCardBrands(config.addPath(acc_id)); } }; @@ -25,3 +28,4 @@ export class SimulateAccounts extends Resource { }; export default SimulateAccounts; +export * from './CardBrands'; diff --git a/test/resources/Account.tests.ts b/test/resources/Account.tests.ts index 6f07aae..b22617e 100644 --- a/test/resources/Account.tests.ts +++ b/test/resources/Account.tests.ts @@ -44,6 +44,7 @@ describe('Accounts - core methods tests', () => { let create_txn_subscriptions_response: IResponse; let create_update_subscriptions_response: IResponse; let create_update_snapshot_subscriptions_response: IResponse; + let create_card_brand_subscriptions_response: IResponse; let create_updates_response: IResponse; let create_attributes_response: IResponse; let accounts_retrieve_product_list_response: IAccountProductListResponse; @@ -115,6 +116,9 @@ describe('Accounts - core methods tests', () => { latest_verification_session: accounts_create_ach_response.latest_verification_session, products: [ 'payment' ], restricted_products: [], + subscriptions: [], + available_subscriptions: [], + restricted_subscriptions: [], status: 'active', error: null, metadata: null, @@ -154,8 +158,6 @@ describe('Accounts - core methods tests', () => { attribute: null, update: accounts_create_liability_response.update, card_brand: null, - payment_instrument: null, - payoff: null, products: accounts_create_liability_response.products, restricted_products: accounts_create_liability_response.restricted_products, subscriptions: accounts_create_liability_response.subscriptions, @@ -164,6 +166,7 @@ describe('Accounts - core methods tests', () => { status: 'active', error: null, metadata: null, + payoff: null, created_at: accounts_create_liability_response.created_at, updated_at: accounts_create_liability_response.updated_at }; @@ -188,6 +191,9 @@ describe('Accounts - core methods tests', () => { latest_verification_session: accounts_create_ach_response.latest_verification_session, products: [ 'payment' ], restricted_products: [], + subscriptions: [], + available_subscriptions: [], + restricted_subscriptions: [], status: 'active', error: null, metadata: null, @@ -370,6 +376,40 @@ describe('Accounts - core methods tests', () => { }); }); + describe('simulate.accounts.cardBrands', () => { + it('should successfully simulate a card brand for an account.', async () => { + create_card_brand_subscriptions_response = await client + .accounts(test_credit_card_account.id) + .subscriptions + .create('card_brand'); + + const simulate_card_brand_response = await client + .simulate + .accounts(test_credit_card_account.id) + .cardBrands + .create({ brand_id: 'pdt_15_brd_1' }); + + expect(simulate_card_brand_response.id).to.be.a('string'); + expect(simulate_card_brand_response.account_id).to.equal(test_credit_card_account.id); + expect(simulate_card_brand_response.status).to.equal('completed'); + expect(simulate_card_brand_response.source).to.equal('method'); + expect(simulate_card_brand_response.error).to.be.null; + expect(simulate_card_brand_response.created_at).to.be.a('string'); + expect(simulate_card_brand_response.updated_at).to.be.a('string'); + + const brand = simulate_card_brand_response.brands?.[0]; + expect(brand).to.exist; + expect(brand.id).to.equal('pdt_15_brd_1'); + expect(brand.card_product_id).to.equal('pdt_15'); + expect(brand.description).to.equal('Chase Sapphire Reserve'); + expect(brand.name).to.equal('Chase Sapphire Reserve'); + expect(brand.issuer).to.equal('Chase'); + expect(brand.network).to.equal('visa'); + expect(brand.type).to.equal('specific'); + expect(brand.url).to.equal('https://static.methodfi.com/card_brands/1b7ccaba6535cb837f802d968add4700.png'); + }); + }); + describe('accounts.payoffs', () => { it('should successfully create a payoff request for an account.', async () => { payoff_create_response = await client @@ -715,6 +755,15 @@ describe('Accounts - core methods tests', () => { latest_request_id: null, created_at: subscriptions_response.update?.created_at || '', updated_at: subscriptions_response.update?.updated_at || '' + }, + card_brand: { + id: create_card_brand_subscriptions_response.id, + name: 'card_brand', + status: 'active', + payload: null, + latest_request_id: subscriptions_response.card_brand?.latest_request_id || null, + created_at: subscriptions_response.card_brand?.created_at || '', + updated_at: subscriptions_response.card_brand?.updated_at || '' } }; @@ -966,9 +1015,13 @@ describe('Accounts - core methods tests', () => { }); it('should successfully list updates for an account.', async () => { - const list_updates_response = await client.accounts(test_credit_card_account.id).updates.list(); - - const update_to_check = list_updates_response.find(update => update.id === create_updates_response.id); + const getUpdateFromList = async () => { + const list_updates_response = await client.accounts(test_credit_card_account.id).updates.list(); + const update = list_updates_response.find(u => u.id === create_updates_response.id); + return update; + }; + + const update_to_check = await awaitResults(getUpdateFromList); const expect_results: IAccountUpdate = { id: create_updates_response.id, @@ -1141,15 +1194,35 @@ describe('Accounts - core methods tests', () => { created_at: accounts_retrieve_product_list_response.payoff?.created_at || '', updated_at: accounts_retrieve_product_list_response.payoff?.updated_at || '' }, - payment_instrument: { - name: 'payment_instrument', + 'payment_instrument.card': { + name: 'payment_instrument.card', + status: 'restricted', + status_error: accounts_retrieve_product_list_response['payment_instrument.card']?.status_error || null, + latest_request_id: accounts_retrieve_product_list_response['payment_instrument.card']?.latest_request_id || null, + latest_successful_request_id: accounts_retrieve_product_list_response['payment_instrument.card']?.latest_successful_request_id || null, + is_subscribable: true, + created_at: accounts_retrieve_product_list_response['payment_instrument.card']?.created_at || '', + updated_at: accounts_retrieve_product_list_response['payment_instrument.card']?.updated_at || '' + }, + 'payment_instrument.inbound_achwire_payment': { + name: 'payment_instrument.inbound_achwire_payment', + status: 'restricted', + status_error: accounts_retrieve_product_list_response['payment_instrument.inbound_achwire_payment']?.status_error || null, + latest_request_id: accounts_retrieve_product_list_response['payment_instrument.inbound_achwire_payment']?.latest_request_id || null, + latest_successful_request_id: accounts_retrieve_product_list_response['payment_instrument.inbound_achwire_payment']?.latest_successful_request_id || null, + is_subscribable: false, + created_at: accounts_retrieve_product_list_response['payment_instrument.inbound_achwire_payment']?.created_at || '', + updated_at: accounts_retrieve_product_list_response['payment_instrument.inbound_achwire_payment']?.updated_at || '' + }, + 'payment_instrument.network_token': { + name: 'payment_instrument.network_token', status: 'restricted', - status_error: accounts_retrieve_product_list_response.payment_instrument?.status_error || null, - latest_request_id: accounts_retrieve_product_list_response.payment_instrument?.latest_request_id || null, - latest_successful_request_id: accounts_retrieve_product_list_response.payment_instrument?.latest_successful_request_id || null, + status_error: accounts_retrieve_product_list_response['payment_instrument.network_token']?.status_error || null, + latest_request_id: accounts_retrieve_product_list_response['payment_instrument.network_token']?.latest_request_id || null, + latest_successful_request_id: accounts_retrieve_product_list_response['payment_instrument.network_token']?.latest_successful_request_id || null, is_subscribable: true, - created_at: accounts_retrieve_product_list_response.payment_instrument?.created_at || '', - updated_at: accounts_retrieve_product_list_response.payment_instrument?.updated_at || '' + created_at: accounts_retrieve_product_list_response['payment_instrument.network_token']?.created_at || '', + updated_at: accounts_retrieve_product_list_response['payment_instrument.network_token']?.updated_at || '' } };