@libp2p/devtools-metrics 1.2.14 → 1.2.15-aa25d38ab
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.min.js +3 -16
- package/dist/index.min.js.map +7 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/rpc/index.d.ts +4 -4
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/package.json +12 -19
- package/src/index.ts +28 -3
- package/src/rpc/index.ts +4 -4
- package/dist/typedoc-urls.json +0 -46
package/dist/src/index.d.ts
CHANGED
|
@@ -98,6 +98,12 @@ export interface DevToolsMetricsInit {
|
|
|
98
98
|
* How often to pass metrics to the DevTools panel
|
|
99
99
|
*/
|
|
100
100
|
intervalMs?: number;
|
|
101
|
+
/**
|
|
102
|
+
* Outgoing RPC invocations must return within this timeout in ms
|
|
103
|
+
*
|
|
104
|
+
* @default 1_000
|
|
105
|
+
*/
|
|
106
|
+
rpcSendTimeout?: number;
|
|
101
107
|
}
|
|
102
108
|
export interface DevToolsMetricsComponents {
|
|
103
109
|
logger: ComponentLogger;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAeH,OAAO,KAAK,EAAE,eAAe,EAAc,YAAY,EAAU,OAAO,EAAuB,MAAM,EAAE,SAAS,EAAU,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAA8C,MAAM,mBAAmB,CAAA;AAC9O,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAeH,OAAO,KAAK,EAAE,eAAe,EAAc,YAAY,EAAU,OAAO,EAAuB,MAAM,EAAE,SAAS,EAAU,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAA8C,MAAM,mBAAmB,CAAA;AAC9O,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAIhH,cAAc,gBAAgB,CAAA;AAE9B,eAAO,MAAM,eAAe,sCAAsC,CAAA;AAClE,eAAO,MAAM,qBAAqB,oCAAoC,CAAA;AACtE,eAAO,MAAM,qBAAqB,qCAAqC,CAAA;AACvE,eAAO,MAAM,cAAc,qCAAqC,CAAA;AAChE,eAAO,MAAM,2BAA2B,oCAAoC,CAAA;AAY5E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,eAAe,CAAA;IAC9B,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,eAAe,CAAA;IAC9B,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,OAAO,eAAe,CAAA;IAC9B,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,eAAe,GAAG,OAAO,cAAc,CAAA;IACtD,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,uBAAuB,CAAA;AAEvE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,UAAU,CAAA;AAEjE,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,SAAS,EAAE,SAAS,CAAA;IAEpB,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAwOD,wBAAgB,eAAe,CAAE,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,yBAAyB,KAAK,OAAO,CAIxH"}
|
package/dist/src/index.js
CHANGED
|
@@ -33,6 +33,8 @@ export const SOURCE_SERVICE_WORKER = '@libp2p/devtools-metrics:worker';
|
|
|
33
33
|
export const SOURCE_CONTENT_SCRIPT = '@libp2p/devtools-metrics:content';
|
|
34
34
|
export const SOURCE_METRICS = '@libp2p/devtools-metrics:metrics';
|
|
35
35
|
export const LIBP2P_DEVTOOLS_METRICS_KEY = '________libp2p_devtools_metrics';
|
|
36
|
+
// don't wait for devtools RPC forever
|
|
37
|
+
const DEVTOOLS_TIMEOUT = 1_000;
|
|
36
38
|
// let devtools know we are here
|
|
37
39
|
Object.defineProperty(globalThis, LIBP2P_DEVTOOLS_METRICS_KEY, {
|
|
38
40
|
value: true,
|
|
@@ -47,16 +49,20 @@ class DevToolsMetrics {
|
|
|
47
49
|
rpcQueue;
|
|
48
50
|
rpc;
|
|
49
51
|
devTools;
|
|
50
|
-
|
|
52
|
+
rpcSendTimeout;
|
|
53
|
+
constructor(components, init = {}) {
|
|
51
54
|
this.log = components.logger.forComponent('libp2p:devtools-metrics');
|
|
52
55
|
this.intervalMs = init?.intervalMs;
|
|
53
56
|
this.components = components;
|
|
57
|
+
this.rpcSendTimeout = init.rpcSendTimeout ?? DEVTOOLS_TIMEOUT;
|
|
54
58
|
// create RPC endpoint
|
|
55
59
|
this.rpcQueue = pushable();
|
|
56
60
|
this.rpc = rpc({
|
|
57
61
|
valueCodecs
|
|
58
62
|
});
|
|
59
|
-
this.devTools = this.rpc.createClient('devTools'
|
|
63
|
+
this.devTools = this.rpc.createClient('devTools', {
|
|
64
|
+
timeout: this.rpcSendTimeout
|
|
65
|
+
});
|
|
60
66
|
// collect information on current peers and sent it to the dev tools panel
|
|
61
67
|
this.onPeersUpdate = debounce(this.onPeersUpdate.bind(this), 1000);
|
|
62
68
|
this.onSelfUpdate = debounce(this.onSelfUpdate.bind(this), 1000);
|
|
@@ -70,6 +76,8 @@ class DevToolsMetrics {
|
|
|
70
76
|
onMetrics: (metrics) => {
|
|
71
77
|
this.devTools.safeDispatchEvent('metrics', {
|
|
72
78
|
detail: metrics
|
|
79
|
+
}, {
|
|
80
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
73
81
|
}).catch(err => {
|
|
74
82
|
this.log.error('error sending metrics', err);
|
|
75
83
|
});
|
|
@@ -178,6 +186,8 @@ class DevToolsMetrics {
|
|
|
178
186
|
onPubSubMessage(event) {
|
|
179
187
|
this.devTools.safeDispatchEvent('pubsub:message', {
|
|
180
188
|
detail: event.detail
|
|
189
|
+
}, {
|
|
190
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
181
191
|
})
|
|
182
192
|
.catch(err => {
|
|
183
193
|
this.log.error('error relaying pubsub message', err);
|
|
@@ -186,6 +196,8 @@ class DevToolsMetrics {
|
|
|
186
196
|
onPubSubSubscriptionChange(event) {
|
|
187
197
|
this.devTools.safeDispatchEvent('pubsub:subscription-change', {
|
|
188
198
|
detail: event.detail
|
|
199
|
+
}, {
|
|
200
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
189
201
|
})
|
|
190
202
|
.catch(err => {
|
|
191
203
|
this.log.error('error relaying pubsub subscription change', err);
|
|
@@ -196,6 +208,8 @@ class DevToolsMetrics {
|
|
|
196
208
|
.then(async () => {
|
|
197
209
|
await this.devTools.safeDispatchEvent('self', {
|
|
198
210
|
detail: await getSelf(this.components)
|
|
211
|
+
}, {
|
|
212
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
199
213
|
});
|
|
200
214
|
})
|
|
201
215
|
.catch(err => {
|
|
@@ -207,6 +221,8 @@ class DevToolsMetrics {
|
|
|
207
221
|
.then(async () => {
|
|
208
222
|
await this.devTools.safeDispatchEvent('peers', {
|
|
209
223
|
detail: await getPeers(this.components, this.log)
|
|
224
|
+
}, {
|
|
225
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
210
226
|
});
|
|
211
227
|
})
|
|
212
228
|
.catch(err => {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAO7C,cAAc,gBAAgB,CAAA;AAE9B,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAA;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,iCAAiC,CAAA;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,kCAAkC,CAAA;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,kCAAkC,CAAA;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,iCAAiC,CAAA;AAE5E,sCAAsC;AACtC,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAE9B,gCAAgC;AAChC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,2BAA2B,EAAE;IAC7D,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAA;AA+GF,MAAM,eAAe;IACF,GAAG,CAAQ;IACX,UAAU,CAA2B;IACrC,aAAa,CAAS;IACtB,UAAU,CAAS;IACnB,QAAQ,CAAsB;IAC9B,GAAG,CAAK;IACR,QAAQ,CAAa;IACrB,cAAc,CAAQ;IAEvC,YAAa,UAAqC,EAAE,OAA4B,EAAE;QAChF,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAA;QACpE,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,CAAA;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,gBAAgB,CAAA;QAE7D,sBAAsB;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACb,WAAW;SACZ,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE;YAChD,OAAO,EAAE,IAAI,CAAC,cAAc;SAC7B,CAAC,CAAA;QAEF,0EAA0E;QAC1E,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAClE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE1D,2CAA2C;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE5E,kBAAkB;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBACzC,MAAM,EAAE,OAAO;iBAChB,EAAE;oBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;iBACjD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;gBAC9C,CAAC,CAAC,CAAA;YACJ,CAAC;SACF,CAAC,CAAC,EAAE,CAAC,CAAA;IACR,CAAC;IAEQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,0BAA0B,CAAA;IAEjD,CAAC,mBAAmB,CAAC,GAAa;QACzC,iBAAiB;KAClB,CAAA;IAED,wBAAwB,CAAE,MAA2B;QACnD,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IAED,mBAAmB,CAAE,MAAc,EAAE,UAAsB;QACzD,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC5D,CAAC;IAED,cAAc,CAAE,IAAS,EAAE,OAAY;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,mBAAmB,CAAE,IAAS,EAAE,OAAY;QAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED,eAAe,CAAE,IAAS,EAAE,OAAY;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;IAED,oBAAoB,CAAE,IAAS,EAAE,OAAY;QAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,iBAAiB,CAAE,IAAS,EAAE,OAAY;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;IAED,sBAAsB,CAAE,IAAS,EAAE,OAAY;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;IAED,eAAe,CAAE,IAAS,EAAE,OAAY;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;IAED,oBAAoB,CAAE,IAAS,EAAE,OAAY;QAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAA;IACzC,CAAC;IAED,aAAa,CAAsC,IAAY,EAAE,EAAK,EAAE,OAAa;QACnF,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,oBAAoB;QACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC5E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAE1E,2BAA2B;QAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAE9E,0CAA0C;QAC1C,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAE1D,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAE7D,eAAe;QACf,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAE/B,oBAAoB;QACpB,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAI,CACR,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,GAAG,EACR,KAAK,EAAC,MAAM,EAAC,EAAE;gBACb,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;oBAC/B,MAAM,CAAC,WAAW,CAAC;wBACjB,MAAM,EAAE,cAAc;wBACtB,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;qBAC5B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CACF,CAAA;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QAEJ,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAEhE,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;YACxD,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QACjF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACjF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC/E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7E,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAChC,CAAC;IAEO,iBAAiB,CAAE,KAAoC;QAC7D,uCAAuC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;QAE1B,wDAAwD;QACxD,IAAI,OAAO,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;YACxC,OAAM;QACR,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAEO,eAAe,CAAE,KAA2B;QAClD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;YAChD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,EAAE;YACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;SACjD,CAAC;aACC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,0BAA0B,CAAE,KAA0C;QAC5E,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,4BAA4B,EAAE;YAC5D,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,EAAE;YACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;SACjD,CAAC;aACC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,YAAY;QAClB,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAC5C,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;aACvC,EAAE;gBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;aACjD,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,aAAa;QACnB,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE;gBAC7C,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC;aAClD,EAAE;gBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;aACjD,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACN,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAE,IAAmC;IAClE,OAAO,CAAC,UAAU,EAAE,EAAE;QACpB,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAA;AACH,CAAC"}
|
package/dist/src/rpc/index.d.ts
CHANGED
|
@@ -93,15 +93,15 @@ export interface DevToolsEvents {
|
|
|
93
93
|
/**
|
|
94
94
|
* Node metrics have been updated
|
|
95
95
|
*/
|
|
96
|
-
|
|
96
|
+
metrics: CustomEvent<Record<string, any>>;
|
|
97
97
|
/**
|
|
98
98
|
* The node's status has changed - new addresses and/or protocols, etc
|
|
99
99
|
*/
|
|
100
|
-
|
|
100
|
+
self: CustomEvent<Peer>;
|
|
101
101
|
/**
|
|
102
102
|
* The node's connected peers have changed
|
|
103
103
|
*/
|
|
104
|
-
|
|
104
|
+
peers: CustomEvent<Peer[]>;
|
|
105
105
|
/**
|
|
106
106
|
* A pubsub message was received
|
|
107
107
|
*/
|
|
@@ -115,6 +115,6 @@ export interface DevToolsEvents {
|
|
|
115
115
|
* RPC operations exposed by the DevTools
|
|
116
116
|
*/
|
|
117
117
|
export interface DevToolsRPC {
|
|
118
|
-
safeDispatchEvent<Detail>(type: keyof DevToolsEvents, detail?: CustomEventInit<Detail
|
|
118
|
+
safeDispatchEvent<Detail>(type: keyof DevToolsEvents, detail?: CustomEventInit<Detail>, options?: AbortOptions): Promise<void>;
|
|
119
119
|
}
|
|
120
120
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AACpI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAExC,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAK9C,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,SAAS,EAAE,WAAW,EAAE,CAAA;IAExB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IAE3H;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3C;;OAEG;IACH,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzF;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtE;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;IAE9B;;OAEG;IACH,WAAW,EAAE,WAAW,CAAA;IAExB;;OAEG;IACH,MAAM,EAAE;QACN;;WAEG;QACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAE1D;;WAEG;QACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAE5D;;WAEG;QACH,SAAS,CAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAEhD;;WAEG;QACH,cAAc,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAEpE;;WAEG;QACH,OAAO,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAC/E,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/devtools-metrics",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.15-aa25d38ab",
|
|
4
4
|
"description": "Collect libp2p metrics and send them to browser DevTools",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -50,13 +50,6 @@
|
|
|
50
50
|
"import": "./dist/src/rpc/index.js"
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
|
-
"eslintConfig": {
|
|
54
|
-
"extends": "ipfs",
|
|
55
|
-
"parserOptions": {
|
|
56
|
-
"project": true,
|
|
57
|
-
"sourceType": "module"
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
53
|
"scripts": {
|
|
61
54
|
"clean": "aegir clean",
|
|
62
55
|
"lint": "aegir lint",
|
|
@@ -68,22 +61,22 @@
|
|
|
68
61
|
"test:firefox": "aegir test -t browser --browser firefox"
|
|
69
62
|
},
|
|
70
63
|
"dependencies": {
|
|
71
|
-
"@libp2p/interface": "
|
|
72
|
-
"@libp2p/interface-internal": "
|
|
73
|
-
"@libp2p/logger": "
|
|
74
|
-
"@libp2p/peer-id": "
|
|
75
|
-
"@libp2p/simple-metrics": "
|
|
76
|
-
"@multiformats/multiaddr": "^12.
|
|
77
|
-
"cborg": "^4.2.
|
|
64
|
+
"@libp2p/interface": "2.10.0-aa25d38ab",
|
|
65
|
+
"@libp2p/interface-internal": "2.3.12-aa25d38ab",
|
|
66
|
+
"@libp2p/logger": "5.1.16-aa25d38ab",
|
|
67
|
+
"@libp2p/peer-id": "5.1.3-aa25d38ab",
|
|
68
|
+
"@libp2p/simple-metrics": "1.3.10-aa25d38ab",
|
|
69
|
+
"@multiformats/multiaddr": "^12.4.0",
|
|
70
|
+
"cborg": "^4.2.10",
|
|
78
71
|
"it-pipe": "^3.0.1",
|
|
79
72
|
"it-pushable": "^3.2.3",
|
|
80
|
-
"it-rpc": "^1.0
|
|
81
|
-
"multiformats": "^13.3.
|
|
73
|
+
"it-rpc": "^1.1.0",
|
|
74
|
+
"multiformats": "^13.3.4",
|
|
82
75
|
"progress-events": "^1.0.1"
|
|
83
76
|
},
|
|
84
77
|
"devDependencies": {
|
|
85
|
-
"@libp2p/crypto": "
|
|
86
|
-
"aegir": "^
|
|
78
|
+
"@libp2p/crypto": "5.1.2-aa25d38ab",
|
|
79
|
+
"aegir": "^47.0.6",
|
|
87
80
|
"sinon-ts": "^2.0.0"
|
|
88
81
|
},
|
|
89
82
|
"sideEffects": false
|
package/src/index.ts
CHANGED
|
@@ -20,7 +20,7 @@ import { isPubSub, serviceCapabilities, start, stop } from '@libp2p/interface'
|
|
|
20
20
|
import { simpleMetrics } from '@libp2p/simple-metrics'
|
|
21
21
|
import { pipe } from 'it-pipe'
|
|
22
22
|
import { pushable } from 'it-pushable'
|
|
23
|
-
import { rpc
|
|
23
|
+
import { rpc } from 'it-rpc'
|
|
24
24
|
import { base64 } from 'multiformats/bases/base64'
|
|
25
25
|
import { valueCodecs } from './rpc/index.js'
|
|
26
26
|
import { metricsRpc } from './rpc/rpc.js'
|
|
@@ -32,6 +32,7 @@ import type { DevToolsRPC } from './rpc/index.js'
|
|
|
32
32
|
import type { ComponentLogger, Connection, Libp2pEvents, Logger, Metrics, MultiaddrConnection, PeerId, PeerStore, Stream, ContentRouting, PeerRouting, TypedEventTarget, Startable, Message, SubscriptionChangeData } from '@libp2p/interface'
|
|
33
33
|
import type { TransportManager, Registrar, ConnectionManager, AddressManager } from '@libp2p/interface-internal'
|
|
34
34
|
import type { Pushable } from 'it-pushable'
|
|
35
|
+
import type { RPC } from 'it-rpc'
|
|
35
36
|
|
|
36
37
|
export * from './rpc/index.js'
|
|
37
38
|
|
|
@@ -41,6 +42,9 @@ export const SOURCE_CONTENT_SCRIPT = '@libp2p/devtools-metrics:content'
|
|
|
41
42
|
export const SOURCE_METRICS = '@libp2p/devtools-metrics:metrics'
|
|
42
43
|
export const LIBP2P_DEVTOOLS_METRICS_KEY = '________libp2p_devtools_metrics'
|
|
43
44
|
|
|
45
|
+
// don't wait for devtools RPC forever
|
|
46
|
+
const DEVTOOLS_TIMEOUT = 1_000
|
|
47
|
+
|
|
44
48
|
// let devtools know we are here
|
|
45
49
|
Object.defineProperty(globalThis, LIBP2P_DEVTOOLS_METRICS_KEY, {
|
|
46
50
|
value: true,
|
|
@@ -134,6 +138,13 @@ export interface DevToolsMetricsInit {
|
|
|
134
138
|
* How often to pass metrics to the DevTools panel
|
|
135
139
|
*/
|
|
136
140
|
intervalMs?: number
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Outgoing RPC invocations must return within this timeout in ms
|
|
144
|
+
*
|
|
145
|
+
* @default 1_000
|
|
146
|
+
*/
|
|
147
|
+
rpcSendTimeout?: number
|
|
137
148
|
}
|
|
138
149
|
|
|
139
150
|
export interface DevToolsMetricsComponents {
|
|
@@ -158,18 +169,22 @@ class DevToolsMetrics implements Metrics, Startable {
|
|
|
158
169
|
private readonly rpcQueue: Pushable<Uint8Array>
|
|
159
170
|
private readonly rpc: RPC
|
|
160
171
|
private readonly devTools: DevToolsRPC
|
|
172
|
+
private readonly rpcSendTimeout: number
|
|
161
173
|
|
|
162
|
-
constructor (components: DevToolsMetricsComponents, init
|
|
174
|
+
constructor (components: DevToolsMetricsComponents, init: DevToolsMetricsInit = {}) {
|
|
163
175
|
this.log = components.logger.forComponent('libp2p:devtools-metrics')
|
|
164
176
|
this.intervalMs = init?.intervalMs
|
|
165
177
|
this.components = components
|
|
178
|
+
this.rpcSendTimeout = init.rpcSendTimeout ?? DEVTOOLS_TIMEOUT
|
|
166
179
|
|
|
167
180
|
// create RPC endpoint
|
|
168
181
|
this.rpcQueue = pushable()
|
|
169
182
|
this.rpc = rpc({
|
|
170
183
|
valueCodecs
|
|
171
184
|
})
|
|
172
|
-
this.devTools = this.rpc.createClient('devTools'
|
|
185
|
+
this.devTools = this.rpc.createClient('devTools', {
|
|
186
|
+
timeout: this.rpcSendTimeout
|
|
187
|
+
})
|
|
173
188
|
|
|
174
189
|
// collect information on current peers and sent it to the dev tools panel
|
|
175
190
|
this.onPeersUpdate = debounce(this.onPeersUpdate.bind(this), 1000)
|
|
@@ -186,6 +201,8 @@ class DevToolsMetrics implements Metrics, Startable {
|
|
|
186
201
|
onMetrics: (metrics) => {
|
|
187
202
|
this.devTools.safeDispatchEvent('metrics', {
|
|
188
203
|
detail: metrics
|
|
204
|
+
}, {
|
|
205
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
189
206
|
}).catch(err => {
|
|
190
207
|
this.log.error('error sending metrics', err)
|
|
191
208
|
})
|
|
@@ -326,6 +343,8 @@ class DevToolsMetrics implements Metrics, Startable {
|
|
|
326
343
|
private onPubSubMessage (event: CustomEvent<Message>): void {
|
|
327
344
|
this.devTools.safeDispatchEvent('pubsub:message', {
|
|
328
345
|
detail: event.detail
|
|
346
|
+
}, {
|
|
347
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
329
348
|
})
|
|
330
349
|
.catch(err => {
|
|
331
350
|
this.log.error('error relaying pubsub message', err)
|
|
@@ -335,6 +354,8 @@ class DevToolsMetrics implements Metrics, Startable {
|
|
|
335
354
|
private onPubSubSubscriptionChange (event: CustomEvent<SubscriptionChangeData>): void {
|
|
336
355
|
this.devTools.safeDispatchEvent('pubsub:subscription-change', {
|
|
337
356
|
detail: event.detail
|
|
357
|
+
}, {
|
|
358
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
338
359
|
})
|
|
339
360
|
.catch(err => {
|
|
340
361
|
this.log.error('error relaying pubsub subscription change', err)
|
|
@@ -346,6 +367,8 @@ class DevToolsMetrics implements Metrics, Startable {
|
|
|
346
367
|
.then(async () => {
|
|
347
368
|
await this.devTools.safeDispatchEvent('self', {
|
|
348
369
|
detail: await getSelf(this.components)
|
|
370
|
+
}, {
|
|
371
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
349
372
|
})
|
|
350
373
|
})
|
|
351
374
|
.catch(err => {
|
|
@@ -358,6 +381,8 @@ class DevToolsMetrics implements Metrics, Startable {
|
|
|
358
381
|
.then(async () => {
|
|
359
382
|
await this.devTools.safeDispatchEvent('peers', {
|
|
360
383
|
detail: await getPeers(this.components, this.log)
|
|
384
|
+
}, {
|
|
385
|
+
signal: AbortSignal.timeout(this.rpcSendTimeout)
|
|
361
386
|
})
|
|
362
387
|
})
|
|
363
388
|
.catch(err => {
|
package/src/rpc/index.ts
CHANGED
|
@@ -116,17 +116,17 @@ export interface DevToolsEvents {
|
|
|
116
116
|
/**
|
|
117
117
|
* Node metrics have been updated
|
|
118
118
|
*/
|
|
119
|
-
|
|
119
|
+
metrics: CustomEvent<Record<string, any>>
|
|
120
120
|
|
|
121
121
|
/**
|
|
122
122
|
* The node's status has changed - new addresses and/or protocols, etc
|
|
123
123
|
*/
|
|
124
|
-
|
|
124
|
+
self: CustomEvent<Peer>
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
127
|
* The node's connected peers have changed
|
|
128
128
|
*/
|
|
129
|
-
|
|
129
|
+
peers: CustomEvent<Peer[]>
|
|
130
130
|
|
|
131
131
|
/**
|
|
132
132
|
* A pubsub message was received
|
|
@@ -143,5 +143,5 @@ export interface DevToolsEvents {
|
|
|
143
143
|
* RPC operations exposed by the DevTools
|
|
144
144
|
*/
|
|
145
145
|
export interface DevToolsRPC {
|
|
146
|
-
safeDispatchEvent<Detail>(type: keyof DevToolsEvents, detail?: CustomEventInit<Detail
|
|
146
|
+
safeDispatchEvent<Detail>(type: keyof DevToolsEvents, detail?: CustomEventInit<Detail>, options?: AbortOptions): Promise<void>
|
|
147
147
|
}
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"Address": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.Address.html",
|
|
3
|
-
".:Address": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.Address.html",
|
|
4
|
-
"CopyToClipboardMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.CopyToClipboardMessage.html",
|
|
5
|
-
".:CopyToClipboardMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.CopyToClipboardMessage.html",
|
|
6
|
-
"DevToolsMetricsComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.DevToolsMetricsComponents.html",
|
|
7
|
-
".:DevToolsMetricsComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.DevToolsMetricsComponents.html",
|
|
8
|
-
"DevToolsMetricsInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.DevToolsMetricsInit.html",
|
|
9
|
-
".:DevToolsMetricsInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.DevToolsMetricsInit.html",
|
|
10
|
-
"PageLoadedMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.PageLoadedMessage.html",
|
|
11
|
-
".:PageLoadedMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.PageLoadedMessage.html",
|
|
12
|
-
"PermissionsErrorMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.PermissionsErrorMessage.html",
|
|
13
|
-
".:PermissionsErrorMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.PermissionsErrorMessage.html",
|
|
14
|
-
"RPCMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.RPCMessage.html",
|
|
15
|
-
".:RPCMessage": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.index.RPCMessage.html",
|
|
16
|
-
"ApplicationMessage": "https://libp2p.github.io/js-libp2p/types/_libp2p_devtools_metrics.index.ApplicationMessage.html",
|
|
17
|
-
".:ApplicationMessage": "https://libp2p.github.io/js-libp2p/types/_libp2p_devtools_metrics.index.ApplicationMessage.html",
|
|
18
|
-
"DevToolsMessage": "https://libp2p.github.io/js-libp2p/types/_libp2p_devtools_metrics.index.DevToolsMessage.html",
|
|
19
|
-
".:DevToolsMessage": "https://libp2p.github.io/js-libp2p/types/_libp2p_devtools_metrics.index.DevToolsMessage.html",
|
|
20
|
-
"WorkerMessage": "https://libp2p.github.io/js-libp2p/types/_libp2p_devtools_metrics.index.WorkerMessage.html",
|
|
21
|
-
".:WorkerMessage": "https://libp2p.github.io/js-libp2p/types/_libp2p_devtools_metrics.index.WorkerMessage.html",
|
|
22
|
-
"LIBP2P_DEVTOOLS_METRICS_KEY": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.LIBP2P_DEVTOOLS_METRICS_KEY.html",
|
|
23
|
-
".:LIBP2P_DEVTOOLS_METRICS_KEY": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.LIBP2P_DEVTOOLS_METRICS_KEY.html",
|
|
24
|
-
"SOURCE_CONTENT_SCRIPT": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_CONTENT_SCRIPT.html",
|
|
25
|
-
".:SOURCE_CONTENT_SCRIPT": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_CONTENT_SCRIPT.html",
|
|
26
|
-
"SOURCE_DEVTOOLS": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_DEVTOOLS.html",
|
|
27
|
-
".:SOURCE_DEVTOOLS": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_DEVTOOLS.html",
|
|
28
|
-
"SOURCE_METRICS": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_METRICS.html",
|
|
29
|
-
".:SOURCE_METRICS": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_METRICS.html",
|
|
30
|
-
"SOURCE_SERVICE_WORKER": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_SERVICE_WORKER.html",
|
|
31
|
-
".:SOURCE_SERVICE_WORKER": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.index.SOURCE_SERVICE_WORKER.html",
|
|
32
|
-
"devToolsMetrics": "https://libp2p.github.io/js-libp2p/functions/_libp2p_devtools_metrics.index.devToolsMetrics.html",
|
|
33
|
-
".:devToolsMetrics": "https://libp2p.github.io/js-libp2p/functions/_libp2p_devtools_metrics.index.devToolsMetrics.html",
|
|
34
|
-
"DevToolsEvents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.DevToolsEvents.html",
|
|
35
|
-
"./rpc:DevToolsEvents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.DevToolsEvents.html",
|
|
36
|
-
"DevToolsRPC": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.DevToolsRPC.html",
|
|
37
|
-
"./rpc:DevToolsRPC": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.DevToolsRPC.html",
|
|
38
|
-
"MetricsRPC": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.MetricsRPC.html",
|
|
39
|
-
"./rpc:MetricsRPC": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.MetricsRPC.html",
|
|
40
|
-
"Peer": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.Peer.html",
|
|
41
|
-
"./rpc:Peer": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.Peer.html",
|
|
42
|
-
"PeerAddress": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.PeerAddress.html",
|
|
43
|
-
"./rpc:PeerAddress": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_devtools_metrics.rpc.PeerAddress.html",
|
|
44
|
-
"valueCodecs": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.rpc.valueCodecs.html",
|
|
45
|
-
"./rpc:valueCodecs": "https://libp2p.github.io/js-libp2p/variables/_libp2p_devtools_metrics.rpc.valueCodecs.html"
|
|
46
|
-
}
|