@broadcastingplatforms/sdk 0.0.0-dev.52fbff9

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.
Files changed (57) hide show
  1. package/dist/auth-CSkJb9Wc.d.mts +1180 -0
  2. package/dist/auth-CSkJb9Wc.d.ts +1180 -0
  3. package/dist/auth.d.mts +1 -0
  4. package/dist/auth.d.ts +1 -0
  5. package/dist/auth.js +456 -0
  6. package/dist/auth.mjs +433 -0
  7. package/dist/base-client-BHrP5nb_.d.ts +70 -0
  8. package/dist/base-client-BbMR6ZrV.d.mts +70 -0
  9. package/dist/browser-client.d.mts +47 -0
  10. package/dist/browser-client.d.ts +47 -0
  11. package/dist/browser-client.js +1983 -0
  12. package/dist/browser-client.mjs +1952 -0
  13. package/dist/channels.d.mts +1 -0
  14. package/dist/channels.d.ts +1 -0
  15. package/dist/channels.js +78 -0
  16. package/dist/channels.mjs +55 -0
  17. package/dist/chat.d.mts +1 -0
  18. package/dist/chat.d.ts +1 -0
  19. package/dist/chat.js +105 -0
  20. package/dist/chat.mjs +80 -0
  21. package/dist/errors.d.mts +68 -0
  22. package/dist/errors.d.ts +68 -0
  23. package/dist/errors.js +151 -0
  24. package/dist/errors.mjs +127 -0
  25. package/dist/http.d.mts +1 -0
  26. package/dist/http.d.ts +1 -0
  27. package/dist/http.js +323 -0
  28. package/dist/http.mjs +298 -0
  29. package/dist/index.d.mts +7 -0
  30. package/dist/index.d.ts +7 -0
  31. package/dist/index.js +2072 -0
  32. package/dist/index.mjs +2025 -0
  33. package/dist/realtime.d.mts +9 -0
  34. package/dist/realtime.d.ts +9 -0
  35. package/dist/realtime.js +1050 -0
  36. package/dist/realtime.mjs +1021 -0
  37. package/dist/resource.d.mts +1 -0
  38. package/dist/resource.d.ts +1 -0
  39. package/dist/resource.js +52 -0
  40. package/dist/resource.mjs +27 -0
  41. package/dist/server-client.d.mts +60 -0
  42. package/dist/server-client.d.ts +60 -0
  43. package/dist/server-client.js +1984 -0
  44. package/dist/server-client.mjs +1954 -0
  45. package/dist/storage.d.mts +149 -0
  46. package/dist/storage.d.ts +149 -0
  47. package/dist/storage.js +243 -0
  48. package/dist/storage.mjs +211 -0
  49. package/dist/streams.d.mts +1 -0
  50. package/dist/streams.d.ts +1 -0
  51. package/dist/streams.js +267 -0
  52. package/dist/streams.mjs +242 -0
  53. package/dist/types.d.mts +1 -0
  54. package/dist/types.d.ts +1 -0
  55. package/dist/types.js +19 -0
  56. package/dist/types.mjs +1 -0
  57. package/package.json +139 -0
package/dist/http.mjs ADDED
@@ -0,0 +1,298 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+
5
+ // src/errors.ts
6
+ var SDKError = class extends Error {
7
+ /**
8
+ * Construct an SDKError. Signature is compatible with Error.
9
+ * You can pass in a message or an options object, as with the Error constructor.
10
+ * Additional fields (code, etc) may be added via the second argument.
11
+ */
12
+ constructor(message, details = {}) {
13
+ const resolvedMessage = message ?? (typeof details.message === "string" ? details.message : "Unknown error");
14
+ super(resolvedMessage);
15
+ /**
16
+ * Canonical SDK error code.
17
+ */
18
+ __publicField(this, "code");
19
+ /**
20
+ * HTTP status code if available.
21
+ */
22
+ __publicField(this, "statusCode");
23
+ /**
24
+ * End-user safe message.
25
+ */
26
+ __publicField(this, "userMessage");
27
+ /**
28
+ * Optional request metadata (null when unavailable).
29
+ */
30
+ __publicField(this, "request");
31
+ /**
32
+ * Optional response metadata (null when unavailable).
33
+ */
34
+ __publicField(this, "response");
35
+ Object.setPrototypeOf(this, new.target.prototype);
36
+ if (details && typeof details === "object") {
37
+ for (const [key, value] of Object.entries(details)) {
38
+ if (!["name", "message", "stack"].includes(key)) {
39
+ this[key] = value;
40
+ }
41
+ }
42
+ }
43
+ this.name = "SDKError";
44
+ this.code = details.code ?? "unknown_error";
45
+ this.statusCode = typeof details.statusCode === "number" ? details.statusCode : void 0;
46
+ this.userMessage = typeof details.userMessage === "string" ? details.userMessage : this.message;
47
+ this.request = details.request ?? null;
48
+ this.response = details.response ?? null;
49
+ }
50
+ /**
51
+ * Serialize the error into a plain object, preserving extra fields.
52
+ */
53
+ toJSON() {
54
+ const extras = { ...this };
55
+ delete extras.code;
56
+ delete extras.statusCode;
57
+ delete extras.message;
58
+ delete extras.userMessage;
59
+ delete extras.request;
60
+ delete extras.response;
61
+ delete extras.form;
62
+ delete extras.cause;
63
+ return {
64
+ ...extras,
65
+ code: this.code,
66
+ statusCode: this.statusCode,
67
+ message: this.message,
68
+ userMessage: this.userMessage,
69
+ request: this.request,
70
+ response: this.response
71
+ };
72
+ }
73
+ };
74
+ var STATUS_CODE_DEFAULTS = {
75
+ 401: {
76
+ code: "authentication_required",
77
+ message: "Authentication required",
78
+ userMessage: "Please log in to continue. Your session may have expired."
79
+ },
80
+ 403: {
81
+ code: "permission_denied",
82
+ message: "Permission denied",
83
+ userMessage: "You do not have permission to perform this action."
84
+ },
85
+ 404: {
86
+ code: "not_found",
87
+ message: "Resource not found",
88
+ userMessage: "The requested resource was not found."
89
+ },
90
+ 422: {
91
+ code: "validation_failed",
92
+ message: "Validation failed",
93
+ userMessage: "The provided information is invalid. Please check your input and try again."
94
+ },
95
+ 429: {
96
+ code: "rate_limited",
97
+ message: "Rate limit exceeded",
98
+ userMessage: "Too many requests. Please wait a moment and try again."
99
+ },
100
+ 500: {
101
+ code: "server_error",
102
+ message: "Internal server error",
103
+ userMessage: "Something went wrong on our end. Please try again later."
104
+ }
105
+ };
106
+ var DEFAULT_ERROR = {
107
+ code: "unknown_error",
108
+ userMessage: "An unexpected error occurred. Please try again."
109
+ };
110
+ function createSdkError(message, details = {}) {
111
+ const statusCode = details.response?.status;
112
+ const statusValues = statusCode && STATUS_CODE_DEFAULTS[statusCode] ? STATUS_CODE_DEFAULTS[statusCode] : DEFAULT_ERROR;
113
+ const enrichedDetails = {
114
+ ...details,
115
+ statusCode,
116
+ code: details.code ?? statusValues.code,
117
+ userMessage: details.userMessage ?? statusValues.userMessage,
118
+ request: details.request ?? null,
119
+ response: details.response ?? null
120
+ };
121
+ return new SDKError(message, enrichedDetails);
122
+ }
123
+
124
+ // src/http.ts
125
+ var resolveFetch = (provided) => {
126
+ if (provided) {
127
+ return provided.bind(globalThis);
128
+ }
129
+ if (typeof fetch === "function") {
130
+ return fetch.bind(globalThis);
131
+ }
132
+ throw createSdkError(
133
+ "Fetch implementation not found. Provide options.fetch when running outside Node 22+ or the browser."
134
+ );
135
+ };
136
+ var redactRequestMetadata = (request) => {
137
+ const redacted = request.clone();
138
+ redacted.headers.delete("authorization");
139
+ return redacted;
140
+ };
141
+ var removeContentTypeHeader = (headers) => {
142
+ for (const key of Object.keys(headers)) {
143
+ if (key.toLowerCase() === "content-type") {
144
+ delete headers[key];
145
+ }
146
+ }
147
+ };
148
+ var normalizeHeaders = (headers) => {
149
+ if (!headers) {
150
+ return {};
151
+ }
152
+ if (headers instanceof Headers) {
153
+ return Object.fromEntries(headers.entries());
154
+ }
155
+ if (Array.isArray(headers)) {
156
+ return Object.fromEntries(headers);
157
+ }
158
+ return { ...headers };
159
+ };
160
+ var HttpClient = class {
161
+ /**
162
+ * Create a new HTTP client instance.
163
+ */
164
+ constructor(options) {
165
+ __publicField(this, "baseUrl");
166
+ __publicField(this, "defaultHeaders");
167
+ __publicField(this, "fetcher");
168
+ __publicField(this, "beforeRequestHooks", []);
169
+ this.baseUrl = options.baseUrl.replace(/\/+$/, "");
170
+ this.defaultHeaders = {
171
+ "Content-Type": "application/json",
172
+ Accept: "application/json",
173
+ ...options.headers
174
+ };
175
+ this.fetcher = resolveFetch(options.fetch);
176
+ }
177
+ /**
178
+ * Register a hook that runs before each request.
179
+ */
180
+ onBeforeRequest(hook) {
181
+ this.beforeRequestHooks = [...this.beforeRequestHooks, hook];
182
+ return () => {
183
+ this.beforeRequestHooks = this.beforeRequestHooks.filter(
184
+ (existing) => existing !== hook
185
+ );
186
+ };
187
+ }
188
+ /**
189
+ * Execute an HTTP request and return the parsed response.
190
+ */
191
+ async request(path, options = {}) {
192
+ const { data } = await this.requestWithMetadata(path, options);
193
+ return data;
194
+ }
195
+ /**
196
+ * Execute an HTTP request and return the response with request metadata.
197
+ */
198
+ async requestWithMetadata(path, options = {}) {
199
+ const url = /^https?:\/\//i.test(path) ? path : `${this.baseUrl}${path.startsWith("/") ? path : `/${path}`}`;
200
+ const method = (options.method ?? "GET").toUpperCase();
201
+ const headers = {
202
+ ...this.defaultHeaders,
203
+ ...options.headers
204
+ };
205
+ const hasExplicitContentType = Object.keys(options.headers ?? {}).some(
206
+ (key) => key.toLowerCase() === "content-type"
207
+ );
208
+ let request = {
209
+ url,
210
+ init: {
211
+ ...options,
212
+ method,
213
+ headers
214
+ }
215
+ };
216
+ request = await this.beforeRequestHooks.reduce(
217
+ async (pendingRequest, hook) => {
218
+ const currentRequest = await pendingRequest;
219
+ const result = await hook(currentRequest);
220
+ return result ?? currentRequest;
221
+ },
222
+ Promise.resolve(request)
223
+ );
224
+ const normalizedHeaders = normalizeHeaders(request.init.headers);
225
+ const resolvedMethod = (request.init.method ?? method).toUpperCase();
226
+ const hasBody = request.init.body !== void 0 && request.init.body !== null;
227
+ if (!hasBody && !hasExplicitContentType && (resolvedMethod === "GET" || resolvedMethod === "HEAD")) {
228
+ removeContentTypeHeader(normalizedHeaders);
229
+ }
230
+ request = {
231
+ ...request,
232
+ init: {
233
+ ...request.init,
234
+ method: resolvedMethod,
235
+ headers: normalizedHeaders
236
+ }
237
+ };
238
+ const requestMetadata = new Request(request.url, request.init);
239
+ let response = null;
240
+ try {
241
+ response = await this.fetcher(request.url, request.init);
242
+ const contentType = response.headers.get("content-type") ?? "";
243
+ const isJson = contentType.includes("application/json");
244
+ if (!response.ok) {
245
+ const payload = isJson ? await response.json().catch(() => void 0) : await response.text();
246
+ const payloadObject = payload && typeof payload === "object" && !Array.isArray(payload) ? payload : null;
247
+ const fallbackMessage = typeof payload === "string" ? payload : null;
248
+ const message = typeof payloadObject?.message === "string" ? payloadObject.message : fallbackMessage || response.statusText || "Request failed";
249
+ const { code, ...payloadDetails } = payloadObject ?? {};
250
+ const resolvedCode = typeof code === "string" ? code : void 0;
251
+ throw createSdkError(message, {
252
+ ...payloadDetails,
253
+ code: resolvedCode,
254
+ request: redactRequestMetadata(requestMetadata),
255
+ response
256
+ });
257
+ }
258
+ if (response.status === 204) {
259
+ return { data: void 0, request: requestMetadata, response };
260
+ }
261
+ if (contentType.includes("application/json")) {
262
+ return {
263
+ data: await response.json(),
264
+ request: requestMetadata,
265
+ response
266
+ };
267
+ }
268
+ return {
269
+ data: await response.text(),
270
+ request: requestMetadata,
271
+ response
272
+ };
273
+ } catch (error) {
274
+ if (error instanceof SDKError) {
275
+ throw error;
276
+ }
277
+ const fallbackMessage = error instanceof Error ? error.message : "Request failed";
278
+ throw createSdkError(fallbackMessage, {
279
+ request: redactRequestMetadata(requestMetadata),
280
+ response
281
+ });
282
+ }
283
+ }
284
+ /**
285
+ * Determine whether the provided URL is same-origin with the configured base URL.
286
+ */
287
+ isSameOrigin(url) {
288
+ try {
289
+ return new URL(url).origin === new URL(this.baseUrl).origin;
290
+ } catch {
291
+ return false;
292
+ }
293
+ }
294
+ };
295
+ export {
296
+ HttpClient
297
+ };
298
+ //# sourceMappingURL=http.mjs.map
@@ -0,0 +1,7 @@
1
+ export { A as AuthClient, b as AuthClientOptions, c as AuthStateChangeCallback, d as AuthStateChangeEvent, B as BaseResource, i as BeforeRequestHook, N as Channel, O as ChannelCharacteristics, P as ChannelLink, Q as ChannelResponse, T as ChannelTag, C as ChannelsClient, g as ChatClient, U as ChatMessage, V as ChatMessageMetadata, Y as ChatMessageTransaction, Z as ChatMessageUser, W as ChatMessagesQuery, X as ChatMessagesResponse, j as CookieAccessors, k as CookieOptions, l as CookiesStorageAdapter, a as HttpClient, H as HttpClientOptions, m as HttpRequest, n as HttpRequestOptions, R as RealtimeChannel, o as RealtimeChatClient, p as RealtimeClient, q as RealtimeClientOptions, r as RealtimeConnectionState, s as RealtimeConnectionStateCallback, t as RealtimeEventCallback, u as RealtimePresenceChannel, D as ResourceId, E as ResourceQueryParams, F as ResourceQueryValue, v as SDKErrorCode, x as SDKErrorShape, h as SdkClient, w as SdkErrorCode, y as SdkErrorShape, e as SignInPayload, f as SignInWithTokenOptions, z as StorageAdapter, G as Stream, I as StreamChannel, J as StreamListResponse, K as StreamPlayerSource, L as StreamResponse, M as StreamTag, S as StreamsClient } from './auth-CSkJb9Wc.mjs';
2
+ export { ClientFactoryOptions, createBrowserClient, createClient } from './browser-client.mjs';
3
+ export { SDKError, SdkErrorDetails, createSdkError } from './errors.mjs';
4
+ export { createRealtimeClient } from './realtime.mjs';
5
+ export { ServerClientFactoryOptions, ServerCookieAccessors, createServerClient } from './server-client.mjs';
6
+ export { BrowserCookieAccessorsStorageAdapter, BrowserCookieStorageAdapter, DEFAULT_AUTH_COOKIE_NAME, DefaultStorageAdapterOptions, MemoryStorageAdapter, NoopStorageAdapter, BrowserCookieAccessorsStorageAdapter as ServerCookieAccessorsStorageAdapter, ServerCookieStorageOptions, createDefaultStorageAdapter, createServerCookieStorageAdapter } from './storage.mjs';
7
+ import './base-client-BbMR6ZrV.mjs';
@@ -0,0 +1,7 @@
1
+ export { A as AuthClient, b as AuthClientOptions, c as AuthStateChangeCallback, d as AuthStateChangeEvent, B as BaseResource, i as BeforeRequestHook, N as Channel, O as ChannelCharacteristics, P as ChannelLink, Q as ChannelResponse, T as ChannelTag, C as ChannelsClient, g as ChatClient, U as ChatMessage, V as ChatMessageMetadata, Y as ChatMessageTransaction, Z as ChatMessageUser, W as ChatMessagesQuery, X as ChatMessagesResponse, j as CookieAccessors, k as CookieOptions, l as CookiesStorageAdapter, a as HttpClient, H as HttpClientOptions, m as HttpRequest, n as HttpRequestOptions, R as RealtimeChannel, o as RealtimeChatClient, p as RealtimeClient, q as RealtimeClientOptions, r as RealtimeConnectionState, s as RealtimeConnectionStateCallback, t as RealtimeEventCallback, u as RealtimePresenceChannel, D as ResourceId, E as ResourceQueryParams, F as ResourceQueryValue, v as SDKErrorCode, x as SDKErrorShape, h as SdkClient, w as SdkErrorCode, y as SdkErrorShape, e as SignInPayload, f as SignInWithTokenOptions, z as StorageAdapter, G as Stream, I as StreamChannel, J as StreamListResponse, K as StreamPlayerSource, L as StreamResponse, M as StreamTag, S as StreamsClient } from './auth-CSkJb9Wc.js';
2
+ export { ClientFactoryOptions, createBrowserClient, createClient } from './browser-client.js';
3
+ export { SDKError, SdkErrorDetails, createSdkError } from './errors.js';
4
+ export { createRealtimeClient } from './realtime.js';
5
+ export { ServerClientFactoryOptions, ServerCookieAccessors, createServerClient } from './server-client.js';
6
+ export { BrowserCookieAccessorsStorageAdapter, BrowserCookieStorageAdapter, DEFAULT_AUTH_COOKIE_NAME, DefaultStorageAdapterOptions, MemoryStorageAdapter, NoopStorageAdapter, BrowserCookieAccessorsStorageAdapter as ServerCookieAccessorsStorageAdapter, ServerCookieStorageOptions, createDefaultStorageAdapter, createServerCookieStorageAdapter } from './storage.js';
7
+ import './base-client-BHrP5nb_.js';