@peerbit/log 4.0.4 → 4.0.5
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/dist/src/clock.d.ts.map +1 -1
- package/dist/src/clock.js +20 -11
- package/dist/src/clock.js.map +1 -1
- package/dist/src/entry-create.d.ts +26 -0
- package/dist/src/entry-create.d.ts.map +1 -0
- package/dist/src/entry-create.js +5 -0
- package/dist/src/entry-create.js.map +1 -0
- package/dist/src/entry-index.d.ts +2 -1
- package/dist/src/entry-index.d.ts.map +1 -1
- package/dist/src/entry-index.js +2 -1
- package/dist/src/entry-index.js.map +1 -1
- package/dist/src/entry-shallow.d.ts +29 -0
- package/dist/src/entry-shallow.d.ts.map +1 -0
- package/dist/src/entry-shallow.js +75 -0
- package/dist/src/entry-shallow.js.map +1 -0
- package/dist/src/entry-type.d.ts +5 -0
- package/dist/src/entry-type.d.ts.map +1 -0
- package/dist/src/entry-type.js +6 -0
- package/dist/src/entry-type.js.map +1 -0
- package/dist/src/entry-v0.d.ts +121 -0
- package/dist/src/entry-v0.d.ts.map +1 -0
- package/dist/src/entry-v0.js +465 -0
- package/dist/src/entry-v0.js.map +1 -0
- package/dist/src/entry.d.ts +31 -153
- package/dist/src/entry.d.ts.map +1 -1
- package/dist/src/entry.js +24 -581
- package/dist/src/entry.js.map +1 -1
- package/dist/src/heads-cache.d.ts +1 -1
- package/dist/src/heads-cache.d.ts.map +1 -1
- package/dist/src/heads-cache.js +0 -1
- package/dist/src/heads-cache.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/log.d.ts +6 -4
- package/dist/src/log.d.ts.map +1 -1
- package/dist/src/log.js +22 -82
- package/dist/src/log.js.map +1 -1
- package/dist/src/payload.d.ts +17 -0
- package/dist/src/payload.d.ts.map +1 -0
- package/dist/src/payload.js +53 -0
- package/dist/src/payload.js.map +1 -0
- package/dist/src/trim.d.ts +2 -1
- package/dist/src/trim.d.ts.map +1 -1
- package/dist/src/trim.js.map +1 -1
- package/package.json +3 -3
- package/src/clock.ts +3 -2
- package/src/entry-create.ts +30 -0
- package/src/entry-index.ts +3 -6
- package/src/entry-shallow.ts +61 -0
- package/src/entry-type.ts +4 -0
- package/src/entry-v0.ts +594 -0
- package/src/entry.ts +50 -693
- package/src/heads-cache.ts +1 -1
- package/src/index.ts +5 -0
- package/src/log.ts +23 -94
- package/src/payload.ts +44 -0
- package/src/trim.ts +2 -1
package/dist/src/entry.js
CHANGED
|
@@ -1,536 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var Entry_1;
|
|
11
|
-
import { deserialize, field, fixedArray, option, serialize, variant, vec, } from "@dao-xyz/borsh";
|
|
1
|
+
import { deserialize, serialize } from "@dao-xyz/borsh";
|
|
12
2
|
import {} from "@peerbit/blocks-interface";
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
import { id } from "@peerbit/indexer-interface";
|
|
16
|
-
import {} from "@peerbit/keychain";
|
|
17
|
-
import { compare } from "uint8arrays";
|
|
18
|
-
import { LamportClock as Clock, HLC, Timestamp } from "./clock.js";
|
|
19
|
-
import { NO_ENCODING } from "./encoding.js";
|
|
20
|
-
import { logger } from "./logger.js";
|
|
21
|
-
import { equals } from "./utils.js";
|
|
22
|
-
const isMaybeEryptionPublicKey = (o) => {
|
|
23
|
-
if (!o) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
if (o instanceof X25519PublicKey || o instanceof Ed25519PublicKey) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
if (Array.isArray(o)) {
|
|
30
|
-
return true; // assume entries are either X25519PublicKey or Ed25519PublicKey
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
};
|
|
34
|
-
function arrayToHex(arr) {
|
|
35
|
-
return [...new Uint8Array(arr)]
|
|
36
|
-
.map((b) => b.toString(16).padStart(2, "0"))
|
|
37
|
-
.join("");
|
|
38
|
-
}
|
|
39
|
-
export function toBufferLE(num, width) {
|
|
40
|
-
const hex = num.toString(16);
|
|
41
|
-
const padded = hex.padStart(width * 2, "0").slice(0, width * 2);
|
|
42
|
-
const arr = padded.match(/.{1,2}/g)?.map((byte) => parseInt(byte, 16));
|
|
43
|
-
if (!arr) {
|
|
44
|
-
throw new Error("Unexpected");
|
|
45
|
-
}
|
|
46
|
-
const buffer = Uint8Array.from(arr);
|
|
47
|
-
buffer.reverse();
|
|
48
|
-
return buffer;
|
|
49
|
-
}
|
|
50
|
-
export function toBigIntLE(buf) {
|
|
51
|
-
const reversed = buf.reverse();
|
|
52
|
-
const hex = arrayToHex(reversed);
|
|
53
|
-
if (hex.length === 0) {
|
|
54
|
-
return BigInt(0);
|
|
55
|
-
}
|
|
56
|
-
return BigInt(`0x${hex}`);
|
|
57
|
-
}
|
|
58
|
-
let Payload = class Payload {
|
|
59
|
-
data;
|
|
60
|
-
encoding;
|
|
61
|
-
_value;
|
|
62
|
-
constructor(props) {
|
|
63
|
-
this.data = props.data;
|
|
64
|
-
this._value = props.value;
|
|
65
|
-
this.encoding = props?.encoding;
|
|
66
|
-
}
|
|
67
|
-
equals(other) {
|
|
68
|
-
return equals(this.data, other.data);
|
|
69
|
-
}
|
|
70
|
-
get isDecoded() {
|
|
71
|
-
return this._value != null;
|
|
72
|
-
}
|
|
73
|
-
get value() {
|
|
74
|
-
if (this._value == null) {
|
|
75
|
-
throw new Error("Value not decoded. Invoke: .getValue once");
|
|
76
|
-
}
|
|
77
|
-
return this._value;
|
|
78
|
-
}
|
|
79
|
-
getValue(encoding = this.encoding || NO_ENCODING) {
|
|
80
|
-
if (this._value !== undefined) {
|
|
81
|
-
return this._value;
|
|
82
|
-
}
|
|
83
|
-
return encoding.decoder(this.data);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
__decorate([
|
|
87
|
-
field({ type: Uint8Array }),
|
|
88
|
-
__metadata("design:type", Uint8Array)
|
|
89
|
-
], Payload.prototype, "data", void 0);
|
|
90
|
-
Payload = __decorate([
|
|
91
|
-
variant(0),
|
|
92
|
-
__metadata("design:paramtypes", [Object])
|
|
93
|
-
], Payload);
|
|
94
|
-
export { Payload };
|
|
95
|
-
export var EntryType;
|
|
96
|
-
(function (EntryType) {
|
|
97
|
-
EntryType[EntryType["APPEND"] = 0] = "APPEND";
|
|
98
|
-
EntryType[EntryType["CUT"] = 1] = "CUT";
|
|
99
|
-
})(EntryType || (EntryType = {}));
|
|
100
|
-
/* @variant(0) */
|
|
101
|
-
export class Meta {
|
|
102
|
-
clock;
|
|
103
|
-
gid; // graph id
|
|
104
|
-
next;
|
|
105
|
-
type;
|
|
106
|
-
data; // Optional metadata
|
|
107
|
-
constructor(properties) {
|
|
108
|
-
this.gid = properties.gid;
|
|
109
|
-
this.clock = properties.clock;
|
|
110
|
-
this.type = properties.type;
|
|
111
|
-
this.data = properties.data;
|
|
112
|
-
this.next = properties.next;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
__decorate([
|
|
116
|
-
field({ type: Clock }),
|
|
117
|
-
__metadata("design:type", Clock)
|
|
118
|
-
], Meta.prototype, "clock", void 0);
|
|
119
|
-
__decorate([
|
|
120
|
-
field({ type: "string" }),
|
|
121
|
-
__metadata("design:type", String)
|
|
122
|
-
], Meta.prototype, "gid", void 0);
|
|
123
|
-
__decorate([
|
|
124
|
-
field({ type: vec("string") }),
|
|
125
|
-
__metadata("design:type", Array)
|
|
126
|
-
], Meta.prototype, "next", void 0);
|
|
127
|
-
__decorate([
|
|
128
|
-
field({ type: "u8" }),
|
|
129
|
-
__metadata("design:type", Number)
|
|
130
|
-
], Meta.prototype, "type", void 0);
|
|
131
|
-
__decorate([
|
|
132
|
-
field({ type: option(Uint8Array) }),
|
|
133
|
-
__metadata("design:type", Uint8Array)
|
|
134
|
-
], Meta.prototype, "data", void 0);
|
|
135
|
-
let Signatures = class Signatures {
|
|
136
|
-
signatures;
|
|
137
|
-
constructor(properties) {
|
|
138
|
-
if (properties) {
|
|
139
|
-
this.signatures = properties.signatures;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
equals(other) {
|
|
143
|
-
if (this.signatures.length !== other.signatures.length) {
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
for (let i = 0; i < this.signatures.length; i++) {
|
|
147
|
-
if (!this.signatures[i].equals(other.signatures[i])) {
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
__decorate([
|
|
155
|
-
field({ type: vec(MaybeEncrypted) }),
|
|
156
|
-
__metadata("design:type", Array)
|
|
157
|
-
], Signatures.prototype, "signatures", void 0);
|
|
158
|
-
Signatures = __decorate([
|
|
159
|
-
variant(0),
|
|
160
|
-
__metadata("design:paramtypes", [Object])
|
|
161
|
-
], Signatures);
|
|
162
|
-
export { Signatures };
|
|
163
|
-
const maybeEncrypt = (thing, keypair, receiver) => {
|
|
164
|
-
const receivers = receiver
|
|
165
|
-
? Array.isArray(receiver)
|
|
166
|
-
? receiver
|
|
167
|
-
: [receiver]
|
|
168
|
-
: undefined;
|
|
169
|
-
if (receivers?.length && receivers?.length > 0) {
|
|
170
|
-
if (!keypair) {
|
|
171
|
-
throw new Error("Keypair not provided");
|
|
172
|
-
}
|
|
173
|
-
return new DecryptedThing({
|
|
174
|
-
data: serialize(thing),
|
|
175
|
-
value: thing,
|
|
176
|
-
}).encrypt(keypair, receivers);
|
|
177
|
-
}
|
|
178
|
-
return new DecryptedThing({
|
|
179
|
-
data: serialize(thing),
|
|
180
|
-
value: thing,
|
|
181
|
-
});
|
|
182
|
-
};
|
|
183
|
-
export class ShallowEntry {
|
|
184
|
-
hash;
|
|
185
|
-
meta;
|
|
186
|
-
payloadSize;
|
|
187
|
-
head;
|
|
188
|
-
constructor(properties) {
|
|
189
|
-
this.hash = properties.hash;
|
|
190
|
-
this.meta = properties.meta;
|
|
191
|
-
this.payloadSize = properties.payloadSize;
|
|
192
|
-
this.head = properties.head;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
__decorate([
|
|
196
|
-
id({ type: "string" }),
|
|
197
|
-
__metadata("design:type", String)
|
|
198
|
-
], ShallowEntry.prototype, "hash", void 0);
|
|
199
|
-
__decorate([
|
|
200
|
-
field({ type: Meta }),
|
|
201
|
-
__metadata("design:type", Meta)
|
|
202
|
-
], ShallowEntry.prototype, "meta", void 0);
|
|
203
|
-
__decorate([
|
|
204
|
-
field({ type: "u32" }),
|
|
205
|
-
__metadata("design:type", Number)
|
|
206
|
-
], ShallowEntry.prototype, "payloadSize", void 0);
|
|
207
|
-
__decorate([
|
|
208
|
-
field({ type: "bool" }),
|
|
209
|
-
__metadata("design:type", Boolean)
|
|
210
|
-
], ShallowEntry.prototype, "head", void 0);
|
|
211
|
-
let Entry = Entry_1 = class Entry {
|
|
212
|
-
_meta;
|
|
213
|
-
_payload;
|
|
214
|
-
_reserved;
|
|
215
|
-
_signatures;
|
|
216
|
-
hash; // "zd...Foo", we'll set the hash after persisting the entry
|
|
217
|
-
createdLocally;
|
|
218
|
-
_keychain;
|
|
219
|
-
_encoding;
|
|
220
|
-
constructor(obj) {
|
|
221
|
-
this._meta = obj.meta;
|
|
222
|
-
this._payload = obj.payload;
|
|
223
|
-
this._signatures = obj.signatures;
|
|
224
|
-
this._reserved = new Uint8Array([0, 0, 0, 0]);
|
|
225
|
-
this.createdLocally = obj.createdLocally;
|
|
226
|
-
}
|
|
227
|
-
init(props) {
|
|
228
|
-
if (props instanceof Entry_1) {
|
|
229
|
-
this._keychain = props._keychain;
|
|
230
|
-
this._encoding = props._encoding;
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
this._keychain = props.keychain;
|
|
234
|
-
this._encoding = props.encoding;
|
|
235
|
-
}
|
|
236
|
-
return this;
|
|
237
|
-
}
|
|
238
|
-
get encoding() {
|
|
239
|
-
if (!this._encoding) {
|
|
240
|
-
throw new Error("Not initialized");
|
|
241
|
-
}
|
|
242
|
-
return this._encoding;
|
|
243
|
-
}
|
|
244
|
-
get meta() {
|
|
245
|
-
return this._meta.decrypted.getValue(Meta);
|
|
246
|
-
}
|
|
247
|
-
async getMeta() {
|
|
248
|
-
await this._meta.decrypt(this._keychain);
|
|
249
|
-
return this.meta;
|
|
250
|
-
}
|
|
251
|
-
async getClock() {
|
|
252
|
-
return (await this.getMeta()).clock;
|
|
253
|
-
}
|
|
254
|
-
get gid() {
|
|
255
|
-
return this._meta.decrypted.getValue(Meta).gid;
|
|
256
|
-
}
|
|
257
|
-
async getGid() {
|
|
258
|
-
return (await this.getMeta()).gid;
|
|
259
|
-
}
|
|
260
|
-
get payload() {
|
|
261
|
-
const payload = this._payload.decrypted.getValue(Payload);
|
|
262
|
-
payload.encoding = payload.encoding || this.encoding;
|
|
263
|
-
return payload;
|
|
264
|
-
}
|
|
265
|
-
async getPayload() {
|
|
266
|
-
if (this._payload instanceof DecryptedThing) {
|
|
267
|
-
return this.payload;
|
|
268
|
-
}
|
|
269
|
-
await this._payload.decrypt(this._keychain);
|
|
270
|
-
return this.payload;
|
|
271
|
-
}
|
|
272
|
-
async getPayloadValue() {
|
|
273
|
-
const payload = await this.getPayload();
|
|
274
|
-
return payload.isDecoded ? payload.value : payload.getValue(this.encoding);
|
|
275
|
-
}
|
|
276
|
-
get publicKeys() {
|
|
277
|
-
return this.signatures.map((x) => x.publicKey);
|
|
278
|
-
}
|
|
3
|
+
import { LamportClock as Clock } from "./clock.js";
|
|
4
|
+
export class Entry {
|
|
279
5
|
async getPublicKeys() {
|
|
280
|
-
await this.getSignatures();
|
|
281
|
-
return this.publicKeys;
|
|
282
|
-
}
|
|
283
|
-
get next() {
|
|
284
|
-
return this.meta.next;
|
|
285
|
-
}
|
|
286
|
-
async getNext() {
|
|
287
|
-
return (await this.getMeta()).next;
|
|
288
|
-
}
|
|
289
|
-
_size;
|
|
290
|
-
set size(number) {
|
|
291
|
-
this._size = number;
|
|
292
|
-
}
|
|
293
|
-
get size() {
|
|
294
|
-
if (this._size == null) {
|
|
295
|
-
throw new Error("Size not set. Size is set when entry is, created, loaded or joined");
|
|
296
|
-
}
|
|
297
|
-
return this._size;
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Will only return signatures I can decrypt
|
|
301
|
-
* @returns signatures
|
|
302
|
-
*/
|
|
303
|
-
get signatures() {
|
|
304
|
-
const signatures = this._signatures.signatures.filter((x) => {
|
|
305
|
-
try {
|
|
306
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
307
|
-
x.decrypted;
|
|
308
|
-
return true;
|
|
309
|
-
}
|
|
310
|
-
catch (error) {
|
|
311
|
-
return false;
|
|
312
|
-
}
|
|
313
|
-
}).map((x) => x.decrypted.getValue(SignatureWithKey));
|
|
314
|
-
if (signatures.length === 0) {
|
|
315
|
-
this._signatures?.signatures.forEach((x) => x.clear());
|
|
316
|
-
throw new Error("Failed to resolve any signature");
|
|
317
|
-
}
|
|
318
|
-
return signatures;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Will only return signatures I can decrypt
|
|
322
|
-
* @returns signatures
|
|
323
|
-
*/
|
|
324
|
-
async getSignatures() {
|
|
325
|
-
const results = await Promise.allSettled(this._signatures.signatures.map((x) => x.decrypt(this._keychain)));
|
|
326
|
-
if (logger.level === "debug" || logger.level === "trace") {
|
|
327
|
-
for (const [i, result] of results.entries()) {
|
|
328
|
-
if (result.status === "rejected") {
|
|
329
|
-
logger.debug("Failed to decrypt signature with index: " + i);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
return this.signatures;
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* Will only verify signatures I can decrypt
|
|
337
|
-
* @returns true if all are verified
|
|
338
|
-
*/
|
|
339
|
-
async verifySignatures() {
|
|
340
6
|
const signatures = await this.getSignatures();
|
|
341
|
-
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
|
-
const signable = Entry_1.toSignable(this);
|
|
345
|
-
const signableBytes = serialize(signable);
|
|
346
|
-
for (const signature of signatures) {
|
|
347
|
-
if (!(await verify(signature, signableBytes))) {
|
|
348
|
-
return false;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
return true;
|
|
352
|
-
}
|
|
353
|
-
static toSignable(entry) {
|
|
354
|
-
// TODO fix types
|
|
355
|
-
const trimmed = new Entry_1({
|
|
356
|
-
meta: entry._meta,
|
|
357
|
-
payload: entry._payload,
|
|
358
|
-
reserved: entry._reserved,
|
|
359
|
-
signatures: undefined,
|
|
360
|
-
hash: undefined,
|
|
361
|
-
});
|
|
362
|
-
return trimmed;
|
|
363
|
-
}
|
|
364
|
-
toSignable() {
|
|
365
|
-
if (this._signatures) {
|
|
366
|
-
throw new Error("Expected signatures to be undefined");
|
|
367
|
-
}
|
|
368
|
-
if (this.hash) {
|
|
369
|
-
throw new Error("Expected hash to be undefined");
|
|
370
|
-
}
|
|
371
|
-
return Entry_1.toSignable(this);
|
|
372
|
-
}
|
|
373
|
-
equals(other) {
|
|
374
|
-
return (equals(this._reserved, other._reserved) &&
|
|
375
|
-
this._meta.equals(other._meta) &&
|
|
376
|
-
this._signatures.equals(other._signatures) &&
|
|
377
|
-
this._payload.equals(other._payload)); // dont compare hashes because the hash is a function of the other properties
|
|
378
|
-
}
|
|
379
|
-
async delete(store) {
|
|
380
|
-
if (!this.hash) {
|
|
381
|
-
throw new Error("Missing hash");
|
|
382
|
-
}
|
|
383
|
-
await store.rm(this.hash);
|
|
384
|
-
}
|
|
385
|
-
static createGid(seed) {
|
|
386
|
-
return sha256Base64(seed || randomBytes(32));
|
|
387
|
-
}
|
|
388
|
-
static async create(properties) {
|
|
389
|
-
if (!properties.encoding || !properties?.meta?.next) {
|
|
390
|
-
properties = {
|
|
391
|
-
...properties,
|
|
392
|
-
meta: {
|
|
393
|
-
...properties?.meta,
|
|
394
|
-
next: properties.meta?.next ? properties.meta?.next : [],
|
|
395
|
-
},
|
|
396
|
-
encoding: properties.encoding ? properties.encoding : NO_ENCODING,
|
|
397
|
-
};
|
|
398
|
-
}
|
|
399
|
-
if (!properties.encoding) {
|
|
400
|
-
throw new Error("Missing encoding options");
|
|
401
|
-
}
|
|
402
|
-
if (properties.data == null)
|
|
403
|
-
throw new Error("Entry requires data");
|
|
404
|
-
if (properties.meta?.next == null || !Array.isArray(properties.meta.next))
|
|
405
|
-
throw new Error("'next' argument is not an array");
|
|
406
|
-
// Clean the next objects and convert to hashes
|
|
407
|
-
const nexts = properties.meta?.next;
|
|
408
|
-
const payloadToSave = new Payload({
|
|
409
|
-
data: properties.encoding.encoder(properties.data),
|
|
410
|
-
value: properties.data,
|
|
411
|
-
encoding: properties.encoding,
|
|
412
|
-
});
|
|
413
|
-
let clock = properties.meta?.clock;
|
|
414
|
-
if (!clock) {
|
|
415
|
-
const hlc = new HLC();
|
|
416
|
-
for (const next of nexts) {
|
|
417
|
-
hlc.update(next.meta.clock.timestamp);
|
|
418
|
-
}
|
|
419
|
-
if (properties.encryption?.receiver.signatures &&
|
|
420
|
-
properties.encryption?.receiver.meta) {
|
|
421
|
-
throw new Error("Signature is to be encrypted yet the clock is not, which contains the publicKey as id. Either provide a custom Clock value that is not sensitive or set the receiver (encryption target) for the clock");
|
|
422
|
-
}
|
|
423
|
-
clock = new Clock({
|
|
424
|
-
id: properties.identity.publicKey.bytes,
|
|
425
|
-
timestamp: hlc.now(),
|
|
426
|
-
});
|
|
427
|
-
}
|
|
428
|
-
else {
|
|
429
|
-
const cv = clock;
|
|
430
|
-
// check if nexts, that all nexts are happening BEFORE this clock value (else clock make no sense)
|
|
431
|
-
for (const n of nexts) {
|
|
432
|
-
if (Timestamp.compare(n.meta.clock.timestamp, cv.timestamp) >= 0) {
|
|
433
|
-
throw new Error("Expecting next(s) to happen before entry, got: " +
|
|
434
|
-
n.meta.clock.timestamp +
|
|
435
|
-
" > " +
|
|
436
|
-
cv.timestamp);
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
const nextHashes = [];
|
|
441
|
-
let maxChainLength = 0n;
|
|
442
|
-
let gid = null;
|
|
443
|
-
if (nexts?.length > 0) {
|
|
444
|
-
// take min gid as our gid
|
|
445
|
-
if (properties.meta?.gid) {
|
|
446
|
-
throw new Error("Expecting '.meta.gid' property to be undefined if '.meta.next' is provided");
|
|
447
|
-
}
|
|
448
|
-
for (const n of nexts) {
|
|
449
|
-
if (!n.hash) {
|
|
450
|
-
throw new Error("Expecting hash to be defined to next entries");
|
|
451
|
-
}
|
|
452
|
-
nextHashes.push(n.hash);
|
|
453
|
-
gid =
|
|
454
|
-
gid == null
|
|
455
|
-
? n.meta.gid
|
|
456
|
-
: n.meta.gid < gid
|
|
457
|
-
? n.meta.gid
|
|
458
|
-
: gid;
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
else {
|
|
462
|
-
gid =
|
|
463
|
-
properties.meta?.gid ||
|
|
464
|
-
(await Entry_1.createGid(properties.meta?.gidSeed));
|
|
465
|
-
}
|
|
466
|
-
maxChainLength += 1n; // include this
|
|
467
|
-
const metadataEncrypted = await maybeEncrypt(new Meta({
|
|
468
|
-
clock,
|
|
469
|
-
gid: gid,
|
|
470
|
-
type: properties.meta?.type ?? EntryType.APPEND,
|
|
471
|
-
data: properties.meta?.data,
|
|
472
|
-
next: nextHashes,
|
|
473
|
-
}), properties.encryption?.keypair, properties.encryption?.receiver.meta);
|
|
474
|
-
const payload = await maybeEncrypt(payloadToSave, properties.encryption?.keypair, properties.encryption?.receiver.payload);
|
|
475
|
-
// Sign id, encrypted payload, clock, nexts, refs
|
|
476
|
-
const entry = new Entry_1({
|
|
477
|
-
meta: metadataEncrypted,
|
|
478
|
-
payload,
|
|
479
|
-
signatures: undefined,
|
|
480
|
-
createdLocally: true,
|
|
481
|
-
});
|
|
482
|
-
const signers = properties.signers || [
|
|
483
|
-
properties.identity.sign.bind(properties.identity),
|
|
484
|
-
];
|
|
485
|
-
const signable = entry.toSignable();
|
|
486
|
-
const signableBytes = serialize(signable);
|
|
487
|
-
let signatures = await Promise.all(signers.map((signer) => signer(signableBytes)));
|
|
488
|
-
signatures = signatures.sort((a, b) => compare(a.signature, b.signature));
|
|
489
|
-
const encryptedSignatures = [];
|
|
490
|
-
const encryptAllSignaturesWithSameKey = isMaybeEryptionPublicKey(properties.encryption?.receiver?.signatures);
|
|
491
|
-
for (const signature of signatures) {
|
|
492
|
-
const encryptionRecievers = encryptAllSignaturesWithSameKey
|
|
493
|
-
? properties.encryption?.receiver?.signatures
|
|
494
|
-
: properties.encryption?.receiver?.signatures?.[signature.publicKey.hashcode()]; // TODO types
|
|
495
|
-
const signatureEncrypted = await maybeEncrypt(signature, properties.encryption?.keypair, encryptionRecievers);
|
|
496
|
-
encryptedSignatures.push(signatureEncrypted);
|
|
497
|
-
}
|
|
498
|
-
entry._signatures = new Signatures({
|
|
499
|
-
signatures: encryptedSignatures,
|
|
500
|
-
});
|
|
501
|
-
if (properties.canAppend && !(await properties.canAppend(entry))) {
|
|
502
|
-
throw new AccessError();
|
|
503
|
-
}
|
|
504
|
-
// Append hash
|
|
505
|
-
entry.hash = await Entry_1.toMultihash(properties.store, entry);
|
|
506
|
-
entry.init({ encoding: properties.encoding });
|
|
507
|
-
return entry;
|
|
508
|
-
}
|
|
509
|
-
get payloadByteLength() {
|
|
510
|
-
return this._payload.byteLength;
|
|
511
|
-
}
|
|
512
|
-
toShallow(isHead) {
|
|
513
|
-
return new ShallowEntry({
|
|
514
|
-
hash: this.hash,
|
|
515
|
-
payloadSize: this._payload.byteLength,
|
|
516
|
-
head: isHead,
|
|
517
|
-
meta: new Meta({
|
|
518
|
-
gid: this.meta.gid,
|
|
519
|
-
data: this.meta.data,
|
|
520
|
-
clock: this.meta.clock,
|
|
521
|
-
next: this.meta.next,
|
|
522
|
-
type: this.meta.type,
|
|
523
|
-
}),
|
|
524
|
-
});
|
|
7
|
+
return signatures.map((s) => s.publicKey);
|
|
525
8
|
}
|
|
526
9
|
/**
|
|
527
|
-
*
|
|
528
|
-
* @
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
* // "Qm...Foo"
|
|
10
|
+
* Compares two entries.
|
|
11
|
+
* @param {Entry} a
|
|
12
|
+
* @param {Entry} b
|
|
13
|
+
* @returns {number} 1 if a is greater, -1 is b is greater
|
|
532
14
|
*/
|
|
533
|
-
static
|
|
15
|
+
static compare(a, b) {
|
|
16
|
+
const aClock = a.meta.clock;
|
|
17
|
+
const bClock = b.meta.clock;
|
|
18
|
+
const distance = Clock.compare(aClock, bClock);
|
|
19
|
+
if (distance === 0)
|
|
20
|
+
return aClock.id < bClock.id ? -1 : 1;
|
|
21
|
+
return distance;
|
|
22
|
+
}
|
|
23
|
+
static toMultihash(store, entry) {
|
|
534
24
|
if (entry.hash) {
|
|
535
25
|
throw new Error("Expected hash to be missing");
|
|
536
26
|
}
|
|
@@ -538,39 +28,18 @@ let Entry = Entry_1 = class Entry {
|
|
|
538
28
|
entry.size = bytes.length;
|
|
539
29
|
return store.put(bytes);
|
|
540
30
|
}
|
|
541
|
-
|
|
542
|
-
* Create an Entry from a hash.
|
|
543
|
-
* @example
|
|
544
|
-
* const entry = await Entry.fromMultihash(store, "zd...Foo")
|
|
545
|
-
* console.log(entry)
|
|
546
|
-
* // { hash: "Zd...Foo", payload: "hello", next: [] }
|
|
547
|
-
*/
|
|
548
|
-
static async fromMultihash(store, hash, options) {
|
|
31
|
+
static fromMultihash = async (store, hash, options) => {
|
|
549
32
|
if (!hash)
|
|
550
33
|
throw new Error(`Invalid hash: ${hash}`);
|
|
551
34
|
const bytes = await store.get(hash, options);
|
|
552
35
|
if (!bytes) {
|
|
553
36
|
throw new Error("Failed to resolve block: " + hash);
|
|
554
37
|
}
|
|
555
|
-
const entry = deserialize(bytes,
|
|
38
|
+
const entry = deserialize(bytes, Entry);
|
|
556
39
|
entry.hash = hash;
|
|
557
40
|
entry.size = bytes.length;
|
|
558
41
|
return entry;
|
|
559
|
-
}
|
|
560
|
-
/**
|
|
561
|
-
* Compares two entries.
|
|
562
|
-
* @param {Entry} a
|
|
563
|
-
* @param {Entry} b
|
|
564
|
-
* @returns {number} 1 if a is greater, -1 is b is greater
|
|
565
|
-
*/
|
|
566
|
-
static compare(a, b) {
|
|
567
|
-
const aClock = a.meta.clock;
|
|
568
|
-
const bClock = b.meta.clock;
|
|
569
|
-
const distance = Clock.compare(aClock, bClock);
|
|
570
|
-
if (distance === 0)
|
|
571
|
-
return aClock.id < bClock.id ? -1 : 1;
|
|
572
|
-
return distance;
|
|
573
|
-
}
|
|
42
|
+
};
|
|
574
43
|
/**
|
|
575
44
|
* Check if an entry equals another entry.
|
|
576
45
|
* @param {Entry} a
|
|
@@ -587,7 +56,7 @@ let Entry = Entry_1 = class Entry {
|
|
|
587
56
|
* @returns {boolean}
|
|
588
57
|
*/
|
|
589
58
|
static isDirectParent(entry1, entry2) {
|
|
590
|
-
return entry2.next.includes(entry1.hash); // TODO fix types
|
|
59
|
+
return entry2.meta.next.includes(entry1.hash); // TODO fix types
|
|
591
60
|
}
|
|
592
61
|
/**
|
|
593
62
|
* Find entry's children from an Array of entries.
|
|
@@ -598,41 +67,15 @@ let Entry = Entry_1 = class Entry {
|
|
|
598
67
|
*/
|
|
599
68
|
static findDirectChildren(entry, values) {
|
|
600
69
|
let stack = [];
|
|
601
|
-
let parent = values.find((e) =>
|
|
70
|
+
let parent = values.find((e) => Entry.isDirectParent(entry, e));
|
|
602
71
|
let prev = entry;
|
|
603
72
|
while (parent) {
|
|
604
73
|
stack.push(parent);
|
|
605
74
|
prev = parent;
|
|
606
|
-
parent = values.find((e) =>
|
|
75
|
+
parent = values.find((e) => Entry.isDirectParent(prev, e));
|
|
607
76
|
}
|
|
608
77
|
stack = stack.sort((a, b) => Clock.compare(a.meta.clock, b.meta.clock));
|
|
609
78
|
return stack;
|
|
610
79
|
}
|
|
611
|
-
}
|
|
612
|
-
__decorate([
|
|
613
|
-
field({ type: MaybeEncrypted }),
|
|
614
|
-
__metadata("design:type", MaybeEncrypted)
|
|
615
|
-
], Entry.prototype, "_meta", void 0);
|
|
616
|
-
__decorate([
|
|
617
|
-
field({ type: MaybeEncrypted }),
|
|
618
|
-
__metadata("design:type", MaybeEncrypted)
|
|
619
|
-
], Entry.prototype, "_payload", void 0);
|
|
620
|
-
__decorate([
|
|
621
|
-
field({ type: fixedArray("u8", 4) }),
|
|
622
|
-
__metadata("design:type", Uint8Array)
|
|
623
|
-
], Entry.prototype, "_reserved", void 0);
|
|
624
|
-
__decorate([
|
|
625
|
-
field({ type: option(Signatures) }),
|
|
626
|
-
__metadata("design:type", Signatures)
|
|
627
|
-
], Entry.prototype, "_signatures", void 0);
|
|
628
|
-
__decorate([
|
|
629
|
-
field({ type: option("string") }) // we do option because we serialize and store this in a block without the hash, to receive the hash, which we later set
|
|
630
|
-
,
|
|
631
|
-
__metadata("design:type", String)
|
|
632
|
-
], Entry.prototype, "hash", void 0);
|
|
633
|
-
Entry = Entry_1 = __decorate([
|
|
634
|
-
variant(0),
|
|
635
|
-
__metadata("design:paramtypes", [Object])
|
|
636
|
-
], Entry);
|
|
637
|
-
export { Entry };
|
|
80
|
+
}
|
|
638
81
|
//# sourceMappingURL=entry.js.map
|
package/dist/src/entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/entry.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,MAAM,EACN,SAAS,EACT,OAAO,EACP,GAAG,GACH,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACN,WAAW,EACX,cAAc,EACd,gBAAgB,EAEhB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,WAAW,EACX,YAAY,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,IAAI,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAiB,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AASpC,MAAM,wBAAwB,GAAG,CAAC,CAAM,EAAE,EAAE;IAC3C,IAAI,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC,YAAY,eAAe,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,CAAC,gEAAgE;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAYF,SAAS,UAAU,CAAC,GAAe;IAClC,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,KAAa;IACpD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAe;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC3B,CAAC;AAKM,IAAM,OAAO,GAAb,MAAM,OAAO;IAEnB,IAAI,CAAa;IAEjB,QAAQ,CAAc;IAEd,MAAM,CAAK;IAEnB,YAAY,KAA6D;QACxE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,KAAiB;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QACR,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,QAAQ,CAAC,WAAwB,IAAI,CAAC,QAAQ,IAAI,WAAW;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACD,CAAA;AAhCA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BACtB,UAAU;qCAAC;AAFL,OAAO;IADnB,OAAO,CAAC,CAAC,CAAC;;GACE,OAAO,CAkCnB;;AAQD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,6CAAU,CAAA;IACV,uCAAO,CAAA;AACR,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,iBAAiB;AACjB,MAAM,OAAO,IAAI;IAEhB,KAAK,CAAQ;IAGb,GAAG,CAAS,CAAC,WAAW;IAGxB,IAAI,CAAW;IAGf,IAAI,CAAY;IAGhB,IAAI,CAAc,CAAC,oBAAoB;IAEvC,YAAY,UAMX;QACA,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,CAAC;CACD;AA3BA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;8BAChB,KAAK;mCAAC;AAGb;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;iCACd;AAGZ;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;;kCAChB;AAGf;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;kCACN;AAGhB;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;8BAC7B,UAAU;kCAAC;AAkBZ,IAAM,UAAU,GAAhB,MAAM,UAAU;IAEtB,UAAU,CAAsC;IAEhD,YAAY,UAA+D;QAC1E,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,CAAC;IACF,CAAC;IAED,MAAM,CAAC,KAAiB;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACd,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAnBA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;;8CACW;AAFpC,UAAU;IADtB,OAAO,CAAC,CAAC,CAAC;;GACE,UAAU,CAqBtB;;AAED,MAAM,YAAY,GAAG,CACpB,KAAQ,EACR,OAAuB,EACvB,QAAmC,EACc,EAAE;IACnD,MAAM,SAAS,GAAG,QAAQ;QACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,CAAC,QAAQ,CAAC;QACb,CAAC,CAAC,SAAS,CAAC;IACb,IAAI,SAAS,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,cAAc,CAAI;YAC5B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;YACtB,KAAK,EAAE,KAAK;SACZ,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,cAAc,CAAI;QAC5B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;QACtB,KAAK,EAAE,KAAK;KACZ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,YAAY;IAExB,IAAI,CAAS;IAGb,IAAI,CAAO;IAGX,WAAW,CAAS;IAGpB,IAAI,CAAU;IAEd,YAAY,UAKX;QACA,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,CAAC;CACD;AAtBA;IADC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;0CACV;AAGb;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BAChB,IAAI;0CAAC;AAGX;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;iDACH;AAGpB;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACV;AAiBR,IAAM,KAAK,aAAX,MAAM,KAAK;IAIjB,KAAK,CAAuB;IAG5B,QAAQ,CAA6B;IAGrC,SAAS,CAAc;IAGvB,WAAW,CAAc;IAGzB,IAAI,CAAU,CAAC,4DAA4D;IAE3E,cAAc,CAAW;IAEjB,SAAS,CAAY;IACrB,SAAS,CAAe;IAEhC,YAAY,GAOX;QACA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;IAC1C,CAAC;IAED,IAAI,CACH,KAKW;QAEX,IAAI,KAAK,YAAY,OAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC;IACnC,CAAC;IAED,IAAI,OAAO;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QACrD,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU;QACf,IAAI,IAAI,CAAC,QAAQ,YAAY,cAAc,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAEO,KAAK,CAAU;IAEvB,IAAI,IAAI,CAAC,MAAc;QACtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACP,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACd,oEAAoE,CACpE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IACD;;;OAGG;IACH,IAAI,UAAU;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,WAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5D,IAAI,CAAC;gBACJ,oEAAoE;gBACpE,CAAC,CAAC,SAAS,CAAC;gBACZ,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,aAAa;QAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACvC,IAAI,CAAC,WAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAClE,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC1D,KAAK,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAClC,MAAM,CAAC,KAAK,CAAC,0CAA0C,GAAG,CAAC,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB;QACrB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,OAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAiB;QAClC,iBAAiB;QACjB,MAAM,OAAO,GAAG,IAAI,OAAK,CAAC;YACzB,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,OAAO,EAAE,KAAK,CAAC,QAAQ;YACvB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,SAAS;SACf,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,UAAU;QACT,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,OAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAe;QACrB,OAAO,CACN,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,IAAI,CAAC,WAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAY,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CACpC,CAAC,CAAC,6EAA6E;IACjF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,IAAiB;QACjC,OAAO,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAI,UAkBtB;QACA,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACrD,UAAU,GAAG;gBACZ,GAAG,UAAU;gBACb,IAAI,EAAE;oBACL,GAAG,UAAU,EAAE,IAAI;oBACnB,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;iBACxD;gBACD,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;aACjE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpE,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEpD,+CAA+C;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;QAEpC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAI;YACpC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAClD,KAAK,EAAE,UAAU,CAAC,IAAI;YACtB,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC7B,CAAC,CAAC;QAEH,IAAI,KAAK,GAAsB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;YAED,IACC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC1C,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EACnC,CAAC;gBACF,MAAM,IAAI,KAAK,CACd,wMAAwM,CACxM,CAAC;YACH,CAAC;YACD,KAAK,GAAG,IAAI,KAAK,CAAC;gBACjB,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;gBACvC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE;aACpB,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,MAAM,EAAE,GAAG,KAAK,CAAC;YACjB,kGAAkG;YAClG,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClE,MAAM,IAAI,KAAK,CACd,iDAAiD;wBAChD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;wBACtB,KAAK;wBACL,EAAE,CAAC,SAAS,CACb,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,0BAA0B;YAC1B,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACd,4EAA4E,CAC5E,CAAC;YACH,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBACjE,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,GAAG;oBACF,GAAG,IAAI,IAAI;wBACV,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;wBACZ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAI,GAAc;4BAC7B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;4BACZ,CAAC,CAAC,GAAG,CAAC;YACV,CAAC;QACF,CAAC;aAAM,CAAC;YACP,GAAG;gBACF,UAAU,CAAC,IAAI,EAAE,GAAG;oBACpB,CAAC,MAAM,OAAK,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,cAAc,IAAI,EAAE,CAAC,CAAC,eAAe;QAErC,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAC3C,IAAI,IAAI,CAAC;YACR,KAAK;YACL,GAAG,EAAE,GAAI;YACT,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,MAAM;YAC/C,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI;YAC3B,IAAI,EAAE,UAAU;SAChB,CAAC,EACF,UAAU,CAAC,UAAU,EAAE,OAAO,EAC9B,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CACpC,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,YAAY,CACjC,aAAa,EACb,UAAU,CAAC,UAAU,EAAE,OAAO,EAC9B,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CACvC,CAAC;QAEF,iDAAiD;QACjD,MAAM,KAAK,GAAa,IAAI,OAAK,CAAI;YACpC,IAAI,EAAE,iBAAiB;YACvB,OAAO;YACP,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI;YACrC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;SAClD,CAAC;QACF,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAC9C,CAAC;QACF,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAE1E,MAAM,mBAAmB,GAAuC,EAAE,CAAC;QACnE,MAAM,+BAA+B,GAAG,wBAAwB,CAC/D,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAC3C,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,mBAAmB,GAAG,+BAA+B;gBAC1D,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU;gBAC7C,CAAC,CAAE,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAkB,EAAE,CACtD,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAC9B,CAAC,CAAC,aAAa;YAClB,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAC5C,SAAS,EACT,UAAU,CAAC,UAAU,EAAE,OAAO,EAC9B,mBAAmB,CACnB,CAAC;YACF,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC;YAClC,UAAU,EAAE,mBAAmB;SAC/B,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,WAAW,EAAE,CAAC;QACzB,CAAC;QAED,cAAc;QACd,KAAK,CAAC,IAAI,GAAG,MAAM,OAAK,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE9D,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,MAAe;QACxB,OAAO,IAAI,YAAY,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;YACrC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,IAAI,CAAC;gBACd,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;aACpB,CAAC;SACF,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAI,KAAa,EAAE,KAAe;QACzD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACzB,KAAa,EACb,IAAY,EACZ,OAAmD;QAEnD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,OAAO,KAAiB,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAI,CAAW,EAAE,CAAW;QACzC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAI,CAAW,EAAE,CAAW;QACzC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAI,MAAgB,EAAE,MAAgB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAW,CAAC,CAAC,CAAC,iBAAiB;IACnE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACxB,KAAe,EACf,MAAkB;QAElB,IAAI,KAAK,GAAe,EAAE,CAAC;QAC3B,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO,MAAM,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,IAAI,GAAG,MAAM,CAAC;YACd,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AAnhBA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;8BACzB,cAAc;oCAAO;AAG5B;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;8BACtB,cAAc;uCAAa;AAGrC;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;8BACzB,UAAU;wCAAC;AAGvB;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;8BACtB,UAAU;0CAAC;AAGzB;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,wHAAwH;;;mCAC7I;AAhBF,KAAK;IADjB,OAAO,CAAC,CAAC,CAAC;;GACE,KAAK,CAuhBjB"}
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/entry.ts"],"names":[],"mappings":"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"}
|