@minip2p/react-native 0.5.2 → 0.5.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.
@@ -8,7 +8,7 @@
8
8
  <key>BinaryPath</key>
9
9
  <string>libminip2p_ffi.a</string>
10
10
  <key>LibraryIdentifier</key>
11
- <string>ios-arm64-simulator</string>
11
+ <string>ios-arm64</string>
12
12
  <key>LibraryPath</key>
13
13
  <string>libminip2p_ffi.a</string>
14
14
  <key>SupportedArchitectures</key>
@@ -17,14 +17,12 @@
17
17
  </array>
18
18
  <key>SupportedPlatform</key>
19
19
  <string>ios</string>
20
- <key>SupportedPlatformVariant</key>
21
- <string>simulator</string>
22
20
  </dict>
23
21
  <dict>
24
22
  <key>BinaryPath</key>
25
23
  <string>libminip2p_ffi.a</string>
26
24
  <key>LibraryIdentifier</key>
27
- <string>ios-arm64</string>
25
+ <string>ios-arm64-simulator</string>
28
26
  <key>LibraryPath</key>
29
27
  <string>libminip2p_ffi.a</string>
30
28
  <key>SupportedArchitectures</key>
@@ -33,6 +31,8 @@
33
31
  </array>
34
32
  <key>SupportedPlatform</key>
35
33
  <string>ios</string>
34
+ <key>SupportedPlatformVariant</key>
35
+ <string>simulator</string>
36
36
  </dict>
37
37
  </array>
38
38
  <key>CFBundlePackageType</key>
@@ -3,12 +3,14 @@
3
3
  /* oxlint-disable class-methods-use-this, complexity, func-style, max-classes-per-file, no-use-before-define -- The adapter keeps its contract-complete native endpoint and public SDK subclass together, and uses hoisted conversion helpers. */
4
4
 
5
5
  import { BackpressureError, MessageTooLargeError, Minip2pBase, NotPermittedError, PubsubRouter } from "@minip2p/core";
6
+ import { P2pEvent_Tags } from "@minip2p/core/backend";
6
7
  import { EventDrain } from "./event-drain.js";
7
8
  import { FfiError_Tags, P2pEndpoint, circuitAddress as nativeCircuitAddress, generateSecretKey as nativeGenerateSecretKey, peerIdFromSecretKey as nativePeerIdFromSecretKey } from "./native.js";
8
9
  import nativeModule from "./NativeMinip2p.js";
9
10
  class ReactNativeBackend {
10
11
  #endpoint;
11
12
  #mdnsEnabled;
13
+ #connectionIds = new ConnectionIdMap();
12
14
  #doorbell;
13
15
  #events;
14
16
  constructor(config) {
@@ -26,7 +28,7 @@ class ReactNativeBackend {
26
28
  }
27
29
  }
28
30
  start(listener) {
29
- this.#events = new EventDrain(limit => this.#endpoint.drainEvents(limit), event => listener(normalizeEvent(event)));
31
+ this.#events = new EventDrain(limit => this.#endpoint.drainEvents(limit), event => listener(normalizeEvent(event, this.#connectionIds)));
30
32
  this.#doorbell = {
31
33
  onEventsReady: () => {
32
34
  this.#events?.ring();
@@ -116,7 +118,7 @@ class ReactNativeBackend {
116
118
  openStream(peerId, protocolId) {
117
119
  const result = translateErrors(() => this.#endpoint.openStream(peerId, protocolId));
118
120
  return {
119
- connId: u64ToNumber(result.connId, "connId"),
121
+ connId: this.#connectionIds.toPublic(result.connId),
120
122
  streamId: u64ToNumber(result.streamId, "streamId")
121
123
  };
122
124
  }
@@ -150,13 +152,13 @@ class ReactNativeBackend {
150
152
  return u64ToNumber(translateErrors(() => this.#endpoint.connectAddr(address)), "connectId");
151
153
  }
152
154
  dial(address) {
153
- return translateErrors(() => this.#endpoint.dial(address)).map(id => u64ToNumber(id, "connectionId"));
155
+ return translateErrors(() => this.#endpoint.dial(address)).map(id => this.#connectionIds.toPublic(id));
154
156
  }
155
157
  dialIp4(address) {
156
- return u64ToNumber(translateErrors(() => this.#endpoint.dialIp4(address)), "connectionId");
158
+ return this.#connectionIds.toPublic(translateErrors(() => this.#endpoint.dialIp4(address)));
157
159
  }
158
160
  dialIp6(address) {
159
- return u64ToNumber(translateErrors(() => this.#endpoint.dialIp6(address)), "connectionId");
161
+ return this.#connectionIds.toPublic(translateErrors(() => this.#endpoint.dialIp6(address)));
160
162
  }
161
163
  cancelConnect(id) {
162
164
  translateErrors(() => {
@@ -254,11 +256,52 @@ function toNativeTransport(transport) {
254
256
  function resolveMdnsAutoDial(mdns, discovery) {
255
257
  return mdns.autoDial ?? discovery?.autoDial ?? true;
256
258
  }
257
- function normalizeEvent(event) {
258
- return normalizeBigInts({
259
+
260
+ /**
261
+ * Maps native `u64` connection identities to small public numbers.
262
+ *
263
+ * Native connection IDs span the full `u64` range, so they cannot round-trip
264
+ * through a JavaScript `number`. Each endpoint owns one map so a native ID
265
+ * resolves to the same public ID in events and synchronous results. An entry
266
+ * is released once its `ConnectionClosed` event is normalized, which bounds
267
+ * the map by live connections. Public numbers come from a counter that never
268
+ * repeats, so an event arriving after the release gets a fresh number instead
269
+ * of aliasing a live connection. Stream and connect-attempt IDs are not
270
+ * mapped because they round-trip into native calls, and native allocates
271
+ * them well inside the safe integer range.
272
+ */
273
+ class ConnectionIdMap {
274
+ #publicByNative = new Map();
275
+ #nativeByPublic = new Map();
276
+ #next = 1;
277
+ toPublic(native) {
278
+ const existing = this.#publicByNative.get(native);
279
+ if (existing !== undefined) {
280
+ return existing;
281
+ }
282
+ const publicId = this.#next;
283
+ this.#next += 1;
284
+ this.#publicByNative.set(native, publicId);
285
+ this.#nativeByPublic.set(publicId, native);
286
+ return publicId;
287
+ }
288
+ release(publicId) {
289
+ const native = this.#nativeByPublic.get(publicId);
290
+ if (native !== undefined) {
291
+ this.#nativeByPublic.delete(publicId);
292
+ this.#publicByNative.delete(native);
293
+ }
294
+ }
295
+ }
296
+ function normalizeEvent(event, connectionIds) {
297
+ const normalized = normalizeBigInts({
259
298
  inner: event.inner,
260
299
  tag: event.tag
261
- });
300
+ }, connectionIds);
301
+ if (normalized.tag === P2pEvent_Tags.ConnectionClosed) {
302
+ connectionIds.release(normalized.inner.connId);
303
+ }
304
+ return normalized;
262
305
  }
263
306
  function normalizeKnownPeer(peer) {
264
307
  return normalizeBigInts(peer);
@@ -269,18 +312,24 @@ function normalizeIdentifyInfo(info) {
269
312
  function normalizeReservation(reservation) {
270
313
  return normalizeBigInts(reservation);
271
314
  }
272
- function normalizeBigInts(value) {
315
+
316
+ /**
317
+ * Converts native `bigint` fields to numbers. `connId` fields go through the
318
+ * endpoint's connection map when one is supplied; every other `u64` keeps the
319
+ * checked conversion.
320
+ */
321
+ function normalizeBigInts(value, connectionIds, key) {
273
322
  if (typeof value === "bigint") {
274
- return u64ToNumber(value, "native u64");
323
+ return key === "connId" && connectionIds !== undefined ? connectionIds.toPublic(value) : u64ToNumber(value, "native u64");
275
324
  }
276
325
  if (value instanceof ArrayBuffer) {
277
326
  return value;
278
327
  }
279
328
  if (Array.isArray(value)) {
280
- return value.map(item => normalizeBigInts(item));
329
+ return value.map(item => normalizeBigInts(item, connectionIds));
281
330
  }
282
331
  if (value !== null && typeof value === "object") {
283
- return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, normalizeBigInts(item)]));
332
+ return Object.fromEntries(Object.entries(value).map(([itemKey, item]) => [itemKey, normalizeBigInts(item, connectionIds, itemKey)]));
284
333
  }
285
334
  return value;
286
335
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BackpressureError","MessageTooLargeError","Minip2pBase","NotPermittedError","PubsubRouter","EventDrain","FfiError_Tags","P2pEndpoint","circuitAddress","nativeCircuitAddress","generateSecretKey","nativeGenerateSecretKey","peerIdFromSecretKey","nativePeerIdFromSecretKey","nativeModule","ReactNativeBackend","endpoint","mdnsEnabled","doorbell","events","constructor","config","mdns","undefined","setMdnsEnabled","translateErrors","toArrayBuffer","secretKey","toNativeConfig","error","start","listener","limit","drainEvents","event","normalizeEvent","onEventsReady","ring","close","stop","uniffiDestroy","peerId","listenAddrs","connectedPeers","isPeerReady","peerInfo","info","normalizeIdentifyInfo","knownPeers","map","normalizeKnownPeer","discoveryNowMs","now","u64ToNumber","activeReservation","reservation","normalizeReservation","path","normalizeBigInts","relayAddress","reachability","isRunning","setActive","active","subscribe","topic","unsubscribe","publish","data","ping","addProtocol","protocolId","openStream","result","connId","streamId","sendStream","numberToU64","closeStreamWrite","resetStream","abandonStream","connect","connectWithAddrs","addresses","connectAddr","address","dial","id","dialIp4","dialIp6","cancelConnect","disconnect","backendFactory","create","Uint8Array","Minip2p","backend","relays","discovery","autoDial","beaconIntervalMs","peerTtlMs","mdnsOptions","resolveMdnsAutoDial","enableIpv6","interfaceRefreshMs","maxAnnouncedAddrs","numberToU32","maxPacketBytes","queryIntervalMs","socketPollIntervalMs","ttlMs","configuredTransports","transports","quic","tcp","agentVersion","allowUnsigned","autonatServers","forceRelay","protocols","pubsubRouter","Gossipsub","toNativeTransport","transport","listen","inner","tag","peer","value","ArrayBuffer","Array","isArray","item","Object","fromEntries","entries","key","from","buffer","name","assertSafeUnsignedInteger","BigInt","RangeError","number","Number","isSafeInteger","operation","getErrorTag","Backpressure","MessageTooLarge","NotPermitted","getErrorDetail","detail"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BackpressureError","MessageTooLargeError","Minip2pBase","NotPermittedError","PubsubRouter","P2pEvent_Tags","EventDrain","FfiError_Tags","P2pEndpoint","circuitAddress","nativeCircuitAddress","generateSecretKey","nativeGenerateSecretKey","peerIdFromSecretKey","nativePeerIdFromSecretKey","nativeModule","ReactNativeBackend","endpoint","mdnsEnabled","connectionIds","ConnectionIdMap","doorbell","events","constructor","config","mdns","undefined","setMdnsEnabled","translateErrors","toArrayBuffer","secretKey","toNativeConfig","error","start","listener","limit","drainEvents","event","normalizeEvent","onEventsReady","ring","close","stop","uniffiDestroy","peerId","listenAddrs","connectedPeers","isPeerReady","peerInfo","info","normalizeIdentifyInfo","knownPeers","map","normalizeKnownPeer","discoveryNowMs","now","u64ToNumber","activeReservation","reservation","normalizeReservation","path","normalizeBigInts","relayAddress","reachability","isRunning","setActive","active","subscribe","topic","unsubscribe","publish","data","ping","addProtocol","protocolId","openStream","result","connId","toPublic","streamId","sendStream","numberToU64","closeStreamWrite","resetStream","abandonStream","connect","connectWithAddrs","addresses","connectAddr","address","dial","id","dialIp4","dialIp6","cancelConnect","disconnect","backendFactory","create","Uint8Array","Minip2p","backend","relays","discovery","autoDial","beaconIntervalMs","peerTtlMs","mdnsOptions","resolveMdnsAutoDial","enableIpv6","interfaceRefreshMs","maxAnnouncedAddrs","numberToU32","maxPacketBytes","queryIntervalMs","socketPollIntervalMs","ttlMs","configuredTransports","transports","quic","tcp","agentVersion","allowUnsigned","autonatServers","forceRelay","protocols","pubsubRouter","Gossipsub","toNativeTransport","transport","listen","publicByNative","Map","nativeByPublic","next","native","existing","get","publicId","set","release","delete","normalized","inner","tag","ConnectionClosed","peer","value","key","ArrayBuffer","Array","isArray","item","Object","fromEntries","entries","itemKey","from","buffer","name","assertSafeUnsignedInteger","BigInt","RangeError","number","Number","isSafeInteger","operation","getErrorTag","Backpressure","MessageTooLarge","NotPermitted","getErrorDetail","detail"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adapter-connection-ids.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-connection-ids.test.d.ts","sourceRoot":"","sources":["../../../tests/adapter-connection-ids.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ /** In-memory stand-in for the UniFFI `P2pEndpoint` used by adapter tests. */
2
+ import type { OpenStreamResult, P2pEndpointLike, P2pEvent, P2pEventDoorbell } from "../src/native.js";
3
+ /**
4
+ * Hand-written stand-in for a generated event class instance. The adapter
5
+ * only reads `tag` and `inner`, so tests enqueue plain literals.
6
+ */
7
+ export interface FakeEvent {
8
+ readonly tag: string;
9
+ readonly inner: Readonly<Record<string, unknown>>;
10
+ }
11
+ /**
12
+ * Implements the full generated endpoint surface so interface drift fails
13
+ * `typecheck`. Only the methods the adapter tests reach have behavior; the
14
+ * rest throw by name so an unexpected call is loud rather than "not a
15
+ * function".
16
+ */
17
+ export declare class FakeNativeEndpoint implements P2pEndpointLike {
18
+ #private;
19
+ static latest: FakeNativeEndpoint | undefined;
20
+ readonly drainLimits: number[];
21
+ /** Native identities returned by the next `openStream` call. */
22
+ nextStream: {
23
+ connId: bigint;
24
+ streamId: bigint;
25
+ };
26
+ /** Native connection identities returned by the dial methods. */
27
+ dialResults: bigint[];
28
+ /** Native discovery clock returned by `discoveryNowMs`. */
29
+ discoveryNow: bigint | undefined;
30
+ constructor();
31
+ /** Returns the endpoint constructed by the most recent `Minip2p.create`. */
32
+ static current(): FakeNativeEndpoint;
33
+ enqueue(...batches: FakeEvent[][]): void;
34
+ ring(): void;
35
+ start(doorbell: P2pEventDoorbell): void;
36
+ drainEvents(limit: number): P2pEvent[];
37
+ openStream(): OpenStreamResult;
38
+ dial(): bigint[];
39
+ dialIp4(): bigint;
40
+ dialIp6(): bigint;
41
+ discoveryNowMs(): bigint | undefined;
42
+ stop(): void;
43
+ uniffiDestroy(): void;
44
+ abandonStream(): never;
45
+ activeReservation(): never;
46
+ addProtocol(): never;
47
+ cancelConnect(): never;
48
+ closeStreamWrite(): never;
49
+ connect(): never;
50
+ connectAddr(): never;
51
+ connectWithAddrs(): never;
52
+ connectedPeers(): never;
53
+ disconnect(): never;
54
+ isPeerReady(): never;
55
+ isRunning(): never;
56
+ knownPeers(): never;
57
+ listenAddrs(): never;
58
+ path(): never;
59
+ peerId(): never;
60
+ peerInfo(): never;
61
+ ping(): never;
62
+ publish(): never;
63
+ reachability(): never;
64
+ resetStream(): never;
65
+ sendStream(): never;
66
+ setActive(): never;
67
+ subscribe(): never;
68
+ unsubscribe(): never;
69
+ waitStopped(): never;
70
+ }
71
+ /** Factory for `vi.mock("../src/native", nativeModuleMock)`. */
72
+ export declare const nativeModuleMock: () => {
73
+ FfiError_Tags: {};
74
+ P2pEndpoint: typeof FakeNativeEndpoint;
75
+ circuitAddress: import("vitest").Mock<import("@vitest/spy").Procedure>;
76
+ generateSecretKey: import("vitest").Mock<import("@vitest/spy").Procedure>;
77
+ peerIdFromSecretKey: import("vitest").Mock<import("@vitest/spy").Procedure>;
78
+ };
79
+ //# sourceMappingURL=fake-native-endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake-native-endpoint.d.ts","sourceRoot":"","sources":["../../../tests/fake-native-endpoint.ts"],"names":[],"mappings":"AACA,6EAA6E;AAI7E,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,gBAAgB,EACjB,MAAM,kBAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD;AAMD;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,eAAe;;IACxD,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAE9C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IACpC,gEAAgE;IAChE,UAAU;QAAK,MAAM;QAAM,QAAQ;MAAO;IAC1C,iEAAiE;IACjE,WAAW,EAAE,MAAM,EAAE,CAAQ;IAC7B,2DAA2D;IAC3D,YAAY,EAAE,MAAM,GAAG,SAAS,CAAa;IAI7C,cAEC;IAED,4EAA4E;IAC5E,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAKnC;IAED,OAAO,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAEvC;IAED,IAAI,IAAI,IAAI,CAEX;IAED,KAAK,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAEtC;IAED,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAGrC;IAED,UAAU,IAAI,gBAAgB,CAE7B;IAED,IAAI,IAAI,MAAM,EAAE,CAEf;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,IAAI,IAAI,IAAI,CAEX;IAED,aAAa,IAAI,IAAI,CAEpB;IAED,aAAa,IAAI,KAAK,CAErB;IAED,iBAAiB,IAAI,KAAK,CAEzB;IAED,WAAW,IAAI,KAAK,CAEnB;IAED,aAAa,IAAI,KAAK,CAErB;IAED,gBAAgB,IAAI,KAAK,CAExB;IAED,OAAO,IAAI,KAAK,CAEf;IAED,WAAW,IAAI,KAAK,CAEnB;IAED,gBAAgB,IAAI,KAAK,CAExB;IAED,cAAc,IAAI,KAAK,CAEtB;IAED,UAAU,IAAI,KAAK,CAElB;IAED,WAAW,IAAI,KAAK,CAEnB;IAED,SAAS,IAAI,KAAK,CAEjB;IAED,UAAU,IAAI,KAAK,CAElB;IAED,WAAW,IAAI,KAAK,CAEnB;IAED,IAAI,IAAI,KAAK,CAEZ;IAED,MAAM,IAAI,KAAK,CAEd;IAED,QAAQ,IAAI,KAAK,CAEhB;IAED,IAAI,IAAI,KAAK,CAEZ;IAED,OAAO,IAAI,KAAK,CAEf;IAED,YAAY,IAAI,KAAK,CAEpB;IAED,WAAW,IAAI,KAAK,CAEnB;IAED,UAAU,IAAI,KAAK,CAElB;IAED,SAAS,IAAI,KAAK,CAEjB;IAED,SAAS,IAAI,KAAK,CAEjB;IAED,WAAW,IAAI,KAAK,CAEnB;IAED,WAAW,IAAI,KAAK,CAEnB;CACF;AAED,gEAAgE;AAChE,eAAO,MAAM,gBAAgB;IAC3B,aAAa;IACb,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,mBAAmB;CACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minip2p/react-native",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "React Native bindings for minip2p",
5
5
  "keywords": [
6
6
  "android",
@@ -65,7 +65,7 @@
65
65
  "registry": "https://registry.npmjs.org/"
66
66
  },
67
67
  "dependencies": {
68
- "@minip2p/core": "0.5.2",
68
+ "@minip2p/core": "0.5.3",
69
69
  "@ubjs/core": "0.31.0-5",
70
70
  "uniffi-bindgen-react-native": "0.31.0-5"
71
71
  },
package/src/adapter.ts CHANGED
@@ -19,6 +19,7 @@ import type {
19
19
  Reachability,
20
20
  RelayReservationInfo,
21
21
  } from "@minip2p/core";
22
+ import { P2pEvent_Tags } from "@minip2p/core/backend";
22
23
  import type {
23
24
  Minip2pBackend,
24
25
  Minip2pBackendFactory,
@@ -51,6 +52,7 @@ import nativeModule from "./NativeMinip2p";
51
52
  class ReactNativeBackend implements Minip2pBackend {
52
53
  readonly #endpoint: P2pEndpoint;
53
54
  readonly #mdnsEnabled: boolean;
55
+ readonly #connectionIds = new ConnectionIdMap();
54
56
  #doorbell: P2pEventDoorbell | undefined;
55
57
  #events: EventDrain<NativeP2pEvent> | undefined;
56
58
 
@@ -78,7 +80,7 @@ class ReactNativeBackend implements Minip2pBackend {
78
80
  start(listener: (event: P2pEvent) => void): void {
79
81
  this.#events = new EventDrain(
80
82
  (limit) => this.#endpoint.drainEvents(limit),
81
- (event) => listener(normalizeEvent(event))
83
+ (event) => listener(normalizeEvent(event, this.#connectionIds))
82
84
  );
83
85
  this.#doorbell = {
84
86
  onEventsReady: () => {
@@ -199,7 +201,7 @@ class ReactNativeBackend implements Minip2pBackend {
199
201
  this.#endpoint.openStream(peerId, protocolId)
200
202
  );
201
203
  return {
202
- connId: u64ToNumber(result.connId, "connId"),
204
+ connId: this.#connectionIds.toPublic(result.connId),
203
205
  streamId: u64ToNumber(result.streamId, "streamId"),
204
206
  };
205
207
  }
@@ -260,21 +262,19 @@ class ReactNativeBackend implements Minip2pBackend {
260
262
 
261
263
  dial(address: string): number[] {
262
264
  return translateErrors(() => this.#endpoint.dial(address)).map((id) =>
263
- u64ToNumber(id, "connectionId")
265
+ this.#connectionIds.toPublic(id)
264
266
  );
265
267
  }
266
268
 
267
269
  dialIp4(address: string): number {
268
- return u64ToNumber(
269
- translateErrors(() => this.#endpoint.dialIp4(address)),
270
- "connectionId"
270
+ return this.#connectionIds.toPublic(
271
+ translateErrors(() => this.#endpoint.dialIp4(address))
271
272
  );
272
273
  }
273
274
 
274
275
  dialIp6(address: string): number {
275
- return u64ToNumber(
276
- translateErrors(() => this.#endpoint.dialIp6(address)),
277
- "connectionId"
276
+ return this.#connectionIds.toPublic(
277
+ translateErrors(() => this.#endpoint.dialIp6(address))
278
278
  );
279
279
  }
280
280
 
@@ -417,11 +417,60 @@ function resolveMdnsAutoDial(
417
417
  return mdns.autoDial ?? discovery?.autoDial ?? true;
418
418
  }
419
419
 
420
- function normalizeEvent(event: NativeP2pEvent): P2pEvent {
421
- return normalizeBigInts({
422
- inner: event.inner,
423
- tag: event.tag,
424
- }) as P2pEvent;
420
+ /**
421
+ * Maps native `u64` connection identities to small public numbers.
422
+ *
423
+ * Native connection IDs span the full `u64` range, so they cannot round-trip
424
+ * through a JavaScript `number`. Each endpoint owns one map so a native ID
425
+ * resolves to the same public ID in events and synchronous results. An entry
426
+ * is released once its `ConnectionClosed` event is normalized, which bounds
427
+ * the map by live connections. Public numbers come from a counter that never
428
+ * repeats, so an event arriving after the release gets a fresh number instead
429
+ * of aliasing a live connection. Stream and connect-attempt IDs are not
430
+ * mapped because they round-trip into native calls, and native allocates
431
+ * them well inside the safe integer range.
432
+ */
433
+ class ConnectionIdMap {
434
+ readonly #publicByNative = new Map<bigint, number>();
435
+ readonly #nativeByPublic = new Map<number, bigint>();
436
+ #next = 1;
437
+
438
+ toPublic(native: bigint): number {
439
+ const existing = this.#publicByNative.get(native);
440
+ if (existing !== undefined) {
441
+ return existing;
442
+ }
443
+ const publicId = this.#next;
444
+ this.#next += 1;
445
+ this.#publicByNative.set(native, publicId);
446
+ this.#nativeByPublic.set(publicId, native);
447
+ return publicId;
448
+ }
449
+
450
+ release(publicId: number): void {
451
+ const native = this.#nativeByPublic.get(publicId);
452
+ if (native !== undefined) {
453
+ this.#nativeByPublic.delete(publicId);
454
+ this.#publicByNative.delete(native);
455
+ }
456
+ }
457
+ }
458
+
459
+ function normalizeEvent(
460
+ event: NativeP2pEvent,
461
+ connectionIds: ConnectionIdMap
462
+ ): P2pEvent {
463
+ const normalized = normalizeBigInts(
464
+ {
465
+ inner: event.inner,
466
+ tag: event.tag,
467
+ },
468
+ connectionIds
469
+ ) as P2pEvent;
470
+ if (normalized.tag === P2pEvent_Tags.ConnectionClosed) {
471
+ connectionIds.release(normalized.inner.connId);
472
+ }
473
+ return normalized;
425
474
  }
426
475
 
427
476
  function normalizeKnownPeer(peer: NativeKnownPeerInfo): KnownPeerInfo {
@@ -438,19 +487,33 @@ function normalizeReservation(
438
487
  return normalizeBigInts(reservation) as RelayReservationInfo;
439
488
  }
440
489
 
441
- function normalizeBigInts(value: unknown): unknown {
490
+ /**
491
+ * Converts native `bigint` fields to numbers. `connId` fields go through the
492
+ * endpoint's connection map when one is supplied; every other `u64` keeps the
493
+ * checked conversion.
494
+ */
495
+ function normalizeBigInts(
496
+ value: unknown,
497
+ connectionIds?: ConnectionIdMap,
498
+ key?: string
499
+ ): unknown {
442
500
  if (typeof value === "bigint") {
443
- return u64ToNumber(value, "native u64");
501
+ return key === "connId" && connectionIds !== undefined
502
+ ? connectionIds.toPublic(value)
503
+ : u64ToNumber(value, "native u64");
444
504
  }
445
505
  if (value instanceof ArrayBuffer) {
446
506
  return value;
447
507
  }
448
508
  if (Array.isArray(value)) {
449
- return value.map((item) => normalizeBigInts(item));
509
+ return value.map((item) => normalizeBigInts(item, connectionIds));
450
510
  }
451
511
  if (value !== null && typeof value === "object") {
452
512
  return Object.fromEntries(
453
- Object.entries(value).map(([key, item]) => [key, normalizeBigInts(item)])
513
+ Object.entries(value).map(([itemKey, item]) => [
514
+ itemKey,
515
+ normalizeBigInts(item, connectionIds, itemKey),
516
+ ])
454
517
  );
455
518
  }
456
519
  return value;