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

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";