@wavezfm/api 0.7.23 → 0.7.25

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/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ### October 10 contract synchronization
6
+
7
+ - Added typed `billingCheckoutPolicy`, eight supported fiat currencies and donation currency maps, checkout payment modes, returned payment mode/amount/currency, and `subscriptionPaymentMode` plus announcement options to subscription checkout. Prepaid Stripe Pix remains BRL-only and does not renew automatically.
8
+ - Added admin-session `adminMedia` listing, multipart upload and folder/asset management helpers and types. Moving or renaming an image changes its direct URL; folder rename/delete requires an empty folder.
9
+ - Added session-authenticated bot appearance/access and deletion helpers, bot list `canEdit`/`canDelete`, and the `delete_protected_messages` permission to types and creation validation.
10
+ - Typed effective private-command sender role, assigned room badge and platform role without changing raw event delivery. Documented platform staff hierarchy, protected bot targets, inline private replies and target-aware ephemeral visibility with local dismissal.
11
+ - Typed per-room `guestAccessEnabled` in details, settings updates and snapshots, and included the existing `vip` role in `RoomRoleName`.
12
+ - Existing helper names and string currency inputs remain compatible. No automatic retries, provider selection, payment conversion or bot authorization are performed by the SDK.
13
+
5
14
  ### Room action events (October 5)
6
15
 
7
16
  - Added typed `track_skipped` and `queue_reordered` actors while retaining legacy `actorUserId`. Documented consistent canonical human usernames, bot names, matching authorizing-account moderator fields, and no-op role assignments.
@@ -51,7 +60,7 @@
51
60
  - Typed room-bot chat embeds for HTTP and realtime messages, with `RoomBotChatEmbed` and `RoomBotRealtimeSendMessageInput` exported from the package root. Realtime `sendChat()` now forwards the card; staff-channel bot replies remain HTTP-only.
52
61
  - Added bot-authenticated `client.roomBot.uploadImage()` for multipart chat image uploads, including optional dimensions and a typed upload response. Room-bot message history now returns typed `ChatMessage[]` with embeds.
53
62
  - Private user-to-bot commands via the `bot_private_command` realtime event, with the exported `BotPrivateCommand` payload type and `onPrivateCommand()` subscription helper.
54
- - `replyToPrivateCommand(command, content)` sends a private bot response back to the original user's `/bot` dialog, with long replies supported in multiple chunks.
63
+ - `replyToPrivateCommand(command, content)` sends a correlated private reply to the original user: dialog commands display it in the dialog; inline commands display it in local chat. Long replies support multiple chunks.
55
64
  - Documentation and examples for multiline prompts, server-provided sender identity, authorization, deduplication, and dialog replies. The command limit defaults to 8,000 characters and requires the updated server and web deployment. Existing SDK consumers can subscribe through the generic `on()` method.
56
65
 
57
66
  - Bot-authenticated `client.roomBot.renameSelf(roomId, botName)` for owner-enabled personalities. Added `allowSelfRename` to owner settings; self-renaming has a five-minute cooldown and cannot change permissions or prefix.
package/README.md CHANGED
@@ -54,7 +54,7 @@ if (bots.data[0]) {
54
54
  }
55
55
  ```
56
56
 
57
- These methods manage only the caller's active bots and require room bot creation access. Updates preserve the token and expiration; subsequent bot API requests use the saved settings. Existing messages are unchanged. Legacy discovery requires the creation audit record. The server must have migration `0127_room_bot_settings.sql` applied. See [editing bots](https://docs.wavez.fm/docs/room-bots/edit-bot).
57
+ The server returns each bot's `canEdit` and `canDelete`; visibility does not imply editing or deletion access. Owners can list room bots, and creators can still list their own when new bot creation is disabled. Platform admins may edit every active bot in the room; other users edit their own bots with current creation/management eligibility. Deletion is limited to the bot creator or room owner, including for administrators. `client.room.deleteBot(roomId, tokenId)` revokes the token and disconnects the bot. Updates preserve the token and expiration; subsequent bot API requests use the saved settings. Existing messages are unchanged. Legacy discovery requires the creation audit record. The server must have migration `0127_room_bot_settings.sql` applied. See [editing bots](https://docs.wavez.fm/docs/room-bots/edit-bot).
58
58
 
59
59
  ```ts
60
60
  import { createApiClient } from '@wavezfm/api';
@@ -78,6 +78,40 @@ the current `chatMaxLength` (255 by default) as a fallback; the web chat display
78
78
  the card instead. The same card can be sent through realtime `sendChat()`, but
79
79
  staff-channel replies must use HTTP `client.roomBot.sendMessage()`.
80
80
 
81
+ `ephemeral: true` means live-only, not necessarily private. Without targets it is
82
+ sent to the room; `targetUserId` or `targetUserIds` restricts it to connected
83
+ recipients. The website shows a tinted message, its actual visibility and a
84
+ **Dismiss** action that only removes that local copy.
85
+
86
+ Human users in bot HTTP/realtime snapshots expose effective authorization roles
87
+ in `role`/`roomRole`: Admin and Developer have at least Host access; Ambassador
88
+ has at least Manager access. `assignedRoomRole` preserves the room badge. These
89
+ floors do not grant room ownership. Bots cannot change Admin, Developer or
90
+ Ambassador room roles, queue access or unban them, including with an admin-owned
91
+ token. Authorize each command from its server-supplied sender; a privileged token
92
+ owner does not prove who invoked an external bot command.
93
+
94
+ Bot appearance is managed through the **user-session** room resource:
95
+
96
+ ```ts
97
+ const { data: access } = await client.room.getBotAppearanceAccess(roomId);
98
+ if (access.canEdit) {
99
+ const { data: appearance } = await client.room.getBotAppearance(tokenId);
100
+ await client.room.updateBotAppearance(roomId, tokenId, {
101
+ ...appearance,
102
+ icon: 'https://cdn.wavez.fm/admin-media/bot-icon.png',
103
+ });
104
+ }
105
+ ```
106
+
107
+ `icon` accepts a Tabler identifier or HTTPS image URL for the badge beside the
108
+ name only; changing it does not change the bot avatar. The chat avatar uses
109
+ `chatImageUrl`, then `photoUrl`, then the default robot. `photoUrl` also supplies
110
+ the profile photo.
111
+ Image artwork retains its own colors. Send the full appearance when preserving
112
+ other fields: the server replaces all four fields and omitted fields reset to
113
+ `null`. `setBotAppearanceAccess(roomId, enabled)` is platform-admin-only.
114
+
81
115
  ```ts
82
116
  await client.roomBot.sendMessage('room-id', {
83
117
  content: 'Queue status: 5 listeners waiting',
@@ -342,6 +376,68 @@ is `false`; administrator exclusions are applied by the server.
342
376
  flag. Browser opt-in is a local website preference rather than a settings API
343
377
  field.
344
378
 
379
+ Room details and snapshots expose `guestAccessEnabled`. Authorized human or bot
380
+ room managers may send it through `updateSettings()`; `false` requires a login
381
+ to enter the room. This controls guest entry, not registered-user permissions.
382
+
383
+ ## Billing currencies and BRL/Pix policy
384
+
385
+ Subscriber, diamonds, their gifts and donations support **USD, BRL, EUR, CZK,
386
+ JPY, PLN, KRW and NOK**. Real-money Extras use the currency configured on each
387
+ item. The server rejects unsupported currencies rather than defaulting to USD.
388
+ Prices are configured values; selecting a currency does not request a live FX
389
+ conversion. Existing checkout helpers retain their string currency inputs.
390
+
391
+ ```ts
392
+ const { data: status } = await client.system.status();
393
+ if (status.billingCheckoutPolicy?.stripeBrlEnabled) {
394
+ const { data: checkout } = await client.billing.createSubscriptionCheckout({
395
+ currency: 'brl', provider: 'stripe', cycle: 'monthly',
396
+ subscriptionPaymentMode: 'prepaid', locale: 'pt-BR', uiMode: 'hosted',
397
+ });
398
+ // Hosted Stripe Pix: a one-time month or year, without automatic renewal.
399
+ if (checkout.checkoutUrl) console.log(checkout.checkoutUrl);
400
+ }
401
+ ```
402
+
403
+ `billingCheckoutPolicy.stripeBrlPixOnly` disables card for new Stripe BRL
404
+ payments and prevents new recurring BRL Stripe checkout. Existing renewals are
405
+ unchanged. Explicit `subscriptionPaymentMode: 'recurring'` requires card support;
406
+ Stripe prepaid Pix is BRL-only. Mercado Pago remains the default BRL provider.
407
+ Check payment status before treating a purchase as fulfilled: pending Pix
408
+ payments do not grant access. `getCheckoutSessionStatus()` exposes the payment
409
+ mode, amount and currency along with the Stripe session status.
410
+
411
+ Donation input `amountCents`, goal maps and recorded `amount` use **hundredths of
412
+ a major currency unit for every currency**, including JPY/KRW. For example,
413
+ 1,000 JPY is represented as `100000`. Stripe checkout converts JPY/KRW to
414
+ whole-unit minor amounts. Format them without fractional currency digits.
415
+
416
+ ## Admin CDN images
417
+
418
+ `client.adminMedia` uses an administrator **user session** and CSRF protection;
419
+ bot tokens cannot manage these assets. It lists only the manager's collection.
420
+
421
+ ```ts
422
+ const { data: listing } = await client.adminMedia.list({ folder: '' });
423
+ if (listing.enabled) {
424
+ await client.adminMedia.createFolder('Bots');
425
+ const { data } = await client.adminMedia.upload(imageBlob, {
426
+ fileName: 'robot.png', folder: 'Bots',
427
+ });
428
+ console.log(data.asset.url); // Direct HTTPS CDN link.
429
+ }
430
+ ```
431
+
432
+ Uploads accept PNG, JPEG, GIF and WebP, including animations, up to 10 MiB per
433
+ file. Pass `nextCursor` back to `list({ folder, cursor })` for the next page;
434
+ do not manually set multipart Content-Type. `moveAsset(key, { name, folder })`
435
+ returns a new key and URL; update references that used the previous URL.
436
+ `renameFolder()` and `deleteFolder()` require an empty folder. Deletion is
437
+ permanent; obtain any needed confirmation in your application before calling
438
+ `deleteAsset()` or `deleteFolder()`. Storage availability comes from server R2
439
+ configuration, not a setting supplied by an SDK consumer.
440
+
345
441
  ## Room action events
346
442
 
347
443
  The realtime client forwards raw WebSocket packets without renaming or combining events. The updated server broadcasts `user_kicked`, `user_banned`, `user_unbanned`, and `queue_removed` with an `actor`. Bot actions identify the bot in `actor.userId` and its authorizing owner in `actor.ownerUserId`. For humans, `actor.username` consistently contains the stored account username rather than the display name; for room bots, it contains the bot name. Legacy `moderatorId` and `moderatorUsername` both identify the authorizing account.
@@ -410,6 +506,6 @@ bot.onPrivateCommand((command) => {
410
506
  await bot.connect();
411
507
  ```
412
508
 
413
- The wire event is `bot_private_command`. Its payload includes `id`, `requestId`, `roomId`, `botUserId`, `content`, `private: true`, `persisted: false`, `timestamp`, and a server-supplied `sender` with `userId`, `username`, `displayUsername`, `roomRole`, `platformRoles`, and `isRoomOwner`. Existing SDK versions can use `bot.on('bot_private_command', packet => { /* packet.payload */ })`; `onPrivateCommand` is a convenience wrapper in the updated SDK.
509
+ The website sends `/bot @botname ping` inline; `/bot` and `/bot @botname` open the multiline command dialog. The wire event is `bot_private_command`. Its payload includes `id`, `requestId`, `roomId`, `botUserId`, `content`, `private: true`, `persisted: false`, `timestamp`, and a server-supplied `sender` with `userId`, `username`, `displayUsername`, `role`, `roomRole`, `assignedRoomRole`, `platformRole`, `platformRoles`, and `isRoomOwner`. `role`/`roomRole` are effective authorization roles; `assignedRoomRole` is the assigned room badge. Existing SDK versions can use `bot.on('bot_private_command', packet => { /* packet.payload */ })`; `onPrivateCommand` is a convenience wrapper in the updated SDK.
414
510
 
415
- The website acknowledgement means **forwarded**, not processed or saved. The bot's private reply appears in the `/bot` dialog, including multiline prompts, without adding a public or ephemeral chat message. `replyToPrivateCommand` sends `send_bot_private_reply` with the original command ID. Replies require the bot's `send_chat` permission and are limited to 8,000 UTF-16 code units each, up to eight chunks within ten minutes of the original command. The requester must still be present and allowed to chat. Your bot must authorize configuration changes using the supplied identity and its own access policy. Commands require the user's room chat permission and respect room mutes and rate limits. Delivery is not durable or exactly once; deduplicate IDs and do not blindly retry a configuration change after a timeout. Multiple connections for the same bot can receive the same command. Targeted ephemeral `sendChat()` remains available when you want a private chat notification instead of a dialog response.
511
+ The website acknowledgement means **forwarded**, not processed or saved. Dialog commands display replies in that dialog; inline commands display correlated replies as private, dismissible local chat messages. Neither path broadcasts replies or stores them in public history. `replyToPrivateCommand` sends `send_bot_private_reply` with the original command ID. Replies require the bot's `send_chat` permission and are limited to 8,000 UTF-16 code units each, up to eight chunks within ten minutes of the original command. The requester must still be present and allowed to chat. Your bot must authorize configuration changes using the supplied identity and its own access policy. Commands require the user's room chat permission and respect room mutes and rate limits. Delivery is not durable or exactly once; deduplicate IDs and do not blindly retry a configuration change after a timeout. Multiple connections for the same bot can receive the same command. Targeted ephemeral `sendChat()` remains available for an independent live notification.
package/dist/index.d.ts CHANGED
@@ -16,10 +16,11 @@ export { createBillingResource } from "./resources/billing.js";
16
16
  export { createSystemResource } from "./resources/system.js";
17
17
  export { createEventsResource } from "./resources/events.js";
18
18
  export { createRoomBotResource } from "./resources/roomBot.js";
19
+ export { createAdminMediaResource } from "./resources/adminMedia.js";
19
20
  export { parseRoomQueueSnapshot } from "./utils/roomQueue.js";
20
21
  export { formatMentionText } from "./utils/chat.js";
21
22
  export { createRoomBotRealtimeClient } from "./realtime/roomBot.js";
22
- export type { BotPrivateCommand, CountryFlagSettings, TeamDirectory, StageHoverSettings, UserProfileOptions, ApiClientConfig, ApiLike, ApiQuery, ApiQueryValue, ApiRequestOptions, ApiSuccessResponse, AuthMode, AuthUser, BadgeAssignment, ChatImageUploadResponse, ChatLinkReview, ChatMediaPreviewResponse, ChatMessage, CheckoutSessionResponse, GifFavorite, Giveaway, GiveawayEntry, GiveawayJoinEligibility, GiveawayListResponse, GiveawayMutationResponse, GiveawayPrizeDeliveryStatus, GiveawayPrizeType, GiveawayScope, GiveawayStatus, InventoryResponse, InventoryCatalogEntry, InventoryCatalogItem, PurchaseHistoryCategory, PurchaseHistoryCurrency, PurchaseHistoryItem, PurchaseHistoryOptions, PurchaseHistoryResponse, LastFmAccountProfile, LastFmLinkStatus, LastFmWriteResponse, MediaSearchResponse, YouTubeRegionAvailability, RoomOwnershipTransferChallenge, RoomOwnershipTransferResult, MediaSearchResult, MiscShopUserState, MiscStoreCurrency, MiscStoreItemKind, MiscStoreRenderMode, NotificationCenterClearResponse, NotificationCenterStatus, PlaylistExternalImportResult, PlaylistExternalImportSource, PlaylistJsonExport, PlaylistJsonImportResult, PlaylistJsonTrack, PlaylistSummary, PlaylistTrack, PlaylistTrackAvailabilityInput, PlaylistTrackAvailabilityResult, PlaylistTrackSearchResult, PrivateConversation, PrivateMessage, PrivateMessageCustomEmoji, PrivateMessageReply, PrivateMessageSendInput, PrivateMessageSendResponse, PrivateMessageUser, RoomBotPermission, RoomExternalMediaMetadataResponse, RoomExternalMediaProvider, RoomExternalMediaSubtitleTrack, RoomExternalMediaValidationResponse, RoomActiveUser, RoomCustomEmoji, RoomLinkFiltersUpdateInput, RoomGuestPresenceResponse, RoomGuestViewer, RoomGlobalLimits, RoomGlobalLimitsUpdateInput, RoomPlaybackHistoryEntry, RoomPermission, RoomPermissionOverrideMap, RoomQueueEntry, RoomQueuePlayback, RoomQueueSnapshot, RoomQueueStatusResponse, RoomQueueUser, RoomQueueViewerStatus, RoomRoleName, RoomSettingsUpdateInput, RoomStateSnapshot, RoomBotEditMessageInput, RoomBotChatEmbed, RoomBotMessageReplyInput, RoomBotEventsResponse, RoomPresenceEventFilterType, RoomBotQueueAddResponse, RoomBotRealtimeClient, RoomBotRealtimeSendMessageInput, RoomBotRealtimeOptions, RoomActionActor, RoomBotUserKickedPayload, RoomBotUserBannedPayload, RoomBotUserUnbannedPayload, RoomBotQueueRemovalReason, RoomBotQueueRemovedPayload, RoomBotQueueLeftPayload, RoomBotTrackSkippedPayload, RoomBotQueueReorderedPayload, RoomBotMessageDeletedPayload, RoomBotChatClearedPayload, RoomBotUserUpdatedPayload, RoomBotRoomSettingsUpdatedPayload, RoomBotRealtimeEventPayloads, RoomBotRealtimeEventName, RoomBotSendMessageInput, RoomBotSendMessageResponse, RoomBotState, RoomBotToken, RoomBotSettings, RoomBotSettingsUpdateInput, RoomPresenceEvent, RoomPresenceEventType, RoomSummary, RoomSystemAlert, RoomEvent, RoomEventApprovalStatus, RoomEventListResponse, RoomEventMutationResponse, RoomEventScope, RoomEventStatus, RoomEventSubmissionInput, WavezApiLocale, WavezApiMessageKey, WavezApiMessages, WavezApiMessageValues, StoreCatalogResponse, StoreCatalogItem, StoreCatalogSection, MiscStoreItem, AdminSystemHealth, AdminSystemStatus, SystemDonationGoal, SystemAlert, SystemAlertAppearance, SystemAlertCustomEmoji, SystemAlertInput, SystemAlertResponse, SystemHealth, SystemPublicStats, SystemProgressionXp, SystemStatus, TwoFactorStatus, UserSettings, UserSystemAlert, UserProfile, UserBlockState, WalletBalance, WebSocketLike, WsPacket, } from "./types.js";
23
+ export type { BotPrivateCommand, AdminMediaAsset, AdminMediaFolder, AdminMediaListing, BillingCurrency, BillingCheckoutPolicy, SubscriptionPaymentMode, CheckoutSessionStatus, RoomBotAppearance, RoomBotAppearanceAccess, CountryFlagSettings, TeamDirectory, StageHoverSettings, UserProfileOptions, ApiClientConfig, ApiLike, ApiQuery, ApiQueryValue, ApiRequestOptions, ApiSuccessResponse, AuthMode, AuthUser, BadgeAssignment, ChatImageUploadResponse, ChatLinkReview, ChatMediaPreviewResponse, ChatMessage, CheckoutSessionResponse, GifFavorite, Giveaway, GiveawayEntry, GiveawayJoinEligibility, GiveawayListResponse, GiveawayMutationResponse, GiveawayPrizeDeliveryStatus, GiveawayPrizeType, GiveawayScope, GiveawayStatus, InventoryResponse, InventoryCatalogEntry, InventoryCatalogItem, PurchaseHistoryCategory, PurchaseHistoryCurrency, PurchaseHistoryItem, PurchaseHistoryOptions, PurchaseHistoryResponse, LastFmAccountProfile, LastFmLinkStatus, LastFmWriteResponse, MediaSearchResponse, YouTubeRegionAvailability, RoomOwnershipTransferChallenge, RoomOwnershipTransferResult, MediaSearchResult, MiscShopUserState, MiscStoreCurrency, MiscStoreItemKind, MiscStoreRenderMode, NotificationCenterClearResponse, NotificationCenterStatus, PlaylistExternalImportResult, PlaylistExternalImportSource, PlaylistJsonExport, PlaylistJsonImportResult, PlaylistJsonTrack, PlaylistSummary, PlaylistTrack, PlaylistTrackAvailabilityInput, PlaylistTrackAvailabilityResult, PlaylistTrackSearchResult, PrivateConversation, PrivateMessage, PrivateMessageCustomEmoji, PrivateMessageReply, PrivateMessageSendInput, PrivateMessageSendResponse, PrivateMessageUser, RoomBotPermission, RoomExternalMediaMetadataResponse, RoomExternalMediaProvider, RoomExternalMediaSubtitleTrack, RoomExternalMediaValidationResponse, RoomActiveUser, RoomCustomEmoji, RoomLinkFiltersUpdateInput, RoomGuestPresenceResponse, RoomGuestViewer, RoomGlobalLimits, RoomGlobalLimitsUpdateInput, RoomPlaybackHistoryEntry, RoomPermission, RoomPermissionOverrideMap, RoomQueueEntry, RoomQueuePlayback, RoomQueueSnapshot, RoomQueueStatusResponse, RoomQueueUser, RoomQueueViewerStatus, RoomRoleName, RoomSettingsUpdateInput, RoomStateSnapshot, RoomBotEditMessageInput, RoomBotChatEmbed, RoomBotMessageReplyInput, RoomBotEventsResponse, RoomPresenceEventFilterType, RoomBotQueueAddResponse, RoomBotRealtimeClient, RoomBotRealtimeSendMessageInput, RoomBotRealtimeOptions, RoomActionActor, RoomBotUserKickedPayload, RoomBotUserBannedPayload, RoomBotUserUnbannedPayload, RoomBotQueueRemovalReason, RoomBotQueueRemovedPayload, RoomBotQueueLeftPayload, RoomBotTrackSkippedPayload, RoomBotQueueReorderedPayload, RoomBotMessageDeletedPayload, RoomBotChatClearedPayload, RoomBotUserUpdatedPayload, RoomBotRoomSettingsUpdatedPayload, RoomBotRealtimeEventPayloads, RoomBotRealtimeEventName, RoomBotSendMessageInput, RoomBotSendMessageResponse, RoomBotState, RoomBotToken, RoomBotSettings, RoomBotSettingsUpdateInput, RoomPresenceEvent, RoomPresenceEventType, RoomSummary, RoomSystemAlert, RoomEvent, RoomEventApprovalStatus, RoomEventListResponse, RoomEventMutationResponse, RoomEventScope, RoomEventStatus, RoomEventSubmissionInput, WavezApiLocale, WavezApiMessageKey, WavezApiMessages, WavezApiMessageValues, StoreCatalogResponse, StoreCatalogItem, StoreCatalogSection, MiscStoreItem, AdminSystemHealth, AdminSystemStatus, SystemDonationGoal, SystemAlert, SystemAlertAppearance, SystemAlertCustomEmoji, SystemAlertInput, SystemAlertResponse, SystemHealth, SystemPublicStats, SystemProgressionXp, SystemStatus, TwoFactorStatus, UserSettings, UserSystemAlert, UserProfile, UserBlockState, WalletBalance, WebSocketLike, WsPacket, } from "./types.js";
23
24
  import type { ApiClientConfig } from "./types.js";
24
25
  export declare function createApiClient(config: ApiClientConfig): {
25
26
  api: import("./core/api.js").WavezApi;
@@ -236,6 +237,13 @@ export declare function createApiClient(config: ApiClientConfig): {
236
237
  expiresInHours?: number;
237
238
  }): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotToken>>;
238
239
  listBots(roomId: string): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotSettings[]>>;
240
+ deleteBot(roomId: string, tokenId: string): Promise<import("./types.js").ApiSuccessResponse<{
241
+ success: true;
242
+ }>>;
243
+ getBotAppearance(tokenId: string): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotAppearance>>;
244
+ getBotAppearanceAccess(roomId: string): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotAppearanceAccess>>;
245
+ setBotAppearanceAccess(roomId: string, enabled: boolean): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotAppearanceAccess>>;
246
+ updateBotAppearance(roomId: string, tokenId: string, input: Partial<import("./types.js").RoomBotAppearance>): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotAppearance>>;
239
247
  updateBot(roomId: string, tokenId: string, input: import("./types.js").RoomBotSettingsUpdateInput): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotSettings>>;
240
248
  listEmojis(roomId: string): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomCustomEmoji[]>>;
241
249
  listAuditLogs(roomId: string, limit?: number, page?: number): Promise<import("./types.js").ApiSuccessResponse<{
@@ -468,13 +476,7 @@ export declare function createApiClient(config: ApiClientConfig): {
468
476
  getPurchaseHistory(options?: import("./types.js").PurchaseHistoryOptions): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").PurchaseHistoryResponse>>;
469
477
  };
470
478
  billing: {
471
- getCheckoutSessionStatus(sessionId: string): Promise<import("./types.js").ApiSuccessResponse<{
472
- sessionId: string;
473
- status: string | null;
474
- paymentStatus: string | null;
475
- kind: string | null;
476
- cycle: "monthly" | "annual" | null;
477
- }>>;
479
+ getCheckoutSessionStatus(sessionId: string): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").CheckoutSessionStatus>>;
478
480
  cancelSubscription(): Promise<import("./types.js").ApiSuccessResponse<Record<string, unknown>>>;
479
481
  resumeSubscription(): Promise<import("./types.js").ApiSuccessResponse<Record<string, unknown>>>;
480
482
  upgradeSubscription(input?: {
@@ -482,6 +484,9 @@ export declare function createApiClient(config: ApiClientConfig): {
482
484
  }): Promise<import("./types.js").ApiSuccessResponse<Record<string, unknown>>>;
483
485
  listSubscriptionPaymentHistory(): Promise<import("./types.js").ApiSuccessResponse<unknown[]>>;
484
486
  createSubscriptionCheckout(input?: {
487
+ subscriptionPaymentMode?: import("./types.js").SubscriptionPaymentMode | null;
488
+ announceInRoom?: boolean;
489
+ announceRoomSlug?: string | null;
485
490
  cycle?: string | null;
486
491
  currency?: string | null;
487
492
  locale?: string | null;
@@ -591,6 +596,36 @@ export declare function createApiClient(config: ApiClientConfig): {
591
596
  listPendingGifts(): Promise<import("./types.js").ApiSuccessResponse<unknown[]>>;
592
597
  markGiftSeen(giftId: string): Promise<import("./types.js").ApiSuccessResponse<Record<string, unknown>>>;
593
598
  };
599
+ adminMedia: {
600
+ list(options?: {
601
+ folder?: string;
602
+ cursor?: string;
603
+ }): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").AdminMediaListing>>;
604
+ upload(file: Blob | FormData, options?: {
605
+ folder?: string;
606
+ fileName?: string;
607
+ }): Promise<import("./types.js").ApiSuccessResponse<{
608
+ asset: import("./types.js").AdminMediaAsset;
609
+ }>>;
610
+ createFolder(name: string, folder?: string): Promise<import("./types.js").ApiSuccessResponse<{
611
+ folder: import("./types.js").AdminMediaFolder;
612
+ }>>;
613
+ renameFolder(path: string, name: string): Promise<import("./types.js").ApiSuccessResponse<{
614
+ folder: import("./types.js").AdminMediaFolder;
615
+ }>>;
616
+ deleteFolder(path: string): Promise<import("./types.js").ApiSuccessResponse<{
617
+ success: true;
618
+ }>>;
619
+ moveAsset(key: string, input: {
620
+ name?: string;
621
+ folder?: string;
622
+ }): Promise<import("./types.js").ApiSuccessResponse<{
623
+ asset: import("./types.js").AdminMediaAsset;
624
+ }>>;
625
+ deleteAsset(key: string): Promise<import("./types.js").ApiSuccessResponse<{
626
+ success: true;
627
+ }>>;
628
+ };
594
629
  system: {
595
630
  createGlobalAlert(input: import("./types.js").SystemAlertInput): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").SystemAlertResponse<import("./types.js").SystemAlert>>>;
596
631
  createRoomAlert(roomId: string, input: import("./types.js").SystemAlertInput): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").SystemAlertResponse<import("./types.js").RoomSystemAlert>>>;
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ export { createBillingResource } from "./resources/billing.js";
16
16
  export { createSystemResource } from "./resources/system.js";
17
17
  export { createEventsResource } from "./resources/events.js";
18
18
  export { createRoomBotResource } from "./resources/roomBot.js";
19
+ export { createAdminMediaResource } from "./resources/adminMedia.js";
19
20
  export { parseRoomQueueSnapshot } from "./utils/roomQueue.js";
20
21
  export { formatMentionText } from "./utils/chat.js";
21
22
  export { createRoomBotRealtimeClient } from "./realtime/roomBot.js";
@@ -33,6 +34,7 @@ import { createUserBlocksResource } from "./resources/userBlocks.js";
33
34
  import { createGiveawaysResource } from "./resources/giveaways.js";
34
35
  import { createShopResource } from "./resources/shop.js";
35
36
  import { createBillingResource } from "./resources/billing.js";
37
+ import { createAdminMediaResource } from "./resources/adminMedia.js";
36
38
  import { createSystemResource } from "./resources/system.js";
37
39
  import { createEventsResource } from "./resources/events.js";
38
40
  import { createRoomBotResource } from "./resources/roomBot.js";
@@ -53,6 +55,7 @@ export function createApiClient(config) {
53
55
  giveaways: createGiveawaysResource(api),
54
56
  shop: createShopResource(api),
55
57
  billing: createBillingResource(api),
58
+ adminMedia: createAdminMediaResource(api),
56
59
  system: createSystemResource(api),
57
60
  events: createEventsResource(api),
58
61
  roomBot: createRoomBotResource(api),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAsKpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,MAAuB;IACnD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9B,OAAO;QACH,GAAG;QACH,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC;QACrC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC;QACrC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACjC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,eAAe,EAAE,6BAA6B,CAAC,GAAG,CAAC;QACnD,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACjC,UAAU,EAAE,wBAAwB,CAAC,GAAG,CAAC;QACzC,SAAS,EAAE,uBAAuB,CAAC,GAAG,CAAC;QACvC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC;QACnC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACjC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACjC,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC;KACtC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { AdminMediaAsset, AdminMediaFolder, AdminMediaListing, ApiLike } from "../types.js";
2
+ /** Admin-session CDN image management. Writes require the site's CSRF token. */
3
+ export declare function createAdminMediaResource(api: ApiLike): {
4
+ list(options?: {
5
+ folder?: string;
6
+ cursor?: string;
7
+ }): Promise<import("../types.js").ApiSuccessResponse<AdminMediaListing>>;
8
+ upload(file: Blob | FormData, options?: {
9
+ folder?: string;
10
+ fileName?: string;
11
+ }): Promise<import("../types.js").ApiSuccessResponse<{
12
+ asset: AdminMediaAsset;
13
+ }>>;
14
+ createFolder(name: string, folder?: string): Promise<import("../types.js").ApiSuccessResponse<{
15
+ folder: AdminMediaFolder;
16
+ }>>;
17
+ /** Only empty folders can be renamed. */
18
+ renameFolder(path: string, name: string): Promise<import("../types.js").ApiSuccessResponse<{
19
+ folder: AdminMediaFolder;
20
+ }>>;
21
+ /** Only empty folders can be deleted. */
22
+ deleteFolder(path: string): Promise<import("../types.js").ApiSuccessResponse<{
23
+ success: true;
24
+ }>>;
25
+ /** Moving or renaming an asset changes its key and direct URL. */
26
+ moveAsset(key: string, input: {
27
+ name?: string;
28
+ folder?: string;
29
+ }): Promise<import("../types.js").ApiSuccessResponse<{
30
+ asset: AdminMediaAsset;
31
+ }>>;
32
+ deleteAsset(key: string): Promise<import("../types.js").ApiSuccessResponse<{
33
+ success: true;
34
+ }>>;
35
+ };
@@ -0,0 +1,43 @@
1
+ /** Admin-session CDN image management. Writes require the site's CSRF token. */
2
+ export function createAdminMediaResource(api) {
3
+ return {
4
+ list(options) {
5
+ return api.get("/admin/media", {
6
+ query: options,
7
+ cache: "no-store",
8
+ });
9
+ },
10
+ upload(file, options) {
11
+ if (typeof FormData === "undefined") {
12
+ throw new Error("FormData is unavailable. Provide a runtime with native FormData support.");
13
+ }
14
+ if (file instanceof FormData) {
15
+ return api.post("/admin/media", file);
16
+ }
17
+ const body = new FormData();
18
+ body.append("file", file, options?.fileName ?? "image");
19
+ if (options?.folder !== undefined)
20
+ body.append("folder", options.folder);
21
+ return api.post("/admin/media", body);
22
+ },
23
+ createFolder(name, folder = "") {
24
+ return api.post("/admin/media/folders", { name, folder });
25
+ },
26
+ /** Only empty folders can be renamed. */
27
+ renameFolder(path, name) {
28
+ return api.patch("/admin/media/folders", { path, name });
29
+ },
30
+ /** Only empty folders can be deleted. */
31
+ deleteFolder(path) {
32
+ return api.delete("/admin/media/folders", { body: { path } });
33
+ },
34
+ /** Moving or renaming an asset changes its key and direct URL. */
35
+ moveAsset(key, input) {
36
+ return api.patch("/admin/media/assets", { key, ...input });
37
+ },
38
+ deleteAsset(key) {
39
+ return api.delete("/admin/media/assets", { body: { key } });
40
+ },
41
+ };
42
+ }
43
+ //# sourceMappingURL=adminMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adminMedia.js","sourceRoot":"","sources":["../../src/resources/adminMedia.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACjD,OAAO;QACH,IAAI,CAAC,OAA8C;YAC/C,OAAO,GAAG,CAAC,GAAG,CAAoB,cAAc,EAAE;gBAC9C,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,UAAU;aACpB,CAAC,CAAC;QACP,CAAC;QAED,MAAM,CAAC,IAAqB,EAAE,OAAgD;YAC1E,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;gBAC3B,OAAO,GAAG,CAAC,IAAI,CAAuC,cAAc,EAAE,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACzE,OAAO,GAAG,CAAC,IAAI,CAAuC,cAAc,EAAE,IAAI,CAAC,CAAC;QAChF,CAAC;QAED,YAAY,CAAC,IAAY,EAAE,MAAM,GAAG,EAAE;YAClC,OAAO,GAAG,CAAC,IAAI,CAA+B,sBAAsB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,yCAAyC;QACzC,YAAY,CAAC,IAAY,EAAE,IAAY;YACnC,OAAO,GAAG,CAAC,KAAK,CAA+B,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,yCAAyC;QACzC,YAAY,CAAC,IAAY;YACrB,OAAO,GAAG,CAAC,MAAM,CAAoB,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,kEAAkE;QAClE,SAAS,CAAC,GAAW,EAAE,KAAyC;YAC5D,OAAO,GAAG,CAAC,KAAK,CAA6B,qBAAqB,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,WAAW,CAAC,GAAW;YACnB,OAAO,GAAG,CAAC,MAAM,CAAoB,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1,12 +1,6 @@
1
- import type { ApiLike, CheckoutSessionResponse } from "../types.js";
1
+ import type { ApiLike, CheckoutSessionResponse, CheckoutSessionStatus, SubscriptionPaymentMode } from "../types.js";
2
2
  export declare function createBillingResource(api: ApiLike): {
3
- getCheckoutSessionStatus(sessionId: string): Promise<import("../types.js").ApiSuccessResponse<{
4
- sessionId: string;
5
- status: string | null;
6
- paymentStatus: string | null;
7
- kind: string | null;
8
- cycle: "monthly" | "annual" | null;
9
- }>>;
3
+ getCheckoutSessionStatus(sessionId: string): Promise<import("../types.js").ApiSuccessResponse<CheckoutSessionStatus>>;
10
4
  cancelSubscription(): Promise<import("../types.js").ApiSuccessResponse<Record<string, unknown>>>;
11
5
  resumeSubscription(): Promise<import("../types.js").ApiSuccessResponse<Record<string, unknown>>>;
12
6
  upgradeSubscription(input?: {
@@ -14,6 +8,10 @@ export declare function createBillingResource(api: ApiLike): {
14
8
  }): Promise<import("../types.js").ApiSuccessResponse<Record<string, unknown>>>;
15
9
  listSubscriptionPaymentHistory(): Promise<import("../types.js").ApiSuccessResponse<unknown[]>>;
16
10
  createSubscriptionCheckout(input?: {
11
+ /** Prepaid Stripe Pix is available only for BRL; recurring requires card support. */
12
+ subscriptionPaymentMode?: SubscriptionPaymentMode | null;
13
+ announceInRoom?: boolean;
14
+ announceRoomSlug?: string | null;
17
15
  cycle?: string | null;
18
16
  currency?: string | null;
19
17
  locale?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/resources/billing.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAC9C,OAAO;QACH,wBAAwB,CAAC,SAAiB;YACtC,OAAO,GAAG,CAAC,GAAG,CAMX,kCAAkC,EAAE;gBACnC,KAAK,EAAE,EAAE,SAAS,EAAE;aACvB,CAAC,CAAC;QACP,CAAC;QAED,kBAAkB;YACd,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,EAAE,CACL,CAAC;QACN,CAAC;QAED,kBAAkB;YACd,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,EAAE,CACL,CAAC;QACN,CAAC;QAED,mBAAmB,CAAC,KAAkC;YAClD,OAAO,GAAG,CAAC,IAAI,CACX,+BAA+B,EAC/B,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,8BAA8B;YAC1B,OAAO,GAAG,CAAC,GAAG,CACV,uCAAuC,CAC1C,CAAC;QACN,CAAC;QAED,0BAA0B,CAAC,KAO1B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,gCAAgC,EAChC,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,qBAAqB,CAAC,KAOrB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,4BAA4B,EAC5B,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,sBAAsB,CAAC,KAStB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,KAAK,CACR,CAAC;QACN,CAAC;QAED,0BAA0B,CACtB,MAAc,EACd,KAOC;YAED,OAAO,GAAG,CAAC,IAAI,CACX,2BAA2B,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAChE,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,4BAA4B,CAAC,KAO5B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,mCAAmC,EACnC,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,yBAAyB,CAAC,KAWzB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,iCAAiC,EACjC,KAAK,CACR,CAAC;QACN,CAAC;QAED,8BAA8B,CAAC,KAa9B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,qCAAqC,EACrC,KAAK,CACR,CAAC;QACN,CAAC;QAED,kCAAkC,CAAC,KAWlC;YACG,OAAO,GAAG,CAAC,IAAI,CACX,0CAA0C,EAC1C,KAAK,CACR,CAAC;QACN,CAAC;QAED,wBAAwB,CAAC,KAmBxB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,KAAK,CACR,CAAC;QACN,CAAC;QAED,2BAA2B,CAAC,SAAiB;YACzC,OAAO,GAAG,CAAC,GAAG,CACV,gCAAgC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CACzE,CAAC;QACN,CAAC;QAED,6BAA6B,CAAC,KAK7B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,mCAAmC,EACnC,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,gBAAgB;YACZ,OAAO,GAAG,CAAC,GAAG,CAAY,wBAAwB,CAAC,CAAC;QACxD,CAAC;QAED,YAAY,CAAC,MAAc;YACvB,OAAO,GAAG,CAAC,IAAI,CACX,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,OAAO,EACnD,EAAE,CACL,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/resources/billing.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAC9C,OAAO;QACH,wBAAwB,CAAC,SAAiB;YACtC,OAAO,GAAG,CAAC,GAAG,CAAwB,kCAAkC,EAAE;gBACtE,KAAK,EAAE,EAAE,SAAS,EAAE;aACvB,CAAC,CAAC;QACP,CAAC;QAED,kBAAkB;YACd,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,EAAE,CACL,CAAC;QACN,CAAC;QAED,kBAAkB;YACd,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,EAAE,CACL,CAAC;QACN,CAAC;QAED,mBAAmB,CAAC,KAAkC;YAClD,OAAO,GAAG,CAAC,IAAI,CACX,+BAA+B,EAC/B,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,8BAA8B;YAC1B,OAAO,GAAG,CAAC,GAAG,CACV,uCAAuC,CAC1C,CAAC;QACN,CAAC;QAED,0BAA0B,CAAC,KAW1B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,gCAAgC,EAChC,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,qBAAqB,CAAC,KAOrB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,4BAA4B,EAC5B,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,sBAAsB,CAAC,KAStB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,KAAK,CACR,CAAC;QACN,CAAC;QAED,0BAA0B,CACtB,MAAc,EACd,KAOC;YAED,OAAO,GAAG,CAAC,IAAI,CACX,2BAA2B,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAChE,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,4BAA4B,CAAC,KAO5B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,mCAAmC,EACnC,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,yBAAyB,CAAC,KAWzB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,iCAAiC,EACjC,KAAK,CACR,CAAC;QACN,CAAC;QAED,8BAA8B,CAAC,KAa9B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,qCAAqC,EACrC,KAAK,CACR,CAAC;QACN,CAAC;QAED,kCAAkC,CAAC,KAWlC;YACG,OAAO,GAAG,CAAC,IAAI,CACX,0CAA0C,EAC1C,KAAK,CACR,CAAC;QACN,CAAC;QAED,wBAAwB,CAAC,KAmBxB;YACG,OAAO,GAAG,CAAC,IAAI,CACX,8BAA8B,EAC9B,KAAK,CACR,CAAC;QACN,CAAC;QAED,2BAA2B,CAAC,SAAiB;YACzC,OAAO,GAAG,CAAC,GAAG,CACV,gCAAgC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CACzE,CAAC;QACN,CAAC;QAED,6BAA6B,CAAC,KAK7B;YACG,OAAO,GAAG,CAAC,IAAI,CACX,mCAAmC,EACnC,KAAK,IAAI,EAAE,CACd,CAAC;QACN,CAAC;QAED,gBAAgB;YACZ,OAAO,GAAG,CAAC,GAAG,CAAY,wBAAwB,CAAC,CAAC;QACxD,CAAC;QAED,YAAY,CAAC,MAAc;YACvB,OAAO,GAAG,CAAC,IAAI,CACX,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,OAAO,EACnD,EAAE,CACL,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ApiLike, ApiSuccessResponse, RoomBotPermission, RoomExternalMediaMetadataResponse, RoomExternalMediaValidationResponse, RoomGuestPresenceResponse, RoomPlaybackHistoryEntry, RoomQueueSnapshot, RoomQueueStatusResponse, RoomBotToken, RoomBotSettings, RoomBotSettingsUpdateInput, RoomCustomEmoji, RoomLinkFiltersUpdateInput, RoomSettingsUpdateInput, RoomSummary, RoomOwnershipTransferChallenge, RoomOwnershipTransferResult } from "../types.js";
1
+ import type { ApiLike, ApiSuccessResponse, RoomBotPermission, RoomExternalMediaMetadataResponse, RoomExternalMediaValidationResponse, RoomGuestPresenceResponse, RoomPlaybackHistoryEntry, RoomQueueSnapshot, RoomQueueStatusResponse, RoomBotToken, RoomBotSettings, RoomBotSettingsUpdateInput, RoomBotAppearance, RoomBotAppearanceAccess, RoomCustomEmoji, RoomLinkFiltersUpdateInput, RoomSettingsUpdateInput, RoomSummary, RoomOwnershipTransferChallenge, RoomOwnershipTransferResult } from "../types.js";
2
2
  export declare function createRoomResource(api: ApiLike): {
3
3
  list(): Promise<ApiSuccessResponse<RoomSummary[]>>;
4
4
  featured(): Promise<{
@@ -67,6 +67,13 @@ export declare function createRoomResource(api: ApiLike): {
67
67
  expiresInHours?: number;
68
68
  }): Promise<ApiSuccessResponse<RoomBotToken>>;
69
69
  listBots(roomId: string): Promise<ApiSuccessResponse<RoomBotSettings[]>>;
70
+ deleteBot(roomId: string, tokenId: string): Promise<ApiSuccessResponse<{
71
+ success: true;
72
+ }>>;
73
+ getBotAppearance(tokenId: string): Promise<ApiSuccessResponse<RoomBotAppearance>>;
74
+ getBotAppearanceAccess(roomId: string): Promise<ApiSuccessResponse<RoomBotAppearanceAccess>>;
75
+ setBotAppearanceAccess(roomId: string, enabled: boolean): Promise<ApiSuccessResponse<RoomBotAppearanceAccess>>;
76
+ updateBotAppearance(roomId: string, tokenId: string, input: Partial<RoomBotAppearance>): Promise<ApiSuccessResponse<RoomBotAppearance>>;
70
77
  updateBot(roomId: string, tokenId: string, input: RoomBotSettingsUpdateInput): Promise<ApiSuccessResponse<RoomBotSettings>>;
71
78
  listEmojis(roomId: string): Promise<ApiSuccessResponse<RoomCustomEmoji[]>>;
72
79
  listAuditLogs(roomId: string, limit?: number, page?: number): Promise<ApiSuccessResponse<{
@@ -11,6 +11,7 @@ const ROOM_BOT_PERMISSION_SET = new Set([
11
11
  "kick_user",
12
12
  "ban_user",
13
13
  "clear_chat",
14
+ "delete_protected_messages",
14
15
  "manage_room",
15
16
  ]);
16
17
  function createValidationError(api, messageKey, code) {
@@ -196,6 +197,25 @@ export function createRoomResource(api) {
196
197
  listBots(roomId) {
197
198
  return api.get(`/rooms/${encodeURIComponent(roomId)}/bot-tokens`);
198
199
  },
200
+ deleteBot(roomId, tokenId) {
201
+ return api.delete(`/rooms/${encodeURIComponent(roomId)}/bot-tokens/${encodeURIComponent(tokenId)}`);
202
+ },
203
+ getBotAppearance(tokenId) {
204
+ return api.get(`/bot-appearance/${encodeURIComponent(tokenId)}`, {
205
+ authMode: "none",
206
+ cache: "no-store",
207
+ });
208
+ },
209
+ getBotAppearanceAccess(roomId) {
210
+ return api.get(`/rooms/${encodeURIComponent(roomId)}/bot-appearance-access`);
211
+ },
212
+ setBotAppearanceAccess(roomId, enabled) {
213
+ return api.put(`/rooms/${encodeURIComponent(roomId)}/bot-appearance-access`, { enabled });
214
+ },
215
+ updateBotAppearance(roomId, tokenId, input) {
216
+ // The server replaces all four appearance fields; omitted fields reset to null.
217
+ return api.put(`/rooms/${encodeURIComponent(roomId)}/bot-tokens/${encodeURIComponent(tokenId)}/appearance`, input);
218
+ },
199
219
  updateBot(roomId, tokenId, input) {
200
220
  validateCreateBotTokenInput(api, input);
201
221
  return api.patch(`/rooms/${encodeURIComponent(roomId)}/bot-tokens/${encodeURIComponent(tokenId)}`, input);
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/resources/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/resources/room.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAwB/D,MAAM,uBAAuB,GACzB,gEAAgE,CAAC;AACrE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAoB;IACvD,YAAY;IACZ,WAAW;IACX,WAAW;IACX,cAAc;IACd,aAAa;IACb,WAAW;IACX,WAAW;IACX,UAAU;IACV,YAAY;IACZ,2BAA2B;IAC3B,aAAa;CAChB,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAC1B,GAAY,EACZ,UAUuC,EACvC,IAAY;IAEZ,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QAC/C,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,aAAa;QACzB,IAAI;KACP,CAAC,CAAC;AACP,CAAC;AAED,SAAS,2BAA2B,CAChC,GAAY,EACZ,KAMC;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChE,MAAM,qBAAqB,CACvB,GAAG,EACH,gCAAgC,EAChC,uBAAuB,CAC1B,CAAC;IACN,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACtE,IAAI,SAAc,CAAC;QACnB,IAAI,CAAC;YACD,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,qBAAqB,CACvB,GAAG,EACH,+BAA+B,EAC/B,6BAA6B,CAChC,CAAC;QACN,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,qBAAqB,CACvB,GAAG,EACH,+BAA+B,EAC/B,6BAA6B,CAChC,CAAC;QACN,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,qBAAqB,CACvB,GAAG,EACH,2CAA2C,EAC3C,+BAA+B,CAClC,CAAC;QACN,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAClB,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;QACjE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;QAC5B,CAAC,CAAC,GAAG,CAAC;IAEd,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9D,MAAM,qBAAqB,CACvB,GAAG,EACH,kCAAkC,EAClC,yBAAyB,CAC5B,CAAC;IACN,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9B,MAAM,qBAAqB,CACvB,GAAG,EACH,sCAAsC,EACtC,4BAA4B,CAC/B,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,qBAAqB,CACvB,GAAG,EACH,uCAAuC,EACvC,8BAA8B,CACjC,CAAC;QACN,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,qBAAqB,CACvB,GAAG,EACH,iCAAiC,EACjC,8BAA8B,CACjC,CAAC;QACN,CAAC;QAED,IACI,KAAK,CAAC,WAAW,CAAC,IAAI,CAClB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAC3D,EACH,CAAC;YACC,MAAM,qBAAqB,CACvB,GAAG,EACH,gCAAgC,EAChC,6BAA6B,CAChC,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,MAAM,qBAAqB,CACvB,GAAG,EACH,kCAAkC,EAClC,yBAAyB,CAC5B,CAAC;QACN,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YAC7C,MAAM,qBAAqB,CACvB,GAAG,EACH,iCAAiC,EACjC,+BAA+B,CAClC,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,4EAA4E,CAAC,IAAI,CACpF,KAAK,CACR,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CACzB,GAAY,EACZ,IAAY,EACZ,KAAyC;IAEzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACR,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC3C,OAAO;QACH,IAAI;YACA,OAAO,GAAG,CAAC,GAAG,CAAgB,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,KAAK,CAAC,QAAQ;YACV,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAgB,QAAQ,EAAE;gBACpD,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAC;YAEH,OAAO;gBACH,GAAG,QAAQ;gBACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjE,CAAC;QACN,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAY;YACxB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAG3B,UAAU,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;gBACrC,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAC;YAEH,OAAO;gBACH,GAAG,QAAQ;gBACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;aAChC,CAAC;QACN,CAAC;QAED,gBAAgB,CAAC,IAAY;YACzB,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EACnD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACvB,CAAC;QACN,CAAC;QAED,kBAAkB,CAAC,IAAY;YAC3B,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EACnD,SAAS,EACT,EAAE,QAAQ,EAAE,MAAM,EAAE,CACvB,CAAC;QACN,CAAC;QAED,cAAc,CAAC,IAAY;YACvB,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAC5C,CAAC;QACN,CAAC;QAED,mBAAmB,CAAC,IAAY;YAC5B,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,IAAI,CAAC,uBAAuB,EACzD,SAAS,EACT,EAAE,QAAQ,EAAE,MAAM,EAAE,CACvB,CAAC;QACN,CAAC;QAED,mBAAmB,CAAC,IAAY,EAAE,QAAgB;YAC9C,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,EACnD,EAAE,QAAQ,EAAE,CACf,CAAC;QACN,CAAC;QAED,YAAY,CAAC,MAAc,EAAE,KAAsB,EAAE,QAAiB;YAClE,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;YACpE,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,IAAI,QAAQ,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAC7C,QAAQ,CACX,CAAC;QACN,CAAC;QAED,WAAW,CAAC,IAAY;YACpB,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAC7C,EAAE,QAAQ,EAAE,MAAM,EAAE,CACvB,CAAC;QACN,CAAC;QAED,wBAAwB,CAAC,GAAW;YAChC,OAAO,GAAG,CAAC,GAAG,CACV,gCAAgC,EAChC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CACrB,CAAC;QACN,CAAC;QAED,qBAAqB,CAAC,GAAW;YAC7B,OAAO,GAAG,CAAC,GAAG,CACV,gCAAgC,EAChC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CACrB,CAAC;QACN,CAAC;QAED,sBAAsB,CAAC,KAItB;YACG,OAAO,GAAG,CAAC,GAAG,CACV,6CAA6C,EAC7C;gBACI,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,MAAM;aAClB,CACJ,CAAC;QACN,CAAC;QAED,uBAAuB,CAAC,KAAoC;YACxD,OAAO,oBAAoB,CACvB,GAAG,EACH,2CAA2C,EAC3C,KAAK,CACR,CAAC;QACN,CAAC;QAED,KAAK,CAAC,cAAc,CAChB,IAAY,EACZ,OAIC;YAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC1B,UAAU,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAC7C,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,CAC5C,CAAC;YAEF,OAAO;gBACH,GAAG,QAAQ;gBACX,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACxC,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI;oBAC3C,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI;iBAClD,CAAC;aACL,CAAC;QACN,CAAC;QAED,MAAM,CAAC,KAON;YACG,OAAO,GAAG,CAAC,IAAI,CAAc,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,YAAoB;YAC3B,IAAI,MAAM,GAAG,YAAY,CAAC;YAE1B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAG3B,UAAU,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE;oBAC7C,QAAQ,EAAE,MAAM;iBACnB,CAAC,CAAC;gBACH,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,CAA0B,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,KAAK,CAAC,MAAc;YAChB,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAC5C,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,EAAE,CACtB,CAAC;QACN,CAAC;QAED,QAAQ,CAAC,MAAc;YACnB,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAC/C,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,EAAE,CACtB,CAAC;QACN,CAAC;QAED,UAAU,CAAC,MAAc;YACrB,OAAO,GAAG,CAAC,MAAM,CACb,UAAU,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAC/C,EAAE,OAAO,EAAE,MAAM,EAAE,CACtB,CAAC;QACN,CAAC;QAED,aAAa,CAAC,MAAc;YACxB,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,MAAM,CAAC,aAAa,CACpD,CAAC;QACN,CAAC;QAED,kBAAkB,CAAC,MAAc,EAAE,KAAK,GAAG,EAAE;YACzC,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,MAAM,CAAC,mBAAmB,EACvD,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CACvB,CAAC;QACN,CAAC;QAED,MAAM,CAAC,MAAc;YACjB,OAAO,GAAG,CAAC,MAAM,CAGd,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,cAAc,CACV,MAAc,EACd,KAMC;YAED,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,MAAM,CAAC,aAAa,EACjD,KAAK,CACR,CAAC;QACN,CAAC;QAED,QAAQ,CAAC,MAAc;YACnB,OAAO,GAAG,CAAC,GAAG,CAAoB,UAAU,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACzF,CAAC;QAED,SAAS,CAAC,MAAc,EAAE,OAAe;YACrC,OAAO,GAAG,CAAC,MAAM,CACb,UAAU,kBAAkB,CAAC,MAAM,CAAC,eAAe,kBAAkB,CAAC,OAAO,CAAC,EAAE,CACnF,CAAC;QACN,CAAC;QAED,gBAAgB,CAAC,OAAe;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAoB,mBAAmB,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE;gBAChF,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,UAAU;aACpB,CAAC,CAAC;QACP,CAAC;QAED,sBAAsB,CAAC,MAAc;YACjC,OAAO,GAAG,CAAC,GAAG,CAA0B,UAAU,kBAAkB,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC1G,CAAC;QAED,sBAAsB,CAAC,MAAc,EAAE,OAAgB;YACnD,OAAO,GAAG,CAAC,GAAG,CAA0B,UAAU,kBAAkB,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACvH,CAAC;QAED,mBAAmB,CAAC,MAAc,EAAE,OAAe,EAAE,KAAiC;YAClF,gFAAgF;YAChF,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,MAAM,CAAC,eAAe,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CACrG,CAAC;QACN,CAAC;QAED,SAAS,CAAC,MAAc,EAAE,OAAe,EAAE,KAAiC;YACxE,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,GAAG,CAAC,KAAK,CACZ,UAAU,kBAAkB,CAAC,MAAM,CAAC,eAAe,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAChF,KAAK,CACR,CAAC;QACN,CAAC;QAED,UAAU,CAAC,MAAc;YACrB,OAAO,GAAG,CAAC,GAAG,CAAoB,UAAU,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrF,CAAC;QAED,aAAa,CAAC,MAAc,EAAE,KAAc,EAAE,IAAa;YACvD,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,MAAM,CAAC,aAAa,EACjD;gBACI,KAAK,EACD,KAAK,IAAI,IAAI;oBACT,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;oBACjB,CAAC,CAAC,SAAS;aACtB,CACJ,CAAC;QACN,CAAC;QAED,cAAc,CAAC,MAAc;YACzB,OAAO,GAAG,CAAC,MAAM,CACb,UAAU,kBAAkB,CAAC,MAAM,CAAC,aAAa,CACpD,CAAC;QACN,CAAC;QAED,cAAc,CAAC,MAAc,EAAE,KAA8B;YACzD,OAAO,GAAG,CAAC,KAAK,CACZ,UAAU,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAC/C,KAAK,CACR,CAAC;QACN,CAAC;QAED,iBAAiB,CACb,MAAc,EACd,KAAiC;YAEjC,OAAO,GAAG,CAAC,KAAK,CACZ,UAAU,kBAAkB,CAAC,MAAM,CAAC,eAAe,EACnD,KAAK,CACR,CAAC;QACN,CAAC;QAED,iBAAiB,CACb,MAAc,EACd,KAAwC;YAExC,OAAO,GAAG,CAAC,KAAK,CACZ,UAAU,kBAAkB,CAAC,MAAM,CAAC,eAAe,EACnD,KAAK,CACR,CAAC;QACN,CAAC;QAED,OAAO,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY;YAChD,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,MAAM,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC1E,EAAE,IAAI,EAAE,CACX,CAAC;QACN,CAAC;QAED,0EAA0E;QAC1E,wBAAwB,CAAC,MAAc,EAAE,YAAoB;YACzD,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,MAAM,CAAC,6BAA6B,EACjE,EAAE,YAAY,EAAE,CACnB,CAAC;QACN,CAAC;QAED,qFAAqF;QACrF,wBAAwB,CAAC,MAAc,EAAE,WAAmB,EAAE,IAAY;YACtE,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,MAAM,CAAC,6BAA6B,EACjE,EAAE,WAAW,EAAE,IAAI,EAAE,CACxB,CAAC;QACN,CAAC;QAED,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,OAAgB,EAAE,UAAmB;YAChF,OAAO,GAAG,CAAC,GAAG,CACV,UAAU,kBAAkB,CAAC,MAAM,CAAC,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,EAAE,EACjF,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CACnE,CAAC;QACN,CAAC;QAED,KAAK,CAAC,MAAc,EAAE,MAAc;YAChC,OAAO,GAAG,CAAC,MAAM,CACb,UAAU,kBAAkB,CAAC,MAAM,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAC5E,CAAC;QACN,CAAC;QAED,WAAW,CAAC,MAAc,EAAE,KAA8C;YACtE,OAAO,GAAG,CAAC,IAAI,CACX,UAAU,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAC7C,KAAK,CACR,CAAC;QACN,CAAC;QAED,WAAW,CACP,MAAc,EACd,OAAe,EACf,KAA+C;YAE/C,OAAO,GAAG,CAAC,KAAK,CACZ,UAAU,kBAAkB,CAAC,MAAM,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC5E,KAAK,CACR,CAAC;QACN,CAAC;QAED,WAAW,CAAC,MAAc,EAAE,OAAe;YACvC,OAAO,GAAG,CAAC,MAAM,CACb,UAAU,kBAAkB,CAAC,MAAM,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAC/E,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
package/dist/types.d.ts CHANGED
@@ -105,6 +105,8 @@ export interface AuthUser {
105
105
  autoOpenIncomingWhispers?: boolean;
106
106
  sfwMode?: boolean;
107
107
  sfwModeAudioEnabled?: boolean;
108
+ /** A prepaid Stripe/Pix purchase still uses the stripe provider; status is prepaid. */
109
+ subscriptionProvider?: string | null;
108
110
  subscriptionStatus?: string | null;
109
111
  subscriptionCycle?: string | null;
110
112
  subscriptionCurrentPeriodStartAt?: string | null;
@@ -208,6 +210,9 @@ export interface RoomActiveUser {
208
210
  avatarFrameCount?: number;
209
211
  guest?: boolean;
210
212
  role?: RoomRoleName | string;
213
+ /** Bot snapshots expose effective authorization roles; website badges may use assignedRoomRole. */
214
+ roomRole?: RoomRoleName | string;
215
+ assignedRoomRole?: RoomRoleName | string;
211
216
  platformRole?: string | null;
212
217
  platformRoles?: string[];
213
218
  customGlobalRoles?: unknown[];
@@ -232,6 +237,8 @@ export interface RoomSummary {
232
237
  slug: string;
233
238
  name: string;
234
239
  description?: string;
240
+ /** False means guests must authenticate before entering this room. */
241
+ guestAccessEnabled?: boolean;
235
242
  activeUsersCount?: number;
236
243
  activeUsers?: RoomActiveUser[];
237
244
  population?: number;
@@ -261,10 +268,11 @@ export interface RoomSummary {
261
268
  } | null;
262
269
  [key: string]: unknown;
263
270
  }
264
- export type RoomRoleName = "user" | "resident_dj" | "bouncer" | "manager" | "cohost" | "host";
271
+ export type RoomRoleName = "user" | "vip" | "resident_dj" | "bouncer" | "manager" | "cohost" | "host";
265
272
  export type RoomPermission = "send_chat" | "attach_chat_media" | "post_chat_links" | "join_queue" | "bypass_queue_lock" | "vote" | "skip_self" | "skip_others" | "mute_user" | "ban_user" | "kick_user" | "clear_chat" | "manage_queue" | "manage_external_media" | "manage_custom_theme" | "manage_polls" | "create_events" | "manage_emojis" | "manage_links" | "mention_room" | "manage_roles" | "manage_room" | "create_room_bot" | "view_audit_logs" | "delete_room";
266
273
  export type RoomPermissionOverrideMap = Partial<Record<RoomRoleName, RoomPermission[]>>;
267
274
  export interface RoomSettingsUpdateInput {
275
+ guestAccessEnabled?: boolean;
268
276
  roomBannerUrl?: string | null;
269
277
  /** Per-user image/GIF cooldown, an integer from 0 to 3600 seconds. */
270
278
  chatMediaCooldownSeconds?: number;
@@ -778,7 +786,15 @@ export interface StoreCatalogResponse {
778
786
  miscShopEnabled?: boolean;
779
787
  [key: string]: unknown;
780
788
  }
781
- export type MiscStoreCurrency = "coins" | "diamonds" | "coins_diamonds" | "usd" | "brl" | "eur" | (string & {});
789
+ /** Supported fiat currencies. JPY and KRW have zero-decimal Stripe checkout amounts. */
790
+ export type BillingCurrency = "usd" | "brl" | "eur" | "czk" | "jpy" | "pln" | "krw" | "nok";
791
+ export type SubscriptionPaymentMode = "recurring" | "prepaid";
792
+ export interface BillingCheckoutPolicy {
793
+ stripeBrlEnabled: boolean;
794
+ /** Applies to new Stripe BRL checkouts, not existing recurring renewals. */
795
+ stripeBrlPixOnly: boolean;
796
+ }
797
+ export type MiscStoreCurrency = "coins" | "diamonds" | "coins_diamonds" | BillingCurrency | (string & {});
782
798
  export type MiscStoreItemKind = "xp_boost" | "display_name_change" | "username_change" | "room_custom_theme_permanent" | "room_custom_theme_monthly" | "room_external_media_permanent" | "room_external_media_monthly" | (string & {});
783
799
  export type MiscStoreRenderMode = "icon" | "image";
784
800
  export interface MiscStoreItem {
@@ -855,8 +871,24 @@ export interface RoomBotSettings {
855
871
  botName: string;
856
872
  commandPrefix: string;
857
873
  permissions: RoomBotPermission[];
874
+ canEdit?: boolean;
875
+ canDelete?: boolean;
858
876
  }
859
877
  export type RoomBotSettingsUpdateInput = Pick<RoomBotSettings, "botName" | "commandPrefix" | "permissions" | "allowSelfRename">;
878
+ export interface RoomBotAppearance {
879
+ /** Profile photo and chat-avatar fallback when chatImageUrl is unset. */
880
+ photoUrl: string | null;
881
+ color: string | null;
882
+ /** Tabler identifier or HTTPS image URL for the name badge only; never the avatar. */
883
+ icon: string | null;
884
+ /** HTTPS chat-avatar image; falls back to photoUrl, then the default robot. */
885
+ chatImageUrl: string | null;
886
+ }
887
+ export interface RoomBotAppearanceAccess {
888
+ enabled: boolean;
889
+ isAdmin: boolean;
890
+ canEdit: boolean;
891
+ }
860
892
  export interface RoomBotToken {
861
893
  token: string;
862
894
  tokenId: string;
@@ -871,7 +903,7 @@ export interface RoomBotToken {
871
903
  actorRole?: string;
872
904
  [key: string]: unknown;
873
905
  }
874
- export type RoomBotPermission = "read_state" | "read_chat" | "send_chat" | "manage_queue" | "skip_others" | "mute_user" | "kick_user" | "ban_user" | "clear_chat" | "manage_room";
906
+ export type RoomBotPermission = "read_state" | "read_chat" | "send_chat" | "manage_queue" | "skip_others" | "mute_user" | "kick_user" | "ban_user" | "clear_chat" | "delete_protected_messages" | "manage_room";
875
907
  export interface RoomBotState {
876
908
  bot: {
877
909
  id: string;
@@ -952,6 +984,7 @@ export interface PurchaseHistoryResponse {
952
984
  /** Extensible room snapshot returned by bot state and room realtime events. */
953
985
  export interface RoomStateSnapshot extends Record<string, unknown> {
954
986
  roomId?: string;
987
+ guestAccessEnabled?: boolean;
955
988
  backgroundId?: string | null;
956
989
  backgroundUrl?: string | null;
957
990
  adminBackgroundUrl?: string | null;
@@ -1060,8 +1093,9 @@ export interface SystemDonationGoal {
1060
1093
  descriptionPtBr?: string;
1061
1094
  descriptionEnUs?: string;
1062
1095
  localizedCurrencyEnabled?: boolean;
1063
- targetByCurrency?: Partial<Record<"brl" | "usd" | "eur", number>>;
1064
- raisedByCurrency?: Partial<Record<"brl" | "usd" | "eur", number>>;
1096
+ /** Amounts use hundredths of a major unit even for JPY and KRW. */
1097
+ targetByCurrency?: Partial<Record<BillingCurrency, number>>;
1098
+ raisedByCurrency?: Partial<Record<BillingCurrency, number>>;
1065
1099
  currency: string;
1066
1100
  targetCents: number;
1067
1101
  raisedCents: number;
@@ -1094,6 +1128,8 @@ export interface SystemProgressionXp {
1094
1128
  };
1095
1129
  }
1096
1130
  export interface SystemStatus {
1131
+ /** Server-owned checkout availability; omitted by older deployments. */
1132
+ billingCheckoutPolicy?: BillingCheckoutPolicy;
1097
1133
  /** Null when XP configuration is unavailable; omitted by older servers. */
1098
1134
  progressionXp?: SystemProgressionXp | null;
1099
1135
  donationCurrencySelectionEnabled?: boolean;
@@ -1119,12 +1155,44 @@ export interface AdminSystemStatus extends SystemStatus {
1119
1155
  runtimeStartup?: Record<string, unknown> | null;
1120
1156
  }
1121
1157
  export interface CheckoutSessionResponse {
1158
+ subscriptionPaymentMode?: SubscriptionPaymentMode;
1122
1159
  uiMode?: "hosted" | "elements" | "mercadopago" | string;
1123
1160
  checkoutUrl: string | null;
1124
1161
  clientSecret?: string | null;
1125
1162
  publishableKey?: string | null;
1126
1163
  [key: string]: unknown;
1127
1164
  }
1165
+ export interface CheckoutSessionStatus {
1166
+ sessionId: string;
1167
+ status: string | null;
1168
+ paymentStatus: string | null;
1169
+ kind: string | null;
1170
+ cycle: "monthly" | "annual" | null;
1171
+ subscriptionPaymentMode?: SubscriptionPaymentMode | null;
1172
+ /** Recorded amount in hundredths of the major currency unit. */
1173
+ amount?: number | null;
1174
+ currency?: Uppercase<BillingCurrency> | null;
1175
+ }
1176
+ export interface AdminMediaFolder {
1177
+ name: string;
1178
+ path: string;
1179
+ }
1180
+ export interface AdminMediaAsset {
1181
+ key: string;
1182
+ name: string;
1183
+ url: string;
1184
+ size: number;
1185
+ contentType: string;
1186
+ lastModified: string | null;
1187
+ }
1188
+ export interface AdminMediaListing {
1189
+ enabled: boolean;
1190
+ maxUploadBytes: number;
1191
+ folder: string;
1192
+ folders: AdminMediaFolder[];
1193
+ assets: AdminMediaAsset[];
1194
+ nextCursor: string | null;
1195
+ }
1128
1196
  export interface NotificationCenterStatus {
1129
1197
  clearedAt: string | null;
1130
1198
  }
@@ -1464,7 +1532,12 @@ export interface BotPrivateCommand {
1464
1532
  userId: string;
1465
1533
  username: string;
1466
1534
  displayUsername: string;
1535
+ /** Effective authorization role: Admin/Developer >= Host; Ambassador >= Manager. */
1467
1536
  roomRole: string;
1537
+ /** Effective role alias supplied by the current server; omitted by older deployments. */
1538
+ role?: string;
1539
+ assignedRoomRole?: string;
1540
+ platformRole?: string;
1468
1541
  platformRoles: string[];
1469
1542
  isRoomOwner: boolean;
1470
1543
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavezfm/api",
3
- "version": "0.7.23",
3
+ "version": "0.7.25",
4
4
  "description": "Official JavaScript/TypeScript API client for WavezFM.",
5
5
  "homepage": "https://docs.wavez.fm/docs",
6
6
  "repository": {
@@ -89,6 +89,10 @@
89
89
  "types": "./dist/resources/billing.d.ts",
90
90
  "import": "./dist/resources/billing.js"
91
91
  },
92
+ "./resources/admin-media": {
93
+ "types": "./dist/resources/adminMedia.d.ts",
94
+ "import": "./dist/resources/adminMedia.js"
95
+ },
92
96
  "./resources/system": {
93
97
  "types": "./dist/resources/system.d.ts",
94
98
  "import": "./dist/resources/system.js"