diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a776797..42a52c6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,77 +1,44 @@ on: repository_dispatch: - types: [release] - workflow_dispatch: - inputs: - url: - type: string - description: URL (openapi.json) - push: - branches: - - main + types: [spec_release] +#on: push -permissions: - id-token: write # Required for OIDC - contents: read - -name: Build & release +name: Generate VRChat API SDK jobs: - build_and_release: + generate: runs-on: ubuntu-latest + name: Generate VRChat API SDK steps: - - uses: actions/checkout@v4 - - - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v1 with: - version: 10 - run_install: false - - - uses: actions/setup-node@v4 + node-version: 16 + - uses: actions/checkout@v2 + - name: 'Cache node_modules' + uses: actions/cache@v4 with: - node-version: 20 - registry-url: 'https://registry.npmjs.org' - cache: 'pnpm' - - # Trusted publishing requires npm CLI version 11.5.1 or later. - # https://docs.npmjs.com/trusted-publishers - - run: npm install -g npm@latest - - - run: pnpm install - - - if: github.event_name == 'repository_dispatch' - run: | - curl -Lfo openapi.json ${{ github.event.client_payload.artifacts['openapi.json'] }} - echo "from=repository_dispatch" >> $GITHUB_ENV - - - if: github.event_name == 'workflow_dispatch' && github.event.inputs.url != '' + path: node_modules + key: ${{ runner.os }}-node-v16-${{ hashFiles('**/generate.sh') }} + restore-keys: | + ${{ runner.os }}-node-v16 + - name: Install OpenAPI Generator CLI + run: npm install @openapitools/openapi-generator-cli + - name: Set OpenAPI Generator version + run: ./node_modules/\@openapitools/openapi-generator-cli/main.js version-manager set 6.3.1 + - name: Generate SDK Client + run: bash ./generate.sh + - name: Check version number run: | - curl -Lfo openapi.json ${{ github.event.inputs.url }} - echo "from=workflow_dispatch" >> $GITHUB_ENV - - - if: env.from == '' - run: curl -Lfo openapi.json https://github.com/vrchatapi/specification/releases/latest/download/openapi.json - - - run: | - version=$(jq -r '.info.version' ./openapi.json) - version=$(node -p " - const semver = require('semver'); - - const version = semver.parse('$version'); - version.major += 1; - version.minor += 1; - - version.format(); - ") - - version_tag=$(node -p "require('semver').parse('$version')?.prerelease[0] || 'latest'") - - echo "version=$version" >> $GITHUB_ENV - echo "version_tag=$version_tag" >> $GITHUB_ENV - - pnpm version $version --no-git-tag-version - - - run: pnpm build - - - if: github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'no_release') - run: pnpm publish --no-git-checks --tag ${{ env.version_tag }} \ No newline at end of file + echo "spec_version=$(grep "version" ./package.json | cut -d "\"" -f 4)" >> $GITHUB_ENV + - name: Print version number + run: echo ${{ env.spec_version }} + - name: Deploy SDK back into main branch + uses: JamesIves/github-pages-deploy-action@v4 + with: + branch: main + folder: . + commit-message: "Upgrade Node SDK to spec ${{ env.spec_version }}" + - name: Upload to NPM + uses: JS-DevTools/npm-publish@v1 + with: + token: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index 9562756..75b7e98 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,36 @@ +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory node_modules -src/generated -dist -openapi.json -openapi.yaml \ No newline at end of file + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +# NPM build output directory +dist \ No newline at end of file diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..999d88d --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm \ No newline at end of file diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore new file mode 100644 index 0000000..dec024f --- /dev/null +++ b/.openapi-generator-ignore @@ -0,0 +1,29 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md + + +# VRChatAPI: Do not modify .gitignore to avoid comitting "dist" +.gitignore +README.md +git_push.sh \ No newline at end of file diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES new file mode 100644 index 0000000..e56809e --- /dev/null +++ b/.openapi-generator/FILES @@ -0,0 +1,8 @@ +.npmignore +api.ts +base.ts +common.ts +configuration.ts +index.ts +package.json +tsconfig.json diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION new file mode 100644 index 0000000..0df17dd --- /dev/null +++ b/.openapi-generator/VERSION @@ -0,0 +1 @@ +6.2.1 \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index cac0e10..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "editor.formatOnSave": true -} \ No newline at end of file diff --git a/LICENSE b/LICENSE index c47de4f..204dec1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2025 Owners of GitHub organization "vrchatapi" and individual contributors. +Copyright (c) 2021 Owners of GitHub organisation "vrchatapi" and individual contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 10270e0..e7ddd46 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,69 @@ -# VRChat.js +![](https://github.com/vrchatapi/vrchatapi.github.io/blob/main/static/assets/img/lang/lang_javascript_banner_1500x300.png?raw=true) -VRChat.js is a JavaScript SDK for interacting with the VRChat API, allowing developers to create applications that can access and manipulate VRChat data. +# VRChat API Library for JavaScript/TypeScript -* https://vrchat.community/javascript -* https://npm.im/vrchat +A JavaScript/TypeScript/NodeJS client to interact with the unofficial VRChat API. Supports all REST calls specified in the [API specification](https://github.com/vrchatapi/specification). -Join the [Discord Server](https://discord.gg/Ge2APMhPfD) for support & to start a discussion. +## Disclaimer + +This is the official response of the VRChat Team (from Tupper more specifically) on the usage of the VRChat API. + +> Use of the API using applications other than the approved methods (website, VRChat application) are not officially supported. You may use the API for your own application, but keep these guidelines in mind: +> * We do not provide documentation or support for the API. +> * Do not make queries to the API more than once per 60 seconds. +> * Abuse of the API may result in account termination. +> * Access to API endpoints may break at any given time, with no warning. + +As stated, this documentation was not created with the help of the official VRChat team. Therefore this documentation is not an official documentation of the VRChat API and may not be always up to date with the latest versions. If you find that a page or endpoint is not longer valid please create an issue and tell us so we can fix it. + +## Getting Started + +First add the package to to your project: +```bash +npm install vrchat +``` + +Below is an example on how to login to the API and fetch your own user information. + +```javascript +// Step 1. We begin with creating a Configuration, which contains the username and password for authentication, as well as an options dictionary, which contains the user agent header. +const vrchat = require("vrchat"); + +const configuration = new vrchat.Configuration({ + username: "username", + password: "password" +}); + +const options = { headers: { "User-Agent": "ExampleProgram/0.0.1 my@email.com"}}; + +// Step 2. VRChat consists of several API's (WorldsApi, UsersApi, FilesApi, NotificationsApi, FriendsApi, etc...) +// Here we instantiate the Authentication API which is required for logging in. +const AuthenticationApi = new vrchat.AuthenticationApi(configuration); + +// Step 3. Calling getCurrentUser on Authentication API logs you in if the user isn't already logged in. +AuthenticationApi.getCurrentUser(options).then(async resp => { + var currentUser = resp.data; + + // Step 3.5. Calling email verify2fa if the account has 2FA disabled + if (currentUser["requiresTwoFactorAuth"] && currentUser["requiresTwoFactorAuth"][0] === "emailOtp") { + await AuthenticationApi.verify2FAEmailCode({ code: "123456" }, options) + currentUser = (await AuthenticationApi.getCurrentUser(options)).data; + } + + // Step 3.5. Calling verify2fa if the account has 2FA enabled + if (currentUser["requiresTwoFactorAuth"] && currentUser["requiresTwoFactorAuth"][0] === "totp") { + await AuthenticationApi.verify2FA({ code: "123456" }, options) + currentUser = (await AuthenticationApi.getCurrentUser(options)).data; + } + + console.log(`Logged in as: ${currentUser.displayName}`); +}); +``` + +See [example.js](https://github.com/vrchatapi/vrchatapi-javascript/blob/master/example.js) for more example usage on getting started. + +## Contributing + +Contributions are welcome, but do not add features that should be handled by the OpenAPI specification. + +Join the [Discord server](https://discord.gg/Ge2APMhPfD) to get in touch with us. diff --git a/api.ts b/api.ts new file mode 100644 index 0000000..7ef6cd8 --- /dev/null +++ b/api.ts @@ -0,0 +1,28969 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VRChat API Documentation + * + * The version of the OpenAPI document: 1.20.2 + * Contact: vrchatapi.lpv0t@aries.fyi + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import { Configuration } from './configuration'; +import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; +// Some imports not used depending on template conditions +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base'; +import axiosCookieJarSupport from "axios-cookiejar-support";axiosCookieJarSupport(globalAxios);import { CookieJar } from "tough-cookie";globalAxios.defaults.jar = new CookieJar();globalAxios.defaults.withCredentials = true; + +/** + * + * @export + * @interface APIConfig + */ +export interface APIConfig { + /** + * Unknown, probably voice optimization testing + * @type {boolean} + * @memberof APIConfig + */ + 'VoiceEnableDegradation': boolean; + /** + * Unknown, probably voice optimization testing + * @type {boolean} + * @memberof APIConfig + */ + 'VoiceEnableReceiverLimiting': boolean; + /** + * + * @type {APIConfigAccessLogsUrls} + * @memberof APIConfig + */ + 'accessLogsUrls': APIConfigAccessLogsUrls; + /** + * VRChat\'s office address + * @type {string} + * @memberof APIConfig + */ + 'address': string; + /** + * + * @type {boolean} + * @memberof APIConfig + */ + 'ageVerificationInviteVisible': boolean; + /** + * + * @type {boolean} + * @memberof APIConfig + */ + 'ageVerificationP': boolean; + /** + * + * @type {boolean} + * @memberof APIConfig + */ + 'ageVerificationStatusVisible': boolean; + /** + * Max retries for avatar analysis requests + * @type {number} + * @memberof APIConfig + */ + 'analysisMaxRetries': number; + /** + * Interval between retries for avatar analysis requests + * @type {number} + * @memberof APIConfig + */ + 'analysisRetryInterval': number; + /** + * Public Announcements + * @type {Set} + * @memberof APIConfig + */ + 'announcements': Set; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'analyticsSegment_NewUI_PctOfUsers': number; + /** + * Unknown + * @type {string} + * @memberof APIConfig + */ + 'analyticsSegment_NewUI_Salt': string; + /** + * List of supported Languages + * @type {Array} + * @memberof APIConfig + */ + 'availableLanguageCodes': Array; + /** + * List of supported Languages + * @type {Array} + * @memberof APIConfig + */ + 'availableLanguages': Array; + /** + * + * @type {APIConfigAvatarPerfLimiter} + * @memberof APIConfig + */ + 'avatarPerfLimiter': APIConfigAvatarPerfLimiter; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'chatboxLogBufferSeconds': number; + /** + * apiKey to be used for all other requests + * @type {string} + * @memberof APIConfig + */ + 'clientApiKey': string; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'clientBPSCeiling': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'clientDisconnectTimeout': number; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetDispatchThread'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetDispatchThreadMobile': boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetInThread'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetInThread2'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetInThreadMobile'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetInThreadMobile2'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetOutThread'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetOutThread2'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetOutThreadMobile'?: boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'clientNetOutThreadMobile2'?: boolean; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'clientQR'?: number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'clientReservedPlayerBPS': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'clientSentCountAllowance': number; + /** + * + * @type {APIConfigConstants} + * @memberof APIConfig + */ + 'constants': APIConfigConstants; + /** + * VRChat\'s contact email + * @type {string} + * @memberof APIConfig + */ + 'contactEmail': string; + /** + * VRChat\'s copyright-issues-related email + * @type {string} + * @memberof APIConfig + */ + 'copyrightEmail': string; + /** + * Current version number of the Privacy Agreement + * @type {number} + * @memberof APIConfig + */ + 'currentPrivacyVersion'?: number; + /** + * Current version number of the Terms of Service + * @type {number} + * @memberof APIConfig + */ + 'currentTOSVersion': number; + /** + * + * @type {string} + * @memberof APIConfig + */ + 'defaultAvatar': string; + /** + * + * @type {string} + * @memberof APIConfig + */ + 'defaultStickerSet': string; + /** + * Unknown + * @type {Array} + * @memberof APIConfig + */ + 'devLanguageCodes'?: Array; + /** + * Link to download the development SDK, use downloadUrls instead + * @type {string} + * @memberof APIConfig + * @deprecated + */ + 'devSdkUrl': string; + /** + * Version of the development SDK + * @type {string} + * @memberof APIConfig + * @deprecated + */ + 'devSdkVersion': string; + /** + * Unknown, \"dis\" maybe for disconnect? + * @type {string} + * @memberof APIConfig + */ + 'dis-countdown': string; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'disableAVProInProton'?: boolean; + /** + * Toggles if copying avatars should be disabled + * @type {boolean} + * @memberof APIConfig + */ + 'disableAvatarCopying': boolean; + /** + * Toggles if avatar gating should be disabled. Avatar gating restricts uploading of avatars to people with the `system_avatar_access` Tag or `admin_avatar_access` Tag + * @type {boolean} + * @memberof APIConfig + */ + 'disableAvatarGating': boolean; + /** + * Toggles if the Community Labs should be disabled + * @type {boolean} + * @memberof APIConfig + */ + 'disableCommunityLabs': boolean; + /** + * Toggles if promotion out of Community Labs should be disabled + * @type {boolean} + * @memberof APIConfig + */ + 'disableCommunityLabsPromotion': boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'disableEmail': boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'disableCaptcha'?: boolean; + /** + * Toggles if Analytics should be disabled. + * @type {boolean} + * @memberof APIConfig + */ + 'disableEventStream': boolean; + /** + * Toggles if feedback gating should be disabled. Feedback gating restricts submission of feedback (reporting a World or User) to people with the `system_feedback_access` Tag. + * @type {boolean} + * @memberof APIConfig + */ + 'disableFeedbackGating': boolean; + /** + * Unknown, probably toggles compilation of frontend web builds? So internal flag? + * @type {boolean} + * @memberof APIConfig + */ + 'disableFrontendBuilds': boolean; + /** + * Toggles if gift drops should be disabled + * @type {boolean} + * @memberof APIConfig + */ + 'disableGiftDrops': boolean; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'disableHello': boolean; + /** + * Toggles if signing up for Subscriptions in Oculus is disabled or not. + * @type {boolean} + * @memberof APIConfig + */ + 'disableOculusSubs': boolean; + /** + * Toggles if new user account registration should be disabled. + * @type {boolean} + * @memberof APIConfig + */ + 'disableRegistration': boolean; + /** + * Toggles if Steam Networking should be disabled. VRChat these days uses Photon Unity Networking (PUN) instead. + * @type {boolean} + * @memberof APIConfig + */ + 'disableSteamNetworking': boolean; + /** + * Toggles if 2FA should be disabled. + * @type {boolean} + * @memberof APIConfig + * @deprecated + */ + 'disableTwoFactorAuth': boolean; + /** + * Toggles if Udon should be universally disabled in-game. + * @type {boolean} + * @memberof APIConfig + */ + 'disableUdon': boolean; + /** + * Toggles if account upgrading \"linking with Steam/Oculus\" should be disabled. + * @type {boolean} + * @memberof APIConfig + */ + 'disableUpgradeAccount': boolean; + /** + * Download link for game on the Oculus Rift website. + * @type {string} + * @memberof APIConfig + */ + 'downloadLinkWindows': string; + /** + * + * @type {APIConfigDownloadURLList} + * @memberof APIConfig + */ + 'downloadUrls': APIConfigDownloadURLList; + /** + * Array of DynamicWorldRow objects, used by the game to display the list of world rows + * @type {Set} + * @memberof APIConfig + */ + 'dynamicWorldRows': Set; + /** + * Unknown + * @type {string} + * @memberof APIConfig + */ + 'economyPauseEnd'?: string; + /** + * Unknown + * @type {string} + * @memberof APIConfig + */ + 'economyPauseStart'?: string; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'economyState'?: number; + /** + * + * @type {APIConfigEvents} + * @memberof APIConfig + */ + 'events': APIConfigEvents; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'forceUseLatestWorld': boolean; + /** + * Display type of gifts + * @type {string} + * @memberof APIConfig + */ + 'giftDisplayType': string; + /** + * Unknown + * @type {string} + * @memberof APIConfig + */ + 'googleApiClientId': string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof APIConfig + */ + 'homeWorldId': string; + /** + * Redirect target if you try to open the base API domain in your browser + * @type {string} + * @memberof APIConfig + */ + 'homepageRedirectTarget': string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof APIConfig + */ + 'hubWorldId': string; + /** + * A list of explicitly allowed origins that worlds can request images from via the Udon\'s [VRCImageDownloader#DownloadImage](https://creators.vrchat.com/worlds/udon/image-loading/#downloadimage). + * @type {Array} + * @memberof APIConfig + */ + 'imageHostUrlList': Array; + /** + * VRChat\'s job application email + * @type {string} + * @memberof APIConfig + */ + 'jobsEmail': string; + /** + * + * @type {APIConfigMinSupportedClientBuildNumber} + * @memberof APIConfig + */ + 'minSupportedClientBuildNumber': APIConfigMinSupportedClientBuildNumber; + /** + * Minimum Unity version required for uploading assets + * @type {string} + * @memberof APIConfig + */ + 'minimumUnityVersionForUploads': string; + /** + * VRChat\'s moderation related email + * @type {string} + * @memberof APIConfig + */ + 'moderationEmail': string; + /** + * Used in-game to notify a user they aren\'t allowed to select avatars in private worlds + * @type {string} + * @memberof APIConfig + */ + 'notAllowedToSelectAvatarInPrivateWorldMessage': string; + /** + * + * @type {APIConfigOfflineAnalysis} + * @memberof APIConfig + */ + 'offlineAnalysis': APIConfigOfflineAnalysis; + /** + * Unknown + * @type {Array} + * @memberof APIConfig + */ + 'photonNameserverOverrides': Array; + /** + * Unknown + * @type {Array} + * @memberof APIConfig + */ + 'photonPublicKeys': Array; + /** + * + * @type {APIConfigReportCategories} + * @memberof APIConfig + */ + 'reportCategories': APIConfigReportCategories; + /** + * URL to the report form + * @type {string} + * @memberof APIConfig + */ + 'reportFormUrl': string; + /** + * + * @type {APIConfigReportOptions} + * @memberof APIConfig + */ + 'reportOptions': APIConfigReportOptions; + /** + * + * @type {APIConfigReportReasons} + * @memberof APIConfig + */ + 'reportReasons': APIConfigReportReasons; + /** + * + * @type {boolean} + * @memberof APIConfig + */ + 'requireAgeVerificationBetaTag': boolean; + /** + * Link to the developer FAQ + * @type {string} + * @memberof APIConfig + */ + 'sdkDeveloperFaqUrl': string; + /** + * Link to the official VRChat Discord + * @type {string} + * @memberof APIConfig + */ + 'sdkDiscordUrl': string; + /** + * Used in the SDK to notify a user they aren\'t allowed to upload avatars/worlds yet + * @type {string} + * @memberof APIConfig + */ + 'sdkNotAllowedToPublishMessage': string; + /** + * Unity version supported by the SDK + * @type {string} + * @memberof APIConfig + */ + 'sdkUnityVersion': string; + /** + * A list of explicitly allowed origins that worlds can request strings from via the Udon\'s [VRCStringDownloader.LoadUrl](https://creators.vrchat.com/worlds/udon/string-loading/#ivrcstringdownload). + * @type {Array} + * @memberof APIConfig + */ + 'stringHostUrlList': Array; + /** + * VRChat\'s support email + * @type {string} + * @memberof APIConfig + */ + 'supportEmail': string; + /** + * VRChat\'s support form + * @type {string} + * @memberof APIConfig + */ + 'supportFormUrl': string; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'timekeeping': boolean; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof APIConfig + */ + 'timeOutWorldId': string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof APIConfig + */ + 'tutorialWorldId': string; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'updateRateMsMaximum': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'updateRateMsMinimum': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'updateRateMsNormal': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'updateRateMsUdonManual': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'uploadAnalysisPercent': number; + /** + * List of allowed URLs that bypass the \"Allow untrusted URL\'s\" setting in-game + * @type {Array} + * @memberof APIConfig + */ + 'urlList': Array; + /** + * Unknown + * @type {boolean} + * @memberof APIConfig + */ + 'useReliableUdpForVoice': boolean; + /** + * Download link for game on the Steam website. + * @type {string} + * @memberof APIConfig + */ + 'viveWindowsUrl': string; + /** + * List of allowed URLs that are allowed to host avatar assets + * @type {Array} + * @memberof APIConfig + */ + 'whiteListedAssetUrls': Array; + /** + * Currently used youtube-dl.exe version + * @type {string} + * @memberof APIConfig + */ + 'player-url-resolver-version': string; + /** + * Currently used youtube-dl.exe hash in SHA1-delimited format + * @type {string} + * @memberof APIConfig + */ + 'player-url-resolver-sha1': string; + /** + * Public key, hex encoded + * @type {string} + * @memberof APIConfig + */ + 'publicKey': string; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'websocketMaxFriendsRefreshDelay': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'websocketQuickReconnectTime': number; + /** + * Unknown + * @type {number} + * @memberof APIConfig + */ + 'websocketReconnectMaxDelay': number; +} +/** + * + * @export + * @interface APIConfigAccessLogsUrls + */ +export interface APIConfigAccessLogsUrls { + /** + * + * @type {string} + * @memberof APIConfigAccessLogsUrls + */ + 'Default'?: string; + /** + * + * @type {string} + * @memberof APIConfigAccessLogsUrls + */ + 'Pico'?: string; + /** + * + * @type {string} + * @memberof APIConfigAccessLogsUrls + */ + 'Quest'?: string; + /** + * + * @type {string} + * @memberof APIConfigAccessLogsUrls + */ + 'XRElite'?: string; +} +/** + * Public Announcement + * @export + * @interface APIConfigAnnouncement + */ +export interface APIConfigAnnouncement { + /** + * Announcement name + * @type {string} + * @memberof APIConfigAnnouncement + */ + 'name': string; + /** + * Announcement text + * @type {string} + * @memberof APIConfigAnnouncement + */ + 'text': string; +} +/** + * + * @export + * @interface APIConfigAvatarPerfLimiter + */ +export interface APIConfigAvatarPerfLimiter { + /** + * + * @type {PerformanceLimiterInfo} + * @memberof APIConfigAvatarPerfLimiter + */ + 'AndroidMobile': PerformanceLimiterInfo; + /** + * + * @type {PerformanceLimiterInfo} + * @memberof APIConfigAvatarPerfLimiter + */ + 'PC': PerformanceLimiterInfo; + /** + * + * @type {PerformanceLimiterInfo} + * @memberof APIConfigAvatarPerfLimiter + */ + 'Pico': PerformanceLimiterInfo; + /** + * + * @type {PerformanceLimiterInfo} + * @memberof APIConfigAvatarPerfLimiter + */ + 'Quest': PerformanceLimiterInfo; + /** + * + * @type {PerformanceLimiterInfo} + * @memberof APIConfigAvatarPerfLimiter + */ + 'XRElite': PerformanceLimiterInfo; + /** + * + * @type {PerformanceLimiterInfo} + * @memberof APIConfigAvatarPerfLimiter + */ + 'iOSMobile': PerformanceLimiterInfo; +} +/** + * Constants + * @export + * @interface APIConfigConstants + */ +export interface APIConfigConstants { + /** + * + * @type {APIConfigConstantsGROUPS} + * @memberof APIConfigConstants + */ + 'GROUPS': APIConfigConstantsGROUPS; + /** + * + * @type {APIConfigConstantsINSTANCE} + * @memberof APIConfigConstants + */ + 'INSTANCE': APIConfigConstantsINSTANCE; + /** + * + * @type {APIConfigConstantsLANGUAGE} + * @memberof APIConfigConstants + */ + 'LANGUAGE': APIConfigConstantsLANGUAGE; +} +/** + * Group-related constants + * @export + * @interface APIConfigConstantsGROUPS + */ +export interface APIConfigConstantsGROUPS { + /** + * Maximum group capacity + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'CAPACITY'?: number; + /** + * Requirements for transferring group ownership + * @type {Array} + * @memberof APIConfigConstantsGROUPS + */ + 'GROUP_TRANSFER_REQUIREMENTS'?: Array; + /** + * Maximum number of invite requests + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_INVITES_REQUESTS'?: number; + /** + * Maximum number of joined groups + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_JOINED'?: number; + /** + * Maximum number of joined groups for VRChat Plus members + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_JOINED_PLUS'?: number; + /** + * Maximum number of supported languages + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_LANGUAGES'?: number; + /** + * Maximum number of group links + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_LINKS'?: number; + /** + * Maximum number of management roles in a group + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_MANAGEMENT_ROLES'?: number; + /** + * Maximum number of groups a user can own + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_OWNED'?: number; + /** + * Maximum number of roles in a group + * @type {number} + * @memberof APIConfigConstantsGROUPS + */ + 'MAX_ROLES'?: number; +} +/** + * Instance-related constants + * @export + * @interface APIConfigConstantsINSTANCE + */ +export interface APIConfigConstantsINSTANCE { + /** + * + * @type {APIConfigConstantsINSTANCEPOPULATIONBRACKETS} + * @memberof APIConfigConstantsINSTANCE + */ + 'POPULATION_BRACKETS'?: APIConfigConstantsINSTANCEPOPULATIONBRACKETS; +} +/** + * Population brackets based on instance population + * @export + * @interface APIConfigConstantsINSTANCEPOPULATIONBRACKETS + */ +export interface APIConfigConstantsINSTANCEPOPULATIONBRACKETS { + /** + * + * @type {APIConfigConstantsINSTANCEPOPULATIONBRACKETSCROWDED} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETS + */ + 'CROWDED'?: APIConfigConstantsINSTANCEPOPULATIONBRACKETSCROWDED; + /** + * + * @type {APIConfigConstantsINSTANCEPOPULATIONBRACKETSFEW} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETS + */ + 'FEW'?: APIConfigConstantsINSTANCEPOPULATIONBRACKETSFEW; + /** + * + * @type {APIConfigConstantsINSTANCEPOPULATIONBRACKETSMANY} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETS + */ + 'MANY'?: APIConfigConstantsINSTANCEPOPULATIONBRACKETSMANY; +} +/** + * Crowded population range + * @export + * @interface APIConfigConstantsINSTANCEPOPULATIONBRACKETSCROWDED + */ +export interface APIConfigConstantsINSTANCEPOPULATIONBRACKETSCROWDED { + /** + * Maximum population for a crowded instance + * @type {number} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETSCROWDED + */ + 'max'?: number; + /** + * Minimum population for a crowded instance + * @type {number} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETSCROWDED + */ + 'min'?: number; +} +/** + * Few population range + * @export + * @interface APIConfigConstantsINSTANCEPOPULATIONBRACKETSFEW + */ +export interface APIConfigConstantsINSTANCEPOPULATIONBRACKETSFEW { + /** + * Maximum population for a few instance + * @type {number} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETSFEW + */ + 'max'?: number; + /** + * Minimum population for a few instance + * @type {number} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETSFEW + */ + 'min'?: number; +} +/** + * Many population range + * @export + * @interface APIConfigConstantsINSTANCEPOPULATIONBRACKETSMANY + */ +export interface APIConfigConstantsINSTANCEPOPULATIONBRACKETSMANY { + /** + * Maximum population for a many instance + * @type {number} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETSMANY + */ + 'max'?: number; + /** + * Minimum population for a many instance + * @type {number} + * @memberof APIConfigConstantsINSTANCEPOPULATIONBRACKETSMANY + */ + 'min'?: number; +} +/** + * Language-related constants + * @export + * @interface APIConfigConstantsLANGUAGE + */ +export interface APIConfigConstantsLANGUAGE { + /** + * Supported spoken language options + * @type {{ [key: string]: string; }} + * @memberof APIConfigConstantsLANGUAGE + */ + 'SPOKEN_LANGUAGE_OPTIONS'?: { [key: string]: string; }; +} +/** + * Download links for various development assets. + * @export + * @interface APIConfigDownloadURLList + */ +export interface APIConfigDownloadURLList { + /** + * Download link for legacy SDK2 + * @type {string} + * @memberof APIConfigDownloadURLList + * @deprecated + */ + 'sdk2': string; + /** + * Download link for SDK3 for Avatars + * @type {string} + * @memberof APIConfigDownloadURLList + */ + 'sdk3-avatars': string; + /** + * Download link for SDK3 for Worlds + * @type {string} + * @memberof APIConfigDownloadURLList + */ + 'sdk3-worlds': string; + /** + * Download link for the Creator Companion + * @type {string} + * @memberof APIConfigDownloadURLList + */ + 'vcc': string; + /** + * Download link for ??? + * @type {string} + * @memberof APIConfigDownloadURLList + */ + 'bootstrap': string; +} +/** + * + * @export + * @interface APIConfigEvents + */ +export interface APIConfigEvents { + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'distanceClose': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'distanceFactor': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'distanceFar': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'groupDistance': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'maximumBunchSize': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'notVisibleFactor': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'playerOrderBucketSize': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'playerOrderFactor': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'slowUpdateFactorThreshold': number; + /** + * Unknown + * @type {number} + * @memberof APIConfigEvents + */ + 'viewSegmentLength': number; +} +/** + * Minimum supported client build number for various platforms + * @export + * @interface APIConfigMinSupportedClientBuildNumber + */ +export interface APIConfigMinSupportedClientBuildNumber { + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'AppStore': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'Default': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'Firebase': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'FirebaseiOS': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'GooglePlay': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'PC': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'PicoStore': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'QuestAppLab': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'QuestStore': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'TestFlight': PlatformBuildInfo; + /** + * + * @type {PlatformBuildInfo} + * @memberof APIConfigMinSupportedClientBuildNumber + */ + 'XRElite': PlatformBuildInfo; +} +/** + * Whether to allow offline analysis + * @export + * @interface APIConfigOfflineAnalysis + */ +export interface APIConfigOfflineAnalysis { + /** + * Whether to allow offline analysis + * @type {boolean} + * @memberof APIConfigOfflineAnalysis + */ + 'android'?: boolean; + /** + * Whether to allow offline analysis + * @type {boolean} + * @memberof APIConfigOfflineAnalysis + */ + 'standalonewindows'?: boolean; +} +/** + * Categories available for reporting objectionable content + * @export + * @interface APIConfigReportCategories + */ +export interface APIConfigReportCategories { + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'avatar': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'avatarpage'?: ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'behavior': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'chat': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'emoji'?: ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'environment': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'groupstore': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'image': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'text': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'sticker'?: ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'warnings': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'worldimage': ReportCategory; + /** + * + * @type {ReportCategory} + * @memberof APIConfigReportCategories + */ + 'worldstore': ReportCategory; +} +/** + * Options for reporting content + * @export + * @interface APIConfigReportOptions + */ +export interface APIConfigReportOptions { + /** + * + * @type {APIConfigReportOptionsAvatar} + * @memberof APIConfigReportOptions + */ + 'avatar'?: APIConfigReportOptionsAvatar; + /** + * + * @type {APIConfigReportOptionsGroup} + * @memberof APIConfigReportOptions + */ + 'group'?: APIConfigReportOptionsGroup; + /** + * + * @type {APIConfigReportOptionsUser} + * @memberof APIConfigReportOptions + */ + 'user'?: APIConfigReportOptionsUser; + /** + * + * @type {APIConfigReportOptionsWorld} + * @memberof APIConfigReportOptions + */ + 'world'?: APIConfigReportOptionsWorld; +} +/** + * + * @export + * @interface APIConfigReportOptionsAvatar + */ +export interface APIConfigReportOptionsAvatar { + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsAvatar + */ + 'avatar'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsAvatar + */ + 'avatarpage'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsAvatar + */ + 'warnings'?: Array; +} +/** + * + * @export + * @interface APIConfigReportOptionsGroup + */ +export interface APIConfigReportOptionsGroup { + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsGroup + */ + 'groupstore'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsGroup + */ + 'image'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsGroup + */ + 'text'?: Array; +} +/** + * + * @export + * @interface APIConfigReportOptionsUser + */ +export interface APIConfigReportOptionsUser { + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsUser + */ + 'behavior'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsUser + */ + 'chat'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsUser + */ + 'emoji'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsUser + */ + 'image'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsUser + */ + 'sticker'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsUser + */ + 'text'?: Array; +} +/** + * + * @export + * @interface APIConfigReportOptionsWorld + */ +export interface APIConfigReportOptionsWorld { + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsWorld + */ + 'environment'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsWorld + */ + 'text'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsWorld + */ + 'warnings'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsWorld + */ + 'worldimage'?: Array; + /** + * + * @type {Array} + * @memberof APIConfigReportOptionsWorld + */ + 'worldstore'?: Array; +} +/** + * Reasons available for reporting users + * @export + * @interface APIConfigReportReasons + */ +export interface APIConfigReportReasons { + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'billing': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'botting': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'cancellation': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'copyright'?: ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'fraud'?: ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'gore': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'hacking': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'harassing': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'hateful': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'impersonation': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'inappropriate': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'leaking': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'malicious': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'missing': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'nudity': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'renewal': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'security': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'service': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'sexual': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'technical'?: ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'threatening': ReportReason; + /** + * + * @type {ReportReason} + * @memberof APIConfigReportReasons + */ + 'visuals': ReportReason; +} +/** + * + * @export + * @interface APIHealth + */ +export interface APIHealth { + /** + * + * @type {boolean} + * @memberof APIHealth + */ + 'ok': boolean; + /** + * + * @type {string} + * @memberof APIHealth + */ + 'serverName': string; + /** + * + * @type {string} + * @memberof APIHealth + */ + 'buildVersionTag': string; +} +/** + * + * @export + * @interface AccountDeletionLog + */ +export interface AccountDeletionLog { + /** + * Typically \"Deletion requested\" or \"Deletion canceled\". Other messages like \"Deletion completed\" may exist, but are these are not possible to see as a regular user. + * @type {string} + * @memberof AccountDeletionLog + */ + 'message'?: string; + /** + * When the deletion is scheduled to happen, standard is 14 days after the request. + * @type {string} + * @memberof AccountDeletionLog + */ + 'deletionScheduled'?: string | null; + /** + * Date and time of the deletion request. + * @type {string} + * @memberof AccountDeletionLog + */ + 'dateTime'?: string; +} +/** + * + * @export + * @interface AddFavoriteRequest + */ +export interface AddFavoriteRequest { + /** + * + * @type {FavoriteType} + * @memberof AddFavoriteRequest + */ + 'type': FavoriteType; + /** + * Must be either AvatarID, WorldID or UserID. + * @type {string} + * @memberof AddFavoriteRequest + */ + 'favoriteId': string; + /** + * Tags indicate which group this favorite belongs to. Adding multiple groups makes it show up in all. Removing it from one in that case removes it from all. + * @type {Array} + * @memberof AddFavoriteRequest + */ + 'tags': Array; +} +/** + * + * @export + * @interface AddGroupGalleryImageRequest + */ +export interface AddGroupGalleryImageRequest { + /** + * + * @type {string} + * @memberof AddGroupGalleryImageRequest + */ + 'fileId': string; +} +/** + * + * @export + * @interface AdminAssetBundle + */ +export interface AdminAssetBundle { + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + '_created_at': string; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + '_updated_at': string; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + 'assetType': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof AdminAssetBundle + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + 'authorName': string; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + 'description': string; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + 'imageUrl': string; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + 'name': string; + /** + * + * @type {ReleaseStatus} + * @memberof AdminAssetBundle + */ + 'releaseStatus': ReleaseStatus; + /** + * + * @type {Array} + * @memberof AdminAssetBundle + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + 'thumbnailImageUrl': string; + /** + * + * @type {string} + * @memberof AdminAssetBundle + */ + 'unityPackageUrl': string | null; + /** + * + * @type {Set} + * @memberof AdminAssetBundle + */ + 'unityPackages': Set; +} +/** + * + * @export + * @interface AdminUnityPackage + */ +export interface AdminUnityPackage { + /** + * + * @type {string} + * @memberof AdminUnityPackage + */ + 'assetUrl': string; + /** + * + * @type {number} + * @memberof AdminUnityPackage + */ + 'assetVersion': number; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof AdminUnityPackage + */ + 'platform': string; + /** + * + * @type {string} + * @memberof AdminUnityPackage + */ + 'unityVersion': string; + /** + * + * @type {string} + * @memberof AdminUnityPackage + */ + 'variant': string; +} +/** + * `verified` is obsolete. User who have verified and are 18+ can switch to `plus18` status. + * @export + * @enum {string} + */ + +export const AgeVerificationStatus = { + hidden: 'hidden', + verified: 'verified', + plus18: '18+' +} as const; + +export type AgeVerificationStatus = typeof AgeVerificationStatus[keyof typeof AgeVerificationStatus]; + + +/** + * + * @export + * @interface Avatar + */ +export interface Avatar { + /** + * + * @type {string} + * @memberof Avatar + */ + 'acknowledgements'?: string; + /** + * Not present from general search `/avatars`, only on specific requests `/avatars/{avatarId}`. + * @type {string} + * @memberof Avatar + */ + 'assetUrl'?: string; + /** + * Not present from general search `/avatars`, only on specific requests `/avatars/{avatarId}`. **Deprecation:** `Object` has unknown usage/fields, and is always empty. Use normal `Url` field instead. + * @type {object} + * @memberof Avatar + */ + 'assetUrlObject'?: object; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Avatar + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof Avatar + */ + 'authorName': string; + /** + * + * @type {string} + * @memberof Avatar + */ + 'created_at': string; + /** + * + * @type {string} + * @memberof Avatar + */ + 'description': string; + /** + * + * @type {boolean} + * @memberof Avatar + */ + 'featured': boolean; + /** + * + * @type {number} + * @memberof Avatar + */ + 'highestPrice'?: number; + /** + * + * @type {string} + * @memberof Avatar + */ + 'id': string; + /** + * + * @type {string} + * @memberof Avatar + */ + 'imageUrl': string; + /** + * + * @type {boolean} + * @memberof Avatar + */ + 'lock'?: boolean; + /** + * + * @type {number} + * @memberof Avatar + */ + 'lowestPrice'?: number; + /** + * + * @type {string} + * @memberof Avatar + */ + 'name': string; + /** + * + * @type {AvatarPerformance} + * @memberof Avatar + */ + 'performance': AvatarPerformance; + /** + * + * @type {string} + * @memberof Avatar + */ + 'productId'?: string; + /** + * + * @type {Array} + * @memberof Avatar + */ + 'publishedListings'?: Array; + /** + * + * @type {ReleaseStatus} + * @memberof Avatar + */ + 'releaseStatus': ReleaseStatus; + /** + * + * @type {boolean} + * @memberof Avatar + */ + 'searchable'?: boolean; + /** + * + * @type {AvatarStyles} + * @memberof Avatar + */ + 'styles': AvatarStyles; + /** + * + * @type {Array} + * @memberof Avatar + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof Avatar + */ + 'thumbnailImageUrl': string; + /** + * + * @type {string} + * @memberof Avatar + */ + 'unityPackageUrl': string; + /** + * + * @type {AvatarUnityPackageUrlObject} + * @memberof Avatar + * @deprecated + */ + 'unityPackageUrlObject': AvatarUnityPackageUrlObject; + /** + * + * @type {Set} + * @memberof Avatar + */ + 'unityPackages': Set; + /** + * + * @type {string} + * @memberof Avatar + */ + 'updated_at': string; + /** + * + * @type {number} + * @memberof Avatar + */ + 'version': number; +} +/** + * + * @export + * @interface AvatarPerformance + */ +export interface AvatarPerformance { + /** + * + * @type {string} + * @memberof AvatarPerformance + */ + 'android'?: string; + /** + * + * @type {number} + * @memberof AvatarPerformance + */ + 'android-sort'?: number; + /** + * + * @type {string} + * @memberof AvatarPerformance + */ + 'ios'?: string; + /** + * + * @type {number} + * @memberof AvatarPerformance + */ + 'ios-sort'?: number; + /** + * + * @type {string} + * @memberof AvatarPerformance + */ + 'standalonewindows'?: string; + /** + * + * @type {number} + * @memberof AvatarPerformance + */ + 'standalonewindows-sort'?: number; +} +/** + * + * @export + * @interface AvatarPublishedListingsInner + */ +export interface AvatarPublishedListingsInner { + /** + * + * @type {string} + * @memberof AvatarPublishedListingsInner + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof AvatarPublishedListingsInner + */ + 'displayName'?: string; + /** + * + * @type {string} + * @memberof AvatarPublishedListingsInner + */ + 'imageId'?: string; + /** + * + * @type {string} + * @memberof AvatarPublishedListingsInner + */ + 'listingId'?: string; + /** + * + * @type {string} + * @memberof AvatarPublishedListingsInner + */ + 'listingType'?: string; + /** + * + * @type {number} + * @memberof AvatarPublishedListingsInner + */ + 'priceTokens'?: number; +} +/** + * + * @export + * @interface AvatarStyle + */ +export interface AvatarStyle { + /** + * + * @type {string} + * @memberof AvatarStyle + */ + 'id': string; + /** + * + * @type {string} + * @memberof AvatarStyle + */ + 'styleName': string; +} +/** + * + * @export + * @interface AvatarStyles + */ +export interface AvatarStyles { + /** + * + * @type {string} + * @memberof AvatarStyles + */ + 'primary'?: string | null; + /** + * + * @type {string} + * @memberof AvatarStyles + */ + 'secondary'?: string | null; + /** + * + * @type {Array} + * @memberof AvatarStyles + */ + 'supplementary'?: Array; +} +/** + * **Deprecation:** `Object` has unknown usage/fields, and is always empty. Use normal `Url` field instead. + * @export + * @interface AvatarUnityPackageUrlObject + */ +export interface AvatarUnityPackageUrlObject { + /** + * + * @type {string} + * @memberof AvatarUnityPackageUrlObject + */ + 'unityPackageUrl'?: string; +} +/** + * + * @export + * @interface Badge + */ +export interface Badge { + /** + * only present in CurrentUser badges + * @type {string} + * @memberof Badge + */ + 'assignedAt'?: string | null; + /** + * + * @type {string} + * @memberof Badge + */ + 'badgeDescription': string; + /** + * + * @type {string} + * @memberof Badge + */ + 'badgeId': string; + /** + * direct url to image + * @type {string} + * @memberof Badge + */ + 'badgeImageUrl': string; + /** + * + * @type {string} + * @memberof Badge + */ + 'badgeName': string; + /** + * only present in CurrentUser badges + * @type {boolean} + * @memberof Badge + */ + 'hidden'?: boolean | null; + /** + * + * @type {boolean} + * @memberof Badge + */ + 'showcased': boolean; + /** + * only present in CurrentUser badges + * @type {string} + * @memberof Badge + */ + 'updatedAt'?: string | null; +} +/** + * + * @export + * @interface Balance + */ +export interface Balance { + /** + * + * @type {number} + * @memberof Balance + */ + 'balance': number; + /** + * + * @type {boolean} + * @memberof Balance + */ + 'noTransactions'?: boolean; + /** + * + * @type {boolean} + * @memberof Balance + */ + 'tiliaResponse'?: boolean; +} +/** + * + * @export + * @interface BanGroupMemberRequest + */ +export interface BanGroupMemberRequest { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof BanGroupMemberRequest + */ + 'userId': string; +} +/** + * + * @export + * @interface CalendarEvent + */ +export interface CalendarEvent { + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'accessType': string; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'category'?: string; + /** + * + * @type {number} + * @memberof CalendarEvent + */ + 'closeInstanceAfterEndMinutes'?: number; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'createdAt': string; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'deletedAt'?: string | null; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'endsAt'?: string; + /** + * + * @type {boolean} + * @memberof CalendarEvent + */ + 'featured'?: boolean; + /** + * + * @type {number} + * @memberof CalendarEvent + */ + 'guestEarlyJoinMinutes'?: number; + /** + * + * @type {number} + * @memberof CalendarEvent + */ + 'hostEarlyJoinMinutes'?: number; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'id': string; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'imageId'?: string; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'imageUrl'?: string | null; + /** + * + * @type {number} + * @memberof CalendarEvent + */ + 'interestedUserCount'?: number; + /** + * + * @type {boolean} + * @memberof CalendarEvent + */ + 'isDraft'?: boolean; + /** + * + * @type {Array} + * @memberof CalendarEvent + */ + 'languages'?: Array; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'ownerId'?: string; + /** + * + * @type {Array} + * @memberof CalendarEvent + */ + 'platforms'?: Array; + /** + * + * @type {Array} + * @memberof CalendarEvent + */ + 'roleIds'?: Array | null; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'startsAt'?: string; + /** + * + * @type {Array} + * @memberof CalendarEvent + */ + 'tags'?: Array; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'title': string; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'type'?: string; + /** + * + * @type {string} + * @memberof CalendarEvent + */ + 'updatedAt'?: string; + /** + * + * @type {boolean} + * @memberof CalendarEvent + */ + 'usesInstanceOverflow'?: boolean; + /** + * + * @type {CalendarEventUserInterest} + * @memberof CalendarEvent + */ + 'userInterest'?: CalendarEventUserInterest; +} +/** + * + * @export + * @interface CalendarEventUserInterest + */ +export interface CalendarEventUserInterest { + /** + * + * @type {string} + * @memberof CalendarEventUserInterest + */ + 'createdAt'?: string; + /** + * + * @type {boolean} + * @memberof CalendarEventUserInterest + */ + 'isFollowing'?: boolean; + /** + * + * @type {string} + * @memberof CalendarEventUserInterest + */ + 'updatedAt'?: string; +} +/** + * + * @export + * @interface ChangeUserTagsRequest + */ +export interface ChangeUserTagsRequest { + /** + * The tags being added or removed. + * @type {Array} + * @memberof ChangeUserTagsRequest + */ + 'tags': Array; +} +/** + * + * @export + * @interface CreateAvatarRequest + */ +export interface CreateAvatarRequest { + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'assetUrl'?: string; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'assetVersion'?: string; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof CreateAvatarRequest + */ + 'platform'?: string; + /** + * A date and time of the pattern `M/d/yyyy h:mm:ss tt` (see C Sharp `System.DateTime`) + * @type {string} + * @memberof CreateAvatarRequest + */ + 'created_at'?: string; + /** + * A date and time of the pattern `M/d/yyyy h:mm:ss tt` (see C Sharp `System.DateTime`) + * @type {string} + * @memberof CreateAvatarRequest + */ + 'updated_at'?: string; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'name': string; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'description'?: string; + /** + * + * @type {Array} + * @memberof CreateAvatarRequest + */ + 'tags'?: Array; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'imageUrl': string; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'thumbnailImageUrl'?: string; + /** + * + * @type {ReleaseStatus} + * @memberof CreateAvatarRequest + */ + 'releaseStatus'?: ReleaseStatus; + /** + * + * @type {number} + * @memberof CreateAvatarRequest + */ + 'version'?: number; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'unityPackageUrl'?: string; + /** + * + * @type {string} + * @memberof CreateAvatarRequest + */ + 'unityVersion'?: string; +} +/** + * + * @export + * @interface CreateCalendarEventRequest + */ +export interface CreateCalendarEventRequest { + /** + * Event title + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'title': string; + /** + * Time the event starts at + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'startsAt': string; + /** + * + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'description': string; + /** + * Time the event ends at + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'endsAt': string; + /** + * + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'category': string; + /** + * + * @type {Array} + * @memberof CreateCalendarEventRequest + */ + 'tags'?: Array; + /** + * + * @type {boolean} + * @memberof CreateCalendarEventRequest + */ + 'isDraft'?: boolean; + /** + * + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'imageId'?: string; + /** + * + * @type {Array} + * @memberof CreateCalendarEventRequest + */ + 'roleIds'?: Array; + /** + * + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'parentId'?: string; + /** + * + * @type {Array} + * @memberof CreateCalendarEventRequest + */ + 'platforms'?: Array; + /** + * + * @type {Array} + * @memberof CreateCalendarEventRequest + */ + 'languages'?: Array; + /** + * Send notification to group members. + * @type {boolean} + * @memberof CreateCalendarEventRequest + */ + 'sendCreationNotification': boolean; + /** + * + * @type {boolean} + * @memberof CreateCalendarEventRequest + */ + 'featured'?: boolean; + /** + * + * @type {number} + * @memberof CreateCalendarEventRequest + */ + 'hostEarlyJoinMinutes'?: number; + /** + * + * @type {number} + * @memberof CreateCalendarEventRequest + */ + 'guestEarlyJoinMinutes'?: number; + /** + * + * @type {number} + * @memberof CreateCalendarEventRequest + */ + 'closeInstanceAfterEndMinutes'?: number; + /** + * + * @type {boolean} + * @memberof CreateCalendarEventRequest + */ + 'usesInstanceOverflow'?: boolean; + /** + * + * @type {string} + * @memberof CreateCalendarEventRequest + */ + 'accessType': CreateCalendarEventRequestAccessTypeEnum; +} + +export const CreateCalendarEventRequestAccessTypeEnum = { + Public: 'public', + Group: 'group' +} as const; + +export type CreateCalendarEventRequestAccessTypeEnum = typeof CreateCalendarEventRequestAccessTypeEnum[keyof typeof CreateCalendarEventRequestAccessTypeEnum]; + +/** + * + * @export + * @interface CreateFileRequest + */ +export interface CreateFileRequest { + /** + * + * @type {string} + * @memberof CreateFileRequest + */ + 'name': string; + /** + * + * @type {MIMEType} + * @memberof CreateFileRequest + */ + 'mimeType': MIMEType; + /** + * + * @type {string} + * @memberof CreateFileRequest + */ + 'extension': string; + /** + * + * @type {Array} + * @memberof CreateFileRequest + */ + 'tags'?: Array; +} +/** + * + * @export + * @interface CreateFileVersionRequest + */ +export interface CreateFileVersionRequest { + /** + * + * @type {string} + * @memberof CreateFileVersionRequest + */ + 'signatureMd5': string; + /** + * + * @type {number} + * @memberof CreateFileVersionRequest + */ + 'signatureSizeInBytes': number; + /** + * + * @type {string} + * @memberof CreateFileVersionRequest + */ + 'fileMd5'?: string; + /** + * + * @type {number} + * @memberof CreateFileVersionRequest + */ + 'fileSizeInBytes'?: number; +} +/** + * + * @export + * @interface CreateGroupAnnouncementRequest + */ +export interface CreateGroupAnnouncementRequest { + /** + * Announcement title + * @type {string} + * @memberof CreateGroupAnnouncementRequest + */ + 'title': string; + /** + * Announcement text + * @type {string} + * @memberof CreateGroupAnnouncementRequest + */ + 'text'?: string; + /** + * + * @type {string} + * @memberof CreateGroupAnnouncementRequest + */ + 'imageId'?: string; + /** + * Send notification to group members. + * @type {boolean} + * @memberof CreateGroupAnnouncementRequest + */ + 'sendNotification'?: boolean; +} +/** + * + * @export + * @interface CreateGroupGalleryRequest + */ +export interface CreateGroupGalleryRequest { + /** + * Name of the gallery. + * @type {string} + * @memberof CreateGroupGalleryRequest + */ + 'name': string; + /** + * Description of the gallery. + * @type {string} + * @memberof CreateGroupGalleryRequest + */ + 'description'?: string; + /** + * Whether the gallery is members only. + * @type {boolean} + * @memberof CreateGroupGalleryRequest + */ + 'membersOnly'?: boolean; + /** + * + * @type {Array} + * @memberof CreateGroupGalleryRequest + */ + 'roleIdsToView'?: Array | null; + /** + * + * @type {Array} + * @memberof CreateGroupGalleryRequest + */ + 'roleIdsToSubmit'?: Array | null; + /** + * + * @type {Array} + * @memberof CreateGroupGalleryRequest + */ + 'roleIdsToAutoApprove'?: Array | null; + /** + * + * @type {Array} + * @memberof CreateGroupGalleryRequest + */ + 'roleIdsToManage'?: Array | null; +} +/** + * + * @export + * @interface CreateGroupInviteRequest + */ +export interface CreateGroupInviteRequest { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof CreateGroupInviteRequest + */ + 'userId': string; + /** + * + * @type {boolean} + * @memberof CreateGroupInviteRequest + */ + 'confirmOverrideBlock'?: boolean; +} +/** + * + * @export + * @interface CreateGroupPostRequest + */ +export interface CreateGroupPostRequest { + /** + * Post title + * @type {string} + * @memberof CreateGroupPostRequest + */ + 'title': string; + /** + * Post text + * @type {string} + * @memberof CreateGroupPostRequest + */ + 'text': string; + /** + * + * @type {string} + * @memberof CreateGroupPostRequest + */ + 'imageId'?: string; + /** + * Send notification to group members. + * @type {boolean} + * @memberof CreateGroupPostRequest + */ + 'sendNotification': boolean; + /** + * + * @type {Array} + * @memberof CreateGroupPostRequest + */ + 'roleIds'?: Array; + /** + * + * @type {GroupPostVisibility} + * @memberof CreateGroupPostRequest + */ + 'visibility': GroupPostVisibility; +} +/** + * + * @export + * @interface CreateGroupRequest + */ +export interface CreateGroupRequest { + /** + * + * @type {string} + * @memberof CreateGroupRequest + */ + 'name': string; + /** + * + * @type {string} + * @memberof CreateGroupRequest + */ + 'shortCode': string; + /** + * + * @type {string} + * @memberof CreateGroupRequest + */ + 'description'?: string; + /** + * + * @type {GroupJoinState} + * @memberof CreateGroupRequest + */ + 'joinState'?: GroupJoinState; + /** + * + * @type {string} + * @memberof CreateGroupRequest + */ + 'iconId'?: string | null; + /** + * + * @type {string} + * @memberof CreateGroupRequest + */ + 'bannerId'?: string | null; + /** + * + * @type {GroupPrivacy} + * @memberof CreateGroupRequest + */ + 'privacy'?: GroupPrivacy; + /** + * + * @type {GroupRoleTemplate} + * @memberof CreateGroupRequest + */ + 'roleTemplate': GroupRoleTemplate; +} +/** + * + * @export + * @interface CreateGroupRoleRequest + */ +export interface CreateGroupRoleRequest { + /** + * + * @type {string} + * @memberof CreateGroupRoleRequest + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof CreateGroupRoleRequest + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof CreateGroupRoleRequest + */ + 'description'?: string; + /** + * + * @type {boolean} + * @memberof CreateGroupRoleRequest + */ + 'isSelfAssignable'?: boolean; + /** + * + * @type {Array} + * @memberof CreateGroupRoleRequest + */ + 'permissions'?: Array; +} +/** + * + * @export + * @interface CreateInstanceRequest + */ +export interface CreateInstanceRequest { + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof CreateInstanceRequest + */ + 'worldId': string; + /** + * + * @type {InstanceType} + * @memberof CreateInstanceRequest + */ + 'type': InstanceType; + /** + * + * @type {InstanceRegion} + * @memberof CreateInstanceRequest + */ + 'region': InstanceRegion; + /** + * A groupId if the instance type is \"group\", null if instance type is public, or a userId otherwise + * @type {string} + * @memberof CreateInstanceRequest + */ + 'ownerId'?: string | null; + /** + * Group roleIds that are allowed to join if the type is \"group\" and groupAccessType is \"member\" + * @type {Array} + * @memberof CreateInstanceRequest + */ + 'roleIds'?: Array; + /** + * + * @type {GroupAccessType} + * @memberof CreateInstanceRequest + */ + 'groupAccessType'?: GroupAccessType; + /** + * + * @type {boolean} + * @memberof CreateInstanceRequest + */ + 'queueEnabled'?: boolean; + /** + * The time after which users won\'t be allowed to join the instance. This doesn\'t work for public instances. + * @type {string} + * @memberof CreateInstanceRequest + */ + 'closedAt'?: string; + /** + * Only applies to invite type instances to make them invite+ + * @type {boolean} + * @memberof CreateInstanceRequest + */ + 'canRequestInvite'?: boolean; + /** + * Currently unused, but will eventually be a flag to set if the closing of the instance should kick people. + * @type {boolean} + * @memberof CreateInstanceRequest + */ + 'hardClose'?: boolean; + /** + * + * @type {boolean} + * @memberof CreateInstanceRequest + */ + 'inviteOnly'?: boolean; + /** + * + * @type {boolean} + * @memberof CreateInstanceRequest + */ + 'ageGate'?: boolean; + /** + * + * @type {boolean} + * @memberof CreateInstanceRequest + */ + 'instancePersistenceEnabled'?: boolean | null; + /** + * + * @type {string} + * @memberof CreateInstanceRequest + */ + 'displayName'?: string | null; + /** + * + * @type {InstanceContentSettings} + * @memberof CreateInstanceRequest + */ + 'contentSettings'?: InstanceContentSettings; +} +/** + * + * @export + * @interface CreateWorldRequest + */ +export interface CreateWorldRequest { + /** + * + * @type {string} + * @memberof CreateWorldRequest + */ + 'assetUrl': string; + /** + * + * @type {number} + * @memberof CreateWorldRequest + */ + 'assetVersion'?: number; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof CreateWorldRequest + */ + 'authorId'?: string; + /** + * + * @type {string} + * @memberof CreateWorldRequest + */ + 'authorName'?: string; + /** + * + * @type {number} + * @memberof CreateWorldRequest + */ + 'capacity'?: number; + /** + * + * @type {string} + * @memberof CreateWorldRequest + */ + 'description'?: string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof CreateWorldRequest + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof CreateWorldRequest + */ + 'imageUrl': string; + /** + * + * @type {string} + * @memberof CreateWorldRequest + */ + 'name': string; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof CreateWorldRequest + */ + 'platform'?: string; + /** + * + * @type {ReleaseStatus} + * @memberof CreateWorldRequest + */ + 'releaseStatus'?: ReleaseStatus; + /** + * + * @type {Array} + * @memberof CreateWorldRequest + */ + 'tags'?: Array; + /** + * + * @type {string} + * @memberof CreateWorldRequest + */ + 'unityPackageUrl'?: string; + /** + * + * @type {string} + * @memberof CreateWorldRequest + */ + 'unityVersion'?: string; +} +/** + * + * @export + * @interface CurrentUser + */ +export interface CurrentUser { + /** + * + * @type {number} + * @memberof CurrentUser + */ + 'acceptedTOSVersion': number; + /** + * + * @type {number} + * @memberof CurrentUser + */ + 'acceptedPrivacyVersion'?: number; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'accountDeletionDate'?: string | null; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'accountDeletionLog'?: Array | null; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'activeFriends'?: Array; + /** + * + * @type {AgeVerificationStatus} + * @memberof CurrentUser + */ + 'ageVerificationStatus': AgeVerificationStatus; + /** + * `true` if, user is age verified (not 18+). + * @type {boolean} + * @memberof CurrentUser + */ + 'ageVerified': boolean; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'allowAvatarCopying': boolean; + /** + * The auth token for NEWLY REGISTERED ACCOUNTS ONLY (/auth/register) + * @type {string} + * @memberof CurrentUser + */ + 'authToken'?: string; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'badges'?: Array; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'bio': string; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'bioLinks': Array; + /** + * These tags begin with `content_` and control content gating + * @type {Array} + * @memberof CurrentUser + */ + 'contentFilters'?: Array; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'currentAvatar': string; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof CurrentUser + */ + 'currentAvatarImageUrl': string; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof CurrentUser + */ + 'currentAvatarThumbnailImageUrl': string; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'currentAvatarTags': Array; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'date_joined': string; + /** + * + * @type {DeveloperType} + * @memberof CurrentUser + */ + 'developerType': DeveloperType; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'displayName': string; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'emailVerified': boolean; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'fallbackAvatar'?: string; + /** + * Always empty array. + * @type {Array} + * @memberof CurrentUser + * @deprecated + */ + 'friendGroupNames': Array; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'friendKey': string; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'friends': Array; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'hasBirthday': boolean; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'hideContentFilterSettings'?: boolean; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'userLanguage'?: string | null; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'userLanguageCode'?: string | null; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'hasEmail': boolean; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'hasLoggedInFromClient': boolean; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'hasPendingEmail': boolean; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof CurrentUser + */ + 'homeLocation': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof CurrentUser + */ + 'id': string; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'isAdult': boolean; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'isBoopingEnabled'?: boolean; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'isFriend': boolean; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'last_activity'?: string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'last_login': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'last_mobile': string | null; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof CurrentUser + */ + 'last_platform': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'obfuscatedEmail': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'obfuscatedPendingEmail': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'oculusId': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'googleId'?: string; + /** + * + * @type {object} + * @memberof CurrentUser + */ + 'googleDetails'?: object; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'picoId'?: string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'viveId'?: string; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'offlineFriends'?: Array; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'onlineFriends'?: Array; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'pastDisplayNames': Array; + /** + * + * @type {CurrentUserPresence} + * @memberof CurrentUser + */ + 'presence'?: CurrentUserPresence; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'platform_history'?: Array; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'profilePicOverride': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'profilePicOverrideThumbnail': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'pronouns': string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'queuedInstance'?: string | null; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'receiveMobileInvitations'?: boolean; + /** + * + * @type {UserState} + * @memberof CurrentUser + */ + 'state': UserState; + /** + * + * @type {UserStatus} + * @memberof CurrentUser + */ + 'status': UserStatus; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'statusDescription': string; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'statusFirstTime': boolean; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'statusHistory': Array; + /** + * + * @type {object} + * @memberof CurrentUser + */ + 'steamDetails': object; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'steamId': string; + /** + * + * @type {Array} + * @memberof CurrentUser + */ + 'tags': Array; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'twoFactorAuthEnabled': boolean; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'twoFactorAuthEnabledDate'?: string | null; + /** + * + * @type {boolean} + * @memberof CurrentUser + */ + 'unsubscribe': boolean; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'updated_at'?: string; + /** + * + * @type {string} + * @memberof CurrentUser + */ + 'userIcon': string; + /** + * -| **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). + * @type {string} + * @memberof CurrentUser + * @deprecated + */ + 'username'?: string; +} +/** + * + * @export + * @interface CurrentUserPlatformHistoryInner + */ +export interface CurrentUserPlatformHistoryInner { + /** + * + * @type {boolean} + * @memberof CurrentUserPlatformHistoryInner + */ + 'isMobile'?: boolean; + /** + * + * @type {string} + * @memberof CurrentUserPlatformHistoryInner + */ + 'platform'?: string | null; + /** + * + * @type {string} + * @memberof CurrentUserPlatformHistoryInner + */ + 'recorded'?: string; +} +/** + * + * @export + * @interface CurrentUserPresence + */ +export interface CurrentUserPresence { + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'avatarThumbnail'?: string | null; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'currentAvatarTags'?: string; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'displayName'?: string; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'debugflag'?: string; + /** + * + * @type {Array} + * @memberof CurrentUserPresence + */ + 'groups'?: Array | null; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof CurrentUserPresence + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'instance'?: string | null; + /** + * either an InstanceType or an empty string + * @type {string} + * @memberof CurrentUserPresence + */ + 'instanceType'?: string | null; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'isRejoining'?: string | null; + /** + * either a Platform or an empty string + * @type {string} + * @memberof CurrentUserPresence + */ + 'platform'?: string | null; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'profilePicOverride'?: string | null; + /** + * either a UserStatus or empty string + * @type {string} + * @memberof CurrentUserPresence + */ + 'status'?: string | null; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'travelingToInstance'?: string | null; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof CurrentUserPresence + */ + 'travelingToWorld'?: string; + /** + * + * @type {string} + * @memberof CurrentUserPresence + */ + 'userIcon'?: string | null; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof CurrentUserPresence + */ + 'world'?: string; +} +/** + * \"none\" User is a normal user \"trusted\" Unknown \"internal\" Is a VRChat Developer \"moderator\" Is a VRChat Moderator Staff can hide their developerType at will. + * @export + * @enum {string} + */ + +export const DeveloperType = { + None: 'none', + Trusted: 'trusted', + Internal: 'internal', + Moderator: 'moderator' +} as const; + +export type DeveloperType = typeof DeveloperType[keyof typeof DeveloperType]; + + +/** + * + * @export + * @interface Disable2FAResult + */ +export interface Disable2FAResult { + /** + * + * @type {boolean} + * @memberof Disable2FAResult + */ + 'removed': boolean; +} +/** + * + * @export + * @interface DynamicContentRow + */ +export interface DynamicContentRow { + /** + * + * @type {number} + * @memberof DynamicContentRow + */ + 'index'?: number; + /** + * + * @type {string} + * @memberof DynamicContentRow + */ + 'name': string; + /** + * Usually \"ThisPlatformSupported\", but can also be other values such as \"all\" or platform specific identifiers. + * @type {string} + * @memberof DynamicContentRow + */ + 'platform': string; + /** + * + * @type {string} + * @memberof DynamicContentRow + */ + 'sortHeading': string; + /** + * + * @type {string} + * @memberof DynamicContentRow + */ + 'sortOrder': string; + /** + * + * @type {string} + * @memberof DynamicContentRow + */ + 'sortOwnership': string; + /** + * Tag to filter content for this row. + * @type {string} + * @memberof DynamicContentRow + */ + 'tag'?: string; + /** + * Type is not present if it is a world. + * @type {string} + * @memberof DynamicContentRow + */ + 'type'?: string; +} +/** + * + * @export + * @interface Favorite + */ +export interface Favorite { + /** + * MUST be either AvatarID, UserID or WorldID. + * @type {string} + * @memberof Favorite + */ + 'favoriteId': string; + /** + * + * @type {string} + * @memberof Favorite + */ + 'id': string; + /** + * + * @type {Array} + * @memberof Favorite + */ + 'tags': Array; + /** + * + * @type {FavoriteType} + * @memberof Favorite + */ + 'type': FavoriteType; +} +/** + * + * @export + * @interface FavoriteGroup + */ +export interface FavoriteGroup { + /** + * + * @type {string} + * @memberof FavoriteGroup + */ + 'displayName': string; + /** + * + * @type {string} + * @memberof FavoriteGroup + */ + 'id': string; + /** + * + * @type {string} + * @memberof FavoriteGroup + */ + 'name': string; + /** + * + * @type {string} + * @memberof FavoriteGroup + */ + 'ownerDisplayName': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof FavoriteGroup + */ + 'ownerId': string; + /** + * + * @type {Array} + * @memberof FavoriteGroup + */ + 'tags': Array; + /** + * + * @type {FavoriteType} + * @memberof FavoriteGroup + */ + 'type': FavoriteType; + /** + * + * @type {FavoriteGroupVisibility} + * @memberof FavoriteGroup + */ + 'visibility': FavoriteGroupVisibility; +} +/** + * + * @export + * @interface FavoriteGroupLimits + */ +export interface FavoriteGroupLimits { + /** + * + * @type {number} + * @memberof FavoriteGroupLimits + */ + 'avatar': number; + /** + * + * @type {number} + * @memberof FavoriteGroupLimits + */ + 'friend': number; + /** + * + * @type {number} + * @memberof FavoriteGroupLimits + */ + 'world': number; +} +/** + * + * @export + * @enum {string} + */ + +export const FavoriteGroupVisibility = { + Private: 'private', + Friends: 'friends', + Public: 'public' +} as const; + +export type FavoriteGroupVisibility = typeof FavoriteGroupVisibility[keyof typeof FavoriteGroupVisibility]; + + +/** + * + * @export + * @interface FavoriteLimits + */ +export interface FavoriteLimits { + /** + * + * @type {number} + * @memberof FavoriteLimits + */ + 'defaultMaxFavoriteGroups': number; + /** + * + * @type {number} + * @memberof FavoriteLimits + */ + 'defaultMaxFavoritesPerGroup': number; + /** + * + * @type {FavoriteGroupLimits} + * @memberof FavoriteLimits + */ + 'maxFavoriteGroups': FavoriteGroupLimits; + /** + * + * @type {FavoriteGroupLimits} + * @memberof FavoriteLimits + */ + 'maxFavoritesPerGroup': FavoriteGroupLimits; +} +/** + * + * @export + * @enum {string} + */ + +export const FavoriteType = { + World: 'world', + Friend: 'friend', + Avatar: 'avatar' +} as const; + +export type FavoriteType = typeof FavoriteType[keyof typeof FavoriteType]; + + +/** + * + * @export + * @interface FavoritedWorld + */ +export interface FavoritedWorld { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof FavoritedWorld + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'authorName': string; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'capacity': number; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'description': string; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'recommendedCapacity'?: number; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'created_at': string; + /** + * + * @type {InstanceContentSettings} + * @memberof FavoritedWorld + */ + 'defaultContentSettings'?: InstanceContentSettings; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'favorites': number; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'favoriteGroup': string; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'favoriteId': string; + /** + * + * @type {boolean} + * @memberof FavoritedWorld + */ + 'featured': boolean; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'visits'?: number; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'heat': number; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof FavoritedWorld + */ + 'id': string; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'imageUrl': string; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'labsPublicationDate': string; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'name': string; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'occupants': number; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'organization': string; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'popularity': number; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'previewYoutubeId'?: string | null; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'publicationDate': string; + /** + * + * @type {ReleaseStatus} + * @memberof FavoritedWorld + */ + 'releaseStatus': ReleaseStatus; + /** + * + * @type {Array} + * @memberof FavoritedWorld + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'thumbnailImageUrl': string; + /** + * + * @type {Array} + * @memberof FavoritedWorld + */ + 'unityPackages': Array; + /** + * + * @type {string} + * @memberof FavoritedWorld + */ + 'updated_at': string; + /** + * + * @type {Array} + * @memberof FavoritedWorld + */ + 'urlList': Array; + /** + * + * @type {Array} + * @memberof FavoritedWorld + */ + 'udonProducts'?: Array; + /** + * + * @type {number} + * @memberof FavoritedWorld + */ + 'version': number; +} +/** + * + * @export + * @interface Feedback + */ +export interface Feedback { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Feedback + */ + 'commenterId': string; + /** + * + * @type {string} + * @memberof Feedback + */ + 'commenterName': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Feedback + */ + 'contentAuthorId': string; + /** + * + * @type {string} + * @memberof Feedback + */ + 'contentAuthorName': string | null; + /** + * + * @type {string} + * @memberof Feedback + */ + 'contentId': string; + /** + * + * @type {string} + * @memberof Feedback + */ + 'contentName'?: string; + /** + * + * @type {string} + * @memberof Feedback + */ + 'contentType': string; + /** + * + * @type {number} + * @memberof Feedback + */ + 'contentVersion': number | null; + /** + * + * @type {string} + * @memberof Feedback + */ + 'description'?: string | null; + /** + * + * @type {string} + * @memberof Feedback + */ + 'id': string; + /** + * + * @type {string} + * @memberof Feedback + */ + 'reason': string; + /** + * + * @type {Array} + * @memberof Feedback + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof Feedback + */ + 'type': string; +} +/** + * + * @export + * @interface FileAnalysis + */ +export interface FileAnalysis { + /** + * + * @type {FileAnalysisAvatarStats} + * @memberof FileAnalysis + */ + 'avatarStats': FileAnalysisAvatarStats; + /** + * + * @type {string} + * @memberof FileAnalysis + */ + 'created_at'?: string; + /** + * + * @type {string} + * @memberof FileAnalysis + */ + 'encryptionKey'?: string; + /** + * + * @type {number} + * @memberof FileAnalysis + */ + 'fileSize': number; + /** + * + * @type {string} + * @memberof FileAnalysis + */ + 'performanceRating'?: string; + /** + * + * @type {boolean} + * @memberof FileAnalysis + */ + 'success': boolean; + /** + * + * @type {number} + * @memberof FileAnalysis + */ + 'uncompressedSize': number; +} +/** + * + * @export + * @interface FileAnalysisAvatarStats + */ +export interface FileAnalysisAvatarStats { + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'animatorCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'audioSourceCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'blendShapeCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'boneCount': number; + /** + * + * @type {Array} + * @memberof FileAnalysisAvatarStats + */ + 'bounds': Array; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'cameraCount'?: number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'clothCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'constraintCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'contactCount': number; + /** + * + * @type {boolean} + * @memberof FileAnalysisAvatarStats + */ + 'customExpressions': boolean; + /** + * + * @type {boolean} + * @memberof FileAnalysisAvatarStats + */ + 'customizeAnimationLayers': boolean; + /** + * + * @type {boolean} + * @memberof FileAnalysisAvatarStats + */ + 'enableEyeLook': boolean; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'lightCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'lineRendererCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'lipSync': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'materialCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'materialSlotsUsed': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'meshCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'meshIndices': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'meshParticleMaxPolygons': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'meshPolygons': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'meshVertices': number; + /** + * + * @type {boolean} + * @memberof FileAnalysisAvatarStats + */ + 'particleCollisionEnabled': boolean; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'particleSystemCount': number; + /** + * + * @type {boolean} + * @memberof FileAnalysisAvatarStats + */ + 'particleTrailsEnabled': boolean; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'physBoneColliderCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'physBoneCollisionCheckCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'physBoneComponentCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'physBoneTransformCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'physicsColliders': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'physicsRigidbodies': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'skinnedMeshCount': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'skinnedMeshIndices': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'skinnedMeshPolygons': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'skinnedMeshVertices': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'totalClothVertices': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'totalIndices': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'totalMaxParticles': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'totalPolygons': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'totalTextureUsage': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'totalVertices': number; + /** + * + * @type {number} + * @memberof FileAnalysisAvatarStats + */ + 'trailRendererCount': number; + /** + * + * @type {boolean} + * @memberof FileAnalysisAvatarStats + */ + 'writeDefaultsUsed': boolean; +} +/** + * + * @export + * @interface FileData + */ +export interface FileData { + /** + * + * @type {string} + * @memberof FileData + */ + 'category': FileDataCategoryEnum; + /** + * + * @type {string} + * @memberof FileData + */ + 'fileName': string; + /** + * + * @type {string} + * @memberof FileData + */ + 'md5'?: string; + /** + * + * @type {number} + * @memberof FileData + */ + 'sizeInBytes': number; + /** + * + * @type {FileStatus} + * @memberof FileData + */ + 'status': FileStatus; + /** + * + * @type {string} + * @memberof FileData + */ + 'uploadId': string; + /** + * + * @type {string} + * @memberof FileData + */ + 'url': string; +} + +export const FileDataCategoryEnum = { + Multipart: 'multipart', + Queued: 'queued', + Simple: 'simple' +} as const; + +export type FileDataCategoryEnum = typeof FileDataCategoryEnum[keyof typeof FileDataCategoryEnum]; + +/** + * + * @export + * @enum {string} + */ + +export const FileStatus = { + Waiting: 'waiting', + Complete: 'complete', + None: 'none', + Queued: 'queued' +} as const; + +export type FileStatus = typeof FileStatus[keyof typeof FileStatus]; + + +/** + * + * @export + * @interface FileUploadURL + */ +export interface FileUploadURL { + /** + * + * @type {string} + * @memberof FileUploadURL + */ + 'url': string; +} +/** + * + * @export + * @interface FileVersion + */ +export interface FileVersion { + /** + * + * @type {string} + * @memberof FileVersion + */ + 'created_at': string; + /** + * Usually only present if `true` + * @type {boolean} + * @memberof FileVersion + */ + 'deleted'?: boolean; + /** + * + * @type {FileData} + * @memberof FileVersion + */ + 'delta'?: FileData; + /** + * + * @type {FileData} + * @memberof FileVersion + */ + 'file'?: FileData; + /** + * + * @type {FileData} + * @memberof FileVersion + */ + 'signature'?: FileData; + /** + * + * @type {FileStatus} + * @memberof FileVersion + */ + 'status': FileStatus; + /** + * Incremental version counter, can only be increased. + * @type {number} + * @memberof FileVersion + */ + 'version': number; +} +/** + * + * @export + * @interface FileVersionUploadStatus + */ +export interface FileVersionUploadStatus { + /** + * + * @type {string} + * @memberof FileVersionUploadStatus + */ + 'uploadId': string; + /** + * + * @type {string} + * @memberof FileVersionUploadStatus + */ + 'fileName': string; + /** + * + * @type {number} + * @memberof FileVersionUploadStatus + */ + 'nextPartNumber': number; + /** + * + * @type {number} + * @memberof FileVersionUploadStatus + */ + 'maxParts': number; + /** + * + * @type {Array} + * @memberof FileVersionUploadStatus + */ + 'parts': Array; + /** + * Unknown + * @type {Array} + * @memberof FileVersionUploadStatus + */ + 'etags': Array; +} +/** + * + * @export + * @interface FinishFileDataUploadRequest + */ +export interface FinishFileDataUploadRequest { + /** + * Array of ETags uploaded. + * @type {Set} + * @memberof FinishFileDataUploadRequest + */ + 'etags'?: Set; + /** + * Always a zero in string form, despite how many parts uploaded. + * @type {string} + * @memberof FinishFileDataUploadRequest + * @deprecated + */ + 'nextPartNumber': string; + /** + * Always a zero in string form, despite how many parts uploaded. + * @type {string} + * @memberof FinishFileDataUploadRequest + * @deprecated + */ + 'maxParts': string; +} +/** + * + * @export + * @interface FollowCalendarEventRequest + */ +export interface FollowCalendarEventRequest { + /** + * + * @type {boolean} + * @memberof FollowCalendarEventRequest + */ + 'isFollowing': boolean; +} +/** + * + * @export + * @interface FriendStatus + */ +export interface FriendStatus { + /** + * + * @type {boolean} + * @memberof FriendStatus + */ + 'incomingRequest': boolean; + /** + * + * @type {boolean} + * @memberof FriendStatus + */ + 'isFriend': boolean; + /** + * + * @type {boolean} + * @memberof FriendStatus + */ + 'outgoingRequest': boolean; +} +/** + * + * @export + * @interface GetGroupPosts200Response + */ +export interface GetGroupPosts200Response { + /** + * + * @type {Array} + * @memberof GetGroupPosts200Response + */ + 'posts'?: Array; +} +/** + * + * @export + * @interface GetUserGroupInstances200Response + */ +export interface GetUserGroupInstances200Response { + /** + * + * @type {string} + * @memberof GetUserGroupInstances200Response + */ + 'fetchedAt'?: string; + /** + * + * @type {Array} + * @memberof GetUserGroupInstances200Response + */ + 'instances'?: Array; +} +/** + * + * @export + * @interface Group + */ +export interface Group { + /** + * + * @type {boolean} + * @memberof Group + */ + 'ageVerificationSlotsAvailable'?: boolean; + /** + * + * @type {string} + * @memberof Group + */ + 'ageVerificationBetaCode'?: string; + /** + * + * @type {number} + * @memberof Group + */ + 'ageVerificationBetaSlots'?: number; + /** + * + * @type {Array} + * @memberof Group + */ + 'badges'?: Array; + /** + * + * @type {string} + * @memberof Group + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'shortCode'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'discriminator'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'iconUrl'?: string | null; + /** + * + * @type {string} + * @memberof Group + */ + 'bannerUrl'?: string | null; + /** + * + * @type {GroupPrivacy} + * @memberof Group + */ + 'privacy'?: GroupPrivacy; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Group + */ + 'ownerId'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'rules'?: string | null; + /** + * + * @type {Array} + * @memberof Group + */ + 'links'?: Array; + /** + * + * @type {Array} + * @memberof Group + */ + 'languages'?: Array; + /** + * + * @type {string} + * @memberof Group + */ + 'iconId'?: string | null; + /** + * + * @type {string} + * @memberof Group + */ + 'bannerId'?: string | null; + /** + * + * @type {number} + * @memberof Group + */ + 'memberCount'?: number; + /** + * + * @type {string} + * @memberof Group + */ + 'memberCountSyncedAt'?: string; + /** + * + * @type {boolean} + * @memberof Group + */ + 'isVerified'?: boolean; + /** + * + * @type {GroupJoinState} + * @memberof Group + */ + 'joinState'?: GroupJoinState; + /** + * + * @type {Array} + * @memberof Group + */ + 'tags'?: Array; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Group + */ + 'transferTargetId'?: string; + /** + * + * @type {Array} + * @memberof Group + */ + 'galleries'?: Array; + /** + * + * @type {string} + * @memberof Group + */ + 'createdAt'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'updatedAt'?: string; + /** + * + * @type {string} + * @memberof Group + */ + 'lastPostCreatedAt'?: string | null; + /** + * + * @type {number} + * @memberof Group + */ + 'onlineMemberCount'?: number; + /** + * + * @type {GroupMemberStatus} + * @memberof Group + */ + 'membershipStatus'?: GroupMemberStatus; + /** + * + * @type {GroupMyMember} + * @memberof Group + */ + 'myMember'?: GroupMyMember; + /** + * Only returned if ?includeRoles=true is specified. + * @type {Array} + * @memberof Group + */ + 'roles'?: Array | null; +} +/** + * Group access type when the instance type is \"group\" + * @export + * @enum {string} + */ + +export const GroupAccessType = { + Public: 'public', + Plus: 'plus', + Members: 'members' +} as const; + +export type GroupAccessType = typeof GroupAccessType[keyof typeof GroupAccessType]; + + +/** + * + * @export + * @interface GroupAnnouncement + */ +export interface GroupAnnouncement { + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'groupId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupAnnouncement + */ + 'authorId'?: string; + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'title'?: string | null; + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'text'?: string | null; + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'imageId'?: string; + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'imageUrl'?: string | null; + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'createdAt'?: string | null; + /** + * + * @type {string} + * @memberof GroupAnnouncement + */ + 'updatedAt'?: string | null; +} +/** + * + * @export + * @interface GroupAuditLogEntry + */ +export interface GroupAuditLogEntry { + /** + * + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'created_at'?: string; + /** + * + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'groupId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'actorId'?: string; + /** + * + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'actorDisplayName'?: string; + /** + * Typically a UserID, GroupID, GroupRoleID, or Location, but could be other types of IDs. + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'targetId'?: string; + /** + * The type of event that occurred. This is a string that is prefixed with the type of object that the event occurred on. For example, a group role update event would be prefixed with `group.role`. + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'eventType'?: string; + /** + * A human-readable description of the event. + * @type {string} + * @memberof GroupAuditLogEntry + */ + 'description'?: string; + /** + * The data associated with the event. The format of this data is dependent on the event type. + * @type {object} + * @memberof GroupAuditLogEntry + */ + 'data'?: object; +} +/** + * + * @export + * @interface GroupGallery + */ +export interface GroupGallery { + /** + * + * @type {string} + * @memberof GroupGallery + */ + 'id'?: string; + /** + * Name of the gallery. + * @type {string} + * @memberof GroupGallery + */ + 'name'?: string; + /** + * Description of the gallery. + * @type {string} + * @memberof GroupGallery + */ + 'description'?: string; + /** + * Whether the gallery is members only. + * @type {boolean} + * @memberof GroupGallery + */ + 'membersOnly'?: boolean; + /** + * + * @type {Array} + * @memberof GroupGallery + */ + 'roleIdsToView'?: Array | null; + /** + * + * @type {Array} + * @memberof GroupGallery + */ + 'roleIdsToSubmit'?: Array | null; + /** + * + * @type {Array} + * @memberof GroupGallery + */ + 'roleIdsToAutoApprove'?: Array | null; + /** + * + * @type {Array} + * @memberof GroupGallery + */ + 'roleIdsToManage'?: Array | null; + /** + * + * @type {string} + * @memberof GroupGallery + */ + 'createdAt'?: string; + /** + * + * @type {string} + * @memberof GroupGallery + */ + 'updatedAt'?: string; +} +/** + * + * @export + * @interface GroupGalleryImage + */ +export interface GroupGalleryImage { + /** + * + * @type {string} + * @memberof GroupGalleryImage + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupGalleryImage + */ + 'groupId'?: string; + /** + * + * @type {string} + * @memberof GroupGalleryImage + */ + 'galleryId'?: string; + /** + * + * @type {string} + * @memberof GroupGalleryImage + */ + 'fileId'?: string; + /** + * + * @type {string} + * @memberof GroupGalleryImage + */ + 'imageUrl'?: string; + /** + * + * @type {string} + * @memberof GroupGalleryImage + */ + 'createdAt'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupGalleryImage + */ + 'submittedByUserId'?: string; + /** + * + * @type {boolean} + * @memberof GroupGalleryImage + */ + 'approved'?: boolean; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupGalleryImage + */ + 'approvedByUserId'?: string; + /** + * + * @type {string} + * @memberof GroupGalleryImage + */ + 'approvedAt'?: string; +} +/** + * + * @export + * @interface GroupInstance + */ +export interface GroupInstance { + /** + * + * @type {string} + * @memberof GroupInstance + */ + 'instanceId': string; + /** + * InstanceID can be \"offline\" on User profiles if you are not friends with that user and \"private\" if you are friends and user is in private instance. + * @type {string} + * @memberof GroupInstance + */ + 'location': string; + /** + * + * @type {World} + * @memberof GroupInstance + */ + 'world': World; + /** + * + * @type {number} + * @memberof GroupInstance + */ + 'memberCount': number; +} +/** + * + * @export + * @enum {string} + */ + +export const GroupJoinRequestAction = { + Accept: 'accept', + Reject: 'reject' +} as const; + +export type GroupJoinRequestAction = typeof GroupJoinRequestAction[keyof typeof GroupJoinRequestAction]; + + +/** + * + * @export + * @enum {string} + */ + +export const GroupJoinState = { + Closed: 'closed', + Invite: 'invite', + Request: 'request', + Open: 'open' +} as const; + +export type GroupJoinState = typeof GroupJoinState[keyof typeof GroupJoinState]; + + +/** + * + * @export + * @interface GroupLimitedMember + */ +export interface GroupLimitedMember { + /** + * + * @type {string} + * @memberof GroupLimitedMember + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupLimitedMember + */ + 'groupId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupLimitedMember + */ + 'userId'?: string; + /** + * Whether the user is representing the group. This makes the group show up above the name tag in-game. + * @type {boolean} + * @memberof GroupLimitedMember + */ + 'isRepresenting'?: boolean; + /** + * + * @type {Array} + * @memberof GroupLimitedMember + */ + 'roleIds'?: Array; + /** + * + * @type {Array} + * @memberof GroupLimitedMember + */ + 'mRoleIds'?: Array; + /** + * + * @type {string} + * @memberof GroupLimitedMember + */ + 'joinedAt'?: string | null; + /** + * + * @type {GroupMemberStatus} + * @memberof GroupLimitedMember + */ + 'membershipStatus'?: GroupMemberStatus; + /** + * + * @type {string} + * @memberof GroupLimitedMember + */ + 'visibility'?: string; + /** + * + * @type {boolean} + * @memberof GroupLimitedMember + */ + 'isSubscribedToAnnouncements'?: boolean; + /** + * Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user. + * @type {string} + * @memberof GroupLimitedMember + */ + 'createdAt'?: string | null; + /** + * Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user. + * @type {string} + * @memberof GroupLimitedMember + */ + 'bannedAt'?: string | null; + /** + * Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user. + * @type {string} + * @memberof GroupLimitedMember + */ + 'managerNotes'?: string | null; + /** + * + * @type {string} + * @memberof GroupLimitedMember + */ + 'lastPostReadAt'?: string | null; + /** + * + * @type {boolean} + * @memberof GroupLimitedMember + */ + 'hasJoinedFromPurchase'?: boolean; +} +/** + * + * @export + * @interface GroupMember + */ +export interface GroupMember { + /** + * + * @type {string} + * @memberof GroupMember + */ + 'acceptedByDisplayName'?: string | null; + /** + * + * @type {string} + * @memberof GroupMember + */ + 'acceptedById'?: string | null; + /** + * + * @type {string} + * @memberof GroupMember + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupMember + */ + 'groupId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupMember + */ + 'userId'?: string; + /** + * Whether the user is representing the group. This makes the group show up above the name tag in-game. + * @type {boolean} + * @memberof GroupMember + */ + 'isRepresenting'?: boolean; + /** + * + * @type {GroupMemberLimitedUser} + * @memberof GroupMember + */ + 'user'?: GroupMemberLimitedUser; + /** + * + * @type {Array} + * @memberof GroupMember + */ + 'roleIds'?: Array; + /** + * + * @type {Array} + * @memberof GroupMember + */ + 'mRoleIds'?: Array; + /** + * + * @type {string} + * @memberof GroupMember + */ + 'joinedAt'?: string | null; + /** + * + * @type {GroupMemberStatus} + * @memberof GroupMember + */ + 'membershipStatus'?: GroupMemberStatus; + /** + * + * @type {string} + * @memberof GroupMember + */ + 'visibility'?: string; + /** + * + * @type {boolean} + * @memberof GroupMember + */ + 'isSubscribedToAnnouncements'?: boolean; + /** + * Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user. + * @type {string} + * @memberof GroupMember + */ + 'createdAt'?: string | null; + /** + * Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user. + * @type {string} + * @memberof GroupMember + */ + 'bannedAt'?: string | null; + /** + * Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user. + * @type {string} + * @memberof GroupMember + */ + 'managerNotes'?: string | null; + /** + * + * @type {string} + * @memberof GroupMember + */ + 'lastPostReadAt'?: string | null; + /** + * + * @type {boolean} + * @memberof GroupMember + */ + 'hasJoinedFromPurchase'?: boolean; +} +/** + * Only visible via the /groups/:groupId/members endpoint, **not** when fetching a specific user. + * @export + * @interface GroupMemberLimitedUser + */ +export interface GroupMemberLimitedUser { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupMemberLimitedUser + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupMemberLimitedUser + */ + 'displayName'?: string; + /** + * + * @type {string} + * @memberof GroupMemberLimitedUser + */ + 'thumbnailUrl'?: string | null; + /** + * + * @type {string} + * @memberof GroupMemberLimitedUser + */ + 'iconUrl'?: string; + /** + * + * @type {string} + * @memberof GroupMemberLimitedUser + */ + 'profilePicOverride'?: string; + /** + * + * @type {string} + * @memberof GroupMemberLimitedUser + */ + 'currentAvatarThumbnailImageUrl'?: string | null; + /** + * + * @type {Array} + * @memberof GroupMemberLimitedUser + */ + 'currentAvatarTags'?: Array; +} +/** + * + * @export + * @enum {string} + */ + +export const GroupMemberStatus = { + Inactive: 'inactive', + Member: 'member', + Requested: 'requested', + Invited: 'invited', + Banned: 'banned', + Userblocked: 'userblocked' +} as const; + +export type GroupMemberStatus = typeof GroupMemberStatus[keyof typeof GroupMemberStatus]; + + +/** + * + * @export + * @interface GroupMyMember + */ +export interface GroupMyMember { + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'groupId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupMyMember + */ + 'userId'?: string; + /** + * + * @type {Array} + * @memberof GroupMyMember + */ + 'roleIds'?: Array; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'acceptedByDisplayName'?: string | null; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'acceptedById'?: string | null; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'createdAt'?: string; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'managerNotes'?: string; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'membershipStatus'?: string; + /** + * + * @type {boolean} + * @memberof GroupMyMember + */ + 'isSubscribedToAnnouncements'?: boolean; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'visibility'?: string; + /** + * + * @type {boolean} + * @memberof GroupMyMember + */ + 'isRepresenting'?: boolean; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'joinedAt'?: string; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'bannedAt'?: string | null; + /** + * + * @type {boolean} + * @memberof GroupMyMember + */ + 'has2FA'?: boolean; + /** + * + * @type {boolean} + * @memberof GroupMyMember + */ + 'hasJoinedFromPurchase'?: boolean; + /** + * + * @type {string} + * @memberof GroupMyMember + */ + 'lastPostReadAt'?: string | null; + /** + * + * @type {Array} + * @memberof GroupMyMember + */ + 'mRoleIds'?: Array; + /** + * + * @type {Array} + * @memberof GroupMyMember + */ + 'permissions'?: Array; +} +/** + * A permission that can be granted to a role in a group. + * @export + * @interface GroupPermission + */ +export interface GroupPermission { + /** + * The name of the permission. + * @type {string} + * @memberof GroupPermission + */ + 'name'?: string; + /** + * The display name of the permission. + * @type {string} + * @memberof GroupPermission + */ + 'displayName'?: string; + /** + * Human-readable description of the permission. + * @type {string} + * @memberof GroupPermission + */ + 'help'?: string; + /** + * Whether this permission is a \"management\" permission. + * @type {boolean} + * @memberof GroupPermission + */ + 'isManagementPermission'?: boolean; + /** + * Whether the user is allowed to add this permission to a role. + * @type {boolean} + * @memberof GroupPermission + */ + 'allowedToAdd'?: boolean; +} +/** + * + * @export + * @enum {string} + */ + +export const GroupPermissions = { + group_all: '*', + group_announcement_manage: 'group-announcement-manage', + group_audit_view: 'group-audit-view', + group_bans_manage: 'group-bans-manage', + group_data_manage: 'group-data-manage', + group_default_role_manage: 'group-default-role-manage', + group_galleries_manage: 'group-galleries-manage', + group_instance_age_gated_create: 'group-instance-age-gated-create', + group_instance_join: 'group-instance-join', + group_instance_manage: 'group-instance-manage', + group_instance_moderate: 'group-instance-moderate', + group_instance_open_create: 'group-instance-open-create', + group_instance_plus_create: 'group-instance-plus-create', + group_instance_plus_portal: 'group-instance-plus-portal', + group_instance_plus_portal_unlocked: 'group-instance-plus-portal-unlocked', + group_instance_public_create: 'group-instance-public-create', + group_instance_queue_priority: 'group-instance-queue-priority', + group_instance_restricted_create: 'group-instance-restricted-create', + group_invites_manage: 'group-invites-manage', + group_members_manage: 'group-members-manage', + group_members_remove: 'group-members-remove', + group_members_viewall: 'group-members-viewall', + group_roles_assign: 'group-roles-assign', + group_roles_manage: 'group-roles-manage', + group_calendar_manage: 'group-calendar-manage' +} as const; + +export type GroupPermissions = typeof GroupPermissions[keyof typeof GroupPermissions]; + + +/** + * + * @export + * @interface GroupPost + */ +export interface GroupPost { + /** + * + * @type {string} + * @memberof GroupPost + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupPost + */ + 'groupId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupPost + */ + 'authorId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof GroupPost + */ + 'editorId'?: string; + /** + * + * @type {GroupPostVisibility} + * @memberof GroupPost + */ + 'visibility'?: GroupPostVisibility; + /** + * + * @type {Array} + * @memberof GroupPost + */ + 'roleId'?: Array; + /** + * + * @type {string} + * @memberof GroupPost + */ + 'title'?: string; + /** + * + * @type {string} + * @memberof GroupPost + */ + 'text'?: string; + /** + * + * @type {string} + * @memberof GroupPost + */ + 'imageId'?: string; + /** + * + * @type {string} + * @memberof GroupPost + */ + 'imageUrl'?: string | null; + /** + * + * @type {string} + * @memberof GroupPost + */ + 'createdAt'?: string; + /** + * + * @type {string} + * @memberof GroupPost + */ + 'updatedAt'?: string; +} +/** + * + * @export + * @enum {string} + */ + +export const GroupPostVisibility = { + Group: 'group', + Public: 'public' +} as const; + +export type GroupPostVisibility = typeof GroupPostVisibility[keyof typeof GroupPostVisibility]; + + +/** + * + * @export + * @enum {string} + */ + +export const GroupPrivacy = { + Default: 'default', + Private: 'private' +} as const; + +export type GroupPrivacy = typeof GroupPrivacy[keyof typeof GroupPrivacy]; + + +/** + * + * @export + * @interface GroupRole + */ +export interface GroupRole { + /** + * + * @type {string} + * @memberof GroupRole + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof GroupRole + */ + 'groupId'?: string; + /** + * + * @type {string} + * @memberof GroupRole + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof GroupRole + */ + 'description'?: string; + /** + * + * @type {boolean} + * @memberof GroupRole + */ + 'isSelfAssignable'?: boolean; + /** + * + * @type {Array} + * @memberof GroupRole + */ + 'permissions'?: Array; + /** + * + * @type {boolean} + * @memberof GroupRole + */ + 'isManagementRole'?: boolean; + /** + * + * @type {boolean} + * @memberof GroupRole + */ + 'requiresTwoFactor'?: boolean; + /** + * + * @type {boolean} + * @memberof GroupRole + */ + 'requiresPurchase'?: boolean; + /** + * + * @type {number} + * @memberof GroupRole + */ + 'order'?: number; + /** + * + * @type {string} + * @memberof GroupRole + */ + 'createdAt'?: string; + /** + * + * @type {string} + * @memberof GroupRole + */ + 'updatedAt'?: string; +} +/** + * + * @export + * @enum {string} + */ + +export const GroupRoleTemplate = { + Default: 'default', + ManagedFree: 'managedFree', + ManagedInvite: 'managedInvite', + ManagedRequest: 'managedRequest' +} as const; + +export type GroupRoleTemplate = typeof GroupRoleTemplate[keyof typeof GroupRoleTemplate]; + + +/** + * + * @export + * @interface GroupRoleTemplateValues + */ +export interface GroupRoleTemplateValues { + /** + * + * @type {Array} + * @memberof GroupRoleTemplateValues + */ + 'basePermissions': Array; + /** + * + * @type {string} + * @memberof GroupRoleTemplateValues + */ + 'description': string; + /** + * + * @type {string} + * @memberof GroupRoleTemplateValues + */ + 'name': string; + /** + * + * @type {GroupRoleTemplateValuesRoles} + * @memberof GroupRoleTemplateValues + */ + 'roles': GroupRoleTemplateValuesRoles; +} +/** + * + * @export + * @interface GroupRoleTemplateValuesRoles + */ +export interface GroupRoleTemplateValuesRoles { + /** + * + * @type {string} + * @memberof GroupRoleTemplateValuesRoles + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof GroupRoleTemplateValuesRoles + */ + 'name'?: string; + /** + * + * @type {Array} + * @memberof GroupRoleTemplateValuesRoles + */ + 'basePermissions'?: Array; + /** + * + * @type {boolean} + * @memberof GroupRoleTemplateValuesRoles + */ + 'isAddedOnJoin'?: boolean; +} +/** + * + * @export + * @enum {string} + */ + +export const GroupSearchSort = { + Asc: 'joinedAt:asc', + Desc: 'joinedAt:desc' +} as const; + +export type GroupSearchSort = typeof GroupSearchSort[keyof typeof GroupSearchSort]; + + +/** + * + * @export + * @enum {string} + */ + +export const GroupUserVisibility = { + Visible: 'visible', + Hidden: 'hidden', + Friends: 'friends' +} as const; + +export type GroupUserVisibility = typeof GroupUserVisibility[keyof typeof GroupUserVisibility]; + + +/** + * + * @export + * @interface InfoPush + */ +export interface InfoPush { + /** + * + * @type {string} + * @memberof InfoPush + */ + 'id': string; + /** + * + * @type {boolean} + * @memberof InfoPush + */ + 'isEnabled': boolean; + /** + * + * @type {ReleaseStatus} + * @memberof InfoPush + */ + 'releaseStatus': ReleaseStatus; + /** + * + * @type {number} + * @memberof InfoPush + */ + 'priority': number; + /** + * + * @type {Array} + * @memberof InfoPush + */ + 'tags': Array; + /** + * + * @type {InfoPushData} + * @memberof InfoPush + */ + 'data': InfoPushData; + /** + * Unknown usage, MD5 + * @type {string} + * @memberof InfoPush + */ + 'hash': string; + /** + * + * @type {string} + * @memberof InfoPush + */ + 'createdAt': string; + /** + * + * @type {string} + * @memberof InfoPush + */ + 'updatedAt': string; + /** + * + * @type {string} + * @memberof InfoPush + */ + 'startDate'?: string; + /** + * + * @type {string} + * @memberof InfoPush + */ + 'endDate'?: string; +} +/** + * + * @export + * @interface InfoPushData + */ +export interface InfoPushData { + /** + * + * @type {DynamicContentRow} + * @memberof InfoPushData + */ + 'contentList'?: DynamicContentRow; + /** + * + * @type {string} + * @memberof InfoPushData + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof InfoPushData + */ + 'imageUrl'?: string; + /** + * + * @type {string} + * @memberof InfoPushData + */ + 'name'?: string; + /** + * + * @type {InfoPushDataClickable} + * @memberof InfoPushData + */ + 'onPressed'?: InfoPushDataClickable; + /** + * + * @type {string} + * @memberof InfoPushData + */ + 'template'?: string; + /** + * + * @type {string} + * @memberof InfoPushData + */ + 'version'?: string; + /** + * + * @type {InfoPushDataArticle} + * @memberof InfoPushData + */ + 'article'?: InfoPushDataArticle; +} +/** + * + * @export + * @interface InfoPushDataArticle + */ +export interface InfoPushDataArticle { + /** + * + * @type {InfoPushDataArticleContent} + * @memberof InfoPushDataArticle + */ + 'content'?: InfoPushDataArticleContent; +} +/** + * + * @export + * @interface InfoPushDataArticleContent + */ +export interface InfoPushDataArticleContent { + /** + * + * @type {string} + * @memberof InfoPushDataArticleContent + */ + 'text'?: string; + /** + * + * @type {string} + * @memberof InfoPushDataArticleContent + */ + 'imageUrl'?: string; + /** + * + * @type {InfoPushDataClickable} + * @memberof InfoPushDataArticleContent + */ + 'onPressed'?: InfoPushDataClickable; +} +/** + * + * @export + * @interface InfoPushDataClickable + */ +export interface InfoPushDataClickable { + /** + * + * @type {string} + * @memberof InfoPushDataClickable + */ + 'command': InfoPushDataClickableCommandEnum; + /** + * In case of OpenURL, this would contain the link. + * @type {Array} + * @memberof InfoPushDataClickable + */ + 'parameters'?: Array; +} + +export const InfoPushDataClickableCommandEnum = { + OpenUrl: 'OpenURL', + OpenVrcPlusMenu: 'OpenVRCPlusMenu', + OpenSafetyMenu: 'OpenSafetyMenu', + CannedWorldSearch: 'CannedWorldSearch' +} as const; + +export type InfoPushDataClickableCommandEnum = typeof InfoPushDataClickableCommandEnum[keyof typeof InfoPushDataClickableCommandEnum]; + +/** + * * `hidden` field is only present if InstanceType is `hidden` aka \"Friends+\", and is instance creator. * `friends` field is only present if InstanceType is `friends` aka \"Friends\", and is instance creator. * `private` field is only present if InstanceType is `private` aka \"Invite\" or \"Invite+\", and is instance creator. + * @export + * @interface Instance + */ +export interface Instance { + /** + * + * @type {boolean} + * @memberof Instance + */ + 'active': boolean; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'ageGate'?: boolean | null; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'canRequestInvite': boolean; + /** + * + * @type {number} + * @memberof Instance + */ + 'capacity': number; + /** + * Always returns \"unknown\". + * @type {string} + * @memberof Instance + * @deprecated + */ + 'clientNumber': string; + /** + * + * @type {InstanceContentSettings} + * @memberof Instance + */ + 'contentSettings': InstanceContentSettings; + /** + * + * @type {string} + * @memberof Instance + */ + 'displayName': string | null; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'full': boolean; + /** + * + * @type {number} + * @memberof Instance + */ + 'gameServerVersion'?: number; + /** + * InstanceID can be \"offline\" on User profiles if you are not friends with that user and \"private\" if you are friends and user is in private instance. + * @type {string} + * @memberof Instance + */ + 'id': string; + /** + * + * @type {string} + * @memberof Instance + */ + 'instanceId': string; + /** + * + * @type {string} + * @memberof Instance + */ + 'instancePersistenceEnabled': string | null; + /** + * InstanceID can be \"offline\" on User profiles if you are not friends with that user and \"private\" if you are friends and user is in private instance. + * @type {string} + * @memberof Instance + */ + 'location': string; + /** + * + * @type {number} + * @memberof Instance + */ + 'n_users': number; + /** + * + * @type {string} + * @memberof Instance + */ + 'name': string; + /** + * A groupId if the instance type is \"group\", null if instance type is public, or a userId otherwise + * @type {string} + * @memberof Instance + */ + 'ownerId'?: string | null; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'permanent': boolean; + /** + * + * @type {Region} + * @memberof Instance + */ + 'photonRegion': Region; + /** + * + * @type {InstancePlatforms} + * @memberof Instance + */ + 'platforms': InstancePlatforms; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'playerPersistenceEnabled': boolean | null; + /** + * + * @type {InstanceRegion} + * @memberof Instance + */ + 'region': InstanceRegion; + /** + * + * @type {string} + * @memberof Instance + */ + 'secureName': string; + /** + * + * @type {string} + * @memberof Instance + */ + 'shortName'?: string | null; + /** + * The tags array on Instances usually contain the language tags of the people in the instance. + * @type {Array} + * @memberof Instance + */ + 'tags': Array; + /** + * + * @type {InstanceType} + * @memberof Instance + */ + 'type': InstanceType; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof Instance + */ + 'worldId': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Instance + */ + 'hidden'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Instance + */ + 'friends'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Instance + */ + 'private'?: string; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'queueEnabled': boolean; + /** + * + * @type {number} + * @memberof Instance + */ + 'queueSize': number; + /** + * + * @type {number} + * @memberof Instance + */ + 'recommendedCapacity': number; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'roleRestricted'?: boolean; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'strict': boolean; + /** + * + * @type {number} + * @memberof Instance + */ + 'userCount': number; + /** + * + * @type {World} + * @memberof Instance + */ + 'world': World; + /** + * The users field is present on instances created by the requesting user. + * @type {Array} + * @memberof Instance + */ + 'users'?: Array; + /** + * + * @type {GroupAccessType} + * @memberof Instance + */ + 'groupAccessType'?: GroupAccessType; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'hasCapacityForYou'?: boolean; + /** + * + * @type {string} + * @memberof Instance + */ + 'nonce'?: string; + /** + * + * @type {string} + * @memberof Instance + */ + 'closedAt'?: string | null; + /** + * + * @type {boolean} + * @memberof Instance + */ + 'hardClose'?: boolean | null; +} +/** + * Types of dynamic user content permitted in an instance + * @export + * @interface InstanceContentSettings + */ +export interface InstanceContentSettings { + /** + * + * @type {boolean} + * @memberof InstanceContentSettings + */ + 'drones'?: boolean; + /** + * + * @type {boolean} + * @memberof InstanceContentSettings + */ + 'emoji'?: boolean; + /** + * + * @type {boolean} + * @memberof InstanceContentSettings + */ + 'pedestals'?: boolean; + /** + * + * @type {boolean} + * @memberof InstanceContentSettings + */ + 'prints'?: boolean; + /** + * + * @type {boolean} + * @memberof InstanceContentSettings + */ + 'stickers'?: boolean; + /** + * + * @type {boolean} + * @memberof InstanceContentSettings + */ + 'props'?: boolean; +} +/** + * + * @export + * @interface InstancePlatforms + */ +export interface InstancePlatforms { + /** + * + * @type {number} + * @memberof InstancePlatforms + */ + 'android': number; + /** + * + * @type {number} + * @memberof InstancePlatforms + */ + 'ios'?: number; + /** + * + * @type {number} + * @memberof InstancePlatforms + */ + 'standalonewindows': number; +} +/** + * Instance region + * @export + * @enum {string} + */ + +export const InstanceRegion = { + Us: 'us', + Use: 'use', + Eu: 'eu', + Jp: 'jp', + Unknown: 'unknown' +} as const; + +export type InstanceRegion = typeof InstanceRegion[keyof typeof InstanceRegion]; + + +/** + * + * @export + * @interface InstanceShortNameResponse + */ +export interface InstanceShortNameResponse { + /** + * + * @type {string} + * @memberof InstanceShortNameResponse + */ + 'secureName': string; + /** + * + * @type {string} + * @memberof InstanceShortNameResponse + */ + 'shortName'?: string | null; +} +/** + * + * @export + * @enum {string} + */ + +export const InstanceType = { + Public: 'public', + Hidden: 'hidden', + Friends: 'friends', + Private: 'private', + Group: 'group' +} as const; + +export type InstanceType = typeof InstanceType[keyof typeof InstanceType]; + + +/** + * + * @export + * @interface Inventory + */ +export interface Inventory { + /** + * + * @type {Array} + * @memberof Inventory + */ + 'data': Array; + /** + * + * @type {number} + * @memberof Inventory + */ + 'totalCount': number; +} +/** + * + * @export + * @interface InventoryDrop + */ +export interface InventoryDrop { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof InventoryDrop + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'created_at': string; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'dropExpiryDate': string | null; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'endDropDate': string; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'id': string; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'name': string; + /** + * + * @type {InventoryNotificationDetails} + * @memberof InventoryDrop + */ + 'notificationDetails': InventoryNotificationDetails; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'startDropDate': string; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'status': string; + /** + * + * @type {Array} + * @memberof InventoryDrop + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'targetGroup': string; + /** + * + * @type {Array} + * @memberof InventoryDrop + */ + 'templateIds': Array; + /** + * + * @type {string} + * @memberof InventoryDrop + */ + 'updated_at': string; +} +/** + * + * @export + * @interface InventoryItem + */ +export interface InventoryItem { + /** + * + * @type {Array} + * @memberof InventoryItem + */ + 'collections': Array; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'created_at': string; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'description': string; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'expiryDate': string | null; + /** + * + * @type {Array} + * @memberof InventoryItem + */ + 'flags': Array; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof InventoryItem + */ + 'holderId': string; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'id': string; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'imageUrl': string; + /** + * + * @type {boolean} + * @memberof InventoryItem + */ + 'isArchived': boolean; + /** + * + * @type {boolean} + * @memberof InventoryItem + */ + 'isSeen': boolean; + /** + * + * @type {InventoryItemType} + * @memberof InventoryItem + */ + 'itemType': InventoryItemType; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'itemTypeLabel': string; + /** + * + * @type {InventoryMetadata} + * @memberof InventoryItem + */ + 'metadata': InventoryMetadata; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'name': string; + /** + * + * @type {Array} + * @memberof InventoryItem + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'templateId': string; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'template_created_at': string; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'template_updated_at': string; + /** + * + * @type {string} + * @memberof InventoryItem + */ + 'updated_at': string; +} +/** + * + * @export + * @enum {string} + */ + +export const InventoryItemType = { + Bundle: 'bundle', + Prop: 'prop', + Emoji: 'emoji', + Sticker: 'sticker' +} as const; + +export type InventoryItemType = typeof InventoryItemType[keyof typeof InventoryItemType]; + + +/** + * + * @export + * @interface InventoryMetadata + */ +export interface InventoryMetadata { + [key: string]: any; + + /** + * Only in bundles + * @type {Array} + * @memberof InventoryMetadata + */ + 'inventoryItemsToInstantiate'?: Array; + /** + * + * @type {boolean} + * @memberof InventoryMetadata + */ + 'animated'?: boolean; + /** + * + * @type {string} + * @memberof InventoryMetadata + */ + 'animationStyle'?: string; + /** + * + * @type {string} + * @memberof InventoryMetadata + */ + 'assetBundleId'?: string; + /** + * + * @type {string} + * @memberof InventoryMetadata + */ + 'fileId'?: string; + /** + * + * @type {string} + * @memberof InventoryMetadata + */ + 'imageUrl'?: string; + /** + * + * @type {string} + * @memberof InventoryMetadata + */ + 'maskTag'?: string; + /** + * + * @type {string} + * @memberof InventoryMetadata + */ + 'propId'?: string; +} +/** + * + * @export + * @interface InventoryNotificationDetails + */ +export interface InventoryNotificationDetails { + /** + * + * @type {string} + * @memberof InventoryNotificationDetails + */ + 'body': string; + /** + * + * @type {string} + * @memberof InventoryNotificationDetails + */ + 'imageUrl': string; + /** + * + * @type {string} + * @memberof InventoryNotificationDetails + */ + 'title': string; +} +/** + * + * @export + * @interface InventorySpawn + */ +export interface InventorySpawn { + /** + * + * @type {string} + * @memberof InventorySpawn + */ + 'token': string; + /** + * + * @type {number} + * @memberof InventorySpawn + */ + 'version': number; +} +/** + * + * @export + * @interface InventoryTemplate + */ +export interface InventoryTemplate { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof InventoryTemplate + */ + 'authorId': string; + /** + * + * @type {Array} + * @memberof InventoryTemplate + */ + 'collections': Array; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'created_at': string; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'description': string; + /** + * + * @type {Array} + * @memberof InventoryTemplate + */ + 'flags': Array; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'id': string; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'imageUrl': string; + /** + * + * @type {InventoryItemType} + * @memberof InventoryTemplate + */ + 'itemType': InventoryItemType; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'itemTypeLabel': string; + /** + * + * @type {InventoryMetadata} + * @memberof InventoryTemplate + */ + 'metadata'?: InventoryMetadata; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'name': string; + /** + * + * @type {InventoryNotificationDetails} + * @memberof InventoryTemplate + */ + 'notificationDetails'?: InventoryNotificationDetails; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'status': string; + /** + * + * @type {Array} + * @memberof InventoryTemplate + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof InventoryTemplate + */ + 'updated_at': string; +} +/** + * + * @export + * @interface InviteMessage + */ +export interface InviteMessage { + /** + * + * @type {boolean} + * @memberof InviteMessage + */ + 'canBeUpdated': boolean; + /** + * + * @type {string} + * @memberof InviteMessage + */ + 'id': string; + /** + * + * @type {string} + * @memberof InviteMessage + */ + 'message': string; + /** + * + * @type {InviteMessageType} + * @memberof InviteMessage + */ + 'messageType': InviteMessageType; + /** + * Changes to 60 when updated, although probably server-side configurable. + * @type {number} + * @memberof InviteMessage + */ + 'remainingCooldownMinutes': number; + /** + * + * @type {number} + * @memberof InviteMessage + */ + 'slot': number; + /** + * + * @type {string} + * @memberof InviteMessage + */ + 'updatedAt': string; +} +/** + * + * @export + * @enum {string} + */ + +export const InviteMessageType = { + Message: 'message', + Response: 'response', + Request: 'request', + RequestResponse: 'requestResponse' +} as const; + +export type InviteMessageType = typeof InviteMessageType[keyof typeof InviteMessageType]; + + +/** + * + * @export + * @interface InviteRequest + */ +export interface InviteRequest { + /** + * InstanceID can be \"offline\" on User profiles if you are not friends with that user and \"private\" if you are friends and user is in private instance. + * @type {string} + * @memberof InviteRequest + */ + 'instanceId': string; + /** + * + * @type {number} + * @memberof InviteRequest + */ + 'messageSlot'?: number; +} +/** + * + * @export + * @interface InviteResponse + */ +export interface InviteResponse { + /** + * + * @type {number} + * @memberof InviteResponse + */ + 'responseSlot': number; +} +/** + * + * @export + * @interface Jam + */ +export interface Jam { + /** + * + * @type {string} + * @memberof Jam + */ + 'description': string; + /** + * + * @type {string} + * @memberof Jam + */ + 'id': string; + /** + * + * @type {boolean} + * @memberof Jam + */ + 'isVisible': boolean; + /** + * + * @type {string} + * @memberof Jam + */ + 'moreInfo': string; + /** + * One of: - submissions_open - closed + * @type {string} + * @memberof Jam + */ + 'state': string; + /** + * + * @type {JamStateChangeDates} + * @memberof Jam + */ + 'stateChangeDates': JamStateChangeDates; + /** + * + * @type {string} + * @memberof Jam + */ + 'submissionContentGateDate': string | null; + /** + * + * @type {boolean} + * @memberof Jam + */ + 'submissionContentGated': boolean; + /** + * + * @type {string} + * @memberof Jam + */ + 'title': string; + /** + * + * @type {string} + * @memberof Jam + */ + 'updated_at': string; +} +/** + * + * @export + * @interface JamStateChangeDates + */ +export interface JamStateChangeDates { + /** + * + * @type {string} + * @memberof JamStateChangeDates + */ + 'closed'?: string | null; + /** + * + * @type {string} + * @memberof JamStateChangeDates + */ + 'submissionsClosed'?: string | null; + /** + * + * @type {string} + * @memberof JamStateChangeDates + */ + 'submissionsOpened'?: string | null; + /** + * + * @type {string} + * @memberof JamStateChangeDates + */ + 'winnersSelected'?: string | null; +} +/** + * + * @export + * @interface License + */ +export interface License { + /** + * Either a AvatarID, LicenseGroupID, PermissionID or ProductID. This depends on the `forType` field. + * @type {string} + * @memberof License + */ + 'forId': string; + /** + * + * @type {LicenseType} + * @memberof License + */ + 'forType': LicenseType; + /** + * + * @type {string} + * @memberof License + */ + 'forName': string; + /** + * + * @type {LicenseAction} + * @memberof License + */ + 'forAction': LicenseAction; +} +/** + * + * @export + * @enum {string} + */ + +export const LicenseAction = { + Wear: 'wear', + Have: 'have' +} as const; + +export type LicenseAction = typeof LicenseAction[keyof typeof LicenseAction]; + + +/** + * + * @export + * @interface LicenseGroup + */ +export interface LicenseGroup { + /** + * + * @type {string} + * @memberof LicenseGroup + */ + 'id': string; + /** + * + * @type {string} + * @memberof LicenseGroup + */ + 'name': string; + /** + * + * @type {string} + * @memberof LicenseGroup + */ + 'description': string; + /** + * + * @type {Array} + * @memberof LicenseGroup + */ + 'licenses': Array; +} +/** + * + * @export + * @enum {string} + */ + +export const LicenseType = { + Avatar: 'avatar', + LicenseGroup: 'licenseGroup', + Permission: 'permission', + Product: 'product' +} as const; + +export type LicenseType = typeof LicenseType[keyof typeof LicenseType]; + + +/** + * + * @export + * @interface LimitedGroup + */ +export interface LimitedGroup { + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'shortCode'?: string; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'discriminator'?: string; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'iconUrl'?: string | null; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'bannerUrl'?: string | null; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof LimitedGroup + */ + 'ownerId'?: string; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'rules'?: string | null; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'iconId'?: string | null; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'bannerId'?: string | null; + /** + * + * @type {number} + * @memberof LimitedGroup + */ + 'memberCount'?: number; + /** + * + * @type {Array} + * @memberof LimitedGroup + */ + 'tags'?: Array; + /** + * + * @type {string} + * @memberof LimitedGroup + */ + 'createdAt'?: string; + /** + * + * @type {GroupMemberStatus} + * @memberof LimitedGroup + */ + 'membershipStatus'?: GroupMemberStatus; + /** + * + * @type {boolean} + * @memberof LimitedGroup + */ + 'isSearchable'?: boolean; + /** + * + * @type {Array} + * @memberof LimitedGroup + */ + 'galleries'?: Array; +} +/** + * + * @export + * @interface LimitedUnityPackage + */ +export interface LimitedUnityPackage { + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof LimitedUnityPackage + */ + 'platform': string; + /** + * + * @type {string} + * @memberof LimitedUnityPackage + */ + 'unityVersion': string; +} +/** + * User object received when querying your friends list + * @export + * @interface LimitedUserFriend + */ +export interface LimitedUserFriend { + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'bio'?: string; + /** + * + * @type {Array} + * @memberof LimitedUserFriend + */ + 'bioLinks'?: Array; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof LimitedUserFriend + */ + 'currentAvatarImageUrl': string; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof LimitedUserFriend + */ + 'currentAvatarThumbnailImageUrl'?: string; + /** + * + * @type {Array} + * @memberof LimitedUserFriend + */ + 'currentAvatarTags'?: Array; + /** + * + * @type {DeveloperType} + * @memberof LimitedUserFriend + */ + 'developerType': DeveloperType; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'displayName': string; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'friendKey': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof LimitedUserFriend + */ + 'id': string; + /** + * + * @type {boolean} + * @memberof LimitedUserFriend + */ + 'isFriend': boolean; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'imageUrl': string; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof LimitedUserFriend + */ + 'last_platform': string; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'location': string; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'last_login': string | null; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'last_activity': string | null; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'last_mobile': string | null; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'platform': string; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'profilePicOverride': string; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'profilePicOverrideThumbnail': string; + /** + * + * @type {UserStatus} + * @memberof LimitedUserFriend + */ + 'status': UserStatus; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'statusDescription': string; + /** + * <- Always empty. + * @type {Array} + * @memberof LimitedUserFriend + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof LimitedUserFriend + */ + 'userIcon': string; +} +/** + * + * @export + * @interface LimitedUserGroups + */ +export interface LimitedUserGroups { + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'shortCode'?: string; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'discriminator'?: string; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'iconId'?: string | null; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'iconUrl'?: string | null; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'bannerId'?: string | null; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'bannerUrl'?: string | null; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'privacy'?: string; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'lastPostCreatedAt'?: string | null; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof LimitedUserGroups + */ + 'ownerId'?: string; + /** + * + * @type {number} + * @memberof LimitedUserGroups + */ + 'memberCount'?: number; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'groupId'?: string; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'memberVisibility'?: string; + /** + * + * @type {boolean} + * @memberof LimitedUserGroups + */ + 'isRepresenting'?: boolean; + /** + * + * @type {boolean} + * @memberof LimitedUserGroups + */ + 'mutualGroup'?: boolean; + /** + * + * @type {string} + * @memberof LimitedUserGroups + */ + 'lastPostReadAt'?: string | null; +} +/** + * User object received when querying your own instance + * @export + * @interface LimitedUserInstance + */ +export interface LimitedUserInstance { + /** + * + * @type {AgeVerificationStatus} + * @memberof LimitedUserInstance + */ + 'ageVerificationStatus': AgeVerificationStatus; + /** + * `true` if, user is age verified (not 18+). + * @type {boolean} + * @memberof LimitedUserInstance + */ + 'ageVerified': boolean; + /** + * + * @type {boolean} + * @memberof LimitedUserInstance + */ + 'allowAvatarCopying': boolean; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'bio'?: string; + /** + * + * @type {Array} + * @memberof LimitedUserInstance + */ + 'bioLinks'?: Array; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof LimitedUserInstance + */ + 'currentAvatarImageUrl': string; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof LimitedUserInstance + */ + 'currentAvatarThumbnailImageUrl': string; + /** + * + * @type {Array} + * @memberof LimitedUserInstance + */ + 'currentAvatarTags': Array; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'date_joined': string | null; + /** + * + * @type {DeveloperType} + * @memberof LimitedUserInstance + */ + 'developerType': DeveloperType; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'displayName': string; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'friendKey': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof LimitedUserInstance + */ + 'id': string; + /** + * + * @type {boolean} + * @memberof LimitedUserInstance + */ + 'isFriend': boolean; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'imageUrl'?: string; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof LimitedUserInstance + */ + 'last_platform': string; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'last_activity': string | null; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'last_mobile': string | null; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'platform'?: string; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'profilePicOverride': string; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'profilePicOverrideThumbnail': string; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'pronouns': string; + /** + * + * @type {UserState} + * @memberof LimitedUserInstance + */ + 'state': UserState; + /** + * + * @type {UserStatus} + * @memberof LimitedUserInstance + */ + 'status': UserStatus; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'statusDescription': string; + /** + * + * @type {Array} + * @memberof LimitedUserInstance + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof LimitedUserInstance + */ + 'userIcon': string; +} +/** + * User object received when searching + * @export + * @interface LimitedUserSearch + */ +export interface LimitedUserSearch { + /** + * + * @type {string} + * @memberof LimitedUserSearch + */ + 'bio'?: string; + /** + * + * @type {Array} + * @memberof LimitedUserSearch + */ + 'bioLinks'?: Array; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof LimitedUserSearch + */ + 'currentAvatarImageUrl': string; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof LimitedUserSearch + */ + 'currentAvatarThumbnailImageUrl': string; + /** + * + * @type {Array} + * @memberof LimitedUserSearch + */ + 'currentAvatarTags': Array; + /** + * + * @type {DeveloperType} + * @memberof LimitedUserSearch + */ + 'developerType': DeveloperType; + /** + * + * @type {string} + * @memberof LimitedUserSearch + */ + 'displayName': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof LimitedUserSearch + */ + 'id': string; + /** + * + * @type {boolean} + * @memberof LimitedUserSearch + */ + 'isFriend': boolean; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof LimitedUserSearch + */ + 'last_platform': string; + /** + * + * @type {string} + * @memberof LimitedUserSearch + */ + 'profilePicOverride': string; + /** + * + * @type {string} + * @memberof LimitedUserSearch + */ + 'pronouns'?: string; + /** + * + * @type {UserStatus} + * @memberof LimitedUserSearch + */ + 'status': UserStatus; + /** + * + * @type {string} + * @memberof LimitedUserSearch + */ + 'statusDescription': string; + /** + * <- Always empty. + * @type {Array} + * @memberof LimitedUserSearch + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof LimitedUserSearch + */ + 'userIcon': string; +} +/** + * + * @export + * @interface LimitedWorld + */ +export interface LimitedWorld { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof LimitedWorld + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'authorName': string; + /** + * + * @type {number} + * @memberof LimitedWorld + */ + 'capacity': number; + /** + * + * @type {number} + * @memberof LimitedWorld + */ + 'recommendedCapacity'?: number; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'created_at': string; + /** + * + * @type {InstanceContentSettings} + * @memberof LimitedWorld + */ + 'defaultContentSettings'?: InstanceContentSettings; + /** + * + * @type {number} + * @memberof LimitedWorld + */ + 'favorites': number; + /** + * + * @type {number} + * @memberof LimitedWorld + */ + 'visits'?: number; + /** + * + * @type {number} + * @memberof LimitedWorld + */ + 'heat': number; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof LimitedWorld + */ + 'id': string; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'imageUrl': string; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'labsPublicationDate': string; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'name': string; + /** + * + * @type {number} + * @memberof LimitedWorld + */ + 'occupants': number; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'organization': string; + /** + * + * @type {number} + * @memberof LimitedWorld + */ + 'popularity': number; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'previewYoutubeId'?: string | null; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'publicationDate': string; + /** + * + * @type {ReleaseStatus} + * @memberof LimitedWorld + */ + 'releaseStatus': ReleaseStatus; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'storeId'?: string; + /** + * + * @type {Array} + * @memberof LimitedWorld + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'thumbnailImageUrl': string; + /** + * + * @type {Array} + * @memberof LimitedWorld + */ + 'unityPackages': Array; + /** + * + * @type {string} + * @memberof LimitedWorld + */ + 'updated_at': string; + /** + * + * @type {Array} + * @memberof LimitedWorld + */ + 'udonProducts'?: Array; +} +/** + * + * @export + * @enum {string} + */ + +export const MIMEType = { + ImageJpeg: 'image/jpeg', + ImageJpg: 'image/jpg', + ImagePng: 'image/png', + ImageWebp: 'image/webp', + ImageGif: 'image/gif', + ImageBmp: 'image/bmp', + ImageSvgxml: 'image/svg+xml', + ImageTiff: 'image/tiff', + ApplicationXAvatar: 'application/x-avatar', + ApplicationXWorld: 'application/x-world', + ApplicationGzip: 'application/gzip', + ApplicationXRsyncSignature: 'application/x-rsync-signature', + ApplicationXRsyncDelta: 'application/x-rsync-delta', + ApplicationOctetStream: 'application/octet-stream' +} as const; + +export type MIMEType = typeof MIMEType[keyof typeof MIMEType]; + + +/** + * + * @export + * @interface ModelError + */ +export interface ModelError { + /** + * + * @type {Response} + * @memberof ModelError + */ + 'error'?: Response; +} +/** + * + * @export + * @interface ModelFile + */ +export interface ModelFile { + /** + * + * @type {string} + * @memberof ModelFile + */ + 'animationStyle'?: string; + /** + * + * @type {string} + * @memberof ModelFile + */ + 'maskTag'?: string; + /** + * + * @type {string} + * @memberof ModelFile + */ + 'extension': string; + /** + * + * @type {string} + * @memberof ModelFile + */ + 'id': string; + /** + * + * @type {MIMEType} + * @memberof ModelFile + */ + 'mimeType': MIMEType; + /** + * + * @type {string} + * @memberof ModelFile + */ + 'name': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof ModelFile + */ + 'ownerId': string; + /** + * + * @type {Array} + * @memberof ModelFile + */ + 'tags': Array; + /** + * + * @type {Set} + * @memberof ModelFile + */ + 'versions': Set; +} +/** + * + * @export + * @interface ModerateUserRequest + */ +export interface ModerateUserRequest { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof ModerateUserRequest + */ + 'moderated': string; + /** + * + * @type {PlayerModerationType} + * @memberof ModerateUserRequest + */ + 'type': PlayerModerationType; +} +/** + * + * @export + * @interface Notification + */ +export interface Notification { + /** + * + * @type {string} + * @memberof Notification + */ + 'created_at': string; + /** + * **NOTICE:** This is not a JSON object when received from the REST API, but it is when received from the Websocket API. When received from the REST API, this is a json **encoded** object, meaning you have to json-de-encode to get the NotificationDetail object depending on the NotificationType. + * @type {string} + * @memberof Notification + */ + 'details': string; + /** + * + * @type {string} + * @memberof Notification + */ + 'id': string; + /** + * + * @type {string} + * @memberof Notification + */ + 'message': string; + /** + * Not included in notification objects received from the Websocket API + * @type {boolean} + * @memberof Notification + */ + 'seen'?: boolean; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Notification + */ + 'receiverUserId'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Notification + */ + 'senderUserId': string; + /** + * -| **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). + * @type {string} + * @memberof Notification + * @deprecated + */ + 'senderUsername'?: string; + /** + * + * @type {NotificationType} + * @memberof Notification + */ + 'type': NotificationType; +} +/** + * + * @export + * @interface NotificationDetailInvite + */ +export interface NotificationDetailInvite { + /** + * + * @type {string} + * @memberof NotificationDetailInvite + */ + 'inviteMessage'?: string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof NotificationDetailInvite + */ + 'worldId': string; + /** + * + * @type {string} + * @memberof NotificationDetailInvite + */ + 'worldName': string; +} +/** + * + * @export + * @interface NotificationDetailInviteResponse + */ +export interface NotificationDetailInviteResponse { + /** + * + * @type {string} + * @memberof NotificationDetailInviteResponse + */ + 'inResponseTo': string; + /** + * + * @type {string} + * @memberof NotificationDetailInviteResponse + */ + 'responseMessage': string; +} +/** + * + * @export + * @interface NotificationDetailRequestInvite + */ +export interface NotificationDetailRequestInvite { + /** + * TODO: Does this still exist? + * @type {string} + * @memberof NotificationDetailRequestInvite + */ + 'platform'?: string; + /** + * Used when using InviteMessage Slot. + * @type {string} + * @memberof NotificationDetailRequestInvite + */ + 'requestMessage'?: string; +} +/** + * + * @export + * @interface NotificationDetailRequestInviteResponse + */ +export interface NotificationDetailRequestInviteResponse { + /** + * + * @type {string} + * @memberof NotificationDetailRequestInviteResponse + */ + 'inResponseTo': string; + /** + * Used when using InviteMessage Slot. + * @type {string} + * @memberof NotificationDetailRequestInviteResponse + */ + 'requestMessage'?: string; +} +/** + * + * @export + * @interface NotificationDetailVoteToKick + */ +export interface NotificationDetailVoteToKick { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof NotificationDetailVoteToKick + */ + 'initiatorUserId': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof NotificationDetailVoteToKick + */ + 'userToKickId': string; +} +/** + * + * @export + * @enum {string} + */ + +export const NotificationType = { + FriendRequest: 'friendRequest', + Invite: 'invite', + InviteResponse: 'inviteResponse', + Message: 'message', + RequestInvite: 'requestInvite', + RequestInviteResponse: 'requestInviteResponse', + Votetokick: 'votetokick' +} as const; + +export type NotificationType = typeof NotificationType[keyof typeof NotificationType]; + + +/** + * + * @export + * @enum {string} + */ + +export const OrderOption = { + Ascending: 'ascending', + Descending: 'descending' +} as const; + +export type OrderOption = typeof OrderOption[keyof typeof OrderOption]; + + +/** + * + * @export + * @interface PaginatedCalendarEventList + */ +export interface PaginatedCalendarEventList { + /** + * + * @type {Array} + * @memberof PaginatedCalendarEventList + */ + 'results'?: Array; + /** + * The total number of results that the query would return if there were no pagination. + * @type {number} + * @memberof PaginatedCalendarEventList + */ + 'totalCount'?: number; + /** + * Whether there are more results after this page. + * @type {boolean} + * @memberof PaginatedCalendarEventList + */ + 'hasNext'?: boolean; +} +/** + * + * @export + * @interface PaginatedGroupAuditLogEntryList + */ +export interface PaginatedGroupAuditLogEntryList { + /** + * + * @type {Array} + * @memberof PaginatedGroupAuditLogEntryList + */ + 'results'?: Array; + /** + * The total number of results that the query would return if there were no pagination. + * @type {number} + * @memberof PaginatedGroupAuditLogEntryList + */ + 'totalCount'?: number; + /** + * Whether there are more results after this page. + * @type {boolean} + * @memberof PaginatedGroupAuditLogEntryList + */ + 'hasNext'?: boolean; +} +/** + * + * @export + * @interface PastDisplayName + */ +export interface PastDisplayName { + /** + * + * @type {string} + * @memberof PastDisplayName + */ + 'displayName': string; + /** + * + * @type {string} + * @memberof PastDisplayName + */ + 'updated_at': string; +} +/** + * + * @export + * @interface Pending2FAResult + */ +export interface Pending2FAResult { + /** + * + * @type {string} + * @memberof Pending2FAResult + */ + 'qrCodeDataUrl': string; + /** + * + * @type {string} + * @memberof Pending2FAResult + */ + 'secret': string; +} +/** + * Info about the performance limits on a platform + * @export + * @interface PerformanceLimiterInfo + */ +export interface PerformanceLimiterInfo { + /** + * Maximum amount of seats. -1 means no limit. + * @type {number} + * @memberof PerformanceLimiterInfo + */ + 'maxSeats': number; +} +/** + * Avatar Performance ratings. + * @export + * @enum {string} + */ + +export const PerformanceRatings = { + None: 'None', + Excellent: 'Excellent', + Good: 'Good', + Medium: 'Medium', + Poor: 'Poor', + VeryPoor: 'VeryPoor' +} as const; + +export type PerformanceRatings = typeof PerformanceRatings[keyof typeof PerformanceRatings]; + + +/** + * + * @export + * @interface Permission + */ +export interface Permission { + /** + * + * @type {string} + * @memberof Permission + */ + 'displayName'?: string; + /** + * + * @type {string} + * @memberof Permission + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof Permission + */ + 'id': string; + /** + * + * @type {string} + * @memberof Permission + */ + 'ownerDisplayName': string; + /** + * + * @type {string} + * @memberof Permission + */ + 'name': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Permission + */ + 'ownerId': string; + /** + * + * @type {string} + * @memberof Permission + */ + 'type'?: string; + /** + * + * @type {object} + * @memberof Permission + */ + 'data'?: object; +} +/** + * Build information for a platform + * @export + * @interface PlatformBuildInfo + */ +export interface PlatformBuildInfo { + /** + * Minimum build number required for the platform + * @type {number} + * @memberof PlatformBuildInfo + */ + 'minBuildNumber': number; + /** + * Redirection URL for updating the app + * @type {string} + * @memberof PlatformBuildInfo + */ + 'redirectionAddress'?: string; +} +/** + * + * @export + * @interface PlayerModeration + */ +export interface PlayerModeration { + /** + * + * @type {string} + * @memberof PlayerModeration + */ + 'created': string; + /** + * + * @type {string} + * @memberof PlayerModeration + */ + 'id': string; + /** + * + * @type {string} + * @memberof PlayerModeration + */ + 'sourceDisplayName': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof PlayerModeration + */ + 'sourceUserId': string; + /** + * + * @type {string} + * @memberof PlayerModeration + */ + 'targetDisplayName': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof PlayerModeration + */ + 'targetUserId': string; + /** + * + * @type {PlayerModerationType} + * @memberof PlayerModeration + */ + 'type': PlayerModerationType; +} +/** + * + * @export + * @enum {string} + */ + +export const PlayerModerationType = { + Mute: 'mute', + Unmute: 'unmute', + Block: 'block', + Unblock: 'unblock', + InteractOn: 'interactOn', + InteractOff: 'interactOff' +} as const; + +export type PlayerModerationType = typeof PlayerModerationType[keyof typeof PlayerModerationType]; + + +/** + * Info about a print + * @export + * @interface Print + */ +export interface Print { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Print + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof Print + */ + 'authorName': string; + /** + * + * @type {string} + * @memberof Print + */ + 'createdAt': string; + /** + * + * @type {PrintFiles} + * @memberof Print + */ + 'files': PrintFiles; + /** + * + * @type {string} + * @memberof Print + */ + 'id': string; + /** + * + * @type {string} + * @memberof Print + */ + 'note': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Print + */ + 'ownerId'?: string; + /** + * + * @type {string} + * @memberof Print + */ + 'timestamp': string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof Print + */ + 'worldId': string; + /** + * + * @type {string} + * @memberof Print + */ + 'worldName': string; +} +/** + * + * @export + * @interface PrintFiles + */ +export interface PrintFiles { + /** + * + * @type {string} + * @memberof PrintFiles + */ + 'fileId'?: string; + /** + * Link to file, e.g. https://api.vrchat.cloud/api/1/file/file_66fe782d-f2bd-4462-9761-1d766d7b2b26/1/file + * @type {string} + * @memberof PrintFiles + */ + 'image'?: string; +} +/** + * + * @export + * @interface Product + */ +export interface Product { + /** + * + * @type {boolean} + * @memberof Product + */ + 'archived': boolean; + /** + * + * @type {string} + * @memberof Product + */ + 'created': string; + /** + * + * @type {string} + * @memberof Product + */ + 'description': string; + /** + * + * @type {string} + * @memberof Product + */ + 'displayName': string; + /** + * + * @type {boolean} + * @memberof Product + */ + 'groupAccess'?: boolean; + /** + * + * @type {boolean} + * @memberof Product + */ + 'groupAccessRemove'?: boolean; + /** + * + * @type {string} + * @memberof Product + */ + 'groupId'?: string; + /** + * + * @type {string} + * @memberof Product + */ + 'groupRoleId'?: string; + /** + * + * @type {string} + * @memberof Product + */ + 'id': string; + /** + * + * @type {string} + * @memberof Product + */ + 'imageId': string; + /** + * + * @type {Array} + * @memberof Product + */ + 'parentListings': Array; + /** + * + * @type {ProductType} + * @memberof Product + */ + 'productType': ProductType; + /** + * + * @type {string} + * @memberof Product + */ + 'sellerDisplayName': string; + /** + * + * @type {string} + * @memberof Product + */ + 'sellerId': string; + /** + * + * @type {Array} + * @memberof Product + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof Product + */ + 'updated': string | null; + /** + * + * @type {boolean} + * @memberof Product + */ + 'useForSubscriberList'?: boolean; +} +/** + * + * @export + * @interface ProductListing + */ +export interface ProductListing { + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'active': boolean; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'archived': boolean; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'buyerRefundable': boolean; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'created': string; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'description': string; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'displayName': string; + /** + * + * @type {number} + * @memberof ProductListing + */ + 'duration'?: number; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'durationType'?: string; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'groupIcon': string; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'groupId': string; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'groupName': string; + /** + * + * @type {Array} + * @memberof ProductListing + */ + 'hydratedProducts'?: Array; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'id': string; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'imageId': string; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'instant': boolean; + /** + * + * @type {ProductListingType} + * @memberof ProductListing + */ + 'listingType': ProductListingType; + /** + * + * @type {Array} + * @memberof ProductListing + */ + 'listingVariants': Array; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'permanent': boolean; + /** + * + * @type {number} + * @memberof ProductListing + */ + 'priceTokens': number; + /** + * + * @type {Array} + * @memberof ProductListing + */ + 'productIds': Array; + /** + * + * @type {ProductType} + * @memberof ProductListing + */ + 'productType': ProductType; + /** + * + * @type {Array} + * @memberof ProductListing + */ + 'products': Array; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'quantifiable'?: boolean; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'recurrable': boolean; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'refundable': boolean; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'sellerDisplayName': string; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'sellerId': string; + /** + * + * @type {boolean} + * @memberof ProductListing + */ + 'stackable': boolean; + /** + * + * @type {Array} + * @memberof ProductListing + */ + 'storeIds': Array; + /** + * + * @type {Array} + * @memberof ProductListing + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof ProductListing + */ + 'updated': string | null; +} +/** + * + * @export + * @enum {string} + */ + +export const ProductListingType = { + Subscription: 'subscription' +} as const; + +export type ProductListingType = typeof ProductListingType[keyof typeof ProductListingType]; + + +/** + * + * @export + * @interface ProductListingVariant + */ +export interface ProductListingVariant { + /** + * + * @type {string} + * @memberof ProductListingVariant + */ + 'effectiveFrom'?: string; + /** + * + * @type {string} + * @memberof ProductListingVariant + */ + 'listingVariantId': string; + /** + * + * @type {boolean} + * @memberof ProductListingVariant + */ + 'nonRefundable': boolean; + /** + * + * @type {number} + * @memberof ProductListingVariant + */ + 'quantity': number; + /** + * + * @type {boolean} + * @memberof ProductListingVariant + */ + 'sellerVariant': boolean; + /** + * + * @type {number} + * @memberof ProductListingVariant + */ + 'unitPriceTokens': number; +} +/** + * + * @export + * @enum {string} + */ + +export const ProductType = { + Listing: 'listing', + Role: 'role', + Udon: 'udon' +} as const; + +export type ProductType = typeof ProductType[keyof typeof ProductType]; + + +/** + * + * @export + * @interface Prop + */ +export interface Prop { + /** + * + * @type {string} + * @memberof Prop + */ + '_created_at': string; + /** + * + * @type {string} + * @memberof Prop + */ + '_updated_at': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Prop + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof Prop + */ + 'authorName': string; + /** + * + * @type {string} + * @memberof Prop + */ + 'description': string; + /** + * + * @type {string} + * @memberof Prop + */ + 'id': string; + /** + * + * @type {string} + * @memberof Prop + */ + 'imageUrl': string; + /** + * + * @type {number} + * @memberof Prop + */ + 'maxCountPerUser': number; + /** + * + * @type {string} + * @memberof Prop + */ + 'name': string; + /** + * + * @type {ReleaseStatus} + * @memberof Prop + */ + 'releaseStatus': ReleaseStatus; + /** + * + * @type {number} + * @memberof Prop + */ + 'spawnType': number; + /** + * + * @type {Array} + * @memberof Prop + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof Prop + */ + 'thumbnailImageUrl': string; + /** + * + * @type {string} + * @memberof Prop + */ + 'unityPackageUrl': string | null; + /** + * + * @type {Set} + * @memberof Prop + */ + 'unityPackages': Set; + /** + * + * @type {number} + * @memberof Prop + */ + 'worldPlacementMask': number; +} +/** + * + * @export + * @interface PropUnityPackage + */ +export interface PropUnityPackage { + /** + * + * @type {string} + * @memberof PropUnityPackage + */ + 'assetUrl': string; + /** + * + * @type {number} + * @memberof PropUnityPackage + */ + 'assetVersion': number; + /** + * + * @type {string} + * @memberof PropUnityPackage + */ + 'propSignature': string; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof PropUnityPackage + */ + 'platform': string; + /** + * + * @type {string} + * @memberof PropUnityPackage + */ + 'unityVersion': string; + /** + * + * @type {string} + * @memberof PropUnityPackage + */ + 'variant': string; +} +/** + * API/Photon region. + * @export + * @enum {string} + */ + +export const Region = { + Us: 'us', + Use: 'use', + Usw: 'usw', + Usx: 'usx', + Eu: 'eu', + Jp: 'jp', + Unknown: 'unknown' +} as const; + +export type Region = typeof Region[keyof typeof Region]; + + +/** + * + * @export + * @interface RegisterUserAccountRequest + */ +export interface RegisterUserAccountRequest { + /** + * Display Name / Username (Username is a sanitized version) + * @type {string} + * @memberof RegisterUserAccountRequest + */ + 'username': string; + /** + * Password + * @type {string} + * @memberof RegisterUserAccountRequest + */ + 'password': string; + /** + * Email address + * @type {string} + * @memberof RegisterUserAccountRequest + */ + 'email': string; + /** + * Birth year + * @type {string} + * @memberof RegisterUserAccountRequest + */ + 'year': string; + /** + * Birth month of year + * @type {string} + * @memberof RegisterUserAccountRequest + */ + 'month': string; + /** + * Birth day of month + * @type {string} + * @memberof RegisterUserAccountRequest + */ + 'day': string; + /** + * Captcha code + * @type {string} + * @memberof RegisterUserAccountRequest + */ + 'captchaCode': string; + /** + * Whether to recieve promotional emails + * @type {boolean} + * @memberof RegisterUserAccountRequest + */ + 'subscribe': boolean; + /** + * The most recent version of the TOS + * @type {number} + * @memberof RegisterUserAccountRequest + */ + 'acceptedTOSVersion': number; +} +/** + * + * @export + * @enum {string} + */ + +export const ReleaseStatus = { + Public: 'public', + Private: 'private', + Hidden: 'hidden', + All: 'all' +} as const; + +export type ReleaseStatus = typeof ReleaseStatus[keyof typeof ReleaseStatus]; + + +/** + * A category used for reporting content + * @export + * @interface ReportCategory + */ +export interface ReportCategory { + /** + * The description of the report category + * @type {string} + * @memberof ReportCategory + */ + 'description'?: string; + /** + * The title of the report category + * @type {string} + * @memberof ReportCategory + */ + 'title'?: string; + /** + * The label of the report category + * @type {string} + * @memberof ReportCategory + */ + 'text': string; + /** + * The tooltip that describes the category + * @type {string} + * @memberof ReportCategory + */ + 'tooltip': string; +} +/** + * A reason used for reporting users + * @export + * @interface ReportReason + */ +export interface ReportReason { + /** + * The label or name of the report reason + * @type {string} + * @memberof ReportReason + */ + 'text': string; + /** + * A brief explanation of what this reason entails + * @type {string} + * @memberof ReportReason + */ + 'tooltip': string; +} +/** + * + * @export + * @interface RepresentedGroup + */ +export interface RepresentedGroup { + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'shortCode'?: string; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'discriminator'?: string; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'iconId'?: string | null; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'iconUrl'?: string | null; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'bannerId'?: string | null; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'bannerUrl'?: string | null; + /** + * + * @type {GroupPrivacy} + * @memberof RepresentedGroup + */ + 'privacy'?: GroupPrivacy; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof RepresentedGroup + */ + 'ownerId'?: string; + /** + * + * @type {number} + * @memberof RepresentedGroup + */ + 'memberCount'?: number; + /** + * + * @type {string} + * @memberof RepresentedGroup + */ + 'groupId'?: string; + /** + * + * @type {GroupUserVisibility} + * @memberof RepresentedGroup + */ + 'memberVisibility'?: GroupUserVisibility; + /** + * + * @type {boolean} + * @memberof RepresentedGroup + */ + 'isRepresenting'?: boolean; +} +/** + * + * @export + * @interface RequestInviteRequest + */ +export interface RequestInviteRequest { + /** + * + * @type {number} + * @memberof RequestInviteRequest + */ + 'requestSlot'?: number; +} +/** + * + * @export + * @interface RespondGroupJoinRequest + */ +export interface RespondGroupJoinRequest { + /** + * + * @type {GroupJoinRequestAction} + * @memberof RespondGroupJoinRequest + */ + 'action': GroupJoinRequestAction; + /** + * Whether to block the user from requesting again + * @type {boolean} + * @memberof RespondGroupJoinRequest + */ + 'block'?: boolean; +} +/** + * + * @export + * @interface Response + */ +export interface Response { + /** + * + * @type {string} + * @memberof Response + */ + 'message'?: string; + /** + * + * @type {number} + * @memberof Response + */ + 'status_code': number; +} +/** + * + * @export + * @interface SentNotification + */ +export interface SentNotification { + /** + * + * @type {string} + * @memberof SentNotification + */ + 'created_at': string; + /** + * + * @type {object} + * @memberof SentNotification + */ + 'details': object; + /** + * + * @type {string} + * @memberof SentNotification + */ + 'id': string; + /** + * + * @type {string} + * @memberof SentNotification + */ + 'message': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof SentNotification + */ + 'receiverUserId': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof SentNotification + */ + 'senderUserId': string; + /** + * -| **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). + * @type {string} + * @memberof SentNotification + * @deprecated + */ + 'senderUsername'?: string; + /** + * + * @type {NotificationType} + * @memberof SentNotification + */ + 'type': NotificationType; +} +/** + * Statistics about the user\'s currently queued service request + * @export + * @interface ServiceQueueStats + */ +export interface ServiceQueueStats { + /** + * + * @type {number} + * @memberof ServiceQueueStats + */ + 'estimatedServiceDurationSeconds': number; +} +/** + * Status information for a service request + * @export + * @interface ServiceStatus + */ +export interface ServiceStatus { + /** + * + * @type {string} + * @memberof ServiceStatus + */ + 'created_at': string; + /** + * The id of this service, NOT the id of the thing this service was requested for. + * @type {string} + * @memberof ServiceStatus + */ + 'id': string; + /** + * + * @type {Array} + * @memberof ServiceStatus + */ + 'progress': Array; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof ServiceStatus + */ + 'requesterUserId': string; + /** + * + * @type {string} + * @memberof ServiceStatus + */ + 'state': string; + /** + * The id of the thing this service was requested for. + * @type {string} + * @memberof ServiceStatus + */ + 'subjectId': string; + /** + * The kind of the thing this service was requested for. + * @type {string} + * @memberof ServiceStatus + */ + 'subjectType': string; + /** + * The kind of service that was requested. + * @type {string} + * @memberof ServiceStatus + */ + 'type': string; + /** + * + * @type {string} + * @memberof ServiceStatus + */ + 'updated_at': string; +} +/** + * + * @export + * @enum {string} + */ + +export const SortOption = { + Popularity: 'popularity', + Heat: 'heat', + Trust: 'trust', + Shuffle: 'shuffle', + Random: 'random', + Favorites: 'favorites', + ReportScore: 'reportScore', + ReportCount: 'reportCount', + PublicationDate: 'publicationDate', + LabsPublicationDate: 'labsPublicationDate', + Created: 'created', + CreatedAt: '_created_at', + Updated: 'updated', + UpdatedAt: '_updated_at', + Order: 'order', + Relevance: 'relevance', + Magic: 'magic', + Name: 'name' +} as const; + +export type SortOption = typeof SortOption[keyof typeof SortOption]; + + +/** + * + * @export + * @interface Submission + */ +export interface Submission { + /** + * Either world ID or avatar ID + * @type {string} + * @memberof Submission + */ + 'contentId': string; + /** + * + * @type {string} + * @memberof Submission + */ + 'created_at': string; + /** + * + * @type {string} + * @memberof Submission + */ + 'description': string; + /** + * + * @type {string} + * @memberof Submission + */ + 'id': string; + /** + * + * @type {string} + * @memberof Submission + */ + 'jamId': string; + /** + * + * @type {number} + * @memberof Submission + */ + 'ratingScore'?: number; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Submission + */ + 'submitterId': string; +} +/** + * + * @export + * @interface Subscription + */ +export interface Subscription { + /** + * + * @type {string} + * @memberof Subscription + */ + 'id': string; + /** + * + * @type {string} + * @memberof Subscription + */ + 'steamItemId': string; + /** + * + * @type {string} + * @memberof Subscription + */ + 'oculusSku'?: string; + /** + * + * @type {string} + * @memberof Subscription + */ + 'googleProductId'?: string; + /** + * + * @type {string} + * @memberof Subscription + */ + 'googlePlanId'?: string; + /** + * + * @type {string} + * @memberof Subscription + */ + 'picoSku'?: string; + /** + * + * @type {string} + * @memberof Subscription + */ + 'appleProductId'?: string; + /** + * + * @type {number} + * @memberof Subscription + */ + 'amount': number; + /** + * + * @type {string} + * @memberof Subscription + */ + 'description': string; + /** + * + * @type {SubscriptionPeriod} + * @memberof Subscription + */ + 'period': SubscriptionPeriod; + /** + * + * @type {number} + * @memberof Subscription + */ + 'tier': number; +} +/** + * + * @export + * @enum {string} + */ + +export const SubscriptionPeriod = { + Hour: 'hour', + Day: 'day', + Week: 'week', + Month: 'month', + Year: 'year' +} as const; + +export type SubscriptionPeriod = typeof SubscriptionPeriod[keyof typeof SubscriptionPeriod]; + + +/** + * + * @export + * @interface Success + */ +export interface Success { + /** + * + * @type {Response} + * @memberof Success + */ + 'success'?: Response; +} +/** + * + * @export + * @interface TiliaStatus + */ +export interface TiliaStatus { + /** + * + * @type {boolean} + * @memberof TiliaStatus + */ + 'economyOnline': boolean; + /** + * + * @type {number} + * @memberof TiliaStatus + */ + 'economyState'?: number; + /** + * + * @type {string} + * @memberof TiliaStatus + */ + 'plannedOfflineWindowStart'?: string; + /** + * + * @type {string} + * @memberof TiliaStatus + */ + 'plannedOfflineWindowEnd'?: string; +} +/** + * + * @export + * @interface TiliaTOS + */ +export interface TiliaTOS { + /** + * + * @type {boolean} + * @memberof TiliaTOS + */ + 'signed_tos': boolean; +} +/** + * + * @export + * @interface TokenBundle + */ +export interface TokenBundle { + /** + * + * @type {string} + * @memberof TokenBundle + */ + 'id': string; + /** + * + * @type {string} + * @memberof TokenBundle + */ + 'steamItemId': string; + /** + * + * @type {string} + * @memberof TokenBundle + */ + 'oculusSku': string; + /** + * + * @type {string} + * @memberof TokenBundle + */ + 'googleProductId'?: string; + /** + * price of the bundle + * @type {number} + * @memberof TokenBundle + */ + 'amount': number; + /** + * + * @type {string} + * @memberof TokenBundle + */ + 'description': string; + /** + * number of tokens received + * @type {number} + * @memberof TokenBundle + */ + 'tokens': number; + /** + * direct url to image + * @type {string} + * @memberof TokenBundle + */ + 'imageUrl': string; +} +/** + * + * @export + * @interface Transaction + */ +export interface Transaction { + /** + * + * @type {string} + * @memberof Transaction + */ + 'id': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof Transaction + */ + 'userId'?: string; + /** + * + * @type {string} + * @memberof Transaction + */ + 'userDisplayName'?: string; + /** + * + * @type {TransactionStatus} + * @memberof Transaction + */ + 'status': TransactionStatus; + /** + * + * @type {Subscription} + * @memberof Transaction + */ + 'subscription': Subscription; + /** + * + * @type {boolean} + * @memberof Transaction + */ + 'sandbox': boolean; + /** + * + * @type {string} + * @memberof Transaction + */ + 'created_at': string; + /** + * + * @type {string} + * @memberof Transaction + */ + 'updated_at': string; + /** + * + * @type {TransactionSteamInfo} + * @memberof Transaction + */ + 'steam'?: TransactionSteamInfo; + /** + * + * @type {TransactionAgreement} + * @memberof Transaction + */ + 'agreement'?: TransactionAgreement; + /** + * + * @type {string} + * @memberof Transaction + */ + 'error': string; + /** + * + * @type {boolean} + * @memberof Transaction + */ + 'isGift'?: boolean; + /** + * + * @type {boolean} + * @memberof Transaction + */ + 'isTokens'?: boolean; +} +/** + * Represents a single Transaction, which is likely between VRChat and Steam. + * @export + * @interface TransactionAgreement + */ +export interface TransactionAgreement { + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'agreementId': string; + /** + * + * @type {number} + * @memberof TransactionAgreement + */ + 'itemId': number; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'agreement': string; + /** + * This is NOT TransactionStatus, but whatever Steam return. + * @type {string} + * @memberof TransactionAgreement + */ + 'status': string; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'period': string; + /** + * + * @type {number} + * @memberof TransactionAgreement + */ + 'frequency': number; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'billingType': string; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'startDate': string; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'endDate': string; + /** + * + * @type {number} + * @memberof TransactionAgreement + */ + 'recurringAmt': number; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'currency': string; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'timeCreated': string; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'nextPayment': string; + /** + * + * @type {string} + * @memberof TransactionAgreement + */ + 'lastPayment': string; + /** + * + * @type {number} + * @memberof TransactionAgreement + */ + 'lastAmount': number; + /** + * + * @type {number} + * @memberof TransactionAgreement + */ + 'lastAmountVat': number; + /** + * + * @type {number} + * @memberof TransactionAgreement + */ + 'outstanding': number; + /** + * + * @type {number} + * @memberof TransactionAgreement + */ + 'failedAttempts': number; +} +/** + * + * @export + * @enum {string} + */ + +export const TransactionStatus = { + Active: 'active', + Failed: 'failed', + Expired: 'expired', + Chargeback: 'chargeback' +} as const; + +export type TransactionStatus = typeof TransactionStatus[keyof typeof TransactionStatus]; + + +/** + * + * @export + * @interface TransactionSteamInfo + */ +export interface TransactionSteamInfo { + /** + * + * @type {TransactionSteamWalletInfo} + * @memberof TransactionSteamInfo + */ + 'walletInfo': TransactionSteamWalletInfo; + /** + * Steam User ID + * @type {string} + * @memberof TransactionSteamInfo + */ + 'steamId': string; + /** + * Steam Order ID + * @type {string} + * @memberof TransactionSteamInfo + */ + 'orderId': string; + /** + * Empty + * @type {string} + * @memberof TransactionSteamInfo + */ + 'steamUrl': string; + /** + * Steam Transaction ID, NOT the same as VRChat TransactionID + * @type {string} + * @memberof TransactionSteamInfo + */ + 'transId': string; +} +/** + * + * @export + * @interface TransactionSteamWalletInfo + */ +export interface TransactionSteamWalletInfo { + /** + * + * @type {string} + * @memberof TransactionSteamWalletInfo + */ + 'state': string; + /** + * + * @type {string} + * @memberof TransactionSteamWalletInfo + */ + 'country': string; + /** + * + * @type {string} + * @memberof TransactionSteamWalletInfo + */ + 'currency': string; + /** + * + * @type {string} + * @memberof TransactionSteamWalletInfo + */ + 'status': string; +} +/** + * + * @export + * @interface TwoFactorAuthCode + */ +export interface TwoFactorAuthCode { + /** + * + * @type {string} + * @memberof TwoFactorAuthCode + */ + 'code': string; +} +/** + * + * @export + * @interface TwoFactorEmailCode + */ +export interface TwoFactorEmailCode { + /** + * + * @type {string} + * @memberof TwoFactorEmailCode + */ + 'code': string; +} +/** + * + * @export + * @interface TwoFactorRecoveryCodes + */ +export interface TwoFactorRecoveryCodes { + /** + * + * @type {Array} + * @memberof TwoFactorRecoveryCodes + */ + 'requiresTwoFactorAuth'?: Array; + /** + * + * @type {Array} + * @memberof TwoFactorRecoveryCodes + */ + 'otp'?: Array; +} +/** + * + * @export + * @interface TwoFactorRecoveryCodesOtpInner + */ +export interface TwoFactorRecoveryCodesOtpInner { + /** + * + * @type {string} + * @memberof TwoFactorRecoveryCodesOtpInner + */ + 'code': string; + /** + * + * @type {boolean} + * @memberof TwoFactorRecoveryCodesOtpInner + */ + 'used': boolean; +} +/** + * + * @export + * @interface UnityPackage + */ +export interface UnityPackage { + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'id': string; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'assetUrl'?: string | null; + /** + * + * @type {object} + * @memberof UnityPackage + */ + 'assetUrlObject'?: object; + /** + * + * @type {number} + * @memberof UnityPackage + */ + 'assetVersion': number; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'created_at'?: string; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'impostorizerVersion'?: string; + /** + * + * @type {PerformanceRatings} + * @memberof UnityPackage + */ + 'performanceRating'?: PerformanceRatings; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof UnityPackage + */ + 'platform': string; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'pluginUrl'?: string; + /** + * + * @type {object} + * @memberof UnityPackage + */ + 'pluginUrlObject'?: object; + /** + * + * @type {number} + * @memberof UnityPackage + */ + 'unitySortNumber'?: number; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'unityVersion': string; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'worldSignature'?: string | null; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'impostorUrl'?: string | null; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'scanStatus'?: string; + /** + * + * @type {string} + * @memberof UnityPackage + */ + 'variant'?: string; +} +/** + * + * @export + * @interface UpdateAvatarRequest + */ +export interface UpdateAvatarRequest { + /** + * + * @type {string} + * @memberof UpdateAvatarRequest + */ + 'assetUrl'?: string; + /** + * + * @type {string} + * @memberof UpdateAvatarRequest + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof UpdateAvatarRequest + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof UpdateAvatarRequest + */ + 'description'?: string; + /** + * + * @type {Array} + * @memberof UpdateAvatarRequest + */ + 'tags'?: Array; + /** + * + * @type {string} + * @memberof UpdateAvatarRequest + */ + 'imageUrl'?: string; + /** + * + * @type {ReleaseStatus} + * @memberof UpdateAvatarRequest + */ + 'releaseStatus'?: ReleaseStatus; + /** + * + * @type {number} + * @memberof UpdateAvatarRequest + */ + 'version'?: number; + /** + * + * @type {string} + * @memberof UpdateAvatarRequest + */ + 'unityPackageUrl'?: string; + /** + * + * @type {string} + * @memberof UpdateAvatarRequest + */ + 'unityVersion'?: string; +} +/** + * + * @export + * @interface UpdateCalendarEventRequest + */ +export interface UpdateCalendarEventRequest { + /** + * Event title + * @type {string} + * @memberof UpdateCalendarEventRequest + */ + 'title'?: string; + /** + * Time the vent starts at + * @type {string} + * @memberof UpdateCalendarEventRequest + */ + 'startsAt'?: string; + /** + * + * @type {string} + * @memberof UpdateCalendarEventRequest + */ + 'description'?: string; + /** + * Time the vent starts at + * @type {string} + * @memberof UpdateCalendarEventRequest + */ + 'endsAt'?: string; + /** + * + * @type {string} + * @memberof UpdateCalendarEventRequest + */ + 'category'?: string; + /** + * + * @type {Array} + * @memberof UpdateCalendarEventRequest + */ + 'tags'?: Array; + /** + * + * @type {boolean} + * @memberof UpdateCalendarEventRequest + */ + 'isDraft'?: boolean; + /** + * + * @type {string} + * @memberof UpdateCalendarEventRequest + */ + 'imageId'?: string; + /** + * + * @type {Array} + * @memberof UpdateCalendarEventRequest + */ + 'roleIds'?: Array; + /** + * + * @type {string} + * @memberof UpdateCalendarEventRequest + */ + 'parentId'?: string; + /** + * + * @type {Array} + * @memberof UpdateCalendarEventRequest + */ + 'platforms'?: Array; + /** + * + * @type {Array} + * @memberof UpdateCalendarEventRequest + */ + 'languages'?: Array; + /** + * Send notification to group members. + * @type {boolean} + * @memberof UpdateCalendarEventRequest + */ + 'sendCreationNotification'?: boolean; + /** + * + * @type {boolean} + * @memberof UpdateCalendarEventRequest + */ + 'featured'?: boolean; + /** + * + * @type {number} + * @memberof UpdateCalendarEventRequest + */ + 'hostEarlyJoinMinutes'?: number; + /** + * + * @type {number} + * @memberof UpdateCalendarEventRequest + */ + 'guestEarlyJoinMinutes'?: number; + /** + * + * @type {number} + * @memberof UpdateCalendarEventRequest + */ + 'closeInstanceAfterEndMinutes'?: number; + /** + * + * @type {boolean} + * @memberof UpdateCalendarEventRequest + */ + 'usesInstanceOverflow'?: boolean; +} +/** + * + * @export + * @interface UpdateFavoriteGroupRequest + */ +export interface UpdateFavoriteGroupRequest { + /** + * + * @type {string} + * @memberof UpdateFavoriteGroupRequest + */ + 'displayName'?: string; + /** + * + * @type {FavoriteGroupVisibility} + * @memberof UpdateFavoriteGroupRequest + */ + 'visibility'?: FavoriteGroupVisibility; + /** + * Tags on FavoriteGroups are believed to do nothing. + * @type {Array} + * @memberof UpdateFavoriteGroupRequest + */ + 'tags'?: Array; +} +/** + * + * @export + * @interface UpdateGroupGalleryRequest + */ +export interface UpdateGroupGalleryRequest { + /** + * Name of the gallery. + * @type {string} + * @memberof UpdateGroupGalleryRequest + */ + 'name'?: string; + /** + * Description of the gallery. + * @type {string} + * @memberof UpdateGroupGalleryRequest + */ + 'description'?: string; + /** + * Whether the gallery is members only. + * @type {boolean} + * @memberof UpdateGroupGalleryRequest + */ + 'membersOnly'?: boolean; + /** + * + * @type {Array} + * @memberof UpdateGroupGalleryRequest + */ + 'roleIdsToView'?: Array | null; + /** + * + * @type {Array} + * @memberof UpdateGroupGalleryRequest + */ + 'roleIdsToSubmit'?: Array | null; + /** + * + * @type {Array} + * @memberof UpdateGroupGalleryRequest + */ + 'roleIdsToAutoApprove'?: Array | null; + /** + * + * @type {Array} + * @memberof UpdateGroupGalleryRequest + */ + 'roleIdsToManage'?: Array | null; +} +/** + * + * @export + * @interface UpdateGroupMemberRequest + */ +export interface UpdateGroupMemberRequest { + /** + * + * @type {GroupUserVisibility} + * @memberof UpdateGroupMemberRequest + */ + 'visibility'?: GroupUserVisibility; + /** + * + * @type {boolean} + * @memberof UpdateGroupMemberRequest + */ + 'isSubscribedToAnnouncements'?: boolean; + /** + * + * @type {string} + * @memberof UpdateGroupMemberRequest + */ + 'managerNotes'?: string; +} +/** + * + * @export + * @interface UpdateGroupRepresentationRequest + */ +export interface UpdateGroupRepresentationRequest { + /** + * Whether the user is representing the group. + * @type {boolean} + * @memberof UpdateGroupRepresentationRequest + */ + 'isRepresenting': boolean; +} +/** + * + * @export + * @interface UpdateGroupRequest + */ +export interface UpdateGroupRequest { + /** + * + * @type {string} + * @memberof UpdateGroupRequest + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof UpdateGroupRequest + */ + 'shortCode'?: string; + /** + * + * @type {string} + * @memberof UpdateGroupRequest + */ + 'description'?: string; + /** + * + * @type {GroupJoinState} + * @memberof UpdateGroupRequest + */ + 'joinState'?: GroupJoinState; + /** + * + * @type {string} + * @memberof UpdateGroupRequest + */ + 'iconId'?: string | null; + /** + * + * @type {string} + * @memberof UpdateGroupRequest + */ + 'bannerId'?: string | null; + /** + * 3 letter language code + * @type {Array} + * @memberof UpdateGroupRequest + */ + 'languages'?: Array; + /** + * + * @type {Array} + * @memberof UpdateGroupRequest + */ + 'links'?: Array; + /** + * + * @type {string} + * @memberof UpdateGroupRequest + */ + 'rules'?: string; + /** + * + * @type {Array} + * @memberof UpdateGroupRequest + */ + 'tags'?: Array; +} +/** + * + * @export + * @interface UpdateGroupRoleRequest + */ +export interface UpdateGroupRoleRequest { + /** + * + * @type {string} + * @memberof UpdateGroupRoleRequest + */ + 'name'?: string; + /** + * + * @type {string} + * @memberof UpdateGroupRoleRequest + */ + 'description'?: string; + /** + * + * @type {boolean} + * @memberof UpdateGroupRoleRequest + */ + 'isSelfAssignable'?: boolean; + /** + * + * @type {Array} + * @memberof UpdateGroupRoleRequest + */ + 'permissions'?: Array; + /** + * + * @type {number} + * @memberof UpdateGroupRoleRequest + */ + 'order'?: number; +} +/** + * + * @export + * @interface UpdateInviteMessageRequest + */ +export interface UpdateInviteMessageRequest { + /** + * + * @type {string} + * @memberof UpdateInviteMessageRequest + */ + 'message': string; +} +/** + * + * @export + * @interface UpdateUserBadgeRequest + */ +export interface UpdateUserBadgeRequest { + /** + * + * @type {boolean} + * @memberof UpdateUserBadgeRequest + */ + 'hidden'?: boolean; + /** + * + * @type {boolean} + * @memberof UpdateUserBadgeRequest + */ + 'showcased'?: boolean; +} +/** + * + * @export + * @interface UpdateUserNoteRequest + */ +export interface UpdateUserNoteRequest { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof UpdateUserNoteRequest + */ + 'targetUserId': string; + /** + * + * @type {string} + * @memberof UpdateUserNoteRequest + */ + 'note': string; +} +/** + * + * @export + * @interface UpdateUserRequest + */ +export interface UpdateUserRequest { + /** + * + * @type {string} + * @memberof UpdateUserRequest + */ + 'email'?: string; + /** + * + * @type {boolean} + * @memberof UpdateUserRequest + */ + 'unsubscribe'?: boolean; + /** + * + * @type {string} + * @memberof UpdateUserRequest + */ + 'birthday'?: string; + /** + * + * @type {number} + * @memberof UpdateUserRequest + */ + 'acceptedTOSVersion'?: number; + /** + * + * @type {Array} + * @memberof UpdateUserRequest + */ + 'tags'?: Array; + /** + * + * @type {UserStatus} + * @memberof UpdateUserRequest + */ + 'status'?: UserStatus; + /** + * + * @type {string} + * @memberof UpdateUserRequest + */ + 'statusDescription'?: string; + /** + * + * @type {string} + * @memberof UpdateUserRequest + */ + 'bio'?: string; + /** + * + * @type {Array} + * @memberof UpdateUserRequest + */ + 'bioLinks'?: Array; + /** + * + * @type {string} + * @memberof UpdateUserRequest + */ + 'pronouns'?: string; + /** + * + * @type {boolean} + * @memberof UpdateUserRequest + */ + 'isBoopingEnabled'?: boolean; + /** + * MUST be a valid VRChat /file/ url. + * @type {string} + * @memberof UpdateUserRequest + */ + 'userIcon'?: string; + /** + * These tags begin with `content_` and control content gating + * @type {Array} + * @memberof UpdateUserRequest + */ + 'contentFilters'?: Array; + /** + * MUST specify currentPassword as well to change display name + * @type {string} + * @memberof UpdateUserRequest + */ + 'displayName'?: string; + /** + * MUST specify currentPassword as well to revert display name + * @type {boolean} + * @memberof UpdateUserRequest + */ + 'revertDisplayName'?: boolean; + /** + * MUST specify currentPassword as well to change password + * @type {string} + * @memberof UpdateUserRequest + */ + 'password'?: string; + /** + * + * @type {string} + * @memberof UpdateUserRequest + */ + 'currentPassword'?: string; +} +/** + * + * @export + * @interface UpdateWorldRequest + */ +export interface UpdateWorldRequest { + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'assetUrl'?: string; + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'assetVersion'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof UpdateWorldRequest + */ + 'authorId'?: string; + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'authorName'?: string; + /** + * + * @type {number} + * @memberof UpdateWorldRequest + */ + 'capacity'?: number; + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'description'?: string; + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'imageUrl'?: string; + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'name'?: string; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof UpdateWorldRequest + */ + 'platform'?: string; + /** + * + * @type {ReleaseStatus} + * @memberof UpdateWorldRequest + */ + 'releaseStatus'?: ReleaseStatus; + /** + * + * @type {Array} + * @memberof UpdateWorldRequest + */ + 'tags'?: Array; + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'unityPackageUrl'?: string; + /** + * + * @type {string} + * @memberof UpdateWorldRequest + */ + 'unityVersion'?: string; +} +/** + * + * @export + * @interface User + */ +export interface User { + /** + * + * @type {AgeVerificationStatus} + * @memberof User + */ + 'ageVerificationStatus': AgeVerificationStatus; + /** + * `true` if, user is age verified (not 18+). + * @type {boolean} + * @memberof User + */ + 'ageVerified': boolean; + /** + * + * @type {boolean} + * @memberof User + */ + 'allowAvatarCopying': boolean; + /** + * + * @type {Array} + * @memberof User + */ + 'badges'?: Array; + /** + * + * @type {string} + * @memberof User + */ + 'bio': string; + /** + * + * @type {Array} + * @memberof User + */ + 'bioLinks': Array; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof User + */ + 'currentAvatarImageUrl': string; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof User + */ + 'currentAvatarThumbnailImageUrl': string; + /** + * + * @type {Array} + * @memberof User + */ + 'currentAvatarTags': Array; + /** + * + * @type {string} + * @memberof User + */ + 'date_joined': string; + /** + * + * @type {DeveloperType} + * @memberof User + */ + 'developerType': DeveloperType; + /** + * A users visual display name. This is what shows up in-game, and can different from their `username`. Changing display name is restricted to a cooldown period. + * @type {string} + * @memberof User + */ + 'displayName': string; + /** + * + * @type {string} + * @memberof User + */ + 'friendKey': string; + /** + * + * @type {string} + * @memberof User + */ + 'friendRequestStatus'?: string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof User + */ + 'id': string; + /** + * InstanceID can be \"offline\" on User profiles if you are not friends with that user and \"private\" if you are friends and user is in private instance. + * @type {string} + * @memberof User + */ + 'instanceId'?: string; + /** + * Either their `friendKey`, or empty string if you are not friends. Unknown usage. + * @type {boolean} + * @memberof User + */ + 'isFriend': boolean; + /** + * Either a date-time or empty string. + * @type {string} + * @memberof User + */ + 'last_activity': string; + /** + * Either a date-time or empty string. + * @type {string} + * @memberof User + */ + 'last_login': string; + /** + * + * @type {string} + * @memberof User + */ + 'last_mobile'?: string | null; + /** + * This can be `standalonewindows` or `android`, but can also pretty much be any random Unity verison such as `2019.2.4-801-Release` or `2019.2.2-772-Release` or even `unknownplatform`. + * @type {string} + * @memberof User + */ + 'last_platform': string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof User + */ + 'location'?: string; + /** + * + * @type {string} + * @memberof User + */ + 'note'?: string; + /** + * + * @type {string} + * @memberof User + */ + 'platform'?: string; + /** + * + * @type {string} + * @memberof User + */ + 'profilePicOverride': string; + /** + * + * @type {string} + * @memberof User + */ + 'profilePicOverrideThumbnail': string; + /** + * + * @type {string} + * @memberof User + */ + 'pronouns': string; + /** + * + * @type {UserState} + * @memberof User + */ + 'state': UserState; + /** + * + * @type {UserStatus} + * @memberof User + */ + 'status': UserStatus; + /** + * + * @type {string} + * @memberof User + */ + 'statusDescription': string; + /** + * + * @type {Array} + * @memberof User + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof User + */ + 'travelingToInstance'?: string; + /** + * + * @type {string} + * @memberof User + */ + 'travelingToLocation'?: string; + /** + * + * @type {string} + * @memberof User + */ + 'travelingToWorld'?: string; + /** + * + * @type {string} + * @memberof User + */ + 'userIcon': string; + /** + * -| A users unique name, used during login. This is different from `displayName` which is what shows up in-game. A users `username` can never be changed.\' **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). + * @type {string} + * @memberof User + * @deprecated + */ + 'username'?: string; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof User + */ + 'worldId'?: string; +} +/** + * Status object representing if a queried user by username or userId exists or not. This model is primarily used by the `/auth/exists` endpoint, which in turn is used during registration. Please see the documentation on that endpoint for more information on usage. + * @export + * @interface UserExists + */ +export interface UserExists { + /** + * Status if a user exist with that username or userId. + * @type {boolean} + * @memberof UserExists + */ + 'userExists': boolean; + /** + * Is the username valid? + * @type {boolean} + * @memberof UserExists + */ + 'nameOk'?: boolean; +} +/** + * + * @export + * @interface UserNote + */ +export interface UserNote { + /** + * + * @type {string} + * @memberof UserNote + */ + 'createdAt': string; + /** + * + * @type {string} + * @memberof UserNote + */ + 'id': string; + /** + * + * @type {string} + * @memberof UserNote + */ + 'note': string; + /** + * + * @type {UserNoteTargetUser} + * @memberof UserNote + */ + 'targetUser'?: UserNoteTargetUser; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof UserNote + */ + 'targetUserId': string; + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof UserNote + */ + 'userId': string; +} +/** + * + * @export + * @interface UserNoteTargetUser + */ +export interface UserNoteTargetUser { + /** + * + * @type {Array} + * @memberof UserNoteTargetUser + */ + 'currentAvatarTags'?: Array; + /** + * When profilePicOverride is not empty, use it instead. + * @type {string} + * @memberof UserNoteTargetUser + */ + 'currentAvatarThumbnailImageUrl'?: string; + /** + * + * @type {string} + * @memberof UserNoteTargetUser + */ + 'displayName'?: string; + /** + * + * @type {string} + * @memberof UserNoteTargetUser + */ + 'id'?: string; + /** + * + * @type {string} + * @memberof UserNoteTargetUser + */ + 'profilePicOverride'?: string | null; + /** + * + * @type {string} + * @memberof UserNoteTargetUser + */ + 'userIcon'?: string; +} +/** + * * \"online\" User is online in VRChat * \"active\" User is online, but not in VRChat * \"offline\" User is offline Always offline when returned through `getCurrentUser` (/auth/user). + * @export + * @enum {string} + */ + +export const UserState = { + Offline: 'offline', + Active: 'active', + Online: 'online' +} as const; + +export type UserState = typeof UserState[keyof typeof UserState]; + + +/** + * Defines the User\'s current status, for example \"ask me\", \"join me\" or \"offline. This status is a combined indicator of their online activity and privacy preference. + * @export + * @enum {string} + */ + +export const UserStatus = { + Active: 'active', + JoinMe: 'join me', + AskMe: 'ask me', + Busy: 'busy', + Offline: 'offline' +} as const; + +export type UserStatus = typeof UserStatus[keyof typeof UserStatus]; + + +/** + * + * @export + * @interface UserSubscription + */ +export interface UserSubscription { + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'id': string; + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'transactionId': string; + /** + * Which \"Store\" it came from. Right now only Stores are \"Steam\" and \"Admin\". + * @type {string} + * @memberof UserSubscription + */ + 'store': string; + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'steamItemId'?: string; + /** + * + * @type {number} + * @memberof UserSubscription + */ + 'amount': number; + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'description': string; + /** + * + * @type {SubscriptionPeriod} + * @memberof UserSubscription + */ + 'period': SubscriptionPeriod; + /** + * + * @type {number} + * @memberof UserSubscription + */ + 'tier': number; + /** + * + * @type {boolean} + * @memberof UserSubscription + */ + 'active': boolean; + /** + * + * @type {TransactionStatus} + * @memberof UserSubscription + */ + 'status': TransactionStatus; + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'starts'?: string; + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'expires': string; + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'created_at': string; + /** + * + * @type {string} + * @memberof UserSubscription + */ + 'updated_at': string; + /** + * + * @type {Array} + * @memberof UserSubscription + */ + 'licenseGroups': Array; + /** + * + * @type {boolean} + * @memberof UserSubscription + */ + 'isGift': boolean; + /** + * + * @type {boolean} + * @memberof UserSubscription + */ + 'isBulkGift': boolean; +} +/** + * + * @export + * @interface Verify2FAEmailCodeResult + */ +export interface Verify2FAEmailCodeResult { + /** + * + * @type {boolean} + * @memberof Verify2FAEmailCodeResult + */ + 'verified': boolean; +} +/** + * + * @export + * @interface Verify2FAResult + */ +export interface Verify2FAResult { + /** + * + * @type {boolean} + * @memberof Verify2FAResult + */ + 'verified': boolean; + /** + * + * @type {boolean} + * @memberof Verify2FAResult + */ + 'enabled'?: boolean; +} +/** + * + * @export + * @interface VerifyAuthTokenResult + */ +export interface VerifyAuthTokenResult { + /** + * + * @type {boolean} + * @memberof VerifyAuthTokenResult + */ + 'ok': boolean; + /** + * + * @type {string} + * @memberof VerifyAuthTokenResult + */ + 'token': string; +} +/** + * + * @export + * @interface World + */ +export interface World { + /** + * A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. + * @type {string} + * @memberof World + */ + 'authorId': string; + /** + * + * @type {string} + * @memberof World + */ + 'authorName': string; + /** + * + * @type {number} + * @memberof World + */ + 'capacity': number; + /** + * + * @type {number} + * @memberof World + */ + 'recommendedCapacity': number; + /** + * + * @type {string} + * @memberof World + */ + 'created_at': string; + /** + * + * @type {InstanceContentSettings} + * @memberof World + */ + 'defaultContentSettings'?: InstanceContentSettings; + /** + * + * @type {string} + * @memberof World + */ + 'description': string; + /** + * + * @type {number} + * @memberof World + */ + 'favorites'?: number; + /** + * + * @type {boolean} + * @memberof World + */ + 'featured': boolean; + /** + * + * @type {number} + * @memberof World + */ + 'heat': number; + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof World + */ + 'id': string; + /** + * + * @type {string} + * @memberof World + */ + 'imageUrl': string; + /** + * Will always be an empty list when unauthenticated. + * @type {Array>} + * @memberof World + */ + 'instances'?: Array>; + /** + * + * @type {string} + * @memberof World + */ + 'labsPublicationDate': string; + /** + * + * @type {string} + * @memberof World + */ + 'name': string; + /** + * + * @type {string} + * @memberof World + */ + 'namespace'?: string; + /** + * Will always be `0` when unauthenticated. + * @type {number} + * @memberof World + */ + 'occupants'?: number; + /** + * + * @type {string} + * @memberof World + */ + 'organization': string; + /** + * + * @type {number} + * @memberof World + */ + 'popularity': number; + /** + * + * @type {string} + * @memberof World + */ + 'previewYoutubeId'?: string | null; + /** + * Will always be `0` when unauthenticated. + * @type {number} + * @memberof World + */ + 'privateOccupants'?: number; + /** + * Will always be `0` when unauthenticated. + * @type {number} + * @memberof World + */ + 'publicOccupants'?: number; + /** + * + * @type {string} + * @memberof World + */ + 'publicationDate': string; + /** + * + * @type {ReleaseStatus} + * @memberof World + */ + 'releaseStatus': ReleaseStatus; + /** + * + * @type {string} + * @memberof World + */ + 'storeId'?: string; + /** + * + * @type {Array} + * @memberof World + */ + 'tags': Array; + /** + * + * @type {string} + * @memberof World + */ + 'thumbnailImageUrl': string; + /** + * Empty if unauthenticated. + * @type {Array} + * @memberof World + */ + 'unityPackages'?: Array; + /** + * + * @type {string} + * @memberof World + */ + 'updated_at': string; + /** + * + * @type {Array} + * @memberof World + */ + 'urlList'?: Array; + /** + * + * @type {number} + * @memberof World + */ + 'version': number; + /** + * + * @type {number} + * @memberof World + */ + 'visits': number; + /** + * + * @type {Array} + * @memberof World + */ + 'udonProducts'?: Array; +} +/** + * + * @export + * @interface WorldMetadata + */ +export interface WorldMetadata { + /** + * WorldID be \"offline\" on User profiles if you are not friends with that user. + * @type {string} + * @memberof WorldMetadata + */ + 'id': string; + /** + * + * @type {object} + * @memberof WorldMetadata + */ + 'metadata': object; +} +/** + * + * @export + * @interface WorldPublishStatus + */ +export interface WorldPublishStatus { + /** + * + * @type {boolean} + * @memberof WorldPublishStatus + */ + 'canPublish': boolean; +} + +/** + * AuthenticationApi - axios parameter creator + * @export + */ +export const AuthenticationApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Cancels the sequence for enabling time-based 2FA. + * @summary Cancel pending enabling of time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + cancelPending2FA: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/twofactorauth/totp/pending`; + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Checks if a user by a given `username`, `displayName` or `email` exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the `excludeUserId` is used to exclude oneself, otherwise the result would always be true. It is **REQUIRED** to include **AT LEAST** `username`, `displayName` **or** `email` query parameter. Although they can be combined - in addition with `excludeUserId` (generally to exclude yourself) - to further fine-tune the search. + * @summary Check User Exists + * @param {string} [email] Filter by email. + * @param {string} [displayName] Filter by displayName. + * @param {string} [username] Filter by Username. + * @param {string} [excludeUserId] Exclude by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + checkUserExists: async (email?: string, displayName?: string, username?: string, excludeUserId?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/exists`; + // 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; + + if (email !== undefined) { + localVarQueryParameter['email'] = email; + } + + if (displayName !== undefined) { + localVarQueryParameter['displayName'] = displayName; + } + + if (username !== undefined) { + localVarQueryParameter['username'] = username; + } + + if (excludeUserId !== undefined) { + localVarQueryParameter['excludeUserId'] = excludeUserId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Confirms the email address for a user + * @summary Confirm Email + * @param {string} id Target user for which to verify email. + * @param {string} verifyEmail Token to verify email. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + confirmEmail: async (id: string, verifyEmail: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('confirmEmail', 'id', id) + // verify required parameter 'verifyEmail' is not null or undefined + assertParamExists('confirmEmail', 'verifyEmail', verifyEmail) + const localVarPath = `/auth/confirmEmail`; + // 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; + + if (id !== undefined) { + localVarQueryParameter['id'] = id; + } + + if (verifyEmail !== undefined) { + localVarQueryParameter['verify_email'] = verifyEmail; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes the account with given ID. Normal users only have permission to delete their own account. Account deletion is 14 days from this request, and will be cancelled if you do an authenticated request with the account afterwards. **VRC+ NOTE:** Despite the 14-days cooldown, any VRC+ subscription will be cancelled **immediately**. **METHOD NOTE:** Despite this being a Delete action, the method type required is PUT. + * @summary Delete User + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteUser: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('deleteUser', 'userId', userId) + const localVarPath = `/users/{userId}/delete` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Disables 2FA for the currently logged in account + * @summary Disable 2FA + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + disable2FA: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/twofactorauth`; + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Begins the sequence for enabling time-based 2FA. + * @summary Enable time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + enable2FA: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/twofactorauth/totp/pending`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * This endpoint does the following two operations: 1) Checks if you are already logged in by looking for a valid `auth` cookie. If you are have a valid auth cookie then no additional auth-related actions are taken. If you are **not** logged in then it will log you in with the `Authorization` header and set the `auth` cookie. The `auth` cookie will only be sent once. 2) If logged in, this function will also return the CurrentUser object containing detailed information about the currently logged in user. The auth string after `Authorization: Basic {string}` is a base64-encoded string of the username and password, both individually url-encoded, and then joined with a colon. > base64(urlencode(username):urlencode(password)) **WARNING: Session Limit:** Each authentication with login credentials counts as a separate session, out of which you have a limited amount. Make sure to save and reuse the `auth` cookie if you are often restarting the program. The provided API libraries automatically save cookies during runtime, but does not persist during restart. While it can be fine to use username/password during development, expect in production to very fast run into the rate-limit and be temporarily blocked from making new sessions until older ones expire. The exact number of simultaneous sessions is unknown/undisclosed. + * @summary Login and/or Get Current User Info + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCurrentUser: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user`; + // 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 authCookie required + + // authentication authHeader required + // http basic authentication required + setBasicAuthToObject(localVarRequestOptions, configuration) + + // authentication twoFactorAuthCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Gets the OTP (One Time Password) recovery codes for accounts with 2FA-protection enabled. + * @summary Get 2FA Recovery codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getRecoveryCodes: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/twofactorauth/otp`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Invalidates the login session. + * @summary Logout + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + logout: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/logout`; + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * ~~Register a new user account.~~ **DEPRECATED:** Automated creation of accounts has no legitimate public third-party use case, and would be in violation of ToS §13.2: *By using the Platform, you agree not to: i. [...] use the Platform in a manner inconsistent with individual human usage* This endpoint is documented in the interest of completeness + * @summary Register User Account + * @param {RegisterUserAccountRequest} registerUserAccountRequest + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + registerUserAccount: async (registerUserAccountRequest: RegisterUserAccountRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'registerUserAccountRequest' is not null or undefined + assertParamExists('registerUserAccount', 'registerUserAccountRequest', registerUserAccountRequest) + const localVarPath = `/auth/register`; + // 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; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(registerUserAccountRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Requests a resend of pending email address confirmation email + * @summary Resend Email Confirmation + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + resendEmailConfirmation: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/resendEmail`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Finishes the login sequence with a normal 2FA-generated code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verify2FA: async (twoFactorAuthCode: TwoFactorAuthCode, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'twoFactorAuthCode' is not null or undefined + assertParamExists('verify2FA', 'twoFactorAuthCode', twoFactorAuthCode) + const localVarPath = `/auth/twofactorauth/totp/verify`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(twoFactorAuthCode, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Finishes the login sequence with an 2FA email code. + * @summary Verify 2FA email code + * @param {TwoFactorEmailCode} twoFactorEmailCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verify2FAEmailCode: async (twoFactorEmailCode: TwoFactorEmailCode, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'twoFactorEmailCode' is not null or undefined + assertParamExists('verify2FAEmailCode', 'twoFactorEmailCode', twoFactorEmailCode) + const localVarPath = `/auth/twofactorauth/emailotp/verify`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(twoFactorEmailCode, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Verify whether the currently provided Auth Token is valid. + * @summary Verify Auth Token + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyAuthToken: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Verifies a login attempt for a user + * @summary Verify Login Place + * @param {string} token Token to verify login attempt. + * @param {string} [userId] Filter by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyLoginPlace: async (token: string, userId?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'token' is not null or undefined + assertParamExists('verifyLoginPlace', 'token', token) + const localVarPath = `/auth/verifyLoginPlace`; + // 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; + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + if (token !== undefined) { + localVarQueryParameter['token'] = token; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Finishes sequence for enabling time-based 2FA. + * @summary Verify Pending 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyPending2FA: async (twoFactorAuthCode: TwoFactorAuthCode, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'twoFactorAuthCode' is not null or undefined + assertParamExists('verifyPending2FA', 'twoFactorAuthCode', twoFactorAuthCode) + const localVarPath = `/auth/twofactorauth/totp/pending/verify`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(twoFactorAuthCode, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Finishes the login sequence with an OTP (One Time Password) recovery code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code with Recovery code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyRecoveryCode: async (twoFactorAuthCode: TwoFactorAuthCode, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'twoFactorAuthCode' is not null or undefined + assertParamExists('verifyRecoveryCode', 'twoFactorAuthCode', twoFactorAuthCode) + const localVarPath = `/auth/twofactorauth/otp/verify`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(twoFactorAuthCode, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * AuthenticationApi - functional programming interface + * @export + */ +export const AuthenticationApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = AuthenticationApiAxiosParamCreator(configuration) + return { + /** + * Cancels the sequence for enabling time-based 2FA. + * @summary Cancel pending enabling of time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async cancelPending2FA(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.cancelPending2FA(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Checks if a user by a given `username`, `displayName` or `email` exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the `excludeUserId` is used to exclude oneself, otherwise the result would always be true. It is **REQUIRED** to include **AT LEAST** `username`, `displayName` **or** `email` query parameter. Although they can be combined - in addition with `excludeUserId` (generally to exclude yourself) - to further fine-tune the search. + * @summary Check User Exists + * @param {string} [email] Filter by email. + * @param {string} [displayName] Filter by displayName. + * @param {string} [username] Filter by Username. + * @param {string} [excludeUserId] Exclude by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async checkUserExists(email?: string, displayName?: string, username?: string, excludeUserId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.checkUserExists(email, displayName, username, excludeUserId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Confirms the email address for a user + * @summary Confirm Email + * @param {string} id Target user for which to verify email. + * @param {string} verifyEmail Token to verify email. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async confirmEmail(id: string, verifyEmail: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.confirmEmail(id, verifyEmail, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes the account with given ID. Normal users only have permission to delete their own account. Account deletion is 14 days from this request, and will be cancelled if you do an authenticated request with the account afterwards. **VRC+ NOTE:** Despite the 14-days cooldown, any VRC+ subscription will be cancelled **immediately**. **METHOD NOTE:** Despite this being a Delete action, the method type required is PUT. + * @summary Delete User + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteUser(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUser(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Disables 2FA for the currently logged in account + * @summary Disable 2FA + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async disable2FA(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.disable2FA(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Begins the sequence for enabling time-based 2FA. + * @summary Enable time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async enable2FA(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.enable2FA(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * This endpoint does the following two operations: 1) Checks if you are already logged in by looking for a valid `auth` cookie. If you are have a valid auth cookie then no additional auth-related actions are taken. If you are **not** logged in then it will log you in with the `Authorization` header and set the `auth` cookie. The `auth` cookie will only be sent once. 2) If logged in, this function will also return the CurrentUser object containing detailed information about the currently logged in user. The auth string after `Authorization: Basic {string}` is a base64-encoded string of the username and password, both individually url-encoded, and then joined with a colon. > base64(urlencode(username):urlencode(password)) **WARNING: Session Limit:** Each authentication with login credentials counts as a separate session, out of which you have a limited amount. Make sure to save and reuse the `auth` cookie if you are often restarting the program. The provided API libraries automatically save cookies during runtime, but does not persist during restart. While it can be fine to use username/password during development, expect in production to very fast run into the rate-limit and be temporarily blocked from making new sessions until older ones expire. The exact number of simultaneous sessions is unknown/undisclosed. + * @summary Login and/or Get Current User Info + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCurrentUser(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCurrentUser(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Gets the OTP (One Time Password) recovery codes for accounts with 2FA-protection enabled. + * @summary Get 2FA Recovery codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getRecoveryCodes(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getRecoveryCodes(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Invalidates the login session. + * @summary Logout + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async logout(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.logout(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * ~~Register a new user account.~~ **DEPRECATED:** Automated creation of accounts has no legitimate public third-party use case, and would be in violation of ToS §13.2: *By using the Platform, you agree not to: i. [...] use the Platform in a manner inconsistent with individual human usage* This endpoint is documented in the interest of completeness + * @summary Register User Account + * @param {RegisterUserAccountRequest} registerUserAccountRequest + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + async registerUserAccount(registerUserAccountRequest: RegisterUserAccountRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.registerUserAccount(registerUserAccountRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Requests a resend of pending email address confirmation email + * @summary Resend Email Confirmation + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async resendEmailConfirmation(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.resendEmailConfirmation(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Finishes the login sequence with a normal 2FA-generated code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async verify2FA(twoFactorAuthCode: TwoFactorAuthCode, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.verify2FA(twoFactorAuthCode, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Finishes the login sequence with an 2FA email code. + * @summary Verify 2FA email code + * @param {TwoFactorEmailCode} twoFactorEmailCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async verify2FAEmailCode(twoFactorEmailCode: TwoFactorEmailCode, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.verify2FAEmailCode(twoFactorEmailCode, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Verify whether the currently provided Auth Token is valid. + * @summary Verify Auth Token + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async verifyAuthToken(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.verifyAuthToken(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Verifies a login attempt for a user + * @summary Verify Login Place + * @param {string} token Token to verify login attempt. + * @param {string} [userId] Filter by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async verifyLoginPlace(token: string, userId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.verifyLoginPlace(token, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Finishes sequence for enabling time-based 2FA. + * @summary Verify Pending 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async verifyPending2FA(twoFactorAuthCode: TwoFactorAuthCode, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.verifyPending2FA(twoFactorAuthCode, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Finishes the login sequence with an OTP (One Time Password) recovery code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code with Recovery code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async verifyRecoveryCode(twoFactorAuthCode: TwoFactorAuthCode, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.verifyRecoveryCode(twoFactorAuthCode, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * AuthenticationApi - factory interface + * @export + */ +export const AuthenticationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = AuthenticationApiFp(configuration) + return { + /** + * Cancels the sequence for enabling time-based 2FA. + * @summary Cancel pending enabling of time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + cancelPending2FA(options?: any): AxiosPromise { + return localVarFp.cancelPending2FA(options).then((request) => request(axios, basePath)); + }, + /** + * Checks if a user by a given `username`, `displayName` or `email` exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the `excludeUserId` is used to exclude oneself, otherwise the result would always be true. It is **REQUIRED** to include **AT LEAST** `username`, `displayName` **or** `email` query parameter. Although they can be combined - in addition with `excludeUserId` (generally to exclude yourself) - to further fine-tune the search. + * @summary Check User Exists + * @param {string} [email] Filter by email. + * @param {string} [displayName] Filter by displayName. + * @param {string} [username] Filter by Username. + * @param {string} [excludeUserId] Exclude by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + checkUserExists(email?: string, displayName?: string, username?: string, excludeUserId?: string, options?: any): AxiosPromise { + return localVarFp.checkUserExists(email, displayName, username, excludeUserId, options).then((request) => request(axios, basePath)); + }, + /** + * Confirms the email address for a user + * @summary Confirm Email + * @param {string} id Target user for which to verify email. + * @param {string} verifyEmail Token to verify email. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + confirmEmail(id: string, verifyEmail: string, options?: any): AxiosPromise { + return localVarFp.confirmEmail(id, verifyEmail, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes the account with given ID. Normal users only have permission to delete their own account. Account deletion is 14 days from this request, and will be cancelled if you do an authenticated request with the account afterwards. **VRC+ NOTE:** Despite the 14-days cooldown, any VRC+ subscription will be cancelled **immediately**. **METHOD NOTE:** Despite this being a Delete action, the method type required is PUT. + * @summary Delete User + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteUser(userId: string, options?: any): AxiosPromise { + return localVarFp.deleteUser(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Disables 2FA for the currently logged in account + * @summary Disable 2FA + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + disable2FA(options?: any): AxiosPromise { + return localVarFp.disable2FA(options).then((request) => request(axios, basePath)); + }, + /** + * Begins the sequence for enabling time-based 2FA. + * @summary Enable time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + enable2FA(options?: any): AxiosPromise { + return localVarFp.enable2FA(options).then((request) => request(axios, basePath)); + }, + /** + * This endpoint does the following two operations: 1) Checks if you are already logged in by looking for a valid `auth` cookie. If you are have a valid auth cookie then no additional auth-related actions are taken. If you are **not** logged in then it will log you in with the `Authorization` header and set the `auth` cookie. The `auth` cookie will only be sent once. 2) If logged in, this function will also return the CurrentUser object containing detailed information about the currently logged in user. The auth string after `Authorization: Basic {string}` is a base64-encoded string of the username and password, both individually url-encoded, and then joined with a colon. > base64(urlencode(username):urlencode(password)) **WARNING: Session Limit:** Each authentication with login credentials counts as a separate session, out of which you have a limited amount. Make sure to save and reuse the `auth` cookie if you are often restarting the program. The provided API libraries automatically save cookies during runtime, but does not persist during restart. While it can be fine to use username/password during development, expect in production to very fast run into the rate-limit and be temporarily blocked from making new sessions until older ones expire. The exact number of simultaneous sessions is unknown/undisclosed. + * @summary Login and/or Get Current User Info + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCurrentUser(options?: any): AxiosPromise { + return localVarFp.getCurrentUser(options).then((request) => request(axios, basePath)); + }, + /** + * Gets the OTP (One Time Password) recovery codes for accounts with 2FA-protection enabled. + * @summary Get 2FA Recovery codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getRecoveryCodes(options?: any): AxiosPromise { + return localVarFp.getRecoveryCodes(options).then((request) => request(axios, basePath)); + }, + /** + * Invalidates the login session. + * @summary Logout + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + logout(options?: any): AxiosPromise { + return localVarFp.logout(options).then((request) => request(axios, basePath)); + }, + /** + * ~~Register a new user account.~~ **DEPRECATED:** Automated creation of accounts has no legitimate public third-party use case, and would be in violation of ToS §13.2: *By using the Platform, you agree not to: i. [...] use the Platform in a manner inconsistent with individual human usage* This endpoint is documented in the interest of completeness + * @summary Register User Account + * @param {RegisterUserAccountRequest} registerUserAccountRequest + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + registerUserAccount(registerUserAccountRequest: RegisterUserAccountRequest, options?: any): AxiosPromise { + return localVarFp.registerUserAccount(registerUserAccountRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Requests a resend of pending email address confirmation email + * @summary Resend Email Confirmation + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + resendEmailConfirmation(options?: any): AxiosPromise { + return localVarFp.resendEmailConfirmation(options).then((request) => request(axios, basePath)); + }, + /** + * Finishes the login sequence with a normal 2FA-generated code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verify2FA(twoFactorAuthCode: TwoFactorAuthCode, options?: any): AxiosPromise { + return localVarFp.verify2FA(twoFactorAuthCode, options).then((request) => request(axios, basePath)); + }, + /** + * Finishes the login sequence with an 2FA email code. + * @summary Verify 2FA email code + * @param {TwoFactorEmailCode} twoFactorEmailCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verify2FAEmailCode(twoFactorEmailCode: TwoFactorEmailCode, options?: any): AxiosPromise { + return localVarFp.verify2FAEmailCode(twoFactorEmailCode, options).then((request) => request(axios, basePath)); + }, + /** + * Verify whether the currently provided Auth Token is valid. + * @summary Verify Auth Token + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyAuthToken(options?: any): AxiosPromise { + return localVarFp.verifyAuthToken(options).then((request) => request(axios, basePath)); + }, + /** + * Verifies a login attempt for a user + * @summary Verify Login Place + * @param {string} token Token to verify login attempt. + * @param {string} [userId] Filter by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyLoginPlace(token: string, userId?: string, options?: any): AxiosPromise { + return localVarFp.verifyLoginPlace(token, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Finishes sequence for enabling time-based 2FA. + * @summary Verify Pending 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyPending2FA(twoFactorAuthCode: TwoFactorAuthCode, options?: any): AxiosPromise { + return localVarFp.verifyPending2FA(twoFactorAuthCode, options).then((request) => request(axios, basePath)); + }, + /** + * Finishes the login sequence with an OTP (One Time Password) recovery code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code with Recovery code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + verifyRecoveryCode(twoFactorAuthCode: TwoFactorAuthCode, options?: any): AxiosPromise { + return localVarFp.verifyRecoveryCode(twoFactorAuthCode, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * AuthenticationApi - object-oriented interface + * @export + * @class AuthenticationApi + * @extends {BaseAPI} + */ +export class AuthenticationApi extends BaseAPI { + /** + * Cancels the sequence for enabling time-based 2FA. + * @summary Cancel pending enabling of time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public cancelPending2FA(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).cancelPending2FA(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Checks if a user by a given `username`, `displayName` or `email` exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the `excludeUserId` is used to exclude oneself, otherwise the result would always be true. It is **REQUIRED** to include **AT LEAST** `username`, `displayName` **or** `email` query parameter. Although they can be combined - in addition with `excludeUserId` (generally to exclude yourself) - to further fine-tune the search. + * @summary Check User Exists + * @param {string} [email] Filter by email. + * @param {string} [displayName] Filter by displayName. + * @param {string} [username] Filter by Username. + * @param {string} [excludeUserId] Exclude by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public checkUserExists(email?: string, displayName?: string, username?: string, excludeUserId?: string, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).checkUserExists(email, displayName, username, excludeUserId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Confirms the email address for a user + * @summary Confirm Email + * @param {string} id Target user for which to verify email. + * @param {string} verifyEmail Token to verify email. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public confirmEmail(id: string, verifyEmail: string, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).confirmEmail(id, verifyEmail, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes the account with given ID. Normal users only have permission to delete their own account. Account deletion is 14 days from this request, and will be cancelled if you do an authenticated request with the account afterwards. **VRC+ NOTE:** Despite the 14-days cooldown, any VRC+ subscription will be cancelled **immediately**. **METHOD NOTE:** Despite this being a Delete action, the method type required is PUT. + * @summary Delete User + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public deleteUser(userId: string, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).deleteUser(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Disables 2FA for the currently logged in account + * @summary Disable 2FA + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public disable2FA(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).disable2FA(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Begins the sequence for enabling time-based 2FA. + * @summary Enable time-based 2FA codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public enable2FA(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).enable2FA(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * This endpoint does the following two operations: 1) Checks if you are already logged in by looking for a valid `auth` cookie. If you are have a valid auth cookie then no additional auth-related actions are taken. If you are **not** logged in then it will log you in with the `Authorization` header and set the `auth` cookie. The `auth` cookie will only be sent once. 2) If logged in, this function will also return the CurrentUser object containing detailed information about the currently logged in user. The auth string after `Authorization: Basic {string}` is a base64-encoded string of the username and password, both individually url-encoded, and then joined with a colon. > base64(urlencode(username):urlencode(password)) **WARNING: Session Limit:** Each authentication with login credentials counts as a separate session, out of which you have a limited amount. Make sure to save and reuse the `auth` cookie if you are often restarting the program. The provided API libraries automatically save cookies during runtime, but does not persist during restart. While it can be fine to use username/password during development, expect in production to very fast run into the rate-limit and be temporarily blocked from making new sessions until older ones expire. The exact number of simultaneous sessions is unknown/undisclosed. + * @summary Login and/or Get Current User Info + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public getCurrentUser(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).getCurrentUser(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Gets the OTP (One Time Password) recovery codes for accounts with 2FA-protection enabled. + * @summary Get 2FA Recovery codes + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public getRecoveryCodes(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).getRecoveryCodes(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Invalidates the login session. + * @summary Logout + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public logout(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).logout(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * ~~Register a new user account.~~ **DEPRECATED:** Automated creation of accounts has no legitimate public third-party use case, and would be in violation of ToS §13.2: *By using the Platform, you agree not to: i. [...] use the Platform in a manner inconsistent with individual human usage* This endpoint is documented in the interest of completeness + * @summary Register User Account + * @param {RegisterUserAccountRequest} registerUserAccountRequest + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public registerUserAccount(registerUserAccountRequest: RegisterUserAccountRequest, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).registerUserAccount(registerUserAccountRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Requests a resend of pending email address confirmation email + * @summary Resend Email Confirmation + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public resendEmailConfirmation(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).resendEmailConfirmation(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Finishes the login sequence with a normal 2FA-generated code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public verify2FA(twoFactorAuthCode: TwoFactorAuthCode, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).verify2FA(twoFactorAuthCode, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Finishes the login sequence with an 2FA email code. + * @summary Verify 2FA email code + * @param {TwoFactorEmailCode} twoFactorEmailCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public verify2FAEmailCode(twoFactorEmailCode: TwoFactorEmailCode, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).verify2FAEmailCode(twoFactorEmailCode, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Verify whether the currently provided Auth Token is valid. + * @summary Verify Auth Token + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public verifyAuthToken(options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).verifyAuthToken(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Verifies a login attempt for a user + * @summary Verify Login Place + * @param {string} token Token to verify login attempt. + * @param {string} [userId] Filter by UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public verifyLoginPlace(token: string, userId?: string, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).verifyLoginPlace(token, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Finishes sequence for enabling time-based 2FA. + * @summary Verify Pending 2FA code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public verifyPending2FA(twoFactorAuthCode: TwoFactorAuthCode, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).verifyPending2FA(twoFactorAuthCode, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Finishes the login sequence with an OTP (One Time Password) recovery code for accounts with 2FA-protection enabled. + * @summary Verify 2FA code with Recovery code + * @param {TwoFactorAuthCode} twoFactorAuthCode + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AuthenticationApi + */ + public verifyRecoveryCode(twoFactorAuthCode: TwoFactorAuthCode, options?: AxiosRequestConfig) { + return AuthenticationApiFp(this.configuration).verifyRecoveryCode(twoFactorAuthCode, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * AvatarsApi - axios parameter creator + * @export + */ +export const AvatarsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Create an avatar. It\'s possible to optionally specify a ID if you want a custom one. Attempting to create an Avatar with an already claimed ID will result in a DB error. + * @summary Create Avatar + * @param {CreateAvatarRequest} [createAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createAvatar: async (createAvatarRequest?: CreateAvatarRequest, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/avatars`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createAvatarRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete an avatar. Notice an avatar is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The AvatarID is permanently reserved. + * @summary Delete Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteAvatar: async (avatarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'avatarId' is not null or undefined + assertParamExists('deleteAvatar', 'avatarId', avatarId) + const localVarPath = `/avatars/{avatarId}` + .replace(`{${"avatarId"}}`, encodeURIComponent(String(avatarId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete generated Impostor for that avatar. + * @summary Delete generated Impostor + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteImpostor: async (avatarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'avatarId' is not null or undefined + assertParamExists('deleteImpostor', 'avatarId', avatarId) + const localVarPath = `/avatars/{avatarId}/impostor` + .replace(`{${"avatarId"}}`, encodeURIComponent(String(avatarId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Enqueue Impostor generation for that avatar. + * @summary Enqueue Impostor generation + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + enqueueImpostor: async (avatarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'avatarId' is not null or undefined + assertParamExists('enqueueImpostor', 'avatarId', avatarId) + const localVarPath = `/avatars/{avatarId}/impostor/enqueue` + .replace(`{${"avatarId"}}`, encodeURIComponent(String(avatarId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get information about a specific Avatar. + * @summary Get Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAvatar: async (avatarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'avatarId' is not null or undefined + assertParamExists('getAvatar', 'avatarId', avatarId) + const localVarPath = `/avatars/{avatarId}` + .replace(`{${"avatarId"}}`, encodeURIComponent(String(avatarId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List avatar styles. + * @summary Get Avatar Styles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAvatarStyles: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/avatarStyles`; + // 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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search and list favorited avatars by query filters. + * @summary List Favorited Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoritedAvatars: async (featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/avatars/favorites`; + // 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 authCookie required + + if (featured !== undefined) { + localVarQueryParameter['featured'] = featured; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (order !== undefined) { + localVarQueryParameter['order'] = order; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (notag !== undefined) { + localVarQueryParameter['notag'] = notag; + } + + if (releaseStatus !== undefined) { + localVarQueryParameter['releaseStatus'] = releaseStatus; + } + + if (maxUnityVersion !== undefined) { + localVarQueryParameter['maxUnityVersion'] = maxUnityVersion; + } + + if (minUnityVersion !== undefined) { + localVarQueryParameter['minUnityVersion'] = minUnityVersion; + } + + if (platform !== undefined) { + localVarQueryParameter['platform'] = platform; + } + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Gets service stats for queued impostor. + * @summary Get Impostor Queue Stats + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getImpostorQueueStats: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/avatars/impostor/queue/stats`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List licensed avatars. + * @summary List Licensed Avatars + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLicensedAvatars: async (n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/avatars/licensed`; + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get the current avatar for the user. This will return an error for any other user than the one logged in. + * @summary Get Own Avatar + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getOwnAvatar: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getOwnAvatar', 'userId', userId) + const localVarPath = `/users/{userId}/avatar` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other peoples avatars. + * @summary Search Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own avatars. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchAvatars: async (featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/avatars`; + // 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 authCookie required + + if (featured !== undefined) { + localVarQueryParameter['featured'] = featured; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (user !== undefined) { + localVarQueryParameter['user'] = user; + } + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (order !== undefined) { + localVarQueryParameter['order'] = order; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (notag !== undefined) { + localVarQueryParameter['notag'] = notag; + } + + if (releaseStatus !== undefined) { + localVarQueryParameter['releaseStatus'] = releaseStatus; + } + + if (maxUnityVersion !== undefined) { + localVarQueryParameter['maxUnityVersion'] = maxUnityVersion; + } + + if (minUnityVersion !== undefined) { + localVarQueryParameter['minUnityVersion'] = minUnityVersion; + } + + if (platform !== undefined) { + localVarQueryParameter['platform'] = platform; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Switches into that avatar. + * @summary Select Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + selectAvatar: async (avatarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'avatarId' is not null or undefined + assertParamExists('selectAvatar', 'avatarId', avatarId) + const localVarPath = `/avatars/{avatarId}/select` + .replace(`{${"avatarId"}}`, encodeURIComponent(String(avatarId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Switches into that avatar as your fallback avatar. + * @summary Select Fallback Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + selectFallbackAvatar: async (avatarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'avatarId' is not null or undefined + assertParamExists('selectFallbackAvatar', 'avatarId', avatarId) + const localVarPath = `/avatars/{avatarId}/selectFallback` + .replace(`{${"avatarId"}}`, encodeURIComponent(String(avatarId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update information about a specific avatar. + * @summary Update Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {UpdateAvatarRequest} [updateAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateAvatar: async (avatarId: string, updateAvatarRequest?: UpdateAvatarRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'avatarId' is not null or undefined + assertParamExists('updateAvatar', 'avatarId', avatarId) + const localVarPath = `/avatars/{avatarId}` + .replace(`{${"avatarId"}}`, encodeURIComponent(String(avatarId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateAvatarRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * AvatarsApi - functional programming interface + * @export + */ +export const AvatarsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = AvatarsApiAxiosParamCreator(configuration) + return { + /** + * Create an avatar. It\'s possible to optionally specify a ID if you want a custom one. Attempting to create an Avatar with an already claimed ID will result in a DB error. + * @summary Create Avatar + * @param {CreateAvatarRequest} [createAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createAvatar(createAvatarRequest?: CreateAvatarRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createAvatar(createAvatarRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Delete an avatar. Notice an avatar is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The AvatarID is permanently reserved. + * @summary Delete Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteAvatar(avatarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteAvatar(avatarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Delete generated Impostor for that avatar. + * @summary Delete generated Impostor + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteImpostor(avatarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteImpostor(avatarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Enqueue Impostor generation for that avatar. + * @summary Enqueue Impostor generation + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async enqueueImpostor(avatarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.enqueueImpostor(avatarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get information about a specific Avatar. + * @summary Get Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getAvatar(avatarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getAvatar(avatarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * List avatar styles. + * @summary Get Avatar Styles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getAvatarStyles(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getAvatarStyles(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search and list favorited avatars by query filters. + * @summary List Favorited Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFavoritedAvatars(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFavoritedAvatars(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Gets service stats for queued impostor. + * @summary Get Impostor Queue Stats + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getImpostorQueueStats(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getImpostorQueueStats(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * List licensed avatars. + * @summary List Licensed Avatars + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLicensedAvatars(n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLicensedAvatars(n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get the current avatar for the user. This will return an error for any other user than the one logged in. + * @summary Get Own Avatar + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getOwnAvatar(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getOwnAvatar(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other peoples avatars. + * @summary Search Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own avatars. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async searchAvatars(featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.searchAvatars(featured, sort, user, userId, n, order, offset, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Switches into that avatar. + * @summary Select Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async selectAvatar(avatarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.selectAvatar(avatarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Switches into that avatar as your fallback avatar. + * @summary Select Fallback Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + async selectFallbackAvatar(avatarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.selectFallbackAvatar(avatarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Update information about a specific avatar. + * @summary Update Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {UpdateAvatarRequest} [updateAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateAvatar(avatarId: string, updateAvatarRequest?: UpdateAvatarRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateAvatar(avatarId, updateAvatarRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * AvatarsApi - factory interface + * @export + */ +export const AvatarsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = AvatarsApiFp(configuration) + return { + /** + * Create an avatar. It\'s possible to optionally specify a ID if you want a custom one. Attempting to create an Avatar with an already claimed ID will result in a DB error. + * @summary Create Avatar + * @param {CreateAvatarRequest} [createAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createAvatar(createAvatarRequest?: CreateAvatarRequest, options?: any): AxiosPromise { + return localVarFp.createAvatar(createAvatarRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Delete an avatar. Notice an avatar is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The AvatarID is permanently reserved. + * @summary Delete Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteAvatar(avatarId: string, options?: any): AxiosPromise { + return localVarFp.deleteAvatar(avatarId, options).then((request) => request(axios, basePath)); + }, + /** + * Delete generated Impostor for that avatar. + * @summary Delete generated Impostor + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteImpostor(avatarId: string, options?: any): AxiosPromise { + return localVarFp.deleteImpostor(avatarId, options).then((request) => request(axios, basePath)); + }, + /** + * Enqueue Impostor generation for that avatar. + * @summary Enqueue Impostor generation + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + enqueueImpostor(avatarId: string, options?: any): AxiosPromise { + return localVarFp.enqueueImpostor(avatarId, options).then((request) => request(axios, basePath)); + }, + /** + * Get information about a specific Avatar. + * @summary Get Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAvatar(avatarId: string, options?: any): AxiosPromise { + return localVarFp.getAvatar(avatarId, options).then((request) => request(axios, basePath)); + }, + /** + * List avatar styles. + * @summary Get Avatar Styles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAvatarStyles(options?: any): AxiosPromise> { + return localVarFp.getAvatarStyles(options).then((request) => request(axios, basePath)); + }, + /** + * Search and list favorited avatars by query filters. + * @summary List Favorited Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoritedAvatars(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: any): AxiosPromise> { + return localVarFp.getFavoritedAvatars(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Gets service stats for queued impostor. + * @summary Get Impostor Queue Stats + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getImpostorQueueStats(options?: any): AxiosPromise { + return localVarFp.getImpostorQueueStats(options).then((request) => request(axios, basePath)); + }, + /** + * List licensed avatars. + * @summary List Licensed Avatars + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLicensedAvatars(n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.getLicensedAvatars(n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Get the current avatar for the user. This will return an error for any other user than the one logged in. + * @summary Get Own Avatar + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getOwnAvatar(userId: string, options?: any): AxiosPromise { + return localVarFp.getOwnAvatar(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other peoples avatars. + * @summary Search Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own avatars. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchAvatars(featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options?: any): AxiosPromise> { + return localVarFp.searchAvatars(featured, sort, user, userId, n, order, offset, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, options).then((request) => request(axios, basePath)); + }, + /** + * Switches into that avatar. + * @summary Select Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + selectAvatar(avatarId: string, options?: any): AxiosPromise { + return localVarFp.selectAvatar(avatarId, options).then((request) => request(axios, basePath)); + }, + /** + * Switches into that avatar as your fallback avatar. + * @summary Select Fallback Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + selectFallbackAvatar(avatarId: string, options?: any): AxiosPromise { + return localVarFp.selectFallbackAvatar(avatarId, options).then((request) => request(axios, basePath)); + }, + /** + * Update information about a specific avatar. + * @summary Update Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {UpdateAvatarRequest} [updateAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateAvatar(avatarId: string, updateAvatarRequest?: UpdateAvatarRequest, options?: any): AxiosPromise { + return localVarFp.updateAvatar(avatarId, updateAvatarRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * AvatarsApi - object-oriented interface + * @export + * @class AvatarsApi + * @extends {BaseAPI} + */ +export class AvatarsApi extends BaseAPI { + /** + * Create an avatar. It\'s possible to optionally specify a ID if you want a custom one. Attempting to create an Avatar with an already claimed ID will result in a DB error. + * @summary Create Avatar + * @param {CreateAvatarRequest} [createAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public createAvatar(createAvatarRequest?: CreateAvatarRequest, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).createAvatar(createAvatarRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete an avatar. Notice an avatar is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The AvatarID is permanently reserved. + * @summary Delete Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public deleteAvatar(avatarId: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).deleteAvatar(avatarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete generated Impostor for that avatar. + * @summary Delete generated Impostor + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public deleteImpostor(avatarId: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).deleteImpostor(avatarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Enqueue Impostor generation for that avatar. + * @summary Enqueue Impostor generation + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public enqueueImpostor(avatarId: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).enqueueImpostor(avatarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get information about a specific Avatar. + * @summary Get Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public getAvatar(avatarId: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).getAvatar(avatarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * List avatar styles. + * @summary Get Avatar Styles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public getAvatarStyles(options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).getAvatarStyles(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search and list favorited avatars by query filters. + * @summary List Favorited Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public getFavoritedAvatars(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).getFavoritedAvatars(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Gets service stats for queued impostor. + * @summary Get Impostor Queue Stats + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public getImpostorQueueStats(options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).getImpostorQueueStats(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * List licensed avatars. + * @summary List Licensed Avatars + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public getLicensedAvatars(n?: number, offset?: number, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).getLicensedAvatars(n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get the current avatar for the user. This will return an error for any other user than the one logged in. + * @summary Get Own Avatar + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public getOwnAvatar(userId: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).getOwnAvatar(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search and list avatars by query filters. You can only search your own or featured avatars. It is not possible as a normal user to search other peoples avatars. + * @summary Search Avatars + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own avatars. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public searchAvatars(featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).searchAvatars(featured, sort, user, userId, n, order, offset, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Switches into that avatar. + * @summary Select Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public selectAvatar(avatarId: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).selectAvatar(avatarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Switches into that avatar as your fallback avatar. + * @summary Select Fallback Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public selectFallbackAvatar(avatarId: string, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).selectFallbackAvatar(avatarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Update information about a specific avatar. + * @summary Update Avatar + * @param {string} avatarId Must be a valid avatar ID. + * @param {UpdateAvatarRequest} [updateAvatarRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AvatarsApi + */ + public updateAvatar(avatarId: string, updateAvatarRequest?: UpdateAvatarRequest, options?: AxiosRequestConfig) { + return AvatarsApiFp(this.configuration).updateAvatar(avatarId, updateAvatarRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * CalendarApi - axios parameter creator + * @export + */ +export const CalendarApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Creates an event for a group on the calendar + * @summary Create a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {CreateCalendarEventRequest} createCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupCalendarEvent: async (groupId: string, createCalendarEventRequest: CreateCalendarEventRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('createGroupCalendarEvent', 'groupId', groupId) + // verify required parameter 'createCalendarEventRequest' is not null or undefined + assertParamExists('createGroupCalendarEvent', 'createCalendarEventRequest', createCalendarEventRequest) + const localVarPath = `/calendar/{groupId}/event` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createCalendarEventRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete a group calendar event + * @summary Delete a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupCalendarEvent: async (groupId: string, calendarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroupCalendarEvent', 'groupId', groupId) + // verify required parameter 'calendarId' is not null or undefined + assertParamExists('deleteGroupCalendarEvent', 'calendarId', calendarId) + const localVarPath = `/calendar/{groupId}/{calendarId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"calendarId"}}`, encodeURIComponent(String(calendarId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Follow or unfollow an event on a group\'s calendar + * @summary Follow a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {FollowCalendarEventRequest} followCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + followGroupCalendarEvent: async (groupId: string, calendarId: string, followCalendarEventRequest: FollowCalendarEventRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('followGroupCalendarEvent', 'groupId', groupId) + // verify required parameter 'calendarId' is not null or undefined + assertParamExists('followGroupCalendarEvent', 'calendarId', calendarId) + // verify required parameter 'followCalendarEventRequest' is not null or undefined + assertParamExists('followGroupCalendarEvent', 'followCalendarEventRequest', followCalendarEventRequest) + const localVarPath = `/calendar/{groupId}/{calendarId}/follow` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"calendarId"}}`, encodeURIComponent(String(calendarId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(followCalendarEventRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a list of a user\'s calendar events for the month in ?date + * @summary List calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCalendarEvents: async (date?: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/calendar`; + // 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 authCookie required + + if (date !== undefined) { + localVarQueryParameter['date'] = (date as any instanceof Date) ? + (date as any).toISOString() : + date; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a list of a featured calendar events for the month in ?date + * @summary List featured calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFeaturedCalendarEvents: async (date?: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/calendar/featured`; + // 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 authCookie required + + if (date !== undefined) { + localVarQueryParameter['date'] = (date as any instanceof Date) ? + (date as any).toISOString() : + date; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a list of a followed calendar events for the month in ?date + * @summary List followed calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFollowedCalendarEvents: async (date?: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/calendar/following`; + // 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 authCookie required + + if (date !== undefined) { + localVarQueryParameter['date'] = (date as any instanceof Date) ? + (date as any).toISOString() : + date; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a group calendar event + * @summary Get a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupCalendarEvent: async (groupId: string, calendarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupCalendarEvent', 'groupId', groupId) + // verify required parameter 'calendarId' is not null or undefined + assertParamExists('getGroupCalendarEvent', 'calendarId', calendarId) + const localVarPath = `/calendar/{groupId}/{calendarId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"calendarId"}}`, encodeURIComponent(String(calendarId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns the specified calendar in iCalendar (ICS) format. + * @summary Download calendar event as ICS + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupCalendarEventICS: async (groupId: string, calendarId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupCalendarEventICS', 'groupId', groupId) + // verify required parameter 'calendarId' is not null or undefined + assertParamExists('getGroupCalendarEventICS', 'calendarId', calendarId) + const localVarPath = `/calendar/{groupId}/{calendarId}.ics` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"calendarId"}}`, encodeURIComponent(String(calendarId))); + // 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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a list of a group\'s calendar events + * @summary List a group\'s calendar events + * @param {string} groupId Must be a valid group ID. + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupCalendarEvents: async (groupId: string, date?: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupCalendarEvents', 'groupId', groupId) + const localVarPath = `/calendar/{groupId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (date !== undefined) { + localVarQueryParameter['date'] = (date as any instanceof Date) ? + (date as any).toISOString() : + date; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates an event for a group on the calendar + * @summary Update a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {UpdateCalendarEventRequest} updateCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupCalendarEvent: async (groupId: string, calendarId: string, updateCalendarEventRequest: UpdateCalendarEventRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('updateGroupCalendarEvent', 'groupId', groupId) + // verify required parameter 'calendarId' is not null or undefined + assertParamExists('updateGroupCalendarEvent', 'calendarId', calendarId) + // verify required parameter 'updateCalendarEventRequest' is not null or undefined + assertParamExists('updateGroupCalendarEvent', 'updateCalendarEventRequest', updateCalendarEventRequest) + const localVarPath = `/calendar/{groupId}/{calendarId}/event` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"calendarId"}}`, encodeURIComponent(String(calendarId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateCalendarEventRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * CalendarApi - functional programming interface + * @export + */ +export const CalendarApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = CalendarApiAxiosParamCreator(configuration) + return { + /** + * Creates an event for a group on the calendar + * @summary Create a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {CreateCalendarEventRequest} createCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createGroupCalendarEvent(groupId: string, createCalendarEventRequest: CreateCalendarEventRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createGroupCalendarEvent(groupId, createCalendarEventRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Delete a group calendar event + * @summary Delete a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroupCalendarEvent(groupId: string, calendarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroupCalendarEvent(groupId, calendarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Follow or unfollow an event on a group\'s calendar + * @summary Follow a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {FollowCalendarEventRequest} followCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async followGroupCalendarEvent(groupId: string, calendarId: string, followCalendarEventRequest: FollowCalendarEventRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.followGroupCalendarEvent(groupId, calendarId, followCalendarEventRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a list of a user\'s calendar events for the month in ?date + * @summary List calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCalendarEvents(date?: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCalendarEvents(date, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a list of a featured calendar events for the month in ?date + * @summary List featured calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFeaturedCalendarEvents(date?: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFeaturedCalendarEvents(date, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a list of a followed calendar events for the month in ?date + * @summary List followed calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFollowedCalendarEvents(date?: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFollowedCalendarEvents(date, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a group calendar event + * @summary Get a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupCalendarEvent(groupId: string, calendarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupCalendarEvent(groupId, calendarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns the specified calendar in iCalendar (ICS) format. + * @summary Download calendar event as ICS + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupCalendarEventICS(groupId: string, calendarId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupCalendarEventICS(groupId, calendarId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a list of a group\'s calendar events + * @summary List a group\'s calendar events + * @param {string} groupId Must be a valid group ID. + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupCalendarEvents(groupId: string, date?: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupCalendarEvents(groupId, date, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates an event for a group on the calendar + * @summary Update a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {UpdateCalendarEventRequest} updateCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateGroupCalendarEvent(groupId: string, calendarId: string, updateCalendarEventRequest: UpdateCalendarEventRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroupCalendarEvent(groupId, calendarId, updateCalendarEventRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * CalendarApi - factory interface + * @export + */ +export const CalendarApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = CalendarApiFp(configuration) + return { + /** + * Creates an event for a group on the calendar + * @summary Create a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {CreateCalendarEventRequest} createCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupCalendarEvent(groupId: string, createCalendarEventRequest: CreateCalendarEventRequest, options?: any): AxiosPromise { + return localVarFp.createGroupCalendarEvent(groupId, createCalendarEventRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Delete a group calendar event + * @summary Delete a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupCalendarEvent(groupId: string, calendarId: string, options?: any): AxiosPromise { + return localVarFp.deleteGroupCalendarEvent(groupId, calendarId, options).then((request) => request(axios, basePath)); + }, + /** + * Follow or unfollow an event on a group\'s calendar + * @summary Follow a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {FollowCalendarEventRequest} followCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + followGroupCalendarEvent(groupId: string, calendarId: string, followCalendarEventRequest: FollowCalendarEventRequest, options?: any): AxiosPromise { + return localVarFp.followGroupCalendarEvent(groupId, calendarId, followCalendarEventRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Get a list of a user\'s calendar events for the month in ?date + * @summary List calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCalendarEvents(date?: string, n?: number, offset?: number, options?: any): AxiosPromise { + return localVarFp.getCalendarEvents(date, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Get a list of a featured calendar events for the month in ?date + * @summary List featured calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFeaturedCalendarEvents(date?: string, n?: number, offset?: number, options?: any): AxiosPromise { + return localVarFp.getFeaturedCalendarEvents(date, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Get a list of a followed calendar events for the month in ?date + * @summary List followed calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFollowedCalendarEvents(date?: string, n?: number, offset?: number, options?: any): AxiosPromise { + return localVarFp.getFollowedCalendarEvents(date, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Get a group calendar event + * @summary Get a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupCalendarEvent(groupId: string, calendarId: string, options?: any): AxiosPromise { + return localVarFp.getGroupCalendarEvent(groupId, calendarId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns the specified calendar in iCalendar (ICS) format. + * @summary Download calendar event as ICS + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupCalendarEventICS(groupId: string, calendarId: string, options?: any): AxiosPromise { + return localVarFp.getGroupCalendarEventICS(groupId, calendarId, options).then((request) => request(axios, basePath)); + }, + /** + * Get a list of a group\'s calendar events + * @summary List a group\'s calendar events + * @param {string} groupId Must be a valid group ID. + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupCalendarEvents(groupId: string, date?: string, n?: number, offset?: number, options?: any): AxiosPromise { + return localVarFp.getGroupCalendarEvents(groupId, date, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Updates an event for a group on the calendar + * @summary Update a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {UpdateCalendarEventRequest} updateCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupCalendarEvent(groupId: string, calendarId: string, updateCalendarEventRequest: UpdateCalendarEventRequest, options?: any): AxiosPromise { + return localVarFp.updateGroupCalendarEvent(groupId, calendarId, updateCalendarEventRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * CalendarApi - object-oriented interface + * @export + * @class CalendarApi + * @extends {BaseAPI} + */ +export class CalendarApi extends BaseAPI { + /** + * Creates an event for a group on the calendar + * @summary Create a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {CreateCalendarEventRequest} createCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public createGroupCalendarEvent(groupId: string, createCalendarEventRequest: CreateCalendarEventRequest, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).createGroupCalendarEvent(groupId, createCalendarEventRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete a group calendar event + * @summary Delete a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public deleteGroupCalendarEvent(groupId: string, calendarId: string, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).deleteGroupCalendarEvent(groupId, calendarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Follow or unfollow an event on a group\'s calendar + * @summary Follow a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {FollowCalendarEventRequest} followCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public followGroupCalendarEvent(groupId: string, calendarId: string, followCalendarEventRequest: FollowCalendarEventRequest, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).followGroupCalendarEvent(groupId, calendarId, followCalendarEventRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a list of a user\'s calendar events for the month in ?date + * @summary List calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public getCalendarEvents(date?: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).getCalendarEvents(date, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a list of a featured calendar events for the month in ?date + * @summary List featured calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public getFeaturedCalendarEvents(date?: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).getFeaturedCalendarEvents(date, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a list of a followed calendar events for the month in ?date + * @summary List followed calendar events + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public getFollowedCalendarEvents(date?: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).getFollowedCalendarEvents(date, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a group calendar event + * @summary Get a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public getGroupCalendarEvent(groupId: string, calendarId: string, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).getGroupCalendarEvent(groupId, calendarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns the specified calendar in iCalendar (ICS) format. + * @summary Download calendar event as ICS + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public getGroupCalendarEventICS(groupId: string, calendarId: string, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).getGroupCalendarEventICS(groupId, calendarId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a list of a group\'s calendar events + * @summary List a group\'s calendar events + * @param {string} groupId Must be a valid group ID. + * @param {string} [date] The month to search in. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public getGroupCalendarEvents(groupId: string, date?: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).getGroupCalendarEvents(groupId, date, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates an event for a group on the calendar + * @summary Update a calendar event + * @param {string} groupId Must be a valid group ID. + * @param {string} calendarId Must be a valid calendar ID. + * @param {UpdateCalendarEventRequest} updateCalendarEventRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CalendarApi + */ + public updateGroupCalendarEvent(groupId: string, calendarId: string, updateCalendarEventRequest: UpdateCalendarEventRequest, options?: AxiosRequestConfig) { + return CalendarApiFp(this.configuration).updateGroupCalendarEvent(groupId, calendarId, updateCalendarEventRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * EconomyApi - axios parameter creator + * @export + */ +export const EconomyApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Gets the balance of a user + * @summary Get Balance + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getBalance: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getBalance', 'userId', userId) + const localVarPath = `/user/{userId}/balance` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a list of all current user subscriptions. + * @summary Get Current Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCurrentSubscriptions: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/subscription`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a single License Group by given ID. + * @summary Get License Group + * @param {string} licenseGroupId Must be a valid license group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLicenseGroup: async (licenseGroupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'licenseGroupId' is not null or undefined + assertParamExists('getLicenseGroup', 'licenseGroupId', licenseGroupId) + const localVarPath = `/licenseGroups/{licenseGroupId}` + .replace(`{${"licenseGroupId"}}`, encodeURIComponent(String(licenseGroupId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Gets a product listing + * @summary Get Product Listing + * @param {string} productId Must be a valid product ID. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getProductListing: async (productId: string, hydrate?: boolean, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'productId' is not null or undefined + assertParamExists('getProductListing', 'productId', productId) + const localVarPath = `/listing/{productId}` + .replace(`{${"productId"}}`, encodeURIComponent(String(productId))); + // 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 authCookie required + + if (hydrate !== undefined) { + localVarQueryParameter['hydrate'] = hydrate; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Gets the product listings of a given user + * @summary Get User Product Listings + * @param {string} userId Must be a valid user ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {string} [groupId] Must be a valid group ID. + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getProductListings: async (userId: string, n?: number, offset?: number, hydrate?: boolean, groupId?: string, active?: boolean, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getProductListings', 'userId', userId) + const localVarPath = `/user/{userId}/listings` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (hydrate !== undefined) { + localVarQueryParameter['hydrate'] = hydrate; + } + + if (groupId !== undefined) { + localVarQueryParameter['groupId'] = groupId; + } + + if (active !== undefined) { + localVarQueryParameter['active'] = active; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a single Steam transactions by ID. This returns the exact same information as `getSteamTransactions`, so no point in using this endpoint. + * @summary Get Steam Transaction + * @param {string} transactionId Must be a valid transaction ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSteamTransaction: async (transactionId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'transactionId' is not null or undefined + assertParamExists('getSteamTransaction', 'transactionId', transactionId) + const localVarPath = `/Steam/transactions/{transactionId}` + .replace(`{${"transactionId"}}`, encodeURIComponent(String(transactionId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get all own Steam transactions. + * @summary List Steam Transactions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSteamTransactions: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/Steam/transactions`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List all existing Subscriptions. For example, \"vrchatplus-monthly\" and \"vrchatplus-yearly\". + * @summary List Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSubscriptions: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/subscriptions`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Gets the status of Tilia integration + * @summary Get Tilia Status + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTiliaStatus: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/tilia/status`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Gets the status of the agreement of a user to the Tilia TOS + * @summary Get Tilia TOS Agreement Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTiliaTos: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getTiliaTos', 'userId', userId) + const localVarPath = `/user/{userId}/tilia/tos` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Gets the list of token bundles + * @summary List Token Bundles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTokenBundles: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/tokenBundles`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * EconomyApi - functional programming interface + * @export + */ +export const EconomyApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = EconomyApiAxiosParamCreator(configuration) + return { + /** + * Gets the balance of a user + * @summary Get Balance + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getBalance(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getBalance(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a list of all current user subscriptions. + * @summary Get Current Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCurrentSubscriptions(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCurrentSubscriptions(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a single License Group by given ID. + * @summary Get License Group + * @param {string} licenseGroupId Must be a valid license group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLicenseGroup(licenseGroupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLicenseGroup(licenseGroupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Gets a product listing + * @summary Get Product Listing + * @param {string} productId Must be a valid product ID. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getProductListing(productId: string, hydrate?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getProductListing(productId, hydrate, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Gets the product listings of a given user + * @summary Get User Product Listings + * @param {string} userId Must be a valid user ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {string} [groupId] Must be a valid group ID. + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getProductListings(userId: string, n?: number, offset?: number, hydrate?: boolean, groupId?: string, active?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getProductListings(userId, n, offset, hydrate, groupId, active, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a single Steam transactions by ID. This returns the exact same information as `getSteamTransactions`, so no point in using this endpoint. + * @summary Get Steam Transaction + * @param {string} transactionId Must be a valid transaction ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + async getSteamTransaction(transactionId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSteamTransaction(transactionId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get all own Steam transactions. + * @summary List Steam Transactions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSteamTransactions(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSteamTransactions(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * List all existing Subscriptions. For example, \"vrchatplus-monthly\" and \"vrchatplus-yearly\". + * @summary List Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSubscriptions(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSubscriptions(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Gets the status of Tilia integration + * @summary Get Tilia Status + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTiliaStatus(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTiliaStatus(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Gets the status of the agreement of a user to the Tilia TOS + * @summary Get Tilia TOS Agreement Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTiliaTos(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTiliaTos(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Gets the list of token bundles + * @summary List Token Bundles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTokenBundles(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTokenBundles(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * EconomyApi - factory interface + * @export + */ +export const EconomyApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = EconomyApiFp(configuration) + return { + /** + * Gets the balance of a user + * @summary Get Balance + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getBalance(userId: string, options?: any): AxiosPromise { + return localVarFp.getBalance(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Get a list of all current user subscriptions. + * @summary Get Current Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCurrentSubscriptions(options?: any): AxiosPromise> { + return localVarFp.getCurrentSubscriptions(options).then((request) => request(axios, basePath)); + }, + /** + * Get a single License Group by given ID. + * @summary Get License Group + * @param {string} licenseGroupId Must be a valid license group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLicenseGroup(licenseGroupId: string, options?: any): AxiosPromise { + return localVarFp.getLicenseGroup(licenseGroupId, options).then((request) => request(axios, basePath)); + }, + /** + * Gets a product listing + * @summary Get Product Listing + * @param {string} productId Must be a valid product ID. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getProductListing(productId: string, hydrate?: boolean, options?: any): AxiosPromise { + return localVarFp.getProductListing(productId, hydrate, options).then((request) => request(axios, basePath)); + }, + /** + * Gets the product listings of a given user + * @summary Get User Product Listings + * @param {string} userId Must be a valid user ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {string} [groupId] Must be a valid group ID. + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getProductListings(userId: string, n?: number, offset?: number, hydrate?: boolean, groupId?: string, active?: boolean, options?: any): AxiosPromise> { + return localVarFp.getProductListings(userId, n, offset, hydrate, groupId, active, options).then((request) => request(axios, basePath)); + }, + /** + * Get a single Steam transactions by ID. This returns the exact same information as `getSteamTransactions`, so no point in using this endpoint. + * @summary Get Steam Transaction + * @param {string} transactionId Must be a valid transaction ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getSteamTransaction(transactionId: string, options?: any): AxiosPromise { + return localVarFp.getSteamTransaction(transactionId, options).then((request) => request(axios, basePath)); + }, + /** + * Get all own Steam transactions. + * @summary List Steam Transactions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSteamTransactions(options?: any): AxiosPromise> { + return localVarFp.getSteamTransactions(options).then((request) => request(axios, basePath)); + }, + /** + * List all existing Subscriptions. For example, \"vrchatplus-monthly\" and \"vrchatplus-yearly\". + * @summary List Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSubscriptions(options?: any): AxiosPromise> { + return localVarFp.getSubscriptions(options).then((request) => request(axios, basePath)); + }, + /** + * Gets the status of Tilia integration + * @summary Get Tilia Status + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTiliaStatus(options?: any): AxiosPromise { + return localVarFp.getTiliaStatus(options).then((request) => request(axios, basePath)); + }, + /** + * Gets the status of the agreement of a user to the Tilia TOS + * @summary Get Tilia TOS Agreement Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTiliaTos(userId: string, options?: any): AxiosPromise { + return localVarFp.getTiliaTos(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Gets the list of token bundles + * @summary List Token Bundles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTokenBundles(options?: any): AxiosPromise> { + return localVarFp.getTokenBundles(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * EconomyApi - object-oriented interface + * @export + * @class EconomyApi + * @extends {BaseAPI} + */ +export class EconomyApi extends BaseAPI { + /** + * Gets the balance of a user + * @summary Get Balance + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getBalance(userId: string, options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getBalance(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a list of all current user subscriptions. + * @summary Get Current Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getCurrentSubscriptions(options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getCurrentSubscriptions(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a single License Group by given ID. + * @summary Get License Group + * @param {string} licenseGroupId Must be a valid license group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getLicenseGroup(licenseGroupId: string, options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getLicenseGroup(licenseGroupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Gets a product listing + * @summary Get Product Listing + * @param {string} productId Must be a valid product ID. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getProductListing(productId: string, hydrate?: boolean, options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getProductListing(productId, hydrate, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Gets the product listings of a given user + * @summary Get User Product Listings + * @param {string} userId Must be a valid user ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [hydrate] Populates some fields and changes types of others for certain objects. + * @param {string} [groupId] Must be a valid group ID. + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getProductListings(userId: string, n?: number, offset?: number, hydrate?: boolean, groupId?: string, active?: boolean, options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getProductListings(userId, n, offset, hydrate, groupId, active, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a single Steam transactions by ID. This returns the exact same information as `getSteamTransactions`, so no point in using this endpoint. + * @summary Get Steam Transaction + * @param {string} transactionId Must be a valid transaction ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getSteamTransaction(transactionId: string, options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getSteamTransaction(transactionId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get all own Steam transactions. + * @summary List Steam Transactions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getSteamTransactions(options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getSteamTransactions(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * List all existing Subscriptions. For example, \"vrchatplus-monthly\" and \"vrchatplus-yearly\". + * @summary List Subscriptions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getSubscriptions(options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getSubscriptions(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Gets the status of Tilia integration + * @summary Get Tilia Status + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getTiliaStatus(options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getTiliaStatus(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Gets the status of the agreement of a user to the Tilia TOS + * @summary Get Tilia TOS Agreement Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getTiliaTos(userId: string, options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getTiliaTos(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Gets the list of token bundles + * @summary List Token Bundles + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EconomyApi + */ + public getTokenBundles(options?: AxiosRequestConfig) { + return EconomyApiFp(this.configuration).getTokenBundles(options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * FavoritesApi - axios parameter creator + * @export + */ +export const FavoritesApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Add a new favorite. Friend groups are named `group_0` through `group_3`. Avatar and World groups are named `avatars1` to `avatars4` and `worlds1` to `worlds4`. You cannot add people whom you are not friends with to your friends list. Destroying a friendship removes the person as favorite on both sides. + * @summary Add Favorite + * @param {AddFavoriteRequest} [addFavoriteRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addFavorite: async (addFavoriteRequest?: AddFavoriteRequest, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/favorites`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(addFavoriteRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Clear ALL contents of a specific favorite group. + * @summary Clear Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + clearFavoriteGroup: async (favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'favoriteGroupType' is not null or undefined + assertParamExists('clearFavoriteGroup', 'favoriteGroupType', favoriteGroupType) + // verify required parameter 'favoriteGroupName' is not null or undefined + assertParamExists('clearFavoriteGroup', 'favoriteGroupName', favoriteGroupName) + // verify required parameter 'userId' is not null or undefined + assertParamExists('clearFavoriteGroup', 'userId', userId) + const localVarPath = `/favorite/group/{favoriteGroupType}/{favoriteGroupName}/{userId}` + .replace(`{${"favoriteGroupType"}}`, encodeURIComponent(String(favoriteGroupType))) + .replace(`{${"favoriteGroupName"}}`, encodeURIComponent(String(favoriteGroupName))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Fetch information about a specific favorite group. + * @summary Show Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoriteGroup: async (favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'favoriteGroupType' is not null or undefined + assertParamExists('getFavoriteGroup', 'favoriteGroupType', favoriteGroupType) + // verify required parameter 'favoriteGroupName' is not null or undefined + assertParamExists('getFavoriteGroup', 'favoriteGroupName', favoriteGroupName) + // verify required parameter 'userId' is not null or undefined + assertParamExists('getFavoriteGroup', 'userId', userId) + const localVarPath = `/favorite/group/{favoriteGroupType}/{favoriteGroupName}/{userId}` + .replace(`{${"favoriteGroupType"}}`, encodeURIComponent(String(favoriteGroupType))) + .replace(`{${"favoriteGroupName"}}`, encodeURIComponent(String(favoriteGroupName))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Return a list of favorite groups owned by a user. Returns the same information as `getFavoriteGroups`. + * @summary List Favorite Groups + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {string} [ownerId] The owner of whoms favorite groups to return. Must be a UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoriteGroups: async (n?: number, offset?: number, userId?: string, ownerId?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/favorite/groups`; + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + if (ownerId !== undefined) { + localVarQueryParameter['ownerId'] = ownerId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Return information about a specific Favorite. + * @summary Get Favorite Limits + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoriteLimits: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/favoritelimits`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of favorites. + * @summary List Favorites + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [type] The type of favorites to return, FavoriteType. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavorites: async (n?: number, offset?: number, type?: string, tag?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/favorites`; + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Remove a favorite from your favorites list. + * @summary Remove Favorite + * @param {string} favoriteId Must be a valid favorite ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + removeFavorite: async (favoriteId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'favoriteId' is not null or undefined + assertParamExists('removeFavorite', 'favoriteId', favoriteId) + const localVarPath = `/favorites/{favoriteId}` + .replace(`{${"favoriteId"}}`, encodeURIComponent(String(favoriteId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update information about a specific favorite group. + * @summary Update Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {UpdateFavoriteGroupRequest} [updateFavoriteGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateFavoriteGroup: async (favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, updateFavoriteGroupRequest?: UpdateFavoriteGroupRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'favoriteGroupType' is not null or undefined + assertParamExists('updateFavoriteGroup', 'favoriteGroupType', favoriteGroupType) + // verify required parameter 'favoriteGroupName' is not null or undefined + assertParamExists('updateFavoriteGroup', 'favoriteGroupName', favoriteGroupName) + // verify required parameter 'userId' is not null or undefined + assertParamExists('updateFavoriteGroup', 'userId', userId) + const localVarPath = `/favorite/group/{favoriteGroupType}/{favoriteGroupName}/{userId}` + .replace(`{${"favoriteGroupType"}}`, encodeURIComponent(String(favoriteGroupType))) + .replace(`{${"favoriteGroupName"}}`, encodeURIComponent(String(favoriteGroupName))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateFavoriteGroupRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * FavoritesApi - functional programming interface + * @export + */ +export const FavoritesApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = FavoritesApiAxiosParamCreator(configuration) + return { + /** + * Add a new favorite. Friend groups are named `group_0` through `group_3`. Avatar and World groups are named `avatars1` to `avatars4` and `worlds1` to `worlds4`. You cannot add people whom you are not friends with to your friends list. Destroying a friendship removes the person as favorite on both sides. + * @summary Add Favorite + * @param {AddFavoriteRequest} [addFavoriteRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async addFavorite(addFavoriteRequest?: AddFavoriteRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.addFavorite(addFavoriteRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Clear ALL contents of a specific favorite group. + * @summary Clear Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async clearFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.clearFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Fetch information about a specific favorite group. + * @summary Show Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Return a list of favorite groups owned by a user. Returns the same information as `getFavoriteGroups`. + * @summary List Favorite Groups + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {string} [ownerId] The owner of whoms favorite groups to return. Must be a UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFavoriteGroups(n?: number, offset?: number, userId?: string, ownerId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFavoriteGroups(n, offset, userId, ownerId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Return information about a specific Favorite. + * @summary Get Favorite Limits + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFavoriteLimits(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFavoriteLimits(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of favorites. + * @summary List Favorites + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [type] The type of favorites to return, FavoriteType. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFavorites(n?: number, offset?: number, type?: string, tag?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFavorites(n, offset, type, tag, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Remove a favorite from your favorites list. + * @summary Remove Favorite + * @param {string} favoriteId Must be a valid favorite ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async removeFavorite(favoriteId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.removeFavorite(favoriteId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Update information about a specific favorite group. + * @summary Update Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {UpdateFavoriteGroupRequest} [updateFavoriteGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, updateFavoriteGroupRequest?: UpdateFavoriteGroupRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, updateFavoriteGroupRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * FavoritesApi - factory interface + * @export + */ +export const FavoritesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = FavoritesApiFp(configuration) + return { + /** + * Add a new favorite. Friend groups are named `group_0` through `group_3`. Avatar and World groups are named `avatars1` to `avatars4` and `worlds1` to `worlds4`. You cannot add people whom you are not friends with to your friends list. Destroying a friendship removes the person as favorite on both sides. + * @summary Add Favorite + * @param {AddFavoriteRequest} [addFavoriteRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addFavorite(addFavoriteRequest?: AddFavoriteRequest, options?: any): AxiosPromise { + return localVarFp.addFavorite(addFavoriteRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Clear ALL contents of a specific favorite group. + * @summary Clear Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + clearFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options?: any): AxiosPromise { + return localVarFp.clearFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Fetch information about a specific favorite group. + * @summary Show Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options?: any): AxiosPromise { + return localVarFp.getFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Return a list of favorite groups owned by a user. Returns the same information as `getFavoriteGroups`. + * @summary List Favorite Groups + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {string} [ownerId] The owner of whoms favorite groups to return. Must be a UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoriteGroups(n?: number, offset?: number, userId?: string, ownerId?: string, options?: any): AxiosPromise> { + return localVarFp.getFavoriteGroups(n, offset, userId, ownerId, options).then((request) => request(axios, basePath)); + }, + /** + * Return information about a specific Favorite. + * @summary Get Favorite Limits + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoriteLimits(options?: any): AxiosPromise { + return localVarFp.getFavoriteLimits(options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of favorites. + * @summary List Favorites + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [type] The type of favorites to return, FavoriteType. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavorites(n?: number, offset?: number, type?: string, tag?: string, options?: any): AxiosPromise> { + return localVarFp.getFavorites(n, offset, type, tag, options).then((request) => request(axios, basePath)); + }, + /** + * Remove a favorite from your favorites list. + * @summary Remove Favorite + * @param {string} favoriteId Must be a valid favorite ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + removeFavorite(favoriteId: string, options?: any): AxiosPromise { + return localVarFp.removeFavorite(favoriteId, options).then((request) => request(axios, basePath)); + }, + /** + * Update information about a specific favorite group. + * @summary Update Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {UpdateFavoriteGroupRequest} [updateFavoriteGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, updateFavoriteGroupRequest?: UpdateFavoriteGroupRequest, options?: any): AxiosPromise { + return localVarFp.updateFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, updateFavoriteGroupRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * FavoritesApi - object-oriented interface + * @export + * @class FavoritesApi + * @extends {BaseAPI} + */ +export class FavoritesApi extends BaseAPI { + /** + * Add a new favorite. Friend groups are named `group_0` through `group_3`. Avatar and World groups are named `avatars1` to `avatars4` and `worlds1` to `worlds4`. You cannot add people whom you are not friends with to your friends list. Destroying a friendship removes the person as favorite on both sides. + * @summary Add Favorite + * @param {AddFavoriteRequest} [addFavoriteRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public addFavorite(addFavoriteRequest?: AddFavoriteRequest, options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).addFavorite(addFavoriteRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Clear ALL contents of a specific favorite group. + * @summary Clear Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public clearFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).clearFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Fetch information about a specific favorite group. + * @summary Show Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public getFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).getFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Return a list of favorite groups owned by a user. Returns the same information as `getFavoriteGroups`. + * @summary List Favorite Groups + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {string} [ownerId] The owner of whoms favorite groups to return. Must be a UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public getFavoriteGroups(n?: number, offset?: number, userId?: string, ownerId?: string, options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).getFavoriteGroups(n, offset, userId, ownerId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Return information about a specific Favorite. + * @summary Get Favorite Limits + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public getFavoriteLimits(options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).getFavoriteLimits(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of favorites. + * @summary List Favorites + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [type] The type of favorites to return, FavoriteType. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public getFavorites(n?: number, offset?: number, type?: string, tag?: string, options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).getFavorites(n, offset, type, tag, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Remove a favorite from your favorites list. + * @summary Remove Favorite + * @param {string} favoriteId Must be a valid favorite ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public removeFavorite(favoriteId: string, options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).removeFavorite(favoriteId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Update information about a specific favorite group. + * @summary Update Favorite Group + * @param {'world' | 'friend' | 'avatar'} favoriteGroupType The type of group to fetch, must be a valid FavoriteType. + * @param {string} favoriteGroupName The name of the group to fetch, must be a name of a FavoriteGroup. + * @param {string} userId Must be a valid user ID. + * @param {UpdateFavoriteGroupRequest} [updateFavoriteGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FavoritesApi + */ + public updateFavoriteGroup(favoriteGroupType: 'world' | 'friend' | 'avatar', favoriteGroupName: string, userId: string, updateFavoriteGroupRequest?: UpdateFavoriteGroupRequest, options?: AxiosRequestConfig) { + return FavoritesApiFp(this.configuration).updateFavoriteGroup(favoriteGroupType, favoriteGroupName, userId, updateFavoriteGroupRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * FilesApi - axios parameter creator + * @export + */ +export const FilesApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Creates a new File object + * @summary Create File + * @param {CreateFileRequest} [createFileRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createFile: async (createFileRequest?: CreateFileRequest, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/file`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createFileRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Creates a new FileVersion. Once a Version has been created, proceed to the `/file/{fileId}/{versionId}/file/start` endpoint to start a file upload. + * @summary Create File Version + * @param {string} fileId Must be a valid file ID. + * @param {CreateFileVersionRequest} [createFileVersionRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createFileVersion: async (fileId: string, createFileVersionRequest?: CreateFileVersionRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('createFileVersion', 'fileId', fileId) + const localVarPath = `/file/{fileId}` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createFileVersionRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes a File object. + * @summary Delete File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteFile: async (fileId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('deleteFile', 'fileId', fileId) + const localVarPath = `/file/{fileId}` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete a specific version of a file. You can only delete the latest version. + * @summary Delete File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteFileVersion: async (fileId: string, versionId: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('deleteFileVersion', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('deleteFileVersion', 'versionId', versionId) + const localVarPath = `/file/{fileId}/{versionId}` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Downloads the file with the provided version number. **Version Note:** Version 0 is always when the file was created. The real data is usually always located in version 1 and up. **Extension Note:** Files are not guaranteed to have a file extensions. UnityPackage files tends to have it, images through this endpoint do not. You are responsible for appending file extension from the `extension` field when neccesary. + * @summary Download File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + downloadFileVersion: async (fileId: string, versionId: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('downloadFileVersion', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('downloadFileVersion', 'versionId', versionId) + const localVarPath = `/file/{fileId}/{versionId}` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Finish an upload of a FileData. This will mark it as \"complete\". After uploading the `file` for Avatars and Worlds you then have to upload a `signature` file. + * @summary Finish FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {FinishFileDataUploadRequest} [finishFileDataUploadRequest] Please see documentation on ETag\'s: [https://teppen.io/2018/06/23/aws_s3_etags/](https://teppen.io/2018/06/23/aws_s3_etags/) ETag\'s should NOT be present when uploading a `signature`. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + finishFileDataUpload: async (fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', finishFileDataUploadRequest?: FinishFileDataUploadRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('finishFileDataUpload', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('finishFileDataUpload', 'versionId', versionId) + // verify required parameter 'fileType' is not null or undefined + assertParamExists('finishFileDataUpload', 'fileType', fileType) + const localVarPath = `/file/{fileId}/{versionId}/{fileType}/finish` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))) + .replace(`{${"fileType"}}`, encodeURIComponent(String(fileType))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(finishFileDataUploadRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns an AdminAssetBundle + * @summary Get AdminAssetBundle + * @param {string} adminAssetBundleId Must be a valid admin asset bundle ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAdminAssetBundle: async (adminAssetBundleId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'adminAssetBundleId' is not null or undefined + assertParamExists('getAdminAssetBundle', 'adminAssetBundleId', adminAssetBundleId) + const localVarPath = `/adminassetbundles/{adminAssetBundleId}` + .replace(`{${"adminAssetBundleId"}}`, encodeURIComponent(String(adminAssetBundleId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Shows general information about the \"File\" object. Each File can have several \"Version\"\'s, and each Version can have multiple real files or \"Data\" blobs. + * @summary Show File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFile: async (fileId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('getFile', 'fileId', fileId) + const localVarPath = `/file/{fileId}` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get the performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileAnalysis: async (fileId: string, versionId: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('getFileAnalysis', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('getFileAnalysis', 'versionId', versionId) + const localVarPath = `/analysis/{fileId}/{versionId}` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get the security performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Security + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileAnalysisSecurity: async (fileId: string, versionId: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('getFileAnalysisSecurity', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('getFileAnalysisSecurity', 'versionId', versionId) + const localVarPath = `/analysis/{fileId}/{versionId}/security` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get the standard performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Standard + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileAnalysisStandard: async (fileId: string, versionId: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('getFileAnalysisStandard', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('getFileAnalysisStandard', 'versionId', versionId) + const localVarPath = `/analysis/{fileId}/{versionId}/standard` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Retrieves the upload status for file upload. Can currently only be accessed when `status` is `waiting`. Trying to access it on a file version already uploaded currently times out. + * @summary Check FileData Upload Status + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileDataUploadStatus: async (fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('getFileDataUploadStatus', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('getFileDataUploadStatus', 'versionId', versionId) + // verify required parameter 'fileType' is not null or undefined + assertParamExists('getFileDataUploadStatus', 'fileType', fileType) + const localVarPath = `/file/{fileId}/{versionId}/{fileType}/status` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))) + .replace(`{${"fileType"}}`, encodeURIComponent(String(fileType))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of files + * @summary List Files + * @param {string} [tag] Tag, for example \"icon\" or \"gallery\", not included by default. + * @param {string} [userId] UserID, will always generate a 500 permission error. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFiles: async (tag?: string, userId?: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/files`; + // 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 authCookie required + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Starts an upload of a specific FilePart. This endpoint will return an AWS URL which you can PUT data to. You need to call this and receive a new AWS API URL for each `partNumber`. Please see AWS\'s REST documentation on \"PUT Object to S3\" on how to upload. Once all parts has been uploaded, proceed to `/finish` endpoint. **Note:** `nextPartNumber` seems like it is always ignored. Despite it returning 0, first partNumber is always 1. + * @summary Start FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {number} [partNumber] The part number to start uploading. If not provided, the first part will be started. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + startFileDataUpload: async (fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', partNumber?: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'fileId' is not null or undefined + assertParamExists('startFileDataUpload', 'fileId', fileId) + // verify required parameter 'versionId' is not null or undefined + assertParamExists('startFileDataUpload', 'versionId', versionId) + // verify required parameter 'fileType' is not null or undefined + assertParamExists('startFileDataUpload', 'fileType', fileType) + const localVarPath = `/file/{fileId}/{versionId}/{fileType}/start` + .replace(`{${"fileId"}}`, encodeURIComponent(String(fileId))) + .replace(`{${"versionId"}}`, encodeURIComponent(String(versionId))) + .replace(`{${"fileType"}}`, encodeURIComponent(String(fileType))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + if (partNumber !== undefined) { + localVarQueryParameter['partNumber'] = partNumber; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Upload a gallery image + * @summary Upload gallery image + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadGalleryImage: async (file: File, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'file' is not null or undefined + assertParamExists('uploadGalleryImage', 'file', file) + const localVarPath = `/gallery`; + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (file !== undefined) { + localVarFormParams.append('file', file as any); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Upload an icon + * @summary Upload icon + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadIcon: async (file: File, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'file' is not null or undefined + assertParamExists('uploadIcon', 'file', file) + const localVarPath = `/icon`; + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (file !== undefined) { + localVarFormParams.append('file', file as any); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Upload an image, which can be an icon, gallery image, sticker or emoji + * @summary Upload gallery image, icon, emoji or sticker + * @param {File} file The binary blob of the png file. + * @param {string} tag Needs to be either icon, gallery, sticker, emoji, or emojianimated + * @param {number} [frames] Required for emojianimated. Total number of frames to be animated (2-64) + * @param {number} [framesOverTime] Required for emojianimated. Animation frames per second (1-64) + * @param {string} [animationStyle] Animation style for sticker, required for emoji. + * @param {string} [maskTag] Mask of the sticker, optional for emoji. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadImage: async (file: File, tag: string, frames?: number, framesOverTime?: number, animationStyle?: string, maskTag?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'file' is not null or undefined + assertParamExists('uploadImage', 'file', file) + // verify required parameter 'tag' is not null or undefined + assertParamExists('uploadImage', 'tag', tag) + const localVarPath = `/file/image`; + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (file !== undefined) { + localVarFormParams.append('file', file as any); + } + + if (tag !== undefined) { + localVarFormParams.append('tag', tag as any); + } + + if (frames !== undefined) { + localVarFormParams.append('frames', frames as any); + } + + if (framesOverTime !== undefined) { + localVarFormParams.append('framesOverTime', framesOverTime as any); + } + + if (animationStyle !== undefined) { + localVarFormParams.append('animationStyle', animationStyle as any); + } + + if (maskTag !== undefined) { + localVarFormParams.append('maskTag', maskTag as any); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * FilesApi - functional programming interface + * @export + */ +export const FilesApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = FilesApiAxiosParamCreator(configuration) + return { + /** + * Creates a new File object + * @summary Create File + * @param {CreateFileRequest} [createFileRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createFile(createFileRequest?: CreateFileRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createFile(createFileRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Creates a new FileVersion. Once a Version has been created, proceed to the `/file/{fileId}/{versionId}/file/start` endpoint to start a file upload. + * @summary Create File Version + * @param {string} fileId Must be a valid file ID. + * @param {CreateFileVersionRequest} [createFileVersionRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createFileVersion(fileId: string, createFileVersionRequest?: CreateFileVersionRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createFileVersion(fileId, createFileVersionRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes a File object. + * @summary Delete File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteFile(fileId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteFile(fileId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Delete a specific version of a file. You can only delete the latest version. + * @summary Delete File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteFileVersion(fileId: string, versionId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteFileVersion(fileId, versionId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Downloads the file with the provided version number. **Version Note:** Version 0 is always when the file was created. The real data is usually always located in version 1 and up. **Extension Note:** Files are not guaranteed to have a file extensions. UnityPackage files tends to have it, images through this endpoint do not. You are responsible for appending file extension from the `extension` field when neccesary. + * @summary Download File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async downloadFileVersion(fileId: string, versionId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.downloadFileVersion(fileId, versionId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Finish an upload of a FileData. This will mark it as \"complete\". After uploading the `file` for Avatars and Worlds you then have to upload a `signature` file. + * @summary Finish FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {FinishFileDataUploadRequest} [finishFileDataUploadRequest] Please see documentation on ETag\'s: [https://teppen.io/2018/06/23/aws_s3_etags/](https://teppen.io/2018/06/23/aws_s3_etags/) ETag\'s should NOT be present when uploading a `signature`. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async finishFileDataUpload(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', finishFileDataUploadRequest?: FinishFileDataUploadRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.finishFileDataUpload(fileId, versionId, fileType, finishFileDataUploadRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns an AdminAssetBundle + * @summary Get AdminAssetBundle + * @param {string} adminAssetBundleId Must be a valid admin asset bundle ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getAdminAssetBundle(adminAssetBundleId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getAdminAssetBundle(adminAssetBundleId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Shows general information about the \"File\" object. Each File can have several \"Version\"\'s, and each Version can have multiple real files or \"Data\" blobs. + * @summary Show File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFile(fileId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFile(fileId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get the performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFileAnalysis(fileId: string, versionId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFileAnalysis(fileId, versionId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get the security performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Security + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFileAnalysisSecurity(fileId: string, versionId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFileAnalysisSecurity(fileId, versionId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get the standard performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Standard + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFileAnalysisStandard(fileId: string, versionId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFileAnalysisStandard(fileId, versionId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Retrieves the upload status for file upload. Can currently only be accessed when `status` is `waiting`. Trying to access it on a file version already uploaded currently times out. + * @summary Check FileData Upload Status + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFileDataUploadStatus(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFileDataUploadStatus(fileId, versionId, fileType, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of files + * @summary List Files + * @param {string} [tag] Tag, for example \"icon\" or \"gallery\", not included by default. + * @param {string} [userId] UserID, will always generate a 500 permission error. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFiles(tag?: string, userId?: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFiles(tag, userId, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Starts an upload of a specific FilePart. This endpoint will return an AWS URL which you can PUT data to. You need to call this and receive a new AWS API URL for each `partNumber`. Please see AWS\'s REST documentation on \"PUT Object to S3\" on how to upload. Once all parts has been uploaded, proceed to `/finish` endpoint. **Note:** `nextPartNumber` seems like it is always ignored. Despite it returning 0, first partNumber is always 1. + * @summary Start FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {number} [partNumber] The part number to start uploading. If not provided, the first part will be started. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async startFileDataUpload(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', partNumber?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.startFileDataUpload(fileId, versionId, fileType, partNumber, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Upload a gallery image + * @summary Upload gallery image + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async uploadGalleryImage(file: File, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.uploadGalleryImage(file, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Upload an icon + * @summary Upload icon + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async uploadIcon(file: File, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.uploadIcon(file, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Upload an image, which can be an icon, gallery image, sticker or emoji + * @summary Upload gallery image, icon, emoji or sticker + * @param {File} file The binary blob of the png file. + * @param {string} tag Needs to be either icon, gallery, sticker, emoji, or emojianimated + * @param {number} [frames] Required for emojianimated. Total number of frames to be animated (2-64) + * @param {number} [framesOverTime] Required for emojianimated. Animation frames per second (1-64) + * @param {string} [animationStyle] Animation style for sticker, required for emoji. + * @param {string} [maskTag] Mask of the sticker, optional for emoji. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async uploadImage(file: File, tag: string, frames?: number, framesOverTime?: number, animationStyle?: string, maskTag?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.uploadImage(file, tag, frames, framesOverTime, animationStyle, maskTag, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * FilesApi - factory interface + * @export + */ +export const FilesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = FilesApiFp(configuration) + return { + /** + * Creates a new File object + * @summary Create File + * @param {CreateFileRequest} [createFileRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createFile(createFileRequest?: CreateFileRequest, options?: any): AxiosPromise { + return localVarFp.createFile(createFileRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Creates a new FileVersion. Once a Version has been created, proceed to the `/file/{fileId}/{versionId}/file/start` endpoint to start a file upload. + * @summary Create File Version + * @param {string} fileId Must be a valid file ID. + * @param {CreateFileVersionRequest} [createFileVersionRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createFileVersion(fileId: string, createFileVersionRequest?: CreateFileVersionRequest, options?: any): AxiosPromise { + return localVarFp.createFileVersion(fileId, createFileVersionRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes a File object. + * @summary Delete File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteFile(fileId: string, options?: any): AxiosPromise { + return localVarFp.deleteFile(fileId, options).then((request) => request(axios, basePath)); + }, + /** + * Delete a specific version of a file. You can only delete the latest version. + * @summary Delete File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteFileVersion(fileId: string, versionId: number, options?: any): AxiosPromise { + return localVarFp.deleteFileVersion(fileId, versionId, options).then((request) => request(axios, basePath)); + }, + /** + * Downloads the file with the provided version number. **Version Note:** Version 0 is always when the file was created. The real data is usually always located in version 1 and up. **Extension Note:** Files are not guaranteed to have a file extensions. UnityPackage files tends to have it, images through this endpoint do not. You are responsible for appending file extension from the `extension` field when neccesary. + * @summary Download File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + downloadFileVersion(fileId: string, versionId: number, options?: any): AxiosPromise { + return localVarFp.downloadFileVersion(fileId, versionId, options).then((request) => request(axios, basePath)); + }, + /** + * Finish an upload of a FileData. This will mark it as \"complete\". After uploading the `file` for Avatars and Worlds you then have to upload a `signature` file. + * @summary Finish FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {FinishFileDataUploadRequest} [finishFileDataUploadRequest] Please see documentation on ETag\'s: [https://teppen.io/2018/06/23/aws_s3_etags/](https://teppen.io/2018/06/23/aws_s3_etags/) ETag\'s should NOT be present when uploading a `signature`. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + finishFileDataUpload(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', finishFileDataUploadRequest?: FinishFileDataUploadRequest, options?: any): AxiosPromise { + return localVarFp.finishFileDataUpload(fileId, versionId, fileType, finishFileDataUploadRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Returns an AdminAssetBundle + * @summary Get AdminAssetBundle + * @param {string} adminAssetBundleId Must be a valid admin asset bundle ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAdminAssetBundle(adminAssetBundleId: string, options?: any): AxiosPromise { + return localVarFp.getAdminAssetBundle(adminAssetBundleId, options).then((request) => request(axios, basePath)); + }, + /** + * Shows general information about the \"File\" object. Each File can have several \"Version\"\'s, and each Version can have multiple real files or \"Data\" blobs. + * @summary Show File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFile(fileId: string, options?: any): AxiosPromise { + return localVarFp.getFile(fileId, options).then((request) => request(axios, basePath)); + }, + /** + * Get the performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileAnalysis(fileId: string, versionId: number, options?: any): AxiosPromise { + return localVarFp.getFileAnalysis(fileId, versionId, options).then((request) => request(axios, basePath)); + }, + /** + * Get the security performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Security + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileAnalysisSecurity(fileId: string, versionId: number, options?: any): AxiosPromise { + return localVarFp.getFileAnalysisSecurity(fileId, versionId, options).then((request) => request(axios, basePath)); + }, + /** + * Get the standard performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Standard + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileAnalysisStandard(fileId: string, versionId: number, options?: any): AxiosPromise { + return localVarFp.getFileAnalysisStandard(fileId, versionId, options).then((request) => request(axios, basePath)); + }, + /** + * Retrieves the upload status for file upload. Can currently only be accessed when `status` is `waiting`. Trying to access it on a file version already uploaded currently times out. + * @summary Check FileData Upload Status + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFileDataUploadStatus(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', options?: any): AxiosPromise { + return localVarFp.getFileDataUploadStatus(fileId, versionId, fileType, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of files + * @summary List Files + * @param {string} [tag] Tag, for example \"icon\" or \"gallery\", not included by default. + * @param {string} [userId] UserID, will always generate a 500 permission error. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFiles(tag?: string, userId?: string, n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.getFiles(tag, userId, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Starts an upload of a specific FilePart. This endpoint will return an AWS URL which you can PUT data to. You need to call this and receive a new AWS API URL for each `partNumber`. Please see AWS\'s REST documentation on \"PUT Object to S3\" on how to upload. Once all parts has been uploaded, proceed to `/finish` endpoint. **Note:** `nextPartNumber` seems like it is always ignored. Despite it returning 0, first partNumber is always 1. + * @summary Start FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {number} [partNumber] The part number to start uploading. If not provided, the first part will be started. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + startFileDataUpload(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', partNumber?: number, options?: any): AxiosPromise { + return localVarFp.startFileDataUpload(fileId, versionId, fileType, partNumber, options).then((request) => request(axios, basePath)); + }, + /** + * Upload a gallery image + * @summary Upload gallery image + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadGalleryImage(file: File, options?: any): AxiosPromise { + return localVarFp.uploadGalleryImage(file, options).then((request) => request(axios, basePath)); + }, + /** + * Upload an icon + * @summary Upload icon + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadIcon(file: File, options?: any): AxiosPromise { + return localVarFp.uploadIcon(file, options).then((request) => request(axios, basePath)); + }, + /** + * Upload an image, which can be an icon, gallery image, sticker or emoji + * @summary Upload gallery image, icon, emoji or sticker + * @param {File} file The binary blob of the png file. + * @param {string} tag Needs to be either icon, gallery, sticker, emoji, or emojianimated + * @param {number} [frames] Required for emojianimated. Total number of frames to be animated (2-64) + * @param {number} [framesOverTime] Required for emojianimated. Animation frames per second (1-64) + * @param {string} [animationStyle] Animation style for sticker, required for emoji. + * @param {string} [maskTag] Mask of the sticker, optional for emoji. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadImage(file: File, tag: string, frames?: number, framesOverTime?: number, animationStyle?: string, maskTag?: string, options?: any): AxiosPromise { + return localVarFp.uploadImage(file, tag, frames, framesOverTime, animationStyle, maskTag, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * FilesApi - object-oriented interface + * @export + * @class FilesApi + * @extends {BaseAPI} + */ +export class FilesApi extends BaseAPI { + /** + * Creates a new File object + * @summary Create File + * @param {CreateFileRequest} [createFileRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public createFile(createFileRequest?: CreateFileRequest, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).createFile(createFileRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Creates a new FileVersion. Once a Version has been created, proceed to the `/file/{fileId}/{versionId}/file/start` endpoint to start a file upload. + * @summary Create File Version + * @param {string} fileId Must be a valid file ID. + * @param {CreateFileVersionRequest} [createFileVersionRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public createFileVersion(fileId: string, createFileVersionRequest?: CreateFileVersionRequest, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).createFileVersion(fileId, createFileVersionRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes a File object. + * @summary Delete File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public deleteFile(fileId: string, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).deleteFile(fileId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete a specific version of a file. You can only delete the latest version. + * @summary Delete File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public deleteFileVersion(fileId: string, versionId: number, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).deleteFileVersion(fileId, versionId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Downloads the file with the provided version number. **Version Note:** Version 0 is always when the file was created. The real data is usually always located in version 1 and up. **Extension Note:** Files are not guaranteed to have a file extensions. UnityPackage files tends to have it, images through this endpoint do not. You are responsible for appending file extension from the `extension` field when neccesary. + * @summary Download File Version + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public downloadFileVersion(fileId: string, versionId: number, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).downloadFileVersion(fileId, versionId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Finish an upload of a FileData. This will mark it as \"complete\". After uploading the `file` for Avatars and Worlds you then have to upload a `signature` file. + * @summary Finish FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {FinishFileDataUploadRequest} [finishFileDataUploadRequest] Please see documentation on ETag\'s: [https://teppen.io/2018/06/23/aws_s3_etags/](https://teppen.io/2018/06/23/aws_s3_etags/) ETag\'s should NOT be present when uploading a `signature`. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public finishFileDataUpload(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', finishFileDataUploadRequest?: FinishFileDataUploadRequest, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).finishFileDataUpload(fileId, versionId, fileType, finishFileDataUploadRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns an AdminAssetBundle + * @summary Get AdminAssetBundle + * @param {string} adminAssetBundleId Must be a valid admin asset bundle ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public getAdminAssetBundle(adminAssetBundleId: string, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).getAdminAssetBundle(adminAssetBundleId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Shows general information about the \"File\" object. Each File can have several \"Version\"\'s, and each Version can have multiple real files or \"Data\" blobs. + * @summary Show File + * @param {string} fileId Must be a valid file ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public getFile(fileId: string, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).getFile(fileId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get the performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public getFileAnalysis(fileId: string, versionId: number, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).getFileAnalysis(fileId, versionId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get the security performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Security + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public getFileAnalysisSecurity(fileId: string, versionId: number, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).getFileAnalysisSecurity(fileId, versionId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get the standard performance analysis for the uploaded assets of an avatar + * @summary Get File Version Analysis Standard + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public getFileAnalysisStandard(fileId: string, versionId: number, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).getFileAnalysisStandard(fileId, versionId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Retrieves the upload status for file upload. Can currently only be accessed when `status` is `waiting`. Trying to access it on a file version already uploaded currently times out. + * @summary Check FileData Upload Status + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public getFileDataUploadStatus(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).getFileDataUploadStatus(fileId, versionId, fileType, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of files + * @summary List Files + * @param {string} [tag] Tag, for example \"icon\" or \"gallery\", not included by default. + * @param {string} [userId] UserID, will always generate a 500 permission error. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public getFiles(tag?: string, userId?: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).getFiles(tag, userId, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Starts an upload of a specific FilePart. This endpoint will return an AWS URL which you can PUT data to. You need to call this and receive a new AWS API URL for each `partNumber`. Please see AWS\'s REST documentation on \"PUT Object to S3\" on how to upload. Once all parts has been uploaded, proceed to `/finish` endpoint. **Note:** `nextPartNumber` seems like it is always ignored. Despite it returning 0, first partNumber is always 1. + * @summary Start FileData Upload + * @param {string} fileId Must be a valid file ID. + * @param {number} versionId Version ID of the asset. + * @param {'file' | 'signature' | 'delta'} fileType Type of file. + * @param {number} [partNumber] The part number to start uploading. If not provided, the first part will be started. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public startFileDataUpload(fileId: string, versionId: number, fileType: 'file' | 'signature' | 'delta', partNumber?: number, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).startFileDataUpload(fileId, versionId, fileType, partNumber, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Upload a gallery image + * @summary Upload gallery image + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public uploadGalleryImage(file: File, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).uploadGalleryImage(file, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Upload an icon + * @summary Upload icon + * @param {File} file The binary blob of the png file. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public uploadIcon(file: File, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).uploadIcon(file, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Upload an image, which can be an icon, gallery image, sticker or emoji + * @summary Upload gallery image, icon, emoji or sticker + * @param {File} file The binary blob of the png file. + * @param {string} tag Needs to be either icon, gallery, sticker, emoji, or emojianimated + * @param {number} [frames] Required for emojianimated. Total number of frames to be animated (2-64) + * @param {number} [framesOverTime] Required for emojianimated. Animation frames per second (1-64) + * @param {string} [animationStyle] Animation style for sticker, required for emoji. + * @param {string} [maskTag] Mask of the sticker, optional for emoji. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public uploadImage(file: File, tag: string, frames?: number, framesOverTime?: number, animationStyle?: string, maskTag?: string, options?: AxiosRequestConfig) { + return FilesApiFp(this.configuration).uploadImage(file, tag, frames, framesOverTime, animationStyle, maskTag, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * FriendsApi - axios parameter creator + * @export + */ +export const FriendsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Deletes an outgoing pending friend request to another user. To delete an incoming friend request, use the `deleteNotification` endpoint instead. + * @summary Delete Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteFriendRequest: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('deleteFriendRequest', 'userId', userId) + const localVarPath = `/user/{userId}/friendRequest` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Send a friend request to another user. + * @summary Send Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + friend: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('friend', 'userId', userId) + const localVarPath = `/user/{userId}/friendRequest` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Retrieve if the user is currently a friend with a given user, if they have an outgoing friend request, and if they have an incoming friend request. The proper way to receive and accept friend request is by checking if the user has an incoming `Notification` of type `friendRequest`, and then accepting that notification. + * @summary Check Friend Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFriendStatus: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getFriendStatus', 'userId', userId) + const localVarPath = `/user/{userId}/friendStatus` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List information about friends. + * @summary List Friends + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {boolean} [offline] Returns *only* offline users if true, returns only online and active users if false + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFriends: async (offset?: number, n?: number, offline?: boolean, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/friends`; + // 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 authCookie required + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offline !== undefined) { + localVarQueryParameter['offline'] = offline; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Unfriend a user by ID. + * @summary Unfriend + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unfriend: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('unfriend', 'userId', userId) + const localVarPath = `/auth/user/friends/{userId}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * FriendsApi - functional programming interface + * @export + */ +export const FriendsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = FriendsApiAxiosParamCreator(configuration) + return { + /** + * Deletes an outgoing pending friend request to another user. To delete an incoming friend request, use the `deleteNotification` endpoint instead. + * @summary Delete Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteFriendRequest(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteFriendRequest(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Send a friend request to another user. + * @summary Send Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async friend(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.friend(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Retrieve if the user is currently a friend with a given user, if they have an outgoing friend request, and if they have an incoming friend request. The proper way to receive and accept friend request is by checking if the user has an incoming `Notification` of type `friendRequest`, and then accepting that notification. + * @summary Check Friend Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFriendStatus(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFriendStatus(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * List information about friends. + * @summary List Friends + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {boolean} [offline] Returns *only* offline users if true, returns only online and active users if false + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFriends(offset?: number, n?: number, offline?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFriends(offset, n, offline, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Unfriend a user by ID. + * @summary Unfriend + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async unfriend(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.unfriend(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * FriendsApi - factory interface + * @export + */ +export const FriendsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = FriendsApiFp(configuration) + return { + /** + * Deletes an outgoing pending friend request to another user. To delete an incoming friend request, use the `deleteNotification` endpoint instead. + * @summary Delete Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteFriendRequest(userId: string, options?: any): AxiosPromise { + return localVarFp.deleteFriendRequest(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Send a friend request to another user. + * @summary Send Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + friend(userId: string, options?: any): AxiosPromise { + return localVarFp.friend(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Retrieve if the user is currently a friend with a given user, if they have an outgoing friend request, and if they have an incoming friend request. The proper way to receive and accept friend request is by checking if the user has an incoming `Notification` of type `friendRequest`, and then accepting that notification. + * @summary Check Friend Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFriendStatus(userId: string, options?: any): AxiosPromise { + return localVarFp.getFriendStatus(userId, options).then((request) => request(axios, basePath)); + }, + /** + * List information about friends. + * @summary List Friends + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {boolean} [offline] Returns *only* offline users if true, returns only online and active users if false + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFriends(offset?: number, n?: number, offline?: boolean, options?: any): AxiosPromise> { + return localVarFp.getFriends(offset, n, offline, options).then((request) => request(axios, basePath)); + }, + /** + * Unfriend a user by ID. + * @summary Unfriend + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unfriend(userId: string, options?: any): AxiosPromise { + return localVarFp.unfriend(userId, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * FriendsApi - object-oriented interface + * @export + * @class FriendsApi + * @extends {BaseAPI} + */ +export class FriendsApi extends BaseAPI { + /** + * Deletes an outgoing pending friend request to another user. To delete an incoming friend request, use the `deleteNotification` endpoint instead. + * @summary Delete Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FriendsApi + */ + public deleteFriendRequest(userId: string, options?: AxiosRequestConfig) { + return FriendsApiFp(this.configuration).deleteFriendRequest(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Send a friend request to another user. + * @summary Send Friend Request + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FriendsApi + */ + public friend(userId: string, options?: AxiosRequestConfig) { + return FriendsApiFp(this.configuration).friend(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Retrieve if the user is currently a friend with a given user, if they have an outgoing friend request, and if they have an incoming friend request. The proper way to receive and accept friend request is by checking if the user has an incoming `Notification` of type `friendRequest`, and then accepting that notification. + * @summary Check Friend Status + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FriendsApi + */ + public getFriendStatus(userId: string, options?: AxiosRequestConfig) { + return FriendsApiFp(this.configuration).getFriendStatus(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * List information about friends. + * @summary List Friends + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {boolean} [offline] Returns *only* offline users if true, returns only online and active users if false + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FriendsApi + */ + public getFriends(offset?: number, n?: number, offline?: boolean, options?: AxiosRequestConfig) { + return FriendsApiFp(this.configuration).getFriends(offset, n, offline, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Unfriend a user by ID. + * @summary Unfriend + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FriendsApi + */ + public unfriend(userId: string, options?: AxiosRequestConfig) { + return FriendsApiFp(this.configuration).unfriend(userId, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * GroupsApi - axios parameter creator + * @export + */ +export const GroupsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Adds an image to a Group gallery. + * @summary Add Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {AddGroupGalleryImageRequest} addGroupGalleryImageRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addGroupGalleryImage: async (groupId: string, groupGalleryId: string, addGroupGalleryImageRequest: AddGroupGalleryImageRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('addGroupGalleryImage', 'groupId', groupId) + // verify required parameter 'groupGalleryId' is not null or undefined + assertParamExists('addGroupGalleryImage', 'groupGalleryId', groupGalleryId) + // verify required parameter 'addGroupGalleryImageRequest' is not null or undefined + assertParamExists('addGroupGalleryImage', 'addGroupGalleryImageRequest', addGroupGalleryImageRequest) + const localVarPath = `/groups/{groupId}/galleries/{groupGalleryId}/images` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"groupGalleryId"}}`, encodeURIComponent(String(groupGalleryId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(addGroupGalleryImageRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Adds a Role to a Group Member + * @summary Add Role to GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addGroupMemberRole: async (groupId: string, userId: string, groupRoleId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('addGroupMemberRole', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('addGroupMemberRole', 'userId', userId) + // verify required parameter 'groupRoleId' is not null or undefined + assertParamExists('addGroupMemberRole', 'groupRoleId', groupRoleId) + const localVarPath = `/groups/{groupId}/members/{userId}/roles/{groupRoleId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"groupRoleId"}}`, encodeURIComponent(String(groupRoleId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Create a post in a Group. + * @summary Create a post in a Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addGroupPost: async (groupId: string, createGroupPostRequest: CreateGroupPostRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('addGroupPost', 'groupId', groupId) + // verify required parameter 'createGroupPostRequest' is not null or undefined + assertParamExists('addGroupPost', 'createGroupPostRequest', createGroupPostRequest) + const localVarPath = `/groups/{groupId}/posts` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createGroupPostRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Bans a user from a Group. + * @summary Ban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {BanGroupMemberRequest} banGroupMemberRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + banGroupMember: async (groupId: string, banGroupMemberRequest: BanGroupMemberRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('banGroupMember', 'groupId', groupId) + // verify required parameter 'banGroupMemberRequest' is not null or undefined + assertParamExists('banGroupMember', 'banGroupMemberRequest', banGroupMemberRequest) + const localVarPath = `/groups/{groupId}/bans` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(banGroupMemberRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Cancels a request sent to join the group. + * @summary Cancel Group Join Request + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + cancelGroupRequest: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('cancelGroupRequest', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/requests` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Creates a Group and returns a Group object. **Requires VRC+ Subscription.** + * @summary Create Group + * @param {CreateGroupRequest} createGroupRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroup: async (createGroupRequest: CreateGroupRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'createGroupRequest' is not null or undefined + assertParamExists('createGroup', 'createGroupRequest', createGroupRequest) + const localVarPath = `/groups`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createGroupRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Creates an Announcement for a Group. Warning: This will also remove all announcements. To make proper announcements, use the posts endpoint instead + * @summary Create Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupAnnouncementRequest} createGroupAnnouncementRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupAnnouncement: async (groupId: string, createGroupAnnouncementRequest: CreateGroupAnnouncementRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('createGroupAnnouncement', 'groupId', groupId) + // verify required parameter 'createGroupAnnouncementRequest' is not null or undefined + assertParamExists('createGroupAnnouncement', 'createGroupAnnouncementRequest', createGroupAnnouncementRequest) + const localVarPath = `/groups/{groupId}/announcement` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createGroupAnnouncementRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Creates a gallery for a Group. + * @summary Create Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupGalleryRequest} createGroupGalleryRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupGallery: async (groupId: string, createGroupGalleryRequest: CreateGroupGalleryRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('createGroupGallery', 'groupId', groupId) + // verify required parameter 'createGroupGalleryRequest' is not null or undefined + assertParamExists('createGroupGallery', 'createGroupGalleryRequest', createGroupGalleryRequest) + const localVarPath = `/groups/{groupId}/galleries` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createGroupGalleryRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Sends an invite to a user to join the group. + * @summary Invite User to Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupInviteRequest} createGroupInviteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupInvite: async (groupId: string, createGroupInviteRequest: CreateGroupInviteRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('createGroupInvite', 'groupId', groupId) + // verify required parameter 'createGroupInviteRequest' is not null or undefined + assertParamExists('createGroupInvite', 'createGroupInviteRequest', createGroupInviteRequest) + const localVarPath = `/groups/{groupId}/invites` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createGroupInviteRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Create a Group role. + * @summary Create GroupRole + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupRoleRequest} createGroupRoleRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupRole: async (groupId: string, createGroupRoleRequest: CreateGroupRoleRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('createGroupRole', 'groupId', groupId) + // verify required parameter 'createGroupRoleRequest' is not null or undefined + assertParamExists('createGroupRole', 'createGroupRoleRequest', createGroupRoleRequest) + const localVarPath = `/groups/{groupId}/roles` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createGroupRoleRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes a Group. + * @summary Delete Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroup: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroup', 'groupId', groupId) + const localVarPath = `/groups/{groupId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes the announcement for a Group. + * @summary Delete Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupAnnouncement: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroupAnnouncement', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/announcement` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes a gallery for a Group. + * @summary Delete Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupGallery: async (groupId: string, groupGalleryId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroupGallery', 'groupId', groupId) + // verify required parameter 'groupGalleryId' is not null or undefined + assertParamExists('deleteGroupGallery', 'groupGalleryId', groupGalleryId) + const localVarPath = `/groups/{groupId}/galleries/{groupGalleryId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"groupGalleryId"}}`, encodeURIComponent(String(groupGalleryId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes an image from a Group gallery. + * @summary Delete Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {string} groupGalleryImageId Must be a valid group gallery image ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupGalleryImage: async (groupId: string, groupGalleryId: string, groupGalleryImageId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroupGalleryImage', 'groupId', groupId) + // verify required parameter 'groupGalleryId' is not null or undefined + assertParamExists('deleteGroupGalleryImage', 'groupGalleryId', groupGalleryId) + // verify required parameter 'groupGalleryImageId' is not null or undefined + assertParamExists('deleteGroupGalleryImage', 'groupGalleryImageId', groupGalleryImageId) + const localVarPath = `/groups/{groupId}/galleries/{groupGalleryId}/images/{groupGalleryImageId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"groupGalleryId"}}`, encodeURIComponent(String(groupGalleryId))) + .replace(`{${"groupGalleryImageId"}}`, encodeURIComponent(String(groupGalleryImageId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes an Group invite sent to a User + * @summary Delete User Invite + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupInvite: async (groupId: string, userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroupInvite', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('deleteGroupInvite', 'userId', userId) + const localVarPath = `/groups/{groupId}/invites/{userId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete a Group post + * @summary Delete a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupPost: async (groupId: string, notificationId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroupPost', 'groupId', groupId) + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('deleteGroupPost', 'notificationId', notificationId) + const localVarPath = `/groups/{groupId}/posts/{notificationId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes a Group Role by ID and returns the remaining roles. + * @summary Delete Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupRole: async (groupId: string, groupRoleId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('deleteGroupRole', 'groupId', groupId) + // verify required parameter 'groupRoleId' is not null or undefined + assertParamExists('deleteGroupRole', 'groupRoleId', groupRoleId) + const localVarPath = `/groups/{groupId}/roles/{groupRoleId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"groupRoleId"}}`, encodeURIComponent(String(groupRoleId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a single Group by ID. + * @summary Get Group by ID + * @param {string} groupId Must be a valid group ID. + * @param {boolean} [includeRoles] Include roles for the Group object. Defaults to false. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroup: async (groupId: string, includeRoles?: boolean, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroup', 'groupId', groupId) + const localVarPath = `/groups/{groupId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (includeRoles !== undefined) { + localVarQueryParameter['includeRoles'] = includeRoles; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns the announcement for a Group. If no announcement has been made, then it returns **empty object**. If an announcement exists, then it will always return all fields except `imageId` and `imageUrl` which may be null. + * @summary Get Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupAnnouncements: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupAnnouncements', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/announcement` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of audit logs for a Group. + * @summary Get Group Audit Logs + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [startDate] The start date of the search range. + * @param {string} [endDate] The end date of the search range. + * @param {string} [actorIds] The comma-separated actor ids to search for. + * @param {string} [eventTypes] The comma-separated event types to search for. + * @param {string} [targetIds] The comma-separated target ids to search for. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupAuditLogs: async (groupId: string, n?: number, offset?: number, startDate?: string, endDate?: string, actorIds?: string, eventTypes?: string, targetIds?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupAuditLogs', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/auditLogs` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (startDate !== undefined) { + localVarQueryParameter['startDate'] = (startDate as any instanceof Date) ? + (startDate as any).toISOString() : + startDate; + } + + if (endDate !== undefined) { + localVarQueryParameter['endDate'] = (endDate as any instanceof Date) ? + (endDate as any).toISOString() : + endDate; + } + + if (actorIds !== undefined) { + localVarQueryParameter['actorIds'] = actorIds; + } + + if (eventTypes !== undefined) { + localVarQueryParameter['eventTypes'] = eventTypes; + } + + if (targetIds !== undefined) { + localVarQueryParameter['targetIds'] = targetIds; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of banned users for a Group. + * @summary Get Group Bans + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupBans: async (groupId: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupBans', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/bans` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of images for a Group gallery. + * @summary Get Group Gallery Images + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [approved] If specified, only returns images that have been approved or not approved. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupGalleryImages: async (groupId: string, groupGalleryId: string, n?: number, offset?: number, approved?: boolean, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupGalleryImages', 'groupId', groupId) + // verify required parameter 'groupGalleryId' is not null or undefined + assertParamExists('getGroupGalleryImages', 'groupGalleryId', groupGalleryId) + const localVarPath = `/groups/{groupId}/galleries/{groupGalleryId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"groupGalleryId"}}`, encodeURIComponent(String(groupGalleryId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (approved !== undefined) { + localVarQueryParameter['approved'] = approved; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of group instances + * @summary Get Group Instances + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupInstances: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupInstances', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/instances` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of members that have been invited to the Group. + * @summary Get Group Invites Sent + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupInvites: async (groupId: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupInvites', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/invites` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a LimitedGroup Member. + * @summary Get Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupMember: async (groupId: string, userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupMember', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('getGroupMember', 'userId', userId) + const localVarPath = `/groups/{groupId}/members/{userId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a List of all **other** Group Members. This endpoint will never return the user calling the endpoint. Information about the user calling the endpoint must be found in the `myMember` field of the Group object. + * @summary List Group Members + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {GroupSearchSort} [sort] The sort order of Group Member results + * @param {string} [roleId] Only returns members with a specific groupRoleId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupMembers: async (groupId: string, n?: number, offset?: number, sort?: GroupSearchSort, roleId?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupMembers', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/members` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (roleId !== undefined) { + localVarQueryParameter['roleId'] = roleId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a List of all possible/available permissions for a Group. + * @summary List Group Permissions + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupPermissions: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupPermissions', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/permissions` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get posts from a Group + * @summary Get posts from a Group + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [publicOnly] See public posts only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupPosts: async (groupId: string, n?: number, offset?: number, publicOnly?: boolean, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupPosts', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/posts` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (publicOnly !== undefined) { + localVarQueryParameter['publicOnly'] = publicOnly; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of members that have requested to join the Group. + * @summary Get Group Join Requests + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [blocked] See blocked join requests + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupRequests: async (groupId: string, n?: number, offset?: number, blocked?: boolean, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupRequests', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/requests` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (blocked !== undefined) { + localVarQueryParameter['blocked'] = blocked; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Obtain predefined templates for group roles + * @summary Get Group Role Templates + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupRoleTemplates: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/groups/roleTemplates`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a Group Role by ID. + * @summary Get Group Roles + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupRoles: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('getGroupRoles', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/roles` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Join a Group by ID and returns the member object. + * @summary Join Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + joinGroup: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('joinGroup', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/join` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Kicks a Group Member from the Group. The current user must have the \"Remove Group Members\" permission. + * @summary Kick Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + kickGroupMember: async (groupId: string, userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('kickGroupMember', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('kickGroupMember', 'userId', userId) + const localVarPath = `/groups/{groupId}/members/{userId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Leave a group by ID. + * @summary Leave Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + leaveGroup: async (groupId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('leaveGroup', 'groupId', groupId) + const localVarPath = `/groups/{groupId}/leave` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Removes a Role from a Group Member + * @summary Remove Role from GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + removeGroupMemberRole: async (groupId: string, userId: string, groupRoleId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('removeGroupMemberRole', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('removeGroupMemberRole', 'userId', userId) + // verify required parameter 'groupRoleId' is not null or undefined + assertParamExists('removeGroupMemberRole', 'groupRoleId', groupRoleId) + const localVarPath = `/groups/{groupId}/members/{userId}/roles/{groupRoleId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"groupRoleId"}}`, encodeURIComponent(String(groupRoleId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Responds to a Group Join Request with Accept/Deny + * @summary Respond Group Join request + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {RespondGroupJoinRequest} respondGroupJoinRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondGroupJoinRequest: async (groupId: string, userId: string, respondGroupJoinRequest: RespondGroupJoinRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('respondGroupJoinRequest', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('respondGroupJoinRequest', 'userId', userId) + // verify required parameter 'respondGroupJoinRequest' is not null or undefined + assertParamExists('respondGroupJoinRequest', 'respondGroupJoinRequest', respondGroupJoinRequest) + const localVarPath = `/groups/{groupId}/requests/{userId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(respondGroupJoinRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Searches Groups by name or shortCode + * @summary Search Group + * @param {string} [query] Query to search for, can be either Group Name or Group shortCode + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchGroups: async (query?: string, offset?: number, n?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/groups`; + // 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; + + if (query !== undefined) { + localVarQueryParameter['query'] = query; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Unbans a user from a Group. + * @summary Unban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unbanGroupMember: async (groupId: string, userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('unbanGroupMember', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('unbanGroupMember', 'userId', userId) + const localVarPath = `/groups/{groupId}/bans/{userId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates a Group and returns it. + * @summary Update Group + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRequest} [updateGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroup: async (groupId: string, updateGroupRequest?: UpdateGroupRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('updateGroup', 'groupId', groupId) + const localVarPath = `/groups/{groupId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateGroupRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates a gallery for a Group. + * @summary Update Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {UpdateGroupGalleryRequest} [updateGroupGalleryRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupGallery: async (groupId: string, groupGalleryId: string, updateGroupGalleryRequest?: UpdateGroupGalleryRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('updateGroupGallery', 'groupId', groupId) + // verify required parameter 'groupGalleryId' is not null or undefined + assertParamExists('updateGroupGallery', 'groupGalleryId', groupGalleryId) + const localVarPath = `/groups/{groupId}/galleries/{groupGalleryId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"groupGalleryId"}}`, encodeURIComponent(String(groupGalleryId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateGroupGalleryRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates a Group Member + * @summary Update Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {UpdateGroupMemberRequest} [updateGroupMemberRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupMember: async (groupId: string, userId: string, updateGroupMemberRequest?: UpdateGroupMemberRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('updateGroupMember', 'groupId', groupId) + // verify required parameter 'userId' is not null or undefined + assertParamExists('updateGroupMember', 'userId', userId) + const localVarPath = `/groups/{groupId}/members/{userId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateGroupMemberRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Edits a Group post + * @summary Edits a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupPost: async (groupId: string, notificationId: string, createGroupPostRequest: CreateGroupPostRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('updateGroupPost', 'groupId', groupId) + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('updateGroupPost', 'notificationId', notificationId) + // verify required parameter 'createGroupPostRequest' is not null or undefined + assertParamExists('updateGroupPost', 'createGroupPostRequest', createGroupPostRequest) + const localVarPath = `/groups/{groupId}/posts/{notificationId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createGroupPostRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates whether the user is representing the group. When `isRepresenting` is set to `true`, this flag will be set to `false` for all other groups + * @summary Update Group Representation + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRepresentationRequest} updateGroupRepresentationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupRepresentation: async (groupId: string, updateGroupRepresentationRequest: UpdateGroupRepresentationRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('updateGroupRepresentation', 'groupId', groupId) + // verify required parameter 'updateGroupRepresentationRequest' is not null or undefined + assertParamExists('updateGroupRepresentation', 'updateGroupRepresentationRequest', updateGroupRepresentationRequest) + const localVarPath = `/groups/{groupId}/representation` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateGroupRepresentationRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates a group role by ID. + * @summary Update Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {UpdateGroupRoleRequest} [updateGroupRoleRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupRole: async (groupId: string, groupRoleId: string, updateGroupRoleRequest?: UpdateGroupRoleRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'groupId' is not null or undefined + assertParamExists('updateGroupRole', 'groupId', groupId) + // verify required parameter 'groupRoleId' is not null or undefined + assertParamExists('updateGroupRole', 'groupRoleId', groupRoleId) + const localVarPath = `/groups/{groupId}/roles/{groupRoleId}` + .replace(`{${"groupId"}}`, encodeURIComponent(String(groupId))) + .replace(`{${"groupRoleId"}}`, encodeURIComponent(String(groupRoleId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateGroupRoleRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * GroupsApi - functional programming interface + * @export + */ +export const GroupsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = GroupsApiAxiosParamCreator(configuration) + return { + /** + * Adds an image to a Group gallery. + * @summary Add Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {AddGroupGalleryImageRequest} addGroupGalleryImageRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async addGroupGalleryImage(groupId: string, groupGalleryId: string, addGroupGalleryImageRequest: AddGroupGalleryImageRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.addGroupGalleryImage(groupId, groupGalleryId, addGroupGalleryImageRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Adds a Role to a Group Member + * @summary Add Role to GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async addGroupMemberRole(groupId: string, userId: string, groupRoleId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.addGroupMemberRole(groupId, userId, groupRoleId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Create a post in a Group. + * @summary Create a post in a Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async addGroupPost(groupId: string, createGroupPostRequest: CreateGroupPostRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.addGroupPost(groupId, createGroupPostRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Bans a user from a Group. + * @summary Ban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {BanGroupMemberRequest} banGroupMemberRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async banGroupMember(groupId: string, banGroupMemberRequest: BanGroupMemberRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.banGroupMember(groupId, banGroupMemberRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Cancels a request sent to join the group. + * @summary Cancel Group Join Request + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async cancelGroupRequest(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.cancelGroupRequest(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Creates a Group and returns a Group object. **Requires VRC+ Subscription.** + * @summary Create Group + * @param {CreateGroupRequest} createGroupRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createGroup(createGroupRequest: CreateGroupRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createGroup(createGroupRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Creates an Announcement for a Group. Warning: This will also remove all announcements. To make proper announcements, use the posts endpoint instead + * @summary Create Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupAnnouncementRequest} createGroupAnnouncementRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createGroupAnnouncement(groupId: string, createGroupAnnouncementRequest: CreateGroupAnnouncementRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createGroupAnnouncement(groupId, createGroupAnnouncementRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Creates a gallery for a Group. + * @summary Create Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupGalleryRequest} createGroupGalleryRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createGroupGallery(groupId: string, createGroupGalleryRequest: CreateGroupGalleryRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createGroupGallery(groupId, createGroupGalleryRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Sends an invite to a user to join the group. + * @summary Invite User to Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupInviteRequest} createGroupInviteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createGroupInvite(groupId: string, createGroupInviteRequest: CreateGroupInviteRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createGroupInvite(groupId, createGroupInviteRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Create a Group role. + * @summary Create GroupRole + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupRoleRequest} createGroupRoleRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createGroupRole(groupId: string, createGroupRoleRequest: CreateGroupRoleRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createGroupRole(groupId, createGroupRoleRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes a Group. + * @summary Delete Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroup(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroup(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes the announcement for a Group. + * @summary Delete Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroupAnnouncement(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroupAnnouncement(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes a gallery for a Group. + * @summary Delete Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroupGallery(groupId: string, groupGalleryId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroupGallery(groupId, groupGalleryId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes an image from a Group gallery. + * @summary Delete Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {string} groupGalleryImageId Must be a valid group gallery image ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroupGalleryImage(groupId: string, groupGalleryId: string, groupGalleryImageId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroupGalleryImage(groupId, groupGalleryId, groupGalleryImageId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes an Group invite sent to a User + * @summary Delete User Invite + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroupInvite(groupId: string, userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroupInvite(groupId, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Delete a Group post + * @summary Delete a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroupPost(groupId: string, notificationId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroupPost(groupId, notificationId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes a Group Role by ID and returns the remaining roles. + * @summary Delete Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteGroupRole(groupId: string, groupRoleId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteGroupRole(groupId, groupRoleId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a single Group by ID. + * @summary Get Group by ID + * @param {string} groupId Must be a valid group ID. + * @param {boolean} [includeRoles] Include roles for the Group object. Defaults to false. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroup(groupId: string, includeRoles?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroup(groupId, includeRoles, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns the announcement for a Group. If no announcement has been made, then it returns **empty object**. If an announcement exists, then it will always return all fields except `imageId` and `imageUrl` which may be null. + * @summary Get Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupAnnouncements(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupAnnouncements(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of audit logs for a Group. + * @summary Get Group Audit Logs + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [startDate] The start date of the search range. + * @param {string} [endDate] The end date of the search range. + * @param {string} [actorIds] The comma-separated actor ids to search for. + * @param {string} [eventTypes] The comma-separated event types to search for. + * @param {string} [targetIds] The comma-separated target ids to search for. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupAuditLogs(groupId: string, n?: number, offset?: number, startDate?: string, endDate?: string, actorIds?: string, eventTypes?: string, targetIds?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupAuditLogs(groupId, n, offset, startDate, endDate, actorIds, eventTypes, targetIds, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of banned users for a Group. + * @summary Get Group Bans + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupBans(groupId: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupBans(groupId, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of images for a Group gallery. + * @summary Get Group Gallery Images + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [approved] If specified, only returns images that have been approved or not approved. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupGalleryImages(groupId: string, groupGalleryId: string, n?: number, offset?: number, approved?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupGalleryImages(groupId, groupGalleryId, n, offset, approved, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of group instances + * @summary Get Group Instances + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupInstances(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupInstances(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of members that have been invited to the Group. + * @summary Get Group Invites Sent + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupInvites(groupId: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupInvites(groupId, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a LimitedGroup Member. + * @summary Get Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupMember(groupId: string, userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupMember(groupId, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a List of all **other** Group Members. This endpoint will never return the user calling the endpoint. Information about the user calling the endpoint must be found in the `myMember` field of the Group object. + * @summary List Group Members + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {GroupSearchSort} [sort] The sort order of Group Member results + * @param {string} [roleId] Only returns members with a specific groupRoleId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupMembers(groupId: string, n?: number, offset?: number, sort?: GroupSearchSort, roleId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupMembers(groupId, n, offset, sort, roleId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a List of all possible/available permissions for a Group. + * @summary List Group Permissions + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupPermissions(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupPermissions(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get posts from a Group + * @summary Get posts from a Group + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [publicOnly] See public posts only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupPosts(groupId: string, n?: number, offset?: number, publicOnly?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupPosts(groupId, n, offset, publicOnly, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of members that have requested to join the Group. + * @summary Get Group Join Requests + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [blocked] See blocked join requests + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupRequests(groupId: string, n?: number, offset?: number, blocked?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupRequests(groupId, n, offset, blocked, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Obtain predefined templates for group roles + * @summary Get Group Role Templates + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupRoleTemplates(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: GroupRoleTemplateValues; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupRoleTemplates(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a Group Role by ID. + * @summary Get Group Roles + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getGroupRoles(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getGroupRoles(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Join a Group by ID and returns the member object. + * @summary Join Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async joinGroup(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.joinGroup(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Kicks a Group Member from the Group. The current user must have the \"Remove Group Members\" permission. + * @summary Kick Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async kickGroupMember(groupId: string, userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.kickGroupMember(groupId, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Leave a group by ID. + * @summary Leave Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async leaveGroup(groupId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.leaveGroup(groupId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Removes a Role from a Group Member + * @summary Remove Role from GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async removeGroupMemberRole(groupId: string, userId: string, groupRoleId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.removeGroupMemberRole(groupId, userId, groupRoleId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Responds to a Group Join Request with Accept/Deny + * @summary Respond Group Join request + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {RespondGroupJoinRequest} respondGroupJoinRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async respondGroupJoinRequest(groupId: string, userId: string, respondGroupJoinRequest: RespondGroupJoinRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.respondGroupJoinRequest(groupId, userId, respondGroupJoinRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Searches Groups by name or shortCode + * @summary Search Group + * @param {string} [query] Query to search for, can be either Group Name or Group shortCode + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async searchGroups(query?: string, offset?: number, n?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.searchGroups(query, offset, n, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Unbans a user from a Group. + * @summary Unban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async unbanGroupMember(groupId: string, userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.unbanGroupMember(groupId, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates a Group and returns it. + * @summary Update Group + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRequest} [updateGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateGroup(groupId: string, updateGroupRequest?: UpdateGroupRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroup(groupId, updateGroupRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates a gallery for a Group. + * @summary Update Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {UpdateGroupGalleryRequest} [updateGroupGalleryRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateGroupGallery(groupId: string, groupGalleryId: string, updateGroupGalleryRequest?: UpdateGroupGalleryRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroupGallery(groupId, groupGalleryId, updateGroupGalleryRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates a Group Member + * @summary Update Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {UpdateGroupMemberRequest} [updateGroupMemberRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateGroupMember(groupId: string, userId: string, updateGroupMemberRequest?: UpdateGroupMemberRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroupMember(groupId, userId, updateGroupMemberRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Edits a Group post + * @summary Edits a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateGroupPost(groupId: string, notificationId: string, createGroupPostRequest: CreateGroupPostRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroupPost(groupId, notificationId, createGroupPostRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates whether the user is representing the group. When `isRepresenting` is set to `true`, this flag will be set to `false` for all other groups + * @summary Update Group Representation + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRepresentationRequest} updateGroupRepresentationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateGroupRepresentation(groupId: string, updateGroupRepresentationRequest: UpdateGroupRepresentationRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroupRepresentation(groupId, updateGroupRepresentationRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates a group role by ID. + * @summary Update Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {UpdateGroupRoleRequest} [updateGroupRoleRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateGroupRole(groupId: string, groupRoleId: string, updateGroupRoleRequest?: UpdateGroupRoleRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateGroupRole(groupId, groupRoleId, updateGroupRoleRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * GroupsApi - factory interface + * @export + */ +export const GroupsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = GroupsApiFp(configuration) + return { + /** + * Adds an image to a Group gallery. + * @summary Add Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {AddGroupGalleryImageRequest} addGroupGalleryImageRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addGroupGalleryImage(groupId: string, groupGalleryId: string, addGroupGalleryImageRequest: AddGroupGalleryImageRequest, options?: any): AxiosPromise { + return localVarFp.addGroupGalleryImage(groupId, groupGalleryId, addGroupGalleryImageRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Adds a Role to a Group Member + * @summary Add Role to GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addGroupMemberRole(groupId: string, userId: string, groupRoleId: string, options?: any): AxiosPromise> { + return localVarFp.addGroupMemberRole(groupId, userId, groupRoleId, options).then((request) => request(axios, basePath)); + }, + /** + * Create a post in a Group. + * @summary Create a post in a Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addGroupPost(groupId: string, createGroupPostRequest: CreateGroupPostRequest, options?: any): AxiosPromise { + return localVarFp.addGroupPost(groupId, createGroupPostRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Bans a user from a Group. + * @summary Ban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {BanGroupMemberRequest} banGroupMemberRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + banGroupMember(groupId: string, banGroupMemberRequest: BanGroupMemberRequest, options?: any): AxiosPromise { + return localVarFp.banGroupMember(groupId, banGroupMemberRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Cancels a request sent to join the group. + * @summary Cancel Group Join Request + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + cancelGroupRequest(groupId: string, options?: any): AxiosPromise { + return localVarFp.cancelGroupRequest(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Creates a Group and returns a Group object. **Requires VRC+ Subscription.** + * @summary Create Group + * @param {CreateGroupRequest} createGroupRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroup(createGroupRequest: CreateGroupRequest, options?: any): AxiosPromise { + return localVarFp.createGroup(createGroupRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Creates an Announcement for a Group. Warning: This will also remove all announcements. To make proper announcements, use the posts endpoint instead + * @summary Create Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupAnnouncementRequest} createGroupAnnouncementRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupAnnouncement(groupId: string, createGroupAnnouncementRequest: CreateGroupAnnouncementRequest, options?: any): AxiosPromise { + return localVarFp.createGroupAnnouncement(groupId, createGroupAnnouncementRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Creates a gallery for a Group. + * @summary Create Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupGalleryRequest} createGroupGalleryRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupGallery(groupId: string, createGroupGalleryRequest: CreateGroupGalleryRequest, options?: any): AxiosPromise { + return localVarFp.createGroupGallery(groupId, createGroupGalleryRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Sends an invite to a user to join the group. + * @summary Invite User to Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupInviteRequest} createGroupInviteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupInvite(groupId: string, createGroupInviteRequest: CreateGroupInviteRequest, options?: any): AxiosPromise { + return localVarFp.createGroupInvite(groupId, createGroupInviteRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Create a Group role. + * @summary Create GroupRole + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupRoleRequest} createGroupRoleRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createGroupRole(groupId: string, createGroupRoleRequest: CreateGroupRoleRequest, options?: any): AxiosPromise { + return localVarFp.createGroupRole(groupId, createGroupRoleRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes a Group. + * @summary Delete Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroup(groupId: string, options?: any): AxiosPromise { + return localVarFp.deleteGroup(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes the announcement for a Group. + * @summary Delete Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupAnnouncement(groupId: string, options?: any): AxiosPromise { + return localVarFp.deleteGroupAnnouncement(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes a gallery for a Group. + * @summary Delete Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupGallery(groupId: string, groupGalleryId: string, options?: any): AxiosPromise { + return localVarFp.deleteGroupGallery(groupId, groupGalleryId, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes an image from a Group gallery. + * @summary Delete Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {string} groupGalleryImageId Must be a valid group gallery image ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupGalleryImage(groupId: string, groupGalleryId: string, groupGalleryImageId: string, options?: any): AxiosPromise { + return localVarFp.deleteGroupGalleryImage(groupId, groupGalleryId, groupGalleryImageId, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes an Group invite sent to a User + * @summary Delete User Invite + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupInvite(groupId: string, userId: string, options?: any): AxiosPromise { + return localVarFp.deleteGroupInvite(groupId, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Delete a Group post + * @summary Delete a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupPost(groupId: string, notificationId: string, options?: any): AxiosPromise { + return localVarFp.deleteGroupPost(groupId, notificationId, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes a Group Role by ID and returns the remaining roles. + * @summary Delete Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteGroupRole(groupId: string, groupRoleId: string, options?: any): AxiosPromise> { + return localVarFp.deleteGroupRole(groupId, groupRoleId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a single Group by ID. + * @summary Get Group by ID + * @param {string} groupId Must be a valid group ID. + * @param {boolean} [includeRoles] Include roles for the Group object. Defaults to false. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroup(groupId: string, includeRoles?: boolean, options?: any): AxiosPromise { + return localVarFp.getGroup(groupId, includeRoles, options).then((request) => request(axios, basePath)); + }, + /** + * Returns the announcement for a Group. If no announcement has been made, then it returns **empty object**. If an announcement exists, then it will always return all fields except `imageId` and `imageUrl` which may be null. + * @summary Get Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupAnnouncements(groupId: string, options?: any): AxiosPromise { + return localVarFp.getGroupAnnouncements(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of audit logs for a Group. + * @summary Get Group Audit Logs + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [startDate] The start date of the search range. + * @param {string} [endDate] The end date of the search range. + * @param {string} [actorIds] The comma-separated actor ids to search for. + * @param {string} [eventTypes] The comma-separated event types to search for. + * @param {string} [targetIds] The comma-separated target ids to search for. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupAuditLogs(groupId: string, n?: number, offset?: number, startDate?: string, endDate?: string, actorIds?: string, eventTypes?: string, targetIds?: string, options?: any): AxiosPromise { + return localVarFp.getGroupAuditLogs(groupId, n, offset, startDate, endDate, actorIds, eventTypes, targetIds, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of banned users for a Group. + * @summary Get Group Bans + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupBans(groupId: string, n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.getGroupBans(groupId, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of images for a Group gallery. + * @summary Get Group Gallery Images + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [approved] If specified, only returns images that have been approved or not approved. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupGalleryImages(groupId: string, groupGalleryId: string, n?: number, offset?: number, approved?: boolean, options?: any): AxiosPromise> { + return localVarFp.getGroupGalleryImages(groupId, groupGalleryId, n, offset, approved, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of group instances + * @summary Get Group Instances + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupInstances(groupId: string, options?: any): AxiosPromise> { + return localVarFp.getGroupInstances(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of members that have been invited to the Group. + * @summary Get Group Invites Sent + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupInvites(groupId: string, n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.getGroupInvites(groupId, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a LimitedGroup Member. + * @summary Get Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupMember(groupId: string, userId: string, options?: any): AxiosPromise { + return localVarFp.getGroupMember(groupId, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a List of all **other** Group Members. This endpoint will never return the user calling the endpoint. Information about the user calling the endpoint must be found in the `myMember` field of the Group object. + * @summary List Group Members + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {GroupSearchSort} [sort] The sort order of Group Member results + * @param {string} [roleId] Only returns members with a specific groupRoleId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupMembers(groupId: string, n?: number, offset?: number, sort?: GroupSearchSort, roleId?: string, options?: any): AxiosPromise> { + return localVarFp.getGroupMembers(groupId, n, offset, sort, roleId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a List of all possible/available permissions for a Group. + * @summary List Group Permissions + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupPermissions(groupId: string, options?: any): AxiosPromise> { + return localVarFp.getGroupPermissions(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Get posts from a Group + * @summary Get posts from a Group + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [publicOnly] See public posts only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupPosts(groupId: string, n?: number, offset?: number, publicOnly?: boolean, options?: any): AxiosPromise { + return localVarFp.getGroupPosts(groupId, n, offset, publicOnly, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of members that have requested to join the Group. + * @summary Get Group Join Requests + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [blocked] See blocked join requests + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupRequests(groupId: string, n?: number, offset?: number, blocked?: boolean, options?: any): AxiosPromise> { + return localVarFp.getGroupRequests(groupId, n, offset, blocked, options).then((request) => request(axios, basePath)); + }, + /** + * Obtain predefined templates for group roles + * @summary Get Group Role Templates + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupRoleTemplates(options?: any): AxiosPromise<{ [key: string]: GroupRoleTemplateValues; }> { + return localVarFp.getGroupRoleTemplates(options).then((request) => request(axios, basePath)); + }, + /** + * Returns a Group Role by ID. + * @summary Get Group Roles + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getGroupRoles(groupId: string, options?: any): AxiosPromise> { + return localVarFp.getGroupRoles(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Join a Group by ID and returns the member object. + * @summary Join Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + joinGroup(groupId: string, options?: any): AxiosPromise { + return localVarFp.joinGroup(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Kicks a Group Member from the Group. The current user must have the \"Remove Group Members\" permission. + * @summary Kick Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + kickGroupMember(groupId: string, userId: string, options?: any): AxiosPromise { + return localVarFp.kickGroupMember(groupId, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Leave a group by ID. + * @summary Leave Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + leaveGroup(groupId: string, options?: any): AxiosPromise { + return localVarFp.leaveGroup(groupId, options).then((request) => request(axios, basePath)); + }, + /** + * Removes a Role from a Group Member + * @summary Remove Role from GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + removeGroupMemberRole(groupId: string, userId: string, groupRoleId: string, options?: any): AxiosPromise> { + return localVarFp.removeGroupMemberRole(groupId, userId, groupRoleId, options).then((request) => request(axios, basePath)); + }, + /** + * Responds to a Group Join Request with Accept/Deny + * @summary Respond Group Join request + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {RespondGroupJoinRequest} respondGroupJoinRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondGroupJoinRequest(groupId: string, userId: string, respondGroupJoinRequest: RespondGroupJoinRequest, options?: any): AxiosPromise { + return localVarFp.respondGroupJoinRequest(groupId, userId, respondGroupJoinRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Searches Groups by name or shortCode + * @summary Search Group + * @param {string} [query] Query to search for, can be either Group Name or Group shortCode + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchGroups(query?: string, offset?: number, n?: number, options?: any): AxiosPromise> { + return localVarFp.searchGroups(query, offset, n, options).then((request) => request(axios, basePath)); + }, + /** + * Unbans a user from a Group. + * @summary Unban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unbanGroupMember(groupId: string, userId: string, options?: any): AxiosPromise { + return localVarFp.unbanGroupMember(groupId, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Updates a Group and returns it. + * @summary Update Group + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRequest} [updateGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroup(groupId: string, updateGroupRequest?: UpdateGroupRequest, options?: any): AxiosPromise { + return localVarFp.updateGroup(groupId, updateGroupRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Updates a gallery for a Group. + * @summary Update Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {UpdateGroupGalleryRequest} [updateGroupGalleryRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupGallery(groupId: string, groupGalleryId: string, updateGroupGalleryRequest?: UpdateGroupGalleryRequest, options?: any): AxiosPromise { + return localVarFp.updateGroupGallery(groupId, groupGalleryId, updateGroupGalleryRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Updates a Group Member + * @summary Update Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {UpdateGroupMemberRequest} [updateGroupMemberRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupMember(groupId: string, userId: string, updateGroupMemberRequest?: UpdateGroupMemberRequest, options?: any): AxiosPromise { + return localVarFp.updateGroupMember(groupId, userId, updateGroupMemberRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Edits a Group post + * @summary Edits a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupPost(groupId: string, notificationId: string, createGroupPostRequest: CreateGroupPostRequest, options?: any): AxiosPromise { + return localVarFp.updateGroupPost(groupId, notificationId, createGroupPostRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Updates whether the user is representing the group. When `isRepresenting` is set to `true`, this flag will be set to `false` for all other groups + * @summary Update Group Representation + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRepresentationRequest} updateGroupRepresentationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupRepresentation(groupId: string, updateGroupRepresentationRequest: UpdateGroupRepresentationRequest, options?: any): AxiosPromise { + return localVarFp.updateGroupRepresentation(groupId, updateGroupRepresentationRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Updates a group role by ID. + * @summary Update Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {UpdateGroupRoleRequest} [updateGroupRoleRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateGroupRole(groupId: string, groupRoleId: string, updateGroupRoleRequest?: UpdateGroupRoleRequest, options?: any): AxiosPromise> { + return localVarFp.updateGroupRole(groupId, groupRoleId, updateGroupRoleRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * GroupsApi - object-oriented interface + * @export + * @class GroupsApi + * @extends {BaseAPI} + */ +export class GroupsApi extends BaseAPI { + /** + * Adds an image to a Group gallery. + * @summary Add Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {AddGroupGalleryImageRequest} addGroupGalleryImageRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public addGroupGalleryImage(groupId: string, groupGalleryId: string, addGroupGalleryImageRequest: AddGroupGalleryImageRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).addGroupGalleryImage(groupId, groupGalleryId, addGroupGalleryImageRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Adds a Role to a Group Member + * @summary Add Role to GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public addGroupMemberRole(groupId: string, userId: string, groupRoleId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).addGroupMemberRole(groupId, userId, groupRoleId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Create a post in a Group. + * @summary Create a post in a Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public addGroupPost(groupId: string, createGroupPostRequest: CreateGroupPostRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).addGroupPost(groupId, createGroupPostRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Bans a user from a Group. + * @summary Ban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {BanGroupMemberRequest} banGroupMemberRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public banGroupMember(groupId: string, banGroupMemberRequest: BanGroupMemberRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).banGroupMember(groupId, banGroupMemberRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Cancels a request sent to join the group. + * @summary Cancel Group Join Request + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public cancelGroupRequest(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).cancelGroupRequest(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Creates a Group and returns a Group object. **Requires VRC+ Subscription.** + * @summary Create Group + * @param {CreateGroupRequest} createGroupRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public createGroup(createGroupRequest: CreateGroupRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).createGroup(createGroupRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Creates an Announcement for a Group. Warning: This will also remove all announcements. To make proper announcements, use the posts endpoint instead + * @summary Create Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupAnnouncementRequest} createGroupAnnouncementRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public createGroupAnnouncement(groupId: string, createGroupAnnouncementRequest: CreateGroupAnnouncementRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).createGroupAnnouncement(groupId, createGroupAnnouncementRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Creates a gallery for a Group. + * @summary Create Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupGalleryRequest} createGroupGalleryRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public createGroupGallery(groupId: string, createGroupGalleryRequest: CreateGroupGalleryRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).createGroupGallery(groupId, createGroupGalleryRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Sends an invite to a user to join the group. + * @summary Invite User to Group + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupInviteRequest} createGroupInviteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public createGroupInvite(groupId: string, createGroupInviteRequest: CreateGroupInviteRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).createGroupInvite(groupId, createGroupInviteRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Create a Group role. + * @summary Create GroupRole + * @param {string} groupId Must be a valid group ID. + * @param {CreateGroupRoleRequest} createGroupRoleRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public createGroupRole(groupId: string, createGroupRoleRequest: CreateGroupRoleRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).createGroupRole(groupId, createGroupRoleRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes a Group. + * @summary Delete Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public deleteGroup(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).deleteGroup(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes the announcement for a Group. + * @summary Delete Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public deleteGroupAnnouncement(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).deleteGroupAnnouncement(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes a gallery for a Group. + * @summary Delete Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public deleteGroupGallery(groupId: string, groupGalleryId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).deleteGroupGallery(groupId, groupGalleryId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes an image from a Group gallery. + * @summary Delete Group Gallery Image + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {string} groupGalleryImageId Must be a valid group gallery image ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public deleteGroupGalleryImage(groupId: string, groupGalleryId: string, groupGalleryImageId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).deleteGroupGalleryImage(groupId, groupGalleryId, groupGalleryImageId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes an Group invite sent to a User + * @summary Delete User Invite + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public deleteGroupInvite(groupId: string, userId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).deleteGroupInvite(groupId, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete a Group post + * @summary Delete a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public deleteGroupPost(groupId: string, notificationId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).deleteGroupPost(groupId, notificationId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes a Group Role by ID and returns the remaining roles. + * @summary Delete Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public deleteGroupRole(groupId: string, groupRoleId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).deleteGroupRole(groupId, groupRoleId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a single Group by ID. + * @summary Get Group by ID + * @param {string} groupId Must be a valid group ID. + * @param {boolean} [includeRoles] Include roles for the Group object. Defaults to false. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroup(groupId: string, includeRoles?: boolean, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroup(groupId, includeRoles, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns the announcement for a Group. If no announcement has been made, then it returns **empty object**. If an announcement exists, then it will always return all fields except `imageId` and `imageUrl` which may be null. + * @summary Get Group Announcement + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupAnnouncements(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupAnnouncements(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of audit logs for a Group. + * @summary Get Group Audit Logs + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [startDate] The start date of the search range. + * @param {string} [endDate] The end date of the search range. + * @param {string} [actorIds] The comma-separated actor ids to search for. + * @param {string} [eventTypes] The comma-separated event types to search for. + * @param {string} [targetIds] The comma-separated target ids to search for. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupAuditLogs(groupId: string, n?: number, offset?: number, startDate?: string, endDate?: string, actorIds?: string, eventTypes?: string, targetIds?: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupAuditLogs(groupId, n, offset, startDate, endDate, actorIds, eventTypes, targetIds, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of banned users for a Group. + * @summary Get Group Bans + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupBans(groupId: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupBans(groupId, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of images for a Group gallery. + * @summary Get Group Gallery Images + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [approved] If specified, only returns images that have been approved or not approved. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupGalleryImages(groupId: string, groupGalleryId: string, n?: number, offset?: number, approved?: boolean, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupGalleryImages(groupId, groupGalleryId, n, offset, approved, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of group instances + * @summary Get Group Instances + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupInstances(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupInstances(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of members that have been invited to the Group. + * @summary Get Group Invites Sent + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupInvites(groupId: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupInvites(groupId, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a LimitedGroup Member. + * @summary Get Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupMember(groupId: string, userId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupMember(groupId, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a List of all **other** Group Members. This endpoint will never return the user calling the endpoint. Information about the user calling the endpoint must be found in the `myMember` field of the Group object. + * @summary List Group Members + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {GroupSearchSort} [sort] The sort order of Group Member results + * @param {string} [roleId] Only returns members with a specific groupRoleId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupMembers(groupId: string, n?: number, offset?: number, sort?: GroupSearchSort, roleId?: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupMembers(groupId, n, offset, sort, roleId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a List of all possible/available permissions for a Group. + * @summary List Group Permissions + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupPermissions(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupPermissions(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get posts from a Group + * @summary Get posts from a Group + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [publicOnly] See public posts only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupPosts(groupId: string, n?: number, offset?: number, publicOnly?: boolean, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupPosts(groupId, n, offset, publicOnly, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of members that have requested to join the Group. + * @summary Get Group Join Requests + * @param {string} groupId Must be a valid group ID. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {boolean} [blocked] See blocked join requests + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupRequests(groupId: string, n?: number, offset?: number, blocked?: boolean, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupRequests(groupId, n, offset, blocked, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Obtain predefined templates for group roles + * @summary Get Group Role Templates + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupRoleTemplates(options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupRoleTemplates(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a Group Role by ID. + * @summary Get Group Roles + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public getGroupRoles(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).getGroupRoles(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Join a Group by ID and returns the member object. + * @summary Join Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public joinGroup(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).joinGroup(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Kicks a Group Member from the Group. The current user must have the \"Remove Group Members\" permission. + * @summary Kick Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public kickGroupMember(groupId: string, userId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).kickGroupMember(groupId, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Leave a group by ID. + * @summary Leave Group + * @param {string} groupId Must be a valid group ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public leaveGroup(groupId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).leaveGroup(groupId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Removes a Role from a Group Member + * @summary Remove Role from GroupMember + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public removeGroupMemberRole(groupId: string, userId: string, groupRoleId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).removeGroupMemberRole(groupId, userId, groupRoleId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Responds to a Group Join Request with Accept/Deny + * @summary Respond Group Join request + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {RespondGroupJoinRequest} respondGroupJoinRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public respondGroupJoinRequest(groupId: string, userId: string, respondGroupJoinRequest: RespondGroupJoinRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).respondGroupJoinRequest(groupId, userId, respondGroupJoinRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Searches Groups by name or shortCode + * @summary Search Group + * @param {string} [query] Query to search for, can be either Group Name or Group shortCode + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {number} [n] The number of objects to return. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public searchGroups(query?: string, offset?: number, n?: number, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).searchGroups(query, offset, n, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Unbans a user from a Group. + * @summary Unban Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public unbanGroupMember(groupId: string, userId: string, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).unbanGroupMember(groupId, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates a Group and returns it. + * @summary Update Group + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRequest} [updateGroupRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public updateGroup(groupId: string, updateGroupRequest?: UpdateGroupRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).updateGroup(groupId, updateGroupRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates a gallery for a Group. + * @summary Update Group Gallery + * @param {string} groupId Must be a valid group ID. + * @param {string} groupGalleryId Must be a valid group gallery ID. + * @param {UpdateGroupGalleryRequest} [updateGroupGalleryRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public updateGroupGallery(groupId: string, groupGalleryId: string, updateGroupGalleryRequest?: UpdateGroupGalleryRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).updateGroupGallery(groupId, groupGalleryId, updateGroupGalleryRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates a Group Member + * @summary Update Group Member + * @param {string} groupId Must be a valid group ID. + * @param {string} userId Must be a valid user ID. + * @param {UpdateGroupMemberRequest} [updateGroupMemberRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public updateGroupMember(groupId: string, userId: string, updateGroupMemberRequest?: UpdateGroupMemberRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).updateGroupMember(groupId, userId, updateGroupMemberRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Edits a Group post + * @summary Edits a Group post + * @param {string} groupId Must be a valid group ID. + * @param {string} notificationId Must be a valid notification ID. + * @param {CreateGroupPostRequest} createGroupPostRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public updateGroupPost(groupId: string, notificationId: string, createGroupPostRequest: CreateGroupPostRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).updateGroupPost(groupId, notificationId, createGroupPostRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates whether the user is representing the group. When `isRepresenting` is set to `true`, this flag will be set to `false` for all other groups + * @summary Update Group Representation + * @param {string} groupId Must be a valid group ID. + * @param {UpdateGroupRepresentationRequest} updateGroupRepresentationRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public updateGroupRepresentation(groupId: string, updateGroupRepresentationRequest: UpdateGroupRepresentationRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).updateGroupRepresentation(groupId, updateGroupRepresentationRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates a group role by ID. + * @summary Update Group Role + * @param {string} groupId Must be a valid group ID. + * @param {string} groupRoleId Must be a valid group role ID. + * @param {UpdateGroupRoleRequest} [updateGroupRoleRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof GroupsApi + */ + public updateGroupRole(groupId: string, groupRoleId: string, updateGroupRoleRequest?: UpdateGroupRoleRequest, options?: AxiosRequestConfig) { + return GroupsApiFp(this.configuration).updateGroupRole(groupId, groupRoleId, updateGroupRoleRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * InstancesApi - axios parameter creator + * @export + */ +export const InstancesApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Close an instance or update the closedAt time when it will be closed. You can only close an instance if the ownerId is yourself or if the instance owner is a group and you have the `group-instance-manage` permission. + * @summary Close Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {boolean} [hardClose] Whether to hard close the instance. Defaults to false. + * @param {string} [closedAt] The time after which users won\'t be allowed to join the instances. If omitted, the instance will be closed immediately. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + closeInstance: async (worldId: string, instanceId: string, hardClose?: boolean, closedAt?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('closeInstance', 'worldId', worldId) + // verify required parameter 'instanceId' is not null or undefined + assertParamExists('closeInstance', 'instanceId', instanceId) + const localVarPath = `/instances/{worldId}:{instanceId}` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))) + .replace(`{${"instanceId"}}`, encodeURIComponent(String(instanceId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + if (hardClose !== undefined) { + localVarQueryParameter['hardClose'] = hardClose; + } + + if (closedAt !== undefined) { + localVarQueryParameter['closedAt'] = (closedAt as any instanceof Date) ? + (closedAt as any).toISOString() : + closedAt; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Create an instance + * @summary Create Instance + * @param {CreateInstanceRequest} createInstanceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createInstance: async (createInstanceRequest: CreateInstanceRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'createInstanceRequest' is not null or undefined + assertParamExists('createInstance', 'createInstanceRequest', createInstanceRequest) + const localVarPath = `/instances`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createInstanceRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. If an invalid instanceId is provided, this endpoint will simply return \"null\"! + * @summary Get Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInstance: async (worldId: string, instanceId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('getInstance', 'worldId', worldId) + // verify required parameter 'instanceId' is not null or undefined + assertParamExists('getInstance', 'instanceId', instanceId) + const localVarPath = `/instances/{worldId}:{instanceId}` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))) + .replace(`{${"instanceId"}}`, encodeURIComponent(String(instanceId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. + * @summary Get Instance By Short Name + * @param {string} shortName Must be a valid instance short name. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInstanceByShortName: async (shortName: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'shortName' is not null or undefined + assertParamExists('getInstanceByShortName', 'shortName', shortName) + const localVarPath = `/instances/s/{shortName}` + .replace(`{${"shortName"}}`, encodeURIComponent(String(shortName))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns an instance short name. + * @summary Get Instance Short Name + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getShortName: async (worldId: string, instanceId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('getShortName', 'worldId', worldId) + // verify required parameter 'instanceId' is not null or undefined + assertParamExists('getShortName', 'instanceId', instanceId) + const localVarPath = `/instances/{worldId}:{instanceId}/shortName` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))) + .replace(`{${"instanceId"}}`, encodeURIComponent(String(instanceId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * InstancesApi - functional programming interface + * @export + */ +export const InstancesApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = InstancesApiAxiosParamCreator(configuration) + return { + /** + * Close an instance or update the closedAt time when it will be closed. You can only close an instance if the ownerId is yourself or if the instance owner is a group and you have the `group-instance-manage` permission. + * @summary Close Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {boolean} [hardClose] Whether to hard close the instance. Defaults to false. + * @param {string} [closedAt] The time after which users won\'t be allowed to join the instances. If omitted, the instance will be closed immediately. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async closeInstance(worldId: string, instanceId: string, hardClose?: boolean, closedAt?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.closeInstance(worldId, instanceId, hardClose, closedAt, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Create an instance + * @summary Create Instance + * @param {CreateInstanceRequest} createInstanceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createInstance(createInstanceRequest: CreateInstanceRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createInstance(createInstanceRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. If an invalid instanceId is provided, this endpoint will simply return \"null\"! + * @summary Get Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInstance(worldId: string, instanceId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInstance(worldId, instanceId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. + * @summary Get Instance By Short Name + * @param {string} shortName Must be a valid instance short name. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInstanceByShortName(shortName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInstanceByShortName(shortName, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns an instance short name. + * @summary Get Instance Short Name + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getShortName(worldId: string, instanceId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getShortName(worldId, instanceId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * InstancesApi - factory interface + * @export + */ +export const InstancesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = InstancesApiFp(configuration) + return { + /** + * Close an instance or update the closedAt time when it will be closed. You can only close an instance if the ownerId is yourself or if the instance owner is a group and you have the `group-instance-manage` permission. + * @summary Close Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {boolean} [hardClose] Whether to hard close the instance. Defaults to false. + * @param {string} [closedAt] The time after which users won\'t be allowed to join the instances. If omitted, the instance will be closed immediately. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + closeInstance(worldId: string, instanceId: string, hardClose?: boolean, closedAt?: string, options?: any): AxiosPromise { + return localVarFp.closeInstance(worldId, instanceId, hardClose, closedAt, options).then((request) => request(axios, basePath)); + }, + /** + * Create an instance + * @summary Create Instance + * @param {CreateInstanceRequest} createInstanceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createInstance(createInstanceRequest: CreateInstanceRequest, options?: any): AxiosPromise { + return localVarFp.createInstance(createInstanceRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. If an invalid instanceId is provided, this endpoint will simply return \"null\"! + * @summary Get Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInstance(worldId: string, instanceId: string, options?: any): AxiosPromise { + return localVarFp.getInstance(worldId, instanceId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. + * @summary Get Instance By Short Name + * @param {string} shortName Must be a valid instance short name. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInstanceByShortName(shortName: string, options?: any): AxiosPromise { + return localVarFp.getInstanceByShortName(shortName, options).then((request) => request(axios, basePath)); + }, + /** + * Returns an instance short name. + * @summary Get Instance Short Name + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getShortName(worldId: string, instanceId: string, options?: any): AxiosPromise { + return localVarFp.getShortName(worldId, instanceId, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * InstancesApi - object-oriented interface + * @export + * @class InstancesApi + * @extends {BaseAPI} + */ +export class InstancesApi extends BaseAPI { + /** + * Close an instance or update the closedAt time when it will be closed. You can only close an instance if the ownerId is yourself or if the instance owner is a group and you have the `group-instance-manage` permission. + * @summary Close Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {boolean} [hardClose] Whether to hard close the instance. Defaults to false. + * @param {string} [closedAt] The time after which users won\'t be allowed to join the instances. If omitted, the instance will be closed immediately. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InstancesApi + */ + public closeInstance(worldId: string, instanceId: string, hardClose?: boolean, closedAt?: string, options?: AxiosRequestConfig) { + return InstancesApiFp(this.configuration).closeInstance(worldId, instanceId, hardClose, closedAt, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Create an instance + * @summary Create Instance + * @param {CreateInstanceRequest} createInstanceRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InstancesApi + */ + public createInstance(createInstanceRequest: CreateInstanceRequest, options?: AxiosRequestConfig) { + return InstancesApiFp(this.configuration).createInstance(createInstanceRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. If an invalid instanceId is provided, this endpoint will simply return \"null\"! + * @summary Get Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InstancesApi + */ + public getInstance(worldId: string, instanceId: string, options?: AxiosRequestConfig) { + return InstancesApiFp(this.configuration).getInstance(worldId, instanceId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns an instance. Please read [Instances Tutorial](https://vrchatapi.github.io/tutorials/instances/) for more information on Instances. + * @summary Get Instance By Short Name + * @param {string} shortName Must be a valid instance short name. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InstancesApi + */ + public getInstanceByShortName(shortName: string, options?: AxiosRequestConfig) { + return InstancesApiFp(this.configuration).getInstanceByShortName(shortName, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns an instance short name. + * @summary Get Instance Short Name + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InstancesApi + */ + public getShortName(worldId: string, instanceId: string, options?: AxiosRequestConfig) { + return InstancesApiFp(this.configuration).getShortName(worldId, instanceId, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * InventoryApi - axios parameter creator + * @export + */ +export const InventoryApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Returns an Inventory object. + * @summary Get Inventory + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {'newest' | 'oldest'} [inventorySortOrder] Sort order for inventory retrieval. + * @param {InventoryItemType} [inventoryItemType] Filter for inventory retrieval. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInventory: async (n?: number, offset?: number, inventorySortOrder?: 'newest' | 'oldest', inventoryItemType?: InventoryItemType, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/inventory`; + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (inventorySortOrder !== undefined) { + localVarQueryParameter['inventorySortOrder'] = inventorySortOrder; + } + + if (inventoryItemType !== undefined) { + localVarQueryParameter['inventoryItemType'] = inventoryItemType; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of InventoryDrop objects. + * @summary List Inventory Drops + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInventoryDrops: async (active?: boolean, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/inventory/drops`; + // 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 authCookie required + + if (active !== undefined) { + localVarQueryParameter['active'] = active; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns an InventoryTemplate object. + * @summary Get Inventory Template + * @param {string} inventoryTemplateId Must be a valid inventory template ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInventoryTemplate: async (inventoryTemplateId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'inventoryTemplateId' is not null or undefined + assertParamExists('getInventoryTemplate', 'inventoryTemplateId', inventoryTemplateId) + const localVarPath = `/inventory/template/{inventoryTemplateId}` + .replace(`{${"inventoryTemplateId"}}`, encodeURIComponent(String(inventoryTemplateId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns an InventoryItem object held by the currently logged in user. + * @summary Get Own Inventory Item + * @param {string} inventoryItemId Must be a valid inventory item ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getOwnInventoryItem: async (inventoryItemId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'inventoryItemId' is not null or undefined + assertParamExists('getOwnInventoryItem', 'inventoryItemId', inventoryItemId) + const localVarPath = `/inventory/{inventoryItemId}` + .replace(`{${"inventoryItemId"}}`, encodeURIComponent(String(inventoryItemId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns an InventorySpawn object. + * @summary Spawn Inventory Item + * @param {string} id Id for inventory item spawning. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + spawnInventoryItem: async (id: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('spawnInventoryItem', 'id', id) + const localVarPath = `/inventory/spawn`; + // 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 authCookie required + + 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, + }; + }, + } +}; + +/** + * InventoryApi - functional programming interface + * @export + */ +export const InventoryApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = InventoryApiAxiosParamCreator(configuration) + return { + /** + * Returns an Inventory object. + * @summary Get Inventory + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {'newest' | 'oldest'} [inventorySortOrder] Sort order for inventory retrieval. + * @param {InventoryItemType} [inventoryItemType] Filter for inventory retrieval. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInventory(n?: number, offset?: number, inventorySortOrder?: 'newest' | 'oldest', inventoryItemType?: InventoryItemType, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInventory(n, offset, inventorySortOrder, inventoryItemType, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of InventoryDrop objects. + * @summary List Inventory Drops + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInventoryDrops(active?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInventoryDrops(active, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns an InventoryTemplate object. + * @summary Get Inventory Template + * @param {string} inventoryTemplateId Must be a valid inventory template ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInventoryTemplate(inventoryTemplateId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInventoryTemplate(inventoryTemplateId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns an InventoryItem object held by the currently logged in user. + * @summary Get Own Inventory Item + * @param {string} inventoryItemId Must be a valid inventory item ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getOwnInventoryItem(inventoryItemId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getOwnInventoryItem(inventoryItemId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns an InventorySpawn object. + * @summary Spawn Inventory Item + * @param {string} id Id for inventory item spawning. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async spawnInventoryItem(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.spawnInventoryItem(id, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * InventoryApi - factory interface + * @export + */ +export const InventoryApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = InventoryApiFp(configuration) + return { + /** + * Returns an Inventory object. + * @summary Get Inventory + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {'newest' | 'oldest'} [inventorySortOrder] Sort order for inventory retrieval. + * @param {InventoryItemType} [inventoryItemType] Filter for inventory retrieval. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInventory(n?: number, offset?: number, inventorySortOrder?: 'newest' | 'oldest', inventoryItemType?: InventoryItemType, options?: any): AxiosPromise { + return localVarFp.getInventory(n, offset, inventorySortOrder, inventoryItemType, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of InventoryDrop objects. + * @summary List Inventory Drops + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInventoryDrops(active?: boolean, options?: any): AxiosPromise> { + return localVarFp.getInventoryDrops(active, options).then((request) => request(axios, basePath)); + }, + /** + * Returns an InventoryTemplate object. + * @summary Get Inventory Template + * @param {string} inventoryTemplateId Must be a valid inventory template ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInventoryTemplate(inventoryTemplateId: string, options?: any): AxiosPromise { + return localVarFp.getInventoryTemplate(inventoryTemplateId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns an InventoryItem object held by the currently logged in user. + * @summary Get Own Inventory Item + * @param {string} inventoryItemId Must be a valid inventory item ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getOwnInventoryItem(inventoryItemId: string, options?: any): AxiosPromise { + return localVarFp.getOwnInventoryItem(inventoryItemId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns an InventorySpawn object. + * @summary Spawn Inventory Item + * @param {string} id Id for inventory item spawning. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + spawnInventoryItem(id: string, options?: any): AxiosPromise { + return localVarFp.spawnInventoryItem(id, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * InventoryApi - object-oriented interface + * @export + * @class InventoryApi + * @extends {BaseAPI} + */ +export class InventoryApi extends BaseAPI { + /** + * Returns an Inventory object. + * @summary Get Inventory + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {'newest' | 'oldest'} [inventorySortOrder] Sort order for inventory retrieval. + * @param {InventoryItemType} [inventoryItemType] Filter for inventory retrieval. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InventoryApi + */ + public getInventory(n?: number, offset?: number, inventorySortOrder?: 'newest' | 'oldest', inventoryItemType?: InventoryItemType, options?: AxiosRequestConfig) { + return InventoryApiFp(this.configuration).getInventory(n, offset, inventorySortOrder, inventoryItemType, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of InventoryDrop objects. + * @summary List Inventory Drops + * @param {boolean} [active] Filter for users\' listings and inventory bundles. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InventoryApi + */ + public getInventoryDrops(active?: boolean, options?: AxiosRequestConfig) { + return InventoryApiFp(this.configuration).getInventoryDrops(active, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns an InventoryTemplate object. + * @summary Get Inventory Template + * @param {string} inventoryTemplateId Must be a valid inventory template ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InventoryApi + */ + public getInventoryTemplate(inventoryTemplateId: string, options?: AxiosRequestConfig) { + return InventoryApiFp(this.configuration).getInventoryTemplate(inventoryTemplateId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns an InventoryItem object held by the currently logged in user. + * @summary Get Own Inventory Item + * @param {string} inventoryItemId Must be a valid inventory item ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InventoryApi + */ + public getOwnInventoryItem(inventoryItemId: string, options?: AxiosRequestConfig) { + return InventoryApiFp(this.configuration).getOwnInventoryItem(inventoryItemId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns an InventorySpawn object. + * @summary Spawn Inventory Item + * @param {string} id Id for inventory item spawning. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InventoryApi + */ + public spawnInventoryItem(id: string, options?: AxiosRequestConfig) { + return InventoryApiFp(this.configuration).spawnInventoryItem(id, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * InviteApi - axios parameter creator + * @export + */ +export const InviteApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Returns a single Invite Message. This returns the exact same information but less than `getInviteMessages`. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Get Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInviteMessage: async (userId: string, messageType: InviteMessageType, slot: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getInviteMessage', 'userId', userId) + // verify required parameter 'messageType' is not null or undefined + assertParamExists('getInviteMessage', 'messageType', messageType) + // verify required parameter 'slot' is not null or undefined + assertParamExists('getInviteMessage', 'slot', slot) + const localVarPath = `/message/{userId}/{messageType}/{slot}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"messageType"}}`, encodeURIComponent(String(messageType))) + .replace(`{${"slot"}}`, encodeURIComponent(String(slot))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of all the users Invite Messages. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary List Invite Messages + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInviteMessages: async (userId: string, messageType: InviteMessageType, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getInviteMessages', 'userId', userId) + // verify required parameter 'messageType' is not null or undefined + assertParamExists('getInviteMessages', 'messageType', messageType) + const localVarPath = `/message/{userId}/{messageType}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"messageType"}}`, encodeURIComponent(String(messageType))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Sends self an invite to an instance + * @summary Invite Myself To Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + inviteMyselfTo: async (worldId: string, instanceId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('inviteMyselfTo', 'worldId', worldId) + // verify required parameter 'instanceId' is not null or undefined + assertParamExists('inviteMyselfTo', 'instanceId', instanceId) + const localVarPath = `/invite/myself/to/{worldId}:{instanceId}` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))) + .replace(`{${"instanceId"}}`, encodeURIComponent(String(instanceId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Sends an invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User + * @param {string} userId Must be a valid user ID. + * @param {InviteRequest} inviteRequest Slot number of the Invite Message to use when inviting a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + inviteUser: async (userId: string, inviteRequest: InviteRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('inviteUser', 'userId', userId) + // verify required parameter 'inviteRequest' is not null or undefined + assertParamExists('inviteUser', 'inviteRequest', inviteRequest) + const localVarPath = `/invite/{userId}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(inviteRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Sends an photo invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {InviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + inviteUserWithPhoto: async (userId: string, image: File, data: InviteRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('inviteUserWithPhoto', 'userId', userId) + // verify required parameter 'image' is not null or undefined + assertParamExists('inviteUserWithPhoto', 'image', image) + // verify required parameter 'data' is not null or undefined + assertParamExists('inviteUserWithPhoto', 'data', data) + const localVarPath = `/invite/{userId}/photo` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (image !== undefined) { + localVarFormParams.append('image', image as any); + } + + if (data !== undefined) { + localVarFormParams.append('data', new Blob([JSON.stringify(data)], { type: "application/json", })); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Requests an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite + * @param {string} userId Must be a valid user ID. + * @param {RequestInviteRequest} [requestInviteRequest] Slot number of the Request Message to use when request an invite. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + requestInvite: async (userId: string, requestInviteRequest?: RequestInviteRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('requestInvite', 'userId', userId) + const localVarPath = `/requestInvite/{userId}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(requestInviteRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Requests with photo an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {RequestInviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + requestInviteWithPhoto: async (userId: string, image: File, data: RequestInviteRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('requestInviteWithPhoto', 'userId', userId) + // verify required parameter 'image' is not null or undefined + assertParamExists('requestInviteWithPhoto', 'image', image) + // verify required parameter 'data' is not null or undefined + assertParamExists('requestInviteWithPhoto', 'data', data) + const localVarPath = `/requestInvite/{userId}/photo` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (image !== undefined) { + localVarFormParams.append('image', image as any); + } + + if (data !== undefined) { + localVarFormParams.append('data', new Blob([JSON.stringify(data)], { type: "application/json", })); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Resets a single Invite Message back to its original message, and then returns a list of all of them. Admin Credentials are required to update messages of other users! Resetting a message respects the rate-limit, so it is not possible to reset within the 60 minutes countdown. Resetting it does however not set the rate-limit to 60 like when editing it. It is possible to edit it right after resetting it. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite The DELETE endpoint does not have/require any request body. + * @summary Reset Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + resetInviteMessage: async (userId: string, messageType: InviteMessageType, slot: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('resetInviteMessage', 'userId', userId) + // verify required parameter 'messageType' is not null or undefined + assertParamExists('resetInviteMessage', 'messageType', messageType) + // verify required parameter 'slot' is not null or undefined + assertParamExists('resetInviteMessage', 'slot', slot) + const localVarPath = `/message/{userId}/{messageType}/{slot}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"messageType"}}`, encodeURIComponent(String(messageType))) + .replace(`{${"slot"}}`, encodeURIComponent(String(slot))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Respond to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead. + * @summary Respond Invite + * @param {string} notificationId Must be a valid notification ID. + * @param {InviteResponse} inviteResponse Slot number of the Response Message to use when responding to a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondInvite: async (notificationId: string, inviteResponse: InviteResponse, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('respondInvite', 'notificationId', notificationId) + // verify required parameter 'inviteResponse' is not null or undefined + assertParamExists('respondInvite', 'inviteResponse', inviteResponse) + const localVarPath = `/invite/{notificationId}/response` + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(inviteResponse, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Respond with photo to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead.\' + * @summary Respond Invite with photo + * @param {string} notificationId Must be a valid notification ID. + * @param {File} image The binary blob of the png file. + * @param {InviteResponse} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondInviteWithPhoto: async (notificationId: string, image: File, data: InviteResponse, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('respondInviteWithPhoto', 'notificationId', notificationId) + // verify required parameter 'image' is not null or undefined + assertParamExists('respondInviteWithPhoto', 'image', image) + // verify required parameter 'data' is not null or undefined + assertParamExists('respondInviteWithPhoto', 'data', data) + const localVarPath = `/invite/{notificationId}/response/photo` + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (image !== undefined) { + localVarFormParams.append('image', image as any); + } + + if (data !== undefined) { + localVarFormParams.append('data', new Blob([JSON.stringify(data)], { type: "application/json", })); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates a single Invite Message and then returns a list of all of them. Admin Credentials are required to update messages of other users! Updating a message automatically sets the cooldown timer to 60 minutes. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Update Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {UpdateInviteMessageRequest} [updateInviteMessageRequest] Message of what to set the invite message to. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateInviteMessage: async (userId: string, messageType: InviteMessageType, slot: number, updateInviteMessageRequest?: UpdateInviteMessageRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('updateInviteMessage', 'userId', userId) + // verify required parameter 'messageType' is not null or undefined + assertParamExists('updateInviteMessage', 'messageType', messageType) + // verify required parameter 'slot' is not null or undefined + assertParamExists('updateInviteMessage', 'slot', slot) + const localVarPath = `/message/{userId}/{messageType}/{slot}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"messageType"}}`, encodeURIComponent(String(messageType))) + .replace(`{${"slot"}}`, encodeURIComponent(String(slot))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateInviteMessageRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * InviteApi - functional programming interface + * @export + */ +export const InviteApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = InviteApiAxiosParamCreator(configuration) + return { + /** + * Returns a single Invite Message. This returns the exact same information but less than `getInviteMessages`. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Get Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInviteMessage(userId: string, messageType: InviteMessageType, slot: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInviteMessage(userId, messageType, slot, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of all the users Invite Messages. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary List Invite Messages + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInviteMessages(userId: string, messageType: InviteMessageType, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInviteMessages(userId, messageType, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Sends self an invite to an instance + * @summary Invite Myself To Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async inviteMyselfTo(worldId: string, instanceId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.inviteMyselfTo(worldId, instanceId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Sends an invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User + * @param {string} userId Must be a valid user ID. + * @param {InviteRequest} inviteRequest Slot number of the Invite Message to use when inviting a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async inviteUser(userId: string, inviteRequest: InviteRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.inviteUser(userId, inviteRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Sends an photo invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {InviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async inviteUserWithPhoto(userId: string, image: File, data: InviteRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.inviteUserWithPhoto(userId, image, data, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Requests an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite + * @param {string} userId Must be a valid user ID. + * @param {RequestInviteRequest} [requestInviteRequest] Slot number of the Request Message to use when request an invite. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async requestInvite(userId: string, requestInviteRequest?: RequestInviteRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.requestInvite(userId, requestInviteRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Requests with photo an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {RequestInviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async requestInviteWithPhoto(userId: string, image: File, data: RequestInviteRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.requestInviteWithPhoto(userId, image, data, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Resets a single Invite Message back to its original message, and then returns a list of all of them. Admin Credentials are required to update messages of other users! Resetting a message respects the rate-limit, so it is not possible to reset within the 60 minutes countdown. Resetting it does however not set the rate-limit to 60 like when editing it. It is possible to edit it right after resetting it. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite The DELETE endpoint does not have/require any request body. + * @summary Reset Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async resetInviteMessage(userId: string, messageType: InviteMessageType, slot: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.resetInviteMessage(userId, messageType, slot, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Respond to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead. + * @summary Respond Invite + * @param {string} notificationId Must be a valid notification ID. + * @param {InviteResponse} inviteResponse Slot number of the Response Message to use when responding to a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async respondInvite(notificationId: string, inviteResponse: InviteResponse, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.respondInvite(notificationId, inviteResponse, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Respond with photo to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead.\' + * @summary Respond Invite with photo + * @param {string} notificationId Must be a valid notification ID. + * @param {File} image The binary blob of the png file. + * @param {InviteResponse} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async respondInviteWithPhoto(notificationId: string, image: File, data: InviteResponse, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.respondInviteWithPhoto(notificationId, image, data, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates a single Invite Message and then returns a list of all of them. Admin Credentials are required to update messages of other users! Updating a message automatically sets the cooldown timer to 60 minutes. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Update Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {UpdateInviteMessageRequest} [updateInviteMessageRequest] Message of what to set the invite message to. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateInviteMessage(userId: string, messageType: InviteMessageType, slot: number, updateInviteMessageRequest?: UpdateInviteMessageRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateInviteMessage(userId, messageType, slot, updateInviteMessageRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * InviteApi - factory interface + * @export + */ +export const InviteApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = InviteApiFp(configuration) + return { + /** + * Returns a single Invite Message. This returns the exact same information but less than `getInviteMessages`. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Get Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInviteMessage(userId: string, messageType: InviteMessageType, slot: number, options?: any): AxiosPromise { + return localVarFp.getInviteMessage(userId, messageType, slot, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of all the users Invite Messages. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary List Invite Messages + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInviteMessages(userId: string, messageType: InviteMessageType, options?: any): AxiosPromise> { + return localVarFp.getInviteMessages(userId, messageType, options).then((request) => request(axios, basePath)); + }, + /** + * Sends self an invite to an instance + * @summary Invite Myself To Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + inviteMyselfTo(worldId: string, instanceId: string, options?: any): AxiosPromise { + return localVarFp.inviteMyselfTo(worldId, instanceId, options).then((request) => request(axios, basePath)); + }, + /** + * Sends an invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User + * @param {string} userId Must be a valid user ID. + * @param {InviteRequest} inviteRequest Slot number of the Invite Message to use when inviting a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + inviteUser(userId: string, inviteRequest: InviteRequest, options?: any): AxiosPromise { + return localVarFp.inviteUser(userId, inviteRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Sends an photo invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {InviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + inviteUserWithPhoto(userId: string, image: File, data: InviteRequest, options?: any): AxiosPromise { + return localVarFp.inviteUserWithPhoto(userId, image, data, options).then((request) => request(axios, basePath)); + }, + /** + * Requests an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite + * @param {string} userId Must be a valid user ID. + * @param {RequestInviteRequest} [requestInviteRequest] Slot number of the Request Message to use when request an invite. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + requestInvite(userId: string, requestInviteRequest?: RequestInviteRequest, options?: any): AxiosPromise { + return localVarFp.requestInvite(userId, requestInviteRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Requests with photo an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {RequestInviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + requestInviteWithPhoto(userId: string, image: File, data: RequestInviteRequest, options?: any): AxiosPromise { + return localVarFp.requestInviteWithPhoto(userId, image, data, options).then((request) => request(axios, basePath)); + }, + /** + * Resets a single Invite Message back to its original message, and then returns a list of all of them. Admin Credentials are required to update messages of other users! Resetting a message respects the rate-limit, so it is not possible to reset within the 60 minutes countdown. Resetting it does however not set the rate-limit to 60 like when editing it. It is possible to edit it right after resetting it. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite The DELETE endpoint does not have/require any request body. + * @summary Reset Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + resetInviteMessage(userId: string, messageType: InviteMessageType, slot: number, options?: any): AxiosPromise> { + return localVarFp.resetInviteMessage(userId, messageType, slot, options).then((request) => request(axios, basePath)); + }, + /** + * Respond to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead. + * @summary Respond Invite + * @param {string} notificationId Must be a valid notification ID. + * @param {InviteResponse} inviteResponse Slot number of the Response Message to use when responding to a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondInvite(notificationId: string, inviteResponse: InviteResponse, options?: any): AxiosPromise { + return localVarFp.respondInvite(notificationId, inviteResponse, options).then((request) => request(axios, basePath)); + }, + /** + * Respond with photo to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead.\' + * @summary Respond Invite with photo + * @param {string} notificationId Must be a valid notification ID. + * @param {File} image The binary blob of the png file. + * @param {InviteResponse} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + respondInviteWithPhoto(notificationId: string, image: File, data: InviteResponse, options?: any): AxiosPromise { + return localVarFp.respondInviteWithPhoto(notificationId, image, data, options).then((request) => request(axios, basePath)); + }, + /** + * Updates a single Invite Message and then returns a list of all of them. Admin Credentials are required to update messages of other users! Updating a message automatically sets the cooldown timer to 60 minutes. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Update Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {UpdateInviteMessageRequest} [updateInviteMessageRequest] Message of what to set the invite message to. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateInviteMessage(userId: string, messageType: InviteMessageType, slot: number, updateInviteMessageRequest?: UpdateInviteMessageRequest, options?: any): AxiosPromise> { + return localVarFp.updateInviteMessage(userId, messageType, slot, updateInviteMessageRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * InviteApi - object-oriented interface + * @export + * @class InviteApi + * @extends {BaseAPI} + */ +export class InviteApi extends BaseAPI { + /** + * Returns a single Invite Message. This returns the exact same information but less than `getInviteMessages`. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Get Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public getInviteMessage(userId: string, messageType: InviteMessageType, slot: number, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).getInviteMessage(userId, messageType, slot, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of all the users Invite Messages. Admin Credentials are required to view messages of other users! Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary List Invite Messages + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public getInviteMessages(userId: string, messageType: InviteMessageType, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).getInviteMessages(userId, messageType, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Sends self an invite to an instance + * @summary Invite Myself To Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public inviteMyselfTo(worldId: string, instanceId: string, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).inviteMyselfTo(worldId, instanceId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Sends an invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User + * @param {string} userId Must be a valid user ID. + * @param {InviteRequest} inviteRequest Slot number of the Invite Message to use when inviting a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public inviteUser(userId: string, inviteRequest: InviteRequest, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).inviteUser(userId, inviteRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Sends an photo invite to a user. Returns the Notification of type `invite` that was sent. + * @summary Invite User with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {InviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public inviteUserWithPhoto(userId: string, image: File, data: InviteRequest, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).inviteUserWithPhoto(userId, image, data, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Requests an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite + * @param {string} userId Must be a valid user ID. + * @param {RequestInviteRequest} [requestInviteRequest] Slot number of the Request Message to use when request an invite. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public requestInvite(userId: string, requestInviteRequest?: RequestInviteRequest, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).requestInvite(userId, requestInviteRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Requests with photo an invite from a user. Returns the Notification of type `requestInvite` that was sent. + * @summary Request Invite with photo + * @param {string} userId Must be a valid user ID. + * @param {File} image The binary blob of the png file. + * @param {RequestInviteRequest} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public requestInviteWithPhoto(userId: string, image: File, data: RequestInviteRequest, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).requestInviteWithPhoto(userId, image, data, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Resets a single Invite Message back to its original message, and then returns a list of all of them. Admin Credentials are required to update messages of other users! Resetting a message respects the rate-limit, so it is not possible to reset within the 60 minutes countdown. Resetting it does however not set the rate-limit to 60 like when editing it. It is possible to edit it right after resetting it. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite The DELETE endpoint does not have/require any request body. + * @summary Reset Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public resetInviteMessage(userId: string, messageType: InviteMessageType, slot: number, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).resetInviteMessage(userId, messageType, slot, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Respond to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead. + * @summary Respond Invite + * @param {string} notificationId Must be a valid notification ID. + * @param {InviteResponse} inviteResponse Slot number of the Response Message to use when responding to a user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public respondInvite(notificationId: string, inviteResponse: InviteResponse, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).respondInvite(notificationId, inviteResponse, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Respond with photo to an invite or invite request without accepting it. `:notificationId` is the ID of the requesting notification. In case the notification being replied to is an invite, the `responseSlot` refers to a response message from the the `message` collection. In case the notification is an invite request, it will refer to one from the `requestResponse` collection instead.\' + * @summary Respond Invite with photo + * @param {string} notificationId Must be a valid notification ID. + * @param {File} image The binary blob of the png file. + * @param {InviteResponse} data + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public respondInviteWithPhoto(notificationId: string, image: File, data: InviteResponse, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).respondInviteWithPhoto(notificationId, image, data, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates a single Invite Message and then returns a list of all of them. Admin Credentials are required to update messages of other users! Updating a message automatically sets the cooldown timer to 60 minutes. Trying to edit a message before the cooldown timer expires results in a 429 \"Too Fast Error\". Message type refers to a different collection of messages, used during different types of responses. * `message` = Message during a normal invite * `response` = Message when replying to a message * `request` = Message when requesting an invite * `requestResponse` = Message when replying to a request for invite + * @summary Update Invite Message + * @param {string} userId Must be a valid user ID. + * @param {InviteMessageType} messageType The type of message to fetch, must be a valid InviteMessageType. + * @param {number} slot The message slot to fetch of a given message type. + * @param {UpdateInviteMessageRequest} [updateInviteMessageRequest] Message of what to set the invite message to. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof InviteApi + */ + public updateInviteMessage(userId: string, messageType: InviteMessageType, slot: number, updateInviteMessageRequest?: UpdateInviteMessageRequest, options?: AxiosRequestConfig) { + return InviteApiFp(this.configuration).updateInviteMessage(userId, messageType, slot, updateInviteMessageRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * JamsApi - axios parameter creator + * @export + */ +export const JamsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Returns a jam. + * @summary Show jam information + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJam: async (jamId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'jamId' is not null or undefined + assertParamExists('getJam', 'jamId', jamId) + const localVarPath = `/jams/{jamId}` + .replace(`{${"jamId"}}`, encodeURIComponent(String(jamId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns all submissions of a jam. + * @summary Show jam submissions + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJamSubmissions: async (jamId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'jamId' is not null or undefined + assertParamExists('getJamSubmissions', 'jamId', jamId) + const localVarPath = `/jams/{jamId}/submissions` + .replace(`{${"jamId"}}`, encodeURIComponent(String(jamId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Lists World Jams or Avatar Jams, both currently running and ones that have ended. `isActive` is used to select only active or already ended jams. `type` is used to select only world or avatar jams, and can only take `world` or `avatar`. `` + * @summary Show jams list + * @param {string} [type] Only show jams of this type (`avatar` or `world`). + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJams: async (type?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/jams`; + // 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 authCookie required + + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * JamsApi - functional programming interface + * @export + */ +export const JamsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = JamsApiAxiosParamCreator(configuration) + return { + /** + * Returns a jam. + * @summary Show jam information + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getJam(jamId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getJam(jamId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns all submissions of a jam. + * @summary Show jam submissions + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getJamSubmissions(jamId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getJamSubmissions(jamId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Lists World Jams or Avatar Jams, both currently running and ones that have ended. `isActive` is used to select only active or already ended jams. `type` is used to select only world or avatar jams, and can only take `world` or `avatar`. `` + * @summary Show jams list + * @param {string} [type] Only show jams of this type (`avatar` or `world`). + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getJams(type?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getJams(type, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * JamsApi - factory interface + * @export + */ +export const JamsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = JamsApiFp(configuration) + return { + /** + * Returns a jam. + * @summary Show jam information + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJam(jamId: string, options?: any): AxiosPromise { + return localVarFp.getJam(jamId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns all submissions of a jam. + * @summary Show jam submissions + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJamSubmissions(jamId: string, options?: any): AxiosPromise> { + return localVarFp.getJamSubmissions(jamId, options).then((request) => request(axios, basePath)); + }, + /** + * Lists World Jams or Avatar Jams, both currently running and ones that have ended. `isActive` is used to select only active or already ended jams. `type` is used to select only world or avatar jams, and can only take `world` or `avatar`. `` + * @summary Show jams list + * @param {string} [type] Only show jams of this type (`avatar` or `world`). + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJams(type?: string, options?: any): AxiosPromise> { + return localVarFp.getJams(type, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * JamsApi - object-oriented interface + * @export + * @class JamsApi + * @extends {BaseAPI} + */ +export class JamsApi extends BaseAPI { + /** + * Returns a jam. + * @summary Show jam information + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof JamsApi + */ + public getJam(jamId: string, options?: AxiosRequestConfig) { + return JamsApiFp(this.configuration).getJam(jamId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns all submissions of a jam. + * @summary Show jam submissions + * @param {string} jamId Must be a valid query ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof JamsApi + */ + public getJamSubmissions(jamId: string, options?: AxiosRequestConfig) { + return JamsApiFp(this.configuration).getJamSubmissions(jamId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Lists World Jams or Avatar Jams, both currently running and ones that have ended. `isActive` is used to select only active or already ended jams. `type` is used to select only world or avatar jams, and can only take `world` or `avatar`. `` + * @summary Show jams list + * @param {string} [type] Only show jams of this type (`avatar` or `world`). + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof JamsApi + */ + public getJams(type?: string, options?: AxiosRequestConfig) { + return JamsApiFp(this.configuration).getJams(type, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * MiscellaneousApi - axios parameter creator + * @export + */ +export const MiscellaneousApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Returns a list of all permissions currently granted by the user. Permissions are assigned e.g. by subscribing to VRC+. + * @summary Get Assigned Permissions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAssignedPermissions: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/permissions`; + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Fetches the CSS code to the frontend React website. + * @summary Download CSS + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCSS: async (variant?: 'public' | 'internal', branch?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/css/app.css`; + // 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; + + if (variant !== undefined) { + localVarQueryParameter['variant'] = variant; + } + + if (branch !== undefined) { + localVarQueryParameter['branch'] = branch; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * API config contains configuration that the clients needs to work properly. Currently the most important value here is `clientApiKey` which is used for all other API endpoints. + * @summary Fetch API Config + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConfig: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/config`; + // 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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns the current number of online users. **NOTE:** The response type is not a JSON object, but a simple JSON integer. + * @summary Current Online Users + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCurrentOnlineUsers: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/visits`; + // 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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * ~~Gets the overall health status, the server name, and the current build version tag of the API.~~ **DEPRECATED:** VRChat has suddenly restricted this endpoint for unknown reasons, and now always return 401 Unauthorized. + * @summary Check API Health + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getHealth: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/health`; + // 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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * IPS (Info Push System) is a system for VRChat to push out dynamic information to the client. This is primarily used by the Quick-Menu info banners, but can also be used to e.g. alert you to update your game to the latest version. `include` is used to query what Information Pushes should be included in the response. If include is missing or empty, then no notices will normally be returned. This is an \"any of\" search. `require` is used to limit what Information Pushes should be included in the response. This is usually used in combination with `include`, and is an \"all of\" search. + * @summary Show Information Notices + * @param {string} [require] Tags to include (comma-separated). All of the tags needs to be present. + * @param {string} [include] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInfoPush: async (require?: string, include?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/infoPush`; + // 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; + + if (require !== undefined) { + localVarQueryParameter['require'] = require; + } + + if (include !== undefined) { + localVarQueryParameter['include'] = include; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Fetches the JavaScript code to the frontend React website. + * @summary Download JavaScript + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJavaScript: async (variant?: 'public' | 'internal', branch?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/js/app.js`; + // 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; + + if (variant !== undefined) { + localVarQueryParameter['variant'] = variant; + } + + if (branch !== undefined) { + localVarQueryParameter['branch'] = branch; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a single permission. This endpoint is pretty useless, as it returns the exact same information as `/auth/permissions`. + * @summary Get Permission + * @param {string} permissionId Must be a valid permission ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPermission: async (permissionId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'permissionId' is not null or undefined + assertParamExists('getPermission', 'permissionId', permissionId) + const localVarPath = `/permissions/{permissionId}` + .replace(`{${"permissionId"}}`, encodeURIComponent(String(permissionId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns the current time of the API server. **NOTE:** The response type is not a JSON object, but a simple JSON string. + * @summary Current System Time + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSystemTime: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/time`; + // 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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * MiscellaneousApi - functional programming interface + * @export + */ +export const MiscellaneousApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = MiscellaneousApiAxiosParamCreator(configuration) + return { + /** + * Returns a list of all permissions currently granted by the user. Permissions are assigned e.g. by subscribing to VRC+. + * @summary Get Assigned Permissions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getAssignedPermissions(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getAssignedPermissions(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Fetches the CSS code to the frontend React website. + * @summary Download CSS + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCSS(variant?: 'public' | 'internal', branch?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCSS(variant, branch, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * API config contains configuration that the clients needs to work properly. Currently the most important value here is `clientApiKey` which is used for all other API endpoints. + * @summary Fetch API Config + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConfig(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConfig(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns the current number of online users. **NOTE:** The response type is not a JSON object, but a simple JSON integer. + * @summary Current Online Users + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCurrentOnlineUsers(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCurrentOnlineUsers(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * ~~Gets the overall health status, the server name, and the current build version tag of the API.~~ **DEPRECATED:** VRChat has suddenly restricted this endpoint for unknown reasons, and now always return 401 Unauthorized. + * @summary Check API Health + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + async getHealth(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHealth(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * IPS (Info Push System) is a system for VRChat to push out dynamic information to the client. This is primarily used by the Quick-Menu info banners, but can also be used to e.g. alert you to update your game to the latest version. `include` is used to query what Information Pushes should be included in the response. If include is missing or empty, then no notices will normally be returned. This is an \"any of\" search. `require` is used to limit what Information Pushes should be included in the response. This is usually used in combination with `include`, and is an \"all of\" search. + * @summary Show Information Notices + * @param {string} [require] Tags to include (comma-separated). All of the tags needs to be present. + * @param {string} [include] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getInfoPush(require?: string, include?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getInfoPush(require, include, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Fetches the JavaScript code to the frontend React website. + * @summary Download JavaScript + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getJavaScript(variant?: 'public' | 'internal', branch?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getJavaScript(variant, branch, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a single permission. This endpoint is pretty useless, as it returns the exact same information as `/auth/permissions`. + * @summary Get Permission + * @param {string} permissionId Must be a valid permission ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getPermission(permissionId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getPermission(permissionId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns the current time of the API server. **NOTE:** The response type is not a JSON object, but a simple JSON string. + * @summary Current System Time + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSystemTime(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSystemTime(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * MiscellaneousApi - factory interface + * @export + */ +export const MiscellaneousApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = MiscellaneousApiFp(configuration) + return { + /** + * Returns a list of all permissions currently granted by the user. Permissions are assigned e.g. by subscribing to VRC+. + * @summary Get Assigned Permissions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getAssignedPermissions(options?: any): AxiosPromise> { + return localVarFp.getAssignedPermissions(options).then((request) => request(axios, basePath)); + }, + /** + * Fetches the CSS code to the frontend React website. + * @summary Download CSS + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCSS(variant?: 'public' | 'internal', branch?: string, options?: any): AxiosPromise { + return localVarFp.getCSS(variant, branch, options).then((request) => request(axios, basePath)); + }, + /** + * API config contains configuration that the clients needs to work properly. Currently the most important value here is `clientApiKey` which is used for all other API endpoints. + * @summary Fetch API Config + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConfig(options?: any): AxiosPromise { + return localVarFp.getConfig(options).then((request) => request(axios, basePath)); + }, + /** + * Returns the current number of online users. **NOTE:** The response type is not a JSON object, but a simple JSON integer. + * @summary Current Online Users + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCurrentOnlineUsers(options?: any): AxiosPromise { + return localVarFp.getCurrentOnlineUsers(options).then((request) => request(axios, basePath)); + }, + /** + * ~~Gets the overall health status, the server name, and the current build version tag of the API.~~ **DEPRECATED:** VRChat has suddenly restricted this endpoint for unknown reasons, and now always return 401 Unauthorized. + * @summary Check API Health + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getHealth(options?: any): AxiosPromise { + return localVarFp.getHealth(options).then((request) => request(axios, basePath)); + }, + /** + * IPS (Info Push System) is a system for VRChat to push out dynamic information to the client. This is primarily used by the Quick-Menu info banners, but can also be used to e.g. alert you to update your game to the latest version. `include` is used to query what Information Pushes should be included in the response. If include is missing or empty, then no notices will normally be returned. This is an \"any of\" search. `require` is used to limit what Information Pushes should be included in the response. This is usually used in combination with `include`, and is an \"all of\" search. + * @summary Show Information Notices + * @param {string} [require] Tags to include (comma-separated). All of the tags needs to be present. + * @param {string} [include] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getInfoPush(require?: string, include?: string, options?: any): AxiosPromise> { + return localVarFp.getInfoPush(require, include, options).then((request) => request(axios, basePath)); + }, + /** + * Fetches the JavaScript code to the frontend React website. + * @summary Download JavaScript + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getJavaScript(variant?: 'public' | 'internal', branch?: string, options?: any): AxiosPromise { + return localVarFp.getJavaScript(variant, branch, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a single permission. This endpoint is pretty useless, as it returns the exact same information as `/auth/permissions`. + * @summary Get Permission + * @param {string} permissionId Must be a valid permission ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPermission(permissionId: string, options?: any): AxiosPromise { + return localVarFp.getPermission(permissionId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns the current time of the API server. **NOTE:** The response type is not a JSON object, but a simple JSON string. + * @summary Current System Time + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSystemTime(options?: any): AxiosPromise { + return localVarFp.getSystemTime(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * MiscellaneousApi - object-oriented interface + * @export + * @class MiscellaneousApi + * @extends {BaseAPI} + */ +export class MiscellaneousApi extends BaseAPI { + /** + * Returns a list of all permissions currently granted by the user. Permissions are assigned e.g. by subscribing to VRC+. + * @summary Get Assigned Permissions + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getAssignedPermissions(options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getAssignedPermissions(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Fetches the CSS code to the frontend React website. + * @summary Download CSS + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getCSS(variant?: 'public' | 'internal', branch?: string, options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getCSS(variant, branch, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * API config contains configuration that the clients needs to work properly. Currently the most important value here is `clientApiKey` which is used for all other API endpoints. + * @summary Fetch API Config + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getConfig(options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getConfig(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns the current number of online users. **NOTE:** The response type is not a JSON object, but a simple JSON integer. + * @summary Current Online Users + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getCurrentOnlineUsers(options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getCurrentOnlineUsers(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * ~~Gets the overall health status, the server name, and the current build version tag of the API.~~ **DEPRECATED:** VRChat has suddenly restricted this endpoint for unknown reasons, and now always return 401 Unauthorized. + * @summary Check API Health + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getHealth(options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getHealth(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * IPS (Info Push System) is a system for VRChat to push out dynamic information to the client. This is primarily used by the Quick-Menu info banners, but can also be used to e.g. alert you to update your game to the latest version. `include` is used to query what Information Pushes should be included in the response. If include is missing or empty, then no notices will normally be returned. This is an \"any of\" search. `require` is used to limit what Information Pushes should be included in the response. This is usually used in combination with `include`, and is an \"all of\" search. + * @summary Show Information Notices + * @param {string} [require] Tags to include (comma-separated). All of the tags needs to be present. + * @param {string} [include] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getInfoPush(require?: string, include?: string, options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getInfoPush(require, include, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Fetches the JavaScript code to the frontend React website. + * @summary Download JavaScript + * @param {'public' | 'internal'} [variant] Specifies which `variant` of the site. Public is the end-user site, while `internal` is the staff-only site with special pages for moderation and management. + * @param {string} [branch] Specifies which git branch the site should load frontend source code from. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getJavaScript(variant?: 'public' | 'internal', branch?: string, options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getJavaScript(variant, branch, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a single permission. This endpoint is pretty useless, as it returns the exact same information as `/auth/permissions`. + * @summary Get Permission + * @param {string} permissionId Must be a valid permission ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getPermission(permissionId: string, options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getPermission(permissionId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns the current time of the API server. **NOTE:** The response type is not a JSON object, but a simple JSON string. + * @summary Current System Time + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof MiscellaneousApi + */ + public getSystemTime(options?: AxiosRequestConfig) { + return MiscellaneousApiFp(this.configuration).getSystemTime(options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * NotificationsApi - axios parameter creator + * @export + */ +export const NotificationsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Accept a friend request by notification `frq_` ID. Friend requests can be found using the NotificationsAPI `getNotifications` by filtering of type `friendRequest`. + * @summary Accept Friend Request + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + acceptFriendRequest: async (notificationId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('acceptFriendRequest', 'notificationId', notificationId) + const localVarPath = `/auth/user/notifications/{notificationId}/accept` + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Clear **all** notifications. + * @summary Clear All Notifications + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + clearNotifications: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/notifications/clear`; + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete a notification. + * @summary Delete Notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteNotification: async (notificationId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('deleteNotification', 'notificationId', notificationId) + const localVarPath = `/auth/user/notifications/{notificationId}/hide` + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a notification by notification `not_` ID. + * @summary Show notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getNotification: async (notificationId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('getNotification', 'notificationId', notificationId) + const localVarPath = `/auth/user/notifications/{notificationId}` + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Retrieve all of the current user\'s notifications. + * @summary List Notifications + * @param {string} [type] Only send notifications of this type (can use `all` for all). This parameter no longer does anything, and is deprecated. + * @param {boolean} [sent] Return notifications sent by the user. Must be false or omitted. + * @param {boolean} [hidden] Whether to return hidden or non-hidden notifications. True only allowed on type `friendRequest`. + * @param {string} [after] Only return notifications sent after this Date. Ignored if type is `friendRequest`. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getNotifications: async (type?: string, sent?: boolean, hidden?: boolean, after?: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/notifications`; + // 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 authCookie required + + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + + if (sent !== undefined) { + localVarQueryParameter['sent'] = sent; + } + + if (hidden !== undefined) { + localVarQueryParameter['hidden'] = hidden; + } + + if (after !== undefined) { + localVarQueryParameter['after'] = after; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Mark a notification as seen. + * @summary Mark Notification As Read + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + markNotificationAsRead: async (notificationId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'notificationId' is not null or undefined + assertParamExists('markNotificationAsRead', 'notificationId', notificationId) + const localVarPath = `/auth/user/notifications/{notificationId}/see` + .replace(`{${"notificationId"}}`, encodeURIComponent(String(notificationId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * NotificationsApi - functional programming interface + * @export + */ +export const NotificationsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = NotificationsApiAxiosParamCreator(configuration) + return { + /** + * Accept a friend request by notification `frq_` ID. Friend requests can be found using the NotificationsAPI `getNotifications` by filtering of type `friendRequest`. + * @summary Accept Friend Request + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async acceptFriendRequest(notificationId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.acceptFriendRequest(notificationId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Clear **all** notifications. + * @summary Clear All Notifications + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async clearNotifications(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.clearNotifications(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Delete a notification. + * @summary Delete Notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteNotification(notificationId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteNotification(notificationId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a notification by notification `not_` ID. + * @summary Show notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getNotification(notificationId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getNotification(notificationId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Retrieve all of the current user\'s notifications. + * @summary List Notifications + * @param {string} [type] Only send notifications of this type (can use `all` for all). This parameter no longer does anything, and is deprecated. + * @param {boolean} [sent] Return notifications sent by the user. Must be false or omitted. + * @param {boolean} [hidden] Whether to return hidden or non-hidden notifications. True only allowed on type `friendRequest`. + * @param {string} [after] Only return notifications sent after this Date. Ignored if type is `friendRequest`. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getNotifications(type?: string, sent?: boolean, hidden?: boolean, after?: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getNotifications(type, sent, hidden, after, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Mark a notification as seen. + * @summary Mark Notification As Read + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async markNotificationAsRead(notificationId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.markNotificationAsRead(notificationId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * NotificationsApi - factory interface + * @export + */ +export const NotificationsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = NotificationsApiFp(configuration) + return { + /** + * Accept a friend request by notification `frq_` ID. Friend requests can be found using the NotificationsAPI `getNotifications` by filtering of type `friendRequest`. + * @summary Accept Friend Request + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + acceptFriendRequest(notificationId: string, options?: any): AxiosPromise { + return localVarFp.acceptFriendRequest(notificationId, options).then((request) => request(axios, basePath)); + }, + /** + * Clear **all** notifications. + * @summary Clear All Notifications + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + clearNotifications(options?: any): AxiosPromise { + return localVarFp.clearNotifications(options).then((request) => request(axios, basePath)); + }, + /** + * Delete a notification. + * @summary Delete Notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteNotification(notificationId: string, options?: any): AxiosPromise { + return localVarFp.deleteNotification(notificationId, options).then((request) => request(axios, basePath)); + }, + /** + * Get a notification by notification `not_` ID. + * @summary Show notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getNotification(notificationId: string, options?: any): AxiosPromise { + return localVarFp.getNotification(notificationId, options).then((request) => request(axios, basePath)); + }, + /** + * Retrieve all of the current user\'s notifications. + * @summary List Notifications + * @param {string} [type] Only send notifications of this type (can use `all` for all). This parameter no longer does anything, and is deprecated. + * @param {boolean} [sent] Return notifications sent by the user. Must be false or omitted. + * @param {boolean} [hidden] Whether to return hidden or non-hidden notifications. True only allowed on type `friendRequest`. + * @param {string} [after] Only return notifications sent after this Date. Ignored if type is `friendRequest`. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getNotifications(type?: string, sent?: boolean, hidden?: boolean, after?: string, n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.getNotifications(type, sent, hidden, after, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Mark a notification as seen. + * @summary Mark Notification As Read + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + markNotificationAsRead(notificationId: string, options?: any): AxiosPromise { + return localVarFp.markNotificationAsRead(notificationId, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * NotificationsApi - object-oriented interface + * @export + * @class NotificationsApi + * @extends {BaseAPI} + */ +export class NotificationsApi extends BaseAPI { + /** + * Accept a friend request by notification `frq_` ID. Friend requests can be found using the NotificationsAPI `getNotifications` by filtering of type `friendRequest`. + * @summary Accept Friend Request + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsApi + */ + public acceptFriendRequest(notificationId: string, options?: AxiosRequestConfig) { + return NotificationsApiFp(this.configuration).acceptFriendRequest(notificationId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Clear **all** notifications. + * @summary Clear All Notifications + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsApi + */ + public clearNotifications(options?: AxiosRequestConfig) { + return NotificationsApiFp(this.configuration).clearNotifications(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete a notification. + * @summary Delete Notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsApi + */ + public deleteNotification(notificationId: string, options?: AxiosRequestConfig) { + return NotificationsApiFp(this.configuration).deleteNotification(notificationId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a notification by notification `not_` ID. + * @summary Show notification + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsApi + */ + public getNotification(notificationId: string, options?: AxiosRequestConfig) { + return NotificationsApiFp(this.configuration).getNotification(notificationId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Retrieve all of the current user\'s notifications. + * @summary List Notifications + * @param {string} [type] Only send notifications of this type (can use `all` for all). This parameter no longer does anything, and is deprecated. + * @param {boolean} [sent] Return notifications sent by the user. Must be false or omitted. + * @param {boolean} [hidden] Whether to return hidden or non-hidden notifications. True only allowed on type `friendRequest`. + * @param {string} [after] Only return notifications sent after this Date. Ignored if type is `friendRequest`. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsApi + */ + public getNotifications(type?: string, sent?: boolean, hidden?: boolean, after?: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return NotificationsApiFp(this.configuration).getNotifications(type, sent, hidden, after, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Mark a notification as seen. + * @summary Mark Notification As Read + * @param {string} notificationId Must be a valid notification ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof NotificationsApi + */ + public markNotificationAsRead(notificationId: string, options?: AxiosRequestConfig) { + return NotificationsApiFp(this.configuration).markNotificationAsRead(notificationId, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * PlayermoderationApi - axios parameter creator + * @export + */ +export const PlayermoderationApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * ⚠️ **This will delete every single player moderation you\'ve ever made.** + * @summary Clear All Player Moderations + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + clearAllPlayerModerations: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/playermoderations`; + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of all player moderations made by **you**. This endpoint does not have pagination, and will return *all* results. Use query parameters to limit your query if needed. + * @summary Search Player Moderations + * @param {string} [type] Must be one of PlayerModerationType, except unblock. Unblocking simply removes a block. + * @param {string} [targetUserId] Must be valid UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPlayerModerations: async (type?: string, targetUserId?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth/user/playermoderations`; + // 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 authCookie required + + if (type !== undefined) { + localVarQueryParameter['type'] = type; + } + + if (targetUserId !== undefined) { + localVarQueryParameter['targetUserId'] = targetUserId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Moderate a user, e.g. unmute them or show their avatar. Please see the [Player Moderation docs](https://vrchatapi.github.io/docs/api/#tag--playermoderation) on what playerModerations are, and how they differ from staff moderations. + * @summary Moderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + moderateUser: async (moderateUserRequest: ModerateUserRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'moderateUserRequest' is not null or undefined + assertParamExists('moderateUser', 'moderateUserRequest', moderateUserRequest) + const localVarPath = `/auth/user/playermoderations`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(moderateUserRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Removes a player moderation previously added through `moderateUser`. E.g if you previously have shown their avatar, but now want to reset it to default. + * @summary Unmoderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unmoderateUser: async (moderateUserRequest: ModerateUserRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'moderateUserRequest' is not null or undefined + assertParamExists('unmoderateUser', 'moderateUserRequest', moderateUserRequest) + const localVarPath = `/auth/user/unplayermoderate`; + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(moderateUserRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * PlayermoderationApi - functional programming interface + * @export + */ +export const PlayermoderationApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = PlayermoderationApiAxiosParamCreator(configuration) + return { + /** + * ⚠️ **This will delete every single player moderation you\'ve ever made.** + * @summary Clear All Player Moderations + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async clearAllPlayerModerations(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.clearAllPlayerModerations(options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of all player moderations made by **you**. This endpoint does not have pagination, and will return *all* results. Use query parameters to limit your query if needed. + * @summary Search Player Moderations + * @param {string} [type] Must be one of PlayerModerationType, except unblock. Unblocking simply removes a block. + * @param {string} [targetUserId] Must be valid UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getPlayerModerations(type?: string, targetUserId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getPlayerModerations(type, targetUserId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Moderate a user, e.g. unmute them or show their avatar. Please see the [Player Moderation docs](https://vrchatapi.github.io/docs/api/#tag--playermoderation) on what playerModerations are, and how they differ from staff moderations. + * @summary Moderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async moderateUser(moderateUserRequest: ModerateUserRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.moderateUser(moderateUserRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Removes a player moderation previously added through `moderateUser`. E.g if you previously have shown their avatar, but now want to reset it to default. + * @summary Unmoderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async unmoderateUser(moderateUserRequest: ModerateUserRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.unmoderateUser(moderateUserRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * PlayermoderationApi - factory interface + * @export + */ +export const PlayermoderationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = PlayermoderationApiFp(configuration) + return { + /** + * ⚠️ **This will delete every single player moderation you\'ve ever made.** + * @summary Clear All Player Moderations + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + clearAllPlayerModerations(options?: any): AxiosPromise { + return localVarFp.clearAllPlayerModerations(options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of all player moderations made by **you**. This endpoint does not have pagination, and will return *all* results. Use query parameters to limit your query if needed. + * @summary Search Player Moderations + * @param {string} [type] Must be one of PlayerModerationType, except unblock. Unblocking simply removes a block. + * @param {string} [targetUserId] Must be valid UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPlayerModerations(type?: string, targetUserId?: string, options?: any): AxiosPromise> { + return localVarFp.getPlayerModerations(type, targetUserId, options).then((request) => request(axios, basePath)); + }, + /** + * Moderate a user, e.g. unmute them or show their avatar. Please see the [Player Moderation docs](https://vrchatapi.github.io/docs/api/#tag--playermoderation) on what playerModerations are, and how they differ from staff moderations. + * @summary Moderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + moderateUser(moderateUserRequest: ModerateUserRequest, options?: any): AxiosPromise { + return localVarFp.moderateUser(moderateUserRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Removes a player moderation previously added through `moderateUser`. E.g if you previously have shown their avatar, but now want to reset it to default. + * @summary Unmoderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unmoderateUser(moderateUserRequest: ModerateUserRequest, options?: any): AxiosPromise { + return localVarFp.unmoderateUser(moderateUserRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * PlayermoderationApi - object-oriented interface + * @export + * @class PlayermoderationApi + * @extends {BaseAPI} + */ +export class PlayermoderationApi extends BaseAPI { + /** + * ⚠️ **This will delete every single player moderation you\'ve ever made.** + * @summary Clear All Player Moderations + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PlayermoderationApi + */ + public clearAllPlayerModerations(options?: AxiosRequestConfig) { + return PlayermoderationApiFp(this.configuration).clearAllPlayerModerations(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of all player moderations made by **you**. This endpoint does not have pagination, and will return *all* results. Use query parameters to limit your query if needed. + * @summary Search Player Moderations + * @param {string} [type] Must be one of PlayerModerationType, except unblock. Unblocking simply removes a block. + * @param {string} [targetUserId] Must be valid UserID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PlayermoderationApi + */ + public getPlayerModerations(type?: string, targetUserId?: string, options?: AxiosRequestConfig) { + return PlayermoderationApiFp(this.configuration).getPlayerModerations(type, targetUserId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Moderate a user, e.g. unmute them or show their avatar. Please see the [Player Moderation docs](https://vrchatapi.github.io/docs/api/#tag--playermoderation) on what playerModerations are, and how they differ from staff moderations. + * @summary Moderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PlayermoderationApi + */ + public moderateUser(moderateUserRequest: ModerateUserRequest, options?: AxiosRequestConfig) { + return PlayermoderationApiFp(this.configuration).moderateUser(moderateUserRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Removes a player moderation previously added through `moderateUser`. E.g if you previously have shown their avatar, but now want to reset it to default. + * @summary Unmoderate User + * @param {ModerateUserRequest} moderateUserRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PlayermoderationApi + */ + public unmoderateUser(moderateUserRequest: ModerateUserRequest, options?: AxiosRequestConfig) { + return PlayermoderationApiFp(this.configuration).unmoderateUser(moderateUserRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * PrintsApi - axios parameter creator + * @export + */ +export const PrintsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Returns a print. + * @summary Delete Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deletePrint: async (printId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'printId' is not null or undefined + assertParamExists('deletePrint', 'printId', printId) + const localVarPath = `/prints/{printId}` + .replace(`{${"printId"}}`, encodeURIComponent(String(printId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Edits a print. + * @summary Edit Print + * @param {string} printId Print ID. + * @param {File} image The binary blob of the png file. + * @param {string} [note] The caption for the image. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + editPrint: async (printId: string, image: File, note?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'printId' is not null or undefined + assertParamExists('editPrint', 'printId', printId) + // verify required parameter 'image' is not null or undefined + assertParamExists('editPrint', 'image', image) + const localVarPath = `/prints/{printId}` + .replace(`{${"printId"}}`, encodeURIComponent(String(printId))); + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (image !== undefined) { + localVarFormParams.append('image', image as any); + } + + if (note !== undefined) { + localVarFormParams.append('note', note as any); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a print. + * @summary Get Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPrint: async (printId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'printId' is not null or undefined + assertParamExists('getPrint', 'printId', printId) + const localVarPath = `/prints/{printId}` + .replace(`{${"printId"}}`, encodeURIComponent(String(printId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of all prints of the user. User id has to be your own userId, as you can\'t request other user\'s prints. + * @summary Get Own Prints + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserPrints: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getUserPrints', 'userId', userId) + const localVarPath = `/prints/user/{userId}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Uploads and creates a print. + * @summary Upload Print + * @param {File} image The binary blob of the png file. + * @param {string} timestamp The time the image was captured. + * @param {string} [note] The caption for the image. + * @param {string} [worldId] The id of the world in which the image was captured. + * @param {string} [worldName] The name of the world in which the image was captured. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadPrint: async (image: File, timestamp: string, note?: string, worldId?: string, worldName?: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'image' is not null or undefined + assertParamExists('uploadPrint', 'image', image) + // verify required parameter 'timestamp' is not null or undefined + assertParamExists('uploadPrint', 'timestamp', timestamp) + const localVarPath = `/prints`; + // 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; + const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)(); + + // authentication authCookie required + + + if (image !== undefined) { + localVarFormParams.append('image', image as any); + } + + if (timestamp !== undefined) { + localVarFormParams.append('timestamp', timestamp as any); + } + + if (note !== undefined) { + localVarFormParams.append('note', note as any); + } + + if (worldId !== undefined) { + localVarFormParams.append('worldId', worldId as any); + } + + if (worldName !== undefined) { + localVarFormParams.append('worldName', worldName as any); + } + + + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = localVarFormParams; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * PrintsApi - functional programming interface + * @export + */ +export const PrintsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = PrintsApiAxiosParamCreator(configuration) + return { + /** + * Returns a print. + * @summary Delete Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deletePrint(printId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deletePrint(printId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Edits a print. + * @summary Edit Print + * @param {string} printId Print ID. + * @param {File} image The binary blob of the png file. + * @param {string} [note] The caption for the image. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async editPrint(printId: string, image: File, note?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.editPrint(printId, image, note, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a print. + * @summary Get Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getPrint(printId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getPrint(printId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of all prints of the user. User id has to be your own userId, as you can\'t request other user\'s prints. + * @summary Get Own Prints + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUserPrints(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserPrints(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Uploads and creates a print. + * @summary Upload Print + * @param {File} image The binary blob of the png file. + * @param {string} timestamp The time the image was captured. + * @param {string} [note] The caption for the image. + * @param {string} [worldId] The id of the world in which the image was captured. + * @param {string} [worldName] The name of the world in which the image was captured. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async uploadPrint(image: File, timestamp: string, note?: string, worldId?: string, worldName?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.uploadPrint(image, timestamp, note, worldId, worldName, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * PrintsApi - factory interface + * @export + */ +export const PrintsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = PrintsApiFp(configuration) + return { + /** + * Returns a print. + * @summary Delete Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deletePrint(printId: string, options?: any): AxiosPromise { + return localVarFp.deletePrint(printId, options).then((request) => request(axios, basePath)); + }, + /** + * Edits a print. + * @summary Edit Print + * @param {string} printId Print ID. + * @param {File} image The binary blob of the png file. + * @param {string} [note] The caption for the image. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + editPrint(printId: string, image: File, note?: string, options?: any): AxiosPromise { + return localVarFp.editPrint(printId, image, note, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a print. + * @summary Get Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getPrint(printId: string, options?: any): AxiosPromise { + return localVarFp.getPrint(printId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of all prints of the user. User id has to be your own userId, as you can\'t request other user\'s prints. + * @summary Get Own Prints + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserPrints(userId: string, options?: any): AxiosPromise> { + return localVarFp.getUserPrints(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Uploads and creates a print. + * @summary Upload Print + * @param {File} image The binary blob of the png file. + * @param {string} timestamp The time the image was captured. + * @param {string} [note] The caption for the image. + * @param {string} [worldId] The id of the world in which the image was captured. + * @param {string} [worldName] The name of the world in which the image was captured. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + uploadPrint(image: File, timestamp: string, note?: string, worldId?: string, worldName?: string, options?: any): AxiosPromise { + return localVarFp.uploadPrint(image, timestamp, note, worldId, worldName, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * PrintsApi - object-oriented interface + * @export + * @class PrintsApi + * @extends {BaseAPI} + */ +export class PrintsApi extends BaseAPI { + /** + * Returns a print. + * @summary Delete Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PrintsApi + */ + public deletePrint(printId: string, options?: AxiosRequestConfig) { + return PrintsApiFp(this.configuration).deletePrint(printId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Edits a print. + * @summary Edit Print + * @param {string} printId Print ID. + * @param {File} image The binary blob of the png file. + * @param {string} [note] The caption for the image. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PrintsApi + */ + public editPrint(printId: string, image: File, note?: string, options?: AxiosRequestConfig) { + return PrintsApiFp(this.configuration).editPrint(printId, image, note, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a print. + * @summary Get Print + * @param {string} printId Print ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PrintsApi + */ + public getPrint(printId: string, options?: AxiosRequestConfig) { + return PrintsApiFp(this.configuration).getPrint(printId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of all prints of the user. User id has to be your own userId, as you can\'t request other user\'s prints. + * @summary Get Own Prints + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PrintsApi + */ + public getUserPrints(userId: string, options?: AxiosRequestConfig) { + return PrintsApiFp(this.configuration).getUserPrints(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Uploads and creates a print. + * @summary Upload Print + * @param {File} image The binary blob of the png file. + * @param {string} timestamp The time the image was captured. + * @param {string} [note] The caption for the image. + * @param {string} [worldId] The id of the world in which the image was captured. + * @param {string} [worldName] The name of the world in which the image was captured. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PrintsApi + */ + public uploadPrint(image: File, timestamp: string, note?: string, worldId?: string, worldName?: string, options?: AxiosRequestConfig) { + return PrintsApiFp(this.configuration).uploadPrint(image, timestamp, note, worldId, worldName, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * PropsApi - axios parameter creator + * @export + */ +export const PropsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Returns a Prop object. + * @summary Get Prop + * @param {string} propId Prop ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getProp: async (propId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'propId' is not null or undefined + assertParamExists('getProp', 'propId', propId) + const localVarPath = `/props/{propId}` + .replace(`{${"propId"}}`, encodeURIComponent(String(propId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * PropsApi - functional programming interface + * @export + */ +export const PropsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = PropsApiAxiosParamCreator(configuration) + return { + /** + * Returns a Prop object. + * @summary Get Prop + * @param {string} propId Prop ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getProp(propId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getProp(propId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * PropsApi - factory interface + * @export + */ +export const PropsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = PropsApiFp(configuration) + return { + /** + * Returns a Prop object. + * @summary Get Prop + * @param {string} propId Prop ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getProp(propId: string, options?: any): AxiosPromise { + return localVarFp.getProp(propId, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * PropsApi - object-oriented interface + * @export + * @class PropsApi + * @extends {BaseAPI} + */ +export class PropsApi extends BaseAPI { + /** + * Returns a Prop object. + * @summary Get Prop + * @param {string} propId Prop ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof PropsApi + */ + public getProp(propId: string, options?: AxiosRequestConfig) { + return PropsApiFp(this.configuration).getProp(propId, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * UsersApi - axios parameter creator + * @export + */ +export const UsersApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Adds tags to the user\'s profile + * @summary Add User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addTags: async (userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('addTags', 'userId', userId) + // verify required parameter 'changeUserTagsRequest' is not null or undefined + assertParamExists('addTags', 'changeUserTagsRequest', changeUserTagsRequest) + const localVarPath = `/users/{userId}/addTags` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(changeUserTagsRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + checkUserPersistenceExists: async (userId: string, worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('checkUserPersistenceExists', 'userId', userId) + // verify required parameter 'worldId' is not null or undefined + assertParamExists('checkUserPersistenceExists', 'worldId', worldId) + const localVarPath = `/users/{userId}/{worldId}/persist/exists` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteUserPersistence: async (userId: string, worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('deleteUserPersistence', 'userId', userId) + // verify required parameter 'worldId' is not null or undefined + assertParamExists('deleteUserPersistence', 'worldId', worldId) + const localVarPath = `/users/{userId}/{worldId}/persist` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get public user information about a specific user using their ID. + * @summary Get User by ID + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUser: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getUser', 'userId', userId) + const localVarPath = `/users/{userId}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * ~~Get public user information about a specific user using their name.~~ **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). This endpoint now require Admin Credentials. + * @summary Get User by Username + * @param {string} username Username of the user + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getUserByName: async (username: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'username' is not null or undefined + assertParamExists('getUserByName', 'username', username) + const localVarPath = `/users/{username}/name` + .replace(`{${"username"}}`, encodeURIComponent(String(username))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get user\'s submitted feedback + * @summary Get User Feedback + * @param {string} userId Must be a valid user ID. + * @param {boolean} [contentId] Filter for users\' previously submitted feedback, e.g., a groupId, userId, avatarId, etc. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getUserFeedback: async (userId: string, contentId?: boolean, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getUserFeedback', 'userId', userId) + const localVarPath = `/users/{userId}/feedback` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + if (contentId !== undefined) { + localVarQueryParameter['contentId'] = contentId; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of group instances for a user + * @summary Get User Group Instances + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserGroupInstances: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getUserGroupInstances', 'userId', userId) + const localVarPath = `/users/{userId}/instances/groups` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a list of Groups the user has requested to be invited into. + * @summary Get User Group Requests + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserGroupRequests: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getUserGroupRequests', 'userId', userId) + const localVarPath = `/users/{userId}/groups/requested` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get user\'s public groups + * @summary Get User Groups + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserGroups: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getUserGroups', 'userId', userId) + const localVarPath = `/users/{userId}/groups` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get a particular user note + * @summary Get User Note + * @param {string} userNoteId Must be a valid user note ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserNote: async (userNoteId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userNoteId' is not null or undefined + assertParamExists('getUserNote', 'userNoteId', userNoteId) + const localVarPath = `/userNotes/{userNoteId}` + .replace(`{${"userNoteId"}}`, encodeURIComponent(String(userNoteId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get recently updated user notes + * @summary Get User Notes + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserNotes: async (n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/userNotes`; + // 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 authCookie required + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns the current group that the user is currently representing + * @summary Get user\'s current represented group + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserRepresentedGroup: async (userId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('getUserRepresentedGroup', 'userId', userId) + const localVarPath = `/users/{userId}/groups/represented` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Removes tags from the user\'s profile + * @summary Remove User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + removeTags: async (userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('removeTags', 'userId', userId) + // verify required parameter 'changeUserTagsRequest' is not null or undefined + assertParamExists('removeTags', 'changeUserTagsRequest', changeUserTagsRequest) + const localVarPath = `/users/{userId}/removeTags` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(changeUserTagsRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search and list any users by text query + * @summary Search All Users + * @param {string} [search] Searches by `displayName`. Will return empty array if search query is empty or missing. + * @param {string} [developerType] Active user by developer type, none for normal users and internal for moderators + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchUsers: async (search?: string, developerType?: string, n?: number, offset?: number, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/users`; + // 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 authCookie required + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + if (developerType !== undefined) { + localVarQueryParameter['developerType'] = developerType; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates a user\'s badge + * @summary Update User Badge + * @param {string} userId Must be a valid user ID. + * @param {string} badgeId Must be a valid badge ID. + * @param {UpdateUserBadgeRequest} updateUserBadgeRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateBadge: async (userId: string, badgeId: string, updateUserBadgeRequest: UpdateUserBadgeRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('updateBadge', 'userId', userId) + // verify required parameter 'badgeId' is not null or undefined + assertParamExists('updateBadge', 'badgeId', badgeId) + // verify required parameter 'updateUserBadgeRequest' is not null or undefined + assertParamExists('updateBadge', 'updateUserBadgeRequest', updateUserBadgeRequest) + const localVarPath = `/users/{userId}/badges/{badgeId}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"badgeId"}}`, encodeURIComponent(String(badgeId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateUserBadgeRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update a users information such as the email and birthday. + * @summary Update User Info + * @param {string} userId Must be a valid user ID. + * @param {UpdateUserRequest} [updateUserRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateUser: async (userId: string, updateUserRequest?: UpdateUserRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('updateUser', 'userId', userId) + const localVarPath = `/users/{userId}` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateUserRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Updates the currently authenticated user\'s note on a user + * @summary Update User Note + * @param {UpdateUserNoteRequest} updateUserNoteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateUserNote: async (updateUserNoteRequest: UpdateUserNoteRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'updateUserNoteRequest' is not null or undefined + assertParamExists('updateUserNote', 'updateUserNoteRequest', updateUserNoteRequest) + const localVarPath = `/userNotes`; + // 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 authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateUserNoteRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * UsersApi - functional programming interface + * @export + */ +export const UsersApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = UsersApiAxiosParamCreator(configuration) + return { + /** + * Adds tags to the user\'s profile + * @summary Add User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async addTags(userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.addTags(userId, changeUserTagsRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async checkUserPersistenceExists(userId: string, worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.checkUserPersistenceExists(userId, worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteUserPersistence(userId: string, worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUserPersistence(userId, worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get public user information about a specific user using their ID. + * @summary Get User by ID + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUser(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUser(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * ~~Get public user information about a specific user using their name.~~ **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). This endpoint now require Admin Credentials. + * @summary Get User by Username + * @param {string} username Username of the user + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + async getUserByName(username: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserByName(username, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get user\'s submitted feedback + * @summary Get User Feedback + * @param {string} userId Must be a valid user ID. + * @param {boolean} [contentId] Filter for users\' previously submitted feedback, e.g., a groupId, userId, avatarId, etc. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + async getUserFeedback(userId: string, contentId?: boolean, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserFeedback(userId, contentId, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of group instances for a user + * @summary Get User Group Instances + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUserGroupInstances(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserGroupInstances(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a list of Groups the user has requested to be invited into. + * @summary Get User Group Requests + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUserGroupRequests(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserGroupRequests(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get user\'s public groups + * @summary Get User Groups + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUserGroups(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserGroups(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get a particular user note + * @summary Get User Note + * @param {string} userNoteId Must be a valid user note ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUserNote(userNoteId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserNote(userNoteId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get recently updated user notes + * @summary Get User Notes + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUserNotes(n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserNotes(n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns the current group that the user is currently representing + * @summary Get user\'s current represented group + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getUserRepresentedGroup(userId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getUserRepresentedGroup(userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Removes tags from the user\'s profile + * @summary Remove User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async removeTags(userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.removeTags(userId, changeUserTagsRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search and list any users by text query + * @summary Search All Users + * @param {string} [search] Searches by `displayName`. Will return empty array if search query is empty or missing. + * @param {string} [developerType] Active user by developer type, none for normal users and internal for moderators + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async searchUsers(search?: string, developerType?: string, n?: number, offset?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.searchUsers(search, developerType, n, offset, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates a user\'s badge + * @summary Update User Badge + * @param {string} userId Must be a valid user ID. + * @param {string} badgeId Must be a valid badge ID. + * @param {UpdateUserBadgeRequest} updateUserBadgeRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateBadge(userId: string, badgeId: string, updateUserBadgeRequest: UpdateUserBadgeRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateBadge(userId, badgeId, updateUserBadgeRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Update a users information such as the email and birthday. + * @summary Update User Info + * @param {string} userId Must be a valid user ID. + * @param {UpdateUserRequest} [updateUserRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateUser(userId: string, updateUserRequest?: UpdateUserRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateUser(userId, updateUserRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Updates the currently authenticated user\'s note on a user + * @summary Update User Note + * @param {UpdateUserNoteRequest} updateUserNoteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateUserNote(updateUserNoteRequest: UpdateUserNoteRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateUserNote(updateUserNoteRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * UsersApi - factory interface + * @export + */ +export const UsersApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = UsersApiFp(configuration) + return { + /** + * Adds tags to the user\'s profile + * @summary Add User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + addTags(userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options?: any): AxiosPromise { + return localVarFp.addTags(userId, changeUserTagsRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + checkUserPersistenceExists(userId: string, worldId: string, options?: any): AxiosPromise { + return localVarFp.checkUserPersistenceExists(userId, worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteUserPersistence(userId: string, worldId: string, options?: any): AxiosPromise { + return localVarFp.deleteUserPersistence(userId, worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Get public user information about a specific user using their ID. + * @summary Get User by ID + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUser(userId: string, options?: any): AxiosPromise { + return localVarFp.getUser(userId, options).then((request) => request(axios, basePath)); + }, + /** + * ~~Get public user information about a specific user using their name.~~ **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). This endpoint now require Admin Credentials. + * @summary Get User by Username + * @param {string} username Username of the user + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getUserByName(username: string, options?: any): AxiosPromise { + return localVarFp.getUserByName(username, options).then((request) => request(axios, basePath)); + }, + /** + * Get user\'s submitted feedback + * @summary Get User Feedback + * @param {string} userId Must be a valid user ID. + * @param {boolean} [contentId] Filter for users\' previously submitted feedback, e.g., a groupId, userId, avatarId, etc. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getUserFeedback(userId: string, contentId?: boolean, n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.getUserFeedback(userId, contentId, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of group instances for a user + * @summary Get User Group Instances + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserGroupInstances(userId: string, options?: any): AxiosPromise { + return localVarFp.getUserGroupInstances(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a list of Groups the user has requested to be invited into. + * @summary Get User Group Requests + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserGroupRequests(userId: string, options?: any): AxiosPromise> { + return localVarFp.getUserGroupRequests(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Get user\'s public groups + * @summary Get User Groups + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserGroups(userId: string, options?: any): AxiosPromise> { + return localVarFp.getUserGroups(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Get a particular user note + * @summary Get User Note + * @param {string} userNoteId Must be a valid user note ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserNote(userNoteId: string, options?: any): AxiosPromise { + return localVarFp.getUserNote(userNoteId, options).then((request) => request(axios, basePath)); + }, + /** + * Get recently updated user notes + * @summary Get User Notes + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserNotes(n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.getUserNotes(n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Returns the current group that the user is currently representing + * @summary Get user\'s current represented group + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getUserRepresentedGroup(userId: string, options?: any): AxiosPromise { + return localVarFp.getUserRepresentedGroup(userId, options).then((request) => request(axios, basePath)); + }, + /** + * Removes tags from the user\'s profile + * @summary Remove User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + removeTags(userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options?: any): AxiosPromise { + return localVarFp.removeTags(userId, changeUserTagsRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Search and list any users by text query + * @summary Search All Users + * @param {string} [search] Searches by `displayName`. Will return empty array if search query is empty or missing. + * @param {string} [developerType] Active user by developer type, none for normal users and internal for moderators + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchUsers(search?: string, developerType?: string, n?: number, offset?: number, options?: any): AxiosPromise> { + return localVarFp.searchUsers(search, developerType, n, offset, options).then((request) => request(axios, basePath)); + }, + /** + * Updates a user\'s badge + * @summary Update User Badge + * @param {string} userId Must be a valid user ID. + * @param {string} badgeId Must be a valid badge ID. + * @param {UpdateUserBadgeRequest} updateUserBadgeRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateBadge(userId: string, badgeId: string, updateUserBadgeRequest: UpdateUserBadgeRequest, options?: any): AxiosPromise { + return localVarFp.updateBadge(userId, badgeId, updateUserBadgeRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Update a users information such as the email and birthday. + * @summary Update User Info + * @param {string} userId Must be a valid user ID. + * @param {UpdateUserRequest} [updateUserRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateUser(userId: string, updateUserRequest?: UpdateUserRequest, options?: any): AxiosPromise { + return localVarFp.updateUser(userId, updateUserRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Updates the currently authenticated user\'s note on a user + * @summary Update User Note + * @param {UpdateUserNoteRequest} updateUserNoteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateUserNote(updateUserNoteRequest: UpdateUserNoteRequest, options?: any): AxiosPromise { + return localVarFp.updateUserNote(updateUserNoteRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * UsersApi - object-oriented interface + * @export + * @class UsersApi + * @extends {BaseAPI} + */ +export class UsersApi extends BaseAPI { + /** + * Adds tags to the user\'s profile + * @summary Add User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public addTags(userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).addTags(userId, changeUserTagsRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public checkUserPersistenceExists(userId: string, worldId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).checkUserPersistenceExists(userId, worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public deleteUserPersistence(userId: string, worldId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).deleteUserPersistence(userId, worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get public user information about a specific user using their ID. + * @summary Get User by ID + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUser(userId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUser(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * ~~Get public user information about a specific user using their name.~~ **DEPRECATED:** VRChat API no longer return usernames of other users. [See issue by Tupper for more information](https://github.com/pypy-vrc/VRCX/issues/429). This endpoint now require Admin Credentials. + * @summary Get User by Username + * @param {string} username Username of the user + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserByName(username: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserByName(username, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get user\'s submitted feedback + * @summary Get User Feedback + * @param {string} userId Must be a valid user ID. + * @param {boolean} [contentId] Filter for users\' previously submitted feedback, e.g., a groupId, userId, avatarId, etc. + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserFeedback(userId: string, contentId?: boolean, n?: number, offset?: number, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserFeedback(userId, contentId, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of group instances for a user + * @summary Get User Group Instances + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserGroupInstances(userId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserGroupInstances(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a list of Groups the user has requested to be invited into. + * @summary Get User Group Requests + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserGroupRequests(userId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserGroupRequests(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get user\'s public groups + * @summary Get User Groups + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserGroups(userId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserGroups(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get a particular user note + * @summary Get User Note + * @param {string} userNoteId Must be a valid user note ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserNote(userNoteId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserNote(userNoteId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get recently updated user notes + * @summary Get User Notes + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserNotes(n?: number, offset?: number, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserNotes(n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns the current group that the user is currently representing + * @summary Get user\'s current represented group + * @param {string} userId Must be a valid user ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public getUserRepresentedGroup(userId: string, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).getUserRepresentedGroup(userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Removes tags from the user\'s profile + * @summary Remove User Tags + * @param {string} userId Must be a valid user ID. + * @param {ChangeUserTagsRequest} changeUserTagsRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public removeTags(userId: string, changeUserTagsRequest: ChangeUserTagsRequest, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).removeTags(userId, changeUserTagsRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search and list any users by text query + * @summary Search All Users + * @param {string} [search] Searches by `displayName`. Will return empty array if search query is empty or missing. + * @param {string} [developerType] Active user by developer type, none for normal users and internal for moderators + * @param {number} [n] The number of objects to return. + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public searchUsers(search?: string, developerType?: string, n?: number, offset?: number, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).searchUsers(search, developerType, n, offset, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates a user\'s badge + * @summary Update User Badge + * @param {string} userId Must be a valid user ID. + * @param {string} badgeId Must be a valid badge ID. + * @param {UpdateUserBadgeRequest} updateUserBadgeRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public updateBadge(userId: string, badgeId: string, updateUserBadgeRequest: UpdateUserBadgeRequest, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).updateBadge(userId, badgeId, updateUserBadgeRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Update a users information such as the email and birthday. + * @summary Update User Info + * @param {string} userId Must be a valid user ID. + * @param {UpdateUserRequest} [updateUserRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public updateUser(userId: string, updateUserRequest?: UpdateUserRequest, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).updateUser(userId, updateUserRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Updates the currently authenticated user\'s note on a user + * @summary Update User Note + * @param {UpdateUserNoteRequest} updateUserNoteRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof UsersApi + */ + public updateUserNote(updateUserNoteRequest: UpdateUserNoteRequest, options?: AxiosRequestConfig) { + return UsersApiFp(this.configuration).updateUserNote(updateUserNoteRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + +/** + * WorldsApi - axios parameter creator + * @export + */ +export const WorldsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + checkUserPersistenceExists: async (userId: string, worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('checkUserPersistenceExists', 'userId', userId) + // verify required parameter 'worldId' is not null or undefined + assertParamExists('checkUserPersistenceExists', 'worldId', worldId) + const localVarPath = `/users/{userId}/{worldId}/persist/exists` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Create a new world. This endpoint requires `assetUrl` to be a valid File object with `.vrcw` file extension, and `imageUrl` to be a valid File object with an image file extension. + * @summary Create World + * @param {CreateWorldRequest} [createWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createWorld: async (createWorldRequest?: CreateWorldRequest, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/worlds`; + // 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; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(createWorldRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteUserPersistence: async (userId: string, worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'userId' is not null or undefined + assertParamExists('deleteUserPersistence', 'userId', userId) + // verify required parameter 'worldId' is not null or undefined + assertParamExists('deleteUserPersistence', 'worldId', worldId) + const localVarPath = `/users/{userId}/{worldId}/persist` + .replace(`{${"userId"}}`, encodeURIComponent(String(userId))) + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Delete a world. Notice a world is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The WorldID is permanently reserved. + * @summary Delete World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteWorld: async (worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('deleteWorld', 'worldId', worldId) + const localVarPath = `/worlds/{worldId}` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search and list currently Active worlds by query filters. + * @summary List Active Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getActiveWorlds: async (featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/worlds/active`; + // 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 authCookie required + + if (featured !== undefined) { + localVarQueryParameter['featured'] = featured; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (order !== undefined) { + localVarQueryParameter['order'] = order; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (notag !== undefined) { + localVarQueryParameter['notag'] = notag; + } + + if (releaseStatus !== undefined) { + localVarQueryParameter['releaseStatus'] = releaseStatus; + } + + if (maxUnityVersion !== undefined) { + localVarQueryParameter['maxUnityVersion'] = maxUnityVersion; + } + + if (minUnityVersion !== undefined) { + localVarQueryParameter['minUnityVersion'] = minUnityVersion; + } + + if (platform !== undefined) { + localVarQueryParameter['platform'] = platform; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search and list favorited worlds by query filters. + * @summary List Favorited Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoritedWorlds: async (featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/worlds/favorites`; + // 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 authCookie required + + if (featured !== undefined) { + localVarQueryParameter['featured'] = featured; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (order !== undefined) { + localVarQueryParameter['order'] = order; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (notag !== undefined) { + localVarQueryParameter['notag'] = notag; + } + + if (releaseStatus !== undefined) { + localVarQueryParameter['releaseStatus'] = releaseStatus; + } + + if (maxUnityVersion !== undefined) { + localVarQueryParameter['maxUnityVersion'] = maxUnityVersion; + } + + if (minUnityVersion !== undefined) { + localVarQueryParameter['minUnityVersion'] = minUnityVersion; + } + + if (platform !== undefined) { + localVarQueryParameter['platform'] = platform; + } + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search and list recently visited worlds by query filters. + * @summary List Recent Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getRecentWorlds: async (featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/worlds/recent`; + // 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 authCookie required + + if (featured !== undefined) { + localVarQueryParameter['featured'] = featured; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (order !== undefined) { + localVarQueryParameter['order'] = order; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (notag !== undefined) { + localVarQueryParameter['notag'] = notag; + } + + if (releaseStatus !== undefined) { + localVarQueryParameter['releaseStatus'] = releaseStatus; + } + + if (maxUnityVersion !== undefined) { + localVarQueryParameter['maxUnityVersion'] = maxUnityVersion; + } + + if (minUnityVersion !== undefined) { + localVarQueryParameter['minUnityVersion'] = minUnityVersion; + } + + if (platform !== undefined) { + localVarQueryParameter['platform'] = platform; + } + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Get information about a specific World. Works unauthenticated but when so will always return `0` for certain fields. + * @summary Get World by ID + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getWorld: async (worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('getWorld', 'worldId', worldId) + const localVarPath = `/worlds/{worldId}` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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; + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a worlds instance. + * @summary Get World Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getWorldInstance: async (worldId: string, instanceId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('getWorldInstance', 'worldId', worldId) + // verify required parameter 'instanceId' is not null or undefined + assertParamExists('getWorldInstance', 'instanceId', instanceId) + const localVarPath = `/worlds/{worldId}/{instanceId}` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))) + .replace(`{${"instanceId"}}`, encodeURIComponent(String(instanceId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Return a worlds custom metadata. This is currently believed to be unused. Metadata can be set with `updateWorld` and can be any arbitrary object. + * @summary Get World Metadata + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getWorldMetadata: async (worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('getWorldMetadata', 'worldId', worldId) + const localVarPath = `/worlds/{worldId}/metadata` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Returns a worlds publish status. + * @summary Get World Publish Status + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getWorldPublishStatus: async (worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('getWorldPublishStatus', 'worldId', worldId) + const localVarPath = `/worlds/{worldId}/publish` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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 authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Publish a world. You can only publish one world per week. + * @summary Publish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + publishWorld: async (worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('publishWorld', 'worldId', worldId) + const localVarPath = `/worlds/{worldId}/publish` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Search and list any worlds by query filters. + * @summary Search All Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own worlds. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {boolean} [fuzzy] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchWorlds: async (featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, fuzzy?: boolean, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/worlds`; + // 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 authCookie required + + if (featured !== undefined) { + localVarQueryParameter['featured'] = featured; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (user !== undefined) { + localVarQueryParameter['user'] = user; + } + + if (userId !== undefined) { + localVarQueryParameter['userId'] = userId; + } + + if (n !== undefined) { + localVarQueryParameter['n'] = n; + } + + if (order !== undefined) { + localVarQueryParameter['order'] = order; + } + + if (offset !== undefined) { + localVarQueryParameter['offset'] = offset; + } + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (notag !== undefined) { + localVarQueryParameter['notag'] = notag; + } + + if (releaseStatus !== undefined) { + localVarQueryParameter['releaseStatus'] = releaseStatus; + } + + if (maxUnityVersion !== undefined) { + localVarQueryParameter['maxUnityVersion'] = maxUnityVersion; + } + + if (minUnityVersion !== undefined) { + localVarQueryParameter['minUnityVersion'] = minUnityVersion; + } + + if (platform !== undefined) { + localVarQueryParameter['platform'] = platform; + } + + if (fuzzy !== undefined) { + localVarQueryParameter['fuzzy'] = fuzzy; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Unpublish a world. + * @summary Unpublish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unpublishWorld: async (worldId: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('unpublishWorld', 'worldId', worldId) + const localVarPath = `/worlds/{worldId}/publish` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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: 'DELETE', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update information about a specific World. + * @summary Update World + * @param {string} worldId Must be a valid world ID. + * @param {UpdateWorldRequest} [updateWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateWorld: async (worldId: string, updateWorldRequest?: UpdateWorldRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'worldId' is not null or undefined + assertParamExists('updateWorld', 'worldId', worldId) + const localVarPath = `/worlds/{worldId}` + .replace(`{${"worldId"}}`, encodeURIComponent(String(worldId))); + // 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: 'PUT', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication authCookie required + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(updateWorldRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * WorldsApi - functional programming interface + * @export + */ +export const WorldsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = WorldsApiAxiosParamCreator(configuration) + return { + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async checkUserPersistenceExists(userId: string, worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.checkUserPersistenceExists(userId, worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Create a new world. This endpoint requires `assetUrl` to be a valid File object with `.vrcw` file extension, and `imageUrl` to be a valid File object with an image file extension. + * @summary Create World + * @param {CreateWorldRequest} [createWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createWorld(createWorldRequest?: CreateWorldRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.createWorld(createWorldRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteUserPersistence(userId: string, worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUserPersistence(userId, worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Delete a world. Notice a world is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The WorldID is permanently reserved. + * @summary Delete World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteWorld(worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteWorld(worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search and list currently Active worlds by query filters. + * @summary List Active Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getActiveWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getActiveWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search and list favorited worlds by query filters. + * @summary List Favorited Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getFavoritedWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getFavoritedWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search and list recently visited worlds by query filters. + * @summary List Recent Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getRecentWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getRecentWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Get information about a specific World. Works unauthenticated but when so will always return `0` for certain fields. + * @summary Get World by ID + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getWorld(worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getWorld(worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a worlds instance. + * @summary Get World Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getWorldInstance(worldId: string, instanceId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getWorldInstance(worldId, instanceId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Return a worlds custom metadata. This is currently believed to be unused. Metadata can be set with `updateWorld` and can be any arbitrary object. + * @summary Get World Metadata + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + async getWorldMetadata(worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getWorldMetadata(worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Returns a worlds publish status. + * @summary Get World Publish Status + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getWorldPublishStatus(worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getWorldPublishStatus(worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Publish a world. You can only publish one world per week. + * @summary Publish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async publishWorld(worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.publishWorld(worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Search and list any worlds by query filters. + * @summary Search All Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own worlds. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {boolean} [fuzzy] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async searchWorlds(featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, fuzzy?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.searchWorlds(featured, sort, user, userId, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, fuzzy, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Unpublish a world. + * @summary Unpublish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async unpublishWorld(worldId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.unpublishWorld(worldId, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Update information about a specific World. + * @summary Update World + * @param {string} worldId Must be a valid world ID. + * @param {UpdateWorldRequest} [updateWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateWorld(worldId: string, updateWorldRequest?: UpdateWorldRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateWorld(worldId, updateWorldRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * WorldsApi - factory interface + * @export + */ +export const WorldsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = WorldsApiFp(configuration) + return { + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + checkUserPersistenceExists(userId: string, worldId: string, options?: any): AxiosPromise { + return localVarFp.checkUserPersistenceExists(userId, worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Create a new world. This endpoint requires `assetUrl` to be a valid File object with `.vrcw` file extension, and `imageUrl` to be a valid File object with an image file extension. + * @summary Create World + * @param {CreateWorldRequest} [createWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createWorld(createWorldRequest?: CreateWorldRequest, options?: any): AxiosPromise { + return localVarFp.createWorld(createWorldRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteUserPersistence(userId: string, worldId: string, options?: any): AxiosPromise { + return localVarFp.deleteUserPersistence(userId, worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Delete a world. Notice a world is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The WorldID is permanently reserved. + * @summary Delete World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteWorld(worldId: string, options?: any): AxiosPromise { + return localVarFp.deleteWorld(worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Search and list currently Active worlds by query filters. + * @summary List Active Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getActiveWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options?: any): AxiosPromise> { + return localVarFp.getActiveWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, options).then((request) => request(axios, basePath)); + }, + /** + * Search and list favorited worlds by query filters. + * @summary List Favorited Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getFavoritedWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: any): AxiosPromise> { + return localVarFp.getFavoritedWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Search and list recently visited worlds by query filters. + * @summary List Recent Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getRecentWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: any): AxiosPromise> { + return localVarFp.getRecentWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options).then((request) => request(axios, basePath)); + }, + /** + * Get information about a specific World. Works unauthenticated but when so will always return `0` for certain fields. + * @summary Get World by ID + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getWorld(worldId: string, options?: any): AxiosPromise { + return localVarFp.getWorld(worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a worlds instance. + * @summary Get World Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getWorldInstance(worldId: string, instanceId: string, options?: any): AxiosPromise { + return localVarFp.getWorldInstance(worldId, instanceId, options).then((request) => request(axios, basePath)); + }, + /** + * Return a worlds custom metadata. This is currently believed to be unused. Metadata can be set with `updateWorld` and can be any arbitrary object. + * @summary Get World Metadata + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + */ + getWorldMetadata(worldId: string, options?: any): AxiosPromise { + return localVarFp.getWorldMetadata(worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Returns a worlds publish status. + * @summary Get World Publish Status + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getWorldPublishStatus(worldId: string, options?: any): AxiosPromise { + return localVarFp.getWorldPublishStatus(worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Publish a world. You can only publish one world per week. + * @summary Publish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + publishWorld(worldId: string, options?: any): AxiosPromise { + return localVarFp.publishWorld(worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Search and list any worlds by query filters. + * @summary Search All Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own worlds. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {boolean} [fuzzy] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + searchWorlds(featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, fuzzy?: boolean, options?: any): AxiosPromise> { + return localVarFp.searchWorlds(featured, sort, user, userId, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, fuzzy, options).then((request) => request(axios, basePath)); + }, + /** + * Unpublish a world. + * @summary Unpublish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + unpublishWorld(worldId: string, options?: any): AxiosPromise { + return localVarFp.unpublishWorld(worldId, options).then((request) => request(axios, basePath)); + }, + /** + * Update information about a specific World. + * @summary Update World + * @param {string} worldId Must be a valid world ID. + * @param {UpdateWorldRequest} [updateWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateWorld(worldId: string, updateWorldRequest?: UpdateWorldRequest, options?: any): AxiosPromise { + return localVarFp.updateWorld(worldId, updateWorldRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * WorldsApi - object-oriented interface + * @export + * @class WorldsApi + * @extends {BaseAPI} + */ +export class WorldsApi extends BaseAPI { + /** + * Checks whether the user has persistence data for a given world + * @summary Check User Persistence Exists + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public checkUserPersistenceExists(userId: string, worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).checkUserPersistenceExists(userId, worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Create a new world. This endpoint requires `assetUrl` to be a valid File object with `.vrcw` file extension, and `imageUrl` to be a valid File object with an image file extension. + * @summary Create World + * @param {CreateWorldRequest} [createWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public createWorld(createWorldRequest?: CreateWorldRequest, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).createWorld(createWorldRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Deletes the user\'s persistence data for a given world + * @summary Delete User Persistence + * @param {string} userId Must be a valid user ID. + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public deleteUserPersistence(userId: string, worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).deleteUserPersistence(userId, worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Delete a world. Notice a world is never fully \"deleted\", only its ReleaseStatus is set to \"hidden\" and the linked Files are deleted. The WorldID is permanently reserved. + * @summary Delete World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public deleteWorld(worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).deleteWorld(worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search and list currently Active worlds by query filters. + * @summary List Active Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public getActiveWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).getActiveWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search and list favorited worlds by query filters. + * @summary List Favorited Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public getFavoritedWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).getFavoritedWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search and list recently visited worlds by query filters. + * @summary List Recent Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {string} [userId] Target user to see information on, admin-only. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public getRecentWorlds(featured?: boolean, sort?: SortOption, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, userId?: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).getRecentWorlds(featured, sort, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, userId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Get information about a specific World. Works unauthenticated but when so will always return `0` for certain fields. + * @summary Get World by ID + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public getWorld(worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).getWorld(worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a worlds instance. + * @summary Get World Instance + * @param {string} worldId Must be a valid world ID. + * @param {string} instanceId Must be a valid instance ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public getWorldInstance(worldId: string, instanceId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).getWorldInstance(worldId, instanceId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Return a worlds custom metadata. This is currently believed to be unused. Metadata can be set with `updateWorld` and can be any arbitrary object. + * @summary Get World Metadata + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @deprecated + * @throws {RequiredError} + * @memberof WorldsApi + */ + public getWorldMetadata(worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).getWorldMetadata(worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Returns a worlds publish status. + * @summary Get World Publish Status + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public getWorldPublishStatus(worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).getWorldPublishStatus(worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Publish a world. You can only publish one world per week. + * @summary Publish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public publishWorld(worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).publishWorld(worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Search and list any worlds by query filters. + * @summary Search All Worlds + * @param {boolean} [featured] Filters on featured results. + * @param {SortOption} [sort] The sort order of the results. + * @param {'me'} [user] Set to `me` for searching own worlds. + * @param {string} [userId] Filter by UserID. + * @param {number} [n] The number of objects to return. + * @param {OrderOption} [order] Result ordering + * @param {number} [offset] A zero-based offset from the default object sorting from where search results start. + * @param {string} [search] Filters by world name. + * @param {string} [tag] Tags to include (comma-separated). Any of the tags needs to be present. + * @param {string} [notag] Tags to exclude (comma-separated). + * @param {ReleaseStatus} [releaseStatus] Filter by ReleaseStatus. + * @param {string} [maxUnityVersion] The maximum Unity version supported by the asset. + * @param {string} [minUnityVersion] The minimum Unity version supported by the asset. + * @param {string} [platform] The platform the asset supports. + * @param {boolean} [fuzzy] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public searchWorlds(featured?: boolean, sort?: SortOption, user?: 'me', userId?: string, n?: number, order?: OrderOption, offset?: number, search?: string, tag?: string, notag?: string, releaseStatus?: ReleaseStatus, maxUnityVersion?: string, minUnityVersion?: string, platform?: string, fuzzy?: boolean, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).searchWorlds(featured, sort, user, userId, n, order, offset, search, tag, notag, releaseStatus, maxUnityVersion, minUnityVersion, platform, fuzzy, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Unpublish a world. + * @summary Unpublish World + * @param {string} worldId Must be a valid world ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public unpublishWorld(worldId: string, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).unpublishWorld(worldId, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Update information about a specific World. + * @summary Update World + * @param {string} worldId Must be a valid world ID. + * @param {UpdateWorldRequest} [updateWorldRequest] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WorldsApi + */ + public updateWorld(worldId: string, updateWorldRequest?: UpdateWorldRequest, options?: AxiosRequestConfig) { + return WorldsApiFp(this.configuration).updateWorld(worldId, updateWorldRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + diff --git a/base.ts b/base.ts new file mode 100644 index 0000000..42acb8e --- /dev/null +++ b/base.ts @@ -0,0 +1,70 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VRChat API Documentation + * + * The version of the OpenAPI document: 1.20.2 + * Contact: vrchatapi.lpv0t@aries.fyi + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import { Configuration } from "./configuration"; +// Some imports not used depending on template conditions +// @ts-ignore +import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; + +export const BASE_PATH = "https://api.vrchat.cloud/api/1".replace(/\/+$/, ""); + +/** + * + * @export + */ +export const COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", +}; + +/** + * + * @export + * @interface RequestArgs + */ +export interface RequestArgs { + url: string; + options: AxiosRequestConfig; +} + +/** + * + * @export + * @class BaseAPI + */ +export class BaseAPI { + protected configuration: Configuration | undefined; + + constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePath || this.basePath; + } + } +}; + +/** + * + * @export + * @class RequiredError + * @extends {Error} + */ +export class RequiredError extends Error { + name: "RequiredError" = "RequiredError"; + constructor(public field: string, msg?: string) { + super(msg); + } +} diff --git a/common.ts b/common.ts new file mode 100644 index 0000000..03a5bbe --- /dev/null +++ b/common.ts @@ -0,0 +1,147 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VRChat API Documentation + * + * The version of the OpenAPI document: 1.20.2 + * Contact: vrchatapi.lpv0t@aries.fyi + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import { Configuration } from "./configuration"; +import { RequiredError, RequestArgs } from "./base"; +import { 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) { + throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`); + } +} + +/** + * + * @export + */ +export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) { + if (configuration && configuration.apiKey) { + const localVarApiKeyValue = typeof configuration.apiKey === 'function' + ? await configuration.apiKey(keyParamName) + : await configuration.apiKey; + object[keyParamName] = localVarApiKeyValue; + } +} + +/** + * + * @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 = typeof configuration.accessToken === 'function' + ? await configuration.accessToken() + : await configuration.accessToken; + object["Authorization"] = "Bearer " + accessToken; + } +} + +/** + * + * @export + */ +export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) { + if (configuration && configuration.accessToken) { + const localVarAccessTokenValue = typeof configuration.accessToken === 'function' + ? await configuration.accessToken(name, scopes) + : await configuration.accessToken; + object["Authorization"] = "Bearer " + localVarAccessTokenValue; + } +} + +function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ""): void { + 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 + */ +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 = nonString && configuration && configuration.isJsonMime + ? configuration.isJsonMime(requestOptions.headers['Content-Type']) + : nonString; + 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, BASE_PATH: string, configuration?: Configuration) { + return >(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url}; + return axios.request(axiosRequestArgs); + }; +} diff --git a/configuration.ts b/configuration.ts new file mode 100644 index 0000000..99e31ca --- /dev/null +++ b/configuration.ts @@ -0,0 +1,100 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VRChat API Documentation + * + * The version of the OpenAPI document: 1.20.2 + * Contact: vrchatapi.lpv0t@aries.fyi + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export interface ConfigurationParameters { + apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); + username?: string; + password?: string; + accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); + basePath?: string; + baseOptions?: any; + formDataCtor?: new () => any; +} + +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 | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); + /** + * override base path + * + * @type {string} + * @memberof Configuration + */ + basePath?: string; + /** + * base options for axios calls + * + * @type {any} + * @memberof Configuration + */ + baseOptions?: any; + /** + * The FormData constructor that will be used to create multipart form data + * requests. You can inject this here so that execution environments that + * do not support the FormData class can still run the generated client. + * + * @type {new () => FormData} + */ + formDataCtor?: new () => any; + + constructor(param: ConfigurationParameters = {}) { + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.basePath = param.basePath; + this.baseOptions = param.baseOptions; + this.formDataCtor = param.formDataCtor; + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @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'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + } +} diff --git a/cookies_load.js b/cookies_load.js new file mode 100644 index 0000000..3ebf822 --- /dev/null +++ b/cookies_load.js @@ -0,0 +1,37 @@ +const vrchat = require("vrchat"); + +const readline = require("readline") + +const tough = require("tough-cookie"); +const fs = require("fs"); + +const COOKIE_FILE = "cookies.json"; +let cookieJar = new tough.CookieJar(); + +if (fs.existsSync(COOKIE_FILE)) { + const serializedCookies = fs.readFileSync(COOKIE_FILE, "utf-8"); + cookieJar = tough.CookieJar.deserializeSync(JSON.parse(serializedCookies)); +} + +const configuration = new vrchat.Configuration({ + username: "username", + password: "password", + baseOptions: { + headers: { + "User-Agent": "ExampleProgram/0.0.1 my@email.com", + // Use this instead of jar if you want to hard code cookies + // "Cookie": "auth=[AUTH_COOKIE_HERE]; twoFactorAuth=[TWO_FACTOR_AUTH_COOKIE_HERE]" + }, + jar: cookieJar, + } +}); + + +const authenticationApi = new AuthenticationApi(configuration); + +async function main() { + var currentUser = (await authenticationApi.getCurrentUser()).data + console.log(`Logged in as: ${currentUser.displayName}`); +} + +main(); diff --git a/cookies_store.js b/cookies_store.js new file mode 100644 index 0000000..59c8763 --- /dev/null +++ b/cookies_store.js @@ -0,0 +1,50 @@ +const vrchat = require("vrchat"); + +const readline = require("readline") + +const tough = require("tough-cookie"); +const fs = require("fs"); + +const rl = readline.createInterface({input: process.stdin, output: process.stdout}); +const prompt = (query) => new Promise((resolve) => rl.question(query, resolve)); + + +const COOKIE_FILE = "cookies.json"; +let cookieJar = new tough.CookieJar(); + +const configuration = new vrchat.Configuration({ + username: "username", + password: "password", + baseOptions: { + headers: { "User-Agent": "ExampleProgram/0.0.1 my@email.com"}, + jar: cookieJar, + } +}); + + +const authenticationApi = new AuthenticationApi(configuration); + +async function main() { + var currentUser = (await authenticationApi.getCurrentUser()).data + + if (currentUser["requiresTwoFactorAuth"] && currentUser["requiresTwoFactorAuth"][0] === "emailOtp") { + await authenticationApi.verify2FAEmailCode({ code: await prompt("email Code\n") }) + currentUser = (await authenticationApi.getCurrentUser()).data; + } + if (currentUser["requiresTwoFactorAuth"] && currentUser["requiresTwoFactorAuth"][0] === "totp") { + await authenticationApi.verify2FA({ code: await prompt("2fa Code\n") }) + currentUser = (await authenticationApi.getCurrentUser()).data; + } + + console.log(`Logged in as: ${currentUser.displayName}`); + + const serializedJar = JSON.stringify(cookieJar.serializeSync()); + fs.writeFileSync(COOKIE_FILE, serializedJar); + + const deserializedJar = tough.CookieJar.deserializeSync(serializedJar); + const store = deserializedJar.store.idx["api.vrchat.cloud"]["/"]; + console.log(`auth=${store["auth"]["value"]}`); + console.log(`twoFactorAuth=${store["twoFactorAuth"]["value"]}`); +} + +main(); diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 35324d1..0000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,13 +0,0 @@ -import { configure } from "@ariesclark/eslint-config"; - -export default configure({ - type: "lib", - ignores: [ - "dist", - "src/generated", - "package.json", - ], - rules: { - "node/prefer-global/process": "off" - } -}); diff --git a/example.js b/example.js new file mode 100644 index 0000000..ed53a02 --- /dev/null +++ b/example.js @@ -0,0 +1,44 @@ +const vrchat = require("vrchat"); +const readline = require("readline") + +const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); +const prompt = (query) => new Promise((resolve) => rl.question(query, resolve)); + + +const configuration = new vrchat.Configuration({ + username: "username", + password: "password", + baseOptions: { + headers: { "User-Agent": "ExampleProgram/0.0.1 my@email.com"} + } +}); + +const authenticationApi = new vrchat.AuthenticationApi(configuration); +const usersApi = new vrchat.UsersApi(configuration); +const systemApi = new vrchat.SystemApi(configuration); + +async function main() { + var currentUser = (await authenticationApi.getCurrentUser()).data; + + if (currentUser["requiresTwoFactorAuth"] && currentUser["requiresTwoFactorAuth"][0] === "emailOtp") { + await authenticationApi.verify2FAEmailCode({ code: await prompt("email Code\n") }) + currentUser = (await authenticationApi.getCurrentUser()).data; + } + if (currentUser["requiresTwoFactorAuth"] && currentUser["requiresTwoFactorAuth"][0] === "totp") { + await authenticationApi.verify2FA({ code: await prompt("2fa Code\n") }) + currentUser = (await authenticationApi.getCurrentUser()).data; + } + + console.log(`Logged in as: ${currentUser.displayName}`); + + const currentOnlineUsers = (await systemApi.getCurrentOnlineUsers()).data; + console.log(`Current Online Users: ${resp.data}`); + + const tupperUser = (await usersApi.getUser("usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469")).data; + console.log(resp.data.displayName); +} + +main(); + + + diff --git a/example/.env.example b/example/.env.example deleted file mode 100644 index 09f8eb0..0000000 --- a/example/.env.example +++ /dev/null @@ -1,3 +0,0 @@ -VRCHAT_USERNAME= -VRCHAT_PASSWORD= -VRCHAT_TOTP_SECRET= \ No newline at end of file diff --git a/example/.gitignore b/example/.gitignore deleted file mode 100644 index a72c7c7..0000000 --- a/example/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.env* -!.env.example -data.json \ No newline at end of file diff --git a/example/package.json b/example/package.json deleted file mode 100644 index 201b458..0000000 --- a/example/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "example", - "version": "1.0.0", - "private": true, - "description": "", - "author": "", - "license": "ISC", - "keywords": [], - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "dependencies": { - "dotenv": "^16.5.0", - "enquirer": "^2.4.1", - "keyv": "^5.3.4", - "keyv-file": "^5.1.2", - "prompts": "^2.4.2", - "vrchat": "workspace:*" - }, - "devDependencies": { - "@types/prompts": "^2.4.9", - "typescript": "^5.8.3" - } -} diff --git a/example/pnpm-lock.yaml b/example/pnpm-lock.yaml deleted file mode 100644 index 2ea11ab..0000000 --- a/example/pnpm-lock.yaml +++ /dev/null @@ -1,194 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - dotenv: - specifier: ^16.5.0 - version: 16.5.0 - enquirer: - specifier: ^2.4.1 - version: 2.4.1 - keyv: - specifier: ^5.3.4 - version: 5.3.4 - keyv-file: - specifier: ^5.1.2 - version: 5.1.2 - prompts: - specifier: ^2.4.2 - version: 2.4.2 - vrchat: - specifier: ^1.19.4 - version: link:.. - devDependencies: - '@types/prompts': - specifier: ^2.4.9 - version: 2.4.9 - typescript: - specifier: ^5.8.3 - version: 5.8.3 - -packages: - - '@keyv/serialize@1.0.3': - resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} - - '@types/node@24.0.1': - resolution: {integrity: sha512-MX4Zioh39chHlDJbKmEgydJDS3tspMP/lnQC67G3SWsTnb9NeYVWOjkxpOSy4oMfPs4StcWHwBrvUb4ybfnuaw==} - - '@types/prompts@2.4.9': - resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} - engines: {node: '>=12'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - fs-extra@4.0.3: - resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - keyv-file@5.1.2: - resolution: {integrity: sha512-Sx5W55HeSbmsX4BfanJwaJZd3xePoQKxfuysvIhZ3JTPoSeZjApFO1QnuXGVy9hDXpmztS5mm39wlBFOUalVgw==} - - keyv@5.3.4: - resolution: {integrity: sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - -snapshots: - - '@keyv/serialize@1.0.3': - dependencies: - buffer: 6.0.3 - - '@types/node@24.0.1': - dependencies: - undici-types: 7.8.0 - - '@types/prompts@2.4.9': - dependencies: - '@types/node': 24.0.1 - kleur: 3.0.3 - - ansi-colors@4.1.3: {} - - ansi-regex@5.0.1: {} - - base64-js@1.5.1: {} - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - dotenv@16.5.0: {} - - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - - fs-extra@4.0.3: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - graceful-fs@4.2.11: {} - - ieee754@1.2.1: {} - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - - keyv-file@5.1.2: - dependencies: - '@keyv/serialize': 1.0.3 - fs-extra: 4.0.3 - tslib: 1.14.1 - - keyv@5.3.4: - dependencies: - '@keyv/serialize': 1.0.3 - - kleur@3.0.3: {} - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - sisteransi@1.0.5: {} - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - tslib@1.14.1: {} - - typescript@5.8.3: {} - - undici-types@7.8.0: {} - - universalify@0.1.2: {} diff --git a/example/src/automatic-sessions.ts b/example/src/automatic-sessions.ts deleted file mode 100644 index 65ac263..0000000 --- a/example/src/automatic-sessions.ts +++ /dev/null @@ -1,40 +0,0 @@ -import KeyvFile from "keyv-file"; -import prompts from "prompts"; -import { VRChat } from "vrchat"; - -const vrchat = new VRChat({ - application: { - name: "Example", - version: "1.5.1", - contact: "timmy@examaple.com" - }, - authentication: { - // optimistic: false, - credentials: () => prompts([ - { - name: "username", - type: "text", - message: "VRChat username", - }, - { - name: "password", - type: "password", - message: "VRChat password", - }, - { - name: "twoFactorCode", - type: "text", - message: "Two-factor authentication code", - } - ]), - }, - keyv: new KeyvFile({ filename: "./data.json" }), -}); - -(async () => { - await vrchat.getCurrentSubscriptions({ throwOnError: true }); - const { data: { displayName } } = await vrchat.getCurrentUser({ throwOnError: true }); - // eslint-disable-next-line no-console - console.log(`Logged in as ${displayName}`); - // await Promise.all(Array.from({ length: 10 }).map(() => vrchat.getCurrentOnlineUsers({ throwOnError: true }))); -})(); diff --git a/example/src/default.ts b/example/src/default.ts deleted file mode 100644 index b867877..0000000 --- a/example/src/default.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* eslint-disable no-console */ -import KeyvFile from "keyv-file"; -import prompts from "prompts"; -import { VRChat, VRChatError } from "vrchat"; - -const vrchat = new VRChat({ - /** - * When using the VRChat API, you must provide an application name, version, and contact information. - * This is used to identify your application to VRChat, and to provide support if needed. - */ - verbose: true, - application: { - name: "Example", - version: "1.5.1", - /** - * An email, or a URL to a support page. - */ - contact: "timmy@examaple.com" - }, - /** - * Save cookies to a file, so you can use them later. - * - * This is optional, but recommended for persistent sessions. - * If you don't provide a `keyv` instance, it will use an in-memory store. - * - * You can use any Keyv-compatible adapter for this, such as `keyv-file`, `@keyv/redis`, or `@keyv/postgres`. - * See https://keyv.org/docs/keyv/#official-storage-adapters for more information. - */ - keyv: new KeyvFile({ filename: "./data.json" }), -}); - -(async () => { - const { data: user } = await vrchat - .getCurrentUser({ throwOnError: true }) - // Since we've passed `throwOnError: true`, this will throw an error if the user is not logged in. - // We can catch that error and prompt the user for their credentials. - .catch(async (reason) => { - // Rethrow the error if it's not a 401 Unauthorized error. - if (!(reason instanceof VRChatError) || reason.statusCode !== 401) - throw reason; - - /** - * Ask the user for their VRChat username and password. - * You can also use environment variables, or any other method to get the credentials. - */ - const { username, password } = await prompts([ - { - name: "username", - type: "text", - message: "VRChat username", - }, - { - name: "password", - type: "password", - message: "VRChat password", - }, - ]); - - return vrchat.login({ - username, - password, - /** - * This function will be called when two-factor authentication is required. - * Accepts any code, such as from an authenticator app or a recovery code. - */ - twoFactorCode: async () => { - const { code } = await prompts({ - name: "code", - type: "text", - message: "Two-factor authentication code", - }); - - return code; - }, - /** - * Or, automatically generate a code from a secret. - * Useful for service accounts & automated workflows. - * - * If this is a user-initiated login, don't use this. - */ - // totpSecret: "", - throwOnError: true, - }); - }); - - console.log(user); - console.log(`Logged in as ${user.displayName} (id: ${user.id}).`); - - /** - * Get 10 online friends, you can change the `n` parameter to get more or less friends. - * Exercise: You can also use the `offline` query parameter to include offline friends. - */ - const { data: friends } = await vrchat.getFriends({ query: { n: 10 }, throwOnError: true }); - - console.log( - friends.length > 0 - ? "Your friends:" - : "Aw, you don't have any online friends." - ); - for (const friend of friends) { - console.log(`- ${friend.displayName} (id: ${friend.id})`); - } - - const tupperId = "usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469"; - - await vrchat - // Add Tupper as a friend, he's a nice guy. - .friend({ path: { userId: tupperId }, throwOnError: true }) - // If we've already sent one, we'll catch the error and ignore it. - .catch(() => { }); - - const { data: { outgoingRequest } } = await vrchat - .getFriendStatus({ path: { userId: tupperId }, throwOnError: true }); - - // Tupper ghosted our friend request, so let's delete it. - if (outgoingRequest) await vrchat.deleteFriendRequest({ path: { userId: tupperId }, throwOnError: true }); -})(); diff --git a/example/src/websocket.ts b/example/src/websocket.ts deleted file mode 100644 index ea066ae..0000000 --- a/example/src/websocket.ts +++ /dev/null @@ -1,33 +0,0 @@ -import KeyvFile from "keyv-file"; -import prompts from "prompts"; -import { VRChat } from "vrchat"; - -const vrchat = new VRChat({ - application: { - name: "Example", - version: "1.5.1", - contact: "timmy@examaple.com" - }, - authentication: { - // optimistic: false, - credentials: () => prompts([ - { - name: "username", - type: "text", - message: "VRChat username", - }, - { - name: "password", - type: "password", - message: "VRChat password", - }, - { - name: "twoFactorCode", - type: "text", - message: "Two-factor authentication code", - } - ]), - }, - keyv: new KeyvFile({ filename: "./data.json" }), -}); - diff --git a/example/tsconfig.json b/example/tsconfig.json deleted file mode 100644 index 7f9f05e..0000000 --- a/example/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "Node 16", - "compilerOptions": { - "target": "ES2021", - "lib": [ - "ES2021" - ], - "module": "commonjs", - "strict": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "skipLibCheck": true, - "outDir": "./dist" - } -} \ No newline at end of file diff --git a/generate.sh b/generate.sh new file mode 100755 index 0000000..9a4bce7 --- /dev/null +++ b/generate.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +npm install @openapitools/openapi-generator-cli + +rm *.ts -rf + +./node_modules/\@openapitools/openapi-generator-cli/main.js generate \ +-g typescript-axios \ +--additional-properties=npmName=vrchat \ +--git-user-id=vrchatapi \ +--git-repo-id=vrchatapi-javascript \ +-o . \ +-i https://raw.githubusercontent.com/vrchatapi/specification/gh-pages/openapi.yaml \ +--http-user-agent="vrchatapi-javascript" + +# Modify package.json +sed -i 's/OpenAPI client for vrchat/🟡🔵 VRChat API Library for JavaScript and TypeScript/g' ./package.json +sed -i 's/Unlicense/MIT/g' ./package.json + +# Enable global cookies +sed -i '/^import { BASE_PATH/a import axiosCookieJarSupport from "axios-cookiejar-support";axiosCookieJarSupport(globalAxios);import { CookieJar } from "tough-cookie";globalAxios.defaults.jar = new CookieJar();globalAxios.defaults.withCredentials = true;' ./api.ts + +sed -i '/"dependencies"/a "@types/tough-cookie": "^4.0.1",' ./package.json +sed -i '/"dependencies"/a "axios-cookiejar-support": "^1.0.1",' ./package.json +sed -i '/"dependencies"/a "tough-cookie": "^4.0.0",' ./package.json + +# Remove messily pasted markdown at top of every file +for i in *.ts; do + sed -i '/VRChat API Banner/d' $i +done + +npm install +npm run build \ No newline at end of file diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..853188b --- /dev/null +++ b/index.ts @@ -0,0 +1,17 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VRChat API Documentation + * + * The version of the OpenAPI document: 1.20.2 + * Contact: vrchatapi.lpv0t@aries.fyi + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export * from "./api"; +export * from "./configuration"; + diff --git a/openapi-ts.config.ts b/openapi-ts.config.ts deleted file mode 100644 index f3e65d2..0000000 --- a/openapi-ts.config.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { defineConfig } from "@hey-api/openapi-ts"; - -import { errorPlugin } from "./plugins/error"; - -export default defineConfig({ - input: "./openapi.json", - output: "src/generated", - plugins: [ - { - name: "@hey-api/typescript", - exportFromIndex: false, - requests: "{{name}}", - // todo: enable after generator doesn't create conflicting names. - // todo: see: https://discord.com/channels/@me/1414524675156869140/1446935685780209664 - // enums: { - // case: "camelCase" - // } - }, - { - name: "@hey-api/client-fetch", - exportFromIndex: false - }, - { - name: "@hey-api/transformers", - exportFromIndex: false - }, - { - name: "@hey-api/sdk", - exportFromIndex: false, - auth: false, - asClass: true, - instance: true, - transformer: true, - classNameBuilder: () => "VRChatInternal", - }, - errorPlugin() - ], -}); diff --git a/openapitools.json b/openapitools.json new file mode 100644 index 0000000..f5f966a --- /dev/null +++ b/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "6.2.1" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..9870517 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,220 @@ +{ + "name": "vrchat", + "version": "1.20.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "vrchat", + "version": "1.20.2", + "license": "MIT", + "dependencies": { + "@types/tough-cookie": "^4.0.1", + "axios": "^0.26.1", + "axios-cookiejar-support": "^1.0.1", + "tough-cookie": "^4.0.0" + }, + "devDependencies": { + "@types/node": "^12.11.5", + "typescript": "^4.0" + } + }, + "node_modules/@types/node": { + "version": "12.20.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz", + "integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz", + "integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==" + }, + "node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/axios-cookiejar-support": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-1.0.1.tgz", + "integrity": "sha512-IZJxnAJ99XxiLqNeMOqrPbfR7fRyIfaoSLdPUf4AMQEGkH8URs0ghJK/xtqBsD+KsSr3pKl4DEQjCn834pHMig==", + "dependencies": { + "is-redirect": "^1.0.0", + "pify": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@types/tough-cookie": ">=2.3.3", + "axios": ">=0.16.2", + "tough-cookie": ">=2.3.3" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + } + }, + "dependencies": { + "@types/node": { + "version": "12.20.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz", + "integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==", + "dev": true + }, + "@types/tough-cookie": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz", + "integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==" + }, + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "requires": { + "follow-redirects": "^1.14.8" + } + }, + "axios-cookiejar-support": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-1.0.1.tgz", + "integrity": "sha512-IZJxnAJ99XxiLqNeMOqrPbfR7fRyIfaoSLdPUf4AMQEGkH8URs0ghJK/xtqBsD+KsSr3pKl4DEQjCn834pHMig==", + "requires": { + "is-redirect": "^1.0.0", + "pify": "^5.0.0" + } + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } +} diff --git a/package.json b/package.json index 3fc1dbf..c1b64df 100644 --- a/package.json +++ b/package.json @@ -1,60 +1,34 @@ { "name": "vrchat", - "displayName": "VRChat.js", - "version": "0.0.0", - "description": "", - "type": "commonjs", - "types": "dist/index.d.ts", - "homepage": "https://vrchat.community/javascript", + "version": "1.20.2", + "description": "🟡🔵 VRChat API Library for JavaScript and TypeScript", + "author": "OpenAPI-Generator Contributors", "repository": { "type": "git", - "url": "git+https://github.com/vrchatapi/vrchatapi-javascript.git" - }, - "bugs": { - "url": "https://github.com/vrchatapi/vrchatapi-javascript/issues" - }, - "files": [ - "dist" - ], - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" - } - }, - "scripts": { - "prebuild": "rm src/generated -rf && openapi-ts", - "build": "tsup" + "url": "https://github.com/vrchatapi/vrchatapi-javascript.git" }, "keywords": [ + "axios", "typescript", "openapi-client", "openapi-generator", - "vrchat-api", - "vrchat-api-client", "vrchat" ], - "author": "", "license": "MIT", + "main": "./dist/index.js", + "typings": "./dist/index.d.ts", + "scripts": { + "build": "tsc ", + "prepare": "npm run build" + }, "dependencies": { - "cacheable": "^1.10.4", - "debug": "^4.4.3", - "isomorphic-ws": "^5.0.0", - "keyv": "^5.5.5", - "totp-generator": "^2.0.0", - "ws": "^8.18.3" +"tough-cookie": "^4.0.0", +"axios-cookiejar-support": "^1.0.1", +"@types/tough-cookie": "^4.0.1", + "axios": "^0.26.1" }, "devDependencies": { - "@ariesclark/eslint-config": "^3.1.1", - "@hey-api/openapi-ts": "^0.88.0", - "@types/debug": "^4.1.12", - "@types/node": "^24.10.1", - "bun-plugin-dts": "^0.3.0", - "eslint": "^9.39.1", - "semver": "^7.7.3", - "tsup": "^8.5.1", - "typed-emitter": "^2.1.0", - "typescript": "^5.9.3" + "@types/node": "^12.11.5", + "typescript": "^4.0" } } diff --git a/plugins/error.ts b/plugins/error.ts deleted file mode 100644 index 4628507..0000000 --- a/plugins/error.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { $, definePluginConfig } from "@hey-api/openapi-ts"; - -export const errorPlugin = definePluginConfig({ - name: "vrchat/error", - config: {}, - dependencies: ["@hey-api/typescript"], - // @ts-expect-error: we're using an experimental version of the generator. - handler: ({ plugin }) => { - const symbol = plugin.querySymbol({ resourceId: "#/components/schemas/Error" }); - - plugin.setSymbolValue( - symbol, - $.type - .alias(symbol.placeholder) - .export(symbol.exported) - .type(plugin.registerSymbol({ - external: "../error", - name: "VRChatError", - }).placeholder) - ); - } -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 87200e1..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,5138 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - cacheable: - specifier: ^1.10.4 - version: 1.10.4 - debug: - specifier: ^4.4.3 - version: 4.4.3 - isomorphic-ws: - specifier: ^5.0.0 - version: 5.0.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - keyv: - specifier: ^5.5.5 - version: 5.5.5 - totp-generator: - specifier: ^2.0.0 - version: 2.0.0 - ws: - specifier: ^8.18.3 - version: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) - devDependencies: - '@ariesclark/eslint-config': - specifier: ^3.1.1 - version: 3.1.1(@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.16)(eslint@9.39.1(jiti@2.6.1))(jiti@2.6.1)(postcss@8.5.5)(tsx@4.20.3)(typescript@5.9.3)(yaml@2.8.0) - '@hey-api/openapi-ts': - specifier: ^0.88.0 - version: 0.88.0(typescript@5.9.3) - '@types/debug': - specifier: ^4.1.12 - version: 4.1.12 - '@types/node': - specifier: ^24.10.1 - version: 24.10.1 - bun-plugin-dts: - specifier: ^0.3.0 - version: 0.3.0 - eslint: - specifier: ^9.39.1 - version: 9.39.1(jiti@2.6.1) - semver: - specifier: ^7.7.3 - version: 7.7.3 - tsup: - specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.5)(tsx@4.20.3)(typescript@5.9.3)(yaml@2.8.0) - typed-emitter: - specifier: ^2.1.0 - version: 2.1.0 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - - example: - dependencies: - dotenv: - specifier: ^16.5.0 - version: 16.5.0 - enquirer: - specifier: ^2.4.1 - version: 2.4.1 - keyv: - specifier: ^5.3.4 - version: 5.5.5 - keyv-file: - specifier: ^5.1.2 - version: 5.3.3 - prompts: - specifier: ^2.4.2 - version: 2.4.2 - vrchat: - specifier: workspace:* - version: link:.. - devDependencies: - '@types/prompts': - specifier: ^2.4.9 - version: 2.4.9 - typescript: - specifier: ^5.8.3 - version: 5.9.3 - -packages: - - '@antfu/eslint-config@3.16.0': - resolution: {integrity: sha512-g6RAXUMeow9vexoOMYwCpByY2xSDpAD78q+rvQLvVpY6MFcxFD/zmdrZGYa/yt7LizK86m17kIYKOGLJ3L8P0w==} - hasBin: true - peerDependencies: - '@eslint-react/eslint-plugin': ^1.19.0 - '@prettier/plugin-xml': ^3.4.1 - '@unocss/eslint-plugin': '>=0.50.0' - astro-eslint-parser: ^1.0.2 - eslint: ^9.10.0 - eslint-plugin-astro: ^1.2.0 - eslint-plugin-format: '>=0.1.0' - eslint-plugin-react-hooks: ^5.0.0 - eslint-plugin-react-refresh: ^0.4.4 - eslint-plugin-solid: ^0.14.3 - eslint-plugin-svelte: '>=2.35.1' - prettier-plugin-astro: ^0.14.0 - prettier-plugin-slidev: ^1.0.5 - svelte-eslint-parser: '>=0.37.0' - peerDependenciesMeta: - '@eslint-react/eslint-plugin': - optional: true - '@prettier/plugin-xml': - optional: true - '@unocss/eslint-plugin': - optional: true - astro-eslint-parser: - optional: true - eslint-plugin-astro: - optional: true - eslint-plugin-format: - optional: true - eslint-plugin-react-hooks: - optional: true - eslint-plugin-react-refresh: - optional: true - eslint-plugin-solid: - optional: true - eslint-plugin-svelte: - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-slidev: - optional: true - svelte-eslint-parser: - optional: true - - '@antfu/install-pkg@1.1.0': - resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - - '@antfu/utils@0.7.10': - resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - - '@ariesclark/eslint-config@3.1.1': - resolution: {integrity: sha512-9bmdqwS+3Vwxkz27xaSyg0BKpcAHkq7SiueY2eA7QG+xRG/YmxdELBlY9WhoE1EHCi2q7TheMBGZqvXZgk/yiA==} - peerDependencies: - '@next/eslint-plugin-next': ^15 - eslint: ^9 - eslint-plugin-tailwindcss: ^3 - peerDependenciesMeta: - '@next/eslint-plugin-next': - optional: true - eslint-plugin-tailwindcss: - optional: true - - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.27.5': - resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} - engines: {node: '>=6.9.0'} - - '@clack/core@0.4.1': - resolution: {integrity: sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==} - - '@clack/prompts@0.9.1': - resolution: {integrity: sha512-JIpyaboYZeWYlyP0H+OoPPxd6nqueG/CmN6ixBiNFsIDHREevjIf0n0Ohh5gr5C8pEDknzgvz+pIJ8dMhzWIeg==} - - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - - '@es-joy/jsdoccomment@0.50.2': - resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} - engines: {node: '>=18'} - - '@esbuild/aix-ppc64@0.25.5': - resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.27.1': - resolution: {integrity: sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.25.5': - resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.27.1': - resolution: {integrity: sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.25.5': - resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.27.1': - resolution: {integrity: sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.25.5': - resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.27.1': - resolution: {integrity: sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.25.5': - resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.27.1': - resolution: {integrity: sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.5': - resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.1': - resolution: {integrity: sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.25.5': - resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.27.1': - resolution: {integrity: sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.5': - resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.1': - resolution: {integrity: sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.25.5': - resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.27.1': - resolution: {integrity: sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.25.5': - resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.27.1': - resolution: {integrity: sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.25.5': - resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.27.1': - resolution: {integrity: sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.25.5': - resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.27.1': - resolution: {integrity: sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.25.5': - resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.27.1': - resolution: {integrity: sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.25.5': - resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.27.1': - resolution: {integrity: sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.25.5': - resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.27.1': - resolution: {integrity: sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.25.5': - resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.27.1': - resolution: {integrity: sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.25.5': - resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.27.1': - resolution: {integrity: sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.25.5': - resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-arm64@0.27.1': - resolution: {integrity: sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.5': - resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.27.1': - resolution: {integrity: sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.25.5': - resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-arm64@0.27.1': - resolution: {integrity: sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.25.5': - resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.27.1': - resolution: {integrity: sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.27.1': - resolution: {integrity: sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.25.5': - resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.27.1': - resolution: {integrity: sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.25.5': - resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.27.1': - resolution: {integrity: sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.25.5': - resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.27.1': - resolution: {integrity: sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.25.5': - resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.27.1': - resolution: {integrity: sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-plugin-eslint-comments@4.5.0': - resolution: {integrity: sha512-MAhuTKlr4y/CE3WYX26raZjy+I/kS2PLKSzvfmDCGrBLTFHOYwqROZdr4XwPgXwX3K9rjzMr4pSmUWGnzsUyMg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/compat@1.3.0': - resolution: {integrity: sha512-ZBygRBqpDYiIHsN+d1WyHn3TYgzgpzLEcgJUxTATyiInQbKZz6wZb6+ljwdg8xeeOe4v03z6Uh6lELiw0/mVhQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^9.10.0 - peerDependenciesMeta: - eslint: - optional: true - - '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.15.0': - resolution: {integrity: sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.17.0': - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.39.1': - resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/markdown@6.5.0': - resolution: {integrity: sha512-oSkF0p8X21vKEEAGTZASi7q3tbdTvlGduQ02Xz2A1AFncUP4RLVcNz27XurxVW4fs1JXuh0xBtvokXdtp/nN+Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.3.2': - resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@hey-api/codegen-core@0.3.3': - resolution: {integrity: sha512-vArVDtrvdzFewu1hnjUm4jX1NBITlSCeO81EdWq676MxQbyxsGcDPAgohaSA+Wvr4HjPSvsg2/1s2zYxUtXebg==} - engines: {node: '>=20.19.0'} - peerDependencies: - typescript: '>=5.5.3' - - '@hey-api/json-schema-ref-parser@1.2.1': - resolution: {integrity: sha512-inPeksRLq+j3ArnuGOzQPQE//YrhezQG0+9Y9yizScBN2qatJ78fIByhEgKdNAbtguDCn4RPxmEhcrePwHxs4A==} - engines: {node: '>= 16'} - - '@hey-api/openapi-ts@0.88.0': - resolution: {integrity: sha512-ZrvmDfmVf+N4ry786LAhS/DoH+xkIjIJIeDnj2aL1qnMTIDsdRIXXvr80EnAZVBgunzu1wTBbHb3H9OfyDQ2EQ==} - engines: {node: '>=20.19.0'} - hasBin: true - peerDependencies: - typescript: '>=5.5.3' - - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jsdevtools/ono@7.1.3': - resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - - '@keyv/serialize@1.1.1': - resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/core@0.2.7': - resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@rollup/rollup-android-arm-eabi@4.43.0': - resolution: {integrity: sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.43.0': - resolution: {integrity: sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.43.0': - resolution: {integrity: sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.43.0': - resolution: {integrity: sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.43.0': - resolution: {integrity: sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.43.0': - resolution: {integrity: sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.43.0': - resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.43.0': - resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.43.0': - resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.43.0': - resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.43.0': - resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': - resolution: {integrity: sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.43.0': - resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.43.0': - resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.43.0': - resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.43.0': - resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.43.0': - resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.43.0': - resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.43.0': - resolution: {integrity: sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.43.0': - resolution: {integrity: sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==} - cpu: [x64] - os: [win32] - - '@stylistic/eslint-plugin@2.13.0': - resolution: {integrity: sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/node@24.10.1': - resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/prompts@2.4.9': - resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@typescript-eslint/eslint-plugin@8.34.0': - resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.34.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/parser@8.34.0': - resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/project-service@8.34.0': - resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/scope-manager@8.34.0': - resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.34.0': - resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/type-utils@8.34.0': - resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/types@8.34.0': - resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.34.0': - resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.34.0': - resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/visitor-keys@8.34.0': - resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@unrs/resolver-binding-android-arm-eabi@1.9.0': - resolution: {integrity: sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.9.0': - resolution: {integrity: sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.9.0': - resolution: {integrity: sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.9.0': - resolution: {integrity: sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.9.0': - resolution: {integrity: sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': - resolution: {integrity: sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': - resolution: {integrity: sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': - resolution: {integrity: sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': - resolution: {integrity: sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': - resolution: {integrity: sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': - resolution: {integrity: sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': - resolution: {integrity: sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': - resolution: {integrity: sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': - resolution: {integrity: sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.9.0': - resolution: {integrity: sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-wasm32-wasi@1.9.0': - resolution: {integrity: sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': - resolution: {integrity: sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': - resolution: {integrity: sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': - resolution: {integrity: sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==} - cpu: [x64] - os: [win32] - - '@vitest/eslint-plugin@1.2.5': - resolution: {integrity: sha512-cfmXz++mkqYpssrKymd7KJumxaZBsfFji2y22QV04kDYKRbiaZ+s4WZL/bzAkcefVKj4KkFctVALHdDZhFhHGg==} - peerDependencies: - eslint: '>= 8.57.0' - typescript: '>= 5.0.0' - vitest: '*' - peerDependenciesMeta: - typescript: - optional: true - vitest: - optional: true - - '@vue/compiler-core@3.5.16': - resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} - - '@vue/compiler-dom@3.5.16': - resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} - - '@vue/compiler-sfc@3.5.16': - resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==} - - '@vue/compiler-ssr@3.5.16': - resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==} - - '@vue/shared@3.5.16': - resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - are-docs-informative@0.0.2: - resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} - engines: {node: '>=14'} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.25.0: - resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bufferutil@4.0.9: - resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} - engines: {node: '>=6.14.2'} - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - bun-plugin-dts@0.3.0: - resolution: {integrity: sha512-QpiAOKfPcdOToxySOqRY8FwL+brTvyXEHWzrSCRKt4Pv7Z4pnUrhK9tFtM7Ndm7ED09B/0cGXnHJKqmekr/ERw==} - - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} - - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - - c12@3.3.2: - resolution: {integrity: sha512-QkikB2X5voO1okL3QsES0N690Sn/K9WokXqUsDQsWy5SnYb+psYQFGA10iy1bZHj3fjISKsI67Q90gruvWWM3A==} - peerDependencies: - magicast: '*' - peerDependenciesMeta: - magicast: - optional: true - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - cacheable@1.10.4: - resolution: {integrity: sha512-Gd7ccIUkZ9TE2odLQVS+PDjIvQCdJKUlLdJRVvZu0aipj07Qfx+XIej7hhDrKGGoIxV5m5fT/kOJNJPQhQneRg==} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - caniuse-lite@1.0.30001723: - resolution: {integrity: sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} - engines: {node: '>=8'} - - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} - engines: {node: '>=20'} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} - - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - - consola@3.4.2: - resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} - engines: {node: ^14.18.0 || >=16.10.0} - - core-js-compat@3.43.0: - resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} - - default-browser@5.4.0: - resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} - engines: {node: '>=18'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} - engines: {node: '>=12'} - - dotenv@17.2.3: - resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} - engines: {node: '>=12'} - - dts-bundle-generator@9.5.1: - resolution: {integrity: sha512-DxpJOb2FNnEyOzMkG11sxO2dmxPjthoVWxfKqWYJ/bI/rT1rvTMktF5EKjAYrRZu6Z6t3NhOUZ0sZ5ZXevOfbA==} - engines: {node: '>=14.0.0'} - hasBin: true - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.5.167: - resolution: {integrity: sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} - engines: {node: '>=10.13.0'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - esbuild@0.25.5: - resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} - engines: {node: '>=18'} - hasBin: true - - esbuild@0.27.1: - resolution: {integrity: sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-compat-utils@0.6.5: - resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-flat-gitignore@1.0.1: - resolution: {integrity: sha512-wjBmJ8TAb67G2or/gBp/H62uCIkDCjpCmlGPSG41/7QagUjMgh+iegVB3gY8eNYhTAmecjKtclT4wGAjHz5yWA==} - peerDependencies: - eslint: ^9.5.0 - - eslint-flat-config-utils@0.4.0: - resolution: {integrity: sha512-kfd5kQZC+BMO0YwTol6zxjKX1zAsk8JfSAopbKjKqmENTJcew+yBejuvccAg37cvOrN0Mh+DVbeyznuNWEjt4A==} - - eslint-flat-config-utils@1.1.0: - resolution: {integrity: sha512-W49wz7yQJGRfg4QSV3nwdO/fYcWetiSKhLV5YykfQMcqnIATNpoS7EPdINhLB9P3fmdjNmFtOgZjiKnCndWAnw==} - - eslint-import-context@0.1.8: - resolution: {integrity: sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true - - eslint-json-compat-utils@0.2.1: - resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} - engines: {node: '>=12'} - peerDependencies: - '@eslint/json': '*' - eslint: '*' - jsonc-eslint-parser: ^2.4.0 - peerDependenciesMeta: - '@eslint/json': - optional: true - - eslint-merge-processors@1.0.0: - resolution: {integrity: sha512-4GybyHmhXtT7/W8RAouQzNM0791sYasJCTYHIAYjuiJvbNFY0jMKkoESREhX+mjX37dxiN6v4EqhZ1nc0tJF7A==} - peerDependencies: - eslint: '*' - - eslint-plugin-antfu@2.7.0: - resolution: {integrity: sha512-gZM3jq3ouqaoHmUNszb1Zo2Ux7RckSvkGksjLWz9ipBYGSv1EwwBETN6AdiUXn+RpVHXTbEMPAPlXJazcA6+iA==} - peerDependencies: - eslint: '*' - - eslint-plugin-command@2.1.0: - resolution: {integrity: sha512-S3gvDSCRHLdRG7NYaevLvGA0g/txOju7NEB2di7SE80NtbCwsvpi/fft045YuTZpOzqCRUfuye39raldmpXXYQ==} - peerDependencies: - eslint: '*' - - eslint-plugin-es-x@7.8.0: - resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-import-x@4.15.2: - resolution: {integrity: sha512-J5gx7sN6DTm0LRT//eP3rVVQ2Yi4hrX0B+DbWxa5er8PZ6JjLo9GUBwogIFvEDdwJaSqZplpQT+haK/cXhb7VQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/utils': ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true - - eslint-plugin-jsdoc@50.8.0: - resolution: {integrity: sha512-UyGb5755LMFWPrZTEqqvTJ3urLz1iqj+bYOHFNag+sw3NvaMWP9K2z+uIn37XfNALmQLQyrBlJ5mkiVPL7ADEg==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-jsonc@2.20.1: - resolution: {integrity: sha512-gUzIwQHXx7ZPypUoadcyRi4WbHW2TPixDr0kqQ4miuJBU0emJmyGTlnaT3Og9X2a8R1CDayN9BFSq5weGWbTng==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - eslint-plugin-n@17.20.0: - resolution: {integrity: sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.23.0' - - eslint-plugin-no-only-tests@3.3.0: - resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} - engines: {node: '>=5.0.0'} - - eslint-plugin-perfectionist@4.14.0: - resolution: {integrity: sha512-BkhiOqzdum8vQSFgj1/q5+6UUWPMn4GELdxuX7uIsGegmAeH/+LnWsiVxgMrxalD0p68sYfMeKaHF1NfrpI/mg==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - eslint: '>=8.45.0' - - eslint-plugin-regexp@2.9.0: - resolution: {integrity: sha512-9WqJMnOq8VlE/cK+YAo9C9YHhkOtcEtEk9d12a+H7OSZFwlpI6stiHmYPGa2VE0QhTzodJyhlyprUaXDZLgHBw==} - engines: {node: ^18 || >=20} - peerDependencies: - eslint: '>=8.44.0' - - eslint-plugin-toml@0.12.0: - resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - eslint-plugin-unicorn@56.0.1: - resolution: {integrity: sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==} - engines: {node: '>=18.18'} - peerDependencies: - eslint: '>=8.56.0' - - eslint-plugin-unused-imports@4.1.4: - resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 - eslint: ^9.0.0 || ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-plugin-vue@9.33.0: - resolution: {integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-yml@1.18.0: - resolution: {integrity: sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - eslint-processor-vue-blocks@1.0.0: - resolution: {integrity: sha512-q+Wn9bCml65NwYtuINVCE5dUqZa/uVoY4jfc8qEDwWbcGqdRyfJJmAONNZsreA4Q9EJqjYGjk8Hk1QuwAktgkw==} - peerDependencies: - '@vue/compiler-sfc': ^3.3.0 - eslint: ^8.50.0 || ^9.0.0 - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.39.1: - resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - esno@4.8.0: - resolution: {integrity: sha512-acMtooReAQGzLU0zcuEDHa8S62meh5aIyi8jboYxyvAePdmuWx2Mpwmt0xjwO0bs9/SXf+dvXJ0QJoDWw814Iw==} - hasBin: true - - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - exsolve@1.0.5: - resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} - - exsolve@1.0.8: - resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} - - giget@2.0.0: - resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} - hasBin: true - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - - globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hookified@1.13.0: - resolution: {integrity: sha512-6sPYUY8olshgM/1LDNW4QZQN0IqgKhtl/1C8koNZBJrKLBk3AZl6chQtNwpNztvfiApHMEwMHek5rv993PRbWw==} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-in-ssh@1.0.0: - resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} - engines: {node: '>=20'} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isomorphic-ws@5.0.0: - resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} - peerDependencies: - ws: '*' - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} - hasBin: true - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsdoc-type-pratt-parser@4.1.0: - resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} - engines: {node: '>=12.0.0'} - - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - jsonc-eslint-parser@2.4.0: - resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - jssha@3.3.1: - resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==} - - keyv-file@5.3.3: - resolution: {integrity: sha512-uCFUhiVYf+BcA6DP4smhnRLOR4yzUUA15yJSk4/rP5oAPnF3MpfajejwvSV8l+okm+EGiW4IHP3gn+xahpvZcQ==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - keyv@5.5.5: - resolution: {integrity: sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - local-pkg@0.5.1: - resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} - engines: {node: '>=14'} - - local-pkg@1.1.1: - resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} - engines: {node: '>=14'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - - markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - - mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} - - mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - - mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - - micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - - micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - - micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - - micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - napi-postinstall@0.2.4: - resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - natural-orderby@5.0.0: - resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} - engines: {node: '>=18'} - - node-fetch-native@1.6.6: - resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} - - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - nypm@0.6.2: - resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - ohash@2.0.11: - resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} - - open@11.0.0: - resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} - engines: {node: '>=20'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - package-manager-detector@1.3.0: - resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-gitignore@2.0.0: - resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} - engines: {node: '>=14'} - - parse-imports-exports@0.2.4: - resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-statements@1.0.11: - resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - perfect-debounce@2.0.0: - resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - - pkg-types@2.1.0: - resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} - - pkg-types@2.3.0: - resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss@8.5.5: - resolution: {integrity: sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==} - engines: {node: ^10 || ^12 || >=14} - - powershell-utils@0.1.0: - resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} - engines: {node: '>=20'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - quansync@0.2.10: - resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - refa@0.12.1: - resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - regexp-ast-analysis@0.7.1: - resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup@4.43.0: - resolution: {integrity: sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - - scslre@0.3.0: - resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} - engines: {node: ^14.0.0 || >=16.0.0} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map@0.7.6: - resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} - engines: {node: '>= 12'} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-expression-parse@4.0.0: - resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - - spdx-license-ids@3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - - stable-hash-x@0.1.1: - resolution: {integrity: sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==} - engines: {node: '>=12.0.0'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - synckit@0.11.8: - resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} - engines: {node: ^14.18.0 || >=16.0.0} - - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} - engines: {node: '>=6'} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyexec@1.0.1: - resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} - - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toml-eslint-parser@0.10.0: - resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - totp-generator@2.0.0: - resolution: {integrity: sha512-YXqrJupB/w762T4PrI9qLg5ekb0Of1MRerIW5wh3GRRkH/mgSROw5Gale0gidtc4CfTsNNyZFStS7H4uXJgL2Q==} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - ts-declaration-location@1.0.7: - resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} - peerDependencies: - typescript: '>=4.0.0' - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - tsup@8.5.1: - resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - - tsx@4.20.3: - resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} - engines: {node: '>=18.0.0'} - hasBin: true - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - typed-emitter@2.1.0: - resolution: {integrity: sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==} - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - unrs-resolver@1.9.0: - resolution: {integrity: sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - utf-8-validate@5.0.10: - resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} - engines: {node: '>=6.14.2'} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - vue-eslint-parser@9.4.3: - resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - wsl-utils@0.3.0: - resolution: {integrity: sha512-3sFIGLiaDP7rTO4xh3g+b3AzhYDIUGGywE/WsmqzJWDxus5aJXVnPTNC/6L+r2WzrwXqVOdD262OaO+cEyPMSQ==} - engines: {node: '>=20'} - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yaml-eslint-parser@1.3.0: - resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==} - engines: {node: ^14.17.0 || >=16.0.0} - - yaml@2.8.0: - resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} - engines: {node: '>= 14.6'} - hasBin: true - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@antfu/eslint-config@3.16.0(@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.16)(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@antfu/install-pkg': 1.1.0 - '@clack/prompts': 0.9.1 - '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.39.1(jiti@2.6.1)) - '@eslint/markdown': 6.5.0 - '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@vitest/eslint-plugin': 1.2.5(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - eslint-config-flat-gitignore: 1.0.1(eslint@9.39.1(jiti@2.6.1)) - eslint-flat-config-utils: 1.1.0 - eslint-merge-processors: 1.0.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-antfu: 2.7.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-command: 2.1.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-import-x: 4.15.2(@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-jsdoc: 50.8.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-jsonc: 2.20.1(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-n: 17.20.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 4.14.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-regexp: 2.9.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-toml: 0.12.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-unicorn: 56.0.1(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-vue: 9.33.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-yml: 1.18.0(eslint@9.39.1(jiti@2.6.1)) - eslint-processor-vue-blocks: 1.0.0(@vue/compiler-sfc@3.5.16)(eslint@9.39.1(jiti@2.6.1)) - globals: 15.15.0 - jsonc-eslint-parser: 2.4.0 - local-pkg: 1.1.1 - parse-gitignore: 2.0.0 - picocolors: 1.1.1 - toml-eslint-parser: 0.10.0 - vue-eslint-parser: 9.4.3(eslint@9.39.1(jiti@2.6.1)) - yaml-eslint-parser: 1.3.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@eslint/json' - - '@typescript-eslint/utils' - - '@vue/compiler-sfc' - - eslint-import-resolver-node - - supports-color - - typescript - - vitest - - '@antfu/install-pkg@1.1.0': - dependencies: - package-manager-detector: 1.3.0 - tinyexec: 1.0.1 - - '@antfu/utils@0.7.10': {} - - '@ariesclark/eslint-config@3.1.1(@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.16)(eslint@9.39.1(jiti@2.6.1))(jiti@2.6.1)(postcss@8.5.5)(tsx@4.20.3)(typescript@5.9.3)(yaml@2.8.0)': - dependencies: - '@antfu/eslint-config': 3.16.0(@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.16)(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - eslint-flat-config-utils: 0.4.0 - esno: 4.8.0 - local-pkg: 0.5.1 - tsup: 8.5.1(jiti@2.6.1)(postcss@8.5.5)(tsx@4.20.3)(typescript@5.9.3)(yaml@2.8.0) - transitivePeerDependencies: - - '@eslint-react/eslint-plugin' - - '@eslint/json' - - '@microsoft/api-extractor' - - '@prettier/plugin-xml' - - '@swc/core' - - '@typescript-eslint/utils' - - '@unocss/eslint-plugin' - - '@vue/compiler-sfc' - - astro-eslint-parser - - eslint-import-resolver-node - - eslint-plugin-astro - - eslint-plugin-format - - eslint-plugin-react-hooks - - eslint-plugin-react-refresh - - eslint-plugin-solid - - eslint-plugin-svelte - - jiti - - postcss - - prettier-plugin-astro - - prettier-plugin-slidev - - supports-color - - svelte-eslint-parser - - tsx - - typescript - - vitest - - yaml - - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/parser@7.27.5': - dependencies: - '@babel/types': 7.27.6 - - '@babel/types@7.27.6': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@clack/core@0.4.1': - dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@clack/prompts@0.9.1': - dependencies: - '@clack/core': 0.4.1 - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@emnapi/core@1.4.3': - dependencies: - '@emnapi/wasi-threads': 1.0.2 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.4.3': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.0.2': - dependencies: - tslib: 2.8.1 - optional: true - - '@es-joy/jsdoccomment@0.50.2': - dependencies: - '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.34.0 - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.1.0 - - '@esbuild/aix-ppc64@0.25.5': - optional: true - - '@esbuild/aix-ppc64@0.27.1': - optional: true - - '@esbuild/android-arm64@0.25.5': - optional: true - - '@esbuild/android-arm64@0.27.1': - optional: true - - '@esbuild/android-arm@0.25.5': - optional: true - - '@esbuild/android-arm@0.27.1': - optional: true - - '@esbuild/android-x64@0.25.5': - optional: true - - '@esbuild/android-x64@0.27.1': - optional: true - - '@esbuild/darwin-arm64@0.25.5': - optional: true - - '@esbuild/darwin-arm64@0.27.1': - optional: true - - '@esbuild/darwin-x64@0.25.5': - optional: true - - '@esbuild/darwin-x64@0.27.1': - optional: true - - '@esbuild/freebsd-arm64@0.25.5': - optional: true - - '@esbuild/freebsd-arm64@0.27.1': - optional: true - - '@esbuild/freebsd-x64@0.25.5': - optional: true - - '@esbuild/freebsd-x64@0.27.1': - optional: true - - '@esbuild/linux-arm64@0.25.5': - optional: true - - '@esbuild/linux-arm64@0.27.1': - optional: true - - '@esbuild/linux-arm@0.25.5': - optional: true - - '@esbuild/linux-arm@0.27.1': - optional: true - - '@esbuild/linux-ia32@0.25.5': - optional: true - - '@esbuild/linux-ia32@0.27.1': - optional: true - - '@esbuild/linux-loong64@0.25.5': - optional: true - - '@esbuild/linux-loong64@0.27.1': - optional: true - - '@esbuild/linux-mips64el@0.25.5': - optional: true - - '@esbuild/linux-mips64el@0.27.1': - optional: true - - '@esbuild/linux-ppc64@0.25.5': - optional: true - - '@esbuild/linux-ppc64@0.27.1': - optional: true - - '@esbuild/linux-riscv64@0.25.5': - optional: true - - '@esbuild/linux-riscv64@0.27.1': - optional: true - - '@esbuild/linux-s390x@0.25.5': - optional: true - - '@esbuild/linux-s390x@0.27.1': - optional: true - - '@esbuild/linux-x64@0.25.5': - optional: true - - '@esbuild/linux-x64@0.27.1': - optional: true - - '@esbuild/netbsd-arm64@0.25.5': - optional: true - - '@esbuild/netbsd-arm64@0.27.1': - optional: true - - '@esbuild/netbsd-x64@0.25.5': - optional: true - - '@esbuild/netbsd-x64@0.27.1': - optional: true - - '@esbuild/openbsd-arm64@0.25.5': - optional: true - - '@esbuild/openbsd-arm64@0.27.1': - optional: true - - '@esbuild/openbsd-x64@0.25.5': - optional: true - - '@esbuild/openbsd-x64@0.27.1': - optional: true - - '@esbuild/openharmony-arm64@0.27.1': - optional: true - - '@esbuild/sunos-x64@0.25.5': - optional: true - - '@esbuild/sunos-x64@0.27.1': - optional: true - - '@esbuild/win32-arm64@0.25.5': - optional: true - - '@esbuild/win32-arm64@0.27.1': - optional: true - - '@esbuild/win32-ia32@0.25.5': - optional: true - - '@esbuild/win32-ia32@0.27.1': - optional: true - - '@esbuild/win32-x64@0.25.5': - optional: true - - '@esbuild/win32-x64@0.27.1': - optional: true - - '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.39.1(jiti@2.6.1))': - dependencies: - escape-string-regexp: 4.0.0 - eslint: 9.39.1(jiti@2.6.1) - ignore: 5.3.2 - - '@eslint-community/eslint-utils@4.7.0(eslint@9.39.1(jiti@2.6.1))': - dependencies: - eslint: 9.39.1(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))': - dependencies: - eslint: 9.39.1(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/compat@1.3.0(eslint@9.39.1(jiti@2.6.1))': - optionalDependencies: - eslint: 9.39.1(jiti@2.6.1) - - '@eslint/config-array@0.21.1': - dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.3 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.4.2': - dependencies: - '@eslint/core': 0.17.0 - - '@eslint/core@0.14.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.15.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.17.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.3.1': - dependencies: - ajv: 6.12.6 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.39.1': {} - - '@eslint/markdown@6.5.0': - dependencies: - '@eslint/core': 0.14.0 - '@eslint/plugin-kit': 0.3.2 - mdast-util-from-markdown: 2.0.2 - mdast-util-frontmatter: 2.0.1 - mdast-util-gfm: 3.1.0 - micromark-extension-frontmatter: 2.0.0 - micromark-extension-gfm: 3.0.0 - transitivePeerDependencies: - - supports-color - - '@eslint/object-schema@2.1.7': {} - - '@eslint/plugin-kit@0.3.2': - dependencies: - '@eslint/core': 0.15.0 - levn: 0.4.1 - - '@eslint/plugin-kit@0.4.1': - dependencies: - '@eslint/core': 0.17.0 - levn: 0.4.1 - - '@hey-api/codegen-core@0.3.3(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@hey-api/json-schema-ref-parser@1.2.1': - dependencies: - '@jsdevtools/ono': 7.1.3 - '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 - lodash: 4.17.21 - - '@hey-api/openapi-ts@0.88.0(typescript@5.9.3)': - dependencies: - '@hey-api/codegen-core': 0.3.3(typescript@5.9.3) - '@hey-api/json-schema-ref-parser': 1.2.1 - ansi-colors: 4.1.3 - c12: 3.3.2 - color-support: 1.1.3 - commander: 14.0.2 - open: 11.0.0 - semver: 7.7.2 - typescript: 5.9.3 - transitivePeerDependencies: - - magicast - - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.3': {} - - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': - dependencies: - '@isaacs/balanced-match': 4.0.1 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jridgewell/gen-mapping@0.3.8': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@jsdevtools/ono@7.1.3': {} - - '@keyv/serialize@1.1.1': {} - - '@napi-rs/wasm-runtime@0.2.11': - dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 - optional: true - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.2.7': {} - - '@rollup/rollup-android-arm-eabi@4.43.0': - optional: true - - '@rollup/rollup-android-arm64@4.43.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.43.0': - optional: true - - '@rollup/rollup-darwin-x64@4.43.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.43.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.43.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.43.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.43.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.43.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.43.0': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.43.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.43.0': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.43.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.43.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.43.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.43.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.43.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.43.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.43.0': - optional: true - - '@stylistic/eslint-plugin@2.13.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - estraverse: 5.3.0 - picomatch: 4.0.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@tybys/wasm-util@0.9.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 - - '@types/estree@1.0.7': {} - - '@types/estree@1.0.8': {} - - '@types/json-schema@7.0.15': {} - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/ms@2.1.0': {} - - '@types/node@24.10.1': - dependencies: - undici-types: 7.16.0 - - '@types/normalize-package-data@2.4.4': {} - - '@types/prompts@2.4.9': - dependencies: - '@types/node': 24.10.1 - kleur: 3.0.3 - - '@types/unist@3.0.3': {} - - '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/type-utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.34.0 - eslint: 9.39.1(jiti@2.6.1) - graphemer: 1.4.0 - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.4.3 - eslint: 9.39.1(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.34.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.9.3) - '@typescript-eslint/types': 8.34.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.34.0': - dependencies: - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.0 - - '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@typescript-eslint/type-utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - debug: 4.4.3 - eslint: 9.39.1(jiti@2.6.1) - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.34.0': {} - - '@typescript-eslint/typescript-estree@8.34.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.34.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.9.3) - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/visitor-keys': 8.34.0 - debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.34.0 - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.34.0': - dependencies: - '@typescript-eslint/types': 8.34.0 - eslint-visitor-keys: 4.2.1 - - '@unrs/resolver-binding-android-arm-eabi@1.9.0': - optional: true - - '@unrs/resolver-binding-android-arm64@1.9.0': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.9.0': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.9.0': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.9.0': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.9.0': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.9.0': - dependencies: - '@napi-rs/wasm-runtime': 0.2.11 - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.9.0': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.9.0': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.9.0': - optional: true - - '@vitest/eslint-plugin@1.2.5(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@vue/compiler-core@3.5.16': - dependencies: - '@babel/parser': 7.27.5 - '@vue/shared': 3.5.16 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.16': - dependencies: - '@vue/compiler-core': 3.5.16 - '@vue/shared': 3.5.16 - - '@vue/compiler-sfc@3.5.16': - dependencies: - '@babel/parser': 7.27.5 - '@vue/compiler-core': 3.5.16 - '@vue/compiler-dom': 3.5.16 - '@vue/compiler-ssr': 3.5.16 - '@vue/shared': 3.5.16 - estree-walker: 2.0.2 - magic-string: 0.30.17 - postcss: 8.5.5 - source-map-js: 1.2.1 - - '@vue/compiler-ssr@3.5.16': - dependencies: - '@vue/compiler-dom': 3.5.16 - '@vue/shared': 3.5.16 - - '@vue/shared@3.5.16': {} - - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - - acorn@8.15.0: {} - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-colors@4.1.3: {} - - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - any-promise@1.3.0: {} - - are-docs-informative@0.0.2: {} - - argparse@2.0.1: {} - - balanced-match@1.0.2: {} - - boolbase@1.0.0: {} - - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.25.0: - dependencies: - caniuse-lite: 1.0.30001723 - electron-to-chromium: 1.5.167 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.0) - - bufferutil@4.0.9: - dependencies: - node-gyp-build: 4.8.4 - optional: true - - builtin-modules@3.3.0: {} - - bun-plugin-dts@0.3.0: - dependencies: - common-path-prefix: 3.0.0 - dts-bundle-generator: 9.5.1 - get-tsconfig: 4.10.1 - - bundle-name@4.1.0: - dependencies: - run-applescript: 7.0.0 - - bundle-require@5.1.0(esbuild@0.27.1): - dependencies: - esbuild: 0.27.1 - load-tsconfig: 0.2.5 - - c12@3.3.2: - dependencies: - chokidar: 4.0.3 - confbox: 0.2.2 - defu: 6.1.4 - dotenv: 17.2.3 - exsolve: 1.0.8 - giget: 2.0.0 - jiti: 2.6.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 2.0.0 - pkg-types: 2.3.0 - rc9: 2.1.2 - - cac@6.7.14: {} - - cacheable@1.10.4: - dependencies: - hookified: 1.13.0 - keyv: 5.5.5 - - callsites@3.1.0: {} - - caniuse-lite@1.0.30001723: {} - - ccount@2.0.1: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - character-entities@2.0.2: {} - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - ci-info@4.2.0: {} - - citty@0.1.6: - dependencies: - consola: 3.4.2 - - clean-regexp@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - color-support@1.1.3: {} - - commander@14.0.2: {} - - commander@4.1.1: {} - - comment-parser@1.4.1: {} - - common-path-prefix@3.0.0: {} - - concat-map@0.0.1: {} - - confbox@0.1.8: {} - - confbox@0.2.2: {} - - consola@3.4.2: {} - - core-js-compat@3.43.0: - dependencies: - browserslist: 4.25.0 - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cssesc@3.0.0: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - decode-named-character-reference@1.2.0: - dependencies: - character-entities: 2.0.2 - - deep-is@0.1.4: {} - - default-browser-id@5.0.0: {} - - default-browser@5.4.0: - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.0 - - define-lazy-prop@3.0.0: {} - - defu@6.1.4: {} - - dequal@2.0.3: {} - - destr@2.0.5: {} - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - dotenv@16.5.0: {} - - dotenv@17.2.3: {} - - dts-bundle-generator@9.5.1: - dependencies: - typescript: 5.9.3 - yargs: 17.7.2 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.5.167: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - enhanced-resolve@5.18.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.2 - - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - - entities@4.5.0: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - esbuild@0.25.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.5 - '@esbuild/android-arm': 0.25.5 - '@esbuild/android-arm64': 0.25.5 - '@esbuild/android-x64': 0.25.5 - '@esbuild/darwin-arm64': 0.25.5 - '@esbuild/darwin-x64': 0.25.5 - '@esbuild/freebsd-arm64': 0.25.5 - '@esbuild/freebsd-x64': 0.25.5 - '@esbuild/linux-arm': 0.25.5 - '@esbuild/linux-arm64': 0.25.5 - '@esbuild/linux-ia32': 0.25.5 - '@esbuild/linux-loong64': 0.25.5 - '@esbuild/linux-mips64el': 0.25.5 - '@esbuild/linux-ppc64': 0.25.5 - '@esbuild/linux-riscv64': 0.25.5 - '@esbuild/linux-s390x': 0.25.5 - '@esbuild/linux-x64': 0.25.5 - '@esbuild/netbsd-arm64': 0.25.5 - '@esbuild/netbsd-x64': 0.25.5 - '@esbuild/openbsd-arm64': 0.25.5 - '@esbuild/openbsd-x64': 0.25.5 - '@esbuild/sunos-x64': 0.25.5 - '@esbuild/win32-arm64': 0.25.5 - '@esbuild/win32-ia32': 0.25.5 - '@esbuild/win32-x64': 0.25.5 - - esbuild@0.27.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.1 - '@esbuild/android-arm': 0.27.1 - '@esbuild/android-arm64': 0.27.1 - '@esbuild/android-x64': 0.27.1 - '@esbuild/darwin-arm64': 0.27.1 - '@esbuild/darwin-x64': 0.27.1 - '@esbuild/freebsd-arm64': 0.27.1 - '@esbuild/freebsd-x64': 0.27.1 - '@esbuild/linux-arm': 0.27.1 - '@esbuild/linux-arm64': 0.27.1 - '@esbuild/linux-ia32': 0.27.1 - '@esbuild/linux-loong64': 0.27.1 - '@esbuild/linux-mips64el': 0.27.1 - '@esbuild/linux-ppc64': 0.27.1 - '@esbuild/linux-riscv64': 0.27.1 - '@esbuild/linux-s390x': 0.27.1 - '@esbuild/linux-x64': 0.27.1 - '@esbuild/netbsd-arm64': 0.27.1 - '@esbuild/netbsd-x64': 0.27.1 - '@esbuild/openbsd-arm64': 0.27.1 - '@esbuild/openbsd-x64': 0.27.1 - '@esbuild/openharmony-arm64': 0.27.1 - '@esbuild/sunos-x64': 0.27.1 - '@esbuild/win32-arm64': 0.27.1 - '@esbuild/win32-ia32': 0.27.1 - '@esbuild/win32-x64': 0.27.1 - - escalade@3.2.0: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - eslint-compat-utils@0.5.1(eslint@9.39.1(jiti@2.6.1)): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - semver: 7.7.3 - - eslint-compat-utils@0.6.5(eslint@9.39.1(jiti@2.6.1)): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - semver: 7.7.3 - - eslint-config-flat-gitignore@1.0.1(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@eslint/compat': 1.3.0(eslint@9.39.1(jiti@2.6.1)) - eslint: 9.39.1(jiti@2.6.1) - - eslint-flat-config-utils@0.4.0: - dependencies: - pathe: 1.1.2 - - eslint-flat-config-utils@1.1.0: - dependencies: - pathe: 2.0.3 - - eslint-import-context@0.1.8(unrs-resolver@1.9.0): - dependencies: - get-tsconfig: 4.10.1 - stable-hash-x: 0.1.1 - optionalDependencies: - unrs-resolver: 1.9.0 - - eslint-json-compat-utils@0.2.1(eslint@9.39.1(jiti@2.6.1))(jsonc-eslint-parser@2.4.0): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - esquery: 1.6.0 - jsonc-eslint-parser: 2.4.0 - - eslint-merge-processors@1.0.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - - eslint-plugin-antfu@2.7.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@antfu/utils': 0.7.10 - eslint: 9.39.1(jiti@2.6.1) - - eslint-plugin-command@2.1.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@es-joy/jsdoccomment': 0.50.2 - eslint: 9.39.1(jiti@2.6.1) - - eslint-plugin-es-x@7.8.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.1 - eslint: 9.39.1(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@9.39.1(jiti@2.6.1)) - - eslint-plugin-import-x@4.15.2(@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@typescript-eslint/types': 8.34.0 - comment-parser: 1.4.1 - debug: 4.4.3 - eslint: 9.39.1(jiti@2.6.1) - eslint-import-context: 0.1.8(unrs-resolver@1.9.0) - is-glob: 4.0.3 - minimatch: 10.0.3 - semver: 7.7.3 - stable-hash-x: 0.1.1 - unrs-resolver: 1.9.0 - optionalDependencies: - '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - transitivePeerDependencies: - - supports-color - - eslint-plugin-jsdoc@50.8.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@es-joy/jsdoccomment': 0.50.2 - are-docs-informative: 0.0.2 - comment-parser: 1.4.1 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint: 9.39.1(jiti@2.6.1) - espree: 10.4.0 - esquery: 1.6.0 - parse-imports-exports: 0.2.4 - semver: 7.7.3 - spdx-expression-parse: 4.0.0 - transitivePeerDependencies: - - supports-color - - eslint-plugin-jsonc@2.20.1(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) - eslint: 9.39.1(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.1(jiti@2.6.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.39.1(jiti@2.6.1))(jsonc-eslint-parser@2.4.0) - espree: 10.4.0 - graphemer: 1.4.0 - jsonc-eslint-parser: 2.4.0 - natural-compare: 1.4.0 - synckit: 0.11.8 - transitivePeerDependencies: - - '@eslint/json' - - eslint-plugin-n@17.20.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - enhanced-resolve: 5.18.1 - eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@9.39.1(jiti@2.6.1)) - get-tsconfig: 4.10.1 - globals: 15.15.0 - ignore: 5.3.2 - minimatch: 9.0.5 - semver: 7.7.3 - ts-declaration-location: 1.0.7(typescript@5.9.3) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-no-only-tests@3.3.0: {} - - eslint-plugin-perfectionist@4.14.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@typescript-eslint/types': 8.34.0 - '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - natural-orderby: 5.0.0 - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-regexp@2.9.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.1 - comment-parser: 1.4.1 - eslint: 9.39.1(jiti@2.6.1) - jsdoc-type-pratt-parser: 4.1.0 - refa: 0.12.1 - regexp-ast-analysis: 0.7.1 - scslre: 0.3.0 - - eslint-plugin-toml@0.12.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - debug: 4.4.3 - eslint: 9.39.1(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.1(jiti@2.6.1)) - lodash: 4.17.21 - toml-eslint-parser: 0.10.0 - transitivePeerDependencies: - - supports-color - - eslint-plugin-unicorn@56.0.1(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) - ci-info: 4.2.0 - clean-regexp: 1.0.0 - core-js-compat: 3.43.0 - eslint: 9.39.1(jiti@2.6.1) - esquery: 1.6.0 - globals: 15.15.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.1 - jsesc: 3.1.0 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.27 - regjsparser: 0.10.0 - semver: 7.7.3 - strip-indent: 3.0.0 - - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - - eslint-plugin-vue@9.33.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) - eslint: 9.39.1(jiti@2.6.1) - globals: 13.24.0 - natural-compare: 1.4.0 - nth-check: 2.1.1 - postcss-selector-parser: 6.1.2 - semver: 7.7.3 - vue-eslint-parser: 9.4.3(eslint@9.39.1(jiti@2.6.1)) - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - supports-color - - eslint-plugin-yml@1.18.0(eslint@9.39.1(jiti@2.6.1)): - dependencies: - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint: 9.39.1(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.1(jiti@2.6.1)) - natural-compare: 1.4.0 - yaml-eslint-parser: 1.3.0 - transitivePeerDependencies: - - supports-color - - eslint-processor-vue-blocks@1.0.0(@vue/compiler-sfc@3.5.16)(eslint@9.39.1(jiti@2.6.1)): - dependencies: - '@vue/compiler-sfc': 3.5.16 - eslint: 9.39.1(jiti@2.6.1) - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@8.4.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint@9.39.1(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.39.1 - '@eslint/plugin-kit': 0.4.1 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - - esno@4.8.0: - dependencies: - tsx: 4.20.3 - - espree@10.4.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - - espree@9.6.1: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - estree-walker@2.0.2: {} - - esutils@2.0.3: {} - - exsolve@1.0.5: {} - - exsolve@1.0.8: {} - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fault@2.0.1: - dependencies: - format: 0.2.2 - - fdir@6.4.6(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.17 - mlly: 1.7.4 - rollup: 4.43.0 - - flat-cache@4.0.1: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - - flatted@3.3.3: {} - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - format@0.2.2: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - get-caller-file@2.0.5: {} - - get-tsconfig@4.10.1: - dependencies: - resolve-pkg-maps: 1.0.0 - - giget@2.0.0: - dependencies: - citty: 0.1.6 - consola: 3.4.2 - defu: 6.1.4 - node-fetch-native: 1.6.6 - nypm: 0.6.2 - pathe: 2.0.3 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@10.4.5: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globals@14.0.0: {} - - globals@15.15.0: {} - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - has-flag@4.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hookified@1.13.0: {} - - hosted-git-info@2.8.9: {} - - ignore@5.3.2: {} - - ignore@7.0.5: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - is-arrayish@0.2.1: {} - - is-builtin-module@3.2.1: - dependencies: - builtin-modules: 3.3.0 - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-docker@3.0.0: {} - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-in-ssh@1.0.0: {} - - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - - is-number@7.0.0: {} - - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - - isexe@2.0.0: {} - - isomorphic-ws@5.0.0(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)): - dependencies: - ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jiti@2.6.1: {} - - joycon@3.1.1: {} - - js-tokens@4.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsdoc-type-pratt-parser@4.1.0: {} - - jsesc@0.5.0: {} - - jsesc@3.1.0: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - jsonc-eslint-parser@2.4.0: - dependencies: - acorn: 8.15.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - semver: 7.7.3 - - jssha@3.3.1: {} - - keyv-file@5.3.3: - dependencies: - '@keyv/serialize': 1.1.1 - tslib: 1.14.1 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - keyv@5.5.5: - dependencies: - '@keyv/serialize': 1.1.1 - - kleur@3.0.3: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - load-tsconfig@0.2.5: {} - - local-pkg@0.5.1: - dependencies: - mlly: 1.7.4 - pkg-types: 1.3.1 - - local-pkg@1.1.1: - dependencies: - mlly: 1.7.4 - pkg-types: 2.1.0 - quansync: 0.2.10 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - - lodash@4.17.21: {} - - longest-streak@3.1.0: {} - - lru-cache@10.4.3: {} - - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - markdown-table@3.0.4: {} - - mdast-util-find-and-replace@3.0.2: - dependencies: - '@types/mdast': 4.0.4 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - mdast-util-from-markdown@2.0.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-frontmatter@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-extension-frontmatter: 2.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-autolink-literal@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.2 - micromark-util-character: 2.1.1 - - mdast-util-gfm-footnote@2.1.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-util-normalize-identifier: 2.0.1 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-strikethrough@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-table@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-task-list-item@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm@3.1.0: - dependencies: - mdast-util-from-markdown: 2.0.2 - mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 - - mdast-util-to-markdown@2.1.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - merge2@1.4.1: {} - - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-frontmatter@2.0.0: - dependencies: - fault: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-autolink-literal@2.1.0: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-footnote@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-strikethrough@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-table@2.1.1: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-tagfilter@2.0.0: - dependencies: - micromark-util-types: 2.0.2 - - micromark-extension-gfm-task-list-item@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm@3.0.0: - dependencies: - micromark-extension-gfm-autolink-literal: 2.1.0 - micromark-extension-gfm-footnote: 2.1.0 - micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 - micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-destination@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-label@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-space@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - - micromark-factory-title@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-whitespace@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-character@2.1.1: - dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-chunked@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-classify-character@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-combine-extensions@2.0.1: - dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-decode-numeric-character-reference@2.0.2: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-decode-string@2.0.1: - dependencies: - decode-named-character-reference: 1.2.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 - - micromark-util-encode@2.0.1: {} - - micromark-util-html-tag-name@2.0.1: {} - - micromark-util-normalize-identifier@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-resolve-all@2.0.1: - dependencies: - micromark-util-types: 2.0.2 - - micromark-util-sanitize-uri@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 - - micromark-util-subtokenize@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-symbol@2.0.1: {} - - micromark-util-types@2.0.2: {} - - micromark@4.0.2: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.3 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - min-indent@1.0.1: {} - - minimatch@10.0.3: - dependencies: - '@isaacs/brace-expansion': 5.0.0 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - - minipass@7.1.2: {} - - mlly@1.7.4: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - - ms@2.1.3: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.11: {} - - napi-postinstall@0.2.4: {} - - natural-compare@1.4.0: {} - - natural-orderby@5.0.0: {} - - node-fetch-native@1.6.6: {} - - node-gyp-build@4.8.4: - optional: true - - node-releases@2.0.19: {} - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - nypm@0.6.2: - dependencies: - citty: 0.1.6 - consola: 3.4.2 - pathe: 2.0.3 - pkg-types: 2.3.0 - tinyexec: 1.0.1 - - object-assign@4.1.1: {} - - ohash@2.0.11: {} - - open@11.0.0: - dependencies: - default-browser: 5.4.0 - define-lazy-prop: 3.0.0 - is-in-ssh: 1.0.0 - is-inside-container: 1.0.0 - powershell-utils: 0.1.0 - wsl-utils: 0.3.0 - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-try@2.2.0: {} - - package-json-from-dist@1.0.1: {} - - package-manager-detector@1.3.0: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-gitignore@2.0.0: {} - - parse-imports-exports@0.2.4: - dependencies: - parse-statements: 1.0.11 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.27.1 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-statements@1.0.11: {} - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - pathe@1.1.2: {} - - pathe@2.0.3: {} - - perfect-debounce@2.0.0: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pirates@4.0.7: {} - - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.3 - - pkg-types@2.1.0: - dependencies: - confbox: 0.2.2 - exsolve: 1.0.5 - pathe: 2.0.3 - - pkg-types@2.3.0: - dependencies: - confbox: 0.2.2 - exsolve: 1.0.8 - pathe: 2.0.3 - - pluralize@8.0.0: {} - - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.5)(tsx@4.20.3)(yaml@2.8.0): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - jiti: 2.6.1 - postcss: 8.5.5 - tsx: 4.20.3 - yaml: 2.8.0 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss@8.5.5: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - powershell-utils@0.1.0: {} - - prelude-ls@1.2.1: {} - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - punycode@2.3.1: {} - - quansync@0.2.10: {} - - queue-microtask@1.2.3: {} - - rc9@2.1.2: - dependencies: - defu: 6.1.4 - destr: 2.0.5 - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - readdirp@4.1.2: {} - - refa@0.12.1: - dependencies: - '@eslint-community/regexpp': 4.12.1 - - regexp-ast-analysis@0.7.1: - dependencies: - '@eslint-community/regexpp': 4.12.1 - refa: 0.12.1 - - regexp-tree@0.1.27: {} - - regjsparser@0.10.0: - dependencies: - jsesc: 0.5.0 - - require-directory@2.1.1: {} - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve-pkg-maps@1.0.0: {} - - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.1.0: {} - - rollup@4.43.0: - dependencies: - '@types/estree': 1.0.7 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.43.0 - '@rollup/rollup-android-arm64': 4.43.0 - '@rollup/rollup-darwin-arm64': 4.43.0 - '@rollup/rollup-darwin-x64': 4.43.0 - '@rollup/rollup-freebsd-arm64': 4.43.0 - '@rollup/rollup-freebsd-x64': 4.43.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.43.0 - '@rollup/rollup-linux-arm-musleabihf': 4.43.0 - '@rollup/rollup-linux-arm64-gnu': 4.43.0 - '@rollup/rollup-linux-arm64-musl': 4.43.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.43.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.43.0 - '@rollup/rollup-linux-riscv64-gnu': 4.43.0 - '@rollup/rollup-linux-riscv64-musl': 4.43.0 - '@rollup/rollup-linux-s390x-gnu': 4.43.0 - '@rollup/rollup-linux-x64-gnu': 4.43.0 - '@rollup/rollup-linux-x64-musl': 4.43.0 - '@rollup/rollup-win32-arm64-msvc': 4.43.0 - '@rollup/rollup-win32-ia32-msvc': 4.43.0 - '@rollup/rollup-win32-x64-msvc': 4.43.0 - fsevents: 2.3.3 - - run-applescript@7.0.0: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 - optional: true - - scslre@0.3.0: - dependencies: - '@eslint-community/regexpp': 4.12.1 - refa: 0.12.1 - regexp-ast-analysis: 0.7.1 - - semver@5.7.2: {} - - semver@7.7.2: {} - - semver@7.7.3: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@4.1.0: {} - - sisteransi@1.0.5: {} - - source-map-js@1.2.1: {} - - source-map@0.7.6: {} - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - - spdx-expression-parse@4.0.0: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - - spdx-license-ids@3.0.21: {} - - stable-hash-x@0.1.1: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@3.1.1: {} - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.7 - ts-interface-checker: 0.1.13 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - synckit@0.11.8: - dependencies: - '@pkgr/core': 0.2.7 - - tapable@2.2.2: {} - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - tinyexec@0.3.2: {} - - tinyexec@1.0.1: {} - - tinyglobby@0.2.14: - dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toml-eslint-parser@0.10.0: - dependencies: - eslint-visitor-keys: 3.4.3 - - totp-generator@2.0.0: - dependencies: - jssha: 3.3.1 - - tree-kill@1.2.2: {} - - ts-api-utils@2.1.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - - ts-declaration-location@1.0.7(typescript@5.9.3): - dependencies: - picomatch: 4.0.2 - typescript: 5.9.3 - - ts-interface-checker@0.1.13: {} - - tslib@1.14.1: {} - - tslib@2.8.1: - optional: true - - tsup@8.5.1(jiti@2.6.1)(postcss@8.5.5)(tsx@4.20.3)(typescript@5.9.3)(yaml@2.8.0): - dependencies: - bundle-require: 5.1.0(esbuild@0.27.1) - cac: 6.7.14 - chokidar: 4.0.3 - consola: 3.4.2 - debug: 4.4.3 - esbuild: 0.27.1 - fix-dts-default-cjs-exports: 1.0.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.5)(tsx@4.20.3)(yaml@2.8.0) - resolve-from: 5.0.0 - rollup: 4.43.0 - source-map: 0.7.6 - sucrase: 3.35.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tree-kill: 1.2.2 - optionalDependencies: - postcss: 8.5.5 - typescript: 5.9.3 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - - tsx@4.20.3: - dependencies: - esbuild: 0.25.5 - get-tsconfig: 4.10.1 - optionalDependencies: - fsevents: 2.3.3 - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.20.2: {} - - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - - typed-emitter@2.1.0: - optionalDependencies: - rxjs: 7.8.2 - - typescript@5.9.3: {} - - ufo@1.6.1: {} - - undici-types@7.16.0: {} - - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - - unrs-resolver@1.9.0: - dependencies: - napi-postinstall: 0.2.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.9.0 - '@unrs/resolver-binding-android-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-arm64': 1.9.0 - '@unrs/resolver-binding-darwin-x64': 1.9.0 - '@unrs/resolver-binding-freebsd-x64': 1.9.0 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.0 - '@unrs/resolver-binding-linux-arm64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-arm64-musl': 1.9.0 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-riscv64-musl': 1.9.0 - '@unrs/resolver-binding-linux-s390x-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-gnu': 1.9.0 - '@unrs/resolver-binding-linux-x64-musl': 1.9.0 - '@unrs/resolver-binding-wasm32-wasi': 1.9.0 - '@unrs/resolver-binding-win32-arm64-msvc': 1.9.0 - '@unrs/resolver-binding-win32-ia32-msvc': 1.9.0 - '@unrs/resolver-binding-win32-x64-msvc': 1.9.0 - - update-browserslist-db@1.1.3(browserslist@4.25.0): - dependencies: - browserslist: 4.25.0 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - utf-8-validate@5.0.10: - dependencies: - node-gyp-build: 4.8.4 - optional: true - - util-deprecate@1.0.2: {} - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - vue-eslint-parser@9.4.3(eslint@9.39.1(jiti@2.6.1)): - dependencies: - debug: 4.4.3 - eslint: 9.39.1(jiti@2.6.1) - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - lodash: 4.17.21 - semver: 7.7.3 - transitivePeerDependencies: - - supports-color - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.9 - utf-8-validate: 5.0.10 - - wsl-utils@0.3.0: - dependencies: - is-wsl: 3.1.0 - powershell-utils: 0.1.0 - - xml-name-validator@4.0.0: {} - - y18n@5.0.8: {} - - yaml-eslint-parser@1.3.0: - dependencies: - eslint-visitor-keys: 3.4.3 - yaml: 2.8.0 - - yaml@2.8.0: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yocto-queue@0.1.0: {} - - zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml deleted file mode 100644 index d0b4654..0000000 --- a/pnpm-workspace.yaml +++ /dev/null @@ -1,3 +0,0 @@ -packages: - - ./example - - ./ \ No newline at end of file diff --git a/src/application.ts b/src/application.ts deleted file mode 100644 index ebf4816..0000000 --- a/src/application.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { defaultUserAgent } from "./lib/metadata"; - -export interface VRChatApplication { - /** - * The name of your application. - */ - name: string; - /** - * The version of your application. - * - * [Semantic versioning](https://semver.org/) is recommended, e.g. `1.0.0`, but commit hashes or other identifiers are also acceptable. - */ - version: string; - /** - * An email, or a URL to a support page. - */ - contact: string; -} - -export function isApplication(application: VRChatApplication): boolean { - return ( - !!application - && !!application.name - && !!application.version - && !!application.contact - // Catch common mistakes, like forgetting to change the example. - && !application.contact.includes("@example.com") - && !application.contact.includes("\n") - ); -} - -export function getApplicationAgent({ name, version, contact }: VRChatApplication): string { - return `${name}/${version} (${contact})`; -} - -export function getUserAgent(application: VRChatApplication): string { - return `${getApplicationAgent(application)}, ${defaultUserAgent}`; -} diff --git a/src/client.ts b/src/client.ts deleted file mode 100644 index 199a108..0000000 --- a/src/client.ts +++ /dev/null @@ -1,356 +0,0 @@ -import { Cacheable, CacheableHooks } from "cacheable"; -import Keyv from "keyv"; -import { TOTP } from "totp-generator"; - -import { getUserAgent, isApplication } from "./application"; -import { fail, VRChatError } from "./error"; -import { createClient, createConfig } from "./generated/client"; -import type { Client } from "./generated/client"; -import type { Options } from "./generated/sdk.gen"; -import { VRChatInternal } from "./generated/sdk.gen"; -import type { Cookie } from "./lib/cookie"; -import { - isCookieValid, - parseSetCookie, - serializeCookies, - toCookiesObject -} from "./lib/cookie"; -import { isUser, requiresTwoFactorAuth } from "./lib/guards"; -import type { Lazy } from "./lib/lazy"; -import { collapse } from "./lib/lazy"; -import { log } from "./lib/log"; -import { authenticateSymbol } from "./lib/symbols"; -import type { LoginCredentials, LoginOptions, LoginResult, VRChatOptions } from "./types"; -import { VRChatWebsocket } from "./websocket"; - -export const logCache = log.extend("cache"); -export const logHttp = log.extend("http"); - -export class VRChat extends VRChatInternal { - private cache: Cacheable; - - private credentials?: Lazy; - private authenticatePromise?: Promise; - - public readonly client: Client; - public readonly pipeline: VRChatWebsocket; - - public constructor(public readonly options: VRChatOptions) { - const { - application, - authentication, - keyv, - verbose, - pipeline: websocketOptions, - ...clientOptions - } = options; - - if (!isApplication(application)) - throw VRChatError.from("You must provide an application name, version, and contact information."); - - const headers = new Headers(clientOptions.headers as HeadersInit); - headers.set("user-agent", getUserAgent(application)); - - const client = createClient(createConfig({ - baseUrl: "https://api.vrchat.cloud/api/1", - ...clientOptions, - headers - })); - - super({ client }); - this.client = client; - - if (verbose) { - log.enabled = true; - logCache.enabled = true; - } - - this.cache = new Cacheable({ - nonBlocking: true, - secondary: - keyv - ? keyv instanceof Keyv - ? keyv - : new Keyv({ - store: keyv - }) - : undefined - }); - - process.on("beforeExit", () => this.cache.disconnect()); - - const { interceptors } = client; - - if (log.enabled) { - interceptors.request.use(async (request, options) => { - const clone = request.clone(); - - logHttp( - "%s %s %O", - request.method, - request.url.slice((options.baseUrl as string).length), - await clone.json().catch(() => clone.text()) - ); - - return request; - }); - - interceptors.response.use(async (response, request, options) => { - const clone = response.clone(); - - logHttp( - "%s %s %o %s %O", - request.method, - request.url.slice((options.baseUrl as string).length), - clone.status, - clone.statusText, - await clone.json().catch(() => clone.text()) - ); - - return response; - }); - } - - if (logCache.enabled) { - this.cache.onHooks( - Object - .values(CacheableHooks) - .map((event) => ({ - event, - handler: (data) => logCache(`%s %O`, event.toLowerCase(), data) - })) - ); - } - - interceptors.request.use(async (request, options) => { - const { meta = {} } = options as Options as { meta?: Record }; - - // If the session is being refreshed, wait for the authentication to complete. - if (this.authenticatePromise && !meta[authenticateSymbol]) { - log("%Waiting for authentication to complete..."); - await this.authenticatePromise.catch(() => { }); - } - - if (request.credentials !== "omit") { - const cookies = await this.getCookies(); - if (!cookies.length) return request; - - request.headers.set("cookie", serializeCookies(cookies)); - } - - return request; - }); - - interceptors.response.use(async (response, request, options) => { - const { meta = {} } = options as Options as { meta?: Record }; - - await this.saveCookies(response.headers); - - if (response.status === 401 && !meta[authenticateSymbol]) { - const error = VRChatError.from(await response.clone().json()); - const partial = error.message.toLowerCase() === "requires two-factor authentication"; - - const authenticationResult = await this.authenticate({ partial }); - if (!authenticationResult.data) - return Response.json( - authenticationResult.error.toResponseContent(), - authenticationResult.response - ); - - const { data, error: newError, response: newResponse } = (await this.client.request(options as any)); - return Response.json( - data || (newError as VRChatError)?.toResponseContent(), - newResponse - ); - } - - return response; - }); - - interceptors.error.use((reason, response, request) => VRChatError.from(reason, { request, response })); - - if (authentication) { - const { credentials, optimistic = true } = authentication; - this.setCredentials(credentials); - - // If the optimistic option is set, authenticate immediately. - if (optimistic) void this.authenticate({ partial: true }); - } - - this.pipeline = new VRChatWebsocket({ ...websocketOptions, headers }); - } - - public setCredentials(credentials?: Lazy): void { - this.credentials = credentials; - } - - private async authenticate({ partial = false }: { partial?: boolean } = {}): Promise { - const { authenticatePromise, credentials: _credentials } = this; - if (authenticatePromise) return authenticatePromise; - - log("%s(%O)", this.authenticate.name, { partial }); - - const { promise, resolve: _resolve } = Promise.withResolvers(); - - this.authenticatePromise = promise; - - const resolve = (value: LoginResult): LoginResult => { - _resolve(value); - this.authenticatePromise = undefined; - - return value; - }; - - const cookies = toCookiesObject(await this.getCookies()); - if (!cookies.auth) partial = false; - - if (cookies.auth) this.pipeline?.authenticate(cookies.auth.value); - - let value: LoginResult | undefined; - - if (partial) { - value = await this.getCurrentUser({ meta: { [authenticateSymbol]: true }, responseTransformer: undefined }); - if (isUser(value?.data)) { - return resolve(value); - } - } - - const credentials = await collapse(_credentials); - // @ts-expect-error: todo. - if (!credentials) return resolve(fail({ message: "Missing Credentials" })); - - log("%O", credentials); - - if (value && requiresTwoFactorAuth(value.data)) { - value = await this.loginWith2FA(value, credentials, { meta: { [authenticateSymbol]: true } }); - - if (value?.error) return resolve(value); - if (isUser(value?.data)) return resolve(value); - } - - value = await this.login({ ...credentials, meta: { [authenticateSymbol]: true } }); - if (isUser(value?.data)) return resolve(value); - - return resolve(value); - } - - /** - * Logs in to the VRChat API using the provided credentials, and returns the current user. - * This method handles two-factor authentication if required using the provided `twoFactorCode` function or `totpSecret`. - * - * @param options - The login options, including username, password, and optional two-factor authentication details. - * @returns A promise that resolves to the current user data, or an error if the login fails. - */ - public async login( - options: LoginOptions - ): Promise> { - const { username, password, totpSecret, twoFactorCode, ...rest } = options; - log("%s(%O)", this.login.name, { username, password, totpSecret, twoFactorCode, ...rest }); - - let value = await this.getCurrentUser({ - ...rest, - credentials: "omit", - responseTransformer: undefined, - headers: { - authorization: `Basic ${btoa(`${encodeURIComponent(username)}:${encodeURIComponent(password)}`)}` - } - }); - - if (!value.data) return value; - - if (requiresTwoFactorAuth(value.data)) - value = await this.loginWith2FA(value, { totpSecret, twoFactorCode }, options); - - return value; - } - - private async loginWith2FA( - value: LoginResult, - { - totpSecret, - twoFactorCode - }: Pick, - options: Omit, keyof LoginCredentials> - ): Promise> { - log("%s(%O)", this.loginWith2FA.name, { value, totpSecret, twoFactorCode }); - - if (!requiresTwoFactorAuth(value.data)) - return value; - - const { throwOnError } = options; - const { data: { requiresTwoFactorAuth: twoFactorMethods }, request, response } = value; - - if (twoFactorMethods.includes("totp") && totpSecret && !twoFactorCode) - twoFactorCode = (await TOTP.generate(totpSecret)).otp; - - const code = await collapse(twoFactorCode) || ""; - - const factors = await Promise.all([ - twoFactorMethods.includes("totp") ? this.verify2Fa.bind(this) : undefined, - twoFactorMethods.includes("emailOtp") ? this.verify2FaEmailCode.bind(this) : undefined, - twoFactorMethods.includes("otp") ? this.verifyRecoveryCode.bind(this) : undefined - ].filter(Boolean).map((function_) => function_?.({ - ...options, - throwOnError: false, - body: { - code - } - }))); - - if (factors.length === 0) - // @ts-expect-error: todo. - return fail({ - throwOnError, - message: "Couldn't verify two-factor authentication, no valid methods found", - response, - request - }); - - // If all factors failed, return the first error. - if (factors.every((value) => !value?.data?.verified)) { - const factor = factors.find((factor) => factor?.error)!; - - if (throwOnError) throw factor.error; - // @ts-expect-error: todo. - return factor; - } - - // @ts-expect-error: todo. - return this.getCurrentUser(options); - } - - /** - * Alias for `vrchat.pipeline.on(...)`. - */ - public get on(): VRChatWebsocket["on"] { - return this.pipeline.on.bind(this.pipeline); - } - - private async getCookies(): Promise> { - const allCookies = await this.cache.get>("cookies"); - if (!allCookies) return []; - - const cookies = allCookies.filter(isCookieValid); - - return cookies; - } - - private async saveCookies(headers: Headers): Promise { - const newCookies = headers.getSetCookie().map(parseSetCookie); - if (!newCookies.length) return; - - const cookies = Object.values( - Object - .fromEntries([ - // A race-condition may occur here, but it is unlikely to cause issues. - // If it does, some cookies may be lost, but the most recent ones will be saved. - ...(await this.getCookies()), - ...newCookies - ] - .filter(isCookieValid) - .map((cookie) => [cookie.name, cookie] as const)) - ); - - await this.cache.set("cookies", cookies); - } -} diff --git a/src/error.ts b/src/error.ts deleted file mode 100644 index 8210594..0000000 --- a/src/error.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { VRChat } from "./client"; -import { client } from "./generated/client.gen"; -import { tryJsonParse } from "./lib/json"; - -/** - * @internal - */ -interface VRChatErrorOptions { - message: string; - response: Response; - request: Request; -} - -export class VRChatError extends Error { - public request: Request; - public response: Response; - - public get statusCode(): number { - return this.response.status ?? 0; - } - - public get unauthorized(): boolean { - return this.statusCode === 401; - } - - /** - * Creates a new `VRChatError` instance from a value. - * - * This method is used to convert various types of error values into a consistent `VRChatError` instance. - * It can handle `Error` instances, strings, and objects with a `message` property. - * If the value is already a `VRChatError`, it will return it as is. - * - * @internal - */ - public static from(value: unknown, { request, response }: Partial> = {}): VRChatError { - if (value instanceof VRChatError) - return value; - - request ??= new Request(client.getConfig().baseUrl!); - response ??= new Response(); - - if (value instanceof Error) - return new VRChatError({ message: value.message, response, request, cause: value }); - - if (typeof value == "string") - return new VRChatError({ message: value, response, request }); - - if (typeof value == "object" && value) { - if ("message" in value && typeof value.message === "string") - return new VRChatError({ message: value.message, response, request, cause: value }); - - if ("error" in value && typeof value.error === "object" && value.error) { - if ("message" in value.error && typeof value.error.message === "string") { - // VRChat sometimes JSON-encodes the error message, so we try to parse it, then stringify it. - return new VRChatError({ message: String(tryJsonParse(value.error.message)), response, request, cause: value }); - } - } - } - - // Last resort, try to stringify the reason. - return new VRChatError({ message: JSON.stringify(value), response, request, cause: value }); - } - - private constructor({ message, request, response, cause }: { cause?: unknown } & VRChatErrorOptions) { - super(message, { cause }); - - this.request = request; - this.response = response; - - this.name = "VRChatError"; - Error.captureStackTrace(this, VRChat); - } - - public toResponseContent(): { error: { message: string; status_code: number } } { - return { - error: { - message: this.message, - status_code: this.statusCode, - } - }; - } -} - -export function fail({ message, request, response, throwOnError }: { throwOnError?: boolean } & VRChatErrorOptions): { data: undefined; error: VRChatError; request: Request; response: Response } { - const error = VRChatError.from(message, { request, response }); - if (throwOnError) throw error; - - return { - data: undefined, - error, - request: error.request, - response: error.response - }; -} diff --git a/src/events.ts b/src/events.ts deleted file mode 100644 index 00a8a49..0000000 --- a/src/events.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { - GroupMember, - GroupRole -} from "./types"; - -export interface EventData { - "group-member-updated": { member: GroupMember }; - "group-role-updated": { role: GroupRole }; -} - -export type Events = { [K in keyof EventData]: (data: EventData[K]) => void; } & { - // todo: remove this once we've strictly typed all events. - [K: string]: (data: unknown) => void; -}; diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index f755415..0000000 --- a/src/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { VRChat } from "./client"; -export { VRChatError } from "./error"; - -export { version } from "./lib/metadata"; -export * from "./types"; diff --git a/src/lib/cookie.ts b/src/lib/cookie.ts deleted file mode 100644 index 5e77636..0000000 --- a/src/lib/cookie.ts +++ /dev/null @@ -1,54 +0,0 @@ -export interface Cookie { - name: string; - value: string; - /** - * The expiration time of the cookie in milliseconds since the epoch. - * If the cookie does not expire, this will be `null`. - */ - expires: number | null; - options: Record; -} - -/** - * Parses a Set-Cookie header string into a Cookie object. - * - * @param cookie - The Set-Cookie header string to parse. - * @returns A Cookie object containing the name, value, expiration time, and options. - * - * @see [Set-Cookie header on MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) - */ -export function parseSetCookie(cookie: string): Cookie { - const [name, ...rest] = cookie.split("=") as [string, ...Array]; - const [value, ..._options] = rest.join("=").split(";") as [string, ...Array]; - - const options = Object.fromEntries(_options.map((option) => { - const [name, value] = option.split("=") as [string, string]; - return [name.trim().toLowerCase(), value]; - })) as Record; - - // If both Expires and Max-Age are set, Max-Age has precedence. - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#max-agenumber - const expires = options["max-age"] - ? Date.now() + Number(options["max-age"]) * 1000 - : options.expires - ? new Date(options.expires).getTime() - : null; - - return { name, value, expires, options }; -} - -export function serializeCookie({ name, value }: Pick): string { - return `${name}=${value}`; -} - -export function serializeCookies(cookies: Array): string { - return cookies.map(serializeCookie).join("; "); -} - -export function toCookiesObject(cookies: Array): Record { - return Object.fromEntries(cookies.map((cookie) => [cookie.name, cookie] as const)); -} - -export function isCookieValid(cookie: Cookie): boolean { - return cookie.expires === null || cookie.expires > Date.now(); -} diff --git a/src/lib/guards.ts b/src/lib/guards.ts deleted file mode 100644 index f3358dd..0000000 --- a/src/lib/guards.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { TwoFactorMethods } from "../types"; - -export function requiresTwoFactorAuth(data?: unknown): data is { requiresTwoFactorAuth: Array } { - return !!data && typeof data === "object" && "requiresTwoFactorAuth" in data && Array.isArray(data.requiresTwoFactorAuth); -} - -export function isUser(data?: unknown): data is { id: string } { - return !!data && typeof data === "object" && "id" in data && typeof data.id === "string"; -} diff --git a/src/lib/json.ts b/src/lib/json.ts deleted file mode 100644 index 6fabc9f..0000000 --- a/src/lib/json.ts +++ /dev/null @@ -1,8 +0,0 @@ -export function tryJsonParse(value: string): unknown { - try { - return JSON.parse(value); - } - catch { - return value; - } -} diff --git a/src/lib/lazy.ts b/src/lib/lazy.ts deleted file mode 100644 index 06d0ffd..0000000 --- a/src/lib/lazy.ts +++ /dev/null @@ -1,21 +0,0 @@ -export type MaybePromise = Promise | T; - -export type LazyFunction = () => MaybePromise; -export type Lazy = LazyFunction | MaybePromise; - -function isLazyFunction(value: Lazy): value is LazyFunction { - return typeof value === "function"; -} - -/** - * Collapse a lazy value into a promise. - * - * If the value is a function, it will be called and the result will be returned. - * If the value is already a promise or a non-function value, it will be returned as is. - * - * @param value The lazy value to collapse. - * @returns A promise that resolves to the value. - */ -export async function collapse(value: Lazy): Promise { - return isLazyFunction(value) ? value() : value; -} diff --git a/src/lib/log.ts b/src/lib/log.ts deleted file mode 100644 index 87fa90b..0000000 --- a/src/lib/log.ts +++ /dev/null @@ -1,3 +0,0 @@ -import debug from "debug"; - -export const log = debug("vrchat"); diff --git a/src/lib/metadata.ts b/src/lib/metadata.ts deleted file mode 100644 index c096a08..0000000 --- a/src/lib/metadata.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { bugs, displayName, homepage, version } from "../../package.json"; -import { getApplicationAgent } from "../application"; - -export const defaultUserAgent = getApplicationAgent({ - name: displayName, - version, - contact: homepage -}); - -export const issueUrl = bugs.url; -export { version }; diff --git a/src/lib/symbols.ts b/src/lib/symbols.ts deleted file mode 100644 index 3638465..0000000 --- a/src/lib/symbols.ts +++ /dev/null @@ -1 +0,0 @@ -export const authenticateSymbol = Symbol("authenticate"); diff --git a/src/types.ts b/src/types.ts deleted file mode 100644 index 817f0d0..0000000 --- a/src/types.ts +++ /dev/null @@ -1,77 +0,0 @@ -import type { KeyvStoreAdapter } from "keyv"; -import type Keyv from "keyv"; - -import type { VRChatApplication } from "./application"; -import type { createConfig, Options, RequestResult } from "./generated/client"; -import type { Lazy } from "./lib/lazy"; -import type { GetCurrentUser, GetCurrentUserErrors, GetCurrentUserResponses } from "./types"; -import type { VRChatWebsocketOptions } from "./websocket"; - -export interface VRChatAuthentication { - /** - * The credentials to use for the VRChat API. - * - * If not provided, the user must be logged in using the `login` method. - * If provided, this will be used to authenticate the user automatically. - */ - credentials?: Lazy; - /** - * If set to `true`, the client will attempt to authenticate immediately after being created. - * If set to `false`, the client will only re-authenticate on request failure (e.g. 401 Unauthorized). - * @default true - */ - optimistic?: boolean; -} - -export interface VRChatOptions extends Omit[0]>, "body" | "bodySerializer" | "credentials" | "global" | "method" | "mode" | "parseAs" | "querySerializer"> { - /** - * When using the VRChat API, you must provide an application name, version, and contact information. - * This is used to identify your application to VRChat, and to provide support if needed. - */ - application: VRChatApplication; - authentication?: VRChatAuthentication; - pipeline?: VRChatWebsocketOptions; - /** - * A [Keyv-compatible adapter](https://npm.im/keyv#official-storage-adapters) for caching & persistent sessions. - */ - keyv?: Keyv | KeyvStoreAdapter | Map; - /** - * If set to `true`, this client will log debug information to the console. - * This is useful for debugging, but **will expose sensitive information**. - * @default false - */ - verbose?: boolean; -} - -export const TwoFactorMethods = ["totp", "otp", "emailOtp"] as const; -export type TwoFactorMethods = (typeof TwoFactorMethods)[number]; - -export interface LoginCredentials { - /** - * The username or email of the VRChat account. - */ - username: string; - /** - * The password of the VRChat account. - */ - password: string; - /** - * The secret key for two-factor authentication, useful for service accounts & automated workflows. - * If this is a user-initiated login, don't use this. - * - * Equivalent to ``twoFactorCode: TOTP.generate(totpSecret).otp``. - */ - totpSecret?: string; - /** - * If provided, this function will be called to generate the two-factor authentication code. - * It overrides ``totpSecret`` if both are provided, ``totpSecret`` will be ignored. - * - * @returns The two-factor authentication code. - */ - twoFactorCode?: Lazy; -} - -export type LoginOptions = { meta?: Record } & LoginCredentials & Omit, "credentials" | "responseTransformer">; -export type LoginResult = Awaited>; - -export * from "./generated/types.gen"; diff --git a/src/websocket.ts b/src/websocket.ts deleted file mode 100644 index 2e055a1..0000000 --- a/src/websocket.ts +++ /dev/null @@ -1,87 +0,0 @@ -import EventEmitter from "node:events"; - -import WebSocket from "isomorphic-ws"; -import type TypedEventEmitter from "typed-emitter"; - -import type { VRChat } from "./client"; -import type { Events } from "./events"; -import { log } from "./lib/log"; - -const logWebsocket = log.extend("websocket"); -const baseUrl = "wss://pipeline.vrchat.cloud"; - -export interface VRChatWebsocketOptions { - baseUrl?: string; - headers?: Headers; - authToken?: string; -} - -export class VRChatWebsocket extends (EventEmitter as new () => TypedEventEmitter) { - private url!: URL; - private websocket?: WebSocket; - - public constructor( - public readonly options: VRChatWebsocketOptions = {}, - private readonly vrchat?: VRChat - ) { - super(); - - this.url = new URL(this.options.baseUrl ?? baseUrl); - - if (options.authToken) - this.authenticate(options.authToken); - - process.on("beforeExit", () => this.close()); - process.on("SIGINT", () => this.close()); - } - - public get connected(): boolean { - return this.websocket?.readyState === WebSocket.OPEN; - } - - public close(): void { - if (!this.websocket || this.websocket.readyState === WebSocket.CLOSED) - return; - - logWebsocket("%s()", this.close.name); - this.websocket.close(); - } - - public async authenticate(authToken: string): Promise { - logWebsocket("%s(authToken: \"%s\")", this.authenticate.name, authToken); - - this.close(); - this.url.searchParams.set("authToken", authToken); - - this.websocket = new WebSocket(this.url, { - headers: Object.fromEntries(this.options.headers?.entries() ?? []) - }); - - this.websocket.addEventListener("open", (event: WebSocket.Event) => { - logWebsocket("%s", event.type); - }); - - this.websocket.addEventListener("close", (event: WebSocket.CloseEvent) => { - logWebsocket("%s: %s", event.type, event.reason); - }); - - this.websocket.addEventListener("error", (event: WebSocket.ErrorEvent) => { - logWebsocket("%s: %O", event.type, event.error); - }); - - this.websocket.addEventListener("message", (event: WebSocket.MessageEvent) => { - try { - const { type, content: _content } = JSON.parse(event.data.toString()); - const content = JSON.parse(_content); - - logWebsocket("%s: %O", type, content); - - this.emit(type, content); - } - catch (reason) { - logWebsocket("Malformed message: %O", event.data); - logWebsocket(reason); - } - }); - } -} diff --git a/tsconfig.json b/tsconfig.json index 7882d5f..d953a37 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,115 +1,21 @@ { - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ - "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - "lib": [ - "esnext", - "dom", - "dom.iterable" - ], - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "libReplacement": true, /* Enable lib replacement. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - /* Modules */ - "module": "es2022", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "rewriteRelativeImportExtensions": true, /* Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "noUncheckedSideEffectImports": true, /* Check side effect imports. */ - "resolveJsonModule": true, - "types": [ - "node" - ], - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "strictBuiltinIteratorReturn": true, /* Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - /* Emit */ - "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./dist", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - "stripInternal": true, - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ - // "erasableSyntaxOnly": true, /* Do not allow runtime constructs that are not part of ECMAScript. */ - "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "include": [ - "./src/**/*" - ] + "compilerOptions": { + "declaration": true, + "target": "ES5", + "module": "commonjs", + "noImplicitAny": true, + "outDir": "dist", + "rootDir": ".", + "lib": [ + "es6", + "dom" + ], + "typeRoots": [ + "node_modules/@types" + ] + }, + "exclude": [ + "dist", + "node_modules" + ] } diff --git a/tsup.config.mjs b/tsup.config.mjs deleted file mode 100644 index 9bcd1b6..0000000 --- a/tsup.config.mjs +++ /dev/null @@ -1,20 +0,0 @@ -import { defineConfig } from "tsup"; - -export default defineConfig({ - entry: [ - "src/index.ts", - "src/websocket.ts", - "src/types.ts", - ], - format: [ - "esm", - "cjs" - ], - dts: true, - splitting: true, - sourcemap: true, - replaceNodeEnv: true, - clean: true, - treeshake: true, - outDir: "dist" -});