@dialtribe/react-sdk 0.1.0-alpha.5 → 0.1.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/broadcast-player.d.mts +49 -18
- package/dist/broadcast-player.d.ts +49 -18
- package/dist/broadcast-player.js +30 -17
- package/dist/broadcast-player.js.map +1 -1
- package/dist/broadcast-player.mjs +30 -17
- package/dist/broadcast-player.mjs.map +1 -1
- package/dist/index.js +30 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +30 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ function DialTribeProvider({
|
|
|
8
8
|
sessionToken: initialToken,
|
|
9
9
|
onTokenRefresh,
|
|
10
10
|
onTokenExpired,
|
|
11
|
+
apiBaseUrl,
|
|
11
12
|
children
|
|
12
13
|
}) {
|
|
13
14
|
const [sessionToken, setSessionTokenState] = useState(initialToken);
|
|
@@ -36,7 +37,8 @@ function DialTribeProvider({
|
|
|
36
37
|
sessionToken,
|
|
37
38
|
setSessionToken,
|
|
38
39
|
isExpired,
|
|
39
|
-
markExpired
|
|
40
|
+
markExpired,
|
|
41
|
+
apiBaseUrl
|
|
40
42
|
};
|
|
41
43
|
return /* @__PURE__ */ jsx(DialTribeContext.Provider, { value, children });
|
|
42
44
|
}
|
|
@@ -51,18 +53,28 @@ function useDialTribe() {
|
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
// src/client/DialTribeClient.ts
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
function getDefaultApiBaseUrl() {
|
|
57
|
+
if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_DIALTRIBE_API_URL) {
|
|
58
|
+
return process.env.NEXT_PUBLIC_DIALTRIBE_API_URL;
|
|
59
|
+
}
|
|
60
|
+
return "https://dialtribe.com/api/public/v1";
|
|
61
|
+
}
|
|
62
|
+
var DIALTRIBE_API_BASE = getDefaultApiBaseUrl();
|
|
63
|
+
function getEndpoints(baseUrl = DIALTRIBE_API_BASE) {
|
|
64
|
+
return {
|
|
65
|
+
broadcasts: `${baseUrl}/broadcasts`,
|
|
66
|
+
broadcast: (id) => `${baseUrl}/broadcasts/${id}`,
|
|
67
|
+
contentPlay: `${baseUrl}/content/play`,
|
|
68
|
+
presignedUrl: `${baseUrl}/media/presigned-url`,
|
|
69
|
+
sessionStart: `${baseUrl}/session/start`,
|
|
70
|
+
sessionPing: `${baseUrl}/session/ping`
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
var ENDPOINTS = getEndpoints();
|
|
63
74
|
var DialTribeClient = class {
|
|
64
75
|
constructor(config) {
|
|
65
76
|
this.config = config;
|
|
77
|
+
this.endpoints = config.apiBaseUrl ? getEndpoints(config.apiBaseUrl) : ENDPOINTS;
|
|
66
78
|
}
|
|
67
79
|
/**
|
|
68
80
|
* Make an authenticated request to DialTribe API
|
|
@@ -109,7 +121,7 @@ var DialTribeClient = class {
|
|
|
109
121
|
if (params?.broadcastStatus) searchParams.set("broadcastStatus", params.broadcastStatus.toString());
|
|
110
122
|
if (params?.search) searchParams.set("search", params.search);
|
|
111
123
|
if (params?.includeDeleted) searchParams.set("includeDeleted", "true");
|
|
112
|
-
const url = `${
|
|
124
|
+
const url = `${this.endpoints.broadcasts}${searchParams.toString() ? `?${searchParams}` : ""}`;
|
|
113
125
|
const response = await this.fetch(url);
|
|
114
126
|
if (!response.ok) {
|
|
115
127
|
throw new Error(`Failed to fetch broadcasts: ${response.status} ${response.statusText}`);
|
|
@@ -120,7 +132,7 @@ var DialTribeClient = class {
|
|
|
120
132
|
* Get a single broadcast by ID
|
|
121
133
|
*/
|
|
122
134
|
async getBroadcast(id) {
|
|
123
|
-
const response = await this.fetch(
|
|
135
|
+
const response = await this.fetch(this.endpoints.broadcast(id));
|
|
124
136
|
if (!response.ok) {
|
|
125
137
|
if (response.status === 404) {
|
|
126
138
|
throw new Error("Broadcast not found");
|
|
@@ -142,7 +154,7 @@ var DialTribeClient = class {
|
|
|
142
154
|
});
|
|
143
155
|
if (params.hash) searchParams.set("hash", params.hash);
|
|
144
156
|
if (params.action) searchParams.set("action", params.action);
|
|
145
|
-
const url = `${
|
|
157
|
+
const url = `${this.endpoints.contentPlay}?${searchParams}`;
|
|
146
158
|
const response = await this.fetch(url, {
|
|
147
159
|
redirect: "manual"
|
|
148
160
|
// Don't follow redirect, we want the URL
|
|
@@ -166,7 +178,7 @@ var DialTribeClient = class {
|
|
|
166
178
|
hash: params.hash,
|
|
167
179
|
fileType: params.fileType
|
|
168
180
|
});
|
|
169
|
-
const url = `${
|
|
181
|
+
const url = `${this.endpoints.presignedUrl}?${searchParams}`;
|
|
170
182
|
const response = await this.fetch(url);
|
|
171
183
|
if (!response.ok) {
|
|
172
184
|
throw new Error(`Failed to refresh URL: ${response.status} ${response.statusText}`);
|
|
@@ -179,7 +191,7 @@ var DialTribeClient = class {
|
|
|
179
191
|
* @returns audienceId and optional resumePosition
|
|
180
192
|
*/
|
|
181
193
|
async startSession(params) {
|
|
182
|
-
const response = await this.fetch(
|
|
194
|
+
const response = await this.fetch(this.endpoints.sessionStart, {
|
|
183
195
|
method: "POST",
|
|
184
196
|
body: JSON.stringify(params)
|
|
185
197
|
});
|
|
@@ -198,7 +210,7 @@ var DialTribeClient = class {
|
|
|
198
210
|
* - 3: UNMOUNT
|
|
199
211
|
*/
|
|
200
212
|
async sendSessionPing(params) {
|
|
201
|
-
const response = await this.fetch(
|
|
213
|
+
const response = await this.fetch(this.endpoints.sessionPing, {
|
|
202
214
|
method: "POST",
|
|
203
215
|
body: JSON.stringify(params)
|
|
204
216
|
});
|
|
@@ -741,11 +753,12 @@ function BroadcastPlayer({
|
|
|
741
753
|
className = "",
|
|
742
754
|
enableKeyboardShortcuts = false
|
|
743
755
|
}) {
|
|
744
|
-
const { sessionToken, setSessionToken, markExpired } = useDialTribe();
|
|
756
|
+
const { sessionToken, setSessionToken, markExpired, apiBaseUrl } = useDialTribe();
|
|
745
757
|
const clientRef = useRef(null);
|
|
746
758
|
if (!clientRef.current && sessionToken) {
|
|
747
759
|
clientRef.current = new DialTribeClient({
|
|
748
760
|
sessionToken,
|
|
761
|
+
apiBaseUrl,
|
|
749
762
|
onTokenRefresh: (newToken, expiresAt) => {
|
|
750
763
|
debug.log(`[DialTribeClient] Token refreshed, expires at ${expiresAt}`);
|
|
751
764
|
setSessionToken(newToken, expiresAt);
|