@peerkit/transport-libp2p-react-native 0.1.0-alpha.13 → 0.1.0-alpha.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EACjB,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,EAG/C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACrC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,4BAiC1D"}
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,eAAe,EAEf,KAAK,WAAW,EACjB,MAAM,gCAAgC,CAAC;AAaxC;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,EAG/C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACrC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,4BAgD1D"}
package/dist/factories.js CHANGED
@@ -3,9 +3,19 @@ import { yamux } from "@chainsafe/libp2p-yamux";
3
3
  import { circuitRelayTransport } from "@libp2p/circuit-relay-v2";
4
4
  import { identify } from "@libp2p/identify";
5
5
  import { webRTC, webRTCDirect } from "@libp2p/webrtc";
6
- import { TransportLibp2p, } from "@peerkit/transport-libp2p-core";
7
- import { createLibp2p } from "libp2p";
6
+ import { dns } from "@multiformats/dns";
7
+ import { dnsJsonOverHttps } from "@multiformats/dns/resolvers";
8
+ import { TransportLibp2p, webRtcDirectDnsResolver, } from "@peerkit/transport-libp2p-core";
9
+ import { createLibp2p, dnsaddrResolver } from "libp2p";
8
10
  import { quickCryptoNoise } from "./quick-crypto-noise.js";
11
+ /**
12
+ * Public DNS-over-HTTPS endpoints queried, in order, to resolve relay
13
+ * hostnames. Hermes has no `node:dns`, so name resolution must go over HTTPS.
14
+ */
15
+ const DEFAULT_DOH_ENDPOINTS = [
16
+ "https://cloudflare-dns.com/dns-query",
17
+ "https://dns.google/resolve",
18
+ ];
9
19
  /**
10
20
  * Default libp2p listen addresses for a React Native peerkit node.
11
21
  *
@@ -57,6 +67,19 @@ export async function createNode(options) {
57
67
  streamMuxers: [yamux()],
58
68
  services: { identify: identify() },
59
69
  connectionGater: options.connectionGater,
70
+ // Hermes has no node:dns, so resolve names over DNS-over-HTTPS.
71
+ dns: dns({
72
+ resolvers: {
73
+ ".": DEFAULT_DOH_ENDPOINTS.map((endpoint) => dnsJsonOverHttps(endpoint)),
74
+ },
75
+ }),
76
+ connectionManager: {
77
+ // Providing resolvers replaces libp2p's default, so re-include dnsaddr.
78
+ resolvers: {
79
+ dnsaddr: dnsaddrResolver,
80
+ webRtcDirect: webRtcDirectDnsResolver,
81
+ },
82
+ },
60
83
  addresses: {
61
84
  listen: options.addrs ?? defaultNodeListenAddrs,
62
85
  },
@@ -1 +1 @@
1
- {"version":3,"file":"factories.js","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EACL,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,cAAc;IACd,SAAS;CACV,CAAC;AAsCF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,mEAAmE;IACnE,kBAAkB;IAClB,MAAM,UAAU,GACd,OAAO,CAAC,aAAa;QACrB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,GAAG;SACV,CAAC,CAAC,CAAC;IACN,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC;QACpC,oEAAoE;QACpE,wEAAwE;QACxE,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE;YACV,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;YAC5C,YAAY,EAAE;YACd,qBAAqB,EAAE;SACxB;QACD,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAClC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE;YACT,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,sBAAsB;SAChD;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IACzB,uEAAuE;IACvE,6DAA6D;IAC7D,IAAI,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QACpC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"factories.js","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EACL,eAAe,EACf,uBAAuB,GAExB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;GAGG;AACH,MAAM,qBAAqB,GAAsB;IAC/C,sCAAsC;IACtC,4BAA4B;CAC7B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,cAAc;IACd,SAAS;CACV,CAAC;AAsCF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,mEAAmE;IACnE,kBAAkB;IAClB,MAAM,UAAU,GACd,OAAO,CAAC,aAAa;QACrB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,GAAG;SACV,CAAC,CAAC,CAAC;IACN,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC;QACpC,oEAAoE;QACpE,wEAAwE;QACxE,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE;YACV,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;YAC5C,YAAY,EAAE;YACd,qBAAqB,EAAE;SACxB;QACD,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAClC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,gEAAgE;QAChE,GAAG,EAAE,GAAG,CAAC;YACP,SAAS,EAAE;gBACT,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1C,gBAAgB,CAAC,QAAQ,CAAC,CAC3B;aACF;SACF,CAAC;QACF,iBAAiB,EAAE;YACjB,wEAAwE;YACxE,SAAS,EAAE;gBACT,OAAO,EAAE,eAAe;gBACxB,YAAY,EAAE,uBAAuB;aACtC;SACF;QACD,SAAS,EAAE;YACT,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,sBAAsB;SAChD;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IACzB,uEAAuE;IACvE,6DAA6D;IAC7D,IAAI,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QACpC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerkit/transport-libp2p-react-native",
3
- "version": "0.1.0-alpha.13",
3
+ "version": "0.1.0-alpha.15",
4
4
  "description": "React Native libp2p transport for peerkit",
5
5
  "keywords": [
6
6
  "peerkit",
@@ -51,8 +51,9 @@
51
51
  "@libp2p/circuit-relay-v2": "^4.2.3",
52
52
  "@libp2p/identify": "^4.1.0",
53
53
  "@libp2p/webrtc": "^6.0.23",
54
- "@peerkit/api": "^0.1.0-alpha.13",
55
- "@peerkit/transport-libp2p-core": "^0.1.0-alpha.13",
54
+ "@multiformats/dns": "^1.0.13",
55
+ "@peerkit/api": "^0.1.0-alpha.15",
56
+ "@peerkit/transport-libp2p-core": "^0.1.0-alpha.15",
56
57
  "libp2p": "^3.2.0"
57
58
  },
58
59
  "peerDependencies": {
package/src/factories.ts CHANGED
@@ -4,14 +4,26 @@ import { circuitRelayTransport } from "@libp2p/circuit-relay-v2";
4
4
  import { identify } from "@libp2p/identify";
5
5
  import { webRTC, webRTCDirect } from "@libp2p/webrtc";
6
6
  import type { ConnectionGater } from "@libp2p/interface";
7
+ import { dns } from "@multiformats/dns";
8
+ import { dnsJsonOverHttps } from "@multiformats/dns/resolvers";
7
9
  import type { NodeAddress, RelayDialAddress } from "@peerkit/api";
8
10
  import {
9
11
  TransportLibp2p,
12
+ webRtcDirectDnsResolver,
10
13
  type NodeOptions,
11
14
  } from "@peerkit/transport-libp2p-core";
12
- import { createLibp2p } from "libp2p";
15
+ import { createLibp2p, dnsaddrResolver } from "libp2p";
13
16
  import { quickCryptoNoise } from "./quick-crypto-noise.js";
14
17
 
18
+ /**
19
+ * Public DNS-over-HTTPS endpoints queried, in order, to resolve relay
20
+ * hostnames. Hermes has no `node:dns`, so name resolution must go over HTTPS.
21
+ */
22
+ const DEFAULT_DOH_ENDPOINTS: readonly string[] = [
23
+ "https://cloudflare-dns.com/dns-query",
24
+ "https://dns.google/resolve",
25
+ ];
26
+
15
27
  /**
16
28
  * Default libp2p listen addresses for a React Native peerkit node.
17
29
  *
@@ -101,6 +113,21 @@ export async function createNode(options: CreateNodeOptions) {
101
113
  streamMuxers: [yamux()],
102
114
  services: { identify: identify() },
103
115
  connectionGater: options.connectionGater,
116
+ // Hermes has no node:dns, so resolve names over DNS-over-HTTPS.
117
+ dns: dns({
118
+ resolvers: {
119
+ ".": DEFAULT_DOH_ENDPOINTS.map((endpoint) =>
120
+ dnsJsonOverHttps(endpoint),
121
+ ),
122
+ },
123
+ }),
124
+ connectionManager: {
125
+ // Providing resolvers replaces libp2p's default, so re-include dnsaddr.
126
+ resolvers: {
127
+ dnsaddr: dnsaddrResolver,
128
+ webRtcDirect: webRtcDirectDnsResolver,
129
+ },
130
+ },
104
131
  addresses: {
105
132
  listen: options.addrs ?? defaultNodeListenAddrs,
106
133
  },