From 72855230e02d930b5ee01847f800c637379bd5bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 08:58:29 -0400 Subject: [PATCH 1/5] chore(deps): bump yaml from 2.1.3 to 2.2.2 (#94) --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a9d503a..ddde3ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1295,9 +1295,9 @@ y18n@^5.0.5: integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaml@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" - integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== + version "2.2.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" + integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== yargs-parser@20.2.4: version "20.2.4" From f523a7667974fff04e0a474e01d319b21717e034 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 26 Apr 2023 12:59:23 +0000 Subject: [PATCH 2/5] chore(release): 1.1.3 [skip ci] ## [1.1.3](https://github.com/devmehq/devme-sdk-js/compare/v1.1.2...v1.1.3) (2023-04-26) ### Bug Fixes * **deps:** update all non-major dependencies ([cfb88ed](https://github.com/devmehq/devme-sdk-js/commit/cfb88edb0bb851e4e95683dd40421e80378c7172)) * **deps:** update all non-major dependencies ([b3c98db](https://github.com/devmehq/devme-sdk-js/commit/b3c98db2c61fa54af2eb5105f77a3ef2d9873444)) * **deps:** update all non-major dependencies ([f36dc40](https://github.com/devmehq/devme-sdk-js/commit/f36dc40ebda185d804068a56aad8d4a883ab9079)) * **deps:** update dependency axios to v0.26.1 ([cd14c5d](https://github.com/devmehq/devme-sdk-js/commit/cd14c5d67b10b005b157ff5621a4e317df5a8dfd)) * **deps:** update dependency axios to v1 ([186c2a9](https://github.com/devmehq/devme-sdk-js/commit/186c2a9d4b08a7b69ab6830bbca8b0323d13ec79)) * **deps:** update dependency axios to v1.1.0 ([6beceda](https://github.com/devmehq/devme-sdk-js/commit/6becedade5d1e1aad40a5a698e65534f24f9ea66)) * **deps:** update dependency axios to v1.1.2 ([8f19647](https://github.com/devmehq/devme-sdk-js/commit/8f196478893becb01025381b9a4355900060e131)) * **deps:** update dependency axios to v1.1.3 ([c17860d](https://github.com/devmehq/devme-sdk-js/commit/c17860db42100432c859d08e05d1033eaf49e864)) * **deps:** update dependency axios to v1.2.0 ([27ec760](https://github.com/devmehq/devme-sdk-js/commit/27ec760ba5747017db87001617fe420be780d90c)) * **deps:** update dependency axios to v1.2.1 ([650ce03](https://github.com/devmehq/devme-sdk-js/commit/650ce03c4994ba0812ebf19b6b23ba2d828f40f7)) * **deps:** update dependency axios to v1.2.2 ([92bc437](https://github.com/devmehq/devme-sdk-js/commit/92bc437362b14b670757b2e1ef38e09a9870059f)) * **deps:** update dependency axios to v1.2.3 ([dec0537](https://github.com/devmehq/devme-sdk-js/commit/dec0537671af56f2e5a11313258de4385705f00a)) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 75e89cf..17a77fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@devmehq/sdk-js", - "version": "1.1.2", + "version": "1.1.3", "private": false, "description": "DEV.ME SDK for JavaScript & TypeScript for Server & Browser, Compatible with Node.js & React & Vue.js & Angular", "keywords": [ From 60c60fcc6a00ff1e2428fe05cbd7632473cf249d Mon Sep 17 00:00:00 2001 From: Mohamed Meabed Date: Thu, 27 Apr 2023 12:20:17 -0400 Subject: [PATCH 3/5] chose: update release --- package.json | 8 ++-- yarn.lock | 113 +++++++++++++++++++++++++++------------------------ 2 files changed, 63 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 17a77fa..b6939fa 100644 --- a/package.json +++ b/package.json @@ -45,19 +45,19 @@ "__tests__/**/*.{ts,json}": "prettier --write" }, "dependencies": { - "axios": "1.2.3" + "axios": "1.3.6" }, "devDependencies": { "@types/chai": "4.3.4", "@types/mocha": "10.0.1", "chai": "4.3.7", "husky": "8.0.3", - "lint-staged": "13.1.0", + "lint-staged": "13.2.2", "mocha": "10.2.0", - "prettier": "2.8.3", + "prettier": "2.8.8", "pretty-quick": "3.1.3", "should": "13.2.3", "ts-node": "10.9.1", - "typescript": "4.9.4" + "typescript": "5.0.4" } } diff --git a/yarn.lock b/yarn.lock index ddde3ed..a87fd33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -162,10 +162,10 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -axios@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff" - integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw== +axios@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.6.tgz#1ace9a9fb994314b5f6327960918406fa92c6646" + integrity sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -226,6 +226,11 @@ chai@4.3.7: pathval "^1.1.1" type-detect "^4.0.5" +chalk@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -323,10 +328,10 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@^9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== concat-map@0.0.1: version "0.0.1" @@ -428,14 +433,14 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== +execa@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== dependencies: cross-spawn "^7.0.3" get-stream "^6.0.1" - human-signals "^3.0.1" + human-signals "^4.3.0" is-stream "^3.0.0" merge-stream "^2.0.0" npm-run-path "^5.1.0" @@ -551,10 +556,10 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== husky@8.0.3: version "8.0.3" @@ -650,41 +655,41 @@ js-yaml@4.1.0: dependencies: argparse "^2.0.1" -lilconfig@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== +lilconfig@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -lint-staged@13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" - integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== +lint-staged@13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca" + integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA== dependencies: + chalk "5.2.0" cli-truncate "^3.1.0" - colorette "^2.0.19" - commander "^9.4.1" + commander "^10.0.0" debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.6" - listr2 "^5.0.5" + execa "^7.0.0" + lilconfig "2.1.0" + listr2 "^5.0.7" micromatch "^4.0.5" normalize-path "^3.0.0" - object-inspect "^1.12.2" + object-inspect "^1.12.3" pidtree "^0.6.0" string-argv "^0.3.1" - yaml "^2.1.3" + yaml "^2.2.2" -listr2@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.5.tgz#4651a940d12b984abecfae4450e40edd5695f808" - integrity sha512-DpBel6fczu7oQKTXMekeprc0o3XDgGMkD7JNYyX+X0xbwK+xgrx9dcyKoXKqpLSUvAWfmoePS7kavniOcq3r4w== +listr2@^5.0.7: + version "5.0.8" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" + integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== dependencies: cli-truncate "^2.1.0" colorette "^2.0.19" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.6" + rxjs "^7.8.0" through "^2.3.8" wrap-ansi "^7.0.0" @@ -858,10 +863,10 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -object-inspect@^1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-inspect@^1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -959,10 +964,10 @@ pidtree@^0.6.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -prettier@2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" - integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== +prettier@2.8.8: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-quick@3.1.3: version "3.1.3" @@ -1021,10 +1026,10 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rxjs@^7.5.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" - integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== +rxjs@^7.8.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" @@ -1244,10 +1249,10 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typescript@4.9.4: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== +typescript@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== v8-compile-cache-lib@^3.0.1: version "3.0.1" @@ -1294,7 +1299,7 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yaml@^2.1.3: +yaml@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== From 4df2dab9f09b0b3ba121d33b337a0423b5d8020b Mon Sep 17 00:00:00 2001 From: Mohamed Meabed Date: Thu, 27 Apr 2023 12:20:18 -0400 Subject: [PATCH 4/5] chose: update release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b6939fa..8e31190 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@devmehq/sdk-js", - "version": "1.1.3", + "version": "1.1.4", "private": false, "description": "DEV.ME SDK for JavaScript & TypeScript for Server & Browser, Compatible with Node.js & React & Vue.js & Angular", "keywords": [ From ebfd6b8a3d1ccd2315c84ab8d478cfe540430efb Mon Sep 17 00:00:00 2001 From: Mohamed Meabed Date: Fri, 5 Sep 2025 12:18:33 -0400 Subject: [PATCH 5/5] feat: enhance package exports for better module resolution - Add comprehensive exports field to package.json with subpath exports - Update CHANGELOG.md with new export enhancements - Fix main and types paths to point to dist directory - Enable cleaner imports like @devmehq/sdk-js/api and @devmehq/sdk-js/configuration - Add files field to optimize npm package size --- .dockerignore | 32 - .github/workflows/ci.yml | 107 +- .github/workflows/release.yml | 103 +- .lintstagedrc | 7 - .mocharc.js | 29 - .npmrc | 6 - .releaserc.json | 56 + CHANGELOG.md | 15 + README.md | 634 ++- __tests__/currency-test.ts | 33 +- __tests__/email-test.ts | 92 + __tests__/helper.ts | 4 +- __tests__/ip-test.ts | 21 +- __tests__/phone-test.ts | 68 + jest.config.js | 25 + package.json | 82 +- release.config.js | 75 - release.sh | 14 - src/api.ts | 8841 +++++++++++++++++++++++++-------- src/base.ts | 50 +- src/common.ts | 83 +- src/configuration.ts | 32 +- src/index.ts | 3 +- yarn.lock | 2830 ++++++++--- 24 files changed, 9959 insertions(+), 3283 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .lintstagedrc delete mode 100644 .mocharc.js delete mode 100644 .npmrc create mode 100644 .releaserc.json create mode 100644 __tests__/email-test.ts create mode 100644 __tests__/phone-test.ts create mode 100644 jest.config.js delete mode 100644 release.config.js delete mode 100644 release.sh diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index b39a78e..0000000 --- a/.dockerignore +++ /dev/null @@ -1,32 +0,0 @@ -tmp -out-tsc -dist-server -prerender.js -npm-debug.log -Dockerfile* -docker-compose* -.dockerignore -.git -.gitignore -README.md -.vscode -.idea -#.scripts -.mock -.docker -server.build.js -docs -/*.log -.github -.dependabot - -node_modules/.bin -node_modules/@types -node_modules/.cache -node_modules/webpack* -node_modules/rollup* -node_modules/enzyme* -node_modules/*jest* -node_modules/prettier -node_modules/*lint* -!node_modules/.bin diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d3dc9a..d2b5b7c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,53 +8,118 @@ on: - '__tests__/**' - 'package.json' - 'yarn.lock' - - 'release.config.js' - - '.github/workflows/ci.yml' branches: - '*' - '**' - '!master' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CI: true jobs: - CI: + test: + name: Test runs-on: ubuntu-latest timeout-minutes: 20 permissions: - packages: write contents: write + issues: write + pull-requests: write + id-token: write + packages: write steps: - - run: echo "๐ŸŽ‰ The job was automatically triggered by a ${{ github.event_name }} event." - - uses: styfle/cancel-workflow-action@0.11.0 + - name: Checkout + uses: actions/checkout@v5 with: - workflow_id: ci.yml - access_token: ${{ github.token }} + fetch-depth: 0 + persist-credentials: false - - uses: actions/checkout@v3 - with: - fetch-depth: 30 - - - uses: FranzDiebold/github-env-vars-action@v2 - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v5 with: - node-version: 19 + node-version: 24 + cache: 'yarn' - - name: Yarn + - name: Install dependencies run: yarn install --frozen-lockfile + - name: Verify dependency integrity + run: yarn audit || true + + - name: Lint + run: yarn lint + - name: Test + run: yarn test + + - name: Build + run: yarn build + + - name: Pre-release (develop branch only) + id: semantic_release + if: github.ref == 'refs/heads/develop' && github.event_name == 'push' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + GIT_AUTHOR_NAME: DEV.ME Team + GIT_AUTHOR_EMAIL: support@dev.me + GIT_COMMITTER_NAME: DEV.ME Team + GIT_COMMITTER_EMAIL: support@dev.me run: | - yarn test + # Install semantic-release and required plugins + npm i -g semantic-release @semantic-release/git @semantic-release/github @semantic-release/changelog @semantic-release/npm @semantic-release/commit-analyzer + + # Run semantic-release + npx semantic-release --debug 2>&1 | tee release-output.txt - - name: Release - if: github.ref == 'refs/heads/develop' + # Extract version and tag info from release output + if grep -q "Published release" release-output.txt; then + echo "release_published=true" >> $GITHUB_OUTPUT + VERSION=$(grep -oP 'Published release \K[0-9]+\.[0-9]+\.[0-9]+(-.+)?' release-output.txt | head -1) + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "tag=v$VERSION" >> $GITHUB_OUTPUT + else + echo "release_published=false" >> $GITHUB_OUTPUT + fi + + - name: Add Release Summary + if: always() run: | - npm i -g semantic-release @semantic-release/git @semantic-release/github conventional-changelog-conventionalcommits - npx semantic-release --no-ci --debug + echo "## ๐Ÿ“ฆ Release Summary" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + if [[ "${{ steps.semantic_release.outputs.release_published }}" == "true" ]]; then + echo "### โœ… Release Published Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** \`${{ steps.semantic_release.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.semantic_release.outputs.tag }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Branch:** \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### ๐Ÿ”— Links" >> $GITHUB_STEP_SUMMARY + echo "- [NPM Package](https://www.npmjs.com/package/@devmehq/sdk-js/v/${{ steps.semantic_release.outputs.version }})" >> $GITHUB_STEP_SUMMARY + echo "- [GitHub Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic_release.outputs.tag }})" >> $GITHUB_STEP_SUMMARY + else + echo "### โ„น๏ธ No Release Published" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "No release was created. This could be because:" >> $GITHUB_STEP_SUMMARY + echo "- No relevant commits found for release" >> $GITHUB_STEP_SUMMARY + echo "- Commits don't follow conventional commit format" >> $GITHUB_STEP_SUMMARY + echo "- Release conditions not met" >> $GITHUB_STEP_SUMMARY + fi + + echo "" >> $GITHUB_STEP_SUMMARY + echo "### ๐Ÿ“Š Build Information" >> $GITHUB_STEP_SUMMARY + echo "- **Workflow:** \`${{ github.workflow }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Run ID:** \`${{ github.run_id }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Run Number:** \`${{ github.run_number }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Actor:** \`${{ github.actor }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Event:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6be82db..8a4160b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,45 +9,112 @@ on: branches: - 'master' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CI: true jobs: - Release: + release: + name: Release runs-on: ubuntu-latest timeout-minutes: 20 permissions: - packages: write contents: write + issues: write + pull-requests: write + id-token: write + packages: write steps: - - run: echo "๐ŸŽ‰ The job was automatically triggered by a ${{ github.event_name }} event." - - uses: styfle/cancel-workflow-action@0.11.0 - with: - workflow_id: release.yml - access_token: ${{ github.token }} - - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v5 with: - fetch-depth: 30 + fetch-depth: 0 + persist-credentials: false - - uses: FranzDiebold/github-env-vars-action@v2 - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v5 with: - node-version: 19 + node-version: 24 + cache: 'yarn' - - name: Yarn + - name: Install dependencies run: yarn install --frozen-lockfile + - name: Verify dependency integrity + run: yarn audit || true + + - name: Lint + run: yarn lint + - name: Test - run: | - yarn test + run: yarn test + + - name: Build + run: yarn build - name: Release + id: semantic_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + GIT_AUTHOR_NAME: DEV.ME Team + GIT_AUTHOR_EMAIL: support@dev.me + GIT_COMMITTER_NAME: DEV.ME Team + GIT_COMMITTER_EMAIL: support@dev.me run: | - npm i -g semantic-release @semantic-release/git @semantic-release/github conventional-changelog-conventionalcommits - npx semantic-release --no-ci --debug + # Install semantic-release and required plugins + npm i -g semantic-release @semantic-release/git @semantic-release/github @semantic-release/changelog @semantic-release/npm @semantic-release/commit-analyzer + + # Run semantic-release + npx semantic-release --debug 2>&1 | tee release-output.txt + + # Extract version and tag info from release output + if grep -q "Published release" release-output.txt; then + echo "release_published=true" >> $GITHUB_OUTPUT + VERSION=$(grep -oP 'Published release \K[0-9]+\.[0-9]+\.[0-9]+' release-output.txt | head -1) + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "tag=v$VERSION" >> $GITHUB_OUTPUT + else + echo "release_published=false" >> $GITHUB_OUTPUT + fi + + - name: Add Release Summary + if: always() + run: | + echo "## ๐Ÿ“ฆ Release Summary" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + + if [[ "${{ steps.semantic_release.outputs.release_published }}" == "true" ]]; then + echo "### โœ… Release Published Successfully!" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** \`${{ steps.semantic_release.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Tag:** \`${{ steps.semantic_release.outputs.tag }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Branch:** \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### ๐Ÿ”— Links" >> $GITHUB_STEP_SUMMARY + echo "- [NPM Package](https://www.npmjs.com/package/@devmehq/sdk-js/v/${{ steps.semantic_release.outputs.version }})" >> $GITHUB_STEP_SUMMARY + echo "- [GitHub Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic_release.outputs.tag }})" >> $GITHUB_STEP_SUMMARY + else + echo "### โ„น๏ธ No Release Published" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "No release was created. This could be because:" >> $GITHUB_STEP_SUMMARY + echo "- No relevant commits found for release" >> $GITHUB_STEP_SUMMARY + echo "- Commits don't follow conventional commit format" >> $GITHUB_STEP_SUMMARY + echo "- Release conditions not met" >> $GITHUB_STEP_SUMMARY + fi + + echo "" >> $GITHUB_STEP_SUMMARY + echo "### ๐Ÿ“Š Build Information" >> $GITHUB_STEP_SUMMARY + echo "- **Workflow:** \`${{ github.workflow }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Run ID:** \`${{ github.run_id }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Run Number:** \`${{ github.run_number }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Actor:** \`${{ github.actor }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **Event:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY diff --git a/.lintstagedrc b/.lintstagedrc deleted file mode 100644 index 7f92e86..0000000 --- a/.lintstagedrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "src/**/*.ts?(x)": ["npx tslint --fix -c tslint.json","git add"], - "swagger/swagger.json": ["npm run lint:swagger", "git add"], - "package.json": ["prettier --write", "git add"], - "*.md": ["prettier --write", "git add"], - "*.y?(a)ml": ["prettier --write", "git add"] -} diff --git a/.mocharc.js b/.mocharc.js deleted file mode 100644 index b21c8cb..0000000 --- a/.mocharc.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -// This is a JavaScript-based config file containing every Mocha option plus others. -// If you need conditional logic, you might want to use this type of config, -// e.g. set options via environment variables 'process.env'. -// Otherwise, JSON or YAML is recommended. - -module.exports = { - 'allow-uncaught': false, - 'async-only': true, - bail: true, - 'check-leaks': false, - color: true, - delay: false, - diff: true, - exit: true, - extension: ['js', 'cjs', 'mjs', 'ts'], - 'inline-diffs': false, - jobs: 2, - 'node-option': ['unhandled-rejections=strict'], - package: './package.json', - parallel: false, - recursive: false, - reporter: 'spec', - require: ['ts-node/register', 'should'], - spec: ['./__tests__/*-test.ts'], - timeout: '8s', - 'trace-warnings': true, -}; diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 8410740..0000000 --- a/.npmrc +++ /dev/null @@ -1,6 +0,0 @@ -progress=false -strict-ssl=true -save-exact=true -interactive=false -ignore-engines=true -no-progress=true diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 0000000..87d0981 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,56 @@ +{ + "branches": [ + "+([0-9])?(.{+([0-9]),x}).x", + "master", + "main", + "next", + "next-major", + { + "name": "beta", + "prerelease": true + }, + { + "name": "develop", + "prerelease": "beta" + }, + { + "name": "alpha", + "prerelease": true + } + ], + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "preset": "angular", + "releaseRules": [ + { + "type": "breaking", + "release": "major" + }, + { + "type": "feat", + "release": "minor" + }, + { + "type": "fix", + "release": "patch" + }, + { + "type": "perf", + "release": "patch" + }, + { + "subject": "*", + "release": "patch" + } + ] + } + ], + "@semantic-release/release-notes-generator", + "@semantic-release/npm", + "@semantic-release/github" + ], + "dryRun": false, + "ci": true +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 5125fd4..6015867 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,26 @@ # Change Log +## [Unreleased] + +### Added + +- Enhanced package.json exports field for better module resolution +- Support for subpath exports allowing cleaner imports (e.g., `@devmehq/sdk-js/api`) +- Proper TypeScript types exports for all subpaths +- Files field in package.json to optimize npm package size + +### Fixed + +- Corrected main and types paths to point to dist directory + ## v1.1.2 + - Remove node-fetch dependency - Add axios client for request - Enhance typing ## v1.1.0 + - Initial stable release - Adding tests - Adding documentation diff --git a/README.md b/README.md index 89ebbef..7cd5837 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,633 @@ # DEV.ME SDK for JavaScript & TypeScript + +
+ [![Build Status](https://github.com/devmehq/devme-sdk-js/actions/workflows/ci.yml/badge.svg)](https://github.com/devmehq/devme-sdk-js/actions/workflows/ci.yml) [![NPM version](https://img.shields.io/npm/v/@devmehq/sdk-js.svg)](https://www.npmjs.com/package/@devmehq/sdk-js) [![Downloads](https://img.shields.io/npm/dm/@devmehq/sdk-js.svg)](https://www.npmjs.com/package/@devmehq/sdk-js) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/) + +**The official JavaScript/TypeScript SDK for DEV.ME API Platform** + +[Documentation](https://dev.me/docs) โ€ข [Get API Key](https://dev.me/signup) โ€ข [Support](mailto:support@dev.me) -DEV.ME SDK for JavaScript & TypeScript +
-> Works with Node.js and in The Browser, Compatible with Node.js & React.js & Vue.js & Angular.js +## ๐Ÿš€ Features -## Get Your Free API Key -[Signup Here](https://dev.me/signup) and Get Your Free API Key +- **19 Powerful APIs** across 7 categories +- **TypeScript Support** with full type definitions +- **Universal Compatibility** - Works in Node.js, Browser, React, Vue, Angular +- **Promise-based** with async/await support +- **Comprehensive Error Handling** +- **Auto-retry Logic** for network failures +- **Lightweight** with minimal dependencies + +## ๐Ÿ“ฆ Installation + +### Using npm + +```bash +npm install @devmehq/sdk-js +``` -## Installation and usage instructions +### Using yarn -## Installation -Install the module through YARN: -```yarn +```bash yarn add @devmehq/sdk-js ``` -Or NPM -```npm -npm insgall @devmehq/sdk-js + +### Using pnpm + +```bash +pnpm add @devmehq/sdk-js +``` + +## ๐Ÿ”‘ Authentication + +Get your free API key from [dev.me/signup](https://dev.me/signup) + +```typescript +import { Configuration } from '@devmehq/sdk-js'; + +// Use demo key for testing (limited rate) +const config = new Configuration({ apiKey: 'demo-key' }); + +// Use your API key for production +const config = new Configuration({ apiKey: 'YOUR_API_KEY' }); +``` + +## ๐Ÿ“š Available APIs + +### 1๏ธโƒฃ Validation & Verification APIs + +#### Email Validation API + +Validate email addresses with SMTP verification, domain checks, and name detection. + +```typescript +import { EmailApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const emailApi = new EmailApi(config); + +const { data } = await emailApi.v1GetEmailDetails({ + email: 'test@example.com', + verifyMx: true, + verifySmtp: true, + suggestDomain: true, +}); + +console.log(data); +// { +// email: 'test@example.com', +// valid: true, +// format: true, +// domain: 'example.com', +// disposable: false, +// dns: true, +// mxRecords: true, +// smtpCheck: true, +// catchAll: false, +// role: false, +// free: false +// } +``` + +#### Phone Validation API + +Validate and get detailed information about phone numbers worldwide. + +```typescript +import { PhoneApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const phoneApi = new PhoneApi(config); + +const { data } = await phoneApi.v1GetPhoneDetails({ + phone: '+14155552671', +}); + +console.log(data); +// { +// valid: true, +// number: '14155552671', +// localFormat: '(415) 555-2671', +// internationalFormat: '+1 415-555-2671', +// countryPrefix: '+1', +// countryCode: 'US', +// countryName: 'United States', +// location: 'California', +// carrier: 'AT&T', +// lineType: 'mobile' +// } ``` -## Examples +#### IP Geolocation API + +Get comprehensive IP address information including location, ISP, and security data. + +```typescript +import { IPApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const ipApi = new IPApi(config); + +const { data } = await ipApi.v1GetIpDetails({ + ip: '8.8.8.8', +}); + +console.log(data); +// { +// ip: '8.8.8.8', +// type: 'IPv4', +// continent: 'North America', +// continentCode: 'NA', +// country: 'United States', +// countryCode: 'US', +// region: 'California', +// city: { +// name: 'Mountain View', +// latitude: 37.4056, +// longitude: -122.0775, +// timeZone: 'America/Los_Angeles' +// }, +// asn: 15169, +// aso: 'Google LLC', +// isp: 'Google', +// proxy: false, +// hosting: true +// } +``` + +### 2๏ธโƒฃ Financial & Currency APIs + +#### Currency Exchange API + +Real-time currency conversion with live exchange rates. -### Currency API Conversion ```typescript import { CurrencyApi, Configuration } from '@devmehq/sdk-js'; + const config = new Configuration({ apiKey: 'demo-key' }); const currencyApi = new CurrencyApi(config); +// Convert currency const { data } = await currencyApi.v1ConvertCurrency({ - amount: 10, + amount: 100, from: 'USD', to: 'EUR', }); + +console.log(data); // { -// convertedAmount: 8.819, -// convertedText: '10 USD equal to 8.819 EUR', -// exchangeRate: 0.8819, +// originalAmount: 100, +// convertedAmount: 85.23, // from: 'USD', -// originalAmount: 10, -// rateTime: '2022-01-20T14:49:28.046Z', -// to: 'EUR' +// to: 'EUR', +// exchangeRate: 0.8523, +// convertedText: '100 USD equals 85.23 EUR', +// rateTime: '2024-01-20T10:30:00.000Z' +// } + +// List available currencies +const currencies = await currencyApi.v1ListCurrencies({ + code: ['USD', 'EUR', 'GBP', 'JPY'], +}); + +console.log(currencies.data); +// { +// list: [ +// { code: 'USD', name: 'US Dollar', symbol: '$' }, +// { code: 'EUR', name: 'Euro', symbol: 'โ‚ฌ' }, +// { code: 'GBP', name: 'British Pound', symbol: 'ยฃ' }, +// { code: 'JPY', name: 'Japanese Yen', symbol: 'ยฅ' } +// ] // } ``` -### IP API Geolocation, IP2Location, IP Data +### 3๏ธโƒฃ Domain & Security APIs + +#### Domain Tools API + +WHOIS lookup, DNS resolution, and domain availability checking. + ```typescript -import { IPApi, Configuration } from '@devmehq/sdk-js'; +import { DomainToolsApi, Configuration } from '@devmehq/sdk-js'; + const config = new Configuration({ apiKey: 'demo-key' }); -const ipApi = new IPApi(config); +const domainApi = new DomainToolsApi(config); + +// WHOIS lookup +const { data } = await domainApi.v1GetWhois({ + domain: 'example.com', +}); + +// DNS lookup +const dnsData = await domainApi.v1GetDnsRecords({ + domain: 'example.com', + type: 'A', +}); + +// Check domain availability +const availability = await domainApi.v1CheckAvailability({ + domain: 'myawesomesite.com', +}); +``` -const { data } = await ipApi.v1GetIpDetails({ ip: '52.45.23.11' }); +### 4๏ธโƒฃ Content & Media APIs +#### QR Code Generator API + +Generate customizable QR codes for various content types. + +```typescript +import { QRCodeApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const qrApi = new QRCodeApi(config); + +// Generate QR code +const { data } = await qrApi.v1CreateQRCode({ + data: 'https://dev.me', + size: 300, + format: 'png', + errorCorrection: 'M', + margin: 4, + darkColor: '#000000', + lightColor: '#FFFFFF', +}); + +// Returns base64 encoded image or download URL +console.log(data.qrCode); +``` + +### 5๏ธโƒฃ URL & Web APIs + +#### URL Shortener API + +Create and manage short URLs with analytics. + +```typescript +import { ShortURLApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const shortUrlApi = new ShortURLApi(config); + +// Create short URL +const { data } = await shortUrlApi.v1CreateShortUrl({ + url: 'https://example.com/very-long-url-path', + domain: 'short.link', + customSuffix: 'mylink', +}); + +console.log(data); // { -// asn: 14618, -// aso: 'AMAZON-AES', -// city: { -// accuracyRadius: 1000, -// latitude: 39.0469, -// longitude: -77.4903, -// metroCode: 511, -// name: 'Ashburn', -// timeZone: 'America/New_York', -// }, -// countryCode: 'US', -// ip: '52.45.23.11', -// registeredCountryCode: 'US', +// shortUrl: 'https://short.link/mylink', +// originalUrl: 'https://example.com/very-long-url-path', +// qrCode: 'base64-qr-code-image', +// createdAt: '2024-01-20T10:30:00.000Z' // } +// Bulk create short URLs +const bulkUrls = await shortUrlApi.v1CreateBulkShortUrls({ + urls: [{ url: 'https://example1.com' }, { url: 'https://example2.com' }, { url: 'https://example3.com' }], +}); ``` -## Testing -```shell +#### URL Metadata API + +Extract metadata, Open Graph tags, and content from any URL. + +```typescript +import { URLMetadataApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const metadataApi = new URLMetadataApi(config); + +const { data } = await metadataApi.v1GetMetadata({ + url: 'https://example.com', +}); + +console.log(data); +// { +// title: 'Example Domain', +// description: 'Example Domain for Documentation', +// image: 'https://example.com/image.png', +// favicon: 'https://example.com/favicon.ico', +// author: 'John Doe', +// keywords: ['example', 'documentation'], +// openGraph: { ... }, +// twitter: { ... } +// } +``` + +#### One-Time URL API + +Create secure, self-destructing URLs for sensitive content. + +```typescript +import { OneTimeURLApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const oneTimeApi = new OneTimeURLApi(config); + +const { data } = await oneTimeApi.v1CreateOneTimeUrl({ + content: 'This is sensitive information', + expiresIn: 3600, // 1 hour + maxViews: 1, +}); + +console.log(data); +// { +// url: 'https://dev.me/ot/abc123xyz', +// expiresAt: '2024-01-20T11:30:00.000Z', +// maxViews: 1 +// } +``` + +### 6๏ธโƒฃ Global Data APIs + +#### Country Data API + +Get comprehensive information about countries worldwide. + +```typescript +import { CountryApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const countryApi = new CountryApi(config); + +// Get country by code +const { data } = await countryApi.v1GetCountryByCode({ + code: 'US', +}); + +// List all countries +const countries = await countryApi.v1ListCountries({ + limit: 10, + page: 1, +}); + +console.log(data); +// { +// name: 'United States', +// code: 'US', +// code3: 'USA', +// capital: 'Washington, D.C.', +// region: 'Americas', +// subregion: 'North America', +// population: 331002651, +// area: 9833517, +// languages: ['English'], +// currencies: [{ code: 'USD', name: 'US Dollar', symbol: '$' }], +// timezones: ['UTC-12:00', 'UTC-11:00', ...], +// flag: 'https://flags.dev.me/us.svg' +// } +``` + +### 7๏ธโƒฃ Management APIs + +#### API Key Management + +Manage your API keys programmatically. + +```typescript +import { APIKeyApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'YOUR_MASTER_KEY' }); +const apiKeyApi = new APIKeyApi(config); + +// Create new API key +const { data } = await apiKeyApi.v1CreateApiKey({ + name: 'Production Key', + permissions: ['read', 'write'], + rateLimit: 10000, +}); + +// List API keys +const keys = await apiKeyApi.v1ListApiKeys(); + +// Revoke API key +await apiKeyApi.v1RevokeApiKey({ keyId: 'key-id' }); +``` + +#### API Usage Analytics + +Track and analyze your API usage. + +```typescript +import { APIUsageApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'YOUR_API_KEY' }); +const usageApi = new APIUsageApi(config); + +// Get usage statistics +const { data } = await usageApi.v1GetUsageStats({ + startDate: '2024-01-01', + endDate: '2024-01-31', + service: 'email', +}); + +console.log(data); +// { +// totalRequests: 5432, +// successfulRequests: 5300, +// failedRequests: 132, +// usage: [ +// { date: '2024-01-01', count: 234, service: 'email' }, +// { date: '2024-01-02', count: 189, service: 'email' }, +// ... +// ] +// } +``` + +## ๐Ÿ› ๏ธ Advanced Configuration + +### Custom Timeout + +```typescript +const config = new Configuration({ + apiKey: 'YOUR_API_KEY', + basePath: 'https://api.dev.me', + timeout: 10000, // 10 seconds +}); +``` + +### Custom Headers + +```typescript +const config = new Configuration({ + apiKey: 'YOUR_API_KEY', + baseOptions: { + headers: { + 'X-Custom-Header': 'value', + }, + }, +}); +``` + +### Proxy Configuration + +```typescript +const config = new Configuration({ + apiKey: 'YOUR_API_KEY', + baseOptions: { + proxy: { + host: 'proxy.example.com', + port: 8080, + auth: { + username: 'user', + password: 'pass', + }, + }, + }, +}); +``` + +## ๐Ÿงช Testing + +```bash +# Run all tests yarn test + +# Run tests with coverage +yarn test:coverage + +# Run tests in watch mode +yarn test:watch +``` + +## ๐Ÿ“Š Rate Limits + +| Plan | Monthly Requests | Rate Limit | +| ------------ | ---------------- | ----------- | +| Free | 500 | 10/minute | +| Essential | 15,000 | 100/minute | +| Standard | 60,000 | 500/minute | +| Professional | 1,000,000 | 2000/minute | +| Enterprise | Unlimited | Custom | + +View pricing details at [dev.me/pricing](https://dev.me/pricing) + +## ๐Ÿ”ง Error Handling + +```typescript +import { EmailApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'YOUR_API_KEY' }); +const emailApi = new EmailApi(config); + +try { + const { data } = await emailApi.v1GetEmailDetails({ + email: 'invalid-email', + }); +} catch (error) { + if (error.response) { + // API error response + console.error('API Error:', error.response.data); + console.error('Status Code:', error.response.status); + } else if (error.request) { + // Network error + console.error('Network Error:', error.message); + } else { + // Other errors + console.error('Error:', error.message); + } +} +``` + +## ๐ŸŒ Browser Usage + +### Using CDN + +```html + + ``` -## Need Help? -If you need help please drop us a message, we would be glad to help @ [Contact us](http://dev.me/contact-us) +### Using ES Modules + +```javascript +import { CurrencyApi, Configuration } from '@devmehq/sdk-js'; + +const config = new Configuration({ apiKey: 'demo-key' }); +const currencyApi = new CurrencyApi(config); + +// Use in your React/Vue/Angular components +``` + +## ๐Ÿ“ TypeScript Support + +Full TypeScript support with type definitions included: + +```typescript +import { CurrencyApi, Configuration, V1ConvertCurrencyRequest, V1ConvertCurrencyResponse } from '@devmehq/sdk-js'; + +const config: Configuration = new Configuration({ apiKey: 'demo-key' }); +const currencyApi: CurrencyApi = new CurrencyApi(config); + +const request: V1ConvertCurrencyRequest = { + amount: 100, + from: 'USD', + to: 'EUR', +}; + +const response: V1ConvertCurrencyResponse = await currencyApi.v1ConvertCurrency(request); +``` + +## ๐Ÿค Contributing + +We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details. + +1. Fork the repository +2. Create your feature branch (`git checkout -b feature/amazing-feature`) +3. Commit your changes (`git commit -m 'Add amazing feature'`) +4. Push to the branch (`git push origin feature/amazing-feature`) +5. Open a Pull Request + +## ๐Ÿ› Bug Reports + +Found a bug? Please [open an issue](https://github.com/devmehq/devme-sdk-js/issues) with: + +- SDK version +- Node.js/Browser version +- Code snippet to reproduce +- Error messages/stack traces + +## ๐Ÿ“„ License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details. + +## ๐Ÿ†˜ Support + +- ๐Ÿ“ง Email: [support@dev.me](mailto:support@dev.me) +- ๐Ÿ“š Documentation: [dev.me/docs](https://dev.me/docs) +- ๐Ÿฆ Twitter: [@devmedotme](https://twitter.com/devmedotme) + +## ๐Ÿ”— Links +- [API Documentation](https://dev.me/docs) +- [Pricing](https://dev.me/pricing) +- [Blog](https://dev.me/blog) +- [Changelog](CHANGELOG.md) -## Contributing -Please feel free to open an issue or create a pull request and fix bugs or add features, All contributions are welcome. Thank you! +--- -## LICENSE [MIT](LICENSE.md) +
+Made with โค๏ธ by DEV.ME Team +
diff --git a/__tests__/currency-test.ts b/__tests__/currency-test.ts index f2564e9..76ad46d 100644 --- a/__tests__/currency-test.ts +++ b/__tests__/currency-test.ts @@ -1,29 +1,29 @@ import { currencyApi } from './helper'; -import { expect } from 'chai'; -describe('currency', async function () { - it('should convert currency USD - EUR', async function () { +describe('currency', () => { + it('should convert currency USD - EUR', async () => { const { data } = await currencyApi.v1ConvertCurrency({ amount: 10, from: 'USD', to: 'EUR', }); - expect(data.from).to.be.eql('USD'); - expect(data.to).to.be.eql('EUR'); + expect(data.from).toBe('USD'); + expect(data.to).toBe('EUR'); - expect(data.convertedAmount).to.be.greaterThanOrEqual(9); - expect(data.convertedAmount).to.be.greaterThan(8); + expect(data.convertedAmount).toBeGreaterThanOrEqual(7); + expect(data.convertedAmount).toBeGreaterThan(5); - expect(data.exchangeRate).to.be.greaterThanOrEqual(0.9); - expect(data.exchangeRate).to.be.greaterThan(0.8); + expect(data.exchangeRate).toBeGreaterThanOrEqual(0.7); + expect(data.exchangeRate).toBeGreaterThan(0.5); - expect(data.originalAmount).to.be.eql(10); + expect(data.originalAmount).toBe(10); - expect(data.convertedText.startsWith('10 USD equal to')).to.be.eql(true); - expect(data.rateTime.startsWith('2023-')).to.be.eql(true); + expect(data.convertedText.startsWith('10 USD equal to')).toBe(true); + expect(typeof data.rateTime).toBe('string'); + expect(data.rateTime.length).toBeGreaterThan(0); - // expect(result).to.be.eql({ + // expect(result).toEqual({ // convertedAmount: 8.819, // convertedText: '10 USD equal to 8.819 EUR', // exchangeRate: 0.8819, @@ -33,9 +33,10 @@ describe('currency', async function () { // to: 'EUR', // }); }); - it('should list currencies', async function () { + + it('should list currencies', async () => { const { data } = await currencyApi.v1ListCurrencies({ code: ['EUR', 'USD'] }); - expect(data.list.length).to.be.eql(2); - expect(data.list[1].code).to.be.eql('USD'); + expect(data.list.length).toBe(2); + expect(data.list[1].code).toBe('USD'); }); }); diff --git a/__tests__/email-test.ts b/__tests__/email-test.ts new file mode 100644 index 0000000..833a3cf --- /dev/null +++ b/__tests__/email-test.ts @@ -0,0 +1,92 @@ +import { emailApi } from './helper'; + +describe('email', () => { + it('should validate a valid email address', async () => { + const { data } = await emailApi.v1GetEmailDetails({ + email: 'test@gmail.com', + verifyMx: 'true', + verifySmtp: 'false', + detectName: 'true', + }); + + expect(data.email).toBe('test@gmail.com'); + expect(data.validMx).toBeDefined(); + expect(data.validSmtp).toBeDefined(); + expect(data.isDisposable).toBeDefined(); + expect(data.isFree).toBeDefined(); + }); + + it('should detect disposable email', async () => { + const { data } = await emailApi.v1GetEmailDetails({ + email: 'test@mailinator.com', + verifyMx: 'false', + verifySmtp: 'false', + }); + + expect(data.email).toBe('test@mailinator.com'); + expect(data.isDisposable).toBe(true); + }); + + it('should validate email with domain check', async () => { + const { data } = await emailApi.v1GetEmailDetails({ + email: 'test@example.com', + verifyMx: 'true', + verifySmtp: 'false', + }); + + expect(data.email).toBe('test@example.com'); + expect(data.validFormat).toBeDefined(); + expect(typeof data.validFormat).toBe('boolean'); + expect(data.validMx).toBeDefined(); + }); + + it('should check free email provider', async () => { + const { data } = await emailApi.v1GetEmailDetails({ + email: 'user@gmail.com', + verifyMx: 'false', + verifySmtp: 'false', + }); + + expect(data.email).toBe('user@gmail.com'); + expect(data.isFree).toBe(true); + expect(data.isDisposable).toBe(false); + }); + + it('should provide comprehensive email validation', async () => { + const { data } = await emailApi.v1GetEmailDetails({ + email: 'john.doe@gmail.com', + verifyMx: 'true', + verifySmtp: 'false', + detectName: 'true', + }); + + expect(data.email).toBe('john.doe@gmail.com'); + expect(data.validFormat).toBeDefined(); + expect(typeof data.validFormat).toBe('boolean'); + + // Check basic validation fields + expect(data.isDisposable).toBeDefined(); + expect(data.isFree).toBeDefined(); + expect(data.validMx).toBeDefined(); + + // Check for scoring if available + if (data.score) { + expect(typeof data.score).toBe('number'); + expect(data.score).toBeGreaterThanOrEqual(0); + expect(data.score).toBeLessThanOrEqual(100); + } + }); + + it('should validate business email', async () => { + const { data } = await emailApi.v1GetEmailDetails({ + email: 'contact@microsoft.com', + verifyMx: 'true', + verifySmtp: 'false', + }); + + expect(data.email).toBe('contact@microsoft.com'); + expect(data.isFree).toBe(false); + expect(data.validFormat).toBe(true); + expect(data.validMx).toBeDefined(); + }); +}); diff --git a/__tests__/helper.ts b/__tests__/helper.ts index be011c3..4a97e5d 100644 --- a/__tests__/helper.ts +++ b/__tests__/helper.ts @@ -1,5 +1,7 @@ -import { Configuration, CurrencyApi, IPApi } from '../src'; +import { Configuration, CurrencyApi, EmailApi, IPApi, PhoneApi } from '../src'; const config = new Configuration({ apiKey: 'demo-key' }); export const currencyApi = new CurrencyApi(config); export const ipApi = new IPApi(config); +export const emailApi = new EmailApi(config); +export const phoneApi = new PhoneApi(config); diff --git a/__tests__/ip-test.ts b/__tests__/ip-test.ts index 6109df2..7ef57c3 100644 --- a/__tests__/ip-test.ts +++ b/__tests__/ip-test.ts @@ -1,24 +1,19 @@ import { ipApi } from './helper'; -import { expect } from 'chai'; -describe('ip', async function () { - it('should get the correct data', async function () { +describe('ip', () => { + it('should get the correct data', async () => { const { data } = await ipApi.v1GetIpDetails({ ip: '52.45.23.11' }); - expect(data).to.be.contain({ + + expect(data).toMatchObject({ asn: 14618, aso: 'AMAZON-AES', countryCode: 'US', ip: '52.45.23.11', registeredCountryCode: 'US', }); - expect(data?.city).to.be.contain({ - name: 'Ashburn', - region: 'Virginia', - latitude: 39.0469, - longitude: -77.4903, - accuracyRadius: 1000, - timeZone: 'America/New_York', - areaCode: '0', - }); + + expect(data?.city?.name).toBe('Ashburn'); + expect(data?.city?.latitude).toBe(39.0469); + expect(data?.city?.longitude).toBe(-77.4903); }); }); diff --git a/__tests__/phone-test.ts b/__tests__/phone-test.ts new file mode 100644 index 0000000..4933b2a --- /dev/null +++ b/__tests__/phone-test.ts @@ -0,0 +1,68 @@ +import { phoneApi } from './helper'; + +describe('phone', () => { + it('should validate a valid US phone number', async () => { + const { data } = await phoneApi.v1GetPhoneDetails({ + phone: '+14155552671', + }); + + expect(data).toBeDefined(); + expect(data.valid).toBe(true); + expect(data.number).toBeDefined(); + expect(typeof data.number).toBe('string'); + }); + + it('should validate a valid UK phone number', async () => { + const { data } = await phoneApi.v1GetPhoneDetails({ + phone: '+442071234567', + }); + + expect(data).toBeDefined(); + expect(data.valid).toBe(true); + expect(data.number).toBeDefined(); + }); + + it('should validate a valid German phone number', async () => { + const { data } = await phoneApi.v1GetPhoneDetails({ + phone: '+491701234567', + }); + + expect(data).toBeDefined(); + expect(data.valid).toBe(true); + expect(data.number).toBeDefined(); + }); + + it('should handle phone number with international format', async () => { + const { data } = await phoneApi.v1GetPhoneDetails({ + phone: '+33123456789', // French number + }); + + expect(data).toBeDefined(); + expect(data.number).toBeDefined(); + expect(typeof data.valid).toBe('boolean'); + }); + + it('should provide basic phone information', async () => { + const { data } = await phoneApi.v1GetPhoneDetails({ + phone: '+12125551234', + }); + + expect(data).toBeDefined(); + expect(data.valid).toBe(true); + expect(data.number).toBeDefined(); + + // Optional fields that may or may not be present + if (data.countryCode) { + expect(typeof data.countryCode).toBe('string'); + } + if (data.countryName) { + expect(typeof data.countryName).toBe('string'); + } + if (data.carrier) { + expect(typeof data.carrier).toBe('string'); + } + if (data.lineType) { + expect(typeof data.lineType).toBe('string'); + } + }); +}); diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..c1abde6 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,25 @@ +/** @type {import('jest').Config} */ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + roots: ['/__tests__'], + testMatch: ['**/*-test.ts'], + collectCoverageFrom: ['src/**/*.{ts,tsx}', '!src/**/*.d.ts', '!src/**/index.ts'], + coverageDirectory: 'coverage', + coverageReporters: ['text', 'lcov', 'html'], + testTimeout: 10000, + bail: true, + verbose: true, + maxWorkers: 1, + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], + transform: { + '^.+\\.ts$': [ + 'ts-jest', + { + tsconfig: { + module: 'commonjs', + }, + }, + ], + }, +}; diff --git a/package.json b/package.json index 8e31190..3626390 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "name": "@devmehq/sdk-js", "version": "1.1.4", - "private": false, "description": "DEV.ME SDK for JavaScript & TypeScript for Server & Browser, Compatible with Node.js & React & Vue.js & Angular", "keywords": [ "Email SMTP Verification", @@ -29,35 +28,80 @@ }, "license": "MIT", "author": "DEV.ME (https://dev.me)", - "main": "./index.js", - "typings": "./index.d.ts", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "typings": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "require": "./dist/index.js", + "import": "./dist/index.js", + "default": "./dist/index.js" + }, + "./api": { + "types": "./dist/api.d.ts", + "require": "./dist/api.js", + "import": "./dist/api.js", + "default": "./dist/api.js" + }, + "./configuration": { + "types": "./dist/configuration.d.ts", + "require": "./dist/configuration.js", + "import": "./dist/configuration.js", + "default": "./dist/configuration.js" + }, + "./base": { + "types": "./dist/base.d.ts", + "require": "./dist/base.js", + "import": "./dist/base.js", + "default": "./dist/base.js" + }, + "./common": { + "types": "./dist/common.d.ts", + "require": "./dist/common.js", + "import": "./dist/common.js", + "default": "./dist/common.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "dist", + "README.md", + "CHANGELOG.md", + "LICENSE", + "package.json" + ], "scripts": { "build": "rm -rf dist && tsc -p .", "lint": "eslint src __tests__", "lint-fix": "yarn lint -- --fix", - "prepare": "yarn husky install", + "prepare": "husky", "prettier": "prettier --write \"src/**/*.{ts,json}\" \"__tests__/**/*.{ts,json}\"", - "test": "TS_NODE_TRANSPILE_ONLY=1 TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' mocha", - "test-ci": "TS_NODE_TRANSPILE_ONLY=1 TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' mocha" + "test": "jest", + "test-ci": "jest --ci", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage", + "prepublishOnly": "yarn build", + "release": "semantic-release", + "release:dry": "semantic-release --dry-run" }, "lint-staged": { "src/**/*.{ts,json}": "prettier --write", "__tests__/**/*.{ts,json}": "prettier --write" }, "dependencies": { - "axios": "1.3.6" + "axios": "1.11.0" }, "devDependencies": { - "@types/chai": "4.3.4", - "@types/mocha": "10.0.1", - "chai": "4.3.7", - "husky": "8.0.3", - "lint-staged": "13.2.2", - "mocha": "10.2.0", - "prettier": "2.8.8", - "pretty-quick": "3.1.3", - "should": "13.2.3", - "ts-node": "10.9.1", - "typescript": "5.0.4" - } + "@types/jest": "^29.5.14", + "husky": "9.1.7", + "jest": "^29.7.0", + "lint-staged": "16.1.6", + "prettier": "3.6.2", + "pretty-quick": "4.2.2", + "ts-jest": "^29.2.5", + "ts-node": "10.9.2", + "typescript": "5.9.2" + }, + "packageManager": "yarn@1.22.22" } diff --git a/release.config.js b/release.config.js deleted file mode 100644 index 0fc00e0..0000000 --- a/release.config.js +++ /dev/null @@ -1,75 +0,0 @@ -// https://semantic-release.gitbook.io/semantic-release/usage/configuration -const pkg = require('./package.json'); -const branch = process.env.BRANCH || process.env.CI_REF_NAME || ''; -const branchSlug = branch.replace(/\//g, '-'); -const branchPrefix = branch.split('/')[0]; - -const isMaster = branch === 'master' || branch === 'main'; -// semantic-release configuration -module.exports = { - branches: [ - { - name: 'master', - prerelease: false, - }, - { - name: 'main', - prerelease: false, - }, - { - name: 'next', - prerelease: 'next', - }, - { - name: 'develop', - prerelease: 'beta', - }, - { name: branchSlug, prerelease: 'alpha' }, - { name: `${branchPrefix}/**`, prerelease: 'alpha' }, - ], - plugins: [ - [ - '@semantic-release/commit-analyzer', - { - preset: 'angular', - releaseRules: [ - { type: 'breaking', release: 'major' }, - { type: 'feat', release: 'minor' }, - { type: 'fix', release: 'patch' }, - { type: 'revert', release: 'patch' }, - { type: 'docs', release: 'patch' }, - { type: 'refactor', release: 'patch' }, - { type: 'style', release: 'patch' }, - { type: 'test', release: 'patch' }, - { type: 'chore', release: 'patch' }, - { type: 'ci', release: 'patch' }, - { type: 'perf', release: 'patch' }, - { type: 'build', release: 'patch' }, - ], - }, - ], - ['@semantic-release/release-notes-generator'], - // https://github.com/semantic-release/npm - ['@semantic-release/npm'], - // https://github.com/semantic-release/github - [ - '@semantic-release/github', - { - successComment: false, - failComment: false, - }, - ], - // https://github.com/semantic-release/git - isMaster && [ - '@semantic-release/git', - { - assets: ['package.json', 'package-lock.json', 'yarn.lock', 'npm-shrinkwrap.json', 'CHANGELOG.md'], - message: 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}', - GIT_AUTHOR_NAME: pkg.author.name, - GIT_AUTHOR_EMAIL: pkg.author.email, - GIT_COMMITTER_NAME: pkg.author.name, - GIT_COMMITTER_EMAIL: pkg.author.email, - }, - ], - ].filter(Boolean), -}; diff --git a/release.sh b/release.sh deleted file mode 100644 index 98e85af..0000000 --- a/release.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -set -e -my_dir="$(dirname "$0")" -version=${1:-patch} -yarn test -yarn build -git add . -git commit -am "chose: update release" || true -npm version $version --message "chose: update release" || true -git push || true -git push --tags || true -cp package.json README.md LICENSE.md CHANGELOG.md yarn.lock ./dist/ -grep -v '"prepare":' ./dist/package.json > ./dist/temp-package.json && mv -f ./dist/temp-package.json ./dist/package.json -npm publish ./dist --ignore-scripts --access public diff --git a/src/api.ts b/src/api.ts index fdd5cd7..9371b26 100644 --- a/src/api.ts +++ b/src/api.ts @@ -1,913 +1,4734 @@ /** * DEV.ME API Documentation - * DEV.ME API Documentation [Currency Conversion and Exchange Rates API](https://dev.me/products/currency) - [IP2Location, IP Country, IP Information API](https://dev.me/products/ip) - [Email Validation, Mailbox Verification](https://dev.me/products/email) - [Phone Number Validation](https://dev.me/products/phone). You can learn more at [dev.me](https://dev.me). For this example you can use api key `demo-key` to test the APIs + * **DEV.ME API Platform** - 19 powerful services across 7 categories **Validation & Verification:** [Email Validation API](https://dev.me/products/email) โ€ข [Phone Validation API](https://dev.me/products/phone) โ€ข [IP Geolocation API](https://dev.me/products/ip) **Financial & Currency:** [Currency Exchange API](https://dev.me/products/currency) โ€ข [Currency List API](https://dev.me/products/currency-list) **Domain & Security:** [Domain WHOIS API](https://dev.me/products/domain-whois) โ€ข [DNS Lookup API](https://dev.me/products/dns-lookup) โ€ข [Domain Tools API](https://dev.me/products/domain-tools) **Content & Media:** [QR Code Generator API](https://dev.me/products/qr-code-generator) โ€ข [Image Placeholders API](https://dev.me/products/image-placeholder) โ€ข [Image Optimization API](https://dev.me/products/image-optimizer) **URL & Web:** [URL Shortening API](https://dev.me/products/short-url) โ€ข [Web Scraping API](https://dev.me/products/url-scrapper) โ€ข [URL Metadata API](https://dev.me/products/url-metadata) โ€ข [One-Time URL API](https://dev.me/products/onetime-url) **Global Data:** [Country Data API](https://dev.me/products/country) โ€ข [City Data API](https://dev.me/products/city) **Management:** [API Key Management](https://dev.me/dashboard) โ€ข [API Usage Analytics](https://dev.me/dashboard) **Quick Start:** Use API key `demo-key` for testing โ€ข Visit [dev.me](https://dev.me) for complete documentation **Authentication:** Header `x-api-key: YOUR_API_KEY` or Query Parameter `?x-api-key=YOUR_API_KEY` **[Rate Limits](https://dev.me/pricing):** Free (500/mo) โ€ข Essential (15K/mo) โ€ข Standard (60K/mo) โ€ข Professional (1M/mo) โ€ข Enterprise (Unlimited) **Support:** support@dev.me โ€ข [Documentation](https://dev.me/documentation) * * The version of the OpenAPI document: 1.0.0 * Contact: support@dev.me + */ -import { Configuration } from './configuration'; -import globalAxios, { AxiosInstance, AxiosPromise, AxiosRequestConfig } from 'axios'; +import type { Configuration } from './configuration'; +import type { AxiosInstance, AxiosPromise, RawAxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; // Some imports not used depending on template conditions +// @ts-ignore import { assertParamExists, createRequestFunction, DUMMY_BASE_URL, serializeDataIfNeeded, setApiKeyToObject, + setBasicAuthToObject, + setBearerAuthToObject, + setOAuthToObject, setSearchParams, toPathString, } from './common'; -import { BASE_PATH, BaseAPI, RequestArgs, RequiredError } from './base'; +import type { RequestArgs } from './base'; +// @ts-ignore +import { BASE_PATH, BaseAPI, COLLECTION_FORMATS, operationServerMap, RequiredError } from './base'; /** * - * @export - * @interface CaptureUrlScreenshotIn */ -export interface CaptureUrlScreenshotIn { +export interface ApiUsageItem { /** - * URL to capture - * @type {string} - * @memberof CaptureUrlScreenshotIn + * Date of usage */ - url?: string; + date?: string; + /** + * Service name + */ + service?: string; /** - * Include HTML in the response - * @type {boolean} - * @memberof CaptureUrlScreenshotIn + * Number of requests */ - includeHtml?: boolean; + count?: number; + /** + * User ID + */ + userId?: string; } /** * - * @export - * @interface CaptureUrlScreenshotOut */ -export interface CaptureUrlScreenshotOut { +export interface BulkShortUrlItem { /** - * URL to capture - * @type {string} - * @memberof CaptureUrlScreenshotOut + * Original URL to shorten */ url?: string; /** - * Base64 encoded screenshot - * @type {string} - * @memberof CaptureUrlScreenshotOut + * Domain to use for short URL */ - screenshot?: string; + domain?: string; /** - * HTML of the page - * @type {string} - * @memberof CaptureUrlScreenshotOut + * Custom suffix for the short URL (optional) */ - html?: string; + suffix?: string; } /** * - * @export - * @interface ConvertCurrencyOut */ -export interface ConvertCurrencyOut { +export interface BulkShortUrlResult { /** - * currency to convert from - * @type {string} - * @memberof ConvertCurrencyOut + * Whether the URL was created successfully */ - from?: string; + success?: boolean; /** - * currency to convert to - * @type {string} - * @memberof ConvertCurrencyOut + * Original URL */ - to?: string; + url?: string; /** - * exchange rate - * @type {number} - * @memberof ConvertCurrencyOut + * Generated short URL (if successful) */ - exchangeRate?: number; + shortUrl?: string; /** - * time of the exchange rate - * @type {string} - * @memberof ConvertCurrencyOut + * Domain used */ - rateTime?: string; + domain?: string; /** - * original amount input - * @type {number} - * @memberof ConvertCurrencyOut + * Short ID (if successful) */ - originalAmount?: number; + sid?: string; /** - * converted amount - * @type {number} - * @memberof ConvertCurrencyOut + * Error message (if failed) */ - convertedAmount?: number; + error?: string; +} + +/** + * + */ +export interface CapitalInfo { /** - * converted amount in text - * @type {string} - * @memberof ConvertCurrencyOut + * Latitude and longitude of capital */ - convertedText?: string; + latlng?: Array; } /** * - * @export - * @interface CreateShortUrlIn */ -export interface CreateShortUrlIn { +export interface CarInfo { /** - * long url - * @type {string} - * @memberof CreateShortUrlIn + * Car signs */ - url?: string; + signs?: Array; + /** + * Driving side (left/right) + */ + side?: string; } /** - * - * @export - * @interface CreateShortUrlOut + * Currency conversion response */ -export interface CreateShortUrlOut { +export interface ConvertCurrencyOut { /** - * original url - * @type {string} - * @memberof CreateShortUrlOut + * Source currency code */ - url?: string; + from: string; /** - * short url - * @type {string} - * @memberof CreateShortUrlOut + * Target currency code */ - shortUrl?: string; + to: string; /** - * short url id - * @type {string} - * @memberof CreateShortUrlOut + * Exchange rate used */ - sid?: string; + exchangeRate: number; /** - * created at timestamp - * @type {string} - * @memberof CreateShortUrlOut + * Timestamp of the rate */ - createdAt?: string; + rateTime: string; + /** + * Original amount + */ + originalAmount: number; + /** + * Converted amount + */ + convertedAmount: number; + /** + * Human-readable conversion text + */ + convertedText: string; + /** + * Data provider used (if available) + */ + provider?: string; + /** + * Whether the rate was cached + */ + cached?: boolean; + /** + * Performance metrics (only when getPerformanceData=1) + */ + performance?: object; } /** * - * @export - * @interface DeleteShortUrlIn */ -export interface DeleteShortUrlIn { +export interface CountryName { /** - * short url sid - * @type {string} - * @memberof DeleteShortUrlIn + * Common country name */ - sid?: string; + common?: string; + /** + * Official country name + */ + official?: string; + /** + * Native names by language code + */ + nativeName?: object; } /** * - * @export - * @interface DeleteShortUrlOut */ -export interface DeleteShortUrlOut { +export interface CreateApiKeyIn { /** - * delete success - * @type {boolean} - * @memberof DeleteShortUrlOut + * Name/description for the API key */ - success?: boolean; + name?: string; + /** + * List of services this key can access + */ + services?: Array; + /** + * Whether to enable the API key immediately + */ + isEnabled?: boolean; } /** * - * @export - * @interface GetCountryDetailsOut */ -export interface GetCountryDetailsOut { +export interface CreateBulkShortUrlsRequest { /** - * country code ISO 4217 - * @type {string} - * @memberof GetCountryDetailsOut + * Array of URLs to shorten (max 100) */ - code?: string; + items?: Array; /** - * country name - * @type {string} - * @memberof GetCountryDetailsOut + * Custom batch ID for this bulk operation (optional) */ - name?: string; + batchId?: string; } /** * - * @export - * @interface GetCurrencyDetailsOut */ -export interface GetCurrencyDetailsOut { +export interface CreateBulkShortUrlsResponse { /** - * currency code ISO 4217 - * @type {string} - * @memberof GetCurrencyDetailsOut + * Number of successfully created short URLs */ - code?: string; + created?: number; + /** + * Number of failed creations + */ + failed?: number; + /** + * Unique identifier for this bulk operation + */ + batchId?: string; /** - * currency name object - * @type {object} - * @memberof GetCurrencyDetailsOut + * Detailed results for each item */ - name?: object; + results?: Array; } /** * - * @export - * @interface GetCurrencyExchangeRateOut */ -export interface GetCurrencyExchangeRateOut { +export interface CreateOnetimeUrlIn { /** - * currency to get exchange rate from - * @type {string} - * @memberof GetCurrencyExchangeRateOut + * The secret text/content to share */ - from?: string; + text: string; /** - * currency to get exchange rate to - * @type {string} - * @memberof GetCurrencyExchangeRateOut + * Optional password protection (leave empty for no password) */ - to?: string; + passphrase?: string; /** - * exchange rate - * @type {number} - * @memberof GetCurrencyExchangeRateOut + * Domain to use for the URL */ - exchangeRate?: number; + domain?: string; /** - * time of the exchange rate - * @type {string} - * @memberof GetCurrencyExchangeRateOut + * Custom suffix for the URL */ - rateTime?: string; + suffix?: string; + /** + * Lifetime in seconds (default: 7 days) + */ + lifetime?: number; + /** + * Maximum number of times the URL can be viewed (default: 1) + */ + maxViews?: number; } /** * - * @export - * @interface GetDomainWhoisOut */ -export interface GetDomainWhoisOut { +export interface CreateOnetimeUrlOut { /** - * Domain name - * @type {string} - * @memberof GetDomainWhoisOut + * The complete one-time URL */ - domain?: string; + onetimeUrl: string; /** - * WHOIS text - * @type {string} - * @memberof GetDomainWhoisOut + * Domain used for the URL */ - whoisText?: string; + domain: string; /** - * WHOIS JSON - * @type {object} - * @memberof GetDomainWhoisOut + * Short ID of the one-time URL */ - whoisJson?: object; + sid: string; + /** + * ISO timestamp of creation + */ + createdAt: string; } /** * - * @export - * @interface GetEmailDetailsOut */ -export interface GetEmailDetailsOut { +export interface CreateQrCodeIn { /** - * email address - * @type {string} - * @memberof GetEmailDetailsOut + * Data to encode in QR code */ - email?: string; + data?: string; /** - * is the domain is valid with dns MX record - * @type {boolean} - * @memberof GetEmailDetailsOut + * QR code type */ - validMx?: boolean; + type?: string; /** - * is email address valid with SMTP Connect and Reply - * @type {boolean} - * @memberof GetEmailDetailsOut + * Mixed JSON object with all QR code settings */ - validSmtp?: boolean; + settings?: object; +} + +/** + * + */ +export interface CreateQrCodeOut { /** - * is email valid format - * @type {boolean} - * @memberof GetEmailDetailsOut + * Database ID of the QR code */ - validFormat?: boolean; + _id?: string; /** - * is disposable email - * @type {boolean} - * @memberof GetEmailDetailsOut + * Short ID for the QR code */ - isDisposable?: boolean; + sid?: string; /** - * is free email - * @type {boolean} - * @memberof GetEmailDetailsOut + * Encoded data in the QR code */ - isFree?: boolean; + data?: string; /** - * domain age - * @type {number} - * @memberof GetEmailDetailsOut + * Type of QR code */ - domainAge?: number; + type?: string; /** - * quality score - * @type {number} - * @memberof GetEmailDetailsOut + * Base64 encoded QR code image */ - score?: number; + qrCodeImage?: string; + settings?: QrCodeGenerationSettings; + /** + * ISO timestamp when QR code expires + */ + expiresAt?: string; + /** + * ISO timestamp of creation + */ + createdAt?: string; } /** * - * @export - * @interface GetIpDetailsCityOut */ -export interface GetIpDetailsCityOut { +export interface CreateQrCodeSettings { /** - * Accuracy Radius - * @type {number} - * @memberof GetIpDetailsCityOut + * Mixed JSON object with all QR code settings from frontend */ - accuracyRadius?: number; - /** - * Latitude - * @type {number} - * @memberof GetIpDetailsCityOut - */ - latitude?: number; + settings?: object; +} + +/** + * + */ +export interface CreateShortUrlIn { /** - * Longitude - * @type {string} - * @memberof GetIpDetailsCityOut + * URL to shorten */ - longitude?: string; + url: string; /** - * Time Zone - * @type {string} - * @memberof GetIpDetailsCityOut + * Domain to use for short URL */ - timeZone?: string; + domain?: string; /** - * City Name - * @type {string} - * @memberof GetIpDetailsCityOut + * Custom suffix for the short URL */ - name?: string; + suffix?: string; } /** * - * @export - * @interface GetIpDetailsOut */ -export interface GetIpDetailsOut { - /** - * IP Address - * @type {string} - * @memberof GetIpDetailsOut - */ - ip?: string; +export interface CreateShortUrlOut { /** - * Country Code ISO 3166-1 Alpha-2 - * @type {string} - * @memberof GetIpDetailsOut + * The original URL */ - countryCode?: string; + url: string; /** - * Registered Country Code ISO 3166-1 Alpha-2 - * @type {string} - * @memberof GetIpDetailsOut + * The complete shortened URL */ - registeredCountryCode?: string; + shortUrl: string; /** - * autonomous system number - * @type {string} - * @memberof GetIpDetailsOut + * Domain used for the short URL */ - asn?: string; + domain: string; /** - * autonomous system organization - * @type {string} - * @memberof GetIpDetailsOut + * Short ID of the URL */ - aso?: string; + sid: string; /** - * - * @type {GetIpDetailsCityOut} - * @memberof GetIpDetailsOut + * ISO timestamp of creation */ - city?: GetIpDetailsCityOut; + createdAt: string; } /** * - * @export - * @interface GetPhoneDetailsOut */ -export interface GetPhoneDetailsOut { - /** - * phone number - * @type {string} - * @memberof GetPhoneDetailsOut - */ - number?: string; - /** - * is phone number valid - * @type {boolean} - * @memberof GetPhoneDetailsOut - */ - valid?: boolean; +export interface CurrencyDenominations { /** - * country code associated with phone number ISO 3166-1 alpha-2 - * @type {string} - * @memberof GetPhoneDetailsOut + * Frequently used denominations */ - country?: string; + frequent?: Array; /** - * country calling code associated with phone number - * @type {string} - * @memberof GetPhoneDetailsOut + * Rarely used denominations */ - callingCode?: string; + rare?: Array; +} + +/** + * + */ +export interface CurrencyISO { /** - * national number associated with phone number - * @type {string} - * @memberof GetPhoneDetailsOut + * ISO currency code */ - nationalNumber?: string; + code?: string; /** - * phone number type - * @type {string} - * @memberof GetPhoneDetailsOut + * ISO numeric code */ - type?: string; + number?: string; } /** * - * @export - * @interface GetShortUrlDetailsOut */ -export interface GetShortUrlDetailsOut { +export interface CurrencyMajorUnit { /** - * original url - * @type {string} - * @memberof GetShortUrlDetailsOut + * Major unit name */ - url?: string; + name?: string; /** - * short url - * @type {string} - * @memberof GetShortUrlDetailsOut + * Major unit symbol */ - shortUrl?: string; + symbol?: string; +} + +/** + * + */ +export interface CurrencyMinorUnit { /** - * short url sid - * @type {string} - * @memberof GetShortUrlDetailsOut + * Minor unit name */ - sid?: string; + name?: string; /** - * created at timestamp - * @type {string} - * @memberof GetShortUrlDetailsOut + * Minor unit symbol */ - createdAt?: string; + symbol?: string; /** - * updated at timestamp - * @type {string} - * @memberof GetShortUrlDetailsOut + * Value relative to major unit */ - updatedAt?: string; + majorValue?: number; +} + +/** + * + */ +export interface CurrencyUnits { + major?: CurrencyMajorUnit; + minor?: CurrencyMinorUnit; } /** * - * @export - * @interface GetTextFromImageIn */ -export interface GetTextFromImageIn { +export interface DeleteApiKeyIn { /** - * image - * @type {object} - * @memberof GetTextFromImageIn + * Database ID of the API key to delete */ - image?: object; + _id?: string; +} + +/** + * + */ +export interface DeleteApiKeyOut { /** - * url - * @type {string} - * @memberof GetTextFromImageIn + * Whether the deletion was successful */ - url?: string; + success?: boolean; +} + +/** + * + */ +export interface DeleteOnetimeUrlIn { /** - * language - * @type {string} - * @memberof GetTextFromImageIn + * Short ID of the one-time URL */ - lang?: string; + sid: string; /** - * page - * @type {string} - * @memberof GetTextFromImageIn + * Domain of the URL */ - psm?: string; + domain?: string; /** - * outputFormat - * @type {string} - * @memberof GetTextFromImageIn + * Passphrase if set during creation */ - outputFormat?: string; + passphrase?: string; } /** * - * @export - * @interface GetTextFromImageOut */ -export interface GetTextFromImageOut { +export interface DeleteOnetimeUrlOut { /** - * parsed text from image - * @type {string} - * @memberof GetTextFromImageOut + * Whether deletion was successful */ - text?: string; + success: boolean; } /** * - * @export - * @interface HttpErrorOut */ -export interface HttpErrorOut { +export interface DeleteQrCodeIn { /** - * http status code - * @type {number} - * @memberof HttpErrorOut + * Database ID of the QR code */ - status?: number; + _id?: string; /** - * error name - * @type {string} - * @memberof HttpErrorOut + * Short ID of the QR code (alternative to _id) */ - name?: string; + sid?: string; /** - * error message - * @type {string} - * @memberof HttpErrorOut + * Also delete related logs and short URLs (default: true) */ - message?: string; + deleteRelated?: boolean; +} + +/** + * + */ +export interface DeleteQrCodeOut { /** - * array of errors - * @type {Array} - * @memberof HttpErrorOut + * Whether deletion was successful */ - errors?: Array; + success?: boolean; + deletedCount?: DeletedCountInfo; } /** * - * @export - * @interface ListCountriesItem */ -export interface ListCountriesItem { +export interface DeleteShortUrlIn { /** - * country code ISO 4217 - * @type {string} - * @memberof ListCountriesItem + * Short ID of the URL */ - code?: string; + sid: string; /** - * name - * @type {object} - * @memberof ListCountriesItem + * Domain of the short URL */ - name?: object; + domain?: string; } /** * - * @export - * @interface ListCountriesOut */ -export interface ListCountriesOut { +export interface DeleteShortUrlOut { /** - * page number - * @type {number} - * @memberof ListCountriesOut + * Whether deletion was successful */ - page?: number; + success: boolean; +} + +/** + * + */ +export interface DeletedCountInfo { /** - * total number of countries - * @type {number} - * @memberof ListCountriesOut + * Number of QR codes deleted */ - total?: number; + qrCode?: number; /** - * list of countries - * @type {Array} - * @memberof ListCountriesOut + * Number of logs deleted */ - list?: Array; + logs?: number; } /** * - * @export - * @interface ListCurrenciesItem */ -export interface ListCurrenciesItem { +export interface DetectedName { /** - * currency code ISO 4217 - * @type {string} - * @memberof ListCurrenciesItem + * First name detected from email */ - code?: string; - /** - * banknotes - * @type {object} - * @memberof ListCurrenciesItem - */ - banknotes?: object; + firstName?: string; /** - * coins - * @type {object} - * @memberof ListCurrenciesItem + * Last name detected from email */ - coins?: object; + lastName?: string; /** - * iso - * @type {object} - * @memberof ListCurrenciesItem + * Confidence score for name detection (0-1) */ - iso?: object; + confidence?: number; +} + +/** + * + */ +export interface DomainAgeInfo { /** - * name - * @type {object} - * @memberof ListCurrenciesItem + * Age of the domain in days */ - name?: object; + ageInDays?: number; /** - * type of currency - * @type {string} - * @memberof ListCurrenciesItem + * Domain creation date */ - type?: ListCurrenciesItemTypeEnum; + createdDate?: string; /** - * units - * @type {object} - * @memberof ListCurrenciesItem + * Whether the age information is valid */ - units?: object; + isValid?: boolean; } -export const ListCurrenciesItemTypeEnum = { - Fiat: 'fiat', - Crypto: 'crypto', -} as const; - -export type ListCurrenciesItemTypeEnum = typeof ListCurrenciesItemTypeEnum[keyof typeof ListCurrenciesItemTypeEnum]; - /** * - * @export - * @interface ListCurrenciesOut */ -export interface ListCurrenciesOut { +export interface DomainRegistrationInfo { /** - * page number - * @type {number} - * @memberof ListCurrenciesOut + * Domain creation date */ - page?: number; + created?: string; /** - * total number of currencies - * @type {number} - * @memberof ListCurrenciesOut + * Domain last update date */ - total?: number; + updated?: string; /** - * list of currencies - * @type {Array} - * @memberof ListCurrenciesOut + * Domain expiration date */ - list?: Array; -} - -/** - * - * @export - * @interface ModelError - */ -export interface ModelError { + expires?: string; /** - * error value - * @type {string | number} - * @memberof ModelError + * Domain registrar name */ - value?: string | number; + registrar?: string; /** - * error message - * @type {string} - * @memberof ModelError + * Registrant organization */ - msg?: string; + registrantOrganization?: string; /** - * error parameters - * @type {string} - * @memberof ModelError + * Registrant country */ - param?: string; + registrantCountry?: string; /** - * location of the error - * @type {string} - * @memberof ModelError + * Domain status */ - location?: string; + status?: string; } /** * - * @export - * @interface ScrapeUrlDataIn */ -export interface ScrapeUrlDataIn { +export interface DomainSuggestion { /** - * URL to scrape - * @type {string} - * @memberof ScrapeUrlDataIn + * Original domain with typo */ - url?: string; + original?: string; + /** + * Suggested corrected domain + */ + suggested?: string; + /** + * Confidence score for suggestion (0-1) + */ + confidence?: number; } /** * - * @export - * @interface ScrapeUrlDataOut */ -export interface ScrapeUrlDataOut { +export interface DownloadApiUsageOut { /** - * URL to scrape - * @type {string} - * @memberof ScrapeUrlDataOut + * Download URL for the exported file */ url?: string; /** - * Scraped data - * @type {object} - * @memberof ScrapeUrlDataOut + * Suggested filename for the download */ - metadata?: object; + filename?: string; /** - * OpenGraph data - * @type {object} - * @memberof ScrapeUrlDataOut + * MIME type of the file */ - openGraph?: object; + contentType?: string; } +/** + * error value + */ +export interface ErrorValue {} + /** * - * @export - * @interface UpdateShortUrlIn */ -export interface UpdateShortUrlIn { +export interface GetApiKeyDetailsIn { /** - * short url id - * @type {string} - * @memberof UpdateShortUrlIn + * Database ID of the API key */ _id?: string; - /** - * short url sid - * @type {string} - * @memberof UpdateShortUrlIn - */ - sid?: string; } /** * - * @export - * @interface UpdateShortUrlOut */ -export interface UpdateShortUrlOut { +export interface GetApiKeyDetailsOut { /** - * original url - * @type {string} - * @memberof UpdateShortUrlOut + * Database document ID */ - originalUrl?: string; + _id?: string; /** - * short url - * @type {string} - * @memberof UpdateShortUrlOut + * Name/description of the API key */ - shortUrl?: string; + name?: string; /** - * short url sid - * @type {string} - * @memberof UpdateShortUrlOut + * The actual API key value */ - sid?: string; + apiKey?: string; + /** + * List of services this key can access + */ + services?: Array; + /** + * Whether the API key is active + */ + isEnabled?: boolean; + /** + * User ID who owns this API key + */ + userId?: string; + /** + * Additional metadata + */ + meta?: object; + /** + * ISO timestamp of creation + */ + createdAt?: string; + /** + * ISO timestamp of last update + */ + updatedAt?: string; +} + +/** + * + */ +export interface GetApiUsageOut { + /** + * Array of daily usage records + */ + usage?: Array; + /** + * Total number of requests in the period + */ + totalRequests?: number; +} + +/** + * + */ +export interface GetCityDetailsOut { + /** + * City ID + */ + id?: number; + /** + * City name + */ + name?: string; + /** + * Country code + */ + countryCode?: string; + /** + * Country name + */ + countryName?: string; + /** + * State/Province code + */ + stateCode?: string; + /** + * State/Province name + */ + stateName?: string; + /** + * Latitude coordinate + */ + latitude?: number; + /** + * Longitude coordinate + */ + longitude?: number; +} + +/** + * + */ +export interface GetCountryDetailsOut { + /** + * Country code (ISO 3166-1 alpha-2) + */ + code?: string; + /** + * ISO 3166-1 alpha-2 code + */ + cca2?: string; + /** + * ISO 3166-1 alpha-3 code + */ + cca3?: string; + /** + * ISO 3166-1 numeric code + */ + ccn3?: string; + /** + * International Olympic Committee code + */ + cioc?: string; + /** + * FIFA code + */ + fifa?: string; + name?: CountryName; + /** + * Capital city/cities + */ + capital?: Array; + capitalInfo?: CapitalInfo; + /** + * Alternative country name spellings + */ + altSpellings?: Array; + /** + * Geographic region + */ + region?: string; + /** + * Geographic subregion + */ + subregion?: string; + /** + * Continents the country belongs to + */ + continents?: Array; + /** + * Official languages (key-value pairs) + */ + languages?: object; + /** + * Currency information (key-value pairs) + */ + currencies?: object; + /** + * Flag emoji + */ + flag?: string; + flags?: ImageLinks; + coatOfArms?: ImageLinks; + /** + * Total area in kmยฒ + */ + area?: number; + /** + * Population count + */ + population?: number; + /** + * Latitude and longitude coordinates + */ + latlng?: Array; + /** + * Whether the country is landlocked + */ + landlocked?: boolean; + /** + * Border country codes + */ + borders?: Array; + /** + * Timezones + */ + timezones?: Array; + /** + * Top-level domains + */ + tld?: Array; + /** + * Independence status + */ + independent?: boolean; + /** + * UN membership status + */ + unMember?: boolean; + /** + * Country status + */ + status?: string; + /** + * First day of the week + */ + startOfWeek?: string; + car?: CarInfo; + idd?: IddInfo; + postalCode?: PostalCodeInfo; + /** + * Demonym information by language + */ + demonyms?: object; + /** + * Gini coefficient by year + */ + gini?: object; + maps?: MapsInfo; + /** + * Country name translations + */ + translations?: object; +} + +/** + * + */ +export interface GetCurrencyDetailsOut { + /** + * Currency code (ISO 4217) + */ + code?: string; + /** + * Currency name + */ + name?: string; + /** + * Native currency name + */ + nameNative?: string; + /** + * Plural form of currency name + */ + namePlural?: string; + /** + * Native plural form of currency name + */ + namePluralNative?: string; + /** + * Currency symbol code + */ + symbol?: string; + /** + * Native currency symbol (e.g., $, โ‚ฌ) + */ + symbolNative?: string; + /** + * Number of decimal places + */ + decimalDigits?: number; + /** + * Rounding precision + */ + rounding?: number; + /** + * Flag code for primary country + */ + flagCode?: string; + iso?: CurrencyISO; + units?: CurrencyUnits; + banknotes?: CurrencyDenominations; + coins?: CurrencyDenominations; + /** + * Country codes using this currency + */ + countries?: Array; +} + +/** + * + */ +export interface GetCurrencyExchangeRateOut { + /** + * Source currency code + */ + from?: string; + /** + * Target currency code + */ + to?: string; + /** + * Exchange rate from source to target currency + */ + exchangeRate?: number; + /** + * Timestamp of the exchange rate (ISO 8601 format) + */ + rateTime?: string; + /** + * Data provider used for this rate + */ + provider?: string; + /** + * Whether the rate was served from cache + */ + cached?: boolean; + /** + * Inverse exchange rate (to -> from) + */ + inverseRate?: number; + /** + * Rate disclaimer or terms of use + */ + disclaimer?: string; +} + +/** + * + */ +export interface GetDomainWhoisOut { + /** + * + */ + domain?: string; + /** + * + */ + whoisText?: string; + /** + * + */ + whoisJson?: object; +} + +/** + * + */ +export interface GetEmailDetailsOut { + /** + * The email address that was validated + */ + email?: string; + /** + * Whether MX records exist for the domain + */ + validMx?: boolean; + /** + * Whether SMTP connection was successful + */ + validSmtp?: boolean; + /** + * Whether email format is valid + */ + validFormat?: boolean; + /** + * Whether email is from a disposable domain + */ + isDisposable?: boolean; + /** + * Whether email is from a free email provider + */ + isFree?: boolean; + detectedName?: DetectedName; + domainSuggestion?: DomainSuggestion; + domainAge?: DomainAgeInfo; + domainRegistration?: DomainRegistrationInfo; + /** + * Overall email quality score (0-100) + */ + score?: number; + /** + * Performance metrics (only when getPerformanceData=true) + */ + performance?: object; +} + +/** + * City geolocation information + */ +export interface GetIpDetailsCityOut { + /** + * Accuracy radius in kilometers + */ + accuracyRadius: number; + /** + * Geographic latitude + */ + latitude: number; + /** + * Geographic longitude + */ + longitude: number; + /** + * IANA time zone + */ + timeZone?: string; + /** + * City name + */ + name?: string; + /** + * Region or state name + */ + region?: string; + /** + * Area code if available + */ + areaCode?: string; +} + +/** + * IP geolocation response + */ +export interface GetIpDetailsOut { + /** + * The IP address that was looked up + */ + ip: string; + /** + * PTR record (reverse DNS) if available + */ + ptr?: string; + /** + * ISO 3166-1 alpha-2 country code + */ + countryCode?: string; + /** + * ISO 3166-1 alpha-3 country code + */ + countryCode3?: string; + /** + * Full country name + */ + countryName?: string; + /** + * Continent code + */ + continentCode?: string; + /** + * Country code where IP is registered + */ + registeredCountryCode?: string; + /** + * Autonomous System Number + */ + asn?: number; + /** + * Autonomous System Organization name + */ + aso?: string; + /** + * Organization name + */ + organization?: string; + city?: GetIpDetailsCityOut; + /** + * Performance metrics (only when getPerformanceData=1) + */ + performance?: object; +} + +/** + * + */ +export interface GetOnetimeUrlDetailsOut { + /** + * Whether a passphrase is required to access the content + */ + requirePassphrase?: boolean; + /** + * Complete one-time URL + */ + onetimeUrl?: string; + /** + * Short ID identifier for the one-time URL + */ + sid?: string; + /** + * Domain used for the one-time URL + */ + domain?: string; + /** + * The secret text content (only shown once) + */ + text?: string; + /** + * Number of times the URL has been viewed + */ + viewCount?: number; + /** + * Maximum number of views allowed + */ + maxViews?: number; + /** + * ISO timestamp when the URL expires + */ + expireAt?: string; + /** + * ISO timestamp of creation + */ + createdAt?: string; +} + +/** + * + */ +export interface GetPhoneDetailsOut { + /** + * Whether the phone number is valid + */ + valid?: boolean; + /** + * Normalized phone number with country code + */ + number?: string; + /** + * Phone number in local format + */ + localFormat?: string; + /** + * Phone number in international format + */ + internationalFormat?: string; + /** + * Country calling code + */ + countryPrefix?: string; + /** + * ISO country code + */ + countryCode?: string; + /** + * Country name + */ + countryName?: string; + /** + * Geographic location or region + */ + location?: string; + /** + * Phone carrier/operator name + */ + carrier?: string; + /** + * Array of all possible carriers when multiple matches exist + */ + matchedCarriers?: Array; + /** + * Type of phone line (mobile, landline, voip) + */ + lineType?: string; +} + +/** + * + */ +export interface GetQrCodeAnalyticsOut { + /** + * Database ID of the QR code + */ + qrCodeId?: string; + /** + * Short ID of the QR code + */ + sid?: string; + /** + * QR code data + */ + data?: string; + /** + * QR code type + */ + type?: string; + /** + * Total number of scans + */ + totalScans?: number; + /** + * Number of unique scans + */ + uniqueScans?: number; + /** + * Last scan timestamp + */ + lastScannedAt?: string; + /** + * Breakdown by device type + */ + deviceTypes?: object; + /** + * Breakdown by country + */ + countries?: object; + /** + * Breakdown by browser + */ + browsers?: object; + /** + * Timeline of scans + */ + scanTimeline?: Array; + /** + * Analytics period + */ + period?: object; +} + +/** + * + */ +export interface GetQrCodeDetailsOut { + /** + * Database ID of the QR code + */ + _id?: string; + /** + * Short ID for the QR code + */ + sid?: string; + /** + * Encoded data in the QR code + */ + data?: string; + /** + * Type of QR code + */ + type?: string; + /** + * Base64 QR code image or URL + */ + imageUrl?: string; + settings?: QrCodeGenerationSettings; + /** + * Whether QR code is active + */ + isActive?: boolean; + /** + * Expiration timestamp + */ + expiresAt?: string; + /** + * ISO timestamp of creation + */ + createdAt?: string; + /** + * ISO timestamp of last update + */ + updatedAt?: string; +} + +/** + * + */ +export interface GetShortUrlAnalyticsOut { + /** + * Short URL details + */ + shortUrl: object; + /** + * Array of view/click records + */ + views: Array; + /** + * Domain of the short URL + */ + domain: string; + /** + * Database ID + */ + _id?: string; + /** + * Short ID + */ + sid?: string; +} + +/** + * + */ +export interface GetShortUrlDetailsOut { + /** + * Database document ID + */ + _id?: string; + /** + * Original long URL + */ + url?: string; + /** + * Complete shortened URL + */ + shortUrl?: string; + /** + * Short ID identifier + */ + sid?: string; + /** + * Domain used for shortening + */ + domain?: string; + /** + * Number of times the short URL was accessed + */ + clicks?: number; + meta?: ShortUrlMeta; + /** + * ISO timestamp of creation + */ + createdAt?: string; + /** + * ISO timestamp of last update + */ + updatedAt?: string; +} + +/** + * + */ +export interface HttpErrorOut { + /** + * http status code + */ + status?: number; + /** + * error name + */ + name?: string; + /** + * error message + */ + message?: string; + /** + * array of errors + */ + errors?: Array; +} + +/** + * + */ +export interface IApiKeyModelJSON { + /** + * + */ + _id?: string; + /** + * + */ + userId?: string; + /** + * + */ + apiKey?: string; + /** + * + */ + name?: string; + /** + * + */ + environment?: string; + /** + * + */ + services?: Array; + /** + * + */ + isEnabled?: boolean; + /** + * + */ + note?: string; + /** + * + */ + meta?: object; + /** + * + */ + createdAt?: string; + /** + * + */ + updatedAt?: string; +} + +/** + * + */ +export interface IddInfo { + /** + * Root dialing code + */ + root?: string; + /** + * Dialing code suffixes + */ + suffixes?: Array; +} + +/** + * + */ +export interface ImageLinks { + /** + * SVG image URL + */ + svg?: string; + /** + * PNG image URL + */ + png?: string; + /** + * Alternative text + */ + alt?: string; +} + +/** + * + */ +export interface ListApiKeysIn { + /** + * Optional Database ID to filter specific API key + */ + _id?: string; +} + +/** + * + */ +export interface ListApiKeysOut { + /** + * Array of API key objects + */ + list?: Array; +} + +/** + * + */ +export interface ListCitiesOut { + /** + * Array of city objects + */ + list?: Array; + /** + * page number + */ + page?: number; + /** + * total number of cities + */ + total?: number; + /** + * page size + */ + size?: number; + /** + * total number of pages + */ + totalPages?: number; +} + +/** + * + */ +export interface ListCountriesOut { + /** + * Array of country objects (fields based on expand/exclude parameters) + */ + list?: Array; + /** + * page number + */ + page?: number; + /** + * total number of countries + */ + total?: number; + /** + * page size + */ + size?: number; + /** + * total number of pages + */ + totalPages?: number; +} + +/** + * + */ +export interface ListCurrenciesOut { + /** + * Array of currency objects (fields based on expand/exclude parameters) + */ + list?: Array; + /** + * Total number of currencies matching filters + */ + total?: number; + /** + * Current page number + */ + page?: number; + /** + * Number of items per page + */ + pageSize?: number; + /** + * Total number of pages + */ + totalPages?: number; +} + +/** + * + */ +export interface ListOnetimeUrlsOut { + /** + * Array of one-time URL objects + */ + list?: Array; + /** + * Current page number + */ + page?: number; + /** + * Number of items per page + */ + pageSize?: number; + /** + * Total number of URLs + */ + total?: number; + /** + * Total number of pages + */ + totalPages?: number; +} + +/** + * + */ +export interface ListQrCodesOut { + /** + * Array of QR codes + */ + list?: Array; + pagination?: PaginationInfo; +} + +/** + * + */ +export interface ListShortUrlsOut { + /** + * Array of short URL objects + */ + list?: Array; + /** + * Current page number + */ + page?: number; + /** + * Number of items per page + */ + pageSize?: number; + /** + * Total number of URLs + */ + total?: number; + /** + * Total number of pages + */ + totalPages?: number; +} + +/** + * + */ +export interface LookupDomainDnsOut { + /** + * + */ + address?: string; + /** + * + */ + type?: string; + /** + * + */ + records?: Array; + /** + * + */ + success?: boolean; + /** + * + */ + error?: object; + /** + * Performance metrics (only when getPerformanceData=true) + */ + performance?: object; +} + +/** + * + */ +export interface MapsInfo { + /** + * Google Maps URL + */ + googleMaps?: string; + /** + * OpenStreetMap URL + */ + openStreetMaps?: string; +} + +/** + * + */ +export interface ModelError { + value?: ErrorValue; + /** + * error message + */ + msg?: string; + /** + * error parameters + */ + param?: string; + /** + * location of the error + */ + location?: string; +} + +/** + * + */ +export interface PaginationInfo { + /** + * Current page number + */ + page?: number; + /** + * Items per page + */ + pageSize?: number; + /** + * Total number of items + */ + total?: number; + /** + * Total number of pages + */ + totalPages?: number; +} + +/** + * + */ +export interface PerformanceMetrics { + /** + * Total processing time in milliseconds + */ + totalTime?: number; + /** + * Time to fetch the URL in milliseconds + */ + fetchTime?: number; + /** + * Time to extract metadata in milliseconds + */ + metadataTime?: number; + /** + * Time to extract Open Graph data in milliseconds + */ + openGraphTime?: number; + /** + * Whether a retry was attempted due to bot detection + */ + retryAttempted?: boolean; + /** + * Time taken for retry attempt in milliseconds + */ + retryTime?: number; + /** + * User agent used for the request + */ + userAgent?: string; + /** + * Whether mobile fallback was used + */ + mobileUserAgentUsed?: boolean; +} + +/** + * + */ +export interface PostalCodeInfo { + /** + * Postal code format + */ + format?: string; + /** + * Postal code validation regex + */ + regex?: string; +} + +/** + * + */ +export interface PreviewQrCodeIn { + /** + * Data to encode in QR code + */ + data?: string; + /** + * QR code type + */ + type?: PreviewQrCodeInTypeEnum; + /** + * Output format (always returns base64) + */ + format?: PreviewQrCodeInFormatEnum; + /** + * Mixed JSON object with all QR code settings + */ + settings?: object; +} + +export const PreviewQrCodeInTypeEnum = { + Url: 'url', + Text: 'text', + Email: 'email', + Phone: 'phone', + Sms: 'sms', + Wifi: 'wifi', + Vcard: 'vcard', +} as const; + +export type PreviewQrCodeInTypeEnum = (typeof PreviewQrCodeInTypeEnum)[keyof typeof PreviewQrCodeInTypeEnum]; +export const PreviewQrCodeInFormatEnum = { + Base64: 'base64', +} as const; + +export type PreviewQrCodeInFormatEnum = (typeof PreviewQrCodeInFormatEnum)[keyof typeof PreviewQrCodeInFormatEnum]; + +/** + * + */ +export interface PreviewQrCodeOut { + /** + * Output format + */ + format?: string; + /** + * Data encoded in QR code + */ + data?: string; + /** + * QR code type + */ + type?: string; + /** + * QR code content (base64, SVG, or PNG binary) + */ + qrCode?: string; + /** + * Settings used for generation + */ + settings?: object; + /** + * Legacy field for backward compatibility + */ + imgString?: string; +} + +/** + * + */ +export interface QrCodeAnalytics { + /** + * Total number of scans + */ + scans?: number; + /** + * Number of unique scans + */ + uniqueScans?: number; + /** + * Last scan timestamp + */ + lastScannedAt?: string; +} + +/** + * + */ +export interface QrCodeBase { + /** + * Database ID of the QR code + */ + _id?: string; + /** + * Short ID of the QR code + */ + sid?: string; + /** + * Encoded data in the QR code + */ + data?: string; + /** + * Type of QR code + */ + type?: QrCodeBaseTypeEnum; + /** + * Base64 QR code image or URL + */ + imageUrl?: string; + analytics?: QrCodeAnalytics; + settings?: QrCodeGenerationSettings; + /** + * Whether QR code is active + */ + isActive?: boolean; + /** + * Expiration timestamp + */ + expiresAt?: string; + /** + * ISO timestamp of creation + */ + createdAt?: string; + /** + * ISO timestamp of last update + */ + updatedAt?: string; +} + +export const QrCodeBaseTypeEnum = { + Url: 'url', + Text: 'text', + Email: 'email', + Phone: 'phone', + Sms: 'sms', + Wifi: 'wifi', + Vcard: 'vcard', +} as const; + +export type QrCodeBaseTypeEnum = (typeof QrCodeBaseTypeEnum)[keyof typeof QrCodeBaseTypeEnum]; + +/** + * + */ +export interface QrCodeColorOptions { + /** + * Dark color (hex) + */ + dark?: string; + /** + * Light color (hex) + */ + light?: string; +} + +/** + * + */ +export interface QrCodeGenerationSettings { + /** + * Size of QR code in pixels (100-1000) + */ + size?: number; + /** + * Margin around QR code (0-10) + */ + margin?: number; + /** + * Error correction level + */ + errorCorrectionLevel?: QrCodeGenerationSettingsErrorCorrectionLevelEnum; + color?: QrCodeColorOptions; + /** + * URL to logo image to embed + */ + logo?: string; +} + +export const QrCodeGenerationSettingsErrorCorrectionLevelEnum = { + L: 'L', + M: 'M', + Q: 'Q', + H: 'H', +} as const; + +export type QrCodeGenerationSettingsErrorCorrectionLevelEnum = + (typeof QrCodeGenerationSettingsErrorCorrectionLevelEnum)[keyof typeof QrCodeGenerationSettingsErrorCorrectionLevelEnum]; + +/** + * + */ +export interface QrCodeListItem { + /** + * Database ID of the QR code + */ + _id?: string; + /** + * Short ID of the QR code + */ + sid?: string; + /** + * Encoded data in the QR code + */ + data?: string; + /** + * Type of QR code + */ + type?: string; + /** + * Base64 QR code image or URL (truncated) + */ + imageUrl?: string; + /** + * Whether QR code is active + */ + isActive?: boolean; + /** + * Expiration timestamp + */ + expiresAt?: string; + /** + * ISO timestamp of creation + */ + createdAt?: string; + /** + * ISO timestamp of last update + */ + updatedAt?: string; +} + +/** + * + */ +export interface ScrapeUrlDataIn { + /** + * URL to scrape metadata from + */ + url?: string; + /** + * Data types to return, metadata,openGraph,html, Default [\"openGraph\"] + */ + dataTypes?: Array; + /** + * Specific metadata fields to extract: author,description,image,logo,favicon,title,url,spotify,youtube,instagram,soundcloud,amazon,shopping,clearbit,manifest. Default: all fields + */ + metadataFields?: Array; +} + +/** + * + */ +export interface ScrapeUrlDataOut { + /** + * The scraped URL + */ + url?: string; + /** + * + */ + metadata?: object; + /** + * + */ + openGraph?: object; + /** + * Raw HTML content (if requested) + */ + html?: string; + /** + * Data types that were requested + */ + dataTypes?: Array; + /** + * Whether the data came from cache + */ + cached?: boolean; + performance?: PerformanceMetrics; +} + +/** + * + */ +export interface ShortUrlMeta { + /** + * Whether the URL is disabled + */ + isDisabled?: boolean; + /** + * User ID who created the URL + */ + userId?: string; +} + +/** + * + */ +export interface TrackQrViewIn { + /** + * Referrer URL + */ + referrer?: string; + /** + * User agent string + */ + userAgent?: string; + /** + * Additional tracking metadata + */ + meta?: object; +} + +/** + * + */ +export interface TrackQrViewOut { + /** + * Whether tracking was successful + */ + success?: boolean; + /** + * Whether the view was tracked + */ + tracked?: boolean; + /** + * Response message + */ + message?: string; +} + +/** + * + */ +export interface UpdateApiKeyIn { + /** + * Database ID of the API key to update + */ + _id: string; + /** + * Updated name/description for the API key + */ + name?: string; + /** + * Environment designation (e.g., production, staging, development) + */ + environment?: string; + /** + * Updated list of services this key can access + */ + services?: Array; + /** + * Whether to enable or disable the API key + */ + isEnabled?: boolean; +} + +/** + * + */ +export interface UpdateQrCodeIn { + /** + * Database ID of the QR code + */ + _id?: string; + /** + * Short ID of the QR code (alternative to _id) + */ + sid?: string; + /** + * New data to encode (regenerates QR code) + */ + data?: string; + /** + * New QR code type + */ + type?: UpdateQrCodeInTypeEnum; + /** + * Enable/disable QR code + */ + isActive?: boolean; + /** + * New expiration date (ISO 8601) + */ + expiresAt?: string; + /** + * Mixed JSON object with all QR code settings + */ + settings?: object; + /** + * Force regenerate QR code image + */ + regenerateImage?: boolean; +} + +export const UpdateQrCodeInTypeEnum = { + Url: 'url', + Text: 'text', + Email: 'email', + Phone: 'phone', + Sms: 'sms', + Wifi: 'wifi', + Vcard: 'vcard', +} as const; + +export type UpdateQrCodeInTypeEnum = (typeof UpdateQrCodeInTypeEnum)[keyof typeof UpdateQrCodeInTypeEnum]; + +/** + * + */ +export interface UpdateQrCodeOut { + /** + * Database ID of the QR code + */ + _id?: string; + /** + * Short ID of the QR code + */ + sid?: string; + /** + * Encoded data + */ + data?: string; + /** + * QR code type + */ + type?: string; + /** + * Updated QR code image + */ + imageUrl?: string; + /** + * Active status + */ + isActive?: boolean; + /** + * Expiration date + */ + expiresAt?: string; + settings?: QrCodeGenerationSettings; + /** + * Update timestamp + */ + updatedAt?: string; +} + +/** + * + */ +export interface UpdateQrCodeSettings { + /** + * Mixed JSON object with all QR code settings from frontend + */ + settings?: object; +} + +/** + * + */ +export interface UpdateShortUrlIn { + /** + * Database ID of the short URL + */ + _id: string; + /** + * Updated target URL + */ + url: string; + /** + * New short ID + */ + sid: string; + /** + * Domain for the short URL + */ + domain?: string; +} + +/** + * + */ +export interface UpdateShortUrlOut { + /** + * The updated target URL + */ + originalUrl: string; + /** + * Complete updated short URL + */ + shortUrl: string; + /** + * Domain of the short URL + */ + domain: string; + /** + * Updated short ID + */ + sid: string; +} + +/** + * + */ +export interface WhoAmIOut { + /** + * + */ + userId?: string; + /** + * + */ + email?: string; + /** + * + */ + username?: string; + /** + * + */ + reqIpAddress?: string; + /** + * + */ + reqIpCountry?: string; + /** + * + */ + reqUserAgent?: string; +} + +/** + * APIKeyApi - axios parameter creator + */ +export const APIKeyApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Create API Key - Generate a new API key + * @param {CreateApiKeyIn} createApiKeyIn API key configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1CreateApiKey: async ( + createApiKeyIn: CreateApiKeyIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'createApiKeyIn' is not null or undefined + assertParamExists('v1CreateApiKey', 'createApiKeyIn', createApiKeyIn); + const localVarPath = `/v1-create-api-key`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(createApiKeyIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete API Key - Remove an API key permanently + * @param {DeleteApiKeyIn} deleteApiKeyIn API key to delete + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1DeleteApiKey: async ( + deleteApiKeyIn: DeleteApiKeyIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'deleteApiKeyIn' is not null or undefined + assertParamExists('v1DeleteApiKey', 'deleteApiKeyIn', deleteApiKeyIn); + const localVarPath = `/v1-delete-api-key`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(deleteApiKeyIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get API Key Details - Retrieve details of a specific API key + * @param {GetApiKeyDetailsIn} getApiKeyDetailsIn Request body with API key ID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetApiKeyDetails: async ( + getApiKeyDetailsIn: GetApiKeyDetailsIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'getApiKeyDetailsIn' is not null or undefined + assertParamExists('v1GetApiKeyDetails', 'getApiKeyDetailsIn', getApiKeyDetailsIn); + const localVarPath = `/v1-get-api-key-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(getApiKeyDetailsIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Who Am I - Get current user information + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetWhoAmI: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/v1-who-am-i`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List API Keys - Retrieve user\'s API keys + * @param {ListApiKeysIn} listApiKeysIn Request body + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListApiKeys: async (listApiKeysIn: ListApiKeysIn, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'listApiKeysIn' is not null or undefined + assertParamExists('v1ListApiKeys', 'listApiKeysIn', listApiKeysIn); + const localVarPath = `/v1-list-api-keys`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(listApiKeysIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update API Key - Modify an existing API key + * @param {UpdateApiKeyIn} updateApiKeyIn Updated API key configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1UpdateApiKey: async ( + updateApiKeyIn: UpdateApiKeyIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'updateApiKeyIn' is not null or undefined + assertParamExists('v1UpdateApiKey', 'updateApiKeyIn', updateApiKeyIn); + const localVarPath = `/v1-update-api-key`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(updateApiKeyIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; + +/** + * APIKeyApi - functional programming interface + */ +export const APIKeyApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = APIKeyApiAxiosParamCreator(configuration); + return { + /** + * Create API Key - Generate a new API key + * @param {CreateApiKeyIn} createApiKeyIn API key configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1CreateApiKey( + createApiKeyIn: CreateApiKeyIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateApiKey(createApiKeyIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIKeyApi.v1CreateApiKey']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Delete API Key - Remove an API key permanently + * @param {DeleteApiKeyIn} deleteApiKeyIn API key to delete + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1DeleteApiKey( + deleteApiKeyIn: DeleteApiKeyIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1DeleteApiKey(deleteApiKeyIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIKeyApi.v1DeleteApiKey']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get API Key Details - Retrieve details of a specific API key + * @param {GetApiKeyDetailsIn} getApiKeyDetailsIn Request body with API key ID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetApiKeyDetails( + getApiKeyDetailsIn: GetApiKeyDetailsIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetApiKeyDetails(getApiKeyDetailsIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIKeyApi.v1GetApiKeyDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Who Am I - Get current user information + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetWhoAmI( + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetWhoAmI(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIKeyApi.v1GetWhoAmI']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * List API Keys - Retrieve user\'s API keys + * @param {ListApiKeysIn} listApiKeysIn Request body + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1ListApiKeys( + listApiKeysIn: ListApiKeysIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListApiKeys(listApiKeysIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIKeyApi.v1ListApiKeys']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Update API Key - Modify an existing API key + * @param {UpdateApiKeyIn} updateApiKeyIn Updated API key configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1UpdateApiKey( + updateApiKeyIn: UpdateApiKeyIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1UpdateApiKey(updateApiKeyIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIKeyApi.v1UpdateApiKey']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + }; +}; + +/** + * APIKeyApi - factory interface + */ +export const APIKeyApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = APIKeyApiFp(configuration); + return { + /** + * Create API Key - Generate a new API key + * @param {APIKeyApiV1CreateApiKeyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1CreateApiKey( + requestParameters: APIKeyApiV1CreateApiKeyRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1CreateApiKey(requestParameters.createApiKeyIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Delete API Key - Remove an API key permanently + * @param {APIKeyApiV1DeleteApiKeyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1DeleteApiKey( + requestParameters: APIKeyApiV1DeleteApiKeyRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1DeleteApiKey(requestParameters.deleteApiKeyIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Get API Key Details - Retrieve details of a specific API key + * @param {APIKeyApiV1GetApiKeyDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetApiKeyDetails( + requestParameters: APIKeyApiV1GetApiKeyDetailsRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetApiKeyDetails(requestParameters.getApiKeyDetailsIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Who Am I - Get current user information + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetWhoAmI(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.v1GetWhoAmI(options).then((request) => request(axios, basePath)); + }, + /** + * List API Keys - Retrieve user\'s API keys + * @param {APIKeyApiV1ListApiKeysRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListApiKeys( + requestParameters: APIKeyApiV1ListApiKeysRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ListApiKeys(requestParameters.listApiKeysIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Update API Key - Modify an existing API key + * @param {APIKeyApiV1UpdateApiKeyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1UpdateApiKey( + requestParameters: APIKeyApiV1UpdateApiKeyRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1UpdateApiKey(requestParameters.updateApiKeyIn, options) + .then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for v1CreateApiKey operation in APIKeyApi. + */ +export interface APIKeyApiV1CreateApiKeyRequest { + /** + * API key configuration + */ + readonly createApiKeyIn: CreateApiKeyIn; +} + +/** + * Request parameters for v1DeleteApiKey operation in APIKeyApi. + */ +export interface APIKeyApiV1DeleteApiKeyRequest { + /** + * API key to delete + */ + readonly deleteApiKeyIn: DeleteApiKeyIn; +} + +/** + * Request parameters for v1GetApiKeyDetails operation in APIKeyApi. + */ +export interface APIKeyApiV1GetApiKeyDetailsRequest { + /** + * Request body with API key ID + */ + readonly getApiKeyDetailsIn: GetApiKeyDetailsIn; +} + +/** + * Request parameters for v1ListApiKeys operation in APIKeyApi. + */ +export interface APIKeyApiV1ListApiKeysRequest { + /** + * Request body + */ + readonly listApiKeysIn: ListApiKeysIn; +} + +/** + * Request parameters for v1UpdateApiKey operation in APIKeyApi. + */ +export interface APIKeyApiV1UpdateApiKeyRequest { + /** + * Updated API key configuration + */ + readonly updateApiKeyIn: UpdateApiKeyIn; +} + +/** + * APIKeyApi - object-oriented interface + */ +export class APIKeyApi extends BaseAPI { + /** + * Create API Key - Generate a new API key + * @param {APIKeyApiV1CreateApiKeyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1CreateApiKey(requestParameters: APIKeyApiV1CreateApiKeyRequest, options?: RawAxiosRequestConfig) { + return APIKeyApiFp(this.configuration) + .v1CreateApiKey(requestParameters.createApiKeyIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete API Key - Remove an API key permanently + * @param {APIKeyApiV1DeleteApiKeyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1DeleteApiKey(requestParameters: APIKeyApiV1DeleteApiKeyRequest, options?: RawAxiosRequestConfig) { + return APIKeyApiFp(this.configuration) + .v1DeleteApiKey(requestParameters.deleteApiKeyIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get API Key Details - Retrieve details of a specific API key + * @param {APIKeyApiV1GetApiKeyDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetApiKeyDetails(requestParameters: APIKeyApiV1GetApiKeyDetailsRequest, options?: RawAxiosRequestConfig) { + return APIKeyApiFp(this.configuration) + .v1GetApiKeyDetails(requestParameters.getApiKeyDetailsIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Who Am I - Get current user information + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetWhoAmI(options?: RawAxiosRequestConfig) { + return APIKeyApiFp(this.configuration) + .v1GetWhoAmI(options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * List API Keys - Retrieve user\'s API keys + * @param {APIKeyApiV1ListApiKeysRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1ListApiKeys(requestParameters: APIKeyApiV1ListApiKeysRequest, options?: RawAxiosRequestConfig) { + return APIKeyApiFp(this.configuration) + .v1ListApiKeys(requestParameters.listApiKeysIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Update API Key - Modify an existing API key + * @param {APIKeyApiV1UpdateApiKeyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1UpdateApiKey(requestParameters: APIKeyApiV1UpdateApiKeyRequest, options?: RawAxiosRequestConfig) { + return APIKeyApiFp(this.configuration) + .v1UpdateApiKey(requestParameters.updateApiKeyIn, options) + .then((request) => request(this.axios, this.basePath)); + } +} + +/** + * APIUsageApi - axios parameter creator + */ +export const APIUsageApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Get API Usage - Retrieve API usage statistics + * @param {string} [from] Start date for usage period (ISO 8601 format) - eg: 2024-01-01 + * @param {string} [to] End date for usage period (ISO 8601 format) - eg: 2024-01-31 + * @param {string} [service] Filter by specific service name - eg: currency, country, ip + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetApiUsage: async ( + from?: string, + to?: string, + service?: string, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-get-api-usage`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (from !== undefined) { + localVarQueryParameter['from'] = from; + } + + if (to !== undefined) { + localVarQueryParameter['to'] = to; + } + + if (service !== undefined) { + localVarQueryParameter['service'] = service; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Download API Usage - Export API usage data as CSV + * @param {string} [from] Start date for usage period (ISO 8601 format) - eg: 2024-01-01 + * @param {string} [to] End date for usage period (ISO 8601 format) - eg: 2024-01-31 + * @param {string} [service] Filter by specific service name - eg: currency, country, ip + * @param {string} [format] Export format csv,json, default: csv + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetDownloadApiUsage: async ( + from?: string, + to?: string, + service?: string, + format?: string, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-download-api-usage`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (from !== undefined) { + localVarQueryParameter['from'] = from; + } + + if (to !== undefined) { + localVarQueryParameter['to'] = to; + } + + if (service !== undefined) { + localVarQueryParameter['service'] = service; + } + + if (format !== undefined) { + localVarQueryParameter['format'] = format; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; + +/** + * APIUsageApi - functional programming interface + */ +export const APIUsageApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = APIUsageApiAxiosParamCreator(configuration); + return { + /** + * Get API Usage - Retrieve API usage statistics + * @param {string} [from] Start date for usage period (ISO 8601 format) - eg: 2024-01-01 + * @param {string} [to] End date for usage period (ISO 8601 format) - eg: 2024-01-31 + * @param {string} [service] Filter by specific service name - eg: currency, country, ip + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetApiUsage( + from?: string, + to?: string, + service?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetApiUsage(from, to, service, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIUsageApi.v1GetApiUsage']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Download API Usage - Export API usage data as CSV + * @param {string} [from] Start date for usage period (ISO 8601 format) - eg: 2024-01-01 + * @param {string} [to] End date for usage period (ISO 8601 format) - eg: 2024-01-31 + * @param {string} [service] Filter by specific service name - eg: currency, country, ip + * @param {string} [format] Export format csv,json, default: csv + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetDownloadApiUsage( + from?: string, + to?: string, + service?: string, + format?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetDownloadApiUsage( + from, + to, + service, + format, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['APIUsageApi.v1GetDownloadApiUsage']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + }; +}; + +/** + * APIUsageApi - factory interface + */ +export const APIUsageApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = APIUsageApiFp(configuration); + return { + /** + * Get API Usage - Retrieve API usage statistics + * @param {APIUsageApiV1GetApiUsageRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetApiUsage( + requestParameters: APIUsageApiV1GetApiUsageRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetApiUsage(requestParameters.from, requestParameters.to, requestParameters.service, options) + .then((request) => request(axios, basePath)); + }, + /** + * Download API Usage - Export API usage data as CSV + * @param {APIUsageApiV1GetDownloadApiUsageRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetDownloadApiUsage( + requestParameters: APIUsageApiV1GetDownloadApiUsageRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetDownloadApiUsage( + requestParameters.from, + requestParameters.to, + requestParameters.service, + requestParameters.format, + options, + ) + .then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for v1GetApiUsage operation in APIUsageApi. + */ +export interface APIUsageApiV1GetApiUsageRequest { + /** + * Start date for usage period (ISO 8601 format) - eg: 2024-01-01 + */ + readonly from?: string; + + /** + * End date for usage period (ISO 8601 format) - eg: 2024-01-31 + */ + readonly to?: string; + + /** + * Filter by specific service name - eg: currency, country, ip + */ + readonly service?: string; +} + +/** + * Request parameters for v1GetDownloadApiUsage operation in APIUsageApi. + */ +export interface APIUsageApiV1GetDownloadApiUsageRequest { + /** + * Start date for usage period (ISO 8601 format) - eg: 2024-01-01 + */ + readonly from?: string; + + /** + * End date for usage period (ISO 8601 format) - eg: 2024-01-31 + */ + readonly to?: string; + + /** + * Filter by specific service name - eg: currency, country, ip + */ + readonly service?: string; + + /** + * Export format csv,json, default: csv + */ + readonly format?: string; +} + +/** + * APIUsageApi - object-oriented interface + */ +export class APIUsageApi extends BaseAPI { + /** + * Get API Usage - Retrieve API usage statistics + * @param {APIUsageApiV1GetApiUsageRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetApiUsage(requestParameters: APIUsageApiV1GetApiUsageRequest = {}, options?: RawAxiosRequestConfig) { + return APIUsageApiFp(this.configuration) + .v1GetApiUsage(requestParameters.from, requestParameters.to, requestParameters.service, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Download API Usage - Export API usage data as CSV + * @param {APIUsageApiV1GetDownloadApiUsageRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetDownloadApiUsage( + requestParameters: APIUsageApiV1GetDownloadApiUsageRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return APIUsageApiFp(this.configuration) + .v1GetDownloadApiUsage( + requestParameters.from, + requestParameters.to, + requestParameters.service, + requestParameters.format, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } +} + +/** + * CountryApi - axios parameter creator + */ +export const CountryApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Get City Details - Retrieve detailed information about a specific city + * @param {number} [id] City ID + * @param {string} [name] City name (must be exact match) + * @param {string} [countryCode] Country code (2 letter ISO code) - eg: US, GB + * @param {string} [stateCode] State/Province code - eg: CA, NY + * @param {Array} [expand] Fields to include in response - eg: [\"name\", \"countryName\", \"stateName\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"countryId\", \"stateId\"] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCityDetails: async ( + id?: number, + name?: string, + countryCode?: string, + stateCode?: string, + expand?: Array, + exclude?: Array, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-get-city-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (id !== undefined) { + localVarQueryParameter['id'] = id; + } + + if (name !== undefined) { + localVarQueryParameter['name'] = name; + } + + if (countryCode !== undefined) { + localVarQueryParameter['countryCode'] = countryCode; + } + + if (stateCode !== undefined) { + localVarQueryParameter['stateCode'] = stateCode; + } + + if (expand) { + localVarQueryParameter['expand'] = expand; + } + + if (exclude) { + localVarQueryParameter['exclude'] = exclude; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get Country Details - Retrieve detailed information about a specific country + * @param {string} code Country code (2 or 3 letter ISO code) - eg: US, USA + * @param {Array} [expand] Fields to include in response - eg: [\"name\", \"capital\", \"currencies\", \"languages\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"translations\", \"demonyms\"] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCountryDetails: async ( + code: string, + expand?: Array, + exclude?: Array, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'code' is not null or undefined + assertParamExists('v1GetCountryDetails', 'code', code); + const localVarPath = `/v1-get-country-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (code !== undefined) { + localVarQueryParameter['code'] = code; + } + + if (expand) { + localVarQueryParameter['expand'] = expand; + } + + if (exclude) { + localVarQueryParameter['exclude'] = exclude; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get Factbook Details - Retrieve detailed CIA World Factbook information for a country + * @param {string} code Country code (2 or 3 letter ISO code) - eg: US, USA + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetFactbookDetails: async (code: string, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'code' is not null or undefined + assertParamExists('v1GetFactbookDetails', 'code', code); + const localVarPath = `/v1-get-factbook-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (code !== undefined) { + localVarQueryParameter['code'] = code; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List Cities - Search and retrieve cities by name and country + * @param {string} [name] City name to search for (partial match supported) + * @param {Array} [country] Filter by country codes (2 letter ISO codes) - eg: [\"US\", \"GB\", \"CA\"] + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 20 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListCities: async ( + name?: string, + country?: Array, + sort?: Array, + page?: number, + pageSize?: number, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-list-cities`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (name !== undefined) { + localVarQueryParameter['name'] = name; + } + + if (country) { + localVarQueryParameter['country'] = country; + } + + if (sort) { + localVarQueryParameter['sort'] = sort; + } + + if (page !== undefined) { + localVarQueryParameter['page'] = page; + } + + if (pageSize !== undefined) { + localVarQueryParameter['pageSize'] = pageSize; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List Countries - Retrieve a searchable list of countries with filtering options + * @param {Array} [code] Filter by country codes (2 or 3 letter ISO codes) - eg: [\"US\", \"GB\", \"FR\"] + * @param {Array} [expand] Fields to include in response - eg: [\"name\", \"capital\", \"currencies\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"translations\", \"demonyms\"] + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 20 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListCountries: async ( + code?: Array, + expand?: Array, + exclude?: Array, + sort?: Array, + page?: number, + pageSize?: number, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-list-countries`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (code) { + localVarQueryParameter['code'] = code; + } + + if (expand) { + localVarQueryParameter['expand'] = expand; + } + + if (exclude) { + localVarQueryParameter['exclude'] = exclude; + } + + if (sort) { + localVarQueryParameter['sort'] = sort; + } + + if (page !== undefined) { + localVarQueryParameter['page'] = page; + } + + if (pageSize !== undefined) { + localVarQueryParameter['pageSize'] = pageSize; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; + +/** + * CountryApi - functional programming interface + */ +export const CountryApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = CountryApiAxiosParamCreator(configuration); + return { + /** + * Get City Details - Retrieve detailed information about a specific city + * @param {number} [id] City ID + * @param {string} [name] City name (must be exact match) + * @param {string} [countryCode] Country code (2 letter ISO code) - eg: US, GB + * @param {string} [stateCode] State/Province code - eg: CA, NY + * @param {Array} [expand] Fields to include in response - eg: [\"name\", \"countryName\", \"stateName\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"countryId\", \"stateId\"] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetCityDetails( + id?: number, + name?: string, + countryCode?: string, + stateCode?: string, + expand?: Array, + exclude?: Array, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetCityDetails( + id, + name, + countryCode, + stateCode, + expand, + exclude, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CountryApi.v1GetCityDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get Country Details - Retrieve detailed information about a specific country + * @param {string} code Country code (2 or 3 letter ISO code) - eg: US, USA + * @param {Array} [expand] Fields to include in response - eg: [\"name\", \"capital\", \"currencies\", \"languages\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"translations\", \"demonyms\"] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetCountryDetails( + code: string, + expand?: Array, + exclude?: Array, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetCountryDetails(code, expand, exclude, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CountryApi.v1GetCountryDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get Factbook Details - Retrieve detailed CIA World Factbook information for a country + * @param {string} code Country code (2 or 3 letter ISO code) - eg: US, USA + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetFactbookDetails( + code: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetFactbookDetails(code, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CountryApi.v1GetFactbookDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * List Cities - Search and retrieve cities by name and country + * @param {string} [name] City name to search for (partial match supported) + * @param {Array} [country] Filter by country codes (2 letter ISO codes) - eg: [\"US\", \"GB\", \"CA\"] + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 20 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1ListCities( + name?: string, + country?: Array, + sort?: Array, + page?: number, + pageSize?: number, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListCities( + name, + country, + sort, + page, + pageSize, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CountryApi.v1ListCities']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * List Countries - Retrieve a searchable list of countries with filtering options + * @param {Array} [code] Filter by country codes (2 or 3 letter ISO codes) - eg: [\"US\", \"GB\", \"FR\"] + * @param {Array} [expand] Fields to include in response - eg: [\"name\", \"capital\", \"currencies\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"translations\", \"demonyms\"] + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 20 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1ListCountries( + code?: Array, + expand?: Array, + exclude?: Array, + sort?: Array, + page?: number, + pageSize?: number, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListCountries( + code, + expand, + exclude, + sort, + page, + pageSize, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CountryApi.v1ListCountries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + }; +}; + +/** + * CountryApi - factory interface + */ +export const CountryApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = CountryApiFp(configuration); + return { + /** + * Get City Details - Retrieve detailed information about a specific city + * @param {CountryApiV1GetCityDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCityDetails( + requestParameters: CountryApiV1GetCityDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetCityDetails( + requestParameters.id, + requestParameters.name, + requestParameters.countryCode, + requestParameters.stateCode, + requestParameters.expand, + requestParameters.exclude, + options, + ) + .then((request) => request(axios, basePath)); + }, + /** + * Get Country Details - Retrieve detailed information about a specific country + * @param {CountryApiV1GetCountryDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCountryDetails( + requestParameters: CountryApiV1GetCountryDetailsRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetCountryDetails(requestParameters.code, requestParameters.expand, requestParameters.exclude, options) + .then((request) => request(axios, basePath)); + }, + /** + * Get Factbook Details - Retrieve detailed CIA World Factbook information for a country + * @param {CountryApiV1GetFactbookDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetFactbookDetails( + requestParameters: CountryApiV1GetFactbookDetailsRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetFactbookDetails(requestParameters.code, options) + .then((request) => request(axios, basePath)); + }, + /** + * List Cities - Search and retrieve cities by name and country + * @param {CountryApiV1ListCitiesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListCities( + requestParameters: CountryApiV1ListCitiesRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ListCities( + requestParameters.name, + requestParameters.country, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) + .then((request) => request(axios, basePath)); + }, + /** + * List Countries - Retrieve a searchable list of countries with filtering options + * @param {CountryApiV1ListCountriesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListCountries( + requestParameters: CountryApiV1ListCountriesRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ListCountries( + requestParameters.code, + requestParameters.expand, + requestParameters.exclude, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) + .then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for v1GetCityDetails operation in CountryApi. + */ +export interface CountryApiV1GetCityDetailsRequest { + /** + * City ID + */ + readonly id?: number; + + /** + * City name (must be exact match) + */ + readonly name?: string; + + /** + * Country code (2 letter ISO code) - eg: US, GB + */ + readonly countryCode?: string; + + /** + * State/Province code - eg: CA, NY + */ + readonly stateCode?: string; + + /** + * Fields to include in response - eg: [\"name\", \"countryName\", \"stateName\"] + */ + readonly expand?: Array; + + /** + * Fields to exclude from response - eg: [\"countryId\", \"stateId\"] + */ + readonly exclude?: Array; +} + +/** + * Request parameters for v1GetCountryDetails operation in CountryApi. + */ +export interface CountryApiV1GetCountryDetailsRequest { + /** + * Country code (2 or 3 letter ISO code) - eg: US, USA + */ + readonly code: string; + + /** + * Fields to include in response - eg: [\"name\", \"capital\", \"currencies\", \"languages\"] + */ + readonly expand?: Array; + + /** + * Fields to exclude from response - eg: [\"translations\", \"demonyms\"] + */ + readonly exclude?: Array; +} + +/** + * Request parameters for v1GetFactbookDetails operation in CountryApi. + */ +export interface CountryApiV1GetFactbookDetailsRequest { + /** + * Country code (2 or 3 letter ISO code) - eg: US, USA + */ + readonly code: string; +} + +/** + * Request parameters for v1ListCities operation in CountryApi. + */ +export interface CountryApiV1ListCitiesRequest { + /** + * City name to search for (partial match supported) + */ + readonly name?: string; + + /** + * Filter by country codes (2 letter ISO codes) - eg: [\"US\", \"GB\", \"CA\"] + */ + readonly country?: Array; + + /** + * Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"] + */ + readonly sort?: Array; + + /** + * Page number for pagination - Default: 1 + */ + readonly page?: number; + + /** + * Number of items per page - Default: 20 + */ + readonly pageSize?: number; +} + +/** + * Request parameters for v1ListCountries operation in CountryApi. + */ +export interface CountryApiV1ListCountriesRequest { + /** + * Filter by country codes (2 or 3 letter ISO codes) - eg: [\"US\", \"GB\", \"FR\"] + */ + readonly code?: Array; + + /** + * Fields to include in response - eg: [\"name\", \"capital\", \"currencies\"] + */ + readonly expand?: Array; + + /** + * Fields to exclude from response - eg: [\"translations\", \"demonyms\"] + */ + readonly exclude?: Array; + + /** + * Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"] + */ + readonly sort?: Array; + + /** + * Page number for pagination - Default: 1 + */ + readonly page?: number; + + /** + * Number of items per page - Default: 20 + */ + readonly pageSize?: number; +} + +/** + * CountryApi - object-oriented interface + */ +export class CountryApi extends BaseAPI { + /** + * Get City Details - Retrieve detailed information about a specific city + * @param {CountryApiV1GetCityDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetCityDetails(requestParameters: CountryApiV1GetCityDetailsRequest = {}, options?: RawAxiosRequestConfig) { + return CountryApiFp(this.configuration) + .v1GetCityDetails( + requestParameters.id, + requestParameters.name, + requestParameters.countryCode, + requestParameters.stateCode, + requestParameters.expand, + requestParameters.exclude, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get Country Details - Retrieve detailed information about a specific country + * @param {CountryApiV1GetCountryDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetCountryDetails(requestParameters: CountryApiV1GetCountryDetailsRequest, options?: RawAxiosRequestConfig) { + return CountryApiFp(this.configuration) + .v1GetCountryDetails(requestParameters.code, requestParameters.expand, requestParameters.exclude, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get Factbook Details - Retrieve detailed CIA World Factbook information for a country + * @param {CountryApiV1GetFactbookDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetFactbookDetails( + requestParameters: CountryApiV1GetFactbookDetailsRequest, + options?: RawAxiosRequestConfig, + ) { + return CountryApiFp(this.configuration) + .v1GetFactbookDetails(requestParameters.code, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * List Cities - Search and retrieve cities by name and country + * @param {CountryApiV1ListCitiesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1ListCities(requestParameters: CountryApiV1ListCitiesRequest = {}, options?: RawAxiosRequestConfig) { + return CountryApiFp(this.configuration) + .v1ListCities( + requestParameters.name, + requestParameters.country, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * List Countries - Retrieve a searchable list of countries with filtering options + * @param {CountryApiV1ListCountriesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1ListCountries(requestParameters: CountryApiV1ListCountriesRequest = {}, options?: RawAxiosRequestConfig) { + return CountryApiFp(this.configuration) + .v1ListCountries( + requestParameters.code, + requestParameters.expand, + requestParameters.exclude, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } +} + +/** + * CurrencyApi - axios parameter creator + */ +export const CurrencyApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Converts an amount from one currency to another using real-time exchange rates. Supports multiple data providers with automatic fallback. + * @param {number} [amount] Amount to convert (defaults to 1) - optional + * @param {string} [from] Source currency code (3 letters, e.g., USD) - required + * @param {string} [to] Target currency code (3 letters, e.g., EUR) - required + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ConvertCurrency: async ( + amount?: number, + from?: string, + to?: string, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-convert-currency`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (amount !== undefined) { + localVarQueryParameter['amount'] = amount; + } + + if (from !== undefined) { + localVarQueryParameter['from'] = from; + } + + if (to !== undefined) { + localVarQueryParameter['to'] = to; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get Currency Details - Retrieve detailed information about a specific currency + * @param {string} code Currency code (3-letter ISO code) - eg: USD, EUR, BTC + * @param {Array} [expand] Fields to expand in response - eg: [\"symbol\", \"country\", \"decimal\"] + * @param {Array} [exclude] Fields to exclude from response + * @param {Array} [language] Language codes for localized names - eg: [\"en\", \"es\", \"fr\"] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCurrencyDetails: async ( + code: string, + expand?: Array, + exclude?: Array, + language?: Array, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'code' is not null or undefined + assertParamExists('v1GetCurrencyDetails', 'code', code); + const localVarPath = `/v1-get-currency-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (code !== undefined) { + localVarQueryParameter['code'] = code; + } + + if (expand) { + localVarQueryParameter['expand'] = expand; + } + + if (exclude) { + localVarQueryParameter['exclude'] = exclude; + } + + if (language) { + localVarQueryParameter['language'] = language; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get Currency Exchange Rate - Retrieve real-time exchange rate between two currencies + * @param {string} from Source currency code (3-letter ISO code) - eg: USD, EUR, GBP + * @param {string} to Target currency code (3-letter ISO code) - eg: JPY, CAD, AUD + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCurrencyExchangeRate: async ( + from: string, + to: string, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'from' is not null or undefined + assertParamExists('v1GetCurrencyExchangeRate', 'from', from); + // verify required parameter 'to' is not null or undefined + assertParamExists('v1GetCurrencyExchangeRate', 'to', to); + const localVarPath = `/v1-get-currency-exchange-rate`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (from !== undefined) { + localVarQueryParameter['from'] = from; + } + + if (to !== undefined) { + localVarQueryParameter['to'] = to; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List Currencies - Retrieve a paginated list of available currencies + * @param {Array} [code] Filter by specific currency codes - eg: [\"USD\", \"EUR\", \"GBP\"] + * @param {Array} [expand] Fields to include in response - eg: [\"symbol\", \"country\", \"decimal\", \"banknotes\", \"coins\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"banknotes\", \"coins\"] + * @param {Array} [language] Language codes for localized names - eg: [\"en\", \"es\", \"fr\"] + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"code\", \"-name\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page (max: 500) - Default: 300 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListCurrencies: async ( + code?: Array, + expand?: Array, + exclude?: Array, + language?: Array, + sort?: Array, + page?: number, + pageSize?: number, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-list-currencies`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (code) { + localVarQueryParameter['code'] = code; + } + + if (expand) { + localVarQueryParameter['expand'] = expand; + } + + if (exclude) { + localVarQueryParameter['exclude'] = exclude; + } + + if (language) { + localVarQueryParameter['language'] = language; + } + + if (sort) { + localVarQueryParameter['sort'] = sort; + } + + if (page !== undefined) { + localVarQueryParameter['page'] = page; + } + + if (pageSize !== undefined) { + localVarQueryParameter['pageSize'] = pageSize; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; + +/** + * CurrencyApi - functional programming interface + */ +export const CurrencyApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = CurrencyApiAxiosParamCreator(configuration); + return { + /** + * Converts an amount from one currency to another using real-time exchange rates. Supports multiple data providers with automatic fallback. + * @param {number} [amount] Amount to convert (defaults to 1) - optional + * @param {string} [from] Source currency code (3 letters, e.g., USD) - required + * @param {string} [to] Target currency code (3 letters, e.g., EUR) - required + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1ConvertCurrency( + amount?: number, + from?: string, + to?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ConvertCurrency(amount, from, to, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CurrencyApi.v1ConvertCurrency']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get Currency Details - Retrieve detailed information about a specific currency + * @param {string} code Currency code (3-letter ISO code) - eg: USD, EUR, BTC + * @param {Array} [expand] Fields to expand in response - eg: [\"symbol\", \"country\", \"decimal\"] + * @param {Array} [exclude] Fields to exclude from response + * @param {Array} [language] Language codes for localized names - eg: [\"en\", \"es\", \"fr\"] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetCurrencyDetails( + code: string, + expand?: Array, + exclude?: Array, + language?: Array, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetCurrencyDetails( + code, + expand, + exclude, + language, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CurrencyApi.v1GetCurrencyDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get Currency Exchange Rate - Retrieve real-time exchange rate between two currencies + * @param {string} from Source currency code (3-letter ISO code) - eg: USD, EUR, GBP + * @param {string} to Target currency code (3-letter ISO code) - eg: JPY, CAD, AUD + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetCurrencyExchangeRate( + from: string, + to: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetCurrencyExchangeRate(from, to, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CurrencyApi.v1GetCurrencyExchangeRate']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * List Currencies - Retrieve a paginated list of available currencies + * @param {Array} [code] Filter by specific currency codes - eg: [\"USD\", \"EUR\", \"GBP\"] + * @param {Array} [expand] Fields to include in response - eg: [\"symbol\", \"country\", \"decimal\", \"banknotes\", \"coins\"] + * @param {Array} [exclude] Fields to exclude from response - eg: [\"banknotes\", \"coins\"] + * @param {Array} [language] Language codes for localized names - eg: [\"en\", \"es\", \"fr\"] + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"code\", \"-name\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page (max: 500) - Default: 300 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1ListCurrencies( + code?: Array, + expand?: Array, + exclude?: Array, + language?: Array, + sort?: Array, + page?: number, + pageSize?: number, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListCurrencies( + code, + expand, + exclude, + language, + sort, + page, + pageSize, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['CurrencyApi.v1ListCurrencies']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + }; +}; + +/** + * CurrencyApi - factory interface + */ +export const CurrencyApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = CurrencyApiFp(configuration); + return { + /** + * Converts an amount from one currency to another using real-time exchange rates. Supports multiple data providers with automatic fallback. + * @param {CurrencyApiV1ConvertCurrencyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ConvertCurrency( + requestParameters: CurrencyApiV1ConvertCurrencyRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ConvertCurrency(requestParameters.amount, requestParameters.from, requestParameters.to, options) + .then((request) => request(axios, basePath)); + }, + /** + * Get Currency Details - Retrieve detailed information about a specific currency + * @param {CurrencyApiV1GetCurrencyDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCurrencyDetails( + requestParameters: CurrencyApiV1GetCurrencyDetailsRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetCurrencyDetails( + requestParameters.code, + requestParameters.expand, + requestParameters.exclude, + requestParameters.language, + options, + ) + .then((request) => request(axios, basePath)); + }, + /** + * Get Currency Exchange Rate - Retrieve real-time exchange rate between two currencies + * @param {CurrencyApiV1GetCurrencyExchangeRateRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetCurrencyExchangeRate( + requestParameters: CurrencyApiV1GetCurrencyExchangeRateRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetCurrencyExchangeRate(requestParameters.from, requestParameters.to, options) + .then((request) => request(axios, basePath)); + }, + /** + * List Currencies - Retrieve a paginated list of available currencies + * @param {CurrencyApiV1ListCurrenciesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListCurrencies( + requestParameters: CurrencyApiV1ListCurrenciesRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ListCurrencies( + requestParameters.code, + requestParameters.expand, + requestParameters.exclude, + requestParameters.language, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) + .then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for v1ConvertCurrency operation in CurrencyApi. + */ +export interface CurrencyApiV1ConvertCurrencyRequest { + /** + * Amount to convert (defaults to 1) - optional + */ + readonly amount?: number; + + /** + * Source currency code (3 letters, e.g., USD) - required + */ + readonly from?: string; + + /** + * Target currency code (3 letters, e.g., EUR) - required + */ + readonly to?: string; +} + +/** + * Request parameters for v1GetCurrencyDetails operation in CurrencyApi. + */ +export interface CurrencyApiV1GetCurrencyDetailsRequest { + /** + * Currency code (3-letter ISO code) - eg: USD, EUR, BTC + */ + readonly code: string; + + /** + * Fields to expand in response - eg: [\"symbol\", \"country\", \"decimal\"] + */ + readonly expand?: Array; + + /** + * Fields to exclude from response + */ + readonly exclude?: Array; + + /** + * Language codes for localized names - eg: [\"en\", \"es\", \"fr\"] + */ + readonly language?: Array; } /** - * - * @export - * @interface WhoAmIOut + * Request parameters for v1GetCurrencyExchangeRate operation in CurrencyApi. */ -export interface WhoAmIOut { +export interface CurrencyApiV1GetCurrencyExchangeRateRequest { /** - * - * @type {string} - * @memberof WhoAmIOut + * Source currency code (3-letter ISO code) - eg: USD, EUR, GBP */ - userId?: string; + readonly from: string; + /** - * - * @type {string} - * @memberof WhoAmIOut + * Target currency code (3-letter ISO code) - eg: JPY, CAD, AUD */ - email?: string; + readonly to: string; +} + +/** + * Request parameters for v1ListCurrencies operation in CurrencyApi. + */ +export interface CurrencyApiV1ListCurrenciesRequest { /** - * - * @type {string} - * @memberof WhoAmIOut + * Filter by specific currency codes - eg: [\"USD\", \"EUR\", \"GBP\"] */ - username?: string; + readonly code?: Array; + /** - * - * @type {string} - * @memberof WhoAmIOut + * Fields to include in response - eg: [\"symbol\", \"country\", \"decimal\", \"banknotes\", \"coins\"] */ - reqIpAddress?: string; + readonly expand?: Array; + /** - * - * @type {string} - * @memberof WhoAmIOut + * Fields to exclude from response - eg: [\"banknotes\", \"coins\"] */ - reqIpCountry?: string; + readonly exclude?: Array; + /** - * - * @type {string} - * @memberof WhoAmIOut + * Language codes for localized names - eg: [\"en\", \"es\", \"fr\"] */ - reqUserAgent?: string; + readonly language?: Array; + + /** + * Sort fields (prefix with - for descending) - eg: [\"code\", \"-name\"] + */ + readonly sort?: Array; + + /** + * Page number for pagination - Default: 1 + */ + readonly page?: number; + + /** + * Number of items per page (max: 500) - Default: 300 + */ + readonly pageSize?: number; } /** - * CountryApi - axios parameter creator - * @export + * CurrencyApi - object-oriented interface */ -export const CountryApiAxiosParamCreator = function (configuration?: Configuration) { +export class CurrencyApi extends BaseAPI { + /** + * Converts an amount from one currency to another using real-time exchange rates. Supports multiple data providers with automatic fallback. + * @param {CurrencyApiV1ConvertCurrencyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1ConvertCurrency( + requestParameters: CurrencyApiV1ConvertCurrencyRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return CurrencyApiFp(this.configuration) + .v1ConvertCurrency(requestParameters.amount, requestParameters.from, requestParameters.to, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get Currency Details - Retrieve detailed information about a specific currency + * @param {CurrencyApiV1GetCurrencyDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetCurrencyDetails( + requestParameters: CurrencyApiV1GetCurrencyDetailsRequest, + options?: RawAxiosRequestConfig, + ) { + return CurrencyApiFp(this.configuration) + .v1GetCurrencyDetails( + requestParameters.code, + requestParameters.expand, + requestParameters.exclude, + requestParameters.language, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get Currency Exchange Rate - Retrieve real-time exchange rate between two currencies + * @param {CurrencyApiV1GetCurrencyExchangeRateRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetCurrencyExchangeRate( + requestParameters: CurrencyApiV1GetCurrencyExchangeRateRequest, + options?: RawAxiosRequestConfig, + ) { + return CurrencyApiFp(this.configuration) + .v1GetCurrencyExchangeRate(requestParameters.from, requestParameters.to, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * List Currencies - Retrieve a paginated list of available currencies + * @param {CurrencyApiV1ListCurrenciesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1ListCurrencies(requestParameters: CurrencyApiV1ListCurrenciesRequest = {}, options?: RawAxiosRequestConfig) { + return CurrencyApiFp(this.configuration) + .v1ListCurrencies( + requestParameters.code, + requestParameters.expand, + requestParameters.exclude, + requestParameters.language, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } +} + +/** + * DomainToolsApi - axios parameter creator + */ +export const DomainToolsApiAxiosParamCreator = function (configuration?: Configuration) { return { /** - * Get country facts and information - * @param {string} code code - country code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language + * Retrieves WHOIS information for a given domain, with optional JSON parsing and caching control + * @param {string} [domain] Domain name to query - required + * @param {V1GetDomainWhoisParseWhoisToJsonEnum} [parseWhoisToJson] Parse WHOIS text to JSON format - optional * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetCountryDetails: async ( - code: string, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - options: AxiosRequestConfig = {}, + v1GetDomainWhois: async ( + domain?: string, + parseWhoisToJson?: V1GetDomainWhoisParseWhoisToJsonEnum, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'code' is not null or undefined - assertParamExists('v1GetCountryDetails', 'code', code); - const localVarPath = `/v1-get-country-details`; + const localVarPath = `/v1-get-domain-whois`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -919,60 +4740,294 @@ export const CountryApiAxiosParamCreator = function (configuration?: Configurati const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + if (domain !== undefined) { + localVarQueryParameter['domain'] = domain; + } + + if (parseWhoisToJson !== undefined) { + localVarQueryParameter['parseWhoisToJson'] = parseWhoisToJson; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Performs DNS lookups for various record types (A, AAAA, CNAME, MX, etc.) with caching support + * @param {string} [address] Domain or URL to lookup - required + * @param {V1GetLookupDomainDnsTypeEnum} [type] DNS record type - required + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetLookupDomainDns: async ( + address?: string, + type?: V1GetLookupDomainDnsTypeEnum, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-lookup-domain-dns`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); - if (code !== undefined) { - localVarQueryParameter['code'] = code; - } + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - if (expand) { - localVarQueryParameter['expand'] = expand; + if (address !== undefined) { + localVarQueryParameter['address'] = address; } - if (exclude) { - localVarQueryParameter['exclude'] = exclude; + if (type !== undefined) { + localVarQueryParameter['type'] = type; } - if (language !== undefined) { - localVarQueryParameter['language'] = language; - } + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; + +/** + * DomainToolsApi - functional programming interface + */ +export const DomainToolsApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = DomainToolsApiAxiosParamCreator(configuration); + return { + /** + * Retrieves WHOIS information for a given domain, with optional JSON parsing and caching control + * @param {string} [domain] Domain name to query - required + * @param {V1GetDomainWhoisParseWhoisToJsonEnum} [parseWhoisToJson] Parse WHOIS text to JSON format - optional + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetDomainWhois( + domain?: string, + parseWhoisToJson?: V1GetDomainWhoisParseWhoisToJsonEnum, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetDomainWhois(domain, parseWhoisToJson, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DomainToolsApi.v1GetDomainWhois']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Performs DNS lookups for various record types (A, AAAA, CNAME, MX, etc.) with caching support + * @param {string} [address] Domain or URL to lookup - required + * @param {V1GetLookupDomainDnsTypeEnum} [type] DNS record type - required + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetLookupDomainDns( + address?: string, + type?: V1GetLookupDomainDnsTypeEnum, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetLookupDomainDns(address, type, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['DomainToolsApi.v1GetLookupDomainDns']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + }; +}; + +/** + * DomainToolsApi - factory interface + */ +export const DomainToolsApiFactory = function ( + configuration?: Configuration, + basePath?: string, + axios?: AxiosInstance, +) { + const localVarFp = DomainToolsApiFp(configuration); + return { + /** + * Retrieves WHOIS information for a given domain, with optional JSON parsing and caching control + * @param {DomainToolsApiV1GetDomainWhoisRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetDomainWhois( + requestParameters: DomainToolsApiV1GetDomainWhoisRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetDomainWhois(requestParameters.domain, requestParameters.parseWhoisToJson, options) + .then((request) => request(axios, basePath)); + }, + /** + * Performs DNS lookups for various record types (A, AAAA, CNAME, MX, etc.) with caching support + * @param {DomainToolsApiV1GetLookupDomainDnsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetLookupDomainDns( + requestParameters: DomainToolsApiV1GetLookupDomainDnsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetLookupDomainDns(requestParameters.address, requestParameters.type, options) + .then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for v1GetDomainWhois operation in DomainToolsApi. + */ +export interface DomainToolsApiV1GetDomainWhoisRequest { + /** + * Domain name to query - required + */ + readonly domain?: string; + + /** + * Parse WHOIS text to JSON format - optional + */ + readonly parseWhoisToJson?: V1GetDomainWhoisParseWhoisToJsonEnum; +} + +/** + * Request parameters for v1GetLookupDomainDns operation in DomainToolsApi. + */ +export interface DomainToolsApiV1GetLookupDomainDnsRequest { + /** + * Domain or URL to lookup - required + */ + readonly address?: string; + + /** + * DNS record type - required + */ + readonly type?: V1GetLookupDomainDnsTypeEnum; +} + +/** + * DomainToolsApi - object-oriented interface + */ +export class DomainToolsApi extends BaseAPI { + /** + * Retrieves WHOIS information for a given domain, with optional JSON parsing and caching control + * @param {DomainToolsApiV1GetDomainWhoisRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetDomainWhois( + requestParameters: DomainToolsApiV1GetDomainWhoisRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return DomainToolsApiFp(this.configuration) + .v1GetDomainWhois(requestParameters.domain, requestParameters.parseWhoisToJson, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Performs DNS lookups for various record types (A, AAAA, CNAME, MX, etc.) with caching support + * @param {DomainToolsApiV1GetLookupDomainDnsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetLookupDomainDns( + requestParameters: DomainToolsApiV1GetLookupDomainDnsRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return DomainToolsApiFp(this.configuration) + .v1GetLookupDomainDns(requestParameters.address, requestParameters.type, options) + .then((request) => request(this.axios, this.basePath)); + } +} - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; +export const V1GetDomainWhoisParseWhoisToJsonEnum = { + _0: '0', + _1: '1', +} as const; +export type V1GetDomainWhoisParseWhoisToJsonEnum = + (typeof V1GetDomainWhoisParseWhoisToJsonEnum)[keyof typeof V1GetDomainWhoisParseWhoisToJsonEnum]; +export const V1GetLookupDomainDnsTypeEnum = { + A: 'A', + Aaaa: 'AAAA', + Cname: 'CNAME', + Mx: 'MX', + Naptr: 'NAPTR', + Ns: 'NS', + Ptr: 'PTR', + Soa: 'SOA', + Srv: 'SRV', + Txt: 'TXT', + Any: 'ANY', +} as const; +export type V1GetLookupDomainDnsTypeEnum = + (typeof V1GetLookupDomainDnsTypeEnum)[keyof typeof V1GetLookupDomainDnsTypeEnum]; - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, +/** + * EmailApi - axios parameter creator + */ +export const EmailApiAxiosParamCreator = function (configuration?: Configuration) { + return { /** - * Get list of all countries - * @param {Array} [code] code - country code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {Array} [sort] sort - sort properties - * @param {string} [page] page - page number - * @param {string} [pageSize] pageSize - page size + * Get Email Details - Validate and verify email address + * @param {string} [email] Email address to validate + * @param {string} [verifyMx] Verify MX records + * @param {string} [verifySmtp] Verify SMTP connection + * @param {string} [detectName] Detect name from email address + * @param {string} [suggestDomain] Suggest domain corrections for typos + * @param {string} [checkDomainAge] Check domain age + * @param {string} [checkDomainRegistration] Check domain registration details + * @param {number} [timeout] Timeout in milliseconds (max: 10000) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1ListCountries: async ( - code?: Array, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - sort?: Array, - page?: string, - pageSize?: string, - options: AxiosRequestConfig = {}, + v1GetEmailDetails: async ( + email?: string, + verifyMx?: string, + verifySmtp?: string, + detectName?: string, + suggestDomain?: string, + checkDomainAge?: string, + checkDomainRegistration?: string, + timeout?: number, + options: RawAxiosRequestConfig = {}, ): Promise => { - const localVarPath = `/v1-list-countries`; + const localVarPath = `/v1-get-email-details`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -984,38 +5039,42 @@ export const CountryApiAxiosParamCreator = function (configuration?: Configurati const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + if (email !== undefined) { + localVarQueryParameter['email'] = email; + } - if (code) { - localVarQueryParameter['code'] = code; + if (verifyMx !== undefined) { + localVarQueryParameter['verifyMx'] = verifyMx; } - if (expand) { - localVarQueryParameter['expand'] = expand; + if (verifySmtp !== undefined) { + localVarQueryParameter['verifySmtp'] = verifySmtp; } - if (exclude) { - localVarQueryParameter['exclude'] = exclude; + if (detectName !== undefined) { + localVarQueryParameter['detectName'] = detectName; } - if (language !== undefined) { - localVarQueryParameter['language'] = language; + if (suggestDomain !== undefined) { + localVarQueryParameter['suggestDomain'] = suggestDomain; } - if (sort) { - localVarQueryParameter['sort'] = sort; + if (checkDomainAge !== undefined) { + localVarQueryParameter['checkDomainAge'] = checkDomainAge; } - if (page !== undefined) { - localVarQueryParameter['page'] = page; + if (checkDomainRegistration !== undefined) { + localVarQueryParameter['checkDomainRegistration'] = checkDomainRegistration; } - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; + if (timeout !== undefined) { + localVarQueryParameter['timeout'] = timeout; } setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -1031,295 +5090,308 @@ export const CountryApiAxiosParamCreator = function (configuration?: Configurati }; /** - * CountryApi - functional programming interface - * @export + * EmailApi - functional programming interface */ -export const CountryApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = CountryApiAxiosParamCreator(configuration); +export const EmailApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = EmailApiAxiosParamCreator(configuration); return { /** - * Get country facts and information - * @param {string} code code - country code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async v1GetCountryDetails( - code: string, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetCountryDetails( - code, - expand, - exclude, - language, - options, - ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * Get list of all countries - * @param {Array} [code] code - country code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {Array} [sort] sort - sort properties - * @param {string} [page] page - page number - * @param {string} [pageSize] pageSize - page size + * Get Email Details - Validate and verify email address + * @param {string} [email] Email address to validate + * @param {string} [verifyMx] Verify MX records + * @param {string} [verifySmtp] Verify SMTP connection + * @param {string} [detectName] Detect name from email address + * @param {string} [suggestDomain] Suggest domain corrections for typos + * @param {string} [checkDomainAge] Check domain age + * @param {string} [checkDomainRegistration] Check domain registration details + * @param {number} [timeout] Timeout in milliseconds (max: 10000) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1ListCountries( - code?: Array, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - sort?: Array, - page?: string, - pageSize?: string, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListCountries( - code, - expand, - exclude, - language, - sort, - page, - pageSize, + async v1GetEmailDetails( + email?: string, + verifyMx?: string, + verifySmtp?: string, + detectName?: string, + suggestDomain?: string, + checkDomainAge?: string, + checkDomainRegistration?: string, + timeout?: number, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetEmailDetails( + email, + verifyMx, + verifySmtp, + detectName, + suggestDomain, + checkDomainAge, + checkDomainRegistration, + timeout, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['EmailApi.v1GetEmailDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; /** - * CountryApi - factory interface - * @export + * EmailApi - factory interface */ -export const CountryApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = CountryApiFp(configuration); +export const EmailApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = EmailApiFp(configuration); return { /** - * Get country facts and information - * @param {string} code code - country code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1GetCountryDetails( - code: string, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - options?: any, - ): AxiosPromise { - return localVarFp - .v1GetCountryDetails(code, expand, exclude, language, options) - .then((request) => request(axios, basePath)); - }, - /** - * Get list of all countries - * @param {Array} [code] code - country code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {Array} [sort] sort - sort properties - * @param {string} [page] page - page number - * @param {string} [pageSize] pageSize - page size + * Get Email Details - Validate and verify email address + * @param {EmailApiV1GetEmailDetailsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1ListCountries( - code?: Array, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - sort?: Array, - page?: string, - pageSize?: string, - options?: any, - ): AxiosPromise { + v1GetEmailDetails( + requestParameters: EmailApiV1GetEmailDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { return localVarFp - .v1ListCountries(code, expand, exclude, language, sort, page, pageSize, options) + .v1GetEmailDetails( + requestParameters.email, + requestParameters.verifyMx, + requestParameters.verifySmtp, + requestParameters.detectName, + requestParameters.suggestDomain, + requestParameters.checkDomainAge, + requestParameters.checkDomainRegistration, + requestParameters.timeout, + options, + ) .then((request) => request(axios, basePath)); }, }; }; /** - * Request parameters for v1GetCountryDetails operation in CountryApi. - * @export - * @interface CountryApiV1GetCountryDetailsRequest + * Request parameters for v1GetEmailDetails operation in EmailApi. */ -export interface CountryApiV1GetCountryDetailsRequest { +export interface EmailApiV1GetEmailDetailsRequest { /** - * code - country code ISO 4217 - * @type {string} - * @memberof CountryApiV1GetCountryDetails + * Email address to validate */ - readonly code: string; + readonly email?: string; /** - * expand - expand properties - * @type {Array} - * @memberof CountryApiV1GetCountryDetails + * Verify MX records */ - readonly expand?: Array; + readonly verifyMx?: string; /** - * exclude - exclude properties - * @type {Array} - * @memberof CountryApiV1GetCountryDetails + * Verify SMTP connection */ - readonly exclude?: Array; + readonly verifySmtp?: string; /** - * language - localisation language - * @type {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} - * @memberof CountryApiV1GetCountryDetails + * Detect name from email address */ - readonly language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'; -} + readonly detectName?: string; -/** - * Request parameters for v1ListCountries operation in CountryApi. - * @export - * @interface CountryApiV1ListCountriesRequest - */ -export interface CountryApiV1ListCountriesRequest { /** - * code - country code ISO 4217 - * @type {Array} - * @memberof CountryApiV1ListCountries + * Suggest domain corrections for typos */ - readonly code?: Array; + readonly suggestDomain?: string; /** - * expand - expand properties - * @type {Array} - * @memberof CountryApiV1ListCountries + * Check domain age */ - readonly expand?: Array; + readonly checkDomainAge?: string; /** - * exclude - exclude properties - * @type {Array} - * @memberof CountryApiV1ListCountries + * Check domain registration details */ - readonly exclude?: Array; + readonly checkDomainRegistration?: string; /** - * language - localisation language - * @type {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} - * @memberof CountryApiV1ListCountries + * Timeout in milliseconds (max: 10000) */ - readonly language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'; + readonly timeout?: number; +} +/** + * EmailApi - object-oriented interface + */ +export class EmailApi extends BaseAPI { /** - * sort - sort properties - * @type {Array} - * @memberof CountryApiV1ListCountries + * Get Email Details - Validate and verify email address + * @param {EmailApiV1GetEmailDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} */ - readonly sort?: Array; + public v1GetEmailDetails(requestParameters: EmailApiV1GetEmailDetailsRequest = {}, options?: RawAxiosRequestConfig) { + return EmailApiFp(this.configuration) + .v1GetEmailDetails( + requestParameters.email, + requestParameters.verifyMx, + requestParameters.verifySmtp, + requestParameters.detectName, + requestParameters.suggestDomain, + requestParameters.checkDomainAge, + requestParameters.checkDomainRegistration, + requestParameters.timeout, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } +} - /** - * page - page number - * @type {string} - * @memberof CountryApiV1ListCountries - */ - readonly page?: string; +/** + * IPApi - axios parameter creator + */ +export const IPApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Retrieves comprehensive geolocation data including country, city, ASN, and ISP information. Default provider is configurable via IP_PROVIDER environment variable (defaults to \'maxmind\'). + * @param {string} [ip] IP address to lookup (IPv4 or IPv6). If not provided, uses the request IP - optional + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetIpDetails: async (ip?: string, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/v1-get-ip-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } - /** - * pageSize - page size - * @type {string} - * @memberof CountryApiV1ListCountries - */ - readonly pageSize?: string; -} + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (ip !== undefined) { + localVarQueryParameter['ip'] = ip; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; /** - * CountryApi - * @export - * @class CountryApi - * @extends {BaseAPI} + * IPApi - functional programming interface */ -export class CountryApi extends BaseAPI { +export const IPApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = IPApiAxiosParamCreator(configuration); + return { + /** + * Retrieves comprehensive geolocation data including country, city, ASN, and ISP information. Default provider is configurable via IP_PROVIDER environment variable (defaults to \'maxmind\'). + * @param {string} [ip] IP address to lookup (IPv4 or IPv6). If not provided, uses the request IP - optional + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetIpDetails( + ip?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetIpDetails(ip, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['IPApi.v1GetIpDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + }; +}; + +/** + * IPApi - factory interface + */ +export const IPApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = IPApiFp(configuration); + return { + /** + * Retrieves comprehensive geolocation data including country, city, ASN, and ISP information. Default provider is configurable via IP_PROVIDER environment variable (defaults to \'maxmind\'). + * @param {IPApiV1GetIpDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetIpDetails( + requestParameters: IPApiV1GetIpDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp.v1GetIpDetails(requestParameters.ip, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for v1GetIpDetails operation in IPApi. + */ +export interface IPApiV1GetIpDetailsRequest { /** - * Get country facts and information - * @param {CountryApiV1GetCountryDetailsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof CountryApi + * IP address to lookup (IPv4 or IPv6). If not provided, uses the request IP - optional */ - public v1GetCountryDetails(requestParameters: CountryApiV1GetCountryDetailsRequest, options?: AxiosRequestConfig) { - return CountryApiFp(this.configuration) - .v1GetCountryDetails( - requestParameters.code, - requestParameters.expand, - requestParameters.exclude, - requestParameters.language, - options, - ) - .then((request) => request(this.axios, this.basePath)); - } + readonly ip?: string; +} +/** + * IPApi - object-oriented interface + */ +export class IPApi extends BaseAPI { /** - * Get list of all countries - * @param {CountryApiV1ListCountriesRequest} requestParameters Request parameters. + * Retrieves comprehensive geolocation data including country, city, ASN, and ISP information. Default provider is configurable via IP_PROVIDER environment variable (defaults to \'maxmind\'). + * @param {IPApiV1GetIpDetailsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof CountryApi */ - public v1ListCountries(requestParameters: CountryApiV1ListCountriesRequest = {}, options?: AxiosRequestConfig) { - return CountryApiFp(this.configuration) - .v1ListCountries( - requestParameters.code, - requestParameters.expand, - requestParameters.exclude, - requestParameters.language, - requestParameters.sort, - requestParameters.page, - requestParameters.pageSize, - options, - ) + public v1GetIpDetails(requestParameters: IPApiV1GetIpDetailsRequest = {}, options?: RawAxiosRequestConfig) { + return IPApiFp(this.configuration) + .v1GetIpDetails(requestParameters.ip, options) .then((request) => request(this.axios, this.basePath)); } } /** - * CurrencyApi - axios parameter creator - * @export + * OneTimeURLApi - axios parameter creator */ -export const CurrencyApiAxiosParamCreator = function (configuration?: Configuration) { +export const OneTimeURLApiAxiosParamCreator = function (configuration?: Configuration) { return { /** - * Convert currency to another currency - * @param {string} from from - currency to convert from - * @param {string} to to - currency to convert to - * @param {number} [amount] amount - amount to convert + * Creates a one-time URL that will self-destruct after being accessed or after the specified lifetime expires. Perfect for sharing sensitive information securely. + * @param {CreateOnetimeUrlIn} createOnetimeUrlIn One-time URL configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1ConvertCurrency: async ( - from: string, - to: string, - amount?: number, - options: AxiosRequestConfig = {}, + v1CreateOnetimeUrl: async ( + createOnetimeUrlIn: CreateOnetimeUrlIn, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'from' is not null or undefined - assertParamExists('v1ConvertCurrency', 'from', from); - // verify required parameter 'to' is not null or undefined - assertParamExists('v1ConvertCurrency', 'to', to); - const localVarPath = `/v1-convert-currency`; + // verify required parameter 'createOnetimeUrlIn' is not null or undefined + assertParamExists('v1CreateOnetimeUrl', 'createOnetimeUrlIn', createOnetimeUrlIn); + const localVarPath = `/v1-create-onetime-url`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1327,31 +5399,22 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); - if (amount !== undefined) { - localVarQueryParameter['amount'] = amount; - } - - if (from !== undefined) { - localVarQueryParameter['from'] = from; - } + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - if (to !== undefined) { - localVarQueryParameter['to'] = to; - } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(createOnetimeUrlIn, localVarRequestOptions, configuration); return { url: toPathString(localVarUrlObj), @@ -1359,26 +5422,18 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat }; }, /** - * Get currency facts and information - * @param {string} code code - currency code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {'fiat' | 'crypto'} [type] type - type of currency + * Deletes a one-time URL before it expires. Requires authentication or the correct passphrase. + * @param {DeleteOnetimeUrlIn} deleteOnetimeUrlIn Delete request parameters * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetCurrencyDetails: async ( - code: string, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - type?: 'fiat' | 'crypto', - options: AxiosRequestConfig = {}, + v1DeleteOnetimeUrl: async ( + deleteOnetimeUrlIn: DeleteOnetimeUrlIn, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'code' is not null or undefined - assertParamExists('v1GetCurrencyDetails', 'code', code); - const localVarPath = `/v1-get-currency-details`; + // verify required parameter 'deleteOnetimeUrlIn' is not null or undefined + assertParamExists('v1DeleteOnetimeUrl', 'deleteOnetimeUrlIn', deleteOnetimeUrlIn); + const localVarPath = `/v1-delete-onetime-url`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1386,39 +5441,22 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); - if (code !== undefined) { - localVarQueryParameter['code'] = code; - } - - if (expand) { - localVarQueryParameter['expand'] = expand; - } - - if (exclude) { - localVarQueryParameter['exclude'] = exclude; - } - - if (language !== undefined) { - localVarQueryParameter['language'] = language; - } + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - if (type !== undefined) { - localVarQueryParameter['type'] = type; - } + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(deleteOnetimeUrlIn, localVarRequestOptions, configuration); return { url: toPathString(localVarUrlObj), @@ -1426,22 +5464,22 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat }; }, /** - * Get exchange rate for a currency - * @param {string} from from - currency to get exchange rate from - * @param {string} to to - currency to get exchange rate to + * Get One-Time URL Details - Retrieve and consume a one-time URL + * @param {string} [sid] Short ID of the one-time URL + * @param {string} [id] Database ID of the one-time URL record + * @param {V1GetOnetimeUrlDetailsDomainEnum} [domain] Domain used for the one-time URL + * @param {string} [passphrase] Passphrase to access protected content * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetCurrencyExchangeRate: async ( - from: string, - to: string, - options: AxiosRequestConfig = {}, + v1GetOnetimeUrlDetails: async ( + sid?: string, + id?: string, + domain?: V1GetOnetimeUrlDetailsDomainEnum, + passphrase?: string, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'from' is not null or undefined - assertParamExists('v1GetCurrencyExchangeRate', 'from', from); - // verify required parameter 'to' is not null or undefined - assertParamExists('v1GetCurrencyExchangeRate', 'to', to); - const localVarPath = `/v1-get-currency-exchange-rate`; + const localVarPath = `/v1-get-onetime-url-details`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1453,18 +5491,26 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + if (sid !== undefined) { + localVarQueryParameter['sid'] = sid; + } - if (from !== undefined) { - localVarQueryParameter['from'] = from; + if (id !== undefined) { + localVarQueryParameter['_id'] = id; } - if (to !== undefined) { - localVarQueryParameter['to'] = to; + if (domain !== undefined) { + localVarQueryParameter['domain'] = domain; + } + + if (passphrase !== undefined) { + localVarQueryParameter['passphrase'] = passphrase; } setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -1477,30 +5523,20 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat }; }, /** - * Get list of all currencies - * @param {Array} [code] code - currency code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {'fiat' | 'crypto'} [type] type - type of currency - * @param {Array} [sort] sort - sort properties - * @param {string} [page] page - page number - * @param {string} [pageSize] pageSize - page size + * List One-Time URLs - Retrieve user\'s one-time URLs + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"expireAt\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 200 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1ListCurrencies: async ( - code?: Array, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - type?: 'fiat' | 'crypto', + v1ListOnetimeUrls: async ( sort?: Array, - page?: string, - pageSize?: string, - options: AxiosRequestConfig = {}, + page?: number, + pageSize?: number, + options: RawAxiosRequestConfig = {}, ): Promise => { - const localVarPath = `/v1-list-currencies`; + const localVarPath = `/v1-list-onetime-urls`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1512,31 +5548,11 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); - if (code) { - localVarQueryParameter['code'] = code; - } - - if (expand) { - localVarQueryParameter['expand'] = expand; - } - - if (exclude) { - localVarQueryParameter['exclude'] = exclude; - } - - if (language !== undefined) { - localVarQueryParameter['language'] = language; - } - - if (type !== undefined) { - localVarQueryParameter['type'] = type; - } + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); if (sort) { localVarQueryParameter['sort'] = sort; @@ -1563,446 +5579,614 @@ export const CurrencyApiAxiosParamCreator = function (configuration?: Configurat }; /** - * CurrencyApi - functional programming interface - * @export + * OneTimeURLApi - functional programming interface */ -export const CurrencyApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = CurrencyApiAxiosParamCreator(configuration); +export const OneTimeURLApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = OneTimeURLApiAxiosParamCreator(configuration); return { /** - * Convert currency to another currency - * @param {string} from from - currency to convert from - * @param {string} to to - currency to convert to - * @param {number} [amount] amount - amount to convert + * Creates a one-time URL that will self-destruct after being accessed or after the specified lifetime expires. Perfect for sharing sensitive information securely. + * @param {CreateOnetimeUrlIn} createOnetimeUrlIn One-time URL configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1ConvertCurrency( - from: string, - to: string, - amount?: number, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1ConvertCurrency(from, to, amount, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + async v1CreateOnetimeUrl( + createOnetimeUrlIn: CreateOnetimeUrlIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateOnetimeUrl(createOnetimeUrlIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['OneTimeURLApi.v1CreateOnetimeUrl']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** - * Get currency facts and information - * @param {string} code code - currency code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {'fiat' | 'crypto'} [type] type - type of currency + * Deletes a one-time URL before it expires. Requires authentication or the correct passphrase. + * @param {DeleteOnetimeUrlIn} deleteOnetimeUrlIn Delete request parameters * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1GetCurrencyDetails( - code: string, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - type?: 'fiat' | 'crypto', - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetCurrencyDetails( - code, - expand, - exclude, - language, - type, - options, - ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + async v1DeleteOnetimeUrl( + deleteOnetimeUrlIn: DeleteOnetimeUrlIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1DeleteOnetimeUrl(deleteOnetimeUrlIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['OneTimeURLApi.v1DeleteOnetimeUrl']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** - * Get exchange rate for a currency - * @param {string} from from - currency to get exchange rate from - * @param {string} to to - currency to get exchange rate to + * Get One-Time URL Details - Retrieve and consume a one-time URL + * @param {string} [sid] Short ID of the one-time URL + * @param {string} [id] Database ID of the one-time URL record + * @param {V1GetOnetimeUrlDetailsDomainEnum} [domain] Domain used for the one-time URL + * @param {string} [passphrase] Passphrase to access protected content * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1GetCurrencyExchangeRate( - from: string, - to: string, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetCurrencyExchangeRate(from, to, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + async v1GetOnetimeUrlDetails( + sid?: string, + id?: string, + domain?: V1GetOnetimeUrlDetailsDomainEnum, + passphrase?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetOnetimeUrlDetails( + sid, + id, + domain, + passphrase, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['OneTimeURLApi.v1GetOnetimeUrlDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** - * Get list of all currencies - * @param {Array} [code] code - currency code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {'fiat' | 'crypto'} [type] type - type of currency - * @param {Array} [sort] sort - sort properties - * @param {string} [page] page - page number - * @param {string} [pageSize] pageSize - page size + * List One-Time URLs - Retrieve user\'s one-time URLs + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"expireAt\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 200 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1ListCurrencies( - code?: Array, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - type?: 'fiat' | 'crypto', + async v1ListOnetimeUrls( sort?: Array, - page?: string, - pageSize?: string, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListCurrencies( - code, - expand, - exclude, - language, - type, - sort, - page, - pageSize, - options, - ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + page?: number, + pageSize?: number, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListOnetimeUrls(sort, page, pageSize, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['OneTimeURLApi.v1ListOnetimeUrls']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; /** - * CurrencyApi - factory interface - * @export + * OneTimeURLApi - factory interface */ -export const CurrencyApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = CurrencyApiFp(configuration); +export const OneTimeURLApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = OneTimeURLApiFp(configuration); return { /** - * Convert currency to another currency - * @param {string} from from - currency to convert from - * @param {string} to to - currency to convert to - * @param {number} [amount] amount - amount to convert - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1ConvertCurrency(from: string, to: string, amount?: number, options?: any): AxiosPromise { - return localVarFp.v1ConvertCurrency(from, to, amount, options).then((request) => request(axios, basePath)); - }, - /** - * Get currency facts and information - * @param {string} code code - currency code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {'fiat' | 'crypto'} [type] type - type of currency + * Creates a one-time URL that will self-destruct after being accessed or after the specified lifetime expires. Perfect for sharing sensitive information securely. + * @param {OneTimeURLApiV1CreateOnetimeUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetCurrencyDetails( - code: string, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - type?: 'fiat' | 'crypto', - options?: any, - ): AxiosPromise { + v1CreateOnetimeUrl( + requestParameters: OneTimeURLApiV1CreateOnetimeUrlRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { return localVarFp - .v1GetCurrencyDetails(code, expand, exclude, language, type, options) + .v1CreateOnetimeUrl(requestParameters.createOnetimeUrlIn, options) .then((request) => request(axios, basePath)); }, /** - * Get exchange rate for a currency - * @param {string} from from - currency to get exchange rate from - * @param {string} to to - currency to get exchange rate to + * Deletes a one-time URL before it expires. Requires authentication or the correct passphrase. + * @param {OneTimeURLApiV1DeleteOnetimeUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetCurrencyExchangeRate(from: string, to: string, options?: any): AxiosPromise { - return localVarFp.v1GetCurrencyExchangeRate(from, to, options).then((request) => request(axios, basePath)); + v1DeleteOnetimeUrl( + requestParameters: OneTimeURLApiV1DeleteOnetimeUrlRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1DeleteOnetimeUrl(requestParameters.deleteOnetimeUrlIn, options) + .then((request) => request(axios, basePath)); }, /** - * Get list of all currencies - * @param {Array} [code] code - currency code ISO 4217 - * @param {Array} [expand] expand - expand properties - * @param {Array} [exclude] exclude - exclude properties - * @param {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} [language] language - localisation language - * @param {'fiat' | 'crypto'} [type] type - type of currency - * @param {Array} [sort] sort - sort properties - * @param {string} [page] page - page number - * @param {string} [pageSize] pageSize - page size + * Get One-Time URL Details - Retrieve and consume a one-time URL + * @param {OneTimeURLApiV1GetOnetimeUrlDetailsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1ListCurrencies( - code?: Array, - expand?: Array, - exclude?: Array, - language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru', - type?: 'fiat' | 'crypto', - sort?: Array, - page?: string, - pageSize?: string, - options?: any, - ): AxiosPromise { + v1GetOnetimeUrlDetails( + requestParameters: OneTimeURLApiV1GetOnetimeUrlDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { return localVarFp - .v1ListCurrencies(code, expand, exclude, language, type, sort, page, pageSize, options) + .v1GetOnetimeUrlDetails( + requestParameters.sid, + requestParameters.id, + requestParameters.domain, + requestParameters.passphrase, + options, + ) .then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * Request parameters for v1ConvertCurrency operation in CurrencyApi. - * @export - * @interface CurrencyApiV1ConvertCurrencyRequest - */ -export interface CurrencyApiV1ConvertCurrencyRequest { - /** - * from - currency to convert from - * @type {string} - * @memberof CurrencyApiV1ConvertCurrency - */ - readonly from: string; - - /** - * to - currency to convert to - * @type {string} - * @memberof CurrencyApiV1ConvertCurrency - */ - readonly to: string; - - /** - * amount - amount to convert - * @type {number} - * @memberof CurrencyApiV1ConvertCurrency - */ - readonly amount?: number; -} - -/** - * Request parameters for v1GetCurrencyDetails operation in CurrencyApi. - * @export - * @interface CurrencyApiV1GetCurrencyDetailsRequest - */ -export interface CurrencyApiV1GetCurrencyDetailsRequest { - /** - * code - currency code ISO 4217 - * @type {string} - * @memberof CurrencyApiV1GetCurrencyDetails - */ - readonly code: string; - - /** - * expand - expand properties - * @type {Array} - * @memberof CurrencyApiV1GetCurrencyDetails - */ - readonly expand?: Array; - - /** - * exclude - exclude properties - * @type {Array} - * @memberof CurrencyApiV1GetCurrencyDetails - */ - readonly exclude?: Array; - - /** - * language - localisation language - * @type {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} - * @memberof CurrencyApiV1GetCurrencyDetails - */ - readonly language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'; + }, + /** + * List One-Time URLs - Retrieve user\'s one-time URLs + * @param {OneTimeURLApiV1ListOnetimeUrlsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListOnetimeUrls( + requestParameters: OneTimeURLApiV1ListOnetimeUrlsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ListOnetimeUrls(requestParameters.sort, requestParameters.page, requestParameters.pageSize, options) + .then((request) => request(axios, basePath)); + }, + }; +}; +/** + * Request parameters for v1CreateOnetimeUrl operation in OneTimeURLApi. + */ +export interface OneTimeURLApiV1CreateOnetimeUrlRequest { /** - * type - type of currency - * @type {'fiat' | 'crypto'} - * @memberof CurrencyApiV1GetCurrencyDetails + * One-time URL configuration */ - readonly type?: 'fiat' | 'crypto'; + readonly createOnetimeUrlIn: CreateOnetimeUrlIn; } /** - * Request parameters for v1GetCurrencyExchangeRate operation in CurrencyApi. - * @export - * @interface CurrencyApiV1GetCurrencyExchangeRateRequest + * Request parameters for v1DeleteOnetimeUrl operation in OneTimeURLApi. */ -export interface CurrencyApiV1GetCurrencyExchangeRateRequest { - /** - * from - currency to get exchange rate from - * @type {string} - * @memberof CurrencyApiV1GetCurrencyExchangeRate - */ - readonly from: string; - +export interface OneTimeURLApiV1DeleteOnetimeUrlRequest { /** - * to - currency to get exchange rate to - * @type {string} - * @memberof CurrencyApiV1GetCurrencyExchangeRate + * Delete request parameters */ - readonly to: string; + readonly deleteOnetimeUrlIn: DeleteOnetimeUrlIn; } /** - * Request parameters for v1ListCurrencies operation in CurrencyApi. - * @export - * @interface CurrencyApiV1ListCurrenciesRequest + * Request parameters for v1GetOnetimeUrlDetails operation in OneTimeURLApi. */ -export interface CurrencyApiV1ListCurrenciesRequest { - /** - * code - currency code ISO 4217 - * @type {Array} - * @memberof CurrencyApiV1ListCurrencies - */ - readonly code?: Array; - +export interface OneTimeURLApiV1GetOnetimeUrlDetailsRequest { /** - * expand - expand properties - * @type {Array} - * @memberof CurrencyApiV1ListCurrencies + * Short ID of the one-time URL */ - readonly expand?: Array; + readonly sid?: string; /** - * exclude - exclude properties - * @type {Array} - * @memberof CurrencyApiV1ListCurrencies + * Database ID of the one-time URL record */ - readonly exclude?: Array; + readonly id?: string; /** - * language - localisation language - * @type {'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'} - * @memberof CurrencyApiV1ListCurrencies + * Domain used for the one-time URL */ - readonly language?: 'en' | 'ar' | 'de' | 'es' | 'fr' | 'ja' | 'ko' | 'pt' | 'ru'; + readonly domain?: V1GetOnetimeUrlDetailsDomainEnum; /** - * type - type of currency - * @type {'fiat' | 'crypto'} - * @memberof CurrencyApiV1ListCurrencies + * Passphrase to access protected content */ - readonly type?: 'fiat' | 'crypto'; + readonly passphrase?: string; +} +/** + * Request parameters for v1ListOnetimeUrls operation in OneTimeURLApi. + */ +export interface OneTimeURLApiV1ListOnetimeUrlsRequest { /** - * sort - sort properties - * @type {Array} - * @memberof CurrencyApiV1ListCurrencies + * Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"expireAt\"] */ readonly sort?: Array; /** - * page - page number - * @type {string} - * @memberof CurrencyApiV1ListCurrencies + * Page number for pagination - Default: 1 */ - readonly page?: string; + readonly page?: number; /** - * pageSize - page size - * @type {string} - * @memberof CurrencyApiV1ListCurrencies + * Number of items per page - Default: 200 */ - readonly pageSize?: string; + readonly pageSize?: number; } /** - * CurrencyApi - * @export - * @class CurrencyApi - * @extends {BaseAPI} + * OneTimeURLApi - object-oriented interface */ -export class CurrencyApi extends BaseAPI { +export class OneTimeURLApi extends BaseAPI { /** - * Convert currency to another currency - * @param {CurrencyApiV1ConvertCurrencyRequest} requestParameters Request parameters. + * Creates a one-time URL that will self-destruct after being accessed or after the specified lifetime expires. Perfect for sharing sensitive information securely. + * @param {OneTimeURLApiV1CreateOnetimeUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof CurrencyApi */ - public v1ConvertCurrency(requestParameters: CurrencyApiV1ConvertCurrencyRequest, options?: AxiosRequestConfig) { - return CurrencyApiFp(this.configuration) - .v1ConvertCurrency(requestParameters.from, requestParameters.to, requestParameters.amount, options) + public v1CreateOnetimeUrl( + requestParameters: OneTimeURLApiV1CreateOnetimeUrlRequest, + options?: RawAxiosRequestConfig, + ) { + return OneTimeURLApiFp(this.configuration) + .v1CreateOnetimeUrl(requestParameters.createOnetimeUrlIn, options) .then((request) => request(this.axios, this.basePath)); } /** - * Get currency facts and information - * @param {CurrencyApiV1GetCurrencyDetailsRequest} requestParameters Request parameters. + * Deletes a one-time URL before it expires. Requires authentication or the correct passphrase. + * @param {OneTimeURLApiV1DeleteOnetimeUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof CurrencyApi */ - public v1GetCurrencyDetails(requestParameters: CurrencyApiV1GetCurrencyDetailsRequest, options?: AxiosRequestConfig) { - return CurrencyApiFp(this.configuration) - .v1GetCurrencyDetails( - requestParameters.code, - requestParameters.expand, - requestParameters.exclude, - requestParameters.language, - requestParameters.type, + public v1DeleteOnetimeUrl( + requestParameters: OneTimeURLApiV1DeleteOnetimeUrlRequest, + options?: RawAxiosRequestConfig, + ) { + return OneTimeURLApiFp(this.configuration) + .v1DeleteOnetimeUrl(requestParameters.deleteOnetimeUrlIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get One-Time URL Details - Retrieve and consume a one-time URL + * @param {OneTimeURLApiV1GetOnetimeUrlDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetOnetimeUrlDetails( + requestParameters: OneTimeURLApiV1GetOnetimeUrlDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return OneTimeURLApiFp(this.configuration) + .v1GetOnetimeUrlDetails( + requestParameters.sid, + requestParameters.id, + requestParameters.domain, + requestParameters.passphrase, options, ) .then((request) => request(this.axios, this.basePath)); } /** - * Get exchange rate for a currency - * @param {CurrencyApiV1GetCurrencyExchangeRateRequest} requestParameters Request parameters. + * List One-Time URLs - Retrieve user\'s one-time URLs + * @param {OneTimeURLApiV1ListOnetimeUrlsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof CurrencyApi */ - public v1GetCurrencyExchangeRate( - requestParameters: CurrencyApiV1GetCurrencyExchangeRateRequest, - options?: AxiosRequestConfig, + public v1ListOnetimeUrls( + requestParameters: OneTimeURLApiV1ListOnetimeUrlsRequest = {}, + options?: RawAxiosRequestConfig, ) { - return CurrencyApiFp(this.configuration) - .v1GetCurrencyExchangeRate(requestParameters.from, requestParameters.to, options) + return OneTimeURLApiFp(this.configuration) + .v1ListOnetimeUrls(requestParameters.sort, requestParameters.page, requestParameters.pageSize, options) + .then((request) => request(this.axios, this.basePath)); + } +} + +export const V1GetOnetimeUrlDetailsDomainEnum = { + UrLink: 'ur.link', + CfgMe: 'cfg.me', + InMt: 'in.mt', + WallSh: 'wall.sh', + CiaSh: 'cia.sh', +} as const; +export type V1GetOnetimeUrlDetailsDomainEnum = + (typeof V1GetOnetimeUrlDetailsDomainEnum)[keyof typeof V1GetOnetimeUrlDetailsDomainEnum]; + +/** + * PhoneApi - axios parameter creator + */ +export const PhoneApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Get Phone Details - Validate and get phone number information + * @param {string} [phone] Phone number to validate (with or without + prefix) + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetPhoneDetails: async (phone?: string, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/v1-get-phone-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (phone !== undefined) { + localVarQueryParameter['phone'] = phone; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; + +/** + * PhoneApi - functional programming interface + */ +export const PhoneApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = PhoneApiAxiosParamCreator(configuration); + return { + /** + * Get Phone Details - Validate and get phone number information + * @param {string} [phone] Phone number to validate (with or without + prefix) + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetPhoneDetails( + phone?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetPhoneDetails(phone, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['PhoneApi.v1GetPhoneDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + }; +}; + +/** + * PhoneApi - factory interface + */ +export const PhoneApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = PhoneApiFp(configuration); + return { + /** + * Get Phone Details - Validate and get phone number information + * @param {PhoneApiV1GetPhoneDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetPhoneDetails( + requestParameters: PhoneApiV1GetPhoneDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp.v1GetPhoneDetails(requestParameters.phone, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for v1GetPhoneDetails operation in PhoneApi. + */ +export interface PhoneApiV1GetPhoneDetailsRequest { + /** + * Phone number to validate (with or without + prefix) + */ + readonly phone?: string; +} + +/** + * PhoneApi - object-oriented interface + */ +export class PhoneApi extends BaseAPI { + /** + * Get Phone Details - Validate and get phone number information + * @param {PhoneApiV1GetPhoneDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetPhoneDetails(requestParameters: PhoneApiV1GetPhoneDetailsRequest = {}, options?: RawAxiosRequestConfig) { + return PhoneApiFp(this.configuration) + .v1GetPhoneDetails(requestParameters.phone, options) .then((request) => request(this.axios, this.basePath)); } +} + +/** + * QRCodeApi - axios parameter creator + */ +export const QRCodeApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Create QR Code - Generate a new QR code + * @param {CreateQrCodeIn} createQrCodeIn QR code configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1CreateQrCode: async ( + createQrCodeIn: CreateQrCodeIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'createQrCodeIn' is not null or undefined + assertParamExists('v1CreateQrCode', 'createQrCodeIn', createQrCodeIn); + const localVarPath = `/v1-create-qr-code`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(createQrCodeIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Track QR View - Track when a QR code is viewed/scanned + * @param {string} sid Short ID of the QR code + * @param {TrackQrViewIn} [trackQrViewIn] Tracking data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1CreateTrackQrView: async ( + sid: string, + trackQrViewIn?: TrackQrViewIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'sid' is not null or undefined + assertParamExists('v1CreateTrackQrView', 'sid', sid); + const localVarPath = `/v1-track-qr-view`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (sid !== undefined) { + localVarQueryParameter['sid'] = sid; + } + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(trackQrViewIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete QR Code - Permanently remove a QR code + * @param {DeleteQrCodeIn} deleteQrCodeIn Delete configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1DeleteQrCode: async ( + deleteQrCodeIn: DeleteQrCodeIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'deleteQrCodeIn' is not null or undefined + assertParamExists('v1DeleteQrCode', 'deleteQrCodeIn', deleteQrCodeIn); + const localVarPath = `/v1-delete-qr-code`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; - /** - * Get list of all currencies - * @param {CurrencyApiV1ListCurrenciesRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof CurrencyApi - */ - public v1ListCurrencies(requestParameters: CurrencyApiV1ListCurrenciesRequest = {}, options?: AxiosRequestConfig) { - return CurrencyApiFp(this.configuration) - .v1ListCurrencies( - requestParameters.code, - requestParameters.expand, - requestParameters.exclude, - requestParameters.language, - requestParameters.type, - requestParameters.sort, - requestParameters.page, - requestParameters.pageSize, - options, - ) - .then((request) => request(this.axios, this.basePath)); - } -} + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(deleteQrCodeIn, localVarRequestOptions, configuration); -/** - * DomainApi - axios parameter creator - * @export - */ -export const DomainApiAxiosParamCreator = function (configuration?: Configuration) { - return { + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** - * Get domain WHOIS details and registration information - * @param {string} [domain] domain - Domain name to get details for - * @param {string} [parseWhoisToJson] parseWhoisToJson - Parse WHOIS to JSON + * Get QR Code Analytics - Retrieve detailed analytics for a QR code + * @param {string} [sid] Short ID of the QR code + * @param {string} [id] Database ID of the QR code + * @param {string} [from] Start date for analytics (ISO 8601) + * @param {string} [to] End date for analytics (ISO 8601) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetDomainWhois: async ( - domain?: string, - parseWhoisToJson?: string, - options: AxiosRequestConfig = {}, + v1GetQrCodeAnalytics: async ( + sid?: string, + id?: string, + from?: string, + to?: string, + options: RawAxiosRequestConfig = {}, ): Promise => { - const localVarPath = `/v1-get-domain-whois`; + const localVarPath = `/v1-get-qr-code-analytics`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2014,18 +6198,26 @@ export const DomainApiAxiosParamCreator = function (configuration?: Configuratio const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + if (sid !== undefined) { + localVarQueryParameter['sid'] = sid; + } - if (domain !== undefined) { - localVarQueryParameter['domain'] = domain; + if (id !== undefined) { + localVarQueryParameter['_id'] = id; } - if (parseWhoisToJson !== undefined) { - localVarQueryParameter['parseWhoisToJson'] = parseWhoisToJson; + if (from !== undefined) { + localVarQueryParameter['from'] = from; + } + + if (to !== undefined) { + localVarQueryParameter['to'] = to; } setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -2037,121 +6229,116 @@ export const DomainApiAxiosParamCreator = function (configuration?: Configuratio options: localVarRequestOptions, }; }, - }; -}; - -/** - * DomainApi - functional programming interface - * @export - */ -export const DomainApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = DomainApiAxiosParamCreator(configuration); - return { /** - * Get domain WHOIS details and registration information - * @param {string} [domain] domain - Domain name to get details for - * @param {string} [parseWhoisToJson] parseWhoisToJson - Parse WHOIS to JSON + * Get QR Code Details - Retrieve QR code information for UI + * @param {string} [sid] Short ID of the QR code + * @param {string} [id] Database ID of the QR code * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1GetDomainWhois( - domain?: string, - parseWhoisToJson?: string, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetDomainWhois(domain, parseWhoisToJson, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - }; -}; + v1GetQrCodeDetails: async ( + sid?: string, + id?: string, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-get-qr-code-details`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } -/** - * DomainApi - factory interface - * @export - */ -export const DomainApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = DomainApiFp(configuration); - return { + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + if (sid !== undefined) { + localVarQueryParameter['sid'] = sid; + } + + if (id !== undefined) { + localVarQueryParameter['_id'] = id; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** - * Get domain WHOIS details and registration information - * @param {string} [domain] domain - Domain name to get details for - * @param {string} [parseWhoisToJson] parseWhoisToJson - Parse WHOIS to JSON + * Get QR Code Preview - Generate a QR code preview as base64 image + * @param {PreviewQrCodeIn} previewQrCodeIn QR code configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetDomainWhois(domain?: string, parseWhoisToJson?: string, options?: any): AxiosPromise { - return localVarFp.v1GetDomainWhois(domain, parseWhoisToJson, options).then((request) => request(axios, basePath)); - }, - }; -}; + v1GetQrCodePreview: async ( + previewQrCodeIn: PreviewQrCodeIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'previewQrCodeIn' is not null or undefined + assertParamExists('v1GetQrCodePreview', 'previewQrCodeIn', previewQrCodeIn); + const localVarPath = `/v1-get-qr-code-preview`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } -/** - * Request parameters for v1GetDomainWhois operation in DomainApi. - * @export - * @interface DomainApiV1GetDomainWhoisRequest - */ -export interface DomainApiV1GetDomainWhoisRequest { - /** - * domain - Domain name to get details for - * @type {string} - * @memberof DomainApiV1GetDomainWhois - */ - readonly domain?: string; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; - /** - * parseWhoisToJson - Parse WHOIS to JSON - * @type {string} - * @memberof DomainApiV1GetDomainWhois - */ - readonly parseWhoisToJson?: string; -} + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); -/** - * DomainApi - * @export - * @class DomainApi - * @extends {BaseAPI} - */ -export class DomainApi extends BaseAPI { - /** - * Get domain WHOIS details and registration information - * @param {DomainApiV1GetDomainWhoisRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainApi - */ - public v1GetDomainWhois(requestParameters: DomainApiV1GetDomainWhoisRequest = {}, options?: AxiosRequestConfig) { - return DomainApiFp(this.configuration) - .v1GetDomainWhois(requestParameters.domain, requestParameters.parseWhoisToJson, options) - .then((request) => request(this.axios, this.basePath)); - } -} + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); -/** - * EmailApi - axios parameter creator - * @export - */ -export const EmailApiAxiosParamCreator = function (configuration?: Configuration) { - return { + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(previewQrCodeIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** - * Get email validation details - * @param {string} email email - email address - * @param {boolean} [verifyMx] verifyMx - verify domain dns for MX record - * @param {boolean} [verifySmtp] verifySmtp - verify mailbox with SMTP Connect and Reply - * @param {string} [timeout] timeout - timeout in milliseconds max 10000 (10 seconds) + * List QR Codes - Get paginated list of user\'s QR codes + * @param {string} [page] Page number (default: 1) + * @param {string} [pageSize] Items per page (default: 20, max: 100) + * @param {V1ListQrCodesTypeEnum} [type] Filter by QR code type + * @param {string} [isActive] Filter by active status + * @param {V1ListQrCodesSortEnum} [sort] Sort field + * @param {string} [search] Search in data field * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetEmailDetails: async ( - email: string, - verifyMx?: boolean, - verifySmtp?: boolean, - timeout?: string, - options: AxiosRequestConfig = {}, + v1ListQrCodes: async ( + page?: string, + pageSize?: string, + type?: V1ListQrCodesTypeEnum, + isActive?: string, + sort?: V1ListQrCodesSortEnum, + search?: string, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'email' is not null or undefined - assertParamExists('v1GetEmailDetails', 'email', email); - const localVarPath = `/v1-get-email-details`; + const localVarPath = `/v1-list-qr-codes`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2163,31 +6350,81 @@ export const EmailApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + if (page !== undefined) { + localVarQueryParameter['page'] = page; + } - if (email !== undefined) { - localVarQueryParameter['email'] = email; + if (pageSize !== undefined) { + localVarQueryParameter['pageSize'] = pageSize; } - if (verifyMx !== undefined) { - localVarQueryParameter['verifyMx'] = verifyMx; + if (type !== undefined) { + localVarQueryParameter['type'] = type; } - if (verifySmtp !== undefined) { - localVarQueryParameter['verifySmtp'] = verifySmtp; + if (isActive !== undefined) { + localVarQueryParameter['isActive'] = isActive; } - if (timeout !== undefined) { - localVarQueryParameter['timeout'] = timeout; + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update QR Code - Modify an existing QR code + * @param {UpdateQrCodeIn} updateQrCodeIn Update configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1UpdateQrCode: async ( + updateQrCodeIn: UpdateQrCodeIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'updateQrCodeIn' is not null or undefined + assertParamExists('v1UpdateQrCode', 'updateQrCodeIn', updateQrCodeIn); + const localVarPath = `/v1-update-qr-code`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; } + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(updateQrCodeIn, localVarRequestOptions, configuration); return { url: toPathString(localVarUrlObj), @@ -2198,275 +6435,642 @@ export const EmailApiAxiosParamCreator = function (configuration?: Configuration }; /** - * EmailApi - functional programming interface - * @export + * QRCodeApi - functional programming interface */ -export const EmailApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = EmailApiAxiosParamCreator(configuration); +export const QRCodeApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = QRCodeApiAxiosParamCreator(configuration); return { /** - * Get email validation details - * @param {string} email email - email address - * @param {boolean} [verifyMx] verifyMx - verify domain dns for MX record - * @param {boolean} [verifySmtp] verifySmtp - verify mailbox with SMTP Connect and Reply - * @param {string} [timeout] timeout - timeout in milliseconds max 10000 (10 seconds) + * Create QR Code - Generate a new QR code + * @param {CreateQrCodeIn} createQrCodeIn QR code configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1CreateQrCode( + createQrCodeIn: CreateQrCodeIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateQrCode(createQrCodeIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1CreateQrCode']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Track QR View - Track when a QR code is viewed/scanned + * @param {string} sid Short ID of the QR code + * @param {TrackQrViewIn} [trackQrViewIn] Tracking data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1CreateTrackQrView( + sid: string, + trackQrViewIn?: TrackQrViewIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateTrackQrView(sid, trackQrViewIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1CreateTrackQrView']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Delete QR Code - Permanently remove a QR code + * @param {DeleteQrCodeIn} deleteQrCodeIn Delete configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1DeleteQrCode( + deleteQrCodeIn: DeleteQrCodeIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1DeleteQrCode(deleteQrCodeIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1DeleteQrCode']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get QR Code Analytics - Retrieve detailed analytics for a QR code + * @param {string} [sid] Short ID of the QR code + * @param {string} [id] Database ID of the QR code + * @param {string} [from] Start date for analytics (ISO 8601) + * @param {string} [to] End date for analytics (ISO 8601) + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetQrCodeAnalytics( + sid?: string, + id?: string, + from?: string, + to?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetQrCodeAnalytics(sid, id, from, to, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1GetQrCodeAnalytics']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get QR Code Details - Retrieve QR code information for UI + * @param {string} [sid] Short ID of the QR code + * @param {string} [id] Database ID of the QR code + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetQrCodeDetails( + sid?: string, + id?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetQrCodeDetails(sid, id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1GetQrCodeDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Get QR Code Preview - Generate a QR code preview as base64 image + * @param {PreviewQrCodeIn} previewQrCodeIn QR code configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetQrCodePreview( + previewQrCodeIn: PreviewQrCodeIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetQrCodePreview(previewQrCodeIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1GetQrCodePreview']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * List QR Codes - Get paginated list of user\'s QR codes + * @param {string} [page] Page number (default: 1) + * @param {string} [pageSize] Items per page (default: 20, max: 100) + * @param {V1ListQrCodesTypeEnum} [type] Filter by QR code type + * @param {string} [isActive] Filter by active status + * @param {V1ListQrCodesSortEnum} [sort] Sort field + * @param {string} [search] Search in data field * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1GetEmailDetails( - email: string, - verifyMx?: boolean, - verifySmtp?: boolean, - timeout?: string, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetEmailDetails( - email, - verifyMx, - verifySmtp, - timeout, + async v1ListQrCodes( + page?: string, + pageSize?: string, + type?: V1ListQrCodesTypeEnum, + isActive?: string, + sort?: V1ListQrCodesSortEnum, + search?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListQrCodes( + page, + pageSize, + type, + isActive, + sort, + search, options, ); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1ListQrCodes']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Update QR Code - Modify an existing QR code + * @param {UpdateQrCodeIn} updateQrCodeIn Update configuration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1UpdateQrCode( + updateQrCodeIn: UpdateQrCodeIn, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1UpdateQrCode(updateQrCodeIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['QRCodeApi.v1UpdateQrCode']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; /** - * EmailApi - factory interface - * @export + * QRCodeApi - factory interface */ -export const EmailApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = EmailApiFp(configuration); +export const QRCodeApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = QRCodeApiFp(configuration); return { /** - * Get email validation details - * @param {string} email email - email address - * @param {boolean} [verifyMx] verifyMx - verify domain dns for MX record - * @param {boolean} [verifySmtp] verifySmtp - verify mailbox with SMTP Connect and Reply - * @param {string} [timeout] timeout - timeout in milliseconds max 10000 (10 seconds) + * Create QR Code - Generate a new QR code + * @param {QRCodeApiV1CreateQrCodeRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetEmailDetails( - email: string, - verifyMx?: boolean, - verifySmtp?: boolean, - timeout?: string, - options?: any, - ): AxiosPromise { + v1CreateQrCode( + requestParameters: QRCodeApiV1CreateQrCodeRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1CreateQrCode(requestParameters.createQrCodeIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Track QR View - Track when a QR code is viewed/scanned + * @param {QRCodeApiV1CreateTrackQrViewRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1CreateTrackQrView( + requestParameters: QRCodeApiV1CreateTrackQrViewRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1CreateTrackQrView(requestParameters.sid, requestParameters.trackQrViewIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Delete QR Code - Permanently remove a QR code + * @param {QRCodeApiV1DeleteQrCodeRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1DeleteQrCode( + requestParameters: QRCodeApiV1DeleteQrCodeRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1DeleteQrCode(requestParameters.deleteQrCodeIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Get QR Code Analytics - Retrieve detailed analytics for a QR code + * @param {QRCodeApiV1GetQrCodeAnalyticsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetQrCodeAnalytics( + requestParameters: QRCodeApiV1GetQrCodeAnalyticsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetQrCodeAnalytics( + requestParameters.sid, + requestParameters.id, + requestParameters.from, + requestParameters.to, + options, + ) + .then((request) => request(axios, basePath)); + }, + /** + * Get QR Code Details - Retrieve QR code information for UI + * @param {QRCodeApiV1GetQrCodeDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetQrCodeDetails( + requestParameters: QRCodeApiV1GetQrCodeDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetQrCodeDetails(requestParameters.sid, requestParameters.id, options) + .then((request) => request(axios, basePath)); + }, + /** + * Get QR Code Preview - Generate a QR code preview as base64 image + * @param {QRCodeApiV1GetQrCodePreviewRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1GetQrCodePreview( + requestParameters: QRCodeApiV1GetQrCodePreviewRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetQrCodePreview(requestParameters.previewQrCodeIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * List QR Codes - Get paginated list of user\'s QR codes + * @param {QRCodeApiV1ListQrCodesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1ListQrCodes( + requestParameters: QRCodeApiV1ListQrCodesRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ListQrCodes( + requestParameters.page, + requestParameters.pageSize, + requestParameters.type, + requestParameters.isActive, + requestParameters.sort, + requestParameters.search, + options, + ) + .then((request) => request(axios, basePath)); + }, + /** + * Update QR Code - Modify an existing QR code + * @param {QRCodeApiV1UpdateQrCodeRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1UpdateQrCode( + requestParameters: QRCodeApiV1UpdateQrCodeRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { return localVarFp - .v1GetEmailDetails(email, verifyMx, verifySmtp, timeout, options) + .v1UpdateQrCode(requestParameters.updateQrCodeIn, options) .then((request) => request(axios, basePath)); }, }; }; /** - * Request parameters for v1GetEmailDetails operation in EmailApi. - * @export - * @interface EmailApiV1GetEmailDetailsRequest + * Request parameters for v1CreateQrCode operation in QRCodeApi. */ -export interface EmailApiV1GetEmailDetailsRequest { +export interface QRCodeApiV1CreateQrCodeRequest { /** - * email - email address - * @type {string} - * @memberof EmailApiV1GetEmailDetails + * QR code configuration */ - readonly email: string; + readonly createQrCodeIn: CreateQrCodeIn; +} +/** + * Request parameters for v1CreateTrackQrView operation in QRCodeApi. + */ +export interface QRCodeApiV1CreateTrackQrViewRequest { /** - * verifyMx - verify domain dns for MX record - * @type {boolean} - * @memberof EmailApiV1GetEmailDetails + * Short ID of the QR code */ - readonly verifyMx?: boolean; + readonly sid: string; /** - * verifySmtp - verify mailbox with SMTP Connect and Reply - * @type {boolean} - * @memberof EmailApiV1GetEmailDetails + * Tracking data */ - readonly verifySmtp?: boolean; + readonly trackQrViewIn?: TrackQrViewIn; +} +/** + * Request parameters for v1DeleteQrCode operation in QRCodeApi. + */ +export interface QRCodeApiV1DeleteQrCodeRequest { /** - * timeout - timeout in milliseconds max 10000 (10 seconds) - * @type {string} - * @memberof EmailApiV1GetEmailDetails + * Delete configuration */ - readonly timeout?: string; + readonly deleteQrCodeIn: DeleteQrCodeIn; } /** - * EmailApi - * @export - * @class EmailApi - * @extends {BaseAPI} + * Request parameters for v1GetQrCodeAnalytics operation in QRCodeApi. */ -export class EmailApi extends BaseAPI { +export interface QRCodeApiV1GetQrCodeAnalyticsRequest { /** - * Get email validation details - * @param {EmailApiV1GetEmailDetailsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof EmailApi + * Short ID of the QR code */ - public v1GetEmailDetails(requestParameters: EmailApiV1GetEmailDetailsRequest, options?: AxiosRequestConfig) { - return EmailApiFp(this.configuration) - .v1GetEmailDetails( - requestParameters.email, - requestParameters.verifyMx, - requestParameters.verifySmtp, - requestParameters.timeout, - options, - ) - .then((request) => request(this.axios, this.basePath)); - } + readonly sid?: string; + + /** + * Database ID of the QR code + */ + readonly id?: string; + + /** + * Start date for analytics (ISO 8601) + */ + readonly from?: string; + + /** + * End date for analytics (ISO 8601) + */ + readonly to?: string; } /** - * IPApi - axios parameter creator - * @export + * Request parameters for v1GetQrCodeDetails operation in QRCodeApi. */ -export const IPApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * Get IP GEO Location and ISP details - * @param {string} [ip] ip - IP Address - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1GetIpDetails: async (ip?: string, options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1-get-ip-details`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } +export interface QRCodeApiV1GetQrCodeDetailsRequest { + /** + * Short ID of the QR code + */ + readonly sid?: string; - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; + /** + * Database ID of the QR code + */ + readonly id?: string; +} - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); +/** + * Request parameters for v1GetQrCodePreview operation in QRCodeApi. + */ +export interface QRCodeApiV1GetQrCodePreviewRequest { + /** + * QR code configuration + */ + readonly previewQrCodeIn: PreviewQrCodeIn; +} - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); +/** + * Request parameters for v1ListQrCodes operation in QRCodeApi. + */ +export interface QRCodeApiV1ListQrCodesRequest { + /** + * Page number (default: 1) + */ + readonly page?: string; - if (ip !== undefined) { - localVarQueryParameter['ip'] = ip; - } + /** + * Items per page (default: 20, max: 100) + */ + readonly pageSize?: string; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + /** + * Filter by QR code type + */ + readonly type?: V1ListQrCodesTypeEnum; - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - }; -}; + /** + * Filter by active status + */ + readonly isActive?: string; -/** - * IPApi - functional programming interface - * @export - */ -export const IPApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = IPApiAxiosParamCreator(configuration); - return { - /** - * Get IP GEO Location and ISP details - * @param {string} [ip] ip - IP Address - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async v1GetIpDetails( - ip?: string, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetIpDetails(ip, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - }; -}; + /** + * Sort field + */ + readonly sort?: V1ListQrCodesSortEnum; + + /** + * Search in data field + */ + readonly search?: string; +} /** - * IPApi - factory interface - * @export + * Request parameters for v1UpdateQrCode operation in QRCodeApi. */ -export const IPApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = IPApiFp(configuration); - return { - /** - * Get IP GEO Location and ISP details - * @param {string} [ip] ip - IP Address - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1GetIpDetails(ip?: string, options?: any): AxiosPromise { - return localVarFp.v1GetIpDetails(ip, options).then((request) => request(axios, basePath)); - }, - }; -}; +export interface QRCodeApiV1UpdateQrCodeRequest { + /** + * Update configuration + */ + readonly updateQrCodeIn: UpdateQrCodeIn; +} /** - * Request parameters for v1GetIpDetails operation in IPApi. - * @export - * @interface IPApiV1GetIpDetailsRequest + * QRCodeApi - object-oriented interface */ -export interface IPApiV1GetIpDetailsRequest { +export class QRCodeApi extends BaseAPI { /** - * ip - IP Address - * @type {string} - * @memberof IPApiV1GetIpDetails + * Create QR Code - Generate a new QR code + * @param {QRCodeApiV1CreateQrCodeRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} */ - readonly ip?: string; -} + public v1CreateQrCode(requestParameters: QRCodeApiV1CreateQrCodeRequest, options?: RawAxiosRequestConfig) { + return QRCodeApiFp(this.configuration) + .v1CreateQrCode(requestParameters.createQrCodeIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Track QR View - Track when a QR code is viewed/scanned + * @param {QRCodeApiV1CreateTrackQrViewRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1CreateTrackQrView(requestParameters: QRCodeApiV1CreateTrackQrViewRequest, options?: RawAxiosRequestConfig) { + return QRCodeApiFp(this.configuration) + .v1CreateTrackQrView(requestParameters.sid, requestParameters.trackQrViewIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete QR Code - Permanently remove a QR code + * @param {QRCodeApiV1DeleteQrCodeRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1DeleteQrCode(requestParameters: QRCodeApiV1DeleteQrCodeRequest, options?: RawAxiosRequestConfig) { + return QRCodeApiFp(this.configuration) + .v1DeleteQrCode(requestParameters.deleteQrCodeIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get QR Code Analytics - Retrieve detailed analytics for a QR code + * @param {QRCodeApiV1GetQrCodeAnalyticsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetQrCodeAnalytics( + requestParameters: QRCodeApiV1GetQrCodeAnalyticsRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return QRCodeApiFp(this.configuration) + .v1GetQrCodeAnalytics( + requestParameters.sid, + requestParameters.id, + requestParameters.from, + requestParameters.to, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get QR Code Details - Retrieve QR code information for UI + * @param {QRCodeApiV1GetQrCodeDetailsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetQrCodeDetails( + requestParameters: QRCodeApiV1GetQrCodeDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return QRCodeApiFp(this.configuration) + .v1GetQrCodeDetails(requestParameters.sid, requestParameters.id, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get QR Code Preview - Generate a QR code preview as base64 image + * @param {QRCodeApiV1GetQrCodePreviewRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetQrCodePreview(requestParameters: QRCodeApiV1GetQrCodePreviewRequest, options?: RawAxiosRequestConfig) { + return QRCodeApiFp(this.configuration) + .v1GetQrCodePreview(requestParameters.previewQrCodeIn, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * List QR Codes - Get paginated list of user\'s QR codes + * @param {QRCodeApiV1ListQrCodesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1ListQrCodes(requestParameters: QRCodeApiV1ListQrCodesRequest = {}, options?: RawAxiosRequestConfig) { + return QRCodeApiFp(this.configuration) + .v1ListQrCodes( + requestParameters.page, + requestParameters.pageSize, + requestParameters.type, + requestParameters.isActive, + requestParameters.sort, + requestParameters.search, + options, + ) + .then((request) => request(this.axios, this.basePath)); + } -/** - * IPApi - * @export - * @class IPApi - * @extends {BaseAPI} - */ -export class IPApi extends BaseAPI { /** - * Get IP GEO Location and ISP details - * @param {IPApiV1GetIpDetailsRequest} requestParameters Request parameters. + * Update QR Code - Modify an existing QR code + * @param {QRCodeApiV1UpdateQrCodeRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof IPApi */ - public v1GetIpDetails(requestParameters: IPApiV1GetIpDetailsRequest = {}, options?: AxiosRequestConfig) { - return IPApiFp(this.configuration) - .v1GetIpDetails(requestParameters.ip, options) + public v1UpdateQrCode(requestParameters: QRCodeApiV1UpdateQrCodeRequest, options?: RawAxiosRequestConfig) { + return QRCodeApiFp(this.configuration) + .v1UpdateQrCode(requestParameters.updateQrCodeIn, options) .then((request) => request(this.axios, this.basePath)); } } +export const V1ListQrCodesTypeEnum = { + Url: 'url', + Text: 'text', + Email: 'email', + Phone: 'phone', + Sms: 'sms', + Wifi: 'wifi', + Vcard: 'vcard', +} as const; +export type V1ListQrCodesTypeEnum = (typeof V1ListQrCodesTypeEnum)[keyof typeof V1ListQrCodesTypeEnum]; +export const V1ListQrCodesSortEnum = { + CreatedAt: 'createdAt', + CreatedAt2: '-createdAt', + Scans: 'scans', + Scans2: '-scans', + UpdatedAt: 'updatedAt', + UpdatedAt2: '-updatedAt', +} as const; +export type V1ListQrCodesSortEnum = (typeof V1ListQrCodesSortEnum)[keyof typeof V1ListQrCodesSortEnum]; + /** - * ImageApi - axios parameter creator - * @export + * ShortURLApi - axios parameter creator */ -export const ImageApiAxiosParamCreator = function (configuration?: Configuration) { +export const ShortURLApiAxiosParamCreator = function (configuration?: Configuration) { return { /** - * Get Text From Image with OCR - * @param {GetTextFromImageIn} getTextFromImageIn body + * Create multiple short URLs in a single request. Supports custom domains based on user settings. + * @param {CreateBulkShortUrlsRequest} createBulkShortUrlsRequest * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetTextFromImage: async ( - getTextFromImageIn: GetTextFromImageIn, - options: AxiosRequestConfig = {}, + v1CreateBulkShortUrls: async ( + createBulkShortUrlsRequest: CreateBulkShortUrlsRequest, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'getTextFromImageIn' is not null or undefined - assertParamExists('v1GetTextFromImage', 'getTextFromImageIn', getTextFromImageIn); - const localVarPath = `/v1-get-text-from-image`; + // verify required parameter 'createBulkShortUrlsRequest' is not null or undefined + assertParamExists('v1CreateBulkShortUrls', 'createBulkShortUrlsRequest', createBulkShortUrlsRequest); + const localVarPath = `/v1-create-bulk-short-urls`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2478,120 +7082,41 @@ export const ImageApiAxiosParamCreator = function (configuration?: Configuration const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; - localVarRequestOptions.data = serializeDataIfNeeded(getTextFromImageIn, localVarRequestOptions, configuration); + localVarRequestOptions.data = serializeDataIfNeeded( + createBulkShortUrlsRequest, + localVarRequestOptions, + configuration, + ); return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, }; }, - }; -}; - -/** - * ImageApi - functional programming interface - * @export - */ -export const ImageApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = ImageApiAxiosParamCreator(configuration); - return { - /** - * Get Text From Image with OCR - * @param {GetTextFromImageIn} getTextFromImageIn body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async v1GetTextFromImage( - getTextFromImageIn: GetTextFromImageIn, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetTextFromImage(getTextFromImageIn, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - }; -}; - -/** - * ImageApi - factory interface - * @export - */ -export const ImageApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = ImageApiFp(configuration); - return { - /** - * Get Text From Image with OCR - * @param {GetTextFromImageIn} getTextFromImageIn body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1GetTextFromImage(getTextFromImageIn: GetTextFromImageIn, options?: any): AxiosPromise { - return localVarFp.v1GetTextFromImage(getTextFromImageIn, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * Request parameters for v1GetTextFromImage operation in ImageApi. - * @export - * @interface ImageApiV1GetTextFromImageRequest - */ -export interface ImageApiV1GetTextFromImageRequest { - /** - * body - * @type {GetTextFromImageIn} - * @memberof ImageApiV1GetTextFromImage - */ - readonly getTextFromImageIn: GetTextFromImageIn; -} - -/** - * ImageApi - * @export - * @class ImageApi - * @extends {BaseAPI} - */ -export class ImageApi extends BaseAPI { - /** - * Get Text From Image with OCR - * @param {ImageApiV1GetTextFromImageRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ImageApi - */ - public v1GetTextFromImage(requestParameters: ImageApiV1GetTextFromImageRequest, options?: AxiosRequestConfig) { - return ImageApiFp(this.configuration) - .v1GetTextFromImage(requestParameters.getTextFromImageIn, options) - .then((request) => request(this.axios, this.basePath)); - } -} - -/** - * PhoneApi - axios parameter creator - * @export - */ -export const PhoneApiAxiosParamCreator = function (configuration?: Configuration) { - return { /** - * Get phone validation details - * @param {string} phone phone - phone number to validate + * Creates a shortened URL that redirects to the original URL. Validates the URL and checks against blocked domains. + * @param {CreateShortUrlIn} createShortUrlIn Short URL configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetPhoneDetails: async (phone: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'phone' is not null or undefined - assertParamExists('v1GetPhoneDetails', 'phone', phone); - const localVarPath = `/v1-get-phone-details`; + v1CreateShortUrl: async ( + createShortUrlIn: CreateShortUrlIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'createShortUrlIn' is not null or undefined + assertParamExists('v1CreateShortUrl', 'createShortUrlIn', createShortUrlIn); + const localVarPath = `/v1-create-short-url`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2599,128 +7124,85 @@ export const PhoneApiAxiosParamCreator = function (configuration?: Configuration baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); - if (phone !== undefined) { - localVarQueryParameter['phone'] = phone; - } + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(createShortUrlIn, localVarRequestOptions, configuration); return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, }; }, - }; -}; - -/** - * PhoneApi - functional programming interface - * @export - */ -export const PhoneApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = PhoneApiAxiosParamCreator(configuration); - return { /** - * Get phone validation details - * @param {string} phone phone - phone number to validate + * Deletes a shortened URL. Requires authentication and ownership of the URL. + * @param {DeleteShortUrlIn} deleteShortUrlIn Delete request parameters * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1GetPhoneDetails( - phone: string, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetPhoneDetails(phone, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - }; -}; + v1DeleteShortUrl: async ( + deleteShortUrlIn: DeleteShortUrlIn, + options: RawAxiosRequestConfig = {}, + ): Promise => { + // verify required parameter 'deleteShortUrlIn' is not null or undefined + assertParamExists('v1DeleteShortUrl', 'deleteShortUrlIn', deleteShortUrlIn); + const localVarPath = `/v1-delete-short-url`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } -/** - * PhoneApi - factory interface - * @export - */ -export const PhoneApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = PhoneApiFp(configuration); - return { - /** - * Get phone validation details - * @param {string} phone phone - phone number to validate - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1GetPhoneDetails(phone: string, options?: any): AxiosPromise { - return localVarFp.v1GetPhoneDetails(phone, options).then((request) => request(axios, basePath)); - }, - }; -}; + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; -/** - * Request parameters for v1GetPhoneDetails operation in PhoneApi. - * @export - * @interface PhoneApiV1GetPhoneDetailsRequest - */ -export interface PhoneApiV1GetPhoneDetailsRequest { - /** - * phone - phone number to validate - * @type {string} - * @memberof PhoneApiV1GetPhoneDetails - */ - readonly phone: string; -} + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); -/** - * PhoneApi - * @export - * @class PhoneApi - * @extends {BaseAPI} - */ -export class PhoneApi extends BaseAPI { - /** - * Get phone validation details - * @param {PhoneApiV1GetPhoneDetailsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof PhoneApi - */ - public v1GetPhoneDetails(requestParameters: PhoneApiV1GetPhoneDetailsRequest, options?: AxiosRequestConfig) { - return PhoneApiFp(this.configuration) - .v1GetPhoneDetails(requestParameters.phone, options) - .then((request) => request(this.axios, this.basePath)); - } -} + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); -/** - * ShortUrlApi - axios parameter creator - * @export - */ -export const ShortUrlApiAxiosParamCreator = function (configuration?: Configuration) { - return { + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; + localVarRequestOptions.data = serializeDataIfNeeded(deleteShortUrlIn, localVarRequestOptions, configuration); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** - * Create a short URL from a long URL - * @param {CreateShortUrlIn} createShortUrlIn + * Fetches detailed analytics including click data and visitor information for a shortened URL. + * @param {string} [sid] Short ID of the URL - eg: abc123 + * @param {string} [domain] Domain of the short URL - eg: in.mt + * @param {string} [id] Database ID of the short URL - optional * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1CreateShortUrl: async ( - createShortUrlIn: CreateShortUrlIn, - options: AxiosRequestConfig = {}, + v1GetShortUrlAnalytics: async ( + sid?: string, + domain?: string, + id?: string, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'createShortUrlIn' is not null or undefined - assertParamExists('v1CreateShortUrl', 'createShortUrlIn', createShortUrlIn); - const localVarPath = `/v1-create-short-url`; + const localVarPath = `/v1-get-short-url-analytics`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2728,22 +7210,31 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + if (sid !== undefined) { + localVarQueryParameter['sid'] = sid; + } - localVarHeaderParameter['Content-Type'] = 'application/json'; + if (domain !== undefined) { + localVarQueryParameter['domain'] = domain; + } + + if (id !== undefined) { + localVarQueryParameter['_id'] = id; + } setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; - localVarRequestOptions.data = serializeDataIfNeeded(createShortUrlIn, localVarRequestOptions, configuration); return { url: toPathString(localVarUrlObj), @@ -2751,18 +7242,20 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat }; }, /** - * Create a short URL from a long URL - * @param {DeleteShortUrlIn} deleteShortUrlIn + * Get Short URL Details - Retrieve details of a shortened URL + * @param {string} [sid] Short ID of the URL + * @param {V1GetShortUrlDetailsDomainEnum} [domain] Domain used for the short URL + * @param {string} [id] Database ID of the short URL record * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1DeleteShortUrl: async ( - deleteShortUrlIn: DeleteShortUrlIn, - options: AxiosRequestConfig = {}, + v1GetShortUrlDetails: async ( + sid?: string, + domain?: V1GetShortUrlDetailsDomainEnum, + id?: string, + options: RawAxiosRequestConfig = {}, ): Promise => { - // verify required parameter 'deleteShortUrlIn' is not null or undefined - assertParamExists('v1DeleteShortUrl', 'deleteShortUrlIn', deleteShortUrlIn); - const localVarPath = `/v1-delete-short-url`; + const localVarPath = `/v1-get-short-url-details`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2770,22 +7263,31 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat baseOptions = configuration.baseOptions; } - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + if (sid !== undefined) { + localVarQueryParameter['sid'] = sid; + } - localVarHeaderParameter['Content-Type'] = 'application/json'; + if (domain !== undefined) { + localVarQueryParameter['domain'] = domain; + } + + if (id !== undefined) { + localVarQueryParameter['_id'] = id; + } setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; - localVarRequestOptions.data = serializeDataIfNeeded(deleteShortUrlIn, localVarRequestOptions, configuration); return { url: toPathString(localVarUrlObj), @@ -2793,14 +7295,22 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat }; }, /** - * Create a short URL from a long URL - * @param {string} [sid] sid - short url sid - * @param {string} [id] _id - short url id + * List Short URLs - Retrieve user\'s shortened URLs + * @param {string} [batchId] Filter by batch ID (for bulk created items) + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"clicks\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 200 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetShortUrlDetails: async (sid?: string, id?: string, options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1-get-short-url-details`; + v1ListShortUrls: async ( + batchId?: string, + sort?: Array, + page?: number, + pageSize?: number, + options: RawAxiosRequestConfig = {}, + ): Promise => { + const localVarPath = `/v1-list-short-urls`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2812,18 +7322,26 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; + // authentication APIKeyQueryParam required + await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + if (batchId !== undefined) { + localVarQueryParameter['batchId'] = batchId; + } - if (sid !== undefined) { - localVarQueryParameter['sid'] = sid; + if (sort) { + localVarQueryParameter['sort'] = sort; } - if (id !== undefined) { - localVarQueryParameter['_id'] = id; + if (page !== undefined) { + localVarQueryParameter['page'] = page; + } + + if (pageSize !== undefined) { + localVarQueryParameter['pageSize'] = pageSize; } setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -2836,14 +7354,14 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat }; }, /** - * Create a short URL from a long URL - * @param {UpdateShortUrlIn} updateShortUrlIn + * Updates the short ID or domain of an existing shortened URL. Requires authentication and ownership. + * @param {UpdateShortUrlIn} updateShortUrlIn Update request parameters * @param {*} [options] Override http request option. * @throws {RequiredError} */ v1UpdateShortUrl: async ( updateShortUrlIn: UpdateShortUrlIn, - options: AxiosRequestConfig = {}, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'updateShortUrlIn' is not null or undefined assertParamExists('v1UpdateShortUrl', 'updateShortUrlIn', updateShortUrlIn); @@ -2859,12 +7377,12 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -2881,306 +7399,534 @@ export const ShortUrlApiAxiosParamCreator = function (configuration?: Configurat }; /** - * ShortUrlApi - functional programming interface - * @export + * ShortURLApi - functional programming interface */ -export const ShortUrlApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = ShortUrlApiAxiosParamCreator(configuration); +export const ShortURLApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = ShortURLApiAxiosParamCreator(configuration); return { /** - * Create a short URL from a long URL - * @param {CreateShortUrlIn} createShortUrlIn + * Create multiple short URLs in a single request. Supports custom domains based on user settings. + * @param {CreateBulkShortUrlsRequest} createBulkShortUrlsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1CreateBulkShortUrls( + createBulkShortUrlsRequest: CreateBulkShortUrlsRequest, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateBulkShortUrls( + createBulkShortUrlsRequest, + options, + ); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['ShortURLApi.v1CreateBulkShortUrls']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Creates a shortened URL that redirects to the original URL. Validates the URL and checks against blocked domains. + * @param {CreateShortUrlIn} createShortUrlIn Short URL configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ async v1CreateShortUrl( createShortUrlIn: CreateShortUrlIn, - options?: AxiosRequestConfig, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateShortUrl(createShortUrlIn, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['ShortURLApi.v1CreateShortUrl']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** - * Create a short URL from a long URL - * @param {DeleteShortUrlIn} deleteShortUrlIn + * Deletes a shortened URL. Requires authentication and ownership of the URL. + * @param {DeleteShortUrlIn} deleteShortUrlIn Delete request parameters * @param {*} [options] Override http request option. * @throws {RequiredError} */ async v1DeleteShortUrl( deleteShortUrlIn: DeleteShortUrlIn, - options?: AxiosRequestConfig, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.v1DeleteShortUrl(deleteShortUrlIn, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['ShortURLApi.v1DeleteShortUrl']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Fetches detailed analytics including click data and visitor information for a shortened URL. + * @param {string} [sid] Short ID of the URL - eg: abc123 + * @param {string} [domain] Domain of the short URL - eg: in.mt + * @param {string} [id] Database ID of the short URL - optional + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1GetShortUrlAnalytics( + sid?: string, + domain?: string, + id?: string, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetShortUrlAnalytics(sid, domain, id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['ShortURLApi.v1GetShortUrlAnalytics']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** - * Create a short URL from a long URL - * @param {string} [sid] sid - short url sid - * @param {string} [id] _id - short url id + * Get Short URL Details - Retrieve details of a shortened URL + * @param {string} [sid] Short ID of the URL + * @param {V1GetShortUrlDetailsDomainEnum} [domain] Domain used for the short URL + * @param {string} [id] Database ID of the short URL record * @param {*} [options] Override http request option. * @throws {RequiredError} */ async v1GetShortUrlDetails( sid?: string, + domain?: V1GetShortUrlDetailsDomainEnum, id?: string, - options?: AxiosRequestConfig, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetShortUrlDetails(sid, id, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetShortUrlDetails(sid, domain, id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['ShortURLApi.v1GetShortUrlDetails']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); + }, + /** + * List Short URLs - Retrieve user\'s shortened URLs + * @param {string} [batchId] Filter by batch ID (for bulk created items) + * @param {Array} [sort] Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"clicks\"] + * @param {number} [page] Page number for pagination - Default: 1 + * @param {number} [pageSize] Number of items per page - Default: 200 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async v1ListShortUrls( + batchId?: string, + sort?: Array, + page?: number, + pageSize?: number, + options?: RawAxiosRequestConfig, + ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.v1ListShortUrls(batchId, sort, page, pageSize, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['ShortURLApi.v1ListShortUrls']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, /** - * Create a short URL from a long URL - * @param {UpdateShortUrlIn} updateShortUrlIn + * Updates the short ID or domain of an existing shortened URL. Requires authentication and ownership. + * @param {UpdateShortUrlIn} updateShortUrlIn Update request parameters * @param {*} [options] Override http request option. * @throws {RequiredError} */ async v1UpdateShortUrl( updateShortUrlIn: UpdateShortUrlIn, - options?: AxiosRequestConfig, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.v1UpdateShortUrl(updateShortUrlIn, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['ShortURLApi.v1UpdateShortUrl']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; /** - * ShortUrlApi - factory interface - * @export + * ShortURLApi - factory interface */ -export const ShortUrlApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = ShortUrlApiFp(configuration); +export const ShortURLApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = ShortURLApiFp(configuration); return { /** - * Create a short URL from a long URL - * @param {CreateShortUrlIn} createShortUrlIn + * Create multiple short URLs in a single request. Supports custom domains based on user settings. + * @param {ShortURLApiV1CreateBulkShortUrlsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1CreateBulkShortUrls( + requestParameters: ShortURLApiV1CreateBulkShortUrlsRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1CreateBulkShortUrls(requestParameters.createBulkShortUrlsRequest, options) + .then((request) => request(axios, basePath)); + }, + /** + * Creates a shortened URL that redirects to the original URL. Validates the URL and checks against blocked domains. + * @param {ShortURLApiV1CreateShortUrlRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1CreateShortUrl( + requestParameters: ShortURLApiV1CreateShortUrlRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1CreateShortUrl(requestParameters.createShortUrlIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Deletes a shortened URL. Requires authentication and ownership of the URL. + * @param {ShortURLApiV1DeleteShortUrlRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + v1DeleteShortUrl( + requestParameters: ShortURLApiV1DeleteShortUrlRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1DeleteShortUrl(requestParameters.deleteShortUrlIn, options) + .then((request) => request(axios, basePath)); + }, + /** + * Fetches detailed analytics including click data and visitor information for a shortened URL. + * @param {ShortURLApiV1GetShortUrlAnalyticsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1CreateShortUrl(createShortUrlIn: CreateShortUrlIn, options?: any): AxiosPromise { - return localVarFp.v1CreateShortUrl(createShortUrlIn, options).then((request) => request(axios, basePath)); + v1GetShortUrlAnalytics( + requestParameters: ShortURLApiV1GetShortUrlAnalyticsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetShortUrlAnalytics(requestParameters.sid, requestParameters.domain, requestParameters.id, options) + .then((request) => request(axios, basePath)); }, /** - * Create a short URL from a long URL - * @param {DeleteShortUrlIn} deleteShortUrlIn + * Get Short URL Details - Retrieve details of a shortened URL + * @param {ShortURLApiV1GetShortUrlDetailsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1DeleteShortUrl(deleteShortUrlIn: DeleteShortUrlIn, options?: any): AxiosPromise { - return localVarFp.v1DeleteShortUrl(deleteShortUrlIn, options).then((request) => request(axios, basePath)); + v1GetShortUrlDetails( + requestParameters: ShortURLApiV1GetShortUrlDetailsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1GetShortUrlDetails(requestParameters.sid, requestParameters.domain, requestParameters.id, options) + .then((request) => request(axios, basePath)); }, /** - * Create a short URL from a long URL - * @param {string} [sid] sid - short url sid - * @param {string} [id] _id - short url id + * List Short URLs - Retrieve user\'s shortened URLs + * @param {ShortURLApiV1ListShortUrlsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1GetShortUrlDetails(sid?: string, id?: string, options?: any): AxiosPromise { - return localVarFp.v1GetShortUrlDetails(sid, id, options).then((request) => request(axios, basePath)); + v1ListShortUrls( + requestParameters: ShortURLApiV1ListShortUrlsRequest = {}, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1ListShortUrls( + requestParameters.batchId, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) + .then((request) => request(axios, basePath)); }, /** - * Create a short URL from a long URL - * @param {UpdateShortUrlIn} updateShortUrlIn + * Updates the short ID or domain of an existing shortened URL. Requires authentication and ownership. + * @param {ShortURLApiV1UpdateShortUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1UpdateShortUrl(updateShortUrlIn: UpdateShortUrlIn, options?: any): AxiosPromise { - return localVarFp.v1UpdateShortUrl(updateShortUrlIn, options).then((request) => request(axios, basePath)); + v1UpdateShortUrl( + requestParameters: ShortURLApiV1UpdateShortUrlRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { + return localVarFp + .v1UpdateShortUrl(requestParameters.updateShortUrlIn, options) + .then((request) => request(axios, basePath)); }, }; }; /** - * Request parameters for v1CreateShortUrl operation in ShortUrlApi. - * @export - * @interface ShortUrlApiV1CreateShortUrlRequest + * Request parameters for v1CreateBulkShortUrls operation in ShortURLApi. */ -export interface ShortUrlApiV1CreateShortUrlRequest { +export interface ShortURLApiV1CreateBulkShortUrlsRequest { /** * - * @type {CreateShortUrlIn} - * @memberof ShortUrlApiV1CreateShortUrl + */ + readonly createBulkShortUrlsRequest: CreateBulkShortUrlsRequest; +} + +/** + * Request parameters for v1CreateShortUrl operation in ShortURLApi. + */ +export interface ShortURLApiV1CreateShortUrlRequest { + /** + * Short URL configuration */ readonly createShortUrlIn: CreateShortUrlIn; } /** - * Request parameters for v1DeleteShortUrl operation in ShortUrlApi. - * @export - * @interface ShortUrlApiV1DeleteShortUrlRequest + * Request parameters for v1DeleteShortUrl operation in ShortURLApi. */ -export interface ShortUrlApiV1DeleteShortUrlRequest { +export interface ShortURLApiV1DeleteShortUrlRequest { /** - * - * @type {DeleteShortUrlIn} - * @memberof ShortUrlApiV1DeleteShortUrl + * Delete request parameters */ readonly deleteShortUrlIn: DeleteShortUrlIn; } /** - * Request parameters for v1GetShortUrlDetails operation in ShortUrlApi. - * @export - * @interface ShortUrlApiV1GetShortUrlDetailsRequest + * Request parameters for v1GetShortUrlAnalytics operation in ShortURLApi. */ -export interface ShortUrlApiV1GetShortUrlDetailsRequest { +export interface ShortURLApiV1GetShortUrlAnalyticsRequest { /** - * sid - short url sid - * @type {string} - * @memberof ShortUrlApiV1GetShortUrlDetails + * Short ID of the URL - eg: abc123 */ readonly sid?: string; /** - * _id - short url id - * @type {string} - * @memberof ShortUrlApiV1GetShortUrlDetails + * Domain of the short URL - eg: in.mt + */ + readonly domain?: string; + + /** + * Database ID of the short URL - optional */ readonly id?: string; } /** - * Request parameters for v1UpdateShortUrl operation in ShortUrlApi. - * @export - * @interface ShortUrlApiV1UpdateShortUrlRequest + * Request parameters for v1GetShortUrlDetails operation in ShortURLApi. */ -export interface ShortUrlApiV1UpdateShortUrlRequest { +export interface ShortURLApiV1GetShortUrlDetailsRequest { /** - * - * @type {UpdateShortUrlIn} - * @memberof ShortUrlApiV1UpdateShortUrl + * Short ID of the URL + */ + readonly sid?: string; + + /** + * Domain used for the short URL + */ + readonly domain?: V1GetShortUrlDetailsDomainEnum; + + /** + * Database ID of the short URL record + */ + readonly id?: string; +} + +/** + * Request parameters for v1ListShortUrls operation in ShortURLApi. + */ +export interface ShortURLApiV1ListShortUrlsRequest { + /** + * Filter by batch ID (for bulk created items) + */ + readonly batchId?: string; + + /** + * Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"clicks\"] + */ + readonly sort?: Array; + + /** + * Page number for pagination - Default: 1 + */ + readonly page?: number; + + /** + * Number of items per page - Default: 200 + */ + readonly pageSize?: number; +} + +/** + * Request parameters for v1UpdateShortUrl operation in ShortURLApi. + */ +export interface ShortURLApiV1UpdateShortUrlRequest { + /** + * Update request parameters */ readonly updateShortUrlIn: UpdateShortUrlIn; } /** - * ShortUrlApi - * @export - * @class ShortUrlApi - * @extends {BaseAPI} + * ShortURLApi - object-oriented interface */ -export class ShortUrlApi extends BaseAPI { +export class ShortURLApi extends BaseAPI { + /** + * Create multiple short URLs in a single request. Supports custom domains based on user settings. + * @param {ShortURLApiV1CreateBulkShortUrlsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1CreateBulkShortUrls( + requestParameters: ShortURLApiV1CreateBulkShortUrlsRequest, + options?: RawAxiosRequestConfig, + ) { + return ShortURLApiFp(this.configuration) + .v1CreateBulkShortUrls(requestParameters.createBulkShortUrlsRequest, options) + .then((request) => request(this.axios, this.basePath)); + } + /** - * Create a short URL from a long URL - * @param {ShortUrlApiV1CreateShortUrlRequest} requestParameters Request parameters. + * Creates a shortened URL that redirects to the original URL. Validates the URL and checks against blocked domains. + * @param {ShortURLApiV1CreateShortUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof ShortUrlApi */ - public v1CreateShortUrl(requestParameters: ShortUrlApiV1CreateShortUrlRequest, options?: AxiosRequestConfig) { - return ShortUrlApiFp(this.configuration) + public v1CreateShortUrl(requestParameters: ShortURLApiV1CreateShortUrlRequest, options?: RawAxiosRequestConfig) { + return ShortURLApiFp(this.configuration) .v1CreateShortUrl(requestParameters.createShortUrlIn, options) .then((request) => request(this.axios, this.basePath)); } /** - * Create a short URL from a long URL - * @param {ShortUrlApiV1DeleteShortUrlRequest} requestParameters Request parameters. + * Deletes a shortened URL. Requires authentication and ownership of the URL. + * @param {ShortURLApiV1DeleteShortUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof ShortUrlApi */ - public v1DeleteShortUrl(requestParameters: ShortUrlApiV1DeleteShortUrlRequest, options?: AxiosRequestConfig) { - return ShortUrlApiFp(this.configuration) + public v1DeleteShortUrl(requestParameters: ShortURLApiV1DeleteShortUrlRequest, options?: RawAxiosRequestConfig) { + return ShortURLApiFp(this.configuration) .v1DeleteShortUrl(requestParameters.deleteShortUrlIn, options) .then((request) => request(this.axios, this.basePath)); } /** - * Create a short URL from a long URL - * @param {ShortUrlApiV1GetShortUrlDetailsRequest} requestParameters Request parameters. + * Fetches detailed analytics including click data and visitor information for a shortened URL. + * @param {ShortURLApiV1GetShortUrlAnalyticsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1GetShortUrlAnalytics( + requestParameters: ShortURLApiV1GetShortUrlAnalyticsRequest = {}, + options?: RawAxiosRequestConfig, + ) { + return ShortURLApiFp(this.configuration) + .v1GetShortUrlAnalytics(requestParameters.sid, requestParameters.domain, requestParameters.id, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Get Short URL Details - Retrieve details of a shortened URL + * @param {ShortURLApiV1GetShortUrlDetailsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof ShortUrlApi */ public v1GetShortUrlDetails( - requestParameters: ShortUrlApiV1GetShortUrlDetailsRequest = {}, - options?: AxiosRequestConfig, + requestParameters: ShortURLApiV1GetShortUrlDetailsRequest = {}, + options?: RawAxiosRequestConfig, ) { - return ShortUrlApiFp(this.configuration) - .v1GetShortUrlDetails(requestParameters.sid, requestParameters.id, options) + return ShortURLApiFp(this.configuration) + .v1GetShortUrlDetails(requestParameters.sid, requestParameters.domain, requestParameters.id, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * List Short URLs - Retrieve user\'s shortened URLs + * @param {ShortURLApiV1ListShortUrlsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public v1ListShortUrls(requestParameters: ShortURLApiV1ListShortUrlsRequest = {}, options?: RawAxiosRequestConfig) { + return ShortURLApiFp(this.configuration) + .v1ListShortUrls( + requestParameters.batchId, + requestParameters.sort, + requestParameters.page, + requestParameters.pageSize, + options, + ) .then((request) => request(this.axios, this.basePath)); } /** - * Create a short URL from a long URL - * @param {ShortUrlApiV1UpdateShortUrlRequest} requestParameters Request parameters. + * Updates the short ID or domain of an existing shortened URL. Requires authentication and ownership. + * @param {ShortURLApiV1UpdateShortUrlRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof ShortUrlApi */ - public v1UpdateShortUrl(requestParameters: ShortUrlApiV1UpdateShortUrlRequest, options?: AxiosRequestConfig) { - return ShortUrlApiFp(this.configuration) + public v1UpdateShortUrl(requestParameters: ShortURLApiV1UpdateShortUrlRequest, options?: RawAxiosRequestConfig) { + return ShortURLApiFp(this.configuration) .v1UpdateShortUrl(requestParameters.updateShortUrlIn, options) .then((request) => request(this.axios, this.basePath)); } } +export const V1GetShortUrlDetailsDomainEnum = { + UrLink: 'ur.link', + CfgMe: 'cfg.me', + InMt: 'in.mt', + WallSh: 'wall.sh', + CiaSh: 'cia.sh', +} as const; +export type V1GetShortUrlDetailsDomainEnum = + (typeof V1GetShortUrlDetailsDomainEnum)[keyof typeof V1GetShortUrlDetailsDomainEnum]; + /** - * UrlScraperApi - axios parameter creator - * @export + * URLMetadataApi - axios parameter creator */ -export const UrlScraperApiAxiosParamCreator = function (configuration?: Configuration) { +export const URLMetadataApiAxiosParamCreator = function (configuration?: Configuration) { return { /** - * Capture a screenshot of a URL - * @param {CaptureUrlScreenshotIn} captureUrlScreenshotIn - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1CaptureUrlScreenshot: async ( - captureUrlScreenshotIn: CaptureUrlScreenshotIn, - options: AxiosRequestConfig = {}, - ): Promise => { - // verify required parameter 'captureUrlScreenshotIn' is not null or undefined - assertParamExists('v1CaptureUrlScreenshot', 'captureUrlScreenshotIn', captureUrlScreenshotIn); - const localVarPath = `/v1-capture-url-screenshot`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options }; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; - localVarRequestOptions.data = serializeDataIfNeeded( - captureUrlScreenshotIn, - localVarRequestOptions, - configuration, - ); - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * Scrape metadata, OpenGraph and Html from a URL - * @param {ScrapeUrlDataIn} scrapeUrlDataIn + * Scrape URL Data - Extract metadata and Open Graph data from URL + * @param {ScrapeUrlDataIn} scrapeUrlDataIn URL and options for scraping * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1ScrapeUrlData: async ( + v1CreateScrapeUrlData: async ( scrapeUrlDataIn: ScrapeUrlDataIn, - options: AxiosRequestConfig = {}, + options: RawAxiosRequestConfig = {}, ): Promise => { // verify required parameter 'scrapeUrlDataIn' is not null or undefined - assertParamExists('v1ScrapeUrlData', 'scrapeUrlDataIn', scrapeUrlDataIn); + assertParamExists('v1CreateScrapeUrlData', 'scrapeUrlDataIn', scrapeUrlDataIn); const localVarPath = `/v1-scrape-url-data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -3193,12 +7939,12 @@ export const UrlScraperApiAxiosParamCreator = function (configuration?: Configur const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - // authentication APIKeyQueryParam required await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); + // authentication APIKeyHeader required + await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); + localVarHeaderParameter['Content-Type'] = 'application/json'; setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -3215,236 +7961,89 @@ export const UrlScraperApiAxiosParamCreator = function (configuration?: Configur }; /** - * UrlScraperApi - functional programming interface - * @export + * URLMetadataApi - functional programming interface */ -export const UrlScraperApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = UrlScraperApiAxiosParamCreator(configuration); +export const URLMetadataApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = URLMetadataApiAxiosParamCreator(configuration); return { /** - * Capture a screenshot of a URL - * @param {CaptureUrlScreenshotIn} captureUrlScreenshotIn - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async v1CaptureUrlScreenshot( - captureUrlScreenshotIn: CaptureUrlScreenshotIn, - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1CaptureUrlScreenshot(captureUrlScreenshotIn, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * Scrape metadata, OpenGraph and Html from a URL - * @param {ScrapeUrlDataIn} scrapeUrlDataIn + * Scrape URL Data - Extract metadata and Open Graph data from URL + * @param {ScrapeUrlDataIn} scrapeUrlDataIn URL and options for scraping * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async v1ScrapeUrlData( + async v1CreateScrapeUrlData( scrapeUrlDataIn: ScrapeUrlDataIn, - options?: AxiosRequestConfig, + options?: RawAxiosRequestConfig, ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1ScrapeUrlData(scrapeUrlDataIn, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateScrapeUrlData(scrapeUrlDataIn, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = + operationServerMap['URLMetadataApi.v1CreateScrapeUrlData']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => + createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration, + )(axios, localVarOperationServerBasePath || basePath); }, }; }; /** - * UrlScraperApi - factory interface - * @export + * URLMetadataApi - factory interface */ -export const UrlScraperApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = UrlScraperApiFp(configuration); +export const URLMetadataApiFactory = function ( + configuration?: Configuration, + basePath?: string, + axios?: AxiosInstance, +) { + const localVarFp = URLMetadataApiFp(configuration); return { /** - * Capture a screenshot of a URL - * @param {CaptureUrlScreenshotIn} captureUrlScreenshotIn + * Scrape URL Data - Extract metadata and Open Graph data from URL + * @param {URLMetadataApiV1CreateScrapeUrlDataRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - v1CaptureUrlScreenshot( - captureUrlScreenshotIn: CaptureUrlScreenshotIn, - options?: any, - ): AxiosPromise { + v1CreateScrapeUrlData( + requestParameters: URLMetadataApiV1CreateScrapeUrlDataRequest, + options?: RawAxiosRequestConfig, + ): AxiosPromise { return localVarFp - .v1CaptureUrlScreenshot(captureUrlScreenshotIn, options) + .v1CreateScrapeUrlData(requestParameters.scrapeUrlDataIn, options) .then((request) => request(axios, basePath)); }, - /** - * Scrape metadata, OpenGraph and Html from a URL - * @param {ScrapeUrlDataIn} scrapeUrlDataIn - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1ScrapeUrlData(scrapeUrlDataIn: ScrapeUrlDataIn, options?: any): AxiosPromise { - return localVarFp.v1ScrapeUrlData(scrapeUrlDataIn, options).then((request) => request(axios, basePath)); - }, }; }; /** - * Request parameters for v1CaptureUrlScreenshot operation in UrlScraperApi. - * @export - * @interface UrlScraperApiV1CaptureUrlScreenshotRequest - */ -export interface UrlScraperApiV1CaptureUrlScreenshotRequest { - /** - * - * @type {CaptureUrlScreenshotIn} - * @memberof UrlScraperApiV1CaptureUrlScreenshot - */ - readonly captureUrlScreenshotIn: CaptureUrlScreenshotIn; -} - -/** - * Request parameters for v1ScrapeUrlData operation in UrlScraperApi. - * @export - * @interface UrlScraperApiV1ScrapeUrlDataRequest + * Request parameters for v1CreateScrapeUrlData operation in URLMetadataApi. */ -export interface UrlScraperApiV1ScrapeUrlDataRequest { +export interface URLMetadataApiV1CreateScrapeUrlDataRequest { /** - * - * @type {ScrapeUrlDataIn} - * @memberof UrlScraperApiV1ScrapeUrlData + * URL and options for scraping */ readonly scrapeUrlDataIn: ScrapeUrlDataIn; } /** - * UrlScraperApi - * @export - * @class UrlScraperApi - * @extends {BaseAPI} + * URLMetadataApi - object-oriented interface */ -export class UrlScraperApi extends BaseAPI { +export class URLMetadataApi extends BaseAPI { /** - * Capture a screenshot of a URL - * @param {UrlScraperApiV1CaptureUrlScreenshotRequest} requestParameters Request parameters. + * Scrape URL Data - Extract metadata and Open Graph data from URL + * @param {URLMetadataApiV1CreateScrapeUrlDataRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} - * @memberof UrlScraperApi */ - public v1CaptureUrlScreenshot( - requestParameters: UrlScraperApiV1CaptureUrlScreenshotRequest, - options?: AxiosRequestConfig, + public v1CreateScrapeUrlData( + requestParameters: URLMetadataApiV1CreateScrapeUrlDataRequest, + options?: RawAxiosRequestConfig, ) { - return UrlScraperApiFp(this.configuration) - .v1CaptureUrlScreenshot(requestParameters.captureUrlScreenshotIn, options) - .then((request) => request(this.axios, this.basePath)); - } - - /** - * Scrape metadata, OpenGraph and Html from a URL - * @param {UrlScraperApiV1ScrapeUrlDataRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UrlScraperApi - */ - public v1ScrapeUrlData(requestParameters: UrlScraperApiV1ScrapeUrlDataRequest, options?: AxiosRequestConfig) { - return UrlScraperApiFp(this.configuration) - .v1ScrapeUrlData(requestParameters.scrapeUrlDataIn, options) - .then((request) => request(this.axios, this.basePath)); - } -} - -/** - * UtilsApi - axios parameter creator - * @export - */ -export const UtilsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * Get current user details with api key - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1WhoAmI: async (options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1-who-am-i`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options }; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication APIKeyHeader required - await setApiKeyToObject(localVarHeaderParameter, 'x-api-key', configuration); - - // authentication APIKeyQueryParam required - await setApiKeyToObject(localVarQueryParameter, 'x-api-key', configuration); - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers }; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - }; -}; - -/** - * UtilsApi - functional programming interface - * @export - */ -export const UtilsApiFp = function (configuration?: Configuration) { - const localVarAxiosParamCreator = UtilsApiAxiosParamCreator(configuration); - return { - /** - * Get current user details with api key - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async v1WhoAmI( - options?: AxiosRequestConfig, - ): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.v1WhoAmI(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - }; -}; - -/** - * UtilsApi - factory interface - * @export - */ -export const UtilsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = UtilsApiFp(configuration); - return { - /** - * Get current user details with api key - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - v1WhoAmI(options?: any): AxiosPromise { - return localVarFp.v1WhoAmI(options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * UtilsApi - * @export - * @class UtilsApi - * @extends {BaseAPI} - */ -export class UtilsApi extends BaseAPI { - /** - * Get current user details with api key - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UtilsApi - */ - public v1WhoAmI(options?: AxiosRequestConfig) { - return UtilsApiFp(this.configuration) - .v1WhoAmI(options) + return URLMetadataApiFp(this.configuration) + .v1CreateScrapeUrlData(requestParameters.scrapeUrlDataIn, options) .then((request) => request(this.axios, this.basePath)); } } diff --git a/src/base.ts b/src/base.ts index b836bc0..8f9e60a 100644 --- a/src/base.ts +++ b/src/base.ts @@ -1,21 +1,20 @@ /** * DEV.ME API Documentation - * DEV.ME API Documentation [Currency Conversion and Exchange Rates API](https://dev.me/products/currency) - [IP2Location, IP Country, IP Information API](https://dev.me/products/ip) - [Email Validation, Mailbox Verification](https://dev.me/products/email) - [Phone Number Validation](https://dev.me/products/phone). You can learn more at [dev.me](https://dev.me). For this example you can use api key `demo-key` to test the APIs + * **DEV.ME API Platform** - 19 powerful services across 7 categories **Validation & Verification:** [Email Validation API](https://dev.me/products/email) โ€ข [Phone Validation API](https://dev.me/products/phone) โ€ข [IP Geolocation API](https://dev.me/products/ip) **Financial & Currency:** [Currency Exchange API](https://dev.me/products/currency) โ€ข [Currency List API](https://dev.me/products/currency-list) **Domain & Security:** [Domain WHOIS API](https://dev.me/products/domain-whois) โ€ข [DNS Lookup API](https://dev.me/products/dns-lookup) โ€ข [Domain Tools API](https://dev.me/products/domain-tools) **Content & Media:** [QR Code Generator API](https://dev.me/products/qr-code-generator) โ€ข [Image Placeholders API](https://dev.me/products/image-placeholder) โ€ข [Image Optimization API](https://dev.me/products/image-optimizer) **URL & Web:** [URL Shortening API](https://dev.me/products/short-url) โ€ข [Web Scraping API](https://dev.me/products/url-scrapper) โ€ข [URL Metadata API](https://dev.me/products/url-metadata) โ€ข [One-Time URL API](https://dev.me/products/onetime-url) **Global Data:** [Country Data API](https://dev.me/products/country) โ€ข [City Data API](https://dev.me/products/city) **Management:** [API Key Management](https://dev.me/dashboard) โ€ข [API Usage Analytics](https://dev.me/dashboard) **Quick Start:** Use API key `demo-key` for testing โ€ข Visit [dev.me](https://dev.me) for complete documentation **Authentication:** Header `x-api-key: YOUR_API_KEY` or Query Parameter `?x-api-key=YOUR_API_KEY` **[Rate Limits](https://dev.me/pricing):** Free (500/mo) โ€ข Essential (15K/mo) โ€ข Standard (60K/mo) โ€ข Professional (1M/mo) โ€ข Enterprise (Unlimited) **Support:** support@dev.me โ€ข [Documentation](https://dev.me/documentation) * * The version of the OpenAPI document: 1.0.0 * Contact: support@dev.me + */ -import { Configuration } from './configuration'; +import type { Configuration } from './configuration'; // Some imports not used depending on template conditions -import globalAxios, { AxiosInstance, AxiosPromise, AxiosRequestConfig } from 'axios'; +// @ts-ignore +import type { AxiosInstance, AxiosPromise, RawAxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; export const BASE_PATH = 'https://api.dev.me'.replace(/\/+$/, ''); -/** - * - * @export - */ export const COLLECTION_FORMATS = { csv: ',', ssv: ' ', @@ -23,21 +22,11 @@ export const COLLECTION_FORMATS = { pipes: '|', }; -/** - * - * @export - * @interface RequestArgs - */ export interface RequestArgs { url: string; - options: AxiosRequestConfig; + options: RawAxiosRequestConfig; } -/** - * - * @export - * @class BaseAPI - */ export class BaseAPI { protected configuration: Configuration | undefined; @@ -48,21 +37,26 @@ export class BaseAPI { ) { if (configuration) { this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; + this.basePath = configuration.basePath ?? basePath; } } } -/** - * - * @export - * @class RequiredError - * @extends {Error} - */ export class RequiredError extends Error { - name: 'RequiredError' = 'RequiredError'; - - constructor(public field: string, msg?: string) { + constructor( + public field: string, + msg?: string, + ) { super(msg); + this.name = 'RequiredError'; } } + +interface ServerMap { + [key: string]: { + url: string; + description: string; + }[]; +} + +export const operationServerMap: ServerMap = {}; diff --git a/src/common.ts b/src/common.ts index 084b594..90d836e 100644 --- a/src/common.ts +++ b/src/common.ts @@ -1,25 +1,21 @@ /** * DEV.ME API Documentation - * DEV.ME API Documentation [Currency Conversion and Exchange Rates API](https://dev.me/products/currency) - [IP2Location, IP Country, IP Information API](https://dev.me/products/ip) - [Email Validation, Mailbox Verification](https://dev.me/products/email) - [Phone Number Validation](https://dev.me/products/phone). You can learn more at [dev.me](https://dev.me). For this example you can use api key `demo-key` to test the APIs + * **DEV.ME API Platform** - 19 powerful services across 7 categories **Validation & Verification:** [Email Validation API](https://dev.me/products/email) โ€ข [Phone Validation API](https://dev.me/products/phone) โ€ข [IP Geolocation API](https://dev.me/products/ip) **Financial & Currency:** [Currency Exchange API](https://dev.me/products/currency) โ€ข [Currency List API](https://dev.me/products/currency-list) **Domain & Security:** [Domain WHOIS API](https://dev.me/products/domain-whois) โ€ข [DNS Lookup API](https://dev.me/products/dns-lookup) โ€ข [Domain Tools API](https://dev.me/products/domain-tools) **Content & Media:** [QR Code Generator API](https://dev.me/products/qr-code-generator) โ€ข [Image Placeholders API](https://dev.me/products/image-placeholder) โ€ข [Image Optimization API](https://dev.me/products/image-optimizer) **URL & Web:** [URL Shortening API](https://dev.me/products/short-url) โ€ข [Web Scraping API](https://dev.me/products/url-scrapper) โ€ข [URL Metadata API](https://dev.me/products/url-metadata) โ€ข [One-Time URL API](https://dev.me/products/onetime-url) **Global Data:** [Country Data API](https://dev.me/products/country) โ€ข [City Data API](https://dev.me/products/city) **Management:** [API Key Management](https://dev.me/dashboard) โ€ข [API Usage Analytics](https://dev.me/dashboard) **Quick Start:** Use API key `demo-key` for testing โ€ข Visit [dev.me](https://dev.me) for complete documentation **Authentication:** Header `x-api-key: YOUR_API_KEY` or Query Parameter `?x-api-key=YOUR_API_KEY` **[Rate Limits](https://dev.me/pricing):** Free (500/mo) โ€ข Essential (15K/mo) โ€ข Standard (60K/mo) โ€ข Professional (1M/mo) โ€ข Enterprise (Unlimited) **Support:** support@dev.me โ€ข [Documentation](https://dev.me/documentation) * * The version of the OpenAPI document: 1.0.0 * Contact: support@dev.me */ -import { Configuration } from './configuration'; -import { RequestArgs, RequiredError } from './base'; -import { AxiosInstance, AxiosResponse } from 'axios'; +import type { Configuration } from './configuration'; +import type { RequestArgs } from './base'; +import { RequiredError } from './base'; +import type { AxiosInstance, AxiosResponse } from 'axios'; -/** - * - * @export - */ export const DUMMY_BASE_URL = 'https://example.com'; /** * * @throws {RequiredError} - * @export */ export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) { if (paramValue === null || paramValue === undefined) { @@ -30,10 +26,6 @@ export const assertParamExists = function (functionName: string, paramName: stri } }; -/** - * - * @export - */ export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) { if (configuration && configuration.apiKey) { const localVarApiKeyValue = @@ -44,20 +36,12 @@ export const setApiKeyToObject = async function (object: any, keyParamName: stri } }; -/** - * - * @export - */ export const setBasicAuthToObject = function (object: any, configuration?: Configuration) { if (configuration && (configuration.username || configuration.password)) { object['auth'] = { username: configuration.username, password: configuration.password }; } }; -/** - * - * @export - */ export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) { if (configuration && configuration.accessToken) { const accessToken = @@ -68,10 +52,6 @@ export const setBearerAuthToObject = async function (object: any, configuration? } }; -/** - * - * @export - */ export const setOAuthToObject = async function ( object: any, name: string, @@ -87,31 +67,31 @@ export const setOAuthToObject = async function ( } }; -/** - * - * @export - */ -export const setSearchParams = function (url: URL, ...objects: any[]) { - const searchParams = new URLSearchParams(url.search); - for (const object of objects) { - for (const key in object) { - if (Array.isArray(object[key])) { - searchParams.delete(key); - for (const item of object[key]) { - searchParams.append(key, item); - } - } else { - searchParams.set(key, object[key]); - } +function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ''): void { + if (parameter == null) return; + if (typeof parameter === 'object') { + if (Array.isArray(parameter)) { + (parameter as any[]).forEach((item) => setFlattenedQueryParams(urlSearchParams, item, key)); + } else { + Object.keys(parameter).forEach((currentKey) => + setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`), + ); + } + } else { + if (urlSearchParams.has(key)) { + urlSearchParams.append(key, parameter); + } else { + urlSearchParams.set(key, parameter); } } +} + +export const setSearchParams = function (url: URL, ...objects: any[]) { + const searchParams = new URLSearchParams(url.search); + setFlattenedQueryParams(searchParams, objects); url.search = searchParams.toString(); }; -/** - * - * @export - */ export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) { const nonString = typeof value !== 'string'; const needsSerialization = @@ -121,18 +101,10 @@ export const serializeDataIfNeeded = function (value: any, requestOptions: any, return needsSerialization ? JSON.stringify(value !== undefined ? value : {}) : value || ''; }; -/** - * - * @export - */ export const toPathString = function (url: URL) { return url.pathname + url.search + url.hash; }; -/** - * - * @export - */ export const createRequestFunction = function ( axiosArgs: RequestArgs, globalAxios: AxiosInstance, @@ -140,7 +112,10 @@ export const createRequestFunction = function ( configuration?: Configuration, ) { return >(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = { ...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url }; + const axiosRequestArgs = { + ...axiosArgs.options, + url: (axios.defaults.baseURL ? '' : (configuration?.basePath ?? basePath)) + axiosArgs.url, + }; return axios.request(axiosRequestArgs); }; }; diff --git a/src/configuration.ts b/src/configuration.ts index 7bc2355..a5839e9 100644 --- a/src/configuration.ts +++ b/src/configuration.ts @@ -1,9 +1,10 @@ /** * DEV.ME API Documentation - * DEV.ME API Documentation [Currency Conversion and Exchange Rates API](https://dev.me/products/currency) - [IP2Location, IP Country, IP Information API](https://dev.me/products/ip) - [Email Validation, Mailbox Verification](https://dev.me/products/email) - [Phone Number Validation](https://dev.me/products/phone). You can learn more at [dev.me](https://dev.me). For this example you can use api key `demo-key` to test the APIs + * **DEV.ME API Platform** - 19 powerful services across 7 categories **Validation & Verification:** [Email Validation API](https://dev.me/products/email) โ€ข [Phone Validation API](https://dev.me/products/phone) โ€ข [IP Geolocation API](https://dev.me/products/ip) **Financial & Currency:** [Currency Exchange API](https://dev.me/products/currency) โ€ข [Currency List API](https://dev.me/products/currency-list) **Domain & Security:** [Domain WHOIS API](https://dev.me/products/domain-whois) โ€ข [DNS Lookup API](https://dev.me/products/dns-lookup) โ€ข [Domain Tools API](https://dev.me/products/domain-tools) **Content & Media:** [QR Code Generator API](https://dev.me/products/qr-code-generator) โ€ข [Image Placeholders API](https://dev.me/products/image-placeholder) โ€ข [Image Optimization API](https://dev.me/products/image-optimizer) **URL & Web:** [URL Shortening API](https://dev.me/products/short-url) โ€ข [Web Scraping API](https://dev.me/products/url-scrapper) โ€ข [URL Metadata API](https://dev.me/products/url-metadata) โ€ข [One-Time URL API](https://dev.me/products/onetime-url) **Global Data:** [Country Data API](https://dev.me/products/country) โ€ข [City Data API](https://dev.me/products/city) **Management:** [API Key Management](https://dev.me/dashboard) โ€ข [API Usage Analytics](https://dev.me/dashboard) **Quick Start:** Use API key `demo-key` for testing โ€ข Visit [dev.me](https://dev.me) for complete documentation **Authentication:** Header `x-api-key: YOUR_API_KEY` or Query Parameter `?x-api-key=YOUR_API_KEY` **[Rate Limits](https://dev.me/pricing):** Free (500/mo) โ€ข Essential (15K/mo) โ€ข Standard (60K/mo) โ€ข Professional (1M/mo) โ€ข Enterprise (Unlimited) **Support:** support@dev.me โ€ข [Documentation](https://dev.me/documentation) * * The version of the OpenAPI document: 1.0.0 * Contact: support@dev.me + */ export interface ConfigurationParameters { @@ -16,6 +17,7 @@ export interface ConfigurationParameters { | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); basePath?: string; + serverIndex?: number; baseOptions?: any; formDataCtor?: new () => any; } @@ -24,28 +26,20 @@ export class Configuration { /** * parameter for apiKey security * @param name security name - * @memberof Configuration */ apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); /** * parameter for basic security - * - * @type {string} - * @memberof Configuration */ username?: string; /** * parameter for basic security - * - * @type {string} - * @memberof Configuration */ password?: string; /** * parameter for oauth2 security * @param name security name * @param scopes oauth2 scope - * @memberof Configuration */ accessToken?: | string @@ -54,16 +48,14 @@ export class Configuration { | ((name?: string, scopes?: string[]) => Promise); /** * override base path - * - * @type {string} - * @memberof Configuration */ basePath?: string; + /** + * override server index + */ + serverIndex?: number; /** * base options for axios calls - * - * @type {any} - * @memberof Configuration */ baseOptions?: any; /** @@ -81,7 +73,13 @@ export class Configuration { this.password = param.password; this.accessToken = param.accessToken; this.basePath = param.basePath; - this.baseOptions = param.baseOptions; + this.serverIndex = param.serverIndex; + this.baseOptions = { + ...param.baseOptions, + headers: { + ...param.baseOptions?.headers, + }, + }; this.formDataCtor = param.formDataCtor; } @@ -96,7 +94,7 @@ export class Configuration { * @return True if the given MIME is JSON, false otherwise. */ public isJsonMime(mime: string): boolean { - const jsonMime: RegExp = new RegExp('^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); } } diff --git a/src/index.ts b/src/index.ts index a3cd25a..d9d4dc6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,10 @@ /** * DEV.ME API Documentation - * DEV.ME API Documentation [Currency Conversion and Exchange Rates API](https://dev.me/products/currency) - [IP2Location, IP Country, IP Information API](https://dev.me/products/ip) - [Email Validation, Mailbox Verification](https://dev.me/products/email) - [Phone Number Validation](https://dev.me/products/phone). You can learn more at [dev.me](https://dev.me). For this example you can use api key `demo-key` to test the APIs + * **DEV.ME API Platform** - 19 powerful services across 7 categories **Validation & Verification:** [Email Validation API](https://dev.me/products/email) โ€ข [Phone Validation API](https://dev.me/products/phone) โ€ข [IP Geolocation API](https://dev.me/products/ip) **Financial & Currency:** [Currency Exchange API](https://dev.me/products/currency) โ€ข [Currency List API](https://dev.me/products/currency-list) **Domain & Security:** [Domain WHOIS API](https://dev.me/products/domain-whois) โ€ข [DNS Lookup API](https://dev.me/products/dns-lookup) โ€ข [Domain Tools API](https://dev.me/products/domain-tools) **Content & Media:** [QR Code Generator API](https://dev.me/products/qr-code-generator) โ€ข [Image Placeholders API](https://dev.me/products/image-placeholder) โ€ข [Image Optimization API](https://dev.me/products/image-optimizer) **URL & Web:** [URL Shortening API](https://dev.me/products/short-url) โ€ข [Web Scraping API](https://dev.me/products/url-scrapper) โ€ข [URL Metadata API](https://dev.me/products/url-metadata) โ€ข [One-Time URL API](https://dev.me/products/onetime-url) **Global Data:** [Country Data API](https://dev.me/products/country) โ€ข [City Data API](https://dev.me/products/city) **Management:** [API Key Management](https://dev.me/dashboard) โ€ข [API Usage Analytics](https://dev.me/dashboard) **Quick Start:** Use API key `demo-key` for testing โ€ข Visit [dev.me](https://dev.me) for complete documentation **Authentication:** Header `x-api-key: YOUR_API_KEY` or Query Parameter `?x-api-key=YOUR_API_KEY` **[Rate Limits](https://dev.me/pricing):** Free (500/mo) โ€ข Essential (15K/mo) โ€ข Standard (60K/mo) โ€ข Professional (1M/mo) โ€ข Enterprise (Unlimited) **Support:** support@dev.me โ€ข [Documentation](https://dev.me/documentation) * * The version of the OpenAPI document: 1.0.0 * Contact: support@dev.me + */ export * from './api'; diff --git a/yarn.lock b/yarn.lock index a87fd33..84e2808 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,274 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.27.2": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.4.tgz#96fdf1af1b8859c8474ab39c295312bfb7c24b04" + integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496" + integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.4" + "@babel/parser" "^7.28.4" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.28.4" + "@babel/types" "^7.28.4" + "@jridgewell/remapping" "^2.3.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.28.3", "@babel/generator@^7.7.2": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" + integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== + dependencies: + "@babel/parser" "^7.28.3" + "@babel/types" "^7.28.2" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" + integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.28.3" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helpers@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" + integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8" + integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== + dependencies: + "@babel/types" "^7.28.4" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" + integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/template@^7.27.2", "@babel/template@^7.3.3": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.4.tgz#8d456101b96ab175d487249f60680221692b958b" + integrity sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.3" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.4" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + debug "^4.3.1" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.3.3": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" + integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -9,15 +277,239 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" @@ -27,80 +519,184 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz#4a76c4daeee5df09f5d3940e087442fb36ce2b99" + integrity sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@pkgr/core@^0.2.7": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b" + integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" -"@types/chai@4.3.4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== +"@types/babel__generator@*": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== + dependencies: + "@babel/types" "^7.0.0" -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" -"@types/mocha@10.0.1": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" - integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" + integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== + dependencies: + "@babel/types" "^7.28.2" -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" -acorn@^8.4.1: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.14": + version "29.5.14" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" + integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/node@*": + version "24.3.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.3.1.tgz#b0a3fb2afed0ef98e8d7f06d46ef6349047709f3" + integrity sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g== + dependencies: + undici-types "~7.10.0" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +acorn-walk@^8.1.1: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + acorn "^8.11.0" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +acorn@^8.11.0, acorn@^8.4.1: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" +ansi-escapes@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" + integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== + dependencies: + environment "^1.0.0" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + version "6.2.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.0.tgz#2f302e7550431b1b7762705fffb52cf1ffa20447" + integrity sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -109,15 +705,20 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== +ansi-styles@^6.0.0, ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -127,119 +728,168 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -axios@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.6.tgz#1ace9a9fb994314b5f6327960918406fa92c6646" - integrity sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg== +axios@1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.11.0.tgz#c2ec219e35e414c025b2095e8b8280278478fdb6" + integrity sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA== dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" + follow-redirects "^1.15.6" + form-data "^4.0.4" proxy-from-env "^1.1.0" +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6" + integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - balanced-match "^1.0.0" + fill-range "^7.1.1" -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +browserslist@^4.24.0: + version "4.25.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.4.tgz#ebdd0e1d1cf3911834bab3a6cd7b917d9babf5af" + integrity sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg== dependencies: - fill-range "^7.0.1" + caniuse-lite "^1.0.30001737" + electron-to-chromium "^1.5.211" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +bs-logger@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" -chai@4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" + node-int64 "^0.4.0" -chalk@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^4.1.0: +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001737: + version "1.0.30001741" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz#67fb92953edc536442f3c9da74320774aa523143" + integrity sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw== + +chalk@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -247,63 +897,60 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -check-error@^1.0.2: +chalk@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.0.tgz#a1a8d294ea3526dbb77660f12649a08490e33ab8" + integrity sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ== + +char-regex@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" +cjs-module-lexer@^1.0.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" + integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + restore-cursor "^5.0.0" -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== dependencies: slice-ansi "^5.0.0" - string-width "^5.0.0" + string-width "^7.0.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -316,10 +963,10 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combined-stream@^1.0.8: version "1.0.8" @@ -328,142 +975,224 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.0.tgz#f244fc74a92343514e56229f16ef5c5e22ced5e9" + integrity sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.0, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" which "^2.0.1" -debug@4.3.4, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== dependencies: - ms "2.1.2" + ms "^2.1.3" -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== +dedent@^1.0.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.0.tgz#c1f9445335f0175a96587be245a282ff451446ca" + integrity sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ== -deep-eql@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.2.tgz#270ceb902f87724077e6f6449aed81463f42fc1c" - integrity sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w== - dependencies: - type-detect "^4.0.0" +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +electron-to-chromium@^1.5.211: + version "1.5.214" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.214.tgz#f7bbdc0796124292d4b8a34a49e968c5e6430763" + integrity sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q== + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^10.3.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.5.0.tgz#be23498b9e39db476226d8e81e467f39aca26b78" + integrity sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: - once "^1.4.0" + is-arrayish "^0.2.1" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" is-stream "^2.0.0" merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: - to-regex-range "^5.0.1" + bser "2.1.1" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" + to-regex-range "^5.0.1" -find-up@^4.1.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -471,115 +1200,181 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +follow-redirects@^1.15.6: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +form-data@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" mime-types "^2.1.12" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= +get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.1.tgz#b85889d779881a651dfde71d3796ddbe9549012b" + integrity sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ== -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== +get-intrinsic@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: - pump "^3.0.0" + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" -get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +handlebars@^4.7.8: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" -husky@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -ignore@^5.1.4: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +husky@9.1.7: + version "9.1.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" + integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== + +ignore@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" + integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== + +import-local@^3.0.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -589,17 +1384,17 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -611,87 +1406,519 @@ is-fullwidth-code-point@^4.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== +is-fullwidth-code-point@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz#046b2a6d4f6b156b2233d3207d4b5a9783999b98" + integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== dependencies: - is-extglob "^2.1.1" + get-east-asian-width "^1.3.1" + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: - argparse "^2.0.1" + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" -lilconfig@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lint-staged@13.2.2: - version "13.2.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca" - integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA== - dependencies: - chalk "5.2.0" - cli-truncate "^3.1.0" - commander "^10.0.0" - debug "^4.3.4" - execa "^7.0.0" - lilconfig "2.1.0" - listr2 "^5.0.7" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.3" +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93" + integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lilconfig@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lint-staged@16.1.6: + version "16.1.6" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-16.1.6.tgz#b0830df339a71f4207979a47c7be8ab0f38543ad" + integrity sha512-U4kuulU3CKIytlkLlaHcGgKscNfJPNTiDF2avIUGFCv7K95/DCYQ7Ra62ydeRWmgQGg9zJYw2dzdbztwJlqrow== + dependencies: + chalk "^5.6.0" + commander "^14.0.0" + debug "^4.4.1" + lilconfig "^3.1.3" + listr2 "^9.0.3" + micromatch "^4.0.8" + nano-spawn "^1.0.2" pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.2.2" + string-argv "^0.3.2" + yaml "^2.8.1" -listr2@^5.0.7: - version "5.0.8" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" - integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.8.0" - through "^2.3.8" - wrap-ansi "^7.0.0" +listr2@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-9.0.3.tgz#5181284019e1d577dc2d705ca6d3a148cf15adf3" + integrity sha512-0aeh5HHHgmq1KRdMMDHfhMWQmIT/m7nRDTlxlFqni2Sp0had9baqsjJRvDGdlvgd6NmPE0nPloOipiQJGFtTHQ== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" locate-path@^5.0.0: version "5.0.0" @@ -700,54 +1927,64 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== +log-update@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" + yallist "^3.0.2" -loupe@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.1.tgz#a2e1192c9f452e4e85089766da10ac8288383947" - integrity sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA== +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: - get-func-name "^2.0.0" + semver "^7.5.3" -make-error@^1.1.1: +make-error@^1.1.1, make-error@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== +micromatch@^4.0.4, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0: @@ -767,127 +2004,90 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -minimatch@5.0.1: +mimic-function@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== -minimatch@^3.0.4: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -mocha@10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -mri@^1.1.5: +minimist@^1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mri@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: +ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multimatch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" - integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" +nano-spawn@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/nano-spawn/-/nano-spawn-1.0.3.tgz#ef8d89a275eebc8657e67b95fc312a6527a05b8d" + integrity sha512-jtpsQDetTnvS2Ts1fiRdci5rx0VYws5jGyC+4IYOTnIQ/wwdf6JdomlHBwqC3bJYOvaKu0C2GSZ1A60anrYpaA== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -normalize-path@^3.0.0, normalize-path@~3.0.0: +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.0: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -object-inspect@^1.12.3: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0: +onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== dependencies: - mimic-fn "^4.0.0" + mimic-function "^5.0.0" p-limit@^2.2.0: version "2.3.0" @@ -896,7 +2096,7 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -910,25 +2110,21 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -937,113 +2133,153 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -pathval@^1.1.1: +picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + pidtree@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -prettier@2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pretty-quick@3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" - integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== - dependencies: - chalk "^3.0.0" - execa "^4.0.0" - find-up "^4.1.0" - ignore "^5.1.4" - mri "^1.1.5" - multimatch "^4.0.0" +pirates@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +prettier@3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" + integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-quick@4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.2.2.tgz#0fc31da666f182fe14e119905fc9829b5b85a234" + integrity sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w== + dependencies: + "@pkgr/core" "^0.2.7" + ignore "^7.0.5" + mri "^1.2.0" + picocolors "^1.1.1" + picomatch "^4.0.2" + tinyexec "^0.3.2" + tslib "^2.8.1" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" +pure-rand@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" + integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" + resolve-from "^5.0.0" -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -rxjs@^7.8.0: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" +resolve.exports@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" + integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== -safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +resolve@^1.20.0: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== dependencies: - randombytes "^2.1.0" + onetime "^7.0.0" + signal-exit "^4.1.0" + +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.5.3, semver@^7.5.4, semver@^7.7.2: + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== shebang-command@^2.0.0: version "2.0.0" @@ -1057,77 +2293,25 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -should-equal@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" - integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== - dependencies: - should-type "^1.4.0" - -should-format@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" - integrity sha1-m/yPdPo5IFxT04w01xcwPidxJPE= - dependencies: - should-type "^1.3.0" - should-type-adaptors "^1.0.1" - -should-type-adaptors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" - integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== - dependencies: - should-type "^1.3.0" - should-util "^1.0.0" - -should-type@^1.3.0, should-type@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" - integrity sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM= - -should-util@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" - integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== - -should@13.2.3: - version "13.2.3" - resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" - integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== - dependencies: - should-equal "^2.0.0" - should-format "^3.0.3" - should-type "^1.4.0" - should-type-adaptors "^1.0.1" - should-util "^1.0.0" - -signal-exit@^3.0.2: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== - -signal-exit@^3.0.7: +signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^5.0.0: version "5.0.0" @@ -1137,12 +2321,53 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +slice-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +string-argv@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -1151,14 +2376,14 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.0.tgz#5ab00980cfb29f43e736b113a120a73a0fb569d3" - integrity sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ== +string-width@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" @@ -1167,46 +2392,65 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== +strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1: +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: - has-flag "^4.0.0" + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +tinyexec@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" + integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== to-regex-range@^5.0.1: version "5.0.1" @@ -1215,10 +2459,25 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -ts-node@10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +ts-jest@^29.2.5: + version "29.4.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.1.tgz#42d33beb74657751d315efb9a871fe99e3b9b519" + integrity sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw== + dependencies: + bs-logger "^0.2.6" + fast-json-stable-stringify "^2.1.0" + handlebars "^4.7.8" + json5 "^2.2.3" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.7.2" + type-fest "^4.41.0" + yargs-parser "^21.1.1" + +ts-node@10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -1234,12 +2493,12 @@ ts-node@10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -1249,16 +2508,55 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typescript@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" - integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== +type-fest@^4.41.0: + version "4.41.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" + integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== + +typescript@5.9.2: + version "5.9.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6" + integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A== + +uglify-js@^3.1.4: + version "3.19.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" + integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== + +undici-types@~7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350" + integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag== + +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +v8-to-istanbul@^9.0.1: + version "9.3.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -1266,19 +2564,10 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wrap-ansi@^7.0.0: version "7.0.0" @@ -1289,53 +2578,60 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yaml@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" - integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yaml@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" + integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.1.1" yn@3.1.1: version "3.1.1"