libp2p 0.37.0-1f5d5c2 → 0.37.0-35f9c0c
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/src/connection-manager/dialer/dial-request.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/dial-request.js +28 -3
- package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
- package/dist/src/errors.d.ts +2 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/nat-manager.d.ts +5 -2
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/nat-manager.js +6 -3
- package/dist/src/nat-manager.js.map +1 -1
- package/package.json +2 -2
- package/src/connection-manager/dialer/dial-request.ts +30 -4
- package/src/errors.ts +2 -1
- package/src/nat-manager.ts +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dial-request.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/dial-request.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC;;;;;;OAMG;gBACU,OAAO,EAAE,kBAAkB;IAYlC,GAAG,CAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"dial-request.d.ts","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/dial-request.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC;;;;;;OAMG;gBACU,OAAO,EAAE,kBAAkB;IAYlC,GAAG,CAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;CAyF5D"}
|
|
@@ -49,15 +49,25 @@ export class DialRequest {
|
|
|
49
49
|
catch { }
|
|
50
50
|
}
|
|
51
51
|
let completedDials = 0;
|
|
52
|
+
let done = false;
|
|
52
53
|
try {
|
|
53
54
|
return await Promise.any(this.addrs.map(async (addr, i) => {
|
|
54
55
|
const token = await tokenHolder.shift(); // get token
|
|
56
|
+
// End attempt once another attempt succeeded
|
|
57
|
+
if (done) {
|
|
58
|
+
this.dialer.releaseToken(tokens.splice(tokens.indexOf(token), 1)[0]);
|
|
59
|
+
throw errCode(new Error('dialAction already succeeded'), codes.ERR_ALREADY_SUCCEEDED);
|
|
60
|
+
}
|
|
61
|
+
const controller = dialAbortControllers[i];
|
|
62
|
+
if (controller == null) {
|
|
63
|
+
throw errCode(new Error('dialAction did not come with an AbortController'), codes.ERR_INVALID_PARAMETERS);
|
|
64
|
+
}
|
|
55
65
|
let conn;
|
|
56
66
|
try {
|
|
57
|
-
const signal =
|
|
67
|
+
const signal = controller.signal;
|
|
58
68
|
conn = await this.dialAction(addr, { ...options, signal: (options.signal != null) ? anySignal([signal, options.signal]) : signal });
|
|
59
69
|
// Remove the successful AbortController so it is not aborted
|
|
60
|
-
dialAbortControllers
|
|
70
|
+
dialAbortControllers[i] = undefined;
|
|
61
71
|
}
|
|
62
72
|
finally {
|
|
63
73
|
completedDials++;
|
|
@@ -71,11 +81,26 @@ export class DialRequest {
|
|
|
71
81
|
this.dialer.releaseToken(tokens.splice(tokens.indexOf(token), 1)[0]);
|
|
72
82
|
}
|
|
73
83
|
}
|
|
84
|
+
if (conn == null) {
|
|
85
|
+
// Notify Promise.any that attempt was not successful
|
|
86
|
+
// to prevent from returning undefined despite there
|
|
87
|
+
// were successful dial attempts
|
|
88
|
+
throw errCode(new Error('dialAction led to empty object'), codes.ERR_TRANSPORT_DIAL_FAILED);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// This dial succeeded, don't attempt anything else
|
|
92
|
+
done = true;
|
|
93
|
+
}
|
|
74
94
|
return conn;
|
|
75
95
|
}));
|
|
76
96
|
}
|
|
77
97
|
finally {
|
|
78
|
-
|
|
98
|
+
// success/failure happened, abort everything else
|
|
99
|
+
dialAbortControllers.forEach(c => {
|
|
100
|
+
if (c !== undefined) {
|
|
101
|
+
c.abort();
|
|
102
|
+
}
|
|
103
|
+
});
|
|
79
104
|
tokens.forEach(token => this.dialer.releaseToken(token)); // release tokens back to the dialer
|
|
80
105
|
}
|
|
81
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dial-request.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/dial-request.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,IAAI,MAAM,QAAQ,CAAA;AACzB,qEAAqE;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,MAAM,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAYhD,MAAM,OAAO,WAAW;IAKtB;;;;;;OAMG;IACH,YAAa,OAA2B;QACtC,MAAM,EACJ,KAAK,EACL,UAAU,EACV,MAAM,EACP,GAAG,OAAO,CAAA;QAEX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,UAAwB,EAAE;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEvD,oCAAoC;QACpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;SAC/E;QAED,MAAM,WAAW,GAAG,IAAI,IAAI,EAAU,CAAA;QAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACvC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChB,CAAC,CAAC,CAAA;SACH;QAED,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"dial-request.js","sourceRoot":"","sources":["../../../../src/connection-manager/dialer/dial-request.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,IAAI,MAAM,QAAQ,CAAA;AACzB,qEAAqE;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,MAAM,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAYhD,MAAM,OAAO,WAAW;IAKtB;;;;;;OAMG;IACH,YAAa,OAA2B;QACtC,MAAM,EACJ,KAAK,EACL,UAAU,EACV,MAAM,EACP,GAAG,OAAO,CAAA;QAEX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,UAAwB,EAAE;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEvD,oCAAoC;QACpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;SAC/E;QAED,MAAM,WAAW,GAAG,IAAI,IAAI,EAAU,CAAA;QAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACvC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChB,CAAC,CAAC,CAAA;SACH;QAED,MAAM,oBAAoB,GAAyC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACrF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;YACxC,IAAI;gBACF,uBAAuB;gBACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;aAC/C;YAAC,MAAM,GAAE;YAEV,OAAO,UAAU,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YAC1B,IAAI;gBACF,uBAAuB;gBACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;aAC5C;YAAC,MAAM,GAAE;SACX;QAED,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,IAAI,IAAI,GAAG,KAAK,CAAA;QAEhB,IAAI;YACF,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;gBACxD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAA,CAAC,YAAY;gBACpD,6CAA6C;gBAC7C,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACpE,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;iBACtF;gBAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;gBAC1C,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;iBAC1G;gBACD,IAAI,IAAI,CAAA;gBACR,IAAI;oBACF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;oBAChC,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;oBACnI,6DAA6D;oBAC7D,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;iBACpC;wBAAS;oBACR,cAAc,EAAE,CAAA;oBAChB,gGAAgG;oBAChG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE;wBACvD,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;4BACvC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAChB,CAAC,CAAC,CAAA;qBACH;yBAAM;wBACL,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;qBACrE;iBACF;gBAED,IAAI,IAAI,IAAI,IAAI,EAAE;oBAChB,qDAAqD;oBACrD,oDAAoD;oBACpD,gCAAgC;oBAChC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAA;iBAC5F;qBAAM;oBACL,mDAAmD;oBACnD,IAAI,GAAG,IAAI,CAAA;iBACZ;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAC,CAAA;SACJ;gBAAS;YACR,kDAAkD;YAClD,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC/B,IAAI,CAAC,KAAK,SAAS,EAAE;oBACnB,CAAC,CAAC,KAAK,EAAE,CAAA;iBACV;YACH,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,oCAAoC;SAC9F;IACH,CAAC;CACF"}
|
package/dist/src/errors.d.ts
CHANGED
|
@@ -68,6 +68,7 @@ export declare enum codes {
|
|
|
68
68
|
ERR_INVALID_PASS_LENGTH = "ERR_INVALID_PASS_LENGTH",
|
|
69
69
|
ERR_NOT_IMPLEMENTED = "ERR_NOT_IMPLEMENTED",
|
|
70
70
|
ERR_WRONG_PING_ACK = "ERR_WRONG_PING_ACK",
|
|
71
|
-
ERR_INVALID_RECORD = "ERR_INVALID_RECORD"
|
|
71
|
+
ERR_INVALID_RECORD = "ERR_INVALID_RECORD",
|
|
72
|
+
ERR_ALREADY_SUCCEEDED = "ERR_ALREADY_SUCCEEDED"
|
|
72
73
|
}
|
|
73
74
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/src/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,eAAe,uCAAuC;IACtD,YAAY,yBAAyB;IACrC,eAAe,4BAA4B;IAC3C,wBAAwB,0DAA0D;IAClF,uBAAuB,8CAA8C;IACrE,sBAAsB,+DAA+D;IACrF,SAAS,cAAc;CACxB;AAED,oBAAY,KAAK;IACf,YAAY,qBAAqB;IACjC,mBAAmB,wBAAwB;IAC3C,kBAAkB,2BAA2B;IAC7C,eAAe,wBAAwB;IACvC,wBAAwB,iCAAiC;IACzD,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,0BAA0B,+BAA+B;IACzD,gCAAgC,qCAAqC;IACrE,oBAAoB,yBAAyB;IAC7C,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,wBAAwB,6BAA6B;IACrD,uCAAuC,4CAA4C;IACnF,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,aAAa,kBAAkB;IAC/B,wBAAwB,6BAA6B;IACrD,8BAA8B,mCAAmC;IACjE,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,eAAe,uCAAuC;IACtD,YAAY,yBAAyB;IACrC,eAAe,4BAA4B;IAC3C,wBAAwB,0DAA0D;IAClF,uBAAuB,8CAA8C;IACrE,sBAAsB,+DAA+D;IACrF,SAAS,cAAc;CACxB;AAED,oBAAY,KAAK;IACf,YAAY,qBAAqB;IACjC,mBAAmB,wBAAwB;IAC3C,kBAAkB,2BAA2B;IAC7C,eAAe,wBAAwB;IACvC,wBAAwB,iCAAiC;IACzD,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,0BAA0B,+BAA+B;IACzD,gCAAgC,qCAAqC;IACrE,oBAAoB,yBAAyB;IAC7C,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,wBAAwB,6BAA6B;IACrD,uCAAuC,4CAA4C;IACnF,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IACnD,aAAa,kBAAkB;IAC/B,wBAAwB,6BAA6B;IACrD,8BAA8B,mCAAmC;IACjE,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;CAChD"}
|
package/dist/src/errors.js
CHANGED
|
@@ -71,5 +71,6 @@ export var codes;
|
|
|
71
71
|
codes["ERR_NOT_IMPLEMENTED"] = "ERR_NOT_IMPLEMENTED";
|
|
72
72
|
codes["ERR_WRONG_PING_ACK"] = "ERR_WRONG_PING_ACK";
|
|
73
73
|
codes["ERR_INVALID_RECORD"] = "ERR_INVALID_RECORD";
|
|
74
|
+
codes["ERR_ALREADY_SUCCEEDED"] = "ERR_ALREADY_SUCCEEDED";
|
|
74
75
|
})(codes || (codes = {}));
|
|
75
76
|
//# sourceMappingURL=errors.js.map
|
package/dist/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,kEAAsD,CAAA;IACtD,iDAAqC,CAAA;IACrC,uDAA2C,CAAA;IAC3C,8FAAkF,CAAA;IAClF,iFAAqE,CAAA;IACrE,iGAAqF,CAAA;IACrF,mCAAuB,CAAA;AACzB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,kEAAsD,CAAA;IACtD,iDAAqC,CAAA;IACrC,uDAA2C,CAAA;IAC3C,8FAAkF,CAAA;IAClF,iFAAqE,CAAA;IACrE,iGAAqF,CAAA;IACrF,mCAAuB,CAAA;AACzB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED,MAAM,CAAN,IAAY,KA+DX;AA/DD,WAAY,KAAK;IACf,0CAAiC,CAAA;IACjC,oDAA2C,CAAA;IAC3C,sDAA6C,CAAA;IAC7C,gDAAuC,CAAA;IACvC,kEAAyD,CAAA;IACzD,4DAAmD,CAAA;IACnD,0DAAiD,CAAA;IACjD,gEAAuD,CAAA;IACvD,kEAAyD,CAAA;IACzD,8EAAqE,CAAA;IACrE,sDAA6C,CAAA;IAC7C,wDAA+C,CAAA;IAC/C,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,0DAAiD,CAAA;IACjD,0DAAiD,CAAA;IACjD,8CAAqC,CAAA;IACrC,4CAAmC,CAAA;IACnC,oDAA2C,CAAA;IAC3C,4DAAmD,CAAA;IACnD,wDAA+C,CAAA;IAC/C,0DAAiD,CAAA;IACjD,4CAAmC,CAAA;IACnC,oDAA2C,CAAA;IAC3C,0DAAiD,CAAA;IACjD,8CAAqC,CAAA;IACrC,wDAA+C,CAAA;IAC/C,wCAA+B,CAAA;IAC/B,oCAA2B,CAAA;IAC3B,gEAAuD,CAAA;IACvD,gEAAuD,CAAA;IACvD,8DAAqD,CAAA;IACrD,4FAAmF,CAAA;IACnF,wDAA+C,CAAA;IAC/C,4DAAmD,CAAA;IACnD,wCAA+B,CAAA;IAC/B,8DAAqD,CAAA;IACrD,0EAAiE,CAAA;IACjE,kDAAyC,CAAA;IACzC,wDAA+C,CAAA;IAC/C,4CAAmC,CAAA;IACnC,8CAAqC,CAAA;IACrC,kCAAyB,CAAA;IACzB,sDAA6C,CAAA;IAC7C,sDAA6C,CAAA;IAC7C,0DAAiD,CAAA;IACjD,sDAA6C,CAAA;IAC7C,gDAAuC,CAAA;IACvC,8DAAqD,CAAA;IACrD,8DAAqD,CAAA;IACrD,wDAA+C,CAAA;IAC/C,8CAAqC,CAAA;IACrC,oDAA2C,CAAA;IAC3C,4DAAmD,CAAA;IACnD,0DAAiD,CAAA;IACjD,gEAAuD,CAAA;IACvD,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;IACnD,oDAA2C,CAAA;IAC3C,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,wDAA+C,CAAA;AACjD,CAAC,EA/DW,KAAK,KAAL,KAAK,QA+DhB"}
|
|
@@ -50,10 +50,13 @@ export declare class NatManager implements Startable {
|
|
|
50
50
|
private client?;
|
|
51
51
|
constructor(components: Components, init: NatManagerInit);
|
|
52
52
|
isStarted(): boolean;
|
|
53
|
+
start(): void;
|
|
53
54
|
/**
|
|
54
|
-
*
|
|
55
|
+
* Attempt to use uPnP to configure port mapping using the current gateway.
|
|
56
|
+
*
|
|
57
|
+
* Run after start to ensure the transport manager has all addresses configured.
|
|
55
58
|
*/
|
|
56
|
-
|
|
59
|
+
afterStart(): void;
|
|
57
60
|
_start(): Promise<void>;
|
|
58
61
|
_getClient(): Promise<NatAPI>;
|
|
59
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nat-manager.d.ts","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAS9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAS/D,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEV,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc;IAiBzD,SAAS;IAIT
|
|
1
|
+
{"version":3,"file":"nat-manager.d.ts","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAS9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAS/D,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,UAAW,YAAW,SAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEV,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc;IAiBzD,SAAS;IAIT,KAAK;IAEL;;;;OAIG;IACH,UAAU;IAcJ,MAAM;IAkDN,UAAU;IAehB;;OAEG;IACG,IAAI;CAYX"}
|
package/dist/src/nat-manager.js
CHANGED
|
@@ -30,16 +30,19 @@ export class NatManager {
|
|
|
30
30
|
isStarted() {
|
|
31
31
|
return this.started;
|
|
32
32
|
}
|
|
33
|
+
start() { }
|
|
33
34
|
/**
|
|
34
|
-
*
|
|
35
|
+
* Attempt to use uPnP to configure port mapping using the current gateway.
|
|
36
|
+
*
|
|
37
|
+
* Run after start to ensure the transport manager has all addresses configured.
|
|
35
38
|
*/
|
|
36
|
-
|
|
39
|
+
afterStart() {
|
|
37
40
|
if (isBrowser || !this.enabled || this.started) {
|
|
38
41
|
return;
|
|
39
42
|
}
|
|
40
43
|
this.started = true;
|
|
41
44
|
// done async to not slow down startup
|
|
42
|
-
this._start().catch((err) => {
|
|
45
|
+
void this._start().catch((err) => {
|
|
43
46
|
// hole punching errors are non-fatal
|
|
44
47
|
log.error(err);
|
|
45
48
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nat-manager.js","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,WAAW,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAIhE,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AAChC,MAAM,WAAW,GAAG,IAAI,CAAA;AAExB,SAAS,QAAQ,CAAE,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,KAAK;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;AAC1D,CAAC;AA8CD,MAAM,OAAO,UAAU;IAYrB,YAAa,UAAsB,EAAE,IAAoB;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAA;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC7G,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,WAAW,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAA;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE3B,IAAI,IAAI,CAAC,GAAG,GAAG,WAAW,EAAE;YAC1B,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,qCAAqC,WAAW,UAAU,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACnH;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"nat-manager.js","sourceRoot":"","sources":["../../src/nat-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "libp2p",
|
|
3
|
-
"version": "0.37.0-
|
|
3
|
+
"version": "0.37.0-35f9c0c",
|
|
4
4
|
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p#readme",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"test:interop": "aegir test -t node -f dist/test/interop.js"
|
|
93
93
|
},
|
|
94
94
|
"dependencies": {
|
|
95
|
-
"@achingbrain/nat-port-mapper": "^1.0.
|
|
95
|
+
"@achingbrain/nat-port-mapper": "^1.0.3",
|
|
96
96
|
"@libp2p/connection": "^1.1.5",
|
|
97
97
|
"@libp2p/crypto": "^0.22.11",
|
|
98
98
|
"@libp2p/interfaces": "^1.3.31",
|
|
@@ -62,7 +62,7 @@ export class DialRequest {
|
|
|
62
62
|
})
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
const dialAbortControllers = this.addrs.map(() => {
|
|
65
|
+
const dialAbortControllers: Array<(AbortController | undefined)> = this.addrs.map(() => {
|
|
66
66
|
const controller = new AbortController()
|
|
67
67
|
try {
|
|
68
68
|
// fails on node < 15.4
|
|
@@ -80,16 +80,27 @@ export class DialRequest {
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
let completedDials = 0
|
|
83
|
+
let done = false
|
|
83
84
|
|
|
84
85
|
try {
|
|
85
86
|
return await Promise.any(this.addrs.map(async (addr, i) => {
|
|
86
87
|
const token = await tokenHolder.shift() // get token
|
|
88
|
+
// End attempt once another attempt succeeded
|
|
89
|
+
if (done) {
|
|
90
|
+
this.dialer.releaseToken(tokens.splice(tokens.indexOf(token), 1)[0])
|
|
91
|
+
throw errCode(new Error('dialAction already succeeded'), codes.ERR_ALREADY_SUCCEEDED)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const controller = dialAbortControllers[i]
|
|
95
|
+
if (controller == null) {
|
|
96
|
+
throw errCode(new Error('dialAction did not come with an AbortController'), codes.ERR_INVALID_PARAMETERS)
|
|
97
|
+
}
|
|
87
98
|
let conn
|
|
88
99
|
try {
|
|
89
|
-
const signal =
|
|
100
|
+
const signal = controller.signal
|
|
90
101
|
conn = await this.dialAction(addr, { ...options, signal: (options.signal != null) ? anySignal([signal, options.signal]) : signal })
|
|
91
102
|
// Remove the successful AbortController so it is not aborted
|
|
92
|
-
dialAbortControllers
|
|
103
|
+
dialAbortControllers[i] = undefined
|
|
93
104
|
} finally {
|
|
94
105
|
completedDials++
|
|
95
106
|
// If we have more or equal dials remaining than tokens, recycle the token, otherwise release it
|
|
@@ -102,10 +113,25 @@ export class DialRequest {
|
|
|
102
113
|
}
|
|
103
114
|
}
|
|
104
115
|
|
|
116
|
+
if (conn == null) {
|
|
117
|
+
// Notify Promise.any that attempt was not successful
|
|
118
|
+
// to prevent from returning undefined despite there
|
|
119
|
+
// were successful dial attempts
|
|
120
|
+
throw errCode(new Error('dialAction led to empty object'), codes.ERR_TRANSPORT_DIAL_FAILED)
|
|
121
|
+
} else {
|
|
122
|
+
// This dial succeeded, don't attempt anything else
|
|
123
|
+
done = true
|
|
124
|
+
}
|
|
125
|
+
|
|
105
126
|
return conn
|
|
106
127
|
}))
|
|
107
128
|
} finally {
|
|
108
|
-
|
|
129
|
+
// success/failure happened, abort everything else
|
|
130
|
+
dialAbortControllers.forEach(c => {
|
|
131
|
+
if (c !== undefined) {
|
|
132
|
+
c.abort()
|
|
133
|
+
}
|
|
134
|
+
})
|
|
109
135
|
tokens.forEach(token => this.dialer.releaseToken(token)) // release tokens back to the dialer
|
|
110
136
|
}
|
|
111
137
|
}
|
package/src/errors.ts
CHANGED
|
@@ -69,5 +69,6 @@ export enum codes {
|
|
|
69
69
|
ERR_INVALID_PASS_LENGTH = 'ERR_INVALID_PASS_LENGTH',
|
|
70
70
|
ERR_NOT_IMPLEMENTED = 'ERR_NOT_IMPLEMENTED',
|
|
71
71
|
ERR_WRONG_PING_ACK = 'ERR_WRONG_PING_ACK',
|
|
72
|
-
ERR_INVALID_RECORD = 'ERR_INVALID_RECORD'
|
|
72
|
+
ERR_INVALID_RECORD = 'ERR_INVALID_RECORD',
|
|
73
|
+
ERR_ALREADY_SUCCEEDED = 'ERR_ALREADY_SUCCEEDED'
|
|
73
74
|
}
|
package/src/nat-manager.ts
CHANGED
|
@@ -94,10 +94,14 @@ export class NatManager implements Startable {
|
|
|
94
94
|
return this.started
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
start () {}
|
|
98
|
+
|
|
97
99
|
/**
|
|
98
|
-
*
|
|
100
|
+
* Attempt to use uPnP to configure port mapping using the current gateway.
|
|
101
|
+
*
|
|
102
|
+
* Run after start to ensure the transport manager has all addresses configured.
|
|
99
103
|
*/
|
|
100
|
-
|
|
104
|
+
afterStart () {
|
|
101
105
|
if (isBrowser || !this.enabled || this.started) {
|
|
102
106
|
return
|
|
103
107
|
}
|
|
@@ -105,7 +109,7 @@ export class NatManager implements Startable {
|
|
|
105
109
|
this.started = true
|
|
106
110
|
|
|
107
111
|
// done async to not slow down startup
|
|
108
|
-
this._start().catch((err) => {
|
|
112
|
+
void this._start().catch((err) => {
|
|
109
113
|
// hole punching errors are non-fatal
|
|
110
114
|
log.error(err)
|
|
111
115
|
})
|