@rkat/sdk 0.7.31 → 0.8.1

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.
@@ -1,4 +1,51 @@
1
1
  // Generated error types for Meerkat SDK
2
+ export const MULTI_HOST_JSON_RPC_ERROR_CODES = {
3
+ [-32025]: "SCOPE_DENIED",
4
+ [-32026]: "HOST_UNAVAILABLE",
5
+ [-32027]: "STALE_CURSOR",
6
+ [-32028]: "STALE_FENCE",
7
+ };
8
+ function isErrorDetailRecord(value) {
9
+ return typeof value === "object" && value !== null && !Array.isArray(value);
10
+ }
11
+ function isScopeDeniedDetail(value) {
12
+ if (!isErrorDetailRecord(value))
13
+ return false;
14
+ const allowed = ["presented", "required"];
15
+ if (!Object.keys(value).every((key) => allowed.includes(key)))
16
+ return false;
17
+ return (Object.prototype.hasOwnProperty.call(value, "presented") && (Array.isArray(value.presented) && value.presented.every((item) => (item === "list" || item === "read_history" || item === "subscribe_events" || item === "send_command" || item === "cancel" || item === "retire" || item === "wire_topology" || item === "live" || item === "admin_host" || item === "admin_grants"))) &&
18
+ Object.prototype.hasOwnProperty.call(value, "required") && (value.required === "list" || value.required === "read_history" || value.required === "subscribe_events" || value.required === "send_command" || value.required === "cancel" || value.required === "retire" || value.required === "wire_topology" || value.required === "live" || value.required === "admin_host" || value.required === "admin_grants"));
19
+ }
20
+ function isHostUnavailableDetail(value) {
21
+ if (!isErrorDetailRecord(value))
22
+ return false;
23
+ const allowed = ["host", "timeout_ms"];
24
+ if (!Object.keys(value).every((key) => allowed.includes(key)))
25
+ return false;
26
+ return ((!Object.prototype.hasOwnProperty.call(value, "host") || (typeof value.host === "string" || value.host === null)) &&
27
+ (!Object.prototype.hasOwnProperty.call(value, "timeout_ms") || ((typeof value.timeout_ms === "number" && Number.isFinite(value.timeout_ms) && Number.isSafeInteger(value.timeout_ms) && value.timeout_ms >= 0) || value.timeout_ms === null)));
28
+ }
29
+ function isStaleCursorDetail(value) {
30
+ if (!isErrorDetailRecord(value))
31
+ return false;
32
+ const allowed = ["generation", "requested", "watermark"];
33
+ if (!Object.keys(value).every((key) => allowed.includes(key)))
34
+ return false;
35
+ return ((!Object.prototype.hasOwnProperty.call(value, "generation") || ((typeof value.generation === "number" && Number.isFinite(value.generation) && Number.isSafeInteger(value.generation) && value.generation >= 0) || value.generation === null)) &&
36
+ (!Object.prototype.hasOwnProperty.call(value, "requested") || ((typeof value.requested === "number" && Number.isFinite(value.requested) && Number.isSafeInteger(value.requested) && value.requested >= 0) || value.requested === null)) &&
37
+ Object.prototype.hasOwnProperty.call(value, "watermark") && (typeof value.watermark === "number" && Number.isFinite(value.watermark) && Number.isSafeInteger(value.watermark) && value.watermark >= 0));
38
+ }
39
+ function isStaleFenceDetail(value) {
40
+ if (!isErrorDetailRecord(value))
41
+ return false;
42
+ const allowed = ["actual", "expected", "runtime_id"];
43
+ if (!Object.keys(value).every((key) => allowed.includes(key)))
44
+ return false;
45
+ return ((!Object.prototype.hasOwnProperty.call(value, "actual") || ((typeof value.actual === "number" && Number.isFinite(value.actual) && Number.isSafeInteger(value.actual) && value.actual >= 0) || value.actual === null)) &&
46
+ (!Object.prototype.hasOwnProperty.call(value, "expected") || ((typeof value.expected === "number" && Number.isFinite(value.expected) && Number.isSafeInteger(value.expected) && value.expected >= 0) || value.expected === null)) &&
47
+ (!Object.prototype.hasOwnProperty.call(value, "runtime_id") || (typeof value.runtime_id === "string" || value.runtime_id === null)));
48
+ }
2
49
  export class MeerkatError extends Error {
3
50
  code;
4
51
  details;
@@ -29,4 +76,68 @@ export class SkillNotFoundError extends MeerkatError {
29
76
  this.name = 'SkillNotFoundError';
30
77
  }
31
78
  }
79
+ export class ScopeDeniedError extends MeerkatError {
80
+ constructor(message, details, capabilityHint) {
81
+ super("SCOPE_DENIED", message, details, capabilityHint);
82
+ this.name = "ScopeDeniedError";
83
+ }
84
+ }
85
+ export class HostUnavailableError extends MeerkatError {
86
+ constructor(message, details, capabilityHint) {
87
+ super("HOST_UNAVAILABLE", message, details, capabilityHint);
88
+ this.name = "HostUnavailableError";
89
+ }
90
+ }
91
+ export class StaleCursorError extends MeerkatError {
92
+ constructor(message, details, capabilityHint) {
93
+ super("STALE_CURSOR", message, details, capabilityHint);
94
+ this.name = "StaleCursorError";
95
+ }
96
+ }
97
+ export class StaleFenceError extends MeerkatError {
98
+ constructor(message, details, capabilityHint) {
99
+ super("STALE_FENCE", message, details, capabilityHint);
100
+ this.name = "StaleFenceError";
101
+ }
102
+ }
103
+ export function meerkatErrorFromSemanticCode(code, message, details, capabilityHint) {
104
+ if (code === "SCOPE_DENIED" && isScopeDeniedDetail(details)) {
105
+ return new ScopeDeniedError(message, details, capabilityHint);
106
+ }
107
+ if (code === "HOST_UNAVAILABLE" && isHostUnavailableDetail(details)) {
108
+ return new HostUnavailableError(message, details, capabilityHint);
109
+ }
110
+ if (code === "STALE_CURSOR" && isStaleCursorDetail(details)) {
111
+ return new StaleCursorError(message, details, capabilityHint);
112
+ }
113
+ if (code === "STALE_FENCE" && isStaleFenceDetail(details)) {
114
+ return new StaleFenceError(message, details, capabilityHint);
115
+ }
116
+ return new MeerkatError(code, message, details, capabilityHint);
117
+ }
118
+ function normalizeJsonRpcCode(code) {
119
+ if (typeof code === "number") {
120
+ return Number.isInteger(code) ? code : undefined;
121
+ }
122
+ if (!/^-?\d+$/.test(code))
123
+ return undefined;
124
+ const parsed = Number(code);
125
+ return Number.isSafeInteger(parsed) && String(parsed) === code ? parsed : undefined;
126
+ }
127
+ export function meerkatErrorFromJsonRpcCode(rpcCode, semanticCode, message, details, capabilityHint) {
128
+ const normalizedRpcCode = normalizeJsonRpcCode(rpcCode);
129
+ const mappedSemantic = normalizedRpcCode === undefined
130
+ ? undefined
131
+ : MULTI_HOST_JSON_RPC_ERROR_CODES[normalizedRpcCode];
132
+ if (semanticCode !== undefined) {
133
+ if (mappedSemantic !== undefined && mappedSemantic !== semanticCode) {
134
+ return new MeerkatError(semanticCode, message, details, capabilityHint);
135
+ }
136
+ return meerkatErrorFromSemanticCode(semanticCode, message, details, capabilityHint);
137
+ }
138
+ if (mappedSemantic !== undefined) {
139
+ return meerkatErrorFromSemanticCode(mappedSemantic, message, details, capabilityHint);
140
+ }
141
+ return new MeerkatError(String(rpcCode), message, details, capabilityHint);
142
+ }
32
143
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generated/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,MAAM,OAAO,YAAa,SAAQ,KAAK;IAEnB;IAEA;IACA;IAJlB,YACkB,IAAY,EAC5B,OAAe,EACC,OAAiB,EACjB,cAA2D;QAE3E,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAQ;QAEZ,YAAO,GAAP,OAAO,CAAU;QACjB,mBAAc,GAAd,cAAc,CAA6C;QAG3E,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,YAAY;IAC1D,YAAY,IAAY,EAAE,OAAe,EAAE,OAAiB,EAAE,cAA2D;QACvH,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generated/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AA0BxC,MAAM,CAAC,MAAM,+BAA+B,GAExC;IACF,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc;IACxB,CAAC,CAAC,KAAK,CAAC,EAAE,kBAAkB;IAC5B,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc;IACxB,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa;CACxB,CAAC;AAEF,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,UAAU,CAAsB,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CACL,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;QACpX,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,IAAI,KAAK,CAAC,QAAQ,KAAK,kBAAkB,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,CAAC,CACnZ,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,YAAY,CAAsB,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CACL,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjH,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAC9O,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAsB,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CACL,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;QAC7O,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;QACvO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CACvM,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAsB,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CACL,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QACrN,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QACjO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CACpI,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IAEnB;IAEA;IACA;IAJlB,YACkB,IAAY,EAC5B,OAAe,EACC,OAAiB,EACjB,cAA2D;QAE3E,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAQ;QAEZ,YAAO,GAAP,OAAO,CAAU;QACjB,mBAAc,GAAd,cAAc,CAA6C;QAG3E,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,YAAY;IAC1D,YAAY,IAAY,EAAE,OAAe,EAAE,OAAiB,EAAE,cAA2D;QACvH,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAEhD,YACE,OAAe,EACf,OAA8B,EAC9B,cAA2D;QAE3D,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAEpD,YACE,OAAe,EACf,OAAkC,EAClC,cAA2D;QAE3D,KAAK,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAEhD,YACE,OAAe,EACf,OAA8B,EAC9B,cAA2D;QAE3D,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAE/C,YACE,OAAe,EACf,OAA6B,EAC7B,cAA2D;QAE3D,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAAY,EACZ,OAAe,EACf,OAAiB,EACjB,cAA2D;IAE3D,IAAI,IAAI,KAAK,cAAc,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,KAAK,kBAAkB,IAAI,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAqB;IACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAwB,EACxB,YAAgC,EAChC,OAAe,EACf,OAAiB,EACjB,cAA2D;IAE3D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,cAAc,GAClB,iBAAiB,KAAK,SAAS;QAC7B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,CAAC;IACzD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;YACpE,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,4BAA4B,CACjC,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,CACf,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,4BAA4B,CACjC,cAAc,EACd,OAAO,EACP,OAAO,EACP,cAAc,CACf,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AAC7E,CAAC"}