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