@lakebed-native/client 0.1.1 → 0.1.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.
@@ -14,13 +14,23 @@ export declare function fetchMutation<T>(name: string, args?: unknown): Promise<
14
14
  export declare function fetchAuth(): Promise<AuthUser | null>;
15
15
  export declare function signInWithGoogle(options?: GoogleAuthOptions): Promise<AuthUser>;
16
16
  export declare function signOut(): Promise<void>;
17
+ export declare class LocalWsTransportError extends Error {
18
+ readonly name = "LocalWsTransportError";
19
+ }
20
+ export declare function isLocalWsTransportError(err: unknown): err is LocalWsTransportError;
17
21
  export type WsClient = {
18
22
  subscribe: <T>(query: string, args: unknown | undefined, cb: (data: T) => void) => string;
19
23
  unsubscribe: (id: string) => void;
20
24
  mutate: <T>(mutation: string, args?: unknown) => Promise<T>;
21
25
  close: () => void;
22
26
  };
23
- export declare function createWsClient(): WsClient;
27
+ export declare function onLocalWsReset(listener: () => void): () => void;
28
+ export declare function resetSharedLocalWsClient(): void;
29
+ /** Reused WebSocket for local dev so mutations refresh query subscriptions. */
30
+ export declare function getSharedLocalWsClient(): WsClient;
31
+ export declare function createWsClient(opts?: {
32
+ onDisconnected?: () => void;
33
+ }): WsClient;
24
34
  export type { GoogleAuthOptions } from "./google-auth.js";
25
35
  export type { ClientTransport } from "./transport.js";
26
36
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAGxB,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAM9D;AAED,wBAAgB,eAAe,IAAI,YAAY,CAO9C;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5E;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAE/E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAE1D;AAED,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAWzF;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC;IAC1F,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,wBAAgB,cAAc,IAAI,QAAQ,CAiGzC;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAGxB,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAW9D;AAED,wBAAgB,eAAe,IAAI,YAAY,CAO9C;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5E;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAE/E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAE1D;AAED,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAWzF;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAkB,IAAI,2BAA2B;CAClD;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB,CAElF;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC;IAC1F,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAaF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAK/D;AAQD,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,IAAI,QAAQ,CAajD;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,QAAQ,CAsL/E;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,13 +1,19 @@
1
+ import { notifyAuthChanged } from "./auth-events.js";
1
2
  import { readStoredAuthToken, runGooglePkceSignIn, } from "./google-auth.js";
2
3
  import { hostedSubscribeQuery } from "./hosted-ws.js";
3
4
  import { configureTransport, getTransportConfig, transportFetchAuth, transportFetchMutation, transportFetchQuery, transportSignOut, } from "./transport.js";
4
5
  import { hostedReconnectAuth } from "./hosted-ws.js";
5
6
  export function configureClient(c) {
7
+ const prev = getTransportConfig();
6
8
  configureTransport({
7
9
  serverUrl: c.serverUrl,
8
10
  appUrl: c.appUrl,
9
11
  transport: c.transport,
10
12
  });
13
+ const next = getTransportConfig();
14
+ if (prev.serverUrl !== next.serverUrl || prev.transport !== next.transport) {
15
+ resetSharedLocalWsClient();
16
+ }
11
17
  }
12
18
  export function getClientConfig() {
13
19
  const t = getTransportConfig();
@@ -42,7 +48,54 @@ export async function signInWithGoogle(options = {}) {
42
48
  export async function signOut() {
43
49
  await transportSignOut();
44
50
  }
45
- export function createWsClient() {
51
+ export class LocalWsTransportError extends Error {
52
+ name = "LocalWsTransportError";
53
+ }
54
+ export function isLocalWsTransportError(err) {
55
+ return err instanceof LocalWsTransportError;
56
+ }
57
+ let sharedLocalWs = null;
58
+ let sharedLocalWsUrl = null;
59
+ const localWsResetListeners = new Set();
60
+ function randomRequestId() {
61
+ if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
62
+ return crypto.randomUUID();
63
+ }
64
+ return `req-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
65
+ }
66
+ export function onLocalWsReset(listener) {
67
+ localWsResetListeners.add(listener);
68
+ return () => {
69
+ localWsResetListeners.delete(listener);
70
+ };
71
+ }
72
+ function notifyLocalWsReset() {
73
+ for (const listener of localWsResetListeners) {
74
+ listener();
75
+ }
76
+ }
77
+ export function resetSharedLocalWsClient() {
78
+ sharedLocalWs?.close();
79
+ sharedLocalWs = null;
80
+ sharedLocalWsUrl = null;
81
+ notifyLocalWsReset();
82
+ }
83
+ /** Reused WebSocket for local dev so mutations refresh query subscriptions. */
84
+ export function getSharedLocalWsClient() {
85
+ if (getTransportConfig().transport !== "local-http") {
86
+ return createWsClient();
87
+ }
88
+ const url = getTransportConfig().serverUrl;
89
+ if (sharedLocalWs && sharedLocalWsUrl !== url) {
90
+ resetSharedLocalWsClient();
91
+ }
92
+ if (!sharedLocalWs) {
93
+ sharedLocalWs = createWsClient({ onDisconnected: resetSharedLocalWsClient });
94
+ sharedLocalWsUrl = url;
95
+ }
96
+ return sharedLocalWs;
97
+ }
98
+ export function createWsClient(opts) {
46
99
  const config = getTransportConfig();
47
100
  if (config.transport === "hosted-ws") {
48
101
  let subCounter = 0;
@@ -73,14 +126,47 @@ export function createWsClient() {
73
126
  const subs = new Map();
74
127
  let subCounter = 0;
75
128
  const pendingMutations = new Map();
129
+ const rejectAllPendingMutations = (error) => {
130
+ for (const [, pending] of pendingMutations) {
131
+ if (pending.timer)
132
+ clearTimeout(pending.timer);
133
+ pending.reject(error);
134
+ }
135
+ pendingMutations.clear();
136
+ };
137
+ ws.addEventListener("close", () => {
138
+ rejectAllPendingMutations(new LocalWsTransportError("Local WebSocket disconnected"));
139
+ opts?.onDisconnected?.();
140
+ });
141
+ ws.addEventListener("error", () => {
142
+ rejectAllPendingMutations(new LocalWsTransportError("Local WebSocket failed"));
143
+ });
76
144
  ws.onmessage = (event) => {
77
145
  const msg = JSON.parse(String(event.data));
146
+ if (msg.type === "auth-changed") {
147
+ void (async () => {
148
+ try {
149
+ const token = await readStoredAuthToken();
150
+ // WS connect pushes global preset auth; bearer token wins over that snapshot.
151
+ if (token) {
152
+ notifyAuthChanged(await fetchAuth());
153
+ return;
154
+ }
155
+ notifyAuthChanged(msg.user ?? null);
156
+ }
157
+ catch {
158
+ notifyAuthChanged(msg.user ?? null);
159
+ }
160
+ })();
161
+ }
78
162
  if (msg.type === "query-result" && msg.subscriptionId) {
79
163
  subs.get(msg.subscriptionId)?.(msg.data);
80
164
  }
81
165
  if (msg.type === "mutation-result" && msg.requestId) {
82
166
  const pending = pendingMutations.get(msg.requestId);
83
167
  if (pending) {
168
+ if (pending.timer)
169
+ clearTimeout(pending.timer);
84
170
  if (msg.error)
85
171
  pending.reject(new Error(msg.error));
86
172
  else
@@ -93,15 +179,30 @@ export function createWsClient() {
93
179
  subscribe(query, args, cb) {
94
180
  const id = `client-sub-${++subCounter}`;
95
181
  subs.set(id, cb);
96
- const send = () => {
97
- if (ws.readyState === WebSocket.OPEN) {
98
- ws.send(JSON.stringify({ type: "subscribe", query, args, subscriptionId: id }));
99
- }
100
- else {
101
- ws.addEventListener("open", send, { once: true });
102
- }
103
- };
104
- send();
182
+ void (async () => {
183
+ const token = await readStoredAuthToken();
184
+ const payload = {
185
+ type: "subscribe",
186
+ query,
187
+ args,
188
+ subscriptionId: id,
189
+ };
190
+ if (token)
191
+ payload.token = token;
192
+ const send = () => {
193
+ if (ws.readyState === WebSocket.CLOSED) {
194
+ opts?.onDisconnected?.();
195
+ return;
196
+ }
197
+ if (ws.readyState === WebSocket.OPEN) {
198
+ ws.send(JSON.stringify(payload));
199
+ }
200
+ else {
201
+ ws.addEventListener("open", send, { once: true });
202
+ }
203
+ };
204
+ send();
205
+ })();
105
206
  return id;
106
207
  },
107
208
  unsubscribe(id) {
@@ -112,20 +213,54 @@ export function createWsClient() {
112
213
  },
113
214
  mutate(mutation, args) {
114
215
  return new Promise((resolve, reject) => {
115
- const requestId = crypto.randomUUID();
116
- pendingMutations.set(requestId, {
117
- resolve: (v) => resolve(v),
118
- reject,
119
- });
120
- const send = () => {
121
- if (ws.readyState === WebSocket.OPEN) {
122
- ws.send(JSON.stringify({ type: "mutate", mutation, args, requestId }));
123
- }
124
- else {
125
- ws.addEventListener("open", send, { once: true });
126
- }
127
- };
128
- send();
216
+ void (async () => {
217
+ const requestId = randomRequestId();
218
+ const timer = setTimeout(() => {
219
+ if (!pendingMutations.has(requestId))
220
+ return;
221
+ pendingMutations.delete(requestId);
222
+ reject(new Error("Local WebSocket mutation timed out"));
223
+ }, 5000);
224
+ pendingMutations.set(requestId, {
225
+ resolve: (v) => resolve(v),
226
+ reject,
227
+ timer,
228
+ });
229
+ const token = await readStoredAuthToken();
230
+ const payload = {
231
+ type: "mutate",
232
+ mutation,
233
+ args,
234
+ requestId,
235
+ };
236
+ if (token)
237
+ payload.token = token;
238
+ const failPending = (error) => {
239
+ const pending = pendingMutations.get(requestId);
240
+ if (!pending)
241
+ return;
242
+ if (pending.timer)
243
+ clearTimeout(pending.timer);
244
+ pendingMutations.delete(requestId);
245
+ reject(error);
246
+ };
247
+ const send = () => {
248
+ if (ws.readyState === WebSocket.CLOSED) {
249
+ failPending(new LocalWsTransportError("Local WebSocket disconnected"));
250
+ opts?.onDisconnected?.();
251
+ return;
252
+ }
253
+ if (ws.readyState === WebSocket.OPEN) {
254
+ ws.send(JSON.stringify(payload));
255
+ }
256
+ else {
257
+ ws.addEventListener("open", send, { once: true });
258
+ ws.addEventListener("close", () => failPending(new LocalWsTransportError("Local WebSocket failed to connect")), { once: true });
259
+ ws.addEventListener("error", () => failPending(new LocalWsTransportError("Local WebSocket failed to connect")), { once: true });
260
+ }
261
+ };
262
+ send();
263
+ })();
129
264
  });
130
265
  },
131
266
  close() {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/client/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { AuthUser } from "@lakebed-native/shared";
2
+ export declare function onAuthChanged(listener: (user: AuthUser | null) => void): () => void;
3
+ export declare function notifyAuthChanged(user: AuthUser | null): void;
4
+ //# sourceMappingURL=auth-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-events.d.ts","sourceRoot":"","sources":["../../src/client/auth-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,CAKnF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAQ7D"}
@@ -0,0 +1,18 @@
1
+ const authChangedListeners = new Set();
2
+ export function onAuthChanged(listener) {
3
+ authChangedListeners.add(listener);
4
+ return () => {
5
+ authChangedListeners.delete(listener);
6
+ };
7
+ }
8
+ export function notifyAuthChanged(user) {
9
+ for (const listener of authChangedListeners) {
10
+ try {
11
+ listener(user);
12
+ }
13
+ catch (err) {
14
+ console.error("Auth listener error:", err);
15
+ }
16
+ }
17
+ }
18
+ //# sourceMappingURL=auth-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-events.js","sourceRoot":"","sources":["../../src/client/auth-events.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmC,CAAC;AAExE,MAAM,UAAU,aAAa,CAAC,QAAyC;IACrE,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,GAAG,EAAE;QACV,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAqB;IACrD,KAAK,MAAM,QAAQ,IAAI,oBAAoB,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -2,7 +2,12 @@ import type { AuthUser } from "@lakebed-native/shared";
2
2
  export { configureClient, fetchAuth, fetchMutation, fetchQuery, getClientConfig, signInWithGoogle as apiSignInWithGoogle, signOut as apiSignOut, } from "./api.js";
3
3
  export declare function useAuth(): {
4
4
  user: AuthUser | null;
5
+ userId: string | null;
6
+ displayName: string | null;
7
+ picture: string | null;
8
+ isGuest: boolean;
5
9
  loading: boolean;
10
+ error: Error | null;
6
11
  refresh: () => Promise<void>;
7
12
  };
8
13
  export declare function useQuery<T>(name: string, args?: unknown): {
@@ -11,11 +16,20 @@ export declare function useQuery<T>(name: string, args?: unknown): {
11
16
  error: Error | null;
12
17
  refetch: () => Promise<void>;
13
18
  };
14
- export declare function useMutation<TArgs = unknown, TResult = unknown>(name: string): {
19
+ export declare function useMutation<TArgs = unknown, TResult = unknown>(name: string, opts?: {
20
+ onError?: (error: Error) => void;
21
+ onSuccess?: (result: TResult) => void;
22
+ }): {
15
23
  mutate: (args?: TArgs) => Promise<TResult>;
16
24
  loading: boolean;
17
25
  error: Error | null;
18
26
  };
27
+ export declare function authAs(name: string): Promise<void>;
28
+ export declare function useConnection(pollMs?: number): {
29
+ status: "connected" | "disconnected" | "connecting";
30
+ error: Error | null;
31
+ retry: () => void;
32
+ };
19
33
  export declare function signInWithGoogle(): Promise<AuthUser>;
20
34
  export declare function signOut(): Promise<void>;
21
35
  /** Provider-less config hook for shell bootstrap */
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/client/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAWvD,OAAO,EACL,eAAe,EACf,SAAS,EACT,aAAa,EACb,UAAU,EACV,eAAe,EACf,gBAAgB,IAAI,mBAAmB,EACvC,OAAO,IAAI,UAAU,GACtB,MAAM,UAAU,CAAC;AAElB,wBAAgB,OAAO,IAAI;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAkBA;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG;IACzD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAuBA;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC5D,IAAI,EAAE,MAAM,GACX;IACD,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAsBA;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAE1D;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;AAED,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAU7D"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/client/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AA0BvD,OAAO,EACL,eAAe,EACf,SAAS,EACT,aAAa,EACb,UAAU,EACV,eAAe,EACf,gBAAgB,IAAI,mBAAmB,EACvC,OAAO,IAAI,UAAU,GACtB,MAAM,UAAU,CAAC;AAElB,wBAAgB,OAAO,IAAI;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAgCA;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG;IACzD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAuFA;AAED,wBAAgB,WAAW,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC5D,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GACjF;IACD,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CA8CA;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxD;AAED,wBAAgB,aAAa,CAAC,MAAM,SAAO,GAAG;IAC5C,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,YAAY,CAAC;IACpD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAwDA;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAE1D;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7C;AAED,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAU7D"}
@@ -1,27 +1,53 @@
1
- import { useCallback, useEffect, useState, useSyncExternalStore } from "react";
2
- import { configureClient, fetchAuth, fetchMutation, fetchQuery, signInWithGoogle as apiSignInWithGoogle, signOut as apiSignOut, } from "./api.js";
1
+ import { useCallback, useEffect, useRef, useState, useSyncExternalStore } from "react";
2
+ import { configureClient, getSharedLocalWsClient, onLocalWsReset, resetSharedLocalWsClient, fetchAuth, fetchMutation, fetchQuery, getClientConfig, isLocalWsTransportError, signInWithGoogle as apiSignInWithGoogle, signOut as apiSignOut, } from "./api.js";
3
+ import { hostedSubscribeQuery } from "./hosted-ws.js";
4
+ import { onAuthChanged } from "./auth-events.js";
5
+ import { getTransportConfig, localServerSupportsWs } from "./transport.js";
6
+ const activeQueryRefetches = new Set();
7
+ function invalidateActiveQueries() {
8
+ for (const refetch of activeQueryRefetches) {
9
+ void refetch();
10
+ }
11
+ }
3
12
  export { configureClient, fetchAuth, fetchMutation, fetchQuery, getClientConfig, signInWithGoogle as apiSignInWithGoogle, signOut as apiSignOut, } from "./api.js";
4
13
  export function useAuth() {
5
14
  const [user, setUser] = useState(null);
6
15
  const [loading, setLoading] = useState(true);
16
+ const [error, setError] = useState(null);
7
17
  const refresh = useCallback(async () => {
8
18
  setLoading(true);
19
+ setError(null);
9
20
  try {
10
21
  setUser(await fetchAuth());
11
22
  }
23
+ catch (err) {
24
+ setError(err instanceof Error ? err : new Error(String(err)));
25
+ }
12
26
  finally {
13
27
  setLoading(false);
14
28
  }
15
29
  }, []);
16
30
  useEffect(() => {
17
31
  void refresh();
32
+ return onAuthChanged((next) => {
33
+ setUser(next);
34
+ setLoading(false);
35
+ setError(null);
36
+ });
18
37
  }, [refresh]);
19
- return { user, loading, refresh };
38
+ const userId = user?.id ?? null;
39
+ const displayName = user?.name ?? null;
40
+ const picture = user?.avatarUrl ?? null;
41
+ const isGuest = userId === "guest" || userId === null;
42
+ return { user, userId, displayName, picture, isGuest, loading, error, refresh };
20
43
  }
21
44
  export function useQuery(name, args) {
22
45
  const [data, setData] = useState(undefined);
23
46
  const [loading, setLoading] = useState(true);
24
47
  const [error, setError] = useState(null);
48
+ const [wsResetTick, setWsResetTick] = useState(0);
49
+ const argsKey = JSON.stringify(args);
50
+ useEffect(() => onLocalWsReset(() => setWsResetTick((n) => n + 1)), []);
25
51
  const refetch = useCallback(async () => {
26
52
  setLoading(true);
27
53
  setError(null);
@@ -35,24 +61,103 @@ export function useQuery(name, args) {
35
61
  finally {
36
62
  setLoading(false);
37
63
  }
38
- }, [name, JSON.stringify(args)]);
64
+ }, [name, argsKey]);
39
65
  useEffect(() => {
40
- void refetch();
41
- }, [refetch]);
66
+ const transport = getTransportConfig().transport;
67
+ setLoading(true);
68
+ setError(null);
69
+ if (transport === "hosted-ws") {
70
+ // Hosted query.result is keyed by name only — parameterized queries use fetch.
71
+ if (args !== undefined) {
72
+ void refetch();
73
+ return;
74
+ }
75
+ const unsub = hostedSubscribeQuery(name, (next) => {
76
+ setData(next);
77
+ setLoading(false);
78
+ setError(null);
79
+ }, undefined, (err) => {
80
+ setError(err);
81
+ setLoading(false);
82
+ void refetch();
83
+ });
84
+ return unsub;
85
+ }
86
+ if (!localServerSupportsWs(getTransportConfig().serverUrl)) {
87
+ activeQueryRefetches.add(refetch);
88
+ void refetch();
89
+ return () => {
90
+ activeQueryRefetches.delete(refetch);
91
+ };
92
+ }
93
+ activeQueryRefetches.add(refetch);
94
+ const ws = getSharedLocalWsClient();
95
+ let subId = "";
96
+ let fallbackTimer = setTimeout(() => {
97
+ fallbackTimer = undefined;
98
+ void refetch();
99
+ }, 1500);
100
+ const sendSubscribe = () => {
101
+ subId = ws.subscribe(name, args, (next) => {
102
+ if (fallbackTimer) {
103
+ clearTimeout(fallbackTimer);
104
+ fallbackTimer = undefined;
105
+ }
106
+ setData(next);
107
+ setLoading(false);
108
+ setError(null);
109
+ });
110
+ };
111
+ sendSubscribe();
112
+ return () => {
113
+ if (fallbackTimer)
114
+ clearTimeout(fallbackTimer);
115
+ if (subId)
116
+ ws.unsubscribe(subId);
117
+ activeQueryRefetches.delete(refetch);
118
+ };
119
+ }, [name, argsKey, refetch, wsResetTick]);
42
120
  return { data, loading, error, refetch };
43
121
  }
44
- export function useMutation(name) {
122
+ export function useMutation(name, opts) {
45
123
  const [loading, setLoading] = useState(false);
46
124
  const [error, setError] = useState(null);
125
+ const optsRef = useRef(opts);
126
+ optsRef.current = opts;
47
127
  const mutate = useCallback(async (args) => {
48
128
  setLoading(true);
49
129
  setError(null);
50
130
  try {
51
- return await fetchMutation(name, args);
131
+ const transport = getTransportConfig().transport;
132
+ const serverUrl = getTransportConfig().serverUrl;
133
+ let result;
134
+ let refreshQueries = false;
135
+ if (transport === "local-http" && localServerSupportsWs(serverUrl)) {
136
+ try {
137
+ result = await getSharedLocalWsClient().mutate(name, args);
138
+ }
139
+ catch (err) {
140
+ if (!isLocalWsTransportError(err))
141
+ throw err;
142
+ resetSharedLocalWsClient();
143
+ result = await fetchMutation(name, args);
144
+ refreshQueries = true;
145
+ }
146
+ }
147
+ else {
148
+ result = await fetchMutation(name, args);
149
+ refreshQueries = transport === "local-http" && !localServerSupportsWs(serverUrl);
150
+ }
151
+ if (refreshQueries) {
152
+ invalidateActiveQueries();
153
+ }
154
+ optsRef.current?.onSuccess?.(result);
155
+ return result;
52
156
  }
53
157
  catch (err) {
54
158
  const e = err instanceof Error ? err : new Error(String(err));
55
159
  setError(e);
160
+ optsRef.current?.onError?.(e);
56
161
  throw e;
57
162
  }
58
163
  finally {
@@ -61,6 +166,76 @@ export function useMutation(name) {
61
166
  }, [name]);
62
167
  return { mutate, loading, error };
63
168
  }
169
+ export async function authAs(name) {
170
+ const { serverUrl } = getClientConfig();
171
+ const res = await fetch(`${serverUrl.replace(/\/$/, "")}/auth/as`, {
172
+ method: "POST",
173
+ headers: { "Content-Type": "application/json" },
174
+ body: JSON.stringify({ name }),
175
+ });
176
+ if (!res.ok) {
177
+ const json = (await res.json().catch(() => ({})));
178
+ throw new Error(json.error ?? `authAs failed (${res.status})`);
179
+ }
180
+ resetSharedLocalWsClient();
181
+ invalidateActiveQueries();
182
+ }
183
+ export function useConnection(pollMs = 5000) {
184
+ const [status, setStatus] = useState("connecting");
185
+ const [error, setError] = useState(null);
186
+ const [tick, setTick] = useState(0);
187
+ useEffect(() => {
188
+ let cancelled = false;
189
+ const check = async () => {
190
+ const { serverUrl, appUrl } = getClientConfig();
191
+ const transport = getTransportConfig().transport;
192
+ const base = (transport === "hosted-ws" ? (appUrl ?? serverUrl) : serverUrl).replace(/\/$/, "");
193
+ const controller = new AbortController();
194
+ const timer = setTimeout(() => controller.abort(), 4000);
195
+ try {
196
+ const paths = transport === "hosted-ws" ? ["/__lakebed/manifest"] : ["/health", "/api/status"];
197
+ let ok = false;
198
+ for (const path of paths) {
199
+ const res = await fetch(`${base}${path}`, { signal: controller.signal });
200
+ if (res.ok) {
201
+ ok = true;
202
+ break;
203
+ }
204
+ }
205
+ if (cancelled)
206
+ return;
207
+ if (ok) {
208
+ setStatus("connected");
209
+ setError(null);
210
+ }
211
+ else {
212
+ setStatus("disconnected");
213
+ setError(new Error(`Server unreachable at ${base}`));
214
+ }
215
+ }
216
+ catch (err) {
217
+ if (cancelled)
218
+ return;
219
+ setStatus("disconnected");
220
+ setError(err instanceof Error ? err : new Error(String(err)));
221
+ }
222
+ finally {
223
+ clearTimeout(timer);
224
+ }
225
+ };
226
+ void check();
227
+ const interval = setInterval(() => void check(), pollMs);
228
+ return () => {
229
+ cancelled = true;
230
+ clearInterval(interval);
231
+ };
232
+ }, [pollMs, tick]);
233
+ return {
234
+ status,
235
+ error,
236
+ retry: () => setTick((n) => n + 1),
237
+ };
238
+ }
64
239
  export async function signInWithGoogle() {
65
240
  return apiSignInWithGoogle();
66
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/client/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/client/hooks.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ export declare function hostedFetchQuery<T>(name: string, args?: unknown): Promi
4
4
  export declare function hostedFetchMutation<T>(name: string, args?: unknown): Promise<T>;
5
5
  export declare function hostedFetchAuth(): Promise<AuthUser | null>;
6
6
  export declare function hostedReconnectAuth(): Promise<void>;
7
- export declare function hostedSubscribeQuery<T>(name: string, cb: (data: T) => void, args?: unknown): () => void;
7
+ export declare function hostedSubscribeQuery<T>(name: string, cb: (data: T) => void, args?: unknown, onError?: (error: Error) => void): () => void;
8
8
  //# sourceMappingURL=hosted-ws.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hosted-ws.d.ts","sourceRoot":"","sources":["../../src/client/hosted-ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAyGvD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQnD;AAuCD,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAOlF;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAKrF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAKhE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOzD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EACrB,IAAI,CAAC,EAAE,OAAO,GACb,MAAM,IAAI,CAYZ"}
1
+ {"version":3,"file":"hosted-ws.d.ts","sourceRoot":"","sources":["../../src/client/hosted-ws.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAoIvD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQnD;AAsCD,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAOlF;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAKrF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAKhE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOzD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EACrB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,MAAM,IAAI,CAiBZ"}
@@ -1,9 +1,19 @@
1
+ import { notifyAuthChanged } from "./auth-events.js";
1
2
  import { readStoredAuthToken } from "./google-auth.js";
2
3
  let appUrl = "";
3
4
  let socket = null;
4
5
  let nextRequestId = 1;
5
6
  const pending = new Map();
6
7
  const queryListeners = new Map();
8
+ function normalizeHostedArgs(args) {
9
+ if (args === undefined)
10
+ return undefined;
11
+ return Array.isArray(args) ? args : [args];
12
+ }
13
+ function queryListenerKey(name, args) {
14
+ const normalized = normalizeHostedArgs(args);
15
+ return normalized === undefined ? name : `${name}\0${JSON.stringify(normalized)}`;
16
+ }
7
17
  let currentAuth = null;
8
18
  let connectPromise = null;
9
19
  function hostedAuthToUser(auth) {
@@ -44,18 +54,37 @@ function request(op, payload = {}) {
44
54
  pending.set(id, { resolve, reject });
45
55
  });
46
56
  }
47
- function emitQuery(name, data) {
48
- for (const listener of queryListeners.get(name) ?? []) {
49
- listener(data);
57
+ function emitQuery(name, data, args) {
58
+ const keys = new Set();
59
+ if (args === undefined) {
60
+ keys.add(name);
61
+ for (const key of queryListeners.keys()) {
62
+ if (key.startsWith(`${name}\0`))
63
+ keys.add(key);
64
+ }
65
+ }
66
+ else {
67
+ keys.add(queryListenerKey(name, args));
68
+ }
69
+ const seen = new Set();
70
+ for (const key of keys) {
71
+ for (const listener of queryListeners.get(key) ?? []) {
72
+ if (seen.has(listener))
73
+ continue;
74
+ seen.add(listener);
75
+ listener(data);
76
+ }
50
77
  }
51
78
  }
52
79
  function handleMessage(raw) {
53
80
  const message = JSON.parse(raw);
54
- if (message.op === "auth.result" && message.auth) {
81
+ if (message.op === "auth.result") {
55
82
  currentAuth = hostedAuthToUser(message.auth);
83
+ notifyAuthChanged(currentAuth);
56
84
  }
57
85
  if (message.op === "query.result" && message.name) {
58
- emitQuery(message.name, message.data);
86
+ const resultArgs = message.args;
87
+ emitQuery(message.name, message.data, resultArgs);
59
88
  return;
60
89
  }
61
90
  if (typeof message.id === "number" && pending.has(message.id)) {
@@ -111,9 +140,7 @@ async function ensureConnected() {
111
140
  await connectPromise;
112
141
  }
113
142
  function hostedQueryArgs(args) {
114
- if (args === undefined)
115
- return undefined;
116
- return Array.isArray(args) ? args : [args];
143
+ return normalizeHostedArgs(args);
117
144
  }
118
145
  export async function hostedFetchQuery(name, args) {
119
146
  await ensureConnected();
@@ -145,19 +172,24 @@ export async function hostedReconnectAuth() {
145
172
  connectPromise = null;
146
173
  await ensureConnected();
147
174
  }
148
- export function hostedSubscribeQuery(name, cb, args) {
149
- if (!queryListeners.has(name))
150
- queryListeners.set(name, new Set());
151
- queryListeners.get(name).add(cb);
152
- void ensureConnected().then(() => {
175
+ export function hostedSubscribeQuery(name, cb, args, onError) {
176
+ const key = queryListenerKey(name, args);
177
+ if (!queryListeners.has(key))
178
+ queryListeners.set(key, new Set());
179
+ queryListeners.get(key).add(cb);
180
+ void ensureConnected()
181
+ .then(() => {
153
182
  const payload = { op: "query.subscribe", name };
154
183
  const argList = hostedQueryArgs(args);
155
184
  if (argList)
156
185
  payload.args = argList;
157
186
  send(payload);
187
+ })
188
+ .catch((err) => {
189
+ onError?.(err instanceof Error ? err : new Error(String(err)));
158
190
  });
159
191
  return () => {
160
- queryListeners.get(name)?.delete(cb);
192
+ queryListeners.get(key)?.delete(cb);
161
193
  };
162
194
  }
163
195
  //# sourceMappingURL=hosted-ws.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hosted-ws.js","sourceRoot":"","sources":["../../src/client/hosted-ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hosted-ws.js","sourceRoot":"","sources":["../../src/client/hosted-ws.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { configureClient, getClientConfig, useAuth, useQuery, useMutation, useClientBootstrap, } from "./hooks.js";
1
+ export { configureClient, getClientConfig, useAuth, useQuery, useMutation, useConnection, useClientBootstrap, authAs, } from "./hooks.js";
2
2
  export { signInWithGoogle, signOut } from "./api.js";
3
3
  export { fetchQuery, fetchMutation, createWsClient } from "./api.js";
4
4
  export { SignInWithGoogle } from "./SignInWithGoogle.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,EACR,WAAW,EACX,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,EACR,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { configureClient, getClientConfig, useAuth, useQuery, useMutation, useClientBootstrap, } from "./hooks.js";
1
+ export { configureClient, getClientConfig, useAuth, useQuery, useMutation, useConnection, useClientBootstrap, authAs, } from "./hooks.js";
2
2
  export { signInWithGoogle, signOut } from "./api.js";
3
3
  export { fetchQuery, fetchMutation, createWsClient } from "./api.js";
4
4
  export { SignInWithGoogle } from "./SignInWithGoogle.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,EACR,WAAW,EACX,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,EACR,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -5,7 +5,10 @@ type TransportConfig = {
5
5
  appUrl?: string;
6
6
  transport: ClientTransport;
7
7
  };
8
+ export declare function isLocalDevServerUrl(url: string): boolean;
8
9
  export declare function isHostedLakebedUrl(url: string): boolean;
10
+ /** Local hosted runner (`/d/.../api`) exposes HTTP only — no WebSocket upgrade. */
11
+ export declare function localServerSupportsWs(serverUrl: string): boolean;
9
12
  export declare function resolveTransport(serverUrl: string, explicit?: ClientTransport): ClientTransport;
10
13
  export declare function configureTransport(c: {
11
14
  serverUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC;AAEzD,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAOF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,CAM/F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,GAAG,IAAI,CAWP;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAOD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAerF;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAexF;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASnE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOtD"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC;AAEzD,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAgBF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASvD;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAOhE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,eAAe,CAI/F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,GAAG,IAAI,CAWP;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAOD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAerF;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAexF;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASnE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOtD"}
@@ -4,13 +4,35 @@ let config = {
4
4
  serverUrl: "http://localhost:3000",
5
5
  transport: "local-http",
6
6
  };
7
+ function isPrivateOrDevHost(host) {
8
+ if (host === "localhost" || host === "127.0.0.1" || host === "::1")
9
+ return true;
10
+ if (host === "10.0.2.2")
11
+ return true;
12
+ if (/^10\./.test(host))
13
+ return true;
14
+ if (/^192\.168\./.test(host))
15
+ return true;
16
+ if (/^172\.(1[6-9]|2\d|3[0-1])\./.test(host))
17
+ return true;
18
+ return false;
19
+ }
20
+ export function isLocalDevServerUrl(url) {
21
+ try {
22
+ const parsed = new URL(url);
23
+ if (parsed.pathname.includes("/d/"))
24
+ return true;
25
+ return isPrivateOrDevHost(parsed.hostname);
26
+ }
27
+ catch {
28
+ return url.includes("localhost") || url.includes("127.0.0.1");
29
+ }
30
+ }
7
31
  export function isHostedLakebedUrl(url) {
8
32
  try {
9
33
  const parsed = new URL(url);
10
34
  const host = parsed.hostname;
11
- if (host === "localhost" || host === "127.0.0.1" || host === "::1")
12
- return false;
13
- if (parsed.pathname.includes("/d/"))
35
+ if (isLocalDevServerUrl(url))
14
36
  return false;
15
37
  return host.endsWith(".lakebed.app") || host.endsWith(".lakebed.dev");
16
38
  }
@@ -18,14 +40,20 @@ export function isHostedLakebedUrl(url) {
18
40
  return false;
19
41
  }
20
42
  }
43
+ /** Local hosted runner (`/d/.../api`) exposes HTTP only — no WebSocket upgrade. */
44
+ export function localServerSupportsWs(serverUrl) {
45
+ try {
46
+ const parsed = new URL(serverUrl);
47
+ return !(parsed.pathname.includes("/d/") && parsed.pathname.includes("/api"));
48
+ }
49
+ catch {
50
+ return !(serverUrl.includes("/d/") && serverUrl.includes("/api"));
51
+ }
52
+ }
21
53
  export function resolveTransport(serverUrl, explicit) {
22
54
  if (explicit)
23
55
  return explicit;
24
- if (isHostedLakebedUrl(serverUrl))
25
- return "hosted-ws";
26
- if (serverUrl.includes("/d/") && serverUrl.includes("/api"))
27
- return "local-http";
28
- if (serverUrl.includes("localhost") || serverUrl.includes("127.0.0.1"))
56
+ if (isLocalDevServerUrl(serverUrl))
29
57
  return "local-http";
30
58
  return "hosted-ws";
31
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakebed-native/client",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Lakebed Native client runtime",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -32,13 +32,21 @@
32
32
  "react-native": ">=0.79"
33
33
  },
34
34
  "peerDependenciesMeta": {
35
- "expo-crypto": { "optional": true },
36
- "expo-linking": { "optional": true },
37
- "expo-secure-store": { "optional": true },
38
- "expo-web-browser": { "optional": true }
35
+ "expo-crypto": {
36
+ "optional": true
37
+ },
38
+ "expo-linking": {
39
+ "optional": true
40
+ },
41
+ "expo-secure-store": {
42
+ "optional": true
43
+ },
44
+ "expo-web-browser": {
45
+ "optional": true
46
+ }
39
47
  },
40
48
  "dependencies": {
41
- "@lakebed-native/shared": "0.1.0"
49
+ "@lakebed-native/shared": "^0.1.3"
42
50
  },
43
51
  "devDependencies": {
44
52
  "@types/react": "^19.1.2",