@aeptus/aexeo-emdash 0.8.19 → 0.9.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.
- package/CHANGELOG.md +112 -2
- package/INSTALL.md +286 -4
- package/README.md +20 -5
- package/dist/adapter.d.ts +62 -4
- package/dist/adapter.d.ts.map +1 -1
- package/dist/admin/Findings.d.ts.map +1 -1
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +73 -6
- package/dist/assessment-display.d.ts +10 -0
- package/dist/assessment-display.d.ts.map +1 -0
- package/dist/cms-coverage.d.ts +10 -0
- package/dist/cms-coverage.d.ts.map +1 -0
- package/dist/configured.d.ts +16 -1
- package/dist/configured.d.ts.map +1 -1
- package/dist/configured.js +1341 -172
- package/dist/content-evaluator.d.ts +34 -0
- package/dist/content-evaluator.d.ts.map +1 -0
- package/dist/content.d.ts +98 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +445 -0
- package/dist/data-route.d.ts +12 -1
- package/dist/data-route.d.ts.map +1 -1
- package/dist/evaluator-sandbox.d.ts +1 -1
- package/dist/evaluator-sandbox.d.ts.map +1 -1
- package/dist/evaluator.d.ts +1 -1
- package/dist/evaluator.d.ts.map +1 -1
- package/dist/findings-view.d.ts +11 -5
- package/dist/findings-view.d.ts.map +1 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +163 -4
- package/dist/inventory.d.ts +59 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/plugin.d.ts +59 -3
- package/dist/plugin.d.ts.map +1 -1
- package/dist/presence-check.d.ts +1 -0
- package/dist/presence-check.d.ts.map +1 -1
- package/dist/sandbox-entry.d.ts +2 -1
- package/dist/sandbox-entry.d.ts.map +1 -1
- package/dist/sandbox-entry.js +1077 -190
- package/dist/sandbox.d.ts +2 -2
- package/dist/sidecar-url.d.ts.map +1 -1
- package/dist/sidecar.d.ts +9 -1
- package/dist/sidecar.d.ts.map +1 -1
- package/dist/types.d.ts +26 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/wasm-init.d.ts +8 -0
- package/dist/wasm-init.d.ts.map +1 -1
- package/package.json +28 -8
- package/wasm/aexeo_emdash_bridge.d.ts +22 -0
- package/wasm/aexeo_emdash_bridge.js +1 -1
- package/wasm/aexeo_emdash_bridge_bg.d.ts +15 -0
- package/wasm/aexeo_emdash_bridge_bg.js +130 -0
- package/wasm/aexeo_emdash_bridge_bg.wasm +0 -0
- package/wasm/aexeo_emdash_bridge_bg.wasm.d.ts +4 -0
package/dist/admin.js
CHANGED
|
@@ -163,10 +163,10 @@ function PillarView({
|
|
|
163
163
|
/* @__PURE__ */ jsx(SeverityBadge, { severity: finding.severity }),
|
|
164
164
|
/* @__PURE__ */ jsx("code", { className: "font-mono text-xs", children: finding.rule_id }),
|
|
165
165
|
/* @__PURE__ */ jsx("span", { className: "flex-1", children: finding.message }),
|
|
166
|
-
finding.layers?.secondaries
|
|
166
|
+
finding.layers?.secondaries?.length ? /* @__PURE__ */ jsx(SecondariesChips, { layers: finding.layers.secondaries }) : null
|
|
167
167
|
] }, i)) })
|
|
168
168
|
] }),
|
|
169
|
-
findings.length === 0 ? sitewide.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-sm text-kumo-subtle", children: "
|
|
169
|
+
findings.length === 0 ? sitewide.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-sm text-kumo-subtle", children: "No findings from the available CMS checks on this layer." }) : null : /* @__PURE__ */ jsx("div", { className: "overflow-x-auto rounded border border-kumo-line", children: /* @__PURE__ */ jsxs("table", { className: "w-full text-left text-sm", children: [
|
|
170
170
|
/* @__PURE__ */ jsx("thead", { className: "bg-kumo-tint", children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
171
171
|
/* @__PURE__ */ jsx("th", { className: "px-3 py-2 font-medium text-kumo-subtle", children: "Route" }),
|
|
172
172
|
/* @__PURE__ */ jsx("th", { className: "px-3 py-2 font-medium text-kumo-subtle", children: "Rule" }),
|
|
@@ -181,7 +181,7 @@ function PillarView({
|
|
|
181
181
|
/* @__PURE__ */ jsx("td", { className: "px-3 py-2 align-top", children: /* @__PURE__ */ jsx("code", { className: "rounded bg-kumo-tint px-1.5 py-0.5 font-mono text-xs", children: finding.rule_id }) }),
|
|
182
182
|
/* @__PURE__ */ jsx("td", { className: "px-3 py-2 align-top", children: /* @__PURE__ */ jsx(SeverityBadge, { severity: finding.severity }) }),
|
|
183
183
|
/* @__PURE__ */ jsx("td", { className: "px-3 py-2 align-top", children: finding.message }),
|
|
184
|
-
/* @__PURE__ */ jsx("td", { className: "px-3 py-2 align-top", children: finding.layers?.secondaries
|
|
184
|
+
/* @__PURE__ */ jsx("td", { className: "px-3 py-2 align-top", children: finding.layers?.secondaries?.length ? /* @__PURE__ */ jsx(SecondariesChips, { layers: finding.layers.secondaries }) : /* @__PURE__ */ jsx("span", { className: "text-xs text-kumo-subtle", children: "\u2014" }) })
|
|
185
185
|
] }, i);
|
|
186
186
|
}) })
|
|
187
187
|
] }) })
|
|
@@ -800,6 +800,27 @@ function EntityLegitimacy() {
|
|
|
800
800
|
|
|
801
801
|
// src/admin/Findings.tsx
|
|
802
802
|
import { useCallback as useCallback4, useEffect as useEffect4, useState as useState4 } from "react";
|
|
803
|
+
|
|
804
|
+
// src/cms-coverage.ts
|
|
805
|
+
function cmsBodyCoverageNotice(coverage) {
|
|
806
|
+
if (coverage === "complete") return void 0;
|
|
807
|
+
return coverage === void 0 ? "Body coverage is unknown for this evaluation; save or refresh to reassess it." : `Body coverage is ${coverage}; content checks depending on missing capabilities cannot be evaluated reliably.`;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
// src/assessment-display.ts
|
|
811
|
+
function describeGate(gate) {
|
|
812
|
+
const status = gate.status === "not_checked" ? "not checked" : gate.status;
|
|
813
|
+
const reason = gate.status === "not_checked" ? `: ${gate.reason ?? "required input unavailable"}` : "";
|
|
814
|
+
const metrics = Object.entries(gate.measurements ?? {}).map(([key, value]) => `${key.replaceAll("_", " ")}: ${value}`).join(", ");
|
|
815
|
+
return `${gate.gate_id} ${status}${reason} (${gate.blocking ? "blocking" : "advisory"})${metrics ? ` \u2014 ${metrics}` : ""}`;
|
|
816
|
+
}
|
|
817
|
+
function summarizeGates(gates) {
|
|
818
|
+
const counts = { passed: 0, failed: 0, not_checked: 0 };
|
|
819
|
+
for (const gate of gates) counts[gate.status]++;
|
|
820
|
+
return `${gates.length} configured checks: ${counts.passed} passed, ${counts.failed} failed, ${counts.not_checked} not checked`;
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
// src/admin/Findings.tsx
|
|
803
824
|
import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
804
825
|
var PLUGIN_ID4 = "aexeo-emdash";
|
|
805
826
|
var API_BASE4 = "/_emdash/api";
|
|
@@ -888,6 +909,7 @@ function Findings() {
|
|
|
888
909
|
if (payload === null) {
|
|
889
910
|
return /* @__PURE__ */ jsx8("div", { className: "p-4 text-sm text-kumo-subtle", children: "No data." });
|
|
890
911
|
}
|
|
912
|
+
const missingAssessments = payload.routes.filter((route) => route.assessment === void 0).length;
|
|
891
913
|
const routesByPath = /* @__PURE__ */ new Map();
|
|
892
914
|
for (const route of payload.routes) {
|
|
893
915
|
routesByPath.set(route.route, route);
|
|
@@ -896,7 +918,7 @@ function Findings() {
|
|
|
896
918
|
/* @__PURE__ */ jsxs5("header", { className: "flex items-center justify-between gap-4", children: [
|
|
897
919
|
/* @__PURE__ */ jsxs5("div", { children: [
|
|
898
920
|
/* @__PURE__ */ jsx8("h1", { className: "text-xl font-semibold", children: "SEO findings" }),
|
|
899
|
-
/* @__PURE__ */ jsx8("p", { className: "mt-1 text-sm text-kumo-subtle", children: payload.totals.findings === 0 ? /* @__PURE__ */ jsx8(Fragment2, { children: "No
|
|
921
|
+
/* @__PURE__ */ jsx8("p", { className: "mt-1 text-sm text-kumo-subtle", children: payload.totals.findings === 0 ? /* @__PURE__ */ jsx8(Fragment2, { children: payload.totals.documentsIndexed === 0 ? "No CMS records indexed yet." : "No findings from the available CMS checks." }) : /* @__PURE__ */ jsxs5(Fragment2, { children: [
|
|
900
922
|
payload.totals.findings,
|
|
901
923
|
" findings across ",
|
|
902
924
|
payload.totals.routes,
|
|
@@ -919,7 +941,19 @@ function Findings() {
|
|
|
919
941
|
}
|
|
920
942
|
)
|
|
921
943
|
] }),
|
|
944
|
+
/* @__PURE__ */ jsx8("p", { className: "text-sm text-kumo-subtle", children: "Rendered page markup, generated metadata and sitewide link inventory are not checked here. Audit the built site for page-level and link findings." }),
|
|
945
|
+
missingAssessments > 0 && /* @__PURE__ */ jsxs5("p", { className: "rounded border border-kumo-line p-3 text-sm", children: [
|
|
946
|
+
"No content preset assessment was recorded for ",
|
|
947
|
+
missingAssessments,
|
|
948
|
+
" document(s); absence of findings is not an editorial quality assessment."
|
|
949
|
+
] }),
|
|
922
950
|
toast !== null && /* @__PURE__ */ jsx8("div", { className: "rounded border border-kumo-line bg-kumo-tint p-3 text-sm", children: toast }),
|
|
951
|
+
payload.sitewideAssessment?.status === "error" && /* @__PURE__ */ jsxs5("p", { className: "rounded border border-kumo-line p-3 text-sm", children: [
|
|
952
|
+
"Sitewide checks unavailable: ",
|
|
953
|
+
payload.sitewideAssessment.reason,
|
|
954
|
+
". ",
|
|
955
|
+
payload.sitewideAssessment.detail
|
|
956
|
+
] }),
|
|
923
957
|
payload.sitewideFindings.length > 0 && /* @__PURE__ */ jsxs5("section", { className: "rounded border border-kumo-line p-3", children: [
|
|
924
958
|
/* @__PURE__ */ jsx8("h2", { className: "text-sm font-medium", children: "Sitewide" }),
|
|
925
959
|
/* @__PURE__ */ jsx8("ul", { className: "mt-2 space-y-1 text-sm", children: payload.sitewideFindings.map((finding, i) => /* @__PURE__ */ jsxs5("li", { className: "flex items-start gap-2", children: [
|
|
@@ -928,7 +962,25 @@ function Findings() {
|
|
|
928
962
|
/* @__PURE__ */ jsx8("span", { className: "flex-1", children: finding.message })
|
|
929
963
|
] }, i)) })
|
|
930
964
|
] }),
|
|
931
|
-
payload.
|
|
965
|
+
payload.routes.filter((route) => route.assessment !== void 0 || route.body_coverage !== "complete").map((route) => /* @__PURE__ */ jsxs5("section", { className: "rounded border border-kumo-line p-3 text-sm", children: [
|
|
966
|
+
/* @__PURE__ */ jsx8("strong", { children: route.route }),
|
|
967
|
+
route.assessment?.status !== "error" && cmsBodyCoverageNotice(route.body_coverage) && /* @__PURE__ */ jsx8("p", { children: cmsBodyCoverageNotice(route.body_coverage) }),
|
|
968
|
+
route.assessment?.status === "error" ? /* @__PURE__ */ jsxs5("p", { children: [
|
|
969
|
+
"Evaluation failed: ",
|
|
970
|
+
route.assessment.reason,
|
|
971
|
+
". Findings are unavailable for this revision."
|
|
972
|
+
] }) : route.assessment?.status === "evaluated" ? /* @__PURE__ */ jsxs5("details", { children: [
|
|
973
|
+
/* @__PURE__ */ jsxs5("summary", { children: [
|
|
974
|
+
"Content preset: ",
|
|
975
|
+
route.assessment.preset,
|
|
976
|
+
" \u2014 ",
|
|
977
|
+
summarizeGates(route.assessment.gates)
|
|
978
|
+
] }),
|
|
979
|
+
/* @__PURE__ */ jsx8("p", { children: "Results cover only these configured checks." }),
|
|
980
|
+
/* @__PURE__ */ jsx8("ul", { children: route.assessment.gates.map((gate) => /* @__PURE__ */ jsx8("li", { children: describeGate(gate) }, gate.gate_id)) })
|
|
981
|
+
] }) : null
|
|
982
|
+
] }, route.route)),
|
|
983
|
+
payload.findings.length === 0 ? /* @__PURE__ */ jsx8("p", { className: "text-sm text-kumo-subtle", children: payload.totals.documentsIndexed === 0 ? "No documents indexed \u2014 click Refresh to do an initial sweep." : "No findings from the available CMS checks." }) : /* @__PURE__ */ jsx8("div", { className: "overflow-x-auto rounded border border-kumo-line", children: /* @__PURE__ */ jsxs5("table", { className: "w-full text-left text-sm", children: [
|
|
932
984
|
/* @__PURE__ */ jsx8("thead", { className: "bg-kumo-tint", children: /* @__PURE__ */ jsxs5("tr", { children: [
|
|
933
985
|
/* @__PURE__ */ jsx8("th", { className: "px-3 py-2 font-medium text-kumo-subtle", children: "Route" }),
|
|
934
986
|
/* @__PURE__ */ jsx8("th", { className: "px-3 py-2 font-medium text-kumo-subtle", children: "Rule" }),
|
|
@@ -941,7 +993,22 @@ function Findings() {
|
|
|
941
993
|
/* @__PURE__ */ jsx8("td", { className: "px-3 py-2 align-top", children: /* @__PURE__ */ jsx8(RouteLinks2, { finding, info: routeInfo }) }),
|
|
942
994
|
/* @__PURE__ */ jsx8("td", { className: "px-3 py-2 align-top", children: /* @__PURE__ */ jsx8("code", { className: "rounded bg-kumo-tint px-1.5 py-0.5 font-mono text-xs", children: finding.rule_id }) }),
|
|
943
995
|
/* @__PURE__ */ jsx8("td", { className: "px-3 py-2 align-top", children: /* @__PURE__ */ jsx8(SeverityBadge2, { severity: finding.severity }) }),
|
|
944
|
-
/* @__PURE__ */
|
|
996
|
+
/* @__PURE__ */ jsxs5("td", { className: "px-3 py-2 align-top", children: [
|
|
997
|
+
finding.message,
|
|
998
|
+
finding.aexeo_cms_location ? /* @__PURE__ */ jsxs5("div", { className: "text-xs text-kumo-subtle", children: [
|
|
999
|
+
"CMS path ",
|
|
1000
|
+
JSON.stringify(finding.aexeo_cms_location.path),
|
|
1001
|
+
", UTF-16 offset ",
|
|
1002
|
+
finding.aexeo_cms_location.utf16_offset
|
|
1003
|
+
] }) : finding.aexeo_source_location ? /* @__PURE__ */ jsxs5("div", { className: "text-xs text-kumo-subtle", children: [
|
|
1004
|
+
"Projected body: block ",
|
|
1005
|
+
finding.aexeo_source_location.block_index + 1,
|
|
1006
|
+
", span ",
|
|
1007
|
+
finding.aexeo_source_location.span_index + 1,
|
|
1008
|
+
", UTF-16 offset ",
|
|
1009
|
+
finding.aexeo_source_location.utf16_offset
|
|
1010
|
+
] }) : finding.aexeo_origin === "content_preset" ? /* @__PURE__ */ jsx8("div", { className: "text-xs text-kumo-subtle", children: "Projected location unavailable" }) : null
|
|
1011
|
+
] })
|
|
945
1012
|
] }, i);
|
|
946
1013
|
}) })
|
|
947
1014
|
] }) })
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DocumentAssessment } from "./plugin.js";
|
|
2
|
+
type Gate = Extract<DocumentAssessment, {
|
|
3
|
+
status: "evaluated";
|
|
4
|
+
}>["gates"][number];
|
|
5
|
+
/** Plain text for both admin renderers; measurements may be absent on older records. */
|
|
6
|
+
export declare function describeGate(gate: Gate): string;
|
|
7
|
+
/** Counts describe only the gates that were configured, including unchecked gates. */
|
|
8
|
+
export declare function summarizeGates(gates: readonly Gate[]): string;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=assessment-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assessment-display.d.ts","sourceRoot":"","sources":["../src/assessment-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,KAAK,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK/C;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM,CAI7D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EmdashDocument, Finding } from "./types.js";
|
|
2
|
+
export declare function isCmsObservableFinding(finding: Finding, bodyComplete?: boolean): boolean;
|
|
3
|
+
export declare function isLegacyCmsObservableFinding(finding: Finding, bodyComplete?: boolean): boolean;
|
|
4
|
+
export declare function hasCompleteBody(document: EmdashDocument): boolean;
|
|
5
|
+
/** Coverage of the body supplied for one evaluation, not of the rendered page. */
|
|
6
|
+
export type CmsBodyCoverage = "complete" | "partial" | "unavailable";
|
|
7
|
+
export declare function cmsBodyCoverage(document: EmdashDocument): CmsBodyCoverage;
|
|
8
|
+
/** Short editor-facing explanation; absent coverage is a legacy or failed result. */
|
|
9
|
+
export declare function cmsBodyCoverageNotice(coverage: CmsBodyCoverage | undefined): string | undefined;
|
|
10
|
+
//# sourceMappingURL=cms-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-coverage.d.ts","sourceRoot":"","sources":["../src/cms-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAS1D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,UAAO,GAAG,OAAO,CAErF;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,UAAO,GAAG,OAAO,CAK3F;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAIjE;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAErE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,eAAe,CAGzE;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK/F"}
|
package/dist/configured.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { Suppression } from "./suppressions.js";
|
|
2
|
+
import type { ContentPresetOptions, ExternalGateProvider, ExternalGateTelemetry, LinkObservationProvider, LinkProviderTelemetry } from "./content-evaluator.js";
|
|
3
|
+
export type { ExternalGateProvider, ExternalGateTelemetry, LinkObservationProvider, LinkProviderTelemetry } from "./content-evaluator.js";
|
|
4
|
+
import type { CustomBlockMappings } from "./adapter.js";
|
|
2
5
|
export interface ConfiguredPluginOptions {
|
|
6
|
+
blockMappings?: CustomBlockMappings;
|
|
7
|
+
contentFieldsByCollection?: Record<string, readonly string[]>;
|
|
8
|
+
descriptionFieldsByCollection?: Record<string, readonly string[]>;
|
|
9
|
+
/** Optional portable preset evaluated in addition to the existing site checks. */
|
|
10
|
+
contentPreset?: ContentPresetOptions;
|
|
3
11
|
/**
|
|
4
12
|
* Full override of the swept collections. See `aexeoPlugin` in
|
|
5
13
|
* src/index.ts for the full precedence story.
|
|
@@ -23,6 +31,13 @@ export interface ConfiguredPluginOptions {
|
|
|
23
31
|
*/
|
|
24
32
|
suppressions?: readonly Suppression[];
|
|
25
33
|
}
|
|
26
|
-
|
|
34
|
+
/** Runtime-only dependencies must be installed by trusted host code, not JSON options. */
|
|
35
|
+
export interface ConfiguredPluginRuntime {
|
|
36
|
+
externalGates?: ExternalGateProvider;
|
|
37
|
+
onExternalGateTelemetry?: (event: ExternalGateTelemetry) => void;
|
|
38
|
+
linkObservations?: LinkObservationProvider;
|
|
39
|
+
onLinkProviderTelemetry?: (event: LinkProviderTelemetry) => void;
|
|
40
|
+
}
|
|
41
|
+
export declare function createPlugin(options?: ConfiguredPluginOptions, runtime?: ConfiguredPluginRuntime): unknown;
|
|
27
42
|
export default createPlugin;
|
|
28
43
|
//# sourceMappingURL=configured.d.ts.map
|
package/dist/configured.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configured.d.ts","sourceRoot":"","sources":["../src/configured.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configured.d.ts","sourceRoot":"","sources":["../src/configured.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AAKxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAChK,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC1I,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,cAAc,CAAC;AAuH3E,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC9D,6BAA6B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAClE,kFAAkF;IAClF,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEhC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACvC;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjE,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAClE;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,uBAA4B,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAsJlH;eAIc,YAAY"}
|