@libp2p/interface 0.1.6 → 1.0.0

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 (85) hide show
  1. package/README.md +15 -1
  2. package/dist/index.min.js +1 -1
  3. package/dist/src/connection/index.d.ts +15 -3
  4. package/dist/src/connection/index.d.ts.map +1 -1
  5. package/dist/src/connection/index.js +2 -2
  6. package/dist/src/connection/index.js.map +1 -1
  7. package/dist/src/connection-encrypter/index.d.ts +7 -5
  8. package/dist/src/connection-encrypter/index.d.ts.map +1 -1
  9. package/dist/src/content-routing/index.d.ts +1 -1
  10. package/dist/src/content-routing/index.d.ts.map +1 -1
  11. package/dist/src/content-routing/index.js +1 -1
  12. package/dist/src/content-routing/index.js.map +1 -1
  13. package/dist/src/errors.d.ts +20 -5
  14. package/dist/src/errors.d.ts.map +1 -1
  15. package/dist/src/errors.js +20 -8
  16. package/dist/src/errors.js.map +1 -1
  17. package/dist/src/events.d.ts +0 -1
  18. package/dist/src/events.d.ts.map +1 -1
  19. package/dist/src/events.js +0 -2
  20. package/dist/src/events.js.map +1 -1
  21. package/dist/src/index.d.ts +34 -14
  22. package/dist/src/index.d.ts.map +1 -1
  23. package/dist/src/index.js +21 -1
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/keys/index.d.ts +5 -4
  26. package/dist/src/keys/index.d.ts.map +1 -1
  27. package/dist/src/keys/index.js.map +1 -1
  28. package/dist/src/peer-discovery/index.d.ts +1 -1
  29. package/dist/src/peer-discovery/index.d.ts.map +1 -1
  30. package/dist/src/peer-discovery/index.js +1 -1
  31. package/dist/src/peer-discovery/index.js.map +1 -1
  32. package/dist/src/peer-id/index.d.ts +1 -1
  33. package/dist/src/peer-id/index.d.ts.map +1 -1
  34. package/dist/src/peer-id/index.js +2 -2
  35. package/dist/src/peer-id/index.js.map +1 -1
  36. package/dist/src/peer-info/index.d.ts +12 -1
  37. package/dist/src/peer-info/index.d.ts.map +1 -1
  38. package/dist/src/peer-routing/index.d.ts +1 -1
  39. package/dist/src/peer-routing/index.d.ts.map +1 -1
  40. package/dist/src/peer-routing/index.js +1 -1
  41. package/dist/src/peer-routing/index.js.map +1 -1
  42. package/dist/src/startable.d.ts +8 -1
  43. package/dist/src/startable.d.ts.map +1 -1
  44. package/dist/src/startable.js +8 -0
  45. package/dist/src/startable.js.map +1 -1
  46. package/dist/src/stream-muxer/index.d.ts +2 -2
  47. package/dist/src/stream-muxer/index.d.ts.map +1 -1
  48. package/dist/src/stream-muxer/stream.d.ts +2 -149
  49. package/dist/src/stream-muxer/stream.d.ts.map +1 -1
  50. package/dist/src/stream-muxer/stream.js +8 -322
  51. package/dist/src/stream-muxer/stream.js.map +1 -1
  52. package/dist/src/topology/index.d.ts +0 -2
  53. package/dist/src/topology/index.d.ts.map +1 -1
  54. package/dist/src/transport/index.d.ts +2 -2
  55. package/dist/src/transport/index.d.ts.map +1 -1
  56. package/dist/src/transport/index.js +2 -2
  57. package/dist/src/transport/index.js.map +1 -1
  58. package/dist/typedoc-urls.json +263 -266
  59. package/package.json +15 -27
  60. package/src/connection/index.ts +19 -4
  61. package/src/connection-encrypter/index.ts +7 -5
  62. package/src/content-routing/index.ts +1 -1
  63. package/src/errors.ts +21 -8
  64. package/src/events.ts +0 -3
  65. package/src/index.ts +37 -15
  66. package/src/keys/index.ts +6 -4
  67. package/src/peer-discovery/index.ts +1 -1
  68. package/src/peer-id/index.ts +2 -2
  69. package/src/peer-info/index.ts +13 -1
  70. package/src/peer-routing/index.ts +1 -1
  71. package/src/startable.ts +8 -2
  72. package/src/stream-muxer/index.ts +2 -2
  73. package/src/stream-muxer/stream.ts +9 -494
  74. package/src/topology/index.ts +0 -3
  75. package/src/transport/index.ts +3 -3
  76. package/dist/src/keychain/index.d.ts +0 -154
  77. package/dist/src/keychain/index.d.ts.map +0 -1
  78. package/dist/src/keychain/index.js +0 -23
  79. package/dist/src/keychain/index.js.map +0 -1
  80. package/dist/src/metrics/tracked-map.d.ts +0 -17
  81. package/dist/src/metrics/tracked-map.d.ts.map +0 -1
  82. package/dist/src/metrics/tracked-map.js +0 -38
  83. package/dist/src/metrics/tracked-map.js.map +0 -1
  84. package/src/keychain/index.ts +0 -167
  85. package/src/metrics/tracked-map.ts +0 -65
@@ -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,167 +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
-
23
- import type { KeyType } from '../keys/index.js'
24
- import type { PeerId } from '../peer-id/index.js'
25
- import type { Multibase } from 'multiformats/bases/interface'
26
-
27
- export interface KeyInfo {
28
- /**
29
- * The universally unique key id
30
- */
31
- id: string
32
-
33
- /**
34
- * The local key name
35
- */
36
- name: string
37
- }
38
-
39
- export interface KeyChain {
40
- /**
41
- * Export an existing key as a PEM encrypted PKCS #8 string.
42
- *
43
- * @example
44
- *
45
- * ```js
46
- * await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
47
- * const pemKey = await libp2p.keychain.exportKey('keyTest', 'password123')
48
- * ```
49
- */
50
- exportKey(name: string, password: string): Promise<Multibase<'m'>>
51
-
52
- /**
53
- * Import a new key from a PEM encoded PKCS #8 string.
54
- *
55
- * @example
56
- *
57
- * ```js
58
- * await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
59
- * const pemKey = await libp2p.keychain.exportKey('keyTest', 'password123')
60
- * const keyInfo = await libp2p.keychain.importKey('keyTestImport', pemKey, 'password123')
61
- * ```
62
- */
63
- importKey(name: string, pem: string, password: string): Promise<KeyInfo>
64
-
65
- /**
66
- * Import a new key from a PeerId with a private key component
67
- *
68
- * @example
69
- *
70
- * ```js
71
- * const keyInfo = await libp2p.keychain.importPeer('keyTestImport', peerIdFromString('12D3Foo...'))
72
- * ```
73
- */
74
- importPeer(name: string, peerId: PeerId): Promise<KeyInfo>
75
-
76
- /**
77
- * Export an existing key as a PeerId
78
- *
79
- * @example
80
- *
81
- * ```js
82
- * const peerId = await libp2p.keychain.exportPeerId('key-name')
83
- * ```
84
- */
85
- exportPeerId(name: string): Promise<PeerId>
86
-
87
- /**
88
- * Create a key in the keychain.
89
- *
90
- * @example
91
- *
92
- * ```js
93
- * const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
94
- * ```
95
- */
96
- createKey(name: string, type: KeyType, size?: number): Promise<KeyInfo>
97
-
98
- /**
99
- * List all the keys.
100
- *
101
- * @example
102
- *
103
- * ```js
104
- * const keyInfos = await libp2p.keychain.listKeys()
105
- * ```
106
- */
107
- listKeys(): Promise<KeyInfo[]>
108
-
109
- /**
110
- * Removes a key from the keychain.
111
- *
112
- * @example
113
- *
114
- * ```js
115
- * await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
116
- * const keyInfo = await libp2p.keychain.removeKey('keyTest')
117
- * ```
118
- */
119
- removeKey(name: string): Promise<KeyInfo>
120
-
121
- /**
122
- * Rename a key in the keychain.
123
- *
124
- * @example
125
- *
126
- * ```js
127
- * await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
128
- * const keyInfo = await libp2p.keychain.renameKey('keyTest', 'keyNewNtest')
129
- * ```
130
- */
131
- renameKey(oldName: string, newName: string): Promise<KeyInfo>
132
-
133
- /**
134
- * Find a key by it's id.
135
- *
136
- * @example
137
- *
138
- * ```js
139
- * const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
140
- * const keyInfo2 = await libp2p.keychain.findKeyById(keyInfo.id)
141
- * ```
142
- */
143
- findKeyById(id: string): Promise<KeyInfo>
144
-
145
- /**
146
- * Find a key by it's name.
147
- *
148
- * @example
149
- *
150
- * ```js
151
- * const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
152
- * const keyInfo2 = await libp2p.keychain.findKeyByName('keyTest')
153
- * ```
154
- */
155
- findKeyByName(name: string): Promise<KeyInfo>
156
-
157
- /**
158
- * Rotate keychain password and re-encrypt all associated keys
159
- *
160
- * @example
161
- *
162
- * ```js
163
- * await libp2p.keychain.rotateKeychainPass('oldPassword', 'newPassword')
164
- * ```
165
- */
166
- rotateKeychainPass(oldPass: string, newPass: string): Promise<void>
167
- }
@@ -1,65 +0,0 @@
1
- import type { Metric, Metrics } from './index.js'
2
-
3
- export interface TrackedMapInit {
4
- name: string
5
- metrics: Metrics
6
- }
7
-
8
- class TrackedMap<K, V> extends Map<K, V> {
9
- private readonly metric: Metric
10
-
11
- constructor (init: TrackedMapInit) {
12
- super()
13
-
14
- const { name, metrics } = init
15
-
16
- this.metric = metrics.registerMetric(name)
17
- this.updateComponentMetric()
18
- }
19
-
20
- set (key: K, value: V): this {
21
- super.set(key, value)
22
- this.updateComponentMetric()
23
- return this
24
- }
25
-
26
- delete (key: K): boolean {
27
- const deleted = super.delete(key)
28
- this.updateComponentMetric()
29
- return deleted
30
- }
31
-
32
- clear (): void {
33
- super.clear()
34
- this.updateComponentMetric()
35
- }
36
-
37
- private updateComponentMetric (): void {
38
- this.metric.update(this.size)
39
- }
40
- }
41
-
42
- export interface CreateTrackedMapInit {
43
- /**
44
- * The metric name to use
45
- */
46
- name: string
47
-
48
- /**
49
- * A metrics implementation
50
- */
51
- metrics?: Metrics
52
- }
53
-
54
- export function trackedMap <K, V> (config: CreateTrackedMapInit): Map<K, V> {
55
- const { name, metrics } = config
56
- let map: Map<K, V>
57
-
58
- if (metrics != null) {
59
- map = new TrackedMap<K, V>({ name, metrics })
60
- } else {
61
- map = new Map<K, V>()
62
- }
63
-
64
- return map
65
- }