@urnetwork/sdk 2026.9.17-1048676710
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/README.md +106 -0
- package/dist/api.d.ts +23 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/generated/index.d.ts +2 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/types.d.ts +639 -0
- package/dist/generated/types.d.ts.map +1 -0
- package/dist/index.cjs +1484 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1462 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +26 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/react/context.d.ts +33 -0
- package/dist/react/context.d.ts.map +1 -0
- package/dist/react/hooks/constants.d.ts +2 -0
- package/dist/react/hooks/constants.d.ts.map +1 -0
- package/dist/react/hooks/index.d.ts +7 -0
- package/dist/react/hooks/index.d.ts.map +1 -0
- package/dist/react/hooks/useAuthCodeLogin.d.ts +7 -0
- package/dist/react/hooks/useAuthCodeLogin.d.ts.map +1 -0
- package/dist/react/hooks/useAuthNetworkClient.d.ts +7 -0
- package/dist/react/hooks/useAuthNetworkClient.d.ts.map +1 -0
- package/dist/react/hooks/useCheckNetwork.d.ts +13 -0
- package/dist/react/hooks/useCheckNetwork.d.ts.map +1 -0
- package/dist/react/hooks/useProviderList.d.ts +10 -0
- package/dist/react/hooks/useProviderList.d.ts.map +1 -0
- package/dist/react/hooks/useRemoveNetworkClient.d.ts +6 -0
- package/dist/react/hooks/useRemoveNetworkClient.d.ts.map +1 -0
- package/dist/react/hooks/useVerifyUserAuth.d.ts +7 -0
- package/dist/react/hooks/useVerifyUserAuth.d.ts.map +1 -0
- package/dist/react/index.cjs +2050 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.ts +4 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +2021 -0
- package/dist/react/index.js.map +1 -0
- package/dist/socket.d.ts +111 -0
- package/dist/socket.d.ts.map +1 -0
- package/dist/subprotocol.d.ts +27 -0
- package/dist/subprotocol.d.ts.map +1 -0
- package/dist/types.d.ts +616 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/fetch_retry.d.ts +10 -0
- package/dist/utils/fetch_retry.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/jwt.d.ts +7 -0
- package/dist/utils/jwt.d.ts.map +1 -0
- package/dist/utils/solana_pay.d.ts +17 -0
- package/dist/utils/solana_pay.d.ts.map +1 -0
- package/dist/wasm/sdk.wasm +4 -0
- package/dist/wasm/wasm_exec.js +575 -0
- package/package.json +58 -0
- package/wasm/sdk.wasm +4 -0
- package/wasm/wasm_exec.js +575 -0
package/README.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# URnetwork JavaScript SDK
|
|
2
|
+
|
|
3
|
+
The Go/WASM SDK runs in modern browsers and Node 24+. It controls a native
|
|
4
|
+
Device through `DeviceRemote`, using either a configured hosted device or an
|
|
5
|
+
extension/companion transport. The canonical npm name is `@urnetwork/sdk`;
|
|
6
|
+
its first publication is pending. `@urnetwork/sdk-js` is the compatibility
|
|
7
|
+
import.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
npm install @urnetwork/sdk
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The unqualified command selects `latest`. Preview builds use
|
|
16
|
+
`npm install @urnetwork/sdk@nightly`. ESM, CommonJS, TypeScript declarations,
|
|
17
|
+
React bindings, WASM and its matching Go runtime glue are included.
|
|
18
|
+
|
|
19
|
+
## Sockets and Direct Sockets
|
|
20
|
+
|
|
21
|
+
An initialized Device exposes `dial`, `dialTls` and `directSockets`. Conn has
|
|
22
|
+
async reads/writes, deadlines, close, and Web Streams adapters. TCP/UDP support
|
|
23
|
+
IPv4, IPv6 and hostname Happy Eyeballs. Plain UDP races the initial datagram
|
|
24
|
+
and selects the first reply; that datagram may be delivered to both addresses.
|
|
25
|
+
|
|
26
|
+
Use the Direct Sockets constructor signatures with a UR Device:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
const {TCPSocket, UDPSocket} = device.directSockets;
|
|
30
|
+
const socket = new TCPSocket("echo.example", 9000);
|
|
31
|
+
const {readable, writable} = await socket.opened;
|
|
32
|
+
const writer = writable.getWriter();
|
|
33
|
+
await writer.write(new TextEncoder().encode("hello"));
|
|
34
|
+
await writer.close();
|
|
35
|
+
writer.releaseLock();
|
|
36
|
+
const reader = readable.getReader({mode: "byob"});
|
|
37
|
+
console.log(await reader.read(new Uint8Array(1024)));
|
|
38
|
+
await reader.cancel();
|
|
39
|
+
reader.releaseLock();
|
|
40
|
+
await socket.close();
|
|
41
|
+
await socket.closed;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`createDirectSockets(device)` also returns bound constructors. TCP accepts
|
|
45
|
+
`BufferSource` writes and supports default/BYOB readers; connected UDP uses
|
|
46
|
+
`UDPMessage` objects (`{data}`). Both offer `opened`, `closed`, and asynchronous
|
|
47
|
+
`close()`. Release reader/writer locks before calling `close()`.
|
|
48
|
+
|
|
49
|
+
The SDK implementation runs in ordinary browsers and Node over the Device's
|
|
50
|
+
packet path; it does not use or replace browser globals. Chrome's native API
|
|
51
|
+
is restricted to [Isolated Web Apps](https://developer.chrome.com/docs/iwa/direct-sockets).
|
|
52
|
+
This client profile supports `dnsQueryType` and rejects bound UDP, multicast,
|
|
53
|
+
and per-socket buffer/no-delay/keep-alive tuning with `NotSupportedError`.
|
|
54
|
+
Listener sockets remain future work. Use `dialTls` for TLS/DTLS. See the
|
|
55
|
+
[socket design and support profile](https://github.com/urnetwork/sdk/blob/main/SOCKET.md).
|
|
56
|
+
|
|
57
|
+
Full programs and run guides are in the
|
|
58
|
+
[Node and browser socket examples](https://github.com/urnetwork/examples/tree/main/javascript/socket).
|
|
59
|
+
They include hosted Device setup, Undici/Axios socket integration for Node,
|
|
60
|
+
a browser Axios request adapter, and Direct Sockets TCP/UDP echo. Browser fetch and XHR
|
|
61
|
+
do not expose a custom socket factory.
|
|
62
|
+
|
|
63
|
+
## Peer messages
|
|
64
|
+
|
|
65
|
+
A provider-capable native Device can expose raw application subprotocols to
|
|
66
|
+
JavaScript through an extension/companion `DeviceRemote`:
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
const messages = await device.enableSubprotocol(4097, async message => {
|
|
70
|
+
console.log(message.sourceClientId, message.bytes);
|
|
71
|
+
});
|
|
72
|
+
const supported = await messages.querySubprotocols(peerClientId, 10_000);
|
|
73
|
+
if (supported?.includes(4097)) {
|
|
74
|
+
await messages.send(peerClientId, new TextEncoder().encode("hello"));
|
|
75
|
+
}
|
|
76
|
+
await messages.close();
|
|
77
|
+
await messages.closed;
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Each callback receives one complete owned `Uint8Array` and the authenticated
|
|
81
|
+
source client ID. `send()` reports local queue acceptance, so application
|
|
82
|
+
protocols should acknowledge delivery when needed. A subscription is bound to
|
|
83
|
+
one RPC connection and closes on reconnect. Hosted proxy devices reject this
|
|
84
|
+
API because they do not have a visible peer identity. The executable
|
|
85
|
+
[JavaScript messages example](https://github.com/urnetwork/examples/tree/main/javascript/messages)
|
|
86
|
+
includes live peer updates, support queries, TEXT/ACK framing, and an
|
|
87
|
+
authenticated numeric-loopback native companion.
|
|
88
|
+
|
|
89
|
+
## Build, check and publish
|
|
90
|
+
|
|
91
|
+
From this directory:
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
make package check-package
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This builds paired WASM/glue and JS/types, creates canonical and compatibility
|
|
98
|
+
tarballs in `release/artifacts`, and tests real Node runtime initialization,
|
|
99
|
+
ESM/CommonJS imports and TypeScript consumption. Install the canonical tarball
|
|
100
|
+
locally before the first registry publication.
|
|
101
|
+
|
|
102
|
+
`make publish` uses the Go publisher to upload the checked artifacts; it skips
|
|
103
|
+
when npm credentials are absent. Set `SDK_PACKAGE_VERSION` for the release
|
|
104
|
+
identity and `SDK_PACKAGE_CHANNEL` for its npm tag (default `nightly`). The
|
|
105
|
+
release pipeline calls these targets. See the
|
|
106
|
+
[package-manager plan](https://github.com/urnetwork/sdk/blob/main/PACKAGEMANAGERS.md).
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AuthCodeLoginArgs, AuthCodeLoginResult, AuthLoginArgs, AuthLoginResult, AuthLoginWithPasswordArgs, AuthLoginWithPasswordResult, AuthNetworkClientArgs, AuthNetworkClientResult, AuthVerifyArgs, AuthVerifyResult, CreateApiKeyArgs, CreateApiKeyResult, DeleteApiKeyArgs, DeleteApiKeyResult, FindLocationsArgs, FindLocationsResult, ListApiKeysResult, NetworkCheckArgs, NetworkCheckResult, NetworkCreateArgs, NetworkCreateResult, RemoveNetworkClientArgs, RemoveNetworkClientResult } from "./generated/index.js";
|
|
2
|
+
export declare class URNetworkAPI {
|
|
3
|
+
private baseURL;
|
|
4
|
+
constructor(config?: {
|
|
5
|
+
baseURL?: string;
|
|
6
|
+
token?: string;
|
|
7
|
+
});
|
|
8
|
+
private safeJsonParse;
|
|
9
|
+
authLogin(params: AuthLoginArgs): Promise<AuthLoginResult>;
|
|
10
|
+
authLoginWithPassword(params: AuthLoginWithPasswordArgs): Promise<AuthLoginWithPasswordResult>;
|
|
11
|
+
networkCheck(params: NetworkCheckArgs): Promise<NetworkCheckResult | undefined>;
|
|
12
|
+
networkCreate(params: NetworkCreateArgs): Promise<NetworkCreateResult>;
|
|
13
|
+
authCodeLogin(params: AuthCodeLoginArgs): Promise<AuthCodeLoginResult>;
|
|
14
|
+
networkProviderLocations(): Promise<FindLocationsResult>;
|
|
15
|
+
searchProviderLocations(params: FindLocationsArgs): Promise<FindLocationsResult>;
|
|
16
|
+
verifyUserAuth(params: AuthVerifyArgs, adminToken: string): Promise<AuthVerifyResult>;
|
|
17
|
+
authNetworkClient(params: AuthNetworkClientArgs, token: string, signal?: AbortSignal): Promise<AuthNetworkClientResult>;
|
|
18
|
+
removeNetworkClient(params: RemoveNetworkClientArgs, token: string): Promise<RemoveNetworkClientResult>;
|
|
19
|
+
createApiKey(params: CreateApiKeyArgs, token: string): Promise<CreateApiKeyResult>;
|
|
20
|
+
listApiKeys(token: string): Promise<ListApiKeysResult>;
|
|
21
|
+
deleteApiKey(params: DeleteApiKeyArgs, token: string): Promise<DeleteApiKeyResult>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAGrB,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;YAQ3C,aAAa;IAsCrB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAgD1D,qBAAqB,CACzB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,2BAA2B,CAAC;IAmDjC,YAAY,CAChB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAkCpC,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsEtE,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2CtE,wBAAwB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAqCxD,uBAAuB,CAC3B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,mBAAmB,CAAC;IA0CzB,cAAc,CAClB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC;IA4CtB,iBAAiB,CACrB,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,uBAAuB,CAAC;IAoD7B,mBAAmB,CACvB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,yBAAyB,CAAC;IA4C/B,YAAY,CAChB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC;IAuCxB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwCtD,YAAY,CAChB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC;CAsC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|