@aeptus/aexeo-emdash 0.6.0 → 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.
- package/CHANGELOG.md +144 -1
- package/dist/admin/Absorbability.d.ts +3 -0
- package/dist/admin/Absorbability.d.ts.map +1 -0
- package/dist/admin/Citability.d.ts +3 -0
- package/dist/admin/Citability.d.ts.map +1 -0
- package/dist/admin/EntityLegitimacy.d.ts +3 -0
- package/dist/admin/EntityLegitimacy.d.ts.map +1 -0
- package/dist/admin/EntityPresence.d.ts +3 -0
- package/dist/admin/EntityPresence.d.ts.map +1 -0
- package/dist/admin/PillarView.d.ts +7 -0
- package/dist/admin/PillarView.d.ts.map +1 -0
- package/dist/admin/Retrievability.d.ts +3 -0
- package/dist/admin/Retrievability.d.ts.map +1 -0
- package/dist/admin.d.ts +8 -0
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +652 -123
- package/dist/configured.d.ts.map +1 -1
- package/dist/configured.js +423 -16
- package/dist/data-route.d.ts +8 -0
- package/dist/data-route.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/presence-check.d.ts +22 -0
- package/dist/presence-check.d.ts.map +1 -0
- package/dist/presence-route.d.ts +7 -0
- package/dist/presence-route.d.ts.map +1 -0
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/wasm/aexeo_emdash_bridge_bg.wasm +0 -0
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":"AAgCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmFrD,MAAM,WAAW,uBAAuB;IACtC;;;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,wBAAgB,YAAY,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CA2H3E;AAID,eAAe,YAAY,CAAC"}
|
package/dist/configured.js
CHANGED
|
@@ -528,6 +528,7 @@ async function buildFindingsPayload(ctx) {
|
|
|
528
528
|
if (cached !== void 0 && cached !== null) {
|
|
529
529
|
sitewide.push(...cached.findings);
|
|
530
530
|
}
|
|
531
|
+
const layerBreakdown = computeLayerBreakdown([...findings, ...sitewide]);
|
|
531
532
|
return {
|
|
532
533
|
routes,
|
|
533
534
|
findings,
|
|
@@ -538,9 +539,31 @@ async function buildFindingsPayload(ctx) {
|
|
|
538
539
|
warnings: findings.filter((f) => f.severity === "warning").length,
|
|
539
540
|
documentsIndexed: documents.size
|
|
540
541
|
},
|
|
542
|
+
layerBreakdown,
|
|
541
543
|
sitewideFindings: sitewide
|
|
542
544
|
};
|
|
543
545
|
}
|
|
546
|
+
function computeLayerBreakdown(findings) {
|
|
547
|
+
const ordered = [
|
|
548
|
+
"retrievability",
|
|
549
|
+
"citability",
|
|
550
|
+
"absorbability",
|
|
551
|
+
"entity_legitimacy"
|
|
552
|
+
];
|
|
553
|
+
const buckets = /* @__PURE__ */ new Map();
|
|
554
|
+
for (const layer of ordered) {
|
|
555
|
+
buckets.set(layer, { layer, total: 0, errors: 0, warnings: 0 });
|
|
556
|
+
}
|
|
557
|
+
for (const finding of findings) {
|
|
558
|
+
const primary = finding.layers?.primary ?? "citability";
|
|
559
|
+
const bucket = buckets.get(primary);
|
|
560
|
+
if (bucket === void 0) continue;
|
|
561
|
+
bucket.total += 1;
|
|
562
|
+
if (finding.severity === "error") bucket.errors += 1;
|
|
563
|
+
else bucket.warnings += 1;
|
|
564
|
+
}
|
|
565
|
+
return ordered.map((layer) => buckets.get(layer));
|
|
566
|
+
}
|
|
544
567
|
var MANIFEST_FINDINGS_KEY = "meta:facts-findings";
|
|
545
568
|
async function persistManifestStateFindings(ctx) {
|
|
546
569
|
const findings = await deriveManifestStateFindings(ctx);
|
|
@@ -558,7 +581,8 @@ async function deriveManifestStateFindings(ctx) {
|
|
|
558
581
|
line: 0,
|
|
559
582
|
column: 0,
|
|
560
583
|
scope: "sitewide",
|
|
561
|
-
suggestion: null
|
|
584
|
+
suggestion: null,
|
|
585
|
+
layers: { primary: "entity_legitimacy", secondaries: [] }
|
|
562
586
|
}
|
|
563
587
|
];
|
|
564
588
|
}
|
|
@@ -582,7 +606,8 @@ async function deriveManifestStateFindings(ctx) {
|
|
|
582
606
|
line: 0,
|
|
583
607
|
column: 0,
|
|
584
608
|
scope: "sitewide",
|
|
585
|
-
suggestion: null
|
|
609
|
+
suggestion: null,
|
|
610
|
+
layers: { primary: "entity_legitimacy", secondaries: [] }
|
|
586
611
|
});
|
|
587
612
|
}
|
|
588
613
|
const errCount = result.assessment.mismatches.filter(
|
|
@@ -598,7 +623,8 @@ async function deriveManifestStateFindings(ctx) {
|
|
|
598
623
|
line: 0,
|
|
599
624
|
column: 0,
|
|
600
625
|
scope: "sitewide",
|
|
601
|
-
suggestion: null
|
|
626
|
+
suggestion: null,
|
|
627
|
+
layers: { primary: "entity_legitimacy", secondaries: [] }
|
|
602
628
|
});
|
|
603
629
|
}
|
|
604
630
|
return out;
|
|
@@ -743,6 +769,369 @@ async function handleSave(ctx, body) {
|
|
|
743
769
|
return { data: { saved: true } };
|
|
744
770
|
}
|
|
745
771
|
|
|
772
|
+
// src/presence-check.ts
|
|
773
|
+
var FETCH_TIMEOUT_MS = 5e3;
|
|
774
|
+
var USER_AGENT = "aexeo-emdash-plugin/0.8 (+https://github.com/schiste/Aexeo; entity-presence diagnostic)";
|
|
775
|
+
var SOURCE_NAMES = [
|
|
776
|
+
"wikipedia",
|
|
777
|
+
"wikidata",
|
|
778
|
+
"github",
|
|
779
|
+
"rdap",
|
|
780
|
+
"common_crawl"
|
|
781
|
+
];
|
|
782
|
+
function entityFromManifest(manifest) {
|
|
783
|
+
if (manifest === null) return null;
|
|
784
|
+
const org = manifest.organization;
|
|
785
|
+
if (!org || typeof org.name !== "string" || org.name.length === 0) {
|
|
786
|
+
return null;
|
|
787
|
+
}
|
|
788
|
+
const result = { name: org.name };
|
|
789
|
+
if (typeof org.website === "string") result.website = org.website;
|
|
790
|
+
if (Array.isArray(org.aliases)) result.aliases = org.aliases;
|
|
791
|
+
return result;
|
|
792
|
+
}
|
|
793
|
+
async function checkAllSources(input, fetcher = fetch) {
|
|
794
|
+
const checks = [
|
|
795
|
+
checkWikipedia(input, fetcher),
|
|
796
|
+
checkWikidata(input, fetcher),
|
|
797
|
+
checkGitHub(input, fetcher),
|
|
798
|
+
checkRdap(input, fetcher),
|
|
799
|
+
checkCommonCrawl(input, fetcher)
|
|
800
|
+
];
|
|
801
|
+
const settled = await Promise.allSettled(checks);
|
|
802
|
+
return settled.map((result, idx) => {
|
|
803
|
+
if (result.status === "fulfilled") return result.value;
|
|
804
|
+
return unreachable(
|
|
805
|
+
SOURCE_NAMES[idx],
|
|
806
|
+
result.reason instanceof Error ? result.reason.message : String(result.reason)
|
|
807
|
+
);
|
|
808
|
+
});
|
|
809
|
+
}
|
|
810
|
+
async function checkWikipedia(input, fetcher) {
|
|
811
|
+
const url = new URL("https://en.wikipedia.org/w/api.php");
|
|
812
|
+
url.searchParams.set("action", "opensearch");
|
|
813
|
+
url.searchParams.set("search", input.name);
|
|
814
|
+
url.searchParams.set("limit", "1");
|
|
815
|
+
url.searchParams.set("namespace", "0");
|
|
816
|
+
url.searchParams.set("format", "json");
|
|
817
|
+
try {
|
|
818
|
+
const res = await timedFetch(fetcher, url.toString());
|
|
819
|
+
if (!res.ok) return unreachable("wikipedia", `HTTP ${res.status}`);
|
|
820
|
+
const body = await res.json();
|
|
821
|
+
if (!Array.isArray(body) || body.length < 4) {
|
|
822
|
+
return unreachable("wikipedia", "unexpected response shape");
|
|
823
|
+
}
|
|
824
|
+
const titles = body[1];
|
|
825
|
+
const descriptions = body[2];
|
|
826
|
+
const urls = body[3];
|
|
827
|
+
if (!Array.isArray(titles) || !Array.isArray(urls) || titles.length === 0) {
|
|
828
|
+
return notFound("wikipedia");
|
|
829
|
+
}
|
|
830
|
+
const title = String(titles[0]);
|
|
831
|
+
if (!fuzzyMatch(title, input.name)) {
|
|
832
|
+
return notFound("wikipedia");
|
|
833
|
+
}
|
|
834
|
+
const articleUrl = String(urls[0] ?? "");
|
|
835
|
+
const description = Array.isArray(descriptions) ? String(descriptions[0] ?? "") : "";
|
|
836
|
+
return found("wikipedia", {
|
|
837
|
+
label: title,
|
|
838
|
+
url: articleUrl,
|
|
839
|
+
extra: description.length > 0 ? description : void 0
|
|
840
|
+
});
|
|
841
|
+
} catch (error) {
|
|
842
|
+
return unreachable("wikipedia", errMsg(error));
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
async function checkWikidata(input, fetcher) {
|
|
846
|
+
const url = new URL("https://www.wikidata.org/w/api.php");
|
|
847
|
+
url.searchParams.set("action", "wbsearchentities");
|
|
848
|
+
url.searchParams.set("search", input.name);
|
|
849
|
+
url.searchParams.set("language", "en");
|
|
850
|
+
url.searchParams.set("format", "json");
|
|
851
|
+
url.searchParams.set("limit", "1");
|
|
852
|
+
try {
|
|
853
|
+
const res = await timedFetch(fetcher, url.toString());
|
|
854
|
+
if (!res.ok) return unreachable("wikidata", `HTTP ${res.status}`);
|
|
855
|
+
const body = await res.json();
|
|
856
|
+
const top = body.search?.[0];
|
|
857
|
+
if (!top || typeof top.id !== "string") {
|
|
858
|
+
return notFound("wikidata");
|
|
859
|
+
}
|
|
860
|
+
const label = top.label ?? input.name;
|
|
861
|
+
if (!fuzzyMatch(label, input.name)) {
|
|
862
|
+
return notFound("wikidata");
|
|
863
|
+
}
|
|
864
|
+
return found("wikidata", {
|
|
865
|
+
label: `${top.id}${top.label ? ` \u2014 ${top.label}` : ""}`,
|
|
866
|
+
url: top.concepturi ?? `https://www.wikidata.org/wiki/${top.id}`,
|
|
867
|
+
extra: top.description
|
|
868
|
+
});
|
|
869
|
+
} catch (error) {
|
|
870
|
+
return unreachable("wikidata", errMsg(error));
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
async function checkGitHub(input, fetcher) {
|
|
874
|
+
const handle = sanitizeGitHubHandle(input.name);
|
|
875
|
+
if (handle === null) {
|
|
876
|
+
return skipped(
|
|
877
|
+
"github",
|
|
878
|
+
"entity name contains characters that aren't valid in a GitHub handle"
|
|
879
|
+
);
|
|
880
|
+
}
|
|
881
|
+
const url = `https://api.github.com/users/${encodeURIComponent(handle)}`;
|
|
882
|
+
try {
|
|
883
|
+
const res = await timedFetch(fetcher, url, {
|
|
884
|
+
// GitHub recommends Accept header for stable shape; without
|
|
885
|
+
// it the API can return either v3 or experimental shapes.
|
|
886
|
+
headers: { Accept: "application/vnd.github+json" }
|
|
887
|
+
});
|
|
888
|
+
if (res.status === 404) return notFound("github");
|
|
889
|
+
if (res.status === 403 || res.status === 429) {
|
|
890
|
+
return unreachable("github", "rate-limited (try Refresh later)");
|
|
891
|
+
}
|
|
892
|
+
if (!res.ok) return unreachable("github", `HTTP ${res.status}`);
|
|
893
|
+
const body = await res.json();
|
|
894
|
+
if (typeof body.login !== "string") {
|
|
895
|
+
return unreachable("github", "unexpected response shape");
|
|
896
|
+
}
|
|
897
|
+
const display = body.name ?? body.login;
|
|
898
|
+
const kind = body.type === "Organization" ? "Org" : "User";
|
|
899
|
+
const repos = typeof body.public_repos === "number" ? `${body.public_repos} public repo${body.public_repos === 1 ? "" : "s"}` : void 0;
|
|
900
|
+
return found("github", {
|
|
901
|
+
label: `${kind}: ${display}`,
|
|
902
|
+
url: body.html_url ?? `https://github.com/${body.login}`,
|
|
903
|
+
extra: repos
|
|
904
|
+
});
|
|
905
|
+
} catch (error) {
|
|
906
|
+
return unreachable("github", errMsg(error));
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
async function checkRdap(input, fetcher) {
|
|
910
|
+
const host = extractHost(input.website);
|
|
911
|
+
if (host === null) {
|
|
912
|
+
return skipped(
|
|
913
|
+
"rdap",
|
|
914
|
+
"no website URL in manifest, can't check domain age"
|
|
915
|
+
);
|
|
916
|
+
}
|
|
917
|
+
const url = `https://rdap.org/domain/${encodeURIComponent(host)}`;
|
|
918
|
+
try {
|
|
919
|
+
const res = await timedFetch(fetcher, url);
|
|
920
|
+
if (res.status === 404) return notFound("rdap");
|
|
921
|
+
if (!res.ok) return unreachable("rdap", `HTTP ${res.status}`);
|
|
922
|
+
const body = await res.json();
|
|
923
|
+
const reg = (body.events ?? []).find(
|
|
924
|
+
(e) => e.eventAction === "registration"
|
|
925
|
+
);
|
|
926
|
+
if (!reg || typeof reg.eventDate !== "string") {
|
|
927
|
+
return found("rdap", {
|
|
928
|
+
label: host,
|
|
929
|
+
extra: "registered (date not disclosed by registry)"
|
|
930
|
+
});
|
|
931
|
+
}
|
|
932
|
+
const ageDays = daysSince(reg.eventDate);
|
|
933
|
+
const ageLabel = ageDays === null ? null : formatAge(ageDays);
|
|
934
|
+
return found("rdap", {
|
|
935
|
+
label: host,
|
|
936
|
+
extra: ageLabel === null ? `registered ${reg.eventDate.slice(0, 10)}` : `registered ${reg.eventDate.slice(0, 10)} (${ageLabel})`
|
|
937
|
+
});
|
|
938
|
+
} catch (error) {
|
|
939
|
+
return unreachable("rdap", errMsg(error));
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
async function checkCommonCrawl(input, fetcher) {
|
|
943
|
+
const host = extractHost(input.website);
|
|
944
|
+
if (host === null) {
|
|
945
|
+
return skipped(
|
|
946
|
+
"common_crawl",
|
|
947
|
+
"no website URL in manifest, can't query crawl index"
|
|
948
|
+
);
|
|
949
|
+
}
|
|
950
|
+
const index = "CC-MAIN-2026-15";
|
|
951
|
+
const url = new URL(`https://index.commoncrawl.org/${index}-index`);
|
|
952
|
+
url.searchParams.set("url", host);
|
|
953
|
+
url.searchParams.set("output", "json");
|
|
954
|
+
url.searchParams.set("limit", "1");
|
|
955
|
+
try {
|
|
956
|
+
const res = await timedFetch(fetcher, url.toString());
|
|
957
|
+
if (res.status === 404) return notFound("common_crawl");
|
|
958
|
+
if (!res.ok) return unreachable("common_crawl", `HTTP ${res.status}`);
|
|
959
|
+
const text = (await res.text()).trim();
|
|
960
|
+
if (text.length === 0) return notFound("common_crawl");
|
|
961
|
+
let firstLine = text.split("\n")[0];
|
|
962
|
+
if (firstLine === void 0 || firstLine.length === 0) {
|
|
963
|
+
return notFound("common_crawl");
|
|
964
|
+
}
|
|
965
|
+
let entry;
|
|
966
|
+
try {
|
|
967
|
+
entry = JSON.parse(firstLine);
|
|
968
|
+
} catch {
|
|
969
|
+
return unreachable("common_crawl", "non-JSON response from CDX");
|
|
970
|
+
}
|
|
971
|
+
return found("common_crawl", {
|
|
972
|
+
label: host,
|
|
973
|
+
extra: typeof entry.timestamp === "string" ? `last seen in ${index} at ${formatCdxTimestamp(entry.timestamp)}` : `present in ${index}`
|
|
974
|
+
});
|
|
975
|
+
} catch (error) {
|
|
976
|
+
return unreachable("common_crawl", errMsg(error));
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
async function timedFetch(fetcher, url, init) {
|
|
980
|
+
const controller = new AbortController();
|
|
981
|
+
const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
982
|
+
try {
|
|
983
|
+
const headers = new Headers(init?.headers);
|
|
984
|
+
if (!headers.has("User-Agent")) headers.set("User-Agent", USER_AGENT);
|
|
985
|
+
return await fetcher(url, {
|
|
986
|
+
...init,
|
|
987
|
+
headers,
|
|
988
|
+
signal: controller.signal
|
|
989
|
+
});
|
|
990
|
+
} finally {
|
|
991
|
+
clearTimeout(timer);
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
function found(source, details) {
|
|
995
|
+
const result = {
|
|
996
|
+
source,
|
|
997
|
+
status: "found",
|
|
998
|
+
label: details.label,
|
|
999
|
+
checkedAt: nowIso()
|
|
1000
|
+
};
|
|
1001
|
+
if (details.url !== void 0) result.url = details.url;
|
|
1002
|
+
if (details.extra !== void 0) result.extra = details.extra;
|
|
1003
|
+
return result;
|
|
1004
|
+
}
|
|
1005
|
+
function notFound(source) {
|
|
1006
|
+
return { source, status: "not_found", checkedAt: nowIso() };
|
|
1007
|
+
}
|
|
1008
|
+
function unreachable(source, error) {
|
|
1009
|
+
return { source, status: "unreachable", error, checkedAt: nowIso() };
|
|
1010
|
+
}
|
|
1011
|
+
function skipped(source, reason) {
|
|
1012
|
+
return { source, status: "skipped", error: reason, checkedAt: nowIso() };
|
|
1013
|
+
}
|
|
1014
|
+
function nowIso() {
|
|
1015
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
1016
|
+
}
|
|
1017
|
+
function errMsg(error) {
|
|
1018
|
+
if (error instanceof Error) {
|
|
1019
|
+
if (error.name === "AbortError") return "timeout (>5s)";
|
|
1020
|
+
return error.message;
|
|
1021
|
+
}
|
|
1022
|
+
return String(error);
|
|
1023
|
+
}
|
|
1024
|
+
function fuzzyMatch(a, b) {
|
|
1025
|
+
const aL = a.toLowerCase().trim();
|
|
1026
|
+
const bL = b.toLowerCase().trim();
|
|
1027
|
+
return aL.includes(bL) || bL.includes(aL);
|
|
1028
|
+
}
|
|
1029
|
+
function sanitizeGitHubHandle(name) {
|
|
1030
|
+
const handle = name.replace(/[\s_]+/g, "-");
|
|
1031
|
+
if (!/^[A-Za-z0-9-]+$/.test(handle) || handle.length > 39) return null;
|
|
1032
|
+
return handle;
|
|
1033
|
+
}
|
|
1034
|
+
function extractHost(website) {
|
|
1035
|
+
if (typeof website !== "string" || website.length === 0) return null;
|
|
1036
|
+
try {
|
|
1037
|
+
const url = new URL(website);
|
|
1038
|
+
return url.hostname || null;
|
|
1039
|
+
} catch {
|
|
1040
|
+
if (/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(website)) return website;
|
|
1041
|
+
return null;
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
function daysSince(iso) {
|
|
1045
|
+
const t = Date.parse(iso);
|
|
1046
|
+
if (Number.isNaN(t)) return null;
|
|
1047
|
+
return Math.floor((Date.now() - t) / 864e5);
|
|
1048
|
+
}
|
|
1049
|
+
function formatAge(days) {
|
|
1050
|
+
if (days < 60) return `${days} day${days === 1 ? "" : "s"}`;
|
|
1051
|
+
const months = Math.floor(days / 30);
|
|
1052
|
+
if (months < 24) return `${months} month${months === 1 ? "" : "s"}`;
|
|
1053
|
+
const years = Math.floor(days / 365);
|
|
1054
|
+
const remainderMonths = Math.floor(days % 365 / 30);
|
|
1055
|
+
if (remainderMonths === 0) {
|
|
1056
|
+
return `${years} year${years === 1 ? "" : "s"}`;
|
|
1057
|
+
}
|
|
1058
|
+
return `${years}y ${remainderMonths}mo`;
|
|
1059
|
+
}
|
|
1060
|
+
function formatCdxTimestamp(ts) {
|
|
1061
|
+
if (!/^\d{8}/.test(ts)) return ts;
|
|
1062
|
+
return `${ts.slice(0, 4)}-${ts.slice(4, 6)}-${ts.slice(6, 8)}`;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
// src/presence-route.ts
|
|
1066
|
+
var CACHE_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
1067
|
+
var PRESENCE_KEY = "presence:current";
|
|
1068
|
+
async function handlePresenceRoute(ctx) {
|
|
1069
|
+
const body = ctx.input ?? {};
|
|
1070
|
+
switch (body.kind) {
|
|
1071
|
+
case "data":
|
|
1072
|
+
return await handleData2(ctx);
|
|
1073
|
+
case "refresh":
|
|
1074
|
+
return await handleRefresh(ctx);
|
|
1075
|
+
default:
|
|
1076
|
+
return {
|
|
1077
|
+
error: {
|
|
1078
|
+
code: "unknown_kind",
|
|
1079
|
+
message: `unknown presence route kind: ${String(body.kind)}`
|
|
1080
|
+
}
|
|
1081
|
+
};
|
|
1082
|
+
}
|
|
1083
|
+
}
|
|
1084
|
+
async function handleData2(ctx) {
|
|
1085
|
+
const manifest = await readStoredFacts(ctx.kv);
|
|
1086
|
+
if (manifest === null) {
|
|
1087
|
+
return wireResponse("no_manifest", [], null, null);
|
|
1088
|
+
}
|
|
1089
|
+
const entity = entityFromManifest(manifest);
|
|
1090
|
+
if (entity === null) {
|
|
1091
|
+
return wireResponse("no_organization", [], null, null);
|
|
1092
|
+
}
|
|
1093
|
+
const cached = await ctx.kv.get(PRESENCE_KEY);
|
|
1094
|
+
if (!cached) {
|
|
1095
|
+
return wireResponse("empty", [], null, entity.name);
|
|
1096
|
+
}
|
|
1097
|
+
if (cached.entityName !== entity.name) {
|
|
1098
|
+
return wireResponse("empty", [], null, entity.name);
|
|
1099
|
+
}
|
|
1100
|
+
const ageMs = ageMillis(cached.generatedAt);
|
|
1101
|
+
const state = ageMs !== null && ageMs > CACHE_TTL_MS ? "stale" : "fresh";
|
|
1102
|
+
return wireResponse(state, cached.results, cached.generatedAt, entity.name);
|
|
1103
|
+
}
|
|
1104
|
+
async function handleRefresh(ctx) {
|
|
1105
|
+
const manifest = await readStoredFacts(ctx.kv);
|
|
1106
|
+
if (manifest === null) {
|
|
1107
|
+
return wireResponse("no_manifest", [], null, null);
|
|
1108
|
+
}
|
|
1109
|
+
const entity = entityFromManifest(manifest);
|
|
1110
|
+
if (entity === null) {
|
|
1111
|
+
return wireResponse("no_organization", [], null, null);
|
|
1112
|
+
}
|
|
1113
|
+
const results = await checkAllSources(entity);
|
|
1114
|
+
const generatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
1115
|
+
const payload = {
|
|
1116
|
+
results,
|
|
1117
|
+
generatedAt,
|
|
1118
|
+
entityName: entity.name
|
|
1119
|
+
};
|
|
1120
|
+
await ctx.kv.set(PRESENCE_KEY, payload);
|
|
1121
|
+
return wireResponse("fresh", results, generatedAt, entity.name);
|
|
1122
|
+
}
|
|
1123
|
+
function wireResponse(state, results, generatedAt, entityName) {
|
|
1124
|
+
const ageMinutes = generatedAt === null ? null : Math.max(0, Math.floor((ageMillis(generatedAt) ?? 0) / 6e4));
|
|
1125
|
+
return {
|
|
1126
|
+
data: { state, results, generatedAt, entityName, ageMinutes }
|
|
1127
|
+
};
|
|
1128
|
+
}
|
|
1129
|
+
function ageMillis(iso) {
|
|
1130
|
+
const t = Date.parse(iso);
|
|
1131
|
+
if (Number.isNaN(t)) return null;
|
|
1132
|
+
return Date.now() - t;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
746
1135
|
// src/suppressions.ts
|
|
747
1136
|
var NOOP_FILTER = {
|
|
748
1137
|
apply: (_context, findings) => [...findings]
|
|
@@ -802,7 +1191,7 @@ function globToMatcher(pattern) {
|
|
|
802
1191
|
}
|
|
803
1192
|
|
|
804
1193
|
// src/version.ts
|
|
805
|
-
var PACKAGE_VERSION = "0.
|
|
1194
|
+
var PACKAGE_VERSION = "0.8.1";
|
|
806
1195
|
|
|
807
1196
|
// src/configured.ts
|
|
808
1197
|
import { definePlugin } from "emdash";
|
|
@@ -900,18 +1289,36 @@ function createPlugin(options = {}) {
|
|
|
900
1289
|
// facts-route.ts for the full contract.
|
|
901
1290
|
facts: {
|
|
902
1291
|
handler: (ctx) => handleFactsRoute(ctx)
|
|
1292
|
+
},
|
|
1293
|
+
// /presence route serves the layer-4 entity-presence
|
|
1294
|
+
// diagnostic on the /entity-legitimacy admin page. It hits
|
|
1295
|
+
// five free public APIs (Wikipedia, Wikidata, GitHub, RDAP,
|
|
1296
|
+
// Common Crawl) for the configured organization and caches
|
|
1297
|
+
// results in KV for 24h. Multiplexes data / refresh kinds —
|
|
1298
|
+
// see presence-route.ts.
|
|
1299
|
+
presence: {
|
|
1300
|
+
handler: (ctx) => handlePresenceRoute(ctx)
|
|
903
1301
|
}
|
|
904
1302
|
},
|
|
905
1303
|
admin: {
|
|
1304
|
+
// Sidebar ordered around the four-layer GEO model — each pillar
|
|
1305
|
+
// is its own sidebar entry. The root URL `/admin/plugins/<id>/`
|
|
1306
|
+
// routes through the same dispatcher (handlePageLoad treats ""
|
|
1307
|
+
// and "findings" as aliases), so editors landing on the plugin
|
|
1308
|
+
// root see the cross-pillar flat view.
|
|
1309
|
+
//
|
|
1310
|
+
// /document keeps its own entry because per-document inspection
|
|
1311
|
+
// is cross-layer by definition. /findings stays as a flat-view
|
|
1312
|
+
// fallback for triage workflows. /facts is kept as a back-compat
|
|
1313
|
+
// alias for the relocated /entity-legitimacy page; not in the
|
|
1314
|
+
// sidebar to avoid two entries pointing at the same content.
|
|
906
1315
|
pages: [
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
// visible 0.1.0 / 0.1.1 bug fixed in 0.1.2.
|
|
912
|
-
{ path: "/findings", label: "SEO findings" },
|
|
1316
|
+
{ path: "/retrievability", label: "Retrievability" },
|
|
1317
|
+
{ path: "/citability", label: "Citability" },
|
|
1318
|
+
{ path: "/absorbability", label: "Absorbability" },
|
|
1319
|
+
{ path: "/entity-legitimacy", label: "Entity legitimacy" },
|
|
913
1320
|
{ path: "/document", label: "Document SEO" },
|
|
914
|
-
{ path: "/
|
|
1321
|
+
{ path: "/findings", label: "All findings" }
|
|
915
1322
|
],
|
|
916
1323
|
widgets: [
|
|
917
1324
|
{ id: "aexeo-score", size: "third", title: "SEO score" }
|
|
@@ -930,12 +1337,12 @@ async function handleAdminRoute(ctx, collections) {
|
|
|
930
1337
|
return renderDocumentPanel(ctx, body.value);
|
|
931
1338
|
}
|
|
932
1339
|
if (body.action_id === "refresh_findings") {
|
|
933
|
-
return
|
|
1340
|
+
return handleRefresh2(ctx, collections);
|
|
934
1341
|
}
|
|
935
1342
|
if (body.action_id.startsWith("filter:")) {
|
|
936
1343
|
return renderFindingsPage(ctx);
|
|
937
1344
|
}
|
|
938
|
-
return
|
|
1345
|
+
return notFound2(body.action_id);
|
|
939
1346
|
}
|
|
940
1347
|
if (body.type === "form_submit") {
|
|
941
1348
|
if (body.action_id === "view_document") {
|
|
@@ -959,9 +1366,9 @@ async function handlePageLoad(ctx, page) {
|
|
|
959
1366
|
if (normalized === "document") {
|
|
960
1367
|
return renderDocumentPanel(ctx);
|
|
961
1368
|
}
|
|
962
|
-
return
|
|
1369
|
+
return notFound2(page);
|
|
963
1370
|
}
|
|
964
|
-
async function
|
|
1371
|
+
async function handleRefresh2(ctx, collections) {
|
|
965
1372
|
let summary;
|
|
966
1373
|
try {
|
|
967
1374
|
summary = await evaluateAndPersistAll(ctx, {
|
|
@@ -1200,7 +1607,7 @@ function documentFindingsTable(findings) {
|
|
|
1200
1607
|
}))
|
|
1201
1608
|
};
|
|
1202
1609
|
}
|
|
1203
|
-
function
|
|
1610
|
+
function notFound2(page) {
|
|
1204
1611
|
return {
|
|
1205
1612
|
blocks: [
|
|
1206
1613
|
{ type: "header", text: "Not found" },
|
package/dist/data-route.d.ts
CHANGED
|
@@ -10,8 +10,15 @@ export interface FindingsPayload {
|
|
|
10
10
|
warnings: number;
|
|
11
11
|
documentsIndexed: number;
|
|
12
12
|
};
|
|
13
|
+
layerBreakdown: LayerBreakdown[];
|
|
13
14
|
sitewideFindings: Finding[];
|
|
14
15
|
}
|
|
16
|
+
export interface LayerBreakdown {
|
|
17
|
+
layer: import("./types.js").Layer;
|
|
18
|
+
total: number;
|
|
19
|
+
errors: number;
|
|
20
|
+
warnings: number;
|
|
21
|
+
}
|
|
15
22
|
export interface RouteSummary {
|
|
16
23
|
route: string;
|
|
17
24
|
title: string;
|
|
@@ -34,6 +41,7 @@ export interface FindingRow {
|
|
|
34
41
|
column: number;
|
|
35
42
|
scope: string;
|
|
36
43
|
suggestion: string | null;
|
|
44
|
+
layers?: import("./types.js").RuleLayers;
|
|
37
45
|
}
|
|
38
46
|
interface DataRouteOptions {
|
|
39
47
|
collections: readonly string[];
|
package/dist/data-route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-route.d.ts","sourceRoot":"","sources":["../src/data-route.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,UAAU,EAEX,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C,MAAM,WAAW,eAAe;IAG9B,MAAM,EAAE,YAAY,EAAE,CAAC;IAIvB,QAAQ,EAAE,UAAU,EAAE,CAAC;IAIvB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IAIF,gBAAgB,EAAE,OAAO,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IAIX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"data-route.d.ts","sourceRoot":"","sources":["../src/data-route.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,UAAU,EAEX,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C,MAAM,WAAW,eAAe;IAG9B,MAAM,EAAE,YAAY,EAAE,CAAC;IAIvB,QAAQ,EAAE,UAAU,EAAE,CAAC;IAIvB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IAIF,cAAc,EAAE,cAAc,EAAE,CAAC;IAIjC,gBAAgB,EAAE,OAAO,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,YAAY,EAAE,KAAK,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IAIX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAM1B,MAAM,CAAC,EAAE,OAAO,YAAY,EAAE,UAAU,CAAC;CAC1C;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC;IAIvB,OAAO,EAAE,OAAO,CAAC;IAIjB,iBAAiB,CAAC,EAAE,OAAO,mBAAmB,EAAE,iBAAiB,CAAC;CACnE;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IACT,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC,CAAC,CAmBD;AA6ID,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TruthManifest } from "./types.js";
|
|
2
|
+
export type SourceStatus = "found" | "not_found" | "unreachable" | "skipped";
|
|
3
|
+
export interface SourceResult {
|
|
4
|
+
source: string;
|
|
5
|
+
status: SourceStatus;
|
|
6
|
+
label?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
extra?: string;
|
|
9
|
+
error?: string;
|
|
10
|
+
checkedAt: string;
|
|
11
|
+
}
|
|
12
|
+
export interface EntityInput {
|
|
13
|
+
name: string;
|
|
14
|
+
website?: string;
|
|
15
|
+
aliases?: readonly string[];
|
|
16
|
+
}
|
|
17
|
+
declare const SOURCE_NAMES: readonly ["wikipedia", "wikidata", "github", "rdap", "common_crawl"];
|
|
18
|
+
export type SourceName = (typeof SOURCE_NAMES)[number];
|
|
19
|
+
export declare function entityFromManifest(manifest: TruthManifest | null): EntityInput | null;
|
|
20
|
+
export declare function checkAllSources(input: EntityInput, fetcher?: typeof fetch): Promise<SourceResult[]>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=presence-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence-check.d.ts","sourceRoot":"","sources":["../src/presence-check.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IAGrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,QAAA,MAAM,YAAY,sEAMR,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAKvD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,WAAW,GAAG,IAAI,CAUpB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence-route.d.ts","sourceRoot":"","sources":["../src/presence-route.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAuC9C,UAAU,YAAa,SAAQ,UAAU;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CAelB"}
|
package/dist/types.d.ts
CHANGED
|
@@ -38,6 +38,11 @@ export interface EmdashDocument {
|
|
|
38
38
|
}
|
|
39
39
|
export type FindingSeverity = "error" | "warning";
|
|
40
40
|
export type FindingScope = "page" | "template" | "sitewide";
|
|
41
|
+
export type Layer = "retrievability" | "citability" | "absorbability" | "entity_legitimacy";
|
|
42
|
+
export interface RuleLayers {
|
|
43
|
+
primary: Layer;
|
|
44
|
+
secondaries: Layer[];
|
|
45
|
+
}
|
|
41
46
|
export interface Finding {
|
|
42
47
|
rule_id: string;
|
|
43
48
|
message: string;
|
|
@@ -47,7 +52,11 @@ export interface Finding {
|
|
|
47
52
|
severity: FindingSeverity;
|
|
48
53
|
suggestion: string | null;
|
|
49
54
|
scope: FindingScope;
|
|
55
|
+
layers?: RuleLayers;
|
|
50
56
|
}
|
|
57
|
+
export declare const LAYERS_ORDERED: readonly Layer[];
|
|
58
|
+
export declare function layerHumanLabel(layer: Layer): string;
|
|
59
|
+
export declare function layerOneLineDescription(layer: Layer): string;
|
|
51
60
|
export type StructuredTruthSource = "manifest" | "schema" | "schema_and_manifest" | "none";
|
|
52
61
|
export interface SiteIntelligenceScore {
|
|
53
62
|
citation_readiness_score: number;
|
|
@@ -65,4 +74,21 @@ export interface IntelligenceBlocker {
|
|
|
65
74
|
route?: string;
|
|
66
75
|
severity?: string;
|
|
67
76
|
}
|
|
77
|
+
export interface TruthEntity {
|
|
78
|
+
name: string;
|
|
79
|
+
aliases?: string[];
|
|
80
|
+
website?: string;
|
|
81
|
+
category?: string;
|
|
82
|
+
descriptors?: string[];
|
|
83
|
+
features?: string[];
|
|
84
|
+
}
|
|
85
|
+
export interface TruthManifest {
|
|
86
|
+
version?: number;
|
|
87
|
+
organization?: TruthEntity;
|
|
88
|
+
products?: TruthEntity[];
|
|
89
|
+
terminology?: {
|
|
90
|
+
preferred?: Record<string, string>;
|
|
91
|
+
forbidden?: Record<string, string>;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
68
94
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,YAAY,CAAC;AAEjB,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "0.
|
|
1
|
+
export declare const PACKAGE_VERSION = "0.8.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|