@helia/ipns 10.1.1 → 10.2.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 (63) hide show
  1. package/README.md +40 -0
  2. package/dist/index.min.js +5 -5
  3. package/dist/index.min.js.map +4 -4
  4. package/dist/src/errors.d.ts +11 -0
  5. package/dist/src/errors.d.ts.map +1 -1
  6. package/dist/src/errors.js +13 -0
  7. package/dist/src/errors.js.map +1 -1
  8. package/dist/src/index.d.ts +136 -7
  9. package/dist/src/index.d.ts.map +1 -1
  10. package/dist/src/index.js +41 -0
  11. package/dist/src/index.js.map +1 -1
  12. package/dist/src/ipns/publisher.d.ts +3 -3
  13. package/dist/src/ipns/publisher.d.ts.map +1 -1
  14. package/dist/src/ipns/publisher.js +17 -18
  15. package/dist/src/ipns/publisher.js.map +1 -1
  16. package/dist/src/ipns/republisher.d.ts +6 -1
  17. package/dist/src/ipns/republisher.d.ts.map +1 -1
  18. package/dist/src/ipns/republisher.js +157 -24
  19. package/dist/src/ipns/republisher.js.map +1 -1
  20. package/dist/src/ipns/resolver.d.ts +13 -1
  21. package/dist/src/ipns/resolver.d.ts.map +1 -1
  22. package/dist/src/ipns/resolver.js +40 -31
  23. package/dist/src/ipns/resolver.js.map +1 -1
  24. package/dist/src/ipns.d.ts +6 -3
  25. package/dist/src/ipns.d.ts.map +1 -1
  26. package/dist/src/ipns.js +12 -3
  27. package/dist/src/ipns.js.map +1 -1
  28. package/dist/src/local-store.d.ts +5 -0
  29. package/dist/src/local-store.d.ts.map +1 -1
  30. package/dist/src/local-store.js +68 -23
  31. package/dist/src/local-store.js.map +1 -1
  32. package/dist/src/pb/ipns.js +1 -1
  33. package/dist/src/pb/metadata.d.ts +14 -1
  34. package/dist/src/pb/metadata.d.ts.map +1 -1
  35. package/dist/src/pb/metadata.js +36 -3
  36. package/dist/src/pb/metadata.js.map +1 -1
  37. package/dist/src/routing/index.d.ts +13 -1
  38. package/dist/src/routing/index.d.ts.map +1 -1
  39. package/dist/src/routing/index.js +17 -0
  40. package/dist/src/routing/index.js.map +1 -1
  41. package/dist/src/utils.d.ts +5 -0
  42. package/dist/src/utils.d.ts.map +1 -1
  43. package/dist/src/utils.js +18 -0
  44. package/dist/src/utils.js.map +1 -1
  45. package/dist/src/validator.d.ts +6 -0
  46. package/dist/src/validator.d.ts.map +1 -1
  47. package/dist/src/validator.js +24 -14
  48. package/dist/src/validator.js.map +1 -1
  49. package/dist/typedoc-urls.json +23 -1
  50. package/package.json +3 -3
  51. package/src/errors.ts +18 -0
  52. package/src/index.ts +145 -7
  53. package/src/ipns/publisher.ts +22 -20
  54. package/src/ipns/republisher.ts +182 -26
  55. package/src/ipns/resolver.ts +54 -36
  56. package/src/ipns.ts +20 -6
  57. package/src/local-store.ts +77 -22
  58. package/src/pb/ipns.ts +1 -1
  59. package/src/pb/metadata.proto +10 -0
  60. package/src/pb/metadata.ts +45 -4
  61. package/src/routing/index.ts +30 -1
  62. package/src/utils.ts +19 -0
  63. package/src/validator.ts +30 -18
@@ -3,8 +3,54 @@ import { CustomProgressEvent } from 'progress-events';
3
3
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
4
4
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
5
5
  import { withArrayBuffer } from 'uint8arrays/with-array-buffer';
6
- import { IPNSPublishMetadata } from "./pb/metadata.js";
6
+ import { IPNSPublishMetadata, Upkeep } from "./pb/metadata.js";
7
7
  import { dhtRoutingKey, DHT_RECORD_PREFIX, ipnsMetadataKey } from "./utils.js";
8
+ /**
9
+ * Merge a (possibly partial) metadata update into any metadata already stored
10
+ * for the routing key, so fields that are not being changed are preserved.
11
+ *
12
+ * Throws if the existing metadata cannot be read (rather than silently
13
+ * overwriting it and dropping keyName/lifetime), or if the resulting policy
14
+ * needs a keyName it does not have.
15
+ */
16
+ async function mergeMetadata(datastore, routingKey, incoming, options) {
17
+ let metadata = incoming;
18
+ try {
19
+ // merge into any existing metadata so a partial update (e.g. republish
20
+ // setting only `upkeep`) preserves keyName/lifetime instead of wiping them
21
+ const existing = IPNSPublishMetadata.decode(await datastore.get(ipnsMetadataKey(routingKey), options));
22
+ metadata = { ...existing, ...incoming };
23
+ }
24
+ catch (err) {
25
+ if (err.name !== 'NotFoundError') {
26
+ // the stored metadata is unreadable, surface it rather than silently
27
+ // overwriting and dropping keyName/lifetime
28
+ throw err;
29
+ }
30
+ }
31
+ // the reissue upkeep policy re-signs the record, which needs the key, so
32
+ // refuse to persist that policy without a keyName
33
+ if (metadata.upkeep === Upkeep.reissue && (metadata.keyName == null || metadata.keyName === '')) {
34
+ throw new Error('a keyName is required to reissue a record');
35
+ }
36
+ return metadata;
37
+ }
38
+ /**
39
+ * Read the stored upkeep metadata for a routing key, if any. A record with no
40
+ * metadata is normal (imported, or unpublished), so that is not an error; only
41
+ * an actual decode/corruption failure is logged.
42
+ */
43
+ async function readMetadata(datastore, routingKey, log, options) {
44
+ try {
45
+ return IPNSPublishMetadata.decode(await datastore.get(ipnsMetadataKey(routingKey), options));
46
+ }
47
+ catch (err) {
48
+ if (err.name !== 'NotFoundError') {
49
+ log.error('error deserializing metadata for %b - %e', routingKey, err);
50
+ }
51
+ return undefined;
52
+ }
53
+ }
8
54
  /**
9
55
  * Read/write IPNS records to the datastore as DHT records.
10
56
  *
@@ -16,18 +62,20 @@ export function localStore(datastore, log) {
16
62
  async put(routingKey, marshalledRecord, options = {}) {
17
63
  try {
18
64
  const key = dhtRoutingKey(routingKey);
19
- // don't overwrite existing, identical records as this will affect the
20
- // TTL
21
- try {
22
- const existingBuf = await datastore.get(key);
23
- const existingRecord = Record.deserialize(existingBuf);
24
- if (uint8ArrayEquals(existingRecord.value, marshalledRecord)) {
25
- return;
65
+ if (options.overwrite !== true) {
66
+ // don't overwrite existing, identical records as this will affect the
67
+ // TTL
68
+ try {
69
+ const existingBuf = await datastore.get(key);
70
+ const existingRecord = Record.deserialize(existingBuf);
71
+ if (uint8ArrayEquals(existingRecord.value, marshalledRecord)) {
72
+ return;
73
+ }
26
74
  }
27
- }
28
- catch (err) {
29
- if (err.name !== 'NotFoundError') {
30
- throw err;
75
+ catch (err) {
76
+ if (err.name !== 'NotFoundError') {
77
+ throw err;
78
+ }
31
79
  }
32
80
  }
33
81
  // Marshal to libp2p record as the DHT does
@@ -36,8 +84,10 @@ export function localStore(datastore, log) {
36
84
  const batch = datastore.batch();
37
85
  batch.put(key, record.serialize());
38
86
  if (options.metadata != null) {
39
- // derive the datastore key for the IPNS metadata from the same routing key
40
- batch.put(ipnsMetadataKey(routingKey), IPNSPublishMetadata.encode(options.metadata));
87
+ // merge into any existing metadata (preserving keyName/lifetime on a
88
+ // partial update) and validate the result before writing it
89
+ const metadata = await mergeMetadata(datastore, routingKey, options.metadata, options);
90
+ batch.put(ipnsMetadataKey(routingKey), IPNSPublishMetadata.encode(metadata));
41
91
  }
42
92
  await batch.commit(options);
43
93
  }
@@ -74,6 +124,9 @@ export function localStore(datastore, log) {
74
124
  batch.delete(ipnsMetadataKey(routingKey));
75
125
  await batch.commit(options);
76
126
  },
127
+ async deleteMetadata(routingKey, options) {
128
+ await datastore.delete(ipnsMetadataKey(routingKey), options);
129
+ },
77
130
  async *list(options = {}) {
78
131
  try {
79
132
  options.onProgress?.(new CustomProgressEvent('ipns:routing:datastore:list'));
@@ -88,15 +141,7 @@ export function localStore(datastore, log) {
88
141
  const keyString = key.toString();
89
142
  const routingKeyBase32 = keyString.substring(DHT_RECORD_PREFIX.length);
90
143
  const routingKey = uint8ArrayFromString(routingKeyBase32, 'base32');
91
- const metadataKey = ipnsMetadataKey(routingKey);
92
- let metadata;
93
- try {
94
- const metadataBuf = await datastore.get(metadataKey, options);
95
- metadata = IPNSPublishMetadata.decode(metadataBuf);
96
- }
97
- catch (err) {
98
- log.error('Error deserializing metadata for %s - %e', routingKeyBase32, err);
99
- }
144
+ const metadata = await readMetadata(datastore, routingKey, log, options);
100
145
  yield {
101
146
  routingKey,
102
147
  metadata,
@@ -1 +1 @@
1
- {"version":3,"file":"local-store.js","sourceRoot":"","sources":["../../src/local-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-store.js","sourceRoot":"","sources":["../../src/local-store.ts"],"names":[],"mappings":"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"}
@@ -109,7 +109,7 @@ export var IPNSEntry;
109
109
  }
110
110
  }
111
111
  return obj;
112
- }, function* (reader, prefix, length, opts = {}) {
112
+ }, function* (reader, length, prefix, opts = {}) {
113
113
  const end = length == null ? reader.len : reader.pos + length;
114
114
  if (prefix !== '.') {
115
115
  yield {
@@ -1,8 +1,17 @@
1
1
  import type { Codec, DecodeOptions } from 'protons-runtime';
2
2
  import type { Uint8ArrayList } from 'uint8arraylist';
3
+ export declare enum Upkeep {
4
+ reissue = "reissue",
5
+ rebroadcast = "rebroadcast",
6
+ none = "none"
7
+ }
8
+ export declare namespace Upkeep {
9
+ const codec: () => Codec<Upkeep>;
10
+ }
3
11
  export interface IPNSPublishMetadata {
4
12
  keyName: string;
5
13
  lifetime: number;
14
+ upkeep: Upkeep;
6
15
  }
7
16
  export declare namespace IPNSPublishMetadata {
8
17
  const codec: () => Codec<IPNSPublishMetadata>;
@@ -14,8 +23,12 @@ export declare namespace IPNSPublishMetadata {
14
23
  field: '.lifetime';
15
24
  value: number;
16
25
  }
26
+ interface IPNSPublishMetadataUpkeepFieldEvent {
27
+ field: '.upkeep';
28
+ value: Upkeep;
29
+ }
17
30
  function encode(obj: Partial<IPNSPublishMetadata>): Uint8Array<ArrayBuffer>;
18
31
  function decode(buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<IPNSPublishMetadata>): IPNSPublishMetadata;
19
- function stream(buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<IPNSPublishMetadata>): Generator<IPNSPublishMetadataKeyNameFieldEvent | IPNSPublishMetadataLifetimeFieldEvent>;
32
+ function stream(buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<IPNSPublishMetadata>): Generator<IPNSPublishMetadataKeyNameFieldEvent | IPNSPublishMetadataLifetimeFieldEvent | IPNSPublishMetadataUpkeepFieldEvent>;
20
33
  }
21
34
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/pb/metadata.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,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,yBAAiB,mBAAmB,CAAC;IAG5B,MAAM,KAAK,QAAO,KAAK,CAAC,mBAAmB,CA+FjD,CAAA;IAED,UAAiB,oCAAoC;QACnD,KAAK,EAAE,UAAU,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd;IAED,UAAiB,qCAAqC;QACpD,KAAK,EAAE,WAAW,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAElF;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAExH;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,oCAAoC,GAAG,qCAAqC,CAAC,CAE5L;CACF"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/pb/metadata.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,oBAAY,MAAM;IAChB,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;CACd;AAQD,yBAAiB,MAAM,CAAC;IACf,MAAM,KAAK,QAAO,KAAK,CAAC,MAAM,CAEpC,CAAA;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,yBAAiB,mBAAmB,CAAC;IAG5B,MAAM,KAAK,QAAO,KAAK,CAAC,mBAAmB,CAgHjD,CAAA;IAED,UAAiB,oCAAoC;QACnD,KAAK,EAAE,UAAU,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd;IAED,UAAiB,qCAAqC;QACpD,KAAK,EAAE,WAAW,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd;IAED,UAAiB,mCAAmC;QAClD,KAAK,EAAE,SAAS,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAElF;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAExH;IAED,SAAgB,MAAM,CAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,oCAAoC,GAAG,qCAAqC,GAAG,mCAAmC,CAAC,CAElO;CACF"}
@@ -1,4 +1,21 @@
1
- import { decodeMessage, encodeMessage, message, streamMessage } from 'protons-runtime';
1
+ import { decodeMessage, encodeMessage, enumeration, message, streamMessage } from 'protons-runtime';
2
+ export var Upkeep;
3
+ (function (Upkeep) {
4
+ Upkeep["reissue"] = "reissue";
5
+ Upkeep["rebroadcast"] = "rebroadcast";
6
+ Upkeep["none"] = "none";
7
+ })(Upkeep || (Upkeep = {}));
8
+ var __UpkeepValues;
9
+ (function (__UpkeepValues) {
10
+ __UpkeepValues[__UpkeepValues["reissue"] = 0] = "reissue";
11
+ __UpkeepValues[__UpkeepValues["rebroadcast"] = 1] = "rebroadcast";
12
+ __UpkeepValues[__UpkeepValues["none"] = 2] = "none";
13
+ })(__UpkeepValues || (__UpkeepValues = {}));
14
+ (function (Upkeep) {
15
+ Upkeep.codec = () => {
16
+ return enumeration(__UpkeepValues);
17
+ };
18
+ })(Upkeep || (Upkeep = {}));
2
19
  export var IPNSPublishMetadata;
3
20
  (function (IPNSPublishMetadata) {
4
21
  let _codec;
@@ -16,13 +33,18 @@ export var IPNSPublishMetadata;
16
33
  w.uint32(16);
17
34
  w.uint32(obj.lifetime);
18
35
  }
36
+ if (obj.upkeep != null && __UpkeepValues[obj.upkeep] !== 0) {
37
+ w.uint32(24);
38
+ Upkeep.codec().encode(obj.upkeep, w);
39
+ }
19
40
  if (opts.lengthDelimited !== false) {
20
41
  w.ldelim();
21
42
  }
22
43
  }, (reader, length, opts = {}) => {
23
44
  const obj = {
24
45
  keyName: '',
25
- lifetime: 0
46
+ lifetime: 0,
47
+ upkeep: Upkeep.reissue
26
48
  };
27
49
  const end = length == null ? reader.len : reader.pos + length;
28
50
  while (reader.pos < end) {
@@ -36,6 +58,10 @@ export var IPNSPublishMetadata;
36
58
  obj.lifetime = reader.uint32();
37
59
  break;
38
60
  }
61
+ case 3: {
62
+ obj.upkeep = Upkeep.codec().decode(reader);
63
+ break;
64
+ }
39
65
  default: {
40
66
  reader.skipType(tag & 7);
41
67
  break;
@@ -43,7 +69,7 @@ export var IPNSPublishMetadata;
43
69
  }
44
70
  }
45
71
  return obj;
46
- }, function* (reader, prefix, length, opts = {}) {
72
+ }, function* (reader, length, prefix, opts = {}) {
47
73
  const end = length == null ? reader.len : reader.pos + length;
48
74
  if (prefix !== '.') {
49
75
  yield {
@@ -69,6 +95,13 @@ export var IPNSPublishMetadata;
69
95
  };
70
96
  break;
71
97
  }
98
+ case 3: {
99
+ yield {
100
+ field: `${prefix}upkeep`,
101
+ value: Upkeep.codec().decode(reader)
102
+ };
103
+ break;
104
+ }
72
105
  default: {
73
106
  reader.skipType(tag & 7);
74
107
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/pb/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/pb/metadata.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,13 @@ import type { IPNSPublishMetadata } from '../pb/metadata.ts';
5
5
  import type { AbortOptions } from '@libp2p/interface';
6
6
  import type { ProgressOptions } from 'progress-events';
7
7
  export interface IPNSRoutingPutOptions extends AbortOptions, ProgressOptions {
8
- metadata?: IPNSPublishMetadata;
8
+ metadata?: Partial<IPNSPublishMetadata>;
9
+ /**
10
+ * Overwrite an identical stored record instead of keeping the existing one,
11
+ * re-stamping its local timestamp. Passed on republish/rebroadcast so the
12
+ * record is not re-selected for republishing every cycle.
13
+ */
14
+ overwrite?: boolean;
9
15
  }
10
16
  export interface IPNSRoutingGetOptions extends AbortOptions, ProgressOptions {
11
17
  /**
@@ -19,6 +25,12 @@ export interface IPNSRouting {
19
25
  put(routingKey: Uint8Array, marshaledRecord: Uint8Array, options?: IPNSRoutingPutOptions): Promise<void>;
20
26
  get(routingKey: Uint8Array, options?: IPNSRoutingGetOptions): Promise<Uint8Array>;
21
27
  }
28
+ /**
29
+ * Return a printable name for a router, falling back to `CustomRouting()` when
30
+ * the router does not set its own `toString`.
31
+ */
32
+ export declare function routerName(router: IPNSRouting): string;
33
+ export declare function isLocalStoreRouting(router: IPNSRouting): boolean;
22
34
  export type { DatastoreProgressEvents };
23
35
  export type { HeliaRoutingProgressEvents };
24
36
  export type { PubSubProgressEvents };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,eAAe;IAC1E,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,eAAe;IAC1E;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxG,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAClF;AAED,YAAY,EAAE,uBAAuB,EAAE,CAAA;AACvC,YAAY,EAAE,0BAA0B,EAAE,CAAA;AAC1C,YAAY,EAAE,oBAAoB,EAAE,CAAA;AAEpC,MAAM,MAAM,yBAAyB,GACnC,uBAAuB,GACvB,0BAA0B,GAC1B,oBAAoB,CAAA;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EAAE,uBAAuB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,eAAe;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAEvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,eAAe;IAC1E;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxG,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAClF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAYvD;AAED,wBAAgB,mBAAmB,CAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,YAAY,EAAE,uBAAuB,EAAE,CAAA;AACvC,YAAY,EAAE,0BAA0B,EAAE,CAAA;AAC1C,YAAY,EAAE,oBAAoB,EAAE,CAAA;AAEpC,MAAM,MAAM,yBAAyB,GACnC,uBAAuB,GACvB,0BAA0B,GAC1B,oBAAoB,CAAA;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EAAE,uBAAuB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA"}
@@ -1,3 +1,20 @@
1
+ /**
2
+ * Return a printable name for a router, falling back to `CustomRouting()` when
3
+ * the router does not set its own `toString`.
4
+ */
5
+ export function routerName(router) {
6
+ if (router.toString === Object.prototype.toString) {
7
+ return 'CustomRouting()';
8
+ }
9
+ const name = router.toString();
10
+ if (typeof name !== 'string' || name === '') {
11
+ return 'CustomRouting()';
12
+ }
13
+ return name;
14
+ }
15
+ export function isLocalStoreRouting(router) {
16
+ return String(router) === 'LocalStoreRouting()';
17
+ }
1
18
  export { heliaIPNSRouting } from "./helia.js";
2
19
  export { pubSubIPNSRouting } from "./pubsub.js";
3
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":"AAgCA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAE,MAAmB;IAC7C,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAClD,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAE9B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,MAAmB;IACtD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAA;AACjD,CAAC;AAWD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA"}
@@ -52,5 +52,10 @@ export declare function normalizeKey(key?: PublicKey | CID | MultihashDigest | s
52
52
  digest: MultihashDigest;
53
53
  path: string;
54
54
  };
55
+ /**
56
+ * Normalize a key identifier for unpublish: CID/PublicKey/multihash become a
57
+ * MultihashDigest, a keychain key name stays a string.
58
+ */
59
+ export declare function normalizeKeyName(keyName: CID<unknown, 0x72> | PublicKey | MultihashDigest | string): MultihashDigest | string;
55
60
  export declare function validateCborDataMatchesPbData(entry: IPNSEntry, data: IPNSRecordData): void;
56
61
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAGzC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAStC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,eAAO,MAAM,gBAAgB,MAAO,CAAA;AACpC,eAAO,MAAM,cAAc,IAAM,CAAA;AACjC,eAAO,MAAM,cAAc,KAAO,CAAA;AAGlC,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,wBAAgB,OAAO,CAAE,CAAC,SAAS,MAAM,EAAG,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAE3G;AAED,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,oBAAoB,CAAA;AAErD,wBAAgB,aAAa,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAErD;AAED,wBAAgB,eAAe,CAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAerE;AAMD,wBAAgB,WAAW,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAcjF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAQjI;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAIpE;AAED,wBAAgB,uBAAuB,CAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAUlE;AAED,wBAAgB,yBAAyB,CAAE,MAAM,EAAE,eAAe,GAAG,UAAU,CAK9E;AAED,wBAAgB,2BAA2B,CAAE,GAAG,EAAE,UAAU,GAAG,eAAe,CAE7E;AAED,wBAAgB,oBAAoB,CAAE,IAAI,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,CAEpF;AAED,wBAAgB,oBAAoB,CAAE,GAAG,CAAC,EAAE,UAAU,GAAG,cAAc,CA2BtE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,KAAK,CAAC,EAAE,SAAS,GAAG,GAAG,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM,CAsC1F;AAMD,wBAAgB,YAAY,CAAE,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,GAAG,eAAe,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4DzH;AAED,wBAAgB,6BAA6B,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAoB3F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAGzC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAStC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,eAAO,MAAM,gBAAgB,MAAO,CAAA;AACpC,eAAO,MAAM,cAAc,IAAM,CAAA;AACjC,eAAO,MAAM,cAAc,KAAO,CAAA;AAGlC,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,wBAAgB,OAAO,CAAE,CAAC,SAAS,MAAM,EAAG,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAE3G;AAED,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,oBAAoB,CAAA;AAErD,wBAAgB,aAAa,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAErD;AAED,wBAAgB,eAAe,CAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAerE;AAMD,wBAAgB,WAAW,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAcjF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAQjI;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAIpE;AAED,wBAAgB,uBAAuB,CAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAUlE;AAED,wBAAgB,yBAAyB,CAAE,MAAM,EAAE,eAAe,GAAG,UAAU,CAK9E;AAED,wBAAgB,2BAA2B,CAAE,GAAG,EAAE,UAAU,GAAG,eAAe,CAE7E;AAED,wBAAgB,oBAAoB,CAAE,IAAI,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,CAEpF;AAED,wBAAgB,oBAAoB,CAAE,GAAG,CAAC,EAAE,UAAU,GAAG,cAAc,CA2BtE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,KAAK,CAAC,EAAE,SAAS,GAAG,GAAG,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM,CAsC1F;AAMD,wBAAgB,YAAY,CAAE,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,GAAG,eAAe,GAAG,MAAM,GAAG;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4DzH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,GAAG,eAAe,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAa9H;AAED,wBAAgB,6BAA6B,CAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAoB3F"}
package/dist/src/utils.js CHANGED
@@ -224,6 +224,24 @@ export function normalizeKey(key) {
224
224
  }
225
225
  throw new InvalidValueError('Value must be a valid IPNS path starting with /');
226
226
  }
227
+ /**
228
+ * Normalize a key identifier for unpublish: CID/PublicKey/multihash become a
229
+ * MultihashDigest, a keychain key name stays a string.
230
+ */
231
+ export function normalizeKeyName(keyName) {
232
+ // a CID/PublicKey/MultihashDigest is always an IPNS name, let it throw if invalid
233
+ if (typeof keyName !== 'string') {
234
+ return normalizeKey(keyName).digest;
235
+ }
236
+ try {
237
+ // a string may be an IPNS name...
238
+ return normalizeKey(keyName).digest;
239
+ }
240
+ catch {
241
+ // ...otherwise treat it as a keychain key name
242
+ return keyName;
243
+ }
244
+ }
227
245
  export function validateCborDataMatchesPbData(entry, data) {
228
246
  if (!uint8ArrayEquals(data.Value, entry.value ?? new Uint8Array(0))) {
229
247
  throw new SignatureVerificationError('Field "value" did not match between protobuf and CBOR');
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { IPNSEntry } from './pb/ipns.ts';
2
+ import type { PublicKey } from '@ipshipyard/crypto';
2
3
  import type { Keychain } from '@ipshipyard/keychain';
3
4
  import type { AbortOptions } from '@libp2p/interface';
4
5
  /**
@@ -13,6 +14,11 @@ import type { AbortOptions } from '@libp2p/interface';
13
14
  * format of the routing key
14
15
  */
15
16
  export declare function ipnsValidator(routingKey: Uint8Array, marshalledRecord: Uint8Array, keychain: Keychain, options?: AbortOptions): Promise<IPNSEntry>;
17
+ /**
18
+ * Extract the public key that signed an IPNS record, either from an
19
+ * identity-hashed routing key or from the key embedded in the record.
20
+ */
21
+ export declare function extractPublicKey(routingKey: Uint8Array, record: IPNSEntry, keychain: Keychain, options?: AbortOptions): Promise<PublicKey>;
16
22
  /**
17
23
  * Returns the number of milliseconds until the record expires.
18
24
  * If the record is already expired, returns 0.
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAOrD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAsEzJ;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAmBnD"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAOrD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAqDzJ;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAsBjJ;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAmBnD"}
@@ -1,4 +1,5 @@
1
1
  import NanoDate from 'timestamp-nano';
2
+ import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
2
3
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
3
4
  import { InvalidEmbeddedPublicKeyError, RecordExpiredError, RecordTooLargeError, SignatureVerificationError, UnsupportedValidityError } from "./errors.js";
4
5
  import { IPNSEntry } from "./pb/ipns.js";
@@ -31,20 +32,7 @@ export async function ipnsValidator(routingKey, marshalledRecord, keychain, opti
31
32
  }
32
33
  const data = decodeExtensibleData(record.data);
33
34
  const validity = uint8ArrayToString(data.Validity);
34
- let publicKey;
35
- // try to extract public key from routing key
36
- const routingMultihash = multihashFromIPNSRoutingKey(routingKey);
37
- // identity hash
38
- if (isCodec(routingMultihash, 0x0)) {
39
- publicKey = await keychain.loadPublicKeyFromProtobuf(routingMultihash.digest, options);
40
- }
41
- // otherwise try to load key from message
42
- if (publicKey == null && record.publicKey != null) {
43
- publicKey = await keychain.loadPublicKeyFromProtobuf(record.publicKey, options);
44
- }
45
- if (publicKey == null) {
46
- throw new InvalidEmbeddedPublicKeyError('Could not extract public key from IPNS record or routing key');
47
- }
35
+ const publicKey = await extractPublicKey(routingKey, record, keychain, options);
48
36
  // Validate Signature V2
49
37
  let isValid;
50
38
  try {
@@ -76,6 +64,28 @@ export async function ipnsValidator(routingKey, marshalledRecord, keychain, opti
76
64
  }
77
65
  return record;
78
66
  }
67
+ /**
68
+ * Extract the public key that signed an IPNS record, either from an
69
+ * identity-hashed routing key or from the key embedded in the record.
70
+ */
71
+ export async function extractPublicKey(routingKey, record, keychain, options) {
72
+ const routingMultihash = multihashFromIPNSRoutingKey(routingKey);
73
+ // identity hash, the routing key is the public key
74
+ if (isCodec(routingMultihash, 0x0)) {
75
+ return keychain.loadPublicKeyFromProtobuf(routingMultihash.digest, options);
76
+ }
77
+ // otherwise the record must embed the public key, and that key must correspond
78
+ // to the routing key, otherwise the record was paired with a routing key it was
79
+ // not signed for
80
+ if (record.publicKey != null) {
81
+ const publicKey = await keychain.loadPublicKeyFromProtobuf(record.publicKey, options);
82
+ if (!uint8ArrayEquals(publicKey.toMultihash().bytes, routingMultihash.bytes)) {
83
+ throw new InvalidEmbeddedPublicKeyError('Embedded public key does not match the routing key');
84
+ }
85
+ return publicKey;
86
+ }
87
+ throw new InvalidEmbeddedPublicKeyError('Could not extract public key from IPNS record or routing key');
88
+ }
79
89
  /**
80
90
  * Returns the number of milliseconds until the record expires.
81
91
  * If the record is already expired, returns 0.
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,18 @@
13
13
  "decode": "https://ipfs.github.io/helia/functions/_helia_ipns.IPNSEntry.decode.html",
14
14
  "encode": "https://ipfs.github.io/helia/functions/_helia_ipns.IPNSEntry.encode.html",
15
15
  "stream": "https://ipfs.github.io/helia/functions/_helia_ipns.IPNSEntry.stream.html",
16
+ "InvalidEmbeddedPublicKeyError": "https://ipfs.github.io/helia/classes/_helia_ipns.InvalidEmbeddedPublicKeyError.html",
17
+ "InvalidRecordDataError": "https://ipfs.github.io/helia/classes/_helia_ipns.InvalidRecordDataError.html",
18
+ "InvalidTopicError": "https://ipfs.github.io/helia/classes/_helia_ipns.InvalidTopicError.html",
19
+ "InvalidValueError": "https://ipfs.github.io/helia/classes/_helia_ipns.InvalidValueError.html",
20
+ "RecordExpiredError": "https://ipfs.github.io/helia/classes/_helia_ipns.RecordExpiredError.html",
21
+ "RecordNotFoundError": "https://ipfs.github.io/helia/classes/_helia_ipns.RecordNotFoundError.html",
22
+ "RecordObsoleteError": "https://ipfs.github.io/helia/classes/_helia_ipns.RecordObsoleteError.html",
23
+ "RecordsFailedValidationError": "https://ipfs.github.io/helia/classes/_helia_ipns.RecordsFailedValidationError.html",
24
+ "RecordTooLargeError": "https://ipfs.github.io/helia/classes/_helia_ipns.RecordTooLargeError.html",
25
+ "SignatureCreationError": "https://ipfs.github.io/helia/classes/_helia_ipns.SignatureCreationError.html",
26
+ "SignatureVerificationError": "https://ipfs.github.io/helia/classes/_helia_ipns.SignatureVerificationError.html",
27
+ "UnsupportedValidityError": "https://ipfs.github.io/helia/classes/_helia_ipns.UnsupportedValidityError.html",
16
28
  "CreateIPNSRecordOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.CreateIPNSRecordOptions.html",
17
29
  "IPNS": "https://ipfs.github.io/helia/interfaces/_helia_ipns.IPNS.html",
18
30
  ".:IPNS": "https://ipfs.github.io/helia/interfaces/_helia_ipns.IPNS.html",
@@ -45,6 +57,12 @@
45
57
  "PubsubRoutingComponents": "https://ipfs.github.io/helia/interfaces/_helia_ipns.PubsubRoutingComponents.html",
46
58
  "PubSubSubscription": "https://ipfs.github.io/helia/interfaces/_helia_ipns.PubSubSubscription.html",
47
59
  "PubSubSubscriptionChangeData": "https://ipfs.github.io/helia/interfaces/_helia_ipns.PubSubSubscriptionChangeData.html",
60
+ "RepublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.RepublishOptions.html",
61
+ ".:RepublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.RepublishOptions.html",
62
+ "RepublishResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.RepublishResult.html",
63
+ ".:RepublishResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.RepublishResult.html",
64
+ "UnpublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.UnpublishOptions.html",
65
+ ".:UnpublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.UnpublishOptions.html",
48
66
  "DatastoreProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.DatastoreProgressEvents.html",
49
67
  ".:DatastoreProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.DatastoreProgressEvents.html",
50
68
  "HeliaRoutingProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.HeliaRoutingProgressEvents.html",
@@ -54,6 +72,8 @@
54
72
  "PubSubProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.PubSubProgressEvents.html",
55
73
  "ResolveProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.ResolveProgressEvents.html",
56
74
  ".:ResolveProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.ResolveProgressEvents.html",
75
+ "UpkeepPolicy": "https://ipfs.github.io/helia/types/_helia_ipns.UpkeepPolicy.html",
76
+ ".:UpkeepPolicy": "https://ipfs.github.io/helia/types/_helia_ipns.UpkeepPolicy.html",
57
77
  "createIPNSRecord": "https://ipfs.github.io/helia/functions/_helia_ipns.createIPNSRecord.html",
58
78
  "heliaIPNSRouting": "https://ipfs.github.io/helia/functions/_helia_ipns.heliaIPNSRouting.html",
59
79
  "ipns": "https://ipfs.github.io/helia/functions/_helia_ipns.ipns.html",
@@ -62,7 +82,9 @@
62
82
  ".:ipnsResolver": "https://ipfs.github.io/helia/functions/_helia_ipns.ipnsResolver.html",
63
83
  "ipnsSelector": "https://ipfs.github.io/helia/functions/_helia_ipns.ipnsSelector.html",
64
84
  "ipnsValidator": "https://ipfs.github.io/helia/functions/_helia_ipns.ipnsValidator.html",
85
+ "isLocalStoreRouting": "https://ipfs.github.io/helia/functions/_helia_ipns.isLocalStoreRouting.html",
65
86
  "multihashFromIPNSRoutingKey": "https://ipfs.github.io/helia/functions/_helia_ipns.multihashFromIPNSRoutingKey.html",
66
87
  "multihashToIPNSRoutingKey": "https://ipfs.github.io/helia/functions/_helia_ipns.multihashToIPNSRoutingKey.html",
67
- "pubSubIPNSRouting": "https://ipfs.github.io/helia/functions/_helia_ipns.pubSubIPNSRouting.html"
88
+ "pubSubIPNSRouting": "https://ipfs.github.io/helia/functions/_helia_ipns.pubSubIPNSRouting.html",
89
+ "routerName": "https://ipfs.github.io/helia/functions/_helia_ipns.routerName.html"
68
90
  }