keri 0.0.8-dev.57bf32e → 0.0.8-dev.a205007
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/cli/main.js +32 -28
- package/dist/cli/main.js.map +1 -1
- package/dist/client.d.ts +5 -9
- package/dist/client.js +42 -46
- package/dist/client.js.map +1 -1
- package/dist/controller.d.ts +10 -8
- package/dist/controller.js +230 -147
- package/dist/controller.js.map +1 -1
- package/dist/events/event-store.d.ts +6 -16
- package/dist/events/event-store.js +43 -31
- package/dist/events/event-store.js.map +1 -1
- package/dist/events/events.d.ts +1 -1
- package/dist/events/events.js +22 -20
- package/dist/events/events.js.map +1 -1
- package/dist/keystore/encrypt.d.ts +3 -2
- package/dist/keystore/encrypt.js +34 -16
- package/dist/keystore/encrypt.js.map +1 -1
- package/dist/keystore/key-manager.d.ts +12 -17
- package/dist/keystore/key-manager.js +30 -60
- package/dist/keystore/key-manager.js.map +1 -1
- package/dist/keystore/pinentry.d.ts +1 -0
- package/dist/keystore/pinentry.js +46 -0
- package/dist/keystore/pinentry.js.map +1 -0
- package/dist/main.d.ts +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/package.json +20 -4
- package/dist/serializer.d.ts +0 -10
- package/dist/serializer.js +0 -83
- package/dist/serializer.js.map +0 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as readline from "node:readline";
|
|
2
|
+
import * as process from "node:process";
|
|
3
|
+
export async function pinentry(prompt) {
|
|
4
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
5
|
+
return new Promise((resolve) => {
|
|
6
|
+
const rl = readline.createInterface({
|
|
7
|
+
input: process.stdin,
|
|
8
|
+
});
|
|
9
|
+
let input = "";
|
|
10
|
+
process.stdout.write(prompt + " ");
|
|
11
|
+
readline.emitKeypressEvents(process.stdin);
|
|
12
|
+
if (process.stdin.isTTY) {
|
|
13
|
+
process.stdin.setRawMode(true);
|
|
14
|
+
}
|
|
15
|
+
const cleanup = () => {
|
|
16
|
+
if (process.stdin.isTTY) {
|
|
17
|
+
process.stdin.setRawMode(false);
|
|
18
|
+
}
|
|
19
|
+
process.stdin.removeListener("keypress", handleKeyPress);
|
|
20
|
+
rl.close();
|
|
21
|
+
process.stdout.write("\n");
|
|
22
|
+
};
|
|
23
|
+
const handleKeyPress = (str, key) => {
|
|
24
|
+
if (key.name === "return") {
|
|
25
|
+
cleanup();
|
|
26
|
+
resolve(input);
|
|
27
|
+
}
|
|
28
|
+
else if (key.name === "escape" || (key.ctrl && key.name === "c")) {
|
|
29
|
+
cleanup();
|
|
30
|
+
resolve(null);
|
|
31
|
+
}
|
|
32
|
+
else if (key.name === "backspace") {
|
|
33
|
+
if (input.length > 0) {
|
|
34
|
+
input = input.slice(0, -1);
|
|
35
|
+
process.stdout.write("\x1B[1D \x1B[1D");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (str && !key.ctrl && !key.meta) {
|
|
39
|
+
input += str;
|
|
40
|
+
process.stdout.write("*");
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
process.stdin.on("keypress", handleKeyPress);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=pinentry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pinentry.js","sourceRoot":"","sources":["../../src/keystore/pinentry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc;IAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAEnC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACzD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,GAAiB,EAAE,EAAE;YACxD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACzC,KAAK,IAAI,GAAG,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/main.d.ts
CHANGED
package/dist/main.js
CHANGED
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,MAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "keri",
|
|
3
|
-
"version": "0.0.8-dev.
|
|
3
|
+
"version": "0.0.8-dev.a205007",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "tsc -p tsconfig.build.json",
|
|
6
6
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
7
7
|
"test": "node --test --test-reporter=spec --no-warnings --experimental-strip-types",
|
|
8
8
|
"test:integration": "npm test -- 'test_integration/**/*.ts'",
|
|
9
|
-
"test:scripts": "node --no-warnings
|
|
9
|
+
"test:scripts": "node --no-warnings scripts/run-scripts.ts",
|
|
10
|
+
"test:example": "./test_examples.sh",
|
|
10
11
|
"lint": "eslint",
|
|
11
|
-
"
|
|
12
|
+
"check": "tsc --noEmit",
|
|
13
|
+
"clean": "node scripts/clean.ts",
|
|
14
|
+
"format": "prettier --write .",
|
|
15
|
+
"format:check": "prettier --check ."
|
|
12
16
|
},
|
|
13
17
|
"bin": {
|
|
14
18
|
"keri": "dist/cli/main.js"
|
|
@@ -24,6 +28,18 @@
|
|
|
24
28
|
"author": "Daniel Lenksjö",
|
|
25
29
|
"license": "Apache-2.0",
|
|
26
30
|
"description": "KERI for JavaScript",
|
|
31
|
+
"devEngines": {
|
|
32
|
+
"runtime": {
|
|
33
|
+
"name": "node",
|
|
34
|
+
"version": ">=24",
|
|
35
|
+
"onFail": "warn"
|
|
36
|
+
},
|
|
37
|
+
"packageManager": {
|
|
38
|
+
"name": "npm",
|
|
39
|
+
"version": ">=11",
|
|
40
|
+
"onFail": "warn"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
27
43
|
"engines": {
|
|
28
44
|
"node": ">=22"
|
|
29
45
|
},
|
|
@@ -32,7 +48,7 @@
|
|
|
32
48
|
"@noble/ed25519": "^3.0.0",
|
|
33
49
|
"@noble/hashes": "^2.0.0",
|
|
34
50
|
"@noble/secp256k1": "^3.0.0",
|
|
35
|
-
"cesr": "^0.0.
|
|
51
|
+
"cesr": "^0.0.23-dev.66c3786",
|
|
36
52
|
"commander": "^14.0.0"
|
|
37
53
|
},
|
|
38
54
|
"devDependencies": {
|
package/dist/serializer.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type KeyEventReceipt, type KeyEventSeal } from "./events/event-store.ts";
|
|
2
|
-
export declare function encodeHexNumber(num: string): string;
|
|
3
|
-
export declare function serializeSignatures(sigs: string[], seal?: KeyEventSeal): string;
|
|
4
|
-
export declare function serializeWitnessSignatures(receipts: KeyEventReceipt[], backers: string[]): string;
|
|
5
|
-
export declare function serializeReceipts(receipts: KeyEventReceipt[]): string;
|
|
6
|
-
export declare function serializePathedGroup(path: string[], attachments: string[]): string;
|
|
7
|
-
export declare function serializeAttachments(attachments: string[]): string;
|
|
8
|
-
export declare function serializeEventSeal(seal: KeyEventSeal): string;
|
|
9
|
-
export declare function serializeDigestSeal(seal: KeyEventSeal): string;
|
|
10
|
-
export declare function getIndexedCode(code: string): string;
|
package/dist/serializer.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { cesr, CountCode_10, encodeAttachmentsV1, encodeBase64Int, encodeCounter, encodeString, IndexCode, MatterCode, } from "cesr/__unstable__";
|
|
2
|
-
export function encodeHexNumber(num) {
|
|
3
|
-
return `${MatterCode.Salt_128}${encodeBase64Int(parseInt(num, 16), 22)}`;
|
|
4
|
-
}
|
|
5
|
-
export function serializeSignatures(sigs, seal) {
|
|
6
|
-
const result = [];
|
|
7
|
-
if (sigs && sigs.length > 0) {
|
|
8
|
-
if (seal && seal.i && seal.s && seal.d) {
|
|
9
|
-
result.push(encodeCounter({
|
|
10
|
-
code: CountCode_10.TransIdxSigGroups,
|
|
11
|
-
count: 1,
|
|
12
|
-
}));
|
|
13
|
-
result.push(seal.i);
|
|
14
|
-
result.push(encodeHexNumber(seal.s));
|
|
15
|
-
result.push(seal.d);
|
|
16
|
-
}
|
|
17
|
-
result.push(encodeCounter({ code: CountCode_10.ControllerIdxSigs, count: sigs.length }));
|
|
18
|
-
result.push(...sigs);
|
|
19
|
-
}
|
|
20
|
-
return result.join("");
|
|
21
|
-
}
|
|
22
|
-
export function serializeWitnessSignatures(receipts, backers) {
|
|
23
|
-
const result = [];
|
|
24
|
-
if (receipts.length > 0) {
|
|
25
|
-
result.push(encodeCounter({ code: CountCode_10.WitnessIdxSigs, count: receipts.length }));
|
|
26
|
-
for (const sig of receipts) {
|
|
27
|
-
const signature = cesr.decodeMatter(sig.signature);
|
|
28
|
-
const index = backers.indexOf(sig.backer);
|
|
29
|
-
if (index === -1) {
|
|
30
|
-
throw new Error(`Unknown backer ${sig.backer}`);
|
|
31
|
-
}
|
|
32
|
-
result.push(cesr.encodeIndexer({
|
|
33
|
-
code: getIndexedCode(signature.code),
|
|
34
|
-
raw: signature.raw,
|
|
35
|
-
index: index,
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return result.join("");
|
|
40
|
-
}
|
|
41
|
-
export function serializeReceipts(receipts) {
|
|
42
|
-
const result = [];
|
|
43
|
-
if (receipts.length > 0) {
|
|
44
|
-
result.push(encodeCounter({ code: CountCode_10.NonTransReceiptCouples, count: receipts.length }));
|
|
45
|
-
result.push(...receipts.map((receipt) => receipt.backer + receipt.signature));
|
|
46
|
-
}
|
|
47
|
-
return result.join("");
|
|
48
|
-
}
|
|
49
|
-
export function serializePathedGroup(path, attachments) {
|
|
50
|
-
const result = [];
|
|
51
|
-
result.push(encodeString(`-${path.join("-")}`));
|
|
52
|
-
result.push(...attachments);
|
|
53
|
-
return (encodeCounter({
|
|
54
|
-
code: CountCode_10.PathedMaterialCouples,
|
|
55
|
-
count: result.join("").length / 4,
|
|
56
|
-
}) + result.join(""));
|
|
57
|
-
}
|
|
58
|
-
export function serializeAttachments(attachments) {
|
|
59
|
-
const result = attachments.join("");
|
|
60
|
-
return `${encodeAttachmentsV1(result.length / 4)}${result}`;
|
|
61
|
-
}
|
|
62
|
-
export function serializeEventSeal(seal) {
|
|
63
|
-
return [
|
|
64
|
-
encodeCounter({ code: CountCode_10.SealSourceTriples, count: 1 }),
|
|
65
|
-
seal.i,
|
|
66
|
-
encodeHexNumber(seal.s),
|
|
67
|
-
seal.d,
|
|
68
|
-
].join("");
|
|
69
|
-
}
|
|
70
|
-
export function serializeDigestSeal(seal) {
|
|
71
|
-
return [encodeCounter({ code: CountCode_10.SealSourceCouples, count: 1 }), encodeHexNumber(seal.s), seal.d].join("");
|
|
72
|
-
}
|
|
73
|
-
export function getIndexedCode(code) {
|
|
74
|
-
switch (code) {
|
|
75
|
-
case MatterCode.Ed25519_Sig:
|
|
76
|
-
return IndexCode.Ed25519_Sig;
|
|
77
|
-
case MatterCode.Ed448_Sig:
|
|
78
|
-
return IndexCode.Ed448_Sig;
|
|
79
|
-
default:
|
|
80
|
-
throw new Error(`Unsupported indexed signature type: ${code}`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=serializer.js.map
|
package/dist/serializer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG,UAAU,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAAE,IAAmB;IACrE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CACT,aAAa,CAAC;gBACZ,IAAI,EAAE,YAAY,CAAC,iBAAiB;gBACpC,KAAK,EAAE,CAAC;aACT,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA2B,EAAE,OAAiB;IACvF,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE1F,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,aAAa,CAAC;gBACjB,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpC,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,KAAK,EAAE,KAAK;aACb,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,sBAAsB,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAc,EAAE,WAAqB;IACxE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAE5B,OAAO,CACL,aAAa,CAAC;QACZ,IAAI,EAAE,YAAY,CAAC,qBAAqB;QACxC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;KAClC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAqB;IACxD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAkB;IACnD,OAAO;QACL,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,CAAC;QACN,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC;KACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAkB;IACpD,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,WAAW;YACzB,OAAO,SAAS,CAAC,WAAW,CAAC;QAC/B,KAAK,UAAU,CAAC,SAAS;YACvB,OAAO,SAAS,CAAC,SAAS,CAAC;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}
|