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 5d07ff7..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.12.1 + - name: Checkout + uses: actions/checkout@v5 with: - workflow_id: ci.yml - access_token: ${{ github.token }} + fetch-depth: 0 + persist-credentials: false - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 - with: - fetch-depth: 30 - - - uses: FranzDiebold/github-env-vars-action@v2 - name: Setup Node.js 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 2559ead..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.12.1 - with: - workflow_id: release.yml - access_token: ${{ github.token }} - - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 + - 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@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 a37b77d..e85297d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "name": "@devmehq/sdk-js", - "version": "1.1.2", - "private": false, + "version": "1.1.4", "description": "DEV.ME SDK for JavaScript & TypeScript for Server & Browser, Compatible with Node.js & React & Vue.js & Angular", "keywords": [ "Email SMTP Verification", @@ -29,16 +28,62 @@ }, "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", @@ -48,16 +93,16 @@ "axios": "1.11.0" }, "devDependencies": { - "@types/chai": "5.2.2", - "@types/mocha": "10.0.10", - "chai": "6.0.1", + "@types/jest": "^30.0.0", "husky": "9.1.7", + "jest": "^30.1.3", "lint-staged": "16.1.6", - "mocha": "11.7.2", + "ms": "^2.1.3", "prettier": "3.6.2", "pretty-quick": "4.2.2", - "should": "13.2.3", + "ts-jest": "^29.4.1", "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 ead60b1..51ea428 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,274 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0", "@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.23.9", "@babel/core@^7.27.4": + 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.27.5", "@babel/generator@^7.28.3": + 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.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.27.1": + 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.27.1": + 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": + 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.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4": + 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,6 +277,28 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@emnapi/core@^1.4.3": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.5.0.tgz#85cd84537ec989cebb2343606a1ee663ce4edaf0" + integrity sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg== + dependencies: + "@emnapi/wasi-threads" "1.1.0" + tslib "^2.4.0" + +"@emnapi/runtime@^1.4.3": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.5.0.tgz#9aebfcb9b17195dce3ab53c86787a6b7d058db73" + integrity sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" + integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== + dependencies: + tslib "^2.4.0" + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -21,15 +311,267 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@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== - -"@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== +"@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@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.1.2.tgz#3d32b966454d57874520b27647129228a654c995" + integrity sha512-BGMAxj8VRmoD0MoA/jo9alMXSRoqW8KPeqOfEo1ncxnRLatTBCpRoOwlwlEMdudp68Q6WSGwYrrLtTGOh8fLzw== + dependencies: + "@jest/types" "30.0.5" + "@types/node" "*" + chalk "^4.1.2" + jest-message-util "30.1.0" + jest-util "30.0.5" + slash "^3.0.0" + +"@jest/core@30.1.3": + version "30.1.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.1.3.tgz#c097dcead36ac6ccee2825a35078163465f8b79d" + integrity sha512-LIQz7NEDDO1+eyOA2ZmkiAyYvZuo6s1UxD/e2IHldR6D7UYogVq3arTmli07MkENLq6/3JEQjp0mA8rrHHJ8KQ== + dependencies: + "@jest/console" "30.1.2" + "@jest/pattern" "30.0.1" + "@jest/reporters" "30.1.3" + "@jest/test-result" "30.1.3" + "@jest/transform" "30.1.2" + "@jest/types" "30.0.5" + "@types/node" "*" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-changed-files "30.0.5" + jest-config "30.1.3" + jest-haste-map "30.1.0" + jest-message-util "30.1.0" + jest-regex-util "30.0.1" + jest-resolve "30.1.3" + jest-resolve-dependencies "30.1.3" + jest-runner "30.1.3" + jest-runtime "30.1.3" + jest-snapshot "30.1.2" + jest-util "30.0.5" + jest-validate "30.1.0" + jest-watcher "30.1.3" + micromatch "^4.0.8" + pretty-format "30.0.5" + slash "^3.0.0" + +"@jest/diff-sequences@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz#0ededeae4d071f5c8ffe3678d15f3a1be09156be" + integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== + +"@jest/environment@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.1.2.tgz#f1bd73a7571f96104a3ff2007747c2ce12b5c038" + integrity sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w== + dependencies: + "@jest/fake-timers" "30.1.2" + "@jest/types" "30.0.5" + "@types/node" "*" + jest-mock "30.0.5" + +"@jest/expect-utils@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.1.2.tgz#88ea18040f707c9fadb6fd9e77568cae5266cee8" + integrity sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A== + dependencies: + "@jest/get-type" "30.1.0" + +"@jest/expect@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.1.2.tgz#35283e8bd083aab6cc26d4d30aeeacb5e7190a0f" + integrity sha512-tyaIExOwQRCxPCGNC05lIjWJztDwk2gPDNSDGg1zitXJJ8dC3++G/CRjE5mb2wQsf89+lsgAgqxxNpDLiCViTA== + dependencies: + expect "30.1.2" + jest-snapshot "30.1.2" + +"@jest/fake-timers@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.1.2.tgz#cb0df6995034d50c6973ffd3ffdaa1353a816c41" + integrity sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA== + dependencies: + "@jest/types" "30.0.5" + "@sinonjs/fake-timers" "^13.0.0" + "@types/node" "*" + jest-message-util "30.1.0" + jest-mock "30.0.5" + jest-util "30.0.5" + +"@jest/get-type@30.1.0": + version "30.1.0" + resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.1.0.tgz#4fcb4dc2ebcf0811be1c04fd1cb79c2dba431cbc" + integrity sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== + +"@jest/globals@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.1.2.tgz#821cad7d8ef3dc145979088bb0bfbc1f81a5d8ce" + integrity sha512-teNTPZ8yZe3ahbYnvnVRDeOjr+3pu2uiAtNtrEsiMjVPPj+cXd5E/fr8BL7v/T7F31vYdEHrI5cC/2OoO/vM9A== + dependencies: + "@jest/environment" "30.1.2" + "@jest/expect" "30.1.2" + "@jest/types" "30.0.5" + jest-mock "30.0.5" + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.1.tgz#d5304147f49a052900b4b853dedb111d080e199f" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== + dependencies: + "@types/node" "*" + jest-regex-util "30.0.1" + +"@jest/reporters@30.1.3": + version "30.1.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.1.3.tgz#015b5838b3edf60f6e995186cd805b7fcbac86b3" + integrity sha512-VWEQmJWfXMOrzdFEOyGjUEOuVXllgZsoPtEHZzfdNz18RmzJ5nlR6kp8hDdY8dDS1yGOXAY7DHT+AOHIPSBV0w== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "30.1.2" + "@jest/test-result" "30.1.3" + "@jest/transform" "30.1.2" + "@jest/types" "30.0.5" + "@jridgewell/trace-mapping" "^0.3.25" + "@types/node" "*" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^5.0.0" + istanbul-reports "^3.1.3" + jest-message-util "30.1.0" + jest-util "30.0.5" + jest-worker "30.1.0" + slash "^3.0.0" + string-length "^4.0.2" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.5.tgz#7bdf69fc5a368a5abdb49fd91036c55225846473" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== + dependencies: + "@sinclair/typebox" "^0.34.0" + +"@jest/snapshot-utils@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.1.2.tgz#320500eba29a25c33e9ec968154e521873624309" + integrity sha512-vHoMTpimcPSR7OxS2S0V1Cpg8eKDRxucHjoWl5u4RQcnxqQrV3avETiFpl8etn4dqxEGarBeHbIBety/f8mLXw== + dependencies: + "@jest/types" "30.0.5" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" + +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.1.tgz#305ebec50468f13e658b3d5c26f85107a5620aaa" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" + +"@jest/test-result@30.1.3": + version "30.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.1.3.tgz#69fe7ff93da8c0c47bae245727e0ce23571d058e" + integrity sha512-P9IV8T24D43cNRANPPokn7tZh0FAFnYS2HIfi5vK18CjRkTDR9Y3e1BoEcAJnl4ghZZF4Ecda4M/k41QkvurEQ== + dependencies: + "@jest/console" "30.1.2" + "@jest/types" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" + +"@jest/test-sequencer@30.1.3": + version "30.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.1.3.tgz#df64038d46150e704ed07c5fee4626609f518089" + integrity sha512-82J+hzC0qeQIiiZDThh+YUadvshdBswi5nuyXlEmXzrhw5ZQSRHeQ5LpVMD/xc8B3wPePvs6VMzHnntxL+4E3w== + dependencies: + "@jest/test-result" "30.1.3" + graceful-fs "^4.2.11" + jest-haste-map "30.1.0" + slash "^3.0.0" + +"@jest/transform@30.1.2": + version "30.1.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.1.2.tgz#42624a9c89f2427cd413b989aaf9f6aeb58cae56" + integrity sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/types" "30.0.5" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.0" + chalk "^4.1.2" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.11" + jest-haste-map "30.1.0" + jest-regex-util "30.0.1" + jest-util "30.0.5" + micromatch "^4.0.8" + pirates "^4.0.7" + slash "^3.0.0" + write-file-atomic "^5.0.1" + +"@jest/types@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.0.5.tgz#29a33a4c036e3904f1cfd94f6fe77f89d2e1cc05" + integrity sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ== + dependencies: + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" + "@types/node" "*" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" + +"@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" @@ -39,6 +581,23 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@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" + +"@napi-rs/wasm-runtime@^0.2.11": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz#3e78a8b96e6c33a6c517e1894efbd5385a7cb6f2" + integrity sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ== + dependencies: + "@emnapi/core" "^1.4.3" + "@emnapi/runtime" "^1.4.3" + "@tybys/wasm-util" "^0.10.0" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -49,42 +608,242 @@ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.7.tgz#eb5014dfd0b03e7f3ba2eeeff506eed89b028058" integrity sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg== +"@pkgr/core@^0.2.9": + 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.34.0": + version "0.34.41" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.41.tgz#aa51a6c1946df2c5a11494a2cdb9318e026db16c" + integrity sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g== + +"@sinonjs/commons@^3.0.1": + 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@^13.0.0": + version "13.0.5" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz#36b9dbc21ad5546486ea9173d6bea063eb1717d5" + integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== + dependencies: + "@sinonjs/commons" "^3.0.1" + "@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/chai@5.2.2": - version "5.2.2" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.2.tgz#6f14cea18180ffc4416bc0fd12be05fdd73bdd6b" - integrity sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg== +"@tybys/wasm-util@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.0.tgz#2fd3cd754b94b378734ce17058d0507c45c88369" + integrity sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ== dependencies: - "@types/deep-eql" "*" + tslib "^2.4.0" -"@types/deep-eql@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" - integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== +"@types/babel__core@^7.20.5": + 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/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/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/babel__traverse@*": + 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" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1", "@types/istanbul-lib-coverage@^2.0.6": + 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== + +"@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.4": + 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@^30.0.0": + version "30.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-30.0.0.tgz#5e85ae568006712e4ad66f25433e9bdac8801f1d" + integrity sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA== + dependencies: + expect "^30.0.0" + pretty-format "^30.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.3": + 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.33": + 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" "*" + +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@unrs/resolver-binding-android-arm-eabi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz#9f5b04503088e6a354295e8ea8fe3cb99e43af81" + integrity sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw== + +"@unrs/resolver-binding-android-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz#7414885431bd7178b989aedc4d25cccb3865bc9f" + integrity sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g== + +"@unrs/resolver-binding-darwin-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz#b4a8556f42171fb9c9f7bac8235045e82aa0cbdf" + integrity sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g== + +"@unrs/resolver-binding-darwin-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz#fd4d81257b13f4d1a083890a6a17c00de571f0dc" + integrity sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ== + +"@unrs/resolver-binding-freebsd-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz#d2513084d0f37c407757e22f32bd924a78cfd99b" + integrity sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw== -"@types/mocha@10.0.10": - version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" - integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== +"@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz#844d2605d057488d77fab09705f2866b86164e0a" + integrity sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw== + +"@unrs/resolver-binding-linux-arm-musleabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz#204892995cefb6bd1d017d52d097193bc61ddad3" + integrity sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw== + +"@unrs/resolver-binding-linux-arm64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz#023eb0c3aac46066a10be7a3f362e7b34f3bdf9d" + integrity sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ== + +"@unrs/resolver-binding-linux-arm64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz#9e6f9abb06424e3140a60ac996139786f5d99be0" + integrity sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w== + +"@unrs/resolver-binding-linux-ppc64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz#b111417f17c9d1b02efbec8e08398f0c5527bb44" + integrity sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA== + +"@unrs/resolver-binding-linux-riscv64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz#92ffbf02748af3e99873945c9a8a5ead01d508a9" + integrity sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ== + +"@unrs/resolver-binding-linux-riscv64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz#0bec6f1258fc390e6b305e9ff44256cb207de165" + integrity sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew== + +"@unrs/resolver-binding-linux-s390x-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz#577843a084c5952f5906770633ccfb89dac9bc94" + integrity sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg== + +"@unrs/resolver-binding-linux-x64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz#36fb318eebdd690f6da32ac5e0499a76fa881935" + integrity sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w== + +"@unrs/resolver-binding-linux-x64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz#bfb9af75f783f98f6a22c4244214efe4df1853d6" + integrity sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA== + +"@unrs/resolver-binding-wasm32-wasi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz#752c359dd875684b27429500d88226d7cc72f71d" + integrity sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ== + dependencies: + "@napi-rs/wasm-runtime" "^0.2.11" + +"@unrs/resolver-binding-win32-arm64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz#ce5735e600e4c2fbb409cd051b3b7da4a399af35" + integrity sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw== + +"@unrs/resolver-binding-win32-ia32-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz#72fc57bc7c64ec5c3de0d64ee0d1810317bc60a6" + integrity sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ== + +"@unrs/resolver-binding-win32-x64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz#538b1e103bf8d9864e7b85cc96fa8d6fb6c40777" + integrity sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g== acorn-walk@^8.1.1: version "8.2.0" @@ -96,6 +855,13 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +ansi-escapes@^4.3.2: + 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" @@ -109,9 +875,9 @@ ansi-regex@^5.0.1: 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" @@ -120,30 +886,40 @@ 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.2.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== -ansi-styles@^6.1.0, ansi-styles@^6.2.1: +ansi-styles@^6.0.0, ansi-styles@^6.1.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.1.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" + arg@^4.1.0: version "4.1.3" 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== +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.11.0: version "1.11.0" @@ -154,11 +930,81 @@ axios@1.11.0: form-data "^4.0.4" proxy-from-env "^1.1.0" +babel-jest@30.1.2: + version "30.1.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.1.2.tgz#decd53b3a0cafca49443f93fb7a2c0fba55510da" + integrity sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g== + dependencies: + "@jest/transform" "30.1.2" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.0" + babel-preset-jest "30.0.1" + chalk "^4.1.2" + graceful-fs "^4.2.11" + slash "^3.0.0" + +babel-plugin-istanbul@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.0.tgz#629a178f63b83dc9ecee46fd20266283b1f11280" + integrity sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz#f271b2066d2c1fb26a863adb8e13f85b06247125" + integrity sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.3" + "@types/babel__core" "^7.20.5" + +babel-preset-current-node-syntax@^1.1.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@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz#7d28db9531bce264e846c8483d54236244b8ae88" + integrity sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw== + dependencies: + babel-plugin-jest-hoist "30.0.1" + babel-preset-current-node-syntax "^1.1.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== +brace-expansion@^1.1.7: + 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" @@ -173,10 +1019,34 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -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== +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: + caniuse-lite "^1.0.30001737" + electron-to-chromium "^1.5.211" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" + +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" + +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: + node-int64 "^0.4.0" + +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== call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" @@ -186,17 +1056,27 @@ call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: es-errors "^1.3.0" function-bind "^1.1.2" -camelcase@^6.0.0: +callsites@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +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.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -chai@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-6.0.1.tgz#88c2b4682fb56050647e222d2cf9d6772f2607b3" - integrity sha512-/JOoU2//6p5vCXh00FpNgtlw0LjvhGttaWc+y7wpW9yjBm3ys0dI8tSKZxIOgNruz5J0RleccatSIC3uxEZP0g== +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.1.0: +chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -209,12 +1089,20 @@ chalk@^5.6.0: resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.0.tgz#a1a8d294ea3526dbb77660f12649a08490e33ab8" integrity sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ== -chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +ci-info@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.0.tgz#c39b1013f8fdbd28cd78e62318357d02da160cd7" + integrity sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ== + +cjs-module-lexer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz#586e87d4341cb2661850ece5190232ccdebcff8b" + integrity sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA== cli-cursor@^5.0.0: version "5.0.0" @@ -240,6 +1128,16 @@ cliui@^8.0.1: 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.2: + 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" @@ -269,12 +1167,22 @@ commander@^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-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.0, 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== @@ -283,40 +1191,38 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" -debug@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== - dependencies: - ms "2.1.2" - -debug@^4.4.1: +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.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.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.0.tgz#c1f9445335f0175a96587be245a282ff451446ca" + integrity sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ== + +deepmerge@^4.3.1: + 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== + +detect-newline@^3.1.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@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" - integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== - dunder-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" @@ -331,6 +1237,16 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +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.3.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" @@ -351,6 +1267,13 @@ environment@^1.0.0: resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== +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: + is-arrayish "^0.2.1" + 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" @@ -378,21 +1301,70 @@ es-set-tostringtag@^2.1.0: has-tostringtag "^1.0.2" hasown "^2.0.2" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +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@^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== +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.1.1: + 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.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-x@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== + +expect@30.1.2, expect@^30.0.0: + version "30.1.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.1.2.tgz#094909c2443f76b9e208fafac4a315aaaf924580" + integrity sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg== + dependencies: + "@jest/expect-utils" "30.1.2" + "@jest/get-type" "30.1.0" + jest-matcher-utils "30.1.2" + jest-message-util "30.1.0" + jest-mock "30.0.5" + jest-util "30.0.5" + +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== + +fb-watchman@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -400,19 +1372,14 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.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== +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== dependencies: - locate-path "^6.0.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.6: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" @@ -437,11 +1404,26 @@ form-data@^4.0.4: 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 sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.3: + 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== +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" @@ -452,6 +1434,11 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== +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-intrinsic@^1.2.6: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" @@ -468,6 +1455,11 @@ get-intrinsic@^1.2.6: 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" @@ -476,7 +1468,12 @@ get-proto@^1.0.1: dunder-proto "^1.0.1" es-object-atoms "^1.0.0" -glob@^10.4.5: +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@^10.3.10: version "10.4.5" resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== @@ -488,11 +1485,40 @@ glob@^10.4.5: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" +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.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.11: + 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" @@ -517,10 +1543,15 @@ hasown@^2.0.2: dependencies: function-bind "^1.1.2" -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== +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== + +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== husky@9.1.7: version "9.1.7" @@ -532,6 +1563,37 @@ ignore@^7.0.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== +import-local@^3.2.0: + 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 sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +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-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -543,31 +1605,73 @@ is-fullwidth-code-point@^4.0.0: integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== is-fullwidth-code-point@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" - integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + 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: - get-east-asian-width "^1.0.0" + get-east-asian-width "^1.3.1" + +is-generator-fn@^2.1.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-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== +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== 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== + +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@^6.0.0, istanbul-lib-instrument@^6.0.2: + 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: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== + dependencies: + "@jridgewell/trace-mapping" "^0.3.23" + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + +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" jackspeak@^3.1.2: version "3.4.3" @@ -578,18 +1682,405 @@ jackspeak@^3.1.2: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -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== +jest-changed-files@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.0.5.tgz#ec448f83bd9caa894dd7da8707f207c356a19924" + integrity sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A== + dependencies: + execa "^5.1.1" + jest-util "30.0.5" + p-limit "^3.1.0" + +jest-circus@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.1.3.tgz#7ee0089f22b2b3e72ab04aee8e037c364a6d73d1" + integrity sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA== + dependencies: + "@jest/environment" "30.1.2" + "@jest/expect" "30.1.2" + "@jest/test-result" "30.1.3" + "@jest/types" "30.0.5" + "@types/node" "*" + chalk "^4.1.2" + co "^4.6.0" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.1.0" + jest-matcher-utils "30.1.2" + jest-message-util "30.1.0" + jest-runtime "30.1.3" + jest-snapshot "30.1.2" + jest-util "30.0.5" + p-limit "^3.1.0" + pretty-format "30.0.5" + pure-rand "^7.0.0" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-cli@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.1.3.tgz#3fb8dea88886379eb95a08f954bfc2ed17a9be4f" + integrity sha512-G8E2Ol3OKch1DEeIBl41NP7OiC6LBhfg25Btv+idcusmoUSpqUkbrneMqbW9lVpI/rCKb/uETidb7DNteheuAQ== + dependencies: + "@jest/core" "30.1.3" + "@jest/test-result" "30.1.3" + "@jest/types" "30.0.5" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.1.3" + jest-util "30.0.5" + jest-validate "30.1.0" + yargs "^17.7.2" + +jest-config@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.1.3.tgz#10bcf4cd979119bfac6a130fb79d837057ce33d4" + integrity sha512-M/f7gqdQEPgZNA181Myz+GXCe8jXcJsGjCMXUzRj22FIXsZOyHNte84e0exntOvdPaeh9tA0w+B8qlP2fAezfw== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.1.0" + "@jest/pattern" "30.0.1" + "@jest/test-sequencer" "30.1.3" + "@jest/types" "30.0.5" + babel-jest "30.1.2" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-circus "30.1.3" + jest-docblock "30.0.1" + jest-environment-node "30.1.2" + jest-regex-util "30.0.1" + jest-resolve "30.1.3" + jest-runner "30.1.3" + jest-util "30.0.5" + jest-validate "30.1.0" + micromatch "^4.0.8" + parse-json "^5.2.0" + pretty-format "30.0.5" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@30.1.2: + version "30.1.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.1.2.tgz#8ff4217e5b63fef49a5b37462999d8f5299a4eb4" + integrity sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ== + dependencies: + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + pretty-format "30.0.5" + +jest-docblock@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.0.1.tgz#545ff59f2fa88996bd470dba7d3798a8421180b1" + integrity sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA== + dependencies: + detect-newline "^3.1.0" + +jest-each@30.1.0: + version "30.1.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.1.0.tgz#228756d5ea9e4dcb462fc2e90a44ec27dd482d23" + integrity sha512-A+9FKzxPluqogNahpCv04UJvcZ9B3HamqpDNWNKDjtxVRYB8xbZLFuCr8JAJFpNp83CA0anGQFlpQna9Me+/tQ== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.0.5" + chalk "^4.1.2" + jest-util "30.0.5" + pretty-format "30.0.5" + +jest-environment-node@30.1.2: + version "30.1.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.1.2.tgz#ae2f20442f8abc3c6b20120dc789fa38faff568f" + integrity sha512-w8qBiXtqGWJ9xpJIA98M0EIoq079GOQRQUyse5qg1plShUCQ0Ek1VTTcczqKrn3f24TFAgFtT+4q3aOXvjbsuA== + dependencies: + "@jest/environment" "30.1.2" + "@jest/fake-timers" "30.1.2" + "@jest/types" "30.0.5" + "@types/node" "*" + jest-mock "30.0.5" + jest-util "30.0.5" + jest-validate "30.1.0" + +jest-haste-map@30.1.0: + version "30.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.1.0.tgz#e54d84e07fac15ea3a98903b735048e36d7d2ed3" + integrity sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg== + dependencies: + "@jest/types" "30.0.5" + "@types/node" "*" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.0.1" + jest-util "30.0.5" + jest-worker "30.1.0" + micromatch "^4.0.8" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.3" + +jest-leak-detector@30.1.0: + version "30.1.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.1.0.tgz#8b86e7c5f1e3e4f2a32d930ec769103ad0985874" + integrity sha512-AoFvJzwxK+4KohH60vRuHaqXfWmeBATFZpzpmzNmYTtmRMiyGPVhkXpBqxUQunw+dQB48bDf4NpUs6ivVbRv1g== + dependencies: + "@jest/get-type" "30.1.0" + pretty-format "30.0.5" + +jest-matcher-utils@30.1.2: + version "30.1.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz#3f1b63949f740025aff740c6c6a1b653ae370fbb" + integrity sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ== + dependencies: + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + jest-diff "30.1.2" + pretty-format "30.0.5" + +jest-message-util@30.1.0: + version "30.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.1.0.tgz#653a9bb1a33306eddf13455ce0666ba621b767c4" + integrity sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.0.5" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.0.5" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-mock@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.5.tgz#ef437e89212560dd395198115550085038570bdd" + integrity sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ== + dependencies: + "@jest/types" "30.0.5" + "@types/node" "*" + jest-util "30.0.5" + +jest-pnp-resolver@^1.2.3: + 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@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-resolve-dependencies@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.1.3.tgz#04bbe95c9f4af51046dde940698d7121b49d0167" + integrity sha512-DNfq3WGmuRyHRHfEet+Zm3QOmVFtIarUOQHHryKPc0YL9ROfgWZxl4+aZq/VAzok2SS3gZdniP+dO4zgo59hBg== + dependencies: + jest-regex-util "30.0.1" + jest-snapshot "30.1.2" + +jest-resolve@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.1.3.tgz#cc1019b28374ca7bcf7e58d57a4300449f390ec5" + integrity sha512-DI4PtTqzw9GwELFS41sdMK32Ajp3XZQ8iygeDMWkxlRhm7uUTOFSZFVZABFuxr0jvspn8MAYy54NxZCsuCTSOw== + dependencies: + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.1.0" + jest-pnp-resolver "^1.2.3" + jest-util "30.0.5" + jest-validate "30.1.0" + slash "^3.0.0" + unrs-resolver "^1.7.11" + +jest-runner@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.1.3.tgz#3253a0faab8f404aa9e0010911e8acbaf220865b" + integrity sha512-dd1ORcxQraW44Uz029TtXj85W11yvLpDuIzNOlofrC8GN+SgDlgY4BvyxJiVeuabA1t6idjNbX59jLd2oplOGQ== + dependencies: + "@jest/console" "30.1.2" + "@jest/environment" "30.1.2" + "@jest/test-result" "30.1.3" + "@jest/transform" "30.1.2" + "@jest/types" "30.0.5" + "@types/node" "*" + chalk "^4.1.2" + emittery "^0.13.1" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.0.1" + jest-environment-node "30.1.2" + jest-haste-map "30.1.0" + jest-leak-detector "30.1.0" + jest-message-util "30.1.0" + jest-resolve "30.1.3" + jest-runtime "30.1.3" + jest-util "30.0.5" + jest-watcher "30.1.3" + jest-worker "30.1.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.1.3.tgz#bca7cb48d53c5b5ae21399e7a65e21271f500004" + integrity sha512-WS8xgjuNSphdIGnleQcJ3AKE4tBKOVP+tKhCD0u+Tb2sBmsU8DxfbBpZX7//+XOz81zVs4eFpJQwBNji2Y07DA== + dependencies: + "@jest/environment" "30.1.2" + "@jest/fake-timers" "30.1.2" + "@jest/globals" "30.1.2" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.1.3" + "@jest/transform" "30.1.2" + "@jest/types" "30.0.5" + "@types/node" "*" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-haste-map "30.1.0" + jest-message-util "30.1.0" + jest-mock "30.0.5" + jest-regex-util "30.0.1" + jest-resolve "30.1.3" + jest-snapshot "30.1.2" + jest-util "30.0.5" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@30.1.2: + version "30.1.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.1.2.tgz#4001a94d8394bb077a1c96246f0107c81aba4f12" + integrity sha512-4q4+6+1c8B6Cy5pGgFvjDy/Pa6VYRiGu0yQafKkJ9u6wQx4G5PqI2QR6nxTl43yy7IWsINwz6oT4o6tD12a8Dg== + dependencies: + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.1.2" + "@jest/get-type" "30.1.0" + "@jest/snapshot-utils" "30.1.2" + "@jest/transform" "30.1.2" + "@jest/types" "30.0.5" + babel-preset-current-node-syntax "^1.1.0" + chalk "^4.1.2" + expect "30.1.2" + graceful-fs "^4.2.11" + jest-diff "30.1.2" + jest-matcher-utils "30.1.2" + jest-message-util "30.1.0" + jest-util "30.0.5" + pretty-format "30.0.5" + semver "^7.7.2" + synckit "^0.11.8" + +jest-util@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.0.5.tgz#035d380c660ad5f1748dff71c4105338e05f8669" + integrity sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g== + dependencies: + "@jest/types" "30.0.5" + "@types/node" "*" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" + +jest-validate@30.1.0: + version "30.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.1.0.tgz#585aae6c9ee1ac138dbacbece8a7838ca7773e60" + integrity sha512-7P3ZlCFW/vhfQ8pE7zW6Oi4EzvuB4sgR72Q1INfW9m0FGo0GADYlPwIkf4CyPq7wq85g+kPMtPOHNAdWHeBOaA== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.0.5" + camelcase "^6.3.0" + chalk "^4.1.2" + leven "^3.1.0" + pretty-format "30.0.5" + +jest-watcher@30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.1.3.tgz#2f381da5c2c76a46c46ba2108e6607c585421dc0" + integrity sha512-6jQUZCP1BTL2gvG9E4YF06Ytq4yMb4If6YoQGRR6PpjtqOXSP3sKe2kqwB6SQ+H9DezOfZaSLnmka1NtGm3fCQ== + dependencies: + "@jest/test-result" "30.1.3" + "@jest/types" "30.0.5" + "@types/node" "*" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + emittery "^0.13.1" + jest-util "30.0.5" + string-length "^4.0.2" + +jest-worker@30.1.0: + version "30.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.1.0.tgz#a89c36772be449d4bdb60697fb695a1673b12ac2" + integrity sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA== + dependencies: + "@types/node" "*" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.0.5" + merge-stream "^2.0.0" + supports-color "^8.1.1" + +jest@^30.1.3: + version "30.1.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-30.1.3.tgz#c962290f65c32d44a0624f785b2d780835525a23" + integrity sha512-Ry+p2+NLk6u8Agh5yVqELfUJvRfV51hhVBRIB5yZPY7mU0DGBmOuFG5GebZbMbm86cdQNK0fhJuDX8/1YorISQ== dependencies: - argparse "^2.0.1" + "@jest/core" "30.1.3" + "@jest/types" "30.0.5" + import-local "^3.2.0" + jest-cli "30.1.3" + +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== + +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" @@ -618,20 +2109,17 @@ listr2@^9.0.3: rfdc "^1.4.1" wrap-ansi "^9.0.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== +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: - p-locate "^5.0.0" + p-locate "^4.1.0" -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== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.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-update@^6.1.0: version "6.1.0" @@ -649,16 +2137,42 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== -make-error@^1.1.1: +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: + yallist "^3.0.2" + +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: + semver "^7.5.3" + +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.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" @@ -679,68 +2193,105 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-function@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== -minimatch@^9.0.4, minimatch@^9.0.5: +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" + +minimatch@^9.0.4: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" +minimist@^1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -mocha@11.7.2: - version "11.7.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.2.tgz#3c0079fe5cc2f8ea86d99124debcc42bb1ab22b5" - integrity sha512-lkqVJPmqqG/w5jmmFtiRvtA2jkDyNVUcefFJKb2uyX4dekk8Okgqop3cgbFiaIvj8uCRJVTP5x9dfxGyXm2jvQ== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^7.0.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^9.0.5" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^9.2.0" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - 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: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nano-spawn@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nano-spawn/-/nano-spawn-1.0.2.tgz#9853795681f0e96ef6f39104c2e4347b6ba79bf6" - integrity sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/nano-spawn/-/nano-spawn-1.0.3.tgz#ef8d89a275eebc8657e67b95fc312a6527a05b8d" + integrity sha512-jtpsQDetTnvS2Ts1fiRdci5rx0VYws5jGyC+4IYOTnIQ/wwdf6JdomlHBwqC3bJYOvaKu0C2GSZ1A60anrYpaA== + +napi-postinstall@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.3.3.tgz#93d045c6b576803ead126711d3093995198c6eb9" + integrity sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow== + +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== + +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== + +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.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" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +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@^7.0.0: version "7.0.0" @@ -749,31 +2300,58 @@ onetime@^7.0.0: dependencies: mimic-function "^5.0.0" -p-limit@^3.0.2: +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +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== dependencies: yocto-queue "^0.1.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== +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: - p-limit "^3.0.2" + p-limit "^2.2.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== package-json-from-dist@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== +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" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-key@^3.1.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 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== @@ -791,7 +2369,7 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -806,11 +2384,32 @@ pidtree@^0.6.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== +pirates@^4.0.7: + 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@30.0.5, pretty-format@^30.0.0: + version "30.0.5" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.0.5.tgz#e001649d472800396c1209684483e18a4d250360" + integrity sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw== + dependencies: + "@jest/schemas" "30.0.5" + ansi-styles "^5.2.0" + react-is "^18.3.1" + pretty-quick@4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.2.2.tgz#0fc31da666f182fe14e119905fc9829b5b85a234" @@ -829,22 +2428,32 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -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@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-7.0.1.tgz#6f53a5a9e3e4a47445822af96821ca509ed37566" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== +react-is@^18.3.1: + 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== + +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: + resolve-from "^5.0.0" + +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== restore-cursor@^5.0.0: version "5.1.0" @@ -859,17 +2468,15 @@ rfdc@^1.4.1: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== -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== +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== -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" +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" @@ -883,55 +2490,21 @@ 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.3: + 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== signal-exit@^4.0.1, 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== +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" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" @@ -948,11 +2521,44 @@ slice-ansi@^7.1.0: 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.6: + 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.2: + 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-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -1010,6 +2616,16 @@ strip-ansi@^7.0.1, strip-ansi@^7.1.0: 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-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" @@ -1029,11 +2645,32 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" +synckit@^0.11.8: + version "0.11.11" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz#c0b619cf258a97faa209155d9cd1699b5c998cb0" + integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== + dependencies: + "@pkgr/core" "^0.2.9" + +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: + "@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== +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" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -1041,6 +2678,21 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +ts-jest@^29.4.1: + 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" @@ -1060,21 +2712,97 @@ ts-node@10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^2.8.1: +tslib@^2.4.0, 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.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== + +type-fest@^0.21.3: + version "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== + +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== + +unrs-resolver@^1.7.11: + version "1.11.1" + resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.11.1.tgz#be9cd8686c99ef53ecb96df2a473c64d304048a9" + integrity sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg== + dependencies: + napi-postinstall "^0.3.0" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.11.1" + "@unrs/resolver-binding-android-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-x64" "1.11.1" + "@unrs/resolver-binding-freebsd-x64" "1.11.1" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-arm64-musl" "1.11.1" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-musl" "1.11.1" + "@unrs/resolver-binding-linux-s390x-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-musl" "1.11.1" + "@unrs/resolver-binding-wasm32-wasi" "1.11.1" + "@unrs/resolver-binding-win32-arm64-msvc" "1.11.1" + "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" + "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" + +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" @@ -1082,10 +2810,10 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -workerpool@^9.2.0: - version "9.3.2" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.2.tgz#4c045a8b437ae1bc70c646af11929a8b4d238656" - integrity sha512-Xz4Nm9c+LiBHhDR5bDLnNzmj6+5F+cyEAWPMkbs2awq/dYazR/efelZzUAjB/y3kNHL+uzkHvxVVpaOfGCPV7A== +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-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" @@ -1123,11 +2851,29 @@ wrap-ansi@^9.0.0: 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 sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + 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== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yaml@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" @@ -1138,16 +2884,6 @@ yargs-parser@^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-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@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"