@libp2p/peer-id 1.1.6 → 1.1.9

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.
@@ -1,9 +1,9 @@
1
1
  import { CID } from 'multiformats/cid';
2
2
  import { symbol } from '@libp2p/interfaces/peer-id';
3
- import type { MultibaseDecoder, MultibaseEncoder } from 'multiformats/bases/interface';
3
+ import type { MultibaseDecoder } from 'multiformats/bases/interface';
4
4
  import type { MultihashDigest } from 'multiformats/hashes/interface';
5
5
  import type { PeerId } from '@libp2p/interfaces/peer-id';
6
- interface PeerIdOptions {
6
+ interface PeerIdInit {
7
7
  type: 'RSA' | 'Ed25519' | 'secp256k1';
8
8
  multihash: MultihashDigest;
9
9
  privateKey?: Uint8Array;
@@ -13,19 +13,19 @@ declare class PeerIdImpl {
13
13
  readonly multihash: MultihashDigest;
14
14
  readonly privateKey?: Uint8Array;
15
15
  readonly publicKey?: Uint8Array;
16
- private readonly strings;
17
- constructor(opts: PeerIdOptions);
16
+ private string?;
17
+ constructor(init: PeerIdInit);
18
18
  get [Symbol.toStringTag](): string;
19
19
  get [symbol](): boolean;
20
- toString(codec?: MultibaseEncoder<any>): string;
20
+ toString(): string;
21
21
  toCID(): CID;
22
22
  toBytes(): Uint8Array;
23
23
  /**
24
24
  * Checks the equality of `this` peer against a given PeerId
25
25
  */
26
- equals(id: any): boolean;
26
+ equals(id: PeerId | Uint8Array | string): boolean;
27
27
  }
28
- export declare function createPeerId(opts: PeerIdOptions): PeerIdImpl;
28
+ export declare function createPeerId(init: PeerIdInit): PeerIdImpl;
29
29
  export declare function peerIdFromPeerId(other: any): PeerId;
30
30
  export declare function peerIdFromString(str: string, decoder?: MultibaseDecoder<any>): PeerId;
31
31
  export declare function peerIdFromBytes(buf: Uint8Array): PeerId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAQtC,OAAO,EAA6C,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAcxD,UAAU,aAAa;IACrB,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IACrC,SAAS,EAAE,eAAe,CAAA;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAkBD,cAAM,UAAU;IACP,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IAC5C,SAAgB,SAAS,EAAE,eAAe,CAAA;IAC1C,SAAgB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvC,SAAgB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEhC,IAAI,EAAE,aAAa;IAYhC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,IAAI,CAAC,MAAM,CAAC,YAEX;IAED,QAAQ,CAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC;IAoBvC,KAAK;IAIL,OAAO;IAIP;;OAEG;IACH,MAAM,CAAE,EAAE,EAAE,GAAG,GAAG,OAAO;CAS1B;AAmCD,wBAAgB,YAAY,CAAE,IAAI,EAAE,aAAa,cAEhD;AAED,wBAAgB,gBAAgB,CAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAgBpD;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,CAkBtF;AAED,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,UAoB/C;AAED,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAkB/C;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAQtC,OAAO,EAA6C,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAcxD,UAAU,UAAU;IAClB,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IACrC,SAAS,EAAE,eAAe,CAAA;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAkBD,cAAM,UAAU;IACP,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;IAC5C,SAAgB,SAAS,EAAE,eAAe,CAAA;IAC1C,SAAgB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvC,SAAgB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtC,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEV,IAAI,EAAE,UAAU;IAY7B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,IAAI,CAAC,MAAM,CAAC,YAEX;IAED,QAAQ;IAUR,KAAK;IAIL,OAAO;IAIP;;OAEG;IACH,MAAM,CAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO;CAWnD;AAmCD,wBAAgB,YAAY,CAAE,IAAI,EAAE,UAAU,cAE7C;AAED,wBAAgB,gBAAgB,CAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAgBpD;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,CAkBtF;AAED,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,UAoB/C;AAED,wBAAgB,aAAa,CAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAkB/C;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrG"}
package/dist/src/index.js CHANGED
@@ -17,14 +17,14 @@ const LIBP2P_KEY_CODE = 0x72;
17
17
  const MARSHALLED_ED225519_PUBLIC_KEY_LENGTH = 36;
18
18
  const MARSHALLED_SECP258K1_PUBLIC_KEY_LENGTH = 37;
19
19
  class PeerIdImpl {
20
- constructor(opts) {
21
- this.type = opts.type;
22
- this.multihash = opts.multihash;
23
- this.privateKey = opts.privateKey;
24
- // mark toString cache as non-enumerable
25
- this.strings = new Map();
26
- Object.defineProperty(this, 'strings', {
27
- enumerable: false
20
+ constructor(init) {
21
+ this.type = init.type;
22
+ this.multihash = init.multihash;
23
+ this.privateKey = init.privateKey;
24
+ // mark string cache as non-enumerable
25
+ Object.defineProperty(this, 'string', {
26
+ enumerable: false,
27
+ writable: true
28
28
  });
29
29
  }
30
30
  get [Symbol.toStringTag]() {
@@ -33,17 +33,11 @@ class PeerIdImpl {
33
33
  get [symbol]() {
34
34
  return true;
35
35
  }
36
- toString(codec) {
37
- if (codec == null) {
38
- codec = base58btc;
36
+ toString() {
37
+ if (this.string == null) {
38
+ this.string = base58btc.encode(this.multihash.bytes).slice(1);
39
39
  }
40
- const cached = this.strings.get(codec.name);
41
- if (cached != null) {
42
- return cached;
43
- }
44
- const encoded = codec.encode(this.multihash.bytes).slice(1);
45
- this.strings.set(codec.name, encoded);
46
- return encoded;
40
+ return this.string;
47
41
  }
48
42
  // return self-describing String representation
49
43
  // in default format from RFC 0001: https://github.com/libp2p/specs/pull/209
@@ -60,6 +54,9 @@ class PeerIdImpl {
60
54
  if (id instanceof Uint8Array) {
61
55
  return uint8ArrayEquals(this.multihash.bytes, id);
62
56
  }
57
+ else if (typeof id === 'string') {
58
+ return peerIdFromString(id).equals(this);
59
+ }
63
60
  else if (id?.multihash?.bytes != null) {
64
61
  return uint8ArrayEquals(this.multihash.bytes, id.multihash.bytes);
65
62
  }
@@ -69,28 +66,28 @@ class PeerIdImpl {
69
66
  }
70
67
  }
71
68
  class RSAPeerIdImpl extends PeerIdImpl {
72
- constructor(opts) {
73
- super({ ...opts, type: 'RSA' });
69
+ constructor(init) {
70
+ super({ ...init, type: 'RSA' });
74
71
  this.type = 'RSA';
75
- this.publicKey = opts.publicKey;
72
+ this.publicKey = init.publicKey;
76
73
  }
77
74
  }
78
75
  class Ed25519PeerIdImpl extends PeerIdImpl {
79
- constructor(opts) {
80
- super({ ...opts, type: 'Ed25519' });
76
+ constructor(init) {
77
+ super({ ...init, type: 'Ed25519' });
81
78
  this.type = 'Ed25519';
82
- this.publicKey = opts.multihash.digest;
79
+ this.publicKey = init.multihash.digest;
83
80
  }
84
81
  }
85
82
  class Secp256k1PeerIdImpl extends PeerIdImpl {
86
- constructor(opts) {
87
- super({ ...opts, type: 'secp256k1' });
83
+ constructor(init) {
84
+ super({ ...init, type: 'secp256k1' });
88
85
  this.type = 'secp256k1';
89
- this.publicKey = opts.multihash.digest;
86
+ this.publicKey = init.multihash.digest;
90
87
  }
91
88
  }
92
- export function createPeerId(opts) {
93
- return new PeerIdImpl(opts);
89
+ export function createPeerId(init) {
90
+ return new PeerIdImpl(init);
94
91
  }
95
92
  export function peerIdFromPeerId(other) {
96
93
  const err = errcode(new Error('Not a PeerId'), 'ERR_INVALID_PARAMETERS');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/peer-id",
3
- "version": "1.1.6",
3
+ "version": "1.1.9",
4
4
  "description": "IPFS Peer Id implementation in Node.js",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-peer-id#readme",
@@ -119,25 +119,26 @@
119
119
  ]
120
120
  },
121
121
  "scripts": {
122
+ "clean": "aegir clean",
122
123
  "lint": "aegir lint",
123
- "dep-check": "aegir dep-check dist/src/**/*.js dist/test/**/*.js",
124
- "build": "tsc",
125
- "pretest": "npm run build",
126
- "test": "aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js",
127
- "test:chrome": "npm run test -- -t browser",
128
- "test:chrome-webworker": "npm run test -- -t webworker",
129
- "test:firefox": "npm run test -- -t browser -- --browser firefox",
130
- "test:firefox-webworker": "npm run test -- -t webworker -- --browser firefox",
131
- "test:node": "npm run test -- -t node --cov",
132
- "test:electron-main": "npm run test -- -t electron-main"
124
+ "dep-check": "aegir dep-check",
125
+ "build": "aegir build",
126
+ "test": "aegir test",
127
+ "test:chrome": "aegir test -t browser --cov",
128
+ "test:chrome-webworker": "aegir test -t webworker",
129
+ "test:firefox": "aegir test -t browser -- --browser firefox",
130
+ "test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
131
+ "test:node": "aegir test -t node --cov",
132
+ "test:electron-main": "aegir test -t electron-main",
133
+ "release": "aegir release"
133
134
  },
134
135
  "dependencies": {
135
- "@libp2p/interfaces": "^1.3.6",
136
+ "@libp2p/interfaces": "^1.3.0",
136
137
  "err-code": "^3.0.1",
137
138
  "multiformats": "^9.6.3",
138
139
  "uint8arrays": "^3.0.0"
139
140
  },
140
141
  "devDependencies": {
141
- "aegir": "^36.1.3"
142
+ "aegir": "^37.0.7"
142
143
  }
143
144
  }
package/src/index.ts CHANGED
@@ -7,7 +7,7 @@ import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
7
7
  import { sha256 } from 'multiformats/hashes/sha2'
8
8
  import errcode from 'err-code'
9
9
  import { Ed25519PeerId, RSAPeerId, Secp256k1PeerId, symbol } from '@libp2p/interfaces/peer-id'
10
- import type { MultibaseDecoder, MultibaseEncoder } from 'multiformats/bases/interface'
10
+ import type { MultibaseDecoder } from 'multiformats/bases/interface'
11
11
  import type { MultihashDigest } from 'multiformats/hashes/interface'
12
12
  import type { PeerId } from '@libp2p/interfaces/peer-id'
13
13
 
@@ -23,24 +23,24 @@ const LIBP2P_KEY_CODE = 0x72
23
23
  const MARSHALLED_ED225519_PUBLIC_KEY_LENGTH = 36
24
24
  const MARSHALLED_SECP258K1_PUBLIC_KEY_LENGTH = 37
25
25
 
26
- interface PeerIdOptions {
26
+ interface PeerIdInit {
27
27
  type: 'RSA' | 'Ed25519' | 'secp256k1'
28
28
  multihash: MultihashDigest
29
29
  privateKey?: Uint8Array
30
30
  }
31
31
 
32
- interface RSAPeerIdOptions {
32
+ interface RSAPeerIdInit {
33
33
  multihash: MultihashDigest
34
34
  privateKey?: Uint8Array
35
35
  publicKey?: Uint8Array
36
36
  }
37
37
 
38
- interface Ed25519PeerIdOptions {
38
+ interface Ed25519PeerIdInit {
39
39
  multihash: MultihashDigest
40
40
  privateKey?: Uint8Array
41
41
  }
42
42
 
43
- interface Secp256k1PeerIdOptions {
43
+ interface Secp256k1PeerIdInit {
44
44
  multihash: MultihashDigest
45
45
  privateKey?: Uint8Array
46
46
  }
@@ -50,17 +50,17 @@ class PeerIdImpl {
50
50
  public readonly multihash: MultihashDigest
51
51
  public readonly privateKey?: Uint8Array
52
52
  public readonly publicKey?: Uint8Array
53
- private readonly strings: Map<string, string>
53
+ private string?: string
54
54
 
55
- constructor (opts: PeerIdOptions) {
56
- this.type = opts.type
57
- this.multihash = opts.multihash
58
- this.privateKey = opts.privateKey
55
+ constructor (init: PeerIdInit) {
56
+ this.type = init.type
57
+ this.multihash = init.multihash
58
+ this.privateKey = init.privateKey
59
59
 
60
- // mark toString cache as non-enumerable
61
- this.strings = new Map()
62
- Object.defineProperty(this, 'strings', {
63
- enumerable: false
60
+ // mark string cache as non-enumerable
61
+ Object.defineProperty(this, 'string', {
62
+ enumerable: false,
63
+ writable: true
64
64
  })
65
65
  }
66
66
 
@@ -72,22 +72,12 @@ class PeerIdImpl {
72
72
  return true
73
73
  }
74
74
 
75
- toString (codec?: MultibaseEncoder<any>) {
76
- if (codec == null) {
77
- codec = base58btc
75
+ toString () {
76
+ if (this.string == null) {
77
+ this.string = base58btc.encode(this.multihash.bytes).slice(1)
78
78
  }
79
79
 
80
- const cached = this.strings.get(codec.name)
81
-
82
- if (cached != null) {
83
- return cached
84
- }
85
-
86
- const encoded = codec.encode(this.multihash.bytes).slice(1)
87
-
88
- this.strings.set(codec.name, encoded)
89
-
90
- return encoded
80
+ return this.string
91
81
  }
92
82
 
93
83
  // return self-describing String representation
@@ -103,9 +93,11 @@ class PeerIdImpl {
103
93
  /**
104
94
  * Checks the equality of `this` peer against a given PeerId
105
95
  */
106
- equals (id: any): boolean {
96
+ equals (id: PeerId | Uint8Array | string): boolean {
107
97
  if (id instanceof Uint8Array) {
108
98
  return uint8ArrayEquals(this.multihash.bytes, id)
99
+ } else if (typeof id === 'string') {
100
+ return peerIdFromString(id).equals(this as PeerId)
109
101
  } else if (id?.multihash?.bytes != null) {
110
102
  return uint8ArrayEquals(this.multihash.bytes, id.multihash.bytes)
111
103
  } else {
@@ -118,10 +110,10 @@ class RSAPeerIdImpl extends PeerIdImpl implements RSAPeerId {
118
110
  public readonly type = 'RSA'
119
111
  public readonly publicKey?: Uint8Array
120
112
 
121
- constructor (opts: RSAPeerIdOptions) {
122
- super({ ...opts, type: 'RSA' })
113
+ constructor (init: RSAPeerIdInit) {
114
+ super({ ...init, type: 'RSA' })
123
115
 
124
- this.publicKey = opts.publicKey
116
+ this.publicKey = init.publicKey
125
117
  }
126
118
  }
127
119
 
@@ -129,10 +121,10 @@ class Ed25519PeerIdImpl extends PeerIdImpl implements Ed25519PeerId {
129
121
  public readonly type = 'Ed25519'
130
122
  public readonly publicKey: Uint8Array
131
123
 
132
- constructor (opts: Ed25519PeerIdOptions) {
133
- super({ ...opts, type: 'Ed25519' })
124
+ constructor (init: Ed25519PeerIdInit) {
125
+ super({ ...init, type: 'Ed25519' })
134
126
 
135
- this.publicKey = opts.multihash.digest
127
+ this.publicKey = init.multihash.digest
136
128
  }
137
129
  }
138
130
 
@@ -140,15 +132,15 @@ class Secp256k1PeerIdImpl extends PeerIdImpl implements Secp256k1PeerId {
140
132
  public readonly type = 'secp256k1'
141
133
  public readonly publicKey: Uint8Array
142
134
 
143
- constructor (opts: Secp256k1PeerIdOptions) {
144
- super({ ...opts, type: 'secp256k1' })
135
+ constructor (init: Secp256k1PeerIdInit) {
136
+ super({ ...init, type: 'secp256k1' })
145
137
 
146
- this.publicKey = opts.multihash.digest
138
+ this.publicKey = init.multihash.digest
147
139
  }
148
140
  }
149
141
 
150
- export function createPeerId (opts: PeerIdOptions) {
151
- return new PeerIdImpl(opts)
142
+ export function createPeerId (init: PeerIdInit) {
143
+ return new PeerIdImpl(init)
152
144
  }
153
145
 
154
146
  export function peerIdFromPeerId (other: any): PeerId {