@sanity/debug-live-sync-tags
1.0.131.0.14
dist/Tool-CrHhZ0Wk.js.map+
dist/Tool-CrHhZ0Wk.js.mapNew file+1
Index: package/dist/Tool-CrHhZ0Wk.js.map
===================================================================
--- package/dist/Tool-CrHhZ0Wk.js.map
+++ package/dist/Tool-CrHhZ0Wk.js.map
@@ -0,0 +1,1 @@
+{"version":3,"file":"Tool-CrHhZ0Wk.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