@libp2p/utils 6.6.3 → 6.6.4-7788b4025

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.
Files changed (48) hide show
  1. package/dist/src/abstract-stream.d.ts +1 -1
  2. package/dist/src/abstract-stream.d.ts.map +1 -1
  3. package/dist/src/abstract-stream.js +6 -7
  4. package/dist/src/abstract-stream.js.map +1 -1
  5. package/dist/src/adaptive-timeout.d.ts +1 -1
  6. package/dist/src/adaptive-timeout.d.ts.map +1 -1
  7. package/dist/src/adaptive-timeout.js.map +1 -1
  8. package/dist/src/debounce.js.map +1 -1
  9. package/dist/src/filters/cuckoo-filter.d.ts +1 -1
  10. package/dist/src/filters/cuckoo-filter.d.ts.map +1 -1
  11. package/dist/src/filters/cuckoo-filter.js.map +1 -1
  12. package/dist/src/filters/fingerprint.d.ts +1 -1
  13. package/dist/src/filters/fingerprint.d.ts.map +1 -1
  14. package/dist/src/filters/scalable-cuckoo-filter.d.ts +1 -1
  15. package/dist/src/filters/scalable-cuckoo-filter.d.ts.map +1 -1
  16. package/dist/src/filters/scalable-cuckoo-filter.js.map +1 -1
  17. package/dist/src/ip-port-to-multiaddr.d.ts +1 -1
  18. package/dist/src/ip-port-to-multiaddr.d.ts.map +1 -1
  19. package/dist/src/ip-port-to-multiaddr.js +1 -1
  20. package/dist/src/ip-port-to-multiaddr.js.map +1 -1
  21. package/dist/src/merge-options.d.ts +7 -0
  22. package/dist/src/merge-options.d.ts.map +1 -0
  23. package/dist/src/merge-options.js +128 -0
  24. package/dist/src/merge-options.js.map +1 -0
  25. package/dist/src/private-ip.d.ts.map +1 -1
  26. package/dist/src/private-ip.js +12 -6
  27. package/dist/src/private-ip.js.map +1 -1
  28. package/dist/src/queue/index.d.ts +9 -9
  29. package/dist/src/queue/index.d.ts.map +1 -1
  30. package/dist/src/repeating-task.d.ts +3 -1
  31. package/dist/src/repeating-task.d.ts.map +1 -1
  32. package/dist/src/repeating-task.js +5 -3
  33. package/dist/src/repeating-task.js.map +1 -1
  34. package/dist/src/stream-to-ma-conn.js.map +1 -1
  35. package/package.json +20 -22
  36. package/src/abstract-stream.ts +11 -10
  37. package/src/adaptive-timeout.ts +2 -1
  38. package/src/debounce.ts +2 -2
  39. package/src/filters/cuckoo-filter.ts +2 -1
  40. package/src/filters/fingerprint.ts +1 -1
  41. package/src/filters/scalable-cuckoo-filter.ts +4 -2
  42. package/src/ip-port-to-multiaddr.ts +3 -2
  43. package/src/merge-options.ts +161 -0
  44. package/src/private-ip.ts +2 -6
  45. package/src/queue/index.ts +9 -9
  46. package/src/repeating-task.ts +13 -9
  47. package/src/stream-to-ma-conn.ts +4 -4
  48. package/dist/typedoc-urls.json +0 -141
@@ -1 +1 @@
1
- {"version":3,"file":"repeating-task.js","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAkDtC,MAAM,UAAU,aAAa,CAAE,EAAoD,EAAE,QAAgB,EAAE,OAA8B;IACnI,IAAI,OAAsC,CAAA;IAC1C,IAAI,kBAAmC,CAAA;IAEvC,SAAS,OAAO;QACd,MAAM,IAAI,GAAiB;YACzB,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAA;QAED,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC3F,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAC;aACC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,gCAAgC;gBAChC,OAAM;YACR,CAAC;YAED,aAAa;YACb,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,OAAO;QACL,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,QAAQ,GAAG,EAAE,CAAA;YAEb,mBAAmB;YACnB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;YACjB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,GAAG,EAAE,CAAA;YACd,CAAC;YAED,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YAED,OAAO,GAAG,IAAI,CAAA;YACd,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;YAC1C,eAAe,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAEpD,UAAU;YACV,IAAI,OAAO,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC;gBACrC,cAAc,CAAC,GAAG,EAAE;oBAClB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,kBAAkB,EAAE,KAAK,EAAE,CAAA;YAC3B,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"repeating-task.js","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAoDtC,MAAM,UAAU,aAAa,CAAE,EAAoD,EAAE,QAAgB,EAAE,OAA8B;IACnI,IAAI,OAAsC,CAAA;IAC1C,IAAI,kBAAmC,CAAA;IAEvC,SAAS,OAAO;QACd,MAAM,IAAI,GAAiB;YACzB,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAA;QAED,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC3F,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAC;aACC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,gCAAgC;gBAChC,OAAM;YACR,CAAC;YAED,aAAa;YACb,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,OAAO;QACL,WAAW,EAAE,CAAC,EAAE,EAAQ,EAAE;YACxB,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACpB,kDAAkD;gBAClD,OAAM;YACR,CAAC;YAED,QAAQ,GAAG,EAAE,CAAA;YAEb,mBAAmB;YACnB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,UAAU,EAAE,CAAC,EAAE,EAAQ,EAAE;YACvB,OAAO,KAAK,EAAE,CAAA;YACd,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,KAAK,EAAE,GAAS,EAAE;YAChB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YAED,OAAO,GAAG,IAAI,CAAA;YACd,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;YAC1C,eAAe,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAEpD,UAAU;YACV,IAAI,OAAO,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC;gBACrC,cAAc,CAAC,GAAG,EAAE;oBAClB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,GAAS,EAAE;YACf,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,kBAAkB,EAAE,KAAK,EAAE,CAAA;YAC3B,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stream-to-ma-conn.js","sourceRoot":"","sources":["../../src/stream-to-ma-conn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-to-ma-conn.js","sourceRoot":"","sources":["../../src/stream-to-ma-conn.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/utils",
3
- "version": "6.6.3",
3
+ "version": "6.6.4-7788b4025",
4
4
  "description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/utils#readme",
@@ -105,6 +105,10 @@
105
105
  "types": "./dist/src/link-local-ip.d.ts",
106
106
  "import": "./dist/src/link-local-ip.js"
107
107
  },
108
+ "./merge-options": {
109
+ "types": "./dist/src/merge-options.d.ts",
110
+ "import": "./dist/src/merge-options.js"
111
+ },
108
112
  "./moving-average": {
109
113
  "types": "./dist/src/moving-average.d.ts",
110
114
  "import": "./dist/src/moving-average.js"
@@ -170,13 +174,6 @@
170
174
  "import": "./dist/src/tracked-map.js"
171
175
  }
172
176
  },
173
- "eslintConfig": {
174
- "extends": "ipfs",
175
- "parserOptions": {
176
- "project": true,
177
- "sourceType": "module"
178
- }
179
- },
180
177
  "scripts": {
181
178
  "clean": "aegir clean",
182
179
  "lint": "aegir lint",
@@ -192,46 +189,47 @@
192
189
  "test:electron-main": "aegir test -t electron-main"
193
190
  },
194
191
  "dependencies": {
195
- "@chainsafe/is-ip": "^2.0.2",
192
+ "@chainsafe/is-ip": "^2.1.0",
196
193
  "@chainsafe/netmask": "^2.0.0",
197
- "@libp2p/crypto": "^5.1.2",
198
- "@libp2p/interface": "^2.10.0",
199
- "@libp2p/logger": "^5.1.16",
200
- "@multiformats/multiaddr": "^12.3.3",
194
+ "@libp2p/crypto": "5.1.3-7788b4025",
195
+ "@libp2p/interface": "2.10.1-7788b4025",
196
+ "@libp2p/logger": "5.1.17-7788b4025",
197
+ "@multiformats/multiaddr": "^12.4.0",
201
198
  "@sindresorhus/fnv1a": "^3.1.0",
202
199
  "any-signal": "^4.1.1",
203
200
  "delay": "^6.0.0",
204
201
  "get-iterator": "^2.0.1",
205
202
  "is-loopback-addr": "^2.0.2",
206
- "it-foreach": "^2.1.1",
203
+ "is-plain-obj": "^4.1.0",
204
+ "it-foreach": "^2.1.3",
207
205
  "it-pipe": "^3.0.1",
208
206
  "it-pushable": "^3.2.3",
209
207
  "it-stream-types": "^2.0.2",
210
208
  "netmask": "^2.0.2",
211
209
  "p-defer": "^4.0.1",
212
210
  "race-event": "^1.3.0",
213
- "race-signal": "^1.1.2",
211
+ "race-signal": "^1.1.3",
214
212
  "uint8arraylist": "^2.4.8",
215
213
  "uint8arrays": "^5.1.0"
216
214
  },
217
215
  "devDependencies": {
218
- "@libp2p/peer-id": "^5.1.3",
216
+ "@libp2p/peer-id": "5.1.4-7788b4025",
219
217
  "@types/netmask": "^2.0.5",
220
- "aegir": "^45.1.1",
218
+ "aegir": "^47.0.6",
221
219
  "benchmark": "^2.1.4",
222
220
  "delay": "^6.0.0",
223
- "it-all": "^3.0.6",
224
- "it-drain": "^3.0.7",
221
+ "it-all": "^3.0.8",
222
+ "it-drain": "^3.0.9",
225
223
  "it-pair": "^2.0.6",
226
- "sinon": "^19.0.2",
224
+ "sinon": "^20.0.0",
227
225
  "sinon-ts": "^2.0.0",
228
226
  "wherearewe": "^2.0.1"
229
227
  },
230
- "sideEffects": false,
231
228
  "browser": {
232
229
  "./dist/src/get-thin-waist-addresses.js": "./dist/src/get-thin-waist-addresses.browser.js"
233
230
  },
234
231
  "react-native": {
235
232
  "./dist/src/get-thin-waist-addresses.js": "./dist/src/get-thin-waist-addresses.js"
236
- }
233
+ },
234
+ "sideEffects": false
237
235
  }
@@ -1,13 +1,14 @@
1
1
  import { StreamResetError, StreamStateError } from '@libp2p/interface'
2
- import { type Pushable, pushable } from 'it-pushable'
3
- import defer, { type DeferredPromise } from 'p-defer'
4
- import pDefer from 'p-defer'
2
+ import { pushable } from 'it-pushable'
3
+ import defer from 'p-defer'
5
4
  import { raceSignal } from 'race-signal'
6
5
  import { Uint8ArrayList } from 'uint8arraylist'
7
6
  import { closeSource } from './close-source.js'
8
7
  import type { AbortOptions, Direction, ReadStatus, Stream, StreamStatus, StreamTimeline, WriteStatus } from '@libp2p/interface'
9
8
  import type { Logger } from '@libp2p/logger'
9
+ import type { Pushable } from 'it-pushable'
10
10
  import type { Source } from 'it-stream-types'
11
+ import type { DeferredPromise } from 'p-defer'
11
12
 
12
13
  const DEFAULT_SEND_CLOSE_WRITE_TIMEOUT = 5000
13
14
 
@@ -35,7 +36,7 @@ export interface AbstractStreamInit {
35
36
  /**
36
37
  * Invoked when the stream ends
37
38
  */
38
- onEnd?(err?: Error | undefined): void
39
+ onEnd?(err?: Error): void
39
40
 
40
41
  /**
41
42
  * Invoked when the readable end of the stream is closed
@@ -99,7 +100,7 @@ export abstract class AbstractStream implements Stream {
99
100
  private readonly closed: DeferredPromise<void>
100
101
  private endErr: Error | undefined
101
102
  private readonly streamSource: Pushable<Uint8ArrayList>
102
- private readonly onEnd?: (err?: Error | undefined) => void
103
+ private readonly onEnd?: (err?: Error) => void
103
104
  private readonly onCloseRead?: () => void
104
105
  private readonly onCloseWrite?: () => void
105
106
  private readonly onReset?: () => void
@@ -127,10 +128,10 @@ export abstract class AbstractStream implements Stream {
127
128
  this.sendCloseWriteTimeout = init.sendCloseWriteTimeout ?? DEFAULT_SEND_CLOSE_WRITE_TIMEOUT
128
129
 
129
130
  this.onEnd = init.onEnd
130
- this.onCloseRead = init?.onCloseRead
131
- this.onCloseWrite = init?.onCloseWrite
132
- this.onReset = init?.onReset
133
- this.onAbort = init?.onAbort
131
+ this.onCloseRead = init.onCloseRead
132
+ this.onCloseWrite = init.onCloseWrite
133
+ this.onReset = init.onReset
134
+ this.onAbort = init.onAbort
134
135
 
135
136
  this.source = this.streamSource = pushable<Uint8ArrayList>({
136
137
  onEnd: (err) => {
@@ -183,7 +184,7 @@ export abstract class AbstractStream implements Stream {
183
184
  const res = this.sendData(data, options)
184
185
 
185
186
  if (isPromise(res)) {
186
- this.sendingData = pDefer()
187
+ this.sendingData = defer()
187
188
  await res
188
189
  this.sendingData.resolve()
189
190
  this.sendingData = undefined
@@ -1,7 +1,8 @@
1
1
  import { setMaxListeners } from '@libp2p/interface'
2
- import { anySignal, type ClearableSignal } from 'any-signal'
2
+ import { anySignal } from 'any-signal'
3
3
  import { MovingAverage } from './moving-average.js'
4
4
  import type { MetricGroup, Metrics } from '@libp2p/interface'
5
+ import type { ClearableSignal } from 'any-signal'
5
6
 
6
7
  export const DEFAULT_TIMEOUT_MULTIPLIER = 1.2
7
8
  export const DEFAULT_FAILURE_MULTIPLIER = 2
package/src/debounce.ts CHANGED
@@ -21,8 +21,8 @@ export function debounce (func: () => void | Promise<void>, wait: number): Debou
21
21
  clearTimeout(timeout)
22
22
  timeout = setTimeout(later, wait)
23
23
  }
24
- output.start = () => {}
25
- output.stop = () => {
24
+ output.start = (): void => {}
25
+ output.stop = (): void => {
26
26
  clearTimeout(timeout)
27
27
  }
28
28
 
@@ -1,8 +1,9 @@
1
1
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
2
2
  import { Bucket } from './bucket.js'
3
3
  import { Fingerprint, MAX_FINGERPRINT_SIZE } from './fingerprint.js'
4
- import { fnv1a, type Hash } from './hashes.js'
4
+ import { fnv1a } from './hashes.js'
5
5
  import { getRandomInt } from './utils.js'
6
+ import type { Hash } from './hashes.js'
6
7
  import type { Filter } from './index.js'
7
8
 
8
9
  const maxCuckooCount = 500
@@ -1,6 +1,6 @@
1
1
  import { alloc as uint8ArrayAlloc } from 'uint8arrays/alloc'
2
2
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
3
- import type { Hash } from './hashes'
3
+ import type { Hash } from './hashes.js'
4
4
 
5
5
  export const MAX_FINGERPRINT_SIZE = 64
6
6
 
@@ -1,7 +1,9 @@
1
1
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
2
- import { CuckooFilter, optimize, type CuckooFilterInit } from './cuckoo-filter.js'
3
- import { fnv1a, type Hash } from './hashes.js'
2
+ import { CuckooFilter, optimize } from './cuckoo-filter.js'
3
+ import { fnv1a } from './hashes.js'
4
4
  import { getRandomInt } from './utils.js'
5
+ import type { CuckooFilterInit } from './cuckoo-filter.js'
6
+ import type { Hash } from './hashes.js'
5
7
  import type { Filter } from './index.js'
6
8
 
7
9
  export interface ScalableCuckooFilterInit extends CuckooFilterInit {
@@ -1,13 +1,14 @@
1
1
  import { isIPv4, isIPv6 } from '@chainsafe/is-ip'
2
2
  import { InvalidParametersError } from '@libp2p/interface'
3
- import { type Multiaddr, multiaddr } from '@multiformats/multiaddr'
3
+ import { multiaddr } from '@multiformats/multiaddr'
4
+ import type { Multiaddr } from '@multiformats/multiaddr'
4
5
 
5
6
  /**
6
7
  * Transform an IP, Port pair into a multiaddr
7
8
  */
8
9
  export function ipPortToMultiaddr (ip: string, port: number | string): Multiaddr {
9
10
  if (typeof ip !== 'string') {
10
- throw new InvalidParametersError(`invalid ip provided: ${ip}`) // eslint-disable-line @typescript-eslint/restrict-template-expressions
11
+ throw new InvalidParametersError(`invalid ip provided: ${ip}`)
11
12
  }
12
13
 
13
14
  if (typeof port === 'string') {
@@ -0,0 +1,161 @@
1
+ import isOptionObject from 'is-plain-obj'
2
+
3
+ const { hasOwnProperty } = Object.prototype
4
+ const { propertyIsEnumerable } = Object
5
+ const defineProperty = (object: any, name: any, value: any): void => {
6
+ Object.defineProperty(object, name, {
7
+ value,
8
+ writable: true,
9
+ enumerable: true,
10
+ configurable: true
11
+ })
12
+ }
13
+
14
+ const globalThis = this
15
+ const defaultMergeOptions = {
16
+ concatArrays: false,
17
+ ignoreUndefined: false
18
+ }
19
+
20
+ const getEnumerableOwnPropertyKeys = (value: any): any[] => {
21
+ const keys = []
22
+
23
+ for (const key in value) {
24
+ if (hasOwnProperty.call(value, key)) {
25
+ keys.push(key)
26
+ }
27
+ }
28
+
29
+ /* istanbul ignore else */
30
+ if (Object.getOwnPropertySymbols) {
31
+ const symbols = Object.getOwnPropertySymbols(value)
32
+
33
+ for (const symbol of symbols) {
34
+ if (propertyIsEnumerable.call(value, symbol)) {
35
+ keys.push(symbol)
36
+ }
37
+ }
38
+ }
39
+
40
+ return keys
41
+ }
42
+
43
+ function clone <T> (value: T): T
44
+ function clone <T> (value: T[]): T[]
45
+ function clone (value: any): any {
46
+ if (Array.isArray(value)) {
47
+ return cloneArray(value)
48
+ }
49
+
50
+ if (isOptionObject(value)) {
51
+ return cloneOptionObject(value)
52
+ }
53
+
54
+ return value
55
+ }
56
+
57
+ function cloneArray <T> (array: T[]): T[] {
58
+ const result = array.slice(0, 0)
59
+
60
+ getEnumerableOwnPropertyKeys(array).forEach(key => {
61
+ defineProperty(result, key, clone(array[key]))
62
+ })
63
+
64
+ return result
65
+ }
66
+
67
+ function cloneOptionObject (object: any): any {
68
+ const result = Object.getPrototypeOf(object) === null ? Object.create(null) : {}
69
+
70
+ getEnumerableOwnPropertyKeys(object).forEach(key => {
71
+ defineProperty(result, key, clone(object[key]))
72
+ })
73
+
74
+ return result
75
+ }
76
+
77
+ const mergeKeys = (merged: any, source: any, keys: any[], config: any): any => {
78
+ keys.forEach(key => {
79
+ if (typeof source[key] === 'undefined' && config.ignoreUndefined) {
80
+ return
81
+ }
82
+
83
+ // Do not recurse into prototype chain of merged
84
+ if (key in merged && merged[key] !== Object.getPrototypeOf(merged)) {
85
+ defineProperty(merged, key, merge(merged[key], source[key], config))
86
+ } else {
87
+ defineProperty(merged, key, clone(source[key]))
88
+ }
89
+ })
90
+
91
+ return merged
92
+ }
93
+
94
+ /**
95
+ * see [Array.prototype.concat ( ...arguments )](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.concat)
96
+ */
97
+ const concatArrays = (merged: any, source: any, config: any): any => {
98
+ let result = merged.slice(0, 0)
99
+ let resultIndex = 0;
100
+
101
+ [merged, source].forEach(array => {
102
+ const indices: any[] = []
103
+
104
+ // `result.concat(array)` with cloning
105
+ for (let k = 0; k < array.length; k++) {
106
+ if (!hasOwnProperty.call(array, k)) {
107
+ continue
108
+ }
109
+
110
+ indices.push(String(k))
111
+
112
+ if (array === merged) {
113
+ // Already cloned
114
+ defineProperty(result, resultIndex++, array[k])
115
+ } else {
116
+ defineProperty(result, resultIndex++, clone(array[k]))
117
+ }
118
+ }
119
+
120
+ // Merge non-index keys
121
+ result = mergeKeys(result, array, getEnumerableOwnPropertyKeys(array).filter(key => !indices.includes(key)), config)
122
+ })
123
+
124
+ return result
125
+ }
126
+
127
+ function merge (merged: any, source: any, config: any): any {
128
+ if (config.concatArrays && Array.isArray(merged) && Array.isArray(source)) {
129
+ return concatArrays(merged, source, config)
130
+ }
131
+
132
+ if (!isOptionObject(source) || !isOptionObject(merged)) {
133
+ return clone(source)
134
+ }
135
+
136
+ return mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), config)
137
+ }
138
+
139
+ /**
140
+ * Port of `merge-options` to typescript
141
+ *
142
+ * @see https://github.com/schnittstabil/merge-options/pull/28
143
+ */
144
+ export function mergeOptions (this: any, ...options: any[]): any {
145
+ const config = merge(clone(defaultMergeOptions), (this !== globalThis && this) || {}, defaultMergeOptions)
146
+ let merged = { _: {} }
147
+
148
+ for (const option of options) {
149
+ if (option === undefined) {
150
+ continue
151
+ }
152
+
153
+ if (!isOptionObject(option)) {
154
+ throw new TypeError('`' + option + '` is not an Option Object')
155
+ }
156
+
157
+ merged = merge(merged, { _: option }, config)
158
+ }
159
+
160
+ return merged._
161
+ }
package/src/private-ip.ts CHANGED
@@ -32,7 +32,7 @@ const NETMASK_RANGES = PRIVATE_IP_RANGES.map(ipRange => new Netmask(ipRange))
32
32
 
33
33
  function ipv4Check (ipAddr: string): boolean {
34
34
  for (const r of NETMASK_RANGES) {
35
- if (r.contains(ipAddr)) return true
35
+ if (r.contains(ipAddr)) { return true }
36
36
  }
37
37
 
38
38
  return false
@@ -89,9 +89,5 @@ function ipv6Check (ipAddr: string): boolean {
89
89
  }
90
90
 
91
91
  export function isPrivateIp (ip: string): boolean | undefined {
92
- if (isIPv4(ip)) return ipv4Check(ip)
93
- else if (isIpv4MappedIpv6(ip)) return ipv4MappedIpv6Check(ip)
94
- else if (isIpv4EmbeddedIpv6(ip)) return ipv4EmbeddedIpv6Check(ip)
95
- else if (isIPv6(ip)) return ipv6Check(ip)
96
- else return undefined
92
+ if (isIPv4(ip)) { return ipv4Check(ip) } else if (isIpv4MappedIpv6(ip)) { return ipv4MappedIpv6Check(ip) } else if (isIpv4EmbeddedIpv6(ip)) { return ipv4EmbeddedIpv6Check(ip) } else if (isIPv6(ip)) { return ipv6Check(ip) } else { return undefined }
97
93
  }
@@ -71,49 +71,49 @@ export interface QueueEvents<JobReturnType, JobOptions extends AbortOptions = Ab
71
71
  /**
72
72
  * A job is about to start running
73
73
  */
74
- 'active': CustomEvent
74
+ active: CustomEvent
75
75
 
76
76
  /**
77
77
  * All jobs have finished and the queue is empty
78
78
  */
79
- 'idle': CustomEvent
79
+ idle: CustomEvent
80
80
 
81
81
  /**
82
82
  * The queue is empty, jobs may be running
83
83
  */
84
- 'empty': CustomEvent
84
+ empty: CustomEvent
85
85
 
86
86
  /**
87
87
  * A job was added to the queue
88
88
  */
89
- 'add': CustomEvent
89
+ add: CustomEvent
90
90
 
91
91
  /**
92
92
  * A job has finished or failed
93
93
  */
94
- 'next': CustomEvent
94
+ next: CustomEvent
95
95
 
96
96
  /**
97
97
  * A job has finished successfully
98
98
  */
99
- 'completed': CustomEvent<JobReturnType>
99
+ completed: CustomEvent<JobReturnType>
100
100
 
101
101
  /**
102
102
  * A job has failed
103
103
  */
104
- 'error': CustomEvent<Error>
104
+ error: CustomEvent<Error>
105
105
 
106
106
  /**
107
107
  * Emitted just after `"completed", a job has finished successfully - this
108
108
  * event gives access to the job and it's result
109
109
  */
110
- 'success': CustomEvent<QueueJobSuccess<JobReturnType, JobOptions>>
110
+ success: CustomEvent<QueueJobSuccess<JobReturnType, JobOptions>>
111
111
 
112
112
  /**
113
113
  * Emitted just after `"error", a job has failed - this event gives access to
114
114
  * the job and the thrown error
115
115
  */
116
- 'failure': CustomEvent<QueueJobFailure<JobReturnType, JobOptions>>
116
+ failure: CustomEvent<QueueJobFailure<JobReturnType, JobOptions>>
117
117
  }
118
118
 
119
119
  /**
@@ -11,6 +11,8 @@ export interface RepeatingTask {
11
11
  *
12
12
  * This only affects the next iteration of the task, if it is currently
13
13
  * running, that run will not be interrupted.
14
+ *
15
+ * Setting the interval to the current value has no effect.
14
16
  */
15
17
  setInterval(ms: number): void
16
18
 
@@ -18,7 +20,7 @@ export interface RepeatingTask {
18
20
  * Update the amount of time a task will run before the passed abort signal
19
21
  * will fire.
20
22
  *
21
- * * This only affects the next iteration of the task, if it is currently
23
+ * This only affects the next iteration of the task, if it is currently
22
24
  * running, that run will not be interrupted.
23
25
  */
24
26
  setTimeout(ms: number): void
@@ -83,7 +85,12 @@ export function repeatingTask (fn: (options?: AbortOptions) => void | Promise<vo
83
85
  let started = false
84
86
 
85
87
  return {
86
- setInterval: (ms) => {
88
+ setInterval: (ms): void => {
89
+ if (interval === ms) {
90
+ // already running at this interval, nothing to do
91
+ return
92
+ }
93
+
87
94
  interval = ms
88
95
 
89
96
  // maybe reschedule
@@ -92,14 +99,11 @@ export function repeatingTask (fn: (options?: AbortOptions) => void | Promise<vo
92
99
  timeout = setTimeout(runTask, interval)
93
100
  }
94
101
  },
95
- setTimeout: (ms) => {
96
- if (options == null) {
97
- options = {}
98
- }
99
-
102
+ setTimeout: (ms): void => {
103
+ options ??= {}
100
104
  options.timeout = ms
101
105
  },
102
- start: () => {
106
+ start: (): void => {
103
107
  if (started) {
104
108
  return
105
109
  }
@@ -118,7 +122,7 @@ export function repeatingTask (fn: (options?: AbortOptions) => void | Promise<vo
118
122
  timeout = setTimeout(runTask, interval)
119
123
  }
120
124
  },
121
- stop: () => {
125
+ stop: (): void => {
122
126
  clearTimeout(timeout)
123
127
  shutdownController?.abort()
124
128
  started = false
@@ -34,21 +34,21 @@ export function streamToMaConnection (props: StreamProperties): MultiaddrConnect
34
34
 
35
35
  // piggyback on `stream.close` invocations to close multiaddr connection
36
36
  const streamClose = stream.close.bind(stream)
37
- stream.close = async (options) => {
37
+ stream.close = async (options): Promise<void> => {
38
38
  await streamClose(options)
39
39
  close(true)
40
40
  }
41
41
 
42
42
  // piggyback on `stream.abort` invocations to close multiaddr connection
43
43
  const streamAbort = stream.abort.bind(stream)
44
- stream.abort = (err) => {
44
+ stream.abort = (err): void => {
45
45
  streamAbort(err)
46
46
  close(true)
47
47
  }
48
48
 
49
49
  // piggyback on `stream.sink` invocations to close multiaddr connection
50
50
  const streamSink = stream.sink.bind(stream)
51
- stream.sink = async (source) => {
51
+ stream.sink = async (source): Promise<void> => {
52
52
  try {
53
53
  await streamSink(
54
54
  pipe(
@@ -73,7 +73,7 @@ export function streamToMaConnection (props: StreamProperties): MultiaddrConnect
73
73
  const maConn: MultiaddrConnection = {
74
74
  log,
75
75
  sink: stream.sink,
76
- source: (async function * () {
76
+ source: (async function * (): AsyncGenerator<Uint8ArrayList> {
77
77
  try {
78
78
  for await (const buf of stream.source) {
79
79
  onDataRead?.(buf)