@helia/ipns 10.0.0 → 10.0.1-883ff053
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 +3 -7
- package/dist/index.min.js +16 -5
- package/dist/index.min.js.map +4 -4
- package/dist/src/errors.d.ts +0 -8
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +0 -8
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +68 -31
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -11
- package/dist/src/index.js.map +1 -1
- package/dist/src/ipns/publisher.d.ts +2 -2
- package/dist/src/ipns/publisher.d.ts.map +1 -1
- package/dist/src/ipns/publisher.js +27 -14
- package/dist/src/ipns/publisher.js.map +1 -1
- package/dist/src/ipns/republisher.d.ts.map +1 -1
- package/dist/src/ipns/republisher.js +22 -9
- package/dist/src/ipns/republisher.js.map +1 -1
- package/dist/src/ipns/resolver.d.ts +2 -2
- package/dist/src/ipns/resolver.d.ts.map +1 -1
- package/dist/src/ipns/resolver.js +39 -17
- package/dist/src/ipns/resolver.js.map +1 -1
- package/dist/src/ipns.d.ts +3 -3
- package/dist/src/ipns.d.ts.map +1 -1
- package/dist/src/ipns.js +8 -8
- package/dist/src/ipns.js.map +1 -1
- package/dist/src/local-store.d.ts +4 -4
- package/dist/src/local-store.d.ts.map +1 -1
- package/dist/src/local-store.js +2 -1
- package/dist/src/local-store.js.map +1 -1
- package/dist/src/pb/ipns.d.ts +29 -29
- package/dist/src/pb/ipns.d.ts.map +1 -1
- package/dist/src/pb/ipns.js +15 -15
- package/dist/src/records.d.ts +27 -142
- package/dist/src/records.d.ts.map +1 -1
- package/dist/src/records.js +39 -46
- package/dist/src/records.js.map +1 -1
- package/dist/src/routing/helia.d.ts +5 -5
- package/dist/src/routing/helia.d.ts.map +1 -1
- package/dist/src/routing/helia.js +3 -3
- package/dist/src/routing/helia.js.map +1 -1
- package/dist/src/routing/index.d.ts +7 -7
- package/dist/src/routing/index.d.ts.map +1 -1
- package/dist/src/routing/index.js +2 -2
- package/dist/src/routing/index.js.map +1 -1
- package/dist/src/routing/local-store.d.ts +1 -1
- package/dist/src/routing/local-store.d.ts.map +1 -1
- package/dist/src/routing/local-store.js +3 -3
- package/dist/src/routing/local-store.js.map +1 -1
- package/dist/src/routing/pubsub.d.ts +11 -11
- package/dist/src/routing/pubsub.d.ts.map +1 -1
- package/dist/src/routing/pubsub.js +11 -12
- package/dist/src/routing/pubsub.js.map +1 -1
- package/dist/src/selector.d.ts +2 -2
- package/dist/src/selector.d.ts.map +1 -1
- package/dist/src/selector.js +13 -9
- package/dist/src/selector.js.map +1 -1
- package/dist/src/utils.d.ts +10 -11
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +20 -128
- package/dist/src/utils.js.map +1 -1
- package/dist/src/validator.d.ts +9 -3
- package/dist/src/validator.d.ts.map +1 -1
- package/dist/src/validator.js +57 -14
- package/dist/src/validator.js.map +1 -1
- package/package.json +6 -31
- package/src/errors.ts +0 -10
- package/src/index.ts +85 -36
- package/src/ipns/publisher.ts +29 -16
- package/src/ipns/republisher.ts +31 -13
- package/src/ipns/resolver.ts +40 -22
- package/src/ipns.ts +11 -11
- package/src/local-store.ts +8 -7
- package/src/pb/ipns.proto +1 -1
- package/src/pb/ipns.ts +37 -37
- package/src/records.ts +57 -210
- package/src/routing/helia.ts +6 -6
- package/src/routing/index.ts +7 -7
- package/src/routing/local-store.ts +6 -6
- package/src/routing/pubsub.ts +24 -25
- package/src/selector.ts +14 -11
- package/src/utils.ts +26 -148
- package/src/validator.ts +73 -16
- package/dist/typedoc-urls.json +0 -49
package/dist/src/errors.d.ts
CHANGED
|
@@ -2,14 +2,6 @@ export declare class RecordsFailedValidationError extends Error {
|
|
|
2
2
|
static name: string;
|
|
3
3
|
name: string;
|
|
4
4
|
}
|
|
5
|
-
export declare class UnsupportedMultibasePrefixError extends Error {
|
|
6
|
-
static name: string;
|
|
7
|
-
name: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class UnsupportedMultihashCodecError extends Error {
|
|
10
|
-
static name: string;
|
|
11
|
-
name: string;
|
|
12
|
-
}
|
|
13
5
|
export declare class InvalidValueError extends Error {
|
|
14
6
|
static name: string;
|
|
15
7
|
name: string;
|
package/dist/src/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,MAAM,CAAC,IAAI,SAAiC;IAC5C,IAAI,SAAiC;CACtC;AAED,qBAAa
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,MAAM,CAAC,IAAI,SAAiC;IAC5C,IAAI,SAAiC;CACtC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,SAAsB;IACjC,IAAI,SAAsB;CAC3B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,SAAsB;IACjC,IAAI,SAAsB;CAC3B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,MAAM,CAAC,IAAI,SAAwB;IACnC,IAAI,SAAwB;CAC7B;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,MAAM,CAAC,IAAI,SAA2B;IACtC,IAAI,SAA2B;CAChC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,MAAM,CAAC,IAAI,SAA+B;IAC1C,IAAI,SAA+B;CACpC;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,MAAM,CAAC,IAAI,SAAuB;IAClC,IAAI,SAAuB;CAC5B;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,MAAM,CAAC,IAAI,SAA6B;IACxC,IAAI,SAA6B;CAClC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,MAAM,CAAC,IAAI,SAAwB;IACnC,IAAI,SAAwB;CAC7B;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,MAAM,CAAC,IAAI,SAA2B;IACtC,IAAI,SAA2B;CAChC;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,MAAM,CAAC,IAAI,SAAkC;IAC7C,IAAI,SAAkC;CACvC"}
|
package/dist/src/errors.js
CHANGED
|
@@ -2,14 +2,6 @@ export class RecordsFailedValidationError extends Error {
|
|
|
2
2
|
static name = 'RecordsFailedValidationError';
|
|
3
3
|
name = 'RecordsFailedValidationError';
|
|
4
4
|
}
|
|
5
|
-
export class UnsupportedMultibasePrefixError extends Error {
|
|
6
|
-
static name = 'UnsupportedMultibasePrefixError';
|
|
7
|
-
name = 'UnsupportedMultibasePrefixError';
|
|
8
|
-
}
|
|
9
|
-
export class UnsupportedMultihashCodecError extends Error {
|
|
10
|
-
static name = 'UnsupportedMultihashCodecError';
|
|
11
|
-
name = 'UnsupportedMultihashCodecError';
|
|
12
|
-
}
|
|
13
5
|
export class InvalidValueError extends Error {
|
|
14
6
|
static name = 'InvalidValueError';
|
|
15
7
|
name = 'InvalidValueError';
|
package/dist/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,MAAM,CAAC,IAAI,GAAG,8BAA8B,CAAA;IAC5C,IAAI,GAAG,8BAA8B,CAAA;;AAGvC,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,MAAM,CAAC,IAAI,GAAG,8BAA8B,CAAA;IAC5C,IAAI,GAAG,8BAA8B,CAAA;;AAGvC,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,IAAI,GAAG,mBAAmB,CAAA;;AAG5B,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,IAAI,GAAG,mBAAmB,CAAA;;AAG5B,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,MAAM,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,IAAI,GAAG,qBAAqB,CAAA;;AAG9B,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,MAAM,CAAC,IAAI,GAAG,wBAAwB,CAAA;IACtC,IAAI,GAAG,wBAAwB,CAAA;;AAGjC,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD,MAAM,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAC1C,IAAI,GAAG,4BAA4B,CAAA;;AAGrC,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,MAAM,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,IAAI,GAAG,oBAAoB,CAAA;;AAG7B,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,MAAM,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,IAAI,GAAG,0BAA0B,CAAA;;AAGnC,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,MAAM,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,IAAI,GAAG,qBAAqB,CAAA;;AAG9B,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,MAAM,CAAC,IAAI,GAAG,wBAAwB,CAAA;IACtC,IAAI,GAAG,wBAAwB,CAAA;;AAGjC,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IACtD,MAAM,CAAC,IAAI,GAAG,+BAA+B,CAAA;IAC7C,IAAI,GAAG,+BAA+B,CAAA"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -37,7 +37,6 @@
|
|
|
37
37
|
* import { createHelia } from 'helia'
|
|
38
38
|
* import { ipns } from '@helia/ipns'
|
|
39
39
|
* import { unixfs } from '@helia/unixfs'
|
|
40
|
-
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
41
40
|
*
|
|
42
41
|
* const helia = await createHelia()
|
|
43
42
|
* const name = ipns(helia)
|
|
@@ -66,7 +65,6 @@
|
|
|
66
65
|
* import { createHelia } from 'helia'
|
|
67
66
|
* import { ipns } from '@helia/ipns'
|
|
68
67
|
* import { unixfs } from '@helia/unixfs'
|
|
69
|
-
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
70
68
|
*
|
|
71
69
|
* const helia = await createHelia()
|
|
72
70
|
* const name = ipns(helia)
|
|
@@ -105,15 +103,13 @@
|
|
|
105
103
|
* may fail to be published with "Insufficient peers" errors.
|
|
106
104
|
*
|
|
107
105
|
* ```TypeScript
|
|
108
|
-
* import { ipns } from '@helia/ipns'
|
|
109
|
-
* import { pubsub } from '@helia/ipns/routing'
|
|
106
|
+
* import { ipns, pubSubIPNSRouting } from '@helia/ipns'
|
|
110
107
|
* import { withLibp2p, libp2pDefaults } from '@helia/libp2p'
|
|
111
108
|
* import { unixfs } from '@helia/unixfs'
|
|
112
|
-
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
113
109
|
* import { floodsub } from '@libp2p/floodsub'
|
|
114
110
|
* import { createHelia } from 'helia'
|
|
115
111
|
* import type { Helia } from '@helia/interface'
|
|
116
|
-
* import type { PubSub } from '@helia/ipns
|
|
112
|
+
* import type { PubSub } from '@helia/ipns'
|
|
117
113
|
* import type { DefaultLibp2pServices } from '@helia/libp2p'
|
|
118
114
|
* import type { FloodSub } from '@libp2p/floodsub'
|
|
119
115
|
* import type { Libp2p } from '@libp2p/interface'
|
|
@@ -125,7 +121,7 @@
|
|
|
125
121
|
*
|
|
126
122
|
* const name = ipns(helia, {
|
|
127
123
|
* routers: [
|
|
128
|
-
*
|
|
124
|
+
* pubSubIPNSRouting(helia)
|
|
129
125
|
* ]
|
|
130
126
|
* })
|
|
131
127
|
*
|
|
@@ -144,7 +140,7 @@
|
|
|
144
140
|
*/
|
|
145
141
|
import { CID } from 'multiformats/cid';
|
|
146
142
|
import type { IPNSResolverComponents } from './ipns/resolver.ts';
|
|
147
|
-
import type {
|
|
143
|
+
import type { IPNSEntry } from './pb/ipns.ts';
|
|
148
144
|
import type { IPNSRouting, IPNSRoutingProgressEvents } from './routing/index.ts';
|
|
149
145
|
import type { Routing, HeliaEvents, Keychain, PublicKey } from '@helia/interface';
|
|
150
146
|
import type { ComponentLogger, TypedEventEmitter } from '@libp2p/interface';
|
|
@@ -152,12 +148,18 @@ import type { AbortOptions } from 'abort-error';
|
|
|
152
148
|
import type { Datastore } from 'interface-datastore';
|
|
153
149
|
import type { MultihashDigest } from 'multiformats/hashes/interface';
|
|
154
150
|
import type { ProgressEvent, ProgressOptions } from 'progress-events';
|
|
155
|
-
export
|
|
156
|
-
export
|
|
151
|
+
export * from './routing/index.ts';
|
|
152
|
+
export * from './pb/ipns.ts';
|
|
153
|
+
export { multihashFromIPNSRoutingKey, multihashToIPNSRoutingKey } from './utils.ts';
|
|
154
|
+
export { createIPNSRecord } from './records.ts';
|
|
155
|
+
export type { CreateIPNSRecordOptions } from './records.ts';
|
|
156
|
+
export type PublishProgressEvents = ProgressEvent<'ipns:publish:start'> | ProgressEvent<'ipns:publish:success', IPNSEntry> | ProgressEvent<'ipns:publish:error', Error>;
|
|
157
|
+
export type ResolveProgressEvents = ProgressEvent<'ipns:resolve:start', unknown> | ProgressEvent<'ipns:resolve:success', IPNSEntry> | ProgressEvent<'ipns:resolve:error', Error>;
|
|
157
158
|
export type DatastoreProgressEvents = ProgressEvent<'ipns:routing:datastore:put'> | ProgressEvent<'ipns:routing:datastore:get'> | ProgressEvent<'ipns:routing:datastore:list'> | ProgressEvent<'ipns:routing:datastore:error', Error>;
|
|
158
159
|
export interface PublishOptions extends AbortOptions, ProgressOptions<PublishProgressEvents | IPNSRoutingProgressEvents> {
|
|
159
160
|
/**
|
|
160
|
-
* Time duration of the signature validity in ms
|
|
161
|
+
* Time duration of the signature validity in ms - after this many ms have
|
|
162
|
+
* expired the record will be invalidated.
|
|
161
163
|
*
|
|
162
164
|
* @default 172_800_000
|
|
163
165
|
*/
|
|
@@ -176,17 +178,44 @@ export interface PublishOptions extends AbortOptions, ProgressOptions<PublishPro
|
|
|
176
178
|
*/
|
|
177
179
|
v1Compatible?: boolean;
|
|
178
180
|
/**
|
|
179
|
-
* The TTL of the record in ms
|
|
181
|
+
* The TTL of the record in ms - after this many ms have expired, resolving
|
|
182
|
+
* the record will query the routing for an updated version.
|
|
183
|
+
*
|
|
184
|
+
* Before this many ms have expired any locally stored copy will be treated as
|
|
185
|
+
* the latest version and the routing will not be queried.
|
|
180
186
|
*
|
|
181
187
|
* @default 300_000
|
|
182
188
|
*/
|
|
183
189
|
ttl?: number;
|
|
190
|
+
/**
|
|
191
|
+
* Extensible data that will be added to the IPNS record data and signed to
|
|
192
|
+
* verify it's integrity.
|
|
193
|
+
*
|
|
194
|
+
* Note that this data will be encoded as DAG-CBOR so it must be valid.
|
|
195
|
+
*
|
|
196
|
+
* It is recommended that any custom fields set here are prefixed with `_` to
|
|
197
|
+
* avoid collision with any mandatory fields added to future versions of the
|
|
198
|
+
* IPNS specification.
|
|
199
|
+
*
|
|
200
|
+
* @see https://specs.ipfs.tech/ipns/ipns-record/#extensible-data-dag-cbor
|
|
201
|
+
*/
|
|
202
|
+
data?: Record<string, any>;
|
|
184
203
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Extensible data from the record `data` field.
|
|
206
|
+
*
|
|
207
|
+
* The wire format of this data is DAG-CBOR.
|
|
208
|
+
*
|
|
209
|
+
* @see https://specs.ipfs.tech/ipns/ipns-record/#extensible-data-dag-cbor
|
|
210
|
+
*/
|
|
211
|
+
export interface IPNSRecordData extends Record<string, any> {
|
|
212
|
+
Value: Uint8Array<ArrayBuffer>;
|
|
213
|
+
Validity: Uint8Array<ArrayBuffer>;
|
|
214
|
+
ValidityType: IPNSEntry.ValidityType;
|
|
215
|
+
Sequence: bigint;
|
|
216
|
+
TTL: bigint;
|
|
188
217
|
}
|
|
189
|
-
export interface
|
|
218
|
+
export interface IPNSResolveOptions extends AbortOptions, ProgressOptions<ResolveProgressEvents | IPNSRoutingProgressEvents> {
|
|
190
219
|
/**
|
|
191
220
|
* Do not query the network for the IPNS record
|
|
192
221
|
*
|
|
@@ -199,18 +228,29 @@ export interface ResolveOptions extends AbortOptions, ProgressOptions<ResolvePro
|
|
|
199
228
|
* @default false
|
|
200
229
|
*/
|
|
201
230
|
nocache?: boolean;
|
|
231
|
+
/**
|
|
232
|
+
* If true, ensure the record fields and signature are valid. If false, just
|
|
233
|
+
* return the record.
|
|
234
|
+
*
|
|
235
|
+
* @default true
|
|
236
|
+
*/
|
|
237
|
+
validate?: boolean;
|
|
202
238
|
}
|
|
203
|
-
export interface
|
|
239
|
+
export interface IPNSResolveResult {
|
|
204
240
|
/**
|
|
205
241
|
* The resolved record
|
|
206
242
|
*/
|
|
207
|
-
record:
|
|
243
|
+
record: IPNSEntry;
|
|
244
|
+
/**
|
|
245
|
+
* The value contained within the IPNS record
|
|
246
|
+
*/
|
|
247
|
+
value: string;
|
|
208
248
|
}
|
|
209
|
-
export interface
|
|
249
|
+
export interface IPNSPublishResult {
|
|
210
250
|
/**
|
|
211
251
|
* The published record
|
|
212
252
|
*/
|
|
213
|
-
record:
|
|
253
|
+
record: IPNSEntry;
|
|
214
254
|
/**
|
|
215
255
|
* The IPNS name that can be used to resolve this record
|
|
216
256
|
*/
|
|
@@ -222,13 +262,12 @@ export interface PublishResult {
|
|
|
222
262
|
}
|
|
223
263
|
export interface IPNSResolver {
|
|
224
264
|
/**
|
|
225
|
-
* Accepts a
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
* corresponding to that key until a value is found.
|
|
265
|
+
* Accepts a CID with the libp2p-key codec and either the identity hash (for
|
|
266
|
+
* Ed25519 and secp256k1 public keys) or a SHA256 hash (for RSA public keys),
|
|
267
|
+
* or the multihash of a libp2p-key encoded CID and recursively resolves the
|
|
268
|
+
* IPNS record corresponding to that key until a value is found.
|
|
230
269
|
*/
|
|
231
|
-
resolve(key: CID
|
|
270
|
+
resolve(key: CID | MultihashDigest, options?: IPNSResolveOptions): AsyncGenerator<IPNSResolveResult>;
|
|
232
271
|
}
|
|
233
272
|
export interface IPNS {
|
|
234
273
|
/**
|
|
@@ -265,7 +304,7 @@ export interface IPNS {
|
|
|
265
304
|
* console.info(result) // { answer: ... }
|
|
266
305
|
* ```
|
|
267
306
|
*/
|
|
268
|
-
publish(keyName: string, value: CID | PublicKey | MultihashDigest | string, options?: PublishOptions): Promise<
|
|
307
|
+
publish(keyName: string, value: CID | PublicKey | MultihashDigest | string, options?: PublishOptions): Promise<IPNSPublishResult>;
|
|
269
308
|
/**
|
|
270
309
|
* Accepts a multihash of a public key, a libp2p-key CID containing the
|
|
271
310
|
* multihash of a public key, or an IPNS name in it's string representation
|
|
@@ -273,9 +312,9 @@ export interface IPNS {
|
|
|
273
312
|
* (e.g. the value can be parsed as a string that does not start with
|
|
274
313
|
* `/ipns/`).
|
|
275
314
|
*/
|
|
276
|
-
resolve(name: CID
|
|
315
|
+
resolve(name: CID | PublicKey | MultihashDigest | string, options?: IPNSResolveOptions): AsyncGenerator<IPNSResolveResult>;
|
|
277
316
|
/**
|
|
278
|
-
* Stop republishing of an IPNS record
|
|
317
|
+
* Stop republishing of an IPNS record.
|
|
279
318
|
*
|
|
280
319
|
* This will delete the last signed IPNS record from the datastore.
|
|
281
320
|
*
|
|
@@ -284,8 +323,6 @@ export interface IPNS {
|
|
|
284
323
|
*/
|
|
285
324
|
unpublish(keyName: string, options?: AbortOptions): Promise<void>;
|
|
286
325
|
}
|
|
287
|
-
export type { IPNSRouting } from './routing/index.ts';
|
|
288
|
-
export type { IPNSRecord } from './records.ts';
|
|
289
326
|
export interface IPNSComponents {
|
|
290
327
|
datastore: Datastore;
|
|
291
328
|
routing: Routing;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -37,7 +37,6 @@
|
|
|
37
37
|
* import { createHelia } from 'helia'
|
|
38
38
|
* import { ipns } from '@helia/ipns'
|
|
39
39
|
* import { unixfs } from '@helia/unixfs'
|
|
40
|
-
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
41
40
|
*
|
|
42
41
|
* const helia = await createHelia()
|
|
43
42
|
* const name = ipns(helia)
|
|
@@ -66,7 +65,6 @@
|
|
|
66
65
|
* import { createHelia } from 'helia'
|
|
67
66
|
* import { ipns } from '@helia/ipns'
|
|
68
67
|
* import { unixfs } from '@helia/unixfs'
|
|
69
|
-
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
70
68
|
*
|
|
71
69
|
* const helia = await createHelia()
|
|
72
70
|
* const name = ipns(helia)
|
|
@@ -105,15 +103,13 @@
|
|
|
105
103
|
* may fail to be published with "Insufficient peers" errors.
|
|
106
104
|
*
|
|
107
105
|
* ```TypeScript
|
|
108
|
-
* import { ipns } from '@helia/ipns'
|
|
109
|
-
* import { pubsub } from '@helia/ipns/routing'
|
|
106
|
+
* import { ipns, pubSubIPNSRouting } from '@helia/ipns'
|
|
110
107
|
* import { withLibp2p, libp2pDefaults } from '@helia/libp2p'
|
|
111
108
|
* import { unixfs } from '@helia/unixfs'
|
|
112
|
-
* import { generateKeyPair } from '@libp2p/crypto/keys'
|
|
113
109
|
* import { floodsub } from '@libp2p/floodsub'
|
|
114
110
|
* import { createHelia } from 'helia'
|
|
115
111
|
* import type { Helia } from '@helia/interface'
|
|
116
|
-
* import type { PubSub } from '@helia/ipns
|
|
112
|
+
* import type { PubSub } from '@helia/ipns'
|
|
117
113
|
* import type { DefaultLibp2pServices } from '@helia/libp2p'
|
|
118
114
|
* import type { FloodSub } from '@libp2p/floodsub'
|
|
119
115
|
* import type { Libp2p } from '@libp2p/interface'
|
|
@@ -125,7 +121,7 @@
|
|
|
125
121
|
*
|
|
126
122
|
* const name = ipns(helia, {
|
|
127
123
|
* routers: [
|
|
128
|
-
*
|
|
124
|
+
* pubSubIPNSRouting(helia)
|
|
129
125
|
* ]
|
|
130
126
|
* })
|
|
131
127
|
*
|
|
@@ -146,16 +142,20 @@ import { CID } from 'multiformats/cid';
|
|
|
146
142
|
import { IPNSResolver as IPNSResolverClass } from "./ipns/resolver.js";
|
|
147
143
|
import { IPNS as IPNSClass } from "./ipns.js";
|
|
148
144
|
import { localStore } from "./local-store.js";
|
|
149
|
-
import {
|
|
150
|
-
import {
|
|
145
|
+
import { heliaIPNSRouting } from "./routing/index.js";
|
|
146
|
+
import { localStoreIPNSRouting } from "./routing/local-store.js";
|
|
147
|
+
export * from "./routing/index.js";
|
|
148
|
+
export * from "./pb/ipns.js";
|
|
149
|
+
export { multihashFromIPNSRoutingKey, multihashToIPNSRoutingKey } from "./utils.js";
|
|
150
|
+
export { createIPNSRecord } from "./records.js";
|
|
151
151
|
export function ipns(components, options = {}) {
|
|
152
152
|
return new IPNSClass(components, options);
|
|
153
153
|
}
|
|
154
154
|
export function ipnsResolver(components, options = {}) {
|
|
155
155
|
const store = localStore(components.datastore, components.logger.forComponent('helia:ipns:local-store'));
|
|
156
156
|
const routers = [
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
localStoreIPNSRouting(store),
|
|
158
|
+
heliaIPNSRouting(components.routing),
|
|
159
159
|
...(options.routers ?? [])
|
|
160
160
|
];
|
|
161
161
|
return new IPNSResolverClass(components, {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2IG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAWhE,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAE5B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,gBAAgB,EACjB,MAAM,cAAc,CAAA;AAoPrB,MAAM,UAAU,IAAI,CAAE,UAA0B,EAAE,UAAuB,EAAE;IACzE,OAAO,IAAI,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAE,UAAkC,EAAE,UAA+B,EAAE;IACjG,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAA;IACxG,MAAM,OAAO,GAAG;QACd,qBAAqB,CAAC,KAAK,CAAC;QAC5B,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC;QACpC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;KAC3B,CAAA;IAED,OAAO,IAAI,iBAAiB,CAAC,UAAU,EAAE;QACvC,OAAO;QACP,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IPNSPublishResult, PublishOptions } from '../index.ts';
|
|
2
2
|
import type { LocalStore } from '../local-store.ts';
|
|
3
3
|
import type { IPNSRouting } from '../routing/index.ts';
|
|
4
4
|
import type { Keychain } from '@helia/interface';
|
|
@@ -19,7 +19,7 @@ export declare class IPNSPublisher {
|
|
|
19
19
|
private readonly localStore;
|
|
20
20
|
private readonly keychain;
|
|
21
21
|
constructor(components: IPNSPublisherComponents, init: IPNSPublisherInit);
|
|
22
|
-
publish(keyName: string, value: string, options?: PublishOptions): Promise<
|
|
22
|
+
publish(keyName: string, value: string, options?: PublishOptions): Promise<IPNSPublishResult>;
|
|
23
23
|
unpublish(keyName: string, options?: AbortOptions): Promise<void>;
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=publisher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../src/ipns/publisher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../../src/ipns/publisher.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,qBAAa,aAAa;;IACxB,SAAgB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;gBAEtB,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,iBAAiB;IAMnE,OAAO,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyElG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzE"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { base36 } from 'multiformats/bases/base36';
|
|
2
2
|
import { CustomProgressEvent } from 'progress-events';
|
|
3
|
-
import { DEFAULT_LIFETIME_MS
|
|
3
|
+
import { DEFAULT_LIFETIME_MS } from "../constants.js";
|
|
4
|
+
import { IPNSEntry } from "../pb/ipns.js";
|
|
4
5
|
import { createIPNSRecord } from "../records.js";
|
|
5
|
-
import {
|
|
6
|
+
import { decodeExtensibleData, multihashToIPNSRoutingKey } from "../utils.js";
|
|
6
7
|
export class IPNSPublisher {
|
|
7
8
|
routers;
|
|
8
9
|
localStore;
|
|
@@ -21,29 +22,41 @@ export class IPNSPublisher {
|
|
|
21
22
|
if (await this.localStore.has(routingKey, options)) {
|
|
22
23
|
// if we have published under this key before, increment the sequence number
|
|
23
24
|
const { record } = await this.localStore.get(routingKey, options);
|
|
24
|
-
const existingRecord =
|
|
25
|
-
|
|
25
|
+
const existingRecord = IPNSEntry.decode(record);
|
|
26
|
+
const data = decodeExtensibleData(existingRecord.data);
|
|
27
|
+
sequenceNumber = (data.Sequence ?? 0n) + 1n;
|
|
26
28
|
}
|
|
27
|
-
// convert ttl from milliseconds to nanoseconds as createIPNSRecord expects
|
|
28
|
-
const ttlNs = options.ttl != null ? BigInt(options.ttl) * 1000000n : DEFAULT_TTL_NS;
|
|
29
29
|
const lifetime = options.lifetime ?? DEFAULT_LIFETIME_MS;
|
|
30
|
-
const record = await createIPNSRecord(key, value, sequenceNumber, lifetime, {
|
|
31
|
-
|
|
30
|
+
const record = await createIPNSRecord(key, value, sequenceNumber, lifetime, {
|
|
31
|
+
...options,
|
|
32
|
+
// convert ttl from milliseconds to nanoseconds as createIPNSRecord expects
|
|
33
|
+
ttlNs: options.ttl != null ? BigInt(options.ttl) * 1000000n : undefined
|
|
34
|
+
});
|
|
35
|
+
const marshaledRecord = IPNSEntry.encode(record);
|
|
32
36
|
if (options.offline === true) {
|
|
33
37
|
// only store record locally
|
|
34
|
-
await this.localStore.put(routingKey, marshaledRecord, {
|
|
38
|
+
await this.localStore.put(routingKey, marshaledRecord, {
|
|
39
|
+
...options,
|
|
40
|
+
metadata: {
|
|
41
|
+
keyName,
|
|
42
|
+
lifetime
|
|
43
|
+
}
|
|
44
|
+
});
|
|
35
45
|
}
|
|
36
46
|
else {
|
|
37
47
|
// publish record to routing (including the local store)
|
|
38
48
|
await Promise.all(this.routers.map(async (r) => {
|
|
39
|
-
await r.put(routingKey, marshaledRecord, {
|
|
49
|
+
await r.put(routingKey, marshaledRecord, {
|
|
50
|
+
...options,
|
|
51
|
+
metadata: {
|
|
52
|
+
keyName,
|
|
53
|
+
lifetime
|
|
54
|
+
}
|
|
55
|
+
});
|
|
40
56
|
}));
|
|
41
57
|
}
|
|
42
58
|
return {
|
|
43
|
-
record
|
|
44
|
-
...record,
|
|
45
|
-
publicKey: key.publicKey
|
|
46
|
-
},
|
|
59
|
+
record,
|
|
47
60
|
name: `/ipns/${key.publicKey.toCID().toString(base36)}`,
|
|
48
61
|
publicKey: key.publicKey
|
|
49
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../src/ipns/publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../src/ipns/publisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"republisher.d.ts","sourceRoot":"","sources":["../../../src/ipns/republisher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"republisher.d.ts","sourceRoot":"","sources":["../../../src/ipns/republisher.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAgB,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAG9E,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,qBAAa,eAAe;;IAC1B,SAAgB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;gBAEhC,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAiB7E,KAAK,IAAK,IAAI;IASd,IAAI,IAAK,IAAI;CAgHd"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Queue, repeatingTask } from '@libp2p/utils';
|
|
2
|
+
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
2
3
|
import { DEFAULT_REPUBLISH_CONCURRENCY, DEFAULT_REPUBLISH_INTERVAL_MS, DEFAULT_TTL_NS } from "../constants.js";
|
|
4
|
+
import { IPNSEntry } from "../pb/ipns.js";
|
|
3
5
|
import { createIPNSRecord } from "../records.js";
|
|
4
|
-
import {
|
|
5
|
-
import { shouldRepublish } from "../utils.js";
|
|
6
|
+
import { decodeExtensibleData, shouldRepublish } from "../utils.js";
|
|
6
7
|
export class IPNSRepublisher {
|
|
7
8
|
routers;
|
|
8
9
|
localStore;
|
|
@@ -61,19 +62,31 @@ export class IPNSRepublisher {
|
|
|
61
62
|
}
|
|
62
63
|
let ipnsRecord;
|
|
63
64
|
try {
|
|
64
|
-
ipnsRecord =
|
|
65
|
+
ipnsRecord = IPNSEntry.decode(record);
|
|
65
66
|
}
|
|
66
67
|
catch (err) {
|
|
67
|
-
this.log.
|
|
68
|
+
this.log.trace('skipping invalid record %b because could not decode', routingKey);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (ipnsRecord.data == null) {
|
|
72
|
+
this.log.trace('skipping record %b because data was missing', routingKey);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
let data;
|
|
76
|
+
try {
|
|
77
|
+
data = decodeExtensibleData(ipnsRecord.data);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
this.log.trace('skipping record %b because could not decode data', routingKey);
|
|
68
81
|
continue;
|
|
69
82
|
}
|
|
70
83
|
// Only republish records that are within the DHT or record expiry threshold
|
|
71
|
-
if (!shouldRepublish(
|
|
84
|
+
if (!shouldRepublish(created, new Date(uint8ArrayToString(data.Validity)))) {
|
|
72
85
|
this.log.trace('skipping record %b within republish threshold', routingKey);
|
|
73
86
|
continue;
|
|
74
87
|
}
|
|
75
|
-
const sequenceNumber =
|
|
76
|
-
const ttlNs =
|
|
88
|
+
const sequenceNumber = data.Sequence + 1n;
|
|
89
|
+
const ttlNs = data.TTL ?? DEFAULT_TTL_NS;
|
|
77
90
|
let privKey;
|
|
78
91
|
try {
|
|
79
92
|
privKey = await this.keychain.exportKey(metadata.keyName);
|
|
@@ -83,7 +96,7 @@ export class IPNSRepublisher {
|
|
|
83
96
|
continue;
|
|
84
97
|
}
|
|
85
98
|
try {
|
|
86
|
-
const updatedRecord = await createIPNSRecord(privKey,
|
|
99
|
+
const updatedRecord = await createIPNSRecord(privKey, uint8ArrayToString(data.Value), sequenceNumber, metadata.lifetime, {
|
|
87
100
|
...options,
|
|
88
101
|
ttlNs
|
|
89
102
|
});
|
|
@@ -103,7 +116,7 @@ export class IPNSRepublisher {
|
|
|
103
116
|
// Add job to queue to republish the record to all routers
|
|
104
117
|
queue.add(async () => {
|
|
105
118
|
try {
|
|
106
|
-
const marshaledRecord =
|
|
119
|
+
const marshaledRecord = IPNSEntry.encode(record);
|
|
107
120
|
await Promise.all(this.routers.map(r => r.put(routingKey, marshaledRecord, options)));
|
|
108
121
|
}
|
|
109
122
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"republisher.js","sourceRoot":"","sources":["../../../src/ipns/republisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC9G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"republisher.js","sourceRoot":"","sources":["../../../src/ipns/republisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IPNSResolveOptions, IPNSResolveResult } from '../index.ts';
|
|
2
2
|
import type { LocalStore } from '../local-store.ts';
|
|
3
3
|
import type { IPNSRouting } from '../routing/index.ts';
|
|
4
4
|
import type { Routing, Keychain } from '@helia/interface';
|
|
@@ -22,6 +22,6 @@ export declare class IPNSResolver {
|
|
|
22
22
|
private readonly log;
|
|
23
23
|
private keychain;
|
|
24
24
|
constructor(components: IPNSResolverComponents, init: IPNResolverInit);
|
|
25
|
-
resolve(key: MultihashDigest, options?:
|
|
25
|
+
resolve(key: MultihashDigest, options?: IPNSResolveOptions): AsyncGenerator<IPNSResolveResult>;
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/ipns/resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/ipns/resolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,qBAAa,YAAY;;IACvB,SAAgB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAU;gBAEb,UAAU,EAAE,sBAAsB,EAAE,IAAI,EAAE,eAAe;IAO9D,OAAO,CAAE,GAAG,EAAE,eAAe,EAAE,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAAC,iBAAiB,CAAC;CAoJ5G"}
|