From 026169d0a6aefbd82aebe5e747de2c0d50943677 Mon Sep 17 00:00:00 2001 From: FrenchGithubUser Date: Tue, 9 Dec 2025 11:55:40 +0100 Subject: [PATCH] use openapi-generator (#421) --- backend/api/src/api_doc.rs | 3 +- .../src/handlers/artists/create_artists.rs | 2 +- .../src/handlers/collages/create_collage.rs | 2 +- .../api/src/handlers/collages/get_collage.rs | 3 +- .../conversations/get_conversation.rs | 2 +- backend/api/src/handlers/forum/get_forum.rs | 2 +- .../forum/get_forum_sub_category_threads.rs | 2 +- .../staff_pms/create_staff_pm_message.rs | 2 +- .../torrent_requests/get_torrent_request.rs | 2 +- .../torrents/download_dottorrent_file.rs | 2 +- backend/api/src/handlers/users/get_user.rs | 2 +- backend/api/src/handlers/users/warn_user.rs | 2 +- docs/src/architecture.md | 4 +- frontend/.env.docker | 10 +- frontend/.env.example | 2 +- .../openapi-generator.config.json | 4 + .../.openapi-generator/templates/api.mustache | 86 + frontend/.prettierignore | 2 +- frontend/eslint.config.ts | 2 +- frontend/openapitools.json | 7 + frontend/package-lock.json | 1513 ++- frontend/package.json | 1 + frontend/src/App.vue | 4 +- frontend/src/api-schema/schema.d.ts | 5177 -------- frontend/src/components/CssSheetList.vue | 4 +- frontend/src/components/MasterGroupLink.vue | 2 +- frontend/src/components/PaginatedResults.vue | 2 +- frontend/src/components/SearchBars.vue | 2 +- .../components/artist/AffiliatedArtist.vue | 2 +- .../components/artist/AffiliatedEntity.vue | 2 +- .../components/artist/ArtistFullHeader.vue | 2 +- .../src/components/artist/ArtistSearchBar.vue | 4 +- .../src/components/artist/ArtistSidebar.vue | 2 +- .../components/artist/ArtistSlimHeader.vue | 2 +- .../artist/EditAffiliatedArtists.vue | 11 +- .../components/artist/EditArtistDialog.vue | 2 +- .../components/artist/EditArtistsModal.vue | 22 +- frontend/src/components/auth/ApplyForm.vue | 4 +- frontend/src/components/auth/LoginForm.vue | 2 +- frontend/src/components/auth/RegisterForm.vue | 4 +- .../collage/AddCollagesToEntryDialog.vue | 4 +- .../collage/AddEntriesToCollageDialog.vue | 4 +- .../components/collage/CollageSearchBar.vue | 2 +- .../components/collage/CollageSearchForm.vue | 6 +- .../src/components/collage/CollageSidebar.vue | 2 +- .../src/components/collage/CollagesTable.vue | 2 +- .../components/community/GeneralComment.vue | 4 +- .../conversation/conversationMessages.vue | 2 +- .../CreateOrEditEditionGroup.vue | 3 +- .../CreateOrSelectEditionGroup.vue | 15 +- .../forum/AnnouncementComponent.vue | 2 +- .../forum/ForumCategoryOverview.vue | 2 +- .../components/forum/ForumSearchResults.vue | 2 +- .../ForumThreadPostsNotifications.vue | 4 +- .../components/series/SeriesFullHeader.vue | 2 +- .../components/series/SeriesSearchForm.vue | 2 +- .../src/components/series/SeriesSidebar.vue | 2 +- .../components/series/SeriesSlimHeader.vue | 2 +- .../src/components/series/SeriesTable.vue | 2 +- .../src/components/staff/UserApplication.vue | 4 +- .../src/components/staff/UserApplications.vue | 2 +- .../src/components/staff_pm/StaffPmsTable.vue | 4 +- .../title_group/CreateOrEditTitleGroup.vue | 21 +- .../title_group/CreateOrSelectTitleGroup.vue | 15 +- .../components/title_group/EmbeddedLinks.vue | 7 +- .../title_group/ExternalDBSearchBar.vue | 33 +- .../title_group/TitleGroupComments.vue | 4 +- .../title_group/TitleGroupFullHeader.vue | 4 +- .../components/title_group/TitleGroupList.vue | 3 +- .../TitleGroupPreviewCoverOnly.vue | 2 +- .../title_group/TitleGroupPreviewTable.vue | 2 +- .../title_group/TitleGroupRatings.vue | 2 +- .../title_group/TitleGroupSearchBar.vue | 4 +- .../title_group/TitleGroupSidebar.vue | 19 +- .../title_group/TitleGroupSlimHeader.vue | 3 +- .../title_group/TitleGroupTable.vue | 15 +- .../title_group/TitleGroupTagSearchBar.vue | 4 +- .../DeleteTitleGroupTagDialog.vue | 4 +- .../EditTitleGroupTagDialog.vue | 2 +- .../torrent/CreateOrEditTorrent.vue | 3 +- .../torrent/DeleteTorrentDialog.vue | 2 +- .../src/components/torrent/LatestTorrents.vue | 2 +- .../torrent/ReportTorrentDialog.vue | 4 +- .../torrent/TorrentSearchInputs.vue | 2 +- .../src/components/torrent/TorrentSlug.vue | 4 +- .../CreateOrEditTorrentRequest.vue | 3 +- .../torrent_request/TorrentRequestDetails.vue | 18 +- .../TorrentRequestSearchInputs.vue | 2 +- .../torrent_request/TorrentRequestSlug.vue | 3 +- .../TorrentRequestVoteInputs.vue | 2 +- .../TorrentRequestVotesTable.vue | 2 +- .../torrent_request/TorrentRequestsTable.vue | 3 +- .../src/components/user/EditUserDialog.vue | 2 +- frontend/src/components/user/PeerTable.vue | 2 +- .../components/user/SendInvitationDialog.vue | 4 +- frontend/src/components/user/UserSidebar.vue | 2 +- .../src/components/user/UsernameEnriched.vue | 2 +- .../src/components/user/WarnUserDialog.vue | 2 +- frontend/src/services/api-schema/.gitignore | 4 + frontend/src/services/api-schema/.npmignore | 1 + .../api-schema/.openapi-generator-ignore | 23 + .../api-schema/.openapi-generator/FILES | 8 + .../api-schema/.openapi-generator/VERSION | 1 + frontend/src/services/api-schema/api.ts | 10187 ++++++++++++++++ frontend/src/services/api-schema/base.ts | 62 + frontend/src/services/api-schema/common.ts | 113 + .../src/services/api-schema/configuration.ts | 121 + frontend/src/services/api-schema/git_push.sh | 57 + frontend/src/services/api-schema/index.ts | 18 + frontend/src/services/api/api.ts | 2 +- frontend/src/services/api/artistService.ts | 50 - frontend/src/services/api/authService.ts | 16 - frontend/src/services/api/collageService.ts | 46 - frontend/src/services/api/commentService.ts | 12 - .../src/services/api/conversationService.ts | 34 - frontend/src/services/api/cssSheetService.ts | 26 - .../src/services/api/editionGroupService.ts | 24 - frontend/src/services/api/entityService.ts | 3 - .../services/api/externalDatabasesService.ts | 26 - frontend/src/services/api/forumService.ts | 70 - frontend/src/services/api/homeService.ts | 12 - .../src/services/api/notificationService.ts | 8 - frontend/src/services/api/seriesService.ts | 28 - frontend/src/services/api/staffPmService.ts | 34 - .../src/services/api/subscriptionService.ts | 14 - .../src/services/api/titleGroupService.ts | 47 - .../src/services/api/titleGroupTagService.ts | 54 - .../src/services/api/torrentRequestService.ts | 26 - .../services/api/torrentRequestVoteService.ts | 12 - frontend/src/services/api/torrentService.ts | 66 +- .../services/api/userApplicationService.ts | 24 - frontend/src/services/api/userService.ts | 54 - frontend/src/services/api/wikiService.ts | 20 - frontend/src/services/helpers.ts | 6 +- frontend/src/stores/editionGroup.ts | 2 +- frontend/src/stores/titleGroup.ts | 2 +- frontend/src/stores/user.ts | 2 +- frontend/src/views/ArtistView.vue | 4 +- .../src/views/CreateOrEditCssSheetView.vue | 8 +- frontend/src/views/CreateOrEditSeriesView.vue | 18 +- frontend/src/views/HomeView.vue | 6 +- frontend/src/views/TitleGroupTagsView.vue | 2 +- frontend/src/views/TitleGroupView.vue | 16 +- frontend/src/views/TorrentSearchView.vue | 5 +- frontend/src/views/UploadTorrentView.vue | 11 +- frontend/src/views/UserSettingsView.vue | 3 +- frontend/src/views/UserView.vue | 3 +- .../src/views/collage/CollageSearchView.vue | 4 +- frontend/src/views/collage/CollageView.vue | 3 +- frontend/src/views/collage/NewCollageView.vue | 2 +- .../views/conversation/ConversationView.vue | 4 +- .../views/conversation/ConversationsView.vue | 4 +- .../conversation/NewConversationView.vue | 4 +- .../src/views/forum/ForumOverviewView.vue | 2 +- frontend/src/views/forum/ForumSearch.vue | 2 +- .../src/views/forum/ForumSubCategoryView.vue | 5 +- frontend/src/views/forum/ForumThreadView.vue | 27 +- .../src/views/forum/NewForumThreadView.vue | 4 +- .../src/views/series/SeriesSearchView.vue | 3 +- frontend/src/views/series/SeriesView.vue | 4 +- .../src/views/staff_pm/NewStaffPMView.vue | 4 +- frontend/src/views/staff_pm/StaffPmView.vue | 11 +- .../torrent_request/NewTorrentRequestView.vue | 3 +- .../TorrentRequestSearchView.vue | 2 +- .../torrent_request/TorrentRequestView.vue | 3 +- .../views/wiki/CreateOrEditWikiArticle.vue | 2 +- frontend/src/views/wiki/WikiView.vue | 2 +- 167 files changed, 12491 insertions(+), 6184 deletions(-) create mode 100644 frontend/.openapi-generator/openapi-generator.config.json create mode 100644 frontend/.openapi-generator/templates/api.mustache create mode 100644 frontend/openapitools.json delete mode 100644 frontend/src/api-schema/schema.d.ts create mode 100644 frontend/src/services/api-schema/.gitignore create mode 100644 frontend/src/services/api-schema/.npmignore create mode 100644 frontend/src/services/api-schema/.openapi-generator-ignore create mode 100644 frontend/src/services/api-schema/.openapi-generator/FILES create mode 100644 frontend/src/services/api-schema/.openapi-generator/VERSION create mode 100644 frontend/src/services/api-schema/api.ts create mode 100644 frontend/src/services/api-schema/base.ts create mode 100644 frontend/src/services/api-schema/common.ts create mode 100644 frontend/src/services/api-schema/configuration.ts create mode 100644 frontend/src/services/api-schema/git_push.sh create mode 100644 frontend/src/services/api-schema/index.ts delete mode 100644 frontend/src/services/api/artistService.ts delete mode 100644 frontend/src/services/api/authService.ts delete mode 100644 frontend/src/services/api/collageService.ts delete mode 100644 frontend/src/services/api/commentService.ts delete mode 100644 frontend/src/services/api/conversationService.ts delete mode 100644 frontend/src/services/api/cssSheetService.ts delete mode 100644 frontend/src/services/api/editionGroupService.ts delete mode 100644 frontend/src/services/api/entityService.ts delete mode 100644 frontend/src/services/api/externalDatabasesService.ts delete mode 100644 frontend/src/services/api/forumService.ts delete mode 100644 frontend/src/services/api/homeService.ts delete mode 100644 frontend/src/services/api/notificationService.ts delete mode 100644 frontend/src/services/api/seriesService.ts delete mode 100644 frontend/src/services/api/staffPmService.ts delete mode 100644 frontend/src/services/api/subscriptionService.ts delete mode 100644 frontend/src/services/api/titleGroupService.ts delete mode 100644 frontend/src/services/api/titleGroupTagService.ts delete mode 100644 frontend/src/services/api/torrentRequestService.ts delete mode 100644 frontend/src/services/api/torrentRequestVoteService.ts delete mode 100644 frontend/src/services/api/userApplicationService.ts delete mode 100644 frontend/src/services/api/userService.ts delete mode 100644 frontend/src/services/api/wikiService.ts diff --git a/backend/api/src/api_doc.rs b/backend/api/src/api_doc.rs index 8a9b4cc5..842065e8 100644 --- a/backend/api/src/api_doc.rs +++ b/backend/api/src/api_doc.rs @@ -107,6 +107,7 @@ use crate::handlers::{ crate::handlers::css_sheets::edit_css_sheet::exec, crate::handlers::css_sheets::get_css_sheet_content::exec, crate::handlers::css_sheets::get_css_sheets::exec, + crate::handlers::css_sheets::get_css_sheet::exec, crate::handlers::external_db::get_isbn_data::exec, crate::handlers::external_db::get_musicbrainz_data::exec, crate::handlers::external_db::get_tmdb_data::exec, @@ -122,7 +123,7 @@ use crate::handlers::{ TorrentSearch, ForumSearchQuery, SearchTitleGroupTagsLiteQuery, - SearchTitleGroupTagsQuery + SearchTitleGroupTagsQuery, ),) )] pub struct ApiDoc; diff --git a/backend/api/src/handlers/artists/create_artists.rs b/backend/api/src/handlers/artists/create_artists.rs index 8c351f40..9d8f8169 100644 --- a/backend/api/src/handlers/artists/create_artists.rs +++ b/backend/api/src/handlers/artists/create_artists.rs @@ -11,7 +11,7 @@ use arcadia_storage::{ #[utoipa::path( post, - operation_id = "Create artist", + operation_id = "Create artists", tag = "Artist", path = "/api/artists", security( diff --git a/backend/api/src/handlers/collages/create_collage.rs b/backend/api/src/handlers/collages/create_collage.rs index 4e9b966a..42043045 100644 --- a/backend/api/src/handlers/collages/create_collage.rs +++ b/backend/api/src/handlers/collages/create_collage.rs @@ -11,7 +11,7 @@ use arcadia_storage::{ #[utoipa::path( post, - operation_id = "Create a collage", + operation_id = "Create collage", tag = "Collages", path = "/api/collages", security( diff --git a/backend/api/src/handlers/collages/get_collage.rs b/backend/api/src/handlers/collages/get_collage.rs index a9515798..52d5c789 100644 --- a/backend/api/src/handlers/collages/get_collage.rs +++ b/backend/api/src/handlers/collages/get_collage.rs @@ -15,9 +15,10 @@ pub struct GetCollageQuery { #[utoipa::path( get, - operation_id = "Get a collage", + operation_id = "Get collage", tag = "Collages", path = "/api/collages", + params(GetCollageQuery), security( ("http" = ["Bearer"]) ), diff --git a/backend/api/src/handlers/conversations/get_conversation.rs b/backend/api/src/handlers/conversations/get_conversation.rs index e42ec4d3..723f3ecf 100644 --- a/backend/api/src/handlers/conversations/get_conversation.rs +++ b/backend/api/src/handlers/conversations/get_conversation.rs @@ -15,7 +15,7 @@ pub struct GetConversationQuery { #[utoipa::path( get, - operation_id = "Get conversations", + operation_id = "Get conversation", tag = "Conversation", params(GetConversationQuery), path = "/api/conversations", diff --git a/backend/api/src/handlers/forum/get_forum.rs b/backend/api/src/handlers/forum/get_forum.rs index 90ff4d2c..dde7c9fe 100644 --- a/backend/api/src/handlers/forum/get_forum.rs +++ b/backend/api/src/handlers/forum/get_forum.rs @@ -9,7 +9,7 @@ use serde_json::json; #[utoipa::path( get, - operation_id = "Create forum", + operation_id = "Get forum", tag = "Forum", path = "/api/forum", responses( diff --git a/backend/api/src/handlers/forum/get_forum_sub_category_threads.rs b/backend/api/src/handlers/forum/get_forum_sub_category_threads.rs index e6f5af4f..a49de3e8 100644 --- a/backend/api/src/handlers/forum/get_forum_sub_category_threads.rs +++ b/backend/api/src/handlers/forum/get_forum_sub_category_threads.rs @@ -15,7 +15,7 @@ pub struct GetForumSubCategoryThreadsQuery { #[utoipa::path( get, - operation_id = "Get forim sub-category thread", + operation_id = "Get forum sub-category threads", tag = "Forum", path = "/api/forum/sub-category", params(GetForumSubCategoryThreadsQuery), diff --git a/backend/api/src/handlers/staff_pms/create_staff_pm_message.rs b/backend/api/src/handlers/staff_pms/create_staff_pm_message.rs index 457eac63..c1162d29 100644 --- a/backend/api/src/handlers/staff_pms/create_staff_pm_message.rs +++ b/backend/api/src/handlers/staff_pms/create_staff_pm_message.rs @@ -14,7 +14,7 @@ use arcadia_storage::{ #[utoipa::path( post, - operation_id = "Reply to staff PM", + operation_id = "Create staff PM message", tag = "StaffPM", path = "/api/staff-pms/messages", security(("http" = ["Bearer"])) , diff --git a/backend/api/src/handlers/torrent_requests/get_torrent_request.rs b/backend/api/src/handlers/torrent_requests/get_torrent_request.rs index 8b098948..c2cb3a9f 100644 --- a/backend/api/src/handlers/torrent_requests/get_torrent_request.rs +++ b/backend/api/src/handlers/torrent_requests/get_torrent_request.rs @@ -17,7 +17,7 @@ pub struct GetTorrentRequestQuery { #[utoipa::path( get, - operation_id = "Get torrent requests", + operation_id = "Get torrent request", tag = "Torrent Request", path = "/api/torrent-requests", params(GetTorrentRequestQuery), diff --git a/backend/api/src/handlers/torrents/download_dottorrent_file.rs b/backend/api/src/handlers/torrents/download_dottorrent_file.rs index d86a958d..197ae7c8 100644 --- a/backend/api/src/handlers/torrents/download_dottorrent_file.rs +++ b/backend/api/src/handlers/torrents/download_dottorrent_file.rs @@ -19,7 +19,7 @@ pub struct DownloadTorrentQuery { #[utoipa::path( get, - operation_id = "Download .torrent file", + operation_id = "Download torrent file", tag = "Torrent", path = "/api/torrents", params (DownloadTorrentQuery), diff --git a/backend/api/src/handlers/users/get_user.rs b/backend/api/src/handlers/users/get_user.rs index ebc69cb3..2b2d0c77 100644 --- a/backend/api/src/handlers/users/get_user.rs +++ b/backend/api/src/handlers/users/get_user.rs @@ -22,7 +22,7 @@ pub struct GetUserQuery { #[utoipa::path( get, - operation_id = "Get users", + operation_id = "Get user", tag = "User", path = "/api/users", params(GetUserQuery), diff --git a/backend/api/src/handlers/users/warn_user.rs b/backend/api/src/handlers/users/warn_user.rs index 05c7a875..12755248 100644 --- a/backend/api/src/handlers/users/warn_user.rs +++ b/backend/api/src/handlers/users/warn_user.rs @@ -11,7 +11,7 @@ use arcadia_storage::{ #[utoipa::path( post, - operation_id = "Warn users", + operation_id = "Warn user", tag = "User", path = "/api/users/warnings", security( diff --git a/docs/src/architecture.md b/docs/src/architecture.md index 36a98ca6..64ab35e0 100644 --- a/docs/src/architecture.md +++ b/docs/src/architecture.md @@ -20,8 +20,8 @@ Arcadia's frontend is a [SPA](https://developer.mozilla.org/en-US/docs/Glossary/ ## API Schema Updates -If you make changes to structs that are listed in the swagger, you must regenerate the typescript interfaces with this command (from the frontend directory, while the backend is running): +If you make changes to structs that are listed in the swagger or the api routes, you must regenerate the typescript interfaces with this command (from the frontend directory, while the backend is running): ```bash -npx openapi-typescript http://127.0.0.1:8080/swagger-json/openapi.json -o ./src/api-schema/schema.d.ts +npx openapi-generator-cli generate -g typescript-axios -i http://127.0.0.1:8080/swagger-json/openapi.json -o ./src/services/api-schema -t .openapi-generator/templates --config .openapi-generator/openapi-generator.config.json --global-property=models,apiDocs=false,modelDocs=false,skipFormModel=false ``` diff --git a/frontend/.env.docker b/frontend/.env.docker index 79c02a7e..5be5658f 100644 --- a/frontend/.env.docker +++ b/frontend/.env.docker @@ -1,11 +1,3 @@ -# The base URL for the API that the frontend will communicate with. -# Ensure this matches the backend's API endpoint. -VITE_API_BASE_URL=http://127.0.0.1:8080/api - -# The name of the site displayed in the frontend. -# You can customize this to reflect your application's branding. +VITE_API_BASE_URL=http://127.0.0.1:8080 VITE_SITE_NAME="Arcadia" - -# If set to true, any unauthenticated user will be redirected to it -# What will be loaded is public/home/index.html VITE_ENABLE_CUSTOM_FRONT_PAGE=false diff --git a/frontend/.env.example b/frontend/.env.example index 8115ee2f..09922807 100644 --- a/frontend/.env.example +++ b/frontend/.env.example @@ -1,6 +1,6 @@ # The base URL for the API that the frontend will communicate with. # No trailing slash -VITE_API_BASE_URL=http://127.0.0.1:8080/api +VITE_API_BASE_URL=http://127.0.0.1:8080 # The name of the site displayed in the frontend. # You can customize this to reflect your application's branding. diff --git a/frontend/.openapi-generator/openapi-generator.config.json b/frontend/.openapi-generator/openapi-generator.config.json new file mode 100644 index 00000000..20888bb4 --- /dev/null +++ b/frontend/.openapi-generator/openapi-generator.config.json @@ -0,0 +1,4 @@ +{ + "modelPropertyNaming": "camelCase", + "supportsES6": true +} diff --git a/frontend/.openapi-generator/templates/api.mustache b/frontend/.openapi-generator/templates/api.mustache new file mode 100644 index 00000000..dd1ca528 --- /dev/null +++ b/frontend/.openapi-generator/templates/api.mustache @@ -0,0 +1,86 @@ +/* tslint:disable */ +/* eslint-disable */ +{{>licenseInfo}} + +import type { Configuration } from './configuration'; +import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; +import { default as globalAxios } from '../api/api'; + +// Standard imports +{{#withNodeImports}} +// @ts-ignore +import { URL, URLSearchParams } from 'url'; +{{#multipartFormData}} +import FormData from 'form-data' +{{/multipartFormData}} +{{/withNodeImports}} +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction{{#withAWSV4Signature}}, setAWS4SignatureInterceptor{{/withAWSV4Signature}} } from './common'; +import type { RequestArgs } from './base'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base'; + +{{#models}} +{{#model}}{{#isEnum}}{{>modelEnum}}{{/isEnum}}{{#oneOf}}{{#-first}}{{>modelOneOf}}{{/-first}}{{/oneOf}}{{^isEnum}}{{^oneOf}}{{>modelGeneric}}{{/oneOf}}{{/isEnum}}{{/model}} +{{/models}} + +{{! ---------------------------------------------------------------------- }} +{{! CASE 1: Single File Generation }} +{{! ---------------------------------------------------------------------- }} +{{^withSeparateModelsAndApi}} +{{#apiInfo}}{{#apis}} +{{>apiInner}} + +export const {{#lambda.camelcase}}{{classname}}{{/lambda.camelcase}} = new {{classname}}(undefined, undefined, globalAxios); + +{{#operations}} +{{#operation}} +{{! 1. Request Interface (Only for multiple params) }} +{{#allParams}}{{#-first}}{{^-last}} +export interface {{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request { + {{#allParams}} + /** {{description}} */ + '{{baseName}}'{{^required}}?{{/required}}: {{{dataType}}}{{^required}} | null{{/required}}; + {{/allParams}} +} +{{/-last}}{{/-first}}{{/allParams}} + +{{! 2. Function Definition (Compacted to remove whitespace) }} +export const {{operationId}} = async ({{#allParams}}{{#-first}}{{#-last}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}{{^required}} | null{{/required}}, {{/-last}}{{/-first}}{{#-first}}{{^-last}}requestParameters: {{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request, {{/-last}}{{/-first}}{{/allParams}}options?: RawAxiosRequestConfig): Promise<{{{returnType}}}{{^returnType}}void{{/returnType}}> => { + const response = await {{#lambda.camelcase}}{{classname}}{{/lambda.camelcase}}.{{operationId}}({{#allParams}}{{#-first}}{{#-last}}{{paramName}}, {{/-last}}{{/-first}}{{^-last}}requestParameters['{{baseName}}']!, {{/-last}}{{^-first}}{{#-last}}requestParameters['{{baseName}}']!, {{/-last}}{{/-first}}{{/allParams}}options); + return response.data; +}; +{{/operation}} +{{/operations}} + +{{/apis}}{{/apiInfo}} +{{/withSeparateModelsAndApi}} + +{{! ---------------------------------------------------------------------- }} +{{! CASE 2: Separate Files Generation }} +{{! ---------------------------------------------------------------------- }} +{{#withSeparateModelsAndApi}} +{{>apiInner}} + +export const {{#lambda.camelcase}}{{classname}}{{/lambda.camelcase}} = new {{classname}}(undefined, undefined, globalAxios); + +{{#operations}} +{{#operation}} +{{! 1. Request Interface (Only for multiple params) }} +{{#allParams}}{{#-first}}{{^-last}} +export interface {{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request { + {{#allParams}} + /** {{description}} */ + '{{baseName}}'{{^required}}?{{/required}}: {{{dataType}}}{{^required}} | null{{/required}}; + {{/allParams}} +} +{{/-last}}{{/-first}}{{/allParams}} + +{{! 2. Function Definition (Compacted to remove whitespace) }} +export const {{operationId}} = async ({{#allParams}}{{#-first}}{{#-last}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}{{^required}} | null{{/required}}, {{/-last}}{{/-first}}{{#-first}}{{^-last}}requestParameters: {{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request, {{/-last}}{{/-first}}{{/allParams}}options?: RawAxiosRequestConfig): Promise<{{{returnType}}}{{^returnType}}void{{/returnType}}> => { + const response = await {{#lambda.camelcase}}{{classname}}{{/lambda.camelcase}}.{{operationId}}({{#allParams}}{{#-first}}{{#-last}}{{paramName}}, {{/-last}}{{/-first}}{{^-last}}requestParameters['{{baseName}}']!, {{/-last}}{{^-first}}{{#-last}}requestParameters['{{baseName}}']!, {{/-last}}{{/-first}}{{/allParams}}options); + return response.data; +}; +{{/operation}} +{{/operations}} +{{/withSeparateModelsAndApi}} diff --git a/frontend/.prettierignore b/frontend/.prettierignore index 42583e03..4ed3c97d 100644 --- a/frontend/.prettierignore +++ b/frontend/.prettierignore @@ -1 +1 @@ -src/api-schema/schema.d.ts +src/services/api-schema/ diff --git a/frontend/eslint.config.ts b/frontend/eslint.config.ts index 30e44287..0796ca2f 100644 --- a/frontend/eslint.config.ts +++ b/frontend/eslint.config.ts @@ -18,7 +18,7 @@ export default defineConfigWithVueTs( { name: 'app/files-to-ignore', - ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], + ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**', 'src/services/api-schema/**'], }, pluginVue.configs['flat/essential'], diff --git a/frontend/openapitools.json b/frontend/openapitools.json new file mode 100644 index 00000000..f052220d --- /dev/null +++ b/frontend/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "7.17.0" + } +} diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 62cfe542..dc352e3e 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@bbob/html": "^4.3.1", "@bbob/preset-html5": "^4.3.1", + "@openapitools/openapi-generator-cli": "^2.25.2", "@primeuix/themes": "^1.0.0", "@primevue/forms": "^4.3.3", "axios": "^1.8.3", @@ -644,6 +645,16 @@ "integrity": "sha512-bSCZnNg0VrPosBBUVkjBDYVKNEqwT0jTNuzvAuNrZkuILgUKtLYI9GHuT8rY4lZecCb7UqGDsHsYt0YJO36eJg==", "license": "MIT" }, + "node_modules/@borewit/text-codec": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.1.1.tgz", + "integrity": "sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/@bufbuild/protobuf": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.5.tgz", @@ -1456,6 +1467,43 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/@intlify/core-base": { "version": "10.0.7", "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.7.tgz", @@ -1500,6 +1548,27 @@ "url": "https://github.com/sponsors/kazupon" } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1570,6 +1639,98 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nestjs/axios": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-4.0.1.tgz", + "integrity": "sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A==", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^10.0.0 || ^11.0.0", + "axios": "^1.3.1", + "rxjs": "^7.0.0" + } + }, + "node_modules/@nestjs/common": { + "version": "11.1.9", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.9.tgz", + "integrity": "sha512-zDntUTReRbAThIfSp3dQZ9kKqI+LjgLp5YZN5c1bgNRDuoeLySAoZg46Bg1a+uV8TMgIRziHocglKGNzr6l+bQ==", + "license": "MIT", + "dependencies": { + "file-type": "21.1.0", + "iterare": "1.2.1", + "load-esm": "1.0.3", + "tslib": "2.8.1", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "class-transformer": ">=0.4.1", + "class-validator": ">=0.13.2", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/core": { + "version": "11.1.9", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.9.tgz", + "integrity": "sha512-a00B0BM4X+9z+t3UxJqIZlemIwCQdYoPKrMcM+ky4z3pkqqG1eTWexjs+YXpGObnLnjtMPVKWlcZHp3adDYvUw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@nuxt/opencollective": "0.4.1", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "8.3.0", + "tslib": "2.8.1", + "uid": "2.0.2" + }, + "engines": { + "node": ">= 20" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^11.0.0", + "@nestjs/microservices": "^11.0.0", + "@nestjs/platform-express": "^11.0.0", + "@nestjs/websockets": "^11.0.0", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1608,6 +1769,46 @@ "node": ">= 8" } }, + "node_modules/@nuxt/opencollective": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.4.1.tgz", + "integrity": "sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0", + "npm": ">=5.10.0" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "license": "MIT" + }, "node_modules/@one-ini/wasm": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", @@ -1615,6 +1816,108 @@ "dev": true, "license": "MIT" }, + "node_modules/@openapitools/openapi-generator-cli": { + "version": "2.25.2", + "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.25.2.tgz", + "integrity": "sha512-TXElbW1NXCy0EECXiO5AD2ZzT1dmaCs41Z8t3pBUGaJf8zgF/Lm0P6GRhVEpw29iHBNjZcy8nrgQ1acUfuCdng==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@nestjs/axios": "4.0.1", + "@nestjs/common": "11.1.9", + "@nestjs/core": "11.1.9", + "@nuxtjs/opencollective": "0.3.2", + "axios": "1.13.2", + "chalk": "4.1.2", + "commander": "8.3.0", + "compare-versions": "6.1.1", + "concurrently": "9.2.1", + "console.table": "0.10.0", + "fs-extra": "11.3.2", + "glob": "13.0.0", + "inquirer": "8.2.7", + "proxy-agent": "6.5.0", + "reflect-metadata": "0.2.2", + "rxjs": "7.8.2", + "tslib": "2.8.1" + }, + "bin": { + "openapi-generator-cli": "main.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/openapi_generator" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@oxlint/darwin-arm64": { "version": "0.15.15", "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-0.15.15.tgz", @@ -2279,6 +2582,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@tokenizer/inflate": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.3.1.tgz", + "integrity": "sha512-4oeoZEBQdLdt5WmP/hx1KZ6D3/Oid/0cUb2nk4F0pTDAWy+KCH3/EnAkZF/bvckWo8I33EqBm01lIPgmgc8rCA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.1", + "fflate": "^0.8.2", + "token-types": "^6.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT" + }, "node_modules/@tsconfig/node22": { "version": "22.0.1", "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.1.tgz", @@ -2350,7 +2683,7 @@ "version": "22.14.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -3133,7 +3466,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 14" @@ -3173,6 +3505,33 @@ "node": ">=6" } }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", @@ -3190,7 +3549,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -3219,6 +3577,18 @@ "node": ">=12" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3226,13 +3596,13 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", - "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -3243,6 +3613,35 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/birpc": { "version": "0.2.19", "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", @@ -3252,6 +3651,17 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -3315,6 +3725,30 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/buffer-builder": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", @@ -3413,7 +3847,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -3433,6 +3866,12 @@ "dev": true, "license": "MIT" }, + "node_modules/chardet": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "license": "MIT" + }, "node_modules/check-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", @@ -3443,11 +3882,124 @@ "node": ">= 16" } }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -3460,7 +4012,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/colorette": { @@ -3499,6 +4050,12 @@ "node": ">=14" } }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3506,6 +4063,45 @@ "dev": true, "license": "MIT" }, + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "license": "MIT", + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -3517,6 +4113,27 @@ "proto-list": "~1.2.1" } }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/console.table": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", + "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==", + "license": "MIT", + "dependencies": { + "easy-table": "1.1.0" + }, + "engines": { + "node": "> 0.10" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3587,6 +4204,15 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", @@ -3609,10 +4235,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3680,6 +4305,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/define-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", @@ -3693,6 +4330,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3732,6 +4383,15 @@ "dev": true, "license": "MIT" }, + "node_modules/easy-table": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", + "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", + "license": "MIT", + "optionalDependencies": { + "wcwidth": ">=1.0.1" + } + }, "node_modules/editorconfig": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", @@ -3900,7 +4560,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3919,6 +4578,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, "node_modules/eslint": { "version": "9.24.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", @@ -4189,6 +4869,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", @@ -4219,7 +4912,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -4235,7 +4927,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -4336,6 +5027,12 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" + }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -4346,6 +5043,12 @@ "reusify": "^1.0.4" } }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -4375,6 +5078,24 @@ "node": ">=16.0.0" } }, + "node_modules/file-type": { + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.1.0.tgz", + "integrity": "sha512-boU4EHmP3JXkwDo4uhyBhTt5pPstxB6eEXKJBu2yu2l7aAMMm7QQYQEzssJmKReZYrFdFOJS8koVo6bXIBGDqA==", + "license": "MIT", + "dependencies": { + "@tokenizer/inflate": "^0.3.1", + "strtok3": "^10.3.1", + "token-types": "^6.0.0", + "uint8array-extras": "^1.4.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -4464,14 +5185,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -4479,10 +5201,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "dev": true, + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -4527,6 +5248,15 @@ "node": ">=6.9.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -4581,6 +5311,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -4641,7 +5385,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/graphemer": { @@ -4655,7 +5398,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4733,7 +5475,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.0", @@ -4747,7 +5488,6 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.2", @@ -4780,6 +5520,26 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4837,6 +5597,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", @@ -4844,6 +5610,120 @@ "dev": true, "license": "ISC" }, + "node_modules/inquirer": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz", + "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==", + "license": "MIT", + "dependencies": { + "@inquirer/external-editor": "^1.0.0", + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/inquirer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/inquirer/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/is-docker": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", @@ -4874,7 +5754,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4912,6 +5791,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -5003,6 +5891,15 @@ "dev": true, "license": "ISC" }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "license": "ISC", + "engines": { + "node": ">=6" + } + }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -5209,7 +6106,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -5249,6 +6145,25 @@ "node": ">= 0.8.0" } }, + "node_modules/load-esm": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/load-esm/-/load-esm-1.0.3.tgz", + "integrity": "sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + }, + { + "type": "buymeacoffee", + "url": "https://buymeacoffee.com/borewit" + } + ], + "license": "MIT", + "engines": { + "node": ">=13.2.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5269,7 +6184,6 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, "license": "MIT" }, "node_modules/lodash-es": { @@ -5285,6 +6199,34 @@ "dev": true, "license": "MIT" }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/loupe": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", @@ -5374,6 +6316,15 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -5394,7 +6345,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" @@ -5420,7 +6370,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/muggle-string": { @@ -5430,6 +6379,12 @@ "dev": true, "license": "MIT" }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "license": "ISC" + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -5455,6 +6410,57 @@ "dev": true, "license": "MIT" }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -5604,6 +6610,21 @@ "dev": true, "license": "MIT" }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/open": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/open/-/open-10.1.1.tgz", @@ -5675,6 +6696,62 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/oxlint": { "version": "0.15.15", "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-0.15.15.tgz", @@ -5734,6 +6811,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -5862,6 +6971,16 @@ "dev": true, "license": "ISC" }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -6112,6 +7231,34 @@ "dev": true, "license": "ISC" }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -6163,6 +7310,35 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -6183,6 +7359,25 @@ "node": ">=4" } }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -6260,6 +7455,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -6288,17 +7492,35 @@ "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, "license": "MIT" }, "node_modules/sass-embedded": { @@ -6752,10 +7974,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "dev": true, + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -6799,6 +8020,54 @@ "node": ">=18" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -6831,6 +8100,15 @@ "dev": true, "license": "MIT" }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -6961,6 +8239,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strtok3": { + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.4.tgz", + "integrity": "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/superjson": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", @@ -6977,7 +8271,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -7033,6 +8326,12 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -7110,6 +8409,24 @@ "node": ">=8.0" } }, + "node_modules/token-types": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.1.tgz", + "integrity": "sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==", + "license": "MIT", + "dependencies": { + "@borewit/text-codec": "^0.1.0", + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", @@ -7146,6 +8463,15 @@ "node": ">=18" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", @@ -7163,7 +8489,6 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, "license": "0BSD" }, "node_modules/type-check": { @@ -7229,11 +8554,35 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "license": "MIT", + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uint8array-extras": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/unicorn-magic": { @@ -7253,7 +8602,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -7311,7 +8659,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, "license": "MIT" }, "node_modules/varint": { @@ -7749,6 +9096,15 @@ "node": ">=18" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -7973,6 +9329,15 @@ "dev": true, "license": "MIT" }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -7987,16 +9352,74 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, "license": "ISC", "engines": { "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index c784a9a5..2cffc259 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -20,6 +20,7 @@ "dependencies": { "@bbob/html": "^4.3.1", "@bbob/preset-html5": "^4.3.1", + "@openapitools/openapi-generator-cli": "^2.25.2", "@primeuix/themes": "^1.0.0", "@primevue/forms": "^4.3.3", "axios": "^1.8.3", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index f3f41e47..952b7039 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -22,12 +22,12 @@ import SearchBars from './components/SearchBars.vue' import NotificationToasts from './components/NotificationToasts.vue' import { Toast } from 'primevue' import { useUserStore } from './stores/user' -import { getMe } from './services/api/userService' import { ref } from 'vue' import { useRoute } from 'vue-router' import FooterBar from './components/FooterBar.vue' import { useNotificationsStore } from './stores/notifications' import { isRouteProtected } from './services/helpers' +import { getMe } from './services/api-schema' // enable dark mode by default document.documentElement.classList.add('dark-theme') @@ -80,7 +80,7 @@ const getAppReady = async (forceGetUser: boolean = false) => { // load custom css sheet const head = document.getElementsByTagName('head')[0] const style = document.createElement('link') - style.href = `${import.meta.env.VITE_API_BASE_URL.replace(/\/api$/, '')}/css/${profile.user.css_sheet_name}.css` + style.href = `${import.meta.env.VITE_API_BASE_URL}/css/${profile.user.css_sheet_name}.css` style.type = 'text/css' style.rel = 'stylesheet' head.append(style) diff --git a/frontend/src/api-schema/schema.d.ts b/frontend/src/api-schema/schema.d.ts deleted file mode 100644 index e141dbcf..00000000 --- a/frontend/src/api-schema/schema.d.ts +++ /dev/null @@ -1,5177 +0,0 @@ -/** - * This file was auto-generated by openapi-typescript. - * Do not make direct changes to the file. - */ - -export interface paths { - "/api/affiliated-artists": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create artist affiliation"]; - delete: operations["Delete artist affiliation"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/artists": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get artist publications"]; - put: operations["Edit artist"]; - post: operations["Create artist"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/auth/apply": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create user application"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/auth/login": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Login"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/auth/refresh-token": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Refresh token"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/auth/register": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Register"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/collages": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get a collage"]; - put?: never; - post: operations["Create a collage"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/collages/entries": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Inserts entries into a collage"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/conversations": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get conversations"]; - put?: never; - post: operations["Create conversation"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/conversations/messages": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create conversation message"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/css-sheets": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get CSS sheets"]; - put: operations["Edit CSS sheet"]; - post: operations["Create CSS sheet"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/edition-groups": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create edition group"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/external-sources/comic-vine": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get comic vine data"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/external-sources/isbn": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get isbn data"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/external-sources/musicbrainz": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get Musicbranz data"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/external-sources/tmdb": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get TMDB data"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/forum": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Create forum"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/forum/post": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create forum post"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/forum/sub-category": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get forim sub-category thread"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/forum/thread": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get forum thread"]; - put?: never; - post: operations["Create forum thread"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/forum/thread/posts": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get forum thread's posts"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/gifts": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create gift"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/home": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get home data"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/invitations": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create invitation"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/master-groups": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create master group"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/notifications/forum-thread-posts": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Get notifications for forum thread posts"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/artists/lite": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** @description Case insensitive */ - get: operations["Search artists"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/collages": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** @description Case insensitive */ - get: operations["Search collages"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/collages/lite": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** @description Case insensitive */ - get: operations["Search collages lite"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/forum": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** @description Case insensitive */ - get: operations["Search forum"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/series": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** @description Case insensitive */ - get: operations["Search series"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/title-group-tags/lite": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Search title group tags"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/title-groups/lite": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Search title group info"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/torrent-requests": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Search torrent requests"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/search/torrents/lite": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Search torrents"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/series": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get series"]; - put?: never; - post: operations["Create series"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/staff-pms": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["List staff PMs"]; - put?: never; - post: operations["Create staff PM"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/staff-pms/messages": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Reply to staff PM"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/staff-pms/{id}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get staff PM"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/staff-pms/{id}/resolve": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put: operations["Resolve staff PM"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/subscriptions/forum-thread-posts": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create forum thread posts subscription"]; - delete: operations["Remove forum thread posts subscription"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/subscriptions/title-group-torrents": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create title group torrents subscription"]; - delete: operations["Remove title group torrents subscription"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/title-group-tags": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put: operations["Edit title group tag"]; - post: operations["Create title group tag"]; - delete: operations["Delete title group tag"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/title-group-tags/apply": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Apply tag to title group"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/title-group-tags/remove": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete: operations["Remove tag from title group"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/title-groups": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get title group"]; - put: operations["Edit title group"]; - post: operations["Create title group"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/title-groups/comments": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create title group comment"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/title-groups/lite": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get title group info lite"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrent-requests": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get torrent requests"]; - put?: never; - post: operations["Create torrent request"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrent-requests/comment": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create torrent request comment"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrent-requests/fill": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Fill torrent request"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrent-requests/vote": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create torrent request vote"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrents": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Download .torrent file"]; - put: operations["Edit torrent"]; - post: operations["Create torrent"]; - delete: operations["Delete torrent"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrents/registered": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get registered torrents"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrents/reports": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Create torrent report"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrents/top": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get top torrent"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/torrents/upload-info": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get upload information"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/user-applications": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get user applications"]; - put: operations["Update user application status"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/users": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get users"]; - put: operations["Edit user"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/users/conversations": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get user conversations"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/users/me": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get me"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/users/settings": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get user settings"]; - put: operations["Update user settings"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/users/warnings": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations["Warn users"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/api/wiki/articles": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get wiki article"]; - put: operations["Edit wiki article"]; - post: operations["Create wiki article"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/css/{name}.css": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations["Get CSS sheet content"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; -} -export type webhooks = Record; -export interface components { - schemas: { - AffiliatedArtistHierarchy: { - artist: components["schemas"]["Artist"]; - /** Format: int64 */ - artist_id: number; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - nickname?: string | null; - roles: components["schemas"]["ArtistRole"][]; - /** Format: int32 */ - title_group_id: number; - }; - AffiliatedArtistLite: { - /** Format: int64 */ - artist_id: number; - name: string; - }; - AffiliatedEntityHierarchy: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - entity: components["schemas"]["Entity"]; - /** Format: int64 */ - entity_id: number; - /** Format: int64 */ - id: number; - roles: components["schemas"]["EntityRole"][]; - /** Format: int32 */ - title_group_id: number; - }; - AppliedTitleGroupTag: { - /** Format: int32 */ - tag_id: number; - /** Format: int32 */ - title_group_id: number; - }; - Artist: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description: string; - /** Format: int32 */ - edition_groups_amount: number; - /** Format: int64 */ - id: number; - /** Format: int32 */ - leechers_amount: number; - name: string; - pictures: string[]; - /** Format: int32 */ - seeders_amount: number; - /** Format: int32 */ - snatches_amount: number; - /** Format: int32 */ - title_groups_amount: number; - /** Format: int32 */ - torrents_amount: number; - }; - ArtistAndTitleGroupsLite: { - artist: components["schemas"]["Artist"]; - title_groups: components["schemas"]["TitleGroupHierarchyLite"][]; - }; - ArtistLite: { - /** Format: int64 */ - id: number; - name: string; - pictures: string[]; - }; - /** @enum {string} */ - ArtistRole: "main" | "guest" | "producer" | "director" | "cinematographer" | "actor" | "writer" | "composer" | "remixer" | "conductor" | "dj_compiler" | "arranger" | "host" | "author" | "illustrator" | "editor" | "developer" | "designer"; - /** @enum {string} */ - AudioBitrateSampling: "64" | "128" | "192" | "256" | "320" | "APS (VBR)" | "V2 (VBR)" | "V1 (VBR)" | "APX (VBR)" | "V0 (VBR)" | "Lossless" | "24bit Lossless" | "DSD64" | "DSD128" | "DSD256" | "DSD512" | "Other"; - /** @enum {string} */ - AudioChannels: "1.0" | "2.0" | "2.1" | "5.0" | "5.1" | "7.1"; - /** @enum {string} */ - AudioCodec: "mp2" | "mp3" | "aac" | "ac3" | "dts" | "flac" | "pcm" | "true-hd" | "opus" | "dsd"; - Collage: { - category: components["schemas"]["CollageCategory"]; - collage_type: components["schemas"]["CollageType"]; - cover?: string | null; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description: string; - /** Format: int64 */ - id: number; - name: string; - tags: string[]; - }; - CollageAndAssociatedData: { - collage: components["schemas"]["Collage"]; - entries: components["schemas"]["CollageEntryHierarchy"][]; - }; - /** @enum {string} */ - CollageCategory: "Personal" | "Staff Picks" | "External" | "Theme"; - CollageEntry: { - /** Format: int64 */ - artist_id?: number | null; - /** Format: int64 */ - collage_id: number; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - entity_id?: number | null; - /** Format: int64 */ - id: number; - /** Format: int32 */ - master_group_id?: number | null; - note?: string | null; - /** Format: int32 */ - title_group_id?: number | null; - }; - CollageEntryHierarchy: { - artist?: null | components["schemas"]["ArtistLite"]; - /** Format: int64 */ - artist_id?: number | null; - /** Format: int64 */ - collage_id: number; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - entity?: null | components["schemas"]["EntityLite"]; - /** Format: int64 */ - entity_id?: number | null; - /** Format: int64 */ - id: number; - master_group?: null | components["schemas"]["MasterGroupLite"]; - /** Format: int32 */ - master_group_id?: number | null; - note?: string | null; - title_group?: null | components["schemas"]["TitleGroupHierarchyLite"]; - /** Format: int32 */ - title_group_id?: number | null; - }; - CollageLite: { - collage_type: components["schemas"]["CollageType"]; - cover?: string | null; - /** Format: int64 */ - id: number; - name: string; - }; - CollageSearchResult: { - category: components["schemas"]["CollageCategory"]; - collage_type: components["schemas"]["CollageType"]; - cover?: string | null; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - /** Format: int32 */ - created_by_id: number; - description: string; - /** Format: int64 */ - entries_amount: number; - /** Format: int64 */ - id: number; - /** Format: date-time */ - last_entry_at: string; - name: string; - tags: string[]; - }; - /** @enum {string} */ - CollageType: "Artist" | "Entity" | "TitleGroup" | "MasterGroup"; - /** @enum {string} */ - ContentType: "movie" | "video" | "tv_show" | "music" | "podcast" | "software" | "book" | "collection"; - Conversation: { - /** Format: date-time */ - created_at: string; - /** Format: int64 */ - id: number; - /** Format: int32 */ - receiver_id: number; - /** Format: date-time */ - receiver_last_seen_at: string; - /** Format: int32 */ - sender_id: number; - /** Format: date-time */ - sender_last_seen_at: string; - subject: string; - }; - ConversationHierarchy: { - /** Format: date-time */ - created_at: string; - /** Format: int64 */ - id: number; - messages: components["schemas"]["ConversationMessageHierarchy"][]; - receiver: components["schemas"]["UserLiteAvatar"]; - /** Format: date-time */ - receiver_last_seen_at: string; - sender: components["schemas"]["UserLiteAvatar"]; - /** Format: date-time */ - sender_last_seen_at: string; - subject: string; - }; - ConversationMessage: { - content: string; - /** Format: int64 */ - conversation_id: number; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - }; - ConversationMessageHierarchy: { - content: string; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLiteAvatar"]; - /** Format: int64 */ - id: number; - }; - ConversationMessageHierarchyLite: { - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - }; - ConversationOverview: { - correspondant: components["schemas"]["UserLite"]; - /** Format: date-time */ - created_at: string; - /** Format: int64 */ - id: number; - last_message: components["schemas"]["ConversationMessageHierarchyLite"]; - /** Format: int32 */ - receiver_id: number; - /** Format: date-time */ - receiver_last_seen_at: string; - /** Format: int32 */ - sender_id: number; - /** Format: date-time */ - sender_last_seen_at: string; - subject: string; - }; - ConversationsOverview: { - conversations: components["schemas"]["ConversationOverview"][]; - }; - CssSheet: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - css: string; - name: string; - preview_image_url: string; - }; - CssSheetsEnriched: { - css_sheets: components["schemas"]["CssSheet"][]; - default_sheet_name: string; - }; - DeleteTagRequest: { - /** Format: int32 */ - id: number; - }; - EditedArtist: { - description: string; - /** Format: int64 */ - id: number; - name: string; - pictures: string[]; - }; - EditedCssSheet: { - css: string; - name: string; - old_name: string; - preview_image_url: string; - }; - EditedTitleGroup: { - category?: null | components["schemas"]["TitleGroupCategory"]; - content_type: components["schemas"]["ContentType"]; - country_from?: string | null; - covers: string[]; - description: string; - embedded_links: { - [key: string]: { - [key: string]: string; - }; - }; - external_links: string[]; - /** Format: int32 */ - id: number; - /** Format: int32 */ - master_group_id?: number | null; - name: string; - name_aliases: string[]; - original_language?: null | components["schemas"]["Language"]; - /** Format: date-time */ - original_release_date: string; - platform?: null | components["schemas"]["Platform"]; - screenshots: string[]; - tagline?: string | null; - }; - EditedTitleGroupTag: { - /** Format: int32 */ - id: number; - name: string; - synonyms: string[]; - }; - EditedTorrent: { - /** Format: int32 */ - audio_bitrate?: number | null; - audio_bitrate_sampling?: null | components["schemas"]["AudioBitrateSampling"]; - audio_channels?: null | components["schemas"]["AudioChannels"]; - audio_codec?: null | components["schemas"]["AudioCodec"]; - container: string; - description?: string | null; - /** Format: int32 */ - duration?: number | null; - /** Format: int32 */ - edition_group_id: number; - extras: components["schemas"]["Extras"][]; - features: components["schemas"]["Features"][]; - /** Format: int32 */ - id: number; - languages: components["schemas"]["Language"][]; - mediainfo?: string | null; - release_group?: string | null; - release_name?: string | null; - subtitle_languages: components["schemas"]["Language"][]; - uploaded_as_anonymous: boolean; - video_codec?: null | components["schemas"]["VideoCodec"]; - video_resolution?: null | components["schemas"]["VideoResolution"]; - /** Format: int32 */ - video_resolution_other_x?: number | null; - /** Format: int32 */ - video_resolution_other_y?: number | null; - }; - EditedUser: { - avatar?: string | null; - description: string; - email: string; - }; - EditedWikiArticle: { - body: string; - /** Format: int64 */ - id: number; - title: string; - }; - EditionGroup: { - additional_information: { - [key: string]: string; - }; - covers: string[]; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description?: string | null; - distributor?: string | null; - external_links: string[]; - /** Format: int32 */ - id: number; - name?: string | null; - /** Format: date-time */ - release_date: string; - source?: null | components["schemas"]["Source"]; - /** Format: int32 */ - title_group_id: number; - /** Format: date-time */ - updated_at: string; - }; - EditionGroupHierarchy: { - additional_information: { - [key: string]: string; - }; - covers: string[]; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description?: string | null; - distributor?: string | null; - external_links: string[]; - /** Format: int32 */ - id: number; - name?: string | null; - /** Format: date-time */ - release_date: string; - source?: null | components["schemas"]["Source"]; - /** Format: int32 */ - title_group_id: number; - torrents: components["schemas"]["TorrentHierarchy"][]; - /** Format: date-time */ - updated_at: string; - }; - EditionGroupHierarchyLite: { - additional_information: { - [key: string]: string; - }; - covers: string[]; - distributor?: string | null; - /** Format: int32 */ - id: number; - name?: string | null; - /** Format: date-time */ - release_date: string; - source?: null | components["schemas"]["Source"]; - /** Format: int32 */ - title_group_id: number; - torrents: components["schemas"]["TorrentHierarchyLite"][]; - }; - EditionGroupInfoLite: { - additional_information: { - [key: string]: string; - }; - distributor?: string | null; - /** Format: int32 */ - id: number; - name?: string | null; - /** Format: date-time */ - release_date: string; - source?: null | components["schemas"]["Source"]; - }; - Entity: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description: string; - /** Format: int64 */ - id: number; - name: string; - pictures: string[]; - }; - EntityLite: { - /** Format: int64 */ - id: number; - name: string; - pictures: string[]; - }; - /** @enum {string} */ - EntityRole: "producer" | "developer" | "designer" | "label" | "network"; - /** @enum {string} */ - ExternalDB: "tmdb"; - ExternalDBData: { - affiliated_artists: components["schemas"]["AffiliatedArtistHierarchy"][]; - edition_group?: null | components["schemas"]["UserCreatedEditionGroup"]; - /** Format: int32 */ - existing_title_group_id?: number | null; - title_group?: null | components["schemas"]["UserCreatedTitleGroup"]; - }; - /** @enum {string} */ - Extras: "booklet" | "manual" | "behind_the_scenes" | "deleted_scenes" | "featurette" | "trailer" | "other"; - /** @enum {string} */ - Features: "HDR" | "HDR 10" | "HDR 10+" | "DV" | "Commentary" | "Remux" | "3D" | "OCR" | "Cue"; - ForumCategoryHierarchy: { - /** Format: int32 */ - id: number; - name: string; - sub_categories: components["schemas"]["ForumSubCategoryHierarchy"][]; - }; - ForumCategoryLite: { - /** Format: int32 */ - id: number; - name: string; - }; - ForumOverview: { - forum_categories: components["schemas"]["ForumCategoryHierarchy"][]; - latest_posts_in_threads: components["schemas"]["ForumSearchResult"][]; - }; - ForumPost: { - content: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - forum_thread_id: number; - /** Format: int64 */ - id: number; - sticky: boolean; - /** Format: date-time */ - updated_at: string; - }; - ForumPostAndThreadName: { - content: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - forum_thread_id: number; - forum_thread_name: string; - /** Format: int64 */ - id: number; - sticky: boolean; - /** Format: date-time */ - updated_at: string; - }; - ForumPostHierarchy: { - content: string; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLiteAvatar"]; - /** Format: int64 */ - forum_thread_id: number; - /** Format: int64 */ - id: number; - sticky: boolean; - /** Format: date-time */ - updated_at: string; - }; - ForumSearchQuery: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - thread_name?: string | null; - }; - ForumSearchResult: { - /** Format: int32 */ - category_id: number; - category_name: string; - post: string; - /** Format: date-time */ - post_created_at: string; - /** Format: int32 */ - post_created_by_id: number; - post_created_by_username: string; - /** Format: int64 */ - post_id: number; - /** Format: int32 */ - sub_category_id: number; - sub_category_name: string; - /** Format: int64 */ - thread_id: number; - thread_name: string; - }; - ForumSubCategoryHierarchy: { - category: components["schemas"]["ForumCategoryLite"]; - forbidden_classes: string[]; - /** Format: int32 */ - id: number; - latest_post_in_thread: components["schemas"]["ForumThreadPostLite"]; - name: string; - /** Format: int64 */ - posts_amount: number; - threads?: components["schemas"]["ForumThreadHierarchy"][] | null; - /** Format: int64 */ - threads_amount: number; - }; - ForumThread: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int32 */ - forum_sub_category_id: number; - /** Format: int64 */ - id: number; - locked: boolean; - name: string; - /** Format: int64 */ - posts_amount: number; - sticky: boolean; - }; - ForumThreadEnriched: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int32 */ - forum_category_id: number; - forum_category_name: string; - /** Format: int32 */ - forum_sub_category_id: number; - forum_sub_category_name: string; - /** Format: int64 */ - id: number; - is_subscribed: boolean; - locked: boolean; - name: string; - /** Format: int64 */ - posts_amount: number; - sticky: boolean; - }; - ForumThreadHierarchy: { - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - /** Format: int64 */ - id: number; - latest_post: components["schemas"]["ForumThreadPostLite"]; - locked: boolean; - name: string; - /** Format: int64 */ - posts_amount: number; - sticky: boolean; - }; - ForumThreadPostLite: { - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - /** Format: int64 */ - id: number; - name: string; - }; - GetForumThreadPostsQuery: { - /** Format: int32 */ - page?: number | null; - /** Format: int32 */ - page_size: number; - /** Format: int64 */ - post_id?: number | null; - /** Format: int64 */ - thread_id: number; - }; - GetUserApplicationsQuery: { - /** Format: int64 */ - limit?: number | null; - /** Format: int64 */ - page?: number | null; - status?: null | components["schemas"]["UserApplicationStatus"]; - }; - Gift: { - /** Format: int64 */ - bonus_points: number; - /** Format: int32 */ - freeleech_tokens: number; - /** Format: int64 */ - id: number; - message: string; - /** Format: int32 */ - receiver_id: number; - /** Format: int32 */ - sender_id: number; - /** Format: date-time */ - sent_at: string; - }; - HomePage: { - latest_posts_in_threads: components["schemas"]["ForumSearchResult"][]; - latest_uploads: components["schemas"]["TitleGroupLite"][]; - recent_announcements: components["schemas"]["ForumPostAndThreadName"][]; - stats: components["schemas"]["HomeStats"]; - }; - HomeStats: { - /** Format: int64 */ - artists: number; - /** Format: int64 */ - enabled_users: number; - /** Format: int64 */ - entities: number; - /** Format: int64 */ - titles: number; - /** Format: int64 */ - torrents: number; - /** Format: int64 */ - torrents_uploaded_today: number; - /** Format: int64 */ - users_active_this_month: number; - /** Format: int64 */ - users_active_this_week: number; - /** Format: int64 */ - users_active_today: number; - }; - InfoHash: number[]; - Invitation: { - /** Format: date-time */ - created_at: string; - /** Format: date-time */ - expires_at: string; - /** Format: int64 */ - id: number; - invitation_key: string; - message: string; - receiver_email: string; - /** Format: int32 */ - receiver_id?: number | null; - /** Format: int32 */ - sender_id: number; - /** Format: int64 */ - user_application_id?: number | null; - }; - /** @enum {string} */ - Language: "Albanian" | "Arabic" | "Belarusian" | "Bengali" | "Bosnian" | "Bulgarian" | "Cantonese" | "Catalan" | "Chinese" | "Croatian" | "Czech" | "Danish" | "Dutch" | "English" | "Estonian" | "Finnish" | "French" | "German" | "Greek" | "Hebrew" | "Hindi" | "Hungarian" | "Icelandic" | "Indonesian" | "Italian" | "Japanese" | "Kannada" | "Korean" | "Macedonian" | "Malayalam" | "Mandarin" | "Nepali" | "Norwegian" | "Persian" | "Polish" | "Portuguese" | "Romanian" | "Russian" | "Serbian" | "Spanish" | "Swedish" | "Tamil" | "Tagalog" | "Telugu" | "Thai" | "Turkish" | "Ukrainian" | "Vietnamese" | "Wolof" | "Other"; - Login: { - password: string; - remember_me: boolean; - username: string; - }; - LoginResponse: { - refresh_token: string; - token: string; - }; - MasterGroup: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int32 */ - id: number; - name?: string | null; - /** Format: date-time */ - updated_at: string; - }; - MasterGroupLite: { - /** Format: int32 */ - id: number; - name?: string | null; - }; - NotificationForumThreadPost: { - /** Format: date-time */ - created_at: string; - /** Format: int64 */ - forum_post_id: number; - /** Format: int64 */ - forum_thread_id: number; - forum_thread_name: string; - /** Format: int64 */ - id: number; - read_status: boolean; - }; - /** @enum {string} */ - OrderByDirection: "asc" | "desc"; - PaginatedResults_CollageSearchResult: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - results: { - category: components["schemas"]["CollageCategory"]; - collage_type: components["schemas"]["CollageType"]; - cover?: string | null; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - /** Format: int32 */ - created_by_id: number; - description: string; - /** Format: int64 */ - entries_amount: number; - /** Format: int64 */ - id: number; - /** Format: date-time */ - last_entry_at: string; - name: string; - tags: string[]; - }[]; - /** Format: int64 */ - total_items: number; - }; - PaginatedResults_ForumPostHierarchy: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - results: { - content: string; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLiteAvatar"]; - /** Format: int64 */ - forum_thread_id: number; - /** Format: int64 */ - id: number; - sticky: boolean; - /** Format: date-time */ - updated_at: string; - }[]; - /** Format: int64 */ - total_items: number; - }; - PaginatedResults_ForumSearchResult: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - results: { - /** Format: int32 */ - category_id: number; - category_name: string; - post: string; - /** Format: date-time */ - post_created_at: string; - /** Format: int32 */ - post_created_by_id: number; - post_created_by_username: string; - /** Format: int64 */ - post_id: number; - /** Format: int32 */ - sub_category_id: number; - sub_category_name: string; - /** Format: int64 */ - thread_id: number; - thread_name: string; - }[]; - /** Format: int64 */ - total_items: number; - }; - PaginatedResults_TitleGroupHierarchyLite: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - results: { - affiliated_artists: components["schemas"]["AffiliatedArtistLite"][]; - category?: null | components["schemas"]["TitleGroupCategory"]; - content_type: components["schemas"]["ContentType"]; - covers: string[]; - edition_groups: components["schemas"]["EditionGroupHierarchyLite"][]; - /** Format: int32 */ - id: number; - name: string; - /** Format: date-time */ - original_release_date: string; - platform?: null | components["schemas"]["Platform"]; - tags: string[]; - }[]; - /** Format: int64 */ - total_items: number; - }; - PaginatedResults_TitleGroupTagEnriched: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - results: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - id: number; - name: string; - synonyms: string[]; - /** Format: int32 */ - uses: number; - }[]; - /** Format: int64 */ - total_items: number; - }; - PaginatedResults_TitleGroupTagLite: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - results: { - /** Format: int32 */ - id: number; - name: string; - synonyms: string[]; - }[]; - /** Format: int64 */ - total_items: number; - }; - PaginatedResults_TorrentHierarchyLite: { - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - results: { - /** Format: int32 */ - audio_bitrate?: number | null; - audio_bitrate_sampling?: null | components["schemas"]["AudioBitrateSampling"]; - audio_channels?: null | components["schemas"]["AudioChannels"]; - audio_codec?: null | components["schemas"]["AudioCodec"]; - container: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - download_factor: number; - /** Format: int32 */ - duration?: number | null; - /** Format: int32 */ - edition_group_id: number; - extras: components["schemas"]["Extras"][]; - features: components["schemas"]["Features"][]; - /** Format: int32 */ - id: number; - languages: components["schemas"]["Language"][]; - /** Format: int64 */ - leechers: number; - release_group?: string | null; - release_name?: string | null; - reports: components["schemas"]["TorrentReport"][]; - /** Format: int64 */ - seeders: number; - /** Format: int64 */ - size: number; - /** Format: int64 */ - snatched: number; - staff_checked: boolean; - subtitle_languages: components["schemas"]["Language"][]; - /** Format: int32 */ - times_completed: number; - trumpable?: string | null; - /** Format: int32 */ - upload_factor: number; - video_codec?: null | components["schemas"]["VideoCodec"]; - video_resolution?: null | components["schemas"]["VideoResolution"]; - /** Format: int32 */ - video_resolution_other_x?: number | null; - /** Format: int32 */ - video_resolution_other_y?: number | null; - }[]; - /** Format: int64 */ - total_items: number; - }; - Peer: { - agent?: string | null; - /** Format: date-time */ - first_seen_at: string; - /** Format: 0.0.0.0 */ - ip: string; - /** Format: date-time */ - last_seen_at: string; - /** Format: int32 */ - port: number; - /** Format: int64 */ - real_downloaded: number; - /** Format: int64 */ - real_uploaded: number; - status: components["schemas"]["PeerStatus"]; - }; - /** @enum {string} */ - PeerStatus: "Seeding" | "Leeching"; - /** @enum {string} */ - Platform: "Windows" | "Linux" | "MacOS" | "Xbox"; - Profile: { - last_five_snatched_torrents: components["schemas"]["TitleGroupHierarchyLite"][]; - last_five_uploaded_torrents: components["schemas"]["TitleGroupHierarchyLite"][]; - peers: components["schemas"]["Peer"][]; - /** Format: int32 */ - unread_conversations_amount: number; - /** Format: int32 */ - unread_notifications_amount_forum_thread_posts: number; - user: components["schemas"]["User"]; - user_warnings: components["schemas"]["UserWarning"][]; - }; - PublicProfile: { - last_five_snatched_torrents: components["schemas"]["TitleGroupHierarchyLite"][]; - last_five_uploaded_torrents: components["schemas"]["TitleGroupHierarchyLite"][]; - user: components["schemas"]["PublicUser"]; - }; - PublicRating: { - /** Format: double */ - rating: number; - service: components["schemas"]["ExternalDB"]; - /** Format: int64 */ - votes: number; - }; - PublicUser: { - /** Format: int64 */ - artist_comments: number; - avatar?: string | null; - /** Format: int64 */ - average_seeding_time: number; - banned: boolean; - /** Format: int64 */ - bonus_points: number; - class: components["schemas"]["UserClass"]; - /** Format: int64 */ - collages_started: number; - /** Format: date-time */ - created_at: string; - description: string; - /** Format: int64 */ - downloaded: number; - /** Format: int32 */ - forum_posts: number; - /** Format: int32 */ - forum_threads: number; - /** Format: int32 */ - id: number; - /** Format: int32 */ - invitations: number; - /** Format: int64 */ - invited: number; - /** Format: date-time */ - last_seen: string; - /** Format: int32 */ - leeching: number; - /** Format: double */ - ratio: number; - /** Format: int64 */ - real_downloaded: number; - /** Format: int64 */ - real_uploaded: number; - /** Format: int32 */ - request_comments: number; - /** Format: int64 */ - requests_filled: number; - /** Format: int64 */ - requests_voted: number; - /** Format: double */ - required_ratio: number; - /** Format: int32 */ - seeding: number; - /** Format: int64 */ - seeding_size: number; - /** Format: int32 */ - snatched: number; - /** Format: int32 */ - torrent_comments: number; - /** Format: int64 */ - uploaded: number; - username: string; - warned: boolean; - }; - RefreshToken: { - refresh_token: string; - }; - Register: { - email: string; - password: string; - password_verify: string; - username: string; - }; - RemovedTitleGroupTag: { - tag_name: string; - /** Format: int32 */ - title_group_id: number; - }; - SearchCollagesLiteQuery: { - name: string; - /** Format: int32 */ - results_amount: number; - }; - SearchCollagesQuery: { - name?: string | null; - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - tags?: string[] | null; - }; - SearchSeriesQuery: { - name?: string | null; - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - tags?: string[] | null; - }; - SearchTitleGroupTagsLiteQuery: { - name: string; - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - }; - SearchTitleGroupTagsQuery: { - name: string; - order_by_column: components["schemas"]["TitleGroupTagSearchOrderByColumn"]; - order_by_direction: components["schemas"]["OrderByDirection"]; - /** Format: int32 */ - page: number; - /** Format: int32 */ - page_size: number; - }; - SearchTorrentRequestsQuery: { - /** Format: int64 */ - page?: number | null; - /** Format: int64 */ - page_size?: number | null; - tags?: string[] | null; - title_group_name?: string | null; - }; - SentInvitation: { - message: string; - receiver_email: string; - /** Format: int64 */ - user_application_id?: number | null; - }; - Series: { - banners?: string[] | null; - covers: string[]; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description: string; - /** Format: int64 */ - id: number; - name: string; - tags: string[]; - /** Format: date-time */ - updated_at: string; - }; - SeriesAndTitleGroupHierarchyLite: { - series: components["schemas"]["Series"]; - title_groups: components["schemas"]["TitleGroupHierarchyLite"][]; - }; - SeriesLite: { - /** Format: int64 */ - id: number; - name: string; - }; - SeriesSearchResponse: { - results: components["schemas"]["SeriesSearchResult"][]; - /** Format: int64 */ - total_items: number; - }; - SeriesSearchResult: { - banners?: string[] | null; - covers: string[]; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - name: string; - tags: string[]; - /** Format: int64 */ - title_groups_amount: number; - }; - /** @enum {string} */ - Source: "CD" | "DVD5" | "DVD9" | "Vinyl" | "Web" | "Soundboard" | "SACD" | "DAT" | "Cassette" | "Blu-Ray" | "LaserDisc" | "HD-DVD" | "HDTV" | "PDTV" | "TV" | "VHS" | "Mixed" | "Physical Book"; - StaffPm: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - resolved: boolean; - subject: string; - }; - StaffPmHierarchy: { - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLiteAvatar"]; - /** Format: int64 */ - id: number; - messages: components["schemas"]["StaffPmMessageHierarchy"][]; - resolved: boolean; - subject: string; - }; - StaffPmMessage: { - content: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - /** Format: int64 */ - staff_pm_id: number; - }; - StaffPmMessageHierarchy: { - content: string; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLiteAvatar"]; - /** Format: int64 */ - id: number; - }; - StaffPmMessageHierarchyLite: { - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - }; - StaffPmOverview: { - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - /** Format: int64 */ - id: number; - last_message: components["schemas"]["StaffPmMessageHierarchyLite"]; - resolved: boolean; - subject: string; - }; - TitleGroup: { - category?: null | components["schemas"]["TitleGroupCategory"]; - content_type: components["schemas"]["ContentType"]; - country_from?: string | null; - covers: string[]; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description: string; - embedded_links: { - [key: string]: { - [key: string]: string; - }; - }; - external_links: string[]; - /** Format: int32 */ - id: number; - /** Format: int32 */ - master_group_id?: number | null; - name: string; - name_aliases: string[]; - original_language?: null | components["schemas"]["Language"]; - /** Format: date-time */ - original_release_date: string; - platform?: null | components["schemas"]["Platform"]; - public_ratings: components["schemas"]["PublicRating"][]; - screenshots: string[]; - /** Format: int64 */ - series_id?: number | null; - tagline?: string | null; - tags: string[]; - /** Format: date-time */ - updated_at: string; - }; - TitleGroupAndAssociatedData: { - affiliated_artists: components["schemas"]["AffiliatedArtistHierarchy"][]; - affiliated_entities: components["schemas"]["AffiliatedEntityHierarchy"][]; - collages: components["schemas"]["CollageSearchResult"][]; - edition_groups: components["schemas"]["EditionGroupHierarchy"][]; - in_same_master_group: components["schemas"]["TitleGroupLite"][]; - is_subscribed: boolean; - series: components["schemas"]["SeriesLite"]; - title_group: components["schemas"]["TitleGroup"]; - title_group_comments: components["schemas"]["TitleGroupCommentHierarchy"][]; - torrent_requests: components["schemas"]["TorrentRequestHierarchyLite"][]; - }; - /** @enum {string} */ - TitleGroupCategory: "Ep" | "Album" | "Single" | "Soundtrack" | "Anthology" | "Compilation" | "Remix" | "Bootleg" | "Mixtape" | "ConcertRecording" | "DjMix" | "FeatureFilm" | "ShortFilm" | "Game" | "Program" | "Illustrated" | "Periodical" | "Book" | "Article" | "Manual" | "Other"; - TitleGroupComment: { - /** Format: int64 */ - answers_to_comment_id?: number | null; - content: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - /** Format: int32 */ - refers_to_torrent_id?: number | null; - /** Format: int32 */ - title_group_id: number; - /** Format: date-time */ - updated_at: string; - }; - TitleGroupCommentHierarchy: { - /** Format: int64 */ - answers_to_comment_id?: number | null; - content: string; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLiteAvatar"]; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - /** Format: int32 */ - refers_to_torrent_id?: number | null; - /** Format: int32 */ - title_group_id: number; - /** Format: date-time */ - updated_at: string; - }; - TitleGroupHierarchyLite: { - affiliated_artists: components["schemas"]["AffiliatedArtistLite"][]; - category?: null | components["schemas"]["TitleGroupCategory"]; - content_type: components["schemas"]["ContentType"]; - covers: string[]; - edition_groups: components["schemas"]["EditionGroupHierarchyLite"][]; - /** Format: int32 */ - id: number; - name: string; - /** Format: date-time */ - original_release_date: string; - platform?: null | components["schemas"]["Platform"]; - tags: string[]; - }; - TitleGroupLite: { - content_type: components["schemas"]["ContentType"]; - covers: string[]; - edition_groups: components["schemas"]["EditionGroupInfoLite"][]; - /** Format: int32 */ - id: number; - name: string; - /** Format: date-time */ - original_release_date: string; - platform?: null | components["schemas"]["Platform"]; - }; - TitleGroupTag: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int32 */ - id: number; - name: string; - synonyms: string[]; - }; - TitleGroupTagEnriched: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - id: number; - name: string; - synonyms: string[]; - /** Format: int32 */ - uses: number; - }; - TitleGroupTagLite: { - /** Format: int32 */ - id: number; - name: string; - synonyms: string[]; - }; - /** @enum {string} */ - TitleGroupTagSearchOrderByColumn: "created_at" | "uses" | "name"; - Torrent: { - /** Format: int32 */ - audio_bitrate?: number | null; - audio_bitrate_sampling?: null | components["schemas"]["AudioBitrateSampling"]; - audio_channels?: null | components["schemas"]["AudioChannels"]; - audio_codec?: null | components["schemas"]["AudioCodec"]; - container: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: date-time */ - deleted_at: string; - /** Format: int64 */ - deleted_by_id?: number | null; - description?: string | null; - /** Format: int32 */ - download_factor: number; - /** Format: int32 */ - duration?: number | null; - /** Format: int32 */ - edition_group_id: number; - extras: components["schemas"]["Extras"][]; - features: components["schemas"]["Features"][]; - file_amount_per_type: { - [key: string]: string; - }; - file_list: { - [key: string]: string; - }; - /** Format: int32 */ - id: number; - info_hash: components["schemas"]["InfoHash"]; - languages: components["schemas"]["Language"][]; - /** Format: int64 */ - leechers: number; - mediainfo?: string | null; - release_group?: string | null; - release_name?: string | null; - /** Format: int64 */ - seeders: number; - /** Format: int64 */ - size: number; - /** Format: int64 */ - snatched: number; - staff_checked: boolean; - subtitle_languages: components["schemas"]["Language"][]; - /** Format: int32 */ - times_completed: number; - trumpable?: string | null; - /** Format: date-time */ - updated_at: string; - /** Format: int32 */ - upload_factor: number; - uploaded_as_anonymous: boolean; - video_codec?: null | components["schemas"]["VideoCodec"]; - video_resolution?: null | components["schemas"]["VideoResolution"]; - /** Format: int32 */ - video_resolution_other_x?: number | null; - /** Format: int32 */ - video_resolution_other_y?: number | null; - }; - TorrentHierarchy: { - /** Format: int32 */ - audio_bitrate?: number | null; - audio_bitrate_sampling?: null | components["schemas"]["AudioBitrateSampling"]; - audio_channels?: null | components["schemas"]["AudioChannels"]; - audio_codec?: null | components["schemas"]["AudioCodec"]; - container: string; - /** Format: date-time */ - created_at: string; - created_by?: null | components["schemas"]["UserLite"]; - /** Format: int32 */ - created_by_id?: number | null; - description?: string | null; - /** Format: int32 */ - download_factor: number; - /** Format: int32 */ - duration?: number | null; - /** Format: int32 */ - edition_group_id: number; - extras: components["schemas"]["Extras"][]; - features: components["schemas"]["Features"][]; - file_amount_per_type: { - [key: string]: string; - }; - file_list: { - [key: string]: string; - }; - /** Format: int32 */ - id: number; - languages: components["schemas"]["Language"][]; - /** Format: int64 */ - leechers: number; - mediainfo?: string | null; - release_group?: string | null; - release_name?: string | null; - reports: components["schemas"]["TorrentReport"][]; - /** Format: int64 */ - seeders: number; - /** Format: int64 */ - size: number; - /** Format: int64 */ - snatched: number; - staff_checked: boolean; - subtitle_languages: components["schemas"]["Language"][]; - /** Format: int32 */ - times_completed: number; - trumpable?: string | null; - /** Format: date-time */ - updated_at: string; - /** Format: int32 */ - upload_factor: number; - uploaded_as_anonymous: boolean; - video_codec?: null | components["schemas"]["VideoCodec"]; - video_resolution?: null | components["schemas"]["VideoResolution"]; - /** Format: int32 */ - video_resolution_other_x?: number | null; - /** Format: int32 */ - video_resolution_other_y?: number | null; - }; - TorrentHierarchyLite: { - /** Format: int32 */ - audio_bitrate?: number | null; - audio_bitrate_sampling?: null | components["schemas"]["AudioBitrateSampling"]; - audio_channels?: null | components["schemas"]["AudioChannels"]; - audio_codec?: null | components["schemas"]["AudioCodec"]; - container: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - download_factor: number; - /** Format: int32 */ - duration?: number | null; - /** Format: int32 */ - edition_group_id: number; - extras: components["schemas"]["Extras"][]; - features: components["schemas"]["Features"][]; - /** Format: int32 */ - id: number; - languages: components["schemas"]["Language"][]; - /** Format: int64 */ - leechers: number; - release_group?: string | null; - release_name?: string | null; - reports: components["schemas"]["TorrentReport"][]; - /** Format: int64 */ - seeders: number; - /** Format: int64 */ - size: number; - /** Format: int64 */ - snatched: number; - staff_checked: boolean; - subtitle_languages: components["schemas"]["Language"][]; - /** Format: int32 */ - times_completed: number; - trumpable?: string | null; - /** Format: int32 */ - upload_factor: number; - video_codec?: null | components["schemas"]["VideoCodec"]; - video_resolution?: null | components["schemas"]["VideoResolution"]; - /** Format: int32 */ - video_resolution_other_x?: number | null; - /** Format: int32 */ - video_resolution_other_y?: number | null; - }; - TorrentMinimal: { - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - id: number; - info_hash?: string | null; - }; - TorrentReport: { - description: string; - /** Format: int64 */ - id: number; - /** Format: date-time */ - reported_at: string; - /** Format: int32 */ - reported_by_id: number; - /** Format: int32 */ - reported_torrent_id: number; - }; - TorrentRequest: { - audio_bitrate_sampling: components["schemas"]["AudioBitrateSampling"][]; - audio_channels: components["schemas"]["AudioChannels"][]; - audio_codec: components["schemas"]["AudioCodec"][]; - container: string[]; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - description?: string | null; - edition_name?: string | null; - features: components["schemas"]["Features"][]; - /** Format: date-time */ - filled_at: string; - /** Format: int32 */ - filled_by_torrent_id?: number | null; - /** Format: int32 */ - filled_by_user_id?: number | null; - /** Format: int64 */ - id: number; - languages: components["schemas"]["Language"][]; - release_group?: string | null; - source: components["schemas"]["Source"][]; - subtitle_languages: components["schemas"]["Language"][]; - /** Format: int32 */ - title_group_id: number; - /** Format: date-time */ - updated_at: string; - video_codec: components["schemas"]["VideoCodec"][]; - video_resolution: components["schemas"]["VideoResolution"][]; - /** Format: int32 */ - video_resolution_other_x?: number | null; - /** Format: int32 */ - video_resolution_other_y?: number | null; - }; - TorrentRequestAndAssociatedData: { - affiliated_artists: components["schemas"]["AffiliatedArtistHierarchy"][]; - comments: components["schemas"]["TorrentRequestCommentHierarchy"][]; - series: components["schemas"]["SeriesLite"]; - title_group: components["schemas"]["TitleGroup"]; - torrent_request: components["schemas"]["TorrentRequest"]; - votes: components["schemas"]["TorrentRequestVoteHierarchy"][]; - }; - TorrentRequestBounty: { - /** Format: int64 */ - bonus_points: number; - /** Format: int64 */ - upload: number; - }; - TorrentRequestComment: { - content: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - /** Format: int64 */ - torrent_request_id: number; - /** Format: date-time */ - updated_at: string; - }; - TorrentRequestCommentHierarchy: { - content: string; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLiteAvatar"]; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - /** Format: int64 */ - torrent_request_id: number; - /** Format: date-time */ - updated_at: string; - }; - TorrentRequestFill: { - /** Format: int32 */ - torrent_id: number; - /** Format: int64 */ - torrent_request_id: number; - }; - TorrentRequestHierarchyLite: { - bounty: components["schemas"]["TorrentRequestBounty"]; - created_by: components["schemas"]["UserLite"]; - torrent_request: components["schemas"]["TorrentRequest"]; - /** Format: int32 */ - user_votes_amount: number; - }; - TorrentRequestVote: { - /** Format: int64 */ - bounty_bonus_points: number; - /** Format: int64 */ - bounty_upload: number; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - /** Format: int64 */ - torrent_request_id: number; - }; - TorrentRequestVoteHierarchy: { - /** Format: int64 */ - bounty_bonus_points: number; - /** Format: int64 */ - bounty_upload: number; - /** Format: date-time */ - created_at: string; - created_by: components["schemas"]["UserLite"]; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - /** Format: int64 */ - torrent_request_id: number; - }; - TorrentRequestWithTitleGroupLite: { - affiliated_artists: components["schemas"]["AffiliatedArtistHierarchy"][]; - bounty: components["schemas"]["TorrentRequestBounty"]; - series: components["schemas"]["SeriesLite"]; - title_group: components["schemas"]["TitleGroupLite"]; - torrent_request: components["schemas"]["TorrentRequest"]; - /** Format: int32 */ - user_votes_amount: number; - }; - TorrentSearch: { - /** Format: int64 */ - artist_id?: number | null; - /** Format: int32 */ - collage_id?: number | null; - order_by_column: components["schemas"]["TorrentSearchOrderByColumn"]; - order_by_direction: components["schemas"]["OrderByDirection"]; - /** Format: int64 */ - page: number; - /** Format: int64 */ - page_size: number; - title_group_include_empty_groups: boolean; - title_group_name?: string | null; - /** Format: int32 */ - torrent_created_by_id?: number | null; - torrent_reported?: boolean | null; - /** Format: int32 */ - torrent_snatched_by_id?: number | null; - torrent_staff_checked?: boolean | null; - }; - /** @enum {string} */ - TorrentSearchOrderByColumn: "torrent_created_at" | "torrent_size" | "torrent_snatched_at" | "title_group_original_release_date"; - TorrentToDelete: { - displayed_reason?: string | null; - /** Format: int32 */ - id: number; - reason: string; - }; - UpdateUserApplication: { - status: components["schemas"]["UserApplicationStatus"]; - /** Format: int64 */ - user_application_id: number; - }; - UploadInformation: { - announce_url: string; - }; - UploadedTorrent: { - /** Format: int32 */ - audio_bitrate: number; - audio_bitrate_sampling: components["schemas"]["AudioBitrateSampling"]; - audio_channels: string; - audio_codec: components["schemas"]["AudioCodec"]; - container: string; - description: string; - /** Format: int32 */ - duration: number; - /** Format: int32 */ - edition_group_id: number; - extras: string; - features: string; - languages: string; - mediainfo: string; - release_group: string; - release_name: string; - subtitle_languages: string; - /** Format: binary */ - torrent_file: string; - uploaded_as_anonymous: boolean; - video_codec: components["schemas"]["VideoCodec"]; - video_resolution: components["schemas"]["VideoResolution"]; - /** Format: int32 */ - video_resolution_other_x: number; - /** Format: int32 */ - video_resolution_other_y: number; - }; - User: { - /** Format: int64 */ - artist_comments: number; - avatar?: string | null; - /** Format: int64 */ - average_seeding_time: number; - banned: boolean; - /** Format: int64 */ - bonus_points: number; - class: components["schemas"]["UserClass"]; - /** Format: int64 */ - collages_started: number; - /** Format: date-time */ - created_at: string; - css_sheet_name: string; - description: string; - /** Format: int64 */ - downloaded: number; - email: string; - /** Format: int32 */ - forum_posts: number; - /** Format: int32 */ - forum_threads: number; - /** Format: int32 */ - freeleech_tokens: number; - /** Format: int32 */ - id: number; - /** Format: int32 */ - invitations: number; - /** Format: int64 */ - invited: number; - /** Format: date-time */ - last_seen: string; - /** Format: int32 */ - leeching: number; - passkey: string; - password_hash: string; - /** Format: double */ - ratio: number; - /** Format: int64 */ - real_downloaded: number; - /** Format: int64 */ - real_uploaded: number; - /** Format: 0.0.0.0 */ - registered_from_ip: string; - /** Format: int32 */ - request_comments: number; - /** Format: int64 */ - requests_filled: number; - /** Format: int64 */ - requests_voted: number; - /** Format: double */ - required_ratio: number; - /** Format: int32 */ - seeding: number; - /** Format: int64 */ - seeding_size: number; - /** Format: int32 */ - snatched: number; - staff_note: string; - /** Format: int32 */ - torrent_comments: number; - /** Format: int64 */ - uploaded: number; - username: string; - warned: boolean; - }; - UserApplication: { - body: string; - /** Format: date-time */ - created_at: string; - email: string; - /** Format: int64 */ - id: number; - referral: string; - staff_note: string; - status: components["schemas"]["UserApplicationStatus"]; - }; - /** @enum {string} */ - UserApplicationStatus: "pending" | "accepted" | "rejected"; - /** @enum {string} */ - UserClass: "newbie" | "staff" | "tracker"; - UserCreatedAffiliatedArtist: { - /** Format: int64 */ - artist_id: number; - nickname?: string | null; - roles: components["schemas"]["ArtistRole"][]; - /** Format: int32 */ - title_group_id: number; - }; - UserCreatedArtist: { - description: string; - name: string; - pictures: string[]; - }; - UserCreatedCollage: { - category: components["schemas"]["CollageCategory"]; - collage_type: components["schemas"]["CollageType"]; - cover?: string | null; - description: string; - name: string; - tags: string[]; - }; - UserCreatedCollageEntry: { - /** Format: int64 */ - artist_id?: number | null; - /** Format: int64 */ - collage_id: number; - /** Format: int64 */ - entity_id?: number | null; - /** Format: int32 */ - master_group_id?: number | null; - note?: string | null; - /** Format: int32 */ - title_group_id?: number | null; - }; - UserCreatedConversation: { - first_message: components["schemas"]["UserCreatedConversationMessage"]; - /** Format: int32 */ - receiver_id: number; - subject: string; - }; - UserCreatedConversationMessage: { - content: string; - /** Format: int64 */ - conversation_id: number; - }; - UserCreatedCssSheet: { - css: string; - name: string; - preview_image_url: string; - }; - UserCreatedEditionGroup: { - additional_information: { - [key: string]: string; - }; - covers: string[]; - description?: string | null; - distributor?: string | null; - external_links: string[]; - name?: string | null; - /** Format: date-time */ - release_date: string; - source?: null | components["schemas"]["Source"]; - /** Format: int32 */ - title_group_id: number; - }; - UserCreatedForumPost: { - content: string; - /** Format: int64 */ - forum_thread_id: number; - }; - UserCreatedForumThread: { - first_post: components["schemas"]["UserCreatedForumPost"]; - /** Format: int32 */ - forum_sub_category_id: number; - name: string; - }; - UserCreatedGift: { - /** Format: int64 */ - bonus_points: number; - /** Format: int32 */ - freeleech_tokens: number; - message: string; - /** Format: int32 */ - receiver_id: number; - }; - UserCreatedMasterGroup: { - name?: string | null; - }; - UserCreatedSeries: { - banners: string[]; - covers: string[]; - description: string; - name: string; - tags: string[]; - }; - UserCreatedStaffPm: { - first_message: components["schemas"]["UserCreatedStaffPmMessage"]; - subject: string; - }; - UserCreatedStaffPmMessage: { - content: string; - /** Format: int64 */ - staff_pm_id: number; - }; - UserCreatedTitleGroup: { - affiliated_artists: components["schemas"]["UserCreatedAffiliatedArtist"][]; - category?: null | components["schemas"]["TitleGroupCategory"]; - content_type: components["schemas"]["ContentType"]; - country_from?: string | null; - covers: string[]; - description: string; - embedded_links: { - [key: string]: { - [key: string]: string; - }; - }; - external_links: string[]; - /** Format: int32 */ - master_group_id?: number | null; - name: string; - name_aliases: string[]; - original_language?: null | components["schemas"]["Language"]; - /** Format: date-time */ - original_release_date: string; - platform?: null | components["schemas"]["Platform"]; - screenshots: string[]; - /** Format: int64 */ - series_id?: number | null; - tagline?: string | null; - tags: string[]; - }; - UserCreatedTitleGroupComment: { - /** Format: int64 */ - answers_to_comment_id?: number | null; - content: string; - /** Format: int32 */ - refers_to_torrent_id?: number | null; - /** Format: int32 */ - title_group_id: number; - }; - UserCreatedTitleGroupTag: { - name: string; - }; - UserCreatedTorrentReport: { - description: string; - /** Format: int32 */ - reported_torrent_id: number; - }; - UserCreatedTorrentRequest: { - audio_bitrate_sampling: components["schemas"]["AudioBitrateSampling"][]; - audio_channels: components["schemas"]["AudioChannels"][]; - audio_codec: components["schemas"]["AudioCodec"][]; - container: string[]; - description?: string | null; - edition_name?: string | null; - features: components["schemas"]["Features"][]; - initial_vote: components["schemas"]["UserCreatedTorrentRequestVote"]; - languages: components["schemas"]["Language"][]; - release_group?: string | null; - source: components["schemas"]["Source"][]; - subtitle_languages: components["schemas"]["Language"][]; - /** Format: int32 */ - title_group_id: number; - video_codec: components["schemas"]["VideoCodec"][]; - video_resolution: components["schemas"]["VideoResolution"][]; - /** Format: int32 */ - video_resolution_other_x?: number | null; - /** Format: int32 */ - video_resolution_other_y?: number | null; - }; - UserCreatedTorrentRequestComment: { - content: string; - /** Format: int64 */ - torrent_request_id: number; - }; - UserCreatedTorrentRequestVote: { - /** Format: int64 */ - bounty_bonus_points: number; - /** Format: int64 */ - bounty_upload: number; - /** Format: int64 */ - torrent_request_id: number; - }; - UserCreatedUserApplication: { - body: string; - email: string; - referral: string; - }; - UserCreatedUserWarning: { - ban: boolean; - /** Format: date-time */ - expires_at?: string | null; - reason: string; - /** Format: int32 */ - user_id: number; - }; - UserCreatedWikiArticle: { - body: string; - title: string; - }; - UserLite: { - banned: boolean; - /** Format: int32 */ - id: number; - username: string; - warned: boolean; - }; - UserLiteAvatar: { - avatar?: string | null; - banned: boolean; - /** Format: int32 */ - id: number; - username: string; - warned: boolean; - }; - UserSettings: { - css_sheet_name: string; - }; - UserWarning: { - ban: boolean; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: date-time */ - expires_at?: string | null; - /** Format: int64 */ - id: number; - reason: string; - /** Format: int32 */ - user_id: number; - }; - /** @enum {string} */ - VideoCodec: "mpeg1" | "mpeg2" | "Xvid" | "divX" | "h264" | "h265" | "vc-1" | "vp9" | "BD50" | "UHD100"; - /** @enum {string} */ - VideoResolution: "Other" | "480p" | "480i" | "576i" | "576p" | "720p" | "1080p" | "1080i" | "1440p" | "2160p" | "4320p"; - WikiArticle: { - body: string; - /** Format: date-time */ - created_at: string; - /** Format: int32 */ - created_by_id: number; - /** Format: int64 */ - id: number; - title: string; - /** Format: date-time */ - updated_at: string; - /** Format: int32 */ - updated_by_id: number; - }; - }; - responses: never; - parameters: never; - requestBodies: never; - headers: never; - pathItems: never; -} -export type $defs = Record; -export interface operations { - "Create artist affiliation": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedAffiliatedArtist"][]; - }; - }; - responses: { - /** @description Successfully created the artist affiliations */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["AffiliatedArtistHierarchy"][]; - }; - }; - }; - }; - "Delete artist affiliation": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully removed the artist affiliations */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Get artist publications": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the artist's publications */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ArtistAndTitleGroupsLite"]; - }; - }; - }; - }; - "Edit artist": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["EditedArtist"]; - }; - }; - responses: { - /** @description Successfully edited the artist */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Artist"]; - }; - }; - }; - }; - "Create artist": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedArtist"][]; - }; - }; - responses: { - /** @description Successfully created the artists, returned in the same order as the one sent. - * In the case of a db conflict (duplicate), the existing entry is returned (can be seen with the created_at attribute). */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Artist"][]; - }; - }; - }; - }; - "Create user application": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedUserApplication"]; - }; - }; - responses: { - /** @description Successfully created user application */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["UserApplication"]; - }; - }; - }; - }; - Login: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["Login"]; - }; - }; - responses: { - /** @description Successfully logged in */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["LoginResponse"]; - }; - }; - }; - }; - "Refresh token": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["RefreshToken"]; - }; - }; - responses: { - /** @description Successfully refreshed the token */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["LoginResponse"]; - }; - }; - }; - }; - Register: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["Register"]; - }; - }; - responses: { - /** @description Successfully registered the user */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"]; - }; - }; - }; - }; - "Get a collage": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Collage information and its entries */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["CollageAndAssociatedData"]; - }; - }; - }; - }; - "Create a collage": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedCollage"]; - }; - }; - responses: { - /** @description Successfully created the collage */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Collage"]; - }; - }; - }; - }; - "Inserts entries into a collage": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedCollageEntry"][]; - }; - }; - responses: { - /** @description Successfully created the collage entries */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["CollageEntry"][]; - }; - }; - }; - }; - "Get conversations": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Found the conversation and its messages */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ConversationHierarchy"]; - }; - }; - }; - }; - "Create conversation": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedConversation"]; - }; - }; - responses: { - /** @description Successfully created the conversation and first message */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Conversation"]; - }; - }; - }; - }; - "Create conversation message": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedConversationMessage"]; - }; - }; - responses: { - /** @description Successfully created the conversation's message */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ConversationMessage"]; - }; - }; - }; - }; - "Get CSS sheets": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the css sheets */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["CssSheetsEnriched"]; - }; - }; - }; - }; - "Edit CSS sheet": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["EditedCssSheet"]; - }; - }; - responses: { - /** @description Successfully edited the CSS sheet */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["CssSheet"]; - }; - }; - }; - }; - "Create CSS sheet": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedCssSheet"]; - }; - }; - responses: { - /** @description Successfully created the CSS sheet */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["CssSheet"]; - }; - }; - }; - }; - "Create edition group": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedEditionGroup"]; - }; - }; - responses: { - /** @description Successfully created the edition_group */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["EditionGroup"]; - }; - }; - }; - }; - "Get comic vine data": { - parameters: { - query: { - url: string; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ExternalDBData"]; - }; - }; - }; - }; - "Get isbn data": { - parameters: { - query: { - isbn: string; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ExternalDBData"]; - }; - }; - }; - }; - "Get Musicbranz data": { - parameters: { - query: { - url: string; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ExternalDBData"]; - }; - }; - }; - }; - "Get TMDB data": { - parameters: { - query: { - url: string; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ExternalDBData"]; - }; - }; - }; - }; - "Create forum": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Returns an overview of the forum */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ForumOverview"]; - }; - }; - }; - }; - "Create forum post": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedForumPost"]; - }; - }; - responses: { - /** @description Successfully created the forum post */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ForumPost"]; - }; - }; - }; - }; - "Get forim sub-category thread": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Returns the threads in the forum sub-category */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ForumSubCategoryHierarchy"]; - }; - }; - }; - }; - "Get forum thread": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Returns the thread's information */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ForumThreadEnriched"]; - }; - }; - }; - }; - "Create forum thread": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedForumThread"]; - }; - }; - responses: { - /** @description Successfully created the forum thread */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ForumThread"]; - }; - }; - }; - }; - "Get forum thread's posts": { - parameters: { - query: { - thread_id: number; - page?: number | null; - page_size: number; - post_id?: number | null; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Returns the thread's posts */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PaginatedResults_ForumPostHierarchy"]; - }; - }; - }; - }; - "Create gift": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedGift"]; - }; - }; - responses: { - /** @description Successfully sent the gift */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Gift"]; - }; - }; - }; - }; - "Get home data": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["HomePage"]; - }; - }; - }; - }; - "Create invitation": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["SentInvitation"]; - }; - }; - responses: { - /** @description Successfully sent the invitation */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Invitation"]; - }; - }; - }; - }; - "Create master group": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedMasterGroup"]; - }; - }; - responses: { - /** @description Successfully created the master group */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["MasterGroup"]; - }; - }; - }; - }; - "Get notifications for forum thread posts": { - parameters: { - query: { - include_read: boolean; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the notifications */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["NotificationForumThreadPost"][]; - }; - }; - }; - }; - "Search artists": { - parameters: { - query: { - name: string; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the artists and some data about them */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ArtistLite"][]; - }; - }; - }; - }; - "Search collages": { - parameters: { - query: { - name?: string | null; - tags?: string[] | null; - page: number; - page_size: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the collages and some data about them */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PaginatedResults_CollageSearchResult"]; - }; - }; - }; - }; - "Search collages lite": { - parameters: { - query: { - name: string; - results_amount: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the collages lite and some data about them */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["CollageLite"][]; - }; - }; - }; - }; - "Search forum": { - parameters: { - query: { - thread_name?: string | null; - page: number; - page_size: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the series and some data about them */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PaginatedResults_ForumSearchResult"]; - }; - }; - }; - }; - "Search series": { - parameters: { - query: { - name?: string | null; - tags?: string[] | null; - page: number; - page_size: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the series and some data about them */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["SeriesSearchResponse"]; - }; - }; - }; - }; - "Search title group tags": { - parameters: { - query: { - /** @description Search query (searches in tag name and synonyms) */ - name: string; - /** @description Page number */ - page: number; - /** @description Results per page */ - page_size: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description List of matching tags with their names and synonyms */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PaginatedResults_TitleGroupTagEnriched"]; - }; - }; - }; - }; - "Search title group info": { - parameters: { - query: { - name: string; - content_type?: null | components["schemas"]["ContentType"]; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Returns title groups with their name containing the provided string, only the 5 first matches */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroupLite"][]; - }; - }; - }; - }; - "Search torrent requests": { - parameters: { - query?: { - /** @description Name of the title group to search for */ - title_group_name?: string; - /** @description Tags to filter title groups by */ - tags?: string[]; - /** @description Page number (default 1) */ - page?: number; - /** @description Results per page (default 50) */ - page_size?: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description List of torrent requests with associated title groups */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TorrentRequestWithTitleGroupLite"][]; - }; - }; - }; - }; - "Search torrents": { - parameters: { - query: { - title_group_name?: string | null; - title_group_include_empty_groups: boolean; - torrent_reported?: boolean | null; - torrent_staff_checked?: boolean | null; - torrent_created_by_id?: number | null; - torrent_snatched_by_id?: number | null; - artist_id?: number | null; - collage_id?: number | null; - page: number; - page_size: number; - order_by_column: components["schemas"]["TorrentSearchOrderByColumn"]; - order_by_direction: components["schemas"]["OrderByDirection"]; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Title groups and their torrents found */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PaginatedResults_TitleGroupHierarchyLite"]; - }; - }; - }; - }; - "Get series": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the series */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["SeriesAndTitleGroupHierarchyLite"]; - }; - }; - }; - }; - "Create series": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedSeries"]; - }; - }; - responses: { - /** @description Successfully created the series */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Series"]; - }; - }; - }; - }; - "List staff PMs": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description List staff PM conversations */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["StaffPmOverview"][]; - }; - }; - }; - }; - "Create staff PM": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedStaffPm"]; - }; - }; - responses: { - /** @description Created staff PM conversation */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["StaffPm"]; - }; - }; - }; - }; - "Reply to staff PM": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedStaffPmMessage"]; - }; - }; - responses: { - /** @description Created staff PM message */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["StaffPmMessage"]; - }; - }; - }; - }; - "Get staff PM": { - parameters: { - query?: never; - header?: never; - path: { - /** @description Staff PM id */ - id: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Staff PM conversation details */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["StaffPmHierarchy"]; - }; - }; - }; - }; - "Resolve staff PM": { - parameters: { - query?: never; - header?: never; - path: { - /** @description Staff PM id */ - id: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Resolved staff PM */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["StaffPm"]; - }; - }; - }; - }; - "Create forum thread posts subscription": { - parameters: { - query: { - thread_id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully subscribed to the item */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Remove forum thread posts subscription": { - parameters: { - query: { - thread_id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully unsubscribed to the item */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Create title group torrents subscription": { - parameters: { - query: { - title_group_id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully subscribed to the item */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Remove title group torrents subscription": { - parameters: { - query: { - title_group_id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully unsubscribed to the item */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Edit title group tag": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["EditedTitleGroupTag"]; - }; - }; - responses: { - /** @description Successfully edited the title group tag */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroupTag"]; - }; - }; - }; - }; - "Create title group tag": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedTitleGroupTag"]; - }; - }; - responses: { - /** @description Successfully created the title group tag */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroupTag"]; - }; - }; - }; - }; - "Delete title group tag": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["DeleteTagRequest"]; - }; - }; - responses: { - /** @description Successfully deleted the title group tag */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Apply tag to title group": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["AppliedTitleGroupTag"]; - }; - }; - responses: { - /** @description Successfully applied the tag to the title group */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Remove tag from title group": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["RemovedTitleGroupTag"]; - }; - }; - responses: { - /** @description Successfully removed the tag from the title group */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Get title group": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the title_group */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroupAndAssociatedData"]; - }; - }; - }; - }; - "Edit title group": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["EditedTitleGroup"]; - }; - }; - responses: { - /** @description Successfully edited the title group */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroup"]; - }; - }; - }; - }; - "Create title group": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedTitleGroup"]; - }; - }; - responses: { - /** @description Successfully created the title_group */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroup"]; - }; - }; - }; - }; - "Create title group comment": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedTitleGroupComment"]; - }; - }; - responses: { - /** @description Successfully posted the comment */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroupComment"]; - }; - }; - }; - }; - "Get title group info lite": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the title_group (lite info) */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TitleGroupLite"]; - }; - }; - }; - }; - "Get torrent requests": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the torrent request with associated data */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TorrentRequestAndAssociatedData"]; - }; - }; - }; - }; - "Create torrent request": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedTorrentRequest"]; - }; - }; - responses: { - /** @description Successfully created the torrent_request */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TorrentRequest"]; - }; - }; - }; - }; - "Create torrent request comment": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedTorrentRequestComment"]; - }; - }; - responses: { - /** @description Successfully commented on the torrent request */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TorrentRequestComment"]; - }; - }; - }; - }; - "Fill torrent request": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["TorrentRequestFill"]; - }; - }; - responses: { - /** @description Successfully filled the torrent request */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Create torrent request vote": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedTorrentRequestVote"]; - }; - }; - responses: { - /** @description Successfully voted on the torrent_request */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TorrentRequestVote"]; - }; - }; - }; - }; - "Download .torrent file": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully downloaded the torrent file */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Edit torrent": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["EditedTorrent"]; - }; - }; - responses: { - /** @description Successfully edited the torrent */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Torrent"]; - }; - }; - }; - }; - "Create torrent": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "multipart/form-data": components["schemas"]["UploadedTorrent"]; - }; - }; - responses: { - /** @description Successfully uploaded the torrent */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Torrent"]; - }; - }; - }; - }; - "Delete torrent": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["TorrentToDelete"]; - }; - }; - responses: { - /** @description Torrent deleted */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Get registered torrents": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description All registered torrents */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TorrentMinimal"][]; - }; - }; - }; - }; - "Create torrent report": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedTorrentReport"]; - }; - }; - responses: { - /** @description Torrent successfully reported */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TorrentReport"]; - }; - }; - }; - }; - "Get top torrent": { - parameters: { - query: { - period: string; - amount: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Top torrents found (and their title/edition group), sorted by amount of users who seeded at some point in time */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PaginatedResults_TorrentHierarchyLite"]; - }; - }; - }; - }; - "Get upload information": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Information related to uploading */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["UploadInformation"]; - }; - }; - }; - }; - "Get user applications": { - parameters: { - query?: { - /** @description Maximum number of applications to return (default: 50) */ - limit?: number; - /** @description Page (default: 1) */ - page?: number; - /** @description Filter by application status: 'pending', 'accepted', or 'rejected' */ - status?: string; - /** @description Filter by checked status: true for checked (accepted/rejected), false for unchecked (pending) */ - checked?: boolean; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully retrieved user applications */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["UserApplication"][]; - }; - }; - /** @description Bad Request - Invalid status parameter */ - 400: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Forbidden - Only staff members can view user applications */ - 403: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Update user application status": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateUserApplication"]; - }; - }; - responses: { - /** @description Successfully updated user application status */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["UserApplication"]; - }; - }; - /** @description Forbidden - Only staff members can update user applications */ - 403: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description User application not found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Get users": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the user's profile */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PublicProfile"]; - }; - }; - }; - }; - "Edit user": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["EditedUser"]; - }; - }; - responses: { - /** @description Successfully edited the user */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Get user conversations": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Found the conversations and some of their metadata */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ConversationsOverview"]; - }; - }; - }; - }; - "Get me": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully got the user's profile */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Profile"]; - }; - }; - }; - }; - "Get user settings": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully retrieved user settings */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["UserSettings"]; - }; - }; - }; - }; - "Update user settings": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserSettings"]; - }; - }; - responses: { - /** @description Successfully updated user settings */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - "Warn users": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedUserWarning"]; - }; - }; - responses: { - /** @description Successfully warned the user */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["UserWarning"]; - }; - }; - }; - }; - "Get wiki article": { - parameters: { - query: { - id: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully found the wiki article */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["WikiArticle"]; - }; - }; - }; - }; - "Edit wiki article": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["EditedWikiArticle"]; - }; - }; - responses: { - /** @description Successfully created the wiki article */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["WikiArticle"]; - }; - }; - }; - }; - "Create wiki article": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UserCreatedWikiArticle"]; - }; - }; - responses: { - /** @description Successfully created the wiki article */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["WikiArticle"]; - }; - }; - }; - }; - "Get CSS sheet content": { - parameters: { - query?: never; - header?: never; - path: { - name: string; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Successfully retrieved the CSS content */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "text/css": unknown; - }; - }; - /** @description CSS sheet not found */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; -} diff --git a/frontend/src/components/CssSheetList.vue b/frontend/src/components/CssSheetList.vue index f671d74f..5412a977 100644 --- a/frontend/src/components/CssSheetList.vue +++ b/frontend/src/components/CssSheetList.vue @@ -18,7 +18,7 @@ diff --git a/frontend/src/views/collage/CollageView.vue b/frontend/src/views/collage/CollageView.vue index cbbe29f8..04f15f59 100644 --- a/frontend/src/views/collage/CollageView.vue +++ b/frontend/src/views/collage/CollageView.vue @@ -42,7 +42,6 @@