@insforge/sdk 1.3.0-ssr.2 → 1.3.0-ssr.3

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.mjs CHANGED
@@ -2177,7 +2177,6 @@ var Functions = class _Functions {
2177
2177
  };
2178
2178
 
2179
2179
  // src/modules/realtime.ts
2180
- import { io } from "socket.io-client";
2181
2180
  var CONNECT_TIMEOUT = 1e4;
2182
2181
  var Realtime = class {
2183
2182
  constructor(baseUrl, tokenManager, anonKey) {
@@ -2212,61 +2211,69 @@ var Realtime = class {
2212
2211
  if (this.connectPromise) {
2213
2212
  return this.connectPromise;
2214
2213
  }
2215
- this.connectPromise = new Promise((resolve, reject) => {
2216
- const token = this.tokenManager.getAccessToken() ?? this.anonKey;
2217
- this.socket = io(this.baseUrl, {
2218
- transports: ["websocket"],
2219
- auth: token ? { token } : void 0
2220
- });
2221
- let initialConnection = true;
2222
- let timeoutId = null;
2223
- const cleanup = () => {
2224
- if (timeoutId) {
2225
- clearTimeout(timeoutId);
2226
- timeoutId = null;
2227
- }
2228
- };
2229
- timeoutId = setTimeout(() => {
2230
- if (initialConnection) {
2231
- initialConnection = false;
2232
- this.connectPromise = null;
2233
- this.socket?.disconnect();
2234
- this.socket = null;
2235
- reject(new Error(`Connection timeout after ${CONNECT_TIMEOUT}ms`));
2236
- }
2237
- }, CONNECT_TIMEOUT);
2238
- this.socket.on("connect", () => {
2239
- cleanup();
2240
- for (const channel of this.subscribedChannels) {
2241
- this.socket.emit("realtime:subscribe", { channel });
2242
- }
2243
- this.notifyListeners("connect");
2244
- if (initialConnection) {
2245
- initialConnection = false;
2246
- this.connectPromise = null;
2247
- resolve();
2248
- }
2249
- });
2250
- this.socket.on("connect_error", (error) => {
2251
- cleanup();
2252
- this.notifyListeners("connect_error", error);
2253
- if (initialConnection) {
2254
- initialConnection = false;
2255
- this.connectPromise = null;
2256
- reject(error);
2257
- }
2258
- });
2259
- this.socket.on("disconnect", (reason) => {
2260
- this.notifyListeners("disconnect", reason);
2261
- });
2262
- this.socket.on("realtime:error", (error) => {
2263
- this.notifyListeners("error", error);
2264
- });
2265
- this.socket.onAny((event, message) => {
2266
- if (event === "realtime:error") return;
2267
- this.notifyListeners(event, message);
2268
- });
2269
- });
2214
+ this.connectPromise = (async () => {
2215
+ try {
2216
+ const { io } = await import("socket.io-client");
2217
+ await new Promise((resolve, reject) => {
2218
+ const token = this.tokenManager.getAccessToken() ?? this.anonKey;
2219
+ this.socket = io(this.baseUrl, {
2220
+ transports: ["websocket"],
2221
+ auth: token ? { token } : void 0
2222
+ });
2223
+ let initialConnection = true;
2224
+ let timeoutId = null;
2225
+ const cleanup = () => {
2226
+ if (timeoutId) {
2227
+ clearTimeout(timeoutId);
2228
+ timeoutId = null;
2229
+ }
2230
+ };
2231
+ timeoutId = setTimeout(() => {
2232
+ if (initialConnection) {
2233
+ initialConnection = false;
2234
+ this.connectPromise = null;
2235
+ this.socket?.disconnect();
2236
+ this.socket = null;
2237
+ reject(new Error(`Connection timeout after ${CONNECT_TIMEOUT}ms`));
2238
+ }
2239
+ }, CONNECT_TIMEOUT);
2240
+ this.socket.on("connect", () => {
2241
+ cleanup();
2242
+ for (const channel of this.subscribedChannels) {
2243
+ this.socket.emit("realtime:subscribe", { channel });
2244
+ }
2245
+ this.notifyListeners("connect");
2246
+ if (initialConnection) {
2247
+ initialConnection = false;
2248
+ this.connectPromise = null;
2249
+ resolve();
2250
+ }
2251
+ });
2252
+ this.socket.on("connect_error", (error) => {
2253
+ cleanup();
2254
+ this.notifyListeners("connect_error", error);
2255
+ if (initialConnection) {
2256
+ initialConnection = false;
2257
+ this.connectPromise = null;
2258
+ reject(error);
2259
+ }
2260
+ });
2261
+ this.socket.on("disconnect", (reason) => {
2262
+ this.notifyListeners("disconnect", reason);
2263
+ });
2264
+ this.socket.on("realtime:error", (error) => {
2265
+ this.notifyListeners("error", error);
2266
+ });
2267
+ this.socket.onAny((event, message) => {
2268
+ if (event === "realtime:error") return;
2269
+ this.notifyListeners(event, message);
2270
+ });
2271
+ });
2272
+ } catch (error) {
2273
+ this.connectPromise = null;
2274
+ throw error;
2275
+ }
2276
+ })();
2270
2277
  return this.connectPromise;
2271
2278
  }
2272
2279
  /**
@@ -2590,9 +2597,20 @@ var InsForgeClient = class {
2590
2597
  };
2591
2598
 
2592
2599
  // src/index.ts
2593
- function createClient(config) {
2600
+ function createClient(config = {}) {
2594
2601
  return new InsForgeClient(config);
2595
2602
  }
2603
+ function createAdminClient(config) {
2604
+ if (!config?.apiKey) {
2605
+ throw new Error("Missing apiKey. Pass apiKey to createAdminClient().");
2606
+ }
2607
+ const { apiKey, ...clientConfig } = config;
2608
+ return new InsForgeClient({
2609
+ ...clientConfig,
2610
+ edgeFunctionToken: apiKey,
2611
+ isServerMode: true
2612
+ });
2613
+ }
2596
2614
  var index_default = InsForgeClient;
2597
2615
  export {
2598
2616
  AI,
@@ -2609,6 +2627,7 @@ export {
2609
2627
  Storage,
2610
2628
  StorageBucket,
2611
2629
  TokenManager,
2630
+ createAdminClient,
2612
2631
  createClient,
2613
2632
  index_default as default
2614
2633
  };