@libp2p/utils 6.7.2-6059227cb → 6.7.2-87bc8d4fb

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 (159) hide show
  1. package/README.md +1 -1
  2. package/dist/index.min.js +1 -7
  3. package/dist/index.min.js.map +4 -4
  4. package/dist/src/abort-options.d.ts +7 -0
  5. package/dist/src/abort-options.d.ts.map +1 -0
  6. package/dist/src/abort-options.js +14 -0
  7. package/dist/src/abort-options.js.map +1 -0
  8. package/dist/src/abstract-stream.d.ts +130 -14
  9. package/dist/src/abstract-stream.d.ts.map +1 -1
  10. package/dist/src/abstract-stream.js +321 -39
  11. package/dist/src/abstract-stream.js.map +1 -1
  12. package/dist/src/array-equals.d.ts +24 -0
  13. package/dist/src/array-equals.d.ts.map +1 -0
  14. package/dist/src/array-equals.js +31 -0
  15. package/dist/src/array-equals.js.map +1 -0
  16. package/dist/src/close-source.d.ts +4 -0
  17. package/dist/src/close-source.d.ts.map +1 -0
  18. package/dist/src/close-source.js +11 -0
  19. package/dist/src/close-source.js.map +1 -0
  20. package/dist/src/close.d.ts +21 -0
  21. package/dist/src/close.d.ts.map +1 -0
  22. package/dist/src/close.js +49 -0
  23. package/dist/src/close.js.map +1 -0
  24. package/dist/src/errors.d.ts +0 -8
  25. package/dist/src/errors.d.ts.map +1 -1
  26. package/dist/src/errors.js +0 -8
  27. package/dist/src/errors.js.map +1 -1
  28. package/dist/src/get-thin-waist-addresses.browser.d.ts +1 -1
  29. package/dist/src/get-thin-waist-addresses.browser.d.ts.map +1 -1
  30. package/dist/src/get-thin-waist-addresses.browser.js +3 -4
  31. package/dist/src/get-thin-waist-addresses.browser.js.map +1 -1
  32. package/dist/src/get-thin-waist-addresses.d.ts +1 -1
  33. package/dist/src/get-thin-waist-addresses.d.ts.map +1 -1
  34. package/dist/src/get-thin-waist-addresses.js +9 -7
  35. package/dist/src/get-thin-waist-addresses.js.map +1 -1
  36. package/dist/src/index.d.ts +1 -31
  37. package/dist/src/index.d.ts.map +1 -1
  38. package/dist/src/index.js +1 -31
  39. package/dist/src/index.js.map +1 -1
  40. package/dist/src/merge-options.d.ts +7 -0
  41. package/dist/src/merge-options.d.ts.map +1 -0
  42. package/dist/src/merge-options.js +128 -0
  43. package/dist/src/merge-options.js.map +1 -0
  44. package/dist/src/multiaddr/is-global-unicast.d.ts.map +1 -1
  45. package/dist/src/multiaddr/is-global-unicast.js +9 -8
  46. package/dist/src/multiaddr/is-global-unicast.js.map +1 -1
  47. package/dist/src/multiaddr/is-ip-based.d.ts +6 -0
  48. package/dist/src/multiaddr/is-ip-based.d.ts.map +1 -0
  49. package/dist/src/multiaddr/is-ip-based.js +18 -0
  50. package/dist/src/multiaddr/is-ip-based.js.map +1 -0
  51. package/dist/src/multiaddr/is-link-local.d.ts.map +1 -1
  52. package/dist/src/multiaddr/is-link-local.js +16 -11
  53. package/dist/src/multiaddr/is-link-local.js.map +1 -1
  54. package/dist/src/multiaddr/is-loopback.d.ts.map +1 -1
  55. package/dist/src/multiaddr/is-loopback.js +5 -12
  56. package/dist/src/multiaddr/is-loopback.js.map +1 -1
  57. package/dist/src/multiaddr/is-network-address.d.ts.map +1 -1
  58. package/dist/src/multiaddr/is-network-address.js +16 -4
  59. package/dist/src/multiaddr/is-network-address.js.map +1 -1
  60. package/dist/src/multiaddr/is-private.d.ts.map +1 -1
  61. package/dist/src/multiaddr/is-private.js +10 -9
  62. package/dist/src/multiaddr/is-private.js.map +1 -1
  63. package/dist/src/queue/index.d.ts +6 -3
  64. package/dist/src/queue/index.d.ts.map +1 -1
  65. package/dist/src/queue/index.js +4 -20
  66. package/dist/src/queue/index.js.map +1 -1
  67. package/dist/src/rate-limiter.d.ts +15 -1
  68. package/dist/src/rate-limiter.d.ts.map +1 -1
  69. package/dist/src/rate-limiter.js +14 -1
  70. package/dist/src/rate-limiter.js.map +1 -1
  71. package/dist/src/stream-to-ma-conn.d.ts +23 -0
  72. package/dist/src/stream-to-ma-conn.d.ts.map +1 -0
  73. package/dist/src/stream-to-ma-conn.js +75 -0
  74. package/dist/src/stream-to-ma-conn.js.map +1 -0
  75. package/package.json +162 -15
  76. package/src/abort-options.ts +20 -0
  77. package/src/abstract-stream.ts +464 -51
  78. package/src/array-equals.ts +34 -0
  79. package/src/close-source.ts +14 -0
  80. package/src/close.ts +65 -0
  81. package/src/errors.ts +0 -10
  82. package/src/get-thin-waist-addresses.browser.ts +4 -5
  83. package/src/get-thin-waist-addresses.ts +12 -8
  84. package/src/index.ts +1 -31
  85. package/src/merge-options.ts +161 -0
  86. package/src/multiaddr/is-global-unicast.ts +11 -8
  87. package/src/multiaddr/is-ip-based.ts +21 -0
  88. package/src/multiaddr/is-link-local.ts +20 -11
  89. package/src/multiaddr/is-loopback.ts +7 -12
  90. package/src/multiaddr/is-network-address.ts +19 -4
  91. package/src/multiaddr/is-private.ts +14 -9
  92. package/src/queue/index.ts +11 -24
  93. package/src/rate-limiter.ts +30 -3
  94. package/src/stream-to-ma-conn.ts +106 -0
  95. package/dist/src/abstract-message-stream.d.ts +0 -129
  96. package/dist/src/abstract-message-stream.d.ts.map +0 -1
  97. package/dist/src/abstract-message-stream.js +0 -393
  98. package/dist/src/abstract-message-stream.js.map +0 -1
  99. package/dist/src/abstract-multiaddr-connection.d.ts +0 -26
  100. package/dist/src/abstract-multiaddr-connection.d.ts.map +0 -1
  101. package/dist/src/abstract-multiaddr-connection.js +0 -66
  102. package/dist/src/abstract-multiaddr-connection.js.map +0 -1
  103. package/dist/src/abstract-stream-muxer.d.ts +0 -53
  104. package/dist/src/abstract-stream-muxer.d.ts.map +0 -1
  105. package/dist/src/abstract-stream-muxer.js +0 -169
  106. package/dist/src/abstract-stream-muxer.js.map +0 -1
  107. package/dist/src/length-prefixed-decoder.d.ts +0 -37
  108. package/dist/src/length-prefixed-decoder.d.ts.map +0 -1
  109. package/dist/src/length-prefixed-decoder.js +0 -64
  110. package/dist/src/length-prefixed-decoder.js.map +0 -1
  111. package/dist/src/message-queue.d.ts +0 -61
  112. package/dist/src/message-queue.d.ts.map +0 -1
  113. package/dist/src/message-queue.js +0 -93
  114. package/dist/src/message-queue.js.map +0 -1
  115. package/dist/src/mock-muxer.d.ts +0 -57
  116. package/dist/src/mock-muxer.d.ts.map +0 -1
  117. package/dist/src/mock-muxer.js +0 -204
  118. package/dist/src/mock-muxer.js.map +0 -1
  119. package/dist/src/mock-stream.d.ts +0 -31
  120. package/dist/src/mock-stream.d.ts.map +0 -1
  121. package/dist/src/mock-stream.js +0 -69
  122. package/dist/src/mock-stream.js.map +0 -1
  123. package/dist/src/multiaddr/get-net-config.d.ts +0 -55
  124. package/dist/src/multiaddr/get-net-config.d.ts.map +0 -1
  125. package/dist/src/multiaddr/get-net-config.js +0 -54
  126. package/dist/src/multiaddr/get-net-config.js.map +0 -1
  127. package/dist/src/multiaddr/index.d.ts +0 -7
  128. package/dist/src/multiaddr/index.d.ts.map +0 -1
  129. package/dist/src/multiaddr/index.js +0 -7
  130. package/dist/src/multiaddr/index.js.map +0 -1
  131. package/dist/src/multiaddr/utils.d.ts +0 -5
  132. package/dist/src/multiaddr/utils.d.ts.map +0 -1
  133. package/dist/src/multiaddr/utils.js +0 -32
  134. package/dist/src/multiaddr/utils.js.map +0 -1
  135. package/dist/src/multiaddr-connection-pair.d.ts +0 -25
  136. package/dist/src/multiaddr-connection-pair.d.ts.map +0 -1
  137. package/dist/src/multiaddr-connection-pair.js +0 -103
  138. package/dist/src/multiaddr-connection-pair.js.map +0 -1
  139. package/dist/src/stream-pair.d.ts +0 -42
  140. package/dist/src/stream-pair.d.ts.map +0 -1
  141. package/dist/src/stream-pair.js +0 -40
  142. package/dist/src/stream-pair.js.map +0 -1
  143. package/dist/src/stream-utils.d.ts +0 -191
  144. package/dist/src/stream-utils.d.ts.map +0 -1
  145. package/dist/src/stream-utils.js +0 -370
  146. package/dist/src/stream-utils.js.map +0 -1
  147. package/src/abstract-message-stream.ts +0 -553
  148. package/src/abstract-multiaddr-connection.ts +0 -93
  149. package/src/abstract-stream-muxer.ts +0 -239
  150. package/src/length-prefixed-decoder.ts +0 -98
  151. package/src/message-queue.ts +0 -156
  152. package/src/mock-muxer.ts +0 -304
  153. package/src/mock-stream.ts +0 -101
  154. package/src/multiaddr/get-net-config.ts +0 -112
  155. package/src/multiaddr/index.ts +0 -6
  156. package/src/multiaddr/utils.ts +0 -46
  157. package/src/multiaddr-connection-pair.ts +0 -147
  158. package/src/stream-pair.ts +0 -90
  159. package/src/stream-utils.ts +0 -865
@@ -1,103 +0,0 @@
1
- import { StreamMessageEvent } from '@libp2p/interface';
2
- import { defaultLogger } from '@libp2p/logger';
3
- import { multiaddr } from '@multiformats/multiaddr';
4
- import { pEvent } from 'p-event';
5
- import { raceSignal } from 'race-signal';
6
- import { AbstractMultiaddrConnection } from "./abstract-multiaddr-connection.js";
7
- import { MessageQueue } from "./message-queue.js";
8
- let multiaddrConnectionId = 0;
9
- class MockMultiaddrConnection extends AbstractMultiaddrConnection {
10
- local;
11
- remote;
12
- constructor(init) {
13
- super(init);
14
- this.local = init.local;
15
- this.remote = init.remote;
16
- this.local.addEventListener('drain', () => {
17
- this.safeDispatchEvent('drain');
18
- });
19
- this.remote.addEventListener('message', (evt) => {
20
- if (this.status !== 'open') {
21
- return;
22
- }
23
- this.onData(evt.data);
24
- });
25
- this.remote.addEventListener('reset', (evt) => {
26
- if (this.status !== 'open') {
27
- return;
28
- }
29
- this.onRemoteReset();
30
- });
31
- this.remote.addEventListener('close', (evt) => {
32
- this.onTransportClosed();
33
- });
34
- this.remote.addEventListener('pause', (evt) => {
35
- this.local.pause();
36
- });
37
- this.remote.addEventListener('resume', (evt) => {
38
- this.local.resume();
39
- });
40
- }
41
- sendData(data) {
42
- const canSendMore = this.local.send(new StreamMessageEvent(data));
43
- return {
44
- sentBytes: data.byteLength,
45
- canSendMore
46
- };
47
- }
48
- sendReset() {
49
- this.local.send(new Event('reset'));
50
- }
51
- async sendClose(options) {
52
- if (this.local.needsDrain) {
53
- await pEvent(this.local, 'drain', {
54
- signal: options?.signal
55
- });
56
- }
57
- return raceSignal(new Promise((resolve, reject) => {
58
- this.local.send(new Event('close'));
59
- this.local.onIdle().then(resolve, reject);
60
- }), options?.signal);
61
- }
62
- sendPause() {
63
- this.local.send(new Event('pause'));
64
- }
65
- sendResume() {
66
- this.local.send(new Event('resume'));
67
- }
68
- }
69
- export function multiaddrConnectionPair(opts = {}) {
70
- const inboundId = `${multiaddrConnectionId++}`;
71
- const outboundId = `${multiaddrConnectionId++}`;
72
- const outboundLog = defaultLogger().forComponent(`libp2p:mock-maconn:outbound:${inboundId}`);
73
- const inboundLog = defaultLogger().forComponent(`libp2p:mock-maconn:inbound:${outboundId}`);
74
- const targetA = new MessageQueue({
75
- ...opts,
76
- log: outboundLog
77
- });
78
- const targetB = new MessageQueue({
79
- ...opts,
80
- log: inboundLog
81
- });
82
- return [
83
- new MockMultiaddrConnection({
84
- ...opts.outbound,
85
- id: outboundId,
86
- direction: 'outbound',
87
- local: targetA,
88
- remote: targetB,
89
- remoteAddr: opts?.outbound?.remoteAddr ?? multiaddr(`/ip4/127.0.0.1/tcp/${outboundId}`),
90
- log: outboundLog
91
- }),
92
- new MockMultiaddrConnection({
93
- ...opts.inbound,
94
- id: inboundId,
95
- direction: 'inbound',
96
- local: targetB,
97
- remote: targetA,
98
- remoteAddr: opts?.inbound?.remoteAddr ?? multiaddr(`/ip4/127.0.0.1/tcp/${inboundId}`),
99
- log: inboundLog
100
- })
101
- ];
102
- }
103
- //# sourceMappingURL=multiaddr-connection-pair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiaddr-connection-pair.js","sourceRoot":"","sources":["../../src/multiaddr-connection-pair.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- import type { MockMultiaddrConnectionInit } from './multiaddr-connection-pair.ts';
2
- import type { Stream, StreamOptions } from '@libp2p/interface';
3
- export interface StreamPairOptions {
4
- /**
5
- * How long to wait in ms before sending messages
6
- *
7
- * @default 1
8
- */
9
- delay?: number;
10
- /**
11
- * If more than this many messages are sent within delay, write backpressure
12
- * will be applied
13
- */
14
- capacity?: number;
15
- /**
16
- * Simulate having pre-negotiated a protocol by passing it here
17
- */
18
- protocol?: string;
19
- /**
20
- * Configuration options for the outbound stream
21
- */
22
- outbound?: StreamOptions;
23
- /**
24
- * Configuration options for underlying outbound connection
25
- */
26
- outboundConnection?: Partial<MockMultiaddrConnectionInit>;
27
- /**
28
- * Configuration options for the inbound stream
29
- */
30
- inbound?: StreamOptions;
31
- /**
32
- * Configuration options for underlying inbound connection
33
- */
34
- inboundConnection?: Partial<MockMultiaddrConnectionInit>;
35
- }
36
- /**
37
- * Returns two streams connected to each other with a slight delay in sending
38
- * messages to simulate a network
39
- */
40
- export declare function streamPair(opts?: StreamPairOptions): Promise<[Stream, Stream]>;
41
- export declare function echoStream(opts?: StreamPairOptions): Promise<Stream>;
42
- //# sourceMappingURL=stream-pair.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-pair.d.ts","sourceRoot":"","sources":["../../src/stream-pair.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAA;IAExB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAEzD;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAA;IAEvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAA;CACzD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA+BzF;AAED,wBAAsB,UAAU,CAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAK/E"}
@@ -1,40 +0,0 @@
1
- import { pEvent } from 'p-event';
2
- import { mockMuxer } from "./mock-muxer.js";
3
- import { multiaddrConnectionPair } from "./multiaddr-connection-pair.js";
4
- import { echo } from "./stream-utils.js";
5
- /**
6
- * Returns two streams connected to each other with a slight delay in sending
7
- * messages to simulate a network
8
- */
9
- export async function streamPair(opts = {}) {
10
- const [outboundConnection, inboundConnection] = multiaddrConnectionPair({
11
- ...opts,
12
- outbound: opts.outboundConnection,
13
- inbound: opts.inboundConnection
14
- });
15
- const localMuxer = mockMuxer({
16
- streamOptions: opts.outbound
17
- }).createStreamMuxer(outboundConnection);
18
- const remoteMuxer = mockMuxer({
19
- streamOptions: opts.inbound
20
- }).createStreamMuxer(inboundConnection);
21
- const [inboundStream, outboundStream] = await Promise.all([
22
- pEvent(remoteMuxer, 'stream').then(evt => {
23
- return evt.detail;
24
- }),
25
- localMuxer.createStream({
26
- ...opts.outbound,
27
- protocol: opts.protocol
28
- })
29
- ]);
30
- return [
31
- outboundStream,
32
- inboundStream
33
- ];
34
- }
35
- export async function echoStream(opts = {}) {
36
- const [outbound, inbound] = await streamPair(opts);
37
- echo(inbound);
38
- return outbound;
39
- }
40
- //# sourceMappingURL=stream-pair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-pair.js","sourceRoot":"","sources":["../../src/stream-pair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AA4CxC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,OAA0B,EAAE;IAC5D,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,GAAG,uBAAuB,CAAC;QACtE,GAAG,IAAI;QACP,QAAQ,EAAE,IAAI,CAAC,kBAAkB;QACjC,OAAO,EAAE,IAAI,CAAC,iBAAiB;KAChC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC;QAC3B,aAAa,EAAE,IAAI,CAAC,QAAQ;KAC7B,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,SAAS,CAAC;QAC5B,aAAa,EAAE,IAAI,CAAC,OAAO;KAC5B,CAAC,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;IAEvC,MAAM,CACJ,aAAa,EACb,cAAc,CACf,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,MAAM,CAAgC,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtE,OAAO,GAAG,CAAC,MAAM,CAAA;QACnB,CAAC,CAAC;QACF,UAAU,CAAC,YAAY,CAAC;YACtB,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;KACH,CAAC,CAAA;IAEF,OAAO;QACL,cAAc;QACd,aAAa;KACd,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,OAA0B,EAAE;IAC5D,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO,CAAC,CAAA;IAEb,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -1,191 +0,0 @@
1
- import { Uint8ArrayList } from 'uint8arraylist';
2
- import type { MessageStream, Stream, AbortOptions } from '@libp2p/interface';
3
- import type { Duplex, Transform, Sink } from 'it-stream-types';
4
- export declare class UnwrappedError extends Error {
5
- static name: string;
6
- name: string;
7
- }
8
- /**
9
- * The reported length of the next data message was not a positive integer
10
- */
11
- export declare class InvalidMessageLengthError extends Error {
12
- name: string;
13
- code: string;
14
- }
15
- /**
16
- * The reported length of the next data message was larger than the configured
17
- * max allowable value
18
- */
19
- export declare class InvalidDataLengthError extends Error {
20
- name: string;
21
- code: string;
22
- }
23
- /**
24
- * The varint used to specify the length of the next data message contained more
25
- * bytes than the configured max allowable value
26
- */
27
- export declare class InvalidDataLengthLengthError extends Error {
28
- name: string;
29
- code: string;
30
- }
31
- export interface ByteStreamOpts {
32
- /**
33
- * Incoming bytes are buffered until read, this setting limits how many bytes
34
- * will be buffered.
35
- *
36
- * @default 4_194_304
37
- */
38
- maxBufferSize?: number;
39
- }
40
- export interface ReadBytesOptions extends AbortOptions {
41
- /**
42
- * If specified, read this number of bytes from the stream
43
- */
44
- bytes: number;
45
- }
46
- export interface ByteStream<S extends MessageStream> {
47
- /**
48
- * Read bytes from the stream.
49
- *
50
- * If a required number of bytes is passed as an option, this will wait for
51
- * the underlying stream to supply that number of bytes, throwing an
52
- * `UnexpectedEOFError` if the stream closes before this happens.
53
- *
54
- * If no required number of bytes is passed, this will return `null` if the
55
- * underlying stream closes before supplying any bytes.
56
- */
57
- read(options: ReadBytesOptions): Promise<Uint8ArrayList>;
58
- read(options?: AbortOptions): Promise<Uint8ArrayList | null>;
59
- /**
60
- * Write the passed bytes to the stream
61
- */
62
- write(data: Uint8Array | Uint8ArrayList, options?: AbortOptions): Promise<void>;
63
- /**
64
- * After calling this method the stream can no longer be used. Any unread data
65
- * will be emitted as a message event during the microtask queue of the
66
- * current event loop tick.
67
- */
68
- unwrap(): S;
69
- }
70
- export declare function byteStream<T extends MessageStream>(stream: T, opts?: ByteStreamOpts): ByteStream<T>;
71
- export interface LengthPrefixedStream<S extends MessageStream = MessageStream> {
72
- /**
73
- * Read the next length-prefixed number of bytes from the stream
74
- */
75
- read(options?: AbortOptions): Promise<Uint8ArrayList>;
76
- /**
77
- * Write the passed bytes to the stream prefixed by their length
78
- */
79
- write(data: Uint8Array | Uint8ArrayList, options?: AbortOptions): Promise<void>;
80
- /**
81
- * Write passed list of bytes, prefix by their individual lengths to the stream as a single write
82
- */
83
- writeV(input: Array<Uint8Array | Uint8ArrayList>, options?: AbortOptions): Promise<void>;
84
- /**
85
- * Returns the underlying stream
86
- */
87
- unwrap(): S;
88
- }
89
- export interface LengthPrefixedStreamOpts extends ByteStreamOpts {
90
- lengthEncoder(value: number): Uint8ArrayList | Uint8Array;
91
- lengthDecoder(data: Uint8ArrayList): number;
92
- maxLengthLength: number;
93
- maxDataLength: number;
94
- }
95
- export declare function lpStream<T extends MessageStream>(stream: T, opts?: Partial<LengthPrefixedStreamOpts>): LengthPrefixedStream<T>;
96
- /**
97
- * A protobuf decoder - takes a byte array and returns an object
98
- */
99
- export interface ProtobufDecoder<T> {
100
- (data: Uint8Array | Uint8ArrayList): T;
101
- }
102
- /**
103
- * A protobuf encoder - takes an object and returns a byte array
104
- */
105
- export interface ProtobufEncoder<T> {
106
- (data: T): Uint8Array;
107
- }
108
- /**
109
- * Convenience methods for working with protobuf streams
110
- */
111
- export interface ProtobufStream<S extends MessageStream = MessageStream> {
112
- /**
113
- * Read the next length-prefixed byte array from the stream and decode it as the passed protobuf format
114
- */
115
- read<T>(proto: {
116
- decode: ProtobufDecoder<T>;
117
- }, options?: AbortOptions): Promise<T>;
118
- /**
119
- * Encode the passed object as a protobuf message and write it's length-prefixed bytes to the stream
120
- */
121
- write<T>(data: T, proto: {
122
- encode: ProtobufEncoder<T>;
123
- }, options?: AbortOptions): Promise<void>;
124
- /**
125
- * Encode the passed objects as protobuf messages and write their length-prefixed bytes to the stream as a single write
126
- */
127
- writeV<T>(input: T[], proto: {
128
- encode: ProtobufEncoder<T>;
129
- }, options?: AbortOptions): Promise<void>;
130
- /**
131
- * Returns an object with read/write methods for operating on one specific type of protobuf message
132
- */
133
- pb<T>(proto: {
134
- encode: ProtobufEncoder<T>;
135
- decode: ProtobufDecoder<T>;
136
- }): ProtobufMessageStream<T, S>;
137
- /**
138
- * Returns the underlying stream
139
- */
140
- unwrap(): S;
141
- }
142
- /**
143
- * A message reader/writer that only uses one type of message
144
- */
145
- export interface ProtobufMessageStream<T, S extends MessageStream = MessageStream> {
146
- /**
147
- * Read a message from the stream
148
- */
149
- read(options?: AbortOptions): Promise<T>;
150
- /**
151
- * Write a message to the stream
152
- */
153
- write(d: T, options?: AbortOptions): Promise<void>;
154
- /**
155
- * Write several messages to the stream
156
- */
157
- writeV(d: T[], options?: AbortOptions): Promise<void>;
158
- /**
159
- * Unwrap the underlying protobuf stream
160
- */
161
- unwrap(): ProtobufStream<S>;
162
- }
163
- export interface ProtobufStreamOpts extends LengthPrefixedStreamOpts {
164
- }
165
- export declare function pbStream<T extends MessageStream = Stream>(stream: T, opts?: Partial<ProtobufStreamOpts>): ProtobufStream<T>;
166
- export declare function echo(stream: MessageStream, options?: AbortOptions): Promise<void>;
167
- export type PipeInput = Iterable<Uint8Array | Uint8ArrayList> | AsyncIterable<Uint8Array | Uint8ArrayList> | Stream;
168
- export declare function messageStreamToDuplex(stream: Stream): Duplex<AsyncGenerator<Uint8ArrayList | Uint8Array>, Iterable<Uint8ArrayList | Uint8Array> | AsyncIterable<Uint8ArrayList | Uint8Array>, Promise<void>>;
169
- interface SourceFn<A = any> {
170
- (): A;
171
- }
172
- type PipeSource<A = any> = Iterable<A> | AsyncIterable<A> | SourceFn<A> | Duplex<A, any, any> | MessageStream;
173
- type PipeTransform<A = any, B = any> = Transform<A, B> | Duplex<B, A> | MessageStream;
174
- type PipeSink<A = any, B = any> = Sink<A, B> | Duplex<any, A, B> | MessageStream;
175
- type PipeOutput<A> = A extends Sink<any> ? ReturnType<A> : A extends Duplex<any, any, any> ? ReturnType<A['sink']> : A extends MessageStream ? Promise<void> : never;
176
- type SingleItemPipeOutput<A> = A extends Iterable<any> ? A : A extends AsyncIterable<any> ? A : A extends SourceFn ? ReturnType<A> : A extends Duplex<any, any, any> ? A['source'] : PipeOutput<A>;
177
- type PipeFnInput<A> = A extends Iterable<any> ? A : A extends AsyncIterable<any> ? A : A extends SourceFn ? ReturnType<A> : A extends Transform<any, any> ? ReturnType<A> : A extends Duplex<any, any, any> ? A['source'] : never;
178
- export declare function pipe<A extends PipeSource>(source: A): SingleItemPipeOutput<A>;
179
- export declare function pipe<A extends PipeSource, B extends PipeSink<PipeFnInput<A>>>(source: A, sink: B): PipeOutput<B>;
180
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeSink<PipeFnInput<B>>>(source: A, transform1: B, sink: C): PipeOutput<C>;
181
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeSink<PipeFnInput<C>>>(source: A, transform1: B, transform2: C, sink: D): PipeOutput<D>;
182
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeSink<PipeFnInput<D>>>(source: A, transform1: B, transform2: C, transform3: D, sink: E): PipeOutput<E>;
183
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeTransform<PipeFnInput<D>>, F extends PipeSink<PipeFnInput<E>>>(source: A, transform1: B, transform2: C, transform3: D, transform4: E, sink: F): PipeOutput<F>;
184
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeTransform<PipeFnInput<D>>, F extends PipeTransform<PipeFnInput<E>>, G extends PipeSink<PipeFnInput<F>>>(source: A, transform1: B, transform2: C, transform3: D, transform4: E, transform5: F, sink: G): PipeOutput<G>;
185
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeTransform<PipeFnInput<D>>, F extends PipeTransform<PipeFnInput<E>>, G extends PipeTransform<PipeFnInput<F>>, H extends PipeSink<PipeFnInput<G>>>(source: A, transform1: B, transform2: C, transform3: D, transform4: E, transform5: F, transform6: G, sink: H): PipeOutput<H>;
186
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeTransform<PipeFnInput<D>>, F extends PipeTransform<PipeFnInput<E>>, G extends PipeTransform<PipeFnInput<F>>, H extends PipeTransform<PipeFnInput<G>>, I extends PipeSink<PipeFnInput<H>>>(source: A, transform1: B, transform2: C, transform3: D, transform4: E, transform5: F, transform6: G, transform7: H, sink: I): PipeOutput<I>;
187
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeTransform<PipeFnInput<D>>, F extends PipeTransform<PipeFnInput<E>>, G extends PipeTransform<PipeFnInput<F>>, H extends PipeTransform<PipeFnInput<G>>, I extends PipeTransform<PipeFnInput<H>>, J extends PipeSink<PipeFnInput<I>>>(source: A, transform1: B, transform2: C, transform3: D, transform4: E, transform5: F, transform6: G, transform7: H, transform8: I, sink: J): PipeOutput<J>;
188
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeTransform<PipeFnInput<D>>, F extends PipeTransform<PipeFnInput<E>>, G extends PipeTransform<PipeFnInput<F>>, H extends PipeTransform<PipeFnInput<G>>, I extends PipeTransform<PipeFnInput<H>>, J extends PipeTransform<PipeFnInput<I>>, K extends PipeSink<PipeFnInput<J>>>(source: A, transform1: B, transform2: C, transform3: D, transform4: E, transform5: F, transform6: G, transform7: H, transform8: I, transform9: J, sink: K): PipeOutput<K>;
189
- export declare function pipe<A extends PipeSource, B extends PipeTransform<PipeFnInput<A>>, C extends PipeTransform<PipeFnInput<B>>, D extends PipeTransform<PipeFnInput<C>>, E extends PipeTransform<PipeFnInput<D>>, F extends PipeTransform<PipeFnInput<E>>, G extends PipeTransform<PipeFnInput<F>>, H extends PipeTransform<PipeFnInput<G>>, I extends PipeTransform<PipeFnInput<H>>, J extends PipeTransform<PipeFnInput<I>>, K extends PipeTransform<PipeFnInput<J>>, L extends PipeSink<PipeFnInput<K>>>(source: A, transform1: B, transform2: C, transform3: D, transform4: E, transform5: F, transform6: G, transform7: H, transform8: I, transform9: J, transform10: K, sink: L): PipeOutput<L>;
190
- export {};
191
- //# sourceMappingURL=stream-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../src/stream-utils.ts"],"names":[],"mappings":"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"}