@fluxbase/sdk 2026.1.10 → 2026.1.11
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.cjs +74 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +74 -23
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1726,7 +1726,9 @@ var RealtimeChannel = class {
|
|
|
1726
1726
|
try {
|
|
1727
1727
|
const parts = this.token.split(".");
|
|
1728
1728
|
if (parts.length !== 3 || !parts[1]) return false;
|
|
1729
|
-
const payload = JSON.parse(
|
|
1729
|
+
const payload = JSON.parse(
|
|
1730
|
+
atob(parts[1].replace(/-/g, "+").replace(/_/g, "/"))
|
|
1731
|
+
);
|
|
1730
1732
|
if (!payload.exp) return false;
|
|
1731
1733
|
const now = Math.floor(Date.now() / 1e3);
|
|
1732
1734
|
return payload.exp <= now + 10;
|
|
@@ -1743,12 +1745,16 @@ var RealtimeChannel = class {
|
|
|
1743
1745
|
}
|
|
1744
1746
|
if (this.isTokenExpired() && this.onTokenRefreshNeeded && !this.isRefreshingToken) {
|
|
1745
1747
|
this.isRefreshingToken = true;
|
|
1746
|
-
console.log(
|
|
1748
|
+
console.log(
|
|
1749
|
+
"[Fluxbase Realtime] Token expired, requesting refresh before connecting"
|
|
1750
|
+
);
|
|
1747
1751
|
this.onTokenRefreshNeeded().then((newToken) => {
|
|
1748
1752
|
this.isRefreshingToken = false;
|
|
1749
1753
|
if (newToken) {
|
|
1750
1754
|
this.token = newToken;
|
|
1751
|
-
console.log(
|
|
1755
|
+
console.log(
|
|
1756
|
+
"[Fluxbase Realtime] Token refreshed, connecting with new token"
|
|
1757
|
+
);
|
|
1752
1758
|
}
|
|
1753
1759
|
this.connectWithToken();
|
|
1754
1760
|
}).catch((err) => {
|
|
@@ -1813,7 +1819,11 @@ var RealtimeChannel = class {
|
|
|
1813
1819
|
try {
|
|
1814
1820
|
this.handleMessage(message);
|
|
1815
1821
|
} catch (err) {
|
|
1816
|
-
console.error(
|
|
1822
|
+
console.error(
|
|
1823
|
+
"[Fluxbase Realtime] Error handling message:",
|
|
1824
|
+
err,
|
|
1825
|
+
message
|
|
1826
|
+
);
|
|
1817
1827
|
}
|
|
1818
1828
|
};
|
|
1819
1829
|
this.ws.onerror = (error) => {
|
|
@@ -1851,15 +1861,17 @@ var RealtimeChannel = class {
|
|
|
1851
1861
|
case "heartbeat":
|
|
1852
1862
|
break;
|
|
1853
1863
|
case "broadcast":
|
|
1854
|
-
|
|
1855
|
-
|
|
1864
|
+
const broadcastData = message.broadcast || (message.payload && typeof message.payload === "object" && "broadcast" in message.payload ? message.payload.broadcast : null);
|
|
1865
|
+
if (broadcastData) {
|
|
1866
|
+
this.handleBroadcastMessage(broadcastData);
|
|
1856
1867
|
} else if (message.payload) {
|
|
1857
1868
|
this.handlePostgresChanges(message.payload);
|
|
1858
1869
|
}
|
|
1859
1870
|
break;
|
|
1860
1871
|
case "presence":
|
|
1861
|
-
|
|
1862
|
-
|
|
1872
|
+
const presenceData = message.presence || (message.payload && typeof message.payload === "object" && "presence" in message.payload ? message.payload.presence : null);
|
|
1873
|
+
if (presenceData) {
|
|
1874
|
+
this.handlePresenceMessage(presenceData);
|
|
1863
1875
|
}
|
|
1864
1876
|
break;
|
|
1865
1877
|
case "ack":
|
|
@@ -1881,13 +1893,21 @@ var RealtimeChannel = class {
|
|
|
1881
1893
|
const schema = payload.schema || "public";
|
|
1882
1894
|
const table = payload.table || "";
|
|
1883
1895
|
if (table) {
|
|
1884
|
-
this.subscriptionIds.set(
|
|
1885
|
-
|
|
1896
|
+
this.subscriptionIds.set(
|
|
1897
|
+
`${schema}.${table}`,
|
|
1898
|
+
payload.subscription_id
|
|
1899
|
+
);
|
|
1900
|
+
console.log(
|
|
1901
|
+
"[Fluxbase Realtime] Subscription ID received for",
|
|
1902
|
+
`${schema}.${table}:`,
|
|
1903
|
+
payload.subscription_id
|
|
1904
|
+
);
|
|
1886
1905
|
} else {
|
|
1887
|
-
console.log(
|
|
1906
|
+
console.log(
|
|
1907
|
+
"[Fluxbase Realtime] Subscription ID received:",
|
|
1908
|
+
payload.subscription_id
|
|
1909
|
+
);
|
|
1888
1910
|
}
|
|
1889
|
-
} else {
|
|
1890
|
-
console.log("[Fluxbase Realtime] Acknowledged:", message);
|
|
1891
1911
|
}
|
|
1892
1912
|
} else {
|
|
1893
1913
|
if (message.payload && typeof message.payload === "object" && "subscription_id" in message.payload) {
|
|
@@ -1895,13 +1915,21 @@ var RealtimeChannel = class {
|
|
|
1895
1915
|
const schema = payload.schema || "public";
|
|
1896
1916
|
const table = payload.table || "";
|
|
1897
1917
|
if (table) {
|
|
1898
|
-
this.subscriptionIds.set(
|
|
1899
|
-
|
|
1918
|
+
this.subscriptionIds.set(
|
|
1919
|
+
`${schema}.${table}`,
|
|
1920
|
+
payload.subscription_id
|
|
1921
|
+
);
|
|
1922
|
+
console.log(
|
|
1923
|
+
"[Fluxbase Realtime] Subscription ID received for",
|
|
1924
|
+
`${schema}.${table}:`,
|
|
1925
|
+
payload.subscription_id
|
|
1926
|
+
);
|
|
1900
1927
|
} else {
|
|
1901
|
-
console.log(
|
|
1928
|
+
console.log(
|
|
1929
|
+
"[Fluxbase Realtime] Subscription ID received:",
|
|
1930
|
+
payload.subscription_id
|
|
1931
|
+
);
|
|
1902
1932
|
}
|
|
1903
|
-
} else {
|
|
1904
|
-
console.log("[Fluxbase Realtime] Acknowledged:", message);
|
|
1905
1933
|
}
|
|
1906
1934
|
}
|
|
1907
1935
|
break;
|
|
@@ -1910,7 +1938,9 @@ var RealtimeChannel = class {
|
|
|
1910
1938
|
if (this.pendingAcks.has("access_token")) {
|
|
1911
1939
|
const ackHandler = this.pendingAcks.get("access_token");
|
|
1912
1940
|
if (ackHandler) {
|
|
1913
|
-
ackHandler.reject(
|
|
1941
|
+
ackHandler.reject(
|
|
1942
|
+
new Error(message.error || "Token update failed")
|
|
1943
|
+
);
|
|
1914
1944
|
this.pendingAcks.delete("access_token");
|
|
1915
1945
|
}
|
|
1916
1946
|
}
|
|
@@ -1935,7 +1965,10 @@ var RealtimeChannel = class {
|
|
|
1935
1965
|
try {
|
|
1936
1966
|
callback(log);
|
|
1937
1967
|
} catch (err) {
|
|
1938
|
-
console.error(
|
|
1968
|
+
console.error(
|
|
1969
|
+
"[Fluxbase Realtime] Error in execution log callback:",
|
|
1970
|
+
err
|
|
1971
|
+
);
|
|
1939
1972
|
}
|
|
1940
1973
|
});
|
|
1941
1974
|
}
|
|
@@ -2003,7 +2036,10 @@ var RealtimeChannel = class {
|
|
|
2003
2036
|
try {
|
|
2004
2037
|
cb(supabasePayload);
|
|
2005
2038
|
} catch (err) {
|
|
2006
|
-
console.error(
|
|
2039
|
+
console.error(
|
|
2040
|
+
"[Fluxbase Realtime] Error in postgres_changes callback:",
|
|
2041
|
+
err
|
|
2042
|
+
);
|
|
2007
2043
|
}
|
|
2008
2044
|
});
|
|
2009
2045
|
}
|
|
@@ -2044,6 +2080,9 @@ var RealtimeChannel = class {
|
|
|
2044
2080
|
* @internal
|
|
2045
2081
|
*/
|
|
2046
2082
|
updateToken(token) {
|
|
2083
|
+
if (this.token === token) {
|
|
2084
|
+
return;
|
|
2085
|
+
}
|
|
2047
2086
|
this.token = token;
|
|
2048
2087
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
2049
2088
|
return;
|
|
@@ -2192,6 +2231,9 @@ var FluxbaseRealtime = class {
|
|
|
2192
2231
|
* @param token - The new auth token
|
|
2193
2232
|
*/
|
|
2194
2233
|
setAuth(token) {
|
|
2234
|
+
if (this.token === token) {
|
|
2235
|
+
return;
|
|
2236
|
+
}
|
|
2195
2237
|
this.token = token;
|
|
2196
2238
|
this.channels.forEach((channel) => {
|
|
2197
2239
|
channel.updateToken(token);
|
|
@@ -2217,7 +2259,13 @@ var FluxbaseRealtime = class {
|
|
|
2217
2259
|
* ```
|
|
2218
2260
|
*/
|
|
2219
2261
|
executionLogs(executionId, type = "function") {
|
|
2220
|
-
return new ExecutionLogsChannel(
|
|
2262
|
+
return new ExecutionLogsChannel(
|
|
2263
|
+
this.url,
|
|
2264
|
+
executionId,
|
|
2265
|
+
type,
|
|
2266
|
+
this.token,
|
|
2267
|
+
this.tokenRefreshCallback
|
|
2268
|
+
);
|
|
2221
2269
|
}
|
|
2222
2270
|
};
|
|
2223
2271
|
var ExecutionLogsChannel = class {
|
|
@@ -2268,7 +2316,10 @@ var ExecutionLogsChannel = class {
|
|
|
2268
2316
|
try {
|
|
2269
2317
|
cb(log);
|
|
2270
2318
|
} catch (err) {
|
|
2271
|
-
console.error(
|
|
2319
|
+
console.error(
|
|
2320
|
+
"[Fluxbase ExecutionLogs] Error in log callback:",
|
|
2321
|
+
err
|
|
2322
|
+
);
|
|
2272
2323
|
}
|
|
2273
2324
|
});
|
|
2274
2325
|
}
|