@borealise/api 2.1.0-alpha.5 → 2.1.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -246,6 +246,7 @@ interface UserResource {
246
246
  declare const createUserResource: (api: Api) => UserResource;
247
247
 
248
248
  type RoomRole = 'user' | 'resident_dj' | 'bouncer' | 'manager' | 'cohost' | 'host';
249
+ type RoomMode = 'standard' | 'dj_live';
249
250
  interface Room {
250
251
  id: number;
251
252
  slug: string;
@@ -258,6 +259,7 @@ interface Room {
258
259
  isNsfw: boolean;
259
260
  waitlistLocked: boolean;
260
261
  waitlistCycleEnabled: boolean;
262
+ mode: RoomMode;
261
263
  population: number;
262
264
  totalPlays: number;
263
265
  isFeatured: boolean;
@@ -270,7 +272,7 @@ interface Room {
270
272
  } | null;
271
273
  currentMedia?: {
272
274
  id: number;
273
- source: 'youtube' | 'soundcloud';
275
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
274
276
  sourceId: string;
275
277
  title: string;
276
278
  artist: string | null;
@@ -302,6 +304,7 @@ interface CreateRoomData {
302
304
  welcomeMessage?: string;
303
305
  isPrivate?: boolean;
304
306
  isNsfw?: boolean;
307
+ mode?: RoomMode;
305
308
  }
306
309
  interface UpdateRoomData {
307
310
  name?: string;
@@ -312,6 +315,7 @@ interface UpdateRoomData {
312
315
  isNsfw?: boolean;
313
316
  waitlistLocked?: boolean;
314
317
  waitlistCycleEnabled?: boolean;
318
+ mode?: RoomMode;
315
319
  }
316
320
  interface RoomResponse {
317
321
  success: boolean;
@@ -418,7 +422,7 @@ interface BoothDJ {
418
422
  }
419
423
  interface BoothMedia {
420
424
  id: number;
421
- source: 'youtube' | 'soundcloud';
425
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
422
426
  sourceId: string;
423
427
  title: string;
424
428
  artist: string | null;
@@ -446,6 +450,35 @@ interface JoinMuteInfo {
446
450
  remainingSeconds: number | null;
447
451
  reason: string | null;
448
452
  }
453
+ interface RoomLiveStreamStatus {
454
+ status: 'offline' | 'starting' | 'live' | 'error';
455
+ hlsUrl?: string;
456
+ startedAt?: number | null;
457
+ updatedAt?: number;
458
+ reason?: string;
459
+ role?: 'host' | 'cohost';
460
+ }
461
+ interface RoomLiveStatusResponse {
462
+ success: boolean;
463
+ data: {
464
+ roomSlug: string;
465
+ mode: RoomMode;
466
+ canBroadcast: boolean;
467
+ stream: RoomLiveStreamStatus;
468
+ };
469
+ }
470
+ interface RoomLiveStartResponse {
471
+ success: boolean;
472
+ data: {
473
+ roomSlug: string;
474
+ status: 'starting' | 'live';
475
+ ingestUrl: string;
476
+ streamName: string;
477
+ hlsUrl: string;
478
+ streamKey: string;
479
+ role: 'host' | 'cohost';
480
+ };
481
+ }
449
482
  interface JoinRoomResponse {
450
483
  success: boolean;
451
484
  data: {
@@ -455,6 +488,7 @@ interface JoinRoomResponse {
455
488
  name: string;
456
489
  waitlistLocked: boolean;
457
490
  waitlistCycleEnabled: boolean;
491
+ mode: RoomMode;
458
492
  };
459
493
  role: RoomRole;
460
494
  users: RoomUserState[];
@@ -521,7 +555,7 @@ interface PlayHistoryItem {
521
555
  avatarId: string;
522
556
  media: {
523
557
  id: number;
524
- source: 'youtube' | 'soundcloud';
558
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
525
559
  sourceId: string;
526
560
  title: string;
527
561
  artist: string | null;
@@ -579,7 +613,7 @@ interface DashboardActivityItem {
579
613
  };
580
614
  media: {
581
615
  id: number;
582
- source: 'youtube' | 'soundcloud';
616
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
583
617
  sourceId: string;
584
618
  title: string;
585
619
  artist: string | null;
@@ -680,6 +714,15 @@ interface RoomResource {
680
714
  }>>;
681
715
  vote(slug: string, type: 'woot' | 'meh'): Promise<ApiResponse<VoteResponse>>;
682
716
  grabTrack(slug: string, playlistId?: number): Promise<ApiResponse<GrabResponse>>;
717
+ startLive(slug: string): Promise<ApiResponse<RoomLiveStartResponse>>;
718
+ stopLive(slug: string): Promise<ApiResponse<{
719
+ success: boolean;
720
+ data: {
721
+ roomSlug: string;
722
+ status: 'offline' | 'error' | 'starting' | 'live';
723
+ };
724
+ }>>;
725
+ getLiveStatus(slug: string): Promise<ApiResponse<RoomLiveStatusResponse>>;
683
726
  getAssets(slug: string): Promise<ApiResponse<RoomAssetsResponse>>;
684
727
  createEmoji(slug: string, data: {
685
728
  name?: string;
@@ -1199,4 +1242,4 @@ interface ApiClient {
1199
1242
  }
1200
1243
  declare const createApiClient: (config: ApiConfig) => ApiClient;
1201
1244
 
1202
- export { type AccountViolation, type AddMediaData, type AddViolationResponse, type AdminListUsersParams, type AdminResource, type AdminStatsResponse, type AdminStatsRoom, type AdminUserEntry, type AdminUsersResponse, type Api, type ApiClient, type ApiConfig, ApiError, type ApiQueryParams, type ApiRequestConfig, type ApiResponse, type AuditAction, type AuthResource, type AuthUser, type AvatarCatalogItem, type AvatarCatalogResponse, type AvatarUnlockType, type BackendErrorResponse, type BanResponse, type BoothDJ, type BoothMedia, type BoothResponse, type BoothState, type ChatMessage, type ChatMessageResponse, type ChatMessagesResponse, type ChatResource, type CreateIntentResponse, type CreateRoomData, type DashboardActivityItem, type DashboardActivityResponse, type DashboardActivityType, type EquipAvatarData, type FeaturedRoomsResponse, type FriendActionResponse, type FriendEntry, type FriendList, type FriendListResponse, type FriendResource, type FriendStatusResponse, type FriendshipStatus, type GifSearchItem, type GifSearchResponse, type GlobalRole, type GrabResponse, type ImportPlaylistData, type ImportPlaylistResponse, type ImportResult, type JoinMuteInfo, type JoinRoomResponse, Logger, type MediaItem, type MediaItemResponse, type MediaSearchResult, type MediaSource, type ModerateUserData, type MuteResponse, type MyViolation, type MyViolationsResponse, type PaginationMeta, type PlayHistoryItem, type Playlist, type PlaylistResource, type PlaylistResponse, type PlaylistsResponse, type PortalResponse, type PublicProfileFriend, type PublicUser, type Room, type RoomAssetsResponse, type RoomAuditLog, type RoomBan, type RoomBansResponse, type RoomCustomEmoji, type RoomCustomSticker, type RoomHistoryResponse, type RoomMember, type RoomMute, type RoomMutesResponse, type RoomResource, type RoomResponse, type RoomRole, type RoomStaffResponse, type RoomUserState, type RoomsResponse, type SendMessageData, type ShopResource, type ShuffleResponse, type SoundCloudSearchResponse, type SoundCloudTrackResponse, type SourceResource, type SubscriptionPlan, type SubscriptionResource, type SubscriptionStatus, type UpdateProfileData, type UpdateRoomData, type User, type UserResource, type UserResponse, type UserViolationsResponse, type VoteResponse, type WaitlistResponse, type WaitlistUser, type YouTubeSearchResponse, type YouTubeVideoResponse, createAdminResource, createApi, createApiClient, createAuthResource, createChatResource, createFriendResource, createPlaylistResource, createRoomResource, createShopResource, createSourceResource, createSubscriptionResource, createUserResource };
1245
+ export { type AccountViolation, type AddMediaData, type AddViolationResponse, type AdminListUsersParams, type AdminResource, type AdminStatsResponse, type AdminStatsRoom, type AdminUserEntry, type AdminUsersResponse, type Api, type ApiClient, type ApiConfig, ApiError, type ApiQueryParams, type ApiRequestConfig, type ApiResponse, type AuditAction, type AuthResource, type AuthUser, type AvatarCatalogItem, type AvatarCatalogResponse, type AvatarUnlockType, type BackendErrorResponse, type BanResponse, type BoothDJ, type BoothMedia, type BoothResponse, type BoothState, type ChatMessage, type ChatMessageResponse, type ChatMessagesResponse, type ChatResource, type CreateIntentResponse, type CreateRoomData, type DashboardActivityItem, type DashboardActivityResponse, type DashboardActivityType, type EquipAvatarData, type FeaturedRoomsResponse, type FriendActionResponse, type FriendEntry, type FriendList, type FriendListResponse, type FriendResource, type FriendStatusResponse, type FriendshipStatus, type GifSearchItem, type GifSearchResponse, type GlobalRole, type GrabResponse, type ImportPlaylistData, type ImportPlaylistResponse, type ImportResult, type JoinMuteInfo, type JoinRoomResponse, Logger, type MediaItem, type MediaItemResponse, type MediaSearchResult, type MediaSource, type ModerateUserData, type MuteResponse, type MyViolation, type MyViolationsResponse, type PaginationMeta, type PlayHistoryItem, type Playlist, type PlaylistResource, type PlaylistResponse, type PlaylistsResponse, type PortalResponse, type PublicProfileFriend, type PublicUser, type Room, type RoomAssetsResponse, type RoomAuditLog, type RoomBan, type RoomBansResponse, type RoomCustomEmoji, type RoomCustomSticker, type RoomHistoryResponse, type RoomLiveStartResponse, type RoomLiveStatusResponse, type RoomLiveStreamStatus, type RoomMember, type RoomMode, type RoomMute, type RoomMutesResponse, type RoomResource, type RoomResponse, type RoomRole, type RoomStaffResponse, type RoomUserState, type RoomsResponse, type SendMessageData, type ShopResource, type ShuffleResponse, type SoundCloudSearchResponse, type SoundCloudTrackResponse, type SourceResource, type SubscriptionPlan, type SubscriptionResource, type SubscriptionStatus, type UpdateProfileData, type UpdateRoomData, type User, type UserResource, type UserResponse, type UserViolationsResponse, type VoteResponse, type WaitlistResponse, type WaitlistUser, type YouTubeSearchResponse, type YouTubeVideoResponse, createAdminResource, createApi, createApiClient, createAuthResource, createChatResource, createFriendResource, createPlaylistResource, createRoomResource, createShopResource, createSourceResource, createSubscriptionResource, createUserResource };
package/dist/index.d.ts CHANGED
@@ -246,6 +246,7 @@ interface UserResource {
246
246
  declare const createUserResource: (api: Api) => UserResource;
247
247
 
248
248
  type RoomRole = 'user' | 'resident_dj' | 'bouncer' | 'manager' | 'cohost' | 'host';
249
+ type RoomMode = 'standard' | 'dj_live';
249
250
  interface Room {
250
251
  id: number;
251
252
  slug: string;
@@ -258,6 +259,7 @@ interface Room {
258
259
  isNsfw: boolean;
259
260
  waitlistLocked: boolean;
260
261
  waitlistCycleEnabled: boolean;
262
+ mode: RoomMode;
261
263
  population: number;
262
264
  totalPlays: number;
263
265
  isFeatured: boolean;
@@ -270,7 +272,7 @@ interface Room {
270
272
  } | null;
271
273
  currentMedia?: {
272
274
  id: number;
273
- source: 'youtube' | 'soundcloud';
275
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
274
276
  sourceId: string;
275
277
  title: string;
276
278
  artist: string | null;
@@ -302,6 +304,7 @@ interface CreateRoomData {
302
304
  welcomeMessage?: string;
303
305
  isPrivate?: boolean;
304
306
  isNsfw?: boolean;
307
+ mode?: RoomMode;
305
308
  }
306
309
  interface UpdateRoomData {
307
310
  name?: string;
@@ -312,6 +315,7 @@ interface UpdateRoomData {
312
315
  isNsfw?: boolean;
313
316
  waitlistLocked?: boolean;
314
317
  waitlistCycleEnabled?: boolean;
318
+ mode?: RoomMode;
315
319
  }
316
320
  interface RoomResponse {
317
321
  success: boolean;
@@ -418,7 +422,7 @@ interface BoothDJ {
418
422
  }
419
423
  interface BoothMedia {
420
424
  id: number;
421
- source: 'youtube' | 'soundcloud';
425
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
422
426
  sourceId: string;
423
427
  title: string;
424
428
  artist: string | null;
@@ -446,6 +450,35 @@ interface JoinMuteInfo {
446
450
  remainingSeconds: number | null;
447
451
  reason: string | null;
448
452
  }
453
+ interface RoomLiveStreamStatus {
454
+ status: 'offline' | 'starting' | 'live' | 'error';
455
+ hlsUrl?: string;
456
+ startedAt?: number | null;
457
+ updatedAt?: number;
458
+ reason?: string;
459
+ role?: 'host' | 'cohost';
460
+ }
461
+ interface RoomLiveStatusResponse {
462
+ success: boolean;
463
+ data: {
464
+ roomSlug: string;
465
+ mode: RoomMode;
466
+ canBroadcast: boolean;
467
+ stream: RoomLiveStreamStatus;
468
+ };
469
+ }
470
+ interface RoomLiveStartResponse {
471
+ success: boolean;
472
+ data: {
473
+ roomSlug: string;
474
+ status: 'starting' | 'live';
475
+ ingestUrl: string;
476
+ streamName: string;
477
+ hlsUrl: string;
478
+ streamKey: string;
479
+ role: 'host' | 'cohost';
480
+ };
481
+ }
449
482
  interface JoinRoomResponse {
450
483
  success: boolean;
451
484
  data: {
@@ -455,6 +488,7 @@ interface JoinRoomResponse {
455
488
  name: string;
456
489
  waitlistLocked: boolean;
457
490
  waitlistCycleEnabled: boolean;
491
+ mode: RoomMode;
458
492
  };
459
493
  role: RoomRole;
460
494
  users: RoomUserState[];
@@ -521,7 +555,7 @@ interface PlayHistoryItem {
521
555
  avatarId: string;
522
556
  media: {
523
557
  id: number;
524
- source: 'youtube' | 'soundcloud';
558
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
525
559
  sourceId: string;
526
560
  title: string;
527
561
  artist: string | null;
@@ -579,7 +613,7 @@ interface DashboardActivityItem {
579
613
  };
580
614
  media: {
581
615
  id: number;
582
- source: 'youtube' | 'soundcloud';
616
+ source: 'youtube' | 'soundcloud' | 'hls' | 'mp4';
583
617
  sourceId: string;
584
618
  title: string;
585
619
  artist: string | null;
@@ -680,6 +714,15 @@ interface RoomResource {
680
714
  }>>;
681
715
  vote(slug: string, type: 'woot' | 'meh'): Promise<ApiResponse<VoteResponse>>;
682
716
  grabTrack(slug: string, playlistId?: number): Promise<ApiResponse<GrabResponse>>;
717
+ startLive(slug: string): Promise<ApiResponse<RoomLiveStartResponse>>;
718
+ stopLive(slug: string): Promise<ApiResponse<{
719
+ success: boolean;
720
+ data: {
721
+ roomSlug: string;
722
+ status: 'offline' | 'error' | 'starting' | 'live';
723
+ };
724
+ }>>;
725
+ getLiveStatus(slug: string): Promise<ApiResponse<RoomLiveStatusResponse>>;
683
726
  getAssets(slug: string): Promise<ApiResponse<RoomAssetsResponse>>;
684
727
  createEmoji(slug: string, data: {
685
728
  name?: string;
@@ -1199,4 +1242,4 @@ interface ApiClient {
1199
1242
  }
1200
1243
  declare const createApiClient: (config: ApiConfig) => ApiClient;
1201
1244
 
1202
- export { type AccountViolation, type AddMediaData, type AddViolationResponse, type AdminListUsersParams, type AdminResource, type AdminStatsResponse, type AdminStatsRoom, type AdminUserEntry, type AdminUsersResponse, type Api, type ApiClient, type ApiConfig, ApiError, type ApiQueryParams, type ApiRequestConfig, type ApiResponse, type AuditAction, type AuthResource, type AuthUser, type AvatarCatalogItem, type AvatarCatalogResponse, type AvatarUnlockType, type BackendErrorResponse, type BanResponse, type BoothDJ, type BoothMedia, type BoothResponse, type BoothState, type ChatMessage, type ChatMessageResponse, type ChatMessagesResponse, type ChatResource, type CreateIntentResponse, type CreateRoomData, type DashboardActivityItem, type DashboardActivityResponse, type DashboardActivityType, type EquipAvatarData, type FeaturedRoomsResponse, type FriendActionResponse, type FriendEntry, type FriendList, type FriendListResponse, type FriendResource, type FriendStatusResponse, type FriendshipStatus, type GifSearchItem, type GifSearchResponse, type GlobalRole, type GrabResponse, type ImportPlaylistData, type ImportPlaylistResponse, type ImportResult, type JoinMuteInfo, type JoinRoomResponse, Logger, type MediaItem, type MediaItemResponse, type MediaSearchResult, type MediaSource, type ModerateUserData, type MuteResponse, type MyViolation, type MyViolationsResponse, type PaginationMeta, type PlayHistoryItem, type Playlist, type PlaylistResource, type PlaylistResponse, type PlaylistsResponse, type PortalResponse, type PublicProfileFriend, type PublicUser, type Room, type RoomAssetsResponse, type RoomAuditLog, type RoomBan, type RoomBansResponse, type RoomCustomEmoji, type RoomCustomSticker, type RoomHistoryResponse, type RoomMember, type RoomMute, type RoomMutesResponse, type RoomResource, type RoomResponse, type RoomRole, type RoomStaffResponse, type RoomUserState, type RoomsResponse, type SendMessageData, type ShopResource, type ShuffleResponse, type SoundCloudSearchResponse, type SoundCloudTrackResponse, type SourceResource, type SubscriptionPlan, type SubscriptionResource, type SubscriptionStatus, type UpdateProfileData, type UpdateRoomData, type User, type UserResource, type UserResponse, type UserViolationsResponse, type VoteResponse, type WaitlistResponse, type WaitlistUser, type YouTubeSearchResponse, type YouTubeVideoResponse, createAdminResource, createApi, createApiClient, createAuthResource, createChatResource, createFriendResource, createPlaylistResource, createRoomResource, createShopResource, createSourceResource, createSubscriptionResource, createUserResource };
1245
+ export { type AccountViolation, type AddMediaData, type AddViolationResponse, type AdminListUsersParams, type AdminResource, type AdminStatsResponse, type AdminStatsRoom, type AdminUserEntry, type AdminUsersResponse, type Api, type ApiClient, type ApiConfig, ApiError, type ApiQueryParams, type ApiRequestConfig, type ApiResponse, type AuditAction, type AuthResource, type AuthUser, type AvatarCatalogItem, type AvatarCatalogResponse, type AvatarUnlockType, type BackendErrorResponse, type BanResponse, type BoothDJ, type BoothMedia, type BoothResponse, type BoothState, type ChatMessage, type ChatMessageResponse, type ChatMessagesResponse, type ChatResource, type CreateIntentResponse, type CreateRoomData, type DashboardActivityItem, type DashboardActivityResponse, type DashboardActivityType, type EquipAvatarData, type FeaturedRoomsResponse, type FriendActionResponse, type FriendEntry, type FriendList, type FriendListResponse, type FriendResource, type FriendStatusResponse, type FriendshipStatus, type GifSearchItem, type GifSearchResponse, type GlobalRole, type GrabResponse, type ImportPlaylistData, type ImportPlaylistResponse, type ImportResult, type JoinMuteInfo, type JoinRoomResponse, Logger, type MediaItem, type MediaItemResponse, type MediaSearchResult, type MediaSource, type ModerateUserData, type MuteResponse, type MyViolation, type MyViolationsResponse, type PaginationMeta, type PlayHistoryItem, type Playlist, type PlaylistResource, type PlaylistResponse, type PlaylistsResponse, type PortalResponse, type PublicProfileFriend, type PublicUser, type Room, type RoomAssetsResponse, type RoomAuditLog, type RoomBan, type RoomBansResponse, type RoomCustomEmoji, type RoomCustomSticker, type RoomHistoryResponse, type RoomLiveStartResponse, type RoomLiveStatusResponse, type RoomLiveStreamStatus, type RoomMember, type RoomMode, type RoomMute, type RoomMutesResponse, type RoomResource, type RoomResponse, type RoomRole, type RoomStaffResponse, type RoomUserState, type RoomsResponse, type SendMessageData, type ShopResource, type ShuffleResponse, type SoundCloudSearchResponse, type SoundCloudTrackResponse, type SourceResource, type SubscriptionPlan, type SubscriptionResource, type SubscriptionStatus, type UpdateProfileData, type UpdateRoomData, type User, type UserResource, type UserResponse, type UserViolationsResponse, type VoteResponse, type WaitlistResponse, type WaitlistUser, type YouTubeSearchResponse, type YouTubeVideoResponse, createAdminResource, createApi, createApiClient, createAuthResource, createChatResource, createFriendResource, createPlaylistResource, createRoomResource, createShopResource, createSourceResource, createSubscriptionResource, createUserResource };
package/dist/index.js CHANGED
@@ -330,6 +330,9 @@ var createRoomResource = (api) => ({
330
330
  ),
331
331
  vote: (slug, type) => api.post(`${endpoint3}/${slug}/booth/vote`, { type }),
332
332
  grabTrack: (slug, playlistId) => api.post(`${endpoint3}/${slug}/booth/grab`, playlistId ? { playlistId } : {}),
333
+ startLive: (slug) => api.post(`${endpoint3}/${slug}/live/start`),
334
+ stopLive: (slug) => api.post(`${endpoint3}/${slug}/live/stop`),
335
+ getLiveStatus: (slug) => api.get(`${endpoint3}/${slug}/live/status`),
333
336
  getAssets: (slug) => api.get(`${endpoint3}/${slug}/assets`),
334
337
  createEmoji: (slug, data) => {
335
338
  const FormDataCtor = globalThis.FormData;
package/dist/index.mjs CHANGED
@@ -281,6 +281,9 @@ var createRoomResource = (api) => ({
281
281
  ),
282
282
  vote: (slug, type) => api.post(`${endpoint3}/${slug}/booth/vote`, { type }),
283
283
  grabTrack: (slug, playlistId) => api.post(`${endpoint3}/${slug}/booth/grab`, playlistId ? { playlistId } : {}),
284
+ startLive: (slug) => api.post(`${endpoint3}/${slug}/live/start`),
285
+ stopLive: (slug) => api.post(`${endpoint3}/${slug}/live/stop`),
286
+ getLiveStatus: (slug) => api.get(`${endpoint3}/${slug}/live/status`),
284
287
  getAssets: (slug) => api.get(`${endpoint3}/${slug}/assets`),
285
288
  createEmoji: (slug, data) => {
286
289
  const FormDataCtor = globalThis.FormData;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@borealise/api",
3
- "version": "2.1.0-alpha.5",
3
+ "version": "2.1.0-alpha.6",
4
4
  "description": "Official API client for Borealise",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",