@sanity/debug-live-sync-tags
1.0.71.0.8
~
Modified (6 files)
Index: package/dist/index.js
===================================================================
--- package/dist/index.js
+++ package/dist/index.js
@@ -1,24 +1,18 @@
import { lazy } from "react";
import { definePlugin } from "sanity";
const ToolComponent = lazy(() => import("./_chunks-es/Tool.js")), debugLiveSyncTags = definePlugin((config) => {
- const {
- name = "debug-live-sync-tags",
- title = "Debug Live Sync Tags",
- icon,
- ...options
- } = config || {};
- return {
- name: "@sanity/debug-live-sync-tags",
- tools: [{
- name,
- title,
- icon,
- component: ToolComponent,
- options
- }]
- };
+ let { name = "debug-live-sync-tags", title = "Debug Live Sync Tags", icon, ...options } = config || {};
+ return {
+ name: "@sanity/debug-live-sync-tags",
+ tools: [{
+ name,
+ title,
+ icon,
+ component: ToolComponent,
+ options
+ }]
+ };
});
-export {
- debugLiveSyncTags
-};
-//# sourceMappingURL=index.js.map
+export { debugLiveSyncTags };
+
+//# sourceMappingURL=index.js.map
\ No newline at end of file Index: package/dist/_chunks-es/Tool.js
===================================================================
--- package/dist/_chunks-es/Tool.js
+++ package/dist/_chunks-es/Tool.js
@@ -1,471 +1,455 @@
-import { jsx, jsxs } from "react/jsx-runtime";
+import { Activity, Fragment, startTransition, useEffect, useState } from "react";
+import { useClient, useDataset, useProjectId } from "sanity";
import { c } from "react/compiler-runtime";
-import { Checkbox, Label, Flex, Stack } from "@sanity/ui";
-import { useState, useEffect, startTransition, Activity, Fragment } from "react";
-import { useClient, useProjectId, useDataset } from "sanity";
+import "@sanity/client";
+import { Checkbox, Flex, Label, Stack } from "@sanity/ui";
import { styled } from "styled-components";
-const Layout = /* @__PURE__ */ styled(Flex).withConfig({
- displayName: "Layout",
- componentId: "sc-9h652o-0"
-})(["height:100%;width:100%;"]), Sidebar = /* @__PURE__ */ styled(Stack).withConfig({
- displayName: "Sidebar",
- componentId: "sc-9h652o-1"
-})(["flex-shrink:0;width:200px;padding:16px;border-right:1px solid var(--card-border-color,#ddd);overflow-y:auto;"]), Main = /* @__PURE__ */ styled.div.withConfig({
- displayName: "Main",
- componentId: "sc-9h652o-2"
-})(["flex:1;min-width:0;overflow:auto;"]), StyledTable = /* @__PURE__ */ styled.table.withConfig({
- displayName: "StyledTable",
- componentId: "sc-9h652o-3"
-})(["width:100%;border-collapse:collapse;font-family:monospace;font-size:13px;thead{position:sticky;top:0;z-index:1;background:var(--card-bg-color,#fff);box-shadow:inset 0 -2px 0 var(--card-border-color,#ddd);}th,td{padding:4px 8px;text-align:left;vertical-align:top;white-space:nowrap;}th{font-weight:600;}"]), TagGrid = /* @__PURE__ */ styled.div.withConfig({
- displayName: "TagGrid",
- componentId: "sc-9h652o-4"
-})(["display:grid;grid-template-columns:auto 1fr;gap:0 12px;"]);
+import { jsx, jsxs } from "react/jsx-runtime";
+const Layout = styled(Flex).withConfig({
+ displayName: "Layout",
+ componentId: "sc-5hc50s-0"
+})`height:100%;width:100%;`, Sidebar = styled(Stack).withConfig({
+ displayName: "Sidebar",
+ componentId: "sc-5hc50s-1"
+})`flex-shrink:0;width:200px;padding:16px;border-right:1px solid var(--card-border-color,#ddd);overflow-y:auto;`, Main = styled.div.withConfig({
+ displayName: "Main",
+ componentId: "sc-5hc50s-2"
+})`flex:1;min-width:0;overflow:auto;`, StyledTable = styled.table.withConfig({
+ displayName: "StyledTable",
+ componentId: "sc-5hc50s-3"
+})`width:100%;border-collapse:collapse;font-family:monospace;font-size:13px;thead{position:sticky;top:0;z-index:1;background:var(--card-bg-color,#fff);box-shadow:inset 0 -2px 0 var(--card-border-color,#ddd);}th,td{padding:4px 8px;text-align:left;vertical-align:top;white-space:nowrap;}th{font-weight:600;}`, TagGrid = styled.div.withConfig({
+ displayName: "TagGrid",
+ componentId: "sc-5hc50s-4"
+})`display:grid;grid-template-columns:auto 1fr;gap:0 12px;`;
function EventTable(t0) {
- const $ = c(15), {
- events,
- findResolvedTag,
- showTimestamp,
- showEventId
- } = t0;
- let t1, t2;
- if ($[0] !== events || $[1] !== findResolvedTag || $[2] !== showEventId || $[3] !== showTimestamp) {
- t2 = /* @__PURE__ */ Symbol.for("react.early_return_sentinel");
- bb0: {
- const rows = Array.from(events.values());
- if (rows.length === 0) {
- t2 = null;
- break bb0;
- }
- let t3;
- $[6] !== showTimestamp ? (t3 = showTimestamp && /* @__PURE__ */ jsx("th", { children: "time" }), $[6] = showTimestamp, $[7] = t3) : t3 = $[7];
- let t4;
- $[8] !== showEventId ? (t4 = showEventId && /* @__PURE__ */ jsx("th", { children: "id" }), $[8] = showEventId, $[9] = t4) : t4 = $[9];
- let t5, t6;
- $[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t5 = /* @__PURE__ */ jsx("th", { children: "type" }), t6 = /* @__PURE__ */ jsx("th", { children: "tags" }), $[10] = t5, $[11] = t6) : (t5 = $[10], t6 = $[11]);
- let t7;
- $[12] !== t3 || $[13] !== t4 ? (t7 = /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
- t3,
- t4,
- t5,
- t6
- ] }) }), $[12] = t3, $[13] = t4, $[14] = t7) : t7 = $[14], t1 = /* @__PURE__ */ jsxs(StyledTable, { children: [
- t7,
- /* @__PURE__ */ jsx("tbody", { children: rows.map((event, i) => {
- const tags = "tags" in event ? event.tags : [], time = new Date(event.timestamp).toLocaleTimeString(), eventId = "id" in event ? event.id : null, bg = i % 2 !== 0 ? "color-mix(in srgb, var(--card-border-color, #ddd) 15%, transparent)" : void 0;
- return /* @__PURE__ */ jsxs("tr", { style: {
- background: bg
- }, children: [
- showTimestamp && /* @__PURE__ */ jsx("td", { children: time }),
- showEventId && /* @__PURE__ */ jsx("td", { children: eventId }),
- /* @__PURE__ */ jsx("td", { style: {
- fontWeight: 600
- }, children: event.type }),
- /* @__PURE__ */ jsx("td", { style: {
- whiteSpace: "normal"
- }, children: tags.length > 0 && /* @__PURE__ */ jsx(TagGrid, { children: tags.map((tag) => /* @__PURE__ */ jsxs(Fragment, { children: [
- /* @__PURE__ */ jsx("span", { title: tag, children: tag }),
- /* @__PURE__ */ jsx("span", { children: findResolvedTag(tag) })
- ] }, tag)) }) })
- ] }, event.timestamp);
- }) })
- ] });
- }
- $[0] = events, $[1] = findResolvedTag, $[2] = showEventId, $[3] = showTimestamp, $[4] = t1, $[5] = t2;
- } else
- t1 = $[4], t2 = $[5];
- return t2 !== /* @__PURE__ */ Symbol.for("react.early_return_sentinel") ? t2 : t1;
+ let $ = c(15), { events, findResolvedTag, showTimestamp, showEventId } = t0, t1, t2;
+ if ($[0] !== events || $[1] !== findResolvedTag || $[2] !== showEventId || $[3] !== showTimestamp) {
+ t2 = Symbol.for("react.early_return_sentinel");
+ bb0: {
+ let rows = Array.from(events.values());
+ if (rows.length === 0) {
+ t2 = null;
+ break bb0;
+ }
+ let t3;
+ $[6] === showTimestamp ? t3 = $[7] : (t3 = showTimestamp && /* @__PURE__ */ jsx("th", { children: "time" }), $[6] = showTimestamp, $[7] = t3);
+ let t4;
+ $[8] === showEventId ? t4 = $[9] : (t4 = showEventId && /* @__PURE__ */ jsx("th", { children: "id" }), $[8] = showEventId, $[9] = t4);
+ let t5, t6;
+ $[10] === Symbol.for("react.memo_cache_sentinel") ? (t5 = /* @__PURE__ */ jsx("th", { children: "type" }), t6 = /* @__PURE__ */ jsx("th", { children: "tags" }), $[10] = t5, $[11] = t6) : (t5 = $[10], t6 = $[11]);
+ let t7;
+ $[12] !== t3 || $[13] !== t4 ? (t7 = /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
+ t3,
+ t4,
+ t5,
+ t6
+ ] }) }), $[12] = t3, $[13] = t4, $[14] = t7) : t7 = $[14], t1 = /* @__PURE__ */ jsxs(StyledTable, { children: [t7, /* @__PURE__ */ jsx("tbody", { children: rows.map((event, i) => {
+ let tags = "tags" in event ? event.tags : [], time = new Date(event.timestamp).toLocaleTimeString(), eventId = "id" in event ? event.id : null;
+ return /* @__PURE__ */ jsxs("tr", {
+ style: { background: i % 2 == 0 ? void 0 : "color-mix(in srgb, var(--card-border-color, #ddd) 15%, transparent)" },
+ children: [
+ showTimestamp && /* @__PURE__ */ jsx("td", { children: time }),
+ showEventId && /* @__PURE__ */ jsx("td", { children: eventId }),
+ /* @__PURE__ */ jsx("td", {
+ style: { fontWeight: 600 },
+ children: event.type
+ }),
+ /* @__PURE__ */ jsx("td", {
+ style: { whiteSpace: "normal" },
+ children: tags.length > 0 && /* @__PURE__ */ jsx(TagGrid, { children: tags.map((tag) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
+ title: tag,
+ children: tag
+ }), /* @__PURE__ */ jsx("span", { children: findResolvedTag(tag) })] }, tag)) })
+ })
+ ]
+ }, event.timestamp);
+ }) })] });
+ }
+ $[0] = events, $[1] = findResolvedTag, $[2] = showEventId, $[3] = showTimestamp, $[4] = t1, $[5] = t2;
+ } else t1 = $[4], t2 = $[5];
+ return t2 === Symbol.for("react.early_return_sentinel") ? t1 : t2;
}
function Tool() {
- const $ = c(81);
- let t0;
- $[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t0 = {
- apiVersion: "2026-03-17"
- }, $[0] = t0) : t0 = $[0];
- const client = useClient(t0), projectId = useProjectId(), dataset = useDataset(), [liveEvents, setLiveEvents] = useState(_temp), [liveEventsIncludingAllDocuments, setLiveEventsIncludingAllDocuments] = useState(_temp2);
- let t1;
- $[1] !== client.live ? (t1 = () => {
- const subscription = client.live.events({
- tag: "debug-live-sync-tags"
- }).subscribe({
- next: (event) => {
- startTransition(() => setLiveEvents((prev) => {
- const next = new Map(prev);
- return next.set("id" in event ? event.id : (/* @__PURE__ */ new Date()).toJSON(), {
- ...event,
- timestamp: (/* @__PURE__ */ new Date()).toJSON()
- }), next;
- }));
- },
- error: console.error
- });
- return () => subscription.unsubscribe();
- }, $[1] = client.live, $[2] = t1) : t1 = $[2];
- let t2;
- $[3] !== client ? (t2 = [client], $[3] = client, $[4] = t2) : t2 = $[4], useEffect(t1, t2);
- let t3;
- $[5] !== client.live ? (t3 = () => {
- const subscription_0 = client.live.events({
- tag: "debug-live-sync-tags",
- includeDrafts: !0
- }).subscribe({
- next: (event_0) => {
- startTransition(() => setLiveEventsIncludingAllDocuments((prev_0) => {
- const next_0 = new Map(prev_0);
- return next_0.set("id" in event_0 ? event_0.id : (/* @__PURE__ */ new Date()).toJSON(), {
- ...event_0,
- timestamp: (/* @__PURE__ */ new Date()).toJSON()
- }), next_0;
- }));
- },
- error: console.error
- });
- return () => subscription_0.unsubscribe();
- }, $[5] = client.live, $[6] = t3) : t3 = $[6];
- let t4;
- $[7] !== client ? (t4 = [client], $[7] = client, $[8] = t4) : t4 = $[8], useEffect(t3, t4);
- const [syncTagForEverything, setSyncTagForEverything] = useState(null), [allDocumentTypes, setAllDocumentTypes] = useState(_temp3);
- let t5, t6;
- $[9] !== client ? (t5 = () => {
- const controller = new AbortController();
- return client.fetch("array::unique(*._type)", {}, {
- signal: controller.signal,
- returnQuery: !1,
- tag: "debug-live-sync-tags",
- filterResponse: !1
- }).then((t72) => {
- const {
- result,
- syncTags
- } = t72;
- controller.signal.aborted || (setSyncTagForEverything(syncTags?.[0] ?? null), setAllDocumentTypes((prev_1) => {
- const next_1 = new Map(prev_1);
- for (const type of result)
- next_1.has(type) || next_1.set(type, null);
- return next_1;
- }));
- }).catch(console.error), () => controller.abort();
- }, t6 = [client], $[9] = client, $[10] = t5, $[11] = t6) : (t5 = $[10], t6 = $[11]), useEffect(t5, t6);
- const [whichList, setWhichList] = useState("liveEvents"), [showTimestamp, setShowTimestamp] = useState(!0), [showEventId, setShowEventId] = useState(!1);
- let unknownDocumentTypes;
- if ($[12] !== allDocumentTypes) {
- unknownDocumentTypes = [];
- for (const [documentType, resolvedDocumentType] of allDocumentTypes.entries())
- resolvedDocumentType === null && unknownDocumentTypes.push(documentType);
- $[12] = allDocumentTypes, $[13] = unknownDocumentTypes;
- } else
- unknownDocumentTypes = $[13];
- let t7;
- $[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t7 = (documentType_0, resolvedDocumentType_0) => startTransition(() => setAllDocumentTypes((prev_2) => {
- const next_2 = new Map(prev_2);
- return next_2.set(documentType_0, resolvedDocumentType_0), next_2;
- })), $[14] = t7) : t7 = $[14];
- const setDocumentType = t7, findResolvedTag = function(tag) {
- if (tag === syncTagForEverything)
- return "any:*";
- for (const [documentType_1, resolvedDocumentType_1] of allDocumentTypes.entries())
- if (resolvedDocumentType_1 === tag)
- return `type:${documentType_1}`;
- for (const [documentId, resolvedDocumentId] of documentIdToTagMap.entries())
- if (resolvedDocumentId === tag)
- return `id:${documentId}`;
- for (const [slug, resolvedSlug] of documentSlugToTagMap.entries())
- if (resolvedSlug === tag)
- return `slug:${slug}`;
- return tag;
- };
- let t8;
- $[15] !== allDocumentTypes ? (t8 = Array.from(allDocumentTypes.keys()), $[15] = allDocumentTypes, $[16] = t8) : t8 = $[16];
- const allDocumentTypesArray = t8, [t9, setDocumentIdToTagMap] = useState(_temp4), documentIdToTagMap = t9, unknownDocumentIds = [];
- for (const [documentId_0, tag_0] of documentIdToTagMap.entries())
- tag_0 === null && unknownDocumentIds.push(documentId_0);
- let t10;
- $[17] !== setDocumentIdToTagMap ? (t10 = (documentId_1, tag_1) => startTransition(() => setDocumentIdToTagMap((prev_3) => {
- const next_3 = new Map(prev_3);
- return next_3.set(documentId_1, tag_1), next_3;
- })), $[17] = setDocumentIdToTagMap, $[18] = t10) : t10 = $[18];
- const setDocumentIdTag = t10, [t11, setDocumentSlugToTagMap] = useState(_temp5), documentSlugToTagMap = t11, unknownDocumentSlugs = [];
- for (const [slug_0, tag_2] of documentSlugToTagMap.entries())
- tag_2 === null && unknownDocumentSlugs.push(slug_0);
- let t12;
- $[19] !== setDocumentSlugToTagMap ? (t12 = (slug_1, tag_3) => startTransition(() => setDocumentSlugToTagMap((prev_4) => {
- const next_4 = new Map(prev_4);
- return next_4.set(slug_1, tag_3), next_4;
- })), $[19] = setDocumentSlugToTagMap, $[20] = t12) : t12 = $[20];
- const setDocumentSlugTag = t12;
- let t13;
- $[21] !== allDocumentTypesArray || $[22] !== client || $[23] !== setDocumentIdToTagMap || $[24] !== setDocumentSlugToTagMap ? (t13 = () => {
- if (allDocumentTypesArray.length === 0)
- return;
- const listener = client.listen("*[_type in $type]", {
- type: allDocumentTypesArray
- }, {
- events: ["mutation"],
- includePreviousRevision: !1,
- includeResult: !0,
- includeAllVersions: !0,
- includeMutations: !1,
- tag: "debug-live-sync-tags"
- }).subscribe({
- next: (event_1) => {
- startTransition(() => {
- setDocumentIdToTagMap((prev_5) => {
- if (prev_5.has(event_1.documentId))
- return prev_5;
- const next_5 = new Map(prev_5);
- return next_5.set(event_1.documentId, null), next_5;
- });
- const slugField = event_1.result?.slug, slug_2 = slugField && typeof slugField == "object" && "current" in slugField && typeof slugField.current == "string" ? slugField.current : null;
- slug_2 && setDocumentSlugToTagMap((prev_6) => {
- if (prev_6.has(slug_2))
- return prev_6;
- const next_6 = new Map(prev_6);
- return next_6.set(slug_2, null), next_6;
- });
- });
- },
- error: console.error
- });
- return () => listener.unsubscribe();
- }, $[21] = allDocumentTypesArray, $[22] = client, $[23] = setDocumentIdToTagMap, $[24] = setDocumentSlugToTagMap, $[25] = t13) : t13 = $[25];
- let t14;
- $[26] !== allDocumentTypesArray || $[27] !== client ? (t14 = [client, allDocumentTypesArray], $[26] = allDocumentTypesArray, $[27] = client, $[28] = t14) : t14 = $[28], useEffect(t13, t14);
- const t15 = whichList === "liveEventsIncludingAllDocuments";
- let t16;
- $[29] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t16 = () => setWhichList(_temp6), $[29] = t16) : t16 = $[29];
- let t17;
- $[30] !== t15 ? (t17 = /* @__PURE__ */ jsx(Checkbox, { checked: t15, onChange: t16 }), $[30] = t15, $[31] = t17) : t17 = $[31];
- let t18;
- $[32] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t18 = /* @__PURE__ */ jsx(Label, { size: 1, children: "Include all documents" }), $[32] = t18) : t18 = $[32];
- let t19;
- $[33] !== t17 ? (t19 = /* @__PURE__ */ jsxs(Flex, { as: "label", align: "center", gap: 2, children: [
- t17,
- t18
- ] }), $[33] = t17, $[34] = t19) : t19 = $[34];
- let t20;
- $[35] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t20 = () => setShowTimestamp(_temp7), $[35] = t20) : t20 = $[35];
- let t21;
- $[36] !== showTimestamp ? (t21 = /* @__PURE__ */ jsx(Checkbox, { checked: showTimestamp, onChange: t20 }), $[36] = showTimestamp, $[37] = t21) : t21 = $[37];
- let t22;
- $[38] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t22 = /* @__PURE__ */ jsx(Label, { size: 1, children: "Show timestamp" }), $[38] = t22) : t22 = $[38];
- let t23;
- $[39] !== t21 ? (t23 = /* @__PURE__ */ jsxs(Flex, { as: "label", align: "center", gap: 2, children: [
- t21,
- t22
- ] }), $[39] = t21, $[40] = t23) : t23 = $[40];
- let t24;
- $[41] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t24 = () => setShowEventId(_temp8), $[41] = t24) : t24 = $[41];
- let t25;
- $[42] !== showEventId ? (t25 = /* @__PURE__ */ jsx(Checkbox, { checked: showEventId, onChange: t24 }), $[42] = showEventId, $[43] = t25) : t25 = $[43];
- let t26;
- $[44] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t26 = /* @__PURE__ */ jsx(Label, { size: 1, children: "Show event ID" }), $[44] = t26) : t26 = $[44];
- let t27;
- $[45] !== t25 ? (t27 = /* @__PURE__ */ jsxs(Flex, { as: "label", align: "center", gap: 2, children: [
- t25,
- t26
- ] }), $[45] = t25, $[46] = t27) : t27 = $[46];
- let t28;
- $[47] !== t19 || $[48] !== t23 || $[49] !== t27 ? (t28 = /* @__PURE__ */ jsxs(Sidebar, { gap: 4, children: [
- t19,
- t23,
- t27
- ] }), $[47] = t19, $[48] = t23, $[49] = t27, $[50] = t28) : t28 = $[50];
- const t29 = whichList === "liveEvents" ? "visible" : "hidden";
- let t30;
- $[51] !== findResolvedTag || $[52] !== liveEvents || $[53] !== showEventId || $[54] !== showTimestamp ? (t30 = /* @__PURE__ */ jsx(EventTable, { events: liveEvents, findResolvedTag, showTimestamp, showEventId }), $[51] = findResolvedTag, $[52] = liveEvents, $[53] = showEventId, $[54] = showTimestamp, $[55] = t30) : t30 = $[55];
- let t31;
- $[56] !== t29 || $[57] !== t30 ? (t31 = /* @__PURE__ */ jsx(Activity, { mode: t29, children: t30 }), $[56] = t29, $[57] = t30, $[58] = t31) : t31 = $[58];
- const t32 = whichList === "liveEventsIncludingAllDocuments" ? "visible" : "hidden";
- let t33;
- $[59] !== findResolvedTag || $[60] !== liveEventsIncludingAllDocuments || $[61] !== showEventId || $[62] !== showTimestamp ? (t33 = /* @__PURE__ */ jsx(EventTable, { events: liveEventsIncludingAllDocuments, findResolvedTag, showTimestamp, showEventId }), $[59] = findResolvedTag, $[60] = liveEventsIncludingAllDocuments, $[61] = showEventId, $[62] = showTimestamp, $[63] = t33) : t33 = $[63];
- let t34;
- $[64] !== t32 || $[65] !== t33 ? (t34 = /* @__PURE__ */ jsx(Activity, { mode: t32, children: t33 }), $[64] = t32, $[65] = t33, $[66] = t34) : t34 = $[66];
- let t35;
- $[67] !== t31 || $[68] !== t34 ? (t35 = /* @__PURE__ */ jsxs(Main, { children: [
- t31,
- t34
- ] }), $[67] = t31, $[68] = t34, $[69] = t35) : t35 = $[69];
- let t36;
- $[70] !== client || $[71] !== dataset || $[72] !== projectId || $[73] !== unknownDocumentTypes ? (t36 = unknownDocumentTypes.map((unknownDocumentType) => /* @__PURE__ */ jsx(ResolveDocumentType, { projectId, dataset, documentType: unknownDocumentType, client, setDocumentType }, unknownDocumentType)), $[70] = client, $[71] = dataset, $[72] = projectId, $[73] = unknownDocumentTypes, $[74] = t36) : t36 = $[74];
- const t37 = unknownDocumentIds.map((unknownDocumentId) => /* @__PURE__ */ jsx(ResolveDocumentId, { projectId, dataset, documentId: unknownDocumentId, client, setDocumentIdTag }, unknownDocumentId)), t38 = unknownDocumentSlugs.map((unknownSlug) => /* @__PURE__ */ jsx(ResolveDocumentSlug, { projectId, dataset, slug: unknownSlug, client, setDocumentSlugTag }, unknownSlug));
- let t39;
- return $[75] !== t28 || $[76] !== t35 || $[77] !== t36 || $[78] !== t37 || $[79] !== t38 ? (t39 = /* @__PURE__ */ jsxs(Layout, { children: [
- t28,
- t35,
- t36,
- t37,
- t38
- ] }), $[75] = t28, $[76] = t35, $[77] = t36, $[78] = t37, $[79] = t38, $[80] = t39) : t39 = $[80], t39;
+ let $ = c(81), t0;
+ $[0] === Symbol.for("react.memo_cache_sentinel") ? (t0 = { apiVersion: "2026-03-17" }, $[0] = t0) : t0 = $[0];
+ let client = useClient(t0), projectId = useProjectId(), dataset = useDataset(), [liveEvents, setLiveEvents] = useState(_temp), [liveEventsIncludingAllDocuments, setLiveEventsIncludingAllDocuments] = useState(_temp2), t1;
+ $[1] === client.live ? t1 = $[2] : (t1 = () => {
+ let subscription = client.live.events({ tag: "debug-live-sync-tags" }).subscribe({
+ next: (event) => {
+ startTransition(() => setLiveEvents((prev) => {
+ let next = new Map(prev);
+ return next.set("id" in event ? event.id : (/* @__PURE__ */ new Date()).toJSON(), {
+ ...event,
+ timestamp: (/* @__PURE__ */ new Date()).toJSON()
+ }), next;
+ }));
+ },
+ error: console.error
+ });
+ return () => subscription.unsubscribe();
+ }, $[1] = client.live, $[2] = t1);
+ let t2;
+ $[3] === client ? t2 = $[4] : (t2 = [client], $[3] = client, $[4] = t2), useEffect(t1, t2);
+ let t3;
+ $[5] === client.live ? t3 = $[6] : (t3 = () => {
+ let subscription_0 = client.live.events({
+ tag: "debug-live-sync-tags",
+ includeDrafts: !0
+ }).subscribe({
+ next: (event_0) => {
+ startTransition(() => setLiveEventsIncludingAllDocuments((prev_0) => {
+ let next_0 = new Map(prev_0);
+ return next_0.set("id" in event_0 ? event_0.id : (/* @__PURE__ */ new Date()).toJSON(), {
+ ...event_0,
+ timestamp: (/* @__PURE__ */ new Date()).toJSON()
+ }), next_0;
+ }));
+ },
+ error: console.error
+ });
+ return () => subscription_0.unsubscribe();
+ }, $[5] = client.live, $[6] = t3);
+ let t4;
+ $[7] === client ? t4 = $[8] : (t4 = [client], $[7] = client, $[8] = t4), useEffect(t3, t4);
+ let [syncTagForEverything, setSyncTagForEverything] = useState(null), [allDocumentTypes, setAllDocumentTypes] = useState(_temp3), t5, t6;
+ $[9] === client ? (t5 = $[10], t6 = $[11]) : (t5 = () => {
+ let controller = new AbortController();
+ return client.fetch("array::unique(*._type)", {}, {
+ signal: controller.signal,
+ returnQuery: !1,
+ tag: "debug-live-sync-tags",
+ filterResponse: !1
+ }).then((t7) => {
+ let { result, syncTags } = t7;
+ controller.signal.aborted || (setSyncTagForEverything(syncTags?.[0] ?? null), setAllDocumentTypes((prev_1) => {
+ let next_1 = new Map(prev_1);
+ for (let type of result) next_1.has(type) || next_1.set(type, null);
+ return next_1;
+ }));
+ }).catch(console.error), () => controller.abort();
+ }, t6 = [client], $[9] = client, $[10] = t5, $[11] = t6), useEffect(t5, t6);
+ let [whichList, setWhichList] = useState("liveEvents"), [showTimestamp, setShowTimestamp] = useState(!0), [showEventId, setShowEventId] = useState(!1), unknownDocumentTypes;
+ if ($[12] !== allDocumentTypes) {
+ unknownDocumentTypes = [];
+ for (let [documentType, resolvedDocumentType] of allDocumentTypes.entries()) resolvedDocumentType === null && unknownDocumentTypes.push(documentType);
+ $[12] = allDocumentTypes, $[13] = unknownDocumentTypes;
+ } else unknownDocumentTypes = $[13];
+ let t7;
+ $[14] === Symbol.for("react.memo_cache_sentinel") ? (t7 = (documentType_0, resolvedDocumentType_0) => startTransition(() => setAllDocumentTypes((prev_2) => {
+ let next_2 = new Map(prev_2);
+ return next_2.set(documentType_0, resolvedDocumentType_0), next_2;
+ })), $[14] = t7) : t7 = $[14];
+ let setDocumentType = t7, findResolvedTag = function(tag) {
+ if (tag === syncTagForEverything) return "any:*";
+ for (let [documentType_1, resolvedDocumentType_1] of allDocumentTypes.entries()) if (resolvedDocumentType_1 === tag) return `type:${documentType_1}`;
+ for (let [documentId, resolvedDocumentId] of documentIdToTagMap.entries()) if (resolvedDocumentId === tag) return `id:${documentId}`;
+ for (let [slug, resolvedSlug] of documentSlugToTagMap.entries()) if (resolvedSlug === tag) return `slug:${slug}`;
+ return tag;
+ }, t8;
+ $[15] === allDocumentTypes ? t8 = $[16] : (t8 = Array.from(allDocumentTypes.keys()), $[15] = allDocumentTypes, $[16] = t8);
+ let allDocumentTypesArray = t8, [t9, setDocumentIdToTagMap] = useState(_temp4), documentIdToTagMap = t9, unknownDocumentIds = [];
+ for (let [documentId_0, tag_0] of documentIdToTagMap.entries()) tag_0 === null && unknownDocumentIds.push(documentId_0);
+ let t10;
+ $[17] === setDocumentIdToTagMap ? t10 = $[18] : (t10 = (documentId_1, tag_1) => startTransition(() => setDocumentIdToTagMap((prev_3) => {
+ let next_3 = new Map(prev_3);
+ return next_3.set(documentId_1, tag_1), next_3;
+ })), $[17] = setDocumentIdToTagMap, $[18] = t10);
+ let setDocumentIdTag = t10, [t11, setDocumentSlugToTagMap] = useState(_temp5), documentSlugToTagMap = t11, unknownDocumentSlugs = [];
+ for (let [slug_0, tag_2] of documentSlugToTagMap.entries()) tag_2 === null && unknownDocumentSlugs.push(slug_0);
+ let t12;
+ $[19] === setDocumentSlugToTagMap ? t12 = $[20] : (t12 = (slug_1, tag_3) => startTransition(() => setDocumentSlugToTagMap((prev_4) => {
+ let next_4 = new Map(prev_4);
+ return next_4.set(slug_1, tag_3), next_4;
+ })), $[19] = setDocumentSlugToTagMap, $[20] = t12);
+ let setDocumentSlugTag = t12, t13;
+ $[21] !== allDocumentTypesArray || $[22] !== client || $[23] !== setDocumentIdToTagMap || $[24] !== setDocumentSlugToTagMap ? (t13 = () => {
+ if (allDocumentTypesArray.length === 0) return;
+ let listener = client.listen("*[_type in $type]", { type: allDocumentTypesArray }, {
+ events: ["mutation"],
+ includePreviousRevision: !1,
+ includeResult: !0,
+ includeAllVersions: !0,
+ includeMutations: !1,
+ tag: "debug-live-sync-tags"
+ }).subscribe({
+ next: (event_1) => {
+ startTransition(() => {
+ setDocumentIdToTagMap((prev_5) => {
+ if (prev_5.has(event_1.documentId)) return prev_5;
+ let next_5 = new Map(prev_5);
+ return next_5.set(event_1.documentId, null), next_5;
+ });
+ let slugField = event_1.result?.slug, slug_2 = slugField && typeof slugField == "object" && "current" in slugField && typeof slugField.current == "string" ? slugField.current : null;
+ slug_2 && setDocumentSlugToTagMap((prev_6) => {
+ if (prev_6.has(slug_2)) return prev_6;
+ let next_6 = new Map(prev_6);
+ return next_6.set(slug_2, null), next_6;
+ });
+ });
+ },
+ error: console.error
+ });
+ return () => listener.unsubscribe();
+ }, $[21] = allDocumentTypesArray, $[22] = client, $[23] = setDocumentIdToTagMap, $[24] = setDocumentSlugToTagMap, $[25] = t13) : t13 = $[25];
+ let t14;
+ $[26] !== allDocumentTypesArray || $[27] !== client ? (t14 = [client, allDocumentTypesArray], $[26] = allDocumentTypesArray, $[27] = client, $[28] = t14) : t14 = $[28], useEffect(t13, t14);
+ let t15 = whichList === "liveEventsIncludingAllDocuments", t16;
+ $[29] === Symbol.for("react.memo_cache_sentinel") ? (t16 = () => setWhichList(_temp6), $[29] = t16) : t16 = $[29];
+ let t17;
+ $[30] === t15 ? t17 = $[31] : (t17 = /* @__PURE__ */ jsx(Checkbox, {
+ checked: t15,
+ onChange: t16
+ }), $[30] = t15, $[31] = t17);
+ let t18;
+ $[32] === Symbol.for("react.memo_cache_sentinel") ? (t18 = /* @__PURE__ */ jsx(Label, {
+ size: 1,
+ children: "Include all documents"
+ }), $[32] = t18) : t18 = $[32];
+ let t19;
+ $[33] === t17 ? t19 = $[34] : (t19 = /* @__PURE__ */ jsxs(Flex, {
+ as: "label",
+ align: "center",
+ gap: 2,
+ children: [t17, t18]
+ }), $[33] = t17, $[34] = t19);
+ let t20;
+ $[35] === Symbol.for("react.memo_cache_sentinel") ? (t20 = () => setShowTimestamp(_temp7), $[35] = t20) : t20 = $[35];
+ let t21;
+ $[36] === showTimestamp ? t21 = $[37] : (t21 = /* @__PURE__ */ jsx(Checkbox, {
+ checked: showTimestamp,
+ onChange: t20
+ }), $[36] = showTimestamp, $[37] = t21);
+ let t22;
+ $[38] === Symbol.for("react.memo_cache_sentinel") ? (t22 = /* @__PURE__ */ jsx(Label, {
+ size: 1,
+ children: "Show timestamp"
+ }), $[38] = t22) : t22 = $[38];
+ let t23;
+ $[39] === t21 ? t23 = $[40] : (t23 = /* @__PURE__ */ jsxs(Flex, {
+ as: "label",
+ align: "center",
+ gap: 2,
+ children: [t21, t22]
+ }), $[39] = t21, $[40] = t23);
+ let t24;
+ $[41] === Symbol.for("react.memo_cache_sentinel") ? (t24 = () => setShowEventId(_temp8), $[41] = t24) : t24 = $[41];
+ let t25;
+ $[42] === showEventId ? t25 = $[43] : (t25 = /* @__PURE__ */ jsx(Checkbox, {
+ checked: showEventId,
+ onChange: t24
+ }), $[42] = showEventId, $[43] = t25);
+ let t26;
+ $[44] === Symbol.for("react.memo_cache_sentinel") ? (t26 = /* @__PURE__ */ jsx(Label, {
+ size: 1,
+ children: "Show event ID"
+ }), $[44] = t26) : t26 = $[44];
+ let t27;
+ $[45] === t25 ? t27 = $[46] : (t27 = /* @__PURE__ */ jsxs(Flex, {
+ as: "label",
+ align: "center",
+ gap: 2,
+ children: [t25, t26]
+ }), $[45] = t25, $[46] = t27);
+ let t28;
+ $[47] !== t19 || $[48] !== t23 || $[49] !== t27 ? (t28 = /* @__PURE__ */ jsxs(Sidebar, {
+ gap: 4,
+ children: [
+ t19,
+ t23,
+ t27
+ ]
+ }), $[47] = t19, $[48] = t23, $[49] = t27, $[50] = t28) : t28 = $[50];
+ let t29 = whichList === "liveEvents" ? "visible" : "hidden", t30;
+ $[51] !== findResolvedTag || $[52] !== liveEvents || $[53] !== showEventId || $[54] !== showTimestamp ? (t30 = /* @__PURE__ */ jsx(EventTable, {
+ events: liveEvents,
+ findResolvedTag,
+ showTimestamp,
+ showEventId
+ }), $[51] = findResolvedTag, $[52] = liveEvents, $[53] = showEventId, $[54] = showTimestamp, $[55] = t30) : t30 = $[55];
+ let t31;
+ $[56] !== t29 || $[57] !== t30 ? (t31 = /* @__PURE__ */ jsx(Activity, {
+ mode: t29,
+ children: t30
+ }), $[56] = t29, $[57] = t30, $[58] = t31) : t31 = $[58];
+ let t32 = whichList === "liveEventsIncludingAllDocuments" ? "visible" : "hidden", t33;
+ $[59] !== findResolvedTag || $[60] !== liveEventsIncludingAllDocuments || $[61] !== showEventId || $[62] !== showTimestamp ? (t33 = /* @__PURE__ */ jsx(EventTable, {
+ events: liveEventsIncludingAllDocuments,
+ findResolvedTag,
+ showTimestamp,
+ showEventId
+ }), $[59] = findResolvedTag, $[60] = liveEventsIncludingAllDocuments, $[61] = showEventId, $[62] = showTimestamp, $[63] = t33) : t33 = $[63];
+ let t34;
+ $[64] !== t32 || $[65] !== t33 ? (t34 = /* @__PURE__ */ jsx(Activity, {
+ mode: t32,
+ children: t33
+ }), $[64] = t32, $[65] = t33, $[66] = t34) : t34 = $[66];
+ let t35;
+ $[67] !== t31 || $[68] !== t34 ? (t35 = /* @__PURE__ */ jsxs(Main, { children: [t31, t34] }), $[67] = t31, $[68] = t34, $[69] = t35) : t35 = $[69];
+ let t36;
+ $[70] !== client || $[71] !== dataset || $[72] !== projectId || $[73] !== unknownDocumentTypes ? (t36 = unknownDocumentTypes.map((unknownDocumentType) => /* @__PURE__ */ jsx(ResolveDocumentType, {
+ projectId,
+ dataset,
+ documentType: unknownDocumentType,
+ client,
+ setDocumentType
+ }, unknownDocumentType)), $[70] = client, $[71] = dataset, $[72] = projectId, $[73] = unknownDocumentTypes, $[74] = t36) : t36 = $[74];
+ let t37 = unknownDocumentIds.map((unknownDocumentId) => /* @__PURE__ */ jsx(ResolveDocumentId, {
+ projectId,
+ dataset,
+ documentId: unknownDocumentId,
+ client,
+ setDocumentIdTag
+ }, unknownDocumentId)), t38 = unknownDocumentSlugs.map((unknownSlug) => /* @__PURE__ */ jsx(ResolveDocumentSlug, {
+ projectId,
+ dataset,
+ slug: unknownSlug,
+ client,
+ setDocumentSlugTag
+ }, unknownSlug)), t39;
+ return $[75] !== t28 || $[76] !== t35 || $[77] !== t36 || $[78] !== t37 || $[79] !== t38 ? (t39 = /* @__PURE__ */ jsxs(Layout, { children: [
+ t28,
+ t35,
+ t36,
+ t37,
+ t38
+ ] }), $[75] = t28, $[76] = t35, $[77] = t36, $[78] = t37, $[79] = t38, $[80] = t39) : t39 = $[80], t39;
}
function _temp8(prev_9) {
- return !prev_9;
+ return !prev_9;
}
function _temp7(prev_8) {
- return !prev_8;
+ return !prev_8;
}
function _temp6(prev_7) {
- return prev_7 === "liveEvents" ? "liveEventsIncludingAllDocuments" : "liveEvents";
+ return prev_7 === "liveEvents" ? "liveEventsIncludingAllDocuments" : "liveEvents";
}
function _temp5() {
- return /* @__PURE__ */ new Map();
+ return /* @__PURE__ */ new Map();
}
function _temp4() {
- return /* @__PURE__ */ new Map();
+ return /* @__PURE__ */ new Map();
}
function _temp3() {
- return /* @__PURE__ */ new Map();
+ return /* @__PURE__ */ new Map();
}
function _temp2() {
- return /* @__PURE__ */ new Map();
+ return /* @__PURE__ */ new Map();
}
function _temp() {
- return /* @__PURE__ */ new Map();
+ return /* @__PURE__ */ new Map();
}
function ResolveDocumentType(t0) {
- const $ = c(7), {
- projectId,
- dataset,
- documentType,
- client,
- setDocumentType
- } = t0;
- let t1, t2;
- return $[0] !== client || $[1] !== dataset || $[2] !== documentType || $[3] !== projectId || $[4] !== setDocumentType ? (t1 = () => {
- const localStorageKey = `debug-live-sync-tags-resolved-document-type-${projectId}-${dataset}-${documentType}`, localStorageValue = localStorage.getItem(localStorageKey);
- if (localStorageValue && typeof localStorageValue == "string") {
- setDocumentType(documentType, localStorageValue);
- return;
- }
- const controller = new AbortController();
- return client.fetch("count(*[_type == $type])", {
- type: documentType
- }, {
- filterResponse: !1,
- perspective: "published",
- returnQuery: !1,
- resultSourceMap: !1,
- stega: !1,
- useCdn: !0
- }).then((t3) => {
- const {
- syncTags
- } = t3;
- if (!controller.signal.aborted) {
- if (!Array.isArray(syncTags))
- throw new TypeError("syncTags is not an array", {
- cause: {
- syncTags,
- documentType
- }
- });
- if (syncTags.length !== 1)
- throw new TypeError("syncTags is not an array of exactly one item", {
- cause: {
- syncTags,
- documentType
- }
- });
- setDocumentType(documentType, syncTags[0]), localStorage.setItem(localStorageKey, syncTags[0]);
- }
- }), () => controller.abort();
- }, t2 = [documentType, client, dataset, setDocumentType, projectId], $[0] = client, $[1] = dataset, $[2] = documentType, $[3] = projectId, $[4] = setDocumentType, $[5] = t1, $[6] = t2) : (t1 = $[5], t2 = $[6]), useEffect(t1, t2), null;
+ let $ = c(7), { projectId, dataset, documentType, client, setDocumentType } = t0, t1, t2;
+ return $[0] !== client || $[1] !== dataset || $[2] !== documentType || $[3] !== projectId || $[4] !== setDocumentType ? (t1 = () => {
+ let localStorageKey = `debug-live-sync-tags-resolved-document-type-${projectId}-${dataset}-${documentType}`, localStorageValue = localStorage.getItem(localStorageKey);
+ if (localStorageValue && typeof localStorageValue == "string") {
+ setDocumentType(documentType, localStorageValue);
+ return;
+ }
+ let controller = new AbortController();
+ return client.fetch("count(*[_type == $type])", { type: documentType }, {
+ filterResponse: !1,
+ perspective: "published",
+ returnQuery: !1,
+ resultSourceMap: !1,
+ stega: !1,
+ useCdn: !0
+ }).then((t3) => {
+ let { syncTags } = t3;
+ if (!controller.signal.aborted) {
+ if (!Array.isArray(syncTags)) throw TypeError("syncTags is not an array", { cause: {
+ syncTags,
+ documentType
+ } });
+ if (syncTags.length !== 1) throw TypeError("syncTags is not an array of exactly one item", { cause: {
+ syncTags,
+ documentType
+ } });
+ setDocumentType(documentType, syncTags[0]), localStorage.setItem(localStorageKey, syncTags[0]);
+ }
+ }), () => controller.abort();
+ }, t2 = [
+ documentType,
+ client,
+ dataset,
+ setDocumentType,
+ projectId
+ ], $[0] = client, $[1] = dataset, $[2] = documentType, $[3] = projectId, $[4] = setDocumentType, $[5] = t1, $[6] = t2) : (t1 = $[5], t2 = $[6]), useEffect(t1, t2), null;
}
function ResolveDocumentId(t0) {
- const $ = c(7), {
- projectId,
- dataset,
- documentId,
- client,
- setDocumentIdTag
- } = t0;
- let t1, t2;
- return $[0] !== client || $[1] !== dataset || $[2] !== documentId || $[3] !== projectId || $[4] !== setDocumentIdTag ? (t1 = () => {
- const localStorageKey = `debug-live-sync-tags-resolved-document-id-${projectId}-${dataset}-${documentId}`, localStorageValue = localStorage.getItem(localStorageKey);
- if (localStorageValue && typeof localStorageValue == "string") {
- setDocumentIdTag(documentId, localStorageValue);
- return;
- }
- const controller = new AbortController();
- return client.fetch("count(*[_id == $id])", {
- id: documentId
- }, {
- filterResponse: !1,
- returnQuery: !1,
- resultSourceMap: !1,
- stega: !1,
- useCdn: !0
- }).then((t3) => {
- const {
- syncTags
- } = t3;
- if (!controller.signal.aborted) {
- if (!Array.isArray(syncTags))
- throw new TypeError("syncTags is not an array", {
- cause: {
- syncTags,
- documentId
- }
- });
- if (syncTags.length !== 1)
- throw new TypeError("syncTags is not an array of exactly one item", {
- cause: {
- syncTags,
- documentId
- }
- });
- setDocumentIdTag(documentId, syncTags[0]), localStorage.setItem(localStorageKey, syncTags[0]);
- }
- }), () => controller.abort();
- }, t2 = [documentId, client, dataset, setDocumentIdTag, projectId], $[0] = client, $[1] = dataset, $[2] = documentId, $[3] = projectId, $[4] = setDocumentIdTag, $[5] = t1, $[6] = t2) : (t1 = $[5], t2 = $[6]), useEffect(t1, t2), null;
+ let $ = c(7), { projectId, dataset, documentId, client, setDocumentIdTag } = t0, t1, t2;
+ return $[0] !== client || $[1] !== dataset || $[2] !== documentId || $[3] !== projectId || $[4] !== setDocumentIdTag ? (t1 = () => {
+ let localStorageKey = `debug-live-sync-tags-resolved-document-id-${projectId}-${dataset}-${documentId}`, localStorageValue = localStorage.getItem(localStorageKey);
+ if (localStorageValue && typeof localStorageValue == "string") {
+ setDocumentIdTag(documentId, localStorageValue);
+ return;
+ }
+ let controller = new AbortController();
+ return client.fetch("count(*[_id == $id])", { id: documentId }, {
+ filterResponse: !1,
+ returnQuery: !1,
+ resultSourceMap: !1,
+ stega: !1,
+ useCdn: !0
+ }).then((t3) => {
+ let { syncTags } = t3;
+ if (!controller.signal.aborted) {
+ if (!Array.isArray(syncTags)) throw TypeError("syncTags is not an array", { cause: {
+ syncTags,
+ documentId
+ } });
+ if (syncTags.length !== 1) throw TypeError("syncTags is not an array of exactly one item", { cause: {
+ syncTags,
+ documentId
+ } });
+ setDocumentIdTag(documentId, syncTags[0]), localStorage.setItem(localStorageKey, syncTags[0]);
+ }
+ }), () => controller.abort();
+ }, t2 = [
+ documentId,
+ client,
+ dataset,
+ setDocumentIdTag,
+ projectId
+ ], $[0] = client, $[1] = dataset, $[2] = documentId, $[3] = projectId, $[4] = setDocumentIdTag, $[5] = t1, $[6] = t2) : (t1 = $[5], t2 = $[6]), useEffect(t1, t2), null;
}
function ResolveDocumentSlug(t0) {
- const $ = c(7), {
- projectId,
- dataset,
- slug,
- client,
- setDocumentSlugTag
- } = t0;
- let t1, t2;
- return $[0] !== client || $[1] !== dataset || $[2] !== projectId || $[3] !== setDocumentSlugTag || $[4] !== slug ? (t1 = () => {
- const localStorageKey = `debug-live-sync-tags-resolved-document-slug-${projectId}-${dataset}-${slug}`, localStorageValue = localStorage.getItem(localStorageKey);
- if (localStorageValue && typeof localStorageValue == "string") {
- setDocumentSlugTag(slug, localStorageValue);
- return;
- }
- const controller = new AbortController();
- return client.fetch("count(*[slug.current == $slug])", {
- slug
- }, {
- filterResponse: !1,
- returnQuery: !1,
- resultSourceMap: !1,
- stega: !1,
- useCdn: !0
- }).then((t3) => {
- const {
- syncTags
- } = t3;
- if (!controller.signal.aborted) {
- if (!Array.isArray(syncTags))
- throw new TypeError("syncTags is not an array", {
- cause: {
- syncTags,
- slug
- }
- });
- if (syncTags.length !== 1)
- throw new TypeError("syncTags is not an array of exactly one item", {
- cause: {
- syncTags,
- slug
- }
- });
- setDocumentSlugTag(slug, syncTags[0]), localStorage.setItem(localStorageKey, syncTags[0]);
- }
- }), () => controller.abort();
- }, t2 = [slug, client, dataset, setDocumentSlugTag, projectId], $[0] = client, $[1] = dataset, $[2] = projectId, $[3] = setDocumentSlugTag, $[4] = slug, $[5] = t1, $[6] = t2) : (t1 = $[5], t2 = $[6]), useEffect(t1, t2), null;
+ let $ = c(7), { projectId, dataset, slug, client, setDocumentSlugTag } = t0, t1, t2;
+ return $[0] !== client || $[1] !== dataset || $[2] !== projectId || $[3] !== setDocumentSlugTag || $[4] !== slug ? (t1 = () => {
+ let localStorageKey = `debug-live-sync-tags-resolved-document-slug-${projectId}-${dataset}-${slug}`, localStorageValue = localStorage.getItem(localStorageKey);
+ if (localStorageValue && typeof localStorageValue == "string") {
+ setDocumentSlugTag(slug, localStorageValue);
+ return;
+ }
+ let controller = new AbortController();
+ return client.fetch("count(*[slug.current == $slug])", { slug }, {
+ filterResponse: !1,
+ returnQuery: !1,
+ resultSourceMap: !1,
+ stega: !1,
+ useCdn: !0
+ }).then((t3) => {
+ let { syncTags } = t3;
+ if (!controller.signal.aborted) {
+ if (!Array.isArray(syncTags)) throw TypeError("syncTags is not an array", { cause: {
+ syncTags,
+ slug
+ } });
+ if (syncTags.length !== 1) throw TypeError("syncTags is not an array of exactly one item", { cause: {
+ syncTags,
+ slug
+ } });
+ setDocumentSlugTag(slug, syncTags[0]), localStorage.setItem(localStorageKey, syncTags[0]);
+ }
+ }), () => controller.abort();
+ }, t2 = [
+ slug,
+ client,
+ dataset,
+ setDocumentSlugTag,
+ projectId
+ ], $[0] = client, $[1] = dataset, $[2] = projectId, $[3] = setDocumentSlugTag, $[4] = slug, $[5] = t1, $[6] = t2) : (t1 = $[5], t2 = $[6]), useEffect(t1, t2), null;
}
-export {
- Tool as default
-};
-//# sourceMappingURL=Tool.js.map
+export { Tool as default };
+
+//# sourceMappingURL=Tool.js.map
\ No newline at end of file Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@sanity/debug-live-sync-tags",
- "version": "1.0.7",
+ "version": "1.0.8",
"description": "",
"keywords": [
"sanity",
"sanity-plugin"
@@ -27,23 +27,22 @@
"./package.json": "./package.json"
},
"dependencies": {
"@sanity/client": "^7.23.0",
- "@sanity/ui": "^3.3.0"
+ "@sanity/ui": "^3.3.5"
},
"devDependencies": {
- "@sanity/pkg-utils": "^10.9.0",
- "@types/node": "^24.13.2",
+ "@sanity/tsconfig": "^2.2.0",
+ "@sanity/tsdown-config": "^0.13.1",
+ "@types/node": "^24.13.3",
"@types/react": "^19.2.17",
"@types/react-dom": "^19.2.3",
"babel-plugin-react-compiler": "^1.0.0",
- "babel-plugin-styled-components": "^2.3.0",
"react": "^19.2.7",
"react-dom": "^19.2.7",
"sanity": "^6.3.0",
"styled-components": "^6.4.3",
- "@repo/package.config": "0.0.0",
- "@repo/tsconfig": "0.0.0"
+ "tsdown": "^0.22.5"
},
"peerDependencies": {
"react": "^19.2",
"react-dom": "^19.2",
@@ -53,7 +52,7 @@
"engines": {
"node": ">=20.19 <22 || >=22.12"
},
"scripts": {
- "build": "pkg build --strict --check --clean"
+ "build": "tsdown"
}
}
\ No newline at end of file Index: package/dist/index.d.ts.map
===================================================================
--- package/dist/index.d.ts.map
+++ package/dist/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../src/plugin.tsx"],"mappings":";UAKU,YAAA;EACR,IAAA;EACA,KAAA;EACA,IAAA,GAAO,KAAA,CAAM,aAAa;AAAA;AAAA,cAGf,iBAAA,EAAmB,MAAM,CAAC,YAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../src/plugin.tsx"],"mappings":";UAKU;EACR;EACA;EACA,OAAO,MAAM;;cAGF,mBAAmB,OAAO"}
\ No newline at end of file Index: package/dist/index.js.map
===================================================================
--- package/dist/index.js.map
+++ package/dist/index.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.js","sources":["../src/plugin.tsx"],"sourcesContent":["import {lazy} from 'react'\nimport {definePlugin, type Plugin} from 'sanity'\n\nconst ToolComponent = lazy(() => import('./components/Tool'))\n\ninterface PluginConfig {\n name?: string\n title?: string\n icon?: React.ComponentType\n}\n\nexport const debugLiveSyncTags: Plugin<PluginConfig | void> = definePlugin((config) => {\n const {\n name = 'debug-live-sync-tags',\n title = 'Debug Live Sync Tags',\n icon,\n ...options\n } = config || {}\n\n return {\n name: '@sanity/debug-live-sync-tags',\n tools: [\n {\n name,\n title,\n icon,\n component: ToolComponent,\n options,\n },\n ],\n }\n})\n"],"names":["ToolComponent","lazy","debugLiveSyncTags","definePlugin","config","name","title","icon","options","tools","component"],"mappings":";;AAGA,MAAMA,gBAAgBC,KAAK,MAAM,OAAO,sBAAmB,CAAC,GAQ/CC,oBAAiDC,aAAcC,CAAAA,WAAW;AACrF,QAAM;AAAA,IACJC,OAAO;AAAA,IACPC,QAAQ;AAAA,IACRC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDJ,UAAU,CAAA;AAEd,SAAO;AAAA,IACLC,MAAM;AAAA,IACNI,OAAO,CACL;AAAA,MACEJ;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAG,WAAWV;AAAAA,MACXQ;AAAAA,IAAAA,CACD;AAAA,EAAA;AAGP,CAAC;"}
\ No newline at end of file
+{"version":3,"file":"index.js","names":["lazy","definePlugin","Plugin","ToolComponent","PluginConfig","name","title","icon","React","ComponentType","debugLiveSyncTags","config","options","tools","component"],"sources":["../src/plugin.tsx"],"sourcesContent":["import {lazy} from 'react'\nimport {definePlugin, type Plugin} from 'sanity'\n\nconst ToolComponent = lazy(() => import('./components/Tool'))\n\ninterface PluginConfig {\n name?: string\n title?: string\n icon?: React.ComponentType\n}\n\nexport const debugLiveSyncTags: Plugin<PluginConfig | void> = definePlugin((config) => {\n const {\n name = 'debug-live-sync-tags',\n title = 'Debug Live Sync Tags',\n icon,\n ...options\n } = config || {}\n\n return {\n name: '@sanity/debug-live-sync-tags',\n tools: [\n {\n name,\n title,\n icon,\n component: ToolComponent,\n options,\n },\n ],\n }\n})\n"],"mappings":";;AAGA,MAAMG,gBAAgBH,WAAW,OAAO,uBAAoB,GAQ/CU,oBAAiDT,cAAcU,WAAW;CACrF,IAAM,EACJN,OAAO,wBACPC,QAAQ,wBACRC,MACA,GAAGK,YACDD,UAAU,CAAC;CAEf,OAAO;EACLN,MAAM;EACNQ,OAAO,CACL;GACER;GACAC;GACAC;GACAO,WAAWX;GACXS;EACF,CAAC;CAEL;AACF,CAAC"}
\ No newline at end of file Index: package/dist/_chunks-es/Tool.js.map
===================================================================
--- package/dist/_chunks-es/Tool.js.map
+++ package/dist/_chunks-es/Tool.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"Tool.js","sources":["../../src/components/Tool.tsx"],"sourcesContent":["import {type LiveEvent} from '@sanity/client'\nimport {Checkbox, Flex, Label, Stack} from '@sanity/ui'\nimport {Activity, Fragment, startTransition, useEffect, useState} from 'react'\nimport {useClient, useProjectId, useDataset, type SanityClient} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst Layout = styled(Flex)`\n height: 100%;\n width: 100%;\n`\n\nconst Sidebar = styled(Stack)`\n flex-shrink: 0;\n width: 200px;\n padding: 16px;\n border-right: 1px solid var(--card-border-color, #ddd);\n overflow-y: auto;\n`\n\nconst Main = styled.div`\n flex: 1;\n min-width: 0;\n overflow: auto;\n`\n\nconst StyledTable = styled.table`\n width: 100%;\n border-collapse: collapse;\n font-family: monospace;\n font-size: 13px;\n\n thead {\n position: sticky;\n top: 0;\n z-index: 1;\n background: var(--card-bg-color, #fff);\n box-shadow: inset 0 -2px 0 var(--card-border-color, #ddd);\n }\n\n th,\n td {\n padding: 4px 8px;\n text-align: left;\n vertical-align: top;\n white-space: nowrap;\n }\n\n th {\n font-weight: 600;\n }\n`\n\nconst TagGrid = styled.div`\n display: grid;\n grid-template-columns: auto 1fr;\n gap: 0 12px;\n`\n\nfunction EventTable({\n events,\n findResolvedTag,\n showTimestamp,\n showEventId,\n}: {\n events: Map<string, LiveEvent & {timestamp: string}>\n findResolvedTag: (tag: string) => string\n showTimestamp: boolean\n showEventId: boolean\n}) {\n const rows = Array.from(events.values())\n if (rows.length === 0) return null\n\n return (\n <StyledTable>\n <thead>\n <tr>\n {showTimestamp && <th>time</th>}\n {showEventId && <th>id</th>}\n <th>type</th>\n <th>tags</th>\n </tr>\n </thead>\n <tbody>\n {rows.map((event, i) => {\n const tags = 'tags' in event ? event.tags : []\n const time = new Date(event.timestamp).toLocaleTimeString()\n const eventId = 'id' in event ? event.id : null\n const bg =\n i % 2 !== 0\n ? 'color-mix(in srgb, var(--card-border-color, #ddd) 15%, transparent)'\n : undefined\n return (\n <tr key={event.timestamp} style={{background: bg}}>\n {showTimestamp && <td>{time}</td>}\n {showEventId && <td>{eventId}</td>}\n <td style={{fontWeight: 600}}>{event.type}</td>\n <td style={{whiteSpace: 'normal'}}>\n {tags.length > 0 && (\n <TagGrid>\n {tags.map((tag) => (\n <Fragment key={tag}>\n <span title={tag}>{tag}</span>\n <span>{findResolvedTag(tag)}</span>\n </Fragment>\n ))}\n </TagGrid>\n )}\n </td>\n </tr>\n )\n })}\n </tbody>\n </StyledTable>\n )\n}\n\nexport default function Tool() {\n const client = useClient({apiVersion: '2026-03-17'})\n const projectId = useProjectId()\n const dataset = useDataset()\n const [liveEvents, setLiveEvents] = useState<Map<string, LiveEvent & {timestamp: string}>>(\n () => new Map(),\n )\n const [liveEventsIncludingAllDocuments, setLiveEventsIncludingAllDocuments] = useState<\n Map<string, LiveEvent & {timestamp: string}>\n >(() => new Map())\n\n useEffect(() => {\n const subscription = client.live.events({tag: 'debug-live-sync-tags'}).subscribe({\n next: (event) => {\n startTransition(() =>\n setLiveEvents((prev) => {\n const next = new Map(prev)\n next.set('id' in event ? event.id : new Date().toJSON(), {\n ...event,\n timestamp: new Date().toJSON(),\n })\n return next\n }),\n )\n },\n error: console.error,\n })\n return () => subscription.unsubscribe()\n }, [client])\n\n useEffect(() => {\n const subscription = client.live\n .events({tag: 'debug-live-sync-tags', includeDrafts: true})\n .subscribe({\n next: (event) => {\n startTransition(() =>\n setLiveEventsIncludingAllDocuments((prev) => {\n const next = new Map(prev)\n next.set('id' in event ? event.id : new Date().toJSON(), {\n ...event,\n timestamp: new Date().toJSON(),\n })\n return next\n }),\n )\n },\n error: console.error,\n })\n return () => subscription.unsubscribe()\n }, [client])\n\n const [syncTagForEverything, setSyncTagForEverything] = useState<string | null>(null)\n const [allDocumentTypes, setAllDocumentTypes] = useState<Map<string, string | null>>(\n () => new Map(),\n )\n useEffect(() => {\n const controller = new AbortController()\n client\n .fetch<string[]>(\n `array::unique(*._type)`,\n {},\n {\n signal: controller.signal,\n returnQuery: false,\n tag: 'debug-live-sync-tags',\n filterResponse: false,\n },\n )\n .then(({result, syncTags}) => {\n if (controller.signal.aborted) return\n setSyncTagForEverything(syncTags?.[0] ?? null)\n\n setAllDocumentTypes((prev) => {\n const next = new Map(prev)\n for (const type of result) {\n if (!next.has(type)) {\n next.set(type, null)\n }\n }\n return next\n })\n return\n })\n .catch(console.error)\n return () => controller.abort()\n }, [client])\n\n const [whichList, setWhichList] = useState<'liveEvents' | 'liveEventsIncludingAllDocuments'>(\n 'liveEvents',\n )\n const [showTimestamp, setShowTimestamp] = useState(true)\n const [showEventId, setShowEventId] = useState(false)\n\n const unknownDocumentTypes: string[] = []\n for (const [documentType, resolvedDocumentType] of allDocumentTypes.entries()) {\n if (resolvedDocumentType === null) {\n unknownDocumentTypes.push(documentType)\n }\n }\n const setDocumentType = (documentType: string, resolvedDocumentType: string) =>\n startTransition(() =>\n setAllDocumentTypes((prev) => {\n const next = new Map(prev)\n next.set(documentType, resolvedDocumentType)\n return next\n }),\n )\n function findResolvedTag(tag: string): string {\n if (tag === syncTagForEverything) {\n return 'any:*'\n }\n for (const [documentType, resolvedDocumentType] of allDocumentTypes.entries()) {\n if (resolvedDocumentType === tag) {\n return `type:${documentType}`\n }\n }\n for (const [documentId, resolvedDocumentId] of documentIdToTagMap.entries()) {\n if (resolvedDocumentId === tag) {\n return `id:${documentId}`\n }\n }\n for (const [slug, resolvedSlug] of documentSlugToTagMap.entries()) {\n if (resolvedSlug === tag) {\n return `slug:${slug}`\n }\n }\n return tag\n }\n\n const allDocumentTypesArray = Array.from(allDocumentTypes.keys())\n const [documentIdToTagMap, setDocumentIdToTagMap] = useState<Map<string, string | null>>(\n () => new Map(),\n )\n const unknownDocumentIds: string[] = []\n for (const [documentId, tag] of documentIdToTagMap.entries()) {\n if (tag === null) {\n unknownDocumentIds.push(documentId)\n }\n }\n const setDocumentIdTag = (documentId: string, tag: string | null) =>\n startTransition(() =>\n setDocumentIdToTagMap((prev) => {\n const next = new Map(prev)\n next.set(documentId, tag)\n return next\n }),\n )\n\n const [documentSlugToTagMap, setDocumentSlugToTagMap] = useState<Map<string, string | null>>(\n () => new Map(),\n )\n const unknownDocumentSlugs: string[] = []\n for (const [slug, tag] of documentSlugToTagMap.entries()) {\n if (tag === null) {\n unknownDocumentSlugs.push(slug)\n }\n }\n const setDocumentSlugTag = (slug: string, tag: string | null) =>\n startTransition(() =>\n setDocumentSlugToTagMap((prev) => {\n const next = new Map(prev)\n next.set(slug, tag)\n return next\n }),\n )\n\n useEffect(() => {\n if (allDocumentTypesArray.length === 0) {\n return undefined\n }\n\n const listener = client\n .listen(\n '*[_type in $type]',\n {type: allDocumentTypesArray},\n {\n events: ['mutation'],\n includePreviousRevision: false,\n includeResult: true,\n includeAllVersions: true,\n includeMutations: false,\n tag: 'debug-live-sync-tags',\n },\n )\n .subscribe({\n next: (event) => {\n startTransition(() => {\n setDocumentIdToTagMap((prev) => {\n if (prev.has(event.documentId)) {\n return prev\n }\n const next = new Map(prev)\n next.set(event.documentId, null)\n return next\n })\n\n const slugField = event.result?.['slug']\n const slug =\n slugField &&\n typeof slugField === 'object' &&\n 'current' in slugField &&\n typeof slugField.current === 'string'\n ? slugField.current\n : null\n if (slug) {\n setDocumentSlugToTagMap((prev) => {\n if (prev.has(slug)) {\n return prev\n }\n const next = new Map(prev)\n next.set(slug, null)\n return next\n })\n }\n })\n },\n error: console.error,\n })\n return () => listener.unsubscribe()\n }, [client, allDocumentTypesArray])\n\n return (\n <Layout>\n <Sidebar gap={4}>\n <Flex as=\"label\" align=\"center\" gap={2}>\n <Checkbox\n checked={whichList === 'liveEventsIncludingAllDocuments'}\n onChange={() =>\n setWhichList((prev) =>\n prev === 'liveEvents' ? 'liveEventsIncludingAllDocuments' : 'liveEvents',\n )\n }\n />\n <Label size={1}>Include all documents</Label>\n </Flex>\n <Flex as=\"label\" align=\"center\" gap={2}>\n <Checkbox checked={showTimestamp} onChange={() => setShowTimestamp((prev) => !prev)} />\n <Label size={1}>Show timestamp</Label>\n </Flex>\n <Flex as=\"label\" align=\"center\" gap={2}>\n <Checkbox checked={showEventId} onChange={() => setShowEventId((prev) => !prev)} />\n <Label size={1}>Show event ID</Label>\n </Flex>\n </Sidebar>\n <Main>\n <Activity mode={whichList === 'liveEvents' ? 'visible' : 'hidden'}>\n <EventTable\n events={liveEvents}\n findResolvedTag={findResolvedTag}\n showTimestamp={showTimestamp}\n showEventId={showEventId}\n />\n </Activity>\n <Activity mode={whichList === 'liveEventsIncludingAllDocuments' ? 'visible' : 'hidden'}>\n <EventTable\n events={liveEventsIncludingAllDocuments}\n findResolvedTag={findResolvedTag}\n showTimestamp={showTimestamp}\n showEventId={showEventId}\n />\n </Activity>\n </Main>\n {unknownDocumentTypes.map((unknownDocumentType) => (\n <ResolveDocumentType\n key={unknownDocumentType}\n projectId={projectId}\n dataset={dataset}\n documentType={unknownDocumentType}\n client={client}\n setDocumentType={setDocumentType}\n />\n ))}\n {unknownDocumentIds.map((unknownDocumentId) => (\n <ResolveDocumentId\n key={unknownDocumentId}\n projectId={projectId}\n dataset={dataset}\n documentId={unknownDocumentId}\n client={client}\n setDocumentIdTag={setDocumentIdTag}\n />\n ))}\n {unknownDocumentSlugs.map((unknownSlug) => (\n <ResolveDocumentSlug\n key={unknownSlug}\n projectId={projectId}\n dataset={dataset}\n slug={unknownSlug}\n client={client}\n setDocumentSlugTag={setDocumentSlugTag}\n />\n ))}\n </Layout>\n )\n}\n\nfunction ResolveDocumentType({\n projectId,\n dataset,\n documentType,\n client,\n setDocumentType,\n}: {\n projectId: string\n dataset: string\n documentType: string\n client: SanityClient\n setDocumentType: (documentType: string, resolvedDocumentType: string) => void\n}) {\n useEffect(() => {\n const localStorageKey = `debug-live-sync-tags-resolved-document-type-${projectId}-${dataset}-${documentType}`\n const localStorageValue = localStorage.getItem(localStorageKey)\n if (localStorageValue && typeof localStorageValue === 'string') {\n setDocumentType(documentType, localStorageValue)\n return undefined\n }\n\n const controller = new AbortController()\n void client\n .fetch(\n `count(*[_type == $type])`,\n {type: documentType},\n {\n filterResponse: false,\n perspective: 'published',\n returnQuery: false,\n resultSourceMap: false,\n stega: false,\n useCdn: true,\n },\n )\n .then(({syncTags}) => {\n if (controller.signal.aborted) return\n if (!Array.isArray(syncTags)) {\n throw new TypeError('syncTags is not an array', {cause: {syncTags, documentType}})\n }\n if (syncTags.length !== 1) {\n throw new TypeError('syncTags is not an array of exactly one item', {\n cause: {syncTags, documentType},\n })\n }\n setDocumentType(documentType, syncTags[0]!)\n localStorage.setItem(localStorageKey, syncTags[0]!)\n return\n })\n return () => controller.abort()\n }, [documentType, client, dataset, setDocumentType, projectId])\n\n return null\n}\n\nfunction ResolveDocumentId({\n projectId,\n dataset,\n documentId,\n client,\n setDocumentIdTag,\n}: {\n projectId: string\n dataset: string\n documentId: string\n client: SanityClient\n setDocumentIdTag: (documentId: string, tag: string | null) => void\n}) {\n useEffect(() => {\n const localStorageKey = `debug-live-sync-tags-resolved-document-id-${projectId}-${dataset}-${documentId}`\n const localStorageValue = localStorage.getItem(localStorageKey)\n if (localStorageValue && typeof localStorageValue === 'string') {\n setDocumentIdTag(documentId, localStorageValue)\n return undefined\n }\n const controller = new AbortController()\n void client\n .fetch(\n `count(*[_id == $id])`,\n {id: documentId},\n {\n filterResponse: false,\n // perspective: 'published',\n returnQuery: false,\n resultSourceMap: false,\n stega: false,\n useCdn: true,\n },\n )\n .then(({syncTags}) => {\n if (controller.signal.aborted) return\n if (!Array.isArray(syncTags)) {\n throw new TypeError('syncTags is not an array', {cause: {syncTags, documentId}})\n }\n if (syncTags.length !== 1) {\n throw new TypeError('syncTags is not an array of exactly one item', {\n cause: {syncTags, documentId},\n })\n }\n setDocumentIdTag(documentId, syncTags[0]!)\n localStorage.setItem(localStorageKey, syncTags[0]!)\n return\n })\n return () => controller.abort()\n }, [documentId, client, dataset, setDocumentIdTag, projectId])\n return null\n}\n\nfunction ResolveDocumentSlug({\n projectId,\n dataset,\n slug,\n client,\n setDocumentSlugTag,\n}: {\n projectId: string\n dataset: string\n slug: string\n client: SanityClient\n setDocumentSlugTag: (slug: string, tag: string | null) => void\n}) {\n useEffect(() => {\n const localStorageKey = `debug-live-sync-tags-resolved-document-slug-${projectId}-${dataset}-${slug}`\n const localStorageValue = localStorage.getItem(localStorageKey)\n if (localStorageValue && typeof localStorageValue === 'string') {\n setDocumentSlugTag(slug, localStorageValue)\n return undefined\n }\n const controller = new AbortController()\n void client\n .fetch(\n `count(*[slug.current == $slug])`,\n {slug},\n {\n filterResponse: false,\n returnQuery: false,\n resultSourceMap: false,\n stega: false,\n useCdn: true,\n },\n )\n .then(({syncTags}) => {\n if (controller.signal.aborted) return\n if (!Array.isArray(syncTags)) {\n throw new TypeError('syncTags is not an array', {cause: {syncTags, slug}})\n }\n if (syncTags.length !== 1) {\n throw new TypeError('syncTags is not an array of exactly one item', {\n cause: {syncTags, slug},\n })\n }\n setDocumentSlugTag(slug, syncTags[0]!)\n localStorage.setItem(localStorageKey, syncTags[0]!)\n return\n })\n return () => controller.abort()\n }, [slug, client, dataset, setDocumentSlugTag, projectId])\n return null\n}\n"],"names":["Layout","styled","Flex","withConfig","displayName","componentId","Sidebar","Stack","Main","div","StyledTable","table","TagGrid","EventTable","t0","$","_c","events","findResolvedTag","showTimestamp","showEventId","t1","t2","Symbol","for","bb0","rows","Array","from","values","length","t3","t4","t5","t6","t7","map","event","i","tags","time","Date","timestamp","toLocaleTimeString","eventId","id","bg","undefined","background","fontWeight","type","whiteSpace","tag","Tool","apiVersion","client","useClient","projectId","useProjectId","dataset","useDataset","liveEvents","setLiveEvents","useState","_temp","liveEventsIncludingAllDocuments","setLiveEventsIncludingAllDocuments","_temp2","live","subscription","subscribe","next","startTransition","prev","Map","set","toJSON","error","console","unsubscribe","useEffect","subscription_0","includeDrafts","event_0","prev_0","next_0","syncTagForEverything","setSyncTagForEverything","allDocumentTypes","setAllDocumentTypes","_temp3","controller","AbortController","fetch","signal","returnQuery","filterResponse","then","result","syncTags","aborted","prev_1","next_1","has","catch","abort","whichList","setWhichList","setShowTimestamp","setShowEventId","unknownDocumentTypes","documentType","resolvedDocumentType","entries","push","documentType_0","resolvedDocumentType_0","prev_2","next_2","setDocumentType","documentType_1","resolvedDocumentType_1","documentId","resolvedDocumentId","documentIdToTagMap","slug","resolvedSlug","documentSlugToTagMap","t8","keys","allDocumentTypesArray","t9","setDocumentIdToTagMap","_temp4","unknownDocumentIds","documentId_0","tag_0","t10","documentId_1","tag_1","prev_3","next_3","setDocumentIdTag","t11","setDocumentSlugToTagMap","_temp5","unknownDocumentSlugs","slug_0","tag_2","t12","slug_1","tag_3","prev_4","next_4","setDocumentSlugTag","t13","listener","listen","includePreviousRevision","includeResult","includeAllVersions","includeMutations","event_1","prev_5","next_5","slugField","slug_2","current","prev_6","next_6","t14","t15","t16","_temp6","t17","t18","t19","t20","_temp7","t21","t22","t23","t24","_temp8","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","unknownDocumentType","t37","unknownDocumentId","t38","unknownSlug","t39","prev_9","prev_8","prev_7","ResolveDocumentType","localStorageKey","localStorageValue","localStorage","getItem","perspective","resultSourceMap","stega","useCdn","isArray","TypeError","cause","setItem","ResolveDocumentId","ResolveDocumentSlug"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Tool.js","names":["LiveEvent","Checkbox","Flex","Label","Stack","Activity","Fragment","startTransition","useEffect","useState","useClient","useProjectId","useDataset","SanityClient","styled","Layout","Sidebar","Main","div","StyledTable","table","TagGrid","EventTable","t0","$","_c","events","findResolvedTag","showTimestamp","showEventId","t1","t2","Symbol","for","bb0","rows","Array","from","values","length","t3","t4","t5","t6","t7","map","event","i","tags","time","Date","timestamp","toLocaleTimeString","eventId","id","bg","undefined","background","fontWeight","type","whiteSpace","tag","Tool","apiVersion","client","projectId","dataset","liveEvents","setLiveEvents","_temp","liveEventsIncludingAllDocuments","setLiveEventsIncludingAllDocuments","_temp2","live","subscription","subscribe","next","prev","Map","set","toJSON","error","console","unsubscribe","subscription_0","includeDrafts","event_0","prev_0","next_0","syncTagForEverything","setSyncTagForEverything","allDocumentTypes","setAllDocumentTypes","_temp3","controller","AbortController","fetch","signal","returnQuery","filterResponse","then","result","syncTags","aborted","prev_1","next_1","has","catch","abort","whichList","setWhichList","setShowTimestamp","setShowEventId","unknownDocumentTypes","documentType","resolvedDocumentType","entries","push","documentType_0","resolvedDocumentType_0","prev_2","next_2","setDocumentType","documentType_1","resolvedDocumentType_1","documentId","resolvedDocumentId","documentIdToTagMap","slug","resolvedSlug","documentSlugToTagMap","t8","keys","allDocumentTypesArray","t9","setDocumentIdToTagMap","_temp4","unknownDocumentIds","documentId_0","tag_0","t10","documentId_1","tag_1","prev_3","next_3","setDocumentIdTag","t11","setDocumentSlugToTagMap","_temp5","unknownDocumentSlugs","slug_0","tag_2","t12","slug_1","tag_3","prev_4","next_4","setDocumentSlugTag","t13","listener","listen","includePreviousRevision","includeResult","includeAllVersions","includeMutations","event_1","prev_5","next_5","slugField","slug_2","current","prev_6","next_6","t14","t15","t16","_temp6","t17","t18","t19","t20","_temp7","t21","t22","t23","t24","_temp8","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","unknownDocumentType","t37","unknownDocumentId","t38","unknownSlug","t39","prev_9","prev_8","prev_7","ResolveDocumentType","localStorageKey","localStorageValue","localStorage","getItem","perspective","resultSourceMap","stega","useCdn","isArray","TypeError","cause","setItem","ResolveDocumentId","ResolveDocumentSlug"],"sources":["../../src/components/Tool.tsx"],"sourcesContent":["import {type LiveEvent} from '@sanity/client'\nimport {Checkbox, Flex, Label, Stack} from '@sanity/ui'\nimport {Activity, Fragment, startTransition, useEffect, useState} from 'react'\nimport {useClient, useProjectId, useDataset, type SanityClient} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst Layout = styled(Flex)`\n height: 100%;\n width: 100%;\n`\n\nconst Sidebar = styled(Stack)`\n flex-shrink: 0;\n width: 200px;\n padding: 16px;\n border-right: 1px solid var(--card-border-color, #ddd);\n overflow-y: auto;\n`\n\nconst Main = styled.div`\n flex: 1;\n min-width: 0;\n overflow: auto;\n`\n\nconst StyledTable = styled.table`\n width: 100%;\n border-collapse: collapse;\n font-family: monospace;\n font-size: 13px;\n\n thead {\n position: sticky;\n top: 0;\n z-index: 1;\n background: var(--card-bg-color, #fff);\n box-shadow: inset 0 -2px 0 var(--card-border-color, #ddd);\n }\n\n th,\n td {\n padding: 4px 8px;\n text-align: left;\n vertical-align: top;\n white-space: nowrap;\n }\n\n th {\n font-weight: 600;\n }\n`\n\nconst TagGrid = styled.div`\n display: grid;\n grid-template-columns: auto 1fr;\n gap: 0 12px;\n`\n\nfunction EventTable({\n events,\n findResolvedTag,\n showTimestamp,\n showEventId,\n}: {\n events: Map<string, LiveEvent & {timestamp: string}>\n findResolvedTag: (tag: string) => string\n showTimestamp: boolean\n showEventId: boolean\n}) {\n const rows = Array.from(events.values())\n if (rows.length === 0) return null\n\n return (\n <StyledTable>\n <thead>\n <tr>\n {showTimestamp && <th>time</th>}\n {showEventId && <th>id</th>}\n <th>type</th>\n <th>tags</th>\n </tr>\n </thead>\n <tbody>\n {rows.map((event, i) => {\n const tags = 'tags' in event ? event.tags : []\n const time = new Date(event.timestamp).toLocaleTimeString()\n const eventId = 'id' in event ? event.id : null\n const bg =\n i % 2 !== 0\n ? 'color-mix(in srgb, var(--card-border-color, #ddd) 15%, transparent)'\n : undefined\n return (\n <tr key={event.timestamp} style={{background: bg}}>\n {showTimestamp && <td>{time}</td>}\n {showEventId && <td>{eventId}</td>}\n <td style={{fontWeight: 600}}>{event.type}</td>\n <td style={{whiteSpace: 'normal'}}>\n {tags.length > 0 && (\n <TagGrid>\n {tags.map((tag) => (\n <Fragment key={tag}>\n <span title={tag}>{tag}</span>\n <span>{findResolvedTag(tag)}</span>\n </Fragment>\n ))}\n </TagGrid>\n )}\n </td>\n </tr>\n )\n })}\n </tbody>\n </StyledTable>\n )\n}\n\nexport default function Tool() {\n const client = useClient({apiVersion: '2026-03-17'})\n const projectId = useProjectId()\n const dataset = useDataset()\n const [liveEvents, setLiveEvents] = useState<Map<string, LiveEvent & {timestamp: string}>>(\n () => new Map(),\n )\n const [liveEventsIncludingAllDocuments, setLiveEventsIncludingAllDocuments] = useState<\n Map<string, LiveEvent & {timestamp: string}>\n >(() => new Map())\n\n useEffect(() => {\n const subscription = client.live.events({tag: 'debug-live-sync-tags'}).subscribe({\n next: (event) => {\n startTransition(() =>\n setLiveEvents((prev) => {\n const next = new Map(prev)\n next.set('id' in event ? event.id : new Date().toJSON(), {\n ...event,\n timestamp: new Date().toJSON(),\n })\n return next\n }),\n )\n },\n error: console.error,\n })\n return () => subscription.unsubscribe()\n }, [client])\n\n useEffect(() => {\n const subscription = client.live\n .events({tag: 'debug-live-sync-tags', includeDrafts: true})\n .subscribe({\n next: (event) => {\n startTransition(() =>\n setLiveEventsIncludingAllDocuments((prev) => {\n const next = new Map(prev)\n next.set('id' in event ? event.id : new Date().toJSON(), {\n ...event,\n timestamp: new Date().toJSON(),\n })\n return next\n }),\n )\n },\n error: console.error,\n })\n return () => subscription.unsubscribe()\n }, [client])\n\n const [syncTagForEverything, setSyncTagForEverything] = useState<string | null>(null)\n const [allDocumentTypes, setAllDocumentTypes] = useState<Map<string, string | null>>(\n () => new Map(),\n )\n useEffect(() => {\n const controller = new AbortController()\n client\n .fetch<string[]>(\n `array::unique(*._type)`,\n {},\n {\n signal: controller.signal,\n returnQuery: false,\n tag: 'debug-live-sync-tags',\n filterResponse: false,\n },\n )\n .then(({result, syncTags}) => {\n if (controller.signal.aborted) return\n setSyncTagForEverything(syncTags?.[0] ?? null)\n\n setAllDocumentTypes((prev) => {\n const next = new Map(prev)\n for (const type of result) {\n if (!next.has(type)) {\n next.set(type, null)\n }\n }\n return next\n })\n return\n })\n .catch(console.error)\n return () => controller.abort()\n }, [client])\n\n const [whichList, setWhichList] = useState<'liveEvents' | 'liveEventsIncludingAllDocuments'>(\n 'liveEvents',\n )\n const [showTimestamp, setShowTimestamp] = useState(true)\n const [showEventId, setShowEventId] = useState(false)\n\n const unknownDocumentTypes: string[] = []\n for (const [documentType, resolvedDocumentType] of allDocumentTypes.entries()) {\n if (resolvedDocumentType === null) {\n unknownDocumentTypes.push(documentType)\n }\n }\n const setDocumentType = (documentType: string, resolvedDocumentType: string) =>\n startTransition(() =>\n setAllDocumentTypes((prev) => {\n const next = new Map(prev)\n next.set(documentType, resolvedDocumentType)\n return next\n }),\n )\n function findResolvedTag(tag: string): string {\n if (tag === syncTagForEverything) {\n return 'any:*'\n }\n for (const [documentType, resolvedDocumentType] of allDocumentTypes.entries()) {\n if (resolvedDocumentType === tag) {\n return `type:${documentType}`\n }\n }\n for (const [documentId, resolvedDocumentId] of documentIdToTagMap.entries()) {\n if (resolvedDocumentId === tag) {\n return `id:${documentId}`\n }\n }\n for (const [slug, resolvedSlug] of documentSlugToTagMap.entries()) {\n if (resolvedSlug === tag) {\n return `slug:${slug}`\n }\n }\n return tag\n }\n\n const allDocumentTypesArray = Array.from(allDocumentTypes.keys())\n const [documentIdToTagMap, setDocumentIdToTagMap] = useState<Map<string, string | null>>(\n () => new Map(),\n )\n const unknownDocumentIds: string[] = []\n for (const [documentId, tag] of documentIdToTagMap.entries()) {\n if (tag === null) {\n unknownDocumentIds.push(documentId)\n }\n }\n const setDocumentIdTag = (documentId: string, tag: string | null) =>\n startTransition(() =>\n setDocumentIdToTagMap((prev) => {\n const next = new Map(prev)\n next.set(documentId, tag)\n return next\n }),\n )\n\n const [documentSlugToTagMap, setDocumentSlugToTagMap] = useState<Map<string, string | null>>(\n () => new Map(),\n )\n const unknownDocumentSlugs: string[] = []\n for (const [slug, tag] of documentSlugToTagMap.entries()) {\n if (tag === null) {\n unknownDocumentSlugs.push(slug)\n }\n }\n const setDocumentSlugTag = (slug: string, tag: string | null) =>\n startTransition(() =>\n setDocumentSlugToTagMap((prev) => {\n const next = new Map(prev)\n next.set(slug, tag)\n return next\n }),\n )\n\n useEffect(() => {\n if (allDocumentTypesArray.length === 0) {\n return undefined\n }\n\n const listener = client\n .listen(\n '*[_type in $type]',\n {type: allDocumentTypesArray},\n {\n events: ['mutation'],\n includePreviousRevision: false,\n includeResult: true,\n includeAllVersions: true,\n includeMutations: false,\n tag: 'debug-live-sync-tags',\n },\n )\n .subscribe({\n next: (event) => {\n startTransition(() => {\n setDocumentIdToTagMap((prev) => {\n if (prev.has(event.documentId)) {\n return prev\n }\n const next = new Map(prev)\n next.set(event.documentId, null)\n return next\n })\n\n const slugField = event.result?.['slug']\n const slug =\n slugField &&\n typeof slugField === 'object' &&\n 'current' in slugField &&\n typeof slugField.current === 'string'\n ? slugField.current\n : null\n if (slug) {\n setDocumentSlugToTagMap((prev) => {\n if (prev.has(slug)) {\n return prev\n }\n const next = new Map(prev)\n next.set(slug, null)\n return next\n })\n }\n })\n },\n error: console.error,\n })\n return () => listener.unsubscribe()\n }, [client, allDocumentTypesArray])\n\n return (\n <Layout>\n <Sidebar gap={4}>\n <Flex as=\"label\" align=\"center\" gap={2}>\n <Checkbox\n checked={whichList === 'liveEventsIncludingAllDocuments'}\n onChange={() =>\n setWhichList((prev) =>\n prev === 'liveEvents' ? 'liveEventsIncludingAllDocuments' : 'liveEvents',\n )\n }\n />\n <Label size={1}>Include all documents</Label>\n </Flex>\n <Flex as=\"label\" align=\"center\" gap={2}>\n <Checkbox checked={showTimestamp} onChange={() => setShowTimestamp((prev) => !prev)} />\n <Label size={1}>Show timestamp</Label>\n </Flex>\n <Flex as=\"label\" align=\"center\" gap={2}>\n <Checkbox checked={showEventId} onChange={() => setShowEventId((prev) => !prev)} />\n <Label size={1}>Show event ID</Label>\n </Flex>\n </Sidebar>\n <Main>\n <Activity mode={whichList === 'liveEvents' ? 'visible' : 'hidden'}>\n <EventTable\n events={liveEvents}\n findResolvedTag={findResolvedTag}\n showTimestamp={showTimestamp}\n showEventId={showEventId}\n />\n </Activity>\n <Activity mode={whichList === 'liveEventsIncludingAllDocuments' ? 'visible' : 'hidden'}>\n <EventTable\n events={liveEventsIncludingAllDocuments}\n findResolvedTag={findResolvedTag}\n showTimestamp={showTimestamp}\n showEventId={showEventId}\n />\n </Activity>\n </Main>\n {unknownDocumentTypes.map((unknownDocumentType) => (\n <ResolveDocumentType\n key={unknownDocumentType}\n projectId={projectId}\n dataset={dataset}\n documentType={unknownDocumentType}\n client={client}\n setDocumentType={setDocumentType}\n />\n ))}\n {unknownDocumentIds.map((unknownDocumentId) => (\n <ResolveDocumentId\n key={unknownDocumentId}\n projectId={projectId}\n dataset={dataset}\n documentId={unknownDocumentId}\n client={client}\n setDocumentIdTag={setDocumentIdTag}\n />\n ))}\n {unknownDocumentSlugs.map((unknownSlug) => (\n <ResolveDocumentSlug\n key={unknownSlug}\n projectId={projectId}\n dataset={dataset}\n slug={unknownSlug}\n client={client}\n setDocumentSlugTag={setDocumentSlugTag}\n />\n ))}\n </Layout>\n )\n}\n\nfunction ResolveDocumentType({\n projectId,\n dataset,\n documentType,\n client,\n setDocumentType,\n}: {\n projectId: string\n dataset: string\n documentType: string\n client: SanityClient\n setDocumentType: (documentType: string, resolvedDocumentType: string) => void\n}) {\n useEffect(() => {\n const localStorageKey = `debug-live-sync-tags-resolved-document-type-${projectId}-${dataset}-${documentType}`\n const localStorageValue = localStorage.getItem(localStorageKey)\n if (localStorageValue && typeof localStorageValue === 'string') {\n setDocumentType(documentType, localStorageValue)\n return undefined\n }\n\n const controller = new AbortController()\n void client\n .fetch(\n `count(*[_type == $type])`,\n {type: documentType},\n {\n filterResponse: false,\n perspective: 'published',\n returnQuery: false,\n resultSourceMap: false,\n stega: false,\n useCdn: true,\n },\n )\n .then(({syncTags}) => {\n if (controller.signal.aborted) return\n if (!Array.isArray(syncTags)) {\n throw new TypeError('syncTags is not an array', {cause: {syncTags, documentType}})\n }\n if (syncTags.length !== 1) {\n throw new TypeError('syncTags is not an array of exactly one item', {\n cause: {syncTags, documentType},\n })\n }\n setDocumentType(documentType, syncTags[0]!)\n localStorage.setItem(localStorageKey, syncTags[0]!)\n return\n })\n return () => controller.abort()\n }, [documentType, client, dataset, setDocumentType, projectId])\n\n return null\n}\n\nfunction ResolveDocumentId({\n projectId,\n dataset,\n documentId,\n client,\n setDocumentIdTag,\n}: {\n projectId: string\n dataset: string\n documentId: string\n client: SanityClient\n setDocumentIdTag: (documentId: string, tag: string | null) => void\n}) {\n useEffect(() => {\n const localStorageKey = `debug-live-sync-tags-resolved-document-id-${projectId}-${dataset}-${documentId}`\n const localStorageValue = localStorage.getItem(localStorageKey)\n if (localStorageValue && typeof localStorageValue === 'string') {\n setDocumentIdTag(documentId, localStorageValue)\n return undefined\n }\n const controller = new AbortController()\n void client\n .fetch(\n `count(*[_id == $id])`,\n {id: documentId},\n {\n filterResponse: false,\n // perspective: 'published',\n returnQuery: false,\n resultSourceMap: false,\n stega: false,\n useCdn: true,\n },\n )\n .then(({syncTags}) => {\n if (controller.signal.aborted) return\n if (!Array.isArray(syncTags)) {\n throw new TypeError('syncTags is not an array', {cause: {syncTags, documentId}})\n }\n if (syncTags.length !== 1) {\n throw new TypeError('syncTags is not an array of exactly one item', {\n cause: {syncTags, documentId},\n })\n }\n setDocumentIdTag(documentId, syncTags[0]!)\n localStorage.setItem(localStorageKey, syncTags[0]!)\n return\n })\n return () => controller.abort()\n }, [documentId, client, dataset, setDocumentIdTag, projectId])\n return null\n}\n\nfunction ResolveDocumentSlug({\n projectId,\n dataset,\n slug,\n client,\n setDocumentSlugTag,\n}: {\n projectId: string\n dataset: string\n slug: string\n client: SanityClient\n setDocumentSlugTag: (slug: string, tag: string | null) => void\n}) {\n useEffect(() => {\n const localStorageKey = `debug-live-sync-tags-resolved-document-slug-${projectId}-${dataset}-${slug}`\n const localStorageValue = localStorage.getItem(localStorageKey)\n if (localStorageValue && typeof localStorageValue === 'string') {\n setDocumentSlugTag(slug, localStorageValue)\n return undefined\n }\n const controller = new AbortController()\n void client\n .fetch(\n `count(*[slug.current == $slug])`,\n {slug},\n {\n filterResponse: false,\n returnQuery: false,\n resultSourceMap: false,\n stega: false,\n useCdn: true,\n },\n )\n .then(({syncTags}) => {\n if (controller.signal.aborted) return\n if (!Array.isArray(syncTags)) {\n throw new TypeError('syncTags is not an array', {cause: {syncTags, slug}})\n }\n if (syncTags.length !== 1) {\n throw new TypeError('syncTags is not an array of exactly one item', {\n cause: {syncTags, slug},\n })\n }\n setDocumentSlugTag(slug, syncTags[0]!)\n localStorage.setItem(localStorageKey, syncTags[0]!)\n return\n })\n return () => controller.abort()\n }, [slug, client, dataset, setDocumentSlugTag, projectId])\n return null\n}\n"],"mappings":"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"}
\ No newline at end of file