@libp2p/utils 6.7.2 → 7.0.0-049bfa0fa

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 (160) hide show
  1. package/README.md +16 -1
  2. package/dist/index.min.js +7 -1
  3. package/dist/index.min.js.map +4 -4
  4. package/dist/src/abstract-message-stream.d.ts +129 -0
  5. package/dist/src/abstract-message-stream.d.ts.map +1 -0
  6. package/dist/src/abstract-message-stream.js +393 -0
  7. package/dist/src/abstract-message-stream.js.map +1 -0
  8. package/dist/src/abstract-multiaddr-connection.d.ts +26 -0
  9. package/dist/src/abstract-multiaddr-connection.d.ts.map +1 -0
  10. package/dist/src/abstract-multiaddr-connection.js +66 -0
  11. package/dist/src/abstract-multiaddr-connection.js.map +1 -0
  12. package/dist/src/abstract-stream-muxer.d.ts +53 -0
  13. package/dist/src/abstract-stream-muxer.d.ts.map +1 -0
  14. package/dist/src/abstract-stream-muxer.js +169 -0
  15. package/dist/src/abstract-stream-muxer.js.map +1 -0
  16. package/dist/src/abstract-stream.d.ts +14 -130
  17. package/dist/src/abstract-stream.d.ts.map +1 -1
  18. package/dist/src/abstract-stream.js +39 -321
  19. package/dist/src/abstract-stream.js.map +1 -1
  20. package/dist/src/errors.d.ts +8 -0
  21. package/dist/src/errors.d.ts.map +1 -1
  22. package/dist/src/errors.js +8 -0
  23. package/dist/src/errors.js.map +1 -1
  24. package/dist/src/get-thin-waist-addresses.browser.d.ts +1 -1
  25. package/dist/src/get-thin-waist-addresses.browser.d.ts.map +1 -1
  26. package/dist/src/get-thin-waist-addresses.browser.js +4 -3
  27. package/dist/src/get-thin-waist-addresses.browser.js.map +1 -1
  28. package/dist/src/get-thin-waist-addresses.d.ts +1 -1
  29. package/dist/src/get-thin-waist-addresses.d.ts.map +1 -1
  30. package/dist/src/get-thin-waist-addresses.js +7 -9
  31. package/dist/src/get-thin-waist-addresses.js.map +1 -1
  32. package/dist/src/index.d.ts +31 -1
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +31 -1
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/length-prefixed-decoder.d.ts +37 -0
  37. package/dist/src/length-prefixed-decoder.d.ts.map +1 -0
  38. package/dist/src/length-prefixed-decoder.js +64 -0
  39. package/dist/src/length-prefixed-decoder.js.map +1 -0
  40. package/dist/src/message-queue.d.ts +61 -0
  41. package/dist/src/message-queue.d.ts.map +1 -0
  42. package/dist/src/message-queue.js +93 -0
  43. package/dist/src/message-queue.js.map +1 -0
  44. package/dist/src/mock-muxer.d.ts +57 -0
  45. package/dist/src/mock-muxer.d.ts.map +1 -0
  46. package/dist/src/mock-muxer.js +204 -0
  47. package/dist/src/mock-muxer.js.map +1 -0
  48. package/dist/src/mock-stream.d.ts +31 -0
  49. package/dist/src/mock-stream.d.ts.map +1 -0
  50. package/dist/src/mock-stream.js +69 -0
  51. package/dist/src/mock-stream.js.map +1 -0
  52. package/dist/src/multiaddr/get-net-config.d.ts +55 -0
  53. package/dist/src/multiaddr/get-net-config.d.ts.map +1 -0
  54. package/dist/src/multiaddr/get-net-config.js +54 -0
  55. package/dist/src/multiaddr/get-net-config.js.map +1 -0
  56. package/dist/src/multiaddr/index.d.ts +7 -0
  57. package/dist/src/multiaddr/index.d.ts.map +1 -0
  58. package/dist/src/multiaddr/index.js +7 -0
  59. package/dist/src/multiaddr/index.js.map +1 -0
  60. package/dist/src/multiaddr/is-global-unicast.d.ts.map +1 -1
  61. package/dist/src/multiaddr/is-global-unicast.js +8 -9
  62. package/dist/src/multiaddr/is-global-unicast.js.map +1 -1
  63. package/dist/src/multiaddr/is-link-local.d.ts.map +1 -1
  64. package/dist/src/multiaddr/is-link-local.js +11 -16
  65. package/dist/src/multiaddr/is-link-local.js.map +1 -1
  66. package/dist/src/multiaddr/is-loopback.d.ts.map +1 -1
  67. package/dist/src/multiaddr/is-loopback.js +12 -5
  68. package/dist/src/multiaddr/is-loopback.js.map +1 -1
  69. package/dist/src/multiaddr/is-network-address.d.ts.map +1 -1
  70. package/dist/src/multiaddr/is-network-address.js +4 -16
  71. package/dist/src/multiaddr/is-network-address.js.map +1 -1
  72. package/dist/src/multiaddr/is-private.d.ts.map +1 -1
  73. package/dist/src/multiaddr/is-private.js +9 -10
  74. package/dist/src/multiaddr/is-private.js.map +1 -1
  75. package/dist/src/multiaddr/utils.d.ts +5 -0
  76. package/dist/src/multiaddr/utils.d.ts.map +1 -0
  77. package/dist/src/multiaddr/utils.js +32 -0
  78. package/dist/src/multiaddr/utils.js.map +1 -0
  79. package/dist/src/multiaddr-connection-pair.d.ts +25 -0
  80. package/dist/src/multiaddr-connection-pair.d.ts.map +1 -0
  81. package/dist/src/multiaddr-connection-pair.js +103 -0
  82. package/dist/src/multiaddr-connection-pair.js.map +1 -0
  83. package/dist/src/queue/index.d.ts +3 -6
  84. package/dist/src/queue/index.d.ts.map +1 -1
  85. package/dist/src/queue/index.js +20 -4
  86. package/dist/src/queue/index.js.map +1 -1
  87. package/dist/src/rate-limiter.d.ts +1 -15
  88. package/dist/src/rate-limiter.d.ts.map +1 -1
  89. package/dist/src/rate-limiter.js +1 -14
  90. package/dist/src/rate-limiter.js.map +1 -1
  91. package/dist/src/stream-pair.d.ts +42 -0
  92. package/dist/src/stream-pair.d.ts.map +1 -0
  93. package/dist/src/stream-pair.js +40 -0
  94. package/dist/src/stream-pair.js.map +1 -0
  95. package/dist/src/stream-utils.d.ts +191 -0
  96. package/dist/src/stream-utils.d.ts.map +1 -0
  97. package/dist/src/stream-utils.js +370 -0
  98. package/dist/src/stream-utils.js.map +1 -0
  99. package/package.json +15 -162
  100. package/src/abstract-message-stream.ts +553 -0
  101. package/src/abstract-multiaddr-connection.ts +93 -0
  102. package/src/abstract-stream-muxer.ts +239 -0
  103. package/src/abstract-stream.ts +51 -464
  104. package/src/errors.ts +10 -0
  105. package/src/get-thin-waist-addresses.browser.ts +5 -4
  106. package/src/get-thin-waist-addresses.ts +8 -12
  107. package/src/index.ts +31 -1
  108. package/src/length-prefixed-decoder.ts +98 -0
  109. package/src/message-queue.ts +156 -0
  110. package/src/mock-muxer.ts +304 -0
  111. package/src/mock-stream.ts +101 -0
  112. package/src/multiaddr/get-net-config.ts +112 -0
  113. package/src/multiaddr/index.ts +6 -0
  114. package/src/multiaddr/is-global-unicast.ts +8 -11
  115. package/src/multiaddr/is-link-local.ts +11 -20
  116. package/src/multiaddr/is-loopback.ts +12 -7
  117. package/src/multiaddr/is-network-address.ts +4 -19
  118. package/src/multiaddr/is-private.ts +9 -14
  119. package/src/multiaddr/utils.ts +46 -0
  120. package/src/multiaddr-connection-pair.ts +147 -0
  121. package/src/queue/index.ts +24 -11
  122. package/src/rate-limiter.ts +3 -30
  123. package/src/stream-pair.ts +90 -0
  124. package/src/stream-utils.ts +865 -0
  125. package/dist/src/abort-options.d.ts +0 -7
  126. package/dist/src/abort-options.d.ts.map +0 -1
  127. package/dist/src/abort-options.js +0 -14
  128. package/dist/src/abort-options.js.map +0 -1
  129. package/dist/src/array-equals.d.ts +0 -24
  130. package/dist/src/array-equals.d.ts.map +0 -1
  131. package/dist/src/array-equals.js +0 -31
  132. package/dist/src/array-equals.js.map +0 -1
  133. package/dist/src/close-source.d.ts +0 -4
  134. package/dist/src/close-source.d.ts.map +0 -1
  135. package/dist/src/close-source.js +0 -11
  136. package/dist/src/close-source.js.map +0 -1
  137. package/dist/src/close.d.ts +0 -21
  138. package/dist/src/close.d.ts.map +0 -1
  139. package/dist/src/close.js +0 -49
  140. package/dist/src/close.js.map +0 -1
  141. package/dist/src/merge-options.d.ts +0 -7
  142. package/dist/src/merge-options.d.ts.map +0 -1
  143. package/dist/src/merge-options.js +0 -128
  144. package/dist/src/merge-options.js.map +0 -1
  145. package/dist/src/multiaddr/is-ip-based.d.ts +0 -6
  146. package/dist/src/multiaddr/is-ip-based.d.ts.map +0 -1
  147. package/dist/src/multiaddr/is-ip-based.js +0 -18
  148. package/dist/src/multiaddr/is-ip-based.js.map +0 -1
  149. package/dist/src/stream-to-ma-conn.d.ts +0 -23
  150. package/dist/src/stream-to-ma-conn.d.ts.map +0 -1
  151. package/dist/src/stream-to-ma-conn.js +0 -75
  152. package/dist/src/stream-to-ma-conn.js.map +0 -1
  153. package/dist/typedoc-urls.json +0 -147
  154. package/src/abort-options.ts +0 -20
  155. package/src/array-equals.ts +0 -34
  156. package/src/close-source.ts +0 -14
  157. package/src/close.ts +0 -65
  158. package/src/merge-options.ts +0 -161
  159. package/src/multiaddr/is-ip-based.ts +0 -21
  160. package/src/stream-to-ma-conn.ts +0 -106
@@ -0,0 +1,53 @@
1
+ import { TypedEventEmitter } from '@libp2p/interface';
2
+ import type { AbstractStream } from './abstract-stream.ts';
3
+ import type { AbortOptions, CounterGroup, CreateStreamOptions, EventHandler, Logger, MessageStream, StreamMuxer, StreamMuxerEvents, StreamMuxerOptions, StreamMuxerStatus, StreamOptions } from '@libp2p/interface';
4
+ import type { Uint8ArrayList } from 'uint8arraylist';
5
+ export interface AbstractStreamMuxerInit extends StreamMuxerOptions {
6
+ /**
7
+ * The protocol name for the muxer
8
+ */
9
+ protocol: string;
10
+ /**
11
+ * The name of the muxer, used to create a new logging scope from the passed
12
+ * connection's logger
13
+ */
14
+ name: string;
15
+ /**
16
+ * A counter for muxer metrics
17
+ */
18
+ metrics?: CounterGroup;
19
+ }
20
+ export declare abstract class AbstractStreamMuxer<MuxedStream extends AbstractStream = AbstractStream> extends TypedEventEmitter<StreamMuxerEvents<MuxedStream>> implements StreamMuxer<MuxedStream> {
21
+ streams: MuxedStream[];
22
+ protocol: string;
23
+ status: StreamMuxerStatus;
24
+ protected log: Logger;
25
+ protected maConn: MessageStream;
26
+ protected streamOptions?: StreamOptions;
27
+ protected earlyStreams: MuxedStream[];
28
+ protected maxEarlyStreams: number;
29
+ private readonly metrics?;
30
+ constructor(maConn: MessageStream, init: AbstractStreamMuxerInit);
31
+ send(data: Uint8Array | Uint8ArrayList): boolean;
32
+ close(options?: AbortOptions): Promise<void>;
33
+ abort(err: Error): void;
34
+ onTransportClosed(err?: Error): void;
35
+ createStream(options?: CreateStreamOptions): Promise<MuxedStream>;
36
+ /**
37
+ * Extending classes should invoke this method when a new stream was created
38
+ * by the remote muxer
39
+ */
40
+ onRemoteStream(stream: MuxedStream): void;
41
+ private cleanUpStream;
42
+ addEventListener<K extends keyof StreamMuxerEvents<MuxedStream>>(type: K, listener: EventHandler<StreamMuxerEvents<MuxedStream>[K]> | null, options?: boolean | AddEventListenerOptions): void;
43
+ addEventListener(type: string, listener: EventHandler<Event>, options?: boolean | AddEventListenerOptions): void;
44
+ /**
45
+ * A new outgoing stream needs to be created
46
+ */
47
+ abstract onCreateStream(options: CreateStreamOptions): MuxedStream | Promise<MuxedStream>;
48
+ /**
49
+ * Multiplexed data was received from the remote muxer
50
+ */
51
+ abstract onData(data: Uint8Array | Uint8ArrayList): void;
52
+ }
53
+ //# sourceMappingURL=abstract-stream-muxer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-stream-muxer.d.ts","sourceRoot":"","sources":["../../src/abstract-stream-muxer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAgD,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjQ,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED,8BAAsB,mBAAmB,CAAE,WAAW,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,iBAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAE,YAAW,WAAW,CAAC,WAAW,CAAC;IACpL,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;IAEhC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAA;IAC/B,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IACvC,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,CAAA;IACrC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAA;IAEjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;gBAE1B,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,uBAAuB;IAyCjE,IAAI,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO;IAc3C,KAAK,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD,KAAK,CAAE,GAAG,EAAE,KAAK,GAAG,IAAI;IAcxB,iBAAiB,CAAE,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI;IAc/B,YAAY,CAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBxE;;;OAGG;IACH,cAAc,CAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAqB1C,OAAO,CAAC,aAAa;IAuBrB,gBAAgB,CAAC,CAAC,SAAS,MAAM,iBAAiB,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAC9L,gBAAgB,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAsBjH;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAE,OAAO,EAAE,mBAAmB,GAAG,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAE1F;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI;CAC1D"}
@@ -0,0 +1,169 @@
1
+ import { MuxerClosedError, TypedEventEmitter } from '@libp2p/interface';
2
+ import { raceSignal } from 'race-signal';
3
+ import { MaxEarlyStreamsError } from "./errors.js";
4
+ import { isPromise } from "./is-promise.js";
5
+ export class AbstractStreamMuxer extends TypedEventEmitter {
6
+ streams;
7
+ protocol;
8
+ status;
9
+ log;
10
+ maConn;
11
+ streamOptions;
12
+ earlyStreams;
13
+ maxEarlyStreams;
14
+ metrics;
15
+ constructor(maConn, init) {
16
+ super();
17
+ this.maConn = maConn;
18
+ this.protocol = init.protocol;
19
+ this.streams = [];
20
+ this.earlyStreams = [];
21
+ this.status = 'open';
22
+ this.log = maConn.log.newScope(init.name);
23
+ this.streamOptions = init.streamOptions;
24
+ this.maxEarlyStreams = init.maxEarlyStreams ?? 10;
25
+ this.metrics = init.metrics;
26
+ // read/write all data from/to underlying maConn
27
+ const muxerMaConnOnMessage = (evt) => {
28
+ try {
29
+ this.onData(evt.data);
30
+ }
31
+ catch (err) {
32
+ this.abort(err);
33
+ this.maConn.abort(err);
34
+ }
35
+ };
36
+ this.maConn.addEventListener('message', muxerMaConnOnMessage);
37
+ // signal stream writers when the underlying connection can accept more data
38
+ const muxerMaConnOnDrain = () => {
39
+ this.log('underlying stream drained, signal %d streams to continue writing', this.streams.length);
40
+ this.streams.forEach(stream => {
41
+ stream.onMuxerDrain();
42
+ });
43
+ };
44
+ this.maConn.addEventListener('drain', muxerMaConnOnDrain);
45
+ const muxerOnMaConnClose = () => {
46
+ this.log('underlying stream closed with status %s and %d streams', this.status, this.streams.length);
47
+ this.onTransportClosed();
48
+ };
49
+ this.maConn.addEventListener('close', muxerOnMaConnClose);
50
+ }
51
+ send(data) {
52
+ const result = this.maConn.send(data);
53
+ if (result === false) {
54
+ this.log('underlying stream saturated, signal %d streams to pause writing', this.streams.length);
55
+ this.streams.forEach(stream => {
56
+ stream.onMuxerNeedsDrain();
57
+ });
58
+ }
59
+ return result;
60
+ }
61
+ async close(options) {
62
+ if (this.status === 'closed' || this.status === 'closing') {
63
+ return;
64
+ }
65
+ this.status = 'closing';
66
+ await raceSignal(Promise.all([...this.streams].map(async (s) => {
67
+ await s.close(options);
68
+ })), options?.signal);
69
+ this.status = 'closed';
70
+ }
71
+ abort(err) {
72
+ if (this.status === 'closed') {
73
+ return;
74
+ }
75
+ this.status = 'closing';
76
+ [...this.streams].forEach(s => {
77
+ s.abort(err);
78
+ });
79
+ this.status = 'closed';
80
+ }
81
+ onTransportClosed(err) {
82
+ this.status = 'closing';
83
+ try {
84
+ [...this.streams].forEach(stream => {
85
+ stream.onTransportClosed(err);
86
+ });
87
+ }
88
+ catch (err) {
89
+ this.abort(err);
90
+ }
91
+ this.status = 'closed';
92
+ }
93
+ async createStream(options) {
94
+ if (this.status !== 'open') {
95
+ throw new MuxerClosedError();
96
+ }
97
+ let stream = this.onCreateStream({
98
+ ...this.streamOptions,
99
+ ...options
100
+ });
101
+ if (isPromise(stream)) {
102
+ stream = await stream;
103
+ }
104
+ this.streams.push(stream);
105
+ this.cleanUpStream(stream);
106
+ return stream;
107
+ }
108
+ /**
109
+ * Extending classes should invoke this method when a new stream was created
110
+ * by the remote muxer
111
+ */
112
+ onRemoteStream(stream) {
113
+ this.streams.push(stream);
114
+ this.cleanUpStream(stream);
115
+ if (this.listenerCount('stream') === 0) {
116
+ // no listener has been added for the stream event yet, store the stream
117
+ // to emit it later
118
+ this.earlyStreams.push(stream);
119
+ if (this.earlyStreams.length > this.maxEarlyStreams) {
120
+ this.abort(new MaxEarlyStreamsError(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));
121
+ }
122
+ return;
123
+ }
124
+ this.safeDispatchEvent('stream', {
125
+ detail: stream
126
+ });
127
+ }
128
+ cleanUpStream(stream) {
129
+ const muxerOnStreamEnd = (evt) => {
130
+ const index = this.streams.findIndex(s => s === stream);
131
+ if (index !== -1) {
132
+ this.streams.splice(index, 1);
133
+ }
134
+ if (evt.error != null) {
135
+ if (evt.local) {
136
+ this.metrics?.increment({ [`${stream.direction}_stream_reset`]: true });
137
+ }
138
+ else {
139
+ this.metrics?.increment({ [`${stream.direction}_stream_abort`]: true });
140
+ }
141
+ }
142
+ else {
143
+ this.metrics?.increment({ [`${stream.direction}_stream_end`]: true });
144
+ }
145
+ };
146
+ stream.addEventListener('close', muxerOnStreamEnd);
147
+ this.metrics?.increment({ [`${stream.direction}_stream`]: true });
148
+ }
149
+ addEventListener(...args) {
150
+ // @ts-expect-error cannot ensure args has enough members
151
+ super.addEventListener.apply(this, args);
152
+ // if a 'stream' listener is being added and we have early streams, emit
153
+ // them
154
+ if (args[0] === 'stream' && this.earlyStreams.length > 0) {
155
+ // event listeners can be added in constructors and often use object
156
+ // properties - if this the case we can access a class member before it
157
+ // has been initialized so dispatch the message in the microtask queue
158
+ queueMicrotask(() => {
159
+ this.earlyStreams.forEach(stream => {
160
+ this.safeDispatchEvent('stream', {
161
+ detail: stream
162
+ });
163
+ });
164
+ this.earlyStreams = [];
165
+ });
166
+ }
167
+ }
168
+ }
169
+ //# sourceMappingURL=abstract-stream-muxer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-stream-muxer.js","sourceRoot":"","sources":["../../src/abstract-stream-muxer.ts"],"names":[],"mappings":"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"}
@@ -1,147 +1,31 @@
1
- import { Uint8ArrayList } from 'uint8arraylist';
2
- import type { AbortOptions, Direction, ReadStatus, Stream, StreamStatus, StreamTimeline, WriteStatus } from '@libp2p/interface';
3
- import type { Logger } from '@libp2p/logger';
4
- import type { Source } from 'it-stream-types';
5
- export interface AbstractStreamInit {
1
+ import { AbstractMessageStream } from './abstract-message-stream.js';
2
+ import type { MessageStreamInit } from './abstract-message-stream.js';
3
+ import type { AbortOptions, Stream } from '@libp2p/interface';
4
+ export interface AbstractStreamInit extends MessageStreamInit {
6
5
  /**
7
6
  * A unique identifier for this stream
8
7
  */
9
8
  id: string;
10
9
  /**
11
- * The stream direction
10
+ * The protocol name for the stream, if it is known
12
11
  */
13
- direction: Direction;
14
- /**
15
- * A Logger implementation used to log stream-specific information
16
- */
17
- log: Logger;
18
- /**
19
- * User specific stream metadata
20
- */
21
- metadata?: Record<string, unknown>;
22
- /**
23
- * Invoked when the stream ends
24
- */
25
- onEnd?(err?: Error): void;
26
- /**
27
- * Invoked when the readable end of the stream is closed
28
- */
29
- onCloseRead?(): void;
30
- /**
31
- * Invoked when the writable end of the stream is closed
32
- */
33
- onCloseWrite?(): void;
34
- /**
35
- * Invoked when the stream has been reset by the remote
36
- */
37
- onReset?(): void;
38
- /**
39
- * Invoked when the stream has errored
40
- */
41
- onAbort?(err: Error): void;
42
- /**
43
- * How long to wait in ms for stream data to be written to the underlying
44
- * connection when closing the writable end of the stream.
45
- *
46
- * @default 500
47
- */
48
- closeTimeout?: number;
49
- /**
50
- * After the stream sink has closed, a limit on how long it takes to send
51
- * a close-write message to the remote peer.
52
- */
53
- sendCloseWriteTimeout?: number;
12
+ protocol?: string;
54
13
  }
55
- export declare abstract class AbstractStream implements Stream {
14
+ export declare abstract class AbstractStream extends AbstractMessageStream implements Stream {
56
15
  id: string;
57
- direction: Direction;
58
- timeline: StreamTimeline;
59
- protocol?: string;
60
- metadata: Record<string, unknown>;
61
- source: AsyncGenerator<Uint8ArrayList, void, unknown>;
62
- status: StreamStatus;
63
- readStatus: ReadStatus;
64
- writeStatus: WriteStatus;
65
- readonly log: Logger;
66
- private readonly sinkController;
67
- private readonly sinkEnd;
68
- private readonly closed;
69
- private endErr;
70
- private readonly streamSource;
71
- private readonly onEnd?;
72
- private readonly onCloseRead?;
73
- private readonly onCloseWrite?;
74
- private readonly onReset?;
75
- private readonly onAbort?;
76
- private readonly sendCloseWriteTimeout;
77
- private sendingData?;
16
+ protocol: string;
78
17
  constructor(init: AbstractStreamInit);
79
- sink(source: Source<Uint8ArrayList | Uint8Array>): Promise<void>;
80
- protected onSourceEnd(err?: Error): void;
81
- protected onSinkEnd(err?: Error): void;
82
18
  close(options?: AbortOptions): Promise<void>;
83
19
  closeRead(options?: AbortOptions): Promise<void>;
84
- closeWrite(options?: AbortOptions): Promise<void>;
85
- /**
86
- * Close immediately for reading and writing and send a reset message (local
87
- * error)
88
- */
89
- abort(err: Error): void;
90
- /**
91
- * Receive a reset message - close immediately for reading and writing (remote
92
- * error)
93
- */
94
- reset(): void;
95
- _closeSinkAndSource(err?: Error): void;
96
- _closeSink(err?: Error): void;
97
- _closeSource(err?: Error): void;
98
- /**
99
- * The remote closed for writing so we should expect to receive no more
100
- * messages
101
- */
102
- remoteCloseWrite(): void;
103
- /**
104
- * The remote closed for reading so we should not send any more
105
- * messages
106
- */
107
- remoteCloseRead(): void;
108
- /**
109
- * The underlying muxer has closed, no more messages can be sent or will
110
- * be received, close immediately to free up resources
111
- */
112
- destroy(): void;
113
- /**
114
- * When an extending class reads data from it's implementation-specific source,
115
- * call this method to allow the stream consumer to read the data.
116
- */
117
- sourcePush(data: Uint8ArrayList): void;
118
- /**
119
- * Returns the amount of unread data - can be used to prevent large amounts of
120
- * data building up when the stream consumer is too slow.
121
- */
122
- sourceReadableLength(): number;
123
- /**
124
- * Send a message to the remote muxer informing them a new stream is being
125
- * opened
126
- */
127
- abstract sendNewStream(options?: AbortOptions): void | Promise<void>;
128
- /**
129
- * Send a data message to the remote muxer
130
- */
131
- abstract sendData(buf: Uint8ArrayList, options?: AbortOptions): void | Promise<void>;
132
- /**
133
- * Send a reset message to the remote muxer
134
- */
135
- abstract sendReset(options?: AbortOptions): void | Promise<void>;
136
20
  /**
137
- * Send a message to the remote muxer, informing them no more data messages
138
- * will be sent by this end of the stream
21
+ * Send a message to the remote end of the stream, informing them that we will
22
+ * send no more data messages.
139
23
  */
140
- abstract sendCloseWrite(options?: AbortOptions): void | Promise<void>;
24
+ abstract sendCloseWrite(options?: AbortOptions): Promise<void>;
141
25
  /**
142
- * Send a message to the remote muxer, informing them no more data messages
143
- * will be read by this end of the stream
26
+ * If supported, send a message to the remote end of the stream, informing
27
+ * them that we will read no more data messages.
144
28
  */
145
- abstract sendCloseRead(options?: AbortOptions): void | Promise<void>;
29
+ abstract sendCloseRead(options?: AbortOptions): Promise<void>;
146
30
  }
147
31
  //# sourceMappingURL=abstract-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-stream.d.ts","sourceRoot":"","sources":["../../src/abstract-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-stream.d.ts","sourceRoot":"","sources":["../../src/abstract-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE7D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,8BAAsB,cAAe,SAAQ,qBAAsB,YAAW,MAAM;IAC3E,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;gBAEV,IAAI,EAAE,kBAAkB;IAO/B,KAAK,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C7C,SAAS,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAC/D"}