@urnetwork/sdk-js 0.0.1-beta.1

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.js ADDED
@@ -0,0 +1,540 @@
1
+ let wasmInitialized = false;
2
+ let wasmInitPromise = null;
3
+ async function loadWasmExec(url) {
4
+ if (typeof window.Go !== "undefined") {
5
+ return;
6
+ }
7
+ const wasmExecUrl = url || new URL("../wasm/wasm_exec.js", import.meta.url).href;
8
+ return new Promise((resolve, reject) => {
9
+ const script = document.createElement("script");
10
+ script.src = wasmExecUrl;
11
+ script.onload = () => resolve();
12
+ script.onerror = () => reject(new Error(`Failed to load wasm_exec.js from ${wasmExecUrl}`));
13
+ document.head.appendChild(script);
14
+ });
15
+ }
16
+ async function instantiateWasm(wasmUrl, go) {
17
+ let result;
18
+ if (WebAssembly.instantiateStreaming) {
19
+ try {
20
+ result = await WebAssembly.instantiateStreaming(fetch(wasmUrl), go.importObject);
21
+ return result.instance;
22
+ }
23
+ catch (e) {
24
+ console.warn("Streaming instantiation failed, falling back to fetch:", e);
25
+ }
26
+ }
27
+ const wasmBuffer = await fetch(wasmUrl).then((response) => response.arrayBuffer());
28
+ result = await WebAssembly.instantiate(wasmBuffer, go.importObject);
29
+ return result.instance;
30
+ }
31
+ async function initWasm(options = {}) {
32
+ if (wasmInitPromise) {
33
+ return wasmInitPromise;
34
+ }
35
+ if (wasmInitialized) {
36
+ return;
37
+ }
38
+ wasmInitPromise = (async () => {
39
+ try {
40
+ await loadWasmExec(options.wasmExecUrl);
41
+ const go = new window.Go();
42
+ const wasmUrl = options.wasmUrl || new URL("../wasm/sdk.wasm", import.meta.url).href;
43
+ const wasmInstance = await instantiateWasm(wasmUrl, go);
44
+ go.run(wasmInstance);
45
+ wasmInitialized = true;
46
+ }
47
+ catch (error) {
48
+ wasmInitPromise = null;
49
+ throw new Error(`Failed to initialize URnetwork WASM: ${error}`);
50
+ }
51
+ })();
52
+ return wasmInitPromise;
53
+ }
54
+ function isWasmInitialized() {
55
+ return wasmInitialized;
56
+ }
57
+ function getWasmGlobals() {
58
+ if (!wasmInitialized) {
59
+ throw new Error("WASM not initialized. Call initWasm() first.");
60
+ }
61
+ return {
62
+ URnetworkNewProxyDeviceWithDefaults: window.URnetworkNewProxyDeviceWithDefaults,
63
+ URnetworkClose: window.URnetworkClose,
64
+ };
65
+ }
66
+
67
+ class URNetworkAPI {
68
+ constructor(config) {
69
+ this.baseURL = config?.baseURL || "https://api.bringyour.com";
70
+ }
71
+ async safeJsonParse(response) {
72
+ const contentType = response.headers.get("content-type");
73
+ if (response.status === 204) {
74
+ return {};
75
+ }
76
+ if (contentType && contentType.includes("application/json")) {
77
+ try {
78
+ const text = await response.text();
79
+ if (!text || text.trim() === "") {
80
+ return {};
81
+ }
82
+ return JSON.parse(text);
83
+ }
84
+ catch (error) {
85
+ console.error("JSON parse error:", error);
86
+ throw new Error("Failed to parse response as JSON");
87
+ }
88
+ }
89
+ const text = await response.text();
90
+ throw new Error(`Expected JSON response but got: ${text.substring(0, 100)}`);
91
+ }
92
+ async authLogin(params) {
93
+ try {
94
+ const response = await fetch(`${this.baseURL}/auth/login`, {
95
+ method: "POST",
96
+ headers: {
97
+ "Content-Type": "application/json",
98
+ },
99
+ body: JSON.stringify({
100
+ user_auth: params.user_auth,
101
+ auth_jwt_type: params.auth_jwt_type,
102
+ auth_jwt: params.auth_jwt,
103
+ wallet_auth: params.wallet_auth,
104
+ }),
105
+ });
106
+ if (!response.ok) {
107
+ console.error("Password login failed:", response.status, response.statusText);
108
+ const errorData = await response.text();
109
+ console.error("Error response:", errorData);
110
+ return {
111
+ error: {
112
+ message: `HTTP error! status: ${response.status}`,
113
+ },
114
+ };
115
+ }
116
+ const data = await this.safeJsonParse(response);
117
+ return data;
118
+ }
119
+ catch (error) {
120
+ console.error("Login error:", error);
121
+ return {
122
+ error: {
123
+ message: error instanceof Error ? error.message : "Authentication failed",
124
+ },
125
+ };
126
+ }
127
+ }
128
+ async authLoginWithPassword(params) {
129
+ try {
130
+ const response = await fetch(`${this.baseURL}/auth/login-with-password`, {
131
+ method: "POST",
132
+ headers: {
133
+ "Content-Type": "application/json",
134
+ },
135
+ body: JSON.stringify({
136
+ user_auth: params.user_auth,
137
+ password: params.password,
138
+ }),
139
+ });
140
+ if (!response.ok) {
141
+ console.error("Password login failed:", response.status, response.statusText);
142
+ const errorData = await response.text();
143
+ console.error("Error response:", errorData);
144
+ return {
145
+ error: {
146
+ message: `HTTP error! status: ${response.status}`,
147
+ },
148
+ };
149
+ }
150
+ const data = await this.safeJsonParse(response);
151
+ return data;
152
+ }
153
+ catch (error) {
154
+ console.error("Password login error:", error);
155
+ return {
156
+ error: {
157
+ message: error instanceof Error
158
+ ? error.message
159
+ : "Password authentication failed",
160
+ },
161
+ };
162
+ }
163
+ }
164
+ async networkCheck(params) {
165
+ try {
166
+ const response = await fetch(`${this.baseURL}/auth/network-check`, {
167
+ method: "POST",
168
+ headers: {
169
+ "Content-Type": "application/json",
170
+ },
171
+ body: JSON.stringify({
172
+ network_name: params.network_name,
173
+ }),
174
+ });
175
+ if (!response.ok) {
176
+ console.error("Network check failed:", response.status, response.statusText);
177
+ const errorData = await response.text();
178
+ console.error("Error response:", errorData);
179
+ return undefined;
180
+ }
181
+ return await this.safeJsonParse(response);
182
+ }
183
+ catch (error) {
184
+ console.error("Network check error:", error);
185
+ return undefined;
186
+ }
187
+ }
188
+ async networkCreate(params) {
189
+ try {
190
+ if (!params.terms) {
191
+ return {
192
+ error: {
193
+ message: "Terms must be accepted to create a network.",
194
+ },
195
+ };
196
+ }
197
+ let requestParams = {
198
+ terms: params.terms,
199
+ guest_mode: false,
200
+ };
201
+ if (params.user_auth && params.password) {
202
+ requestParams.user_auth = params.user_auth;
203
+ requestParams.password = params.password;
204
+ }
205
+ if (params.auth_jwt && params.auth_jwt_type) {
206
+ requestParams.auth_jwt = params.auth_jwt;
207
+ requestParams.auth_jwt_type = params.auth_jwt_type;
208
+ }
209
+ if (params.wallet_auth) {
210
+ requestParams.wallet_auth = params.wallet_auth;
211
+ }
212
+ const response = await fetch(`${this.baseURL}/network/create`, {
213
+ method: "POST",
214
+ headers: {
215
+ "Content-Type": "application/json",
216
+ },
217
+ body: JSON.stringify(requestParams),
218
+ });
219
+ if (!response.ok) {
220
+ console.error("Network creation failed:", response.status, response.statusText);
221
+ const errorData = await response.text();
222
+ console.error("Error response:", errorData);
223
+ return {
224
+ error: {
225
+ message: `HTTP error! status: ${response.status}`,
226
+ },
227
+ };
228
+ }
229
+ const data = await this.safeJsonParse(response);
230
+ return data;
231
+ }
232
+ catch (error) {
233
+ console.error("Network creation error:", error);
234
+ return {
235
+ error: {
236
+ message: error instanceof Error ? error.message : "Network creation failed",
237
+ },
238
+ };
239
+ }
240
+ }
241
+ async authCodeLogin(params) {
242
+ try {
243
+ const response = await fetch(`${this.baseURL}/auth/code-login`, {
244
+ method: "POST",
245
+ headers: {
246
+ "Content-Type": "application/json",
247
+ },
248
+ body: JSON.stringify(params),
249
+ });
250
+ if (!response.ok) {
251
+ console.error("Auth code login failed:", response.status, response.statusText);
252
+ const errorData = await response.text();
253
+ console.error("Error response:", errorData);
254
+ return {
255
+ by_jwt: "",
256
+ error: {
257
+ message: errorData,
258
+ },
259
+ };
260
+ }
261
+ return await this.safeJsonParse(response);
262
+ }
263
+ catch (error) {
264
+ console.error("Network check error:", error);
265
+ return {
266
+ by_jwt: "",
267
+ error: {
268
+ message: error instanceof Error ? error.message : "Auth code login failed",
269
+ },
270
+ };
271
+ }
272
+ }
273
+ async networkProviderLocations() {
274
+ try {
275
+ const response = await fetch(`${this.baseURL}/network/provider-locations`, {
276
+ method: "GET",
277
+ headers: {
278
+ "Content-Type": "application/json",
279
+ },
280
+ });
281
+ if (!response.ok) {
282
+ console.error("/network/provider-locations failed:", response.status, response.statusText);
283
+ const errorData = await response.text();
284
+ console.error("Error response:", errorData);
285
+ return {
286
+ specs: [],
287
+ groups: [],
288
+ locations: [],
289
+ devices: [],
290
+ };
291
+ }
292
+ const data = await this.safeJsonParse(response);
293
+ return data;
294
+ }
295
+ catch (error) {
296
+ console.error("User auth verification error:", error);
297
+ return {
298
+ specs: [],
299
+ groups: [],
300
+ locations: [],
301
+ devices: [],
302
+ };
303
+ }
304
+ }
305
+ async searchProviderLocations(params) {
306
+ try {
307
+ const response = await fetch(`${this.baseURL}/network/find-provider-locations`, {
308
+ method: "POST",
309
+ headers: {
310
+ "Content-Type": "application/json",
311
+ },
312
+ body: JSON.stringify(params),
313
+ });
314
+ if (!response.ok) {
315
+ console.error("network/find-provider-locations failed:", response.status, response.statusText);
316
+ const errorData = await response.text();
317
+ console.error("Error response:", errorData);
318
+ return {
319
+ specs: [],
320
+ groups: [],
321
+ locations: [],
322
+ devices: [],
323
+ };
324
+ }
325
+ return await this.safeJsonParse(response);
326
+ }
327
+ catch (error) {
328
+ console.error("network/find-provider-locations error:", error);
329
+ return {
330
+ specs: [],
331
+ groups: [],
332
+ locations: [],
333
+ devices: [],
334
+ };
335
+ }
336
+ }
337
+ async verifyUserAuth(params, adminToken) {
338
+ try {
339
+ const response = await fetch(`${this.baseURL}/auth/verify`, {
340
+ method: "POST",
341
+ headers: {
342
+ "Content-Type": "application/json",
343
+ Authorization: `Bearer ${adminToken}`,
344
+ },
345
+ body: JSON.stringify({
346
+ user_auth: params.user_auth,
347
+ verify_code: params.verify_code,
348
+ }),
349
+ });
350
+ if (!response.ok) {
351
+ console.error("User auth verification failed:", response.status, response.statusText);
352
+ const errorData = await response.text();
353
+ console.error("Error response:", errorData);
354
+ return {
355
+ error: {
356
+ message: `HTTP error! status: ${response.status}`,
357
+ },
358
+ };
359
+ }
360
+ const data = await this.safeJsonParse(response);
361
+ return data;
362
+ }
363
+ catch (error) {
364
+ console.error("User auth verification error:", error);
365
+ return {
366
+ error: {
367
+ message: error instanceof Error ? error.message : "Verification failed",
368
+ },
369
+ };
370
+ }
371
+ }
372
+ async authNetworkClient(params, token, signal) {
373
+ try {
374
+ const response = await fetch(`${this.baseURL}/network/auth-client`, {
375
+ method: "POST",
376
+ headers: {
377
+ "Content-Type": "application/json",
378
+ Authorization: `Bearer ${token}`,
379
+ },
380
+ body: JSON.stringify(params),
381
+ signal,
382
+ });
383
+ if (!response.ok) {
384
+ console.error("Auth network client failed:", response.status, response.statusText);
385
+ const errorData = await response.text();
386
+ console.error("Error response:", errorData);
387
+ return {
388
+ proxy_config_result: null,
389
+ error: {
390
+ message: `HTTP error! status: ${response.status}`,
391
+ client_limit_exceeded: false,
392
+ },
393
+ };
394
+ }
395
+ return await this.safeJsonParse(response);
396
+ }
397
+ catch (error) {
398
+ if (error instanceof Error && error.name === "AbortError") {
399
+ console.log("Auth network client request was cancelled");
400
+ throw error;
401
+ }
402
+ console.error("Auth network client error:", error);
403
+ return {
404
+ proxy_config_result: null,
405
+ error: {
406
+ message: error instanceof Error
407
+ ? error.message
408
+ : "Auth network client failed",
409
+ client_limit_exceeded: false,
410
+ },
411
+ };
412
+ }
413
+ }
414
+ async removeNetworkClient(params, token) {
415
+ try {
416
+ const response = await fetch(`${this.baseURL}/network/remove-client`, {
417
+ method: "POST",
418
+ headers: {
419
+ "Content-Type": "application/json",
420
+ Authorization: `Bearer ${token}`,
421
+ },
422
+ body: JSON.stringify(params),
423
+ });
424
+ if (!response.ok) {
425
+ console.error("Network removed client failed failed:", response.status, response.statusText);
426
+ const errorData = await response.text();
427
+ console.error("Error response:", errorData);
428
+ return {
429
+ error: {
430
+ message: `HTTP error! status: ${response.status}`,
431
+ },
432
+ };
433
+ }
434
+ const data = await this.safeJsonParse(response);
435
+ return data;
436
+ }
437
+ catch (error) {
438
+ console.error("Remove network client error:", error);
439
+ return {
440
+ error: {
441
+ message: error instanceof Error
442
+ ? error.message
443
+ : "Remove network client failed",
444
+ },
445
+ };
446
+ }
447
+ }
448
+ }
449
+
450
+ function parseByJwtClientId(byJwt) {
451
+ try {
452
+ const parts = byJwt.split(".");
453
+ if (parts.length !== 3) {
454
+ throw new Error("Invalid JWT format: expected 3 parts separated by dots");
455
+ }
456
+ const payload = parts[1];
457
+ const base64 = payload.replace(/-/g, "+").replace(/_/g, "/");
458
+ const jsonPayload = decodeURIComponent(atob(base64)
459
+ .split("")
460
+ .map((c) => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2))
461
+ .join(""));
462
+ const claims = JSON.parse(jsonPayload);
463
+ if (!claims.client_id) {
464
+ throw new Error("byJwt does not contain claim client_id");
465
+ }
466
+ if (typeof claims.client_id !== "string") {
467
+ throw new Error(`byJwt have invalid type for client_id: ${typeof claims.client_id}`);
468
+ }
469
+ if (!isValidUUID(claims.client_id)) {
470
+ throw new Error(`client_id is not a valid UUID: ${claims.client_id}`);
471
+ }
472
+ return claims.client_id;
473
+ }
474
+ catch (error) {
475
+ if (error instanceof Error) {
476
+ throw error;
477
+ }
478
+ throw new Error(`Failed to parse JWT: ${String(error)}`);
479
+ }
480
+ }
481
+ function isValidUUID(str) {
482
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
483
+ return uuidRegex.test(str);
484
+ }
485
+ function parseJWTClaims(jwt) {
486
+ try {
487
+ const parts = jwt.split(".");
488
+ if (parts.length !== 3) {
489
+ throw new Error("Invalid JWT format: expected 3 parts separated by dots");
490
+ }
491
+ const payload = parts[1];
492
+ const base64 = payload.replace(/-/g, "+").replace(/_/g, "/");
493
+ const jsonPayload = decodeURIComponent(atob(base64)
494
+ .split("")
495
+ .map((c) => "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2))
496
+ .join(""));
497
+ return JSON.parse(jsonPayload);
498
+ }
499
+ catch (error) {
500
+ if (error instanceof Error) {
501
+ throw error;
502
+ }
503
+ throw new Error(`Failed to parse JWT: ${String(error)}`);
504
+ }
505
+ }
506
+
507
+ class URNetwork {
508
+ constructor() { }
509
+ static async init(options = {}) {
510
+ if (URNetwork.instance) {
511
+ return URNetwork.instance;
512
+ }
513
+ await initWasm(options);
514
+ const instance = new URNetwork();
515
+ URNetwork.instance = instance;
516
+ return instance;
517
+ }
518
+ static getInstance() {
519
+ if (!URNetwork.instance) {
520
+ throw new Error("SDK not initialized. Call URNetwork.init() first.");
521
+ }
522
+ return URNetwork.instance;
523
+ }
524
+ createProxyDevice(config, setupCallback) {
525
+ const { URnetworkNewProxyDeviceWithDefaults } = getWasmGlobals();
526
+ return URnetworkNewProxyDeviceWithDefaults(config, setupCallback);
527
+ }
528
+ close() {
529
+ const { URnetworkClose } = getWasmGlobals();
530
+ URnetworkClose();
531
+ URNetwork.instance = null;
532
+ }
533
+ isInitialized() {
534
+ return isWasmInitialized();
535
+ }
536
+ }
537
+ URNetwork.instance = null;
538
+
539
+ export { URNetwork, URNetworkAPI, URNetwork as default, parseByJwtClientId, parseJWTClaims };
540
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/loader.ts","../src/api.ts","../src/utils/jwt.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { InitOptions } from "./types";
2
+ declare global {
3
+ interface Window {
4
+ Go: any;
5
+ URnetworkNewProxyDeviceWithDefaults: any;
6
+ URnetworkClose: any;
7
+ }
8
+ }
9
+ export declare function initWasm(options?: InitOptions): Promise<void>;
10
+ export declare function isWasmInitialized(): boolean;
11
+ export declare function getWasmGlobals(): {
12
+ URnetworkNewProxyDeviceWithDefaults: any;
13
+ URnetworkClose: any;
14
+ };
15
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,EAAE,EAAE,GAAG,CAAC;QACR,mCAAmC,EAAE,GAAG,CAAC;QACzC,cAAc,EAAE,GAAG,CAAC;KACrB;CACF;AAgDD,wBAAsB,QAAQ,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBvE;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,cAAc;;;EAU7B"}
@@ -0,0 +1,33 @@
1
+ import React, { type ReactNode } from "react";
2
+ import { URNetworkAPI } from "../api";
3
+ export interface URNetworkAPIProviderProps {
4
+ children: ReactNode;
5
+ config?: {
6
+ baseURL?: string;
7
+ token?: string;
8
+ };
9
+ }
10
+ export declare function URNetworkAPIProvider({ children, config, }: URNetworkAPIProviderProps): React.JSX.Element;
11
+ export declare function useAPI(): URNetworkAPI;
12
+ export interface StorageAdapter {
13
+ getItem: (key: string) => Promise<string | null>;
14
+ setItem: (key: string, value: string) => Promise<void>;
15
+ removeItem: (key: string) => Promise<void>;
16
+ }
17
+ interface AuthContextValue {
18
+ token: string | null;
19
+ networkName: string | null;
20
+ isLoading: boolean;
21
+ isAuthenticated: boolean;
22
+ setAuth: (jwt: string, networkName?: string) => Promise<void>;
23
+ clearAuth: () => Promise<void>;
24
+ }
25
+ interface AuthProviderProps {
26
+ children: ReactNode;
27
+ storage?: StorageAdapter;
28
+ onAuthChange?: (jwt: string | null, networkName: string | null) => void;
29
+ }
30
+ export declare function AuthProvider({ children, storage: storageAdapter, onAuthChange, }: AuthProviderProps): React.JSX.Element;
31
+ export declare function useAuth(): AuthContextValue;
32
+ export {};
33
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/react/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAUtC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAkBD,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,MAAM,GACP,EAAE,yBAAyB,qBAa3B;AAMD,wBAAgB,MAAM,IAAI,YAAY,CAMrC;AAUD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAID,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,EAAE,cAAc,EACvB,YAAY,GACb,EAAE,iBAAiB,qBA2FnB;AAED,wBAAgB,OAAO,IAAI,gBAAgB,CAM1C"}
@@ -0,0 +1,47 @@
1
+ import { URNetwork } from "../index";
2
+ import type { InitOptions } from "../types";
3
+ import { AuthCodeLoginResult, AuthNetworkClientArgs, AuthNetworkClientResult, AuthVerifyResult, FilteredLocations, NetworkCheckResult } from "../generated";
4
+ export declare function useURNetwork(options?: InitOptions): {
5
+ sdk: URNetwork | null;
6
+ loading: boolean;
7
+ error: Error | null;
8
+ };
9
+ export declare function useCheckNetwork(options?: {
10
+ debounceMs?: number;
11
+ minLength?: number;
12
+ }): {
13
+ checkNetwork: (params: {
14
+ network_name: string;
15
+ }) => void;
16
+ loading: boolean;
17
+ error: Error | null;
18
+ result: NetworkCheckResult | null;
19
+ };
20
+ export declare function useVerifyUserAuth(): {
21
+ verifyUserAuth: (userAuth: string, code: string) => Promise<AuthVerifyResult>;
22
+ loading: boolean;
23
+ error: Error | null;
24
+ };
25
+ export declare function useAuthCodeLogin(): {
26
+ loading: boolean;
27
+ error: Error | null;
28
+ authCodeLogin: (authCode: string) => Promise<AuthCodeLoginResult>;
29
+ };
30
+ export declare function useAuthNetworkClient(): {
31
+ loading: boolean;
32
+ error: Error | null;
33
+ authNetworkClient: (params: AuthNetworkClientArgs) => Promise<AuthNetworkClientResult>;
34
+ };
35
+ export declare function useProviderList(): {
36
+ loading: boolean;
37
+ error: Error | null;
38
+ filteredLocations: FilteredLocations;
39
+ query: string;
40
+ setQuery: import("react").Dispatch<import("react").SetStateAction<string>>;
41
+ };
42
+ export declare function useRemoveNetworkClient(): {
43
+ loading: boolean;
44
+ error: Error | null;
45
+ removeNetworkClient: (clientId: string) => Promise<import("../generated").RemoveNetworkClientResult>;
46
+ };
47
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAEhB,iBAAiB,EAGjB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAOtB,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW;;;;EA+BjD;AAKD,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;2BA2CY;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE;;;;EAiCpC;AAED,wBAAgB,iBAAiB;+BAOZ,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAAC;;;EA0CpE;AAED,wBAAgB,gBAAgB;;;8BAMX,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAAC;EA+BzD;AAED,wBAAgB,oBAAoB;;;gCAQjB,qBAAqB,KAAG,OAAO,CAAC,uBAAuB,CAAC;EAyF1E;AAeD,wBAAgB,eAAe;;;;;;EA4M9B;AAED,wBAAgB,sBAAsB;;;oCAOjB,MAAM;EA4C1B"}