@libp2p/dcutr 3.0.13 → 3.0.14

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.
@@ -14,7 +14,17 @@ export declare namespace HolePunch {
14
14
  const codec: () => Codec<Type>;
15
15
  }
16
16
  const codec: () => Codec<HolePunch>;
17
- const encode: (obj: Partial<HolePunch>) => Uint8Array;
18
- const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<HolePunch>) => HolePunch;
17
+ interface HolePunchTypeFieldEvent {
18
+ field: '$.type';
19
+ value: HolePunch.Type;
20
+ }
21
+ interface HolePunchObservedAddressesFieldEvent {
22
+ field: '$.observedAddresses[]';
23
+ index: number;
24
+ value: Uint8Array;
25
+ }
26
+ function encode(obj: Partial<HolePunch>): Uint8Array;
27
+ function decode(buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<HolePunch>): HolePunch;
28
+ function stream(buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<HolePunch>): Generator<HolePunchTypeFieldEvent | HolePunchObservedAddressesFieldEvent>;
19
29
  }
20
30
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/pb/message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAA;IACrB,iBAAiB,EAAE,UAAU,EAAE,CAAA;CAChC;AAED,yBAAiB,SAAS,CAAC;IACzB,KAAY,IAAI;QACd,MAAM,WAAW;QACjB,OAAO,YAAY;QACnB,IAAI,SAAS;KACd;IAQD,UAAiB,IAAI,CAAC;QACb,MAAM,KAAK,QAAO,KAAK,CAAC,IAAI,CAElC,CAAA;KACF;IAIM,MAAM,KAAK,QAAO,KAAK,CAAC,SAAS,CAyDvC,CAAA;IAEM,MAAM,MAAM,GAAI,KAAK,OAAO,CAAC,SAAS,CAAC,KAAG,UAEhD,CAAA;IAEM,MAAM,MAAM,GAAI,KAAK,UAAU,GAAG,cAAc,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC,KAAG,SAE1F,CAAA;CACF"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/pb/message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAA;IACrB,iBAAiB,EAAE,UAAU,EAAE,CAAA;CAChC;AAED,yBAAiB,SAAS,CAAC;IACzB,KAAY,IAAI;QACd,MAAM,WAAW;QACjB,OAAO,YAAY;QACnB,IAAI,SAAS;KACd;IAQD,UAAiB,IAAI,CAAC;QACb,MAAM,KAAK,QAAO,KAAK,CAAC,IAAI,CAElC,CAAA;KACF;IAIM,MAAM,KAAK,QAAO,KAAK,CAAC,SAAS,CAgGvC,CAAA;IAED,UAAiB,uBAAuB;QACtC,KAAK,EAAE,QAAQ,CAAA;QACf,KAAK,EAAE,SAAS,CAAC,IAAI,CAAA;KACtB;IAED,UAAiB,oCAAoC;QACnD,KAAK,EAAE,uBAAuB,CAAA;QAC9B,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,UAAU,CAAA;KAClB;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,UAAU,CAE3D;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAEpG;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,uBAAuB,GAAG,oCAAoC,CAAC,CAEpK;CACF"}
@@ -1,4 +1,4 @@
1
- import { decodeMessage, encodeMessage, enumeration, MaxLengthError, message } from 'protons-runtime';
1
+ import { decodeMessage, encodeMessage, enumeration, MaxLengthError, message, streamMessage } from 'protons-runtime';
2
2
  export var HolePunch;
3
3
  (function (HolePunch) {
4
4
  let Type;
@@ -29,7 +29,7 @@ export var HolePunch;
29
29
  w.uint32(8);
30
30
  HolePunch.Type.codec().encode(obj.type, w);
31
31
  }
32
- if (obj.observedAddresses != null) {
32
+ if (obj.observedAddresses != null && obj.observedAddresses.length > 0) {
33
33
  for (const value of obj.observedAddresses) {
34
34
  w.uint32(18);
35
35
  w.bytes(value);
@@ -52,7 +52,7 @@ export var HolePunch;
52
52
  }
53
53
  case 2: {
54
54
  if (opts.limits?.observedAddresses != null && obj.observedAddresses.length === opts.limits.observedAddresses) {
55
- throw new MaxLengthError('Decode error - map field "observedAddresses" had too many elements');
55
+ throw new MaxLengthError('Decode error - repeated field "observedAddresses" had too many elements');
56
56
  }
57
57
  obj.observedAddresses.push(reader.bytes());
58
58
  break;
@@ -64,15 +64,54 @@ export var HolePunch;
64
64
  }
65
65
  }
66
66
  return obj;
67
+ }, function* (reader, length, prefix, opts = {}) {
68
+ const obj = {
69
+ observedAddresses: 0
70
+ };
71
+ const end = length == null ? reader.len : reader.pos + length;
72
+ while (reader.pos < end) {
73
+ const tag = reader.uint32();
74
+ switch (tag >>> 3) {
75
+ case 1: {
76
+ yield {
77
+ field: `${prefix}.type`,
78
+ value: HolePunch.Type.codec().decode(reader)
79
+ };
80
+ break;
81
+ }
82
+ case 2: {
83
+ if (opts.limits?.observedAddresses != null && obj.observedAddresses === opts.limits.observedAddresses) {
84
+ throw new MaxLengthError('Streaming decode error - repeated field "observedAddresses" had too many elements');
85
+ }
86
+ yield {
87
+ field: `${prefix}.observedAddresses[]`,
88
+ index: obj.observedAddresses,
89
+ value: reader.bytes()
90
+ };
91
+ obj.observedAddresses++;
92
+ break;
93
+ }
94
+ default: {
95
+ reader.skipType(tag & 7);
96
+ break;
97
+ }
98
+ }
99
+ }
67
100
  });
68
101
  }
69
102
  return _codec;
70
103
  };
71
- HolePunch.encode = (obj) => {
104
+ function encode(obj) {
72
105
  return encodeMessage(obj, HolePunch.codec());
73
- };
74
- HolePunch.decode = (buf, opts) => {
106
+ }
107
+ HolePunch.encode = encode;
108
+ function decode(buf, opts) {
75
109
  return decodeMessage(buf, HolePunch.codec(), opts);
76
- };
110
+ }
111
+ HolePunch.decode = decode;
112
+ function stream(buf, opts) {
113
+ return streamMessage(buf, HolePunch.codec(), opts);
114
+ }
115
+ HolePunch.stream = stream;
77
116
  })(HolePunch || (HolePunch = {}));
78
117
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/pb/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/pb/message.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/dcutr",
3
- "version": "3.0.13",
3
+ "version": "3.0.14",
4
4
  "description": "Implementation of the DCUtR Protocol",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-dcutr#readme",
@@ -45,18 +45,18 @@
45
45
  "doc-check": "aegir doc-check"
46
46
  },
47
47
  "dependencies": {
48
- "@libp2p/interface": "^3.1.0",
49
- "@libp2p/interface-internal": "^3.0.13",
50
- "@libp2p/utils": "^7.0.13",
48
+ "@libp2p/interface": "^3.1.1",
49
+ "@libp2p/interface-internal": "^3.0.14",
50
+ "@libp2p/utils": "^7.0.14",
51
51
  "@multiformats/multiaddr": "^13.0.1",
52
52
  "@multiformats/multiaddr-matcher": "^3.0.1",
53
53
  "delay": "^7.0.0",
54
- "protons-runtime": "^5.6.0",
54
+ "protons-runtime": "^6.0.1",
55
55
  "uint8arraylist": "^2.4.8"
56
56
  },
57
57
  "devDependencies": {
58
58
  "aegir": "^47.0.22",
59
- "protons": "^7.7.0",
59
+ "protons": "^8.1.1",
60
60
  "sinon": "^21.0.0",
61
61
  "sinon-ts": "^2.0.0"
62
62
  },
package/src/pb/message.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { decodeMessage, encodeMessage, enumeration, MaxLengthError, message } from 'protons-runtime'
1
+ import { decodeMessage, encodeMessage, enumeration, MaxLengthError, message, streamMessage } from 'protons-runtime'
2
2
  import type { Codec, DecodeOptions } from 'protons-runtime'
3
3
  import type { Uint8ArrayList } from 'uint8arraylist'
4
4
 
@@ -40,7 +40,7 @@ export namespace HolePunch {
40
40
  HolePunch.Type.codec().encode(obj.type, w)
41
41
  }
42
42
 
43
- if (obj.observedAddresses != null) {
43
+ if (obj.observedAddresses != null && obj.observedAddresses.length > 0) {
44
44
  for (const value of obj.observedAddresses) {
45
45
  w.uint32(18)
46
46
  w.bytes(value)
@@ -67,7 +67,7 @@ export namespace HolePunch {
67
67
  }
68
68
  case 2: {
69
69
  if (opts.limits?.observedAddresses != null && obj.observedAddresses.length === opts.limits.observedAddresses) {
70
- throw new MaxLengthError('Decode error - map field "observedAddresses" had too many elements')
70
+ throw new MaxLengthError('Decode error - repeated field "observedAddresses" had too many elements')
71
71
  }
72
72
 
73
73
  obj.observedAddresses.push(reader.bytes())
@@ -81,17 +81,71 @@ export namespace HolePunch {
81
81
  }
82
82
 
83
83
  return obj
84
+ }, function * (reader, length, prefix, opts = {}) {
85
+ const obj = {
86
+ observedAddresses: 0
87
+ }
88
+
89
+ const end = length == null ? reader.len : reader.pos + length
90
+
91
+ while (reader.pos < end) {
92
+ const tag = reader.uint32()
93
+
94
+ switch (tag >>> 3) {
95
+ case 1: {
96
+ yield {
97
+ field: `${prefix}.type`,
98
+ value: HolePunch.Type.codec().decode(reader)
99
+ }
100
+ break
101
+ }
102
+ case 2: {
103
+ if (opts.limits?.observedAddresses != null && obj.observedAddresses === opts.limits.observedAddresses) {
104
+ throw new MaxLengthError('Streaming decode error - repeated field "observedAddresses" had too many elements')
105
+ }
106
+
107
+ yield {
108
+ field: `${prefix}.observedAddresses[]`,
109
+ index: obj.observedAddresses,
110
+ value: reader.bytes()
111
+ }
112
+
113
+ obj.observedAddresses++
114
+
115
+ break
116
+ }
117
+ default: {
118
+ reader.skipType(tag & 7)
119
+ break
120
+ }
121
+ }
122
+ }
84
123
  })
85
124
  }
86
125
 
87
126
  return _codec
88
127
  }
89
128
 
90
- export const encode = (obj: Partial<HolePunch>): Uint8Array => {
129
+ export interface HolePunchTypeFieldEvent {
130
+ field: '$.type'
131
+ value: HolePunch.Type
132
+ }
133
+
134
+ export interface HolePunchObservedAddressesFieldEvent {
135
+ field: '$.observedAddresses[]'
136
+ index: number
137
+ value: Uint8Array
138
+ }
139
+
140
+ export function encode (obj: Partial<HolePunch>): Uint8Array {
91
141
  return encodeMessage(obj, HolePunch.codec())
92
142
  }
93
143
 
94
- export const decode = (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<HolePunch>): HolePunch => {
144
+ export function decode (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<HolePunch>): HolePunch {
95
145
  return decodeMessage(buf, HolePunch.codec(), opts)
96
146
  }
147
+
148
+ export function stream (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<HolePunch>): Generator<HolePunchTypeFieldEvent | HolePunchObservedAddressesFieldEvent> {
149
+ return streamMessage(buf, HolePunch.codec(), opts)
150
+ }
97
151
  }