A decentralized music tracking and discovery platform built on AT Protocol 🎵 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz
98
fork

Configure Feed

Select the types of activity you want to include in your feed.

Refactor TypeScript code to use single quotes for string literals and improve type imports

- Updated string literals from double quotes to single quotes in various files for consistency.
- Changed import statements to use `import type` for type-only imports in multiple modules.
- Removed unnecessary initializations of variables to `undefined` where applicable.
- Enhanced type definitions and interfaces for better clarity and maintainability.
- Ensured that all generated code comments remain intact and unchanged.

+4737 -4703
+9
apps/api/lexicons/scrobble/defs.json
··· 13 13 "type": "string", 14 14 "description": "The handle of the user who created the scrobble." 15 15 }, 16 + "userDisplayName": { 17 + "type": "string", 18 + "description": "The display name of the user who created the scrobble." 19 + }, 20 + "userAvatar": { 21 + "type": "string", 22 + "description": "The avatar URL of the user who created the scrobble.", 23 + "format": "uri" 24 + }, 16 25 "title": { 17 26 "type": "string", 18 27 "description": "The title of the scrobble."
+9
apps/api/pkl/defs/scrobble/defs.pkl
··· 14 14 type = "string" 15 15 description = "The handle of the user who created the scrobble." 16 16 } 17 + ["userDisplayName"] = new StringType { 18 + type = "string" 19 + description = "The display name of the user who created the scrobble." 20 + } 21 + ["userAvatar"] = new StringType { 22 + type = "string" 23 + description = "The avatar URL of the user who created the scrobble." 24 + format = "uri" 25 + } 17 26 ["title"] = new StringType { 18 27 type = "string" 19 28 description = "The title of the scrobble."
+337 -337
apps/api/src/lexicon/index.ts
··· 3 3 */ 4 4 import { 5 5 createServer as createXrpcServer, 6 - Server as XrpcServer, 7 - Options as XrpcOptions, 8 - AuthVerifier, 9 - StreamAuthVerifier, 10 - } from "@atproto/xrpc-server"; 11 - import { schemas } from "./lexicons"; 12 - import * as AppRockskyActorGetActorAlbums from "./types/app/rocksky/actor/getActorAlbums"; 13 - import * as AppRockskyActorGetActorArtists from "./types/app/rocksky/actor/getActorArtists"; 14 - import * as AppRockskyActorGetActorLovedSongs from "./types/app/rocksky/actor/getActorLovedSongs"; 15 - import * as AppRockskyActorGetActorPlaylists from "./types/app/rocksky/actor/getActorPlaylists"; 16 - import * as AppRockskyActorGetActorScrobbles from "./types/app/rocksky/actor/getActorScrobbles"; 17 - import * as AppRockskyActorGetActorSongs from "./types/app/rocksky/actor/getActorSongs"; 18 - import * as AppRockskyActorGetProfile from "./types/app/rocksky/actor/getProfile"; 19 - import * as AppRockskyAlbumGetAlbum from "./types/app/rocksky/album/getAlbum"; 20 - import * as AppRockskyAlbumGetAlbums from "./types/app/rocksky/album/getAlbums"; 21 - import * as AppRockskyAlbumGetAlbumTracks from "./types/app/rocksky/album/getAlbumTracks"; 22 - import * as AppRockskyApikeyCreateApikey from "./types/app/rocksky/apikey/createApikey"; 23 - import * as AppRockskyApikeyGetApikeys from "./types/app/rocksky/apikey/getApikeys"; 24 - import * as AppRockskyApikeyRemoveApikey from "./types/app/rocksky/apikey/removeApikey"; 25 - import * as AppRockskyApikeyUpdateApikey from "./types/app/rocksky/apikey/updateApikey"; 26 - import * as AppRockskyArtistGetArtistAlbums from "./types/app/rocksky/artist/getArtistAlbums"; 27 - import * as AppRockskyArtistGetArtist from "./types/app/rocksky/artist/getArtist"; 28 - import * as AppRockskyArtistGetArtists from "./types/app/rocksky/artist/getArtists"; 29 - import * as AppRockskyArtistGetArtistTracks from "./types/app/rocksky/artist/getArtistTracks"; 30 - import * as AppRockskyChartsGetScrobblesChart from "./types/app/rocksky/charts/getScrobblesChart"; 31 - import * as AppRockskyDropboxDownloadFile from "./types/app/rocksky/dropbox/downloadFile"; 32 - import * as AppRockskyDropboxGetFiles from "./types/app/rocksky/dropbox/getFiles"; 33 - import * as AppRockskyDropboxGetMetadata from "./types/app/rocksky/dropbox/getMetadata"; 34 - import * as AppRockskyDropboxGetTemporaryLink from "./types/app/rocksky/dropbox/getTemporaryLink"; 35 - import * as AppRockskyFeedGetNowPlayings from "./types/app/rocksky/feed/getNowPlayings"; 36 - import * as AppRockskyFeedSearch from "./types/app/rocksky/feed/search"; 37 - import * as AppRockskyGoogledriveDownloadFile from "./types/app/rocksky/googledrive/downloadFile"; 38 - import * as AppRockskyGoogledriveGetFile from "./types/app/rocksky/googledrive/getFile"; 39 - import * as AppRockskyGoogledriveGetFiles from "./types/app/rocksky/googledrive/getFiles"; 40 - import * as AppRockskyLikeDislikeShout from "./types/app/rocksky/like/dislikeShout"; 41 - import * as AppRockskyLikeDislikeSong from "./types/app/rocksky/like/dislikeSong"; 42 - import * as AppRockskyLikeLikeShout from "./types/app/rocksky/like/likeShout"; 43 - import * as AppRockskyLikeLikeSong from "./types/app/rocksky/like/likeSong"; 44 - import * as AppRockskyPlayerAddDirectoryToQueue from "./types/app/rocksky/player/addDirectoryToQueue"; 45 - import * as AppRockskyPlayerAddItemsToQueue from "./types/app/rocksky/player/addItemsToQueue"; 46 - import * as AppRockskyPlayerGetCurrentlyPlaying from "./types/app/rocksky/player/getCurrentlyPlaying"; 47 - import * as AppRockskyPlayerGetPlaybackQueue from "./types/app/rocksky/player/getPlaybackQueue"; 48 - import * as AppRockskyPlayerNext from "./types/app/rocksky/player/next"; 49 - import * as AppRockskyPlayerPause from "./types/app/rocksky/player/pause"; 50 - import * as AppRockskyPlayerPlayDirectory from "./types/app/rocksky/player/playDirectory"; 51 - import * as AppRockskyPlayerPlayFile from "./types/app/rocksky/player/playFile"; 52 - import * as AppRockskyPlayerPlay from "./types/app/rocksky/player/play"; 53 - import * as AppRockskyPlayerPrevious from "./types/app/rocksky/player/previous"; 54 - import * as AppRockskyPlayerSeek from "./types/app/rocksky/player/seek"; 55 - import * as AppRockskyPlaylistCreatePlaylist from "./types/app/rocksky/playlist/createPlaylist"; 56 - import * as AppRockskyPlaylistGetPlaylist from "./types/app/rocksky/playlist/getPlaylist"; 57 - import * as AppRockskyPlaylistGetPlaylists from "./types/app/rocksky/playlist/getPlaylists"; 58 - import * as AppRockskyPlaylistInsertDirectory from "./types/app/rocksky/playlist/insertDirectory"; 59 - import * as AppRockskyPlaylistInsertFiles from "./types/app/rocksky/playlist/insertFiles"; 60 - import * as AppRockskyPlaylistRemovePlaylist from "./types/app/rocksky/playlist/removePlaylist"; 61 - import * as AppRockskyPlaylistRemoveTrack from "./types/app/rocksky/playlist/removeTrack"; 62 - import * as AppRockskyPlaylistStartPlaylist from "./types/app/rocksky/playlist/startPlaylist"; 63 - import * as AppRockskyScrobbleCreateScrobble from "./types/app/rocksky/scrobble/createScrobble"; 64 - import * as AppRockskyScrobbleGetScrobble from "./types/app/rocksky/scrobble/getScrobble"; 65 - import * as AppRockskyScrobbleGetScrobbles from "./types/app/rocksky/scrobble/getScrobbles"; 66 - import * as AppRockskyShoutCreateShout from "./types/app/rocksky/shout/createShout"; 67 - import * as AppRockskyShoutGetAlbumShouts from "./types/app/rocksky/shout/getAlbumShouts"; 68 - import * as AppRockskyShoutGetArtistShouts from "./types/app/rocksky/shout/getArtistShouts"; 69 - import * as AppRockskyShoutGetProfileShouts from "./types/app/rocksky/shout/getProfileShouts"; 70 - import * as AppRockskyShoutGetShoutReplies from "./types/app/rocksky/shout/getShoutReplies"; 71 - import * as AppRockskyShoutGetTrackShouts from "./types/app/rocksky/shout/getTrackShouts"; 72 - import * as AppRockskyShoutRemoveShout from "./types/app/rocksky/shout/removeShout"; 73 - import * as AppRockskyShoutReplyShout from "./types/app/rocksky/shout/replyShout"; 74 - import * as AppRockskyShoutReportShout from "./types/app/rocksky/shout/reportShout"; 75 - import * as AppRockskySongCreateSong from "./types/app/rocksky/song/createSong"; 76 - import * as AppRockskySongGetSong from "./types/app/rocksky/song/getSong"; 77 - import * as AppRockskySongGetSongs from "./types/app/rocksky/song/getSongs"; 78 - import * as AppRockskySpotifyGetCurrentlyPlaying from "./types/app/rocksky/spotify/getCurrentlyPlaying"; 79 - import * as AppRockskySpotifyNext from "./types/app/rocksky/spotify/next"; 80 - import * as AppRockskySpotifyPause from "./types/app/rocksky/spotify/pause"; 81 - import * as AppRockskySpotifyPlay from "./types/app/rocksky/spotify/play"; 82 - import * as AppRockskySpotifyPrevious from "./types/app/rocksky/spotify/previous"; 83 - import * as AppRockskySpotifySeek from "./types/app/rocksky/spotify/seek"; 84 - import * as AppRockskyStatsGetStats from "./types/app/rocksky/stats/getStats"; 6 + type Server as XrpcServer, 7 + type Options as XrpcOptions, 8 + type AuthVerifier, 9 + type StreamAuthVerifier, 10 + } from '@atproto/xrpc-server' 11 + import { schemas } from './lexicons' 12 + import type * as AppRockskyActorGetActorAlbums from './types/app/rocksky/actor/getActorAlbums' 13 + import type * as AppRockskyActorGetActorArtists from './types/app/rocksky/actor/getActorArtists' 14 + import type * as AppRockskyActorGetActorLovedSongs from './types/app/rocksky/actor/getActorLovedSongs' 15 + import type * as AppRockskyActorGetActorPlaylists from './types/app/rocksky/actor/getActorPlaylists' 16 + import type * as AppRockskyActorGetActorScrobbles from './types/app/rocksky/actor/getActorScrobbles' 17 + import type * as AppRockskyActorGetActorSongs from './types/app/rocksky/actor/getActorSongs' 18 + import type * as AppRockskyActorGetProfile from './types/app/rocksky/actor/getProfile' 19 + import type * as AppRockskyAlbumGetAlbum from './types/app/rocksky/album/getAlbum' 20 + import type * as AppRockskyAlbumGetAlbums from './types/app/rocksky/album/getAlbums' 21 + import type * as AppRockskyAlbumGetAlbumTracks from './types/app/rocksky/album/getAlbumTracks' 22 + import type * as AppRockskyApikeyCreateApikey from './types/app/rocksky/apikey/createApikey' 23 + import type * as AppRockskyApikeyGetApikeys from './types/app/rocksky/apikey/getApikeys' 24 + import type * as AppRockskyApikeyRemoveApikey from './types/app/rocksky/apikey/removeApikey' 25 + import type * as AppRockskyApikeyUpdateApikey from './types/app/rocksky/apikey/updateApikey' 26 + import type * as AppRockskyArtistGetArtistAlbums from './types/app/rocksky/artist/getArtistAlbums' 27 + import type * as AppRockskyArtistGetArtist from './types/app/rocksky/artist/getArtist' 28 + import type * as AppRockskyArtistGetArtists from './types/app/rocksky/artist/getArtists' 29 + import type * as AppRockskyArtistGetArtistTracks from './types/app/rocksky/artist/getArtistTracks' 30 + import type * as AppRockskyChartsGetScrobblesChart from './types/app/rocksky/charts/getScrobblesChart' 31 + import type * as AppRockskyDropboxDownloadFile from './types/app/rocksky/dropbox/downloadFile' 32 + import type * as AppRockskyDropboxGetFiles from './types/app/rocksky/dropbox/getFiles' 33 + import type * as AppRockskyDropboxGetMetadata from './types/app/rocksky/dropbox/getMetadata' 34 + import type * as AppRockskyDropboxGetTemporaryLink from './types/app/rocksky/dropbox/getTemporaryLink' 35 + import type * as AppRockskyFeedGetNowPlayings from './types/app/rocksky/feed/getNowPlayings' 36 + import type * as AppRockskyFeedSearch from './types/app/rocksky/feed/search' 37 + import type * as AppRockskyGoogledriveDownloadFile from './types/app/rocksky/googledrive/downloadFile' 38 + import type * as AppRockskyGoogledriveGetFile from './types/app/rocksky/googledrive/getFile' 39 + import type * as AppRockskyGoogledriveGetFiles from './types/app/rocksky/googledrive/getFiles' 40 + import type * as AppRockskyLikeDislikeShout from './types/app/rocksky/like/dislikeShout' 41 + import type * as AppRockskyLikeDislikeSong from './types/app/rocksky/like/dislikeSong' 42 + import type * as AppRockskyLikeLikeShout from './types/app/rocksky/like/likeShout' 43 + import type * as AppRockskyLikeLikeSong from './types/app/rocksky/like/likeSong' 44 + import type * as AppRockskyPlayerAddDirectoryToQueue from './types/app/rocksky/player/addDirectoryToQueue' 45 + import type * as AppRockskyPlayerAddItemsToQueue from './types/app/rocksky/player/addItemsToQueue' 46 + import type * as AppRockskyPlayerGetCurrentlyPlaying from './types/app/rocksky/player/getCurrentlyPlaying' 47 + import type * as AppRockskyPlayerGetPlaybackQueue from './types/app/rocksky/player/getPlaybackQueue' 48 + import type * as AppRockskyPlayerNext from './types/app/rocksky/player/next' 49 + import type * as AppRockskyPlayerPause from './types/app/rocksky/player/pause' 50 + import type * as AppRockskyPlayerPlayDirectory from './types/app/rocksky/player/playDirectory' 51 + import type * as AppRockskyPlayerPlayFile from './types/app/rocksky/player/playFile' 52 + import type * as AppRockskyPlayerPlay from './types/app/rocksky/player/play' 53 + import type * as AppRockskyPlayerPrevious from './types/app/rocksky/player/previous' 54 + import type * as AppRockskyPlayerSeek from './types/app/rocksky/player/seek' 55 + import type * as AppRockskyPlaylistCreatePlaylist from './types/app/rocksky/playlist/createPlaylist' 56 + import type * as AppRockskyPlaylistGetPlaylist from './types/app/rocksky/playlist/getPlaylist' 57 + import type * as AppRockskyPlaylistGetPlaylists from './types/app/rocksky/playlist/getPlaylists' 58 + import type * as AppRockskyPlaylistInsertDirectory from './types/app/rocksky/playlist/insertDirectory' 59 + import type * as AppRockskyPlaylistInsertFiles from './types/app/rocksky/playlist/insertFiles' 60 + import type * as AppRockskyPlaylistRemovePlaylist from './types/app/rocksky/playlist/removePlaylist' 61 + import type * as AppRockskyPlaylistRemoveTrack from './types/app/rocksky/playlist/removeTrack' 62 + import type * as AppRockskyPlaylistStartPlaylist from './types/app/rocksky/playlist/startPlaylist' 63 + import type * as AppRockskyScrobbleCreateScrobble from './types/app/rocksky/scrobble/createScrobble' 64 + import type * as AppRockskyScrobbleGetScrobble from './types/app/rocksky/scrobble/getScrobble' 65 + import type * as AppRockskyScrobbleGetScrobbles from './types/app/rocksky/scrobble/getScrobbles' 66 + import type * as AppRockskyShoutCreateShout from './types/app/rocksky/shout/createShout' 67 + import type * as AppRockskyShoutGetAlbumShouts from './types/app/rocksky/shout/getAlbumShouts' 68 + import type * as AppRockskyShoutGetArtistShouts from './types/app/rocksky/shout/getArtistShouts' 69 + import type * as AppRockskyShoutGetProfileShouts from './types/app/rocksky/shout/getProfileShouts' 70 + import type * as AppRockskyShoutGetShoutReplies from './types/app/rocksky/shout/getShoutReplies' 71 + import type * as AppRockskyShoutGetTrackShouts from './types/app/rocksky/shout/getTrackShouts' 72 + import type * as AppRockskyShoutRemoveShout from './types/app/rocksky/shout/removeShout' 73 + import type * as AppRockskyShoutReplyShout from './types/app/rocksky/shout/replyShout' 74 + import type * as AppRockskyShoutReportShout from './types/app/rocksky/shout/reportShout' 75 + import type * as AppRockskySongCreateSong from './types/app/rocksky/song/createSong' 76 + import type * as AppRockskySongGetSong from './types/app/rocksky/song/getSong' 77 + import type * as AppRockskySongGetSongs from './types/app/rocksky/song/getSongs' 78 + import type * as AppRockskySpotifyGetCurrentlyPlaying from './types/app/rocksky/spotify/getCurrentlyPlaying' 79 + import type * as AppRockskySpotifyNext from './types/app/rocksky/spotify/next' 80 + import type * as AppRockskySpotifyPause from './types/app/rocksky/spotify/pause' 81 + import type * as AppRockskySpotifyPlay from './types/app/rocksky/spotify/play' 82 + import type * as AppRockskySpotifyPrevious from './types/app/rocksky/spotify/previous' 83 + import type * as AppRockskySpotifySeek from './types/app/rocksky/spotify/seek' 84 + import type * as AppRockskyStatsGetStats from './types/app/rocksky/stats/getStats' 85 85 86 86 export function createServer(options?: XrpcOptions): Server { 87 - return new Server(options); 87 + return new Server(options) 88 88 } 89 89 90 90 export class Server { 91 - xrpc: XrpcServer; 92 - app: AppNS; 93 - com: ComNS; 91 + xrpc: XrpcServer 92 + app: AppNS 93 + com: ComNS 94 94 95 95 constructor(options?: XrpcOptions) { 96 - this.xrpc = createXrpcServer(schemas, options); 97 - this.app = new AppNS(this); 98 - this.com = new ComNS(this); 96 + this.xrpc = createXrpcServer(schemas, options) 97 + this.app = new AppNS(this) 98 + this.com = new ComNS(this) 99 99 } 100 100 } 101 101 102 102 export class AppNS { 103 - _server: Server; 104 - rocksky: AppRockskyNS; 105 - bsky: AppBskyNS; 103 + _server: Server 104 + rocksky: AppRockskyNS 105 + bsky: AppBskyNS 106 106 107 107 constructor(server: Server) { 108 - this._server = server; 109 - this.rocksky = new AppRockskyNS(server); 110 - this.bsky = new AppBskyNS(server); 108 + this._server = server 109 + this.rocksky = new AppRockskyNS(server) 110 + this.bsky = new AppBskyNS(server) 111 111 } 112 112 } 113 113 114 114 export class AppRockskyNS { 115 - _server: Server; 116 - actor: AppRockskyActorNS; 117 - album: AppRockskyAlbumNS; 118 - apikey: AppRockskyApikeyNS; 119 - artist: AppRockskyArtistNS; 120 - charts: AppRockskyChartsNS; 121 - dropbox: AppRockskyDropboxNS; 122 - feed: AppRockskyFeedNS; 123 - googledrive: AppRockskyGoogledriveNS; 124 - like: AppRockskyLikeNS; 125 - player: AppRockskyPlayerNS; 126 - playlist: AppRockskyPlaylistNS; 127 - scrobble: AppRockskyScrobbleNS; 128 - shout: AppRockskyShoutNS; 129 - song: AppRockskySongNS; 130 - spotify: AppRockskySpotifyNS; 131 - stats: AppRockskyStatsNS; 115 + _server: Server 116 + actor: AppRockskyActorNS 117 + album: AppRockskyAlbumNS 118 + apikey: AppRockskyApikeyNS 119 + artist: AppRockskyArtistNS 120 + charts: AppRockskyChartsNS 121 + dropbox: AppRockskyDropboxNS 122 + feed: AppRockskyFeedNS 123 + googledrive: AppRockskyGoogledriveNS 124 + like: AppRockskyLikeNS 125 + player: AppRockskyPlayerNS 126 + playlist: AppRockskyPlaylistNS 127 + scrobble: AppRockskyScrobbleNS 128 + shout: AppRockskyShoutNS 129 + song: AppRockskySongNS 130 + spotify: AppRockskySpotifyNS 131 + stats: AppRockskyStatsNS 132 132 133 133 constructor(server: Server) { 134 - this._server = server; 135 - this.actor = new AppRockskyActorNS(server); 136 - this.album = new AppRockskyAlbumNS(server); 137 - this.apikey = new AppRockskyApikeyNS(server); 138 - this.artist = new AppRockskyArtistNS(server); 139 - this.charts = new AppRockskyChartsNS(server); 140 - this.dropbox = new AppRockskyDropboxNS(server); 141 - this.feed = new AppRockskyFeedNS(server); 142 - this.googledrive = new AppRockskyGoogledriveNS(server); 143 - this.like = new AppRockskyLikeNS(server); 144 - this.player = new AppRockskyPlayerNS(server); 145 - this.playlist = new AppRockskyPlaylistNS(server); 146 - this.scrobble = new AppRockskyScrobbleNS(server); 147 - this.shout = new AppRockskyShoutNS(server); 148 - this.song = new AppRockskySongNS(server); 149 - this.spotify = new AppRockskySpotifyNS(server); 150 - this.stats = new AppRockskyStatsNS(server); 134 + this._server = server 135 + this.actor = new AppRockskyActorNS(server) 136 + this.album = new AppRockskyAlbumNS(server) 137 + this.apikey = new AppRockskyApikeyNS(server) 138 + this.artist = new AppRockskyArtistNS(server) 139 + this.charts = new AppRockskyChartsNS(server) 140 + this.dropbox = new AppRockskyDropboxNS(server) 141 + this.feed = new AppRockskyFeedNS(server) 142 + this.googledrive = new AppRockskyGoogledriveNS(server) 143 + this.like = new AppRockskyLikeNS(server) 144 + this.player = new AppRockskyPlayerNS(server) 145 + this.playlist = new AppRockskyPlaylistNS(server) 146 + this.scrobble = new AppRockskyScrobbleNS(server) 147 + this.shout = new AppRockskyShoutNS(server) 148 + this.song = new AppRockskySongNS(server) 149 + this.spotify = new AppRockskySpotifyNS(server) 150 + this.stats = new AppRockskyStatsNS(server) 151 151 } 152 152 } 153 153 154 154 export class AppRockskyActorNS { 155 - _server: Server; 155 + _server: Server 156 156 157 157 constructor(server: Server) { 158 - this._server = server; 158 + this._server = server 159 159 } 160 160 161 161 getActorAlbums<AV extends AuthVerifier>( ··· 165 165 AppRockskyActorGetActorAlbums.HandlerReqCtx<ExtractAuth<AV>> 166 166 >, 167 167 ) { 168 - const nsid = "app.rocksky.actor.getActorAlbums"; // @ts-ignore 169 - return this._server.xrpc.method(nsid, cfg); 168 + const nsid = 'app.rocksky.actor.getActorAlbums' // @ts-ignore 169 + return this._server.xrpc.method(nsid, cfg) 170 170 } 171 171 172 172 getActorArtists<AV extends AuthVerifier>( ··· 176 176 AppRockskyActorGetActorArtists.HandlerReqCtx<ExtractAuth<AV>> 177 177 >, 178 178 ) { 179 - const nsid = "app.rocksky.actor.getActorArtists"; // @ts-ignore 180 - return this._server.xrpc.method(nsid, cfg); 179 + const nsid = 'app.rocksky.actor.getActorArtists' // @ts-ignore 180 + return this._server.xrpc.method(nsid, cfg) 181 181 } 182 182 183 183 getActorLovedSongs<AV extends AuthVerifier>( ··· 187 187 AppRockskyActorGetActorLovedSongs.HandlerReqCtx<ExtractAuth<AV>> 188 188 >, 189 189 ) { 190 - const nsid = "app.rocksky.actor.getActorLovedSongs"; // @ts-ignore 191 - return this._server.xrpc.method(nsid, cfg); 190 + const nsid = 'app.rocksky.actor.getActorLovedSongs' // @ts-ignore 191 + return this._server.xrpc.method(nsid, cfg) 192 192 } 193 193 194 194 getActorPlaylists<AV extends AuthVerifier>( ··· 198 198 AppRockskyActorGetActorPlaylists.HandlerReqCtx<ExtractAuth<AV>> 199 199 >, 200 200 ) { 201 - const nsid = "app.rocksky.actor.getActorPlaylists"; // @ts-ignore 202 - return this._server.xrpc.method(nsid, cfg); 201 + const nsid = 'app.rocksky.actor.getActorPlaylists' // @ts-ignore 202 + return this._server.xrpc.method(nsid, cfg) 203 203 } 204 204 205 205 getActorScrobbles<AV extends AuthVerifier>( ··· 209 209 AppRockskyActorGetActorScrobbles.HandlerReqCtx<ExtractAuth<AV>> 210 210 >, 211 211 ) { 212 - const nsid = "app.rocksky.actor.getActorScrobbles"; // @ts-ignore 213 - return this._server.xrpc.method(nsid, cfg); 212 + const nsid = 'app.rocksky.actor.getActorScrobbles' // @ts-ignore 213 + return this._server.xrpc.method(nsid, cfg) 214 214 } 215 215 216 216 getActorSongs<AV extends AuthVerifier>( ··· 220 220 AppRockskyActorGetActorSongs.HandlerReqCtx<ExtractAuth<AV>> 221 221 >, 222 222 ) { 223 - const nsid = "app.rocksky.actor.getActorSongs"; // @ts-ignore 224 - return this._server.xrpc.method(nsid, cfg); 223 + const nsid = 'app.rocksky.actor.getActorSongs' // @ts-ignore 224 + return this._server.xrpc.method(nsid, cfg) 225 225 } 226 226 227 227 getProfile<AV extends AuthVerifier>( ··· 231 231 AppRockskyActorGetProfile.HandlerReqCtx<ExtractAuth<AV>> 232 232 >, 233 233 ) { 234 - const nsid = "app.rocksky.actor.getProfile"; // @ts-ignore 235 - return this._server.xrpc.method(nsid, cfg); 234 + const nsid = 'app.rocksky.actor.getProfile' // @ts-ignore 235 + return this._server.xrpc.method(nsid, cfg) 236 236 } 237 237 } 238 238 239 239 export class AppRockskyAlbumNS { 240 - _server: Server; 240 + _server: Server 241 241 242 242 constructor(server: Server) { 243 - this._server = server; 243 + this._server = server 244 244 } 245 245 246 246 getAlbum<AV extends AuthVerifier>( ··· 250 250 AppRockskyAlbumGetAlbum.HandlerReqCtx<ExtractAuth<AV>> 251 251 >, 252 252 ) { 253 - const nsid = "app.rocksky.album.getAlbum"; // @ts-ignore 254 - return this._server.xrpc.method(nsid, cfg); 253 + const nsid = 'app.rocksky.album.getAlbum' // @ts-ignore 254 + return this._server.xrpc.method(nsid, cfg) 255 255 } 256 256 257 257 getAlbums<AV extends AuthVerifier>( ··· 261 261 AppRockskyAlbumGetAlbums.HandlerReqCtx<ExtractAuth<AV>> 262 262 >, 263 263 ) { 264 - const nsid = "app.rocksky.album.getAlbums"; // @ts-ignore 265 - return this._server.xrpc.method(nsid, cfg); 264 + const nsid = 'app.rocksky.album.getAlbums' // @ts-ignore 265 + return this._server.xrpc.method(nsid, cfg) 266 266 } 267 267 268 268 getAlbumTracks<AV extends AuthVerifier>( ··· 272 272 AppRockskyAlbumGetAlbumTracks.HandlerReqCtx<ExtractAuth<AV>> 273 273 >, 274 274 ) { 275 - const nsid = "app.rocksky.album.getAlbumTracks"; // @ts-ignore 276 - return this._server.xrpc.method(nsid, cfg); 275 + const nsid = 'app.rocksky.album.getAlbumTracks' // @ts-ignore 276 + return this._server.xrpc.method(nsid, cfg) 277 277 } 278 278 } 279 279 280 280 export class AppRockskyApikeyNS { 281 - _server: Server; 281 + _server: Server 282 282 283 283 constructor(server: Server) { 284 - this._server = server; 284 + this._server = server 285 285 } 286 286 287 287 createApikey<AV extends AuthVerifier>( ··· 291 291 AppRockskyApikeyCreateApikey.HandlerReqCtx<ExtractAuth<AV>> 292 292 >, 293 293 ) { 294 - const nsid = "app.rocksky.apikey.createApikey"; // @ts-ignore 295 - return this._server.xrpc.method(nsid, cfg); 294 + const nsid = 'app.rocksky.apikey.createApikey' // @ts-ignore 295 + return this._server.xrpc.method(nsid, cfg) 296 296 } 297 297 298 298 getApikeys<AV extends AuthVerifier>( ··· 302 302 AppRockskyApikeyGetApikeys.HandlerReqCtx<ExtractAuth<AV>> 303 303 >, 304 304 ) { 305 - const nsid = "app.rocksky.apikey.getApikeys"; // @ts-ignore 306 - return this._server.xrpc.method(nsid, cfg); 305 + const nsid = 'app.rocksky.apikey.getApikeys' // @ts-ignore 306 + return this._server.xrpc.method(nsid, cfg) 307 307 } 308 308 309 309 removeApikey<AV extends AuthVerifier>( ··· 313 313 AppRockskyApikeyRemoveApikey.HandlerReqCtx<ExtractAuth<AV>> 314 314 >, 315 315 ) { 316 - const nsid = "app.rocksky.apikey.removeApikey"; // @ts-ignore 317 - return this._server.xrpc.method(nsid, cfg); 316 + const nsid = 'app.rocksky.apikey.removeApikey' // @ts-ignore 317 + return this._server.xrpc.method(nsid, cfg) 318 318 } 319 319 320 320 updateApikey<AV extends AuthVerifier>( ··· 324 324 AppRockskyApikeyUpdateApikey.HandlerReqCtx<ExtractAuth<AV>> 325 325 >, 326 326 ) { 327 - const nsid = "app.rocksky.apikey.updateApikey"; // @ts-ignore 328 - return this._server.xrpc.method(nsid, cfg); 327 + const nsid = 'app.rocksky.apikey.updateApikey' // @ts-ignore 328 + return this._server.xrpc.method(nsid, cfg) 329 329 } 330 330 } 331 331 332 332 export class AppRockskyArtistNS { 333 - _server: Server; 333 + _server: Server 334 334 335 335 constructor(server: Server) { 336 - this._server = server; 336 + this._server = server 337 337 } 338 338 339 339 getArtistAlbums<AV extends AuthVerifier>( ··· 343 343 AppRockskyArtistGetArtistAlbums.HandlerReqCtx<ExtractAuth<AV>> 344 344 >, 345 345 ) { 346 - const nsid = "app.rocksky.artist.getArtistAlbums"; // @ts-ignore 347 - return this._server.xrpc.method(nsid, cfg); 346 + const nsid = 'app.rocksky.artist.getArtistAlbums' // @ts-ignore 347 + return this._server.xrpc.method(nsid, cfg) 348 348 } 349 349 350 350 getArtist<AV extends AuthVerifier>( ··· 354 354 AppRockskyArtistGetArtist.HandlerReqCtx<ExtractAuth<AV>> 355 355 >, 356 356 ) { 357 - const nsid = "app.rocksky.artist.getArtist"; // @ts-ignore 358 - return this._server.xrpc.method(nsid, cfg); 357 + const nsid = 'app.rocksky.artist.getArtist' // @ts-ignore 358 + return this._server.xrpc.method(nsid, cfg) 359 359 } 360 360 361 361 getArtists<AV extends AuthVerifier>( ··· 365 365 AppRockskyArtistGetArtists.HandlerReqCtx<ExtractAuth<AV>> 366 366 >, 367 367 ) { 368 - const nsid = "app.rocksky.artist.getArtists"; // @ts-ignore 369 - return this._server.xrpc.method(nsid, cfg); 368 + const nsid = 'app.rocksky.artist.getArtists' // @ts-ignore 369 + return this._server.xrpc.method(nsid, cfg) 370 370 } 371 371 372 372 getArtistTracks<AV extends AuthVerifier>( ··· 376 376 AppRockskyArtistGetArtistTracks.HandlerReqCtx<ExtractAuth<AV>> 377 377 >, 378 378 ) { 379 - const nsid = "app.rocksky.artist.getArtistTracks"; // @ts-ignore 380 - return this._server.xrpc.method(nsid, cfg); 379 + const nsid = 'app.rocksky.artist.getArtistTracks' // @ts-ignore 380 + return this._server.xrpc.method(nsid, cfg) 381 381 } 382 382 } 383 383 384 384 export class AppRockskyChartsNS { 385 - _server: Server; 385 + _server: Server 386 386 387 387 constructor(server: Server) { 388 - this._server = server; 388 + this._server = server 389 389 } 390 390 391 391 getScrobblesChart<AV extends AuthVerifier>( ··· 395 395 AppRockskyChartsGetScrobblesChart.HandlerReqCtx<ExtractAuth<AV>> 396 396 >, 397 397 ) { 398 - const nsid = "app.rocksky.charts.getScrobblesChart"; // @ts-ignore 399 - return this._server.xrpc.method(nsid, cfg); 398 + const nsid = 'app.rocksky.charts.getScrobblesChart' // @ts-ignore 399 + return this._server.xrpc.method(nsid, cfg) 400 400 } 401 401 } 402 402 403 403 export class AppRockskyDropboxNS { 404 - _server: Server; 404 + _server: Server 405 405 406 406 constructor(server: Server) { 407 - this._server = server; 407 + this._server = server 408 408 } 409 409 410 410 downloadFile<AV extends AuthVerifier>( ··· 414 414 AppRockskyDropboxDownloadFile.HandlerReqCtx<ExtractAuth<AV>> 415 415 >, 416 416 ) { 417 - const nsid = "app.rocksky.dropbox.downloadFile"; // @ts-ignore 418 - return this._server.xrpc.method(nsid, cfg); 417 + const nsid = 'app.rocksky.dropbox.downloadFile' // @ts-ignore 418 + return this._server.xrpc.method(nsid, cfg) 419 419 } 420 420 421 421 getFiles<AV extends AuthVerifier>( ··· 425 425 AppRockskyDropboxGetFiles.HandlerReqCtx<ExtractAuth<AV>> 426 426 >, 427 427 ) { 428 - const nsid = "app.rocksky.dropbox.getFiles"; // @ts-ignore 429 - return this._server.xrpc.method(nsid, cfg); 428 + const nsid = 'app.rocksky.dropbox.getFiles' // @ts-ignore 429 + return this._server.xrpc.method(nsid, cfg) 430 430 } 431 431 432 432 getMetadata<AV extends AuthVerifier>( ··· 436 436 AppRockskyDropboxGetMetadata.HandlerReqCtx<ExtractAuth<AV>> 437 437 >, 438 438 ) { 439 - const nsid = "app.rocksky.dropbox.getMetadata"; // @ts-ignore 440 - return this._server.xrpc.method(nsid, cfg); 439 + const nsid = 'app.rocksky.dropbox.getMetadata' // @ts-ignore 440 + return this._server.xrpc.method(nsid, cfg) 441 441 } 442 442 443 443 getTemporaryLink<AV extends AuthVerifier>( ··· 447 447 AppRockskyDropboxGetTemporaryLink.HandlerReqCtx<ExtractAuth<AV>> 448 448 >, 449 449 ) { 450 - const nsid = "app.rocksky.dropbox.getTemporaryLink"; // @ts-ignore 451 - return this._server.xrpc.method(nsid, cfg); 450 + const nsid = 'app.rocksky.dropbox.getTemporaryLink' // @ts-ignore 451 + return this._server.xrpc.method(nsid, cfg) 452 452 } 453 453 } 454 454 455 455 export class AppRockskyFeedNS { 456 - _server: Server; 456 + _server: Server 457 457 458 458 constructor(server: Server) { 459 - this._server = server; 459 + this._server = server 460 460 } 461 461 462 462 getNowPlayings<AV extends AuthVerifier>( ··· 466 466 AppRockskyFeedGetNowPlayings.HandlerReqCtx<ExtractAuth<AV>> 467 467 >, 468 468 ) { 469 - const nsid = "app.rocksky.feed.getNowPlayings"; // @ts-ignore 470 - return this._server.xrpc.method(nsid, cfg); 469 + const nsid = 'app.rocksky.feed.getNowPlayings' // @ts-ignore 470 + return this._server.xrpc.method(nsid, cfg) 471 471 } 472 472 473 473 search<AV extends AuthVerifier>( ··· 477 477 AppRockskyFeedSearch.HandlerReqCtx<ExtractAuth<AV>> 478 478 >, 479 479 ) { 480 - const nsid = "app.rocksky.feed.search"; // @ts-ignore 481 - return this._server.xrpc.method(nsid, cfg); 480 + const nsid = 'app.rocksky.feed.search' // @ts-ignore 481 + return this._server.xrpc.method(nsid, cfg) 482 482 } 483 483 } 484 484 485 485 export class AppRockskyGoogledriveNS { 486 - _server: Server; 486 + _server: Server 487 487 488 488 constructor(server: Server) { 489 - this._server = server; 489 + this._server = server 490 490 } 491 491 492 492 downloadFile<AV extends AuthVerifier>( ··· 496 496 AppRockskyGoogledriveDownloadFile.HandlerReqCtx<ExtractAuth<AV>> 497 497 >, 498 498 ) { 499 - const nsid = "app.rocksky.googledrive.downloadFile"; // @ts-ignore 500 - return this._server.xrpc.method(nsid, cfg); 499 + const nsid = 'app.rocksky.googledrive.downloadFile' // @ts-ignore 500 + return this._server.xrpc.method(nsid, cfg) 501 501 } 502 502 503 503 getFile<AV extends AuthVerifier>( ··· 507 507 AppRockskyGoogledriveGetFile.HandlerReqCtx<ExtractAuth<AV>> 508 508 >, 509 509 ) { 510 - const nsid = "app.rocksky.googledrive.getFile"; // @ts-ignore 511 - return this._server.xrpc.method(nsid, cfg); 510 + const nsid = 'app.rocksky.googledrive.getFile' // @ts-ignore 511 + return this._server.xrpc.method(nsid, cfg) 512 512 } 513 513 514 514 getFiles<AV extends AuthVerifier>( ··· 518 518 AppRockskyGoogledriveGetFiles.HandlerReqCtx<ExtractAuth<AV>> 519 519 >, 520 520 ) { 521 - const nsid = "app.rocksky.googledrive.getFiles"; // @ts-ignore 522 - return this._server.xrpc.method(nsid, cfg); 521 + const nsid = 'app.rocksky.googledrive.getFiles' // @ts-ignore 522 + return this._server.xrpc.method(nsid, cfg) 523 523 } 524 524 } 525 525 526 526 export class AppRockskyLikeNS { 527 - _server: Server; 527 + _server: Server 528 528 529 529 constructor(server: Server) { 530 - this._server = server; 530 + this._server = server 531 531 } 532 532 533 533 dislikeShout<AV extends AuthVerifier>( ··· 537 537 AppRockskyLikeDislikeShout.HandlerReqCtx<ExtractAuth<AV>> 538 538 >, 539 539 ) { 540 - const nsid = "app.rocksky.like.dislikeShout"; // @ts-ignore 541 - return this._server.xrpc.method(nsid, cfg); 540 + const nsid = 'app.rocksky.like.dislikeShout' // @ts-ignore 541 + return this._server.xrpc.method(nsid, cfg) 542 542 } 543 543 544 544 dislikeSong<AV extends AuthVerifier>( ··· 548 548 AppRockskyLikeDislikeSong.HandlerReqCtx<ExtractAuth<AV>> 549 549 >, 550 550 ) { 551 - const nsid = "app.rocksky.like.dislikeSong"; // @ts-ignore 552 - return this._server.xrpc.method(nsid, cfg); 551 + const nsid = 'app.rocksky.like.dislikeSong' // @ts-ignore 552 + return this._server.xrpc.method(nsid, cfg) 553 553 } 554 554 555 555 likeShout<AV extends AuthVerifier>( ··· 559 559 AppRockskyLikeLikeShout.HandlerReqCtx<ExtractAuth<AV>> 560 560 >, 561 561 ) { 562 - const nsid = "app.rocksky.like.likeShout"; // @ts-ignore 563 - return this._server.xrpc.method(nsid, cfg); 562 + const nsid = 'app.rocksky.like.likeShout' // @ts-ignore 563 + return this._server.xrpc.method(nsid, cfg) 564 564 } 565 565 566 566 likeSong<AV extends AuthVerifier>( ··· 570 570 AppRockskyLikeLikeSong.HandlerReqCtx<ExtractAuth<AV>> 571 571 >, 572 572 ) { 573 - const nsid = "app.rocksky.like.likeSong"; // @ts-ignore 574 - return this._server.xrpc.method(nsid, cfg); 573 + const nsid = 'app.rocksky.like.likeSong' // @ts-ignore 574 + return this._server.xrpc.method(nsid, cfg) 575 575 } 576 576 } 577 577 578 578 export class AppRockskyPlayerNS { 579 - _server: Server; 579 + _server: Server 580 580 581 581 constructor(server: Server) { 582 - this._server = server; 582 + this._server = server 583 583 } 584 584 585 585 addDirectoryToQueue<AV extends AuthVerifier>( ··· 589 589 AppRockskyPlayerAddDirectoryToQueue.HandlerReqCtx<ExtractAuth<AV>> 590 590 >, 591 591 ) { 592 - const nsid = "app.rocksky.player.addDirectoryToQueue"; // @ts-ignore 593 - return this._server.xrpc.method(nsid, cfg); 592 + const nsid = 'app.rocksky.player.addDirectoryToQueue' // @ts-ignore 593 + return this._server.xrpc.method(nsid, cfg) 594 594 } 595 595 596 596 addItemsToQueue<AV extends AuthVerifier>( ··· 600 600 AppRockskyPlayerAddItemsToQueue.HandlerReqCtx<ExtractAuth<AV>> 601 601 >, 602 602 ) { 603 - const nsid = "app.rocksky.player.addItemsToQueue"; // @ts-ignore 604 - return this._server.xrpc.method(nsid, cfg); 603 + const nsid = 'app.rocksky.player.addItemsToQueue' // @ts-ignore 604 + return this._server.xrpc.method(nsid, cfg) 605 605 } 606 606 607 607 getCurrentlyPlaying<AV extends AuthVerifier>( ··· 611 611 AppRockskyPlayerGetCurrentlyPlaying.HandlerReqCtx<ExtractAuth<AV>> 612 612 >, 613 613 ) { 614 - const nsid = "app.rocksky.player.getCurrentlyPlaying"; // @ts-ignore 615 - return this._server.xrpc.method(nsid, cfg); 614 + const nsid = 'app.rocksky.player.getCurrentlyPlaying' // @ts-ignore 615 + return this._server.xrpc.method(nsid, cfg) 616 616 } 617 617 618 618 getPlaybackQueue<AV extends AuthVerifier>( ··· 622 622 AppRockskyPlayerGetPlaybackQueue.HandlerReqCtx<ExtractAuth<AV>> 623 623 >, 624 624 ) { 625 - const nsid = "app.rocksky.player.getPlaybackQueue"; // @ts-ignore 626 - return this._server.xrpc.method(nsid, cfg); 625 + const nsid = 'app.rocksky.player.getPlaybackQueue' // @ts-ignore 626 + return this._server.xrpc.method(nsid, cfg) 627 627 } 628 628 629 629 next<AV extends AuthVerifier>( ··· 633 633 AppRockskyPlayerNext.HandlerReqCtx<ExtractAuth<AV>> 634 634 >, 635 635 ) { 636 - const nsid = "app.rocksky.player.next"; // @ts-ignore 637 - return this._server.xrpc.method(nsid, cfg); 636 + const nsid = 'app.rocksky.player.next' // @ts-ignore 637 + return this._server.xrpc.method(nsid, cfg) 638 638 } 639 639 640 640 pause<AV extends AuthVerifier>( ··· 644 644 AppRockskyPlayerPause.HandlerReqCtx<ExtractAuth<AV>> 645 645 >, 646 646 ) { 647 - const nsid = "app.rocksky.player.pause"; // @ts-ignore 648 - return this._server.xrpc.method(nsid, cfg); 647 + const nsid = 'app.rocksky.player.pause' // @ts-ignore 648 + return this._server.xrpc.method(nsid, cfg) 649 649 } 650 650 651 651 playDirectory<AV extends AuthVerifier>( ··· 655 655 AppRockskyPlayerPlayDirectory.HandlerReqCtx<ExtractAuth<AV>> 656 656 >, 657 657 ) { 658 - const nsid = "app.rocksky.player.playDirectory"; // @ts-ignore 659 - return this._server.xrpc.method(nsid, cfg); 658 + const nsid = 'app.rocksky.player.playDirectory' // @ts-ignore 659 + return this._server.xrpc.method(nsid, cfg) 660 660 } 661 661 662 662 playFile<AV extends AuthVerifier>( ··· 666 666 AppRockskyPlayerPlayFile.HandlerReqCtx<ExtractAuth<AV>> 667 667 >, 668 668 ) { 669 - const nsid = "app.rocksky.player.playFile"; // @ts-ignore 670 - return this._server.xrpc.method(nsid, cfg); 669 + const nsid = 'app.rocksky.player.playFile' // @ts-ignore 670 + return this._server.xrpc.method(nsid, cfg) 671 671 } 672 672 673 673 play<AV extends AuthVerifier>( ··· 677 677 AppRockskyPlayerPlay.HandlerReqCtx<ExtractAuth<AV>> 678 678 >, 679 679 ) { 680 - const nsid = "app.rocksky.player.play"; // @ts-ignore 681 - return this._server.xrpc.method(nsid, cfg); 680 + const nsid = 'app.rocksky.player.play' // @ts-ignore 681 + return this._server.xrpc.method(nsid, cfg) 682 682 } 683 683 684 684 previous<AV extends AuthVerifier>( ··· 688 688 AppRockskyPlayerPrevious.HandlerReqCtx<ExtractAuth<AV>> 689 689 >, 690 690 ) { 691 - const nsid = "app.rocksky.player.previous"; // @ts-ignore 692 - return this._server.xrpc.method(nsid, cfg); 691 + const nsid = 'app.rocksky.player.previous' // @ts-ignore 692 + return this._server.xrpc.method(nsid, cfg) 693 693 } 694 694 695 695 seek<AV extends AuthVerifier>( ··· 699 699 AppRockskyPlayerSeek.HandlerReqCtx<ExtractAuth<AV>> 700 700 >, 701 701 ) { 702 - const nsid = "app.rocksky.player.seek"; // @ts-ignore 703 - return this._server.xrpc.method(nsid, cfg); 702 + const nsid = 'app.rocksky.player.seek' // @ts-ignore 703 + return this._server.xrpc.method(nsid, cfg) 704 704 } 705 705 } 706 706 707 707 export class AppRockskyPlaylistNS { 708 - _server: Server; 708 + _server: Server 709 709 710 710 constructor(server: Server) { 711 - this._server = server; 711 + this._server = server 712 712 } 713 713 714 714 createPlaylist<AV extends AuthVerifier>( ··· 718 718 AppRockskyPlaylistCreatePlaylist.HandlerReqCtx<ExtractAuth<AV>> 719 719 >, 720 720 ) { 721 - const nsid = "app.rocksky.playlist.createPlaylist"; // @ts-ignore 722 - return this._server.xrpc.method(nsid, cfg); 721 + const nsid = 'app.rocksky.playlist.createPlaylist' // @ts-ignore 722 + return this._server.xrpc.method(nsid, cfg) 723 723 } 724 724 725 725 getPlaylist<AV extends AuthVerifier>( ··· 729 729 AppRockskyPlaylistGetPlaylist.HandlerReqCtx<ExtractAuth<AV>> 730 730 >, 731 731 ) { 732 - const nsid = "app.rocksky.playlist.getPlaylist"; // @ts-ignore 733 - return this._server.xrpc.method(nsid, cfg); 732 + const nsid = 'app.rocksky.playlist.getPlaylist' // @ts-ignore 733 + return this._server.xrpc.method(nsid, cfg) 734 734 } 735 735 736 736 getPlaylists<AV extends AuthVerifier>( ··· 740 740 AppRockskyPlaylistGetPlaylists.HandlerReqCtx<ExtractAuth<AV>> 741 741 >, 742 742 ) { 743 - const nsid = "app.rocksky.playlist.getPlaylists"; // @ts-ignore 744 - return this._server.xrpc.method(nsid, cfg); 743 + const nsid = 'app.rocksky.playlist.getPlaylists' // @ts-ignore 744 + return this._server.xrpc.method(nsid, cfg) 745 745 } 746 746 747 747 insertDirectory<AV extends AuthVerifier>( ··· 751 751 AppRockskyPlaylistInsertDirectory.HandlerReqCtx<ExtractAuth<AV>> 752 752 >, 753 753 ) { 754 - const nsid = "app.rocksky.playlist.insertDirectory"; // @ts-ignore 755 - return this._server.xrpc.method(nsid, cfg); 754 + const nsid = 'app.rocksky.playlist.insertDirectory' // @ts-ignore 755 + return this._server.xrpc.method(nsid, cfg) 756 756 } 757 757 758 758 insertFiles<AV extends AuthVerifier>( ··· 762 762 AppRockskyPlaylistInsertFiles.HandlerReqCtx<ExtractAuth<AV>> 763 763 >, 764 764 ) { 765 - const nsid = "app.rocksky.playlist.insertFiles"; // @ts-ignore 766 - return this._server.xrpc.method(nsid, cfg); 765 + const nsid = 'app.rocksky.playlist.insertFiles' // @ts-ignore 766 + return this._server.xrpc.method(nsid, cfg) 767 767 } 768 768 769 769 removePlaylist<AV extends AuthVerifier>( ··· 773 773 AppRockskyPlaylistRemovePlaylist.HandlerReqCtx<ExtractAuth<AV>> 774 774 >, 775 775 ) { 776 - const nsid = "app.rocksky.playlist.removePlaylist"; // @ts-ignore 777 - return this._server.xrpc.method(nsid, cfg); 776 + const nsid = 'app.rocksky.playlist.removePlaylist' // @ts-ignore 777 + return this._server.xrpc.method(nsid, cfg) 778 778 } 779 779 780 780 removeTrack<AV extends AuthVerifier>( ··· 784 784 AppRockskyPlaylistRemoveTrack.HandlerReqCtx<ExtractAuth<AV>> 785 785 >, 786 786 ) { 787 - const nsid = "app.rocksky.playlist.removeTrack"; // @ts-ignore 788 - return this._server.xrpc.method(nsid, cfg); 787 + const nsid = 'app.rocksky.playlist.removeTrack' // @ts-ignore 788 + return this._server.xrpc.method(nsid, cfg) 789 789 } 790 790 791 791 startPlaylist<AV extends AuthVerifier>( ··· 795 795 AppRockskyPlaylistStartPlaylist.HandlerReqCtx<ExtractAuth<AV>> 796 796 >, 797 797 ) { 798 - const nsid = "app.rocksky.playlist.startPlaylist"; // @ts-ignore 799 - return this._server.xrpc.method(nsid, cfg); 798 + const nsid = 'app.rocksky.playlist.startPlaylist' // @ts-ignore 799 + return this._server.xrpc.method(nsid, cfg) 800 800 } 801 801 } 802 802 803 803 export class AppRockskyScrobbleNS { 804 - _server: Server; 804 + _server: Server 805 805 806 806 constructor(server: Server) { 807 - this._server = server; 807 + this._server = server 808 808 } 809 809 810 810 createScrobble<AV extends AuthVerifier>( ··· 814 814 AppRockskyScrobbleCreateScrobble.HandlerReqCtx<ExtractAuth<AV>> 815 815 >, 816 816 ) { 817 - const nsid = "app.rocksky.scrobble.createScrobble"; // @ts-ignore 818 - return this._server.xrpc.method(nsid, cfg); 817 + const nsid = 'app.rocksky.scrobble.createScrobble' // @ts-ignore 818 + return this._server.xrpc.method(nsid, cfg) 819 819 } 820 820 821 821 getScrobble<AV extends AuthVerifier>( ··· 825 825 AppRockskyScrobbleGetScrobble.HandlerReqCtx<ExtractAuth<AV>> 826 826 >, 827 827 ) { 828 - const nsid = "app.rocksky.scrobble.getScrobble"; // @ts-ignore 829 - return this._server.xrpc.method(nsid, cfg); 828 + const nsid = 'app.rocksky.scrobble.getScrobble' // @ts-ignore 829 + return this._server.xrpc.method(nsid, cfg) 830 830 } 831 831 832 832 getScrobbles<AV extends AuthVerifier>( ··· 836 836 AppRockskyScrobbleGetScrobbles.HandlerReqCtx<ExtractAuth<AV>> 837 837 >, 838 838 ) { 839 - const nsid = "app.rocksky.scrobble.getScrobbles"; // @ts-ignore 840 - return this._server.xrpc.method(nsid, cfg); 839 + const nsid = 'app.rocksky.scrobble.getScrobbles' // @ts-ignore 840 + return this._server.xrpc.method(nsid, cfg) 841 841 } 842 842 } 843 843 844 844 export class AppRockskyShoutNS { 845 - _server: Server; 845 + _server: Server 846 846 847 847 constructor(server: Server) { 848 - this._server = server; 848 + this._server = server 849 849 } 850 850 851 851 createShout<AV extends AuthVerifier>( ··· 855 855 AppRockskyShoutCreateShout.HandlerReqCtx<ExtractAuth<AV>> 856 856 >, 857 857 ) { 858 - const nsid = "app.rocksky.shout.createShout"; // @ts-ignore 859 - return this._server.xrpc.method(nsid, cfg); 858 + const nsid = 'app.rocksky.shout.createShout' // @ts-ignore 859 + return this._server.xrpc.method(nsid, cfg) 860 860 } 861 861 862 862 getAlbumShouts<AV extends AuthVerifier>( ··· 866 866 AppRockskyShoutGetAlbumShouts.HandlerReqCtx<ExtractAuth<AV>> 867 867 >, 868 868 ) { 869 - const nsid = "app.rocksky.shout.getAlbumShouts"; // @ts-ignore 870 - return this._server.xrpc.method(nsid, cfg); 869 + const nsid = 'app.rocksky.shout.getAlbumShouts' // @ts-ignore 870 + return this._server.xrpc.method(nsid, cfg) 871 871 } 872 872 873 873 getArtistShouts<AV extends AuthVerifier>( ··· 877 877 AppRockskyShoutGetArtistShouts.HandlerReqCtx<ExtractAuth<AV>> 878 878 >, 879 879 ) { 880 - const nsid = "app.rocksky.shout.getArtistShouts"; // @ts-ignore 881 - return this._server.xrpc.method(nsid, cfg); 880 + const nsid = 'app.rocksky.shout.getArtistShouts' // @ts-ignore 881 + return this._server.xrpc.method(nsid, cfg) 882 882 } 883 883 884 884 getProfileShouts<AV extends AuthVerifier>( ··· 888 888 AppRockskyShoutGetProfileShouts.HandlerReqCtx<ExtractAuth<AV>> 889 889 >, 890 890 ) { 891 - const nsid = "app.rocksky.shout.getProfileShouts"; // @ts-ignore 892 - return this._server.xrpc.method(nsid, cfg); 891 + const nsid = 'app.rocksky.shout.getProfileShouts' // @ts-ignore 892 + return this._server.xrpc.method(nsid, cfg) 893 893 } 894 894 895 895 getShoutReplies<AV extends AuthVerifier>( ··· 899 899 AppRockskyShoutGetShoutReplies.HandlerReqCtx<ExtractAuth<AV>> 900 900 >, 901 901 ) { 902 - const nsid = "app.rocksky.shout.getShoutReplies"; // @ts-ignore 903 - return this._server.xrpc.method(nsid, cfg); 902 + const nsid = 'app.rocksky.shout.getShoutReplies' // @ts-ignore 903 + return this._server.xrpc.method(nsid, cfg) 904 904 } 905 905 906 906 getTrackShouts<AV extends AuthVerifier>( ··· 910 910 AppRockskyShoutGetTrackShouts.HandlerReqCtx<ExtractAuth<AV>> 911 911 >, 912 912 ) { 913 - const nsid = "app.rocksky.shout.getTrackShouts"; // @ts-ignore 914 - return this._server.xrpc.method(nsid, cfg); 913 + const nsid = 'app.rocksky.shout.getTrackShouts' // @ts-ignore 914 + return this._server.xrpc.method(nsid, cfg) 915 915 } 916 916 917 917 removeShout<AV extends AuthVerifier>( ··· 921 921 AppRockskyShoutRemoveShout.HandlerReqCtx<ExtractAuth<AV>> 922 922 >, 923 923 ) { 924 - const nsid = "app.rocksky.shout.removeShout"; // @ts-ignore 925 - return this._server.xrpc.method(nsid, cfg); 924 + const nsid = 'app.rocksky.shout.removeShout' // @ts-ignore 925 + return this._server.xrpc.method(nsid, cfg) 926 926 } 927 927 928 928 replyShout<AV extends AuthVerifier>( ··· 932 932 AppRockskyShoutReplyShout.HandlerReqCtx<ExtractAuth<AV>> 933 933 >, 934 934 ) { 935 - const nsid = "app.rocksky.shout.replyShout"; // @ts-ignore 936 - return this._server.xrpc.method(nsid, cfg); 935 + const nsid = 'app.rocksky.shout.replyShout' // @ts-ignore 936 + return this._server.xrpc.method(nsid, cfg) 937 937 } 938 938 939 939 reportShout<AV extends AuthVerifier>( ··· 943 943 AppRockskyShoutReportShout.HandlerReqCtx<ExtractAuth<AV>> 944 944 >, 945 945 ) { 946 - const nsid = "app.rocksky.shout.reportShout"; // @ts-ignore 947 - return this._server.xrpc.method(nsid, cfg); 946 + const nsid = 'app.rocksky.shout.reportShout' // @ts-ignore 947 + return this._server.xrpc.method(nsid, cfg) 948 948 } 949 949 } 950 950 951 951 export class AppRockskySongNS { 952 - _server: Server; 952 + _server: Server 953 953 954 954 constructor(server: Server) { 955 - this._server = server; 955 + this._server = server 956 956 } 957 957 958 958 createSong<AV extends AuthVerifier>( ··· 962 962 AppRockskySongCreateSong.HandlerReqCtx<ExtractAuth<AV>> 963 963 >, 964 964 ) { 965 - const nsid = "app.rocksky.song.createSong"; // @ts-ignore 966 - return this._server.xrpc.method(nsid, cfg); 965 + const nsid = 'app.rocksky.song.createSong' // @ts-ignore 966 + return this._server.xrpc.method(nsid, cfg) 967 967 } 968 968 969 969 getSong<AV extends AuthVerifier>( ··· 973 973 AppRockskySongGetSong.HandlerReqCtx<ExtractAuth<AV>> 974 974 >, 975 975 ) { 976 - const nsid = "app.rocksky.song.getSong"; // @ts-ignore 977 - return this._server.xrpc.method(nsid, cfg); 976 + const nsid = 'app.rocksky.song.getSong' // @ts-ignore 977 + return this._server.xrpc.method(nsid, cfg) 978 978 } 979 979 980 980 getSongs<AV extends AuthVerifier>( ··· 984 984 AppRockskySongGetSongs.HandlerReqCtx<ExtractAuth<AV>> 985 985 >, 986 986 ) { 987 - const nsid = "app.rocksky.song.getSongs"; // @ts-ignore 988 - return this._server.xrpc.method(nsid, cfg); 987 + const nsid = 'app.rocksky.song.getSongs' // @ts-ignore 988 + return this._server.xrpc.method(nsid, cfg) 989 989 } 990 990 } 991 991 992 992 export class AppRockskySpotifyNS { 993 - _server: Server; 993 + _server: Server 994 994 995 995 constructor(server: Server) { 996 - this._server = server; 996 + this._server = server 997 997 } 998 998 999 999 getCurrentlyPlaying<AV extends AuthVerifier>( ··· 1003 1003 AppRockskySpotifyGetCurrentlyPlaying.HandlerReqCtx<ExtractAuth<AV>> 1004 1004 >, 1005 1005 ) { 1006 - const nsid = "app.rocksky.spotify.getCurrentlyPlaying"; // @ts-ignore 1007 - return this._server.xrpc.method(nsid, cfg); 1006 + const nsid = 'app.rocksky.spotify.getCurrentlyPlaying' // @ts-ignore 1007 + return this._server.xrpc.method(nsid, cfg) 1008 1008 } 1009 1009 1010 1010 next<AV extends AuthVerifier>( ··· 1014 1014 AppRockskySpotifyNext.HandlerReqCtx<ExtractAuth<AV>> 1015 1015 >, 1016 1016 ) { 1017 - const nsid = "app.rocksky.spotify.next"; // @ts-ignore 1018 - return this._server.xrpc.method(nsid, cfg); 1017 + const nsid = 'app.rocksky.spotify.next' // @ts-ignore 1018 + return this._server.xrpc.method(nsid, cfg) 1019 1019 } 1020 1020 1021 1021 pause<AV extends AuthVerifier>( ··· 1025 1025 AppRockskySpotifyPause.HandlerReqCtx<ExtractAuth<AV>> 1026 1026 >, 1027 1027 ) { 1028 - const nsid = "app.rocksky.spotify.pause"; // @ts-ignore 1029 - return this._server.xrpc.method(nsid, cfg); 1028 + const nsid = 'app.rocksky.spotify.pause' // @ts-ignore 1029 + return this._server.xrpc.method(nsid, cfg) 1030 1030 } 1031 1031 1032 1032 play<AV extends AuthVerifier>( ··· 1036 1036 AppRockskySpotifyPlay.HandlerReqCtx<ExtractAuth<AV>> 1037 1037 >, 1038 1038 ) { 1039 - const nsid = "app.rocksky.spotify.play"; // @ts-ignore 1040 - return this._server.xrpc.method(nsid, cfg); 1039 + const nsid = 'app.rocksky.spotify.play' // @ts-ignore 1040 + return this._server.xrpc.method(nsid, cfg) 1041 1041 } 1042 1042 1043 1043 previous<AV extends AuthVerifier>( ··· 1047 1047 AppRockskySpotifyPrevious.HandlerReqCtx<ExtractAuth<AV>> 1048 1048 >, 1049 1049 ) { 1050 - const nsid = "app.rocksky.spotify.previous"; // @ts-ignore 1051 - return this._server.xrpc.method(nsid, cfg); 1050 + const nsid = 'app.rocksky.spotify.previous' // @ts-ignore 1051 + return this._server.xrpc.method(nsid, cfg) 1052 1052 } 1053 1053 1054 1054 seek<AV extends AuthVerifier>( ··· 1058 1058 AppRockskySpotifySeek.HandlerReqCtx<ExtractAuth<AV>> 1059 1059 >, 1060 1060 ) { 1061 - const nsid = "app.rocksky.spotify.seek"; // @ts-ignore 1062 - return this._server.xrpc.method(nsid, cfg); 1061 + const nsid = 'app.rocksky.spotify.seek' // @ts-ignore 1062 + return this._server.xrpc.method(nsid, cfg) 1063 1063 } 1064 1064 } 1065 1065 1066 1066 export class AppRockskyStatsNS { 1067 - _server: Server; 1067 + _server: Server 1068 1068 1069 1069 constructor(server: Server) { 1070 - this._server = server; 1070 + this._server = server 1071 1071 } 1072 1072 1073 1073 getStats<AV extends AuthVerifier>( ··· 1077 1077 AppRockskyStatsGetStats.HandlerReqCtx<ExtractAuth<AV>> 1078 1078 >, 1079 1079 ) { 1080 - const nsid = "app.rocksky.stats.getStats"; // @ts-ignore 1081 - return this._server.xrpc.method(nsid, cfg); 1080 + const nsid = 'app.rocksky.stats.getStats' // @ts-ignore 1081 + return this._server.xrpc.method(nsid, cfg) 1082 1082 } 1083 1083 } 1084 1084 1085 1085 export class AppBskyNS { 1086 - _server: Server; 1087 - actor: AppBskyActorNS; 1086 + _server: Server 1087 + actor: AppBskyActorNS 1088 1088 1089 1089 constructor(server: Server) { 1090 - this._server = server; 1091 - this.actor = new AppBskyActorNS(server); 1090 + this._server = server 1091 + this.actor = new AppBskyActorNS(server) 1092 1092 } 1093 1093 } 1094 1094 1095 1095 export class AppBskyActorNS { 1096 - _server: Server; 1096 + _server: Server 1097 1097 1098 1098 constructor(server: Server) { 1099 - this._server = server; 1099 + this._server = server 1100 1100 } 1101 1101 } 1102 1102 1103 1103 export class ComNS { 1104 - _server: Server; 1105 - atproto: ComAtprotoNS; 1104 + _server: Server 1105 + atproto: ComAtprotoNS 1106 1106 1107 1107 constructor(server: Server) { 1108 - this._server = server; 1109 - this.atproto = new ComAtprotoNS(server); 1108 + this._server = server 1109 + this.atproto = new ComAtprotoNS(server) 1110 1110 } 1111 1111 } 1112 1112 1113 1113 export class ComAtprotoNS { 1114 - _server: Server; 1115 - repo: ComAtprotoRepoNS; 1114 + _server: Server 1115 + repo: ComAtprotoRepoNS 1116 1116 1117 1117 constructor(server: Server) { 1118 - this._server = server; 1119 - this.repo = new ComAtprotoRepoNS(server); 1118 + this._server = server 1119 + this.repo = new ComAtprotoRepoNS(server) 1120 1120 } 1121 1121 } 1122 1122 1123 1123 export class ComAtprotoRepoNS { 1124 - _server: Server; 1124 + _server: Server 1125 1125 1126 1126 constructor(server: Server) { 1127 - this._server = server; 1127 + this._server = server 1128 1128 } 1129 1129 } 1130 1130 1131 1131 type SharedRateLimitOpts<T> = { 1132 - name: string; 1133 - calcKey?: (ctx: T) => string | null; 1134 - calcPoints?: (ctx: T) => number; 1135 - }; 1132 + name: string 1133 + calcKey?: (ctx: T) => string | null 1134 + calcPoints?: (ctx: T) => number 1135 + } 1136 1136 type RouteRateLimitOpts<T> = { 1137 - durationMs: number; 1138 - points: number; 1139 - calcKey?: (ctx: T) => string | null; 1140 - calcPoints?: (ctx: T) => number; 1141 - }; 1142 - type HandlerOpts = { blobLimit?: number }; 1143 - type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T>; 1137 + durationMs: number 1138 + points: number 1139 + calcKey?: (ctx: T) => string | null 1140 + calcPoints?: (ctx: T) => number 1141 + } 1142 + type HandlerOpts = { blobLimit?: number } 1143 + type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T> 1144 1144 type ConfigOf<Auth, Handler, ReqCtx> = 1145 1145 | Handler 1146 1146 | { 1147 - auth?: Auth; 1148 - opts?: HandlerOpts; 1149 - rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[]; 1150 - handler: Handler; 1151 - }; 1147 + auth?: Auth 1148 + opts?: HandlerOpts 1149 + rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[] 1150 + handler: Handler 1151 + } 1152 1152 type ExtractAuth<AV extends AuthVerifier | StreamAuthVerifier> = Extract< 1153 1153 Awaited<ReturnType<AV>>, 1154 1154 { credentials: unknown } 1155 - >; 1155 + >
+1811 -1801
apps/api/src/lexicon/lexicons.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type LexiconDoc, Lexicons } from "@atproto/lexicon"; 4 + import { type LexiconDoc, Lexicons } from '@atproto/lexicon' 5 5 6 6 export const schemaDict = { 7 7 AppRockskyActorDefs: { 8 8 lexicon: 1, 9 - id: "app.rocksky.actor.defs", 9 + id: 'app.rocksky.actor.defs', 10 10 defs: { 11 11 profileViewDetailed: { 12 - type: "object", 12 + type: 'object', 13 13 properties: { 14 14 id: { 15 - type: "string", 16 - description: "The unique identifier of the actor.", 15 + type: 'string', 16 + description: 'The unique identifier of the actor.', 17 17 }, 18 18 did: { 19 - type: "string", 20 - description: "The DID of the actor.", 19 + type: 'string', 20 + description: 'The DID of the actor.', 21 21 }, 22 22 handle: { 23 - type: "string", 24 - description: "The handle of the actor.", 23 + type: 'string', 24 + description: 'The handle of the actor.', 25 25 }, 26 26 displayName: { 27 - type: "string", 28 - description: "The display name of the actor.", 27 + type: 'string', 28 + description: 'The display name of the actor.', 29 29 }, 30 30 avatar: { 31 - type: "string", 31 + type: 'string', 32 32 description: "The URL of the actor's avatar image.", 33 - format: "uri", 33 + format: 'uri', 34 34 }, 35 35 createdAt: { 36 - type: "string", 37 - description: "The date and time when the actor was created.", 38 - format: "datetime", 36 + type: 'string', 37 + description: 'The date and time when the actor was created.', 38 + format: 'datetime', 39 39 }, 40 40 updatedAt: { 41 - type: "string", 42 - description: "The date and time when the actor was last updated.", 43 - format: "datetime", 41 + type: 'string', 42 + description: 'The date and time when the actor was last updated.', 43 + format: 'datetime', 44 44 }, 45 45 }, 46 46 }, 47 47 profileViewBasic: { 48 - type: "object", 48 + type: 'object', 49 49 properties: { 50 50 id: { 51 - type: "string", 52 - description: "The unique identifier of the actor.", 51 + type: 'string', 52 + description: 'The unique identifier of the actor.', 53 53 }, 54 54 did: { 55 - type: "string", 56 - description: "The DID of the actor.", 55 + type: 'string', 56 + description: 'The DID of the actor.', 57 57 }, 58 58 handle: { 59 - type: "string", 60 - description: "The handle of the actor.", 59 + type: 'string', 60 + description: 'The handle of the actor.', 61 61 }, 62 62 displayName: { 63 - type: "string", 64 - description: "The display name of the actor.", 63 + type: 'string', 64 + description: 'The display name of the actor.', 65 65 }, 66 66 avatar: { 67 - type: "string", 67 + type: 'string', 68 68 description: "The URL of the actor's avatar image.", 69 - format: "uri", 69 + format: 'uri', 70 70 }, 71 71 createdAt: { 72 - type: "string", 73 - description: "The date and time when the actor was created.", 74 - format: "datetime", 72 + type: 'string', 73 + description: 'The date and time when the actor was created.', 74 + format: 'datetime', 75 75 }, 76 76 updatedAt: { 77 - type: "string", 78 - description: "The date and time when the actor was last updated.", 79 - format: "datetime", 77 + type: 'string', 78 + description: 'The date and time when the actor was last updated.', 79 + format: 'datetime', 80 80 }, 81 81 }, 82 82 }, ··· 84 84 }, 85 85 AppRockskyActorGetActorAlbums: { 86 86 lexicon: 1, 87 - id: "app.rocksky.actor.getActorAlbums", 87 + id: 'app.rocksky.actor.getActorAlbums', 88 88 defs: { 89 89 main: { 90 - type: "query", 91 - description: "Get albums for an actor", 90 + type: 'query', 91 + description: 'Get albums for an actor', 92 92 parameters: { 93 - type: "params", 94 - required: ["did"], 93 + type: 'params', 94 + required: ['did'], 95 95 properties: { 96 96 did: { 97 - type: "string", 98 - description: "The DID or handle of the actor", 99 - format: "at-identifier", 97 + type: 'string', 98 + description: 'The DID or handle of the actor', 99 + format: 'at-identifier', 100 100 }, 101 101 limit: { 102 - type: "integer", 103 - description: "The maximum number of albums to return", 102 + type: 'integer', 103 + description: 'The maximum number of albums to return', 104 104 minimum: 1, 105 105 }, 106 106 offset: { 107 - type: "integer", 108 - description: "The offset for pagination", 107 + type: 'integer', 108 + description: 'The offset for pagination', 109 109 minimum: 0, 110 110 }, 111 111 }, 112 112 }, 113 113 output: { 114 - encoding: "application/json", 114 + encoding: 'application/json', 115 115 schema: { 116 - type: "object", 116 + type: 'object', 117 117 properties: { 118 118 albums: { 119 - type: "array", 119 + type: 'array', 120 120 items: { 121 - type: "ref", 122 - ref: "lex:app.rocksky.album.defs#albumViewBasic", 121 + type: 'ref', 122 + ref: 'lex:app.rocksky.album.defs#albumViewBasic', 123 123 }, 124 124 }, 125 125 }, ··· 130 130 }, 131 131 AppRockskyActorGetActorArtists: { 132 132 lexicon: 1, 133 - id: "app.rocksky.actor.getActorArtists", 133 + id: 'app.rocksky.actor.getActorArtists', 134 134 defs: { 135 135 main: { 136 - type: "query", 137 - description: "Get artists for an actor", 136 + type: 'query', 137 + description: 'Get artists for an actor', 138 138 parameters: { 139 - type: "params", 140 - required: ["did"], 139 + type: 'params', 140 + required: ['did'], 141 141 properties: { 142 142 did: { 143 - type: "string", 144 - description: "The DID or handle of the actor", 145 - format: "at-identifier", 143 + type: 'string', 144 + description: 'The DID or handle of the actor', 145 + format: 'at-identifier', 146 146 }, 147 147 limit: { 148 - type: "integer", 149 - description: "The maximum number of albums to return", 148 + type: 'integer', 149 + description: 'The maximum number of albums to return', 150 150 minimum: 1, 151 151 }, 152 152 offset: { 153 - type: "integer", 154 - description: "The offset for pagination", 153 + type: 'integer', 154 + description: 'The offset for pagination', 155 155 minimum: 0, 156 156 }, 157 157 }, 158 158 }, 159 159 output: { 160 - encoding: "application/json", 160 + encoding: 'application/json', 161 161 schema: { 162 - type: "object", 162 + type: 'object', 163 163 properties: { 164 164 artists: { 165 - type: "array", 165 + type: 'array', 166 166 items: { 167 - type: "ref", 168 - ref: "lex:app.rocksky.artist.defs#artistViewBasic", 167 + type: 'ref', 168 + ref: 'lex:app.rocksky.artist.defs#artistViewBasic', 169 169 }, 170 170 }, 171 171 }, ··· 176 176 }, 177 177 AppRockskyActorGetActorLovedSongs: { 178 178 lexicon: 1, 179 - id: "app.rocksky.actor.getActorLovedSongs", 179 + id: 'app.rocksky.actor.getActorLovedSongs', 180 180 defs: { 181 181 main: { 182 - type: "query", 183 - description: "Get loved songs for an actor", 182 + type: 'query', 183 + description: 'Get loved songs for an actor', 184 184 parameters: { 185 - type: "params", 186 - required: ["did"], 185 + type: 'params', 186 + required: ['did'], 187 187 properties: { 188 188 did: { 189 - type: "string", 190 - description: "The DID or handle of the actor", 191 - format: "at-identifier", 189 + type: 'string', 190 + description: 'The DID or handle of the actor', 191 + format: 'at-identifier', 192 192 }, 193 193 limit: { 194 - type: "integer", 195 - description: "The maximum number of albums to return", 194 + type: 'integer', 195 + description: 'The maximum number of albums to return', 196 196 minimum: 1, 197 197 }, 198 198 offset: { 199 - type: "integer", 200 - description: "The offset for pagination", 199 + type: 'integer', 200 + description: 'The offset for pagination', 201 201 minimum: 0, 202 202 }, 203 203 }, 204 204 }, 205 205 output: { 206 - encoding: "application/json", 206 + encoding: 'application/json', 207 207 schema: { 208 - type: "object", 208 + type: 'object', 209 209 properties: { 210 210 tracks: { 211 - type: "array", 211 + type: 'array', 212 212 items: { 213 - type: "ref", 214 - ref: "lex:app.rocksky.song.defs#songViewBasic", 213 + type: 'ref', 214 + ref: 'lex:app.rocksky.song.defs#songViewBasic', 215 215 }, 216 216 }, 217 217 }, ··· 222 222 }, 223 223 AppRockskyActorGetActorPlaylists: { 224 224 lexicon: 1, 225 - id: "app.rocksky.actor.getActorPlaylists", 225 + id: 'app.rocksky.actor.getActorPlaylists', 226 226 defs: { 227 227 main: { 228 - type: "query", 229 - description: "Get playlists for an actor", 228 + type: 'query', 229 + description: 'Get playlists for an actor', 230 230 parameters: { 231 - type: "params", 232 - required: ["did"], 231 + type: 'params', 232 + required: ['did'], 233 233 properties: { 234 234 did: { 235 - type: "string", 236 - description: "The DID or handle of the actor", 237 - format: "at-identifier", 235 + type: 'string', 236 + description: 'The DID or handle of the actor', 237 + format: 'at-identifier', 238 238 }, 239 239 limit: { 240 - type: "integer", 241 - description: "The maximum number of albums to return", 240 + type: 'integer', 241 + description: 'The maximum number of albums to return', 242 242 minimum: 1, 243 243 }, 244 244 offset: { 245 - type: "integer", 246 - description: "The offset for pagination", 245 + type: 'integer', 246 + description: 'The offset for pagination', 247 247 minimum: 0, 248 248 }, 249 249 }, 250 250 }, 251 251 output: { 252 - encoding: "application/json", 252 + encoding: 'application/json', 253 253 schema: { 254 - type: "object", 254 + type: 'object', 255 255 properties: { 256 256 playlists: { 257 - type: "array", 257 + type: 'array', 258 258 items: { 259 - type: "ref", 260 - ref: "lex:app.rocksky.playlist.defs#playlistViewBasic", 259 + type: 'ref', 260 + ref: 'lex:app.rocksky.playlist.defs#playlistViewBasic', 261 261 }, 262 262 }, 263 263 }, ··· 268 268 }, 269 269 AppRockskyActorGetActorScrobbles: { 270 270 lexicon: 1, 271 - id: "app.rocksky.actor.getActorScrobbles", 271 + id: 'app.rocksky.actor.getActorScrobbles', 272 272 defs: { 273 273 main: { 274 - type: "query", 275 - description: "Get scrobbles for an actor", 274 + type: 'query', 275 + description: 'Get scrobbles for an actor', 276 276 parameters: { 277 - type: "params", 278 - required: ["did"], 277 + type: 'params', 278 + required: ['did'], 279 279 properties: { 280 280 did: { 281 - type: "string", 282 - description: "The DID or handle of the actor", 283 - format: "at-identifier", 281 + type: 'string', 282 + description: 'The DID or handle of the actor', 283 + format: 'at-identifier', 284 284 }, 285 285 limit: { 286 - type: "integer", 287 - description: "The maximum number of albums to return", 286 + type: 'integer', 287 + description: 'The maximum number of albums to return', 288 288 minimum: 1, 289 289 }, 290 290 offset: { 291 - type: "integer", 292 - description: "The offset for pagination", 291 + type: 'integer', 292 + description: 'The offset for pagination', 293 293 minimum: 0, 294 294 }, 295 295 }, 296 296 }, 297 297 output: { 298 - encoding: "application/json", 298 + encoding: 'application/json', 299 299 schema: { 300 - type: "object", 300 + type: 'object', 301 301 properties: { 302 302 scrobbles: { 303 - type: "array", 303 + type: 'array', 304 304 items: { 305 - type: "ref", 306 - ref: "lex:app.rocksky.scrobble.defs#scrobbleViewBasic", 305 + type: 'ref', 306 + ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 307 307 }, 308 308 }, 309 309 }, ··· 314 314 }, 315 315 AppRockskyActorGetActorSongs: { 316 316 lexicon: 1, 317 - id: "app.rocksky.actor.getActorSongs", 317 + id: 'app.rocksky.actor.getActorSongs', 318 318 defs: { 319 319 main: { 320 - type: "query", 321 - description: "Get songs for an actor", 320 + type: 'query', 321 + description: 'Get songs for an actor', 322 322 parameters: { 323 - type: "params", 324 - required: ["did"], 323 + type: 'params', 324 + required: ['did'], 325 325 properties: { 326 326 did: { 327 - type: "string", 328 - description: "The DID or handle of the actor", 329 - format: "at-identifier", 327 + type: 'string', 328 + description: 'The DID or handle of the actor', 329 + format: 'at-identifier', 330 330 }, 331 331 limit: { 332 - type: "integer", 333 - description: "The maximum number of albums to return", 332 + type: 'integer', 333 + description: 'The maximum number of albums to return', 334 334 minimum: 1, 335 335 }, 336 336 offset: { 337 - type: "integer", 338 - description: "The offset for pagination", 337 + type: 'integer', 338 + description: 'The offset for pagination', 339 339 minimum: 0, 340 340 }, 341 341 }, 342 342 }, 343 343 output: { 344 - encoding: "application/json", 344 + encoding: 'application/json', 345 345 schema: { 346 - type: "object", 346 + type: 'object', 347 347 properties: { 348 348 songs: { 349 - type: "array", 349 + type: 'array', 350 350 items: { 351 - type: "ref", 352 - ref: "lex:app.rocksky.song.defs#songViewBasic", 351 + type: 'ref', 352 + ref: 'lex:app.rocksky.song.defs#songViewBasic', 353 353 }, 354 354 }, 355 355 }, ··· 360 360 }, 361 361 AppRockskyActorGetProfile: { 362 362 lexicon: 1, 363 - id: "app.rocksky.actor.getProfile", 363 + id: 'app.rocksky.actor.getProfile', 364 364 defs: { 365 365 main: { 366 - type: "query", 367 - description: "Get the profile of an actor", 366 + type: 'query', 367 + description: 'Get the profile of an actor', 368 368 parameters: { 369 - type: "params", 369 + type: 'params', 370 370 properties: { 371 371 did: { 372 - type: "string", 373 - description: "The DID or handle of the actor", 374 - format: "at-identifier", 372 + type: 'string', 373 + description: 'The DID or handle of the actor', 374 + format: 'at-identifier', 375 375 }, 376 376 }, 377 377 }, 378 378 output: { 379 - encoding: "application/json", 379 + encoding: 'application/json', 380 380 schema: { 381 - type: "ref", 382 - ref: "lex:app.rocksky.actor.defs#profileViewDetailed", 381 + type: 'ref', 382 + ref: 'lex:app.rocksky.actor.defs#profileViewDetailed', 383 383 }, 384 384 }, 385 385 }, ··· 387 387 }, 388 388 AppBskyActorProfile: { 389 389 lexicon: 1, 390 - id: "app.bsky.actor.profile", 390 + id: 'app.bsky.actor.profile', 391 391 defs: { 392 392 main: { 393 - type: "record", 394 - description: "A declaration of a Bluesky account profile.", 395 - key: "literal:self", 393 + type: 'record', 394 + description: 'A declaration of a Bluesky account profile.', 395 + key: 'literal:self', 396 396 record: { 397 - type: "object", 397 + type: 'object', 398 398 properties: { 399 399 displayName: { 400 - type: "string", 400 + type: 'string', 401 401 maxGraphemes: 64, 402 402 maxLength: 640, 403 403 }, 404 404 description: { 405 - type: "string", 406 - description: "Free-form profile description text.", 405 + type: 'string', 406 + description: 'Free-form profile description text.', 407 407 maxGraphemes: 256, 408 408 maxLength: 2560, 409 409 }, 410 410 avatar: { 411 - type: "blob", 411 + type: 'blob', 412 412 description: 413 413 "Small image to be displayed next to posts from account. AKA, 'profile picture'", 414 - accept: ["image/png", "image/jpeg"], 414 + accept: ['image/png', 'image/jpeg'], 415 415 maxSize: 1000000, 416 416 }, 417 417 banner: { 418 - type: "blob", 418 + type: 'blob', 419 419 description: 420 - "Larger horizontal image to display behind profile view.", 421 - accept: ["image/png", "image/jpeg"], 420 + 'Larger horizontal image to display behind profile view.', 421 + accept: ['image/png', 'image/jpeg'], 422 422 maxSize: 10000000, 423 423 }, 424 424 labels: { 425 - type: "union", 425 + type: 'union', 426 426 description: 427 - "Self-label values, specific to the Bluesky application, on the overall account.", 428 - refs: ["lex:com.atproto.label.defs#selfLabels"], 427 + 'Self-label values, specific to the Bluesky application, on the overall account.', 428 + refs: ['lex:com.atproto.label.defs#selfLabels'], 429 429 }, 430 430 joinedViaStarterPack: { 431 - type: "ref", 432 - ref: "lex:com.atproto.repo.strongRef", 431 + type: 'ref', 432 + ref: 'lex:com.atproto.repo.strongRef', 433 433 }, 434 434 createdAt: { 435 - type: "string", 436 - format: "datetime", 435 + type: 'string', 436 + format: 'datetime', 437 437 }, 438 438 }, 439 439 }, ··· 442 442 }, 443 443 AppRockskyAlbum: { 444 444 lexicon: 1, 445 - id: "app.rocksky.album", 445 + id: 'app.rocksky.album', 446 446 defs: { 447 447 main: { 448 - type: "record", 449 - description: "A declaration of an album.", 450 - key: "tid", 448 + type: 'record', 449 + description: 'A declaration of an album.', 450 + key: 'tid', 451 451 record: { 452 - type: "object", 453 - required: ["title", "artist", "createdAt"], 452 + type: 'object', 453 + required: ['title', 'artist', 'createdAt'], 454 454 properties: { 455 455 title: { 456 - type: "string", 457 - description: "The title of the album.", 456 + type: 'string', 457 + description: 'The title of the album.', 458 458 minLength: 1, 459 459 maxLength: 512, 460 460 }, 461 461 artist: { 462 - type: "string", 463 - description: "The artist of the album.", 462 + type: 'string', 463 + description: 'The artist of the album.', 464 464 minLength: 1, 465 465 maxLength: 256, 466 466 }, 467 467 duration: { 468 - type: "integer", 469 - description: "The duration of the album in seconds.", 468 + type: 'integer', 469 + description: 'The duration of the album in seconds.', 470 470 }, 471 471 releaseDate: { 472 - type: "string", 473 - description: "The release date of the album.", 474 - format: "datetime", 472 + type: 'string', 473 + description: 'The release date of the album.', 474 + format: 'datetime', 475 475 }, 476 476 year: { 477 - type: "integer", 478 - description: "The year the album was released.", 477 + type: 'integer', 478 + description: 'The year the album was released.', 479 479 }, 480 480 genre: { 481 - type: "string", 482 - description: "The genre of the album.", 481 + type: 'string', 482 + description: 'The genre of the album.', 483 483 maxLength: 256, 484 484 }, 485 485 albumArt: { 486 - type: "blob", 487 - description: "The album art of the album.", 488 - accept: ["image/png", "image/jpeg"], 486 + type: 'blob', 487 + description: 'The album art of the album.', 488 + accept: ['image/png', 'image/jpeg'], 489 489 maxSize: 2000000, 490 490 }, 491 491 tags: { 492 - type: "array", 493 - description: "The tags of the album.", 492 + type: 'array', 493 + description: 'The tags of the album.', 494 494 items: { 495 - type: "string", 495 + type: 'string', 496 496 minLength: 1, 497 497 maxLength: 256, 498 498 }, 499 499 }, 500 500 youtubeLink: { 501 - type: "string", 502 - description: "The YouTube link of the album.", 503 - format: "uri", 501 + type: 'string', 502 + description: 'The YouTube link of the album.', 503 + format: 'uri', 504 504 }, 505 505 spotifyLink: { 506 - type: "string", 507 - description: "The Spotify link of the album.", 508 - format: "uri", 506 + type: 'string', 507 + description: 'The Spotify link of the album.', 508 + format: 'uri', 509 509 }, 510 510 tidalLink: { 511 - type: "string", 512 - description: "The tidal link of the album.", 513 - format: "uri", 511 + type: 'string', 512 + description: 'The tidal link of the album.', 513 + format: 'uri', 514 514 }, 515 515 appleMusicLink: { 516 - type: "string", 517 - description: "The Apple Music link of the album.", 518 - format: "uri", 516 + type: 'string', 517 + description: 'The Apple Music link of the album.', 518 + format: 'uri', 519 519 }, 520 520 createdAt: { 521 - type: "string", 522 - description: "The date and time when the album was created.", 523 - format: "datetime", 521 + type: 'string', 522 + description: 'The date and time when the album was created.', 523 + format: 'datetime', 524 524 }, 525 525 }, 526 526 }, ··· 529 529 }, 530 530 AppRockskyAlbumDefs: { 531 531 lexicon: 1, 532 - id: "app.rocksky.album.defs", 532 + id: 'app.rocksky.album.defs', 533 533 defs: { 534 534 albumViewBasic: { 535 - type: "object", 535 + type: 'object', 536 536 properties: { 537 537 id: { 538 - type: "string", 539 - description: "The unique identifier of the album.", 538 + type: 'string', 539 + description: 'The unique identifier of the album.', 540 540 }, 541 541 uri: { 542 - type: "string", 543 - description: "The URI of the album.", 544 - format: "at-uri", 542 + type: 'string', 543 + description: 'The URI of the album.', 544 + format: 'at-uri', 545 545 }, 546 546 title: { 547 - type: "string", 548 - description: "The title of the album.", 547 + type: 'string', 548 + description: 'The title of the album.', 549 549 }, 550 550 artist: { 551 - type: "string", 552 - description: "The artist of the album.", 551 + type: 'string', 552 + description: 'The artist of the album.', 553 553 }, 554 554 artistUri: { 555 - type: "string", 555 + type: 'string', 556 556 description: "The URI of the album's artist.", 557 - format: "at-uri", 557 + format: 'at-uri', 558 558 }, 559 559 year: { 560 - type: "integer", 561 - description: "The year the album was released.", 560 + type: 'integer', 561 + description: 'The year the album was released.', 562 562 }, 563 563 albumArt: { 564 - type: "string", 565 - description: "The URL of the album art image.", 566 - format: "uri", 564 + type: 'string', 565 + description: 'The URL of the album art image.', 566 + format: 'uri', 567 567 }, 568 568 releaseDate: { 569 - type: "string", 570 - description: "The release date of the album.", 569 + type: 'string', 570 + description: 'The release date of the album.', 571 571 }, 572 572 sha256: { 573 - type: "string", 574 - description: "The SHA256 hash of the album.", 573 + type: 'string', 574 + description: 'The SHA256 hash of the album.', 575 575 }, 576 576 playCount: { 577 - type: "integer", 578 - description: "The number of times the album has been played.", 577 + type: 'integer', 578 + description: 'The number of times the album has been played.', 579 579 minimum: 0, 580 580 }, 581 581 uniqueListeners: { 582 - type: "integer", 582 + type: 'integer', 583 583 description: 584 - "The number of unique listeners who have played the album.", 584 + 'The number of unique listeners who have played the album.', 585 585 minimum: 0, 586 586 }, 587 587 }, 588 588 }, 589 589 albumViewDetailed: { 590 - type: "object", 590 + type: 'object', 591 591 properties: { 592 592 id: { 593 - type: "string", 594 - description: "The unique identifier of the album.", 593 + type: 'string', 594 + description: 'The unique identifier of the album.', 595 595 }, 596 596 uri: { 597 - type: "string", 598 - description: "The URI of the album.", 599 - format: "at-uri", 597 + type: 'string', 598 + description: 'The URI of the album.', 599 + format: 'at-uri', 600 600 }, 601 601 title: { 602 - type: "string", 603 - description: "The title of the album.", 602 + type: 'string', 603 + description: 'The title of the album.', 604 604 }, 605 605 artist: { 606 - type: "string", 607 - description: "The artist of the album.", 606 + type: 'string', 607 + description: 'The artist of the album.', 608 608 }, 609 609 artistUri: { 610 - type: "string", 610 + type: 'string', 611 611 description: "The URI of the album's artist.", 612 - format: "at-uri", 612 + format: 'at-uri', 613 613 }, 614 614 year: { 615 - type: "integer", 616 - description: "The year the album was released.", 615 + type: 'integer', 616 + description: 'The year the album was released.', 617 617 }, 618 618 albumArt: { 619 - type: "string", 620 - description: "The URL of the album art image.", 621 - format: "uri", 619 + type: 'string', 620 + description: 'The URL of the album art image.', 621 + format: 'uri', 622 622 }, 623 623 releaseDate: { 624 - type: "string", 625 - description: "The release date of the album.", 624 + type: 'string', 625 + description: 'The release date of the album.', 626 626 }, 627 627 sha256: { 628 - type: "string", 629 - description: "The SHA256 hash of the album.", 628 + type: 'string', 629 + description: 'The SHA256 hash of the album.', 630 630 }, 631 631 playCount: { 632 - type: "integer", 633 - description: "The number of times the album has been played.", 632 + type: 'integer', 633 + description: 'The number of times the album has been played.', 634 634 minimum: 0, 635 635 }, 636 636 uniqueListeners: { 637 - type: "integer", 637 + type: 'integer', 638 638 description: 639 - "The number of unique listeners who have played the album.", 639 + 'The number of unique listeners who have played the album.', 640 640 minimum: 0, 641 641 }, 642 642 tracks: { 643 - type: "array", 643 + type: 'array', 644 644 items: { 645 - type: "ref", 646 - ref: "lex:app.rocksky.song.defs.songViewBasic", 645 + type: 'ref', 646 + ref: 'lex:app.rocksky.song.defs.songViewBasic', 647 647 }, 648 648 }, 649 649 }, ··· 652 652 }, 653 653 AppRockskyAlbumGetAlbum: { 654 654 lexicon: 1, 655 - id: "app.rocksky.album.getAlbum", 655 + id: 'app.rocksky.album.getAlbum', 656 656 defs: { 657 657 main: { 658 - type: "query", 659 - description: "Get detailed album view", 658 + type: 'query', 659 + description: 'Get detailed album view', 660 660 parameters: { 661 - type: "params", 662 - required: ["uri"], 661 + type: 'params', 662 + required: ['uri'], 663 663 properties: { 664 664 uri: { 665 - type: "string", 666 - description: "The URI of the album to retrieve.", 667 - format: "at-uri", 665 + type: 'string', 666 + description: 'The URI of the album to retrieve.', 667 + format: 'at-uri', 668 668 }, 669 669 }, 670 670 }, 671 671 output: { 672 - encoding: "application/json", 672 + encoding: 'application/json', 673 673 schema: { 674 - type: "ref", 675 - ref: "lex:app.rocksky.album.defs#albumViewDetailed", 674 + type: 'ref', 675 + ref: 'lex:app.rocksky.album.defs#albumViewDetailed', 676 676 }, 677 677 }, 678 678 }, ··· 680 680 }, 681 681 AppRockskyAlbumGetAlbums: { 682 682 lexicon: 1, 683 - id: "app.rocksky.album.getAlbums", 683 + id: 'app.rocksky.album.getAlbums', 684 684 defs: { 685 685 main: { 686 - type: "query", 687 - description: "Get albums", 686 + type: 'query', 687 + description: 'Get albums', 688 688 parameters: { 689 - type: "params", 689 + type: 'params', 690 690 properties: { 691 691 limit: { 692 - type: "integer", 693 - description: "The maximum number of albums to return", 692 + type: 'integer', 693 + description: 'The maximum number of albums to return', 694 694 minimum: 1, 695 695 }, 696 696 offset: { 697 - type: "integer", 698 - description: "The offset for pagination", 697 + type: 'integer', 698 + description: 'The offset for pagination', 699 699 minimum: 0, 700 700 }, 701 701 }, 702 702 }, 703 703 output: { 704 - encoding: "application/json", 704 + encoding: 'application/json', 705 705 schema: { 706 - type: "object", 706 + type: 'object', 707 707 properties: { 708 708 albums: { 709 - type: "array", 709 + type: 'array', 710 710 items: { 711 - type: "ref", 712 - ref: "lex:app.rocksky.album.defs#albumViewBasic", 711 + type: 'ref', 712 + ref: 'lex:app.rocksky.album.defs#albumViewBasic', 713 713 }, 714 714 }, 715 715 }, ··· 720 720 }, 721 721 AppRockskyAlbumGetAlbumTracks: { 722 722 lexicon: 1, 723 - id: "app.rocksky.album.getAlbumTracks", 723 + id: 'app.rocksky.album.getAlbumTracks', 724 724 defs: { 725 725 main: { 726 - type: "query", 727 - description: "Get tracks for an album", 726 + type: 'query', 727 + description: 'Get tracks for an album', 728 728 parameters: { 729 - type: "params", 730 - required: ["uri"], 729 + type: 'params', 730 + required: ['uri'], 731 731 properties: { 732 732 uri: { 733 - type: "string", 734 - description: "The URI of the album to retrieve tracks from", 735 - format: "at-uri", 733 + type: 'string', 734 + description: 'The URI of the album to retrieve tracks from', 735 + format: 'at-uri', 736 736 }, 737 737 }, 738 738 }, 739 739 output: { 740 - encoding: "application/json", 740 + encoding: 'application/json', 741 741 schema: { 742 - type: "object", 742 + type: 'object', 743 743 properties: { 744 744 tracks: { 745 - type: "array", 745 + type: 'array', 746 746 items: { 747 - type: "ref", 748 - ref: "lex:app.rocksky.song.defs#songViewBasic", 747 + type: 'ref', 748 + ref: 'lex:app.rocksky.song.defs#songViewBasic', 749 749 }, 750 750 }, 751 751 }, ··· 756 756 }, 757 757 AppRockskyApikeyCreateApikey: { 758 758 lexicon: 1, 759 - id: "app.rocksky.apikey.createApikey", 759 + id: 'app.rocksky.apikey.createApikey', 760 760 defs: { 761 761 main: { 762 - type: "procedure", 763 - description: "Create a new API key for the authenticated user", 762 + type: 'procedure', 763 + description: 'Create a new API key for the authenticated user', 764 764 input: { 765 - encoding: "application/json", 765 + encoding: 'application/json', 766 766 schema: { 767 - type: "object", 768 - required: ["name"], 767 + type: 'object', 768 + required: ['name'], 769 769 properties: { 770 770 name: { 771 - type: "string", 772 - description: "The name of the API key.", 771 + type: 'string', 772 + description: 'The name of the API key.', 773 773 }, 774 774 description: { 775 - type: "string", 776 - description: "A description for the API key.", 775 + type: 'string', 776 + description: 'A description for the API key.', 777 777 }, 778 778 }, 779 779 }, 780 780 }, 781 781 output: { 782 - encoding: "application/json", 782 + encoding: 'application/json', 783 783 schema: { 784 - type: "ref", 785 - ref: "lex:app.rocksky.apikey.defs#apiKey", 784 + type: 'ref', 785 + ref: 'lex:app.rocksky.apikey.defs#apiKey', 786 786 }, 787 787 }, 788 788 }, ··· 790 790 }, 791 791 AppRockskyApikeyDefs: { 792 792 lexicon: 1, 793 - id: "app.rocksky.apikey.defs", 793 + id: 'app.rocksky.apikey.defs', 794 794 defs: { 795 795 apiKeyView: { 796 - type: "object", 796 + type: 'object', 797 797 properties: { 798 798 id: { 799 - type: "string", 800 - description: "The unique identifier of the API key.", 799 + type: 'string', 800 + description: 'The unique identifier of the API key.', 801 801 }, 802 802 name: { 803 - type: "string", 804 - description: "The name of the API key.", 803 + type: 'string', 804 + description: 'The name of the API key.', 805 805 }, 806 806 description: { 807 - type: "string", 808 - description: "A description for the API key.", 807 + type: 'string', 808 + description: 'A description for the API key.', 809 809 }, 810 810 createdAt: { 811 - type: "string", 812 - description: "The date and time when the API key was created.", 813 - format: "datetime", 811 + type: 'string', 812 + description: 'The date and time when the API key was created.', 813 + format: 'datetime', 814 814 }, 815 815 }, 816 816 }, ··· 818 818 }, 819 819 AppRockskyApikeysDefs: { 820 820 lexicon: 1, 821 - id: "app.rocksky.apikeys.defs", 821 + id: 'app.rocksky.apikeys.defs', 822 822 defs: {}, 823 823 }, 824 824 AppRockskyApikeyGetApikeys: { 825 825 lexicon: 1, 826 - id: "app.rocksky.apikey.getApikeys", 826 + id: 'app.rocksky.apikey.getApikeys', 827 827 defs: { 828 828 main: { 829 - type: "query", 830 - description: "Get a list of API keys for the authenticated user", 829 + type: 'query', 830 + description: 'Get a list of API keys for the authenticated user', 831 831 parameters: { 832 - type: "params", 832 + type: 'params', 833 833 properties: { 834 834 offset: { 835 - type: "integer", 835 + type: 'integer', 836 836 description: 837 - "The number of API keys to skip before starting to collect the result set.", 837 + 'The number of API keys to skip before starting to collect the result set.', 838 838 }, 839 839 limit: { 840 - type: "integer", 841 - description: "The number of API keys to return per page.", 840 + type: 'integer', 841 + description: 'The number of API keys to return per page.', 842 842 }, 843 843 }, 844 844 }, 845 845 output: { 846 - encoding: "application/json", 846 + encoding: 'application/json', 847 847 schema: { 848 - type: "object", 848 + type: 'object', 849 849 properties: { 850 850 apiKeys: { 851 - type: "array", 851 + type: 'array', 852 852 items: { 853 - type: "ref", 854 - ref: "lex:app.rocksky.apikey.defs#apikeyView", 853 + type: 'ref', 854 + ref: 'lex:app.rocksky.apikey.defs#apikeyView', 855 855 }, 856 856 }, 857 857 }, ··· 862 862 }, 863 863 AppRockskyApikeyRemoveApikey: { 864 864 lexicon: 1, 865 - id: "app.rocksky.apikey.removeApikey", 865 + id: 'app.rocksky.apikey.removeApikey', 866 866 defs: { 867 867 main: { 868 - type: "procedure", 869 - description: "Remove an API key for the authenticated user", 868 + type: 'procedure', 869 + description: 'Remove an API key for the authenticated user', 870 870 parameters: { 871 - type: "params", 872 - required: ["id"], 871 + type: 'params', 872 + required: ['id'], 873 873 properties: { 874 874 id: { 875 - type: "string", 876 - description: "The ID of the API key to remove.", 875 + type: 'string', 876 + description: 'The ID of the API key to remove.', 877 877 }, 878 878 }, 879 879 }, 880 880 output: { 881 - encoding: "application/json", 881 + encoding: 'application/json', 882 882 schema: { 883 - type: "ref", 884 - ref: "lex:app.rocksky.apikey.defs#apiKey", 883 + type: 'ref', 884 + ref: 'lex:app.rocksky.apikey.defs#apiKey', 885 885 }, 886 886 }, 887 887 }, ··· 889 889 }, 890 890 AppRockskyApikeyUpdateApikey: { 891 891 lexicon: 1, 892 - id: "app.rocksky.apikey.updateApikey", 892 + id: 'app.rocksky.apikey.updateApikey', 893 893 defs: { 894 894 main: { 895 - type: "procedure", 896 - description: "Update an existing API key for the authenticated user", 895 + type: 'procedure', 896 + description: 'Update an existing API key for the authenticated user', 897 897 input: { 898 - encoding: "application/json", 898 + encoding: 'application/json', 899 899 schema: { 900 - type: "object", 901 - required: ["id", "name"], 900 + type: 'object', 901 + required: ['id', 'name'], 902 902 properties: { 903 903 id: { 904 - type: "string", 905 - description: "The ID of the API key to update.", 904 + type: 'string', 905 + description: 'The ID of the API key to update.', 906 906 }, 907 907 name: { 908 - type: "string", 909 - description: "The new name of the API key.", 908 + type: 'string', 909 + description: 'The new name of the API key.', 910 910 }, 911 911 description: { 912 - type: "string", 913 - description: "A new description for the API key.", 912 + type: 'string', 913 + description: 'A new description for the API key.', 914 914 }, 915 915 }, 916 916 }, 917 917 }, 918 918 output: { 919 - encoding: "application/json", 919 + encoding: 'application/json', 920 920 schema: { 921 - type: "ref", 922 - ref: "lex:app.rocksky.apikey.defs#apiKey", 921 + type: 'ref', 922 + ref: 'lex:app.rocksky.apikey.defs#apiKey', 923 923 }, 924 924 }, 925 925 }, ··· 927 927 }, 928 928 AppRockskyArtist: { 929 929 lexicon: 1, 930 - id: "app.rocksky.artist", 930 + id: 'app.rocksky.artist', 931 931 defs: { 932 932 main: { 933 - type: "record", 934 - description: "A declaration of an artist.", 935 - key: "tid", 933 + type: 'record', 934 + description: 'A declaration of an artist.', 935 + key: 'tid', 936 936 record: { 937 - type: "object", 938 - required: ["name", "createdAt"], 937 + type: 'object', 938 + required: ['name', 'createdAt'], 939 939 properties: { 940 940 name: { 941 - type: "string", 942 - description: "The name of the artist.", 941 + type: 'string', 942 + description: 'The name of the artist.', 943 943 minLength: 1, 944 944 maxLength: 512, 945 945 }, 946 946 bio: { 947 - type: "string", 948 - description: "The biography of the artist.", 947 + type: 'string', 948 + description: 'The biography of the artist.', 949 949 maxLength: 1000, 950 950 }, 951 951 picture: { 952 - type: "blob", 953 - description: "The picture of the artist.", 954 - accept: ["image/png", "image/jpeg"], 952 + type: 'blob', 953 + description: 'The picture of the artist.', 954 + accept: ['image/png', 'image/jpeg'], 955 955 maxSize: 2000000, 956 956 }, 957 957 tags: { 958 - type: "array", 959 - description: "The tags of the artist.", 958 + type: 'array', 959 + description: 'The tags of the artist.', 960 960 items: { 961 - type: "string", 961 + type: 'string', 962 962 minLength: 1, 963 963 maxLength: 256, 964 964 }, 965 965 }, 966 966 born: { 967 - type: "string", 968 - description: "The birth date of the artist.", 969 - format: "datetime", 967 + type: 'string', 968 + description: 'The birth date of the artist.', 969 + format: 'datetime', 970 970 }, 971 971 died: { 972 - type: "string", 973 - description: "The death date of the artist.", 974 - format: "datetime", 972 + type: 'string', 973 + description: 'The death date of the artist.', 974 + format: 'datetime', 975 975 }, 976 976 bornIn: { 977 - type: "string", 978 - description: "The birth place of the artist.", 977 + type: 'string', 978 + description: 'The birth place of the artist.', 979 979 maxLength: 256, 980 980 }, 981 981 createdAt: { 982 - type: "string", 983 - description: "The date when the artist was created.", 984 - format: "datetime", 982 + type: 'string', 983 + description: 'The date when the artist was created.', 984 + format: 'datetime', 985 985 }, 986 986 }, 987 987 }, ··· 990 990 }, 991 991 AppRockskyArtistDefs: { 992 992 lexicon: 1, 993 - id: "app.rocksky.artist.defs", 993 + id: 'app.rocksky.artist.defs', 994 994 defs: { 995 995 artistViewBasic: { 996 - type: "object", 996 + type: 'object', 997 997 properties: { 998 998 id: { 999 - type: "string", 1000 - description: "The unique identifier of the artist.", 999 + type: 'string', 1000 + description: 'The unique identifier of the artist.', 1001 1001 }, 1002 1002 uri: { 1003 - type: "string", 1004 - description: "The URI of the artist.", 1005 - format: "at-uri", 1003 + type: 'string', 1004 + description: 'The URI of the artist.', 1005 + format: 'at-uri', 1006 1006 }, 1007 1007 name: { 1008 - type: "string", 1009 - description: "The name of the artist.", 1008 + type: 'string', 1009 + description: 'The name of the artist.', 1010 1010 }, 1011 1011 picture: { 1012 - type: "string", 1013 - description: "The picture of the artist.", 1012 + type: 'string', 1013 + description: 'The picture of the artist.', 1014 1014 }, 1015 1015 sha256: { 1016 - type: "string", 1017 - description: "The SHA256 hash of the artist.", 1016 + type: 'string', 1017 + description: 'The SHA256 hash of the artist.', 1018 1018 }, 1019 1019 playCount: { 1020 - type: "integer", 1021 - description: "The number of times the artist has been played.", 1020 + type: 'integer', 1021 + description: 'The number of times the artist has been played.', 1022 1022 minimum: 0, 1023 1023 }, 1024 1024 uniqueListeners: { 1025 - type: "integer", 1025 + type: 'integer', 1026 1026 description: 1027 - "The number of unique listeners who have played the artist.", 1027 + 'The number of unique listeners who have played the artist.', 1028 1028 minimum: 0, 1029 1029 }, 1030 1030 }, 1031 1031 }, 1032 1032 artistViewDetailed: { 1033 - type: "object", 1033 + type: 'object', 1034 1034 properties: { 1035 1035 id: { 1036 - type: "string", 1037 - description: "The unique identifier of the artist.", 1036 + type: 'string', 1037 + description: 'The unique identifier of the artist.', 1038 1038 }, 1039 1039 uri: { 1040 - type: "string", 1041 - description: "The URI of the artist.", 1042 - format: "at-uri", 1040 + type: 'string', 1041 + description: 'The URI of the artist.', 1042 + format: 'at-uri', 1043 1043 }, 1044 1044 name: { 1045 - type: "string", 1046 - description: "The name of the artist.", 1045 + type: 'string', 1046 + description: 'The name of the artist.', 1047 1047 }, 1048 1048 picture: { 1049 - type: "string", 1050 - description: "The picture of the artist.", 1049 + type: 'string', 1050 + description: 'The picture of the artist.', 1051 1051 }, 1052 1052 sha256: { 1053 - type: "string", 1054 - description: "The SHA256 hash of the artist.", 1053 + type: 'string', 1054 + description: 'The SHA256 hash of the artist.', 1055 1055 }, 1056 1056 playCount: { 1057 - type: "integer", 1058 - description: "The number of times the artist has been played.", 1057 + type: 'integer', 1058 + description: 'The number of times the artist has been played.', 1059 1059 minimum: 0, 1060 1060 }, 1061 1061 uniqueListeners: { 1062 - type: "integer", 1062 + type: 'integer', 1063 1063 description: 1064 - "The number of unique listeners who have played the artist.", 1064 + 'The number of unique listeners who have played the artist.', 1065 1065 minimum: 0, 1066 1066 }, 1067 1067 }, ··· 1070 1070 }, 1071 1071 AppRockskyArtistGetArtistAlbums: { 1072 1072 lexicon: 1, 1073 - id: "app.rocksky.artist.getArtistAlbums", 1073 + id: 'app.rocksky.artist.getArtistAlbums', 1074 1074 defs: { 1075 1075 main: { 1076 - type: "query", 1076 + type: 'query', 1077 1077 description: "Get artist's albums", 1078 1078 parameters: { 1079 - type: "params", 1080 - required: ["uri"], 1079 + type: 'params', 1080 + required: ['uri'], 1081 1081 properties: { 1082 1082 uri: { 1083 - type: "string", 1084 - description: "The URI of the artist to retrieve albums from", 1085 - format: "at-uri", 1083 + type: 'string', 1084 + description: 'The URI of the artist to retrieve albums from', 1085 + format: 'at-uri', 1086 1086 }, 1087 1087 }, 1088 1088 }, 1089 1089 output: { 1090 - encoding: "application/json", 1090 + encoding: 'application/json', 1091 1091 schema: { 1092 - type: "object", 1092 + type: 'object', 1093 1093 properties: { 1094 1094 albums: { 1095 - type: "array", 1095 + type: 'array', 1096 1096 items: { 1097 - type: "ref", 1098 - ref: "lex:app.rocksky.album.defs#albumViewBasic", 1097 + type: 'ref', 1098 + ref: 'lex:app.rocksky.album.defs#albumViewBasic', 1099 1099 }, 1100 1100 }, 1101 1101 }, ··· 1106 1106 }, 1107 1107 AppRockskyArtistGetArtist: { 1108 1108 lexicon: 1, 1109 - id: "app.rocksky.artist.getArtist", 1109 + id: 'app.rocksky.artist.getArtist', 1110 1110 defs: { 1111 1111 main: { 1112 - type: "query", 1113 - description: "Get artist details", 1112 + type: 'query', 1113 + description: 'Get artist details', 1114 1114 parameters: { 1115 - type: "params", 1116 - required: ["uri"], 1115 + type: 'params', 1116 + required: ['uri'], 1117 1117 properties: { 1118 1118 uri: { 1119 - type: "string", 1120 - description: "The URI of the artist to retrieve details from", 1121 - format: "at-uri", 1119 + type: 'string', 1120 + description: 'The URI of the artist to retrieve details from', 1121 + format: 'at-uri', 1122 1122 }, 1123 1123 }, 1124 1124 }, 1125 1125 output: { 1126 - encoding: "application/json", 1126 + encoding: 'application/json', 1127 1127 schema: { 1128 - type: "ref", 1129 - ref: "lex:app.rocksky.artist.defs#artistViewDetailed", 1128 + type: 'ref', 1129 + ref: 'lex:app.rocksky.artist.defs#artistViewDetailed', 1130 1130 }, 1131 1131 }, 1132 1132 }, ··· 1134 1134 }, 1135 1135 AppRockskyArtistGetArtists: { 1136 1136 lexicon: 1, 1137 - id: "app.rocksky.artist.getArtists", 1137 + id: 'app.rocksky.artist.getArtists', 1138 1138 defs: { 1139 1139 main: { 1140 - type: "query", 1141 - description: "Get artists", 1140 + type: 'query', 1141 + description: 'Get artists', 1142 1142 parameters: { 1143 - type: "params", 1143 + type: 'params', 1144 1144 properties: { 1145 1145 limit: { 1146 - type: "integer", 1147 - description: "The maximum number of artists to return", 1146 + type: 'integer', 1147 + description: 'The maximum number of artists to return', 1148 1148 minimum: 1, 1149 1149 }, 1150 1150 offset: { 1151 - type: "integer", 1152 - description: "The offset for pagination", 1151 + type: 'integer', 1152 + description: 'The offset for pagination', 1153 1153 minimum: 0, 1154 1154 }, 1155 1155 }, 1156 1156 }, 1157 1157 output: { 1158 - encoding: "application/json", 1158 + encoding: 'application/json', 1159 1159 schema: { 1160 - type: "object", 1160 + type: 'object', 1161 1161 properties: { 1162 1162 artists: { 1163 - type: "array", 1163 + type: 'array', 1164 1164 items: { 1165 - type: "ref", 1166 - ref: "lex:app.rocksky.artist.defs#artistViewBasic", 1165 + type: 'ref', 1166 + ref: 'lex:app.rocksky.artist.defs#artistViewBasic', 1167 1167 }, 1168 1168 }, 1169 1169 }, ··· 1174 1174 }, 1175 1175 AppRockskyArtistGetArtistTracks: { 1176 1176 lexicon: 1, 1177 - id: "app.rocksky.artist.getArtistTracks", 1177 + id: 'app.rocksky.artist.getArtistTracks', 1178 1178 defs: { 1179 1179 main: { 1180 - type: "query", 1180 + type: 'query', 1181 1181 description: "Get artist's tracks", 1182 1182 parameters: { 1183 - type: "params", 1183 + type: 'params', 1184 1184 properties: { 1185 1185 uri: { 1186 - type: "string", 1187 - description: "The URI of the artist to retrieve albums from", 1188 - format: "at-uri", 1186 + type: 'string', 1187 + description: 'The URI of the artist to retrieve albums from', 1188 + format: 'at-uri', 1189 1189 }, 1190 1190 limit: { 1191 - type: "integer", 1192 - description: "The maximum number of tracks to return", 1191 + type: 'integer', 1192 + description: 'The maximum number of tracks to return', 1193 1193 minimum: 1, 1194 1194 }, 1195 1195 offset: { 1196 - type: "integer", 1197 - description: "The offset for pagination", 1196 + type: 'integer', 1197 + description: 'The offset for pagination', 1198 1198 minimum: 0, 1199 1199 }, 1200 1200 }, 1201 1201 }, 1202 1202 output: { 1203 - encoding: "application/json", 1203 + encoding: 'application/json', 1204 1204 schema: { 1205 - type: "object", 1205 + type: 'object', 1206 1206 properties: { 1207 1207 tracks: { 1208 - type: "array", 1208 + type: 'array', 1209 1209 items: { 1210 - type: "ref", 1211 - ref: "lex:app.rocksky.song.defs#songViewBasic", 1210 + type: 'ref', 1211 + ref: 'lex:app.rocksky.song.defs#songViewBasic', 1212 1212 }, 1213 1213 }, 1214 1214 }, ··· 1219 1219 }, 1220 1220 AppRockskyChartsDefs: { 1221 1221 lexicon: 1, 1222 - id: "app.rocksky.charts.defs", 1222 + id: 'app.rocksky.charts.defs', 1223 1223 defs: { 1224 1224 chartsView: { 1225 - type: "object", 1225 + type: 'object', 1226 1226 properties: { 1227 1227 scrobbles: { 1228 - type: "array", 1228 + type: 'array', 1229 1229 items: { 1230 - type: "ref", 1231 - ref: "lex:app.rocksky.charts.defs#scrobbleViewBasic", 1230 + type: 'ref', 1231 + ref: 'lex:app.rocksky.charts.defs#scrobbleViewBasic', 1232 1232 }, 1233 1233 }, 1234 1234 }, 1235 1235 }, 1236 1236 scrobbleViewBasic: { 1237 - type: "object", 1237 + type: 'object', 1238 1238 properties: { 1239 1239 date: { 1240 - type: "string", 1241 - description: "The date of the scrobble.", 1242 - format: "datetime", 1240 + type: 'string', 1241 + description: 'The date of the scrobble.', 1242 + format: 'datetime', 1243 1243 }, 1244 1244 count: { 1245 - type: "integer", 1246 - description: "The number of scrobbles on this date.", 1245 + type: 'integer', 1246 + description: 'The number of scrobbles on this date.', 1247 1247 }, 1248 1248 }, 1249 1249 }, ··· 1251 1251 }, 1252 1252 AppRockskyChartsGetScrobblesChart: { 1253 1253 lexicon: 1, 1254 - id: "app.rocksky.charts.getScrobblesChart", 1254 + id: 'app.rocksky.charts.getScrobblesChart', 1255 1255 defs: { 1256 1256 main: { 1257 - type: "query", 1258 - description: "Get the scrobbles chart", 1257 + type: 'query', 1258 + description: 'Get the scrobbles chart', 1259 1259 parameters: { 1260 - type: "params", 1260 + type: 'params', 1261 1261 properties: { 1262 1262 did: { 1263 - type: "string", 1264 - description: "The DID or handle of the actor", 1265 - format: "at-identifier", 1263 + type: 'string', 1264 + description: 'The DID or handle of the actor', 1265 + format: 'at-identifier', 1266 1266 }, 1267 1267 artisturi: { 1268 - type: "string", 1269 - description: "The URI of the artist to filter by", 1270 - format: "at-uri", 1268 + type: 'string', 1269 + description: 'The URI of the artist to filter by', 1270 + format: 'at-uri', 1271 1271 }, 1272 1272 albumuri: { 1273 - type: "string", 1274 - description: "The URI of the album to filter by", 1275 - format: "at-uri", 1273 + type: 'string', 1274 + description: 'The URI of the album to filter by', 1275 + format: 'at-uri', 1276 1276 }, 1277 1277 songuri: { 1278 - type: "string", 1279 - description: "The URI of the track to filter by", 1280 - format: "at-uri", 1278 + type: 'string', 1279 + description: 'The URI of the track to filter by', 1280 + format: 'at-uri', 1281 1281 }, 1282 1282 }, 1283 1283 }, 1284 1284 output: { 1285 - encoding: "application/json", 1285 + encoding: 'application/json', 1286 1286 schema: { 1287 - type: "ref", 1288 - ref: "lex:app.rocksky.charts.defs#chartsView", 1287 + type: 'ref', 1288 + ref: 'lex:app.rocksky.charts.defs#chartsView', 1289 1289 }, 1290 1290 }, 1291 1291 }, ··· 1293 1293 }, 1294 1294 AppRockskyDropboxDefs: { 1295 1295 lexicon: 1, 1296 - id: "app.rocksky.dropbox.defs", 1296 + id: 'app.rocksky.dropbox.defs', 1297 1297 defs: { 1298 1298 fileView: { 1299 - type: "object", 1299 + type: 'object', 1300 1300 properties: { 1301 1301 id: { 1302 - type: "string", 1303 - description: "The unique identifier of the file.", 1302 + type: 'string', 1303 + description: 'The unique identifier of the file.', 1304 1304 }, 1305 1305 name: { 1306 - type: "string", 1307 - description: "The name of the file.", 1306 + type: 'string', 1307 + description: 'The name of the file.', 1308 1308 }, 1309 1309 pathLower: { 1310 - type: "string", 1311 - description: "The lowercased path of the file.", 1310 + type: 'string', 1311 + description: 'The lowercased path of the file.', 1312 1312 }, 1313 1313 pathDisplay: { 1314 - type: "string", 1315 - description: "The display path of the file.", 1314 + type: 'string', 1315 + description: 'The display path of the file.', 1316 1316 }, 1317 1317 clientModified: { 1318 - type: "string", 1318 + type: 'string', 1319 1319 description: 1320 - "The last modified date and time of the file on the client.", 1321 - format: "datetime", 1320 + 'The last modified date and time of the file on the client.', 1321 + format: 'datetime', 1322 1322 }, 1323 1323 serverModified: { 1324 - type: "string", 1324 + type: 'string', 1325 1325 description: 1326 - "The last modified date and time of the file on the server.", 1327 - format: "datetime", 1326 + 'The last modified date and time of the file on the server.', 1327 + format: 'datetime', 1328 1328 }, 1329 1329 }, 1330 1330 }, 1331 1331 fileListView: { 1332 - type: "object", 1332 + type: 'object', 1333 1333 properties: { 1334 1334 files: { 1335 - type: "array", 1336 - description: "A list of files in the Dropbox.", 1335 + type: 'array', 1336 + description: 'A list of files in the Dropbox.', 1337 1337 items: { 1338 - type: "ref", 1339 - ref: "lex:app.rocksky.dropbox.defs#fileView", 1338 + type: 'ref', 1339 + ref: 'lex:app.rocksky.dropbox.defs#fileView', 1340 1340 }, 1341 1341 }, 1342 1342 }, 1343 1343 }, 1344 1344 temporaryLinkView: { 1345 - type: "object", 1345 + type: 'object', 1346 1346 properties: { 1347 1347 link: { 1348 - type: "string", 1349 - description: "The temporary link to access the file.", 1350 - format: "uri", 1348 + type: 'string', 1349 + description: 'The temporary link to access the file.', 1350 + format: 'uri', 1351 1351 }, 1352 1352 }, 1353 1353 }, ··· 1355 1355 }, 1356 1356 AppRockskyDropboxDownloadFile: { 1357 1357 lexicon: 1, 1358 - id: "app.rocksky.dropbox.downloadFile", 1358 + id: 'app.rocksky.dropbox.downloadFile', 1359 1359 defs: { 1360 1360 main: { 1361 - type: "query", 1362 - description: "Download a file from Dropbox by its unique identifier", 1361 + type: 'query', 1362 + description: 'Download a file from Dropbox by its unique identifier', 1363 1363 parameters: { 1364 - type: "params", 1365 - required: ["fileId"], 1364 + type: 'params', 1365 + required: ['fileId'], 1366 1366 properties: { 1367 1367 fileId: { 1368 - type: "string", 1369 - description: "The unique identifier of the file to download", 1368 + type: 'string', 1369 + description: 'The unique identifier of the file to download', 1370 1370 }, 1371 1371 }, 1372 1372 }, 1373 1373 output: { 1374 - encoding: "application/octet-stream", 1374 + encoding: 'application/octet-stream', 1375 1375 }, 1376 1376 }, 1377 1377 }, 1378 1378 }, 1379 1379 AppRockskyDropboxGetFiles: { 1380 1380 lexicon: 1, 1381 - id: "app.rocksky.dropbox.getFiles", 1381 + id: 'app.rocksky.dropbox.getFiles', 1382 1382 defs: { 1383 1383 main: { 1384 - type: "query", 1385 - description: "Retrieve a list of files from Dropbox", 1384 + type: 'query', 1385 + description: 'Retrieve a list of files from Dropbox', 1386 1386 parameters: { 1387 - type: "params", 1387 + type: 'params', 1388 1388 properties: { 1389 1389 at: { 1390 - type: "string", 1391 - description: "Path to the Dropbox folder or root directory", 1390 + type: 'string', 1391 + description: 'Path to the Dropbox folder or root directory', 1392 1392 }, 1393 1393 }, 1394 1394 }, 1395 1395 output: { 1396 - encoding: "application/json", 1396 + encoding: 'application/json', 1397 1397 schema: { 1398 - type: "ref", 1399 - ref: "lex:app.rocksky.dropbox.defs#fileListView", 1398 + type: 'ref', 1399 + ref: 'lex:app.rocksky.dropbox.defs#fileListView', 1400 1400 }, 1401 1401 }, 1402 1402 }, ··· 1404 1404 }, 1405 1405 AppRockskyDropboxGetMetadata: { 1406 1406 lexicon: 1, 1407 - id: "app.rocksky.dropbox.getMetadata", 1407 + id: 'app.rocksky.dropbox.getMetadata', 1408 1408 defs: { 1409 1409 main: { 1410 - type: "query", 1411 - description: "Retrieve metadata of a file or folder in Dropbox", 1410 + type: 'query', 1411 + description: 'Retrieve metadata of a file or folder in Dropbox', 1412 1412 parameters: { 1413 - type: "params", 1414 - required: ["path"], 1413 + type: 'params', 1414 + required: ['path'], 1415 1415 properties: { 1416 1416 path: { 1417 - type: "string", 1418 - description: "Path to the file or folder in Dropbox", 1417 + type: 'string', 1418 + description: 'Path to the file or folder in Dropbox', 1419 1419 }, 1420 1420 }, 1421 1421 }, 1422 1422 output: { 1423 - encoding: "application/json", 1423 + encoding: 'application/json', 1424 1424 schema: { 1425 - type: "ref", 1426 - ref: "lex:app.rocksky.dropbox.defs#fileView", 1425 + type: 'ref', 1426 + ref: 'lex:app.rocksky.dropbox.defs#fileView', 1427 1427 }, 1428 1428 }, 1429 1429 }, ··· 1431 1431 }, 1432 1432 AppRockskyDropboxGetTemporaryLink: { 1433 1433 lexicon: 1, 1434 - id: "app.rocksky.dropbox.getTemporaryLink", 1434 + id: 'app.rocksky.dropbox.getTemporaryLink', 1435 1435 defs: { 1436 1436 main: { 1437 - type: "query", 1438 - description: "Retrieve a temporary link to access a file in Dropbox", 1437 + type: 'query', 1438 + description: 'Retrieve a temporary link to access a file in Dropbox', 1439 1439 parameters: { 1440 - type: "params", 1441 - required: ["path"], 1440 + type: 'params', 1441 + required: ['path'], 1442 1442 properties: { 1443 1443 path: { 1444 - type: "string", 1445 - description: "Path to the file in Dropbox", 1444 + type: 'string', 1445 + description: 'Path to the file in Dropbox', 1446 1446 }, 1447 1447 }, 1448 1448 }, 1449 1449 output: { 1450 - encoding: "application/json", 1450 + encoding: 'application/json', 1451 1451 schema: { 1452 - type: "ref", 1453 - ref: "lex:app.rocksky.dropbox.defs#temporaryLinkView", 1452 + type: 'ref', 1453 + ref: 'lex:app.rocksky.dropbox.defs#temporaryLinkView', 1454 1454 }, 1455 1455 }, 1456 1456 }, ··· 1458 1458 }, 1459 1459 AppRockskyFeedDefs: { 1460 1460 lexicon: 1, 1461 - id: "app.rocksky.feed.defs", 1461 + id: 'app.rocksky.feed.defs', 1462 1462 defs: { 1463 1463 searchResultsView: { 1464 - type: "object", 1464 + type: 'object', 1465 1465 properties: { 1466 1466 hits: { 1467 - type: "array", 1467 + type: 'array', 1468 1468 items: { 1469 - type: "union", 1469 + type: 'union', 1470 1470 refs: [ 1471 - "lex:app.rocksky.song.defs#songViewBasic", 1472 - "lex:app.rocksky.album.defs#albumViewBasic", 1473 - "lex:app.rocksky.artist.defs#artistViewBasic", 1474 - "lex:app.rocksky.playlist.defs#playlistViewBasic", 1475 - "lex:app.rocksky.actor.defs#profileViewBasic", 1471 + 'lex:app.rocksky.song.defs#songViewBasic', 1472 + 'lex:app.rocksky.album.defs#albumViewBasic', 1473 + 'lex:app.rocksky.artist.defs#artistViewBasic', 1474 + 'lex:app.rocksky.playlist.defs#playlistViewBasic', 1475 + 'lex:app.rocksky.actor.defs#profileViewBasic', 1476 1476 ], 1477 1477 }, 1478 1478 }, 1479 1479 processingTimeMs: { 1480 - type: "integer", 1480 + type: 'integer', 1481 1481 }, 1482 1482 limit: { 1483 - type: "integer", 1483 + type: 'integer', 1484 1484 }, 1485 1485 offset: { 1486 - type: "integer", 1486 + type: 'integer', 1487 1487 }, 1488 1488 estimatedTotalHits: { 1489 - type: "integer", 1489 + type: 'integer', 1490 1490 }, 1491 1491 }, 1492 1492 }, 1493 1493 nowPlayingView: { 1494 - type: "object", 1494 + type: 'object', 1495 1495 properties: { 1496 1496 album: { 1497 - type: "string", 1497 + type: 'string', 1498 1498 }, 1499 1499 albumArt: { 1500 - type: "string", 1501 - format: "uri", 1500 + type: 'string', 1501 + format: 'uri', 1502 1502 }, 1503 1503 albumArtist: { 1504 - type: "string", 1504 + type: 'string', 1505 1505 }, 1506 1506 albumUri: { 1507 - type: "string", 1508 - format: "at-uri", 1507 + type: 'string', 1508 + format: 'at-uri', 1509 1509 }, 1510 1510 artist: { 1511 - type: "string", 1511 + type: 'string', 1512 1512 }, 1513 1513 artistUri: { 1514 - type: "string", 1515 - format: "at-uri", 1514 + type: 'string', 1515 + format: 'at-uri', 1516 1516 }, 1517 1517 avatar: { 1518 - type: "string", 1519 - format: "uri", 1518 + type: 'string', 1519 + format: 'uri', 1520 1520 }, 1521 1521 createdAt: { 1522 - type: "string", 1522 + type: 'string', 1523 1523 }, 1524 1524 did: { 1525 - type: "string", 1526 - format: "at-identifier", 1525 + type: 'string', 1526 + format: 'at-identifier', 1527 1527 }, 1528 1528 handle: { 1529 - type: "string", 1529 + type: 'string', 1530 1530 }, 1531 1531 id: { 1532 - type: "string", 1532 + type: 'string', 1533 1533 }, 1534 1534 title: { 1535 - type: "string", 1535 + type: 'string', 1536 1536 }, 1537 1537 trackId: { 1538 - type: "string", 1538 + type: 'string', 1539 1539 }, 1540 1540 trackUri: { 1541 - type: "string", 1542 - format: "at-uri", 1541 + type: 'string', 1542 + format: 'at-uri', 1543 1543 }, 1544 1544 uri: { 1545 - type: "string", 1546 - format: "at-uri", 1545 + type: 'string', 1546 + format: 'at-uri', 1547 1547 }, 1548 1548 }, 1549 1549 }, 1550 1550 nowPlayingsView: { 1551 - type: "object", 1551 + type: 'object', 1552 1552 properties: { 1553 1553 nowPlayings: { 1554 - type: "array", 1554 + type: 'array', 1555 1555 items: { 1556 - type: "ref", 1557 - ref: "lex:app.rocksky.feed.defs#nowPlayingView", 1556 + type: 'ref', 1557 + ref: 'lex:app.rocksky.feed.defs#nowPlayingView', 1558 1558 }, 1559 1559 }, 1560 1560 }, ··· 1563 1563 }, 1564 1564 AppRockskyFeedGetNowPlayings: { 1565 1565 lexicon: 1, 1566 - id: "app.rocksky.feed.getNowPlayings", 1566 + id: 'app.rocksky.feed.getNowPlayings', 1567 1567 defs: { 1568 1568 main: { 1569 - type: "query", 1570 - description: "Get all currently playing tracks by users", 1569 + type: 'query', 1570 + description: 'Get all currently playing tracks by users', 1571 1571 parameters: { 1572 - type: "params", 1572 + type: 'params', 1573 1573 properties: { 1574 1574 size: { 1575 - type: "integer", 1575 + type: 'integer', 1576 1576 description: 1577 - "The maximum number of now playing tracks to return.", 1577 + 'The maximum number of now playing tracks to return.', 1578 1578 minimum: 1, 1579 1579 }, 1580 1580 }, 1581 1581 }, 1582 1582 output: { 1583 - encoding: "application/json", 1583 + encoding: 'application/json', 1584 1584 schema: { 1585 - type: "ref", 1586 - ref: "lex:app.rocksky.feed.defs#nowPlayingsView", 1585 + type: 'ref', 1586 + ref: 'lex:app.rocksky.feed.defs#nowPlayingsView', 1587 1587 }, 1588 1588 }, 1589 1589 }, ··· 1591 1591 }, 1592 1592 AppRockskyFeedSearch: { 1593 1593 lexicon: 1, 1594 - id: "app.rocksky.feed.search", 1594 + id: 'app.rocksky.feed.search', 1595 1595 defs: { 1596 1596 main: { 1597 - type: "query", 1598 - description: "Search for content in the feed", 1597 + type: 'query', 1598 + description: 'Search for content in the feed', 1599 1599 parameters: { 1600 - type: "params", 1601 - required: ["query"], 1600 + type: 'params', 1601 + required: ['query'], 1602 1602 properties: { 1603 1603 query: { 1604 - type: "string", 1605 - description: "The search query string", 1604 + type: 'string', 1605 + description: 'The search query string', 1606 1606 }, 1607 1607 }, 1608 1608 }, 1609 1609 output: { 1610 - encoding: "application/json", 1610 + encoding: 'application/json', 1611 1611 schema: { 1612 - type: "ref", 1613 - ref: "lex:app.rocksky.feed.defs#searchResultsView", 1612 + type: 'ref', 1613 + ref: 'lex:app.rocksky.feed.defs#searchResultsView', 1614 1614 }, 1615 1615 }, 1616 1616 }, ··· 1618 1618 }, 1619 1619 AppRockskyGoogledriveDefs: { 1620 1620 lexicon: 1, 1621 - id: "app.rocksky.googledrive.defs", 1621 + id: 'app.rocksky.googledrive.defs', 1622 1622 defs: { 1623 1623 fileView: { 1624 - type: "object", 1624 + type: 'object', 1625 1625 properties: { 1626 1626 id: { 1627 - type: "string", 1628 - description: "The unique identifier of the file.", 1627 + type: 'string', 1628 + description: 'The unique identifier of the file.', 1629 1629 }, 1630 1630 }, 1631 1631 }, 1632 1632 fileListView: { 1633 - type: "object", 1633 + type: 'object', 1634 1634 properties: { 1635 1635 files: { 1636 - type: "array", 1636 + type: 'array', 1637 1637 items: { 1638 - type: "ref", 1639 - ref: "lex:app.rocksky.googledrive.defs#fileView", 1638 + type: 'ref', 1639 + ref: 'lex:app.rocksky.googledrive.defs#fileView', 1640 1640 }, 1641 1641 }, 1642 1642 }, ··· 1645 1645 }, 1646 1646 AppRockskyGoogledriveDownloadFile: { 1647 1647 lexicon: 1, 1648 - id: "app.rocksky.googledrive.downloadFile", 1648 + id: 'app.rocksky.googledrive.downloadFile', 1649 1649 defs: { 1650 1650 main: { 1651 - type: "query", 1651 + type: 'query', 1652 1652 description: 1653 - "Download a file from Google Drive by its unique identifier", 1653 + 'Download a file from Google Drive by its unique identifier', 1654 1654 parameters: { 1655 - type: "params", 1656 - required: ["fileId"], 1655 + type: 'params', 1656 + required: ['fileId'], 1657 1657 properties: { 1658 1658 fileId: { 1659 - type: "string", 1660 - description: "The unique identifier of the file to download", 1659 + type: 'string', 1660 + description: 'The unique identifier of the file to download', 1661 1661 }, 1662 1662 }, 1663 1663 }, 1664 1664 output: { 1665 - encoding: "application/octet-stream", 1665 + encoding: 'application/octet-stream', 1666 1666 }, 1667 1667 }, 1668 1668 }, 1669 1669 }, 1670 1670 AppRockskyGoogledriveGetFile: { 1671 1671 lexicon: 1, 1672 - id: "app.rocksky.googledrive.getFile", 1672 + id: 'app.rocksky.googledrive.getFile', 1673 1673 defs: { 1674 1674 main: { 1675 - type: "query", 1676 - description: "Get a file from Google Drive by its unique identifier", 1675 + type: 'query', 1676 + description: 'Get a file from Google Drive by its unique identifier', 1677 1677 parameters: { 1678 - type: "params", 1679 - required: ["fileId"], 1678 + type: 'params', 1679 + required: ['fileId'], 1680 1680 properties: { 1681 1681 fileId: { 1682 - type: "string", 1683 - description: "The unique identifier of the file to retrieve", 1682 + type: 'string', 1683 + description: 'The unique identifier of the file to retrieve', 1684 1684 }, 1685 1685 }, 1686 1686 }, 1687 1687 output: { 1688 - encoding: "application/json", 1688 + encoding: 'application/json', 1689 1689 schema: { 1690 - type: "ref", 1691 - ref: "lex:app.rocksky.googledrive.defs#fileView", 1690 + type: 'ref', 1691 + ref: 'lex:app.rocksky.googledrive.defs#fileView', 1692 1692 }, 1693 1693 }, 1694 1694 }, ··· 1696 1696 }, 1697 1697 AppRockskyGoogledriveGetFiles: { 1698 1698 lexicon: 1, 1699 - id: "app.rocksky.googledrive.getFiles", 1699 + id: 'app.rocksky.googledrive.getFiles', 1700 1700 defs: { 1701 1701 main: { 1702 - type: "query", 1703 - description: "Get a list of files from Google Drive", 1702 + type: 'query', 1703 + description: 'Get a list of files from Google Drive', 1704 1704 parameters: { 1705 - type: "params", 1705 + type: 'params', 1706 1706 properties: { 1707 1707 at: { 1708 - type: "string", 1709 - description: "Path to the Google Drive folder or root directory", 1708 + type: 'string', 1709 + description: 'Path to the Google Drive folder or root directory', 1710 1710 }, 1711 1711 }, 1712 1712 }, 1713 1713 output: { 1714 - encoding: "application/json", 1714 + encoding: 'application/json', 1715 1715 schema: { 1716 - type: "ref", 1717 - ref: "lex:app.rocksky.googledrive.defs#fileListView", 1716 + type: 'ref', 1717 + ref: 'lex:app.rocksky.googledrive.defs#fileListView', 1718 1718 }, 1719 1719 }, 1720 1720 }, ··· 1722 1722 }, 1723 1723 AppRockskyLikeDislikeShout: { 1724 1724 lexicon: 1, 1725 - id: "app.rocksky.like.dislikeShout", 1725 + id: 'app.rocksky.like.dislikeShout', 1726 1726 defs: { 1727 1727 main: { 1728 - type: "procedure", 1729 - description: "Dislike a shout", 1728 + type: 'procedure', 1729 + description: 'Dislike a shout', 1730 1730 input: { 1731 - encoding: "application/json", 1731 + encoding: 'application/json', 1732 1732 schema: { 1733 - type: "object", 1733 + type: 'object', 1734 1734 properties: { 1735 1735 uri: { 1736 - type: "string", 1737 - description: "The unique identifier of the shout to dislike", 1738 - format: "at-uri", 1736 + type: 'string', 1737 + description: 'The unique identifier of the shout to dislike', 1738 + format: 'at-uri', 1739 1739 }, 1740 1740 }, 1741 1741 }, 1742 1742 }, 1743 1743 output: { 1744 - encoding: "application/json", 1744 + encoding: 'application/json', 1745 1745 schema: { 1746 - type: "ref", 1747 - ref: "lex:app.rocksky.shout.defs#shoutView", 1746 + type: 'ref', 1747 + ref: 'lex:app.rocksky.shout.defs#shoutView', 1748 1748 }, 1749 1749 }, 1750 1750 }, ··· 1752 1752 }, 1753 1753 AppRockskyLikeDislikeSong: { 1754 1754 lexicon: 1, 1755 - id: "app.rocksky.like.dislikeSong", 1755 + id: 'app.rocksky.like.dislikeSong', 1756 1756 defs: { 1757 1757 main: { 1758 - type: "procedure", 1759 - description: "Dislike a song", 1758 + type: 'procedure', 1759 + description: 'Dislike a song', 1760 1760 input: { 1761 - encoding: "application/json", 1761 + encoding: 'application/json', 1762 1762 schema: { 1763 - type: "object", 1763 + type: 'object', 1764 1764 properties: { 1765 1765 uri: { 1766 - type: "string", 1767 - description: "The unique identifier of the song to dislike", 1768 - format: "at-uri", 1766 + type: 'string', 1767 + description: 'The unique identifier of the song to dislike', 1768 + format: 'at-uri', 1769 1769 }, 1770 1770 }, 1771 1771 }, 1772 1772 }, 1773 1773 output: { 1774 - encoding: "application/json", 1774 + encoding: 'application/json', 1775 1775 schema: { 1776 - type: "ref", 1777 - ref: "lex:app.rocksky.song.defs#songViewDetailed", 1776 + type: 'ref', 1777 + ref: 'lex:app.rocksky.song.defs#songViewDetailed', 1778 1778 }, 1779 1779 }, 1780 1780 }, ··· 1782 1782 }, 1783 1783 AppRockskyLike: { 1784 1784 lexicon: 1, 1785 - id: "app.rocksky.like", 1785 + id: 'app.rocksky.like', 1786 1786 defs: { 1787 1787 main: { 1788 - type: "record", 1789 - description: "A declaration of a like.", 1790 - key: "tid", 1788 + type: 'record', 1789 + description: 'A declaration of a like.', 1790 + key: 'tid', 1791 1791 record: { 1792 - type: "object", 1793 - required: ["createdAt", "subject"], 1792 + type: 'object', 1793 + required: ['createdAt', 'subject'], 1794 1794 properties: { 1795 1795 createdAt: { 1796 - type: "string", 1797 - description: "The date when the like was created.", 1798 - format: "datetime", 1796 + type: 'string', 1797 + description: 'The date when the like was created.', 1798 + format: 'datetime', 1799 1799 }, 1800 1800 subject: { 1801 - type: "ref", 1802 - ref: "lex:com.atproto.repo.strongRef", 1801 + type: 'ref', 1802 + ref: 'lex:com.atproto.repo.strongRef', 1803 1803 }, 1804 1804 }, 1805 1805 }, ··· 1808 1808 }, 1809 1809 AppRockskyLikeLikeShout: { 1810 1810 lexicon: 1, 1811 - id: "app.rocksky.like.likeShout", 1811 + id: 'app.rocksky.like.likeShout', 1812 1812 defs: { 1813 1813 main: { 1814 - type: "procedure", 1815 - description: "Like a shout", 1814 + type: 'procedure', 1815 + description: 'Like a shout', 1816 1816 input: { 1817 - encoding: "application/json", 1817 + encoding: 'application/json', 1818 1818 schema: { 1819 - type: "object", 1819 + type: 'object', 1820 1820 properties: { 1821 1821 uri: { 1822 - type: "string", 1823 - description: "The unique identifier of the shout to like", 1824 - format: "at-uri", 1822 + type: 'string', 1823 + description: 'The unique identifier of the shout to like', 1824 + format: 'at-uri', 1825 1825 }, 1826 1826 }, 1827 1827 }, 1828 1828 }, 1829 1829 output: { 1830 - encoding: "application/json", 1830 + encoding: 'application/json', 1831 1831 schema: { 1832 - type: "ref", 1833 - ref: "lex:app.rocksky.shout.defs#shoutView", 1832 + type: 'ref', 1833 + ref: 'lex:app.rocksky.shout.defs#shoutView', 1834 1834 }, 1835 1835 }, 1836 1836 }, ··· 1838 1838 }, 1839 1839 AppRockskyLikeLikeSong: { 1840 1840 lexicon: 1, 1841 - id: "app.rocksky.like.likeSong", 1841 + id: 'app.rocksky.like.likeSong', 1842 1842 defs: { 1843 1843 main: { 1844 - type: "procedure", 1845 - description: "Like a song", 1844 + type: 'procedure', 1845 + description: 'Like a song', 1846 1846 input: { 1847 - encoding: "application/json", 1847 + encoding: 'application/json', 1848 1848 schema: { 1849 - type: "object", 1849 + type: 'object', 1850 1850 properties: { 1851 1851 uri: { 1852 - type: "string", 1853 - description: "The unique identifier of the song to like", 1854 - format: "at-uri", 1852 + type: 'string', 1853 + description: 'The unique identifier of the song to like', 1854 + format: 'at-uri', 1855 1855 }, 1856 1856 }, 1857 1857 }, 1858 1858 }, 1859 1859 output: { 1860 - encoding: "application/json", 1860 + encoding: 'application/json', 1861 1861 schema: { 1862 - type: "ref", 1863 - ref: "lex:app.rocksky.song.defs#songViewDetailed", 1862 + type: 'ref', 1863 + ref: 'lex:app.rocksky.song.defs#songViewDetailed', 1864 1864 }, 1865 1865 }, 1866 1866 }, ··· 1868 1868 }, 1869 1869 AppRockskyPlayerAddDirectoryToQueue: { 1870 1870 lexicon: 1, 1871 - id: "app.rocksky.player.addDirectoryToQueue", 1871 + id: 'app.rocksky.player.addDirectoryToQueue', 1872 1872 defs: { 1873 1873 main: { 1874 - type: "procedure", 1874 + type: 'procedure', 1875 1875 description: "Add directory to the player's queue", 1876 1876 parameters: { 1877 - type: "params", 1878 - required: ["directory"], 1877 + type: 'params', 1878 + required: ['directory'], 1879 1879 properties: { 1880 1880 playerId: { 1881 - type: "string", 1881 + type: 'string', 1882 1882 }, 1883 1883 directory: { 1884 - type: "string", 1885 - description: "The directory to add to the queue", 1884 + type: 'string', 1885 + description: 'The directory to add to the queue', 1886 1886 }, 1887 1887 position: { 1888 - type: "integer", 1888 + type: 'integer', 1889 1889 description: 1890 - "Position in the queue to insert the directory at, defaults to the end if not specified", 1890 + 'Position in the queue to insert the directory at, defaults to the end if not specified', 1891 1891 }, 1892 1892 shuffle: { 1893 - type: "boolean", 1893 + type: 'boolean', 1894 1894 description: 1895 - "Whether to shuffle the added directory in the queue", 1895 + 'Whether to shuffle the added directory in the queue', 1896 1896 }, 1897 1897 }, 1898 1898 }, ··· 1901 1901 }, 1902 1902 AppRockskyPlayerAddItemsToQueue: { 1903 1903 lexicon: 1, 1904 - id: "app.rocksky.player.addItemsToQueue", 1904 + id: 'app.rocksky.player.addItemsToQueue', 1905 1905 defs: { 1906 1906 main: { 1907 - type: "procedure", 1907 + type: 'procedure', 1908 1908 description: "Add items to the player's queue", 1909 1909 parameters: { 1910 - type: "params", 1911 - required: ["items"], 1910 + type: 'params', 1911 + required: ['items'], 1912 1912 properties: { 1913 1913 playerId: { 1914 - type: "string", 1914 + type: 'string', 1915 1915 }, 1916 1916 items: { 1917 - type: "array", 1917 + type: 'array', 1918 1918 items: { 1919 - type: "string", 1920 - description: "List of file identifiers to add to the queue", 1919 + type: 'string', 1920 + description: 'List of file identifiers to add to the queue', 1921 1921 }, 1922 1922 }, 1923 1923 position: { 1924 - type: "integer", 1924 + type: 'integer', 1925 1925 description: 1926 - "Position in the queue to insert the items at, defaults to the end if not specified", 1926 + 'Position in the queue to insert the items at, defaults to the end if not specified', 1927 1927 }, 1928 1928 shuffle: { 1929 - type: "boolean", 1930 - description: "Whether to shuffle the added items in the queue", 1929 + type: 'boolean', 1930 + description: 'Whether to shuffle the added items in the queue', 1931 1931 }, 1932 1932 }, 1933 1933 }, ··· 1936 1936 }, 1937 1937 AppRockskyPlayerDefs: { 1938 1938 lexicon: 1, 1939 - id: "app.rocksky.player.defs", 1939 + id: 'app.rocksky.player.defs', 1940 1940 defs: { 1941 1941 currentlyPlayingViewDetailed: { 1942 - type: "object", 1942 + type: 'object', 1943 1943 properties: { 1944 1944 title: { 1945 - type: "string", 1946 - description: "The title of the currently playing track", 1945 + type: 'string', 1946 + description: 'The title of the currently playing track', 1947 1947 }, 1948 1948 }, 1949 1949 }, 1950 1950 playbackQueueViewDetailed: { 1951 - type: "object", 1951 + type: 'object', 1952 1952 properties: { 1953 1953 tracks: { 1954 - type: "array", 1954 + type: 'array', 1955 1955 items: { 1956 - type: "ref", 1957 - ref: "lex:app.rocksky.song.defs.songViewBasic", 1956 + type: 'ref', 1957 + ref: 'lex:app.rocksky.song.defs.songViewBasic', 1958 1958 }, 1959 1959 }, 1960 1960 }, ··· 1963 1963 }, 1964 1964 AppRockskyPlayerGetCurrentlyPlaying: { 1965 1965 lexicon: 1, 1966 - id: "app.rocksky.player.getCurrentlyPlaying", 1966 + id: 'app.rocksky.player.getCurrentlyPlaying', 1967 1967 defs: { 1968 1968 main: { 1969 - type: "query", 1970 - description: "Get the currently playing track", 1969 + type: 'query', 1970 + description: 'Get the currently playing track', 1971 1971 parameters: { 1972 - type: "params", 1972 + type: 'params', 1973 1973 properties: { 1974 1974 playerId: { 1975 - type: "string", 1975 + type: 'string', 1976 1976 }, 1977 1977 actor: { 1978 - type: "string", 1978 + type: 'string', 1979 1979 description: 1980 - "Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user.", 1981 - format: "at-identifier", 1980 + 'Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user.', 1981 + format: 'at-identifier', 1982 1982 }, 1983 1983 }, 1984 1984 }, 1985 1985 output: { 1986 - encoding: "application/json", 1986 + encoding: 'application/json', 1987 1987 schema: { 1988 - type: "ref", 1989 - ref: "lex:app.rocksky.player.defs#currentlyPlayingViewDetailed", 1988 + type: 'ref', 1989 + ref: 'lex:app.rocksky.player.defs#currentlyPlayingViewDetailed', 1990 1990 }, 1991 1991 }, 1992 1992 }, ··· 1994 1994 }, 1995 1995 AppRockskyPlayerGetPlaybackQueue: { 1996 1996 lexicon: 1, 1997 - id: "app.rocksky.player.getPlaybackQueue", 1997 + id: 'app.rocksky.player.getPlaybackQueue', 1998 1998 defs: { 1999 1999 main: { 2000 - type: "query", 2001 - description: "Retrieve the current playback queue", 2000 + type: 'query', 2001 + description: 'Retrieve the current playback queue', 2002 2002 parameters: { 2003 - type: "params", 2003 + type: 'params', 2004 2004 properties: { 2005 2005 playerId: { 2006 - type: "string", 2006 + type: 'string', 2007 2007 }, 2008 2008 }, 2009 2009 }, 2010 2010 output: { 2011 - encoding: "application/json", 2011 + encoding: 'application/json', 2012 2012 schema: { 2013 - type: "ref", 2014 - ref: "lex:app.rocksky.player.defs#playbackQueueViewDetailed", 2013 + type: 'ref', 2014 + ref: 'lex:app.rocksky.player.defs#playbackQueueViewDetailed', 2015 2015 }, 2016 2016 }, 2017 2017 }, ··· 2019 2019 }, 2020 2020 AppRockskyPlayerNext: { 2021 2021 lexicon: 1, 2022 - id: "app.rocksky.player.next", 2022 + id: 'app.rocksky.player.next', 2023 2023 defs: { 2024 2024 main: { 2025 - type: "procedure", 2026 - description: "Play the next track in the queue", 2025 + type: 'procedure', 2026 + description: 'Play the next track in the queue', 2027 2027 parameters: { 2028 - type: "params", 2028 + type: 'params', 2029 2029 properties: { 2030 2030 playerId: { 2031 - type: "string", 2031 + type: 'string', 2032 2032 }, 2033 2033 }, 2034 2034 }, ··· 2037 2037 }, 2038 2038 AppRockskyPlayerPause: { 2039 2039 lexicon: 1, 2040 - id: "app.rocksky.player.pause", 2040 + id: 'app.rocksky.player.pause', 2041 2041 defs: { 2042 2042 main: { 2043 - type: "procedure", 2044 - description: "Pause the currently playing track", 2043 + type: 'procedure', 2044 + description: 'Pause the currently playing track', 2045 2045 parameters: { 2046 - type: "params", 2046 + type: 'params', 2047 2047 properties: { 2048 2048 playerId: { 2049 - type: "string", 2049 + type: 'string', 2050 2050 }, 2051 2051 }, 2052 2052 }, ··· 2055 2055 }, 2056 2056 AppRockskyPlayerPlayDirectory: { 2057 2057 lexicon: 1, 2058 - id: "app.rocksky.player.playDirectory", 2058 + id: 'app.rocksky.player.playDirectory', 2059 2059 defs: { 2060 2060 main: { 2061 - type: "procedure", 2062 - description: "Play all tracks in a directory", 2061 + type: 'procedure', 2062 + description: 'Play all tracks in a directory', 2063 2063 parameters: { 2064 - type: "params", 2065 - required: ["directoryId"], 2064 + type: 'params', 2065 + required: ['directoryId'], 2066 2066 properties: { 2067 2067 playerId: { 2068 - type: "string", 2068 + type: 'string', 2069 2069 }, 2070 2070 directoryId: { 2071 - type: "string", 2071 + type: 'string', 2072 2072 }, 2073 2073 shuffle: { 2074 - type: "boolean", 2074 + type: 'boolean', 2075 2075 }, 2076 2076 recurse: { 2077 - type: "boolean", 2077 + type: 'boolean', 2078 2078 }, 2079 2079 position: { 2080 - type: "integer", 2080 + type: 'integer', 2081 2081 }, 2082 2082 }, 2083 2083 }, ··· 2086 2086 }, 2087 2087 AppRockskyPlayerPlayFile: { 2088 2088 lexicon: 1, 2089 - id: "app.rocksky.player.playFile", 2089 + id: 'app.rocksky.player.playFile', 2090 2090 defs: { 2091 2091 main: { 2092 - type: "procedure", 2093 - description: "Play a specific audio file", 2092 + type: 'procedure', 2093 + description: 'Play a specific audio file', 2094 2094 parameters: { 2095 - type: "params", 2096 - required: ["fileId"], 2095 + type: 'params', 2096 + required: ['fileId'], 2097 2097 properties: { 2098 2098 playerId: { 2099 - type: "string", 2099 + type: 'string', 2100 2100 }, 2101 2101 fileId: { 2102 - type: "string", 2102 + type: 'string', 2103 2103 }, 2104 2104 }, 2105 2105 }, ··· 2108 2108 }, 2109 2109 AppRockskyPlayerPlay: { 2110 2110 lexicon: 1, 2111 - id: "app.rocksky.player.play", 2111 + id: 'app.rocksky.player.play', 2112 2112 defs: { 2113 2113 main: { 2114 - type: "procedure", 2115 - description: "Resume playback of the currently paused track", 2114 + type: 'procedure', 2115 + description: 'Resume playback of the currently paused track', 2116 2116 parameters: { 2117 - type: "params", 2117 + type: 'params', 2118 2118 properties: { 2119 2119 playerId: { 2120 - type: "string", 2120 + type: 'string', 2121 2121 }, 2122 2122 }, 2123 2123 }, ··· 2126 2126 }, 2127 2127 AppRockskyPlayerPrevious: { 2128 2128 lexicon: 1, 2129 - id: "app.rocksky.player.previous", 2129 + id: 'app.rocksky.player.previous', 2130 2130 defs: { 2131 2131 main: { 2132 - type: "procedure", 2133 - description: "Play the previous track in the queue", 2132 + type: 'procedure', 2133 + description: 'Play the previous track in the queue', 2134 2134 parameters: { 2135 - type: "params", 2135 + type: 'params', 2136 2136 properties: { 2137 2137 playerId: { 2138 - type: "string", 2138 + type: 'string', 2139 2139 }, 2140 2140 }, 2141 2141 }, ··· 2144 2144 }, 2145 2145 AppRockskyPlayerSeek: { 2146 2146 lexicon: 1, 2147 - id: "app.rocksky.player.seek", 2147 + id: 'app.rocksky.player.seek', 2148 2148 defs: { 2149 2149 main: { 2150 - type: "procedure", 2150 + type: 'procedure', 2151 2151 description: 2152 - "Seek to a specific position in the currently playing track", 2152 + 'Seek to a specific position in the currently playing track', 2153 2153 parameters: { 2154 - type: "params", 2155 - required: ["position"], 2154 + type: 'params', 2155 + required: ['position'], 2156 2156 properties: { 2157 2157 playerId: { 2158 - type: "string", 2158 + type: 'string', 2159 2159 }, 2160 2160 position: { 2161 - type: "integer", 2162 - description: "The position in seconds to seek to", 2161 + type: 'integer', 2162 + description: 'The position in seconds to seek to', 2163 2163 }, 2164 2164 }, 2165 2165 }, ··· 2168 2168 }, 2169 2169 AppRockskyPlaylistCreatePlaylist: { 2170 2170 lexicon: 1, 2171 - id: "app.rocksky.playlist.createPlaylist", 2171 + id: 'app.rocksky.playlist.createPlaylist', 2172 2172 defs: { 2173 2173 main: { 2174 - type: "procedure", 2175 - description: "Create a new playlist", 2174 + type: 'procedure', 2175 + description: 'Create a new playlist', 2176 2176 parameters: { 2177 - type: "params", 2178 - required: ["name"], 2177 + type: 'params', 2178 + required: ['name'], 2179 2179 properties: { 2180 2180 name: { 2181 - type: "string", 2182 - description: "The name of the playlist", 2181 + type: 'string', 2182 + description: 'The name of the playlist', 2183 2183 }, 2184 2184 description: { 2185 - type: "string", 2186 - description: "A brief description of the playlist", 2185 + type: 'string', 2186 + description: 'A brief description of the playlist', 2187 2187 }, 2188 2188 }, 2189 2189 }, ··· 2192 2192 }, 2193 2193 AppRockskyPlaylistDefs: { 2194 2194 lexicon: 1, 2195 - id: "app.rocksky.playlist.defs", 2195 + id: 'app.rocksky.playlist.defs', 2196 2196 defs: { 2197 2197 playlistViewDetailed: { 2198 - type: "object", 2198 + type: 'object', 2199 2199 description: 2200 - "Detailed view of a playlist, including its tracks and metadata", 2200 + 'Detailed view of a playlist, including its tracks and metadata', 2201 2201 properties: { 2202 2202 id: { 2203 - type: "string", 2204 - description: "The unique identifier of the playlist.", 2203 + type: 'string', 2204 + description: 'The unique identifier of the playlist.', 2205 2205 }, 2206 2206 title: { 2207 - type: "string", 2208 - description: "The title of the playlist.", 2207 + type: 'string', 2208 + description: 'The title of the playlist.', 2209 2209 }, 2210 2210 uri: { 2211 - type: "string", 2212 - description: "The URI of the playlist.", 2213 - format: "at-uri", 2211 + type: 'string', 2212 + description: 'The URI of the playlist.', 2213 + format: 'at-uri', 2214 2214 }, 2215 2215 curatorDid: { 2216 - type: "string", 2217 - description: "The DID of the curator of the playlist.", 2218 - format: "at-identifier", 2216 + type: 'string', 2217 + description: 'The DID of the curator of the playlist.', 2218 + format: 'at-identifier', 2219 2219 }, 2220 2220 curatorHandle: { 2221 - type: "string", 2222 - description: "The handle of the curator of the playlist.", 2223 - format: "at-identifier", 2221 + type: 'string', 2222 + description: 'The handle of the curator of the playlist.', 2223 + format: 'at-identifier', 2224 2224 }, 2225 2225 curatorName: { 2226 - type: "string", 2227 - description: "The name of the curator of the playlist.", 2226 + type: 'string', 2227 + description: 'The name of the curator of the playlist.', 2228 2228 }, 2229 2229 curatorAvatarUrl: { 2230 - type: "string", 2231 - description: "The URL of the avatar image of the curator.", 2232 - format: "uri", 2230 + type: 'string', 2231 + description: 'The URL of the avatar image of the curator.', 2232 + format: 'uri', 2233 2233 }, 2234 2234 description: { 2235 - type: "string", 2236 - description: "A description of the playlist.", 2235 + type: 'string', 2236 + description: 'A description of the playlist.', 2237 2237 }, 2238 2238 coverImageUrl: { 2239 - type: "string", 2240 - description: "The URL of the cover image for the playlist.", 2241 - format: "uri", 2239 + type: 'string', 2240 + description: 'The URL of the cover image for the playlist.', 2241 + format: 'uri', 2242 2242 }, 2243 2243 createdAt: { 2244 - type: "string", 2245 - description: "The date and time when the playlist was created.", 2246 - format: "datetime", 2244 + type: 'string', 2245 + description: 'The date and time when the playlist was created.', 2246 + format: 'datetime', 2247 2247 }, 2248 2248 tracks: { 2249 - type: "array", 2250 - description: "A list of tracks in the playlist.", 2249 + type: 'array', 2250 + description: 'A list of tracks in the playlist.', 2251 2251 items: { 2252 - type: "ref", 2253 - ref: "lex:app.rocksky.song.defs#songViewBasic", 2252 + type: 'ref', 2253 + ref: 'lex:app.rocksky.song.defs#songViewBasic', 2254 2254 }, 2255 2255 }, 2256 2256 }, 2257 2257 }, 2258 2258 playlistViewBasic: { 2259 - type: "object", 2260 - description: "Basic view of a playlist, including its metadata", 2259 + type: 'object', 2260 + description: 'Basic view of a playlist, including its metadata', 2261 2261 properties: { 2262 2262 id: { 2263 - type: "string", 2264 - description: "The unique identifier of the playlist.", 2263 + type: 'string', 2264 + description: 'The unique identifier of the playlist.', 2265 2265 }, 2266 2266 title: { 2267 - type: "string", 2268 - description: "The title of the playlist.", 2267 + type: 'string', 2268 + description: 'The title of the playlist.', 2269 2269 }, 2270 2270 uri: { 2271 - type: "string", 2272 - description: "The URI of the playlist.", 2273 - format: "at-uri", 2271 + type: 'string', 2272 + description: 'The URI of the playlist.', 2273 + format: 'at-uri', 2274 2274 }, 2275 2275 curatorDid: { 2276 - type: "string", 2277 - description: "The DID of the curator of the playlist.", 2278 - format: "at-identifier", 2276 + type: 'string', 2277 + description: 'The DID of the curator of the playlist.', 2278 + format: 'at-identifier', 2279 2279 }, 2280 2280 curatorHandle: { 2281 - type: "string", 2282 - description: "The handle of the curator of the playlist.", 2283 - format: "at-identifier", 2281 + type: 'string', 2282 + description: 'The handle of the curator of the playlist.', 2283 + format: 'at-identifier', 2284 2284 }, 2285 2285 curatorName: { 2286 - type: "string", 2287 - description: "The name of the curator of the playlist.", 2286 + type: 'string', 2287 + description: 'The name of the curator of the playlist.', 2288 2288 }, 2289 2289 curatorAvatarUrl: { 2290 - type: "string", 2291 - description: "The URL of the avatar image of the curator.", 2292 - format: "uri", 2290 + type: 'string', 2291 + description: 'The URL of the avatar image of the curator.', 2292 + format: 'uri', 2293 2293 }, 2294 2294 description: { 2295 - type: "string", 2296 - description: "A description of the playlist.", 2295 + type: 'string', 2296 + description: 'A description of the playlist.', 2297 2297 }, 2298 2298 coverImageUrl: { 2299 - type: "string", 2300 - description: "The URL of the cover image for the playlist.", 2301 - format: "uri", 2299 + type: 'string', 2300 + description: 'The URL of the cover image for the playlist.', 2301 + format: 'uri', 2302 2302 }, 2303 2303 createdAt: { 2304 - type: "string", 2305 - description: "The date and time when the playlist was created.", 2306 - format: "datetime", 2304 + type: 'string', 2305 + description: 'The date and time when the playlist was created.', 2306 + format: 'datetime', 2307 2307 }, 2308 2308 trackCount: { 2309 - type: "integer", 2310 - description: "The number of tracks in the playlist.", 2309 + type: 'integer', 2310 + description: 'The number of tracks in the playlist.', 2311 2311 minimum: 0, 2312 2312 }, 2313 2313 }, ··· 2316 2316 }, 2317 2317 AppRockskyPlaylistGetPlaylist: { 2318 2318 lexicon: 1, 2319 - id: "app.rocksky.playlist.getPlaylist", 2319 + id: 'app.rocksky.playlist.getPlaylist', 2320 2320 defs: { 2321 2321 main: { 2322 - type: "query", 2323 - description: "Retrieve a playlist by its ID", 2322 + type: 'query', 2323 + description: 'Retrieve a playlist by its ID', 2324 2324 parameters: { 2325 - type: "params", 2326 - required: ["uri"], 2325 + type: 'params', 2326 + required: ['uri'], 2327 2327 properties: { 2328 2328 uri: { 2329 - type: "string", 2330 - description: "The URI of the playlist to retrieve.", 2331 - format: "at-uri", 2329 + type: 'string', 2330 + description: 'The URI of the playlist to retrieve.', 2331 + format: 'at-uri', 2332 2332 }, 2333 2333 }, 2334 2334 }, 2335 2335 output: { 2336 - encoding: "application/json", 2336 + encoding: 'application/json', 2337 2337 schema: { 2338 - type: "ref", 2339 - ref: "lex:app.rocksky.playlist.defs#playlistViewDetailed", 2338 + type: 'ref', 2339 + ref: 'lex:app.rocksky.playlist.defs#playlistViewDetailed', 2340 2340 }, 2341 2341 }, 2342 2342 }, ··· 2344 2344 }, 2345 2345 AppRockskyPlaylistGetPlaylists: { 2346 2346 lexicon: 1, 2347 - id: "app.rocksky.playlist.getPlaylists", 2347 + id: 'app.rocksky.playlist.getPlaylists', 2348 2348 defs: { 2349 2349 main: { 2350 - type: "query", 2351 - description: "Retrieve a list of playlists", 2350 + type: 'query', 2351 + description: 'Retrieve a list of playlists', 2352 2352 parameters: { 2353 - type: "params", 2353 + type: 'params', 2354 2354 properties: { 2355 2355 limit: { 2356 - type: "integer", 2357 - description: "The maximum number of playlists to return.", 2356 + type: 'integer', 2357 + description: 'The maximum number of playlists to return.', 2358 2358 }, 2359 2359 offset: { 2360 - type: "integer", 2360 + type: 'integer', 2361 2361 description: 2362 - "The offset for pagination, used to skip a number of playlists.", 2362 + 'The offset for pagination, used to skip a number of playlists.', 2363 2363 }, 2364 2364 }, 2365 2365 }, 2366 2366 output: { 2367 - encoding: "application/json", 2367 + encoding: 'application/json', 2368 2368 schema: { 2369 - type: "object", 2369 + type: 'object', 2370 2370 properties: { 2371 2371 playlists: { 2372 - type: "array", 2372 + type: 'array', 2373 2373 items: { 2374 - type: "ref", 2375 - ref: "lex:app.rocksky.playlist.defs#playlistViewBasic", 2374 + type: 'ref', 2375 + ref: 'lex:app.rocksky.playlist.defs#playlistViewBasic', 2376 2376 }, 2377 2377 }, 2378 2378 }, ··· 2383 2383 }, 2384 2384 AppRockskyPlaylistInsertDirectory: { 2385 2385 lexicon: 1, 2386 - id: "app.rocksky.playlist.insertDirectory", 2386 + id: 'app.rocksky.playlist.insertDirectory', 2387 2387 defs: { 2388 2388 main: { 2389 - type: "procedure", 2390 - description: "Insert a directory into a playlist", 2389 + type: 'procedure', 2390 + description: 'Insert a directory into a playlist', 2391 2391 parameters: { 2392 - type: "params", 2393 - required: ["uri", "directory"], 2392 + type: 'params', 2393 + required: ['uri', 'directory'], 2394 2394 properties: { 2395 2395 uri: { 2396 - type: "string", 2397 - description: "The URI of the playlist to start", 2398 - format: "at-uri", 2396 + type: 'string', 2397 + description: 'The URI of the playlist to start', 2398 + format: 'at-uri', 2399 2399 }, 2400 2400 directory: { 2401 - type: "string", 2402 - description: "The directory (id) to insert into the playlist", 2401 + type: 'string', 2402 + description: 'The directory (id) to insert into the playlist', 2403 2403 }, 2404 2404 position: { 2405 - type: "integer", 2405 + type: 'integer', 2406 2406 description: 2407 - "The position in the playlist to insert the directory at, if not specified, the directory will be appended", 2407 + 'The position in the playlist to insert the directory at, if not specified, the directory will be appended', 2408 2408 }, 2409 2409 }, 2410 2410 }, ··· 2413 2413 }, 2414 2414 AppRockskyPlaylistInsertFiles: { 2415 2415 lexicon: 1, 2416 - id: "app.rocksky.playlist.insertFiles", 2416 + id: 'app.rocksky.playlist.insertFiles', 2417 2417 defs: { 2418 2418 main: { 2419 - type: "procedure", 2420 - description: "Insert files into a playlist", 2419 + type: 'procedure', 2420 + description: 'Insert files into a playlist', 2421 2421 parameters: { 2422 - type: "params", 2423 - required: ["uri", "files"], 2422 + type: 'params', 2423 + required: ['uri', 'files'], 2424 2424 properties: { 2425 2425 uri: { 2426 - type: "string", 2427 - description: "The URI of the playlist to start", 2428 - format: "at-uri", 2426 + type: 'string', 2427 + description: 'The URI of the playlist to start', 2428 + format: 'at-uri', 2429 2429 }, 2430 2430 files: { 2431 - type: "array", 2431 + type: 'array', 2432 2432 items: { 2433 - type: "string", 2434 - description: "List of file (id) to insert into the playlist", 2433 + type: 'string', 2434 + description: 'List of file (id) to insert into the playlist', 2435 2435 }, 2436 2436 }, 2437 2437 position: { 2438 - type: "integer", 2438 + type: 'integer', 2439 2439 description: 2440 - "The position in the playlist to insert the files at, if not specified, files will be appended", 2440 + 'The position in the playlist to insert the files at, if not specified, files will be appended', 2441 2441 }, 2442 2442 }, 2443 2443 }, ··· 2446 2446 }, 2447 2447 AppRockskyPlaylist: { 2448 2448 lexicon: 1, 2449 - id: "app.rocksky.playlist", 2449 + id: 'app.rocksky.playlist', 2450 2450 defs: { 2451 2451 main: { 2452 - type: "record", 2453 - description: "A declaration of a playlist.", 2454 - key: "tid", 2452 + type: 'record', 2453 + description: 'A declaration of a playlist.', 2454 + key: 'tid', 2455 2455 record: { 2456 - type: "object", 2457 - required: ["name", "createdAt"], 2456 + type: 'object', 2457 + required: ['name', 'createdAt'], 2458 2458 properties: { 2459 2459 name: { 2460 - type: "string", 2461 - description: "The name of the playlist.", 2460 + type: 'string', 2461 + description: 'The name of the playlist.', 2462 2462 minLength: 1, 2463 2463 maxLength: 512, 2464 2464 }, 2465 2465 description: { 2466 - type: "string", 2467 - description: "The playlist description.", 2466 + type: 'string', 2467 + description: 'The playlist description.', 2468 2468 minLength: 1, 2469 2469 maxLength: 256, 2470 2470 }, 2471 2471 picture: { 2472 - type: "blob", 2473 - description: "The picture of the playlist.", 2474 - accept: ["image/png", "image/jpeg"], 2472 + type: 'blob', 2473 + description: 'The picture of the playlist.', 2474 + accept: ['image/png', 'image/jpeg'], 2475 2475 maxSize: 2000000, 2476 2476 }, 2477 2477 tracks: { 2478 - type: "array", 2479 - description: "The tracks in the playlist.", 2478 + type: 'array', 2479 + description: 'The tracks in the playlist.', 2480 2480 items: { 2481 - type: "ref", 2482 - ref: "lex:app.rocksky.song#record", 2481 + type: 'ref', 2482 + ref: 'lex:app.rocksky.song#record', 2483 2483 }, 2484 2484 }, 2485 2485 createdAt: { 2486 - type: "string", 2487 - description: "The date the playlist was created.", 2488 - format: "datetime", 2486 + type: 'string', 2487 + description: 'The date the playlist was created.', 2488 + format: 'datetime', 2489 2489 }, 2490 2490 spotifyLink: { 2491 - type: "string", 2492 - description: "The Spotify link of the playlist.", 2491 + type: 'string', 2492 + description: 'The Spotify link of the playlist.', 2493 2493 }, 2494 2494 tidalLink: { 2495 - type: "string", 2496 - description: "The Tidal link of the playlist.", 2495 + type: 'string', 2496 + description: 'The Tidal link of the playlist.', 2497 2497 }, 2498 2498 youtubeLink: { 2499 - type: "string", 2500 - description: "The YouTube link of the playlist.", 2499 + type: 'string', 2500 + description: 'The YouTube link of the playlist.', 2501 2501 }, 2502 2502 appleMusicLink: { 2503 - type: "string", 2504 - description: "The Apple Music link of the playlist.", 2503 + type: 'string', 2504 + description: 'The Apple Music link of the playlist.', 2505 2505 }, 2506 2506 }, 2507 2507 }, ··· 2510 2510 }, 2511 2511 AppRockskyPlaylistRemovePlaylist: { 2512 2512 lexicon: 1, 2513 - id: "app.rocksky.playlist.removePlaylist", 2513 + id: 'app.rocksky.playlist.removePlaylist', 2514 2514 defs: { 2515 2515 main: { 2516 - type: "procedure", 2517 - description: "Remove a playlist", 2516 + type: 'procedure', 2517 + description: 'Remove a playlist', 2518 2518 parameters: { 2519 - type: "params", 2520 - required: ["uri"], 2519 + type: 'params', 2520 + required: ['uri'], 2521 2521 properties: { 2522 2522 uri: { 2523 - type: "string", 2524 - description: "The URI of the playlist to remove", 2525 - format: "at-uri", 2523 + type: 'string', 2524 + description: 'The URI of the playlist to remove', 2525 + format: 'at-uri', 2526 2526 }, 2527 2527 }, 2528 2528 }, ··· 2531 2531 }, 2532 2532 AppRockskyPlaylistRemoveTrack: { 2533 2533 lexicon: 1, 2534 - id: "app.rocksky.playlist.removeTrack", 2534 + id: 'app.rocksky.playlist.removeTrack', 2535 2535 defs: { 2536 2536 main: { 2537 - type: "procedure", 2538 - description: "Remove a track from a playlist", 2537 + type: 'procedure', 2538 + description: 'Remove a track from a playlist', 2539 2539 parameters: { 2540 - type: "params", 2541 - required: ["uri", "position"], 2540 + type: 'params', 2541 + required: ['uri', 'position'], 2542 2542 properties: { 2543 2543 uri: { 2544 - type: "string", 2545 - description: "The URI of the playlist to remove the track from", 2546 - format: "at-uri", 2544 + type: 'string', 2545 + description: 'The URI of the playlist to remove the track from', 2546 + format: 'at-uri', 2547 2547 }, 2548 2548 position: { 2549 - type: "integer", 2549 + type: 'integer', 2550 2550 description: 2551 - "The position of the track to remove in the playlist", 2551 + 'The position of the track to remove in the playlist', 2552 2552 }, 2553 2553 }, 2554 2554 }, ··· 2557 2557 }, 2558 2558 AppRockskyPlaylistStartPlaylist: { 2559 2559 lexicon: 1, 2560 - id: "app.rocksky.playlist.startPlaylist", 2560 + id: 'app.rocksky.playlist.startPlaylist', 2561 2561 defs: { 2562 2562 main: { 2563 - type: "procedure", 2564 - description: "Start a playlist", 2563 + type: 'procedure', 2564 + description: 'Start a playlist', 2565 2565 parameters: { 2566 - type: "params", 2567 - required: ["uri"], 2566 + type: 'params', 2567 + required: ['uri'], 2568 2568 properties: { 2569 2569 uri: { 2570 - type: "string", 2571 - description: "The URI of the playlist to start", 2572 - format: "at-uri", 2570 + type: 'string', 2571 + description: 'The URI of the playlist to start', 2572 + format: 'at-uri', 2573 2573 }, 2574 2574 shuffle: { 2575 - type: "boolean", 2576 - description: "Whether to shuffle the playlist when starting it", 2575 + type: 'boolean', 2576 + description: 'Whether to shuffle the playlist when starting it', 2577 2577 }, 2578 2578 position: { 2579 - type: "integer", 2579 + type: 'integer', 2580 2580 description: 2581 - "The position in the playlist to start from, if not specified, starts from the beginning", 2581 + 'The position in the playlist to start from, if not specified, starts from the beginning', 2582 2582 }, 2583 2583 }, 2584 2584 }, ··· 2587 2587 }, 2588 2588 AppRockskyRadioDefs: { 2589 2589 lexicon: 1, 2590 - id: "app.rocksky.radio.defs", 2590 + id: 'app.rocksky.radio.defs', 2591 2591 defs: { 2592 2592 radioViewBasic: { 2593 - type: "object", 2593 + type: 'object', 2594 2594 properties: { 2595 2595 id: { 2596 - type: "string", 2597 - description: "The unique identifier of the radio.", 2596 + type: 'string', 2597 + description: 'The unique identifier of the radio.', 2598 2598 }, 2599 2599 name: { 2600 - type: "string", 2601 - description: "The name of the radio.", 2600 + type: 'string', 2601 + description: 'The name of the radio.', 2602 2602 }, 2603 2603 description: { 2604 - type: "string", 2605 - description: "A brief description of the radio.", 2604 + type: 'string', 2605 + description: 'A brief description of the radio.', 2606 2606 }, 2607 2607 createdAt: { 2608 - type: "string", 2609 - description: "The date and time when the radio was created.", 2610 - format: "datetime", 2608 + type: 'string', 2609 + description: 'The date and time when the radio was created.', 2610 + format: 'datetime', 2611 2611 }, 2612 2612 }, 2613 2613 }, 2614 2614 radioViewDetailed: { 2615 - type: "object", 2615 + type: 'object', 2616 2616 properties: { 2617 2617 id: { 2618 - type: "string", 2619 - description: "The unique identifier of the radio.", 2618 + type: 'string', 2619 + description: 'The unique identifier of the radio.', 2620 2620 }, 2621 2621 name: { 2622 - type: "string", 2623 - description: "The name of the radio.", 2622 + type: 'string', 2623 + description: 'The name of the radio.', 2624 2624 }, 2625 2625 description: { 2626 - type: "string", 2627 - description: "A brief description of the radio.", 2626 + type: 'string', 2627 + description: 'A brief description of the radio.', 2628 2628 }, 2629 2629 website: { 2630 - type: "string", 2631 - description: "The website of the radio.", 2632 - format: "uri", 2630 + type: 'string', 2631 + description: 'The website of the radio.', 2632 + format: 'uri', 2633 2633 }, 2634 2634 url: { 2635 - type: "string", 2636 - description: "The streaming URL of the radio.", 2637 - format: "uri", 2635 + type: 'string', 2636 + description: 'The streaming URL of the radio.', 2637 + format: 'uri', 2638 2638 }, 2639 2639 genre: { 2640 - type: "string", 2641 - description: "The genre of the radio.", 2640 + type: 'string', 2641 + description: 'The genre of the radio.', 2642 2642 }, 2643 2643 logo: { 2644 - type: "string", 2645 - description: "The logo of the radio station.", 2644 + type: 'string', 2645 + description: 'The logo of the radio station.', 2646 2646 }, 2647 2647 createdAt: { 2648 - type: "string", 2649 - description: "The date and time when the radio was created.", 2650 - format: "datetime", 2648 + type: 'string', 2649 + description: 'The date and time when the radio was created.', 2650 + format: 'datetime', 2651 2651 }, 2652 2652 }, 2653 2653 }, ··· 2655 2655 }, 2656 2656 AppRockskyRadio: { 2657 2657 lexicon: 1, 2658 - id: "app.rocksky.radio", 2658 + id: 'app.rocksky.radio', 2659 2659 defs: { 2660 2660 main: { 2661 - type: "record", 2662 - description: "A declaration of a radio station.", 2663 - key: "tid", 2661 + type: 'record', 2662 + description: 'A declaration of a radio station.', 2663 + key: 'tid', 2664 2664 record: { 2665 - type: "object", 2666 - required: ["name", "url", "createdAt"], 2665 + type: 'object', 2666 + required: ['name', 'url', 'createdAt'], 2667 2667 properties: { 2668 2668 name: { 2669 - type: "string", 2670 - description: "The name of the radio station.", 2669 + type: 'string', 2670 + description: 'The name of the radio station.', 2671 2671 minLength: 1, 2672 2672 maxLength: 512, 2673 2673 }, 2674 2674 url: { 2675 - type: "string", 2676 - description: "The URL of the radio station.", 2677 - format: "uri", 2675 + type: 'string', 2676 + description: 'The URL of the radio station.', 2677 + format: 'uri', 2678 2678 }, 2679 2679 description: { 2680 - type: "string", 2681 - description: "A description of the radio station.", 2680 + type: 'string', 2681 + description: 'A description of the radio station.', 2682 2682 minLength: 1, 2683 2683 maxLength: 1000, 2684 2684 }, 2685 2685 genre: { 2686 - type: "string", 2687 - description: "The genre of the radio station.", 2686 + type: 'string', 2687 + description: 'The genre of the radio station.', 2688 2688 minLength: 1, 2689 2689 maxLength: 256, 2690 2690 }, 2691 2691 logo: { 2692 - type: "blob", 2693 - description: "The logo of the radio station.", 2694 - accept: ["image/png", "image/jpeg"], 2692 + type: 'blob', 2693 + description: 'The logo of the radio station.', 2694 + accept: ['image/png', 'image/jpeg'], 2695 2695 maxSize: 2000000, 2696 2696 }, 2697 2697 website: { 2698 - type: "string", 2699 - description: "The website of the radio station.", 2700 - format: "uri", 2698 + type: 'string', 2699 + description: 'The website of the radio station.', 2700 + format: 'uri', 2701 2701 }, 2702 2702 createdAt: { 2703 - type: "string", 2704 - description: "The date when the radio station was created.", 2705 - format: "datetime", 2703 + type: 'string', 2704 + description: 'The date when the radio station was created.', 2705 + format: 'datetime', 2706 2706 }, 2707 2707 }, 2708 2708 }, ··· 2711 2711 }, 2712 2712 AppRockskyScrobbleCreateScrobble: { 2713 2713 lexicon: 1, 2714 - id: "app.rocksky.scrobble.createScrobble", 2714 + id: 'app.rocksky.scrobble.createScrobble', 2715 2715 defs: { 2716 2716 main: { 2717 - type: "procedure", 2718 - description: "Create a new scrobble", 2717 + type: 'procedure', 2718 + description: 'Create a new scrobble', 2719 2719 input: { 2720 - encoding: "application/json", 2720 + encoding: 'application/json', 2721 2721 schema: { 2722 - type: "object", 2723 - required: ["title", "artist"], 2722 + type: 'object', 2723 + required: ['title', 'artist'], 2724 2724 properties: { 2725 2725 title: { 2726 - type: "string", 2727 - description: "The title of the track being scrobbled", 2726 + type: 'string', 2727 + description: 'The title of the track being scrobbled', 2728 2728 }, 2729 2729 artist: { 2730 - type: "string", 2731 - description: "The artist of the track being scrobbled", 2730 + type: 'string', 2731 + description: 'The artist of the track being scrobbled', 2732 2732 }, 2733 2733 album: { 2734 - type: "string", 2735 - description: "The album of the track being scrobbled", 2734 + type: 'string', 2735 + description: 'The album of the track being scrobbled', 2736 2736 }, 2737 2737 duration: { 2738 - type: "integer", 2739 - description: "The duration of the track in seconds", 2738 + type: 'integer', 2739 + description: 'The duration of the track in seconds', 2740 2740 }, 2741 2741 mbId: { 2742 - type: "string", 2743 - description: "The MusicBrainz ID of the track, if available", 2742 + type: 'string', 2743 + description: 'The MusicBrainz ID of the track, if available', 2744 2744 }, 2745 2745 albumArt: { 2746 - type: "string", 2747 - description: "The URL of the album art for the track", 2748 - format: "uri", 2746 + type: 'string', 2747 + description: 'The URL of the album art for the track', 2748 + format: 'uri', 2749 2749 }, 2750 2750 trackNumber: { 2751 - type: "integer", 2752 - description: "The track number of the track in the album", 2751 + type: 'integer', 2752 + description: 'The track number of the track in the album', 2753 2753 }, 2754 2754 releaseDate: { 2755 - type: "string", 2755 + type: 'string', 2756 2756 description: 2757 - "The release date of the track, formatted as YYYY-MM-DD", 2757 + 'The release date of the track, formatted as YYYY-MM-DD', 2758 2758 }, 2759 2759 year: { 2760 - type: "integer", 2761 - description: "The year the track was released", 2760 + type: 'integer', 2761 + description: 'The year the track was released', 2762 2762 }, 2763 2763 discNumber: { 2764 - type: "integer", 2764 + type: 'integer', 2765 2765 description: 2766 - "The disc number of the track in the album, if applicable", 2766 + 'The disc number of the track in the album, if applicable', 2767 2767 }, 2768 2768 lyrics: { 2769 - type: "string", 2770 - description: "The lyrics of the track, if available", 2769 + type: 'string', 2770 + description: 'The lyrics of the track, if available', 2771 2771 }, 2772 2772 composer: { 2773 - type: "string", 2774 - description: "The composer of the track, if available", 2773 + type: 'string', 2774 + description: 'The composer of the track, if available', 2775 2775 }, 2776 2776 copyrightMessage: { 2777 - type: "string", 2777 + type: 'string', 2778 2778 description: 2779 - "The copyright message for the track, if available", 2779 + 'The copyright message for the track, if available', 2780 2780 }, 2781 2781 label: { 2782 - type: "string", 2783 - description: "The record label of the track, if available", 2782 + type: 'string', 2783 + description: 'The record label of the track, if available', 2784 2784 }, 2785 2785 artistPicture: { 2786 - type: "string", 2786 + type: 'string', 2787 2787 description: "The URL of the artist's picture, if available", 2788 - format: "uri", 2788 + format: 'uri', 2789 2789 }, 2790 2790 spotifyLink: { 2791 - type: "string", 2792 - description: "The Spotify link for the track, if available", 2793 - format: "uri", 2791 + type: 'string', 2792 + description: 'The Spotify link for the track, if available', 2793 + format: 'uri', 2794 2794 }, 2795 2795 lastfmLink: { 2796 - type: "string", 2797 - description: "The Last.fm link for the track, if available", 2798 - format: "uri", 2796 + type: 'string', 2797 + description: 'The Last.fm link for the track, if available', 2798 + format: 'uri', 2799 2799 }, 2800 2800 tidalLink: { 2801 - type: "string", 2802 - description: "The Tidal link for the track, if available", 2803 - format: "uri", 2801 + type: 'string', 2802 + description: 'The Tidal link for the track, if available', 2803 + format: 'uri', 2804 2804 }, 2805 2805 appleMusicLink: { 2806 - type: "string", 2807 - description: "The Apple Music link for the track, if available", 2808 - format: "uri", 2806 + type: 'string', 2807 + description: 'The Apple Music link for the track, if available', 2808 + format: 'uri', 2809 2809 }, 2810 2810 youtubeLink: { 2811 - type: "string", 2812 - description: "The Youtube link for the track, if available", 2813 - format: "uri", 2811 + type: 'string', 2812 + description: 'The Youtube link for the track, if available', 2813 + format: 'uri', 2814 2814 }, 2815 2815 deezerLink: { 2816 - type: "string", 2817 - description: "The Deezer link for the track, if available", 2818 - format: "uri", 2816 + type: 'string', 2817 + description: 'The Deezer link for the track, if available', 2818 + format: 'uri', 2819 2819 }, 2820 2820 timestamp: { 2821 - type: "integer", 2821 + type: 'integer', 2822 2822 description: 2823 - "The timestamp of the scrobble in milliseconds since epoch", 2823 + 'The timestamp of the scrobble in milliseconds since epoch', 2824 2824 }, 2825 2825 }, 2826 2826 }, 2827 2827 }, 2828 2828 output: { 2829 - encoding: "application/json", 2829 + encoding: 'application/json', 2830 2830 schema: { 2831 - type: "ref", 2832 - ref: "lex:app.rocksky.scrobble.defs#scrobbleViewBasic", 2831 + type: 'ref', 2832 + ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 2833 2833 }, 2834 2834 }, 2835 2835 }, ··· 2837 2837 }, 2838 2838 AppRockskyScrobbleDefs: { 2839 2839 lexicon: 1, 2840 - id: "app.rocksky.scrobble.defs", 2840 + id: 'app.rocksky.scrobble.defs', 2841 2841 defs: { 2842 2842 scrobbleViewBasic: { 2843 - type: "object", 2843 + type: 'object', 2844 2844 properties: { 2845 2845 id: { 2846 - type: "string", 2847 - description: "The unique identifier of the scrobble.", 2846 + type: 'string', 2847 + description: 'The unique identifier of the scrobble.', 2848 2848 }, 2849 2849 user: { 2850 - type: "string", 2851 - description: "The handle of the user who created the scrobble.", 2850 + type: 'string', 2851 + description: 'The handle of the user who created the scrobble.', 2852 + }, 2853 + userDisplayName: { 2854 + type: 'string', 2855 + description: 2856 + 'The display name of the user who created the scrobble.', 2857 + }, 2858 + userAvatar: { 2859 + type: 'string', 2860 + description: 'The avatar URL of the user who created the scrobble.', 2861 + format: 'uri', 2852 2862 }, 2853 2863 title: { 2854 - type: "string", 2855 - description: "The title of the scrobble.", 2864 + type: 'string', 2865 + description: 'The title of the scrobble.', 2856 2866 }, 2857 2867 artist: { 2858 - type: "string", 2859 - description: "The artist of the song.", 2868 + type: 'string', 2869 + description: 'The artist of the song.', 2860 2870 }, 2861 2871 artistUri: { 2862 - type: "string", 2863 - description: "The URI of the artist.", 2864 - format: "at-uri", 2872 + type: 'string', 2873 + description: 'The URI of the artist.', 2874 + format: 'at-uri', 2865 2875 }, 2866 2876 album: { 2867 - type: "string", 2868 - description: "The album of the song.", 2877 + type: 'string', 2878 + description: 'The album of the song.', 2869 2879 }, 2870 2880 albumUri: { 2871 - type: "string", 2872 - description: "The URI of the album.", 2873 - format: "at-uri", 2881 + type: 'string', 2882 + description: 'The URI of the album.', 2883 + format: 'at-uri', 2874 2884 }, 2875 2885 cover: { 2876 - type: "string", 2877 - description: "The album art URL of the song.", 2878 - format: "uri", 2886 + type: 'string', 2887 + description: 'The album art URL of the song.', 2888 + format: 'uri', 2879 2889 }, 2880 2890 date: { 2881 - type: "string", 2882 - description: "The timestamp when the scrobble was created.", 2883 - format: "datetime", 2891 + type: 'string', 2892 + description: 'The timestamp when the scrobble was created.', 2893 + format: 'datetime', 2884 2894 }, 2885 2895 uri: { 2886 - type: "string", 2887 - description: "The URI of the scrobble.", 2888 - format: "uri", 2896 + type: 'string', 2897 + description: 'The URI of the scrobble.', 2898 + format: 'uri', 2889 2899 }, 2890 2900 sha256: { 2891 - type: "string", 2892 - description: "The SHA256 hash of the scrobble data.", 2901 + type: 'string', 2902 + description: 'The SHA256 hash of the scrobble data.', 2893 2903 }, 2894 2904 }, 2895 2905 }, 2896 2906 scrobbleViewDetailed: { 2897 - type: "object", 2907 + type: 'object', 2898 2908 properties: { 2899 2909 id: { 2900 - type: "string", 2901 - description: "The unique identifier of the scrobble.", 2910 + type: 'string', 2911 + description: 'The unique identifier of the scrobble.', 2902 2912 }, 2903 2913 user: { 2904 - type: "string", 2905 - description: "The handle of the user who created the scrobble.", 2914 + type: 'string', 2915 + description: 'The handle of the user who created the scrobble.', 2906 2916 }, 2907 2917 title: { 2908 - type: "string", 2909 - description: "The title of the scrobble.", 2918 + type: 'string', 2919 + description: 'The title of the scrobble.', 2910 2920 }, 2911 2921 artist: { 2912 - type: "string", 2913 - description: "The artist of the song.", 2922 + type: 'string', 2923 + description: 'The artist of the song.', 2914 2924 }, 2915 2925 artistUri: { 2916 - type: "string", 2917 - description: "The URI of the artist.", 2918 - format: "at-uri", 2926 + type: 'string', 2927 + description: 'The URI of the artist.', 2928 + format: 'at-uri', 2919 2929 }, 2920 2930 album: { 2921 - type: "string", 2922 - description: "The album of the song.", 2931 + type: 'string', 2932 + description: 'The album of the song.', 2923 2933 }, 2924 2934 albumUri: { 2925 - type: "string", 2926 - description: "The URI of the album.", 2927 - format: "at-uri", 2935 + type: 'string', 2936 + description: 'The URI of the album.', 2937 + format: 'at-uri', 2928 2938 }, 2929 2939 cover: { 2930 - type: "string", 2931 - description: "The album art URL of the song.", 2932 - format: "uri", 2940 + type: 'string', 2941 + description: 'The album art URL of the song.', 2942 + format: 'uri', 2933 2943 }, 2934 2944 date: { 2935 - type: "string", 2936 - description: "The timestamp when the scrobble was created.", 2937 - format: "datetime", 2945 + type: 'string', 2946 + description: 'The timestamp when the scrobble was created.', 2947 + format: 'datetime', 2938 2948 }, 2939 2949 uri: { 2940 - type: "string", 2941 - description: "The URI of the scrobble.", 2942 - format: "uri", 2950 + type: 'string', 2951 + description: 'The URI of the scrobble.', 2952 + format: 'uri', 2943 2953 }, 2944 2954 sha256: { 2945 - type: "string", 2946 - description: "The SHA256 hash of the scrobble data.", 2955 + type: 'string', 2956 + description: 'The SHA256 hash of the scrobble data.', 2947 2957 }, 2948 2958 listeners: { 2949 - type: "integer", 2950 - description: "The number of listeners", 2959 + type: 'integer', 2960 + description: 'The number of listeners', 2951 2961 }, 2952 2962 scrobbles: { 2953 - type: "integer", 2954 - description: "The number of scrobbles for this song", 2963 + type: 'integer', 2964 + description: 'The number of scrobbles for this song', 2955 2965 }, 2956 2966 }, 2957 2967 }, ··· 2959 2969 }, 2960 2970 AppRockskyScrobbleGetScrobble: { 2961 2971 lexicon: 1, 2962 - id: "app.rocksky.scrobble.getScrobble", 2972 + id: 'app.rocksky.scrobble.getScrobble', 2963 2973 defs: { 2964 2974 main: { 2965 - type: "query", 2966 - description: "Get a scrobble by its unique identifier", 2975 + type: 'query', 2976 + description: 'Get a scrobble by its unique identifier', 2967 2977 parameters: { 2968 - type: "params", 2969 - required: ["uri"], 2978 + type: 'params', 2979 + required: ['uri'], 2970 2980 properties: { 2971 2981 uri: { 2972 - type: "string", 2973 - description: "The unique identifier of the scrobble", 2974 - format: "at-uri", 2982 + type: 'string', 2983 + description: 'The unique identifier of the scrobble', 2984 + format: 'at-uri', 2975 2985 }, 2976 2986 }, 2977 2987 }, 2978 2988 output: { 2979 - encoding: "application/json", 2989 + encoding: 'application/json', 2980 2990 schema: { 2981 - type: "ref", 2982 - ref: "lex:app.rocksky.scrobble.defs#scrobbleViewDetailed", 2991 + type: 'ref', 2992 + ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewDetailed', 2983 2993 }, 2984 2994 }, 2985 2995 }, ··· 2987 2997 }, 2988 2998 AppRockskyScrobbleGetScrobbles: { 2989 2999 lexicon: 1, 2990 - id: "app.rocksky.scrobble.getScrobbles", 3000 + id: 'app.rocksky.scrobble.getScrobbles', 2991 3001 defs: { 2992 3002 main: { 2993 - type: "query", 2994 - description: "Get scrobbles all scrobbles", 3003 + type: 'query', 3004 + description: 'Get scrobbles all scrobbles', 2995 3005 parameters: { 2996 - type: "params", 3006 + type: 'params', 2997 3007 properties: { 2998 3008 did: { 2999 - type: "string", 3000 - description: "The DID or handle of the actor", 3001 - format: "at-identifier", 3009 + type: 'string', 3010 + description: 'The DID or handle of the actor', 3011 + format: 'at-identifier', 3002 3012 }, 3003 3013 limit: { 3004 - type: "integer", 3005 - description: "The maximum number of scrobbles to return", 3014 + type: 'integer', 3015 + description: 'The maximum number of scrobbles to return', 3006 3016 minimum: 1, 3007 3017 }, 3008 3018 offset: { 3009 - type: "integer", 3010 - description: "The offset for pagination", 3019 + type: 'integer', 3020 + description: 'The offset for pagination', 3011 3021 minimum: 0, 3012 3022 }, 3013 3023 }, 3014 3024 }, 3015 3025 output: { 3016 - encoding: "application/json", 3026 + encoding: 'application/json', 3017 3027 schema: { 3018 - type: "object", 3028 + type: 'object', 3019 3029 properties: { 3020 3030 scrobbles: { 3021 - type: "array", 3031 + type: 'array', 3022 3032 items: { 3023 - type: "ref", 3024 - ref: "lex:app.rocksky.scrobble.defs#scrobbleViewBasic", 3033 + type: 'ref', 3034 + ref: 'lex:app.rocksky.scrobble.defs#scrobbleViewBasic', 3025 3035 }, 3026 3036 }, 3027 3037 }, ··· 3032 3042 }, 3033 3043 AppRockskyScrobble: { 3034 3044 lexicon: 1, 3035 - id: "app.rocksky.scrobble", 3045 + id: 'app.rocksky.scrobble', 3036 3046 defs: { 3037 3047 main: { 3038 - type: "record", 3039 - description: "A declaration of a scrobble.", 3040 - key: "tid", 3048 + type: 'record', 3049 + description: 'A declaration of a scrobble.', 3050 + key: 'tid', 3041 3051 record: { 3042 - type: "object", 3052 + type: 'object', 3043 3053 required: [ 3044 - "title", 3045 - "artist", 3046 - "album", 3047 - "albumArtist", 3048 - "duration", 3049 - "createdAt", 3054 + 'title', 3055 + 'artist', 3056 + 'album', 3057 + 'albumArtist', 3058 + 'duration', 3059 + 'createdAt', 3050 3060 ], 3051 3061 properties: { 3052 3062 title: { 3053 - type: "string", 3054 - description: "The title of the song.", 3063 + type: 'string', 3064 + description: 'The title of the song.', 3055 3065 minLength: 1, 3056 3066 maxLength: 512, 3057 3067 }, 3058 3068 artist: { 3059 - type: "string", 3060 - description: "The artist of the song.", 3069 + type: 'string', 3070 + description: 'The artist of the song.', 3061 3071 minLength: 1, 3062 3072 maxLength: 256, 3063 3073 }, 3064 3074 albumArtist: { 3065 - type: "string", 3066 - description: "The album artist of the song.", 3075 + type: 'string', 3076 + description: 'The album artist of the song.', 3067 3077 minLength: 1, 3068 3078 maxLength: 256, 3069 3079 }, 3070 3080 album: { 3071 - type: "string", 3072 - description: "The album of the song.", 3081 + type: 'string', 3082 + description: 'The album of the song.', 3073 3083 minLength: 1, 3074 3084 maxLength: 256, 3075 3085 }, 3076 3086 duration: { 3077 - type: "integer", 3078 - description: "The duration of the song in seconds.", 3087 + type: 'integer', 3088 + description: 'The duration of the song in seconds.', 3079 3089 minimum: 1, 3080 3090 }, 3081 3091 trackNumber: { 3082 - type: "integer", 3083 - description: "The track number of the song in the album.", 3092 + type: 'integer', 3093 + description: 'The track number of the song in the album.', 3084 3094 minimum: 1, 3085 3095 }, 3086 3096 discNumber: { 3087 - type: "integer", 3088 - description: "The disc number of the song in the album.", 3097 + type: 'integer', 3098 + description: 'The disc number of the song in the album.', 3089 3099 minimum: 1, 3090 3100 }, 3091 3101 releaseDate: { 3092 - type: "string", 3093 - description: "The release date of the song.", 3094 - format: "datetime", 3102 + type: 'string', 3103 + description: 'The release date of the song.', 3104 + format: 'datetime', 3095 3105 }, 3096 3106 year: { 3097 - type: "integer", 3098 - description: "The year the song was released.", 3107 + type: 'integer', 3108 + description: 'The year the song was released.', 3099 3109 }, 3100 3110 genre: { 3101 - type: "string", 3102 - description: "The genre of the song.", 3111 + type: 'string', 3112 + description: 'The genre of the song.', 3103 3113 maxLength: 256, 3104 3114 }, 3105 3115 tags: { 3106 - type: "array", 3107 - description: "The tags of the song.", 3116 + type: 'array', 3117 + description: 'The tags of the song.', 3108 3118 items: { 3109 - type: "string", 3119 + type: 'string', 3110 3120 minLength: 1, 3111 3121 maxLength: 256, 3112 3122 }, 3113 3123 }, 3114 3124 composer: { 3115 - type: "string", 3116 - description: "The composer of the song.", 3125 + type: 'string', 3126 + description: 'The composer of the song.', 3117 3127 maxLength: 256, 3118 3128 }, 3119 3129 lyrics: { 3120 - type: "string", 3121 - description: "The lyrics of the song.", 3130 + type: 'string', 3131 + description: 'The lyrics of the song.', 3122 3132 maxLength: 10000, 3123 3133 }, 3124 3134 copyrightMessage: { 3125 - type: "string", 3126 - description: "The copyright message of the song.", 3135 + type: 'string', 3136 + description: 'The copyright message of the song.', 3127 3137 maxLength: 256, 3128 3138 }, 3129 3139 wiki: { 3130 - type: "string", 3131 - description: "Informations about the song", 3140 + type: 'string', 3141 + description: 'Informations about the song', 3132 3142 maxLength: 10000, 3133 3143 }, 3134 3144 albumArt: { 3135 - type: "blob", 3136 - description: "The album art of the song.", 3137 - accept: ["image/png", "image/jpeg"], 3145 + type: 'blob', 3146 + description: 'The album art of the song.', 3147 + accept: ['image/png', 'image/jpeg'], 3138 3148 maxSize: 2000000, 3139 3149 }, 3140 3150 youtubeLink: { 3141 - type: "string", 3142 - description: "The YouTube link of the song.", 3143 - format: "uri", 3151 + type: 'string', 3152 + description: 'The YouTube link of the song.', 3153 + format: 'uri', 3144 3154 }, 3145 3155 spotifyLink: { 3146 - type: "string", 3147 - description: "The Spotify link of the song.", 3148 - format: "uri", 3156 + type: 'string', 3157 + description: 'The Spotify link of the song.', 3158 + format: 'uri', 3149 3159 }, 3150 3160 tidalLink: { 3151 - type: "string", 3152 - description: "The Tidal link of the song.", 3153 - format: "uri", 3161 + type: 'string', 3162 + description: 'The Tidal link of the song.', 3163 + format: 'uri', 3154 3164 }, 3155 3165 appleMusicLink: { 3156 - type: "string", 3157 - description: "The Apple Music link of the song.", 3158 - format: "uri", 3166 + type: 'string', 3167 + description: 'The Apple Music link of the song.', 3168 + format: 'uri', 3159 3169 }, 3160 3170 createdAt: { 3161 - type: "string", 3162 - description: "The date when the song was created.", 3163 - format: "datetime", 3171 + type: 'string', 3172 + description: 'The date when the song was created.', 3173 + format: 'datetime', 3164 3174 }, 3165 3175 mbid: { 3166 - type: "string", 3167 - description: "The MusicBrainz ID of the song.", 3176 + type: 'string', 3177 + description: 'The MusicBrainz ID of the song.', 3168 3178 }, 3169 3179 label: { 3170 - type: "string", 3171 - description: "The label of the song.", 3180 + type: 'string', 3181 + description: 'The label of the song.', 3172 3182 maxLength: 256, 3173 3183 }, 3174 3184 }, ··· 3178 3188 }, 3179 3189 AppRockskyShoutCreateShout: { 3180 3190 lexicon: 1, 3181 - id: "app.rocksky.shout.createShout", 3191 + id: 'app.rocksky.shout.createShout', 3182 3192 defs: { 3183 3193 main: { 3184 - type: "procedure", 3185 - description: "Create a new shout", 3194 + type: 'procedure', 3195 + description: 'Create a new shout', 3186 3196 input: { 3187 - encoding: "application/json", 3197 + encoding: 'application/json', 3188 3198 schema: { 3189 - type: "object", 3199 + type: 'object', 3190 3200 properties: { 3191 3201 message: { 3192 - type: "string", 3193 - description: "The content of the shout", 3202 + type: 'string', 3203 + description: 'The content of the shout', 3194 3204 minLength: 1, 3195 3205 }, 3196 3206 }, 3197 3207 }, 3198 3208 }, 3199 3209 output: { 3200 - encoding: "application/json", 3210 + encoding: 'application/json', 3201 3211 schema: { 3202 - type: "ref", 3203 - ref: "lex:app.rocksky.shout.defs#shoutView", 3212 + type: 'ref', 3213 + ref: 'lex:app.rocksky.shout.defs#shoutView', 3204 3214 }, 3205 3215 }, 3206 3216 }, ··· 3208 3218 }, 3209 3219 AppRockskyShoutDefs: { 3210 3220 lexicon: 1, 3211 - id: "app.rocksky.shout.defs", 3221 + id: 'app.rocksky.shout.defs', 3212 3222 defs: { 3213 3223 author: { 3214 - type: "object", 3224 + type: 'object', 3215 3225 properties: { 3216 3226 id: { 3217 - type: "string", 3218 - description: "The unique identifier of the author.", 3227 + type: 'string', 3228 + description: 'The unique identifier of the author.', 3219 3229 }, 3220 3230 did: { 3221 - type: "string", 3222 - description: "The decentralized identifier (DID) of the author.", 3223 - format: "at-identifier", 3231 + type: 'string', 3232 + description: 'The decentralized identifier (DID) of the author.', 3233 + format: 'at-identifier', 3224 3234 }, 3225 3235 handle: { 3226 - type: "string", 3227 - description: "The handle of the author.", 3228 - format: "at-identifier", 3236 + type: 'string', 3237 + description: 'The handle of the author.', 3238 + format: 'at-identifier', 3229 3239 }, 3230 3240 displayName: { 3231 - type: "string", 3232 - description: "The display name of the author.", 3241 + type: 'string', 3242 + description: 'The display name of the author.', 3233 3243 }, 3234 3244 avatar: { 3235 - type: "string", 3245 + type: 'string', 3236 3246 description: "The URL of the author's avatar image.", 3237 - format: "uri", 3247 + format: 'uri', 3238 3248 }, 3239 3249 }, 3240 3250 }, 3241 3251 shoutView: { 3242 - type: "object", 3252 + type: 'object', 3243 3253 properties: { 3244 3254 id: { 3245 - type: "string", 3246 - description: "The unique identifier of the shout.", 3255 + type: 'string', 3256 + description: 'The unique identifier of the shout.', 3247 3257 }, 3248 3258 message: { 3249 - type: "string", 3250 - description: "The content of the shout.", 3259 + type: 'string', 3260 + description: 'The content of the shout.', 3251 3261 }, 3252 3262 parent: { 3253 - type: "string", 3263 + type: 'string', 3254 3264 description: 3255 - "The ID of the parent shout if this is a reply, otherwise null.", 3265 + 'The ID of the parent shout if this is a reply, otherwise null.', 3256 3266 }, 3257 3267 createdAt: { 3258 - type: "string", 3259 - description: "The date and time when the shout was created.", 3260 - format: "datetime", 3268 + type: 'string', 3269 + description: 'The date and time when the shout was created.', 3270 + format: 'datetime', 3261 3271 }, 3262 3272 author: { 3263 - type: "ref", 3264 - description: "The author of the shout.", 3265 - ref: "lex:app.rocksky.shout.defs#author", 3273 + type: 'ref', 3274 + description: 'The author of the shout.', 3275 + ref: 'lex:app.rocksky.shout.defs#author', 3266 3276 }, 3267 3277 }, 3268 3278 }, ··· 3270 3280 }, 3271 3281 AppRockskyShoutGetAlbumShouts: { 3272 3282 lexicon: 1, 3273 - id: "app.rocksky.shout.getAlbumShouts", 3283 + id: 'app.rocksky.shout.getAlbumShouts', 3274 3284 defs: { 3275 3285 main: { 3276 - type: "query", 3277 - description: "Get shouts for an album", 3286 + type: 'query', 3287 + description: 'Get shouts for an album', 3278 3288 parameters: { 3279 - type: "params", 3280 - required: ["uri"], 3289 + type: 'params', 3290 + required: ['uri'], 3281 3291 properties: { 3282 3292 uri: { 3283 - type: "string", 3293 + type: 'string', 3284 3294 description: 3285 - "The unique identifier of the album to retrieve shouts for", 3286 - format: "at-uri", 3295 + 'The unique identifier of the album to retrieve shouts for', 3296 + format: 'at-uri', 3287 3297 }, 3288 3298 limit: { 3289 - type: "integer", 3290 - description: "The maximum number of shouts to return", 3299 + type: 'integer', 3300 + description: 'The maximum number of shouts to return', 3291 3301 minimum: 1, 3292 3302 }, 3293 3303 offset: { 3294 - type: "integer", 3304 + type: 'integer', 3295 3305 description: 3296 - "The number of shouts to skip before starting to collect the result set", 3306 + 'The number of shouts to skip before starting to collect the result set', 3297 3307 minimum: 0, 3298 3308 }, 3299 3309 }, 3300 3310 }, 3301 3311 output: { 3302 - encoding: "application/json", 3312 + encoding: 'application/json', 3303 3313 schema: { 3304 - type: "object", 3314 + type: 'object', 3305 3315 properties: { 3306 3316 shouts: { 3307 - type: "array", 3317 + type: 'array', 3308 3318 items: { 3309 - type: "ref", 3310 - ref: "lex:app.rocksky.shout.defs#shoutViewBasic", 3319 + type: 'ref', 3320 + ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 3311 3321 }, 3312 3322 }, 3313 3323 }, ··· 3318 3328 }, 3319 3329 AppRockskyShoutGetArtistShouts: { 3320 3330 lexicon: 1, 3321 - id: "app.rocksky.shout.getArtistShouts", 3331 + id: 'app.rocksky.shout.getArtistShouts', 3322 3332 defs: { 3323 3333 main: { 3324 - type: "query", 3325 - description: "Get shouts for an artist", 3334 + type: 'query', 3335 + description: 'Get shouts for an artist', 3326 3336 parameters: { 3327 - type: "params", 3328 - required: ["uri"], 3337 + type: 'params', 3338 + required: ['uri'], 3329 3339 properties: { 3330 3340 uri: { 3331 - type: "string", 3332 - description: "The URI of the artist to retrieve shouts for", 3333 - format: "at-uri", 3341 + type: 'string', 3342 + description: 'The URI of the artist to retrieve shouts for', 3343 + format: 'at-uri', 3334 3344 }, 3335 3345 limit: { 3336 - type: "integer", 3337 - description: "The maximum number of shouts to return", 3346 + type: 'integer', 3347 + description: 'The maximum number of shouts to return', 3338 3348 minimum: 1, 3339 3349 }, 3340 3350 offset: { 3341 - type: "integer", 3351 + type: 'integer', 3342 3352 description: 3343 - "The number of shouts to skip before starting to collect the result set", 3353 + 'The number of shouts to skip before starting to collect the result set', 3344 3354 minimum: 0, 3345 3355 }, 3346 3356 }, 3347 3357 }, 3348 3358 output: { 3349 - encoding: "application/json", 3359 + encoding: 'application/json', 3350 3360 schema: { 3351 - type: "object", 3361 + type: 'object', 3352 3362 properties: { 3353 3363 shouts: { 3354 - type: "array", 3364 + type: 'array', 3355 3365 items: { 3356 - type: "ref", 3357 - ref: "lex:app.rocksky.shout.defs#shoutViewBasic", 3366 + type: 'ref', 3367 + ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 3358 3368 }, 3359 3369 }, 3360 3370 }, ··· 3365 3375 }, 3366 3376 AppRockskyShoutGetProfileShouts: { 3367 3377 lexicon: 1, 3368 - id: "app.rocksky.shout.getProfileShouts", 3378 + id: 'app.rocksky.shout.getProfileShouts', 3369 3379 defs: { 3370 3380 main: { 3371 - type: "query", 3381 + type: 'query', 3372 3382 description: "Get the shouts of an actor's profile", 3373 3383 parameters: { 3374 - type: "params", 3375 - required: ["did"], 3384 + type: 'params', 3385 + required: ['did'], 3376 3386 properties: { 3377 3387 did: { 3378 - type: "string", 3379 - description: "The DID or handle of the actor", 3380 - format: "at-identifier", 3388 + type: 'string', 3389 + description: 'The DID or handle of the actor', 3390 + format: 'at-identifier', 3381 3391 }, 3382 3392 offset: { 3383 - type: "integer", 3384 - description: "The offset for pagination", 3393 + type: 'integer', 3394 + description: 'The offset for pagination', 3385 3395 minimum: 0, 3386 3396 }, 3387 3397 limit: { 3388 - type: "integer", 3389 - description: "The maximum number of shouts to return", 3398 + type: 'integer', 3399 + description: 'The maximum number of shouts to return', 3390 3400 minimum: 1, 3391 3401 }, 3392 3402 }, 3393 3403 }, 3394 3404 output: { 3395 - encoding: "application/json", 3405 + encoding: 'application/json', 3396 3406 schema: { 3397 - type: "object", 3407 + type: 'object', 3398 3408 properties: { 3399 3409 shouts: { 3400 - type: "array", 3410 + type: 'array', 3401 3411 items: { 3402 - type: "ref", 3403 - ref: "lex:app.rocksky.shout.defs#shoutViewBasic", 3412 + type: 'ref', 3413 + ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 3404 3414 }, 3405 3415 }, 3406 3416 }, ··· 3411 3421 }, 3412 3422 AppRockskyShoutGetShoutReplies: { 3413 3423 lexicon: 1, 3414 - id: "app.rocksky.shout.getShoutReplies", 3424 + id: 'app.rocksky.shout.getShoutReplies', 3415 3425 defs: { 3416 3426 main: { 3417 - type: "query", 3418 - description: "Get replies to a shout", 3427 + type: 'query', 3428 + description: 'Get replies to a shout', 3419 3429 parameters: { 3420 - type: "params", 3421 - required: ["uri"], 3430 + type: 'params', 3431 + required: ['uri'], 3422 3432 properties: { 3423 3433 uri: { 3424 - type: "string", 3425 - description: "The URI of the shout to retrieve replies for", 3426 - format: "at-uri", 3434 + type: 'string', 3435 + description: 'The URI of the shout to retrieve replies for', 3436 + format: 'at-uri', 3427 3437 }, 3428 3438 limit: { 3429 - type: "integer", 3430 - description: "The maximum number of shouts to return", 3439 + type: 'integer', 3440 + description: 'The maximum number of shouts to return', 3431 3441 minimum: 1, 3432 3442 }, 3433 3443 offset: { 3434 - type: "integer", 3444 + type: 'integer', 3435 3445 description: 3436 - "The number of shouts to skip before starting to collect the result set", 3446 + 'The number of shouts to skip before starting to collect the result set', 3437 3447 minimum: 0, 3438 3448 }, 3439 3449 }, 3440 3450 }, 3441 3451 output: { 3442 - encoding: "application/json", 3452 + encoding: 'application/json', 3443 3453 schema: { 3444 - type: "object", 3454 + type: 'object', 3445 3455 properties: { 3446 3456 shouts: { 3447 - type: "array", 3457 + type: 'array', 3448 3458 items: { 3449 - type: "ref", 3450 - ref: "lex:app.rocksky.shout.defs#shoutViewBasic", 3459 + type: 'ref', 3460 + ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 3451 3461 }, 3452 3462 }, 3453 3463 }, ··· 3458 3468 }, 3459 3469 AppRockskyShoutGetTrackShouts: { 3460 3470 lexicon: 1, 3461 - id: "app.rocksky.shout.getTrackShouts", 3471 + id: 'app.rocksky.shout.getTrackShouts', 3462 3472 defs: { 3463 3473 main: { 3464 - type: "query", 3465 - description: "Get all shouts for a specific track", 3474 + type: 'query', 3475 + description: 'Get all shouts for a specific track', 3466 3476 parameters: { 3467 - type: "params", 3468 - required: ["uri"], 3477 + type: 'params', 3478 + required: ['uri'], 3469 3479 properties: { 3470 3480 uri: { 3471 - type: "string", 3472 - description: "The URI of the track to retrieve shouts for", 3473 - format: "at-uri", 3481 + type: 'string', 3482 + description: 'The URI of the track to retrieve shouts for', 3483 + format: 'at-uri', 3474 3484 }, 3475 3485 }, 3476 3486 }, 3477 3487 output: { 3478 - encoding: "application/json", 3488 + encoding: 'application/json', 3479 3489 schema: { 3480 - type: "object", 3490 + type: 'object', 3481 3491 properties: { 3482 3492 shouts: { 3483 - type: "array", 3493 + type: 'array', 3484 3494 items: { 3485 - type: "ref", 3486 - ref: "lex:app.rocksky.shout.defs#shoutViewBasic", 3495 + type: 'ref', 3496 + ref: 'lex:app.rocksky.shout.defs#shoutViewBasic', 3487 3497 }, 3488 3498 }, 3489 3499 }, ··· 3494 3504 }, 3495 3505 AppRockskyShoutRemoveShout: { 3496 3506 lexicon: 1, 3497 - id: "app.rocksky.shout.removeShout", 3507 + id: 'app.rocksky.shout.removeShout', 3498 3508 defs: { 3499 3509 main: { 3500 - type: "procedure", 3501 - description: "Remove a shout by its ID", 3510 + type: 'procedure', 3511 + description: 'Remove a shout by its ID', 3502 3512 parameters: { 3503 - type: "params", 3504 - required: ["id"], 3513 + type: 'params', 3514 + required: ['id'], 3505 3515 properties: { 3506 3516 id: { 3507 - type: "string", 3508 - description: "The ID of the shout to be removed", 3517 + type: 'string', 3518 + description: 'The ID of the shout to be removed', 3509 3519 }, 3510 3520 }, 3511 3521 }, 3512 3522 output: { 3513 - encoding: "application/json", 3523 + encoding: 'application/json', 3514 3524 schema: { 3515 - type: "ref", 3516 - ref: "lex:app.rocksky.shout.defs#shoutView", 3525 + type: 'ref', 3526 + ref: 'lex:app.rocksky.shout.defs#shoutView', 3517 3527 }, 3518 3528 }, 3519 3529 }, ··· 3521 3531 }, 3522 3532 AppRockskyShoutReplyShout: { 3523 3533 lexicon: 1, 3524 - id: "app.rocksky.shout.replyShout", 3534 + id: 'app.rocksky.shout.replyShout', 3525 3535 defs: { 3526 3536 main: { 3527 - type: "procedure", 3528 - description: "Reply to a shout", 3537 + type: 'procedure', 3538 + description: 'Reply to a shout', 3529 3539 input: { 3530 - encoding: "application/json", 3540 + encoding: 'application/json', 3531 3541 schema: { 3532 - type: "object", 3533 - required: ["shoutId", "message"], 3542 + type: 'object', 3543 + required: ['shoutId', 'message'], 3534 3544 properties: { 3535 3545 shoutId: { 3536 - type: "string", 3537 - description: "The unique identifier of the shout to reply to", 3546 + type: 'string', 3547 + description: 'The unique identifier of the shout to reply to', 3538 3548 }, 3539 3549 message: { 3540 - type: "string", 3541 - description: "The content of the reply", 3550 + type: 'string', 3551 + description: 'The content of the reply', 3542 3552 minLength: 1, 3543 3553 }, 3544 3554 }, 3545 3555 }, 3546 3556 }, 3547 3557 output: { 3548 - encoding: "application/json", 3558 + encoding: 'application/json', 3549 3559 schema: { 3550 - type: "ref", 3551 - ref: "lex:app.rocksky.shout.defs#shoutView", 3560 + type: 'ref', 3561 + ref: 'lex:app.rocksky.shout.defs#shoutView', 3552 3562 }, 3553 3563 }, 3554 3564 }, ··· 3556 3566 }, 3557 3567 AppRockskyShoutReportShout: { 3558 3568 lexicon: 1, 3559 - id: "app.rocksky.shout.reportShout", 3569 + id: 'app.rocksky.shout.reportShout', 3560 3570 defs: { 3561 3571 main: { 3562 - type: "procedure", 3563 - description: "Report a shout for moderation", 3572 + type: 'procedure', 3573 + description: 'Report a shout for moderation', 3564 3574 input: { 3565 - encoding: "application/json", 3575 + encoding: 'application/json', 3566 3576 schema: { 3567 - type: "object", 3568 - required: ["shoutId"], 3577 + type: 'object', 3578 + required: ['shoutId'], 3569 3579 properties: { 3570 3580 shoutId: { 3571 - type: "string", 3572 - description: "The unique identifier of the shout to report", 3581 + type: 'string', 3582 + description: 'The unique identifier of the shout to report', 3573 3583 }, 3574 3584 reason: { 3575 - type: "string", 3576 - description: "The reason for reporting the shout", 3585 + type: 'string', 3586 + description: 'The reason for reporting the shout', 3577 3587 minLength: 1, 3578 3588 }, 3579 3589 }, 3580 3590 }, 3581 3591 }, 3582 3592 output: { 3583 - encoding: "application/json", 3593 + encoding: 'application/json', 3584 3594 schema: { 3585 - type: "ref", 3586 - ref: "lex:app.rocksky.shout.defs#shoutView", 3595 + type: 'ref', 3596 + ref: 'lex:app.rocksky.shout.defs#shoutView', 3587 3597 }, 3588 3598 }, 3589 3599 }, ··· 3591 3601 }, 3592 3602 AppRockskyShout: { 3593 3603 lexicon: 1, 3594 - id: "app.rocksky.shout", 3604 + id: 'app.rocksky.shout', 3595 3605 defs: { 3596 3606 main: { 3597 - type: "record", 3598 - description: "A declaration of a shout.", 3599 - key: "tid", 3607 + type: 'record', 3608 + description: 'A declaration of a shout.', 3609 + key: 'tid', 3600 3610 record: { 3601 - type: "object", 3602 - required: ["message", "createdAt", "subject"], 3611 + type: 'object', 3612 + required: ['message', 'createdAt', 'subject'], 3603 3613 properties: { 3604 3614 message: { 3605 - type: "string", 3606 - description: "The message of the shout.", 3615 + type: 'string', 3616 + description: 'The message of the shout.', 3607 3617 minLength: 1, 3608 3618 maxLength: 1000, 3609 3619 }, 3610 3620 createdAt: { 3611 - type: "string", 3612 - description: "The date when the shout was created.", 3613 - format: "datetime", 3621 + type: 'string', 3622 + description: 'The date when the shout was created.', 3623 + format: 'datetime', 3614 3624 }, 3615 3625 parent: { 3616 - type: "ref", 3617 - ref: "lex:com.atproto.repo.strongRef", 3626 + type: 'ref', 3627 + ref: 'lex:com.atproto.repo.strongRef', 3618 3628 }, 3619 3629 subject: { 3620 - type: "ref", 3621 - ref: "lex:com.atproto.repo.strongRef", 3630 + type: 'ref', 3631 + ref: 'lex:com.atproto.repo.strongRef', 3622 3632 }, 3623 3633 }, 3624 3634 }, ··· 3627 3637 }, 3628 3638 AppRockskySongCreateSong: { 3629 3639 lexicon: 1, 3630 - id: "app.rocksky.song.createSong", 3640 + id: 'app.rocksky.song.createSong', 3631 3641 defs: { 3632 3642 main: { 3633 - type: "procedure", 3634 - description: "Create a new song", 3643 + type: 'procedure', 3644 + description: 'Create a new song', 3635 3645 input: { 3636 - encoding: "application/json", 3646 + encoding: 'application/json', 3637 3647 schema: { 3638 - type: "object", 3639 - required: ["title", "artist", "album", "albumArtist"], 3648 + type: 'object', 3649 + required: ['title', 'artist', 'album', 'albumArtist'], 3640 3650 properties: { 3641 3651 title: { 3642 - type: "string", 3643 - description: "The title of the song", 3652 + type: 'string', 3653 + description: 'The title of the song', 3644 3654 }, 3645 3655 artist: { 3646 - type: "string", 3647 - description: "The artist of the song", 3656 + type: 'string', 3657 + description: 'The artist of the song', 3648 3658 }, 3649 3659 albumArtist: { 3650 - type: "string", 3660 + type: 'string', 3651 3661 description: 3652 - "The album artist of the song, if different from the main artist", 3662 + 'The album artist of the song, if different from the main artist', 3653 3663 }, 3654 3664 album: { 3655 - type: "string", 3656 - description: "The album of the song, if applicable", 3665 + type: 'string', 3666 + description: 'The album of the song, if applicable', 3657 3667 }, 3658 3668 duration: { 3659 - type: "integer", 3660 - description: "The duration of the song in seconds", 3669 + type: 'integer', 3670 + description: 'The duration of the song in seconds', 3661 3671 }, 3662 3672 mbId: { 3663 - type: "string", 3664 - description: "The MusicBrainz ID of the song, if available", 3673 + type: 'string', 3674 + description: 'The MusicBrainz ID of the song, if available', 3665 3675 }, 3666 3676 albumArt: { 3667 - type: "string", 3668 - description: "The URL of the album art for the song", 3669 - format: "uri", 3677 + type: 'string', 3678 + description: 'The URL of the album art for the song', 3679 + format: 'uri', 3670 3680 }, 3671 3681 trackNumber: { 3672 - type: "integer", 3682 + type: 'integer', 3673 3683 description: 3674 - "The track number of the song in the album, if applicable", 3684 + 'The track number of the song in the album, if applicable', 3675 3685 }, 3676 3686 releaseDate: { 3677 - type: "string", 3687 + type: 'string', 3678 3688 description: 3679 - "The release date of the song, formatted as YYYY-MM-DD", 3689 + 'The release date of the song, formatted as YYYY-MM-DD', 3680 3690 }, 3681 3691 year: { 3682 - type: "integer", 3683 - description: "The year the song was released", 3692 + type: 'integer', 3693 + description: 'The year the song was released', 3684 3694 }, 3685 3695 discNumber: { 3686 - type: "integer", 3696 + type: 'integer', 3687 3697 description: 3688 - "The disc number of the song in the album, if applicable", 3698 + 'The disc number of the song in the album, if applicable', 3689 3699 }, 3690 3700 lyrics: { 3691 - type: "string", 3692 - description: "The lyrics of the song, if available", 3701 + type: 'string', 3702 + description: 'The lyrics of the song, if available', 3693 3703 }, 3694 3704 }, 3695 3705 }, 3696 3706 }, 3697 3707 output: { 3698 - encoding: "application/json", 3708 + encoding: 'application/json', 3699 3709 schema: { 3700 - type: "ref", 3701 - ref: "lex:app.rocksky.song.defs#songViewDetailed", 3710 + type: 'ref', 3711 + ref: 'lex:app.rocksky.song.defs#songViewDetailed', 3702 3712 }, 3703 3713 }, 3704 3714 }, ··· 3706 3716 }, 3707 3717 AppRockskySongDefs: { 3708 3718 lexicon: 1, 3709 - id: "app.rocksky.song.defs", 3719 + id: 'app.rocksky.song.defs', 3710 3720 defs: { 3711 3721 songViewBasic: { 3712 - type: "object", 3722 + type: 'object', 3713 3723 properties: { 3714 3724 id: { 3715 - type: "string", 3716 - description: "The unique identifier of the song.", 3725 + type: 'string', 3726 + description: 'The unique identifier of the song.', 3717 3727 }, 3718 3728 title: { 3719 - type: "string", 3720 - description: "The title of the song.", 3729 + type: 'string', 3730 + description: 'The title of the song.', 3721 3731 }, 3722 3732 artist: { 3723 - type: "string", 3724 - description: "The artist of the song.", 3733 + type: 'string', 3734 + description: 'The artist of the song.', 3725 3735 }, 3726 3736 albumArtist: { 3727 - type: "string", 3728 - description: "The artist of the album the song belongs to.", 3737 + type: 'string', 3738 + description: 'The artist of the album the song belongs to.', 3729 3739 }, 3730 3740 albumArt: { 3731 - type: "string", 3732 - description: "The URL of the album art image.", 3733 - format: "uri", 3741 + type: 'string', 3742 + description: 'The URL of the album art image.', 3743 + format: 'uri', 3734 3744 }, 3735 3745 uri: { 3736 - type: "string", 3737 - description: "The URI of the song.", 3738 - format: "at-uri", 3746 + type: 'string', 3747 + description: 'The URI of the song.', 3748 + format: 'at-uri', 3739 3749 }, 3740 3750 album: { 3741 - type: "string", 3742 - description: "The album of the song.", 3751 + type: 'string', 3752 + description: 'The album of the song.', 3743 3753 }, 3744 3754 duration: { 3745 - type: "integer", 3746 - description: "The duration of the song in milliseconds.", 3755 + type: 'integer', 3756 + description: 'The duration of the song in milliseconds.', 3747 3757 }, 3748 3758 trackNumber: { 3749 - type: "integer", 3750 - description: "The track number of the song in the album.", 3759 + type: 'integer', 3760 + description: 'The track number of the song in the album.', 3751 3761 }, 3752 3762 discNumber: { 3753 - type: "integer", 3754 - description: "The disc number of the song in the album.", 3763 + type: 'integer', 3764 + description: 'The disc number of the song in the album.', 3755 3765 }, 3756 3766 playCount: { 3757 - type: "integer", 3758 - description: "The number of times the song has been played.", 3767 + type: 'integer', 3768 + description: 'The number of times the song has been played.', 3759 3769 minimum: 0, 3760 3770 }, 3761 3771 uniqueListeners: { 3762 - type: "integer", 3772 + type: 'integer', 3763 3773 description: 3764 - "The number of unique listeners who have played the song.", 3774 + 'The number of unique listeners who have played the song.', 3765 3775 minimum: 0, 3766 3776 }, 3767 3777 albumUri: { 3768 - type: "string", 3769 - description: "The URI of the album the song belongs to.", 3770 - format: "at-uri", 3778 + type: 'string', 3779 + description: 'The URI of the album the song belongs to.', 3780 + format: 'at-uri', 3771 3781 }, 3772 3782 artistUri: { 3773 - type: "string", 3774 - description: "The URI of the artist of the song.", 3775 - format: "at-uri", 3783 + type: 'string', 3784 + description: 'The URI of the artist of the song.', 3785 + format: 'at-uri', 3776 3786 }, 3777 3787 sha256: { 3778 - type: "string", 3779 - description: "The SHA256 hash of the song.", 3788 + type: 'string', 3789 + description: 'The SHA256 hash of the song.', 3780 3790 }, 3781 3791 createdAt: { 3782 - type: "string", 3783 - description: "The timestamp when the song was created.", 3784 - format: "datetime", 3792 + type: 'string', 3793 + description: 'The timestamp when the song was created.', 3794 + format: 'datetime', 3785 3795 }, 3786 3796 }, 3787 3797 }, 3788 3798 songViewDetailed: { 3789 - type: "object", 3799 + type: 'object', 3790 3800 properties: { 3791 3801 id: { 3792 - type: "string", 3793 - description: "The unique identifier of the song.", 3802 + type: 'string', 3803 + description: 'The unique identifier of the song.', 3794 3804 }, 3795 3805 title: { 3796 - type: "string", 3797 - description: "The title of the song.", 3806 + type: 'string', 3807 + description: 'The title of the song.', 3798 3808 }, 3799 3809 artist: { 3800 - type: "string", 3801 - description: "The artist of the song.", 3810 + type: 'string', 3811 + description: 'The artist of the song.', 3802 3812 }, 3803 3813 albumArtist: { 3804 - type: "string", 3805 - description: "The artist of the album the song belongs to.", 3814 + type: 'string', 3815 + description: 'The artist of the album the song belongs to.', 3806 3816 }, 3807 3817 albumArt: { 3808 - type: "string", 3809 - description: "The URL of the album art image.", 3810 - format: "uri", 3818 + type: 'string', 3819 + description: 'The URL of the album art image.', 3820 + format: 'uri', 3811 3821 }, 3812 3822 uri: { 3813 - type: "string", 3814 - description: "The URI of the song.", 3815 - format: "at-uri", 3823 + type: 'string', 3824 + description: 'The URI of the song.', 3825 + format: 'at-uri', 3816 3826 }, 3817 3827 album: { 3818 - type: "string", 3819 - description: "The album of the song.", 3828 + type: 'string', 3829 + description: 'The album of the song.', 3820 3830 }, 3821 3831 duration: { 3822 - type: "integer", 3823 - description: "The duration of the song in milliseconds.", 3832 + type: 'integer', 3833 + description: 'The duration of the song in milliseconds.', 3824 3834 }, 3825 3835 trackNumber: { 3826 - type: "integer", 3827 - description: "The track number of the song in the album.", 3836 + type: 'integer', 3837 + description: 'The track number of the song in the album.', 3828 3838 }, 3829 3839 discNumber: { 3830 - type: "integer", 3831 - description: "The disc number of the song in the album.", 3840 + type: 'integer', 3841 + description: 'The disc number of the song in the album.', 3832 3842 }, 3833 3843 playCount: { 3834 - type: "integer", 3835 - description: "The number of times the song has been played.", 3844 + type: 'integer', 3845 + description: 'The number of times the song has been played.', 3836 3846 minimum: 0, 3837 3847 }, 3838 3848 uniqueListeners: { 3839 - type: "integer", 3849 + type: 'integer', 3840 3850 description: 3841 - "The number of unique listeners who have played the song.", 3851 + 'The number of unique listeners who have played the song.', 3842 3852 minimum: 0, 3843 3853 }, 3844 3854 albumUri: { 3845 - type: "string", 3846 - description: "The URI of the album the song belongs to.", 3847 - format: "at-uri", 3855 + type: 'string', 3856 + description: 'The URI of the album the song belongs to.', 3857 + format: 'at-uri', 3848 3858 }, 3849 3859 artistUri: { 3850 - type: "string", 3851 - description: "The URI of the artist of the song.", 3852 - format: "at-uri", 3860 + type: 'string', 3861 + description: 'The URI of the artist of the song.', 3862 + format: 'at-uri', 3853 3863 }, 3854 3864 sha256: { 3855 - type: "string", 3856 - description: "The SHA256 hash of the song.", 3865 + type: 'string', 3866 + description: 'The SHA256 hash of the song.', 3857 3867 }, 3858 3868 createdAt: { 3859 - type: "string", 3860 - description: "The timestamp when the song was created.", 3861 - format: "datetime", 3869 + type: 'string', 3870 + description: 'The timestamp when the song was created.', 3871 + format: 'datetime', 3862 3872 }, 3863 3873 }, 3864 3874 }, ··· 3866 3876 }, 3867 3877 AppRockskySongGetSong: { 3868 3878 lexicon: 1, 3869 - id: "app.rocksky.song.getSong", 3879 + id: 'app.rocksky.song.getSong', 3870 3880 defs: { 3871 3881 main: { 3872 - type: "query", 3873 - description: "Get a song by its uri", 3882 + type: 'query', 3883 + description: 'Get a song by its uri', 3874 3884 parameters: { 3875 - type: "params", 3876 - required: ["uri"], 3885 + type: 'params', 3886 + required: ['uri'], 3877 3887 properties: { 3878 3888 uri: { 3879 - type: "string", 3880 - description: "The unique identifier of the song to retrieve", 3881 - format: "at-uri", 3889 + type: 'string', 3890 + description: 'The unique identifier of the song to retrieve', 3891 + format: 'at-uri', 3882 3892 }, 3883 3893 }, 3884 3894 }, 3885 3895 output: { 3886 - encoding: "application/json", 3896 + encoding: 'application/json', 3887 3897 schema: { 3888 - type: "ref", 3889 - ref: "lex:app.rocksky.song.defs#songViewDetailed", 3898 + type: 'ref', 3899 + ref: 'lex:app.rocksky.song.defs#songViewDetailed', 3890 3900 }, 3891 3901 }, 3892 3902 }, ··· 3894 3904 }, 3895 3905 AppRockskySongGetSongs: { 3896 3906 lexicon: 1, 3897 - id: "app.rocksky.song.getSongs", 3907 + id: 'app.rocksky.song.getSongs', 3898 3908 defs: { 3899 3909 main: { 3900 - type: "query", 3901 - description: "Get songs", 3910 + type: 'query', 3911 + description: 'Get songs', 3902 3912 parameters: { 3903 - type: "params", 3913 + type: 'params', 3904 3914 properties: { 3905 3915 limit: { 3906 - type: "integer", 3907 - description: "The maximum number of songs to return", 3916 + type: 'integer', 3917 + description: 'The maximum number of songs to return', 3908 3918 minimum: 1, 3909 3919 }, 3910 3920 offset: { 3911 - type: "integer", 3912 - description: "The offset for pagination", 3921 + type: 'integer', 3922 + description: 'The offset for pagination', 3913 3923 minimum: 0, 3914 3924 }, 3915 3925 }, 3916 3926 }, 3917 3927 output: { 3918 - encoding: "application/json", 3928 + encoding: 'application/json', 3919 3929 schema: { 3920 - type: "object", 3930 + type: 'object', 3921 3931 properties: { 3922 3932 songs: { 3923 - type: "array", 3933 + type: 'array', 3924 3934 items: { 3925 - type: "ref", 3926 - ref: "lex:app.rocksky.song.defs#songViewBasic", 3935 + type: 'ref', 3936 + ref: 'lex:app.rocksky.song.defs#songViewBasic', 3927 3937 }, 3928 3938 }, 3929 3939 }, ··· 3934 3944 }, 3935 3945 AppRockskySong: { 3936 3946 lexicon: 1, 3937 - id: "app.rocksky.song", 3947 + id: 'app.rocksky.song', 3938 3948 defs: { 3939 3949 main: { 3940 - type: "record", 3941 - description: "A declaration of a song.", 3942 - key: "tid", 3950 + type: 'record', 3951 + description: 'A declaration of a song.', 3952 + key: 'tid', 3943 3953 record: { 3944 - type: "object", 3954 + type: 'object', 3945 3955 required: [ 3946 - "title", 3947 - "artist", 3948 - "album", 3949 - "albumArtist", 3950 - "duration", 3951 - "createdAt", 3956 + 'title', 3957 + 'artist', 3958 + 'album', 3959 + 'albumArtist', 3960 + 'duration', 3961 + 'createdAt', 3952 3962 ], 3953 3963 properties: { 3954 3964 title: { 3955 - type: "string", 3956 - description: "The title of the song.", 3965 + type: 'string', 3966 + description: 'The title of the song.', 3957 3967 minLength: 1, 3958 3968 maxLength: 512, 3959 3969 }, 3960 3970 artist: { 3961 - type: "string", 3962 - description: "The artist of the song.", 3971 + type: 'string', 3972 + description: 'The artist of the song.', 3963 3973 minLength: 1, 3964 3974 maxLength: 256, 3965 3975 }, 3966 3976 albumArtist: { 3967 - type: "string", 3968 - description: "The album artist of the song.", 3977 + type: 'string', 3978 + description: 'The album artist of the song.', 3969 3979 minLength: 1, 3970 3980 maxLength: 256, 3971 3981 }, 3972 3982 album: { 3973 - type: "string", 3974 - description: "The album of the song.", 3983 + type: 'string', 3984 + description: 'The album of the song.', 3975 3985 minLength: 1, 3976 3986 maxLength: 256, 3977 3987 }, 3978 3988 duration: { 3979 - type: "integer", 3980 - description: "The duration of the song in seconds.", 3989 + type: 'integer', 3990 + description: 'The duration of the song in seconds.', 3981 3991 minimum: 1, 3982 3992 }, 3983 3993 trackNumber: { 3984 - type: "integer", 3985 - description: "The track number of the song in the album.", 3994 + type: 'integer', 3995 + description: 'The track number of the song in the album.', 3986 3996 minimum: 1, 3987 3997 }, 3988 3998 discNumber: { 3989 - type: "integer", 3990 - description: "The disc number of the song in the album.", 3999 + type: 'integer', 4000 + description: 'The disc number of the song in the album.', 3991 4001 minimum: 1, 3992 4002 }, 3993 4003 releaseDate: { 3994 - type: "string", 3995 - description: "The release date of the song.", 3996 - format: "datetime", 4004 + type: 'string', 4005 + description: 'The release date of the song.', 4006 + format: 'datetime', 3997 4007 }, 3998 4008 year: { 3999 - type: "integer", 4000 - description: "The year the song was released.", 4009 + type: 'integer', 4010 + description: 'The year the song was released.', 4001 4011 }, 4002 4012 genre: { 4003 - type: "string", 4004 - description: "The genre of the song.", 4013 + type: 'string', 4014 + description: 'The genre of the song.', 4005 4015 minLength: 1, 4006 4016 maxLength: 256, 4007 4017 }, 4008 4018 tags: { 4009 - type: "array", 4010 - description: "The tags of the song.", 4019 + type: 'array', 4020 + description: 'The tags of the song.', 4011 4021 items: { 4012 - type: "string", 4022 + type: 'string', 4013 4023 minLength: 1, 4014 4024 maxLength: 256, 4015 4025 }, 4016 4026 }, 4017 4027 composer: { 4018 - type: "string", 4019 - description: "The composer of the song.", 4028 + type: 'string', 4029 + description: 'The composer of the song.', 4020 4030 maxLength: 256, 4021 4031 }, 4022 4032 lyrics: { 4023 - type: "string", 4024 - description: "The lyrics of the song.", 4033 + type: 'string', 4034 + description: 'The lyrics of the song.', 4025 4035 maxLength: 10000, 4026 4036 }, 4027 4037 copyrightMessage: { 4028 - type: "string", 4029 - description: "The copyright message of the song.", 4038 + type: 'string', 4039 + description: 'The copyright message of the song.', 4030 4040 maxLength: 256, 4031 4041 }, 4032 4042 wiki: { 4033 - type: "string", 4034 - description: "Informations about the song", 4043 + type: 'string', 4044 + description: 'Informations about the song', 4035 4045 maxLength: 10000, 4036 4046 }, 4037 4047 albumArt: { 4038 - type: "blob", 4039 - description: "The album art of the song.", 4040 - accept: ["image/png", "image/jpeg"], 4048 + type: 'blob', 4049 + description: 'The album art of the song.', 4050 + accept: ['image/png', 'image/jpeg'], 4041 4051 maxSize: 2000000, 4042 4052 }, 4043 4053 youtubeLink: { 4044 - type: "string", 4045 - description: "The YouTube link of the song.", 4046 - format: "uri", 4054 + type: 'string', 4055 + description: 'The YouTube link of the song.', 4056 + format: 'uri', 4047 4057 }, 4048 4058 spotifyLink: { 4049 - type: "string", 4050 - description: "The Spotify link of the song.", 4051 - format: "uri", 4059 + type: 'string', 4060 + description: 'The Spotify link of the song.', 4061 + format: 'uri', 4052 4062 }, 4053 4063 tidalLink: { 4054 - type: "string", 4055 - description: "The Tidal link of the song.", 4056 - format: "uri", 4064 + type: 'string', 4065 + description: 'The Tidal link of the song.', 4066 + format: 'uri', 4057 4067 }, 4058 4068 appleMusicLink: { 4059 - type: "string", 4060 - description: "The Apple Music link of the song.", 4061 - format: "uri", 4069 + type: 'string', 4070 + description: 'The Apple Music link of the song.', 4071 + format: 'uri', 4062 4072 }, 4063 4073 createdAt: { 4064 - type: "string", 4065 - description: "The date when the song was created.", 4066 - format: "datetime", 4074 + type: 'string', 4075 + description: 'The date when the song was created.', 4076 + format: 'datetime', 4067 4077 }, 4068 4078 mbid: { 4069 - type: "string", 4070 - description: "The MusicBrainz ID of the song.", 4079 + type: 'string', 4080 + description: 'The MusicBrainz ID of the song.', 4071 4081 }, 4072 4082 label: { 4073 - type: "string", 4074 - description: "The label of the song.", 4083 + type: 'string', 4084 + description: 'The label of the song.', 4075 4085 maxLength: 256, 4076 4086 }, 4077 4087 }, ··· 4081 4091 }, 4082 4092 AppRockskySpotifyDefs: { 4083 4093 lexicon: 1, 4084 - id: "app.rocksky.spotify.defs", 4094 + id: 'app.rocksky.spotify.defs', 4085 4095 defs: { 4086 4096 spotifyTrackView: { 4087 - type: "object", 4097 + type: 'object', 4088 4098 properties: { 4089 4099 id: { 4090 - type: "string", 4091 - description: "The unique identifier of the Spotify track.", 4100 + type: 'string', 4101 + description: 'The unique identifier of the Spotify track.', 4092 4102 }, 4093 4103 name: { 4094 - type: "string", 4095 - description: "The name of the track.", 4104 + type: 'string', 4105 + description: 'The name of the track.', 4096 4106 }, 4097 4107 artist: { 4098 - type: "string", 4099 - description: "The name of the artist.", 4108 + type: 'string', 4109 + description: 'The name of the artist.', 4100 4110 }, 4101 4111 album: { 4102 - type: "string", 4103 - description: "The name of the album.", 4112 + type: 'string', 4113 + description: 'The name of the album.', 4104 4114 }, 4105 4115 duration: { 4106 - type: "integer", 4107 - description: "The duration of the track in milliseconds.", 4116 + type: 'integer', 4117 + description: 'The duration of the track in milliseconds.', 4108 4118 }, 4109 4119 previewUrl: { 4110 - type: "string", 4111 - description: "A URL to a preview of the track.", 4120 + type: 'string', 4121 + description: 'A URL to a preview of the track.', 4112 4122 }, 4113 4123 }, 4114 4124 }, ··· 4116 4126 }, 4117 4127 AppRockskySpotifyGetCurrentlyPlaying: { 4118 4128 lexicon: 1, 4119 - id: "app.rocksky.spotify.getCurrentlyPlaying", 4129 + id: 'app.rocksky.spotify.getCurrentlyPlaying', 4120 4130 defs: { 4121 4131 main: { 4122 - type: "query", 4123 - description: "Get the currently playing track", 4132 + type: 'query', 4133 + description: 'Get the currently playing track', 4124 4134 parameters: { 4125 - type: "params", 4135 + type: 'params', 4126 4136 properties: { 4127 4137 actor: { 4128 - type: "string", 4138 + type: 'string', 4129 4139 description: 4130 - "Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user.", 4131 - format: "at-identifier", 4140 + 'Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user.', 4141 + format: 'at-identifier', 4132 4142 }, 4133 4143 }, 4134 4144 }, 4135 4145 output: { 4136 - encoding: "application/json", 4146 + encoding: 'application/json', 4137 4147 schema: { 4138 - type: "ref", 4139 - ref: "lex:app.rocksky.player.defs#currentlyPlayingViewDetailed", 4148 + type: 'ref', 4149 + ref: 'lex:app.rocksky.player.defs#currentlyPlayingViewDetailed', 4140 4150 }, 4141 4151 }, 4142 4152 }, ··· 4144 4154 }, 4145 4155 AppRockskySpotifyNext: { 4146 4156 lexicon: 1, 4147 - id: "app.rocksky.spotify.next", 4157 + id: 'app.rocksky.spotify.next', 4148 4158 defs: { 4149 4159 main: { 4150 - type: "procedure", 4151 - description: "Play the next track in the queue", 4160 + type: 'procedure', 4161 + description: 'Play the next track in the queue', 4152 4162 }, 4153 4163 }, 4154 4164 }, 4155 4165 AppRockskySpotifyPause: { 4156 4166 lexicon: 1, 4157 - id: "app.rocksky.spotify.pause", 4167 + id: 'app.rocksky.spotify.pause', 4158 4168 defs: { 4159 4169 main: { 4160 - type: "procedure", 4161 - description: "Pause the currently playing track", 4170 + type: 'procedure', 4171 + description: 'Pause the currently playing track', 4162 4172 }, 4163 4173 }, 4164 4174 }, 4165 4175 AppRockskySpotifyPlay: { 4166 4176 lexicon: 1, 4167 - id: "app.rocksky.spotify.play", 4177 + id: 'app.rocksky.spotify.play', 4168 4178 defs: { 4169 4179 main: { 4170 - type: "procedure", 4171 - description: "Resume playback of the currently paused track", 4180 + type: 'procedure', 4181 + description: 'Resume playback of the currently paused track', 4172 4182 }, 4173 4183 }, 4174 4184 }, 4175 4185 AppRockskySpotifyPrevious: { 4176 4186 lexicon: 1, 4177 - id: "app.rocksky.spotify.previous", 4187 + id: 'app.rocksky.spotify.previous', 4178 4188 defs: { 4179 4189 main: { 4180 - type: "procedure", 4181 - description: "Play the previous track in the queue", 4190 + type: 'procedure', 4191 + description: 'Play the previous track in the queue', 4182 4192 }, 4183 4193 }, 4184 4194 }, 4185 4195 AppRockskySpotifySeek: { 4186 4196 lexicon: 1, 4187 - id: "app.rocksky.spotify.seek", 4197 + id: 'app.rocksky.spotify.seek', 4188 4198 defs: { 4189 4199 main: { 4190 - type: "procedure", 4200 + type: 'procedure', 4191 4201 description: 4192 - "Seek to a specific position in the currently playing track", 4202 + 'Seek to a specific position in the currently playing track', 4193 4203 parameters: { 4194 - type: "params", 4195 - required: ["position"], 4204 + type: 'params', 4205 + required: ['position'], 4196 4206 properties: { 4197 4207 position: { 4198 - type: "integer", 4199 - description: "The position in seconds to seek to", 4208 + type: 'integer', 4209 + description: 'The position in seconds to seek to', 4200 4210 }, 4201 4211 }, 4202 4212 }, ··· 4205 4215 }, 4206 4216 AppRockskyStatsDefs: { 4207 4217 lexicon: 1, 4208 - id: "app.rocksky.stats.defs", 4218 + id: 'app.rocksky.stats.defs', 4209 4219 defs: { 4210 4220 statsView: { 4211 - type: "object", 4221 + type: 'object', 4212 4222 properties: { 4213 4223 scrobbles: { 4214 - type: "integer", 4215 - description: "The total number of scrobbles.", 4224 + type: 'integer', 4225 + description: 'The total number of scrobbles.', 4216 4226 }, 4217 4227 artists: { 4218 - type: "integer", 4219 - description: "The total number of unique artists scrobbled.", 4228 + type: 'integer', 4229 + description: 'The total number of unique artists scrobbled.', 4220 4230 }, 4221 4231 lovedTracks: { 4222 - type: "integer", 4223 - description: "The total number of tracks marked as loved.", 4232 + type: 'integer', 4233 + description: 'The total number of tracks marked as loved.', 4224 4234 }, 4225 4235 albums: { 4226 - type: "integer", 4227 - description: "The total number of unique albums scrobbled.", 4236 + type: 'integer', 4237 + description: 'The total number of unique albums scrobbled.', 4228 4238 }, 4229 4239 tracks: { 4230 - type: "integer", 4231 - description: "The total number of unique tracks scrobbled.", 4240 + type: 'integer', 4241 + description: 'The total number of unique tracks scrobbled.', 4232 4242 }, 4233 4243 }, 4234 4244 }, ··· 4236 4246 }, 4237 4247 AppRockskyStatsGetStats: { 4238 4248 lexicon: 1, 4239 - id: "app.rocksky.stats.getStats", 4249 + id: 'app.rocksky.stats.getStats', 4240 4250 defs: { 4241 4251 main: { 4242 - type: "query", 4252 + type: 'query', 4243 4253 parameters: { 4244 - type: "params", 4245 - required: ["did"], 4254 + type: 'params', 4255 + required: ['did'], 4246 4256 properties: { 4247 4257 did: { 4248 - type: "string", 4249 - description: "The DID or handle of the user to get stats for.", 4250 - format: "at-identifier", 4258 + type: 'string', 4259 + description: 'The DID or handle of the user to get stats for.', 4260 + format: 'at-identifier', 4251 4261 }, 4252 4262 }, 4253 4263 }, 4254 4264 output: { 4255 - encoding: "application/json", 4265 + encoding: 'application/json', 4256 4266 schema: { 4257 - type: "ref", 4258 - ref: "lex:app.rocksky.stats.defs#statsView", 4267 + type: 'ref', 4268 + ref: 'lex:app.rocksky.stats.defs#statsView', 4259 4269 }, 4260 4270 }, 4261 4271 }, ··· 4263 4273 }, 4264 4274 ComAtprotoRepoStrongRef: { 4265 4275 lexicon: 1, 4266 - id: "com.atproto.repo.strongRef", 4267 - description: "A URI with a content-hash fingerprint.", 4276 + id: 'com.atproto.repo.strongRef', 4277 + description: 'A URI with a content-hash fingerprint.', 4268 4278 defs: { 4269 4279 main: { 4270 - type: "object", 4271 - required: ["uri", "cid"], 4280 + type: 'object', 4281 + required: ['uri', 'cid'], 4272 4282 properties: { 4273 4283 uri: { 4274 - type: "string", 4275 - format: "at-uri", 4284 + type: 'string', 4285 + format: 'at-uri', 4276 4286 }, 4277 4287 cid: { 4278 - type: "string", 4279 - format: "cid", 4288 + type: 'string', 4289 + format: 'cid', 4280 4290 }, 4281 4291 }, 4282 4292 }, 4283 4293 }, 4284 4294 }, 4285 - } as const satisfies Record<string, LexiconDoc>; 4295 + } as const satisfies Record<string, LexiconDoc> 4286 4296 4287 - export const schemas = Object.values(schemaDict); 4288 - export const lexicons: Lexicons = new Lexicons(schemas); 4297 + export const schemas = Object.values(schemaDict) 4298 + export const lexicons: Lexicons = new Lexicons(schemas) 4289 4299 export const ids = { 4290 - AppRockskyActorDefs: "app.rocksky.actor.defs", 4291 - AppRockskyActorGetActorAlbums: "app.rocksky.actor.getActorAlbums", 4292 - AppRockskyActorGetActorArtists: "app.rocksky.actor.getActorArtists", 4293 - AppRockskyActorGetActorLovedSongs: "app.rocksky.actor.getActorLovedSongs", 4294 - AppRockskyActorGetActorPlaylists: "app.rocksky.actor.getActorPlaylists", 4295 - AppRockskyActorGetActorScrobbles: "app.rocksky.actor.getActorScrobbles", 4296 - AppRockskyActorGetActorSongs: "app.rocksky.actor.getActorSongs", 4297 - AppRockskyActorGetProfile: "app.rocksky.actor.getProfile", 4298 - AppBskyActorProfile: "app.bsky.actor.profile", 4299 - AppRockskyAlbum: "app.rocksky.album", 4300 - AppRockskyAlbumDefs: "app.rocksky.album.defs", 4301 - AppRockskyAlbumGetAlbum: "app.rocksky.album.getAlbum", 4302 - AppRockskyAlbumGetAlbums: "app.rocksky.album.getAlbums", 4303 - AppRockskyAlbumGetAlbumTracks: "app.rocksky.album.getAlbumTracks", 4304 - AppRockskyApikeyCreateApikey: "app.rocksky.apikey.createApikey", 4305 - AppRockskyApikeyDefs: "app.rocksky.apikey.defs", 4306 - AppRockskyApikeysDefs: "app.rocksky.apikeys.defs", 4307 - AppRockskyApikeyGetApikeys: "app.rocksky.apikey.getApikeys", 4308 - AppRockskyApikeyRemoveApikey: "app.rocksky.apikey.removeApikey", 4309 - AppRockskyApikeyUpdateApikey: "app.rocksky.apikey.updateApikey", 4310 - AppRockskyArtist: "app.rocksky.artist", 4311 - AppRockskyArtistDefs: "app.rocksky.artist.defs", 4312 - AppRockskyArtistGetArtistAlbums: "app.rocksky.artist.getArtistAlbums", 4313 - AppRockskyArtistGetArtist: "app.rocksky.artist.getArtist", 4314 - AppRockskyArtistGetArtists: "app.rocksky.artist.getArtists", 4315 - AppRockskyArtistGetArtistTracks: "app.rocksky.artist.getArtistTracks", 4316 - AppRockskyChartsDefs: "app.rocksky.charts.defs", 4317 - AppRockskyChartsGetScrobblesChart: "app.rocksky.charts.getScrobblesChart", 4318 - AppRockskyDropboxDefs: "app.rocksky.dropbox.defs", 4319 - AppRockskyDropboxDownloadFile: "app.rocksky.dropbox.downloadFile", 4320 - AppRockskyDropboxGetFiles: "app.rocksky.dropbox.getFiles", 4321 - AppRockskyDropboxGetMetadata: "app.rocksky.dropbox.getMetadata", 4322 - AppRockskyDropboxGetTemporaryLink: "app.rocksky.dropbox.getTemporaryLink", 4323 - AppRockskyFeedDefs: "app.rocksky.feed.defs", 4324 - AppRockskyFeedGetNowPlayings: "app.rocksky.feed.getNowPlayings", 4325 - AppRockskyFeedSearch: "app.rocksky.feed.search", 4326 - AppRockskyGoogledriveDefs: "app.rocksky.googledrive.defs", 4327 - AppRockskyGoogledriveDownloadFile: "app.rocksky.googledrive.downloadFile", 4328 - AppRockskyGoogledriveGetFile: "app.rocksky.googledrive.getFile", 4329 - AppRockskyGoogledriveGetFiles: "app.rocksky.googledrive.getFiles", 4330 - AppRockskyLikeDislikeShout: "app.rocksky.like.dislikeShout", 4331 - AppRockskyLikeDislikeSong: "app.rocksky.like.dislikeSong", 4332 - AppRockskyLike: "app.rocksky.like", 4333 - AppRockskyLikeLikeShout: "app.rocksky.like.likeShout", 4334 - AppRockskyLikeLikeSong: "app.rocksky.like.likeSong", 4335 - AppRockskyPlayerAddDirectoryToQueue: "app.rocksky.player.addDirectoryToQueue", 4336 - AppRockskyPlayerAddItemsToQueue: "app.rocksky.player.addItemsToQueue", 4337 - AppRockskyPlayerDefs: "app.rocksky.player.defs", 4338 - AppRockskyPlayerGetCurrentlyPlaying: "app.rocksky.player.getCurrentlyPlaying", 4339 - AppRockskyPlayerGetPlaybackQueue: "app.rocksky.player.getPlaybackQueue", 4340 - AppRockskyPlayerNext: "app.rocksky.player.next", 4341 - AppRockskyPlayerPause: "app.rocksky.player.pause", 4342 - AppRockskyPlayerPlayDirectory: "app.rocksky.player.playDirectory", 4343 - AppRockskyPlayerPlayFile: "app.rocksky.player.playFile", 4344 - AppRockskyPlayerPlay: "app.rocksky.player.play", 4345 - AppRockskyPlayerPrevious: "app.rocksky.player.previous", 4346 - AppRockskyPlayerSeek: "app.rocksky.player.seek", 4347 - AppRockskyPlaylistCreatePlaylist: "app.rocksky.playlist.createPlaylist", 4348 - AppRockskyPlaylistDefs: "app.rocksky.playlist.defs", 4349 - AppRockskyPlaylistGetPlaylist: "app.rocksky.playlist.getPlaylist", 4350 - AppRockskyPlaylistGetPlaylists: "app.rocksky.playlist.getPlaylists", 4351 - AppRockskyPlaylistInsertDirectory: "app.rocksky.playlist.insertDirectory", 4352 - AppRockskyPlaylistInsertFiles: "app.rocksky.playlist.insertFiles", 4353 - AppRockskyPlaylist: "app.rocksky.playlist", 4354 - AppRockskyPlaylistRemovePlaylist: "app.rocksky.playlist.removePlaylist", 4355 - AppRockskyPlaylistRemoveTrack: "app.rocksky.playlist.removeTrack", 4356 - AppRockskyPlaylistStartPlaylist: "app.rocksky.playlist.startPlaylist", 4357 - AppRockskyRadioDefs: "app.rocksky.radio.defs", 4358 - AppRockskyRadio: "app.rocksky.radio", 4359 - AppRockskyScrobbleCreateScrobble: "app.rocksky.scrobble.createScrobble", 4360 - AppRockskyScrobbleDefs: "app.rocksky.scrobble.defs", 4361 - AppRockskyScrobbleGetScrobble: "app.rocksky.scrobble.getScrobble", 4362 - AppRockskyScrobbleGetScrobbles: "app.rocksky.scrobble.getScrobbles", 4363 - AppRockskyScrobble: "app.rocksky.scrobble", 4364 - AppRockskyShoutCreateShout: "app.rocksky.shout.createShout", 4365 - AppRockskyShoutDefs: "app.rocksky.shout.defs", 4366 - AppRockskyShoutGetAlbumShouts: "app.rocksky.shout.getAlbumShouts", 4367 - AppRockskyShoutGetArtistShouts: "app.rocksky.shout.getArtistShouts", 4368 - AppRockskyShoutGetProfileShouts: "app.rocksky.shout.getProfileShouts", 4369 - AppRockskyShoutGetShoutReplies: "app.rocksky.shout.getShoutReplies", 4370 - AppRockskyShoutGetTrackShouts: "app.rocksky.shout.getTrackShouts", 4371 - AppRockskyShoutRemoveShout: "app.rocksky.shout.removeShout", 4372 - AppRockskyShoutReplyShout: "app.rocksky.shout.replyShout", 4373 - AppRockskyShoutReportShout: "app.rocksky.shout.reportShout", 4374 - AppRockskyShout: "app.rocksky.shout", 4375 - AppRockskySongCreateSong: "app.rocksky.song.createSong", 4376 - AppRockskySongDefs: "app.rocksky.song.defs", 4377 - AppRockskySongGetSong: "app.rocksky.song.getSong", 4378 - AppRockskySongGetSongs: "app.rocksky.song.getSongs", 4379 - AppRockskySong: "app.rocksky.song", 4380 - AppRockskySpotifyDefs: "app.rocksky.spotify.defs", 4300 + AppRockskyActorDefs: 'app.rocksky.actor.defs', 4301 + AppRockskyActorGetActorAlbums: 'app.rocksky.actor.getActorAlbums', 4302 + AppRockskyActorGetActorArtists: 'app.rocksky.actor.getActorArtists', 4303 + AppRockskyActorGetActorLovedSongs: 'app.rocksky.actor.getActorLovedSongs', 4304 + AppRockskyActorGetActorPlaylists: 'app.rocksky.actor.getActorPlaylists', 4305 + AppRockskyActorGetActorScrobbles: 'app.rocksky.actor.getActorScrobbles', 4306 + AppRockskyActorGetActorSongs: 'app.rocksky.actor.getActorSongs', 4307 + AppRockskyActorGetProfile: 'app.rocksky.actor.getProfile', 4308 + AppBskyActorProfile: 'app.bsky.actor.profile', 4309 + AppRockskyAlbum: 'app.rocksky.album', 4310 + AppRockskyAlbumDefs: 'app.rocksky.album.defs', 4311 + AppRockskyAlbumGetAlbum: 'app.rocksky.album.getAlbum', 4312 + AppRockskyAlbumGetAlbums: 'app.rocksky.album.getAlbums', 4313 + AppRockskyAlbumGetAlbumTracks: 'app.rocksky.album.getAlbumTracks', 4314 + AppRockskyApikeyCreateApikey: 'app.rocksky.apikey.createApikey', 4315 + AppRockskyApikeyDefs: 'app.rocksky.apikey.defs', 4316 + AppRockskyApikeysDefs: 'app.rocksky.apikeys.defs', 4317 + AppRockskyApikeyGetApikeys: 'app.rocksky.apikey.getApikeys', 4318 + AppRockskyApikeyRemoveApikey: 'app.rocksky.apikey.removeApikey', 4319 + AppRockskyApikeyUpdateApikey: 'app.rocksky.apikey.updateApikey', 4320 + AppRockskyArtist: 'app.rocksky.artist', 4321 + AppRockskyArtistDefs: 'app.rocksky.artist.defs', 4322 + AppRockskyArtistGetArtistAlbums: 'app.rocksky.artist.getArtistAlbums', 4323 + AppRockskyArtistGetArtist: 'app.rocksky.artist.getArtist', 4324 + AppRockskyArtistGetArtists: 'app.rocksky.artist.getArtists', 4325 + AppRockskyArtistGetArtistTracks: 'app.rocksky.artist.getArtistTracks', 4326 + AppRockskyChartsDefs: 'app.rocksky.charts.defs', 4327 + AppRockskyChartsGetScrobblesChart: 'app.rocksky.charts.getScrobblesChart', 4328 + AppRockskyDropboxDefs: 'app.rocksky.dropbox.defs', 4329 + AppRockskyDropboxDownloadFile: 'app.rocksky.dropbox.downloadFile', 4330 + AppRockskyDropboxGetFiles: 'app.rocksky.dropbox.getFiles', 4331 + AppRockskyDropboxGetMetadata: 'app.rocksky.dropbox.getMetadata', 4332 + AppRockskyDropboxGetTemporaryLink: 'app.rocksky.dropbox.getTemporaryLink', 4333 + AppRockskyFeedDefs: 'app.rocksky.feed.defs', 4334 + AppRockskyFeedGetNowPlayings: 'app.rocksky.feed.getNowPlayings', 4335 + AppRockskyFeedSearch: 'app.rocksky.feed.search', 4336 + AppRockskyGoogledriveDefs: 'app.rocksky.googledrive.defs', 4337 + AppRockskyGoogledriveDownloadFile: 'app.rocksky.googledrive.downloadFile', 4338 + AppRockskyGoogledriveGetFile: 'app.rocksky.googledrive.getFile', 4339 + AppRockskyGoogledriveGetFiles: 'app.rocksky.googledrive.getFiles', 4340 + AppRockskyLikeDislikeShout: 'app.rocksky.like.dislikeShout', 4341 + AppRockskyLikeDislikeSong: 'app.rocksky.like.dislikeSong', 4342 + AppRockskyLike: 'app.rocksky.like', 4343 + AppRockskyLikeLikeShout: 'app.rocksky.like.likeShout', 4344 + AppRockskyLikeLikeSong: 'app.rocksky.like.likeSong', 4345 + AppRockskyPlayerAddDirectoryToQueue: 'app.rocksky.player.addDirectoryToQueue', 4346 + AppRockskyPlayerAddItemsToQueue: 'app.rocksky.player.addItemsToQueue', 4347 + AppRockskyPlayerDefs: 'app.rocksky.player.defs', 4348 + AppRockskyPlayerGetCurrentlyPlaying: 'app.rocksky.player.getCurrentlyPlaying', 4349 + AppRockskyPlayerGetPlaybackQueue: 'app.rocksky.player.getPlaybackQueue', 4350 + AppRockskyPlayerNext: 'app.rocksky.player.next', 4351 + AppRockskyPlayerPause: 'app.rocksky.player.pause', 4352 + AppRockskyPlayerPlayDirectory: 'app.rocksky.player.playDirectory', 4353 + AppRockskyPlayerPlayFile: 'app.rocksky.player.playFile', 4354 + AppRockskyPlayerPlay: 'app.rocksky.player.play', 4355 + AppRockskyPlayerPrevious: 'app.rocksky.player.previous', 4356 + AppRockskyPlayerSeek: 'app.rocksky.player.seek', 4357 + AppRockskyPlaylistCreatePlaylist: 'app.rocksky.playlist.createPlaylist', 4358 + AppRockskyPlaylistDefs: 'app.rocksky.playlist.defs', 4359 + AppRockskyPlaylistGetPlaylist: 'app.rocksky.playlist.getPlaylist', 4360 + AppRockskyPlaylistGetPlaylists: 'app.rocksky.playlist.getPlaylists', 4361 + AppRockskyPlaylistInsertDirectory: 'app.rocksky.playlist.insertDirectory', 4362 + AppRockskyPlaylistInsertFiles: 'app.rocksky.playlist.insertFiles', 4363 + AppRockskyPlaylist: 'app.rocksky.playlist', 4364 + AppRockskyPlaylistRemovePlaylist: 'app.rocksky.playlist.removePlaylist', 4365 + AppRockskyPlaylistRemoveTrack: 'app.rocksky.playlist.removeTrack', 4366 + AppRockskyPlaylistStartPlaylist: 'app.rocksky.playlist.startPlaylist', 4367 + AppRockskyRadioDefs: 'app.rocksky.radio.defs', 4368 + AppRockskyRadio: 'app.rocksky.radio', 4369 + AppRockskyScrobbleCreateScrobble: 'app.rocksky.scrobble.createScrobble', 4370 + AppRockskyScrobbleDefs: 'app.rocksky.scrobble.defs', 4371 + AppRockskyScrobbleGetScrobble: 'app.rocksky.scrobble.getScrobble', 4372 + AppRockskyScrobbleGetScrobbles: 'app.rocksky.scrobble.getScrobbles', 4373 + AppRockskyScrobble: 'app.rocksky.scrobble', 4374 + AppRockskyShoutCreateShout: 'app.rocksky.shout.createShout', 4375 + AppRockskyShoutDefs: 'app.rocksky.shout.defs', 4376 + AppRockskyShoutGetAlbumShouts: 'app.rocksky.shout.getAlbumShouts', 4377 + AppRockskyShoutGetArtistShouts: 'app.rocksky.shout.getArtistShouts', 4378 + AppRockskyShoutGetProfileShouts: 'app.rocksky.shout.getProfileShouts', 4379 + AppRockskyShoutGetShoutReplies: 'app.rocksky.shout.getShoutReplies', 4380 + AppRockskyShoutGetTrackShouts: 'app.rocksky.shout.getTrackShouts', 4381 + AppRockskyShoutRemoveShout: 'app.rocksky.shout.removeShout', 4382 + AppRockskyShoutReplyShout: 'app.rocksky.shout.replyShout', 4383 + AppRockskyShoutReportShout: 'app.rocksky.shout.reportShout', 4384 + AppRockskyShout: 'app.rocksky.shout', 4385 + AppRockskySongCreateSong: 'app.rocksky.song.createSong', 4386 + AppRockskySongDefs: 'app.rocksky.song.defs', 4387 + AppRockskySongGetSong: 'app.rocksky.song.getSong', 4388 + AppRockskySongGetSongs: 'app.rocksky.song.getSongs', 4389 + AppRockskySong: 'app.rocksky.song', 4390 + AppRockskySpotifyDefs: 'app.rocksky.spotify.defs', 4381 4391 AppRockskySpotifyGetCurrentlyPlaying: 4382 - "app.rocksky.spotify.getCurrentlyPlaying", 4383 - AppRockskySpotifyNext: "app.rocksky.spotify.next", 4384 - AppRockskySpotifyPause: "app.rocksky.spotify.pause", 4385 - AppRockskySpotifyPlay: "app.rocksky.spotify.play", 4386 - AppRockskySpotifyPrevious: "app.rocksky.spotify.previous", 4387 - AppRockskySpotifySeek: "app.rocksky.spotify.seek", 4388 - AppRockskyStatsDefs: "app.rocksky.stats.defs", 4389 - AppRockskyStatsGetStats: "app.rocksky.stats.getStats", 4390 - ComAtprotoRepoStrongRef: "com.atproto.repo.strongRef", 4391 - }; 4392 + 'app.rocksky.spotify.getCurrentlyPlaying', 4393 + AppRockskySpotifyNext: 'app.rocksky.spotify.next', 4394 + AppRockskySpotifyPause: 'app.rocksky.spotify.pause', 4395 + AppRockskySpotifyPlay: 'app.rocksky.spotify.play', 4396 + AppRockskySpotifyPrevious: 'app.rocksky.spotify.previous', 4397 + AppRockskySpotifySeek: 'app.rocksky.spotify.seek', 4398 + AppRockskyStatsDefs: 'app.rocksky.stats.defs', 4399 + AppRockskyStatsGetStats: 'app.rocksky.stats.getStats', 4400 + ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef', 4401 + }
+19 -19
apps/api/src/lexicon/types/app/bsky/actor/profile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as ComAtprotoLabelDefs from "../../../com/atproto/label/defs"; 9 - import type * as ComAtprotoRepoStrongRef from "../../../com/atproto/repo/strongRef"; 4 + import type { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs' 9 + import type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef' 10 10 11 11 export interface Record { 12 - displayName?: string; 12 + displayName?: string 13 13 /** Free-form profile description text. */ 14 - description?: string; 14 + description?: string 15 15 /** Small image to be displayed next to posts from account. AKA, 'profile picture' */ 16 - avatar?: BlobRef; 16 + avatar?: BlobRef 17 17 /** Larger horizontal image to display behind profile view. */ 18 - banner?: BlobRef; 18 + banner?: BlobRef 19 19 labels?: 20 20 | ComAtprotoLabelDefs.SelfLabels 21 - | { $type: string; [k: string]: unknown }; 22 - joinedViaStarterPack?: ComAtprotoRepoStrongRef.Main; 23 - createdAt?: string; 24 - [k: string]: unknown; 21 + | { $type: string; [k: string]: unknown } 22 + joinedViaStarterPack?: ComAtprotoRepoStrongRef.Main 23 + createdAt?: string 24 + [k: string]: unknown 25 25 } 26 26 27 27 export function isRecord(v: unknown): v is Record { 28 28 return ( 29 29 isObj(v) && 30 - hasProp(v, "$type") && 31 - (v.$type === "app.bsky.actor.profile#main" || 32 - v.$type === "app.bsky.actor.profile") 33 - ); 30 + hasProp(v, '$type') && 31 + (v.$type === 'app.bsky.actor.profile#main' || 32 + v.$type === 'app.bsky.actor.profile') 33 + ) 34 34 } 35 35 36 36 export function validateRecord(v: unknown): ValidationResult { 37 - return lexicons.validate("app.bsky.actor.profile#main", v); 37 + return lexicons.validate('app.bsky.actor.profile#main', v) 38 38 }
+28 -28
apps/api/src/lexicon/types/app/rocksky/actor/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface ProfileViewDetailed { 10 10 /** The unique identifier of the actor. */ 11 - id?: string; 11 + id?: string 12 12 /** The DID of the actor. */ 13 - did?: string; 13 + did?: string 14 14 /** The handle of the actor. */ 15 - handle?: string; 15 + handle?: string 16 16 /** The display name of the actor. */ 17 - displayName?: string; 17 + displayName?: string 18 18 /** The URL of the actor's avatar image. */ 19 - avatar?: string; 19 + avatar?: string 20 20 /** The date and time when the actor was created. */ 21 - createdAt?: string; 21 + createdAt?: string 22 22 /** The date and time when the actor was last updated. */ 23 - updatedAt?: string; 24 - [k: string]: unknown; 23 + updatedAt?: string 24 + [k: string]: unknown 25 25 } 26 26 27 27 export function isProfileViewDetailed(v: unknown): v is ProfileViewDetailed { 28 28 return ( 29 29 isObj(v) && 30 - hasProp(v, "$type") && 31 - v.$type === "app.rocksky.actor.defs#profileViewDetailed" 32 - ); 30 + hasProp(v, '$type') && 31 + v.$type === 'app.rocksky.actor.defs#profileViewDetailed' 32 + ) 33 33 } 34 34 35 35 export function validateProfileViewDetailed(v: unknown): ValidationResult { 36 - return lexicons.validate("app.rocksky.actor.defs#profileViewDetailed", v); 36 + return lexicons.validate('app.rocksky.actor.defs#profileViewDetailed', v) 37 37 } 38 38 39 39 export interface ProfileViewBasic { 40 40 /** The unique identifier of the actor. */ 41 - id?: string; 41 + id?: string 42 42 /** The DID of the actor. */ 43 - did?: string; 43 + did?: string 44 44 /** The handle of the actor. */ 45 - handle?: string; 45 + handle?: string 46 46 /** The display name of the actor. */ 47 - displayName?: string; 47 + displayName?: string 48 48 /** The URL of the actor's avatar image. */ 49 - avatar?: string; 49 + avatar?: string 50 50 /** The date and time when the actor was created. */ 51 - createdAt?: string; 51 + createdAt?: string 52 52 /** The date and time when the actor was last updated. */ 53 - updatedAt?: string; 54 - [k: string]: unknown; 53 + updatedAt?: string 54 + [k: string]: unknown 55 55 } 56 56 57 57 export function isProfileViewBasic(v: unknown): v is ProfileViewBasic { 58 58 return ( 59 59 isObj(v) && 60 - hasProp(v, "$type") && 61 - v.$type === "app.rocksky.actor.defs#profileViewBasic" 62 - ); 60 + hasProp(v, '$type') && 61 + v.$type === 'app.rocksky.actor.defs#profileViewBasic' 62 + ) 63 63 } 64 64 65 65 export function validateProfileViewBasic(v: unknown): ValidationResult { 66 - return lexicons.validate("app.rocksky.actor.defs#profileViewBasic", v); 66 + return lexicons.validate('app.rocksky.actor.defs#profileViewBasic', v) 67 67 }
+28 -28
apps/api/src/lexicon/types/app/rocksky/actor/getActorAlbums.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyAlbumDefs from "../album/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyAlbumDefs from '../album/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did: string; 14 + did: string 15 15 /** The maximum number of albums to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - albums?: AppRockskyAlbumDefs.AlbumViewBasic[]; 25 - [k: string]: unknown; 24 + albums?: AppRockskyAlbumDefs.AlbumViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/actor/getActorArtists.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyArtistDefs from "../artist/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyArtistDefs from '../artist/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did: string; 14 + did: string 15 15 /** The maximum number of albums to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - artists?: AppRockskyArtistDefs.ArtistViewBasic[]; 25 - [k: string]: unknown; 24 + artists?: AppRockskyArtistDefs.ArtistViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/actor/getActorLovedSongs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "../song/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from '../song/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did: string; 14 + did: string 15 15 /** The maximum number of albums to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - tracks?: AppRockskySongDefs.SongViewBasic[]; 25 - [k: string]: unknown; 24 + tracks?: AppRockskySongDefs.SongViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/actor/getActorPlaylists.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyPlaylistDefs from "../playlist/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyPlaylistDefs from '../playlist/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did: string; 14 + did: string 15 15 /** The maximum number of albums to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - playlists?: AppRockskyPlaylistDefs.PlaylistViewBasic[]; 25 - [k: string]: unknown; 24 + playlists?: AppRockskyPlaylistDefs.PlaylistViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/actor/getActorScrobbles.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyScrobbleDefs from "../scrobble/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyScrobbleDefs from '../scrobble/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did: string; 14 + did: string 15 15 /** The maximum number of albums to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - scrobbles?: AppRockskyScrobbleDefs.ScrobbleViewBasic[]; 25 - [k: string]: unknown; 24 + scrobbles?: AppRockskyScrobbleDefs.ScrobbleViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/actor/getActorSongs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "../song/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from '../song/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did: string; 14 + did: string 15 15 /** The maximum number of albums to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - songs?: AppRockskySongDefs.SongViewBasic[]; 25 - [k: string]: unknown; 24 + songs?: AppRockskySongDefs.SongViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/actor/getProfile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyActorDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyActorDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did?: string; 14 + did?: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyActorDefs.ProfileViewDetailed; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyActorDefs.ProfileViewDetailed 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+22 -22
apps/api/src/lexicon/types/app/rocksky/album.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import type { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface Record { 10 10 /** The title of the album. */ 11 - title: string; 11 + title: string 12 12 /** The artist of the album. */ 13 - artist: string; 13 + artist: string 14 14 /** The duration of the album in seconds. */ 15 - duration?: number; 15 + duration?: number 16 16 /** The release date of the album. */ 17 - releaseDate?: string; 17 + releaseDate?: string 18 18 /** The year the album was released. */ 19 - year?: number; 19 + year?: number 20 20 /** The genre of the album. */ 21 - genre?: string; 21 + genre?: string 22 22 /** The album art of the album. */ 23 - albumArt?: BlobRef; 23 + albumArt?: BlobRef 24 24 /** The tags of the album. */ 25 - tags?: string[]; 25 + tags?: string[] 26 26 /** The YouTube link of the album. */ 27 - youtubeLink?: string; 27 + youtubeLink?: string 28 28 /** The Spotify link of the album. */ 29 - spotifyLink?: string; 29 + spotifyLink?: string 30 30 /** The tidal link of the album. */ 31 - tidalLink?: string; 31 + tidalLink?: string 32 32 /** The Apple Music link of the album. */ 33 - appleMusicLink?: string; 33 + appleMusicLink?: string 34 34 /** The date and time when the album was created. */ 35 - createdAt: string; 36 - [k: string]: unknown; 35 + createdAt: string 36 + [k: string]: unknown 37 37 } 38 38 39 39 export function isRecord(v: unknown): v is Record { 40 40 return ( 41 41 isObj(v) && 42 - hasProp(v, "$type") && 43 - (v.$type === "app.rocksky.album#main" || v.$type === "app.rocksky.album") 44 - ); 42 + hasProp(v, '$type') && 43 + (v.$type === 'app.rocksky.album#main' || v.$type === 'app.rocksky.album') 44 + ) 45 45 } 46 46 47 47 export function validateRecord(v: unknown): ValidationResult { 48 - return lexicons.validate("app.rocksky.album#main", v); 48 + return lexicons.validate('app.rocksky.album#main', v) 49 49 }
+38 -38
apps/api/src/lexicon/types/app/rocksky/album/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as AppRockskySongDefsSongViewBasic from "../song/defs/songViewBasic"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as AppRockskySongDefsSongViewBasic from '../song/defs/songViewBasic' 9 9 10 10 export interface AlbumViewBasic { 11 11 /** The unique identifier of the album. */ 12 - id?: string; 12 + id?: string 13 13 /** The URI of the album. */ 14 - uri?: string; 14 + uri?: string 15 15 /** The title of the album. */ 16 - title?: string; 16 + title?: string 17 17 /** The artist of the album. */ 18 - artist?: string; 18 + artist?: string 19 19 /** The URI of the album's artist. */ 20 - artistUri?: string; 20 + artistUri?: string 21 21 /** The year the album was released. */ 22 - year?: number; 22 + year?: number 23 23 /** The URL of the album art image. */ 24 - albumArt?: string; 24 + albumArt?: string 25 25 /** The release date of the album. */ 26 - releaseDate?: string; 26 + releaseDate?: string 27 27 /** The SHA256 hash of the album. */ 28 - sha256?: string; 28 + sha256?: string 29 29 /** The number of times the album has been played. */ 30 - playCount?: number; 30 + playCount?: number 31 31 /** The number of unique listeners who have played the album. */ 32 - uniqueListeners?: number; 33 - [k: string]: unknown; 32 + uniqueListeners?: number 33 + [k: string]: unknown 34 34 } 35 35 36 36 export function isAlbumViewBasic(v: unknown): v is AlbumViewBasic { 37 37 return ( 38 38 isObj(v) && 39 - hasProp(v, "$type") && 40 - v.$type === "app.rocksky.album.defs#albumViewBasic" 41 - ); 39 + hasProp(v, '$type') && 40 + v.$type === 'app.rocksky.album.defs#albumViewBasic' 41 + ) 42 42 } 43 43 44 44 export function validateAlbumViewBasic(v: unknown): ValidationResult { 45 - return lexicons.validate("app.rocksky.album.defs#albumViewBasic", v); 45 + return lexicons.validate('app.rocksky.album.defs#albumViewBasic', v) 46 46 } 47 47 48 48 export interface AlbumViewDetailed { 49 49 /** The unique identifier of the album. */ 50 - id?: string; 50 + id?: string 51 51 /** The URI of the album. */ 52 - uri?: string; 52 + uri?: string 53 53 /** The title of the album. */ 54 - title?: string; 54 + title?: string 55 55 /** The artist of the album. */ 56 - artist?: string; 56 + artist?: string 57 57 /** The URI of the album's artist. */ 58 - artistUri?: string; 58 + artistUri?: string 59 59 /** The year the album was released. */ 60 - year?: number; 60 + year?: number 61 61 /** The URL of the album art image. */ 62 - albumArt?: string; 62 + albumArt?: string 63 63 /** The release date of the album. */ 64 - releaseDate?: string; 64 + releaseDate?: string 65 65 /** The SHA256 hash of the album. */ 66 - sha256?: string; 66 + sha256?: string 67 67 /** The number of times the album has been played. */ 68 - playCount?: number; 68 + playCount?: number 69 69 /** The number of unique listeners who have played the album. */ 70 - uniqueListeners?: number; 71 - tracks?: AppRockskySongDefsSongViewBasic.Main[]; 72 - [k: string]: unknown; 70 + uniqueListeners?: number 71 + tracks?: AppRockskySongDefsSongViewBasic.Main[] 72 + [k: string]: unknown 73 73 } 74 74 75 75 export function isAlbumViewDetailed(v: unknown): v is AlbumViewDetailed { 76 76 return ( 77 77 isObj(v) && 78 - hasProp(v, "$type") && 79 - v.$type === "app.rocksky.album.defs#albumViewDetailed" 80 - ); 78 + hasProp(v, '$type') && 79 + v.$type === 'app.rocksky.album.defs#albumViewDetailed' 80 + ) 81 81 } 82 82 83 83 export function validateAlbumViewDetailed(v: unknown): ValidationResult { 84 - return lexicons.validate("app.rocksky.album.defs#albumViewDetailed", v); 84 + return lexicons.validate('app.rocksky.album.defs#albumViewDetailed', v) 85 85 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/album/getAlbum.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyAlbumDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyAlbumDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the album to retrieve. */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyAlbumDefs.AlbumViewDetailed; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyAlbumDefs.AlbumViewDetailed 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+26 -26
apps/api/src/lexicon/types/app/rocksky/album/getAlbumTracks.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "../song/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from '../song/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the album to retrieve tracks from */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 17 + export type InputSchema = undefined 18 18 19 19 export interface OutputSchema { 20 - tracks?: AppRockskySongDefs.SongViewBasic[]; 21 - [k: string]: unknown; 20 + tracks?: AppRockskySongDefs.SongViewBasic[] 21 + [k: string]: unknown 22 22 } 23 23 24 - export type HandlerInput = undefined; 24 + export type HandlerInput = undefined 25 25 26 26 export interface HandlerSuccess { 27 - encoding: "application/json"; 28 - body: OutputSchema; 29 - headers?: { [key: string]: string }; 27 + encoding: 'application/json' 28 + body: OutputSchema 29 + headers?: { [key: string]: string } 30 30 } 31 31 32 32 export interface HandlerError { 33 - status: number; 34 - message?: string; 33 + status: number 34 + message?: string 35 35 } 36 36 37 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 37 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 38 38 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 39 - auth: HA; 40 - params: QueryParams; 41 - input: HandlerInput; 42 - req: express.Request; 43 - res: express.Response; 44 - resetRouteRateLimits: () => Promise<void>; 45 - }; 39 + auth: HA 40 + params: QueryParams 41 + input: HandlerInput 42 + req: express.Request 43 + res: express.Response 44 + resetRouteRateLimits: () => Promise<void> 45 + } 46 46 export type Handler<HA extends HandlerAuth = never> = ( 47 47 ctx: HandlerReqCtx<HA>, 48 - ) => Promise<HandlerOutput> | HandlerOutput; 48 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/album/getAlbums.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyAlbumDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyAlbumDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The maximum number of albums to return */ 14 - limit?: number; 14 + limit?: number 15 15 /** The offset for pagination */ 16 - offset?: number; 16 + offset?: number 17 17 } 18 18 19 - export type InputSchema = undefined; 19 + export type InputSchema = undefined 20 20 21 21 export interface OutputSchema { 22 - albums?: AppRockskyAlbumDefs.AlbumViewBasic[]; 23 - [k: string]: unknown; 22 + albums?: AppRockskyAlbumDefs.AlbumViewBasic[] 23 + [k: string]: unknown 24 24 } 25 25 26 - export type HandlerInput = undefined; 26 + export type HandlerInput = undefined 27 27 28 28 export interface HandlerSuccess { 29 - encoding: "application/json"; 30 - body: OutputSchema; 31 - headers?: { [key: string]: string }; 29 + encoding: 'application/json' 30 + body: OutputSchema 31 + headers?: { [key: string]: string } 32 32 } 33 33 34 34 export interface HandlerError { 35 - status: number; 36 - message?: string; 35 + status: number 36 + message?: string 37 37 } 38 38 39 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 39 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 40 40 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 41 - auth: HA; 42 - params: QueryParams; 43 - input: HandlerInput; 44 - req: express.Request; 45 - res: express.Response; 46 - resetRouteRateLimits: () => Promise<void>; 47 - }; 41 + auth: HA 42 + params: QueryParams 43 + input: HandlerInput 44 + req: express.Request 45 + res: express.Response 46 + resetRouteRateLimits: () => Promise<void> 47 + } 48 48 export type Handler<HA extends HandlerAuth = never> = ( 49 49 ctx: HandlerReqCtx<HA>, 50 - ) => Promise<HandlerOutput> | HandlerOutput; 50 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/apikey/createApikey.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyApikeyDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyApikeyDefs from './defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The name of the API key. */ 16 - name: string; 16 + name: string 17 17 /** A description for the API key. */ 18 - description?: string; 19 - [k: string]: unknown; 18 + description?: string 19 + [k: string]: unknown 20 20 } 21 21 22 - export type OutputSchema = AppRockskyApikeyDefs.ApiKey; 22 + export type OutputSchema = AppRockskyApikeyDefs.ApiKey 23 23 24 24 export interface HandlerInput { 25 - encoding: "application/json"; 26 - body: InputSchema; 25 + encoding: 'application/json' 26 + body: InputSchema 27 27 } 28 28 29 29 export interface HandlerSuccess { 30 - encoding: "application/json"; 31 - body: OutputSchema; 32 - headers?: { [key: string]: string }; 30 + encoding: 'application/json' 31 + body: OutputSchema 32 + headers?: { [key: string]: string } 33 33 } 34 34 35 35 export interface HandlerError { 36 - status: number; 37 - message?: string; 36 + status: number 37 + message?: string 38 38 } 39 39 40 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 40 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 41 41 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 42 - auth: HA; 43 - params: QueryParams; 44 - input: HandlerInput; 45 - req: express.Request; 46 - res: express.Response; 47 - resetRouteRateLimits: () => Promise<void>; 48 - }; 42 + auth: HA 43 + params: QueryParams 44 + input: HandlerInput 45 + req: express.Request 46 + res: express.Response 47 + resetRouteRateLimits: () => Promise<void> 48 + } 49 49 export type Handler<HA extends HandlerAuth = never> = ( 50 50 ctx: HandlerReqCtx<HA>, 51 - ) => Promise<HandlerOutput> | HandlerOutput; 51 + ) => Promise<HandlerOutput> | HandlerOutput
+13 -13
apps/api/src/lexicon/types/app/rocksky/apikey/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface ApiKeyView { 10 10 /** The unique identifier of the API key. */ 11 - id?: string; 11 + id?: string 12 12 /** The name of the API key. */ 13 - name?: string; 13 + name?: string 14 14 /** A description for the API key. */ 15 - description?: string; 15 + description?: string 16 16 /** The date and time when the API key was created. */ 17 - createdAt?: string; 18 - [k: string]: unknown; 17 + createdAt?: string 18 + [k: string]: unknown 19 19 } 20 20 21 21 export function isApiKeyView(v: unknown): v is ApiKeyView { 22 22 return ( 23 23 isObj(v) && 24 - hasProp(v, "$type") && 25 - v.$type === "app.rocksky.apikey.defs#apiKeyView" 26 - ); 24 + hasProp(v, '$type') && 25 + v.$type === 'app.rocksky.apikey.defs#apiKeyView' 26 + ) 27 27 } 28 28 29 29 export function validateApiKeyView(v: unknown): ValidationResult { 30 - return lexicons.validate("app.rocksky.apikey.defs#apiKeyView", v); 30 + return lexicons.validate('app.rocksky.apikey.defs#apiKeyView', v) 31 31 }
+27 -27
apps/api/src/lexicon/types/app/rocksky/apikey/getApikeys.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyApikeyDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyApikeyDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The number of API keys to skip before starting to collect the result set. */ 14 - offset?: number; 14 + offset?: number 15 15 /** The number of API keys to return per page. */ 16 - limit?: number; 16 + limit?: number 17 17 } 18 18 19 - export type InputSchema = undefined; 19 + export type InputSchema = undefined 20 20 21 21 export interface OutputSchema { 22 - apiKeys?: AppRockskyApikeyDefs.ApikeyView[]; 23 - [k: string]: unknown; 22 + apiKeys?: AppRockskyApikeyDefs.ApikeyView[] 23 + [k: string]: unknown 24 24 } 25 25 26 - export type HandlerInput = undefined; 26 + export type HandlerInput = undefined 27 27 28 28 export interface HandlerSuccess { 29 - encoding: "application/json"; 30 - body: OutputSchema; 31 - headers?: { [key: string]: string }; 29 + encoding: 'application/json' 30 + body: OutputSchema 31 + headers?: { [key: string]: string } 32 32 } 33 33 34 34 export interface HandlerError { 35 - status: number; 36 - message?: string; 35 + status: number 36 + message?: string 37 37 } 38 38 39 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 39 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 40 40 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 41 - auth: HA; 42 - params: QueryParams; 43 - input: HandlerInput; 44 - req: express.Request; 45 - res: express.Response; 46 - resetRouteRateLimits: () => Promise<void>; 47 - }; 41 + auth: HA 42 + params: QueryParams 43 + input: HandlerInput 44 + req: express.Request 45 + res: express.Response 46 + resetRouteRateLimits: () => Promise<void> 47 + } 48 48 export type Handler<HA extends HandlerAuth = never> = ( 49 49 ctx: HandlerReqCtx<HA>, 50 - ) => Promise<HandlerOutput> | HandlerOutput; 50 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/apikey/removeApikey.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyApikeyDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyApikeyDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The ID of the API key to remove. */ 14 - id: string; 14 + id: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyApikeyDefs.ApiKey; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyApikeyDefs.ApiKey 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+29 -29
apps/api/src/lexicon/types/app/rocksky/apikey/updateApikey.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyApikeyDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyApikeyDefs from './defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The ID of the API key to update. */ 16 - id: string; 16 + id: string 17 17 /** The new name of the API key. */ 18 - name: string; 18 + name: string 19 19 /** A new description for the API key. */ 20 - description?: string; 21 - [k: string]: unknown; 20 + description?: string 21 + [k: string]: unknown 22 22 } 23 23 24 - export type OutputSchema = AppRockskyApikeyDefs.ApiKey; 24 + export type OutputSchema = AppRockskyApikeyDefs.ApiKey 25 25 26 26 export interface HandlerInput { 27 - encoding: "application/json"; 28 - body: InputSchema; 27 + encoding: 'application/json' 28 + body: InputSchema 29 29 } 30 30 31 31 export interface HandlerSuccess { 32 - encoding: "application/json"; 33 - body: OutputSchema; 34 - headers?: { [key: string]: string }; 32 + encoding: 'application/json' 33 + body: OutputSchema 34 + headers?: { [key: string]: string } 35 35 } 36 36 37 37 export interface HandlerError { 38 - status: number; 39 - message?: string; 38 + status: number 39 + message?: string 40 40 } 41 41 42 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 42 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 43 43 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 44 - auth: HA; 45 - params: QueryParams; 46 - input: HandlerInput; 47 - req: express.Request; 48 - res: express.Response; 49 - resetRouteRateLimits: () => Promise<void>; 50 - }; 44 + auth: HA 45 + params: QueryParams 46 + input: HandlerInput 47 + req: express.Request 48 + res: express.Response 49 + resetRouteRateLimits: () => Promise<void> 50 + } 51 51 export type Handler<HA extends HandlerAuth = never> = ( 52 52 ctx: HandlerReqCtx<HA>, 53 - ) => Promise<HandlerOutput> | HandlerOutput; 53 + ) => Promise<HandlerOutput> | HandlerOutput
+4 -4
apps/api/src/lexicon/types/app/rocksky/apikeys/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid'
+17 -17
apps/api/src/lexicon/types/app/rocksky/artist.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import type { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface Record { 10 10 /** The name of the artist. */ 11 - name: string; 11 + name: string 12 12 /** The biography of the artist. */ 13 - bio?: string; 13 + bio?: string 14 14 /** The picture of the artist. */ 15 - picture?: BlobRef; 15 + picture?: BlobRef 16 16 /** The tags of the artist. */ 17 - tags?: string[]; 17 + tags?: string[] 18 18 /** The birth date of the artist. */ 19 - born?: string; 19 + born?: string 20 20 /** The death date of the artist. */ 21 - died?: string; 21 + died?: string 22 22 /** The birth place of the artist. */ 23 - bornIn?: string; 23 + bornIn?: string 24 24 /** The date when the artist was created. */ 25 - createdAt: string; 26 - [k: string]: unknown; 25 + createdAt: string 26 + [k: string]: unknown 27 27 } 28 28 29 29 export function isRecord(v: unknown): v is Record { 30 30 return ( 31 31 isObj(v) && 32 - hasProp(v, "$type") && 33 - (v.$type === "app.rocksky.artist#main" || v.$type === "app.rocksky.artist") 34 - ); 32 + hasProp(v, '$type') && 33 + (v.$type === 'app.rocksky.artist#main' || v.$type === 'app.rocksky.artist') 34 + ) 35 35 } 36 36 37 37 export function validateRecord(v: unknown): ValidationResult { 38 - return lexicons.validate("app.rocksky.artist#main", v); 38 + return lexicons.validate('app.rocksky.artist#main', v) 39 39 }
+28 -28
apps/api/src/lexicon/types/app/rocksky/artist/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface ArtistViewBasic { 10 10 /** The unique identifier of the artist. */ 11 - id?: string; 11 + id?: string 12 12 /** The URI of the artist. */ 13 - uri?: string; 13 + uri?: string 14 14 /** The name of the artist. */ 15 - name?: string; 15 + name?: string 16 16 /** The picture of the artist. */ 17 - picture?: string; 17 + picture?: string 18 18 /** The SHA256 hash of the artist. */ 19 - sha256?: string; 19 + sha256?: string 20 20 /** The number of times the artist has been played. */ 21 - playCount?: number; 21 + playCount?: number 22 22 /** The number of unique listeners who have played the artist. */ 23 - uniqueListeners?: number; 24 - [k: string]: unknown; 23 + uniqueListeners?: number 24 + [k: string]: unknown 25 25 } 26 26 27 27 export function isArtistViewBasic(v: unknown): v is ArtistViewBasic { 28 28 return ( 29 29 isObj(v) && 30 - hasProp(v, "$type") && 31 - v.$type === "app.rocksky.artist.defs#artistViewBasic" 32 - ); 30 + hasProp(v, '$type') && 31 + v.$type === 'app.rocksky.artist.defs#artistViewBasic' 32 + ) 33 33 } 34 34 35 35 export function validateArtistViewBasic(v: unknown): ValidationResult { 36 - return lexicons.validate("app.rocksky.artist.defs#artistViewBasic", v); 36 + return lexicons.validate('app.rocksky.artist.defs#artistViewBasic', v) 37 37 } 38 38 39 39 export interface ArtistViewDetailed { 40 40 /** The unique identifier of the artist. */ 41 - id?: string; 41 + id?: string 42 42 /** The URI of the artist. */ 43 - uri?: string; 43 + uri?: string 44 44 /** The name of the artist. */ 45 - name?: string; 45 + name?: string 46 46 /** The picture of the artist. */ 47 - picture?: string; 47 + picture?: string 48 48 /** The SHA256 hash of the artist. */ 49 - sha256?: string; 49 + sha256?: string 50 50 /** The number of times the artist has been played. */ 51 - playCount?: number; 51 + playCount?: number 52 52 /** The number of unique listeners who have played the artist. */ 53 - uniqueListeners?: number; 54 - [k: string]: unknown; 53 + uniqueListeners?: number 54 + [k: string]: unknown 55 55 } 56 56 57 57 export function isArtistViewDetailed(v: unknown): v is ArtistViewDetailed { 58 58 return ( 59 59 isObj(v) && 60 - hasProp(v, "$type") && 61 - v.$type === "app.rocksky.artist.defs#artistViewDetailed" 62 - ); 60 + hasProp(v, '$type') && 61 + v.$type === 'app.rocksky.artist.defs#artistViewDetailed' 62 + ) 63 63 } 64 64 65 65 export function validateArtistViewDetailed(v: unknown): ValidationResult { 66 - return lexicons.validate("app.rocksky.artist.defs#artistViewDetailed", v); 66 + return lexicons.validate('app.rocksky.artist.defs#artistViewDetailed', v) 67 67 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/artist/getArtist.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyArtistDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyArtistDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the artist to retrieve details from */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyArtistDefs.ArtistViewDetailed; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyArtistDefs.ArtistViewDetailed 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+26 -26
apps/api/src/lexicon/types/app/rocksky/artist/getArtistAlbums.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyAlbumDefs from "../album/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyAlbumDefs from '../album/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the artist to retrieve albums from */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 17 + export type InputSchema = undefined 18 18 19 19 export interface OutputSchema { 20 - albums?: AppRockskyAlbumDefs.AlbumViewBasic[]; 21 - [k: string]: unknown; 20 + albums?: AppRockskyAlbumDefs.AlbumViewBasic[] 21 + [k: string]: unknown 22 22 } 23 23 24 - export type HandlerInput = undefined; 24 + export type HandlerInput = undefined 25 25 26 26 export interface HandlerSuccess { 27 - encoding: "application/json"; 28 - body: OutputSchema; 29 - headers?: { [key: string]: string }; 27 + encoding: 'application/json' 28 + body: OutputSchema 29 + headers?: { [key: string]: string } 30 30 } 31 31 32 32 export interface HandlerError { 33 - status: number; 34 - message?: string; 33 + status: number 34 + message?: string 35 35 } 36 36 37 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 37 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 38 38 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 39 - auth: HA; 40 - params: QueryParams; 41 - input: HandlerInput; 42 - req: express.Request; 43 - res: express.Response; 44 - resetRouteRateLimits: () => Promise<void>; 45 - }; 39 + auth: HA 40 + params: QueryParams 41 + input: HandlerInput 42 + req: express.Request 43 + res: express.Response 44 + resetRouteRateLimits: () => Promise<void> 45 + } 46 46 export type Handler<HA extends HandlerAuth = never> = ( 47 47 ctx: HandlerReqCtx<HA>, 48 - ) => Promise<HandlerOutput> | HandlerOutput; 48 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/artist/getArtistTracks.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "../song/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from '../song/defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the artist to retrieve albums from */ 14 - uri?: string; 14 + uri?: string 15 15 /** The maximum number of tracks to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - tracks?: AppRockskySongDefs.SongViewBasic[]; 25 - [k: string]: unknown; 24 + tracks?: AppRockskySongDefs.SongViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/artist/getArtists.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyArtistDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyArtistDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The maximum number of artists to return */ 14 - limit?: number; 14 + limit?: number 15 15 /** The offset for pagination */ 16 - offset?: number; 16 + offset?: number 17 17 } 18 18 19 - export type InputSchema = undefined; 19 + export type InputSchema = undefined 20 20 21 21 export interface OutputSchema { 22 - artists?: AppRockskyArtistDefs.ArtistViewBasic[]; 23 - [k: string]: unknown; 22 + artists?: AppRockskyArtistDefs.ArtistViewBasic[] 23 + [k: string]: unknown 24 24 } 25 25 26 - export type HandlerInput = undefined; 26 + export type HandlerInput = undefined 27 27 28 28 export interface HandlerSuccess { 29 - encoding: "application/json"; 30 - body: OutputSchema; 31 - headers?: { [key: string]: string }; 29 + encoding: 'application/json' 30 + body: OutputSchema 31 + headers?: { [key: string]: string } 32 32 } 33 33 34 34 export interface HandlerError { 35 - status: number; 36 - message?: string; 35 + status: number 36 + message?: string 37 37 } 38 38 39 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 39 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 40 40 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 41 - auth: HA; 42 - params: QueryParams; 43 - input: HandlerInput; 44 - req: express.Request; 45 - res: express.Response; 46 - resetRouteRateLimits: () => Promise<void>; 47 - }; 41 + auth: HA 42 + params: QueryParams 43 + input: HandlerInput 44 + req: express.Request 45 + res: express.Response 46 + resetRouteRateLimits: () => Promise<void> 47 + } 48 48 export type Handler<HA extends HandlerAuth = never> = ( 49 49 ctx: HandlerReqCtx<HA>, 50 - ) => Promise<HandlerOutput> | HandlerOutput; 50 + ) => Promise<HandlerOutput> | HandlerOutput
+17 -17
apps/api/src/lexicon/types/app/rocksky/charts/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface ChartsView { 10 - scrobbles?: ScrobbleViewBasic[]; 11 - [k: string]: unknown; 10 + scrobbles?: ScrobbleViewBasic[] 11 + [k: string]: unknown 12 12 } 13 13 14 14 export function isChartsView(v: unknown): v is ChartsView { 15 15 return ( 16 16 isObj(v) && 17 - hasProp(v, "$type") && 18 - v.$type === "app.rocksky.charts.defs#chartsView" 19 - ); 17 + hasProp(v, '$type') && 18 + v.$type === 'app.rocksky.charts.defs#chartsView' 19 + ) 20 20 } 21 21 22 22 export function validateChartsView(v: unknown): ValidationResult { 23 - return lexicons.validate("app.rocksky.charts.defs#chartsView", v); 23 + return lexicons.validate('app.rocksky.charts.defs#chartsView', v) 24 24 } 25 25 26 26 export interface ScrobbleViewBasic { 27 27 /** The date of the scrobble. */ 28 - date?: string; 28 + date?: string 29 29 /** The number of scrobbles on this date. */ 30 - count?: number; 31 - [k: string]: unknown; 30 + count?: number 31 + [k: string]: unknown 32 32 } 33 33 34 34 export function isScrobbleViewBasic(v: unknown): v is ScrobbleViewBasic { 35 35 return ( 36 36 isObj(v) && 37 - hasProp(v, "$type") && 38 - v.$type === "app.rocksky.charts.defs#scrobbleViewBasic" 39 - ); 37 + hasProp(v, '$type') && 38 + v.$type === 'app.rocksky.charts.defs#scrobbleViewBasic' 39 + ) 40 40 } 41 41 42 42 export function validateScrobbleViewBasic(v: unknown): ValidationResult { 43 - return lexicons.validate("app.rocksky.charts.defs#scrobbleViewBasic", v); 43 + return lexicons.validate('app.rocksky.charts.defs#scrobbleViewBasic', v) 44 44 }
+28 -28
apps/api/src/lexicon/types/app/rocksky/charts/getScrobblesChart.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyChartsDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyChartsDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did?: string; 14 + did?: string 15 15 /** The URI of the artist to filter by */ 16 - artisturi?: string; 16 + artisturi?: string 17 17 /** The URI of the album to filter by */ 18 - albumuri?: string; 18 + albumuri?: string 19 19 /** The URI of the track to filter by */ 20 - songuri?: string; 20 + songuri?: string 21 21 } 22 22 23 - export type InputSchema = undefined; 24 - export type OutputSchema = AppRockskyChartsDefs.ChartsView; 25 - export type HandlerInput = undefined; 23 + export type InputSchema = undefined 24 + export type OutputSchema = AppRockskyChartsDefs.ChartsView 25 + export type HandlerInput = undefined 26 26 27 27 export interface HandlerSuccess { 28 - encoding: "application/json"; 29 - body: OutputSchema; 30 - headers?: { [key: string]: string }; 28 + encoding: 'application/json' 29 + body: OutputSchema 30 + headers?: { [key: string]: string } 31 31 } 32 32 33 33 export interface HandlerError { 34 - status: number; 35 - message?: string; 34 + status: number 35 + message?: string 36 36 } 37 37 38 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 39 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 40 - auth: HA; 41 - params: QueryParams; 42 - input: HandlerInput; 43 - req: express.Request; 44 - res: express.Response; 45 - resetRouteRateLimits: () => Promise<void>; 46 - }; 40 + auth: HA 41 + params: QueryParams 42 + input: HandlerInput 43 + req: express.Request 44 + res: express.Response 45 + resetRouteRateLimits: () => Promise<void> 46 + } 47 47 export type Handler<HA extends HandlerAuth = never> = ( 48 48 ctx: HandlerReqCtx<HA>, 49 - ) => Promise<HandlerOutput> | HandlerOutput; 49 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/dropbox/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface FileView { 10 10 /** The unique identifier of the file. */ 11 - id?: string; 11 + id?: string 12 12 /** The name of the file. */ 13 - name?: string; 13 + name?: string 14 14 /** The lowercased path of the file. */ 15 - pathLower?: string; 15 + pathLower?: string 16 16 /** The display path of the file. */ 17 - pathDisplay?: string; 17 + pathDisplay?: string 18 18 /** The last modified date and time of the file on the client. */ 19 - clientModified?: string; 19 + clientModified?: string 20 20 /** The last modified date and time of the file on the server. */ 21 - serverModified?: string; 22 - [k: string]: unknown; 21 + serverModified?: string 22 + [k: string]: unknown 23 23 } 24 24 25 25 export function isFileView(v: unknown): v is FileView { 26 26 return ( 27 27 isObj(v) && 28 - hasProp(v, "$type") && 29 - v.$type === "app.rocksky.dropbox.defs#fileView" 30 - ); 28 + hasProp(v, '$type') && 29 + v.$type === 'app.rocksky.dropbox.defs#fileView' 30 + ) 31 31 } 32 32 33 33 export function validateFileView(v: unknown): ValidationResult { 34 - return lexicons.validate("app.rocksky.dropbox.defs#fileView", v); 34 + return lexicons.validate('app.rocksky.dropbox.defs#fileView', v) 35 35 } 36 36 37 37 export interface FileListView { 38 38 /** A list of files in the Dropbox. */ 39 - files?: FileView[]; 40 - [k: string]: unknown; 39 + files?: FileView[] 40 + [k: string]: unknown 41 41 } 42 42 43 43 export function isFileListView(v: unknown): v is FileListView { 44 44 return ( 45 45 isObj(v) && 46 - hasProp(v, "$type") && 47 - v.$type === "app.rocksky.dropbox.defs#fileListView" 48 - ); 46 + hasProp(v, '$type') && 47 + v.$type === 'app.rocksky.dropbox.defs#fileListView' 48 + ) 49 49 } 50 50 51 51 export function validateFileListView(v: unknown): ValidationResult { 52 - return lexicons.validate("app.rocksky.dropbox.defs#fileListView", v); 52 + return lexicons.validate('app.rocksky.dropbox.defs#fileListView', v) 53 53 } 54 54 55 55 export interface TemporaryLinkView { 56 56 /** The temporary link to access the file. */ 57 - link?: string; 58 - [k: string]: unknown; 57 + link?: string 58 + [k: string]: unknown 59 59 } 60 60 61 61 export function isTemporaryLinkView(v: unknown): v is TemporaryLinkView { 62 62 return ( 63 63 isObj(v) && 64 - hasProp(v, "$type") && 65 - v.$type === "app.rocksky.dropbox.defs#temporaryLinkView" 66 - ); 64 + hasProp(v, '$type') && 65 + v.$type === 'app.rocksky.dropbox.defs#temporaryLinkView' 66 + ) 67 67 } 68 68 69 69 export function validateTemporaryLinkView(v: unknown): ValidationResult { 70 - return lexicons.validate("app.rocksky.dropbox.defs#temporaryLinkView", v); 70 + return lexicons.validate('app.rocksky.dropbox.defs#temporaryLinkView', v) 71 71 }
+24 -24
apps/api/src/lexicon/types/app/rocksky/dropbox/downloadFile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import type stream from "stream"; 6 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 7 - import { lexicons } from "../../../../lexicons"; 8 - import { isObj, hasProp } from "../../../../util"; 9 - import { CID } from "multiformats/cid"; 10 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import type stream from 'stream' 6 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 7 + import { lexicons } from '../../../../lexicons' 8 + import { isObj, hasProp } from '../../../../util' 9 + import { CID } from 'multiformats/cid' 10 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 11 11 12 12 export interface QueryParams { 13 13 /** The unique identifier of the file to download */ 14 - fileId: string; 14 + fileId: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type HandlerInput = undefined 19 19 20 20 export interface HandlerSuccess { 21 - encoding: "application/octet-stream"; 22 - body: Uint8Array | stream.Readable; 23 - headers?: { [key: string]: string }; 21 + encoding: 'application/octet-stream' 22 + body: Uint8Array | stream.Readable 23 + headers?: { [key: string]: string } 24 24 } 25 25 26 26 export interface HandlerError { 27 - status: number; 28 - message?: string; 27 + status: number 28 + message?: string 29 29 } 30 30 31 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 31 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 32 32 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 33 - auth: HA; 34 - params: QueryParams; 35 - input: HandlerInput; 36 - req: express.Request; 37 - res: express.Response; 38 - resetRouteRateLimits: () => Promise<void>; 39 - }; 33 + auth: HA 34 + params: QueryParams 35 + input: HandlerInput 36 + req: express.Request 37 + res: express.Response 38 + resetRouteRateLimits: () => Promise<void> 39 + } 40 40 export type Handler<HA extends HandlerAuth = never> = ( 41 41 ctx: HandlerReqCtx<HA>, 42 - ) => Promise<HandlerOutput> | HandlerOutput; 42 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/dropbox/getFiles.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyDropboxDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyDropboxDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** Path to the Dropbox folder or root directory */ 14 - at?: string; 14 + at?: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyDropboxDefs.FileListView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyDropboxDefs.FileListView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/dropbox/getMetadata.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyDropboxDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyDropboxDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** Path to the file or folder in Dropbox */ 14 - path: string; 14 + path: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyDropboxDefs.FileView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyDropboxDefs.FileView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/dropbox/getTemporaryLink.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyDropboxDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyDropboxDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** Path to the file in Dropbox */ 14 - path: string; 14 + path: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyDropboxDefs.TemporaryLinkView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyDropboxDefs.TemporaryLinkView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+45 -45
apps/api/src/lexicon/types/app/rocksky/feed/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as AppRockskySongDefs from "../song/defs"; 9 - import type * as AppRockskyAlbumDefs from "../album/defs"; 10 - import type * as AppRockskyArtistDefs from "../artist/defs"; 11 - import type * as AppRockskyPlaylistDefs from "../playlist/defs"; 12 - import type * as AppRockskyActorDefs from "../actor/defs"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as AppRockskySongDefs from '../song/defs' 9 + import type * as AppRockskyAlbumDefs from '../album/defs' 10 + import type * as AppRockskyArtistDefs from '../artist/defs' 11 + import type * as AppRockskyPlaylistDefs from '../playlist/defs' 12 + import type * as AppRockskyActorDefs from '../actor/defs' 13 13 14 14 export interface SearchResultsView { 15 15 hits?: ( ··· 19 19 | AppRockskyPlaylistDefs.PlaylistViewBasic 20 20 | AppRockskyActorDefs.ProfileViewBasic 21 21 | { $type: string; [k: string]: unknown } 22 - )[]; 23 - processingTimeMs?: number; 24 - limit?: number; 25 - offset?: number; 26 - estimatedTotalHits?: number; 27 - [k: string]: unknown; 22 + )[] 23 + processingTimeMs?: number 24 + limit?: number 25 + offset?: number 26 + estimatedTotalHits?: number 27 + [k: string]: unknown 28 28 } 29 29 30 30 export function isSearchResultsView(v: unknown): v is SearchResultsView { 31 31 return ( 32 32 isObj(v) && 33 - hasProp(v, "$type") && 34 - v.$type === "app.rocksky.feed.defs#searchResultsView" 35 - ); 33 + hasProp(v, '$type') && 34 + v.$type === 'app.rocksky.feed.defs#searchResultsView' 35 + ) 36 36 } 37 37 38 38 export function validateSearchResultsView(v: unknown): ValidationResult { 39 - return lexicons.validate("app.rocksky.feed.defs#searchResultsView", v); 39 + return lexicons.validate('app.rocksky.feed.defs#searchResultsView', v) 40 40 } 41 41 42 42 export interface NowPlayingView { 43 - album?: string; 44 - albumArt?: string; 45 - albumArtist?: string; 46 - albumUri?: string; 47 - artist?: string; 48 - artistUri?: string; 49 - avatar?: string; 50 - createdAt?: string; 51 - did?: string; 52 - handle?: string; 53 - id?: string; 54 - title?: string; 55 - trackId?: string; 56 - trackUri?: string; 57 - uri?: string; 58 - [k: string]: unknown; 43 + album?: string 44 + albumArt?: string 45 + albumArtist?: string 46 + albumUri?: string 47 + artist?: string 48 + artistUri?: string 49 + avatar?: string 50 + createdAt?: string 51 + did?: string 52 + handle?: string 53 + id?: string 54 + title?: string 55 + trackId?: string 56 + trackUri?: string 57 + uri?: string 58 + [k: string]: unknown 59 59 } 60 60 61 61 export function isNowPlayingView(v: unknown): v is NowPlayingView { 62 62 return ( 63 63 isObj(v) && 64 - hasProp(v, "$type") && 65 - v.$type === "app.rocksky.feed.defs#nowPlayingView" 66 - ); 64 + hasProp(v, '$type') && 65 + v.$type === 'app.rocksky.feed.defs#nowPlayingView' 66 + ) 67 67 } 68 68 69 69 export function validateNowPlayingView(v: unknown): ValidationResult { 70 - return lexicons.validate("app.rocksky.feed.defs#nowPlayingView", v); 70 + return lexicons.validate('app.rocksky.feed.defs#nowPlayingView', v) 71 71 } 72 72 73 73 export interface NowPlayingsView { 74 - nowPlayings?: NowPlayingView[]; 75 - [k: string]: unknown; 74 + nowPlayings?: NowPlayingView[] 75 + [k: string]: unknown 76 76 } 77 77 78 78 export function isNowPlayingsView(v: unknown): v is NowPlayingsView { 79 79 return ( 80 80 isObj(v) && 81 - hasProp(v, "$type") && 82 - v.$type === "app.rocksky.feed.defs#nowPlayingsView" 83 - ); 81 + hasProp(v, '$type') && 82 + v.$type === 'app.rocksky.feed.defs#nowPlayingsView' 83 + ) 84 84 } 85 85 86 86 export function validateNowPlayingsView(v: unknown): ValidationResult { 87 - return lexicons.validate("app.rocksky.feed.defs#nowPlayingsView", v); 87 + return lexicons.validate('app.rocksky.feed.defs#nowPlayingsView', v) 88 88 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/feed/getNowPlayings.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyFeedDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyFeedDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The maximum number of now playing tracks to return. */ 14 - size?: number; 14 + size?: number 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyFeedDefs.NowPlayingsView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyFeedDefs.NowPlayingsView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/feed/search.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyFeedDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyFeedDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The search query string */ 14 - query: string; 14 + query: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyFeedDefs.SearchResultsView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyFeedDefs.SearchResultsView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+16 -16
apps/api/src/lexicon/types/app/rocksky/googledrive/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface FileView { 10 10 /** The unique identifier of the file. */ 11 - id?: string; 12 - [k: string]: unknown; 11 + id?: string 12 + [k: string]: unknown 13 13 } 14 14 15 15 export function isFileView(v: unknown): v is FileView { 16 16 return ( 17 17 isObj(v) && 18 - hasProp(v, "$type") && 19 - v.$type === "app.rocksky.googledrive.defs#fileView" 20 - ); 18 + hasProp(v, '$type') && 19 + v.$type === 'app.rocksky.googledrive.defs#fileView' 20 + ) 21 21 } 22 22 23 23 export function validateFileView(v: unknown): ValidationResult { 24 - return lexicons.validate("app.rocksky.googledrive.defs#fileView", v); 24 + return lexicons.validate('app.rocksky.googledrive.defs#fileView', v) 25 25 } 26 26 27 27 export interface FileListView { 28 - files?: FileView[]; 29 - [k: string]: unknown; 28 + files?: FileView[] 29 + [k: string]: unknown 30 30 } 31 31 32 32 export function isFileListView(v: unknown): v is FileListView { 33 33 return ( 34 34 isObj(v) && 35 - hasProp(v, "$type") && 36 - v.$type === "app.rocksky.googledrive.defs#fileListView" 37 - ); 35 + hasProp(v, '$type') && 36 + v.$type === 'app.rocksky.googledrive.defs#fileListView' 37 + ) 38 38 } 39 39 40 40 export function validateFileListView(v: unknown): ValidationResult { 41 - return lexicons.validate("app.rocksky.googledrive.defs#fileListView", v); 41 + return lexicons.validate('app.rocksky.googledrive.defs#fileListView', v) 42 42 }
+24 -24
apps/api/src/lexicon/types/app/rocksky/googledrive/downloadFile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import type stream from "stream"; 6 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 7 - import { lexicons } from "../../../../lexicons"; 8 - import { isObj, hasProp } from "../../../../util"; 9 - import { CID } from "multiformats/cid"; 10 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import type stream from 'stream' 6 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 7 + import { lexicons } from '../../../../lexicons' 8 + import { isObj, hasProp } from '../../../../util' 9 + import { CID } from 'multiformats/cid' 10 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 11 11 12 12 export interface QueryParams { 13 13 /** The unique identifier of the file to download */ 14 - fileId: string; 14 + fileId: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type HandlerInput = undefined 19 19 20 20 export interface HandlerSuccess { 21 - encoding: "application/octet-stream"; 22 - body: Uint8Array | stream.Readable; 23 - headers?: { [key: string]: string }; 21 + encoding: 'application/octet-stream' 22 + body: Uint8Array | stream.Readable 23 + headers?: { [key: string]: string } 24 24 } 25 25 26 26 export interface HandlerError { 27 - status: number; 28 - message?: string; 27 + status: number 28 + message?: string 29 29 } 30 30 31 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 31 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 32 32 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 33 - auth: HA; 34 - params: QueryParams; 35 - input: HandlerInput; 36 - req: express.Request; 37 - res: express.Response; 38 - resetRouteRateLimits: () => Promise<void>; 39 - }; 33 + auth: HA 34 + params: QueryParams 35 + input: HandlerInput 36 + req: express.Request 37 + res: express.Response 38 + resetRouteRateLimits: () => Promise<void> 39 + } 40 40 export type Handler<HA extends HandlerAuth = never> = ( 41 41 ctx: HandlerReqCtx<HA>, 42 - ) => Promise<HandlerOutput> | HandlerOutput; 42 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/googledrive/getFile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyGoogledriveDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyGoogledriveDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The unique identifier of the file to retrieve */ 14 - fileId: string; 14 + fileId: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyGoogledriveDefs.FileView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyGoogledriveDefs.FileView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/googledrive/getFiles.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyGoogledriveDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyGoogledriveDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** Path to the Google Drive folder or root directory */ 14 - at?: string; 14 + at?: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyGoogledriveDefs.FileListView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyGoogledriveDefs.FileListView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+12 -12
apps/api/src/lexicon/types/app/rocksky/like.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as ComAtprotoRepoStrongRef from "../../com/atproto/repo/strongRef"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as ComAtprotoRepoStrongRef from '../../com/atproto/repo/strongRef' 9 9 10 10 export interface Record { 11 11 /** The date when the like was created. */ 12 - createdAt: string; 13 - subject: ComAtprotoRepoStrongRef.Main; 14 - [k: string]: unknown; 12 + createdAt: string 13 + subject: ComAtprotoRepoStrongRef.Main 14 + [k: string]: unknown 15 15 } 16 16 17 17 export function isRecord(v: unknown): v is Record { 18 18 return ( 19 19 isObj(v) && 20 - hasProp(v, "$type") && 21 - (v.$type === "app.rocksky.like#main" || v.$type === "app.rocksky.like") 22 - ); 20 + hasProp(v, '$type') && 21 + (v.$type === 'app.rocksky.like#main' || v.$type === 'app.rocksky.like') 22 + ) 23 23 } 24 24 25 25 export function validateRecord(v: unknown): ValidationResult { 26 - return lexicons.validate("app.rocksky.like#main", v); 26 + return lexicons.validate('app.rocksky.like#main', v) 27 27 }
+27 -27
apps/api/src/lexicon/types/app/rocksky/like/dislikeShout.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "../shout/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from '../shout/defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The unique identifier of the shout to dislike */ 16 - uri?: string; 17 - [k: string]: unknown; 16 + uri?: string 17 + [k: string]: unknown 18 18 } 19 19 20 - export type OutputSchema = AppRockskyShoutDefs.ShoutView; 20 + export type OutputSchema = AppRockskyShoutDefs.ShoutView 21 21 22 22 export interface HandlerInput { 23 - encoding: "application/json"; 24 - body: InputSchema; 23 + encoding: 'application/json' 24 + body: InputSchema 25 25 } 26 26 27 27 export interface HandlerSuccess { 28 - encoding: "application/json"; 29 - body: OutputSchema; 30 - headers?: { [key: string]: string }; 28 + encoding: 'application/json' 29 + body: OutputSchema 30 + headers?: { [key: string]: string } 31 31 } 32 32 33 33 export interface HandlerError { 34 - status: number; 35 - message?: string; 34 + status: number 35 + message?: string 36 36 } 37 37 38 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 39 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 40 - auth: HA; 41 - params: QueryParams; 42 - input: HandlerInput; 43 - req: express.Request; 44 - res: express.Response; 45 - resetRouteRateLimits: () => Promise<void>; 46 - }; 40 + auth: HA 41 + params: QueryParams 42 + input: HandlerInput 43 + req: express.Request 44 + res: express.Response 45 + resetRouteRateLimits: () => Promise<void> 46 + } 47 47 export type Handler<HA extends HandlerAuth = never> = ( 48 48 ctx: HandlerReqCtx<HA>, 49 - ) => Promise<HandlerOutput> | HandlerOutput; 49 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/like/dislikeSong.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "../song/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from '../song/defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The unique identifier of the song to dislike */ 16 - uri?: string; 17 - [k: string]: unknown; 16 + uri?: string 17 + [k: string]: unknown 18 18 } 19 19 20 - export type OutputSchema = AppRockskySongDefs.SongViewDetailed; 20 + export type OutputSchema = AppRockskySongDefs.SongViewDetailed 21 21 22 22 export interface HandlerInput { 23 - encoding: "application/json"; 24 - body: InputSchema; 23 + encoding: 'application/json' 24 + body: InputSchema 25 25 } 26 26 27 27 export interface HandlerSuccess { 28 - encoding: "application/json"; 29 - body: OutputSchema; 30 - headers?: { [key: string]: string }; 28 + encoding: 'application/json' 29 + body: OutputSchema 30 + headers?: { [key: string]: string } 31 31 } 32 32 33 33 export interface HandlerError { 34 - status: number; 35 - message?: string; 34 + status: number 35 + message?: string 36 36 } 37 37 38 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 39 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 40 - auth: HA; 41 - params: QueryParams; 42 - input: HandlerInput; 43 - req: express.Request; 44 - res: express.Response; 45 - resetRouteRateLimits: () => Promise<void>; 46 - }; 40 + auth: HA 41 + params: QueryParams 42 + input: HandlerInput 43 + req: express.Request 44 + res: express.Response 45 + resetRouteRateLimits: () => Promise<void> 46 + } 47 47 export type Handler<HA extends HandlerAuth = never> = ( 48 48 ctx: HandlerReqCtx<HA>, 49 - ) => Promise<HandlerOutput> | HandlerOutput; 49 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/like/likeShout.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "../shout/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from '../shout/defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The unique identifier of the shout to like */ 16 - uri?: string; 17 - [k: string]: unknown; 16 + uri?: string 17 + [k: string]: unknown 18 18 } 19 19 20 - export type OutputSchema = AppRockskyShoutDefs.ShoutView; 20 + export type OutputSchema = AppRockskyShoutDefs.ShoutView 21 21 22 22 export interface HandlerInput { 23 - encoding: "application/json"; 24 - body: InputSchema; 23 + encoding: 'application/json' 24 + body: InputSchema 25 25 } 26 26 27 27 export interface HandlerSuccess { 28 - encoding: "application/json"; 29 - body: OutputSchema; 30 - headers?: { [key: string]: string }; 28 + encoding: 'application/json' 29 + body: OutputSchema 30 + headers?: { [key: string]: string } 31 31 } 32 32 33 33 export interface HandlerError { 34 - status: number; 35 - message?: string; 34 + status: number 35 + message?: string 36 36 } 37 37 38 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 39 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 40 - auth: HA; 41 - params: QueryParams; 42 - input: HandlerInput; 43 - req: express.Request; 44 - res: express.Response; 45 - resetRouteRateLimits: () => Promise<void>; 46 - }; 40 + auth: HA 41 + params: QueryParams 42 + input: HandlerInput 43 + req: express.Request 44 + res: express.Response 45 + resetRouteRateLimits: () => Promise<void> 46 + } 47 47 export type Handler<HA extends HandlerAuth = never> = ( 48 48 ctx: HandlerReqCtx<HA>, 49 - ) => Promise<HandlerOutput> | HandlerOutput; 49 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/like/likeSong.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "../song/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from '../song/defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The unique identifier of the song to like */ 16 - uri?: string; 17 - [k: string]: unknown; 16 + uri?: string 17 + [k: string]: unknown 18 18 } 19 19 20 - export type OutputSchema = AppRockskySongDefs.SongViewDetailed; 20 + export type OutputSchema = AppRockskySongDefs.SongViewDetailed 21 21 22 22 export interface HandlerInput { 23 - encoding: "application/json"; 24 - body: InputSchema; 23 + encoding: 'application/json' 24 + body: InputSchema 25 25 } 26 26 27 27 export interface HandlerSuccess { 28 - encoding: "application/json"; 29 - body: OutputSchema; 30 - headers?: { [key: string]: string }; 28 + encoding: 'application/json' 29 + body: OutputSchema 30 + headers?: { [key: string]: string } 31 31 } 32 32 33 33 export interface HandlerError { 34 - status: number; 35 - message?: string; 34 + status: number 35 + message?: string 36 36 } 37 37 38 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 39 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 40 - auth: HA; 41 - params: QueryParams; 42 - input: HandlerInput; 43 - req: express.Request; 44 - res: express.Response; 45 - resetRouteRateLimits: () => Promise<void>; 46 - }; 40 + auth: HA 41 + params: QueryParams 42 + input: HandlerInput 43 + req: express.Request 44 + res: express.Response 45 + resetRouteRateLimits: () => Promise<void> 46 + } 47 47 export type Handler<HA extends HandlerAuth = never> = ( 48 48 ctx: HandlerReqCtx<HA>, 49 - ) => Promise<HandlerOutput> | HandlerOutput; 49 + ) => Promise<HandlerOutput> | HandlerOutput
+23 -23
apps/api/src/lexicon/types/app/rocksky/player/addDirectoryToQueue.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 12 + playerId?: string 13 13 /** The directory to add to the queue */ 14 - directory: string; 14 + directory: string 15 15 /** Position in the queue to insert the directory at, defaults to the end if not specified */ 16 - position?: number; 16 + position?: number 17 17 /** Whether to shuffle the added directory in the queue */ 18 - shuffle?: boolean; 18 + shuffle?: boolean 19 19 } 20 20 21 - export type InputSchema = undefined; 22 - export type HandlerInput = undefined; 21 + export type InputSchema = undefined 22 + export type HandlerInput = undefined 23 23 24 24 export interface HandlerError { 25 - status: number; 26 - message?: string; 25 + status: number 26 + message?: string 27 27 } 28 28 29 - export type HandlerOutput = HandlerError | void; 29 + export type HandlerOutput = HandlerError | void 30 30 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 31 - auth: HA; 32 - params: QueryParams; 33 - input: HandlerInput; 34 - req: express.Request; 35 - res: express.Response; 36 - resetRouteRateLimits: () => Promise<void>; 37 - }; 31 + auth: HA 32 + params: QueryParams 33 + input: HandlerInput 34 + req: express.Request 35 + res: express.Response 36 + resetRouteRateLimits: () => Promise<void> 37 + } 38 38 export type Handler<HA extends HandlerAuth = never> = ( 39 39 ctx: HandlerReqCtx<HA>, 40 - ) => Promise<HandlerOutput> | HandlerOutput; 40 + ) => Promise<HandlerOutput> | HandlerOutput
+23 -23
apps/api/src/lexicon/types/app/rocksky/player/addItemsToQueue.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 13 - items: string[]; 12 + playerId?: string 13 + items: string[] 14 14 /** Position in the queue to insert the items at, defaults to the end if not specified */ 15 - position?: number; 15 + position?: number 16 16 /** Whether to shuffle the added items in the queue */ 17 - shuffle?: boolean; 17 + shuffle?: boolean 18 18 } 19 19 20 - export type InputSchema = undefined; 21 - export type HandlerInput = undefined; 20 + export type InputSchema = undefined 21 + export type HandlerInput = undefined 22 22 23 23 export interface HandlerError { 24 - status: number; 25 - message?: string; 24 + status: number 25 + message?: string 26 26 } 27 27 28 - export type HandlerOutput = HandlerError | void; 28 + export type HandlerOutput = HandlerError | void 29 29 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 30 - auth: HA; 31 - params: QueryParams; 32 - input: HandlerInput; 33 - req: express.Request; 34 - res: express.Response; 35 - resetRouteRateLimits: () => Promise<void>; 36 - }; 30 + auth: HA 31 + params: QueryParams 32 + input: HandlerInput 33 + req: express.Request 34 + res: express.Response 35 + resetRouteRateLimits: () => Promise<void> 36 + } 37 37 export type Handler<HA extends HandlerAuth = never> = ( 38 38 ctx: HandlerReqCtx<HA>, 39 - ) => Promise<HandlerOutput> | HandlerOutput; 39 + ) => Promise<HandlerOutput> | HandlerOutput
+19 -19
apps/api/src/lexicon/types/app/rocksky/player/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as AppRockskySongDefsSongViewBasic from "../song/defs/songViewBasic"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as AppRockskySongDefsSongViewBasic from '../song/defs/songViewBasic' 9 9 10 10 export interface CurrentlyPlayingViewDetailed { 11 11 /** The title of the currently playing track */ 12 - title?: string; 13 - [k: string]: unknown; 12 + title?: string 13 + [k: string]: unknown 14 14 } 15 15 16 16 export function isCurrentlyPlayingViewDetailed( ··· 18 18 ): v is CurrentlyPlayingViewDetailed { 19 19 return ( 20 20 isObj(v) && 21 - hasProp(v, "$type") && 22 - v.$type === "app.rocksky.player.defs#currentlyPlayingViewDetailed" 23 - ); 21 + hasProp(v, '$type') && 22 + v.$type === 'app.rocksky.player.defs#currentlyPlayingViewDetailed' 23 + ) 24 24 } 25 25 26 26 export function validateCurrentlyPlayingViewDetailed( 27 27 v: unknown, 28 28 ): ValidationResult { 29 29 return lexicons.validate( 30 - "app.rocksky.player.defs#currentlyPlayingViewDetailed", 30 + 'app.rocksky.player.defs#currentlyPlayingViewDetailed', 31 31 v, 32 - ); 32 + ) 33 33 } 34 34 35 35 export interface PlaybackQueueViewDetailed { 36 - tracks?: AppRockskySongDefsSongViewBasic.Main[]; 37 - [k: string]: unknown; 36 + tracks?: AppRockskySongDefsSongViewBasic.Main[] 37 + [k: string]: unknown 38 38 } 39 39 40 40 export function isPlaybackQueueViewDetailed( ··· 42 42 ): v is PlaybackQueueViewDetailed { 43 43 return ( 44 44 isObj(v) && 45 - hasProp(v, "$type") && 46 - v.$type === "app.rocksky.player.defs#playbackQueueViewDetailed" 47 - ); 45 + hasProp(v, '$type') && 46 + v.$type === 'app.rocksky.player.defs#playbackQueueViewDetailed' 47 + ) 48 48 } 49 49 50 50 export function validatePlaybackQueueViewDetailed( 51 51 v: unknown, 52 52 ): ValidationResult { 53 53 return lexicons.validate( 54 - "app.rocksky.player.defs#playbackQueueViewDetailed", 54 + 'app.rocksky.player.defs#playbackQueueViewDetailed', 55 55 v, 56 - ); 56 + ) 57 57 }
+26 -26
apps/api/src/lexicon/types/app/rocksky/player/getCurrentlyPlaying.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyPlayerDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyPlayerDefs from './defs' 11 11 12 12 export interface QueryParams { 13 - playerId?: string; 13 + playerId?: string 14 14 /** Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user. */ 15 - actor?: string; 15 + actor?: string 16 16 } 17 17 18 - export type InputSchema = undefined; 19 - export type OutputSchema = AppRockskyPlayerDefs.CurrentlyPlayingViewDetailed; 20 - export type HandlerInput = undefined; 18 + export type InputSchema = undefined 19 + export type OutputSchema = AppRockskyPlayerDefs.CurrentlyPlayingViewDetailed 20 + export type HandlerInput = undefined 21 21 22 22 export interface HandlerSuccess { 23 - encoding: "application/json"; 24 - body: OutputSchema; 25 - headers?: { [key: string]: string }; 23 + encoding: 'application/json' 24 + body: OutputSchema 25 + headers?: { [key: string]: string } 26 26 } 27 27 28 28 export interface HandlerError { 29 - status: number; 30 - message?: string; 29 + status: number 30 + message?: string 31 31 } 32 32 33 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 33 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 34 34 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 35 - auth: HA; 36 - params: QueryParams; 37 - input: HandlerInput; 38 - req: express.Request; 39 - res: express.Response; 40 - resetRouteRateLimits: () => Promise<void>; 41 - }; 35 + auth: HA 36 + params: QueryParams 37 + input: HandlerInput 38 + req: express.Request 39 + res: express.Response 40 + resetRouteRateLimits: () => Promise<void> 41 + } 42 42 export type Handler<HA extends HandlerAuth = never> = ( 43 43 ctx: HandlerReqCtx<HA>, 44 - ) => Promise<HandlerOutput> | HandlerOutput; 44 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/player/getPlaybackQueue.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyPlayerDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyPlayerDefs from './defs' 11 11 12 12 export interface QueryParams { 13 - playerId?: string; 13 + playerId?: string 14 14 } 15 15 16 - export type InputSchema = undefined; 17 - export type OutputSchema = AppRockskyPlayerDefs.PlaybackQueueViewDetailed; 18 - export type HandlerInput = undefined; 16 + export type InputSchema = undefined 17 + export type OutputSchema = AppRockskyPlayerDefs.PlaybackQueueViewDetailed 18 + export type HandlerInput = undefined 19 19 20 20 export interface HandlerSuccess { 21 - encoding: "application/json"; 22 - body: OutputSchema; 23 - headers?: { [key: string]: string }; 21 + encoding: 'application/json' 22 + body: OutputSchema 23 + headers?: { [key: string]: string } 24 24 } 25 25 26 26 export interface HandlerError { 27 - status: number; 28 - message?: string; 27 + status: number 28 + message?: string 29 29 } 30 30 31 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 31 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 32 32 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 33 - auth: HA; 34 - params: QueryParams; 35 - input: HandlerInput; 36 - req: express.Request; 37 - res: express.Response; 38 - resetRouteRateLimits: () => Promise<void>; 39 - }; 33 + auth: HA 34 + params: QueryParams 35 + input: HandlerInput 36 + req: express.Request 37 + res: express.Response 38 + resetRouteRateLimits: () => Promise<void> 39 + } 40 40 export type Handler<HA extends HandlerAuth = never> = ( 41 41 ctx: HandlerReqCtx<HA>, 42 - ) => Promise<HandlerOutput> | HandlerOutput; 42 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/player/next.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 12 + playerId?: string 13 13 } 14 14 15 - export type InputSchema = undefined; 16 - export type HandlerInput = undefined; 15 + export type InputSchema = undefined 16 + export type HandlerInput = undefined 17 17 18 18 export interface HandlerError { 19 - status: number; 20 - message?: string; 19 + status: number 20 + message?: string 21 21 } 22 22 23 - export type HandlerOutput = HandlerError | void; 23 + export type HandlerOutput = HandlerError | void 24 24 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 25 - auth: HA; 26 - params: QueryParams; 27 - input: HandlerInput; 28 - req: express.Request; 29 - res: express.Response; 30 - resetRouteRateLimits: () => Promise<void>; 31 - }; 25 + auth: HA 26 + params: QueryParams 27 + input: HandlerInput 28 + req: express.Request 29 + res: express.Response 30 + resetRouteRateLimits: () => Promise<void> 31 + } 32 32 export type Handler<HA extends HandlerAuth = never> = ( 33 33 ctx: HandlerReqCtx<HA>, 34 - ) => Promise<HandlerOutput> | HandlerOutput; 34 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/player/pause.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 12 + playerId?: string 13 13 } 14 14 15 - export type InputSchema = undefined; 16 - export type HandlerInput = undefined; 15 + export type InputSchema = undefined 16 + export type HandlerInput = undefined 17 17 18 18 export interface HandlerError { 19 - status: number; 20 - message?: string; 19 + status: number 20 + message?: string 21 21 } 22 22 23 - export type HandlerOutput = HandlerError | void; 23 + export type HandlerOutput = HandlerError | void 24 24 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 25 - auth: HA; 26 - params: QueryParams; 27 - input: HandlerInput; 28 - req: express.Request; 29 - res: express.Response; 30 - resetRouteRateLimits: () => Promise<void>; 31 - }; 25 + auth: HA 26 + params: QueryParams 27 + input: HandlerInput 28 + req: express.Request 29 + res: express.Response 30 + resetRouteRateLimits: () => Promise<void> 31 + } 32 32 export type Handler<HA extends HandlerAuth = never> = ( 33 33 ctx: HandlerReqCtx<HA>, 34 - ) => Promise<HandlerOutput> | HandlerOutput; 34 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/player/play.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 12 + playerId?: string 13 13 } 14 14 15 - export type InputSchema = undefined; 16 - export type HandlerInput = undefined; 15 + export type InputSchema = undefined 16 + export type HandlerInput = undefined 17 17 18 18 export interface HandlerError { 19 - status: number; 20 - message?: string; 19 + status: number 20 + message?: string 21 21 } 22 22 23 - export type HandlerOutput = HandlerError | void; 23 + export type HandlerOutput = HandlerError | void 24 24 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 25 - auth: HA; 26 - params: QueryParams; 27 - input: HandlerInput; 28 - req: express.Request; 29 - res: express.Response; 30 - resetRouteRateLimits: () => Promise<void>; 31 - }; 25 + auth: HA 26 + params: QueryParams 27 + input: HandlerInput 28 + req: express.Request 29 + res: express.Response 30 + resetRouteRateLimits: () => Promise<void> 31 + } 32 32 export type Handler<HA extends HandlerAuth = never> = ( 33 33 ctx: HandlerReqCtx<HA>, 34 - ) => Promise<HandlerOutput> | HandlerOutput; 34 + ) => Promise<HandlerOutput> | HandlerOutput
+24 -24
apps/api/src/lexicon/types/app/rocksky/player/playDirectory.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 13 - directoryId: string; 14 - shuffle?: boolean; 15 - recurse?: boolean; 16 - position?: number; 12 + playerId?: string 13 + directoryId: string 14 + shuffle?: boolean 15 + recurse?: boolean 16 + position?: number 17 17 } 18 18 19 - export type InputSchema = undefined; 20 - export type HandlerInput = undefined; 19 + export type InputSchema = undefined 20 + export type HandlerInput = undefined 21 21 22 22 export interface HandlerError { 23 - status: number; 24 - message?: string; 23 + status: number 24 + message?: string 25 25 } 26 26 27 - export type HandlerOutput = HandlerError | void; 27 + export type HandlerOutput = HandlerError | void 28 28 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 29 - auth: HA; 30 - params: QueryParams; 31 - input: HandlerInput; 32 - req: express.Request; 33 - res: express.Response; 34 - resetRouteRateLimits: () => Promise<void>; 35 - }; 29 + auth: HA 30 + params: QueryParams 31 + input: HandlerInput 32 + req: express.Request 33 + res: express.Response 34 + resetRouteRateLimits: () => Promise<void> 35 + } 36 36 export type Handler<HA extends HandlerAuth = never> = ( 37 37 ctx: HandlerReqCtx<HA>, 38 - ) => Promise<HandlerOutput> | HandlerOutput; 38 + ) => Promise<HandlerOutput> | HandlerOutput
+21 -21
apps/api/src/lexicon/types/app/rocksky/player/playFile.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 13 - fileId: string; 12 + playerId?: string 13 + fileId: string 14 14 } 15 15 16 - export type InputSchema = undefined; 17 - export type HandlerInput = undefined; 16 + export type InputSchema = undefined 17 + export type HandlerInput = undefined 18 18 19 19 export interface HandlerError { 20 - status: number; 21 - message?: string; 20 + status: number 21 + message?: string 22 22 } 23 23 24 - export type HandlerOutput = HandlerError | void; 24 + export type HandlerOutput = HandlerError | void 25 25 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 26 - auth: HA; 27 - params: QueryParams; 28 - input: HandlerInput; 29 - req: express.Request; 30 - res: express.Response; 31 - resetRouteRateLimits: () => Promise<void>; 32 - }; 26 + auth: HA 27 + params: QueryParams 28 + input: HandlerInput 29 + req: express.Request 30 + res: express.Response 31 + resetRouteRateLimits: () => Promise<void> 32 + } 33 33 export type Handler<HA extends HandlerAuth = never> = ( 34 34 ctx: HandlerReqCtx<HA>, 35 - ) => Promise<HandlerOutput> | HandlerOutput; 35 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/player/previous.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 12 + playerId?: string 13 13 } 14 14 15 - export type InputSchema = undefined; 16 - export type HandlerInput = undefined; 15 + export type InputSchema = undefined 16 + export type HandlerInput = undefined 17 17 18 18 export interface HandlerError { 19 - status: number; 20 - message?: string; 19 + status: number 20 + message?: string 21 21 } 22 22 23 - export type HandlerOutput = HandlerError | void; 23 + export type HandlerOutput = HandlerError | void 24 24 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 25 - auth: HA; 26 - params: QueryParams; 27 - input: HandlerInput; 28 - req: express.Request; 29 - res: express.Response; 30 - resetRouteRateLimits: () => Promise<void>; 31 - }; 25 + auth: HA 26 + params: QueryParams 27 + input: HandlerInput 28 + req: express.Request 29 + res: express.Response 30 + resetRouteRateLimits: () => Promise<void> 31 + } 32 32 export type Handler<HA extends HandlerAuth = never> = ( 33 33 ctx: HandlerReqCtx<HA>, 34 - ) => Promise<HandlerOutput> | HandlerOutput; 34 + ) => Promise<HandlerOutput> | HandlerOutput
+21 -21
apps/api/src/lexicon/types/app/rocksky/player/seek.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 - playerId?: string; 12 + playerId?: string 13 13 /** The position in seconds to seek to */ 14 - position: number; 14 + position: number 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type HandlerInput = undefined 19 19 20 20 export interface HandlerError { 21 - status: number; 22 - message?: string; 21 + status: number 22 + message?: string 23 23 } 24 24 25 - export type HandlerOutput = HandlerError | void; 25 + export type HandlerOutput = HandlerError | void 26 26 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 27 - auth: HA; 28 - params: QueryParams; 29 - input: HandlerInput; 30 - req: express.Request; 31 - res: express.Response; 32 - resetRouteRateLimits: () => Promise<void>; 33 - }; 27 + auth: HA 28 + params: QueryParams 29 + input: HandlerInput 30 + req: express.Request 31 + res: express.Response 32 + resetRouteRateLimits: () => Promise<void> 33 + } 34 34 export type Handler<HA extends HandlerAuth = never> = ( 35 35 ctx: HandlerReqCtx<HA>, 36 - ) => Promise<HandlerOutput> | HandlerOutput; 36 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/playlist.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as AppRockskySong from "./song"; 4 + import type { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as AppRockskySong from './song' 9 9 10 10 export interface Record { 11 11 /** The name of the playlist. */ 12 - name: string; 12 + name: string 13 13 /** The playlist description. */ 14 - description?: string; 14 + description?: string 15 15 /** The picture of the playlist. */ 16 - picture?: BlobRef; 16 + picture?: BlobRef 17 17 /** The tracks in the playlist. */ 18 - tracks?: AppRockskySong.Record[]; 18 + tracks?: AppRockskySong.Record[] 19 19 /** The date the playlist was created. */ 20 - createdAt: string; 20 + createdAt: string 21 21 /** The Spotify link of the playlist. */ 22 - spotifyLink?: string; 22 + spotifyLink?: string 23 23 /** The Tidal link of the playlist. */ 24 - tidalLink?: string; 24 + tidalLink?: string 25 25 /** The YouTube link of the playlist. */ 26 - youtubeLink?: string; 26 + youtubeLink?: string 27 27 /** The Apple Music link of the playlist. */ 28 - appleMusicLink?: string; 29 - [k: string]: unknown; 28 + appleMusicLink?: string 29 + [k: string]: unknown 30 30 } 31 31 32 32 export function isRecord(v: unknown): v is Record { 33 33 return ( 34 34 isObj(v) && 35 - hasProp(v, "$type") && 36 - (v.$type === "app.rocksky.playlist#main" || 37 - v.$type === "app.rocksky.playlist") 38 - ); 35 + hasProp(v, '$type') && 36 + (v.$type === 'app.rocksky.playlist#main' || 37 + v.$type === 'app.rocksky.playlist') 38 + ) 39 39 } 40 40 41 41 export function validateRecord(v: unknown): ValidationResult { 42 - return lexicons.validate("app.rocksky.playlist#main", v); 42 + return lexicons.validate('app.rocksky.playlist#main', v) 43 43 }
+21 -21
apps/api/src/lexicon/types/app/rocksky/playlist/createPlaylist.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 12 /** The name of the playlist */ 13 - name: string; 13 + name: string 14 14 /** A brief description of the playlist */ 15 - description?: string; 15 + description?: string 16 16 } 17 17 18 - export type InputSchema = undefined; 19 - export type HandlerInput = undefined; 18 + export type InputSchema = undefined 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerError { 22 - status: number; 23 - message?: string; 22 + status: number 23 + message?: string 24 24 } 25 25 26 - export type HandlerOutput = HandlerError | void; 26 + export type HandlerOutput = HandlerError | void 27 27 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 28 - auth: HA; 29 - params: QueryParams; 30 - input: HandlerInput; 31 - req: express.Request; 32 - res: express.Response; 33 - resetRouteRateLimits: () => Promise<void>; 34 - }; 28 + auth: HA 29 + params: QueryParams 30 + input: HandlerInput 31 + req: express.Request 32 + res: express.Response 33 + resetRouteRateLimits: () => Promise<void> 34 + } 35 35 export type Handler<HA extends HandlerAuth = never> = ( 36 36 ctx: HandlerReqCtx<HA>, 37 - ) => Promise<HandlerOutput> | HandlerOutput; 37 + ) => Promise<HandlerOutput> | HandlerOutput
+37 -37
apps/api/src/lexicon/types/app/rocksky/playlist/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as AppRockskySongDefs from "../song/defs"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as AppRockskySongDefs from '../song/defs' 9 9 10 10 /** Detailed view of a playlist, including its tracks and metadata */ 11 11 export interface PlaylistViewDetailed { 12 12 /** The unique identifier of the playlist. */ 13 - id?: string; 13 + id?: string 14 14 /** The title of the playlist. */ 15 - title?: string; 15 + title?: string 16 16 /** The URI of the playlist. */ 17 - uri?: string; 17 + uri?: string 18 18 /** The DID of the curator of the playlist. */ 19 - curatorDid?: string; 19 + curatorDid?: string 20 20 /** The handle of the curator of the playlist. */ 21 - curatorHandle?: string; 21 + curatorHandle?: string 22 22 /** The name of the curator of the playlist. */ 23 - curatorName?: string; 23 + curatorName?: string 24 24 /** The URL of the avatar image of the curator. */ 25 - curatorAvatarUrl?: string; 25 + curatorAvatarUrl?: string 26 26 /** A description of the playlist. */ 27 - description?: string; 27 + description?: string 28 28 /** The URL of the cover image for the playlist. */ 29 - coverImageUrl?: string; 29 + coverImageUrl?: string 30 30 /** The date and time when the playlist was created. */ 31 - createdAt?: string; 31 + createdAt?: string 32 32 /** A list of tracks in the playlist. */ 33 - tracks?: AppRockskySongDefs.SongViewBasic[]; 34 - [k: string]: unknown; 33 + tracks?: AppRockskySongDefs.SongViewBasic[] 34 + [k: string]: unknown 35 35 } 36 36 37 37 export function isPlaylistViewDetailed(v: unknown): v is PlaylistViewDetailed { 38 38 return ( 39 39 isObj(v) && 40 - hasProp(v, "$type") && 41 - v.$type === "app.rocksky.playlist.defs#playlistViewDetailed" 42 - ); 40 + hasProp(v, '$type') && 41 + v.$type === 'app.rocksky.playlist.defs#playlistViewDetailed' 42 + ) 43 43 } 44 44 45 45 export function validatePlaylistViewDetailed(v: unknown): ValidationResult { 46 - return lexicons.validate("app.rocksky.playlist.defs#playlistViewDetailed", v); 46 + return lexicons.validate('app.rocksky.playlist.defs#playlistViewDetailed', v) 47 47 } 48 48 49 49 /** Basic view of a playlist, including its metadata */ 50 50 export interface PlaylistViewBasic { 51 51 /** The unique identifier of the playlist. */ 52 - id?: string; 52 + id?: string 53 53 /** The title of the playlist. */ 54 - title?: string; 54 + title?: string 55 55 /** The URI of the playlist. */ 56 - uri?: string; 56 + uri?: string 57 57 /** The DID of the curator of the playlist. */ 58 - curatorDid?: string; 58 + curatorDid?: string 59 59 /** The handle of the curator of the playlist. */ 60 - curatorHandle?: string; 60 + curatorHandle?: string 61 61 /** The name of the curator of the playlist. */ 62 - curatorName?: string; 62 + curatorName?: string 63 63 /** The URL of the avatar image of the curator. */ 64 - curatorAvatarUrl?: string; 64 + curatorAvatarUrl?: string 65 65 /** A description of the playlist. */ 66 - description?: string; 66 + description?: string 67 67 /** The URL of the cover image for the playlist. */ 68 - coverImageUrl?: string; 68 + coverImageUrl?: string 69 69 /** The date and time when the playlist was created. */ 70 - createdAt?: string; 70 + createdAt?: string 71 71 /** The number of tracks in the playlist. */ 72 - trackCount?: number; 73 - [k: string]: unknown; 72 + trackCount?: number 73 + [k: string]: unknown 74 74 } 75 75 76 76 export function isPlaylistViewBasic(v: unknown): v is PlaylistViewBasic { 77 77 return ( 78 78 isObj(v) && 79 - hasProp(v, "$type") && 80 - v.$type === "app.rocksky.playlist.defs#playlistViewBasic" 81 - ); 79 + hasProp(v, '$type') && 80 + v.$type === 'app.rocksky.playlist.defs#playlistViewBasic' 81 + ) 82 82 } 83 83 84 84 export function validatePlaylistViewBasic(v: unknown): ValidationResult { 85 - return lexicons.validate("app.rocksky.playlist.defs#playlistViewBasic", v); 85 + return lexicons.validate('app.rocksky.playlist.defs#playlistViewBasic', v) 86 86 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/playlist/getPlaylist.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyPlaylistDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyPlaylistDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the playlist to retrieve. */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyPlaylistDefs.PlaylistViewDetailed; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyPlaylistDefs.PlaylistViewDetailed 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/playlist/getPlaylists.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyPlaylistDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyPlaylistDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The maximum number of playlists to return. */ 14 - limit?: number; 14 + limit?: number 15 15 /** The offset for pagination, used to skip a number of playlists. */ 16 - offset?: number; 16 + offset?: number 17 17 } 18 18 19 - export type InputSchema = undefined; 19 + export type InputSchema = undefined 20 20 21 21 export interface OutputSchema { 22 - playlists?: AppRockskyPlaylistDefs.PlaylistViewBasic[]; 23 - [k: string]: unknown; 22 + playlists?: AppRockskyPlaylistDefs.PlaylistViewBasic[] 23 + [k: string]: unknown 24 24 } 25 25 26 - export type HandlerInput = undefined; 26 + export type HandlerInput = undefined 27 27 28 28 export interface HandlerSuccess { 29 - encoding: "application/json"; 30 - body: OutputSchema; 31 - headers?: { [key: string]: string }; 29 + encoding: 'application/json' 30 + body: OutputSchema 31 + headers?: { [key: string]: string } 32 32 } 33 33 34 34 export interface HandlerError { 35 - status: number; 36 - message?: string; 35 + status: number 36 + message?: string 37 37 } 38 38 39 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 39 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 40 40 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 41 - auth: HA; 42 - params: QueryParams; 43 - input: HandlerInput; 44 - req: express.Request; 45 - res: express.Response; 46 - resetRouteRateLimits: () => Promise<void>; 47 - }; 41 + auth: HA 42 + params: QueryParams 43 + input: HandlerInput 44 + req: express.Request 45 + res: express.Response 46 + resetRouteRateLimits: () => Promise<void> 47 + } 48 48 export type Handler<HA extends HandlerAuth = never> = ( 49 49 ctx: HandlerReqCtx<HA>, 50 - ) => Promise<HandlerOutput> | HandlerOutput; 50 + ) => Promise<HandlerOutput> | HandlerOutput
+22 -22
apps/api/src/lexicon/types/app/rocksky/playlist/insertDirectory.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 12 /** The URI of the playlist to start */ 13 - uri: string; 13 + uri: string 14 14 /** The directory (id) to insert into the playlist */ 15 - directory: string; 15 + directory: string 16 16 /** The position in the playlist to insert the directory at, if not specified, the directory will be appended */ 17 - position?: number; 17 + position?: number 18 18 } 19 19 20 - export type InputSchema = undefined; 21 - export type HandlerInput = undefined; 20 + export type InputSchema = undefined 21 + export type HandlerInput = undefined 22 22 23 23 export interface HandlerError { 24 - status: number; 25 - message?: string; 24 + status: number 25 + message?: string 26 26 } 27 27 28 - export type HandlerOutput = HandlerError | void; 28 + export type HandlerOutput = HandlerError | void 29 29 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 30 - auth: HA; 31 - params: QueryParams; 32 - input: HandlerInput; 33 - req: express.Request; 34 - res: express.Response; 35 - resetRouteRateLimits: () => Promise<void>; 36 - }; 30 + auth: HA 31 + params: QueryParams 32 + input: HandlerInput 33 + req: express.Request 34 + res: express.Response 35 + resetRouteRateLimits: () => Promise<void> 36 + } 37 37 export type Handler<HA extends HandlerAuth = never> = ( 38 38 ctx: HandlerReqCtx<HA>, 39 - ) => Promise<HandlerOutput> | HandlerOutput; 39 + ) => Promise<HandlerOutput> | HandlerOutput
+22 -22
apps/api/src/lexicon/types/app/rocksky/playlist/insertFiles.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 12 /** The URI of the playlist to start */ 13 - uri: string; 14 - files: string[]; 13 + uri: string 14 + files: string[] 15 15 /** The position in the playlist to insert the files at, if not specified, files will be appended */ 16 - position?: number; 16 + position?: number 17 17 } 18 18 19 - export type InputSchema = undefined; 20 - export type HandlerInput = undefined; 19 + export type InputSchema = undefined 20 + export type HandlerInput = undefined 21 21 22 22 export interface HandlerError { 23 - status: number; 24 - message?: string; 23 + status: number 24 + message?: string 25 25 } 26 26 27 - export type HandlerOutput = HandlerError | void; 27 + export type HandlerOutput = HandlerError | void 28 28 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 29 - auth: HA; 30 - params: QueryParams; 31 - input: HandlerInput; 32 - req: express.Request; 33 - res: express.Response; 34 - resetRouteRateLimits: () => Promise<void>; 35 - }; 29 + auth: HA 30 + params: QueryParams 31 + input: HandlerInput 32 + req: express.Request 33 + res: express.Response 34 + resetRouteRateLimits: () => Promise<void> 35 + } 36 36 export type Handler<HA extends HandlerAuth = never> = ( 37 37 ctx: HandlerReqCtx<HA>, 38 - ) => Promise<HandlerOutput> | HandlerOutput; 38 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/playlist/removePlaylist.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 12 /** The URI of the playlist to remove */ 13 - uri: string; 13 + uri: string 14 14 } 15 15 16 - export type InputSchema = undefined; 17 - export type HandlerInput = undefined; 16 + export type InputSchema = undefined 17 + export type HandlerInput = undefined 18 18 19 19 export interface HandlerError { 20 - status: number; 21 - message?: string; 20 + status: number 21 + message?: string 22 22 } 23 23 24 - export type HandlerOutput = HandlerError | void; 24 + export type HandlerOutput = HandlerError | void 25 25 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 26 - auth: HA; 27 - params: QueryParams; 28 - input: HandlerInput; 29 - req: express.Request; 30 - res: express.Response; 31 - resetRouteRateLimits: () => Promise<void>; 32 - }; 26 + auth: HA 27 + params: QueryParams 28 + input: HandlerInput 29 + req: express.Request 30 + res: express.Response 31 + resetRouteRateLimits: () => Promise<void> 32 + } 33 33 export type Handler<HA extends HandlerAuth = never> = ( 34 34 ctx: HandlerReqCtx<HA>, 35 - ) => Promise<HandlerOutput> | HandlerOutput; 35 + ) => Promise<HandlerOutput> | HandlerOutput
+21 -21
apps/api/src/lexicon/types/app/rocksky/playlist/removeTrack.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 12 /** The URI of the playlist to remove the track from */ 13 - uri: string; 13 + uri: string 14 14 /** The position of the track to remove in the playlist */ 15 - position: number; 15 + position: number 16 16 } 17 17 18 - export type InputSchema = undefined; 19 - export type HandlerInput = undefined; 18 + export type InputSchema = undefined 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerError { 22 - status: number; 23 - message?: string; 22 + status: number 23 + message?: string 24 24 } 25 25 26 - export type HandlerOutput = HandlerError | void; 26 + export type HandlerOutput = HandlerError | void 27 27 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 28 - auth: HA; 29 - params: QueryParams; 30 - input: HandlerInput; 31 - req: express.Request; 32 - res: express.Response; 33 - resetRouteRateLimits: () => Promise<void>; 34 - }; 28 + auth: HA 29 + params: QueryParams 30 + input: HandlerInput 31 + req: express.Request 32 + res: express.Response 33 + resetRouteRateLimits: () => Promise<void> 34 + } 35 35 export type Handler<HA extends HandlerAuth = never> = ( 36 36 ctx: HandlerReqCtx<HA>, 37 - ) => Promise<HandlerOutput> | HandlerOutput; 37 + ) => Promise<HandlerOutput> | HandlerOutput
+22 -22
apps/api/src/lexicon/types/app/rocksky/playlist/startPlaylist.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 12 /** The URI of the playlist to start */ 13 - uri: string; 13 + uri: string 14 14 /** Whether to shuffle the playlist when starting it */ 15 - shuffle?: boolean; 15 + shuffle?: boolean 16 16 /** The position in the playlist to start from, if not specified, starts from the beginning */ 17 - position?: number; 17 + position?: number 18 18 } 19 19 20 - export type InputSchema = undefined; 21 - export type HandlerInput = undefined; 20 + export type InputSchema = undefined 21 + export type HandlerInput = undefined 22 22 23 23 export interface HandlerError { 24 - status: number; 25 - message?: string; 24 + status: number 25 + message?: string 26 26 } 27 27 28 - export type HandlerOutput = HandlerError | void; 28 + export type HandlerOutput = HandlerError | void 29 29 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 30 - auth: HA; 31 - params: QueryParams; 32 - input: HandlerInput; 33 - req: express.Request; 34 - res: express.Response; 35 - resetRouteRateLimits: () => Promise<void>; 36 - }; 30 + auth: HA 31 + params: QueryParams 32 + input: HandlerInput 33 + req: express.Request 34 + res: express.Response 35 + resetRouteRateLimits: () => Promise<void> 36 + } 37 37 export type Handler<HA extends HandlerAuth = never> = ( 38 38 ctx: HandlerReqCtx<HA>, 39 - ) => Promise<HandlerOutput> | HandlerOutput; 39 + ) => Promise<HandlerOutput> | HandlerOutput
+16 -16
apps/api/src/lexicon/types/app/rocksky/radio.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import type { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface Record { 10 10 /** The name of the radio station. */ 11 - name: string; 11 + name: string 12 12 /** The URL of the radio station. */ 13 - url: string; 13 + url: string 14 14 /** A description of the radio station. */ 15 - description?: string; 15 + description?: string 16 16 /** The genre of the radio station. */ 17 - genre?: string; 17 + genre?: string 18 18 /** The logo of the radio station. */ 19 - logo?: BlobRef; 19 + logo?: BlobRef 20 20 /** The website of the radio station. */ 21 - website?: string; 21 + website?: string 22 22 /** The date when the radio station was created. */ 23 - createdAt: string; 24 - [k: string]: unknown; 23 + createdAt: string 24 + [k: string]: unknown 25 25 } 26 26 27 27 export function isRecord(v: unknown): v is Record { 28 28 return ( 29 29 isObj(v) && 30 - hasProp(v, "$type") && 31 - (v.$type === "app.rocksky.radio#main" || v.$type === "app.rocksky.radio") 32 - ); 30 + hasProp(v, '$type') && 31 + (v.$type === 'app.rocksky.radio#main' || v.$type === 'app.rocksky.radio') 32 + ) 33 33 } 34 34 35 35 export function validateRecord(v: unknown): ValidationResult { 36 - return lexicons.validate("app.rocksky.radio#main", v); 36 + return lexicons.validate('app.rocksky.radio#main', v) 37 37 }
+26 -26
apps/api/src/lexicon/types/app/rocksky/radio/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface RadioViewBasic { 10 10 /** The unique identifier of the radio. */ 11 - id?: string; 11 + id?: string 12 12 /** The name of the radio. */ 13 - name?: string; 13 + name?: string 14 14 /** A brief description of the radio. */ 15 - description?: string; 15 + description?: string 16 16 /** The date and time when the radio was created. */ 17 - createdAt?: string; 18 - [k: string]: unknown; 17 + createdAt?: string 18 + [k: string]: unknown 19 19 } 20 20 21 21 export function isRadioViewBasic(v: unknown): v is RadioViewBasic { 22 22 return ( 23 23 isObj(v) && 24 - hasProp(v, "$type") && 25 - v.$type === "app.rocksky.radio.defs#radioViewBasic" 26 - ); 24 + hasProp(v, '$type') && 25 + v.$type === 'app.rocksky.radio.defs#radioViewBasic' 26 + ) 27 27 } 28 28 29 29 export function validateRadioViewBasic(v: unknown): ValidationResult { 30 - return lexicons.validate("app.rocksky.radio.defs#radioViewBasic", v); 30 + return lexicons.validate('app.rocksky.radio.defs#radioViewBasic', v) 31 31 } 32 32 33 33 export interface RadioViewDetailed { 34 34 /** The unique identifier of the radio. */ 35 - id?: string; 35 + id?: string 36 36 /** The name of the radio. */ 37 - name?: string; 37 + name?: string 38 38 /** A brief description of the radio. */ 39 - description?: string; 39 + description?: string 40 40 /** The website of the radio. */ 41 - website?: string; 41 + website?: string 42 42 /** The streaming URL of the radio. */ 43 - url?: string; 43 + url?: string 44 44 /** The genre of the radio. */ 45 - genre?: string; 45 + genre?: string 46 46 /** The logo of the radio station. */ 47 - logo?: string; 47 + logo?: string 48 48 /** The date and time when the radio was created. */ 49 - createdAt?: string; 50 - [k: string]: unknown; 49 + createdAt?: string 50 + [k: string]: unknown 51 51 } 52 52 53 53 export function isRadioViewDetailed(v: unknown): v is RadioViewDetailed { 54 54 return ( 55 55 isObj(v) && 56 - hasProp(v, "$type") && 57 - v.$type === "app.rocksky.radio.defs#radioViewDetailed" 58 - ); 56 + hasProp(v, '$type') && 57 + v.$type === 'app.rocksky.radio.defs#radioViewDetailed' 58 + ) 59 59 } 60 60 61 61 export function validateRadioViewDetailed(v: unknown): ValidationResult { 62 - return lexicons.validate("app.rocksky.radio.defs#radioViewDetailed", v); 62 + return lexicons.validate('app.rocksky.radio.defs#radioViewDetailed', v) 63 63 }
+33 -33
apps/api/src/lexicon/types/app/rocksky/scrobble.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import type { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface Record { 10 10 /** The title of the song. */ 11 - title: string; 11 + title: string 12 12 /** The artist of the song. */ 13 - artist: string; 13 + artist: string 14 14 /** The album artist of the song. */ 15 - albumArtist: string; 15 + albumArtist: string 16 16 /** The album of the song. */ 17 - album: string; 17 + album: string 18 18 /** The duration of the song in seconds. */ 19 - duration: number; 19 + duration: number 20 20 /** The track number of the song in the album. */ 21 - trackNumber?: number; 21 + trackNumber?: number 22 22 /** The disc number of the song in the album. */ 23 - discNumber?: number; 23 + discNumber?: number 24 24 /** The release date of the song. */ 25 - releaseDate?: string; 25 + releaseDate?: string 26 26 /** The year the song was released. */ 27 - year?: number; 27 + year?: number 28 28 /** The genre of the song. */ 29 - genre?: string; 29 + genre?: string 30 30 /** The tags of the song. */ 31 - tags?: string[]; 31 + tags?: string[] 32 32 /** The composer of the song. */ 33 - composer?: string; 33 + composer?: string 34 34 /** The lyrics of the song. */ 35 - lyrics?: string; 35 + lyrics?: string 36 36 /** The copyright message of the song. */ 37 - copyrightMessage?: string; 37 + copyrightMessage?: string 38 38 /** Informations about the song */ 39 - wiki?: string; 39 + wiki?: string 40 40 /** The album art of the song. */ 41 - albumArt?: BlobRef; 41 + albumArt?: BlobRef 42 42 /** The YouTube link of the song. */ 43 - youtubeLink?: string; 43 + youtubeLink?: string 44 44 /** The Spotify link of the song. */ 45 - spotifyLink?: string; 45 + spotifyLink?: string 46 46 /** The Tidal link of the song. */ 47 - tidalLink?: string; 47 + tidalLink?: string 48 48 /** The Apple Music link of the song. */ 49 - appleMusicLink?: string; 49 + appleMusicLink?: string 50 50 /** The date when the song was created. */ 51 - createdAt: string; 51 + createdAt: string 52 52 /** The MusicBrainz ID of the song. */ 53 - mbid?: string; 53 + mbid?: string 54 54 /** The label of the song. */ 55 - label?: string; 56 - [k: string]: unknown; 55 + label?: string 56 + [k: string]: unknown 57 57 } 58 58 59 59 export function isRecord(v: unknown): v is Record { 60 60 return ( 61 61 isObj(v) && 62 - hasProp(v, "$type") && 63 - (v.$type === "app.rocksky.scrobble#main" || 64 - v.$type === "app.rocksky.scrobble") 65 - ); 62 + hasProp(v, '$type') && 63 + (v.$type === 'app.rocksky.scrobble#main' || 64 + v.$type === 'app.rocksky.scrobble') 65 + ) 66 66 } 67 67 68 68 export function validateRecord(v: unknown): ValidationResult { 69 - return lexicons.validate("app.rocksky.scrobble#main", v); 69 + return lexicons.validate('app.rocksky.scrobble#main', v) 70 70 }
+48 -48
apps/api/src/lexicon/types/app/rocksky/scrobble/createScrobble.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyScrobbleDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyScrobbleDefs from './defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The title of the track being scrobbled */ 16 - title: string; 16 + title: string 17 17 /** The artist of the track being scrobbled */ 18 - artist: string; 18 + artist: string 19 19 /** The album of the track being scrobbled */ 20 - album?: string; 20 + album?: string 21 21 /** The duration of the track in seconds */ 22 - duration?: number; 22 + duration?: number 23 23 /** The MusicBrainz ID of the track, if available */ 24 - mbId?: string; 24 + mbId?: string 25 25 /** The URL of the album art for the track */ 26 - albumArt?: string; 26 + albumArt?: string 27 27 /** The track number of the track in the album */ 28 - trackNumber?: number; 28 + trackNumber?: number 29 29 /** The release date of the track, formatted as YYYY-MM-DD */ 30 - releaseDate?: string; 30 + releaseDate?: string 31 31 /** The year the track was released */ 32 - year?: number; 32 + year?: number 33 33 /** The disc number of the track in the album, if applicable */ 34 - discNumber?: number; 34 + discNumber?: number 35 35 /** The lyrics of the track, if available */ 36 - lyrics?: string; 36 + lyrics?: string 37 37 /** The composer of the track, if available */ 38 - composer?: string; 38 + composer?: string 39 39 /** The copyright message for the track, if available */ 40 - copyrightMessage?: string; 40 + copyrightMessage?: string 41 41 /** The record label of the track, if available */ 42 - label?: string; 42 + label?: string 43 43 /** The URL of the artist's picture, if available */ 44 - artistPicture?: string; 44 + artistPicture?: string 45 45 /** The Spotify link for the track, if available */ 46 - spotifyLink?: string; 46 + spotifyLink?: string 47 47 /** The Last.fm link for the track, if available */ 48 - lastfmLink?: string; 48 + lastfmLink?: string 49 49 /** The Tidal link for the track, if available */ 50 - tidalLink?: string; 50 + tidalLink?: string 51 51 /** The Apple Music link for the track, if available */ 52 - appleMusicLink?: string; 52 + appleMusicLink?: string 53 53 /** The Youtube link for the track, if available */ 54 - youtubeLink?: string; 54 + youtubeLink?: string 55 55 /** The Deezer link for the track, if available */ 56 - deezerLink?: string; 56 + deezerLink?: string 57 57 /** The timestamp of the scrobble in milliseconds since epoch */ 58 - timestamp?: number; 59 - [k: string]: unknown; 58 + timestamp?: number 59 + [k: string]: unknown 60 60 } 61 61 62 - export type OutputSchema = AppRockskyScrobbleDefs.ScrobbleViewBasic; 62 + export type OutputSchema = AppRockskyScrobbleDefs.ScrobbleViewBasic 63 63 64 64 export interface HandlerInput { 65 - encoding: "application/json"; 66 - body: InputSchema; 65 + encoding: 'application/json' 66 + body: InputSchema 67 67 } 68 68 69 69 export interface HandlerSuccess { 70 - encoding: "application/json"; 71 - body: OutputSchema; 72 - headers?: { [key: string]: string }; 70 + encoding: 'application/json' 71 + body: OutputSchema 72 + headers?: { [key: string]: string } 73 73 } 74 74 75 75 export interface HandlerError { 76 - status: number; 77 - message?: string; 76 + status: number 77 + message?: string 78 78 } 79 79 80 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 80 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 81 81 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 82 - auth: HA; 83 - params: QueryParams; 84 - input: HandlerInput; 85 - req: express.Request; 86 - res: express.Response; 87 - resetRouteRateLimits: () => Promise<void>; 88 - }; 82 + auth: HA 83 + params: QueryParams 84 + input: HandlerInput 85 + req: express.Request 86 + res: express.Response 87 + resetRouteRateLimits: () => Promise<void> 88 + } 89 89 export type Handler<HA extends HandlerAuth = never> = ( 90 90 ctx: HandlerReqCtx<HA>, 91 - ) => Promise<HandlerOutput> | HandlerOutput; 91 + ) => Promise<HandlerOutput> | HandlerOutput
+42 -38
apps/api/src/lexicon/types/app/rocksky/scrobble/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface ScrobbleViewBasic { 10 10 /** The unique identifier of the scrobble. */ 11 - id?: string; 11 + id?: string 12 12 /** The handle of the user who created the scrobble. */ 13 - user?: string; 13 + user?: string 14 + /** The display name of the user who created the scrobble. */ 15 + userDisplayName?: string 16 + /** The avatar URL of the user who created the scrobble. */ 17 + userAvatar?: string 14 18 /** The title of the scrobble. */ 15 - title?: string; 19 + title?: string 16 20 /** The artist of the song. */ 17 - artist?: string; 21 + artist?: string 18 22 /** The URI of the artist. */ 19 - artistUri?: string; 23 + artistUri?: string 20 24 /** The album of the song. */ 21 - album?: string; 25 + album?: string 22 26 /** The URI of the album. */ 23 - albumUri?: string; 27 + albumUri?: string 24 28 /** The album art URL of the song. */ 25 - cover?: string; 29 + cover?: string 26 30 /** The timestamp when the scrobble was created. */ 27 - date?: string; 31 + date?: string 28 32 /** The URI of the scrobble. */ 29 - uri?: string; 33 + uri?: string 30 34 /** The SHA256 hash of the scrobble data. */ 31 - sha256?: string; 32 - [k: string]: unknown; 35 + sha256?: string 36 + [k: string]: unknown 33 37 } 34 38 35 39 export function isScrobbleViewBasic(v: unknown): v is ScrobbleViewBasic { 36 40 return ( 37 41 isObj(v) && 38 - hasProp(v, "$type") && 39 - v.$type === "app.rocksky.scrobble.defs#scrobbleViewBasic" 40 - ); 42 + hasProp(v, '$type') && 43 + v.$type === 'app.rocksky.scrobble.defs#scrobbleViewBasic' 44 + ) 41 45 } 42 46 43 47 export function validateScrobbleViewBasic(v: unknown): ValidationResult { 44 - return lexicons.validate("app.rocksky.scrobble.defs#scrobbleViewBasic", v); 48 + return lexicons.validate('app.rocksky.scrobble.defs#scrobbleViewBasic', v) 45 49 } 46 50 47 51 export interface ScrobbleViewDetailed { 48 52 /** The unique identifier of the scrobble. */ 49 - id?: string; 53 + id?: string 50 54 /** The handle of the user who created the scrobble. */ 51 - user?: string; 55 + user?: string 52 56 /** The title of the scrobble. */ 53 - title?: string; 57 + title?: string 54 58 /** The artist of the song. */ 55 - artist?: string; 59 + artist?: string 56 60 /** The URI of the artist. */ 57 - artistUri?: string; 61 + artistUri?: string 58 62 /** The album of the song. */ 59 - album?: string; 63 + album?: string 60 64 /** The URI of the album. */ 61 - albumUri?: string; 65 + albumUri?: string 62 66 /** The album art URL of the song. */ 63 - cover?: string; 67 + cover?: string 64 68 /** The timestamp when the scrobble was created. */ 65 - date?: string; 69 + date?: string 66 70 /** The URI of the scrobble. */ 67 - uri?: string; 71 + uri?: string 68 72 /** The SHA256 hash of the scrobble data. */ 69 - sha256?: string; 73 + sha256?: string 70 74 /** The number of listeners */ 71 - listeners?: number; 75 + listeners?: number 72 76 /** The number of scrobbles for this song */ 73 - scrobbles?: number; 74 - [k: string]: unknown; 77 + scrobbles?: number 78 + [k: string]: unknown 75 79 } 76 80 77 81 export function isScrobbleViewDetailed(v: unknown): v is ScrobbleViewDetailed { 78 82 return ( 79 83 isObj(v) && 80 - hasProp(v, "$type") && 81 - v.$type === "app.rocksky.scrobble.defs#scrobbleViewDetailed" 82 - ); 84 + hasProp(v, '$type') && 85 + v.$type === 'app.rocksky.scrobble.defs#scrobbleViewDetailed' 86 + ) 83 87 } 84 88 85 89 export function validateScrobbleViewDetailed(v: unknown): ValidationResult { 86 - return lexicons.validate("app.rocksky.scrobble.defs#scrobbleViewDetailed", v); 90 + return lexicons.validate('app.rocksky.scrobble.defs#scrobbleViewDetailed', v) 87 91 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/scrobble/getScrobble.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyScrobbleDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyScrobbleDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The unique identifier of the scrobble */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyScrobbleDefs.ScrobbleViewDetailed; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyScrobbleDefs.ScrobbleViewDetailed 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/scrobble/getScrobbles.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyScrobbleDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyScrobbleDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did?: string; 14 + did?: string 15 15 /** The maximum number of scrobbles to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The offset for pagination */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - scrobbles?: AppRockskyScrobbleDefs.ScrobbleViewBasic[]; 25 - [k: string]: unknown; 24 + scrobbles?: AppRockskyScrobbleDefs.ScrobbleViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+14 -14
apps/api/src/lexicon/types/app/rocksky/shout.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 8 - import type * as ComAtprotoRepoStrongRef from "../../com/atproto/repo/strongRef"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 + import type * as ComAtprotoRepoStrongRef from '../../com/atproto/repo/strongRef' 9 9 10 10 export interface Record { 11 11 /** The message of the shout. */ 12 - message: string; 12 + message: string 13 13 /** The date when the shout was created. */ 14 - createdAt: string; 15 - parent?: ComAtprotoRepoStrongRef.Main; 16 - subject: ComAtprotoRepoStrongRef.Main; 17 - [k: string]: unknown; 14 + createdAt: string 15 + parent?: ComAtprotoRepoStrongRef.Main 16 + subject: ComAtprotoRepoStrongRef.Main 17 + [k: string]: unknown 18 18 } 19 19 20 20 export function isRecord(v: unknown): v is Record { 21 21 return ( 22 22 isObj(v) && 23 - hasProp(v, "$type") && 24 - (v.$type === "app.rocksky.shout#main" || v.$type === "app.rocksky.shout") 25 - ); 23 + hasProp(v, '$type') && 24 + (v.$type === 'app.rocksky.shout#main' || v.$type === 'app.rocksky.shout') 25 + ) 26 26 } 27 27 28 28 export function validateRecord(v: unknown): ValidationResult { 29 - return lexicons.validate("app.rocksky.shout#main", v); 29 + return lexicons.validate('app.rocksky.shout#main', v) 30 30 }
+27 -27
apps/api/src/lexicon/types/app/rocksky/shout/createShout.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The content of the shout */ 16 - message?: string; 17 - [k: string]: unknown; 16 + message?: string 17 + [k: string]: unknown 18 18 } 19 19 20 - export type OutputSchema = AppRockskyShoutDefs.ShoutView; 20 + export type OutputSchema = AppRockskyShoutDefs.ShoutView 21 21 22 22 export interface HandlerInput { 23 - encoding: "application/json"; 24 - body: InputSchema; 23 + encoding: 'application/json' 24 + body: InputSchema 25 25 } 26 26 27 27 export interface HandlerSuccess { 28 - encoding: "application/json"; 29 - body: OutputSchema; 30 - headers?: { [key: string]: string }; 28 + encoding: 'application/json' 29 + body: OutputSchema 30 + headers?: { [key: string]: string } 31 31 } 32 32 33 33 export interface HandlerError { 34 - status: number; 35 - message?: string; 34 + status: number 35 + message?: string 36 36 } 37 37 38 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 38 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 39 39 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 40 - auth: HA; 41 - params: QueryParams; 42 - input: HandlerInput; 43 - req: express.Request; 44 - res: express.Response; 45 - resetRouteRateLimits: () => Promise<void>; 46 - }; 40 + auth: HA 41 + params: QueryParams 42 + input: HandlerInput 43 + req: express.Request 44 + res: express.Response 45 + resetRouteRateLimits: () => Promise<void> 46 + } 47 47 export type Handler<HA extends HandlerAuth = never> = ( 48 48 ctx: HandlerReqCtx<HA>, 49 - ) => Promise<HandlerOutput> | HandlerOutput; 49 + ) => Promise<HandlerOutput> | HandlerOutput
+24 -24
apps/api/src/lexicon/types/app/rocksky/shout/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface Author { 10 10 /** The unique identifier of the author. */ 11 - id?: string; 11 + id?: string 12 12 /** The decentralized identifier (DID) of the author. */ 13 - did?: string; 13 + did?: string 14 14 /** The handle of the author. */ 15 - handle?: string; 15 + handle?: string 16 16 /** The display name of the author. */ 17 - displayName?: string; 17 + displayName?: string 18 18 /** The URL of the author's avatar image. */ 19 - avatar?: string; 20 - [k: string]: unknown; 19 + avatar?: string 20 + [k: string]: unknown 21 21 } 22 22 23 23 export function isAuthor(v: unknown): v is Author { 24 24 return ( 25 25 isObj(v) && 26 - hasProp(v, "$type") && 27 - v.$type === "app.rocksky.shout.defs#author" 28 - ); 26 + hasProp(v, '$type') && 27 + v.$type === 'app.rocksky.shout.defs#author' 28 + ) 29 29 } 30 30 31 31 export function validateAuthor(v: unknown): ValidationResult { 32 - return lexicons.validate("app.rocksky.shout.defs#author", v); 32 + return lexicons.validate('app.rocksky.shout.defs#author', v) 33 33 } 34 34 35 35 export interface ShoutView { 36 36 /** The unique identifier of the shout. */ 37 - id?: string; 37 + id?: string 38 38 /** The content of the shout. */ 39 - message?: string; 39 + message?: string 40 40 /** The ID of the parent shout if this is a reply, otherwise null. */ 41 - parent?: string; 41 + parent?: string 42 42 /** The date and time when the shout was created. */ 43 - createdAt?: string; 44 - author?: Author; 45 - [k: string]: unknown; 43 + createdAt?: string 44 + author?: Author 45 + [k: string]: unknown 46 46 } 47 47 48 48 export function isShoutView(v: unknown): v is ShoutView { 49 49 return ( 50 50 isObj(v) && 51 - hasProp(v, "$type") && 52 - v.$type === "app.rocksky.shout.defs#shoutView" 53 - ); 51 + hasProp(v, '$type') && 52 + v.$type === 'app.rocksky.shout.defs#shoutView' 53 + ) 54 54 } 55 55 56 56 export function validateShoutView(v: unknown): ValidationResult { 57 - return lexicons.validate("app.rocksky.shout.defs#shoutView", v); 57 + return lexicons.validate('app.rocksky.shout.defs#shoutView', v) 58 58 }
+28 -28
apps/api/src/lexicon/types/app/rocksky/shout/getAlbumShouts.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The unique identifier of the album to retrieve shouts for */ 14 - uri: string; 14 + uri: string 15 15 /** The maximum number of shouts to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The number of shouts to skip before starting to collect the result set */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - shouts?: AppRockskyShoutDefs.ShoutViewBasic[]; 25 - [k: string]: unknown; 24 + shouts?: AppRockskyShoutDefs.ShoutViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/shout/getArtistShouts.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the artist to retrieve shouts for */ 14 - uri: string; 14 + uri: string 15 15 /** The maximum number of shouts to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The number of shouts to skip before starting to collect the result set */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - shouts?: AppRockskyShoutDefs.ShoutViewBasic[]; 25 - [k: string]: unknown; 24 + shouts?: AppRockskyShoutDefs.ShoutViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/shout/getProfileShouts.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the actor */ 14 - did: string; 14 + did: string 15 15 /** The offset for pagination */ 16 - offset?: number; 16 + offset?: number 17 17 /** The maximum number of shouts to return */ 18 - limit?: number; 18 + limit?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - shouts?: AppRockskyShoutDefs.ShoutViewBasic[]; 25 - [k: string]: unknown; 24 + shouts?: AppRockskyShoutDefs.ShoutViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/shout/getShoutReplies.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the shout to retrieve replies for */ 14 - uri: string; 14 + uri: string 15 15 /** The maximum number of shouts to return */ 16 - limit?: number; 16 + limit?: number 17 17 /** The number of shouts to skip before starting to collect the result set */ 18 - offset?: number; 18 + offset?: number 19 19 } 20 20 21 - export type InputSchema = undefined; 21 + export type InputSchema = undefined 22 22 23 23 export interface OutputSchema { 24 - shouts?: AppRockskyShoutDefs.ShoutViewBasic[]; 25 - [k: string]: unknown; 24 + shouts?: AppRockskyShoutDefs.ShoutViewBasic[] 25 + [k: string]: unknown 26 26 } 27 27 28 - export type HandlerInput = undefined; 28 + export type HandlerInput = undefined 29 29 30 30 export interface HandlerSuccess { 31 - encoding: "application/json"; 32 - body: OutputSchema; 33 - headers?: { [key: string]: string }; 31 + encoding: 'application/json' 32 + body: OutputSchema 33 + headers?: { [key: string]: string } 34 34 } 35 35 36 36 export interface HandlerError { 37 - status: number; 38 - message?: string; 37 + status: number 38 + message?: string 39 39 } 40 40 41 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 41 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 42 42 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 43 - auth: HA; 44 - params: QueryParams; 45 - input: HandlerInput; 46 - req: express.Request; 47 - res: express.Response; 48 - resetRouteRateLimits: () => Promise<void>; 49 - }; 43 + auth: HA 44 + params: QueryParams 45 + input: HandlerInput 46 + req: express.Request 47 + res: express.Response 48 + resetRouteRateLimits: () => Promise<void> 49 + } 50 50 export type Handler<HA extends HandlerAuth = never> = ( 51 51 ctx: HandlerReqCtx<HA>, 52 - ) => Promise<HandlerOutput> | HandlerOutput; 52 + ) => Promise<HandlerOutput> | HandlerOutput
+26 -26
apps/api/src/lexicon/types/app/rocksky/shout/getTrackShouts.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The URI of the track to retrieve shouts for */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 17 + export type InputSchema = undefined 18 18 19 19 export interface OutputSchema { 20 - shouts?: AppRockskyShoutDefs.ShoutViewBasic[]; 21 - [k: string]: unknown; 20 + shouts?: AppRockskyShoutDefs.ShoutViewBasic[] 21 + [k: string]: unknown 22 22 } 23 23 24 - export type HandlerInput = undefined; 24 + export type HandlerInput = undefined 25 25 26 26 export interface HandlerSuccess { 27 - encoding: "application/json"; 28 - body: OutputSchema; 29 - headers?: { [key: string]: string }; 27 + encoding: 'application/json' 28 + body: OutputSchema 29 + headers?: { [key: string]: string } 30 30 } 31 31 32 32 export interface HandlerError { 33 - status: number; 34 - message?: string; 33 + status: number 34 + message?: string 35 35 } 36 36 37 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 37 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 38 38 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 39 - auth: HA; 40 - params: QueryParams; 41 - input: HandlerInput; 42 - req: express.Request; 43 - res: express.Response; 44 - resetRouteRateLimits: () => Promise<void>; 45 - }; 39 + auth: HA 40 + params: QueryParams 41 + input: HandlerInput 42 + req: express.Request 43 + res: express.Response 44 + resetRouteRateLimits: () => Promise<void> 45 + } 46 46 export type Handler<HA extends HandlerAuth = never> = ( 47 47 ctx: HandlerReqCtx<HA>, 48 - ) => Promise<HandlerOutput> | HandlerOutput; 48 + ) => Promise<HandlerOutput> | HandlerOutput
+25 -25
apps/api/src/lexicon/types/app/rocksky/shout/removeShout.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The ID of the shout to be removed */ 14 - id: string; 14 + id: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyShoutDefs.ShoutView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyShoutDefs.ShoutView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/shout/replyShout.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The unique identifier of the shout to reply to */ 16 - shoutId: string; 16 + shoutId: string 17 17 /** The content of the reply */ 18 - message: string; 19 - [k: string]: unknown; 18 + message: string 19 + [k: string]: unknown 20 20 } 21 21 22 - export type OutputSchema = AppRockskyShoutDefs.ShoutView; 22 + export type OutputSchema = AppRockskyShoutDefs.ShoutView 23 23 24 24 export interface HandlerInput { 25 - encoding: "application/json"; 26 - body: InputSchema; 25 + encoding: 'application/json' 26 + body: InputSchema 27 27 } 28 28 29 29 export interface HandlerSuccess { 30 - encoding: "application/json"; 31 - body: OutputSchema; 32 - headers?: { [key: string]: string }; 30 + encoding: 'application/json' 31 + body: OutputSchema 32 + headers?: { [key: string]: string } 33 33 } 34 34 35 35 export interface HandlerError { 36 - status: number; 37 - message?: string; 36 + status: number 37 + message?: string 38 38 } 39 39 40 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 40 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 41 41 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 42 - auth: HA; 43 - params: QueryParams; 44 - input: HandlerInput; 45 - req: express.Request; 46 - res: express.Response; 47 - resetRouteRateLimits: () => Promise<void>; 48 - }; 42 + auth: HA 43 + params: QueryParams 44 + input: HandlerInput 45 + req: express.Request 46 + res: express.Response 47 + resetRouteRateLimits: () => Promise<void> 48 + } 49 49 export type Handler<HA extends HandlerAuth = never> = ( 50 50 ctx: HandlerReqCtx<HA>, 51 - ) => Promise<HandlerOutput> | HandlerOutput; 51 + ) => Promise<HandlerOutput> | HandlerOutput
+28 -28
apps/api/src/lexicon/types/app/rocksky/shout/reportShout.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyShoutDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyShoutDefs from './defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The unique identifier of the shout to report */ 16 - shoutId: string; 16 + shoutId: string 17 17 /** The reason for reporting the shout */ 18 - reason?: string; 19 - [k: string]: unknown; 18 + reason?: string 19 + [k: string]: unknown 20 20 } 21 21 22 - export type OutputSchema = AppRockskyShoutDefs.ShoutView; 22 + export type OutputSchema = AppRockskyShoutDefs.ShoutView 23 23 24 24 export interface HandlerInput { 25 - encoding: "application/json"; 26 - body: InputSchema; 25 + encoding: 'application/json' 26 + body: InputSchema 27 27 } 28 28 29 29 export interface HandlerSuccess { 30 - encoding: "application/json"; 31 - body: OutputSchema; 32 - headers?: { [key: string]: string }; 30 + encoding: 'application/json' 31 + body: OutputSchema 32 + headers?: { [key: string]: string } 33 33 } 34 34 35 35 export interface HandlerError { 36 - status: number; 37 - message?: string; 36 + status: number 37 + message?: string 38 38 } 39 39 40 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 40 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 41 41 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 42 - auth: HA; 43 - params: QueryParams; 44 - input: HandlerInput; 45 - req: express.Request; 46 - res: express.Response; 47 - resetRouteRateLimits: () => Promise<void>; 48 - }; 42 + auth: HA 43 + params: QueryParams 44 + input: HandlerInput 45 + req: express.Request 46 + res: express.Response 47 + resetRouteRateLimits: () => Promise<void> 48 + } 49 49 export type Handler<HA extends HandlerAuth = never> = ( 50 50 ctx: HandlerReqCtx<HA>, 51 - ) => Promise<HandlerOutput> | HandlerOutput; 51 + ) => Promise<HandlerOutput> | HandlerOutput
+32 -32
apps/api/src/lexicon/types/app/rocksky/song.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type { ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../lexicons"; 6 - import { isObj, hasProp } from "../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import type { ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../lexicons' 6 + import { isObj, hasProp } from '../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface Record { 10 10 /** The title of the song. */ 11 - title: string; 11 + title: string 12 12 /** The artist of the song. */ 13 - artist: string; 13 + artist: string 14 14 /** The album artist of the song. */ 15 - albumArtist: string; 15 + albumArtist: string 16 16 /** The album of the song. */ 17 - album: string; 17 + album: string 18 18 /** The duration of the song in seconds. */ 19 - duration: number; 19 + duration: number 20 20 /** The track number of the song in the album. */ 21 - trackNumber?: number; 21 + trackNumber?: number 22 22 /** The disc number of the song in the album. */ 23 - discNumber?: number; 23 + discNumber?: number 24 24 /** The release date of the song. */ 25 - releaseDate?: string; 25 + releaseDate?: string 26 26 /** The year the song was released. */ 27 - year?: number; 27 + year?: number 28 28 /** The genre of the song. */ 29 - genre?: string; 29 + genre?: string 30 30 /** The tags of the song. */ 31 - tags?: string[]; 31 + tags?: string[] 32 32 /** The composer of the song. */ 33 - composer?: string; 33 + composer?: string 34 34 /** The lyrics of the song. */ 35 - lyrics?: string; 35 + lyrics?: string 36 36 /** The copyright message of the song. */ 37 - copyrightMessage?: string; 37 + copyrightMessage?: string 38 38 /** Informations about the song */ 39 - wiki?: string; 39 + wiki?: string 40 40 /** The album art of the song. */ 41 - albumArt?: BlobRef; 41 + albumArt?: BlobRef 42 42 /** The YouTube link of the song. */ 43 - youtubeLink?: string; 43 + youtubeLink?: string 44 44 /** The Spotify link of the song. */ 45 - spotifyLink?: string; 45 + spotifyLink?: string 46 46 /** The Tidal link of the song. */ 47 - tidalLink?: string; 47 + tidalLink?: string 48 48 /** The Apple Music link of the song. */ 49 - appleMusicLink?: string; 49 + appleMusicLink?: string 50 50 /** The date when the song was created. */ 51 - createdAt: string; 51 + createdAt: string 52 52 /** The MusicBrainz ID of the song. */ 53 - mbid?: string; 53 + mbid?: string 54 54 /** The label of the song. */ 55 - label?: string; 56 - [k: string]: unknown; 55 + label?: string 56 + [k: string]: unknown 57 57 } 58 58 59 59 export function isRecord(v: unknown): v is Record { 60 60 return ( 61 61 isObj(v) && 62 - hasProp(v, "$type") && 63 - (v.$type === "app.rocksky.song#main" || v.$type === "app.rocksky.song") 64 - ); 62 + hasProp(v, '$type') && 63 + (v.$type === 'app.rocksky.song#main' || v.$type === 'app.rocksky.song') 64 + ) 65 65 } 66 66 67 67 export function validateRecord(v: unknown): ValidationResult { 68 - return lexicons.validate("app.rocksky.song#main", v); 68 + return lexicons.validate('app.rocksky.song#main', v) 69 69 }
+38 -38
apps/api/src/lexicon/types/app/rocksky/song/createSong.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from './defs' 11 11 12 - export type QueryParams = {}; 12 + export type QueryParams = {} 13 13 14 14 export interface InputSchema { 15 15 /** The title of the song */ 16 - title: string; 16 + title: string 17 17 /** The artist of the song */ 18 - artist: string; 18 + artist: string 19 19 /** The album artist of the song, if different from the main artist */ 20 - albumArtist: string; 20 + albumArtist: string 21 21 /** The album of the song, if applicable */ 22 - album: string; 22 + album: string 23 23 /** The duration of the song in seconds */ 24 - duration?: number; 24 + duration?: number 25 25 /** The MusicBrainz ID of the song, if available */ 26 - mbId?: string; 26 + mbId?: string 27 27 /** The URL of the album art for the song */ 28 - albumArt?: string; 28 + albumArt?: string 29 29 /** The track number of the song in the album, if applicable */ 30 - trackNumber?: number; 30 + trackNumber?: number 31 31 /** The release date of the song, formatted as YYYY-MM-DD */ 32 - releaseDate?: string; 32 + releaseDate?: string 33 33 /** The year the song was released */ 34 - year?: number; 34 + year?: number 35 35 /** The disc number of the song in the album, if applicable */ 36 - discNumber?: number; 36 + discNumber?: number 37 37 /** The lyrics of the song, if available */ 38 - lyrics?: string; 39 - [k: string]: unknown; 38 + lyrics?: string 39 + [k: string]: unknown 40 40 } 41 41 42 - export type OutputSchema = AppRockskySongDefs.SongViewDetailed; 42 + export type OutputSchema = AppRockskySongDefs.SongViewDetailed 43 43 44 44 export interface HandlerInput { 45 - encoding: "application/json"; 46 - body: InputSchema; 45 + encoding: 'application/json' 46 + body: InputSchema 47 47 } 48 48 49 49 export interface HandlerSuccess { 50 - encoding: "application/json"; 51 - body: OutputSchema; 52 - headers?: { [key: string]: string }; 50 + encoding: 'application/json' 51 + body: OutputSchema 52 + headers?: { [key: string]: string } 53 53 } 54 54 55 55 export interface HandlerError { 56 - status: number; 57 - message?: string; 56 + status: number 57 + message?: string 58 58 } 59 59 60 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 60 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 61 61 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 62 - auth: HA; 63 - params: QueryParams; 64 - input: HandlerInput; 65 - req: express.Request; 66 - res: express.Response; 67 - resetRouteRateLimits: () => Promise<void>; 68 - }; 62 + auth: HA 63 + params: QueryParams 64 + input: HandlerInput 65 + req: express.Request 66 + res: express.Response 67 + resetRouteRateLimits: () => Promise<void> 68 + } 69 69 export type Handler<HA extends HandlerAuth = never> = ( 70 70 ctx: HandlerReqCtx<HA>, 71 - ) => Promise<HandlerOutput> | HandlerOutput; 71 + ) => Promise<HandlerOutput> | HandlerOutput
+46 -46
apps/api/src/lexicon/types/app/rocksky/song/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface SongViewBasic { 10 10 /** The unique identifier of the song. */ 11 - id?: string; 11 + id?: string 12 12 /** The title of the song. */ 13 - title?: string; 13 + title?: string 14 14 /** The artist of the song. */ 15 - artist?: string; 15 + artist?: string 16 16 /** The artist of the album the song belongs to. */ 17 - albumArtist?: string; 17 + albumArtist?: string 18 18 /** The URL of the album art image. */ 19 - albumArt?: string; 19 + albumArt?: string 20 20 /** The URI of the song. */ 21 - uri?: string; 21 + uri?: string 22 22 /** The album of the song. */ 23 - album?: string; 23 + album?: string 24 24 /** The duration of the song in milliseconds. */ 25 - duration?: number; 25 + duration?: number 26 26 /** The track number of the song in the album. */ 27 - trackNumber?: number; 27 + trackNumber?: number 28 28 /** The disc number of the song in the album. */ 29 - discNumber?: number; 29 + discNumber?: number 30 30 /** The number of times the song has been played. */ 31 - playCount?: number; 31 + playCount?: number 32 32 /** The number of unique listeners who have played the song. */ 33 - uniqueListeners?: number; 33 + uniqueListeners?: number 34 34 /** The URI of the album the song belongs to. */ 35 - albumUri?: string; 35 + albumUri?: string 36 36 /** The URI of the artist of the song. */ 37 - artistUri?: string; 37 + artistUri?: string 38 38 /** The SHA256 hash of the song. */ 39 - sha256?: string; 39 + sha256?: string 40 40 /** The timestamp when the song was created. */ 41 - createdAt?: string; 42 - [k: string]: unknown; 41 + createdAt?: string 42 + [k: string]: unknown 43 43 } 44 44 45 45 export function isSongViewBasic(v: unknown): v is SongViewBasic { 46 46 return ( 47 47 isObj(v) && 48 - hasProp(v, "$type") && 49 - v.$type === "app.rocksky.song.defs#songViewBasic" 50 - ); 48 + hasProp(v, '$type') && 49 + v.$type === 'app.rocksky.song.defs#songViewBasic' 50 + ) 51 51 } 52 52 53 53 export function validateSongViewBasic(v: unknown): ValidationResult { 54 - return lexicons.validate("app.rocksky.song.defs#songViewBasic", v); 54 + return lexicons.validate('app.rocksky.song.defs#songViewBasic', v) 55 55 } 56 56 57 57 export interface SongViewDetailed { 58 58 /** The unique identifier of the song. */ 59 - id?: string; 59 + id?: string 60 60 /** The title of the song. */ 61 - title?: string; 61 + title?: string 62 62 /** The artist of the song. */ 63 - artist?: string; 63 + artist?: string 64 64 /** The artist of the album the song belongs to. */ 65 - albumArtist?: string; 65 + albumArtist?: string 66 66 /** The URL of the album art image. */ 67 - albumArt?: string; 67 + albumArt?: string 68 68 /** The URI of the song. */ 69 - uri?: string; 69 + uri?: string 70 70 /** The album of the song. */ 71 - album?: string; 71 + album?: string 72 72 /** The duration of the song in milliseconds. */ 73 - duration?: number; 73 + duration?: number 74 74 /** The track number of the song in the album. */ 75 - trackNumber?: number; 75 + trackNumber?: number 76 76 /** The disc number of the song in the album. */ 77 - discNumber?: number; 77 + discNumber?: number 78 78 /** The number of times the song has been played. */ 79 - playCount?: number; 79 + playCount?: number 80 80 /** The number of unique listeners who have played the song. */ 81 - uniqueListeners?: number; 81 + uniqueListeners?: number 82 82 /** The URI of the album the song belongs to. */ 83 - albumUri?: string; 83 + albumUri?: string 84 84 /** The URI of the artist of the song. */ 85 - artistUri?: string; 85 + artistUri?: string 86 86 /** The SHA256 hash of the song. */ 87 - sha256?: string; 87 + sha256?: string 88 88 /** The timestamp when the song was created. */ 89 - createdAt?: string; 90 - [k: string]: unknown; 89 + createdAt?: string 90 + [k: string]: unknown 91 91 } 92 92 93 93 export function isSongViewDetailed(v: unknown): v is SongViewDetailed { 94 94 return ( 95 95 isObj(v) && 96 - hasProp(v, "$type") && 97 - v.$type === "app.rocksky.song.defs#songViewDetailed" 98 - ); 96 + hasProp(v, '$type') && 97 + v.$type === 'app.rocksky.song.defs#songViewDetailed' 98 + ) 99 99 } 100 100 101 101 export function validateSongViewDetailed(v: unknown): ValidationResult { 102 - return lexicons.validate("app.rocksky.song.defs#songViewDetailed", v); 102 + return lexicons.validate('app.rocksky.song.defs#songViewDetailed', v) 103 103 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/song/getSong.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The unique identifier of the song to retrieve */ 14 - uri: string; 14 + uri: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskySongDefs.SongViewDetailed; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskySongDefs.SongViewDetailed 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+27 -27
apps/api/src/lexicon/types/app/rocksky/song/getSongs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskySongDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskySongDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The maximum number of songs to return */ 14 - limit?: number; 14 + limit?: number 15 15 /** The offset for pagination */ 16 - offset?: number; 16 + offset?: number 17 17 } 18 18 19 - export type InputSchema = undefined; 19 + export type InputSchema = undefined 20 20 21 21 export interface OutputSchema { 22 - songs?: AppRockskySongDefs.SongViewBasic[]; 23 - [k: string]: unknown; 22 + songs?: AppRockskySongDefs.SongViewBasic[] 23 + [k: string]: unknown 24 24 } 25 25 26 - export type HandlerInput = undefined; 26 + export type HandlerInput = undefined 27 27 28 28 export interface HandlerSuccess { 29 - encoding: "application/json"; 30 - body: OutputSchema; 31 - headers?: { [key: string]: string }; 29 + encoding: 'application/json' 30 + body: OutputSchema 31 + headers?: { [key: string]: string } 32 32 } 33 33 34 34 export interface HandlerError { 35 - status: number; 36 - message?: string; 35 + status: number 36 + message?: string 37 37 } 38 38 39 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 39 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 40 40 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 41 - auth: HA; 42 - params: QueryParams; 43 - input: HandlerInput; 44 - req: express.Request; 45 - res: express.Response; 46 - resetRouteRateLimits: () => Promise<void>; 47 - }; 41 + auth: HA 42 + params: QueryParams 43 + input: HandlerInput 44 + req: express.Request 45 + res: express.Response 46 + resetRouteRateLimits: () => Promise<void> 47 + } 48 48 export type Handler<HA extends HandlerAuth = never> = ( 49 49 ctx: HandlerReqCtx<HA>, 50 - ) => Promise<HandlerOutput> | HandlerOutput; 50 + ) => Promise<HandlerOutput> | HandlerOutput
+15 -15
apps/api/src/lexicon/types/app/rocksky/spotify/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface SpotifyTrackView { 10 10 /** The unique identifier of the Spotify track. */ 11 - id?: string; 11 + id?: string 12 12 /** The name of the track. */ 13 - name?: string; 13 + name?: string 14 14 /** The name of the artist. */ 15 - artist?: string; 15 + artist?: string 16 16 /** The name of the album. */ 17 - album?: string; 17 + album?: string 18 18 /** The duration of the track in milliseconds. */ 19 - duration?: number; 19 + duration?: number 20 20 /** A URL to a preview of the track. */ 21 - previewUrl?: string; 22 - [k: string]: unknown; 21 + previewUrl?: string 22 + [k: string]: unknown 23 23 } 24 24 25 25 export function isSpotifyTrackView(v: unknown): v is SpotifyTrackView { 26 26 return ( 27 27 isObj(v) && 28 - hasProp(v, "$type") && 29 - v.$type === "app.rocksky.spotify.defs#spotifyTrackView" 30 - ); 28 + hasProp(v, '$type') && 29 + v.$type === 'app.rocksky.spotify.defs#spotifyTrackView' 30 + ) 31 31 } 32 32 33 33 export function validateSpotifyTrackView(v: unknown): ValidationResult { 34 - return lexicons.validate("app.rocksky.spotify.defs#spotifyTrackView", v); 34 + return lexicons.validate('app.rocksky.spotify.defs#spotifyTrackView', v) 35 35 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/spotify/getCurrentlyPlaying.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyPlayerDefs from "../player/defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyPlayerDefs from '../player/defs' 11 11 12 12 export interface QueryParams { 13 13 /** Handle or DID of the actor to retrieve the currently playing track for. If not provided, defaults to the current user. */ 14 - actor?: string; 14 + actor?: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyPlayerDefs.CurrentlyPlayingViewDetailed; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyPlayerDefs.CurrentlyPlayingViewDetailed 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/spotify/next.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 - export type QueryParams = {}; 11 + export type QueryParams = {} 12 12 13 - export type InputSchema = undefined; 14 - export type HandlerInput = undefined; 13 + export type InputSchema = undefined 14 + export type HandlerInput = undefined 15 15 16 16 export interface HandlerError { 17 - status: number; 18 - message?: string; 17 + status: number 18 + message?: string 19 19 } 20 20 21 - export type HandlerOutput = HandlerError | void; 21 + export type HandlerOutput = HandlerError | void 22 22 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 23 - auth: HA; 24 - params: QueryParams; 25 - input: HandlerInput; 26 - req: express.Request; 27 - res: express.Response; 28 - resetRouteRateLimits: () => Promise<void>; 29 - }; 23 + auth: HA 24 + params: QueryParams 25 + input: HandlerInput 26 + req: express.Request 27 + res: express.Response 28 + resetRouteRateLimits: () => Promise<void> 29 + } 30 30 export type Handler<HA extends HandlerAuth = never> = ( 31 31 ctx: HandlerReqCtx<HA>, 32 - ) => Promise<HandlerOutput> | HandlerOutput; 32 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/spotify/pause.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 - export type QueryParams = {}; 11 + export type QueryParams = {} 12 12 13 - export type InputSchema = undefined; 14 - export type HandlerInput = undefined; 13 + export type InputSchema = undefined 14 + export type HandlerInput = undefined 15 15 16 16 export interface HandlerError { 17 - status: number; 18 - message?: string; 17 + status: number 18 + message?: string 19 19 } 20 20 21 - export type HandlerOutput = HandlerError | void; 21 + export type HandlerOutput = HandlerError | void 22 22 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 23 - auth: HA; 24 - params: QueryParams; 25 - input: HandlerInput; 26 - req: express.Request; 27 - res: express.Response; 28 - resetRouteRateLimits: () => Promise<void>; 29 - }; 23 + auth: HA 24 + params: QueryParams 25 + input: HandlerInput 26 + req: express.Request 27 + res: express.Response 28 + resetRouteRateLimits: () => Promise<void> 29 + } 30 30 export type Handler<HA extends HandlerAuth = never> = ( 31 31 ctx: HandlerReqCtx<HA>, 32 - ) => Promise<HandlerOutput> | HandlerOutput; 32 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/spotify/play.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 - export type QueryParams = {}; 11 + export type QueryParams = {} 12 12 13 - export type InputSchema = undefined; 14 - export type HandlerInput = undefined; 13 + export type InputSchema = undefined 14 + export type HandlerInput = undefined 15 15 16 16 export interface HandlerError { 17 - status: number; 18 - message?: string; 17 + status: number 18 + message?: string 19 19 } 20 20 21 - export type HandlerOutput = HandlerError | void; 21 + export type HandlerOutput = HandlerError | void 22 22 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 23 - auth: HA; 24 - params: QueryParams; 25 - input: HandlerInput; 26 - req: express.Request; 27 - res: express.Response; 28 - resetRouteRateLimits: () => Promise<void>; 29 - }; 23 + auth: HA 24 + params: QueryParams 25 + input: HandlerInput 26 + req: express.Request 27 + res: express.Response 28 + resetRouteRateLimits: () => Promise<void> 29 + } 30 30 export type Handler<HA extends HandlerAuth = never> = ( 31 31 ctx: HandlerReqCtx<HA>, 32 - ) => Promise<HandlerOutput> | HandlerOutput; 32 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/spotify/previous.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 - export type QueryParams = {}; 11 + export type QueryParams = {} 12 12 13 - export type InputSchema = undefined; 14 - export type HandlerInput = undefined; 13 + export type InputSchema = undefined 14 + export type HandlerInput = undefined 15 15 16 16 export interface HandlerError { 17 - status: number; 18 - message?: string; 17 + status: number 18 + message?: string 19 19 } 20 20 21 - export type HandlerOutput = HandlerError | void; 21 + export type HandlerOutput = HandlerError | void 22 22 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 23 - auth: HA; 24 - params: QueryParams; 25 - input: HandlerInput; 26 - req: express.Request; 27 - res: express.Response; 28 - resetRouteRateLimits: () => Promise<void>; 29 - }; 23 + auth: HA 24 + params: QueryParams 25 + input: HandlerInput 26 + req: express.Request 27 + res: express.Response 28 + resetRouteRateLimits: () => Promise<void> 29 + } 30 30 export type Handler<HA extends HandlerAuth = never> = ( 31 31 ctx: HandlerReqCtx<HA>, 32 - ) => Promise<HandlerOutput> | HandlerOutput; 32 + ) => Promise<HandlerOutput> | HandlerOutput
+20 -20
apps/api/src/lexicon/types/app/rocksky/spotify/seek.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import { type HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import { type HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 10 11 11 export interface QueryParams { 12 12 /** The position in seconds to seek to */ 13 - position: number; 13 + position: number 14 14 } 15 15 16 - export type InputSchema = undefined; 17 - export type HandlerInput = undefined; 16 + export type InputSchema = undefined 17 + export type HandlerInput = undefined 18 18 19 19 export interface HandlerError { 20 - status: number; 21 - message?: string; 20 + status: number 21 + message?: string 22 22 } 23 23 24 - export type HandlerOutput = HandlerError | void; 24 + export type HandlerOutput = HandlerError | void 25 25 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 26 - auth: HA; 27 - params: QueryParams; 28 - input: HandlerInput; 29 - req: express.Request; 30 - res: express.Response; 31 - resetRouteRateLimits: () => Promise<void>; 32 - }; 26 + auth: HA 27 + params: QueryParams 28 + input: HandlerInput 29 + req: express.Request 30 + res: express.Response 31 + resetRouteRateLimits: () => Promise<void> 32 + } 33 33 export type Handler<HA extends HandlerAuth = never> = ( 34 34 ctx: HandlerReqCtx<HA>, 35 - ) => Promise<HandlerOutput> | HandlerOutput; 35 + ) => Promise<HandlerOutput> | HandlerOutput
+14 -14
apps/api/src/lexicon/types/app/rocksky/stats/defs.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface StatsView { 10 10 /** The total number of scrobbles. */ 11 - scrobbles?: number; 11 + scrobbles?: number 12 12 /** The total number of unique artists scrobbled. */ 13 - artists?: number; 13 + artists?: number 14 14 /** The total number of tracks marked as loved. */ 15 - lovedTracks?: number; 15 + lovedTracks?: number 16 16 /** The total number of unique albums scrobbled. */ 17 - albums?: number; 17 + albums?: number 18 18 /** The total number of unique tracks scrobbled. */ 19 - tracks?: number; 20 - [k: string]: unknown; 19 + tracks?: number 20 + [k: string]: unknown 21 21 } 22 22 23 23 export function isStatsView(v: unknown): v is StatsView { 24 24 return ( 25 25 isObj(v) && 26 - hasProp(v, "$type") && 27 - v.$type === "app.rocksky.stats.defs#statsView" 28 - ); 26 + hasProp(v, '$type') && 27 + v.$type === 'app.rocksky.stats.defs#statsView' 28 + ) 29 29 } 30 30 31 31 export function validateStatsView(v: unknown): ValidationResult { 32 - return lexicons.validate("app.rocksky.stats.defs#statsView", v); 32 + return lexicons.validate('app.rocksky.stats.defs#statsView', v) 33 33 }
+25 -25
apps/api/src/lexicon/types/app/rocksky/stats/getStats.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import type express from "express"; 5 - import { ValidationResult, BlobRef } from "@atproto/lexicon"; 6 - import { lexicons } from "../../../../lexicons"; 7 - import { isObj, hasProp } from "../../../../util"; 8 - import { CID } from "multiformats/cid"; 9 - import type { HandlerAuth, HandlerPipeThrough } from "@atproto/xrpc-server"; 10 - import type * as AppRockskyStatsDefs from "./defs"; 4 + import type express from 'express' 5 + import { ValidationResult, BlobRef } from '@atproto/lexicon' 6 + import { lexicons } from '../../../../lexicons' 7 + import { isObj, hasProp } from '../../../../util' 8 + import { CID } from 'multiformats/cid' 9 + import type { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server' 10 + import type * as AppRockskyStatsDefs from './defs' 11 11 12 12 export interface QueryParams { 13 13 /** The DID or handle of the user to get stats for. */ 14 - did: string; 14 + did: string 15 15 } 16 16 17 - export type InputSchema = undefined; 18 - export type OutputSchema = AppRockskyStatsDefs.StatsView; 19 - export type HandlerInput = undefined; 17 + export type InputSchema = undefined 18 + export type OutputSchema = AppRockskyStatsDefs.StatsView 19 + export type HandlerInput = undefined 20 20 21 21 export interface HandlerSuccess { 22 - encoding: "application/json"; 23 - body: OutputSchema; 24 - headers?: { [key: string]: string }; 22 + encoding: 'application/json' 23 + body: OutputSchema 24 + headers?: { [key: string]: string } 25 25 } 26 26 27 27 export interface HandlerError { 28 - status: number; 29 - message?: string; 28 + status: number 29 + message?: string 30 30 } 31 31 32 - export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough; 32 + export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough 33 33 export type HandlerReqCtx<HA extends HandlerAuth = never> = { 34 - auth: HA; 35 - params: QueryParams; 36 - input: HandlerInput; 37 - req: express.Request; 38 - res: express.Response; 39 - resetRouteRateLimits: () => Promise<void>; 40 - }; 34 + auth: HA 35 + params: QueryParams 36 + input: HandlerInput 37 + req: express.Request 38 + res: express.Response 39 + resetRouteRateLimits: () => Promise<void> 40 + } 41 41 export type Handler<HA extends HandlerAuth = never> = ( 42 42 ctx: HandlerReqCtx<HA>, 43 - ) => Promise<HandlerOutput> | HandlerOutput; 43 + ) => Promise<HandlerOutput> | HandlerOutput
+12 -12
apps/api/src/lexicon/types/com/atproto/repo/strongRef.ts
··· 1 1 /** 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 - import { type ValidationResult, BlobRef } from "@atproto/lexicon"; 5 - import { lexicons } from "../../../../lexicons"; 6 - import { isObj, hasProp } from "../../../../util"; 7 - import { CID } from "multiformats/cid"; 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { lexicons } from '../../../../lexicons' 6 + import { isObj, hasProp } from '../../../../util' 7 + import { CID } from 'multiformats/cid' 8 8 9 9 export interface Main { 10 - uri: string; 11 - cid: string; 12 - [k: string]: unknown; 10 + uri: string 11 + cid: string 12 + [k: string]: unknown 13 13 } 14 14 15 15 export function isMain(v: unknown): v is Main { 16 16 return ( 17 17 isObj(v) && 18 - hasProp(v, "$type") && 19 - (v.$type === "com.atproto.repo.strongRef#main" || 20 - v.$type === "com.atproto.repo.strongRef") 21 - ); 18 + hasProp(v, '$type') && 19 + (v.$type === 'com.atproto.repo.strongRef#main' || 20 + v.$type === 'com.atproto.repo.strongRef') 21 + ) 22 22 } 23 23 24 24 export function validateMain(v: unknown): ValidationResult { 25 - return lexicons.validate("com.atproto.repo.strongRef#main", v); 25 + return lexicons.validate('com.atproto.repo.strongRef#main', v) 26 26 }
+2 -2
apps/api/src/lexicon/util.ts
··· 2 2 * GENERATED CODE - DO NOT MODIFY 3 3 */ 4 4 export function isObj(v: unknown): v is Record<string, unknown> { 5 - return typeof v === "object" && v !== null; 5 + return typeof v === 'object' && v !== null 6 6 } 7 7 8 8 export function hasProp<K extends PropertyKey>( 9 9 data: object, 10 10 prop: K, 11 11 ): data is Record<K, unknown> { 12 - return prop in data; 12 + return prop in data 13 13 }
+17 -17
apps/api/src/nowplaying/nowplaying.service.ts
··· 1 - import { Agent, BlobRef } from "@atproto/api"; 1 + import type { Agent, BlobRef } from "@atproto/api"; 2 2 import { TID } from "@atproto/common"; 3 3 import { equals } from "@xata.io/client"; 4 4 import chalk from "chalk"; 5 - import { Context } from "context"; 5 + import type { Context } from "context"; 6 6 import { createHash } from "crypto"; 7 7 import dayjs from "dayjs"; 8 8 import * as Album from "lexicon/types/app/rocksky/album"; ··· 10 10 import * as Scrobble from "lexicon/types/app/rocksky/scrobble"; 11 11 import * as Song from "lexicon/types/app/rocksky/song"; 12 12 import downloadImage, { getContentType } from "lib/downloadImage"; 13 - import { Track } from "types/track"; 13 + import type { Track } from "types/track"; 14 14 15 15 export async function putArtistRecord( 16 16 track: Track, ··· 64 64 agent: Agent, 65 65 ): Promise<string | null> { 66 66 const rkey = TID.nextStr(); 67 - let albumArt = undefined; 67 + let albumArt ; 68 68 69 69 if (track.albumArt) { 70 - let options = undefined; 70 + let options ; 71 71 if (track.albumArt.endsWith(".jpeg") || track.albumArt.endsWith(".jpg")) { 72 72 options = { encoding: "image/jpeg" }; 73 73 } ··· 124 124 agent: Agent, 125 125 ): Promise<string | null> { 126 126 const rkey = TID.nextStr(); 127 - let albumArt = undefined; 127 + let albumArt ; 128 128 129 129 if (track.albumArt) { 130 - let options = undefined; 130 + let options ; 131 131 if (track.albumArt.endsWith(".jpeg") || track.albumArt.endsWith(".jpg")) { 132 132 options = { encoding: "image/jpeg" }; 133 133 } ··· 153 153 : undefined, 154 154 year: track.year, 155 155 albumArt, 156 - composer: !!track.composer ? track.composer : undefined, 157 - lyrics: !!track.lyrics ? track.lyrics : undefined, 156 + composer: track.composer ? track.composer : undefined, 157 + lyrics: track.lyrics ? track.lyrics : undefined, 158 158 trackNumber: track.trackNumber, 159 159 discNumber: track.discNumber === 0 ? 1 : track.discNumber, 160 - copyrightMessage: !!track.copyrightMessage 160 + copyrightMessage: track.copyrightMessage 161 161 ? track.copyrightMessage 162 162 : undefined, 163 163 createdAt: new Date().toISOString(), 164 - spotifyLink: !!track.spotifyLink ? track.spotifyLink : undefined, 164 + spotifyLink: track.spotifyLink ? track.spotifyLink : undefined, 165 165 }; 166 166 167 167 if (!Song.validateRecord(record).success) { ··· 191 191 agent: Agent, 192 192 ): Promise<string | null> { 193 193 const rkey = TID.nextStr(); 194 - let albumArt = undefined; 194 + let albumArt ; 195 195 196 196 if (track.albumArt) { 197 - let options = undefined; 197 + let options ; 198 198 if (track.albumArt.endsWith(".jpeg") || track.albumArt.endsWith(".jpg")) { 199 199 options = { encoding: "image/jpeg" }; 200 200 } ··· 222 222 ? track.releaseDate.toISOString() 223 223 : undefined, 224 224 year: track.year, 225 - composer: !!track.composer ? track.composer : undefined, 226 - lyrics: !!track.lyrics ? track.lyrics : undefined, 227 - copyrightMessage: !!track.copyrightMessage 225 + composer: track.composer ? track.composer : undefined, 226 + lyrics: track.lyrics ? track.lyrics : undefined, 227 + copyrightMessage: track.copyrightMessage 228 228 ? track.copyrightMessage 229 229 : undefined, 230 230 // if track.timestamp is not null, set it to the timestamp 231 231 createdAt: track.timestamp 232 232 ? dayjs.unix(track.timestamp).toISOString() 233 233 : new Date().toISOString(), 234 - spotifyLink: !!track.spotifyLink ? track.spotifyLink : undefined, 234 + spotifyLink: track.spotifyLink ? track.spotifyLink : undefined, 235 235 }; 236 236 237 237 if (!Scrobble.validateRecord(record).success) {
+15 -15
apps/api/src/xrpc/app/rocksky/scrobble/createScrobble.ts
··· 1 - import { Agent, BlobRef } from "@atproto/api"; 1 + import type { Agent, BlobRef } from "@atproto/api"; 2 2 import { TID } from "@atproto/common"; 3 - import { HandlerAuth } from "@atproto/xrpc-server"; 3 + import type { HandlerAuth } from "@atproto/xrpc-server"; 4 4 import chalk from "chalk"; 5 - import { Context } from "context"; 5 + import type { Context } from "context"; 6 6 import dayjs from "dayjs"; 7 7 import { and, eq } from "drizzle-orm"; 8 8 import { Effect, Match, Option, pipe } from "effect"; 9 - import { Server } from "lexicon"; 9 + import type { Server } from "lexicon"; 10 10 import * as Album from "lexicon/types/app/rocksky/album"; 11 11 import * as Artist from "lexicon/types/app/rocksky/artist"; 12 12 import * as Scrobble from "lexicon/types/app/rocksky/scrobble"; 13 - import { InputSchema } from "lexicon/types/app/rocksky/scrobble/createScrobble"; 14 - import { ScrobbleViewBasic } from "lexicon/types/app/rocksky/scrobble/defs"; 13 + import type { InputSchema } from "lexicon/types/app/rocksky/scrobble/createScrobble"; 14 + import type { ScrobbleViewBasic } from "lexicon/types/app/rocksky/scrobble/defs"; 15 15 import * as Song from "lexicon/types/app/rocksky/song"; 16 16 import { deepSnakeCaseKeys } from "lib"; 17 17 import { createAgent } from "lib/agent"; 18 18 import downloadImage from "lib/downloadImage"; 19 19 import { createHash } from "node:crypto"; 20 20 import tables from "schema"; 21 - import { SelectAlbum } from "schema/albums"; 22 - import { SelectArtist } from "schema/artists"; 23 - import { SelectScrobble } from "schema/scrobbles"; 24 - import { SelectTrack } from "schema/tracks"; 25 - import { InsertUserAlbum } from "schema/user-albums"; 26 - import { InsertUserArtist } from "schema/user-artists"; 27 - import { InsertUserTrack } from "schema/user-tracks"; 28 - import { SelectUser } from "schema/users"; 29 - import { Track, trackSchema } from "types/track"; 21 + import type { SelectAlbum } from "schema/albums"; 22 + import type { SelectArtist } from "schema/artists"; 23 + import type { SelectScrobble } from "schema/scrobbles"; 24 + import type { SelectTrack } from "schema/tracks"; 25 + import type { InsertUserAlbum } from "schema/user-albums"; 26 + import type { InsertUserArtist } from "schema/user-artists"; 27 + import type { InsertUserTrack } from "schema/user-tracks"; 28 + import type { SelectUser } from "schema/users"; 29 + import { type Track, trackSchema } from "types/track"; 30 30 31 31 export default function (server: Server, ctx: Context) { 32 32 const createScrobble = (input, auth: HandlerAuth) =>
+11 -9
apps/api/src/xrpc/app/rocksky/scrobble/getScrobbles.ts
··· 1 - import { Context } from "context"; 1 + import type { Context } from "context"; 2 2 import { desc, eq } from "drizzle-orm"; 3 3 import { Effect, pipe } from "effect"; 4 - import { Server } from "lexicon"; 5 - import { ScrobbleViewBasic } from "lexicon/types/app/rocksky/scrobble/defs"; 6 - import { QueryParams } from "lexicon/types/app/rocksky/scrobble/getScrobbles"; 4 + import type { Server } from "lexicon"; 5 + import type { ScrobbleViewBasic } from "lexicon/types/app/rocksky/scrobble/defs"; 6 + import type { QueryParams } from "lexicon/types/app/rocksky/scrobble/getScrobbles"; 7 7 import * as R from "ramda"; 8 8 import tables from "schema"; 9 - import { SelectScrobble } from "schema/scrobbles"; 10 - import { SelectTrack } from "schema/tracks"; 11 - import { SelectUser } from "schema/users"; 9 + import type { SelectScrobble } from "schema/scrobbles"; 10 + import type { SelectTrack } from "schema/tracks"; 11 + import type { SelectUser } from "schema/users"; 12 12 13 13 export default function (server: Server, ctx: Context) { 14 14 const getScrobbles = (params) => ··· 21 21 Effect.catchAll((err) => { 22 22 console.error("Error retrieving scrobbles:", err); 23 23 return Effect.succeed({ scrobbles: [] }); 24 - }), 24 + }) 25 25 ); 26 26 server.app.rocksky.scrobble.getScrobbles({ 27 27 handler: async ({ params }) => { ··· 58 58 }; 59 59 60 60 const presentation = ( 61 - data: Scrobbles, 61 + data: Scrobbles 62 62 ): Effect.Effect<{ scrobbles: ScrobbleViewBasic[] }, never> => { 63 63 return Effect.sync(() => ({ 64 64 scrobbles: data.map(({ scrobbles, tracks, users }) => ({ ··· 66 66 cover: tracks.albumArt, 67 67 date: scrobbles.timestamp.toISOString(), 68 68 user: users.handle, 69 + userDisplayName: users.displayName, 70 + userAvatar: users.avatar, 69 71 uri: scrobbles.uri, 70 72 tags: [], 71 73 id: scrobbles.id,
+6 -6
apps/api/src/xrpc/app/rocksky/shout/getShoutReplies.ts
··· 1 - import { Context } from "context"; 1 + import type { Context } from "context"; 2 2 import { asc, eq } from "drizzle-orm"; 3 3 import { Effect, pipe } from "effect"; 4 - import { Server } from "lexicon"; 5 - import { ShoutView } from "lexicon/types/app/rocksky/shout/defs"; 6 - import { QueryParams } from "lexicon/types/app/rocksky/shout/getShoutReplies"; 4 + import type { Server } from "lexicon"; 5 + import type { ShoutView } from "lexicon/types/app/rocksky/shout/defs"; 6 + import type { QueryParams } from "lexicon/types/app/rocksky/shout/getShoutReplies"; 7 7 import tables from "schema"; 8 - import { SelectShout } from "schema/shouts"; 9 - import { SelectUser } from "schema/users"; 8 + import type { SelectShout } from "schema/shouts"; 9 + import type { SelectUser } from "schema/users"; 10 10 11 11 export default function (server: Server, ctx: Context) { 12 12 const getShoutReplies = (params) =>
+4 -4
apps/api/src/xrpc/app/rocksky/shout/getTrackShouts.ts
··· 1 - import { Context } from "context"; 1 + import type { Context } from "context"; 2 2 import { count, desc, eq, sql } from "drizzle-orm"; 3 3 import { Effect, pipe } from "effect"; 4 - import { Server } from "lexicon"; 5 - import { ShoutView } from "lexicon/types/app/rocksky/shout/defs"; 6 - import { QueryParams } from "lexicon/types/app/rocksky/shout/getTrackShouts"; 4 + import type { Server } from "lexicon"; 5 + import type { ShoutView } from "lexicon/types/app/rocksky/shout/defs"; 6 + import type { QueryParams } from "lexicon/types/app/rocksky/shout/getTrackShouts"; 7 7 import tables from "schema"; 8 8 9 9 export default function (server: Server, ctx: Context) {
+5 -5
apps/api/src/xrpc/app/rocksky/shout/removeShout.ts
··· 1 - import { Agent } from "@atproto/api"; 2 - import { HandlerAuth } from "@atproto/xrpc-server"; 3 - import { Context } from "context"; 1 + import type { Agent } from "@atproto/api"; 2 + import type { HandlerAuth } from "@atproto/xrpc-server"; 3 + import type { Context } from "context"; 4 4 import { Effect, pipe } from "effect"; 5 - import { Server } from "lexicon"; 6 - import { QueryParams } from "lexicon/types/app/rocksky/shout/removeShout"; 5 + import type { Server } from "lexicon"; 6 + import type { QueryParams } from "lexicon/types/app/rocksky/shout/removeShout"; 7 7 import { createAgent } from "lib/agent"; 8 8 9 9 export default function (server: Server, ctx: Context) {
+5 -5
apps/api/src/xrpc/app/rocksky/shout/replyShout.ts
··· 1 - import { Agent } from "@atproto/api"; 2 - import { HandlerAuth } from "@atproto/xrpc-server"; 3 - import { Context } from "context"; 1 + import type { Agent } from "@atproto/api"; 2 + import type { HandlerAuth } from "@atproto/xrpc-server"; 3 + import type { Context } from "context"; 4 4 import { Effect, pipe } from "effect"; 5 - import { Server } from "lexicon"; 6 - import { QueryParams } from "lexicon/types/app/rocksky/shout/replyShout"; 5 + import type { Server } from "lexicon"; 6 + import type { QueryParams } from "lexicon/types/app/rocksky/shout/replyShout"; 7 7 import { createAgent } from "lib/agent"; 8 8 9 9 export default function (server: Server, ctx: Context) {
+14 -14
apps/api/src/xrpc/app/rocksky/song/createSong.ts
··· 1 - import { Agent, BlobRef } from "@atproto/api"; 1 + import type { Agent, BlobRef } from "@atproto/api"; 2 2 import { TID } from "@atproto/common"; 3 - import { HandlerAuth } from "@atproto/xrpc-server"; 3 + import type { HandlerAuth } from "@atproto/xrpc-server"; 4 4 import chalk from "chalk"; 5 - import { Context } from "context"; 5 + import type { Context } from "context"; 6 6 import { and, eq } from "drizzle-orm"; 7 7 import { Effect, Match, Option, pipe } from "effect"; 8 - import { NoSuchElementException, UnknownException } from "effect/Cause"; 9 - import { Server } from "lexicon"; 8 + import type { NoSuchElementException, UnknownException } from "effect/Cause"; 9 + import type { Server } from "lexicon"; 10 10 import * as Album from "lexicon/types/app/rocksky/album"; 11 11 import * as Artist from "lexicon/types/app/rocksky/artist"; 12 12 import * as Song from "lexicon/types/app/rocksky/song"; 13 - import { InputSchema } from "lexicon/types/app/rocksky/song/createSong"; 14 - import { SongViewDetailed } from "lexicon/types/app/rocksky/song/defs"; 13 + import type { InputSchema } from "lexicon/types/app/rocksky/song/createSong"; 14 + import type { SongViewDetailed } from "lexicon/types/app/rocksky/song/defs"; 15 15 import { deepSnakeCaseKeys } from "lib"; 16 16 import { createAgent } from "lib/agent"; 17 17 import downloadImage from "lib/downloadImage"; 18 18 import { createHash } from "node:crypto"; 19 19 import tables from "schema"; 20 - import { InsertAlbumTrack, SelectAlbumTrack } from "schema/album-tracks"; 21 - import { SelectAlbum } from "schema/albums"; 22 - import { InsertArtistAlbum, SelectArtistAlbum } from "schema/artist-albums"; 23 - import { InsertArtistTrack, SelectArtistTrack } from "schema/artist-tracks"; 24 - import { SelectArtist } from "schema/artists"; 25 - import { SelectTrack } from "schema/tracks"; 26 - import { Track, trackSchema } from "types/track"; 20 + import type { InsertAlbumTrack, SelectAlbumTrack } from "schema/album-tracks"; 21 + import type { SelectAlbum } from "schema/albums"; 22 + import type { InsertArtistAlbum, SelectArtistAlbum } from "schema/artist-albums"; 23 + import type { InsertArtistTrack, SelectArtistTrack } from "schema/artist-tracks"; 24 + import type { SelectArtist } from "schema/artists"; 25 + import type { SelectTrack } from "schema/tracks"; 26 + import { type Track, trackSchema } from "types/track"; 27 27 28 28 export default function (server: Server, ctx: Context) { 29 29 const createSong = (input: InputSchema, auth: HandlerAuth) =>
+1 -1
apps/web/src/pages/home/feed/Feed.tsx
··· 1 1 import styled from "@emotion/styled"; 2 2 import { Link } from "@tanstack/react-router"; 3 - import { BlockProps } from "baseui/block"; 3 + import type { BlockProps } from "baseui/block"; 4 4 import { FlexGrid, FlexGridItem } from "baseui/flex-grid"; 5 5 import { StatefulTooltip } from "baseui/tooltip"; 6 6 import { HeadingMedium, LabelMedium } from "baseui/typography";