@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
@@ -0,0 +1,127 @@
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
+ export {
124
+ SDKError,
125
+ createSdkError
126
+ };
127
+ //# sourceMappingURL=errors.mjs.map
@@ -0,0 +1 @@
1
+ export { a as HttpClient, H as HttpClientOptions } from './auth-CSkJb9Wc.mjs';
package/dist/http.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { a as HttpClient, H as HttpClientOptions } from './auth-CSkJb9Wc.js';
package/dist/http.js ADDED
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
+
22
+ // src/http.ts
23
+ var http_exports = {};
24
+ __export(http_exports, {
25
+ HttpClient: () => HttpClient
26
+ });
27
+ module.exports = __toCommonJS(http_exports);
28
+
29
+ // src/errors.ts
30
+ var SDKError = class extends Error {
31
+ /**
32
+ * Construct an SDKError. Signature is compatible with Error.
33
+ * You can pass in a message or an options object, as with the Error constructor.
34
+ * Additional fields (code, etc) may be added via the second argument.
35
+ */
36
+ constructor(message, details = {}) {
37
+ const resolvedMessage = message ?? (typeof details.message === "string" ? details.message : "Unknown error");
38
+ super(resolvedMessage);
39
+ /**
40
+ * Canonical SDK error code.
41
+ */
42
+ __publicField(this, "code");
43
+ /**
44
+ * HTTP status code if available.
45
+ */
46
+ __publicField(this, "statusCode");
47
+ /**
48
+ * End-user safe message.
49
+ */
50
+ __publicField(this, "userMessage");
51
+ /**
52
+ * Optional request metadata (null when unavailable).
53
+ */
54
+ __publicField(this, "request");
55
+ /**
56
+ * Optional response metadata (null when unavailable).
57
+ */
58
+ __publicField(this, "response");
59
+ Object.setPrototypeOf(this, new.target.prototype);
60
+ if (details && typeof details === "object") {
61
+ for (const [key, value] of Object.entries(details)) {
62
+ if (!["name", "message", "stack"].includes(key)) {
63
+ this[key] = value;
64
+ }
65
+ }
66
+ }
67
+ this.name = "SDKError";
68
+ this.code = details.code ?? "unknown_error";
69
+ this.statusCode = typeof details.statusCode === "number" ? details.statusCode : void 0;
70
+ this.userMessage = typeof details.userMessage === "string" ? details.userMessage : this.message;
71
+ this.request = details.request ?? null;
72
+ this.response = details.response ?? null;
73
+ }
74
+ /**
75
+ * Serialize the error into a plain object, preserving extra fields.
76
+ */
77
+ toJSON() {
78
+ const extras = { ...this };
79
+ delete extras.code;
80
+ delete extras.statusCode;
81
+ delete extras.message;
82
+ delete extras.userMessage;
83
+ delete extras.request;
84
+ delete extras.response;
85
+ delete extras.form;
86
+ delete extras.cause;
87
+ return {
88
+ ...extras,
89
+ code: this.code,
90
+ statusCode: this.statusCode,
91
+ message: this.message,
92
+ userMessage: this.userMessage,
93
+ request: this.request,
94
+ response: this.response
95
+ };
96
+ }
97
+ };
98
+ var STATUS_CODE_DEFAULTS = {
99
+ 401: {
100
+ code: "authentication_required",
101
+ message: "Authentication required",
102
+ userMessage: "Please log in to continue. Your session may have expired."
103
+ },
104
+ 403: {
105
+ code: "permission_denied",
106
+ message: "Permission denied",
107
+ userMessage: "You do not have permission to perform this action."
108
+ },
109
+ 404: {
110
+ code: "not_found",
111
+ message: "Resource not found",
112
+ userMessage: "The requested resource was not found."
113
+ },
114
+ 422: {
115
+ code: "validation_failed",
116
+ message: "Validation failed",
117
+ userMessage: "The provided information is invalid. Please check your input and try again."
118
+ },
119
+ 429: {
120
+ code: "rate_limited",
121
+ message: "Rate limit exceeded",
122
+ userMessage: "Too many requests. Please wait a moment and try again."
123
+ },
124
+ 500: {
125
+ code: "server_error",
126
+ message: "Internal server error",
127
+ userMessage: "Something went wrong on our end. Please try again later."
128
+ }
129
+ };
130
+ var DEFAULT_ERROR = {
131
+ code: "unknown_error",
132
+ userMessage: "An unexpected error occurred. Please try again."
133
+ };
134
+ function createSdkError(message, details = {}) {
135
+ const statusCode = details.response?.status;
136
+ const statusValues = statusCode && STATUS_CODE_DEFAULTS[statusCode] ? STATUS_CODE_DEFAULTS[statusCode] : DEFAULT_ERROR;
137
+ const enrichedDetails = {
138
+ ...details,
139
+ statusCode,
140
+ code: details.code ?? statusValues.code,
141
+ userMessage: details.userMessage ?? statusValues.userMessage,
142
+ request: details.request ?? null,
143
+ response: details.response ?? null
144
+ };
145
+ return new SDKError(message, enrichedDetails);
146
+ }
147
+
148
+ // src/http.ts
149
+ var resolveFetch = (provided) => {
150
+ if (provided) {
151
+ return provided.bind(globalThis);
152
+ }
153
+ if (typeof fetch === "function") {
154
+ return fetch.bind(globalThis);
155
+ }
156
+ throw createSdkError(
157
+ "Fetch implementation not found. Provide options.fetch when running outside Node 22+ or the browser."
158
+ );
159
+ };
160
+ var redactRequestMetadata = (request) => {
161
+ const redacted = request.clone();
162
+ redacted.headers.delete("authorization");
163
+ return redacted;
164
+ };
165
+ var removeContentTypeHeader = (headers) => {
166
+ for (const key of Object.keys(headers)) {
167
+ if (key.toLowerCase() === "content-type") {
168
+ delete headers[key];
169
+ }
170
+ }
171
+ };
172
+ var normalizeHeaders = (headers) => {
173
+ if (!headers) {
174
+ return {};
175
+ }
176
+ if (headers instanceof Headers) {
177
+ return Object.fromEntries(headers.entries());
178
+ }
179
+ if (Array.isArray(headers)) {
180
+ return Object.fromEntries(headers);
181
+ }
182
+ return { ...headers };
183
+ };
184
+ var HttpClient = class {
185
+ /**
186
+ * Create a new HTTP client instance.
187
+ */
188
+ constructor(options) {
189
+ __publicField(this, "baseUrl");
190
+ __publicField(this, "defaultHeaders");
191
+ __publicField(this, "fetcher");
192
+ __publicField(this, "beforeRequestHooks", []);
193
+ this.baseUrl = options.baseUrl.replace(/\/+$/, "");
194
+ this.defaultHeaders = {
195
+ "Content-Type": "application/json",
196
+ Accept: "application/json",
197
+ ...options.headers
198
+ };
199
+ this.fetcher = resolveFetch(options.fetch);
200
+ }
201
+ /**
202
+ * Register a hook that runs before each request.
203
+ */
204
+ onBeforeRequest(hook) {
205
+ this.beforeRequestHooks = [...this.beforeRequestHooks, hook];
206
+ return () => {
207
+ this.beforeRequestHooks = this.beforeRequestHooks.filter(
208
+ (existing) => existing !== hook
209
+ );
210
+ };
211
+ }
212
+ /**
213
+ * Execute an HTTP request and return the parsed response.
214
+ */
215
+ async request(path, options = {}) {
216
+ const { data } = await this.requestWithMetadata(path, options);
217
+ return data;
218
+ }
219
+ /**
220
+ * Execute an HTTP request and return the response with request metadata.
221
+ */
222
+ async requestWithMetadata(path, options = {}) {
223
+ const url = /^https?:\/\//i.test(path) ? path : `${this.baseUrl}${path.startsWith("/") ? path : `/${path}`}`;
224
+ const method = (options.method ?? "GET").toUpperCase();
225
+ const headers = {
226
+ ...this.defaultHeaders,
227
+ ...options.headers
228
+ };
229
+ const hasExplicitContentType = Object.keys(options.headers ?? {}).some(
230
+ (key) => key.toLowerCase() === "content-type"
231
+ );
232
+ let request = {
233
+ url,
234
+ init: {
235
+ ...options,
236
+ method,
237
+ headers
238
+ }
239
+ };
240
+ request = await this.beforeRequestHooks.reduce(
241
+ async (pendingRequest, hook) => {
242
+ const currentRequest = await pendingRequest;
243
+ const result = await hook(currentRequest);
244
+ return result ?? currentRequest;
245
+ },
246
+ Promise.resolve(request)
247
+ );
248
+ const normalizedHeaders = normalizeHeaders(request.init.headers);
249
+ const resolvedMethod = (request.init.method ?? method).toUpperCase();
250
+ const hasBody = request.init.body !== void 0 && request.init.body !== null;
251
+ if (!hasBody && !hasExplicitContentType && (resolvedMethod === "GET" || resolvedMethod === "HEAD")) {
252
+ removeContentTypeHeader(normalizedHeaders);
253
+ }
254
+ request = {
255
+ ...request,
256
+ init: {
257
+ ...request.init,
258
+ method: resolvedMethod,
259
+ headers: normalizedHeaders
260
+ }
261
+ };
262
+ const requestMetadata = new Request(request.url, request.init);
263
+ let response = null;
264
+ try {
265
+ response = await this.fetcher(request.url, request.init);
266
+ const contentType = response.headers.get("content-type") ?? "";
267
+ const isJson = contentType.includes("application/json");
268
+ if (!response.ok) {
269
+ const payload = isJson ? await response.json().catch(() => void 0) : await response.text();
270
+ const payloadObject = payload && typeof payload === "object" && !Array.isArray(payload) ? payload : null;
271
+ const fallbackMessage = typeof payload === "string" ? payload : null;
272
+ const message = typeof payloadObject?.message === "string" ? payloadObject.message : fallbackMessage || response.statusText || "Request failed";
273
+ const { code, ...payloadDetails } = payloadObject ?? {};
274
+ const resolvedCode = typeof code === "string" ? code : void 0;
275
+ throw createSdkError(message, {
276
+ ...payloadDetails,
277
+ code: resolvedCode,
278
+ request: redactRequestMetadata(requestMetadata),
279
+ response
280
+ });
281
+ }
282
+ if (response.status === 204) {
283
+ return { data: void 0, request: requestMetadata, response };
284
+ }
285
+ if (contentType.includes("application/json")) {
286
+ return {
287
+ data: await response.json(),
288
+ request: requestMetadata,
289
+ response
290
+ };
291
+ }
292
+ return {
293
+ data: await response.text(),
294
+ request: requestMetadata,
295
+ response
296
+ };
297
+ } catch (error) {
298
+ if (error instanceof SDKError) {
299
+ throw error;
300
+ }
301
+ const fallbackMessage = error instanceof Error ? error.message : "Request failed";
302
+ throw createSdkError(fallbackMessage, {
303
+ request: redactRequestMetadata(requestMetadata),
304
+ response
305
+ });
306
+ }
307
+ }
308
+ /**
309
+ * Determine whether the provided URL is same-origin with the configured base URL.
310
+ */
311
+ isSameOrigin(url) {
312
+ try {
313
+ return new URL(url).origin === new URL(this.baseUrl).origin;
314
+ } catch {
315
+ return false;
316
+ }
317
+ }
318
+ };
319
+ // Annotate the CommonJS export names for ESM import in node:
320
+ 0 && (module.exports = {
321
+ HttpClient
322
+ });
323
+ //# sourceMappingURL=http.js.map