connectbase-client 4.4.1 → 5.1.0

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
@@ -8,7 +8,95 @@ declare class ApiError extends Error {
8
8
  code: string | undefined;
9
9
  details: unknown | undefined;
10
10
  constructor(statusCode: number, message: string, code?: string, details?: unknown);
11
+ /**
12
+ * `JSON.stringify(err)` 가 `{}` 로 찍히지 않게 한다.
13
+ *
14
+ * 표준 `Error` 는 message/stack 이 non-enumerable 이라 JSON 직렬화 시 빈 객체가
15
+ * 된다. 로그를 `JSON.stringify` 로 남기는 소비자에게는 "에러 정보가 아무것도 안
16
+ * 온다"로 보여, 실제로는 있는 정보까지 없는 것으로 오진하게 만든다
17
+ * (platform-issue 019fa21c).
18
+ */
19
+ toJSON(): Record<string, unknown>;
11
20
  }
21
+ /**
22
+ * AI 호출/스트리밍 실패의 문서화된 코드. 대응 방법이 코드마다 다르므로
23
+ * 소비자는 `error.code` 로 분기해야 한다.
24
+ *
25
+ * | 코드 | 원인 | 권장 대응 |
26
+ * |------|------|-----------|
27
+ * | `rate_limit_exceeded` | 호출 빈도/동시 스트림 한도 초과 | 호출을 줄이고 `retryAfter` 만큼 대기 후 재시도 |
28
+ * | `quota_exceeded` | 플랜 할당량 소진 | 업그레이드 전까지 재시도 무의미 |
29
+ * | `provider_timeout` | 업스트림 LLM 무응답 | 기다렸다 그대로 재시도 |
30
+ * | `service_unavailable` | 업스트림 연결 불가/과부하 | 기다렸다 그대로 재시도 |
31
+ * | `provider_error` | 프로바이더가 요청을 거부 | API 키·모델 유효성 확인 (재시도 무의미) |
32
+ * | `invalid_request` | 요청 형식 오류 | 재시도 금지 — 요청을 고쳐야 함 |
33
+ * | `config_error` | 앱 AI 설정(키/모델) 누락 | 콘솔에서 설정 |
34
+ * | `unauthorized` | 인증 필요 | 로그인 후 재시도 |
35
+ * | `stream_failed` | 그 외 스트림 처리 실패 | 재시도 가능 — `retryable` 확인 |
36
+ */
37
+ type AIErrorCode = "rate_limit_exceeded" | "quota_exceeded" | "provider_timeout" | "service_unavailable" | "provider_error" | "invalid_request" | "config_error" | "unauthorized" | "stream_failed" | (string & {});
38
+ /**
39
+ * AIError 는 `cb.ai.chatStream` / `cb.realtime.stream` 실패를 소비자가 분기 가능한
40
+ * 형태로 surface 한다.
41
+ *
42
+ * 기존엔 모든 실패가 `new Error(message)` 였고 서버도 코드를 보내지 않아,
43
+ * `onError` 로 온 값을 `JSON.stringify` 하면 `{}` 였다. 그래서 "업스트림 다운(기다렸다
44
+ * 재시도)"과 "동시 스트림 한도 초과(호출을 줄여야 함)"를 구분할 수 없었다
45
+ * (platform-issue 019fa21c).
46
+ *
47
+ * ```ts
48
+ * await cb.realtime.stream(messages, {
49
+ * onToken: (t) => process.stdout.write(t),
50
+ * onError: (e) => {
51
+ * if (e.code === 'rate_limit_exceeded') backOff(e.retryAfter ?? 30)
52
+ * else if (e.retryable) scheduleRetry() // provider_timeout / service_unavailable
53
+ * else giveUp(e.message) // invalid_request / provider_error
54
+ * },
55
+ * })
56
+ * ```
57
+ */
58
+ declare class AIError extends Error {
59
+ /** 문서화된 에러 코드. 분기 기준은 항상 이 필드다. */
60
+ code: AIErrorCode;
61
+ /** 시간차를 두고 같은 요청을 재시도할 가치가 있는지. */
62
+ retryable: boolean;
63
+ /** 업스트림 HTTP 상태 코드 (알려진 경우에만). */
64
+ status?: number;
65
+ /** 실패를 일으킨 업스트림 프로바이더 (예: `openai_compatible`). */
66
+ provider?: string;
67
+ /** 실패를 일으킨 모델명. */
68
+ model?: string;
69
+ /** rate_limit_exceeded/quota_exceeded 에서 권장 대기 시간(초). */
70
+ retryAfter?: number;
71
+ /** 프로바이더가 준 하위 코드 (예: `max_tokens_exceeds_context`). 진단 보조용. */
72
+ detailCode?: string;
73
+ /** AI 스트리밍 세션 ID (실시간 스트림에서만). */
74
+ sessionId?: string;
75
+ constructor(init: {
76
+ code?: string;
77
+ message?: string;
78
+ retryable?: boolean;
79
+ status?: number;
80
+ provider?: string;
81
+ model?: string;
82
+ retryAfter?: number;
83
+ detailCode?: string;
84
+ sessionId?: string;
85
+ });
86
+ /** `JSON.stringify(err)` 가 `{}` 가 되지 않도록 한다 (ApiError.toJSON 참조). */
87
+ toJSON(): Record<string, unknown>;
88
+ }
89
+ /**
90
+ * 서버가 보낸 에러 페이로드(WS `stream_error` data / SSE in-band 이벤트 /
91
+ * HTTP 에러 본문)를 AIError 로 정규화한다. 필드명은 snake_case(서버) 와
92
+ * camelCase(SDK 내부) 양쪽을 모두 수용한다.
93
+ */
94
+ declare function toAIError(payload: unknown, fallback?: {
95
+ code?: string;
96
+ message?: string;
97
+ sessionId?: string;
98
+ status?: number;
99
+ }): AIError;
12
100
  declare class AuthError extends Error {
13
101
  constructor(message: string);
14
102
  }
@@ -61,6 +149,8 @@ declare class GameError extends Error {
61
149
  requested?: string;
62
150
  available?: string[];
63
151
  });
152
+ /** `JSON.stringify(err)` 가 `{}` 가 되지 않도록 한다 (ApiError.toJSON 참조). */
153
+ toJSON(): Record<string, unknown>;
64
154
  }
65
155
 
66
156
  interface AbortOptions {
@@ -526,7 +616,15 @@ interface AIChatStreamCallbacks {
526
616
  */
527
617
  onSearching?: (progress: AgenticSearchProgress) => void;
528
618
  onDone?: () => void;
529
- onError?: (error: string) => void;
619
+ /**
620
+ * 스트림 실패. `error.code` 로 대응을 분기한다 — `rate_limit_exceeded` 는
621
+ * 호출을 줄여야 하고, `provider_timeout`/`service_unavailable` 은 기다렸다
622
+ * 재시도하며, `invalid_request`/`provider_error` 는 재시도해도 계속 실패한다.
623
+ *
624
+ * 5.0.0 이전에는 `string` 이 전달되어 코드로 분기할 수 없었다
625
+ * (platform-issue 019fa21c). 문자열이 필요하면 `error.message` 를 쓴다.
626
+ */
627
+ onError?: (error: AIError) => void;
530
628
  /**
531
629
  * `options.signal` 로 스트림을 취소(abort)했을 때 호출된다. 정상적인
532
630
  * 사용자 취소이므로 `onError` 대신 본 콜백이 호출되며, `onDone` 은 호출되지
@@ -614,8 +712,15 @@ interface AIStreamChunk {
614
712
  success?: boolean;
615
713
  durationMs?: number;
616
714
  searching?: AgenticSearchProgress;
715
+ /** 문서화된 에러 코드 (`provider_timeout` 등). AIError.code 가 된다. */
617
716
  error?: string;
618
717
  message?: string;
718
+ /** 프로바이더가 준 하위 코드 (`max_tokens_exceeds_context` 등). */
719
+ code?: string;
720
+ /** 실패를 일으킨 업스트림 프로바이더. */
721
+ provider?: string;
722
+ /** 실패를 일으킨 모델. */
723
+ model?: string;
619
724
  }
620
725
 
621
726
  /**
@@ -1148,6 +1253,118 @@ declare class AnalyticsAPI {
1148
1253
  private log;
1149
1254
  }
1150
1255
 
1256
+ /** 멤버의 로그인 수단. 백엔드 `appmemberidentity.ProviderType`. */
1257
+ type AppMemberProviderType = "EMAIL" | "USERNAME" | "GOOGLE" | "APPLE" | "KAKAO" | "NAVER" | "GITHUB" | "DISCORD" | "FACEBOOK" | "GUEST";
1258
+ /** 멤버 목록 항목의 identity. 백엔드 `FetchAppMemberIdentityItem` 매핑. */
1259
+ interface AppMemberIdentitySummary {
1260
+ id: string;
1261
+ type: AppMemberProviderType;
1262
+ create_time: string;
1263
+ }
1264
+ /**
1265
+ * `cb.appMembers.list` 항목. 백엔드 `FetchAppMemberItem` 매핑.
1266
+ *
1267
+ * `email` 은 `app_members.email` 컬럼이 우선이고, NULL 이면 EMAIL identity 의 provider_uid 로
1268
+ * fallback 한다(backfill 이전 legacy 멤버). 이메일이 정말 없으면 빈 문자열이다.
1269
+ */
1270
+ interface AppMemberListItem {
1271
+ id: string;
1272
+ /** 개인정보 — 앱 소유자 권한으로만 내려온다. 멤버 토큰에는 노출되지 않는다. */
1273
+ email: string;
1274
+ nickname: string;
1275
+ signup_time: string;
1276
+ identities: AppMemberIdentitySummary[];
1277
+ is_suspended: boolean;
1278
+ suspended_until?: string;
1279
+ }
1280
+ /** `cb.appMembers.list` 반환값. 백엔드 `FetchAppMemberResponse` 매핑. */
1281
+ interface AppMemberList {
1282
+ total_count: number;
1283
+ app_members: AppMemberListItem[];
1284
+ }
1285
+ /** `cb.appMembers.list` 조회 옵션. */
1286
+ interface ListAppMembersOptions {
1287
+ /** 1-based 페이지 번호 (기본 1). */
1288
+ page?: number;
1289
+ /** 페이지 크기 (기본 100). 100 을 넘기면 서버가 100 으로 절삭한다. */
1290
+ pageSize?: number;
1291
+ /**
1292
+ * 닉네임·이메일·로그인 identity(email/username)를 함께 부분 일치(대소문자 무시)한다.
1293
+ * 문의로 들어온 이메일이 어느 회원인지 대조하는 용도. `total_count` 도 이 필터를 반영한다.
1294
+ */
1295
+ search?: string;
1296
+ }
1297
+ /** 멤버 상세의 identity. 백엔드 `FetchAppMemberIdentityDetail` 매핑. */
1298
+ interface AppMemberIdentityDetail {
1299
+ id: string;
1300
+ type: AppMemberProviderType;
1301
+ provider_uid: string;
1302
+ create_time: string;
1303
+ update_time: string;
1304
+ }
1305
+ /** `cb.appMembers.get` 반환값. 백엔드 `FetchAppMemberDetailResponse` 매핑. */
1306
+ interface AppMemberDetail {
1307
+ id: string;
1308
+ /** 개인정보 — 앱 소유자 권한으로만 내려온다. */
1309
+ email: string;
1310
+ nickname: string;
1311
+ custom_data: Record<string, unknown>;
1312
+ signup_time: string;
1313
+ update_time: string;
1314
+ identities: AppMemberIdentityDetail[];
1315
+ is_suspended: boolean;
1316
+ suspended_at?: string;
1317
+ suspended_until?: string;
1318
+ suspend_reason?: string;
1319
+ }
1320
+ /**
1321
+ * 앱 멤버 **관리자 조회** API — 서버사이드 전용.
1322
+ *
1323
+ * 콘솔 JWT 또는 service_role 함수(`ctx.cbAdmin`)로 호출한다. Public Key(cb_pk_) 단독 브라우저
1324
+ * SDK 인스턴스로는 호출할 수 없다 — 다른 회원의 이메일을 클라이언트에서 읽는 경로를 만들지
1325
+ * 않기 위한 의도적 제약이다. 멤버가 **자기** 정보를 볼 때는 `cb.auth.getMe()` 를 쓴다.
1326
+ *
1327
+ * service_role 함수에서 쓰려면 함수 `management_scopes` 에 `app_member:read` 를 opt-in 해야
1328
+ * 한다. 이 스코프는 **이메일(개인정보)** 을 함께 열어주므로 어드민/CS 흐름에만 부여할 것.
1329
+ *
1330
+ * 쓰기(생성·삭제·정지·수정)와 활동 로그 조회는 콘솔 전용이다 — service_role 에 열려 있지 않다.
1331
+ *
1332
+ * @example
1333
+ * ```typescript
1334
+ * // 함수(service_role, management_scopes: ["app_member:read"]) 안에서
1335
+ * // 1) 문의로 들어온 이메일이 어느 회원인지 찾기
1336
+ * const found = await ctx.cbAdmin.appMembers.list(ctx.appId, { search: 'user@example.com' })
1337
+ * console.log(found.total_count, found.app_members[0]?.nickname)
1338
+ *
1339
+ * // 2) 회원 목록 페이지네이션 (자체 어드민 화면)
1340
+ * const page1 = await ctx.cbAdmin.appMembers.list(ctx.appId, { page: 1, pageSize: 50 })
1341
+ * for (const m of page1.app_members) console.log(m.email, m.nickname)
1342
+ *
1343
+ * // 3) 회원 상세 — 로그인 수단까지
1344
+ * const detail = await ctx.cbAdmin.appMembers.get(ctx.appId, found.app_members[0].id)
1345
+ * console.log(detail.email, detail.identities.map((i) => i.type))
1346
+ * ```
1347
+ */
1348
+ declare class AppMembersAPI {
1349
+ private http;
1350
+ constructor(http: HttpClient);
1351
+ private ensureServerAuth;
1352
+ /**
1353
+ * 앱 멤버 목록을 조회한다 (이메일 포함). (management_scope: `app_member:read`)
1354
+ *
1355
+ * @param appId 앱 ID
1356
+ * @param options 페이지네이션 및 `search`(닉네임·이메일 부분 일치)
1357
+ */
1358
+ list(appId: string, options?: ListAppMembersOptions): Promise<AppMemberList>;
1359
+ /**
1360
+ * 앱 멤버 상세를 조회한다 (이메일 + 로그인 수단 포함). (management_scope: `app_member:read`)
1361
+ *
1362
+ * @param appId 앱 ID
1363
+ * @param memberId 멤버 ID
1364
+ */
1365
+ get(appId: string, memberId: string): Promise<AppMemberDetail>;
1366
+ }
1367
+
1151
1368
  /** 앱 멤버 회원가입 요청 */
1152
1369
  interface MemberSignUpRequest {
1153
1370
  login_id: string;
@@ -6399,7 +6616,13 @@ interface StreamDoneData {
6399
6616
  /** AI 스트리밍 완료 콜백 */
6400
6617
  type StreamDoneCallback = (result: StreamDoneData) => void;
6401
6618
  /** AI 스트리밍 에러 콜백 */
6402
- type StreamErrorCallback = (error: Error) => void;
6619
+ /**
6620
+ * AI 스트리밍 실패 콜백. 전달되는 값은 `AIError` 로, `error.code` 로 대응을
6621
+ * 분기할 수 있다 (`provider_timeout`/`service_unavailable` = 기다렸다 재시도,
6622
+ * `rate_limit_exceeded` = 호출 감소, `invalid_request` = 재시도 금지).
6623
+ * 5.0.0 이전에는 코드 없는 `Error` 라 구분이 불가능했다 (platform-issue 019fa21c).
6624
+ */
6625
+ type StreamErrorCallback = (error: AIError) => void;
6403
6626
  /** AI 도구 호출 콜백 */
6404
6627
  type StreamToolCallCallback = (toolName: string, args: Record<string, unknown>, index: number) => void;
6405
6628
  /** AI 도구 실행 완료 콜백 */
@@ -9695,6 +9918,12 @@ declare class ConnectBase {
9695
9918
  * service_role 함수에서는 management_scopes(role:read / role:manage)가 필요하다.
9696
9919
  */
9697
9920
  readonly roles: RolesAPI;
9921
+ /**
9922
+ * 앱 멤버 관리자 조회 API — 서버사이드 전용(ctx.cbAdmin / 콘솔 JWT).
9923
+ * 이메일(개인정보)을 포함하므로 service_role 함수에서는 management_scope `app_member:read`
9924
+ * opt-in 이 필요하다. 멤버가 자기 정보를 볼 때는 `cb.auth.getMe()` 를 쓴다.
9925
+ */
9926
+ readonly appMembers: AppMembersAPI;
9698
9927
  /**
9699
9928
  * 비디오 API (동영상 업로드/스트리밍)
9700
9929
  */
@@ -9784,4 +10013,4 @@ declare class ConnectBase {
9784
10013
  updateConfig(config: Partial<ConnectBaseConfig>): void;
9785
10014
  }
9786
10015
 
9787
- export { AIAPI, type AIChatRequest, type AIChatResponse, type AIChatStreamCallbacks, type AIChatStreamOptions, type AIMessage, type AISource, type AIStreamChunk, type AITool, type AIToolCall, type AIToolEvent, AUTH_MEMBER_ID_TOKEN, type AckMessagesRequest, type AdMobDailyReport, type AdMobReportResponse, type AdMobReportSummary, type AdReportResponse, type AdReportSummary, type AdmobConnectionInfo, AdsAPI, type AdsenseConnectionInfo, type AgenticSearchProgress, type AggregateResult, type AggregateStage, type AnalyticsConfig, type AnalyticsEvent, ApiError, type ApiErrorDetail, type AppStatsResponse, type ArchivePolicy, type AtomicOperator, type AtomicOperatorType, AuthError, type AuthSettingsResponse, type BackupInfo, type BatchOperation, type BatchOperationResult, type BatchSetPageMetaRequest, type BatchWriteResult, type BillingCycle, type BillingKeyResponse, type BiometricInfo, type BiometricResult, type BulkCreateResponse, type BulkError, type CPUInfo, type CancelPaymentRequest, type CancelPaymentResponse, type CancelSubscriptionRequest, type CategoryInfo, type ChangePlanPreview, type ChangePlanRequest, type Channel, type ChannelMembership, type ChannelStats, type ChargeWithBillingKeyRequest, type ChargeWithBillingKeyResponse, type ChatMessage, type ClientMessage, type ColumnSchema, type CommentListResponse, type CompleteUploadRequest, type CompleteUploadResponse, type ConfirmBillingKeyRequest, type ConfirmPaymentRequest, type ConfirmPaymentResponse, ConnectBase, type ConnectBaseConfig, type ConnectedData, type ConnectionState, type ConsentOptions, type ConsumeMessagesResponse, type ConsumeOptions, type CopyTableRequest, type CopyTableResponse, type CreateBackupRequest, type CreateChannelRequest, type CreateCheckoutSessionRequest, type CreateCheckoutSessionResponse, type CreateColumnRequest, type CreateDataRequest, type CreateDocumentRequest, type CreateFolderRequest, type CreateFolderResponse, type CreateGeoIndexRequest, type CreateIndexRequest, type CreateLobbyRequest, type CreatePlaylistRequest, type CreatePublicKeyRequest, type CreatePublicKeyResponse, type CreateRelationRequest, type CreateRolePayload, type CreateRoleResult, type CreateRoomResult, type CreateSearchIndexRequest, type CreateSecurityRuleRequest, type CreateSubscriptionRequest, type CreateTableRequest, type CreateTriggerRequest, type CreateVideoStorageRequest, type DailyReport, type DataItem, type DataType, type DatabaseChange, type DatabaseChangeMessage, type DatabaseChangeType, type DatabaseRealtimeConnectOptions, type DatabaseRealtimeFilter, type DatabaseRealtimeHandlers, type DatabaseRealtimeSubscription, type DatabaseSnapshot, type DatabaseSnapshotMessage, type DatabaseSubscribeOptions, type DeleteWhereResponse, type DeviceInfo, type DocumentResponse, type EnabledProviderInfo, type EnabledProvidersResponse, EndpointAPI, type EndpointCallInit, type ErrorHandler, type ErrorMessage, type ErrorReport, type ErrorTrackerConfig, type ErrorType, type ExportDataRequest, type ExportDataResponse, type FetchDataResponse, type FetchFilesResponse, type FetchPublicKeysResponse, type FileItem, type FileStats, GameAPI, type GameAction, type GameClientConfig, type GameConfig, GameConfigAPI, type GameConfigPatch, type GameConnectionState, type GameConnectionStatus, type GameDelta, GameError, type GameErrorCode, type GameEventHandlers, type GamePlayer, GameRoom, type GameRoomConfig, type GameRoomInfo, GameRoomTransport, type GameServerMessage, type GameServerMessageType, type GameState, type GameTransportConfig, type GenerateUploadURLByPathRequest, type GenerateUploadURLRequest, type GenerateUploadURLResponse, type GeoBoundingBox, type GeoIndex, type GeoNear, type GeoPoint, type GeoPolygon, type GeoQuery, type GeoResponse, type GeoResult, type GetAuthorizationURLResponse, type GetFileByPathResponse, type GoogleConnectionStatus, type HistoryResponse, type ICEServer, type ICEServersResponse, type ImageResult, type ImportDataRequest, type ImportDataResponse, type IndexAnalysis, type IndexRecommendation, type InitUploadResponse, type InvokeFunctionRequest, type InvokeFunctionResponse, type IssueBillingKeyRequest, type IssueBillingKeyResponse, type JoinQueueRequest, type JoinRoomRequest, type JoinRoomResponse, type KnowledgeSearchRequest, type KnowledgeSearchResponse, type KnowledgeSearchResult, type LeaderboardEntry, type LeaderboardListResponse, type LeaderboardScoreEntry, type LifecyclePolicy, type ListBillingKeysResponse, type ListDocumentsResponse, type ListPageMetasOptions, type ListPageMetasResponse, type ListPaymentsOptions, type ListSubscriptionPaymentsRequest, type ListSubscriptionPaymentsResponse, type ListSubscriptionsRequest, type ListSubscriptionsResponse, type LobbyInfo, type LobbyInvite, type LobbyMember, type LobbyVisibility, type MatchResult, type MatchmakingTicket, type MatchqueueListResponse, type MatchqueueTicket, type MemberInfoResponse, type MemberSignInRequest, type MemberSignInResponse, type MemberSignUpRequest, type MemberSignUpResponse, type MembershipTier, type MemoryInfo, type MessageHandler, type MigrateDataRequest, type MigrateDataResponse, type MoveFileRequest, type NackMessageRequest, NativeAPI, type OAuthCallbackResponse, type OAuthProvider, type OnPaymentFailure, type OpenDialogOptions, type OpenDialogResult, type PageMetaResponse, type PartyInfo, type PartyInvite, type PartyMember, type PauseSubscriptionRequest, type PaymentDetail, type PaymentListItem, type PaymentListResult, type PaymentMode, type PaymentProvider, type PaymentStatus, type PeerInfo, type Platform, type PlayerEvent, type PlayerStats, type Playlist, type PlaylistItem, type PollUntilOptions, type PongMessage, type PopulateOption, type Position, type PreparePaymentRequest, type PreparePaymentResponse, type PresenceChangeHandler, type PresenceInfo, type PresenceSetOptions, type PresenceStatus, type PresenceStatusResult, type ProrationMode, type PublicKeyItem, type PublicKeyPaymentMode, type PublishBatchRequest, type PublishBatchResponse, type PublishMessageRequest, type PublishMessageResponse, type PushPlatform, type PushStatsResult, type QualityProgress, type QueryOptions, type QueueInfoResponse, type QueueMessage, type ReadReceiptHandler, type ReadReceiptInfo, type RealtimeConnectOptions, type RealtimeMessage, type RegisterDeviceRequest, type RelationType, type RenameFileRequest, type RenameFileResponse, type ReplayHighlight, type ReplayInfo, type ReplayPlayerInfo, type RestoreBackupRequest, type RestoreBackupResponse, type RetentionPolicy, type RoleDetail, type RoleList, type RoleListItem, type RolePermissionItem, type RoleUserItem, RolesAPI, type RoomInfo, type RoomStaleMessage, type RoomSummary, type RoomsResponse, type SaveDialogOptions, type SaveDialogResult, type ScriptDetailResponse, type ScriptListResponse, type ScriptMeta, type ScriptVersion, type ScriptVersionListResponse, type SearchIndex, type SearchOptions, type SearchResponse, type SearchResult, type SecurityRule, type SendOptions, type SendSuperChatOptions, type SendSuperChatResponse, type ServerMessage, SessionManager, type SetPageMetaRequest, type Shorts, type ShortsListResponse, type SignalingMessage, type SignalingMessageType, type SlowQueryInfo, type SpectatorInfo, type SpectatorPlayerState, type SpectatorState, type SpeechRecognizeOptions, type SpeechResult, type StateChange, type StateChangeHandler, type StorageUploadOptions, type StorageUploadProgress, type StreamContentPart, type StreamDoneCallback, type StreamDoneData, type StreamErrorCallback, type StreamHandlers, type StreamImageURLPart, type StreamMessage, type StreamOptions, type StreamSession, type StreamTextPart, type StreamTokenCallback, type StreamToolCallCallback, type StreamToolResultCallback, type StreamURLResponse, type SubscribeOptions, type SubscribeTopicRequest, type SubscribedData, type Subscription, type SubscriptionPaymentResponse, type SubscriptionPaymentStatus, type SubscriptionResponse, type SubscriptionStatus, type SuperChat, type SuperChatType, type SystemInfo, type TTLConfig, type TableAccessLevel, type TableColumnDef, type TableIndex, type TableRelation, type TableSchema, type TableSchemaDefinition, type TokenPersistence, type TransactionRead, type TransactionResult, type TransactionWrite, type TransactionWriteResult, type TranscodeStatus, type TransportType, type Trigger, type TriggerEvent, type TriggerHandlerType, type TypingChangeHandler, type TypingInfo, type UpdateBillingKeyRequest, type UpdateChannelRequest, type UpdateColumnRequest, type UpdateCustomDataRequest, type UpdateCustomDataResponse, type UpdateDataRequest, type UpdateDocumentRequest, type UpdateLobbyRequest, type UpdatePublicKeyRequest, type UpdatePublicKeyResponse, type UpdateRolePayload, type UpdateSecurityRuleRequest, type UpdateSubscriptionRequest, type UpdateTriggerRequest, type UpdateVideoRequest, type UpdateVideoStorageRequest, type UploadByPathOptions, type UploadFileOptions, type UploadFileResponse, type UploadOptions, type UploadProgress, type VAPIDPublicKeyResponse, type ValidateResponse, type ValidationSchema, type ValidationSchemaField, type ValidationStateTransitions, type Video, type VideoComment, type VideoCompleteUploadResponse, type VideoListOptions, type VideoListResponse, VideoProcessingError, type VideoQuality, type VideoStatus, type VideoStorage, type VideoStorageListResponse, type VideoVisibility, type VoiceChannel, type VoiceMember, type WaitOptions, type WatchHistoryItem, type WebPushSubscription, type WebRTCConnectOptions, type WebRTCConnectionState, type WebRTCMode, type WhereCondition, type WhereOperator, ConnectBase as default, detectInAppBrowser, escapeToExternalBrowser, isWebTransportSupported, toCreateRoomWire };
10016
+ export { AIAPI, type AIChatRequest, type AIChatResponse, type AIChatStreamCallbacks, type AIChatStreamOptions, AIError, type AIErrorCode, type AIMessage, type AISource, type AIStreamChunk, type AITool, type AIToolCall, type AIToolEvent, AUTH_MEMBER_ID_TOKEN, type AckMessagesRequest, type AdMobDailyReport, type AdMobReportResponse, type AdMobReportSummary, type AdReportResponse, type AdReportSummary, type AdmobConnectionInfo, AdsAPI, type AdsenseConnectionInfo, type AgenticSearchProgress, type AggregateResult, type AggregateStage, type AnalyticsConfig, type AnalyticsEvent, ApiError, type ApiErrorDetail, type AppMemberDetail, type AppMemberIdentityDetail, type AppMemberIdentitySummary, type AppMemberList, type AppMemberListItem, type AppMemberProviderType, AppMembersAPI, type AppStatsResponse, type ArchivePolicy, type AtomicOperator, type AtomicOperatorType, AuthError, type AuthSettingsResponse, type BackupInfo, type BatchOperation, type BatchOperationResult, type BatchSetPageMetaRequest, type BatchWriteResult, type BillingCycle, type BillingKeyResponse, type BiometricInfo, type BiometricResult, type BulkCreateResponse, type BulkError, type CPUInfo, type CancelPaymentRequest, type CancelPaymentResponse, type CancelSubscriptionRequest, type CategoryInfo, type ChangePlanPreview, type ChangePlanRequest, type Channel, type ChannelMembership, type ChannelStats, type ChargeWithBillingKeyRequest, type ChargeWithBillingKeyResponse, type ChatMessage, type ClientMessage, type ColumnSchema, type CommentListResponse, type CompleteUploadRequest, type CompleteUploadResponse, type ConfirmBillingKeyRequest, type ConfirmPaymentRequest, type ConfirmPaymentResponse, ConnectBase, type ConnectBaseConfig, type ConnectedData, type ConnectionState, type ConsentOptions, type ConsumeMessagesResponse, type ConsumeOptions, type CopyTableRequest, type CopyTableResponse, type CreateBackupRequest, type CreateChannelRequest, type CreateCheckoutSessionRequest, type CreateCheckoutSessionResponse, type CreateColumnRequest, type CreateDataRequest, type CreateDocumentRequest, type CreateFolderRequest, type CreateFolderResponse, type CreateGeoIndexRequest, type CreateIndexRequest, type CreateLobbyRequest, type CreatePlaylistRequest, type CreatePublicKeyRequest, type CreatePublicKeyResponse, type CreateRelationRequest, type CreateRolePayload, type CreateRoleResult, type CreateRoomResult, type CreateSearchIndexRequest, type CreateSecurityRuleRequest, type CreateSubscriptionRequest, type CreateTableRequest, type CreateTriggerRequest, type CreateVideoStorageRequest, type DailyReport, type DataItem, type DataType, type DatabaseChange, type DatabaseChangeMessage, type DatabaseChangeType, type DatabaseRealtimeConnectOptions, type DatabaseRealtimeFilter, type DatabaseRealtimeHandlers, type DatabaseRealtimeSubscription, type DatabaseSnapshot, type DatabaseSnapshotMessage, type DatabaseSubscribeOptions, type DeleteWhereResponse, type DeviceInfo, type DocumentResponse, type EnabledProviderInfo, type EnabledProvidersResponse, EndpointAPI, type EndpointCallInit, type ErrorHandler, type ErrorMessage, type ErrorReport, type ErrorTrackerConfig, type ErrorType, type ExportDataRequest, type ExportDataResponse, type FetchDataResponse, type FetchFilesResponse, type FetchPublicKeysResponse, type FileItem, type FileStats, GameAPI, type GameAction, type GameClientConfig, type GameConfig, GameConfigAPI, type GameConfigPatch, type GameConnectionState, type GameConnectionStatus, type GameDelta, GameError, type GameErrorCode, type GameEventHandlers, type GamePlayer, GameRoom, type GameRoomConfig, type GameRoomInfo, GameRoomTransport, type GameServerMessage, type GameServerMessageType, type GameState, type GameTransportConfig, type GenerateUploadURLByPathRequest, type GenerateUploadURLRequest, type GenerateUploadURLResponse, type GeoBoundingBox, type GeoIndex, type GeoNear, type GeoPoint, type GeoPolygon, type GeoQuery, type GeoResponse, type GeoResult, type GetAuthorizationURLResponse, type GetFileByPathResponse, type GoogleConnectionStatus, type HistoryResponse, type ICEServer, type ICEServersResponse, type ImageResult, type ImportDataRequest, type ImportDataResponse, type IndexAnalysis, type IndexRecommendation, type InitUploadResponse, type InvokeFunctionRequest, type InvokeFunctionResponse, type IssueBillingKeyRequest, type IssueBillingKeyResponse, type JoinQueueRequest, type JoinRoomRequest, type JoinRoomResponse, type KnowledgeSearchRequest, type KnowledgeSearchResponse, type KnowledgeSearchResult, type LeaderboardEntry, type LeaderboardListResponse, type LeaderboardScoreEntry, type LifecyclePolicy, type ListAppMembersOptions, type ListBillingKeysResponse, type ListDocumentsResponse, type ListPageMetasOptions, type ListPageMetasResponse, type ListPaymentsOptions, type ListSubscriptionPaymentsRequest, type ListSubscriptionPaymentsResponse, type ListSubscriptionsRequest, type ListSubscriptionsResponse, type LobbyInfo, type LobbyInvite, type LobbyMember, type LobbyVisibility, type MatchResult, type MatchmakingTicket, type MatchqueueListResponse, type MatchqueueTicket, type MemberInfoResponse, type MemberSignInRequest, type MemberSignInResponse, type MemberSignUpRequest, type MemberSignUpResponse, type MembershipTier, type MemoryInfo, type MessageHandler, type MigrateDataRequest, type MigrateDataResponse, type MoveFileRequest, type NackMessageRequest, NativeAPI, type OAuthCallbackResponse, type OAuthProvider, type OnPaymentFailure, type OpenDialogOptions, type OpenDialogResult, type PageMetaResponse, type PartyInfo, type PartyInvite, type PartyMember, type PauseSubscriptionRequest, type PaymentDetail, type PaymentListItem, type PaymentListResult, type PaymentMode, type PaymentProvider, type PaymentStatus, type PeerInfo, type Platform, type PlayerEvent, type PlayerStats, type Playlist, type PlaylistItem, type PollUntilOptions, type PongMessage, type PopulateOption, type Position, type PreparePaymentRequest, type PreparePaymentResponse, type PresenceChangeHandler, type PresenceInfo, type PresenceSetOptions, type PresenceStatus, type PresenceStatusResult, type ProrationMode, type PublicKeyItem, type PublicKeyPaymentMode, type PublishBatchRequest, type PublishBatchResponse, type PublishMessageRequest, type PublishMessageResponse, type PushPlatform, type PushStatsResult, type QualityProgress, type QueryOptions, type QueueInfoResponse, type QueueMessage, type ReadReceiptHandler, type ReadReceiptInfo, type RealtimeConnectOptions, type RealtimeMessage, type RegisterDeviceRequest, type RelationType, type RenameFileRequest, type RenameFileResponse, type ReplayHighlight, type ReplayInfo, type ReplayPlayerInfo, type RestoreBackupRequest, type RestoreBackupResponse, type RetentionPolicy, type RoleDetail, type RoleList, type RoleListItem, type RolePermissionItem, type RoleUserItem, RolesAPI, type RoomInfo, type RoomStaleMessage, type RoomSummary, type RoomsResponse, type SaveDialogOptions, type SaveDialogResult, type ScriptDetailResponse, type ScriptListResponse, type ScriptMeta, type ScriptVersion, type ScriptVersionListResponse, type SearchIndex, type SearchOptions, type SearchResponse, type SearchResult, type SecurityRule, type SendOptions, type SendSuperChatOptions, type SendSuperChatResponse, type ServerMessage, SessionManager, type SetPageMetaRequest, type Shorts, type ShortsListResponse, type SignalingMessage, type SignalingMessageType, type SlowQueryInfo, type SpectatorInfo, type SpectatorPlayerState, type SpectatorState, type SpeechRecognizeOptions, type SpeechResult, type StateChange, type StateChangeHandler, type StorageUploadOptions, type StorageUploadProgress, type StreamContentPart, type StreamDoneCallback, type StreamDoneData, type StreamErrorCallback, type StreamHandlers, type StreamImageURLPart, type StreamMessage, type StreamOptions, type StreamSession, type StreamTextPart, type StreamTokenCallback, type StreamToolCallCallback, type StreamToolResultCallback, type StreamURLResponse, type SubscribeOptions, type SubscribeTopicRequest, type SubscribedData, type Subscription, type SubscriptionPaymentResponse, type SubscriptionPaymentStatus, type SubscriptionResponse, type SubscriptionStatus, type SuperChat, type SuperChatType, type SystemInfo, type TTLConfig, type TableAccessLevel, type TableColumnDef, type TableIndex, type TableRelation, type TableSchema, type TableSchemaDefinition, type TokenPersistence, type TransactionRead, type TransactionResult, type TransactionWrite, type TransactionWriteResult, type TranscodeStatus, type TransportType, type Trigger, type TriggerEvent, type TriggerHandlerType, type TypingChangeHandler, type TypingInfo, type UpdateBillingKeyRequest, type UpdateChannelRequest, type UpdateColumnRequest, type UpdateCustomDataRequest, type UpdateCustomDataResponse, type UpdateDataRequest, type UpdateDocumentRequest, type UpdateLobbyRequest, type UpdatePublicKeyRequest, type UpdatePublicKeyResponse, type UpdateRolePayload, type UpdateSecurityRuleRequest, type UpdateSubscriptionRequest, type UpdateTriggerRequest, type UpdateVideoRequest, type UpdateVideoStorageRequest, type UploadByPathOptions, type UploadFileOptions, type UploadFileResponse, type UploadOptions, type UploadProgress, type VAPIDPublicKeyResponse, type ValidateResponse, type ValidationSchema, type ValidationSchemaField, type ValidationStateTransitions, type Video, type VideoComment, type VideoCompleteUploadResponse, type VideoListOptions, type VideoListResponse, VideoProcessingError, type VideoQuality, type VideoStatus, type VideoStorage, type VideoStorageListResponse, type VideoVisibility, type VoiceChannel, type VoiceMember, type WaitOptions, type WatchHistoryItem, type WebPushSubscription, type WebRTCConnectOptions, type WebRTCConnectionState, type WebRTCMode, type WhereCondition, type WhereOperator, ConnectBase as default, detectInAppBrowser, escapeToExternalBrowser, isWebTransportSupported, toAIError, toCreateRoomWire };
package/dist/index.d.ts CHANGED
@@ -8,7 +8,95 @@ declare class ApiError extends Error {
8
8
  code: string | undefined;
9
9
  details: unknown | undefined;
10
10
  constructor(statusCode: number, message: string, code?: string, details?: unknown);
11
+ /**
12
+ * `JSON.stringify(err)` 가 `{}` 로 찍히지 않게 한다.
13
+ *
14
+ * 표준 `Error` 는 message/stack 이 non-enumerable 이라 JSON 직렬화 시 빈 객체가
15
+ * 된다. 로그를 `JSON.stringify` 로 남기는 소비자에게는 "에러 정보가 아무것도 안
16
+ * 온다"로 보여, 실제로는 있는 정보까지 없는 것으로 오진하게 만든다
17
+ * (platform-issue 019fa21c).
18
+ */
19
+ toJSON(): Record<string, unknown>;
11
20
  }
21
+ /**
22
+ * AI 호출/스트리밍 실패의 문서화된 코드. 대응 방법이 코드마다 다르므로
23
+ * 소비자는 `error.code` 로 분기해야 한다.
24
+ *
25
+ * | 코드 | 원인 | 권장 대응 |
26
+ * |------|------|-----------|
27
+ * | `rate_limit_exceeded` | 호출 빈도/동시 스트림 한도 초과 | 호출을 줄이고 `retryAfter` 만큼 대기 후 재시도 |
28
+ * | `quota_exceeded` | 플랜 할당량 소진 | 업그레이드 전까지 재시도 무의미 |
29
+ * | `provider_timeout` | 업스트림 LLM 무응답 | 기다렸다 그대로 재시도 |
30
+ * | `service_unavailable` | 업스트림 연결 불가/과부하 | 기다렸다 그대로 재시도 |
31
+ * | `provider_error` | 프로바이더가 요청을 거부 | API 키·모델 유효성 확인 (재시도 무의미) |
32
+ * | `invalid_request` | 요청 형식 오류 | 재시도 금지 — 요청을 고쳐야 함 |
33
+ * | `config_error` | 앱 AI 설정(키/모델) 누락 | 콘솔에서 설정 |
34
+ * | `unauthorized` | 인증 필요 | 로그인 후 재시도 |
35
+ * | `stream_failed` | 그 외 스트림 처리 실패 | 재시도 가능 — `retryable` 확인 |
36
+ */
37
+ type AIErrorCode = "rate_limit_exceeded" | "quota_exceeded" | "provider_timeout" | "service_unavailable" | "provider_error" | "invalid_request" | "config_error" | "unauthorized" | "stream_failed" | (string & {});
38
+ /**
39
+ * AIError 는 `cb.ai.chatStream` / `cb.realtime.stream` 실패를 소비자가 분기 가능한
40
+ * 형태로 surface 한다.
41
+ *
42
+ * 기존엔 모든 실패가 `new Error(message)` 였고 서버도 코드를 보내지 않아,
43
+ * `onError` 로 온 값을 `JSON.stringify` 하면 `{}` 였다. 그래서 "업스트림 다운(기다렸다
44
+ * 재시도)"과 "동시 스트림 한도 초과(호출을 줄여야 함)"를 구분할 수 없었다
45
+ * (platform-issue 019fa21c).
46
+ *
47
+ * ```ts
48
+ * await cb.realtime.stream(messages, {
49
+ * onToken: (t) => process.stdout.write(t),
50
+ * onError: (e) => {
51
+ * if (e.code === 'rate_limit_exceeded') backOff(e.retryAfter ?? 30)
52
+ * else if (e.retryable) scheduleRetry() // provider_timeout / service_unavailable
53
+ * else giveUp(e.message) // invalid_request / provider_error
54
+ * },
55
+ * })
56
+ * ```
57
+ */
58
+ declare class AIError extends Error {
59
+ /** 문서화된 에러 코드. 분기 기준은 항상 이 필드다. */
60
+ code: AIErrorCode;
61
+ /** 시간차를 두고 같은 요청을 재시도할 가치가 있는지. */
62
+ retryable: boolean;
63
+ /** 업스트림 HTTP 상태 코드 (알려진 경우에만). */
64
+ status?: number;
65
+ /** 실패를 일으킨 업스트림 프로바이더 (예: `openai_compatible`). */
66
+ provider?: string;
67
+ /** 실패를 일으킨 모델명. */
68
+ model?: string;
69
+ /** rate_limit_exceeded/quota_exceeded 에서 권장 대기 시간(초). */
70
+ retryAfter?: number;
71
+ /** 프로바이더가 준 하위 코드 (예: `max_tokens_exceeds_context`). 진단 보조용. */
72
+ detailCode?: string;
73
+ /** AI 스트리밍 세션 ID (실시간 스트림에서만). */
74
+ sessionId?: string;
75
+ constructor(init: {
76
+ code?: string;
77
+ message?: string;
78
+ retryable?: boolean;
79
+ status?: number;
80
+ provider?: string;
81
+ model?: string;
82
+ retryAfter?: number;
83
+ detailCode?: string;
84
+ sessionId?: string;
85
+ });
86
+ /** `JSON.stringify(err)` 가 `{}` 가 되지 않도록 한다 (ApiError.toJSON 참조). */
87
+ toJSON(): Record<string, unknown>;
88
+ }
89
+ /**
90
+ * 서버가 보낸 에러 페이로드(WS `stream_error` data / SSE in-band 이벤트 /
91
+ * HTTP 에러 본문)를 AIError 로 정규화한다. 필드명은 snake_case(서버) 와
92
+ * camelCase(SDK 내부) 양쪽을 모두 수용한다.
93
+ */
94
+ declare function toAIError(payload: unknown, fallback?: {
95
+ code?: string;
96
+ message?: string;
97
+ sessionId?: string;
98
+ status?: number;
99
+ }): AIError;
12
100
  declare class AuthError extends Error {
13
101
  constructor(message: string);
14
102
  }
@@ -61,6 +149,8 @@ declare class GameError extends Error {
61
149
  requested?: string;
62
150
  available?: string[];
63
151
  });
152
+ /** `JSON.stringify(err)` 가 `{}` 가 되지 않도록 한다 (ApiError.toJSON 참조). */
153
+ toJSON(): Record<string, unknown>;
64
154
  }
65
155
 
66
156
  interface AbortOptions {
@@ -526,7 +616,15 @@ interface AIChatStreamCallbacks {
526
616
  */
527
617
  onSearching?: (progress: AgenticSearchProgress) => void;
528
618
  onDone?: () => void;
529
- onError?: (error: string) => void;
619
+ /**
620
+ * 스트림 실패. `error.code` 로 대응을 분기한다 — `rate_limit_exceeded` 는
621
+ * 호출을 줄여야 하고, `provider_timeout`/`service_unavailable` 은 기다렸다
622
+ * 재시도하며, `invalid_request`/`provider_error` 는 재시도해도 계속 실패한다.
623
+ *
624
+ * 5.0.0 이전에는 `string` 이 전달되어 코드로 분기할 수 없었다
625
+ * (platform-issue 019fa21c). 문자열이 필요하면 `error.message` 를 쓴다.
626
+ */
627
+ onError?: (error: AIError) => void;
530
628
  /**
531
629
  * `options.signal` 로 스트림을 취소(abort)했을 때 호출된다. 정상적인
532
630
  * 사용자 취소이므로 `onError` 대신 본 콜백이 호출되며, `onDone` 은 호출되지
@@ -614,8 +712,15 @@ interface AIStreamChunk {
614
712
  success?: boolean;
615
713
  durationMs?: number;
616
714
  searching?: AgenticSearchProgress;
715
+ /** 문서화된 에러 코드 (`provider_timeout` 등). AIError.code 가 된다. */
617
716
  error?: string;
618
717
  message?: string;
718
+ /** 프로바이더가 준 하위 코드 (`max_tokens_exceeds_context` 등). */
719
+ code?: string;
720
+ /** 실패를 일으킨 업스트림 프로바이더. */
721
+ provider?: string;
722
+ /** 실패를 일으킨 모델. */
723
+ model?: string;
619
724
  }
620
725
 
621
726
  /**
@@ -1148,6 +1253,118 @@ declare class AnalyticsAPI {
1148
1253
  private log;
1149
1254
  }
1150
1255
 
1256
+ /** 멤버의 로그인 수단. 백엔드 `appmemberidentity.ProviderType`. */
1257
+ type AppMemberProviderType = "EMAIL" | "USERNAME" | "GOOGLE" | "APPLE" | "KAKAO" | "NAVER" | "GITHUB" | "DISCORD" | "FACEBOOK" | "GUEST";
1258
+ /** 멤버 목록 항목의 identity. 백엔드 `FetchAppMemberIdentityItem` 매핑. */
1259
+ interface AppMemberIdentitySummary {
1260
+ id: string;
1261
+ type: AppMemberProviderType;
1262
+ create_time: string;
1263
+ }
1264
+ /**
1265
+ * `cb.appMembers.list` 항목. 백엔드 `FetchAppMemberItem` 매핑.
1266
+ *
1267
+ * `email` 은 `app_members.email` 컬럼이 우선이고, NULL 이면 EMAIL identity 의 provider_uid 로
1268
+ * fallback 한다(backfill 이전 legacy 멤버). 이메일이 정말 없으면 빈 문자열이다.
1269
+ */
1270
+ interface AppMemberListItem {
1271
+ id: string;
1272
+ /** 개인정보 — 앱 소유자 권한으로만 내려온다. 멤버 토큰에는 노출되지 않는다. */
1273
+ email: string;
1274
+ nickname: string;
1275
+ signup_time: string;
1276
+ identities: AppMemberIdentitySummary[];
1277
+ is_suspended: boolean;
1278
+ suspended_until?: string;
1279
+ }
1280
+ /** `cb.appMembers.list` 반환값. 백엔드 `FetchAppMemberResponse` 매핑. */
1281
+ interface AppMemberList {
1282
+ total_count: number;
1283
+ app_members: AppMemberListItem[];
1284
+ }
1285
+ /** `cb.appMembers.list` 조회 옵션. */
1286
+ interface ListAppMembersOptions {
1287
+ /** 1-based 페이지 번호 (기본 1). */
1288
+ page?: number;
1289
+ /** 페이지 크기 (기본 100). 100 을 넘기면 서버가 100 으로 절삭한다. */
1290
+ pageSize?: number;
1291
+ /**
1292
+ * 닉네임·이메일·로그인 identity(email/username)를 함께 부분 일치(대소문자 무시)한다.
1293
+ * 문의로 들어온 이메일이 어느 회원인지 대조하는 용도. `total_count` 도 이 필터를 반영한다.
1294
+ */
1295
+ search?: string;
1296
+ }
1297
+ /** 멤버 상세의 identity. 백엔드 `FetchAppMemberIdentityDetail` 매핑. */
1298
+ interface AppMemberIdentityDetail {
1299
+ id: string;
1300
+ type: AppMemberProviderType;
1301
+ provider_uid: string;
1302
+ create_time: string;
1303
+ update_time: string;
1304
+ }
1305
+ /** `cb.appMembers.get` 반환값. 백엔드 `FetchAppMemberDetailResponse` 매핑. */
1306
+ interface AppMemberDetail {
1307
+ id: string;
1308
+ /** 개인정보 — 앱 소유자 권한으로만 내려온다. */
1309
+ email: string;
1310
+ nickname: string;
1311
+ custom_data: Record<string, unknown>;
1312
+ signup_time: string;
1313
+ update_time: string;
1314
+ identities: AppMemberIdentityDetail[];
1315
+ is_suspended: boolean;
1316
+ suspended_at?: string;
1317
+ suspended_until?: string;
1318
+ suspend_reason?: string;
1319
+ }
1320
+ /**
1321
+ * 앱 멤버 **관리자 조회** API — 서버사이드 전용.
1322
+ *
1323
+ * 콘솔 JWT 또는 service_role 함수(`ctx.cbAdmin`)로 호출한다. Public Key(cb_pk_) 단독 브라우저
1324
+ * SDK 인스턴스로는 호출할 수 없다 — 다른 회원의 이메일을 클라이언트에서 읽는 경로를 만들지
1325
+ * 않기 위한 의도적 제약이다. 멤버가 **자기** 정보를 볼 때는 `cb.auth.getMe()` 를 쓴다.
1326
+ *
1327
+ * service_role 함수에서 쓰려면 함수 `management_scopes` 에 `app_member:read` 를 opt-in 해야
1328
+ * 한다. 이 스코프는 **이메일(개인정보)** 을 함께 열어주므로 어드민/CS 흐름에만 부여할 것.
1329
+ *
1330
+ * 쓰기(생성·삭제·정지·수정)와 활동 로그 조회는 콘솔 전용이다 — service_role 에 열려 있지 않다.
1331
+ *
1332
+ * @example
1333
+ * ```typescript
1334
+ * // 함수(service_role, management_scopes: ["app_member:read"]) 안에서
1335
+ * // 1) 문의로 들어온 이메일이 어느 회원인지 찾기
1336
+ * const found = await ctx.cbAdmin.appMembers.list(ctx.appId, { search: 'user@example.com' })
1337
+ * console.log(found.total_count, found.app_members[0]?.nickname)
1338
+ *
1339
+ * // 2) 회원 목록 페이지네이션 (자체 어드민 화면)
1340
+ * const page1 = await ctx.cbAdmin.appMembers.list(ctx.appId, { page: 1, pageSize: 50 })
1341
+ * for (const m of page1.app_members) console.log(m.email, m.nickname)
1342
+ *
1343
+ * // 3) 회원 상세 — 로그인 수단까지
1344
+ * const detail = await ctx.cbAdmin.appMembers.get(ctx.appId, found.app_members[0].id)
1345
+ * console.log(detail.email, detail.identities.map((i) => i.type))
1346
+ * ```
1347
+ */
1348
+ declare class AppMembersAPI {
1349
+ private http;
1350
+ constructor(http: HttpClient);
1351
+ private ensureServerAuth;
1352
+ /**
1353
+ * 앱 멤버 목록을 조회한다 (이메일 포함). (management_scope: `app_member:read`)
1354
+ *
1355
+ * @param appId 앱 ID
1356
+ * @param options 페이지네이션 및 `search`(닉네임·이메일 부분 일치)
1357
+ */
1358
+ list(appId: string, options?: ListAppMembersOptions): Promise<AppMemberList>;
1359
+ /**
1360
+ * 앱 멤버 상세를 조회한다 (이메일 + 로그인 수단 포함). (management_scope: `app_member:read`)
1361
+ *
1362
+ * @param appId 앱 ID
1363
+ * @param memberId 멤버 ID
1364
+ */
1365
+ get(appId: string, memberId: string): Promise<AppMemberDetail>;
1366
+ }
1367
+
1151
1368
  /** 앱 멤버 회원가입 요청 */
1152
1369
  interface MemberSignUpRequest {
1153
1370
  login_id: string;
@@ -6399,7 +6616,13 @@ interface StreamDoneData {
6399
6616
  /** AI 스트리밍 완료 콜백 */
6400
6617
  type StreamDoneCallback = (result: StreamDoneData) => void;
6401
6618
  /** AI 스트리밍 에러 콜백 */
6402
- type StreamErrorCallback = (error: Error) => void;
6619
+ /**
6620
+ * AI 스트리밍 실패 콜백. 전달되는 값은 `AIError` 로, `error.code` 로 대응을
6621
+ * 분기할 수 있다 (`provider_timeout`/`service_unavailable` = 기다렸다 재시도,
6622
+ * `rate_limit_exceeded` = 호출 감소, `invalid_request` = 재시도 금지).
6623
+ * 5.0.0 이전에는 코드 없는 `Error` 라 구분이 불가능했다 (platform-issue 019fa21c).
6624
+ */
6625
+ type StreamErrorCallback = (error: AIError) => void;
6403
6626
  /** AI 도구 호출 콜백 */
6404
6627
  type StreamToolCallCallback = (toolName: string, args: Record<string, unknown>, index: number) => void;
6405
6628
  /** AI 도구 실행 완료 콜백 */
@@ -9695,6 +9918,12 @@ declare class ConnectBase {
9695
9918
  * service_role 함수에서는 management_scopes(role:read / role:manage)가 필요하다.
9696
9919
  */
9697
9920
  readonly roles: RolesAPI;
9921
+ /**
9922
+ * 앱 멤버 관리자 조회 API — 서버사이드 전용(ctx.cbAdmin / 콘솔 JWT).
9923
+ * 이메일(개인정보)을 포함하므로 service_role 함수에서는 management_scope `app_member:read`
9924
+ * opt-in 이 필요하다. 멤버가 자기 정보를 볼 때는 `cb.auth.getMe()` 를 쓴다.
9925
+ */
9926
+ readonly appMembers: AppMembersAPI;
9698
9927
  /**
9699
9928
  * 비디오 API (동영상 업로드/스트리밍)
9700
9929
  */
@@ -9784,4 +10013,4 @@ declare class ConnectBase {
9784
10013
  updateConfig(config: Partial<ConnectBaseConfig>): void;
9785
10014
  }
9786
10015
 
9787
- export { AIAPI, type AIChatRequest, type AIChatResponse, type AIChatStreamCallbacks, type AIChatStreamOptions, type AIMessage, type AISource, type AIStreamChunk, type AITool, type AIToolCall, type AIToolEvent, AUTH_MEMBER_ID_TOKEN, type AckMessagesRequest, type AdMobDailyReport, type AdMobReportResponse, type AdMobReportSummary, type AdReportResponse, type AdReportSummary, type AdmobConnectionInfo, AdsAPI, type AdsenseConnectionInfo, type AgenticSearchProgress, type AggregateResult, type AggregateStage, type AnalyticsConfig, type AnalyticsEvent, ApiError, type ApiErrorDetail, type AppStatsResponse, type ArchivePolicy, type AtomicOperator, type AtomicOperatorType, AuthError, type AuthSettingsResponse, type BackupInfo, type BatchOperation, type BatchOperationResult, type BatchSetPageMetaRequest, type BatchWriteResult, type BillingCycle, type BillingKeyResponse, type BiometricInfo, type BiometricResult, type BulkCreateResponse, type BulkError, type CPUInfo, type CancelPaymentRequest, type CancelPaymentResponse, type CancelSubscriptionRequest, type CategoryInfo, type ChangePlanPreview, type ChangePlanRequest, type Channel, type ChannelMembership, type ChannelStats, type ChargeWithBillingKeyRequest, type ChargeWithBillingKeyResponse, type ChatMessage, type ClientMessage, type ColumnSchema, type CommentListResponse, type CompleteUploadRequest, type CompleteUploadResponse, type ConfirmBillingKeyRequest, type ConfirmPaymentRequest, type ConfirmPaymentResponse, ConnectBase, type ConnectBaseConfig, type ConnectedData, type ConnectionState, type ConsentOptions, type ConsumeMessagesResponse, type ConsumeOptions, type CopyTableRequest, type CopyTableResponse, type CreateBackupRequest, type CreateChannelRequest, type CreateCheckoutSessionRequest, type CreateCheckoutSessionResponse, type CreateColumnRequest, type CreateDataRequest, type CreateDocumentRequest, type CreateFolderRequest, type CreateFolderResponse, type CreateGeoIndexRequest, type CreateIndexRequest, type CreateLobbyRequest, type CreatePlaylistRequest, type CreatePublicKeyRequest, type CreatePublicKeyResponse, type CreateRelationRequest, type CreateRolePayload, type CreateRoleResult, type CreateRoomResult, type CreateSearchIndexRequest, type CreateSecurityRuleRequest, type CreateSubscriptionRequest, type CreateTableRequest, type CreateTriggerRequest, type CreateVideoStorageRequest, type DailyReport, type DataItem, type DataType, type DatabaseChange, type DatabaseChangeMessage, type DatabaseChangeType, type DatabaseRealtimeConnectOptions, type DatabaseRealtimeFilter, type DatabaseRealtimeHandlers, type DatabaseRealtimeSubscription, type DatabaseSnapshot, type DatabaseSnapshotMessage, type DatabaseSubscribeOptions, type DeleteWhereResponse, type DeviceInfo, type DocumentResponse, type EnabledProviderInfo, type EnabledProvidersResponse, EndpointAPI, type EndpointCallInit, type ErrorHandler, type ErrorMessage, type ErrorReport, type ErrorTrackerConfig, type ErrorType, type ExportDataRequest, type ExportDataResponse, type FetchDataResponse, type FetchFilesResponse, type FetchPublicKeysResponse, type FileItem, type FileStats, GameAPI, type GameAction, type GameClientConfig, type GameConfig, GameConfigAPI, type GameConfigPatch, type GameConnectionState, type GameConnectionStatus, type GameDelta, GameError, type GameErrorCode, type GameEventHandlers, type GamePlayer, GameRoom, type GameRoomConfig, type GameRoomInfo, GameRoomTransport, type GameServerMessage, type GameServerMessageType, type GameState, type GameTransportConfig, type GenerateUploadURLByPathRequest, type GenerateUploadURLRequest, type GenerateUploadURLResponse, type GeoBoundingBox, type GeoIndex, type GeoNear, type GeoPoint, type GeoPolygon, type GeoQuery, type GeoResponse, type GeoResult, type GetAuthorizationURLResponse, type GetFileByPathResponse, type GoogleConnectionStatus, type HistoryResponse, type ICEServer, type ICEServersResponse, type ImageResult, type ImportDataRequest, type ImportDataResponse, type IndexAnalysis, type IndexRecommendation, type InitUploadResponse, type InvokeFunctionRequest, type InvokeFunctionResponse, type IssueBillingKeyRequest, type IssueBillingKeyResponse, type JoinQueueRequest, type JoinRoomRequest, type JoinRoomResponse, type KnowledgeSearchRequest, type KnowledgeSearchResponse, type KnowledgeSearchResult, type LeaderboardEntry, type LeaderboardListResponse, type LeaderboardScoreEntry, type LifecyclePolicy, type ListBillingKeysResponse, type ListDocumentsResponse, type ListPageMetasOptions, type ListPageMetasResponse, type ListPaymentsOptions, type ListSubscriptionPaymentsRequest, type ListSubscriptionPaymentsResponse, type ListSubscriptionsRequest, type ListSubscriptionsResponse, type LobbyInfo, type LobbyInvite, type LobbyMember, type LobbyVisibility, type MatchResult, type MatchmakingTicket, type MatchqueueListResponse, type MatchqueueTicket, type MemberInfoResponse, type MemberSignInRequest, type MemberSignInResponse, type MemberSignUpRequest, type MemberSignUpResponse, type MembershipTier, type MemoryInfo, type MessageHandler, type MigrateDataRequest, type MigrateDataResponse, type MoveFileRequest, type NackMessageRequest, NativeAPI, type OAuthCallbackResponse, type OAuthProvider, type OnPaymentFailure, type OpenDialogOptions, type OpenDialogResult, type PageMetaResponse, type PartyInfo, type PartyInvite, type PartyMember, type PauseSubscriptionRequest, type PaymentDetail, type PaymentListItem, type PaymentListResult, type PaymentMode, type PaymentProvider, type PaymentStatus, type PeerInfo, type Platform, type PlayerEvent, type PlayerStats, type Playlist, type PlaylistItem, type PollUntilOptions, type PongMessage, type PopulateOption, type Position, type PreparePaymentRequest, type PreparePaymentResponse, type PresenceChangeHandler, type PresenceInfo, type PresenceSetOptions, type PresenceStatus, type PresenceStatusResult, type ProrationMode, type PublicKeyItem, type PublicKeyPaymentMode, type PublishBatchRequest, type PublishBatchResponse, type PublishMessageRequest, type PublishMessageResponse, type PushPlatform, type PushStatsResult, type QualityProgress, type QueryOptions, type QueueInfoResponse, type QueueMessage, type ReadReceiptHandler, type ReadReceiptInfo, type RealtimeConnectOptions, type RealtimeMessage, type RegisterDeviceRequest, type RelationType, type RenameFileRequest, type RenameFileResponse, type ReplayHighlight, type ReplayInfo, type ReplayPlayerInfo, type RestoreBackupRequest, type RestoreBackupResponse, type RetentionPolicy, type RoleDetail, type RoleList, type RoleListItem, type RolePermissionItem, type RoleUserItem, RolesAPI, type RoomInfo, type RoomStaleMessage, type RoomSummary, type RoomsResponse, type SaveDialogOptions, type SaveDialogResult, type ScriptDetailResponse, type ScriptListResponse, type ScriptMeta, type ScriptVersion, type ScriptVersionListResponse, type SearchIndex, type SearchOptions, type SearchResponse, type SearchResult, type SecurityRule, type SendOptions, type SendSuperChatOptions, type SendSuperChatResponse, type ServerMessage, SessionManager, type SetPageMetaRequest, type Shorts, type ShortsListResponse, type SignalingMessage, type SignalingMessageType, type SlowQueryInfo, type SpectatorInfo, type SpectatorPlayerState, type SpectatorState, type SpeechRecognizeOptions, type SpeechResult, type StateChange, type StateChangeHandler, type StorageUploadOptions, type StorageUploadProgress, type StreamContentPart, type StreamDoneCallback, type StreamDoneData, type StreamErrorCallback, type StreamHandlers, type StreamImageURLPart, type StreamMessage, type StreamOptions, type StreamSession, type StreamTextPart, type StreamTokenCallback, type StreamToolCallCallback, type StreamToolResultCallback, type StreamURLResponse, type SubscribeOptions, type SubscribeTopicRequest, type SubscribedData, type Subscription, type SubscriptionPaymentResponse, type SubscriptionPaymentStatus, type SubscriptionResponse, type SubscriptionStatus, type SuperChat, type SuperChatType, type SystemInfo, type TTLConfig, type TableAccessLevel, type TableColumnDef, type TableIndex, type TableRelation, type TableSchema, type TableSchemaDefinition, type TokenPersistence, type TransactionRead, type TransactionResult, type TransactionWrite, type TransactionWriteResult, type TranscodeStatus, type TransportType, type Trigger, type TriggerEvent, type TriggerHandlerType, type TypingChangeHandler, type TypingInfo, type UpdateBillingKeyRequest, type UpdateChannelRequest, type UpdateColumnRequest, type UpdateCustomDataRequest, type UpdateCustomDataResponse, type UpdateDataRequest, type UpdateDocumentRequest, type UpdateLobbyRequest, type UpdatePublicKeyRequest, type UpdatePublicKeyResponse, type UpdateRolePayload, type UpdateSecurityRuleRequest, type UpdateSubscriptionRequest, type UpdateTriggerRequest, type UpdateVideoRequest, type UpdateVideoStorageRequest, type UploadByPathOptions, type UploadFileOptions, type UploadFileResponse, type UploadOptions, type UploadProgress, type VAPIDPublicKeyResponse, type ValidateResponse, type ValidationSchema, type ValidationSchemaField, type ValidationStateTransitions, type Video, type VideoComment, type VideoCompleteUploadResponse, type VideoListOptions, type VideoListResponse, VideoProcessingError, type VideoQuality, type VideoStatus, type VideoStorage, type VideoStorageListResponse, type VideoVisibility, type VoiceChannel, type VoiceMember, type WaitOptions, type WatchHistoryItem, type WebPushSubscription, type WebRTCConnectOptions, type WebRTCConnectionState, type WebRTCMode, type WhereCondition, type WhereOperator, ConnectBase as default, detectInAppBrowser, escapeToExternalBrowser, isWebTransportSupported, toCreateRoomWire };
10016
+ export { AIAPI, type AIChatRequest, type AIChatResponse, type AIChatStreamCallbacks, type AIChatStreamOptions, AIError, type AIErrorCode, type AIMessage, type AISource, type AIStreamChunk, type AITool, type AIToolCall, type AIToolEvent, AUTH_MEMBER_ID_TOKEN, type AckMessagesRequest, type AdMobDailyReport, type AdMobReportResponse, type AdMobReportSummary, type AdReportResponse, type AdReportSummary, type AdmobConnectionInfo, AdsAPI, type AdsenseConnectionInfo, type AgenticSearchProgress, type AggregateResult, type AggregateStage, type AnalyticsConfig, type AnalyticsEvent, ApiError, type ApiErrorDetail, type AppMemberDetail, type AppMemberIdentityDetail, type AppMemberIdentitySummary, type AppMemberList, type AppMemberListItem, type AppMemberProviderType, AppMembersAPI, type AppStatsResponse, type ArchivePolicy, type AtomicOperator, type AtomicOperatorType, AuthError, type AuthSettingsResponse, type BackupInfo, type BatchOperation, type BatchOperationResult, type BatchSetPageMetaRequest, type BatchWriteResult, type BillingCycle, type BillingKeyResponse, type BiometricInfo, type BiometricResult, type BulkCreateResponse, type BulkError, type CPUInfo, type CancelPaymentRequest, type CancelPaymentResponse, type CancelSubscriptionRequest, type CategoryInfo, type ChangePlanPreview, type ChangePlanRequest, type Channel, type ChannelMembership, type ChannelStats, type ChargeWithBillingKeyRequest, type ChargeWithBillingKeyResponse, type ChatMessage, type ClientMessage, type ColumnSchema, type CommentListResponse, type CompleteUploadRequest, type CompleteUploadResponse, type ConfirmBillingKeyRequest, type ConfirmPaymentRequest, type ConfirmPaymentResponse, ConnectBase, type ConnectBaseConfig, type ConnectedData, type ConnectionState, type ConsentOptions, type ConsumeMessagesResponse, type ConsumeOptions, type CopyTableRequest, type CopyTableResponse, type CreateBackupRequest, type CreateChannelRequest, type CreateCheckoutSessionRequest, type CreateCheckoutSessionResponse, type CreateColumnRequest, type CreateDataRequest, type CreateDocumentRequest, type CreateFolderRequest, type CreateFolderResponse, type CreateGeoIndexRequest, type CreateIndexRequest, type CreateLobbyRequest, type CreatePlaylistRequest, type CreatePublicKeyRequest, type CreatePublicKeyResponse, type CreateRelationRequest, type CreateRolePayload, type CreateRoleResult, type CreateRoomResult, type CreateSearchIndexRequest, type CreateSecurityRuleRequest, type CreateSubscriptionRequest, type CreateTableRequest, type CreateTriggerRequest, type CreateVideoStorageRequest, type DailyReport, type DataItem, type DataType, type DatabaseChange, type DatabaseChangeMessage, type DatabaseChangeType, type DatabaseRealtimeConnectOptions, type DatabaseRealtimeFilter, type DatabaseRealtimeHandlers, type DatabaseRealtimeSubscription, type DatabaseSnapshot, type DatabaseSnapshotMessage, type DatabaseSubscribeOptions, type DeleteWhereResponse, type DeviceInfo, type DocumentResponse, type EnabledProviderInfo, type EnabledProvidersResponse, EndpointAPI, type EndpointCallInit, type ErrorHandler, type ErrorMessage, type ErrorReport, type ErrorTrackerConfig, type ErrorType, type ExportDataRequest, type ExportDataResponse, type FetchDataResponse, type FetchFilesResponse, type FetchPublicKeysResponse, type FileItem, type FileStats, GameAPI, type GameAction, type GameClientConfig, type GameConfig, GameConfigAPI, type GameConfigPatch, type GameConnectionState, type GameConnectionStatus, type GameDelta, GameError, type GameErrorCode, type GameEventHandlers, type GamePlayer, GameRoom, type GameRoomConfig, type GameRoomInfo, GameRoomTransport, type GameServerMessage, type GameServerMessageType, type GameState, type GameTransportConfig, type GenerateUploadURLByPathRequest, type GenerateUploadURLRequest, type GenerateUploadURLResponse, type GeoBoundingBox, type GeoIndex, type GeoNear, type GeoPoint, type GeoPolygon, type GeoQuery, type GeoResponse, type GeoResult, type GetAuthorizationURLResponse, type GetFileByPathResponse, type GoogleConnectionStatus, type HistoryResponse, type ICEServer, type ICEServersResponse, type ImageResult, type ImportDataRequest, type ImportDataResponse, type IndexAnalysis, type IndexRecommendation, type InitUploadResponse, type InvokeFunctionRequest, type InvokeFunctionResponse, type IssueBillingKeyRequest, type IssueBillingKeyResponse, type JoinQueueRequest, type JoinRoomRequest, type JoinRoomResponse, type KnowledgeSearchRequest, type KnowledgeSearchResponse, type KnowledgeSearchResult, type LeaderboardEntry, type LeaderboardListResponse, type LeaderboardScoreEntry, type LifecyclePolicy, type ListAppMembersOptions, type ListBillingKeysResponse, type ListDocumentsResponse, type ListPageMetasOptions, type ListPageMetasResponse, type ListPaymentsOptions, type ListSubscriptionPaymentsRequest, type ListSubscriptionPaymentsResponse, type ListSubscriptionsRequest, type ListSubscriptionsResponse, type LobbyInfo, type LobbyInvite, type LobbyMember, type LobbyVisibility, type MatchResult, type MatchmakingTicket, type MatchqueueListResponse, type MatchqueueTicket, type MemberInfoResponse, type MemberSignInRequest, type MemberSignInResponse, type MemberSignUpRequest, type MemberSignUpResponse, type MembershipTier, type MemoryInfo, type MessageHandler, type MigrateDataRequest, type MigrateDataResponse, type MoveFileRequest, type NackMessageRequest, NativeAPI, type OAuthCallbackResponse, type OAuthProvider, type OnPaymentFailure, type OpenDialogOptions, type OpenDialogResult, type PageMetaResponse, type PartyInfo, type PartyInvite, type PartyMember, type PauseSubscriptionRequest, type PaymentDetail, type PaymentListItem, type PaymentListResult, type PaymentMode, type PaymentProvider, type PaymentStatus, type PeerInfo, type Platform, type PlayerEvent, type PlayerStats, type Playlist, type PlaylistItem, type PollUntilOptions, type PongMessage, type PopulateOption, type Position, type PreparePaymentRequest, type PreparePaymentResponse, type PresenceChangeHandler, type PresenceInfo, type PresenceSetOptions, type PresenceStatus, type PresenceStatusResult, type ProrationMode, type PublicKeyItem, type PublicKeyPaymentMode, type PublishBatchRequest, type PublishBatchResponse, type PublishMessageRequest, type PublishMessageResponse, type PushPlatform, type PushStatsResult, type QualityProgress, type QueryOptions, type QueueInfoResponse, type QueueMessage, type ReadReceiptHandler, type ReadReceiptInfo, type RealtimeConnectOptions, type RealtimeMessage, type RegisterDeviceRequest, type RelationType, type RenameFileRequest, type RenameFileResponse, type ReplayHighlight, type ReplayInfo, type ReplayPlayerInfo, type RestoreBackupRequest, type RestoreBackupResponse, type RetentionPolicy, type RoleDetail, type RoleList, type RoleListItem, type RolePermissionItem, type RoleUserItem, RolesAPI, type RoomInfo, type RoomStaleMessage, type RoomSummary, type RoomsResponse, type SaveDialogOptions, type SaveDialogResult, type ScriptDetailResponse, type ScriptListResponse, type ScriptMeta, type ScriptVersion, type ScriptVersionListResponse, type SearchIndex, type SearchOptions, type SearchResponse, type SearchResult, type SecurityRule, type SendOptions, type SendSuperChatOptions, type SendSuperChatResponse, type ServerMessage, SessionManager, type SetPageMetaRequest, type Shorts, type ShortsListResponse, type SignalingMessage, type SignalingMessageType, type SlowQueryInfo, type SpectatorInfo, type SpectatorPlayerState, type SpectatorState, type SpeechRecognizeOptions, type SpeechResult, type StateChange, type StateChangeHandler, type StorageUploadOptions, type StorageUploadProgress, type StreamContentPart, type StreamDoneCallback, type StreamDoneData, type StreamErrorCallback, type StreamHandlers, type StreamImageURLPart, type StreamMessage, type StreamOptions, type StreamSession, type StreamTextPart, type StreamTokenCallback, type StreamToolCallCallback, type StreamToolResultCallback, type StreamURLResponse, type SubscribeOptions, type SubscribeTopicRequest, type SubscribedData, type Subscription, type SubscriptionPaymentResponse, type SubscriptionPaymentStatus, type SubscriptionResponse, type SubscriptionStatus, type SuperChat, type SuperChatType, type SystemInfo, type TTLConfig, type TableAccessLevel, type TableColumnDef, type TableIndex, type TableRelation, type TableSchema, type TableSchemaDefinition, type TokenPersistence, type TransactionRead, type TransactionResult, type TransactionWrite, type TransactionWriteResult, type TranscodeStatus, type TransportType, type Trigger, type TriggerEvent, type TriggerHandlerType, type TypingChangeHandler, type TypingInfo, type UpdateBillingKeyRequest, type UpdateChannelRequest, type UpdateColumnRequest, type UpdateCustomDataRequest, type UpdateCustomDataResponse, type UpdateDataRequest, type UpdateDocumentRequest, type UpdateLobbyRequest, type UpdatePublicKeyRequest, type UpdatePublicKeyResponse, type UpdateRolePayload, type UpdateSecurityRuleRequest, type UpdateSubscriptionRequest, type UpdateTriggerRequest, type UpdateVideoRequest, type UpdateVideoStorageRequest, type UploadByPathOptions, type UploadFileOptions, type UploadFileResponse, type UploadOptions, type UploadProgress, type VAPIDPublicKeyResponse, type ValidateResponse, type ValidationSchema, type ValidationSchemaField, type ValidationStateTransitions, type Video, type VideoComment, type VideoCompleteUploadResponse, type VideoListOptions, type VideoListResponse, VideoProcessingError, type VideoQuality, type VideoStatus, type VideoStorage, type VideoStorageListResponse, type VideoVisibility, type VoiceChannel, type VoiceMember, type WaitOptions, type WatchHistoryItem, type WebPushSubscription, type WebRTCConnectOptions, type WebRTCConnectionState, type WebRTCMode, type WhereCondition, type WhereOperator, ConnectBase as default, detectInAppBrowser, escapeToExternalBrowser, isWebTransportSupported, toAIError, toCreateRoomWire };