diff --git a/api/funkwhale_api/music/serializers.py b/api/funkwhale_api/music/serializers.py index 46a118817..3e183b907 100644 --- a/api/funkwhale_api/music/serializers.py +++ b/api/funkwhale_api/music/serializers.py @@ -226,17 +226,19 @@ class TrackAlbumSerializer(serializers.ModelSerializer): ) -def serialize_upload(upload) -> object: - return { - "uuid": str(upload.uuid), - "listen_url": upload.listen_url, - "size": upload.size, - "duration": upload.duration, - "bitrate": upload.bitrate, - "mimetype": upload.mimetype, - "extension": upload.extension, - "is_local": federation_utils.is_local(upload.fid), - } +class UploadSerializer(serializers.Serializer): + uuid = serializers.UUIDField() + listen_url = serializers.URLField() + size = serializers.IntegerField() + duration = serializers.IntegerField() + bitrate = serializers.IntegerField() + mimetype = serializers.CharField() + extension = serializers.CharField() + is_local = serializers.SerializerMethodField() + + @extend_schema_field(serializers.BooleanField()) + def get_is_local(self, upload): + return federation_utils.is_local(upload.fid) def sort_uploads_for_listen(uploads): @@ -281,11 +283,12 @@ class TrackSerializer(OptionalDescriptionMixin, serializers.Serializer): def get_listen_url(self, obj): return obj.listen_url - @extend_schema_field({"type": "array", "items": {"type": "object"}}) + # @extend_schema_field({"type": "array", "items": {"type": "object"}}) + @extend_schema_field(UploadSerializer(many=True)) def get_uploads(self, obj): uploads = getattr(obj, "playable_uploads", []) # we put local uploads first - uploads = [serialize_upload(u) for u in sort_uploads_for_listen(uploads)] + uploads = [UploadSerializer(u).data for u in sort_uploads_for_listen(uploads)] uploads = sorted(uploads, key=lambda u: u["is_local"], reverse=True) return list(uploads) diff --git a/front/package.json b/front/package.json index cbe438630..64080710a 100644 --- a/front/package.json +++ b/front/package.json @@ -11,6 +11,7 @@ "serve": "vite preview", "test": "vitest run", "test:unit": "vitest run --coverage", + "test:generate-mock-server": "msw-auto-mock ../docs/schema.yml -o test/msw-server.ts --node", "lint": "eslint --cache --cache-strategy content --ext .ts,.js,.vue,.json,.html src test cypress public/embed.html", "lint:tsc": "vue-tsc --noEmit --incremental && tsc --noEmit --incremental -p cypress", "fix-fomantic-css": "scripts/fix-fomantic-css.sh", @@ -57,6 +58,7 @@ "vuex-router-sync": "5.0.0" }, "devDependencies": { + "@faker-js/faker": "8.4.1", "@intlify/eslint-plugin-vue-i18n": "2.0.0", "@intlify/unplugin-vue-i18n": "2.0.0", "@types/diff": "5.0.9", @@ -89,6 +91,8 @@ "eslint-plugin-vue": "9.8.0", "jsdom": "24.0.0", "jsonc-eslint-parser": "2.1.0", + "msw": "2.2.1", + "msw-auto-mock": "0.18.0", "rollup-plugin-visualizer": "5.9.0", "sass": "1.57.1", "sinon": "15.0.2", @@ -98,7 +102,7 @@ "utility-types": "3.10.0", "vite": "4.3.5", "vite-plugin-pwa": "0.14.4", - "vitest": "0.25.8", + "vitest": "1.3.0", "vue-tsc": "1.6.5", "workbox-core": "6.5.4", "workbox-precaching": "6.5.4", diff --git a/front/src/composables/useLogger.ts b/front/src/composables/useLogger.ts index cdb14464e..116255049 100644 --- a/front/src/composables/useLogger.ts +++ b/front/src/composables/useLogger.ts @@ -46,7 +46,10 @@ const FILETYPE_COLOR: Record = { // NOTE: We're pushing all logs to the end of the event loop const createLoggerFn = (level: LogLevel) => { - // NOTE: Don't log time and debug in production + // @ts-expect-error Use console in test environment + if (import.meta.env.VITEST) return console[level] + + // NOTE: Don't log time and debug in production environment if (level === 'time' || level === 'debug') { if (import.meta.env.PROD) return () => undefined } diff --git a/front/test/msw-server.ts b/front/test/msw-server.ts new file mode 100644 index 000000000..f2bc1b08d --- /dev/null +++ b/front/test/msw-server.ts @@ -0,0 +1,11749 @@ +/** + * This file is AUTO GENERATED by [msw-auto-mock](https://github.com/zoubingwu/msw-auto-mock) + * Feel free to commit/edit it as you need. + */ +/* eslint-disable */ +/* tslint:disable */ +import { HttpResponse, http } from "msw"; +import { faker } from "@faker-js/faker"; +import { setupServer } from "msw/node"; + +faker.seed(1); + +const baseURL = ""; +const MAX_ARRAY_LENGTH = 20; + +let i = 0; +const next = () => { + if (i === Number.MAX_SAFE_INTEGER - 1) { + i = 0; + } + return i++; +}; + +export const handlers = [ + http.get(`${baseURL}/api/v1/activity/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/albums/`, () => { + const resultArray = [[getGetAlbums200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/albums/`, () => { + const resultArray = [[getCreateAlbum201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/albums/:id/`, () => { + const resultArray = [[getGetAlbum200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/albums/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/albums/:id/fetches/`, () => { + const resultArray = [[getGetAlbumFetches200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/albums/:id/fetches/`, () => { + const resultArray = [[getCreateAlbumFetch200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/albums/:id/libraries/`, () => { + const resultArray = [[getGetAlbumLibraries200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/albums/:id/mutations/`, () => { + const resultArray = [[getGetAlbumMutations200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/albums/:id/mutations/`, () => { + const resultArray = [ + [getCreateAlbumMutation200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/artists/`, () => { + const resultArray = [[getGetArtists200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/artists/:id/`, () => { + const resultArray = [[getGetArtist200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/artists/:id/fetches/`, () => { + const resultArray = [[getGetArtistFetches200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/artists/:id/fetches/`, () => { + const resultArray = [[getCreateArtistFetch200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/artists/:id/libraries/`, () => { + const resultArray = [[getGetArtistLibraries200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/artists/:id/mutations/`, () => { + const resultArray = [[getGetArtistMutations200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/artists/:id/mutations/`, () => { + const resultArray = [ + [getCreateArtistMutation200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/attachments/`, () => { + const resultArray = [[getCreateAttachment201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/attachments/:uuid/`, () => { + const resultArray = [[getGetAttachment200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/attachments/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/attachments/:uuid/proxy/`, () => { + const resultArray = [[getGetAttachmentProxy200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/auth/password/change/`, () => { + const resultArray = [[getChangePassword200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/auth/password/reset/`, () => { + const resultArray = [[getResetPassword200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/auth/password/reset/confirm/`, () => { + const resultArray = [ + [getConfirmPasswordReset200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/auth/registration/`, () => { + const resultArray = [[getRegister201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/auth/registration/change-password/`, () => { + const resultArray = [[getChangePassword2200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/auth/registration/verify-email/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/auth/user/`, () => { + const resultArray = [[getGetAuthUser200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/auth/user/`, () => { + const resultArray = [[getUpdateAuthUser200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/auth/user/`, () => { + const resultArray = [ + [getPartialUpdateAuthUser200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/channels/`, () => { + const resultArray = [[getGetChannels200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/channels/`, () => { + const resultArray = [[getCreateChannel201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/channels/:composite/`, () => { + const resultArray = [[getGetChannel200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/channels/:composite/`, () => { + const resultArray = [[getUpdateChannel200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/channels/:composite/`, () => { + const resultArray = [ + [getPartialUpdateChannel200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/channels/:composite/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/channels/:composite/rss/`, () => { + const resultArray = [[getGetChannelRss200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/channels/:composite/subscribe/`, () => { + const resultArray = [[getSubscribeChannel200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/channels/:composite/unsubscribe/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/channels/:composite/unsubscribe/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/channels/metadata-choices/`, () => { + const resultArray = [ + [getGetChannelMetadataChoices200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/channels/rss-subscribe/`, () => { + const resultArray = [ + [getSubscribeChannelRss200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/favorites/tracks/`, () => { + const resultArray = [[getGetFavoriteTracks200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/favorites/tracks/`, () => { + const resultArray = [[getFavoriteTrack201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/favorites/tracks/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/favorites/tracks/all/`, () => { + const resultArray = [ + [getGetAllFavoriteTracks200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/favorites/tracks/remove/`, () => { + const resultArray = [[getUnfavoriteTrack2200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/favorites/tracks/remove/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/actors/:fullUsername/`, () => { + const resultArray = [[getGetFederationActor200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get( + `${baseURL}/api/v1/federation/actors/:fullUsername/libraries/`, + () => { + const resultArray = [ + [getGetFederationActorLibrary200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }, + ), + http.get(`${baseURL}/api/v1/federation/domains/`, () => { + const resultArray = [ + [getGetFederationDomains200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/domains/:name/`, () => { + const resultArray = [ + [getGetFederationDomain200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/federation/fetches/`, () => { + const resultArray = [ + [getCreateFederationFetch201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/fetches/:id/`, () => { + const resultArray = [[getGetFederationFetch200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/follows/library/`, () => { + const resultArray = [ + [getGetFederationLibraryFollows200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/federation/follows/library/`, () => { + const resultArray = [ + [getCreateFederationLibraryFollow201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/follows/library/:uuid/`, () => { + const resultArray = [ + [getGetFederationLibraryFollow200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/federation/follows/library/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post( + `${baseURL}/api/v1/federation/follows/library/:uuid/accept/`, + () => { + const resultArray = [ + [null, { status: 204 }], + [null, { status: 404 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }, + ), + http.post( + `${baseURL}/api/v1/federation/follows/library/:uuid/reject/`, + () => { + const resultArray = [ + [getRejectFederationLibraryFollow200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }, + ), + http.get(`${baseURL}/api/v1/federation/follows/library/all/`, () => { + const resultArray = [ + [getGetAllFederationLibraryFollows200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/inbox/`, () => { + const resultArray = [ + [getGetFederationInboxes200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/inbox/:id/`, () => { + const resultArray = [[getGetFederationInbox200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/federation/inbox/:id/`, () => { + const resultArray = [ + [getUpdateFederationInbox200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/federation/inbox/:id/`, () => { + const resultArray = [ + [getPartialUpdateFederationInbox200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/federation/inbox/action/`, () => { + const resultArray = [ + [getCreateFederationInboxAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/federation/libraries/:uuid/`, () => { + const resultArray = [ + [getGetFederationLibrary200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/federation/libraries/:uuid/scan/`, () => { + const resultArray = [ + [getCreateFederationLibraryScan200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/federation/libraries/fetch/`, () => { + const resultArray = [ + [getCreateFederationLibraryFetch200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/history/listenings/`, () => { + const resultArray = [ + [getGetHistoryListenings200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/history/listenings/`, () => { + const resultArray = [ + [getCreateHistoryListening201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/history/listenings/:id/`, () => { + const resultArray = [ + [getGetHistoryListening200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/instance/admin/settings/`, () => { + const resultArray = [ + [getGetInstanceAdminSettings200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/instance/admin/settings/:id/`, () => { + const resultArray = [ + [getGetInstanceAdminSetting200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/instance/admin/settings/:id/`, () => { + const resultArray = [ + [getUpdateInstanceAdminSetting200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/instance/admin/settings/:id/`, () => { + const resultArray = [ + [getPartialUpdateInstanceAdminSetting200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/instance/admin/settings/bulk/`, () => { + const resultArray = [ + [getCreateInstanceAdminSettingBulk200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/instance/nodeinfo/2.0/`, () => { + const resultArray = [[getGetNodeInfo20200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/instance/settings/`, () => { + const resultArray = [ + [getGetInstanceSettings200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/instance/spa-manifest.json`, () => { + const resultArray = [[getGetSpaManifest200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/libraries/`, () => { + const resultArray = [[getGetLibraries200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/libraries/`, () => { + const resultArray = [[getCreateLibrary201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/libraries/:uuid/`, () => { + const resultArray = [[getGetLibrary200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/libraries/:uuid/`, () => { + const resultArray = [[getUpdateLibrary200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/libraries/:uuid/`, () => { + const resultArray = [ + [getPartialUpdateLibrary200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/libraries/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/libraries/:uuid/follows/`, () => { + const resultArray = [[getGetLibraryFollows200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/libraries/fs-import/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/libraries/fs-import/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/libraries/fs-import/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/licenses/`, () => { + const resultArray = [[getGetLicenses200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/licenses/:code/`, () => { + const resultArray = [[getGetLicense200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/listen/:uuid/`, () => { + const resultArray = [[getGetListen200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/accounts/`, () => { + const resultArray = [[getAdminGetAccounts200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/accounts/:id/`, () => { + const resultArray = [[getAdminGetAccount200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/accounts/:id/stats/`, () => { + const resultArray = [ + [getAdminGetAccountStats200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/accounts/action/`, () => { + const resultArray = [ + [getAdminCreateAccountAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/channels/`, () => { + const resultArray = [[getAdminGetChannels200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/channels/:composite/`, () => { + const resultArray = [[getAdminGetChannel200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/channels/:composite/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/channels/:composite/stats/`, () => { + const resultArray = [ + [getAdminGetChannelStats200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/federation/domains/`, () => { + const resultArray = [ + [getAdminGetFederationDomains200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/federation/domains/`, () => { + const resultArray = [ + [getAdminCreateFederationDomain201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/federation/domains/:name/`, () => { + const resultArray = [ + [getAdminGetFederationDomain200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/manage/federation/domains/:name/`, () => { + const resultArray = [ + [getAdminUpdateFederationDomain200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/manage/federation/domains/:name/`, () => { + const resultArray = [ + [getAdminPartialUpdateFederationDomain200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get( + `${baseURL}/api/v1/manage/federation/domains/:name/nodeinfo/`, + () => { + const resultArray = [ + [getAdminGetFederationDomainNodeinfo200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }, + ), + http.get(`${baseURL}/api/v1/manage/federation/domains/:name/stats/`, () => { + const resultArray = [ + [getAdminGetFederationDomainStats200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/federation/domains/action/`, () => { + const resultArray = [ + [getAdminCreateFederationDomainAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/albums/`, () => { + const resultArray = [[getAdminGetAlbums200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/albums/:id/`, () => { + const resultArray = [[getAdminGetAlbum200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/library/albums/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/albums/:id/stats/`, () => { + const resultArray = [ + [getAdminGetLibraryAlbumStats200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/library/albums/action/`, () => { + const resultArray = [ + [getAdminCreateAlbumAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/artists/`, () => { + const resultArray = [[getAdminGetArtists200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/artists/:id/`, () => { + const resultArray = [[getAdminGetArtist200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/library/artists/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/artists/:id/stats/`, () => { + const resultArray = [ + [getAdminGetLibraryArtistStats200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/library/artists/action/`, () => { + const resultArray = [ + [getAdminCreateArtistAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/libraries/`, () => { + const resultArray = [[getAdminGetLibraries200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/libraries/:uuid/`, () => { + const resultArray = [[getAdminGetLibrary200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/manage/library/libraries/:uuid/`, () => { + const resultArray = [[getAdminUpdateLibrary200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/manage/library/libraries/:uuid/`, () => { + const resultArray = [ + [getAdminPartialUpdateLibrary200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/library/libraries/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/libraries/:uuid/stats/`, () => { + const resultArray = [ + [getAdminGetLibraryStats200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/library/libraries/action/`, () => { + const resultArray = [ + [getAdminCreateLibraryAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/tracks/`, () => { + const resultArray = [[getAdminGetTracks200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/tracks/:id/`, () => { + const resultArray = [[getAdminGetTrack200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/library/tracks/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/tracks/:id/stats/`, () => { + const resultArray = [[getAdminGetTrackStats200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/library/tracks/action/`, () => { + const resultArray = [ + [getAdminCreateTrackAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/uploads/`, () => { + const resultArray = [[getAdminGetUploads200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/library/uploads/:uuid/`, () => { + const resultArray = [[getAdminGetUpload200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/library/uploads/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/library/uploads/action/`, () => { + const resultArray = [ + [getAdminCreateUploadAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/moderation/instance-policies/`, () => { + const resultArray = [ + [getModerationGetInstancePolicies200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/moderation/instance-policies/`, () => { + const resultArray = [ + [getModerationCreateInstancePolicy201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/moderation/instance-policies/:id/`, () => { + const resultArray = [ + [getModerationGetInstancePolicy200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/manage/moderation/instance-policies/:id/`, () => { + const resultArray = [ + [getModerationUpdateInstancePolicy200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch( + `${baseURL}/api/v1/manage/moderation/instance-policies/:id/`, + () => { + const resultArray = [ + [ + getModerationPartialUpdateInstancePolicy200Response(), + { status: 200 }, + ], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }, + ), + http.delete( + `${baseURL}/api/v1/manage/moderation/instance-policies/:id/`, + () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }, + ), + http.get(`${baseURL}/api/v1/manage/moderation/notes/`, () => { + const resultArray = [[getModerationGetNotes200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/moderation/notes/`, () => { + const resultArray = [ + [getModerationCreateNote201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/moderation/notes/:uuid/`, () => { + const resultArray = [[getModerationGetNote200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/moderation/notes/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/moderation/reports/`, () => { + const resultArray = [ + [getModerationGetReports200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/moderation/reports/:uuid/`, () => { + const resultArray = [ + [getModerationGetReport200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/manage/moderation/reports/:uuid/`, () => { + const resultArray = [ + [getModerationUpdateReport200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/manage/moderation/reports/:uuid/`, () => { + const resultArray = [ + [getModerationPartialUpdateReport200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/moderation/requests/`, () => { + const resultArray = [ + [getModerationGetRequests200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/moderation/requests/:uuid/`, () => { + const resultArray = [ + [getModerationGetRequest200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/manage/moderation/requests/:uuid/`, () => { + const resultArray = [ + [getModerationUpdateRequest200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/manage/moderation/requests/:uuid/`, () => { + const resultArray = [ + [getModerationPartialUpdateRequest200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/tags/`, () => { + const resultArray = [[getAdminGetTags200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/tags/`, () => { + const resultArray = [[getAdminCreateTag201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/tags/:name/`, () => { + const resultArray = [[getAdminGetTag200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/manage/tags/:name/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/tags/action/`, () => { + const resultArray = [ + [getAdminCreateTagAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/users/invitations/`, () => { + const resultArray = [ + [getAdminGetInvitations200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/users/invitations/`, () => { + const resultArray = [ + [getAdminCreateInvitation201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/users/invitations/:id/`, () => { + const resultArray = [[getAdminGetInvitation200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/manage/users/invitations/:id/`, () => { + const resultArray = [ + [getAdminUpdateInvitation200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/manage/users/invitations/:id/`, () => { + const resultArray = [ + [getAdminPartialUpdateInvitation200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/manage/users/invitations/action/`, () => { + const resultArray = [ + [getAdminCreateInvitationAction200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/users/users/`, () => { + const resultArray = [[getAdminGetUsers200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/manage/users/users/:id/`, () => { + const resultArray = [[getAdminGetUser200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/manage/users/users/:id/`, () => { + const resultArray = [[getAdminUpdateUser200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/manage/users/users/:id/`, () => { + const resultArray = [ + [getAdminPartialUpdateUser200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/moderation/content-filters/`, () => { + const resultArray = [ + [getGetModerationContentFilters200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/moderation/content-filters/`, () => { + const resultArray = [ + [getCreateModerationContentFilter201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/moderation/content-filters/:uuid/`, () => { + const resultArray = [ + [getGetModerationContentFilter200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/moderation/content-filters/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/moderation/reports/`, () => { + const resultArray = [ + [getCreateModerationReport201Response(), { status: 201 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/mutations/`, () => { + const resultArray = [[getGetMutations200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/mutations/:uuid/`, () => { + const resultArray = [[getGetMutation200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/mutations/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/mutations/:uuid/approve/`, () => { + const resultArray = [[getApproveMutation200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/mutations/:uuid/reject/`, () => { + const resultArray = [[getRejectMutation200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/oauth/apps/`, () => { + const resultArray = [[getGetOauthApps200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/oauth/apps/`, () => { + const resultArray = [[getCreateOauthApp201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/oauth/apps/:clientId/`, () => { + const resultArray = [[getGetOauthApp200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/oauth/apps/:clientId/`, () => { + const resultArray = [[getUpdateOauthApp200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/oauth/apps/:clientId/`, () => { + const resultArray = [ + [getPartialUpdateOauthApp200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/oauth/apps/:clientId/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/oauth/apps/:clientId/refresh-token/`, () => { + const resultArray = [[getRefreshOauthToken200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/oauth/grants/`, () => { + const resultArray = [[getGetOauthGrants200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/oauth/grants/:clientId/`, () => { + const resultArray = [[getGetOauthGrant200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/oauth/grants/:clientId/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/oembed/`, () => { + const resultArray = [[getGetOembed200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/playlists/`, () => { + const resultArray = [[getGetPlaylists200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/playlists/`, () => { + const resultArray = [[getCreatePlaylist201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/playlists/:id/`, () => { + const resultArray = [[getGetPlaylist200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/playlists/:id/`, () => { + const resultArray = [[getUpdatePlaylist200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/playlists/:id/`, () => { + const resultArray = [ + [getPartialUpdatePlaylist200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/playlists/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/playlists/:id/add/`, () => { + const resultArray = [[getAddToPlaylist200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/playlists/:id/clear/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/playlists/:id/move/`, () => { + const resultArray = [ + [getReorderTrackInPlaylist200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/playlists/:id/remove/`, () => { + const resultArray = [ + [getRemoveFromPlaylist2200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/playlists/:id/remove/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/playlists/:id/tracks/`, () => { + const resultArray = [[getGetPlaylistTracks200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/plugins/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/plugins/`, () => { + const resultArray = [[null, { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/plugins/:id/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/plugins/:id/disable/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/plugins/:id/enable/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/plugins/:id/scan/`, () => { + const resultArray = [[null, { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/radios/radios/`, () => { + const resultArray = [[getGetRadios200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/radios/radios/`, () => { + const resultArray = [[getCreateRadio201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/radios/radios/:id/`, () => { + const resultArray = [[getGetRadio200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/radios/radios/:id/`, () => { + const resultArray = [[getUpdateRadio200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/radios/radios/:id/`, () => { + const resultArray = [[getPartialUpdateRadio200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/radios/radios/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/radios/radios/:id/tracks/`, () => { + const resultArray = [[getGetRadioTrack200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/radios/radios/filters/`, () => { + const resultArray = [[getGetRadioFilter200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/radios/radios/validate/`, () => { + const resultArray = [[getValidateRadio200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/radios/sessions/`, () => { + const resultArray = [[getCreateRadioSession201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/radios/sessions/:id/`, () => { + const resultArray = [[getGetRadioSession200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/radios/tracks/`, () => { + const resultArray = [[getGetNextRadioTrack201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/rate-limit/`, () => { + const resultArray = [[getGetRateLimit200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/search`, () => { + const resultArray = [[getGetSearchResults200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/stream/:uuid/`, () => { + const resultArray = [[getGetTrackStream200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/subscriptions/`, () => { + const resultArray = [[getGetSubscriptions200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/subscriptions/:uuid/`, () => { + const resultArray = [[getGetSubscription200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/subscriptions/all/`, () => { + const resultArray = [ + [getGetAllSubscriptions200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/tags/`, () => { + const resultArray = [[getGetTags200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/tags/:name/`, () => { + const resultArray = [[getGetTag200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/text-preview/`, () => { + const resultArray = [ + [getPreviewText200Response(), { status: 200 }], + [getPreviewText400Response(), { status: 400 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/tracks/`, () => { + const resultArray = [[getGetTracks200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/tracks/:id/`, () => { + const resultArray = [[getGetTrack200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/tracks/:id/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/tracks/:id/fetches/`, () => { + const resultArray = [[getGetTrackFetches200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/tracks/:id/fetches/`, () => { + const resultArray = [[getCreateTrackFetch200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/tracks/:id/libraries/`, () => { + const resultArray = [[getGetTrackLibraries200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/tracks/:id/mutations/`, () => { + const resultArray = [[getGetTrackMutations200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/tracks/:id/mutations/`, () => { + const resultArray = [ + [getCreateTrackMutation200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/uploads/`, () => { + const resultArray = [[getGetUploads200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/uploads/`, () => { + const resultArray = [[getCreateUpload201Response(), { status: 201 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/uploads/:uuid/`, () => { + const resultArray = [[getGetUpload200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/uploads/:uuid/`, () => { + const resultArray = [[getUpdateUpload200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/uploads/:uuid/`, () => { + const resultArray = [ + [getPartialUpdateUpload200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/uploads/:uuid/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/uploads/:uuid/audio-file-metadata/`, () => { + const resultArray = [[getGetUploadMetadata200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/uploads/action/`, () => { + const resultArray = [[getCreateUploadAction200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.put(`${baseURL}/api/v1/users/:username/`, () => { + const resultArray = [[getUpdateUser200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.patch(`${baseURL}/api/v1/users/:username/`, () => { + const resultArray = [[getPartialUpdateUser200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/users/:username/subsonic-token/`, () => { + const resultArray = [ + [getGetUserSubsonicToken200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/users/:username/subsonic-token/`, () => { + const resultArray = [ + [getCreateUserSubsonicToken200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/users/:username/subsonic-token/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/users/change-email/`, () => { + const resultArray = [ + [null, { status: 200 }], + [null, { status: 403 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.get(`${baseURL}/api/v1/users/me/`, () => { + const resultArray = [ + [getGetAuthenticatedUser200Response(), { status: 200 }], + ]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.delete(`${baseURL}/api/v1/users/me/`, () => { + const resultArray = [[null, { status: 204 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), + http.post(`${baseURL}/api/v1/users/settings/`, () => { + const resultArray = [[getUpdateSettings200Response(), { status: 200 }]]; + + return HttpResponse.json(...resultArray[next() % resultArray.length]); + }), +]; + +export function getGetAlbums200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + release_date: faker.date.past(), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + duration: faker.number.int({ min: undefined, max: undefined }), + })), + }; +} + +export function getCreateAlbum201Response() { + return { + title: faker.lorem.slug(1), + release_date: faker.date.past(), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + artist: faker.lorem.slug(1), + }; +} + +export function getGetAlbum200Response() { + return { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + release_date: faker.date.past(), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + duration: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getGetAlbumFetches200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + })), + }; +} + +export function getCreateAlbumFetch200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + }; +} + +export function getGetAlbumLibraries200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + name: faker.person.fullName(), + description: faker.lorem.slug(1), + creation_date: faker.date.past(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + follow: { + creation_date: faker.date.past(), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + approved: faker.datatype.boolean(), + modification_date: faker.date.past(), + }, + latest_scan: { + total_files: faker.number.int({ min: 0, max: 2147483647 }), + processed_files: faker.number.int({ min: 0, max: 2147483647 }), + errored_files: faker.number.int({ min: 0, max: 2147483647 }), + status: faker.lorem.slug(1), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + }, + })), + }; +} + +export function getGetAlbumMutations200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + })), + }; +} + +export function getCreateAlbumMutation200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetArtists200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + albums: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + tracks_count: faker.number.int({ min: undefined, max: undefined }), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: faker.number.int({ min: undefined, max: undefined }), + release_date: faker.date.past(), + creation_date: faker.date.past(), + })), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + channel: { + uuid: faker.lorem.slug(1), + actor: { + full_username: faker.person.fullName(), + preferred_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + }, + }, + tracks_count: faker.number.int({ min: undefined, max: undefined }), + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + content_category: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + })), + }; +} + +export function getGetArtist200Response() { + return { + albums: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + tracks_count: faker.number.int({ min: undefined, max: undefined }), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: faker.number.int({ min: undefined, max: undefined }), + release_date: faker.date.past(), + creation_date: faker.date.past(), + })), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + channel: { + uuid: faker.lorem.slug(1), + actor: { + full_username: faker.person.fullName(), + preferred_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + }, + }, + tracks_count: faker.number.int({ min: undefined, max: undefined }), + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + content_category: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }; +} + +export function getGetArtistFetches200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + })), + }; +} + +export function getCreateArtistFetch200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + }; +} + +export function getGetArtistLibraries200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + name: faker.person.fullName(), + description: faker.lorem.slug(1), + creation_date: faker.date.past(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + follow: { + creation_date: faker.date.past(), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + approved: faker.datatype.boolean(), + modification_date: faker.date.past(), + }, + latest_scan: { + total_files: faker.number.int({ min: 0, max: 2147483647 }), + processed_files: faker.number.int({ min: 0, max: 2147483647 }), + errored_files: faker.number.int({ min: 0, max: 2147483647 }), + status: faker.lorem.slug(1), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + }, + })), + }; +} + +export function getGetArtistMutations200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + })), + }; +} + +export function getCreateArtistMutation200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getCreateAttachment201Response() { + return { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetAttachment200Response() { + return { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetAttachmentProxy200Response() { + return { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getChangePassword200Response() { + return { + new_password1: faker.lorem.slug(1), + new_password2: faker.lorem.slug(1), + }; +} + +export function getResetPassword200Response() { + return { + email: faker.internet.email(), + }; +} + +export function getConfirmPasswordReset200Response() { + return { + new_password1: faker.lorem.slug(1), + new_password2: faker.lorem.slug(1), + uid: faker.lorem.slug(1), + token: faker.lorem.slug(1), + }; +} + +export function getRegister201Response() { + return { + username: faker.person.fullName(), + email: faker.internet.email(), + invitation: faker.lorem.slug(1), + }; +} + +export function getChangePassword2200Response() { + return { + new_password1: faker.lorem.slug(1), + new_password2: faker.lorem.slug(1), + }; +} + +export function getGetAuthUser200Response() { + return { + pk: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + first_name: faker.person.fullName(), + last_name: faker.person.fullName(), + }; +} + +export function getUpdateAuthUser200Response() { + return { + pk: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + first_name: faker.person.fullName(), + last_name: faker.person.fullName(), + }; +} + +export function getPartialUpdateAuthUser200Response() { + return { + pk: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + first_name: faker.person.fullName(), + last_name: faker.person.fullName(), + }; +} + +export function getGetChannels200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.lorem.slug(1), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.lorem.slug(1), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + rss_url: faker.internet.url(), + url: faker.internet.url(), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + })), + }; +} + +export function getCreateChannel201Response() { + return { + name: faker.person.fullName(), + username: faker.person.fullName(), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + content_category: faker.helpers.arrayElement(["music", "podcast", "other"]), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetChannel200Response() { + return { + uuid: faker.datatype.uuid(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.lorem.slug(1), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.lorem.slug(1), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + rss_url: faker.internet.url(), + url: faker.internet.url(), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getUpdateChannel200Response() { + return { + name: faker.person.fullName(), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + content_category: faker.helpers.arrayElement(["music", "podcast", "other"]), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getPartialUpdateChannel200Response() { + return { + name: faker.person.fullName(), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + content_category: faker.helpers.arrayElement(["music", "podcast", "other"]), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetChannelRss200Response() { + return { + uuid: faker.datatype.uuid(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.lorem.slug(1), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.lorem.slug(1), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + rss_url: faker.internet.url(), + url: faker.internet.url(), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getSubscribeChannel200Response() { + return { + uuid: faker.datatype.uuid(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.lorem.slug(1), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.lorem.slug(1), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + rss_url: faker.internet.url(), + url: faker.internet.url(), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getGetChannelMetadataChoices200Response() { + return { + uuid: faker.datatype.uuid(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.lorem.slug(1), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.lorem.slug(1), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + rss_url: faker.internet.url(), + url: faker.internet.url(), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getSubscribeChannelRss200Response() { + return { + uuid: faker.datatype.uuid(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.lorem.slug(1), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.lorem.slug(1), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + rss_url: faker.internet.url(), + url: faker.internet.url(), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getGetFavoriteTracks200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getFavoriteTrack201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + track: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + }; +} + +export function getGetAllFavoriteTracks200Response() { + return { + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + track: faker.number.int({ min: undefined, max: undefined }), + })), + count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getUnfavoriteTrack2200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + track: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + }; +} + +export function getGetFederationActor200Response() { + return { + fid: faker.internet.url(), + url: faker.internet.url(), + domain: faker.lorem.slug(1), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + name: faker.person.fullName(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + type: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + is_channel: faker.datatype.boolean(), + manually_approves_followers: faker.datatype.boolean(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + summary: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + icon: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }; +} + +export function getGetFederationActorLibrary200Response() { + return { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getGetFederationDomains200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + name: faker.person.fullName(), + })), + }; +} + +export function getGetFederationDomain200Response() { + return { + name: faker.person.fullName(), + }; +} + +export function getCreateFederationFetch201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + }; +} + +export function getGetFederationFetch200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + }; +} + +export function getGetFederationLibraryFollows200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + uuid: faker.datatype.uuid(), + target: faker.lorem.slug(1), + approved: faker.datatype.boolean(), + })), + }; +} + +export function getCreateFederationLibraryFollow201Response() { + return { + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + uuid: faker.datatype.uuid(), + target: faker.lorem.slug(1), + approved: faker.datatype.boolean(), + }; +} + +export function getGetFederationLibraryFollow200Response() { + return { + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + uuid: faker.datatype.uuid(), + target: faker.lorem.slug(1), + approved: faker.datatype.boolean(), + }; +} + +export function getRejectFederationLibraryFollow200Response() { + return { + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + uuid: faker.datatype.uuid(), + target: faker.lorem.slug(1), + approved: faker.datatype.boolean(), + }; +} + +export function getGetAllFederationLibraryFollows200Response() { + return { + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + uuid: faker.datatype.uuid(), + target: faker.lorem.slug(1), + approved: faker.datatype.boolean(), + }; +} + +export function getGetFederationInboxes200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + type: faker.helpers.arrayElement(["to", "cc"]), + activity: { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + related_object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + type: faker.lorem.slug(1), + }, + is_read: faker.datatype.boolean(), + })), + }; +} + +export function getGetFederationInbox200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + type: faker.helpers.arrayElement(["to", "cc"]), + activity: { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + related_object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + type: faker.lorem.slug(1), + }, + is_read: faker.datatype.boolean(), + }; +} + +export function getUpdateFederationInbox200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + type: faker.helpers.arrayElement(["to", "cc"]), + activity: { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + related_object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + type: faker.lorem.slug(1), + }, + is_read: faker.datatype.boolean(), + }; +} + +export function getPartialUpdateFederationInbox200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + type: faker.helpers.arrayElement(["to", "cc"]), + activity: { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + related_object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + type: faker.lorem.slug(1), + }, + is_read: faker.datatype.boolean(), + }; +} + +export function getCreateFederationInboxAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + type: faker.helpers.arrayElement(["to", "cc"]), + activity: { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + related_object: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + type: faker.lorem.slug(1), + }, + is_read: faker.datatype.boolean(), + }; +} + +export function getGetFederationLibrary200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + name: faker.person.fullName(), + description: faker.lorem.slug(1), + creation_date: faker.date.past(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + follow: { + creation_date: faker.date.past(), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + approved: faker.datatype.boolean(), + modification_date: faker.date.past(), + }, + latest_scan: { + total_files: faker.number.int({ min: 0, max: 2147483647 }), + processed_files: faker.number.int({ min: 0, max: 2147483647 }), + errored_files: faker.number.int({ min: 0, max: 2147483647 }), + status: faker.lorem.slug(1), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + }, + }; +} + +export function getCreateFederationLibraryScan200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + name: faker.person.fullName(), + description: faker.lorem.slug(1), + creation_date: faker.date.past(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + follow: { + creation_date: faker.date.past(), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + approved: faker.datatype.boolean(), + modification_date: faker.date.past(), + }, + latest_scan: { + total_files: faker.number.int({ min: 0, max: 2147483647 }), + processed_files: faker.number.int({ min: 0, max: 2147483647 }), + errored_files: faker.number.int({ min: 0, max: 2147483647 }), + status: faker.lorem.slug(1), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + }, + }; +} + +export function getCreateFederationLibraryFetch200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + name: faker.person.fullName(), + description: faker.lorem.slug(1), + creation_date: faker.date.past(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + follow: { + creation_date: faker.date.past(), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + approved: faker.datatype.boolean(), + modification_date: faker.date.past(), + }, + latest_scan: { + total_files: faker.number.int({ min: 0, max: 2147483647 }), + processed_files: faker.number.int({ min: 0, max: 2147483647 }), + errored_files: faker.number.int({ min: 0, max: 2147483647 }), + status: faker.lorem.slug(1), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + }, + }; +} + +export function getGetHistoryListenings200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getCreateHistoryListening201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + user: faker.number.int({ min: undefined, max: undefined }), + track: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + }; +} + +export function getGetHistoryListening200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getGetInstanceAdminSettings200Response() { + return [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + section: faker.lorem.slug(1), + name: faker.person.fullName(), + identifier: faker.lorem.slug(1), + default: faker.lorem.slug(1), + value: faker.lorem.slug(1), + verbose_name: faker.person.fullName(), + help_text: faker.lorem.slug(1), + additional_data: faker.lorem.slug(1), + field: faker.lorem.slug(1), + })); +} + +export function getGetInstanceAdminSetting200Response() { + return { + section: faker.lorem.slug(1), + name: faker.person.fullName(), + identifier: faker.lorem.slug(1), + default: faker.lorem.slug(1), + value: faker.lorem.slug(1), + verbose_name: faker.person.fullName(), + help_text: faker.lorem.slug(1), + additional_data: faker.lorem.slug(1), + field: faker.lorem.slug(1), + }; +} + +export function getUpdateInstanceAdminSetting200Response() { + return { + section: faker.lorem.slug(1), + name: faker.person.fullName(), + identifier: faker.lorem.slug(1), + default: faker.lorem.slug(1), + value: faker.lorem.slug(1), + verbose_name: faker.person.fullName(), + help_text: faker.lorem.slug(1), + additional_data: faker.lorem.slug(1), + field: faker.lorem.slug(1), + }; +} + +export function getPartialUpdateInstanceAdminSetting200Response() { + return { + section: faker.lorem.slug(1), + name: faker.person.fullName(), + identifier: faker.lorem.slug(1), + default: faker.lorem.slug(1), + value: faker.lorem.slug(1), + verbose_name: faker.person.fullName(), + help_text: faker.lorem.slug(1), + additional_data: faker.lorem.slug(1), + field: faker.lorem.slug(1), + }; +} + +export function getCreateInstanceAdminSettingBulk200Response() { + return { + section: faker.lorem.slug(1), + name: faker.person.fullName(), + identifier: faker.lorem.slug(1), + default: faker.lorem.slug(1), + value: faker.lorem.slug(1), + verbose_name: faker.person.fullName(), + help_text: faker.lorem.slug(1), + additional_data: faker.lorem.slug(1), + field: faker.lorem.slug(1), + }; +} + +export function getGetNodeInfo20200Response() { + return { + version: faker.lorem.slug(1), + software: { + name: faker.person.fullName(), + version: faker.lorem.slug(1), + }, + protocols: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => null), + services: { + inbound: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + outbound: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + openRegistrations: faker.datatype.boolean(), + usage: { + users: { + total: faker.number.int({ min: undefined, max: undefined }), + activeHalfyear: faker.number.int({ min: undefined, max: undefined }), + activeMonth: faker.number.int({ min: undefined, max: undefined }), + }, + localPosts: faker.number.int({ min: undefined, max: undefined }), + localComments: faker.number.int({ min: undefined, max: undefined }), + }, + metadata: { + actorId: faker.lorem.slug(1), + private: faker.datatype.boolean(), + shortDescription: faker.lorem.slug(1), + longDescription: faker.lorem.slug(1), + contactEmail: faker.internet.email(), + nodeName: faker.person.fullName(), + banner: faker.lorem.slug(1), + defaultUploadQuota: faker.number.int({ min: undefined, max: undefined }), + supportedUploadExtensions: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + allowList: { + enabled: faker.datatype.boolean(), + domains: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + }, + funkwhaleSupportMessageEnabled: faker.datatype.boolean(), + instanceSupportMessage: faker.lorem.slug(1), + usage: { + favorites: { + tracks: { + total: faker.number.int({ min: undefined, max: undefined }), + }, + }, + listenings: { + total: faker.number.int({ min: undefined, max: undefined }), + }, + downloads: { + total: faker.number.int({ min: undefined, max: undefined }), + }, + }, + library: { + federationEnabled: faker.datatype.boolean(), + anonymousCanListen: faker.datatype.boolean(), + tracks: { + total: faker.number.int({ min: undefined, max: undefined }), + }, + artists: { + total: faker.number.int({ min: undefined, max: undefined }), + }, + albums: { + total: faker.number.int({ min: undefined, max: undefined }), + }, + music: { + hours: faker.number.int({ min: undefined, max: undefined }), + }, + }, + reportTypes: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + type: faker.lorem.slug(1), + label: faker.lorem.slug(1), + anonymous: faker.datatype.boolean(), + })), + endpoints: { + knownNodes: faker.internet.url(), + channels: faker.internet.url(), + libraries: faker.internet.url(), + }, + rules: faker.lorem.slug(1), + terms: faker.lorem.slug(1), + }, + }; +} + +export function getGetInstanceSettings200Response() { + return { + section: faker.lorem.slug(1), + name: faker.person.fullName(), + identifier: faker.lorem.slug(1), + default: faker.lorem.slug(1), + value: faker.lorem.slug(1), + verbose_name: faker.person.fullName(), + help_text: faker.lorem.slug(1), + additional_data: faker.lorem.slug(1), + field: faker.lorem.slug(1), + }; +} + +export function getGetSpaManifest200Response() { + return null; +} + +export function getGetLibraries200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getCreateLibrary201Response() { + return { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getGetLibrary200Response() { + return { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getUpdateLibrary200Response() { + return { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getPartialUpdateLibrary200Response() { + return { + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getGetLibraryFollows200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + creation_date: faker.date.past(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + uuid: faker.datatype.uuid(), + target: faker.lorem.slug(1), + approved: faker.datatype.boolean(), + })), + }; +} + +export function getGetLicenses200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.lorem.slug(1), + url: faker.internet.url(), + code: faker.lorem.slug(1), + name: faker.person.fullName(), + redistribute: faker.datatype.boolean(), + derivative: faker.datatype.boolean(), + commercial: faker.datatype.boolean(), + attribution: faker.datatype.boolean(), + copyleft: faker.datatype.boolean(), + })), + }; +} + +export function getGetLicense200Response() { + return { + id: faker.lorem.slug(1), + url: faker.internet.url(), + code: faker.lorem.slug(1), + name: faker.person.fullName(), + redistribute: faker.datatype.boolean(), + derivative: faker.datatype.boolean(), + commercial: faker.datatype.boolean(), + attribution: faker.datatype.boolean(), + copyleft: faker.datatype.boolean(), + }; +} + +export function getGetListen200Response() { + return null; +} + +export function getAdminGetAccounts200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + }, + instance_policy: faker.number.int({ min: undefined, max: undefined }), + })), + }; +} + +export function getAdminGetAccount200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + }, + instance_policy: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getAdminGetAccountStats200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + }, + instance_policy: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getAdminCreateAccountAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + }, + instance_policy: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getAdminGetChannels200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.lorem.slug(1), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + rss_url: faker.internet.url(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + })), + }; +} + +export function getAdminGetChannel200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.lorem.slug(1), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + rss_url: faker.internet.url(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getAdminGetChannelStats200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.lorem.slug(1), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + rss_url: faker.internet.url(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getAdminGetFederationDomains200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + name: faker.internet.url(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + })), + }; +} + +export function getAdminCreateFederationDomain201Response() { + return { + name: faker.internet.url(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + }; +} + +export function getAdminGetFederationDomain200Response() { + return { + name: faker.internet.url(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + }; +} + +export function getAdminUpdateFederationDomain200Response() { + return { + name: faker.person.fullName(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + }; +} + +export function getAdminPartialUpdateFederationDomain200Response() { + return { + name: faker.person.fullName(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + }; +} + +export function getAdminGetFederationDomainNodeinfo200Response() { + return { + name: faker.internet.url(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + }; +} + +export function getAdminGetFederationDomainStats200Response() { + return { + name: faker.internet.url(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + }; +} + +export function getAdminCreateFederationDomainAction200Response() { + return { + name: faker.internet.url(), + creation_date: faker.date.past(), + actors_count: faker.number.int({ min: undefined, max: undefined }), + outbox_activities_count: faker.number.int({ + min: undefined, + max: undefined, + }), + nodeinfo: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + nodeinfo_fetch_date: faker.date.past(), + instance_policy: faker.number.int({ min: undefined, max: undefined }), + allowed: faker.datatype.boolean(), + }; +} + +export function getAdminGetAlbums200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + })), + }; +} + +export function getAdminGetAlbum200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + }; +} + +export function getAdminGetLibraryAlbumStats200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + }; +} + +export function getAdminCreateAlbumAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + }; +} + +export function getAdminGetArtists200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.lorem.slug(1), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + })), + }; +} + +export function getAdminGetArtist200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.lorem.slug(1), + content_category: faker.helpers.arrayElement(["music", "podcast", "other"]), + }; +} + +export function getAdminGetLibraryArtistStats200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.lorem.slug(1), + content_category: faker.helpers.arrayElement(["music", "podcast", "other"]), + }; +} + +export function getAdminCreateArtistAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.lorem.slug(1), + content_category: faker.helpers.arrayElement(["music", "podcast", "other"]), + }; +} + +export function getAdminGetLibraries200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + followers_count: faker.number.int({ min: undefined, max: undefined }), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getAdminGetLibrary200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + followers_count: faker.number.int({ min: undefined, max: undefined }), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getAdminUpdateLibrary200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + followers_count: faker.number.int({ min: undefined, max: undefined }), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getAdminPartialUpdateLibrary200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + followers_count: faker.number.int({ min: undefined, max: undefined }), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getAdminGetLibraryStats200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + followers_count: faker.number.int({ min: undefined, max: undefined }), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getAdminCreateLibraryAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + followers_count: faker.number.int({ min: undefined, max: undefined }), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getAdminGetTracks200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + position: faker.number.int({ min: 0, max: 2147483647 }), + disc_number: faker.number.int({ min: 0, max: 2147483647 }), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + uploads_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + })), + }; +} + +export function getAdminGetTrack200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + position: faker.number.int({ min: 0, max: 2147483647 }), + disc_number: faker.number.int({ min: 0, max: 2147483647 }), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + uploads_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }; +} + +export function getAdminGetTrackStats200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + position: faker.number.int({ min: 0, max: 2147483647 }), + disc_number: faker.number.int({ min: 0, max: 2147483647 }), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + uploads_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }; +} + +export function getAdminCreateTrackAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + position: faker.number.int({ min: 0, max: 2147483647 }), + disc_number: faker.number.int({ min: 0, max: 2147483647 }), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + }, + }, + attributed_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + uploads_count: faker.number.int({ min: undefined, max: undefined }), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }; +} + +export function getAdminGetUploads200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + audio_file: faker.internet.url(), + listen_url: faker.internet.url(), + source: faker.lorem.slug(1), + filename: faker.person.fullName(), + mimetype: faker.lorem.slug(1), + duration: faker.number.int({ min: -2147483648, max: 2147483647 }), + bitrate: faker.number.int({ min: -2147483648, max: 2147483647 }), + size: faker.number.int({ min: -2147483648, max: 2147483647 }), + creation_date: faker.date.past(), + accessed_date: faker.date.past(), + modification_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_date: faker.date.past(), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + track: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + position: faker.number.int({ min: 0, max: 2147483647 }), + disc_number: faker.number.int({ min: 0, max: 2147483647 }), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + }, + library: { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "instance", + "everyone", + ]), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }, + })), + }; +} + +export function getAdminGetUpload200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + audio_file: faker.internet.url(), + listen_url: faker.internet.url(), + source: faker.lorem.slug(1), + filename: faker.person.fullName(), + mimetype: faker.lorem.slug(1), + duration: faker.number.int({ min: -2147483648, max: 2147483647 }), + bitrate: faker.number.int({ min: -2147483648, max: 2147483647 }), + size: faker.number.int({ min: -2147483648, max: 2147483647 }), + creation_date: faker.date.past(), + accessed_date: faker.date.past(), + modification_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_date: faker.date.past(), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + track: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + position: faker.number.int({ min: 0, max: 2147483647 }), + disc_number: faker.number.int({ min: 0, max: 2147483647 }), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + }, + library: { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }, + }; +} + +export function getAdminCreateUploadAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + audio_file: faker.internet.url(), + listen_url: faker.internet.url(), + source: faker.lorem.slug(1), + filename: faker.person.fullName(), + mimetype: faker.lorem.slug(1), + duration: faker.number.int({ min: -2147483648, max: 2147483647 }), + bitrate: faker.number.int({ min: -2147483648, max: 2147483647 }), + size: faker.number.int({ min: -2147483648, max: 2147483647 }), + creation_date: faker.date.past(), + accessed_date: faker.date.past(), + modification_date: faker.date.past(), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_date: faker.date.past(), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + track: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + position: faker.number.int({ min: 0, max: 2147483647 }), + disc_number: faker.number.int({ min: 0, max: 2147483647 }), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + }, + library: { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + url: faker.internet.url(), + name: faker.person.fullName(), + description: faker.lorem.slug(1), + domain: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + followers_url: faker.internet.url(), + actor: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + }, + }; +} + +export function getModerationGetInstancePolicies200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["domain", "actor"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + actor: faker.internet.email(), + summary: faker.lorem.slug(1), + is_active: faker.datatype.boolean(), + block_all: faker.datatype.boolean(), + silence_activity: faker.datatype.boolean(), + silence_notifications: faker.datatype.boolean(), + reject_media: faker.datatype.boolean(), + })), + }; +} + +export function getModerationCreateInstancePolicy201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["domain", "actor"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + actor: faker.internet.email(), + summary: faker.lorem.slug(1), + is_active: faker.datatype.boolean(), + block_all: faker.datatype.boolean(), + silence_activity: faker.datatype.boolean(), + silence_notifications: faker.datatype.boolean(), + reject_media: faker.datatype.boolean(), + }; +} + +export function getModerationGetInstancePolicy200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["domain", "actor"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + actor: faker.internet.email(), + summary: faker.lorem.slug(1), + is_active: faker.datatype.boolean(), + block_all: faker.datatype.boolean(), + silence_activity: faker.datatype.boolean(), + silence_notifications: faker.datatype.boolean(), + reject_media: faker.datatype.boolean(), + }; +} + +export function getModerationUpdateInstancePolicy200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["domain", "actor"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + actor: faker.internet.email(), + summary: faker.lorem.slug(1), + is_active: faker.datatype.boolean(), + block_all: faker.datatype.boolean(), + silence_activity: faker.datatype.boolean(), + silence_notifications: faker.datatype.boolean(), + reject_media: faker.datatype.boolean(), + }; +} + +export function getModerationPartialUpdateInstancePolicy200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["domain", "actor"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + actor: faker.internet.email(), + summary: faker.lorem.slug(1), + is_active: faker.datatype.boolean(), + block_all: faker.datatype.boolean(), + silence_activity: faker.datatype.boolean(), + silence_notifications: faker.datatype.boolean(), + reject_media: faker.datatype.boolean(), + }; +} + +export function getModerationGetNotes200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + author: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + })), + }; +} + +export function getModerationCreateNote201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + author: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getModerationGetNote200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + author: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getModerationGetReports200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + creation_date: faker.date.past(), + handled_date: faker.date.past(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "takedown_request", + "invalid_metadata", + "illegal_content", + "offensive_content", + "other", + ]), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + is_handled: faker.datatype.boolean(), + assigned_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + target_owner: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter_email: faker.internet.email(), + notes: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + author: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + })), + })), + }; +} + +export function getModerationGetReport200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + creation_date: faker.date.past(), + handled_date: faker.date.past(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "takedown_request", + "invalid_metadata", + "illegal_content", + "offensive_content", + "other", + ]), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + is_handled: faker.datatype.boolean(), + assigned_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + target_owner: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter_email: faker.internet.email(), + notes: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + author: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getModerationUpdateReport200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + creation_date: faker.date.past(), + handled_date: faker.date.past(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "takedown_request", + "invalid_metadata", + "illegal_content", + "offensive_content", + "other", + ]), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + is_handled: faker.datatype.boolean(), + assigned_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + target_owner: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter_email: faker.internet.email(), + notes: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + author: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getModerationPartialUpdateReport200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + creation_date: faker.date.past(), + handled_date: faker.date.past(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "takedown_request", + "invalid_metadata", + "illegal_content", + "offensive_content", + "other", + ]), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + is_handled: faker.datatype.boolean(), + assigned_to: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + target_owner: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + submitter_email: faker.internet.email(), + notes: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + author: { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + fid: faker.internet.url(), + preferred_username: faker.person.fullName(), + full_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + name: faker.person.fullName(), + summary: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + creation_date: faker.date.past(), + last_fetch_date: faker.date.past(), + inbox_url: faker.internet.url(), + outbox_url: faker.internet.url(), + shared_inbox_url: faker.internet.url(), + manually_approves_followers: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getModerationGetRequests200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + })), + }; +} + +export function getModerationGetRequest200Response() { + return { + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getModerationUpdateRequest200Response() { + return { + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getModerationPartialUpdateRequest200Response() { + return { + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getAdminGetTags200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + creation_date: faker.date.past(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + artists_count: faker.number.int({ min: undefined, max: undefined }), + })), + }; +} + +export function getAdminCreateTag201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + creation_date: faker.date.past(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + artists_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getAdminGetTag200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + creation_date: faker.date.past(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + artists_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getAdminCreateTagAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + creation_date: faker.date.past(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + albums_count: faker.number.int({ min: undefined, max: undefined }), + artists_count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getAdminGetInvitations200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + owner: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + invited_user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + code: faker.lorem.slug(1), + expiration_date: faker.date.past(), + creation_date: faker.date.past(), + users: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + })), + })), + }; +} + +export function getAdminCreateInvitation201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + owner: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + invited_user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + code: faker.lorem.slug(1), + expiration_date: faker.date.past(), + creation_date: faker.date.past(), + users: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + })), + }; +} + +export function getAdminGetInvitation200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + owner: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + invited_user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + code: faker.lorem.slug(1), + expiration_date: faker.date.past(), + creation_date: faker.date.past(), + users: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + })), + }; +} + +export function getAdminUpdateInvitation200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + owner: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + invited_user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + code: faker.lorem.slug(1), + expiration_date: faker.date.past(), + creation_date: faker.date.past(), + users: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + })), + }; +} + +export function getAdminPartialUpdateInvitation200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + owner: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + invited_user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + code: faker.lorem.slug(1), + expiration_date: faker.date.past(), + creation_date: faker.date.past(), + users: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + })), + }; +} + +export function getAdminCreateInvitationAction200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + owner: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + invited_user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + }, + code: faker.lorem.slug(1), + expiration_date: faker.date.past(), + creation_date: faker.date.past(), + users: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: 0, max: 2147483647 }), + })), + }; +} + +export function getAdminGetUsers200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + })), + }; +} + +export function getAdminGetUser200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + }; +} + +export function getAdminUpdateUser200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + }; +} + +export function getAdminPartialUpdateUser200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + actor: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + email: faker.internet.email(), + name: faker.person.fullName(), + is_active: faker.datatype.boolean(), + is_staff: faker.datatype.boolean(), + is_superuser: faker.datatype.boolean(), + date_joined: faker.date.past(), + last_activity: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + upload_quota: faker.number.int({ min: undefined, max: undefined }), + full_username: faker.person.fullName(), + }; +} + +export function getGetModerationContentFilters200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["artist"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + })), + }; +} + +export function getCreateModerationContentFilter201Response() { + return { + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["artist"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + }; +} + +export function getGetModerationContentFilter200Response() { + return { + uuid: faker.datatype.uuid(), + target: { + type: faker.helpers.arrayElement(["artist"]), + id: faker.lorem.slug(1), + }, + creation_date: faker.date.past(), + }; +} + +export function getCreateModerationReport201Response() { + return { + uuid: faker.datatype.uuid(), + summary: faker.lorem.slug(1), + creation_date: faker.date.past(), + handled_date: faker.date.past(), + is_handled: faker.datatype.boolean(), + submitter_email: faker.internet.email(), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + type: faker.helpers.arrayElement([ + "takedown_request", + "invalid_metadata", + "illegal_content", + "offensive_content", + "other", + ]), + }; +} + +export function getGetMutations200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + })), + }; +} + +export function getGetMutation200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getApproveMutation200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getRejectMutation200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetOauthApps200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + })), + }; +} + +export function getCreateOauthApp201Response() { + return { + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + client_secret: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + redirect_uris: faker.lorem.slug(1), + }; +} + +export function getGetOauthApp200Response() { + return { + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + }; +} + +export function getUpdateOauthApp200Response() { + return { + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + }; +} + +export function getPartialUpdateOauthApp200Response() { + return { + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + }; +} + +export function getRefreshOauthToken200Response() { + return { + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + client_secret: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + redirect_uris: faker.lorem.slug(1), + }; +} + +export function getGetOauthGrants200Response() { + return [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + })); +} + +export function getGetOauthGrant200Response() { + return { + client_id: faker.lorem.slug(1), + name: faker.person.fullName(), + scopes: faker.lorem.slug(1), + created: faker.date.past(), + updated: faker.date.past(), + }; +} + +export function getGetOembed200Response() { + return { + format: faker.helpers.arrayElement(["json"]), + url: faker.internet.url(), + maxheight: faker.number.int({ min: undefined, max: undefined }), + maxwidth: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getGetPlaylists200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + })), + }; +} + +export function getCreatePlaylist201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getGetPlaylist200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getUpdatePlaylist200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getPartialUpdatePlaylist200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getAddToPlaylist200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getReorderTrackInPlaylist200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getRemoveFromPlaylist2200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + name: faker.person.fullName(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + modification_date: faker.date.past(), + creation_date: faker.date.past(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + album_covers: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + duration: faker.number.int({ min: undefined, max: undefined }), + is_playable: faker.datatype.boolean(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + }; +} + +export function getGetPlaylistTracks200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + track: faker.lorem.slug(1), + index: faker.number.int({ min: 0, max: 2147483647 }), + creation_date: faker.date.past(), + })), + }; +} + +export function getGetRadios200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + is_public: faker.datatype.boolean(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + description: faker.lorem.slug(1), + })), + }; +} + +export function getCreateRadio201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + is_public: faker.datatype.boolean(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + description: faker.lorem.slug(1), + }; +} + +export function getGetRadio200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + is_public: faker.datatype.boolean(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + description: faker.lorem.slug(1), + }; +} + +export function getUpdateRadio200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + is_public: faker.datatype.boolean(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + description: faker.lorem.slug(1), + }; +} + +export function getPartialUpdateRadio200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + is_public: faker.datatype.boolean(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + description: faker.lorem.slug(1), + }; +} + +export function getGetRadioTrack200Response() { + return { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }; +} + +export function getGetRadioFilter200Response() { + return { + type: faker.lorem.slug(1), + label: faker.lorem.slug(1), + help_text: faker.lorem.slug(1), + fields: faker.lorem.slug(1), + }; +} + +export function getValidateRadio200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + is_public: faker.datatype.boolean(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + user: { + id: faker.number.int({ min: undefined, max: undefined }), + username: faker.person.fullName(), + name: faker.person.fullName(), + date_joined: faker.date.past(), + avatar: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + }, + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + description: faker.lorem.slug(1), + }; +} + +export function getCreateRadioSession201Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + radio_type: faker.lorem.slug(1), + related_object_id: faker.lorem.slug(1), + user: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + custom_radio: faker.number.int({ min: undefined, max: undefined }), + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetRadioSession200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + radio_type: faker.lorem.slug(1), + related_object_id: faker.lorem.slug(1), + user: faker.number.int({ min: undefined, max: undefined }), + creation_date: faker.date.past(), + custom_radio: faker.number.int({ min: undefined, max: undefined }), + config: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetNextRadioTrack201Response() { + return { + session: faker.number.int({ min: undefined, max: undefined }), + count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getGetRateLimit200Response() { + return { + enabled: faker.datatype.boolean(), + ident: { + type: faker.lorem.slug(1), + id: faker.lorem.slug(1), + }, + scopes: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.lorem.slug(1), + rate: faker.lorem.slug(1), + description: faker.lorem.slug(1), + limit: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + remaining: faker.number.int({ min: undefined, max: undefined }), + available: faker.number.int({ min: undefined, max: undefined }), + available_seconds: faker.number.int({ min: undefined, max: undefined }), + reset: faker.number.int({ min: undefined, max: undefined }), + reset_seconds: faker.number.int({ min: undefined, max: undefined }), + })), + }; +} + +export function getGetSearchResults200Response() { + return { + artists: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + albums: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + tracks_count: faker.number.int({ min: undefined, max: undefined }), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + is_local: faker.datatype.boolean(), + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: faker.number.int({ min: undefined, max: undefined }), + release_date: faker.date.past(), + creation_date: faker.date.past(), + })), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + channel: { + uuid: faker.lorem.slug(1), + actor: { + full_username: faker.person.fullName(), + preferred_username: faker.person.fullName(), + domain: faker.lorem.slug(1), + }, + }, + tracks_count: faker.number.int({ min: undefined, max: undefined }), + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + content_category: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + })), + tracks: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + })), + albums: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + release_date: faker.date.past(), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + duration: faker.number.int({ min: undefined, max: undefined }), + })), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + name: faker.person.fullName(), + creation_date: faker.date.past(), + })), + }; +} + +export function getGetTrackStream200Response() { + return null; +} + +export function getGetSubscriptions200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + approved: faker.datatype.boolean(), + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + })), + }; +} + +export function getGetSubscription200Response() { + return { + approved: faker.datatype.boolean(), + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + creation_date: faker.date.past(), + }; +} + +export function getGetAllSubscriptions200Response() { + return { + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + channel: faker.datatype.uuid(), + })), + count: faker.number.int({ min: undefined, max: undefined }), + }; +} + +export function getGetTags200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + name: faker.person.fullName(), + creation_date: faker.date.past(), + })), + }; +} + +export function getGetTag200Response() { + return { + name: faker.person.fullName(), + creation_date: faker.date.past(), + }; +} + +export function getPreviewText200Response() { + return { + rendered: faker.lorem.slug(1), + }; +} + +export function getPreviewText400Response() { + return { + detail: faker.lorem.slug(1), + }; +} + +export function getGetTracks200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + })), + }; +} + +export function getGetTrack200Response() { + return { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }; +} + +export function getGetTrackFetches200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + })), + }; +} + +export function getCreateTrackFetch200Response() { + return { + id: faker.number.int({ min: undefined, max: undefined }), + url: faker.internet.url(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + status: faker.helpers.arrayElement([ + "pending", + "errored", + "finished", + "skipped", + ]), + detail: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + creation_date: faker.date.past(), + fetch_date: faker.date.past(), + }; +} + +export function getGetTrackLibraries200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + actor: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + name: faker.person.fullName(), + description: faker.lorem.slug(1), + creation_date: faker.date.past(), + uploads_count: faker.number.int({ min: undefined, max: undefined }), + privacy_level: faker.helpers.arrayElement(["me", "instance", "everyone"]), + follow: { + creation_date: faker.date.past(), + uuid: faker.datatype.uuid(), + fid: faker.internet.url(), + approved: faker.datatype.boolean(), + modification_date: faker.date.past(), + }, + latest_scan: { + total_files: faker.number.int({ min: 0, max: 2147483647 }), + processed_files: faker.number.int({ min: 0, max: 2147483647 }), + errored_files: faker.number.int({ min: 0, max: 2147483647 }), + status: faker.lorem.slug(1), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + }, + })), + }; +} + +export function getGetTrackMutations200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + })), + }; +} + +export function getCreateTrackMutation200Response() { + return { + fid: faker.internet.url(), + uuid: faker.datatype.uuid(), + type: faker.lorem.slug(1), + creation_date: faker.date.past(), + applied_date: faker.date.past(), + is_approved: faker.datatype.boolean(), + is_applied: faker.datatype.boolean(), + created_by: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + approved_by: faker.number.int({ min: undefined, max: undefined }), + summary: faker.lorem.slug(1), + payload: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + previous_state: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + target: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }; +} + +export function getGetUploads200Response() { + return { + count: 123, + next: "http://api.example.org/accounts/?page=4", + previous: "http://api.example.org/accounts/?page=2", + results: [ + ...new Array(faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH })).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + filename: faker.person.fullName(), + creation_date: faker.date.past(), + mimetype: faker.lorem.slug(1), + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + library: faker.lorem.slug(1), + channel: faker.lorem.slug(1), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + import_date: faker.date.past(), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + source: faker.lorem.slug(1), + })), + }; +} + +export function getCreateUpload201Response() { + return { + uuid: faker.datatype.uuid(), + filename: faker.person.fullName(), + creation_date: faker.date.past(), + mimetype: faker.lorem.slug(1), + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + library: faker.lorem.slug(1), + channel: faker.lorem.slug(1), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + import_date: faker.date.past(), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + source: faker.lorem.slug(1), + }; +} + +export function getGetUpload200Response() { + return { + uuid: faker.datatype.uuid(), + filename: faker.person.fullName(), + creation_date: faker.date.past(), + mimetype: faker.lorem.slug(1), + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + library: faker.lorem.slug(1), + channel: faker.lorem.slug(1), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + import_date: faker.date.past(), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + source: faker.lorem.slug(1), + }; +} + +export function getUpdateUpload200Response() { + return { + uuid: faker.datatype.uuid(), + filename: faker.person.fullName(), + creation_date: faker.date.past(), + mimetype: faker.lorem.slug(1), + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + library: faker.lorem.slug(1), + channel: faker.lorem.slug(1), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + import_date: faker.date.past(), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + source: faker.lorem.slug(1), + }; +} + +export function getPartialUpdateUpload200Response() { + return { + uuid: faker.datatype.uuid(), + filename: faker.person.fullName(), + creation_date: faker.date.past(), + mimetype: faker.lorem.slug(1), + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + library: faker.lorem.slug(1), + channel: faker.lorem.slug(1), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + import_date: faker.date.past(), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + source: faker.lorem.slug(1), + }; +} + +export function getGetUploadMetadata200Response() { + return { + title: faker.lorem.slug(1), + position: faker.lorem.slug(1), + disc_number: faker.lorem.slug(1), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + mbid: faker.datatype.uuid(), + tags: faker.lorem.slug(1), + description: faker.lorem.slug(1), + album: faker.lorem.slug(1), + artists: faker.lorem.slug(1), + cover_data: faker.lorem.slug(1), + }; +} + +export function getCreateUploadAction200Response() { + return { + uuid: faker.datatype.uuid(), + filename: faker.person.fullName(), + creation_date: faker.date.past(), + mimetype: faker.lorem.slug(1), + track: { + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + album: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + artist: { + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + name: faker.person.fullName(), + creation_date: faker.date.past(), + modification_date: faker.date.past(), + is_local: faker.datatype.boolean(), + content_category: faker.helpers.arrayElement([ + "music", + "podcast", + "other", + ]), + description: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + attachment_cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + channel: faker.datatype.uuid(), + }, + release_date: faker.date.past(), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + tracks_count: faker.number.int({ min: undefined, max: undefined }), + }, + uploads: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => ({ + uuid: faker.datatype.uuid(), + listen_url: faker.internet.url(), + size: faker.number.int({ min: undefined, max: undefined }), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + extension: faker.lorem.slug(1), + is_local: faker.datatype.boolean(), + })), + listen_url: faker.internet.url(), + tags: [ + ...new Array( + faker.number.int({ min: 1, max: MAX_ARRAY_LENGTH }), + ).keys(), + ].map((_) => faker.lorem.slug(1)), + attributed_to: { + fid: faker.internet.url(), + url: faker.internet.url(), + creation_date: faker.date.past(), + summary: faker.lorem.slug(1), + preferred_username: faker.person.fullName(), + name: faker.person.fullName(), + last_fetch_date: faker.date.past(), + domain: faker.lorem.slug(1), + type: faker.helpers.arrayElement([ + "Person", + "Tombstone", + "Application", + "Group", + "Organization", + "Service", + ]), + manually_approves_followers: faker.datatype.boolean(), + full_username: faker.person.fullName(), + is_local: faker.datatype.boolean(), + }, + id: faker.number.int({ min: undefined, max: undefined }), + fid: faker.internet.url(), + mbid: faker.datatype.uuid(), + title: faker.lorem.slug(1), + creation_date: faker.date.past(), + is_local: faker.datatype.boolean(), + position: faker.number.int({ min: undefined, max: undefined }), + disc_number: faker.number.int({ min: undefined, max: undefined }), + downloads_count: faker.number.int({ min: undefined, max: undefined }), + copyright: faker.lorem.slug(1), + license: faker.lorem.slug(1), + cover: { + uuid: faker.datatype.uuid(), + size: faker.number.int({ min: undefined, max: undefined }), + mimetype: faker.lorem.slug(1), + creation_date: faker.date.past(), + urls: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + }, + is_playable: faker.datatype.boolean(), + }, + library: faker.lorem.slug(1), + channel: faker.lorem.slug(1), + duration: faker.number.int({ min: undefined, max: undefined }), + bitrate: faker.number.int({ min: undefined, max: undefined }), + size: faker.number.int({ min: undefined, max: undefined }), + import_date: faker.date.past(), + import_status: faker.helpers.arrayElement([ + "draft", + "pending", + "finished", + "errored", + "skipped", + ]), + import_details: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + import_reference: faker.lorem.slug(1), + metadata: [...new Array(5).keys()] + .map((_) => ({ [faker.lorem.word()]: null })) + .reduce((acc, next) => Object.assign(acc, next), {}), + source: faker.lorem.slug(1), + }; +} + +export function getUpdateUser200Response() { + return { + name: faker.person.fullName(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + instance_support_message_display_date: faker.date.past(), + funkwhale_support_message_display_date: faker.date.past(), + summary: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + }; +} + +export function getPartialUpdateUser200Response() { + return { + name: faker.person.fullName(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + instance_support_message_display_date: faker.date.past(), + funkwhale_support_message_display_date: faker.date.past(), + summary: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + }; +} + +export function getGetUserSubsonicToken200Response() { + return { + name: faker.person.fullName(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + instance_support_message_display_date: faker.date.past(), + funkwhale_support_message_display_date: faker.date.past(), + summary: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + }; +} + +export function getCreateUserSubsonicToken200Response() { + return { + name: faker.person.fullName(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + instance_support_message_display_date: faker.date.past(), + funkwhale_support_message_display_date: faker.date.past(), + summary: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + }; +} + +export function getGetAuthenticatedUser200Response() { + return { + name: faker.person.fullName(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + instance_support_message_display_date: faker.date.past(), + funkwhale_support_message_display_date: faker.date.past(), + summary: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + }; +} + +export function getUpdateSettings200Response() { + return { + name: faker.person.fullName(), + privacy_level: faker.helpers.arrayElement([ + "me", + "followers", + "instance", + "everyone", + ]), + instance_support_message_display_date: faker.date.past(), + funkwhale_support_message_display_date: faker.date.past(), + summary: { + text: faker.lorem.slug(1), + content_type: faker.helpers.arrayElement([ + "text/html", + "text/markdown", + "text/plain", + ]), + html: faker.lorem.slug(1), + }, + }; +} + +// This configures a Service Worker with the given request handlers. +export const startWorker = () => { + const server = setupServer(...handlers); + server.listen(); +}; diff --git a/front/test/setup/mock-lru-cache.ts b/front/test/setup/mock-lru-cache.ts new file mode 100644 index 000000000..b267bcd1d --- /dev/null +++ b/front/test/setup/mock-lru-cache.ts @@ -0,0 +1,20 @@ +import { vi } from 'vitest' + +vi.doMock('lru-cache', async (importOriginal) => { + const mod = await importOriginal() + + class LRUCacheMock, V extends NonNullable, FC> { + static caches: typeof mod.LRUCache[] = [] + + constructor (...args: ConstructorParameters>) { + const cache = new mod.LRUCache(...args) + LRUCacheMock.caches.push(cache as any) + return cache + } + } + + return { + ...mod, + LRUCache: LRUCacheMock + } +}) diff --git a/front/test/setup/mock-server.ts b/front/test/setup/mock-server.ts new file mode 100644 index 000000000..95b8e65b5 --- /dev/null +++ b/front/test/setup/mock-server.ts @@ -0,0 +1,17 @@ +import { handlers } from '../msw-server' +import { setupServer } from 'msw/node' + +import.meta.env.VUE_APP_INSTANCE_URL = 'http://localhost:3000/' + +const server = setupServer( + // We need to map the urls and remove /api/v1 prefix + ...handlers.map((handler) => { + handler.info.path = handler.info.path.replace('/api/v1', '') + handler.info.header = handler.info.header.replace('/api/v1', '') + return handler + }) +) + +beforeAll(() => server.listen()) +afterEach(() => server.resetHandlers()) +afterAll(() => server.close()) diff --git a/front/test/specs/composables/audio/tracks.test.ts b/front/test/specs/composables/audio/tracks.test.ts new file mode 100644 index 000000000..283828ad9 --- /dev/null +++ b/front/test/specs/composables/audio/tracks.test.ts @@ -0,0 +1,130 @@ +import { LRUCache } from 'lru-cache' +import { currentIndex, useQueue } from '~/composables/audio/queue' +import { useTracks } from '~/composables/audio/tracks' +import { sleep } from '?/utils' +import type { Sound } from '~/api/player' +import type { Track } from '~/types' + +const { enqueue, enqueueAt, clear } = useQueue() + +// @ts-expect-error We've added caches array in the mock file +const cache: LRUCache = LRUCache.caches[0] + +type CreateTrackFn = { + (): Track + id?: number +} + +const createTrack = (() => { + createTrack.id = createTrack.id ?? 0 + return { id: createTrack.id++, uploads: [] } as any as Track +}) + + +beforeAll(() => { + const { initialize } = useTracks() + initialize() +}) + + +describe('cache', () => { + beforeEach(async () => { + createTrack.id = 0 + + await clear() + await enqueue( + createTrack(), + createTrack(), + createTrack(), + createTrack(), + createTrack(), + ) + }) + + it('useQueue().clear() clears track cache', async () => { + expect(cache.size).toBe(1) + await clear() + expect(cache.size).toBe(0) + }) + + it('caches next track after 100ms', async () => { + expect(cache.size).toBe(1) + + await sleep(110) + expect(cache.size).toBe(2) + }) + + it('preserves previous track in cache, when next track is playing', async () => { + expect(cache.size).toBe(1) + + await sleep(110) + expect(cache.size).toBe(2) + currentIndex.value += 1 + + await sleep(110) + expect(cache.size).toBe(3) + }) + + it('maxes at 3 cache elements', async () => { + expect(cache.size).toBe(1) + const [[firstCachedId]] = cache.dump() + + await sleep(110) + expect(cache.size).toBe(2) + currentIndex.value += 1 + + await sleep(110) + expect(cache.size).toBe(3) + currentIndex.value += 1 + + await sleep(110) + expect(cache.size).toBe(3) + expect(cache.dump().map(([id]) => id)).not.toContain(firstCachedId) + }) + + it('jumping around behaves correctly', async () => { + currentIndex.value = 2 + await sleep(110) + expect([...cache.rkeys()]).toEqual([0, 2, 3]) + + currentIndex.value = 3 + await sleep(110) + expect([...cache.rkeys()]).toEqual([2, 3, 4]) + + // We change to the first song + currentIndex.value = 0 + await sleep(0) // Wait until next macro task + expect([...cache.rkeys()]).toEqual([3, 4, 0]) + + // Now the next song should be enqueued + await sleep(110) + expect([...cache.rkeys()]).toEqual([4, 0, 1]) + }) + + describe('track enqueueing', () => { + // NOTE: We always want to have tracks 0, 1, 2 in the cache + beforeEach(async () => { + currentIndex.value += 1 + await sleep(110) + expect(cache.size).toBe(3) + }) + + it('enqueueing track as next adds it to the cache', async () => { + enqueueAt(currentIndex.value + 1, createTrack()) // id: 5 + await sleep(210) + const newIds = [...cache.rkeys()] + expect(newIds).toEqual([2, 1, 5]) + }) + + it('edge case: enqueueing track as next multiple times does not remove dispose current track', async () => { + enqueueAt(currentIndex.value + 1, createTrack()) // id: 5 + await sleep(210) + enqueueAt(currentIndex.value + 1, createTrack()) // id: 6 + await sleep(210) + enqueueAt(currentIndex.value + 1, createTrack()) // id: 7 + await sleep(210) + const newIds = [...cache.rkeys()] + expect(newIds).toEqual([6, 1, 7]) + }) + }) +}) diff --git a/front/vite.config.ts b/front/vite.config.ts index f46eb8807..e9dc4e23a 100644 --- a/front/vite.config.ts +++ b/front/vite.config.ts @@ -19,7 +19,7 @@ export default defineConfig(({ mode }) => ({ VueMacros({ plugins: { // https://github.com/vitejs/vite/tree/main/packages/plugin-vue - vue: Vue(), + vue: Vue() } }), @@ -61,14 +61,14 @@ export default defineConfig(({ mode }) => ({ rollupOptions: { output: { manualChunks: { - 'axios': ['axios', 'axios-auth-refresh'], - 'dompurify': ['dompurify'], - 'jquery': ['jquery'], - 'lodash': ['lodash-es'], - 'moment': ['moment'], - 'sentry': ['@sentry/vue', '@sentry/tracing'], + axios: ['axios', 'axios-auth-refresh'], + dompurify: ['dompurify'], + jquery: ['jquery'], + lodash: ['lodash-es'], + moment: ['moment'], + sentry: ['@sentry/vue', '@sentry/tracing'], 'standardized-audio-context': ['standardized-audio-context'], - 'vue-router': ['vue-router'], + 'vue-router': ['vue-router'] } } } @@ -77,15 +77,17 @@ export default defineConfig(({ mode }) => ({ environment: 'jsdom', globals: true, reporters: ['default', 'junit'], - outputFile: "./test_results.xml", + outputFile: './test_results.xml', coverage: { src: './src', all: true, reporter: ['text', 'cobertura'] }, setupFiles: [ + './test/setup/mock-server.ts', './test/setup/mock-audio-context.ts', - './test/setup/mock-vue-i18n.ts' + './test/setup/mock-vue-i18n.ts', + './test/setup/mock-lru-cache.ts' ] } })) diff --git a/front/yarn.lock b/front/yarn.lock index f55efc756..91afcb03f 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -29,6 +29,38 @@ jsonpointer "^5.0.0" leven "^3.1.0" +"@apidevtools/json-schema-ref-parser@9.0.6": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz#5d9000a3ac1fd25404da886da6b266adcd99cf1c" + integrity sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg== + dependencies: + "@jsdevtools/ono" "^7.1.3" + call-me-maybe "^1.0.1" + js-yaml "^3.13.1" + +"@apidevtools/openapi-schemas@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz#9fa08017fb59d80538812f03fc7cac5992caaa17" + integrity sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ== + +"@apidevtools/swagger-methods@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz#b789a362e055b0340d04712eafe7027ddc1ac267" + integrity sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg== + +"@apidevtools/swagger-parser@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz#a987d71e5be61feb623203be0c96e5985b192ab6" + integrity sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw== + dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.6" + "@apidevtools/openapi-schemas" "^2.1.0" + "@apidevtools/swagger-methods" "^3.0.2" + "@jsdevtools/ono" "^7.1.3" + ajv "^8.6.3" + ajv-draft-04 "^1.0.0" + call-me-maybe "^1.0.1" + "@assemblyscript/loader@^0.17.11": version "0.17.14" resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.17.14.tgz#43bfe793c787180c5eb0a57ada8318fb62171b4e" @@ -988,6 +1020,20 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@bundled-es-modules/cookie@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz#c3b82703969a61cf6a46e959a012b2c257f6b164" + integrity sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw== + dependencies: + cookie "^0.5.0" + +"@bundled-es-modules/statuses@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz#761d10f44e51a94902c4da48675b71a76cc98872" + integrity sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg== + dependencies: + statuses "^2.0.1" + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -1025,6 +1071,11 @@ debug "^3.1.0" lodash.once "^4.1.1" +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + "@esbuild/android-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" @@ -1035,6 +1086,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + "@esbuild/android-arm@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" @@ -1045,6 +1101,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + "@esbuild/android-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" @@ -1055,6 +1116,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + "@esbuild/darwin-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276" @@ -1065,6 +1131,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + "@esbuild/darwin-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" @@ -1075,6 +1146,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + "@esbuild/freebsd-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" @@ -1085,6 +1161,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + "@esbuild/freebsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" @@ -1095,6 +1176,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + "@esbuild/linux-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" @@ -1105,6 +1191,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + "@esbuild/linux-arm@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" @@ -1115,6 +1206,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + "@esbuild/linux-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" @@ -1125,6 +1221,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + "@esbuild/linux-loong64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" @@ -1135,6 +1236,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + "@esbuild/linux-mips64el@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" @@ -1145,6 +1251,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + "@esbuild/linux-ppc64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" @@ -1155,6 +1266,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + "@esbuild/linux-riscv64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" @@ -1165,6 +1281,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + "@esbuild/linux-s390x@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" @@ -1175,6 +1296,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + "@esbuild/linux-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" @@ -1185,6 +1311,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + "@esbuild/netbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" @@ -1195,6 +1326,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + "@esbuild/openbsd-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" @@ -1205,6 +1341,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + "@esbuild/sunos-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" @@ -1215,6 +1356,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + "@esbuild/win32-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" @@ -1225,6 +1371,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + "@esbuild/win32-ia32@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" @@ -1235,6 +1386,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + "@esbuild/win32-x64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" @@ -1245,6 +1401,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1272,6 +1433,16 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@exodus/schemasafe@^1.0.0-rc.2": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" + integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== + +"@faker-js/faker@8.4.1": + version "8.4.1" + resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-8.4.1.tgz#5d5e8aee8fce48f5e189bf730ebd1f758f491451" + integrity sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg== + "@funkwhale/ui@0.2.2": version "0.2.2" resolved "https://registry.yarnpkg.com/@funkwhale/ui/-/ui-0.2.2.tgz#09a5f8e6b30d7a898b50f5fdcfce9b09b3071c5b" @@ -1300,6 +1471,39 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@inquirer/confirm@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.0.0.tgz#6e1e35d18675fe659752d11021f9fddf547950b7" + integrity sha512-LHeuYP1D8NmQra1eR4UqvZMXwxEdDXyElJmmZfU44xdNLL6+GcQBS0uE16vyfZVjH8c22p9e+DStROfE/hyHrg== + dependencies: + "@inquirer/core" "^7.0.0" + "@inquirer/type" "^1.2.0" + +"@inquirer/core@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-7.0.0.tgz#18d2d2bb5cc6858765b4dcf3dce544ad15898e81" + integrity sha512-g13W5yEt9r1sEVVriffJqQ8GWy94OnfxLCreNSOTw0HPVcszmc/If1KIf7YBmlwtX4klmvwpZHnQpl3N7VX2xA== + dependencies: + "@inquirer/type" "^1.2.0" + "@types/mute-stream" "^0.0.4" + "@types/node" "^20.11.16" + "@types/wrap-ansi" "^3.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + cli-spinners "^2.9.2" + cli-width "^4.1.0" + figures "^3.2.0" + mute-stream "^1.0.0" + run-async "^3.0.0" + signal-exit "^4.1.0" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + +"@inquirer/type@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.2.0.tgz#a569613628a881c2104289ca868a7def54e5c49d" + integrity sha512-/vvkUkYhrjbm+RolU7V1aUFDydZVKNKqKHR5TsE+j5DXgXFwrsOPcoGUJ02K0O7q7O53CU2DOTMYCHeGZ25WHA== + "@intlify/bundle-utils@^7.4.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-7.5.0.tgz#fb50947c4e9997228a8abd5775e57a1202f71b09" @@ -1402,6 +1606,13 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -1442,6 +1653,28 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@mswjs/cookies@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@mswjs/cookies/-/cookies-1.1.0.tgz#1528eb43630caf83a1d75d5332b30e75e9bb1b5b" + integrity sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw== + +"@mswjs/interceptors@^0.25.16": + version "0.25.16" + resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.25.16.tgz#7955fbb8da479bc691df117dd4c8d889e507ecc2" + integrity sha512-8QC8JyKztvoGAdPgyZy49c9vSHHAZjHagwl4RY9E8carULk8ym3iTaiawrT1YoLF/qb449h48f71XDPgkUSOUg== + dependencies: + "@open-draft/deferred-promise" "^2.2.0" + "@open-draft/logger" "^0.3.0" + "@open-draft/until" "^2.0.0" + is-node-process "^1.2.0" + outvariant "^1.2.1" + strict-event-emitter "^0.5.1" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1463,6 +1696,24 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@open-draft/deferred-promise@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd" + integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA== + +"@open-draft/logger@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@open-draft/logger/-/logger-0.3.0.tgz#2b3ab1242b360aa0adb28b85f5d7da1c133a0954" + integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ== + dependencies: + is-node-process "^1.2.0" + outvariant "^1.4.0" + +"@open-draft/until@^2.0.0", "@open-draft/until@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-2.1.0.tgz#0acf32f470af2ceaf47f095cdecd40d68666efda" + integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== + "@polka/url@^1.0.0-next.20": version "1.0.0-next.23" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" @@ -1522,6 +1773,71 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/rollup-android-arm-eabi@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz#38c3abd1955a3c21d492af6b1a1dca4bb1d894d6" + integrity sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w== + +"@rollup/rollup-android-arm64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz#3822e929f415627609e53b11cec9a4be806de0e2" + integrity sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ== + +"@rollup/rollup-darwin-arm64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz#6c082de71f481f57df6cfa3701ab2a7afde96f69" + integrity sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ== + +"@rollup/rollup-darwin-x64@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz#c34ca0d31f3c46a22c9afa0e944403eea0edcfd8" + integrity sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg== + +"@rollup/rollup-linux-arm-gnueabihf@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz#48e899c1e438629c072889b824a98787a7c2362d" + integrity sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA== + +"@rollup/rollup-linux-arm64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz#788c2698a119dc229062d40da6ada8a090a73a68" + integrity sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA== + +"@rollup/rollup-linux-arm64-musl@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz#3882a4e3a564af9e55804beeb67076857b035ab7" + integrity sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ== + +"@rollup/rollup-linux-riscv64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz#0c6ad792e1195c12bfae634425a3d2aa0fe93ab7" + integrity sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw== + +"@rollup/rollup-linux-x64-gnu@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz#9d62485ea0f18d8674033b57aa14fb758f6ec6e3" + integrity sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA== + +"@rollup/rollup-linux-x64-musl@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz#50e8167e28b33c977c1f813def2b2074d1435e05" + integrity sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw== + +"@rollup/rollup-win32-arm64-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz#68d233272a2004429124494121a42c4aebdc5b8e" + integrity sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw== + +"@rollup/rollup-win32-ia32-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz#366ca62221d1689e3b55a03f4ae12ae9ba595d40" + integrity sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA== + +"@rollup/rollup-win32-x64-msvc@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz#9ffdf9ed133a7464f4ae187eb9e1294413fab235" + integrity sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg== + "@sentry-internal/tracing@7.47.0": version "7.47.0" resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.47.0.tgz#45e92eb4c8d049d93bd4fab961eaa38a4fb680f3" @@ -1593,6 +1909,11 @@ "@sentry/utils" "7.47.0" tslib "^1.9.3" +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + "@sinonjs/commons@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" @@ -1664,6 +1985,11 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== +"@types/cookie@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" + integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== + "@types/diff@5.0.9": version "5.0.9" resolved "https://registry.yarnpkg.com/@types/diff/-/diff-5.0.9.tgz#31977962175079c2048315febeb8fd5f520192c6" @@ -1681,7 +2007,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/estree@^1.0.0": +"@types/estree@1.0.5", "@types/estree@^1.0.0": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -1740,6 +2066,13 @@ dependencies: axios ">=0.13.0" +"@types/mute-stream@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478" + integrity sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow== + dependencies: + "@types/node" "*" + "@types/node@*": version "20.9.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.4.tgz#cc8f970e869c26834bdb7ed480b30ede622d74c7" @@ -1747,6 +2080,13 @@ dependencies: undici-types "~5.26.4" +"@types/node@^20.11.16": + version "20.11.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" + integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== + dependencies: + undici-types "~5.26.4" + "@types/parse-json@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" @@ -1960,6 +2300,11 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627" integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== +"@types/statuses@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.4.tgz#041143ba4a918e8f080f8b0ffbe3d4cb514e2315" + integrity sha512-eqNDvZsCNY49OAXB0Firg/Sc2BgoWsntsLUdybGFOhAfCD6QJ2n9HXUIHGqt5qjrxmMv4wS8WLAw43ZkKcJ8Pw== + "@types/trusted-types@*", "@types/trusted-types@^2.0.2": version "2.0.7" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" @@ -1975,6 +2320,11 @@ resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz#5c9f3c617f64a9735d7b72a7cc671e166d900c40" integrity sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA== +"@types/wrap-ansi@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd" + integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== + "@types/yauzl@^2.9.1": version "2.10.3" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" @@ -2081,6 +2431,50 @@ c8 "^7.12.0" vitest "0.25.8" +"@vitest/expect@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.3.0.tgz#09b374357b51be44f4fba9336d59024756f902dc" + integrity sha512-7bWt0vBTZj08B+Ikv70AnLRicohYwFgzNjFqo9SxxqHHxSlUJGSXmCRORhOnRMisiUryKMdvsi1n27Bc6jL9DQ== + dependencies: + "@vitest/spy" "1.3.0" + "@vitest/utils" "1.3.0" + chai "^4.3.10" + +"@vitest/runner@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.3.0.tgz#1fabbe8d13642473e1acc3450b4df67cf40ae9d1" + integrity sha512-1Jb15Vo/Oy7mwZ5bXi7zbgszsdIBNjc4IqP8Jpr/8RdBC4nF1CTzIAn2dxYvpF1nGSseeL39lfLQ2uvs5u1Y9A== + dependencies: + "@vitest/utils" "1.3.0" + p-limit "^5.0.0" + pathe "^1.1.1" + +"@vitest/snapshot@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.3.0.tgz#016b34289d87ef0c64f4cdb9173086c2edf1db7b" + integrity sha512-swmktcviVVPYx9U4SEQXLV6AEY51Y6bZ14jA2yo6TgMxQ3h+ZYiO0YhAHGJNp0ohCFbPAis1R9kK0cvN6lDPQA== + dependencies: + magic-string "^0.30.5" + pathe "^1.1.1" + pretty-format "^29.7.0" + +"@vitest/spy@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.3.0.tgz#1faab30e364324e9826887d479e71c03299fe77b" + integrity sha512-AkCU0ThZunMvblDpPKgjIi025UxR8V7MZ/g/EwmAGpjIujLVV2X6rGYGmxE2D4FJbAy0/ijdROHMWa2M/6JVMw== + dependencies: + tinyspy "^2.2.0" + +"@vitest/utils@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.3.0.tgz#7d46aa00617c1720b075eaeb4c4979a712d86c8e" + integrity sha512-/LibEY/fkaXQufi4GDlQZhikQsPO2entBKtfuyIpr1jV4DpaeasqkeHjhdOhU24vSHshcSuEyVlWdzvv2XmYCw== + dependencies: + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" + "@volar/language-core@1.10.0": version "1.10.0" resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.0.tgz#fb6b3ad22e75c53a1ae4d644c4a788b47d411b9d" @@ -2734,6 +3128,11 @@ acorn-walk@^8.2.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== +acorn-walk@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + acorn@^8.10.0, acorn@^8.11.2, acorn@^8.5.0, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: version "8.11.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" @@ -2759,6 +3158,11 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +ajv-draft-04@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8" + integrity sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw== + ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -2769,7 +3173,7 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.6.0: +ajv@^8.6.0, ajv@^8.6.3: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -2784,7 +3188,7 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.3.0: +ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -2810,6 +3214,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -2823,6 +3232,13 @@ arch@^2.2.0: resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -3185,6 +3601,11 @@ c8@^7.12.0: yargs "^16.2.0" yargs-parser "^20.2.9" +cac@^6.7.12, cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + cachedir@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" @@ -3199,6 +3620,11 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3214,6 +3640,19 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +chai@^4.3.10: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + chai@^4.3.7: version "4.3.10" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" @@ -3288,6 +3727,11 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-spinners@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + cli-table3@~0.6.1: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" @@ -3305,6 +3749,11 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -3404,6 +3853,11 @@ cookie@^0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + core-js-compat@^3.31.0, core-js-compat@^3.33.1: version "3.33.3" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" @@ -3427,7 +3881,7 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3607,6 +4061,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + diff@5.1.0, diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -3812,6 +4271,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-promise@^3.2.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== + esbuild@^0.17.5: version "0.17.19" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" @@ -3868,6 +4332,35 @@ esbuild@^0.18.10: "@esbuild/win32-ia32" "0.18.20" "@esbuild/win32-x64" "0.18.20" +esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -4159,7 +4652,7 @@ espree@^9.0.0, espree@^9.3.1, espree@^9.4.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -4193,6 +4686,13 @@ estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -4218,6 +4718,21 @@ execa@4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + executable@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -4277,6 +4792,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -4420,7 +4940,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -4482,6 +5002,11 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -4628,6 +5153,11 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +graphql@^16.8.1: + version "16.8.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== + has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -4684,6 +5214,11 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +headers-polyfill@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-4.0.2.tgz#9115a76eee3ce8fbf95b6e3c6bf82d936785b44a" + integrity sha512-EWGTfnTqAO2L/j5HZgoM/3z82L7necsJ0pO9Tp0X1wil3PDLrkypTBRgVO2ExehEEvUycejZD3FuRaXpZZc3kw== + html-encoding-sniffer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" @@ -4723,6 +5258,11 @@ http-signature@~1.3.6: jsprim "^2.0.2" sshpk "^1.14.1" +http2-client@^1.2.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181" + integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA== + https-proxy-agent@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" @@ -4736,6 +5276,11 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -4939,6 +5484,11 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-node-process@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" + integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -4991,6 +5541,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -5112,6 +5667,19 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-tokens@^8.0.2: + version "8.0.3" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-8.0.3.tgz#1c407ec905643603b38b6be6977300406ec48775" + integrity sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^4.0.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -5311,6 +5879,14 @@ local-pkg@^0.4.2, local-pkg@^0.4.3: resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== +local-pkg@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" + integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== + dependencies: + mlly "^1.4.2" + pkg-types "^1.0.3" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -5376,7 +5952,7 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -loupe@^2.3.6: +loupe@^2.3.6, loupe@^2.3.7: version "2.3.7" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== @@ -5472,6 +6048,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + minimatch@9.0.3, minimatch@^9.0.0: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -5503,7 +6084,7 @@ mitt@^2.1.0: resolved "https://registry.yarnpkg.com/mitt/-/mitt-2.1.0.tgz#f740577c23176c6205b121b2973514eade1b2230" integrity sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg== -mlly@^1.2.0: +mlly@^1.2.0, mlly@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.5.0.tgz#8428a4617d54cc083d3009030ac79739a0e5447a" integrity sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ== @@ -5538,6 +6119,41 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +msw-auto-mock@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/msw-auto-mock/-/msw-auto-mock-0.18.0.tgz#2d67d01aa1d2454a55e4efa53caea51b0c055136" + integrity sha512-mFpsq+EM2W05Vb07VMRbJJarahUtxzq4hapwUYhoLM5MtU6tM2D5tRK9xEP7hBRZc6rWT+tfCwvjB0KhxoNEPQ== + dependencies: + "@apidevtools/swagger-parser" "^10.1.0" + cac "^6.7.12" + lodash "^4.17.21" + oazapfts "^4.5.2" + prettier "3.1.0" + swagger2openapi "^7.0.8" + +msw@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/msw/-/msw-2.2.1.tgz#5ece7ee81331aabe632fe331f07e71e8a3949499" + integrity sha512-DCsZAQwan+2onEcpD86fiEnCKW4IvYzqcwDq/2TIoeNrmBqNp/mJW4wHQyxcoYrRPwgujin7wDFflqiSO1iT/w== + dependencies: + "@bundled-es-modules/cookie" "^2.0.0" + "@bundled-es-modules/statuses" "^1.0.1" + "@inquirer/confirm" "^3.0.0" + "@mswjs/cookies" "^1.1.0" + "@mswjs/interceptors" "^0.25.16" + "@open-draft/until" "^2.1.0" + "@types/cookie" "^0.6.0" + "@types/statuses" "^2.0.4" + chalk "^4.1.2" + graphql "^16.8.1" + headers-polyfill "^4.0.2" + is-node-process "^1.2.0" + outvariant "^1.4.2" + path-to-regexp "^6.2.0" + strict-event-emitter "^0.5.1" + type-fest "^4.9.0" + yargs "^17.7.2" + muggle-string@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.2.2.tgz#786aa53fea1652c61c6a59e1f839292b262bc72a" @@ -5548,6 +6164,11 @@ muggle-string@^0.3.1: resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== +mute-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + nanoid@^3.3.6, nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -5569,6 +6190,27 @@ nise@^5.1.4: just-extend "^4.0.2" path-to-regexp "^1.7.0" +node-fetch-h2@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac" + integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg== + dependencies: + http2-client "^1.2.5" + +node-fetch@^2.6.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-readfiles@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/node-readfiles/-/node-readfiles-0.2.0.tgz#dbbd4af12134e2e635c245ef93ffcf6f60673a5d" + integrity sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA== + dependencies: + es6-promise "^3.2.1" + node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" @@ -5586,6 +6228,13 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + dependencies: + path-key "^4.0.0" + nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -5598,6 +6247,63 @@ nwsapi@^2.2.7: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== +oas-kit-common@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535" + integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ== + dependencies: + fast-safe-stringify "^2.0.7" + +oas-linter@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e" + integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ== + dependencies: + "@exodus/schemasafe" "^1.0.0-rc.2" + should "^13.2.1" + yaml "^1.10.0" + +oas-resolver@^2.5.6: + version "2.5.6" + resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b" + integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ== + dependencies: + node-fetch-h2 "^2.3.0" + oas-kit-common "^1.0.8" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" + +oas-schema-walker@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22" + integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ== + +oas-validator@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28" + integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw== + dependencies: + call-me-maybe "^1.0.1" + oas-kit-common "^1.0.8" + oas-linter "^3.2.2" + oas-resolver "^2.5.6" + oas-schema-walker "^1.1.5" + reftools "^1.1.9" + should "^13.2.1" + yaml "^1.10.0" + +oazapfts@^4.5.2: + version "4.12.0" + resolved "https://registry.yarnpkg.com/oazapfts/-/oazapfts-4.12.0.tgz#8a86c5fe5a1237b16b05d06d05815cffa2a2b949" + integrity sha512-hNKRG4eLYceuJuqDDx7Uqsi8p3j5k83gNKSo2qnUOTiiU03sCQOjXxOqCXDbzRcuDFyK94+1PBIpotK4NoxIjw== + dependencies: + "@apidevtools/swagger-parser" "^10.1.0" + lodash "^4.17.21" + minimist "^1.2.8" + swagger2openapi "^7.0.8" + typescript "^5.2.2" + object-inspect@^1.13.1, object-inspect@^1.9.0: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" @@ -5660,6 +6366,13 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" @@ -5686,6 +6399,11 @@ ospath@^1.2.2: resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== +outvariant@^1.2.1, outvariant@^1.4.0, outvariant@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.2.tgz#f54f19240eeb7f15b28263d5147405752d8e2066" + integrity sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ== + p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -5693,6 +6411,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-limit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985" + integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" @@ -5758,6 +6483,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -5770,6 +6500,11 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-to-regexp@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -5869,11 +6604,25 @@ postcss@^8.4.33: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.35: + version "8.4.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== + pretty-bytes@^5.3.0, pretty-bytes@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" @@ -5884,6 +6633,15 @@ pretty-bytes@^6.0.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ== +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -5941,6 +6699,11 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -5948,6 +6711,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +reftools@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e" + integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w== + regenerate-unicode-properties@^10.1.0: version "10.1.1" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" @@ -6110,11 +6878,38 @@ rollup@^3.21.0, rollup@^3.27.1, rollup@^3.29.1, rollup@^3.7.2: optionalDependencies: fsevents "~2.3.2" +rollup@^4.2.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.12.0.tgz#0b6d1e5f3d46bbcf244deec41a7421dc54cc45b5" + integrity sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.12.0" + "@rollup/rollup-android-arm64" "4.12.0" + "@rollup/rollup-darwin-arm64" "4.12.0" + "@rollup/rollup-darwin-x64" "4.12.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.12.0" + "@rollup/rollup-linux-arm64-gnu" "4.12.0" + "@rollup/rollup-linux-arm64-musl" "4.12.0" + "@rollup/rollup-linux-riscv64-gnu" "4.12.0" + "@rollup/rollup-linux-x64-gnu" "4.12.0" + "@rollup/rollup-linux-x64-musl" "4.12.0" + "@rollup/rollup-win32-arm64-msvc" "4.12.0" + "@rollup/rollup-win32-ia32-msvc" "4.12.0" + "@rollup/rollup-win32-x64-msvc" "4.12.0" + fsevents "~2.3.2" + rrweb-cssom@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -6224,6 +7019,50 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +should-equal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" + integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== + dependencies: + should-type "^1.4.0" + +should-format@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" + integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== + dependencies: + should-type "^1.3.0" + should-type-adaptors "^1.0.1" + +should-type-adaptors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" + integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== + dependencies: + should-type "^1.3.0" + should-util "^1.0.0" + +should-type@^1.3.0, should-type@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" + integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== + +should-util@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" + integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== + +should@^13.2.1: + version "13.2.3" + resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" + integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== + dependencies: + should-equal "^2.0.0" + should-format "^3.0.3" + should-type "^1.4.0" + should-type-adaptors "^1.0.1" + should-util "^1.0.0" + showdown@2.1.0, showdown@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/showdown/-/showdown-2.1.0.tgz#1251f5ed8f773f0c0c7bfc8e6fd23581f9e545c5" @@ -6245,11 +7084,21 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sinon@15.0.2: version "15.0.2" resolved "https://registry.yarnpkg.com/sinon/-/sinon-15.0.2.tgz#f3e3aacb990bbaa8a7bb976e86118c5dc0154e66" @@ -6351,6 +7200,11 @@ sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + sshpk@^1.14.1: version "1.18.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" @@ -6373,6 +7227,11 @@ stack-generator@^2.0.5: dependencies: stackframe "^1.3.4" +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + stackframe@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" @@ -6416,6 +7275,21 @@ standardized-audio-context@25.3.60, standardized-audio-context@^25.3.60: automation-events "^6.0.13" tslib "^2.6.2" +statuses@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +std-env@^3.5.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + +strict-event-emitter@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93" + integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ== + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -6498,6 +7372,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -6510,6 +7389,13 @@ strip-literal@^1.0.0: dependencies: acorn "^8.10.0" +strip-literal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.0.0.tgz#5d063580933e4e03ebb669b12db64d2200687527" + integrity sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA== + dependencies: + js-tokens "^8.0.2" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6536,6 +7422,23 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +swagger2openapi@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/swagger2openapi/-/swagger2openapi-7.0.8.tgz#12c88d5de776cb1cbba758994930f40ad0afac59" + integrity sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g== + dependencies: + call-me-maybe "^1.0.1" + node-fetch "^2.6.1" + node-fetch-h2 "^2.3.0" + node-readfiles "^0.2.0" + oas-kit-common "^1.0.8" + oas-resolver "^2.5.6" + oas-schema-walker "^1.1.5" + oas-validator "^5.0.8" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -6605,16 +7508,31 @@ tinybench@^2.3.1: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== +tinybench@^2.5.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.6.0.tgz#1423284ee22de07c91b3752c048d2764714b341b" + integrity sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA== + tinypool@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6" integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ== +tinypool@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.2.tgz#84013b03dc69dacb322563a475d4c0a9be00f82a" + integrity sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ== + tinyspy@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== +tinyspy@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1" + integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== + tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -6663,6 +7581,11 @@ tr46@^5.0.0: dependencies: punycode "^2.3.1" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + transliteration@2.3.5, transliteration@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/transliteration/-/transliteration-2.3.5.tgz#8f92309575f69e4a8a525dab4ff705ebcf961c45" @@ -6734,6 +7657,11 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^4.9.0: + version "4.10.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.10.2.tgz#3abdb144d93c5750432aac0d73d3e85fcab45738" + integrity sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw== + typed-array-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" @@ -6783,6 +7711,11 @@ typescript@4.9.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.2.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + typical@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" @@ -6998,6 +7931,17 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vite-node@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.3.0.tgz#618cc26d83545cfbd4e2c3014678257496d2bd00" + integrity sha512-D/oiDVBw75XMnjAXne/4feCkCEwcbr2SU1bjAhCcfI5Bq3VoOHji8/wCPAfUkDIeohJ5nSZ39fNxM3dNZ6OBOA== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^5.0.0" + vite-plugin-pwa@0.14.4: version "0.14.4" resolved "https://registry.yarnpkg.com/vite-plugin-pwa/-/vite-plugin-pwa-0.14.4.tgz#d83fae9e85ab4a082e11ab475b3ec124bfe49084" @@ -7033,6 +7977,17 @@ vite@4.3.5: optionalDependencies: fsevents "~2.3.2" +vite@^5.0.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.3.tgz#dd072653a80225702265550a4700561740dfde55" + integrity sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.35" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + vitest@0.25.8: version "0.25.8" resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.25.8.tgz#9b57e0b41cd6f2d2d92aa94a39b35c36f715f8cc" @@ -7053,6 +8008,32 @@ vitest@0.25.8: tinyspy "^1.0.2" vite "^3.0.0 || ^4.0.0" +vitest@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.3.0.tgz#3b04e2a8270b2db0929829cb8f03df7bffd1b5a2" + integrity sha512-V9qb276J1jjSx9xb75T2VoYXdO1UKi+qfflY7V7w93jzX7oA/+RtYE6TcifxksxsZvygSSMwu2Uw6di7yqDMwg== + dependencies: + "@vitest/expect" "1.3.0" + "@vitest/runner" "1.3.0" + "@vitest/snapshot" "1.3.0" + "@vitest/spy" "1.3.0" + "@vitest/utils" "1.3.0" + acorn-walk "^8.3.2" + chai "^4.3.10" + debug "^4.3.4" + execa "^8.0.1" + local-pkg "^0.5.0" + magic-string "^0.30.5" + pathe "^1.1.1" + picocolors "^1.0.0" + std-env "^3.5.0" + strip-literal "^2.0.0" + tinybench "^2.5.1" + tinypool "^0.8.2" + vite "^5.0.0" + vite-node "1.3.0" + why-is-node-running "^2.2.2" + vue-demi@>=0.14.5: version "0.14.6" resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" @@ -7229,6 +8210,11 @@ w3c-xmlserializer@^5.0.0: dependencies: xml-name-validator "^5.0.0" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -7269,6 +8255,14 @@ whatwg-url@^14.0.0: tr46 "^5.0.0" webidl-conversions "^7.0.0" +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + whatwg-url@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" @@ -7307,6 +8301,14 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +why-is-node-running@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" + integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + workbox-background-sync@6.6.1: version "6.6.1" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" @@ -7593,7 +8595,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.5.1: +yargs@^17.0.1, yargs@^17.5.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -7618,3 +8620,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==