@libp2p/interface 0.1.6 → 1.0.0-06e6d235f
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/README.md +1 -1
- package/dist/index.min.js +1 -1
- package/dist/src/connection/index.d.ts +15 -3
- package/dist/src/connection/index.d.ts.map +1 -1
- package/dist/src/connection/index.js +2 -2
- package/dist/src/connection/index.js.map +1 -1
- package/dist/src/connection-encrypter/index.d.ts +7 -5
- package/dist/src/connection-encrypter/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.d.ts +3 -3
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +3 -3
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/errors.d.ts +4 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +5 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/events.d.ts +0 -1
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +0 -2
- package/dist/src/events.js.map +1 -1
- package/dist/src/index.d.ts +34 -14
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +21 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/keys/index.d.ts +5 -4
- package/dist/src/keys/index.d.ts.map +1 -1
- package/dist/src/keys/index.js.map +1 -1
- package/dist/src/peer-discovery/index.d.ts +1 -1
- package/dist/src/peer-discovery/index.d.ts.map +1 -1
- package/dist/src/peer-discovery/index.js +1 -1
- package/dist/src/peer-discovery/index.js.map +1 -1
- package/dist/src/peer-id/index.d.ts +1 -1
- package/dist/src/peer-id/index.d.ts.map +1 -1
- package/dist/src/peer-id/index.js +2 -2
- package/dist/src/peer-id/index.js.map +1 -1
- package/dist/src/peer-info/index.d.ts +12 -1
- package/dist/src/peer-info/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.d.ts +1 -1
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +1 -1
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/startable.d.ts +0 -1
- package/dist/src/startable.d.ts.map +1 -1
- package/dist/src/startable.js.map +1 -1
- package/dist/src/stream-muxer/index.d.ts +2 -2
- package/dist/src/stream-muxer/index.d.ts.map +1 -1
- package/dist/src/topology/index.d.ts +0 -2
- package/dist/src/topology/index.d.ts.map +1 -1
- package/dist/src/transport/index.d.ts +2 -2
- package/dist/src/transport/index.d.ts.map +1 -1
- package/dist/src/transport/index.js +2 -2
- package/dist/src/transport/index.js.map +1 -1
- package/package.json +15 -119
- package/src/connection/index.ts +19 -4
- package/src/connection-encrypter/index.ts +7 -5
- package/src/content-routing/index.ts +3 -3
- package/src/errors.ts +7 -0
- package/src/events.ts +0 -3
- package/src/index.ts +37 -15
- package/src/keys/index.ts +6 -4
- package/src/peer-discovery/index.ts +1 -1
- package/src/peer-id/index.ts +2 -2
- package/src/peer-info/index.ts +13 -1
- package/src/peer-routing/index.ts +1 -1
- package/src/startable.ts +0 -2
- package/src/stream-muxer/index.ts +2 -2
- package/src/topology/index.ts +0 -3
- package/src/transport/index.ts +3 -3
- package/dist/src/keychain/index.d.ts +0 -154
- package/dist/src/keychain/index.d.ts.map +0 -1
- package/dist/src/keychain/index.js +0 -23
- package/dist/src/keychain/index.js.map +0 -1
- package/dist/src/metrics/tracked-map.d.ts +0 -17
- package/dist/src/metrics/tracked-map.d.ts.map +0 -1
- package/dist/src/metrics/tracked-map.js +0 -38
- package/dist/src/metrics/tracked-map.js.map +0 -1
- package/dist/src/stream-muxer/stream.d.ts +0 -150
- package/dist/src/stream-muxer/stream.d.ts.map +0 -1
- package/dist/src/stream-muxer/stream.js +0 -323
- package/dist/src/stream-muxer/stream.js.map +0 -1
- package/dist/typedoc-urls.json +0 -268
- package/src/keychain/index.ts +0 -167
- package/src/metrics/tracked-map.ts +0 -65
- package/src/stream-muxer/stream.ts +0 -496
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @packageDocumentation
|
|
3
|
-
*
|
|
4
|
-
* The libp2p keychain provides an API to store keys in a datastore in
|
|
5
|
-
* an encrypted format.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
*
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { createLibp2p } from 'libp2p'
|
|
11
|
-
* import { FsDatastore } from 'datastore-fs'
|
|
12
|
-
*
|
|
13
|
-
* const node = await createLibp2p({
|
|
14
|
-
* datastore: new FsDatastore('/path/to/dir')
|
|
15
|
-
* })
|
|
16
|
-
*
|
|
17
|
-
* const info = await node.keychain.createKey('my-new-key', 'Ed25519')
|
|
18
|
-
*
|
|
19
|
-
* console.info(info) // { id: '...', name: 'my-new-key' }
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
import type { KeyType } from '../keys/index.js';
|
|
23
|
-
import type { PeerId } from '../peer-id/index.js';
|
|
24
|
-
import type { Multibase } from 'multiformats/bases/interface';
|
|
25
|
-
export interface KeyInfo {
|
|
26
|
-
/**
|
|
27
|
-
* The universally unique key id
|
|
28
|
-
*/
|
|
29
|
-
id: string;
|
|
30
|
-
/**
|
|
31
|
-
* The local key name
|
|
32
|
-
*/
|
|
33
|
-
name: string;
|
|
34
|
-
}
|
|
35
|
-
export interface KeyChain {
|
|
36
|
-
/**
|
|
37
|
-
* Export an existing key as a PEM encrypted PKCS #8 string.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
*
|
|
41
|
-
* ```js
|
|
42
|
-
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
|
|
43
|
-
* const pemKey = await libp2p.keychain.exportKey('keyTest', 'password123')
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
exportKey(name: string, password: string): Promise<Multibase<'m'>>;
|
|
47
|
-
/**
|
|
48
|
-
* Import a new key from a PEM encoded PKCS #8 string.
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
*
|
|
52
|
-
* ```js
|
|
53
|
-
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
|
|
54
|
-
* const pemKey = await libp2p.keychain.exportKey('keyTest', 'password123')
|
|
55
|
-
* const keyInfo = await libp2p.keychain.importKey('keyTestImport', pemKey, 'password123')
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
importKey(name: string, pem: string, password: string): Promise<KeyInfo>;
|
|
59
|
-
/**
|
|
60
|
-
* Import a new key from a PeerId with a private key component
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
*
|
|
64
|
-
* ```js
|
|
65
|
-
* const keyInfo = await libp2p.keychain.importPeer('keyTestImport', peerIdFromString('12D3Foo...'))
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
importPeer(name: string, peerId: PeerId): Promise<KeyInfo>;
|
|
69
|
-
/**
|
|
70
|
-
* Export an existing key as a PeerId
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
*
|
|
74
|
-
* ```js
|
|
75
|
-
* const peerId = await libp2p.keychain.exportPeerId('key-name')
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
exportPeerId(name: string): Promise<PeerId>;
|
|
79
|
-
/**
|
|
80
|
-
* Create a key in the keychain.
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
*
|
|
84
|
-
* ```js
|
|
85
|
-
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
|
|
86
|
-
* ```
|
|
87
|
-
*/
|
|
88
|
-
createKey(name: string, type: KeyType, size?: number): Promise<KeyInfo>;
|
|
89
|
-
/**
|
|
90
|
-
* List all the keys.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
*
|
|
94
|
-
* ```js
|
|
95
|
-
* const keyInfos = await libp2p.keychain.listKeys()
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
listKeys(): Promise<KeyInfo[]>;
|
|
99
|
-
/**
|
|
100
|
-
* Removes a key from the keychain.
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
*
|
|
104
|
-
* ```js
|
|
105
|
-
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
|
|
106
|
-
* const keyInfo = await libp2p.keychain.removeKey('keyTest')
|
|
107
|
-
* ```
|
|
108
|
-
*/
|
|
109
|
-
removeKey(name: string): Promise<KeyInfo>;
|
|
110
|
-
/**
|
|
111
|
-
* Rename a key in the keychain.
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
*
|
|
115
|
-
* ```js
|
|
116
|
-
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
|
|
117
|
-
* const keyInfo = await libp2p.keychain.renameKey('keyTest', 'keyNewNtest')
|
|
118
|
-
* ```
|
|
119
|
-
*/
|
|
120
|
-
renameKey(oldName: string, newName: string): Promise<KeyInfo>;
|
|
121
|
-
/**
|
|
122
|
-
* Find a key by it's id.
|
|
123
|
-
*
|
|
124
|
-
* @example
|
|
125
|
-
*
|
|
126
|
-
* ```js
|
|
127
|
-
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
|
|
128
|
-
* const keyInfo2 = await libp2p.keychain.findKeyById(keyInfo.id)
|
|
129
|
-
* ```
|
|
130
|
-
*/
|
|
131
|
-
findKeyById(id: string): Promise<KeyInfo>;
|
|
132
|
-
/**
|
|
133
|
-
* Find a key by it's name.
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
*
|
|
137
|
-
* ```js
|
|
138
|
-
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
|
|
139
|
-
* const keyInfo2 = await libp2p.keychain.findKeyByName('keyTest')
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
findKeyByName(name: string): Promise<KeyInfo>;
|
|
143
|
-
/**
|
|
144
|
-
* Rotate keychain password and re-encrypt all associated keys
|
|
145
|
-
*
|
|
146
|
-
* @example
|
|
147
|
-
*
|
|
148
|
-
* ```js
|
|
149
|
-
* await libp2p.keychain.rotateKeychainPass('oldPassword', 'newPassword')
|
|
150
|
-
* ```
|
|
151
|
-
*/
|
|
152
|
-
rotateKeychainPass(oldPass: string, newPass: string): Promise<void>;
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keychain/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAElE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAExE;;;;;;;;OAQG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1D;;;;;;;;OAQG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE3C;;;;;;;;OAQG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEvE;;;;;;;;OAQG;IACH,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAE9B;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEzC;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7D;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEzC;;;;;;;;;OASG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7C;;;;;;;;OAQG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpE"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @packageDocumentation
|
|
3
|
-
*
|
|
4
|
-
* The libp2p keychain provides an API to store keys in a datastore in
|
|
5
|
-
* an encrypted format.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
*
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { createLibp2p } from 'libp2p'
|
|
11
|
-
* import { FsDatastore } from 'datastore-fs'
|
|
12
|
-
*
|
|
13
|
-
* const node = await createLibp2p({
|
|
14
|
-
* datastore: new FsDatastore('/path/to/dir')
|
|
15
|
-
* })
|
|
16
|
-
*
|
|
17
|
-
* const info = await node.keychain.createKey('my-new-key', 'Ed25519')
|
|
18
|
-
*
|
|
19
|
-
* console.info(info) // { id: '...', name: 'my-new-key' }
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keychain/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Metrics } from './index.js';
|
|
2
|
-
export interface TrackedMapInit {
|
|
3
|
-
name: string;
|
|
4
|
-
metrics: Metrics;
|
|
5
|
-
}
|
|
6
|
-
export interface CreateTrackedMapInit {
|
|
7
|
-
/**
|
|
8
|
-
* The metric name to use
|
|
9
|
-
*/
|
|
10
|
-
name: string;
|
|
11
|
-
/**
|
|
12
|
-
* A metrics implementation
|
|
13
|
-
*/
|
|
14
|
-
metrics?: Metrics;
|
|
15
|
-
}
|
|
16
|
-
export declare function trackedMap<K, V>(config: CreateTrackedMapInit): Map<K, V>;
|
|
17
|
-
//# sourceMappingURL=tracked-map.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracked-map.d.ts","sourceRoot":"","sources":["../../../src/metrics/tracked-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,OAAO,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAoCD,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,UAAU,CAAE,CAAC,EAAE,CAAC,EAAG,MAAM,EAAE,oBAAoB,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAW1E"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
class TrackedMap extends Map {
|
|
2
|
-
metric;
|
|
3
|
-
constructor(init) {
|
|
4
|
-
super();
|
|
5
|
-
const { name, metrics } = init;
|
|
6
|
-
this.metric = metrics.registerMetric(name);
|
|
7
|
-
this.updateComponentMetric();
|
|
8
|
-
}
|
|
9
|
-
set(key, value) {
|
|
10
|
-
super.set(key, value);
|
|
11
|
-
this.updateComponentMetric();
|
|
12
|
-
return this;
|
|
13
|
-
}
|
|
14
|
-
delete(key) {
|
|
15
|
-
const deleted = super.delete(key);
|
|
16
|
-
this.updateComponentMetric();
|
|
17
|
-
return deleted;
|
|
18
|
-
}
|
|
19
|
-
clear() {
|
|
20
|
-
super.clear();
|
|
21
|
-
this.updateComponentMetric();
|
|
22
|
-
}
|
|
23
|
-
updateComponentMetric() {
|
|
24
|
-
this.metric.update(this.size);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function trackedMap(config) {
|
|
28
|
-
const { name, metrics } = config;
|
|
29
|
-
let map;
|
|
30
|
-
if (metrics != null) {
|
|
31
|
-
map = new TrackedMap({ name, metrics });
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
map = new Map();
|
|
35
|
-
}
|
|
36
|
-
return map;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=tracked-map.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracked-map.js","sourceRoot":"","sources":["../../../src/metrics/tracked-map.ts"],"names":[],"mappings":"AAOA,MAAM,UAAiB,SAAQ,GAAS;IACrB,MAAM,CAAQ;IAE/B,YAAa,IAAoB;QAC/B,KAAK,EAAE,CAAA;QAEP,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAE9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC9B,CAAC;IAED,GAAG,CAAE,GAAM,EAAE,KAAQ;QACnB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrB,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAE,GAAM;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC5B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC9B,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;CACF;AAcD,MAAM,UAAU,UAAU,CAAS,MAA4B;IAC7D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAChC,IAAI,GAAc,CAAA;IAElB,IAAI,OAAO,IAAI,IAAI,EAAE;QACnB,GAAG,GAAG,IAAI,UAAU,CAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;KAC9C;SAAM;QACL,GAAG,GAAG,IAAI,GAAG,EAAQ,CAAA;KACtB;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { Uint8ArrayList } from 'uint8arraylist';
|
|
2
|
-
import type { Direction, ReadStatus, Stream, StreamStatus, StreamTimeline, WriteStatus } from '../connection/index.js';
|
|
3
|
-
import type { AbortOptions } from '../index.js';
|
|
4
|
-
import type { Source } from 'it-stream-types';
|
|
5
|
-
interface Logger {
|
|
6
|
-
(formatter: any, ...args: any[]): void;
|
|
7
|
-
error(formatter: any, ...args: any[]): void;
|
|
8
|
-
trace(formatter: any, ...args: any[]): void;
|
|
9
|
-
enabled: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface AbstractStreamInit {
|
|
12
|
-
/**
|
|
13
|
-
* A unique identifier for this stream
|
|
14
|
-
*/
|
|
15
|
-
id: string;
|
|
16
|
-
/**
|
|
17
|
-
* The stream direction
|
|
18
|
-
*/
|
|
19
|
-
direction: Direction;
|
|
20
|
-
/**
|
|
21
|
-
* A Logger implementation used to log stream-specific information
|
|
22
|
-
*/
|
|
23
|
-
log: Logger;
|
|
24
|
-
/**
|
|
25
|
-
* User specific stream metadata
|
|
26
|
-
*/
|
|
27
|
-
metadata?: Record<string, unknown>;
|
|
28
|
-
/**
|
|
29
|
-
* Invoked when the stream ends
|
|
30
|
-
*/
|
|
31
|
-
onEnd?(err?: Error | undefined): void;
|
|
32
|
-
/**
|
|
33
|
-
* Invoked when the readable end of the stream is closed
|
|
34
|
-
*/
|
|
35
|
-
onCloseRead?(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Invoked when the writable end of the stream is closed
|
|
38
|
-
*/
|
|
39
|
-
onCloseWrite?(): void;
|
|
40
|
-
/**
|
|
41
|
-
* Invoked when the the stream has been reset by the remote
|
|
42
|
-
*/
|
|
43
|
-
onReset?(): void;
|
|
44
|
-
/**
|
|
45
|
-
* Invoked when the the stream has errored
|
|
46
|
-
*/
|
|
47
|
-
onAbort?(err: Error): void;
|
|
48
|
-
/**
|
|
49
|
-
* How long to wait in ms for stream data to be written to the underlying
|
|
50
|
-
* connection when closing the writable end of the stream. (default: 500)
|
|
51
|
-
*/
|
|
52
|
-
closeTimeout?: number;
|
|
53
|
-
/**
|
|
54
|
-
* After the stream sink has closed, a limit on how long it takes to send
|
|
55
|
-
* a close-write message to the remote peer.
|
|
56
|
-
*/
|
|
57
|
-
sendCloseWriteTimeout?: number;
|
|
58
|
-
}
|
|
59
|
-
export declare abstract class AbstractStream implements Stream {
|
|
60
|
-
id: string;
|
|
61
|
-
direction: Direction;
|
|
62
|
-
timeline: StreamTimeline;
|
|
63
|
-
protocol?: string;
|
|
64
|
-
metadata: Record<string, unknown>;
|
|
65
|
-
source: AsyncGenerator<Uint8ArrayList, void, unknown>;
|
|
66
|
-
status: StreamStatus;
|
|
67
|
-
readStatus: ReadStatus;
|
|
68
|
-
writeStatus: WriteStatus;
|
|
69
|
-
private readonly sinkController;
|
|
70
|
-
private readonly sinkEnd;
|
|
71
|
-
private endErr;
|
|
72
|
-
private readonly streamSource;
|
|
73
|
-
private readonly onEnd?;
|
|
74
|
-
private readonly onCloseRead?;
|
|
75
|
-
private readonly onCloseWrite?;
|
|
76
|
-
private readonly onReset?;
|
|
77
|
-
private readonly onAbort?;
|
|
78
|
-
private readonly sendCloseWriteTimeout;
|
|
79
|
-
protected readonly log: Logger;
|
|
80
|
-
constructor(init: AbstractStreamInit);
|
|
81
|
-
sink(source: Source<Uint8ArrayList | Uint8Array>): Promise<void>;
|
|
82
|
-
protected onSourceEnd(err?: Error): void;
|
|
83
|
-
protected onSinkEnd(err?: Error): void;
|
|
84
|
-
close(options?: AbortOptions): Promise<void>;
|
|
85
|
-
closeRead(options?: AbortOptions): Promise<void>;
|
|
86
|
-
closeWrite(options?: AbortOptions): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
* Close immediately for reading and writing and send a reset message (local
|
|
89
|
-
* error)
|
|
90
|
-
*/
|
|
91
|
-
abort(err: Error): void;
|
|
92
|
-
/**
|
|
93
|
-
* Receive a reset message - close immediately for reading and writing (remote
|
|
94
|
-
* error)
|
|
95
|
-
*/
|
|
96
|
-
reset(): void;
|
|
97
|
-
_closeSinkAndSource(err?: Error): void;
|
|
98
|
-
_closeSink(err?: Error): void;
|
|
99
|
-
_closeSource(err?: Error): void;
|
|
100
|
-
/**
|
|
101
|
-
* The remote closed for writing so we should expect to receive no more
|
|
102
|
-
* messages
|
|
103
|
-
*/
|
|
104
|
-
remoteCloseWrite(): void;
|
|
105
|
-
/**
|
|
106
|
-
* The remote closed for reading so we should not send any more
|
|
107
|
-
* messages
|
|
108
|
-
*/
|
|
109
|
-
remoteCloseRead(): void;
|
|
110
|
-
/**
|
|
111
|
-
* The underlying muxer has closed, no more messages can be sent or will
|
|
112
|
-
* be received, close immediately to free up resources
|
|
113
|
-
*/
|
|
114
|
-
destroy(): void;
|
|
115
|
-
/**
|
|
116
|
-
* When an extending class reads data from it's implementation-specific source,
|
|
117
|
-
* call this method to allow the stream consumer to read the data.
|
|
118
|
-
*/
|
|
119
|
-
sourcePush(data: Uint8ArrayList): void;
|
|
120
|
-
/**
|
|
121
|
-
* Returns the amount of unread data - can be used to prevent large amounts of
|
|
122
|
-
* data building up when the stream consumer is too slow.
|
|
123
|
-
*/
|
|
124
|
-
sourceReadableLength(): number;
|
|
125
|
-
/**
|
|
126
|
-
* Send a message to the remote muxer informing them a new stream is being
|
|
127
|
-
* opened
|
|
128
|
-
*/
|
|
129
|
-
abstract sendNewStream(options?: AbortOptions): void | Promise<void>;
|
|
130
|
-
/**
|
|
131
|
-
* Send a data message to the remote muxer
|
|
132
|
-
*/
|
|
133
|
-
abstract sendData(buf: Uint8ArrayList, options?: AbortOptions): void | Promise<void>;
|
|
134
|
-
/**
|
|
135
|
-
* Send a reset message to the remote muxer
|
|
136
|
-
*/
|
|
137
|
-
abstract sendReset(options?: AbortOptions): void | Promise<void>;
|
|
138
|
-
/**
|
|
139
|
-
* Send a message to the remote muxer, informing them no more data messages
|
|
140
|
-
* will be sent by this end of the stream
|
|
141
|
-
*/
|
|
142
|
-
abstract sendCloseWrite(options?: AbortOptions): void | Promise<void>;
|
|
143
|
-
/**
|
|
144
|
-
* Send a message to the remote muxer, informing them no more data messages
|
|
145
|
-
* will be read by this end of the stream
|
|
146
|
-
*/
|
|
147
|
-
abstract sendCloseRead(options?: AbortOptions): void | Promise<void>;
|
|
148
|
-
}
|
|
149
|
-
export {};
|
|
150
|
-
//# sourceMappingURL=stream.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/stream-muxer/stream.ts"],"names":[],"mappings":"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"}
|