@sanity/client 6.12.0 → 6.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/_chunks/{browserMiddleware-VPUeJSZR.cjs → browserMiddleware-IWUpjfF7.cjs} +2 -2
  2. package/dist/_chunks/browserMiddleware-IWUpjfF7.cjs.map +1 -0
  3. package/dist/_chunks/{browserMiddleware-YHi9NZoW.js → browserMiddleware-zDVeirri.js} +2 -2
  4. package/dist/_chunks/browserMiddleware-zDVeirri.js.map +1 -0
  5. package/dist/_chunks/{nodeMiddleware-wVTxM7jj.cjs → nodeMiddleware-WxY6WiGP.cjs} +3 -3
  6. package/dist/_chunks/nodeMiddleware-WxY6WiGP.cjs.map +1 -0
  7. package/dist/_chunks/{nodeMiddleware-9OakwOIL.js → nodeMiddleware-itgO-mht.js} +3 -3
  8. package/dist/_chunks/nodeMiddleware-itgO-mht.js.map +1 -0
  9. package/dist/_chunks/{stegaEncodeSourceMap-FKPgf7TA.js → stegaEncodeSourceMap-6b6FFhTO.js} +3 -3
  10. package/dist/_chunks/stegaEncodeSourceMap-6b6FFhTO.js.map +1 -0
  11. package/dist/_chunks/{stegaEncodeSourceMap-hJEIEzBG.cjs → stegaEncodeSourceMap-YNx-0kzT.cjs} +3 -3
  12. package/dist/_chunks/stegaEncodeSourceMap-YNx-0kzT.cjs.map +1 -0
  13. package/dist/_chunks/{stegaEncodeSourceMap-M30Akn03.cjs → stegaEncodeSourceMap-d-bYFA5X.cjs} +3 -3
  14. package/dist/_chunks/stegaEncodeSourceMap-d-bYFA5X.cjs.map +1 -0
  15. package/dist/_chunks/{stegaEncodeSourceMap-wX9ZIHBe.js → stegaEncodeSourceMap-gZIRaYar.js} +3 -3
  16. package/dist/_chunks/stegaEncodeSourceMap-gZIRaYar.js.map +1 -0
  17. package/dist/index.browser.cjs +1 -1
  18. package/dist/index.browser.js +2 -2
  19. package/dist/index.cjs +1 -1
  20. package/dist/index.d.ts +26 -29
  21. package/dist/index.js +2 -2
  22. package/dist/stega.browser.cjs +2 -2
  23. package/dist/stega.browser.js +3 -3
  24. package/dist/stega.cjs +2 -2
  25. package/dist/stega.d.ts +26 -29
  26. package/dist/stega.js +3 -3
  27. package/package.json +3 -3
  28. package/src/SanityClient.ts +26 -21
  29. package/src/stega/filterDefault.ts +1 -1
  30. package/src/types.ts +0 -13
  31. package/umd/sanityClient.js +3 -3
  32. package/umd/sanityClient.min.js +1 -1
  33. package/dist/_chunks/browserMiddleware-VPUeJSZR.cjs.map +0 -1
  34. package/dist/_chunks/browserMiddleware-YHi9NZoW.js.map +0 -1
  35. package/dist/_chunks/nodeMiddleware-9OakwOIL.js.map +0 -1
  36. package/dist/_chunks/nodeMiddleware-wVTxM7jj.cjs.map +0 -1
  37. package/dist/_chunks/stegaEncodeSourceMap-FKPgf7TA.js.map +0 -1
  38. package/dist/_chunks/stegaEncodeSourceMap-M30Akn03.cjs.map +0 -1
  39. package/dist/_chunks/stegaEncodeSourceMap-hJEIEzBG.cjs.map +0 -1
  40. package/dist/_chunks/stegaEncodeSourceMap-wX9ZIHBe.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stegaEncodeSourceMap-YNx-0kzT.cjs","sources":["../../src/csm/studioPath.ts","../../src/csm/jsonPath.ts","../../src/csm/resolveMapping.ts","../../src/csm/isArray.ts","../../src/csm/isRecord.ts","../../src/csm/walkMap.ts","../../src/stega/encodeIntoResult.ts","../../src/csm/getPublishedId.ts","../../src/csm/createEditUrl.ts","../../src/csm/resolveEditInfo.ts","../../src/stega/filterDefault.ts","../../src/stega/stegaEncodeSourceMap.ts"],"sourcesContent":["/** @alpha */\nexport type KeyedSegment = {_key: string}\n\n/** @alpha */\nexport type IndexTuple = [number | '', number | '']\n\n/** @alpha */\nexport type PathSegment = string | number | KeyedSegment | IndexTuple\n\n/** @alpha */\nexport type Path = PathSegment[]\n\nconst rePropName =\n /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g\n/** @internal */\nexport const reKeySegment = /_key\\s*==\\s*['\"](.*)['\"]/\nconst reIndexTuple = /^\\d*:\\d*$/\n\n/** @internal */\nexport function isIndexSegment(segment: PathSegment): segment is number {\n return typeof segment === 'number' || (typeof segment === 'string' && /^\\[\\d+\\]$/.test(segment))\n}\n\n/** @internal */\nexport function isKeySegment(segment: PathSegment): segment is KeyedSegment {\n if (typeof segment === 'string') {\n return reKeySegment.test(segment.trim())\n }\n\n return typeof segment === 'object' && '_key' in segment\n}\n\n/** @internal */\nexport function isIndexTuple(segment: PathSegment): segment is IndexTuple {\n if (typeof segment === 'string' && reIndexTuple.test(segment)) {\n return true\n }\n\n if (!Array.isArray(segment) || segment.length !== 2) {\n return false\n }\n\n const [from, to] = segment\n return (typeof from === 'number' || from === '') && (typeof to === 'number' || to === '')\n}\n\n/** @internal */\nexport function get<Result = unknown, Fallback = unknown>(\n obj: unknown,\n path: Path | string,\n defaultVal?: Fallback,\n): Result | typeof defaultVal {\n const select = typeof path === 'string' ? fromString(path) : path\n if (!Array.isArray(select)) {\n throw new Error('Path must be an array or a string')\n }\n\n let acc: unknown | undefined = obj\n for (let i = 0; i < select.length; i++) {\n const segment = select[i]\n if (isIndexSegment(segment)) {\n if (!Array.isArray(acc)) {\n return defaultVal\n }\n\n acc = acc[segment]\n }\n\n if (isKeySegment(segment)) {\n if (!Array.isArray(acc)) {\n return defaultVal\n }\n\n acc = acc.find((item) => item._key === segment._key)\n }\n\n if (typeof segment === 'string') {\n acc =\n typeof acc === 'object' && acc !== null\n ? ((acc as Record<string, unknown>)[segment] as Result)\n : undefined\n }\n\n if (typeof acc === 'undefined') {\n return defaultVal\n }\n }\n\n return acc as Result\n}\n\n/** @alpha */\nexport function toString(path: Path): string {\n if (!Array.isArray(path)) {\n throw new Error('Path is not an array')\n }\n\n return path.reduce<string>((target, segment, i) => {\n const segmentType = typeof segment\n if (segmentType === 'number') {\n return `${target}[${segment}]`\n }\n\n if (segmentType === 'string') {\n const separator = i === 0 ? '' : '.'\n return `${target}${separator}${segment}`\n }\n\n if (isKeySegment(segment) && segment._key) {\n return `${target}[_key==\"${segment._key}\"]`\n }\n\n if (Array.isArray(segment)) {\n const [from, to] = segment\n return `${target}[${from}:${to}]`\n }\n\n throw new Error(`Unsupported path segment \\`${JSON.stringify(segment)}\\``)\n }, '')\n}\n\n/** @alpha */\nexport function fromString(path: string): Path {\n if (typeof path !== 'string') {\n throw new Error('Path is not a string')\n }\n\n const segments = path.match(rePropName)\n if (!segments) {\n throw new Error('Invalid path string')\n }\n\n return segments.map(parsePathSegment)\n}\n\nfunction parsePathSegment(segment: string): PathSegment {\n if (isIndexSegment(segment)) {\n return parseIndexSegment(segment)\n }\n\n if (isKeySegment(segment)) {\n return parseKeySegment(segment)\n }\n\n if (isIndexTuple(segment)) {\n return parseIndexTupleSegment(segment)\n }\n\n return segment\n}\n\nfunction parseIndexSegment(segment: string): PathSegment {\n return Number(segment.replace(/[^\\d]/g, ''))\n}\n\nfunction parseKeySegment(segment: string): KeyedSegment {\n const segments = segment.match(reKeySegment)\n return {_key: segments![1]}\n}\n\nfunction parseIndexTupleSegment(segment: string): IndexTuple {\n const [from, to] = segment.split(':').map((seg) => (seg === '' ? seg : Number(seg)))\n return [from, to]\n}\n","import * as studioPath from './studioPath'\nimport type {\n ContentSourceMapParsedPath,\n ContentSourceMapParsedPathKeyedSegment,\n ContentSourceMapPaths,\n Path,\n} from './types'\n\nconst ESCAPE: Record<string, string> = {\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n \"'\": \"\\\\'\",\n '\\\\': '\\\\\\\\',\n}\n\nconst UNESCAPE: Record<string, string> = {\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t',\n \"\\\\'\": \"'\",\n '\\\\\\\\': '\\\\',\n}\n\n/**\n * @internal\n */\nexport function jsonPath(path: ContentSourceMapParsedPath): ContentSourceMapPaths[number] {\n return `$${path\n .map((segment) => {\n if (typeof segment === 'string') {\n const escapedKey = segment.replace(/[\\f\\n\\r\\t'\\\\]/g, (match) => {\n return ESCAPE[match]\n })\n return `['${escapedKey}']`\n }\n\n if (typeof segment === 'number') {\n return `[${segment}]`\n }\n\n if (segment._key !== '') {\n const escapedKey = segment._key.replace(/['\\\\]/g, (match) => {\n return ESCAPE[match]\n })\n return `[?(@._key=='${escapedKey}')]`\n }\n\n return `[${segment._index}]`\n })\n .join('')}`\n}\n\n/**\n * @internal\n */\nexport function parseJsonPath(path: ContentSourceMapPaths[number]): ContentSourceMapParsedPath {\n const parsed: ContentSourceMapParsedPath = []\n\n const parseRe = /\\['(.*?)'\\]|\\[(\\d+)\\]|\\[\\?\\(@\\._key=='(.*?)'\\)\\]/g\n let match: RegExpExecArray | null\n\n while ((match = parseRe.exec(path)) !== null) {\n if (match[1] !== undefined) {\n const key = match[1].replace(/\\\\(\\\\|f|n|r|t|')/g, (m) => {\n return UNESCAPE[m]\n })\n\n parsed.push(key)\n continue\n }\n\n if (match[2] !== undefined) {\n parsed.push(parseInt(match[2], 10))\n continue\n }\n\n if (match[3] !== undefined) {\n const _key = match[3].replace(/\\\\(\\\\')/g, (m) => {\n return UNESCAPE[m]\n })\n\n parsed.push({\n _key,\n _index: -1,\n })\n continue\n }\n }\n\n return parsed\n}\n\n/**\n * @internal\n */\nexport function jsonPathToStudioPath(path: ContentSourceMapParsedPath): Path {\n return path.map((segment) => {\n if (typeof segment === 'string') {\n return segment\n }\n\n if (typeof segment === 'number') {\n return segment\n }\n\n if (segment._key !== '') {\n return {_key: segment._key}\n }\n\n if (segment._index !== -1) {\n return segment._index\n }\n\n throw new Error(`invalid segment:${JSON.stringify(segment)}`)\n })\n}\n\n/**\n * @internal\n */\nexport function studioPathToJsonPath(path: Path | string): ContentSourceMapParsedPath {\n const parsedPath = typeof path === 'string' ? studioPath.fromString(path) : path\n\n return parsedPath.map((segment) => {\n if (typeof segment === 'string') {\n return segment\n }\n\n if (typeof segment === 'number') {\n return segment\n }\n\n if (Array.isArray(segment)) {\n throw new Error(`IndexTuple segments aren't supported:${JSON.stringify(segment)}`)\n }\n\n if (isContentSourceMapParsedPathKeyedSegment(segment)) {\n return segment\n }\n\n if (segment._key) {\n return {_key: segment._key, _index: -1}\n }\n\n throw new Error(`invalid segment:${JSON.stringify(segment)}`)\n })\n}\n\nfunction isContentSourceMapParsedPathKeyedSegment(\n segment: studioPath.PathSegment | ContentSourceMapParsedPath[number],\n): segment is ContentSourceMapParsedPathKeyedSegment {\n return typeof segment === 'object' && '_key' in segment && '_index' in segment\n}\n\n/**\n * @internal\n */\nexport function jsonPathToMappingPath(path: ContentSourceMapParsedPath): (string | number)[] {\n return path.map((segment) => {\n if (typeof segment === 'string') {\n return segment\n }\n\n if (typeof segment === 'number') {\n return segment\n }\n\n if (segment._index !== -1) {\n return segment._index\n }\n\n throw new Error(`invalid segment:${JSON.stringify(segment)}`)\n })\n}\n","import {jsonPath, jsonPathToMappingPath} from './jsonPath'\nimport type {ContentSourceMap, ContentSourceMapMapping, ContentSourceMapParsedPath} from './types'\n\n/**\n * @internal\n */\nexport function resolveMapping(\n resultPath: ContentSourceMapParsedPath,\n csm?: ContentSourceMap,\n):\n | {\n mapping: ContentSourceMapMapping\n matchedPath: string\n pathSuffix: string\n }\n | undefined {\n if (!csm?.mappings) {\n return undefined\n }\n const resultMappingPath = jsonPath(jsonPathToMappingPath(resultPath))\n\n if (csm.mappings[resultMappingPath] !== undefined) {\n return {\n mapping: csm.mappings[resultMappingPath],\n matchedPath: resultMappingPath,\n pathSuffix: '',\n }\n }\n\n const mappings = Object.entries(csm.mappings)\n .filter(([key]) => resultMappingPath.startsWith(key))\n .sort(([key1], [key2]) => key2.length - key1.length)\n\n if (mappings.length == 0) {\n return undefined\n }\n\n const [matchedPath, mapping] = mappings[0]\n const pathSuffix = resultMappingPath.substring(matchedPath.length)\n return {mapping, matchedPath, pathSuffix}\n}\n","/** @internal */\nexport function isArray(value: unknown): value is Array<unknown> {\n return value !== null && Array.isArray(value)\n}\n","/** @internal */\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n","import {isArray} from './isArray'\nimport {isRecord} from './isRecord'\nimport type {ContentSourceMapParsedPath, WalkMapFn} from './types'\n\n/**\n * generic way to walk a nested object or array and apply a mapping function to each value\n * @internal\n */\nexport function walkMap(\n value: unknown,\n mappingFn: WalkMapFn,\n path: ContentSourceMapParsedPath = [],\n): unknown {\n if (isArray(value)) {\n return value.map((v, idx) => {\n if (isRecord(v)) {\n const _key = v['_key']\n if (typeof _key === 'string') {\n return walkMap(v, mappingFn, path.concat({_key, _index: idx}))\n }\n }\n\n return walkMap(v, mappingFn, path.concat(idx))\n })\n }\n\n if (isRecord(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([k, v]) => [k, walkMap(v, mappingFn, path.concat(k))]),\n )\n }\n\n return mappingFn(value, path)\n}\n","import {parseJsonPath} from '../csm/jsonPath'\nimport {resolveMapping} from '../csm/resolveMapping'\nimport type {ContentSourceMap} from '../csm/types'\nimport {walkMap} from '../csm/walkMap'\nimport type {Encoder} from './types'\n\n/**\n * @internal\n */\nexport function encodeIntoResult<Result>(\n result: Result,\n csm: ContentSourceMap,\n encoder: Encoder,\n): Result {\n return walkMap(result, (value, path) => {\n // Only map strings, we could extend this in the future to support other types like integers...\n if (typeof value !== 'string') {\n return value\n }\n\n const resolveMappingResult = resolveMapping(path, csm)\n if (!resolveMappingResult) {\n return value\n }\n\n const {mapping, matchedPath} = resolveMappingResult\n if (mapping.type !== 'value') {\n return value\n }\n\n if (mapping.source.type !== 'documentValue') {\n return value\n }\n\n const sourceDocument = csm.documents[mapping.source.document!]\n const sourcePath = csm.paths[mapping.source.path]\n\n const matchPathSegments = parseJsonPath(matchedPath)\n const sourcePathSegments = parseJsonPath(sourcePath)\n const fullSourceSegments = sourcePathSegments.concat(path.slice(matchPathSegments.length))\n\n return encoder({\n sourcePath: fullSourceSegments,\n sourceDocument,\n resultPath: path,\n value,\n })\n }) as Result\n}\n","export const DRAFTS_PREFIX = 'drafts.'\n\n/** @internal */\nexport function getPublishedId(id: string): string {\n if (id.startsWith(DRAFTS_PREFIX)) {\n return id.slice(DRAFTS_PREFIX.length)\n }\n\n return id\n}\n","import {getPublishedId} from './getPublishedId'\nimport {jsonPathToStudioPath} from './jsonPath'\nimport * as studioPath from './studioPath'\nimport type {CreateEditUrlOptions, EditIntentUrl, StudioBaseUrl} from './types'\n\n/** @internal */\nexport function createEditUrl(options: CreateEditUrlOptions): `${StudioBaseUrl}${EditIntentUrl}` {\n const {\n baseUrl,\n workspace: _workspace = 'default',\n tool: _tool = 'default',\n id: _id,\n type,\n path,\n } = options\n\n if (!baseUrl) {\n throw new Error('baseUrl is required')\n }\n if (!path) {\n throw new Error('path is required')\n }\n if (!_id) {\n throw new Error('id is required')\n }\n if (baseUrl !== '/' && baseUrl.endsWith('/')) {\n throw new Error('baseUrl must not end with a slash')\n }\n\n const workspace = _workspace === 'default' ? undefined : _workspace\n const tool = _tool === 'default' ? undefined : _tool\n // eslint-disable-next-line no-warning-comments\n // @TODO allow passing draft prefixed IDs, to better open the right perspective mode\n const id = getPublishedId(_id)\n const stringifiedPath = Array.isArray(path)\n ? studioPath.toString(jsonPathToStudioPath(path))\n : path\n\n // eslint-disable-next-line no-warning-comments\n // @TODO Using searchParams as a temporary workaround until `@sanity/overlays` can decode state from the path reliably\n const searchParams = new URLSearchParams({\n baseUrl,\n id,\n type,\n path: stringifiedPath,\n })\n if (workspace) {\n searchParams.set('workspace', workspace)\n }\n if (tool) {\n searchParams.set('tool', tool)\n }\n\n const segments = [baseUrl === '/' ? '' : baseUrl]\n if (workspace) {\n segments.push(workspace)\n }\n const routerParams = [\n 'mode=presentation',\n `id=${id}`,\n `type=${type}`,\n `path=${encodeURIComponent(stringifiedPath)}`,\n ]\n if (tool) {\n routerParams.push(`tool=${tool}`)\n }\n segments.push('intent', 'edit', `${routerParams.join(';')}?${searchParams}`)\n return segments.join('/') as unknown as `${StudioBaseUrl}${EditIntentUrl}`\n}\n","import {parseJsonPath} from './jsonPath'\nimport {resolveMapping} from './resolveMapping'\nimport type {\n CreateEditUrlOptions,\n ResolveEditInfoOptions,\n StudioBaseRoute,\n StudioBaseUrl,\n StudioUrl,\n} from './types'\n\n/** @internal */\nexport function resolveEditInfo(options: ResolveEditInfoOptions): CreateEditUrlOptions | undefined {\n const {resultSourceMap: csm, resultPath} = options\n const {mapping, pathSuffix} = resolveMapping(resultPath, csm) || {}\n\n if (!mapping) {\n // console.warn('no mapping for path', { path: resultPath, sourceMap: csm })\n return undefined\n }\n\n if (mapping.source.type === 'literal') {\n return undefined\n }\n\n if (mapping.source.type === 'unknown') {\n return undefined\n }\n\n const sourceDoc = csm.documents[mapping.source.document]\n const sourcePath = csm.paths[mapping.source.path]\n\n if (sourceDoc && sourcePath) {\n const {baseUrl, workspace, tool} = resolveStudioBaseRoute(\n typeof options.studioUrl === 'function' ? options.studioUrl(sourceDoc) : options.studioUrl,\n )\n if (!baseUrl) return undefined\n const {_id, _type} = sourceDoc\n return {\n baseUrl,\n workspace,\n tool,\n id: _id,\n type: _type,\n path: parseJsonPath(sourcePath + pathSuffix),\n } satisfies CreateEditUrlOptions\n }\n\n return undefined\n}\n\n/** @internal */\nexport function resolveStudioBaseRoute(studioUrl: StudioUrl): StudioBaseRoute {\n let baseUrl: StudioBaseUrl = typeof studioUrl === 'string' ? studioUrl : studioUrl.baseUrl\n if (baseUrl !== '/') {\n baseUrl = baseUrl.replace(/\\/$/, '')\n }\n if (typeof studioUrl === 'string') {\n return {baseUrl}\n }\n return {...studioUrl, baseUrl}\n}\n","import type {FilterDefault} from './types'\n\nexport const filterDefault: FilterDefault = ({sourcePath, value}) => {\n // Skips encoding on URL or Date strings, similar to the `skip: 'auto'` parameter in vercelStegaCombine()\n if (isValidDate(value) || isValidURL(value)) {\n return false\n }\n\n const endPath = sourcePath.at(-1)\n // Never encode slugs\n if (sourcePath.at(-2) === 'slug' && endPath === 'current') {\n return false\n }\n\n // Skip underscored keys, needs better heuristics but it works for now\n if (typeof endPath === 'string' && endPath.startsWith('_')) {\n return false\n }\n\n /**\n * Best effort infer Portable Text paths that should not be encoded.\n * Nothing is for certain, and the below implementation may cause paths that aren't Portable Text and otherwise be safe to encode to be skipped.\n * However, that's ok as userland can always opt-in with the `encodeSourceMapAtPath` option and mark known safe paths as such, which will override this heuristic.\n */\n // If the path ends in marks[number] it's likely a PortableTextSpan: https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#LL154C16-L154C16\n if (typeof endPath === 'number' && sourcePath.at(-2) === 'marks') {\n return false\n }\n // Or if it's [number].markDefs[number].href it's likely a PortableTextLink: https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#L163\n if (\n endPath === 'href' &&\n typeof sourcePath.at(-2) === 'number' &&\n sourcePath.at(-3) === 'markDefs'\n ) {\n return false\n }\n // Otherwise we have to deal with special properties of PortableTextBlock, and we can't confidently know if it's actually a `_type: 'block'` array item or not.\n // All we know is that if it is indeed a block, and we encode the strings on these keys it'll for sure break the PortableText rendering and thus we skip encoding.\n // https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#L48-L58\n if (endPath === 'style' || endPath === 'listItem') {\n return false\n }\n\n // Don't encode into anything that is suggested it'll render for SEO in meta tags\n if (\n sourcePath.some(\n (path) => path === 'meta' || path === 'metadata' || path === 'openGraph' || path === 'seo',\n )\n ) {\n return false\n }\n\n // Finally, we ignore a bunch of paths that are typically used for page building\n if (typeof endPath === 'string' && denylist.has(endPath)) {\n return false\n }\n\n return true\n}\n\nconst denylist = new Set([\n 'color',\n 'colour',\n 'currency',\n 'email',\n 'format',\n 'gid',\n 'hex',\n 'href',\n 'hsl',\n 'hsla',\n 'icon',\n 'id',\n 'index',\n 'key',\n 'language',\n 'layout',\n 'link',\n 'linkAction',\n 'locale',\n 'lqip',\n 'page',\n 'path',\n 'ref',\n 'rgb',\n 'rgba',\n 'route',\n 'secret',\n 'slug',\n 'status',\n 'tag',\n 'template',\n 'theme',\n 'type',\n 'unit',\n 'url',\n 'username',\n 'variant',\n 'website',\n])\n\nfunction isValidDate(dateString: string) {\n return /^\\d{4}-\\d{2}-\\d{2}/.test(dateString) ? Boolean(Date.parse(dateString)) : false\n}\n\nfunction isValidURL(url: string) {\n try {\n new URL(url, url.startsWith('/') ? 'https://acme.com' : undefined)\n } catch {\n return false\n }\n return true\n}\n","import {vercelStegaCombine} from '@vercel/stega'\n\nimport {createEditUrl} from '../csm/createEditUrl'\nimport {jsonPathToStudioPath} from '../csm/jsonPath'\nimport {resolveStudioBaseRoute} from '../csm/resolveEditInfo'\nimport {reKeySegment, toString as studioPathToString} from '../csm/studioPath'\nimport {encodeIntoResult} from './encodeIntoResult'\nimport {filterDefault} from './filterDefault'\nimport {ContentSourceMap, ContentSourceMapParsedPath, InitializedStegaConfig} from './types'\n\nconst TRUNCATE_LENGTH = 20\n\n/**\n * Uses `@vercel/stega` to embed edit info JSON into strings in your query result.\n * The JSON payloads are added using invisible characters so they don't show up visually.\n * The edit info is generated from the Content Source Map (CSM) that is returned from Sanity for the query.\n * @public\n */\nexport function stegaEncodeSourceMap<Result = unknown>(\n result: Result,\n resultSourceMap: ContentSourceMap | undefined,\n config: InitializedStegaConfig,\n): Result {\n const {filter, logger, enabled} = config\n if (!enabled) {\n const msg = \"config.enabled must be true, don't call this function otherwise\"\n logger?.error?.(`[@sanity/client/stega]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n if (!resultSourceMap) {\n logger?.error?.('[@sanity/client/stega]: Missing Content Source Map from response body', {\n result,\n resultSourceMap,\n config,\n })\n return result\n }\n\n if (!config.studioUrl) {\n const msg = 'config.studioUrl must be defined'\n logger?.error?.(`[@sanity/client/stega]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n const report: Record<'encoded' | 'skipped', {path: string; length: number; value: string}[]> = {\n encoded: [],\n skipped: [],\n }\n\n const resultWithStega = encodeIntoResult(\n result,\n resultSourceMap,\n ({sourcePath, sourceDocument, resultPath, value}) => {\n // Allow userland to control when to opt-out of encoding\n if (\n (typeof filter === 'function'\n ? filter({sourcePath, resultPath, filterDefault, sourceDocument, value})\n : filterDefault({sourcePath, resultPath, filterDefault, sourceDocument, value})) === false\n ) {\n if (logger) {\n report.skipped.push({\n path: prettyPathForLogging(sourcePath),\n value: `${value.slice(0, TRUNCATE_LENGTH)}${\n value.length > TRUNCATE_LENGTH ? '...' : ''\n }`,\n length: value.length,\n })\n }\n return value\n }\n\n if (logger) {\n report.encoded.push({\n path: prettyPathForLogging(sourcePath),\n value: `${value.slice(0, TRUNCATE_LENGTH)}${value.length > TRUNCATE_LENGTH ? '...' : ''}`,\n length: value.length,\n })\n }\n\n const {baseUrl, workspace, tool} = resolveStudioBaseRoute(\n typeof config.studioUrl === 'function'\n ? config.studioUrl(sourceDocument)\n : config.studioUrl!,\n )\n if (!baseUrl) return value\n const {_id: id, _type: type} = sourceDocument\n\n return vercelStegaCombine(\n value,\n {\n origin: 'sanity.io',\n href: createEditUrl({\n baseUrl,\n workspace,\n tool,\n id,\n type,\n path: sourcePath,\n }),\n },\n // We use custom logic to determine if we should skip encoding\n false,\n )\n },\n )\n\n if (logger) {\n const isSkipping = report.skipped.length\n const isEncoding = report.encoded.length\n if (isSkipping || isEncoding) {\n ;(logger?.groupCollapsed || logger.log)?.(\n '[@sanity/client/stega]: Encoding source map into result',\n )\n logger.log?.(\n `[@sanity/client/stega]: Paths encoded: ${report.encoded.length}, skipped: ${report.skipped.length}`,\n )\n }\n if (report.encoded.length > 0) {\n logger?.log?.(`[@sanity/client/stega]: Table of encoded paths`)\n ;(logger?.table || logger.log)?.(report.encoded)\n }\n if (report.skipped.length > 0) {\n const skipped = new Set<string>()\n for (const {path} of report.skipped) {\n skipped.add(path.replace(reKeySegment, '0').replace(/\\[\\d+\\]/g, '[]'))\n }\n logger?.log?.(`[@sanity/client/stega]: List of skipped paths`, [...skipped.values()])\n }\n\n if (isSkipping || isEncoding) {\n logger?.groupEnd?.()\n }\n }\n\n return resultWithStega\n}\n\nfunction prettyPathForLogging(path: ContentSourceMapParsedPath): string {\n return studioPathToString(jsonPathToStudioPath(path))\n}\n"],"names":["studioPath.toString","vercelStegaCombine","studioPathToString"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var nodeMiddleware = require('./nodeMiddleware-wVTxM7jj.cjs');
3
+ var nodeMiddleware = require('./nodeMiddleware-WxY6WiGP.cjs');
4
4
  var resolveEditInfo = require('./resolveEditInfo-dELeeJBE.cjs');
5
5
 
6
6
  function encodeIntoResult(result, csm, encoder) {
@@ -104,7 +104,7 @@ const denylist = /* @__PURE__ */ new Set([
104
104
  "website"
105
105
  ]);
106
106
  function isValidDate(dateString) {
107
- return Number.isNaN(Number(dateString)) ? Boolean(Date.parse(dateString)) : false;
107
+ return /^\d{4}-\d{2}-\d{2}/.test(dateString) ? Boolean(Date.parse(dateString)) : false;
108
108
  }
109
109
  function isValidURL(url) {
110
110
  try {
@@ -227,4 +227,4 @@ var stegaEncodeSourceMap$1 = /*#__PURE__*/Object.freeze({
227
227
  exports.encodeIntoResult = encodeIntoResult;
228
228
  exports.stegaEncodeSourceMap = stegaEncodeSourceMap;
229
229
  exports.stegaEncodeSourceMap$1 = stegaEncodeSourceMap$1;
230
- //# sourceMappingURL=stegaEncodeSourceMap-M30Akn03.cjs.map
230
+ //# sourceMappingURL=stegaEncodeSourceMap-d-bYFA5X.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stegaEncodeSourceMap-d-bYFA5X.cjs","sources":["../../src/stega/encodeIntoResult.ts","../../src/stega/filterDefault.ts","../../src/stega/stegaEncodeSourceMap.ts"],"sourcesContent":["import {parseJsonPath} from '../csm/jsonPath'\nimport {resolveMapping} from '../csm/resolveMapping'\nimport type {ContentSourceMap} from '../csm/types'\nimport {walkMap} from '../csm/walkMap'\nimport type {Encoder} from './types'\n\n/**\n * @internal\n */\nexport function encodeIntoResult<Result>(\n result: Result,\n csm: ContentSourceMap,\n encoder: Encoder,\n): Result {\n return walkMap(result, (value, path) => {\n // Only map strings, we could extend this in the future to support other types like integers...\n if (typeof value !== 'string') {\n return value\n }\n\n const resolveMappingResult = resolveMapping(path, csm)\n if (!resolveMappingResult) {\n return value\n }\n\n const {mapping, matchedPath} = resolveMappingResult\n if (mapping.type !== 'value') {\n return value\n }\n\n if (mapping.source.type !== 'documentValue') {\n return value\n }\n\n const sourceDocument = csm.documents[mapping.source.document!]\n const sourcePath = csm.paths[mapping.source.path]\n\n const matchPathSegments = parseJsonPath(matchedPath)\n const sourcePathSegments = parseJsonPath(sourcePath)\n const fullSourceSegments = sourcePathSegments.concat(path.slice(matchPathSegments.length))\n\n return encoder({\n sourcePath: fullSourceSegments,\n sourceDocument,\n resultPath: path,\n value,\n })\n }) as Result\n}\n","import type {FilterDefault} from './types'\n\nexport const filterDefault: FilterDefault = ({sourcePath, value}) => {\n // Skips encoding on URL or Date strings, similar to the `skip: 'auto'` parameter in vercelStegaCombine()\n if (isValidDate(value) || isValidURL(value)) {\n return false\n }\n\n const endPath = sourcePath.at(-1)\n // Never encode slugs\n if (sourcePath.at(-2) === 'slug' && endPath === 'current') {\n return false\n }\n\n // Skip underscored keys, needs better heuristics but it works for now\n if (typeof endPath === 'string' && endPath.startsWith('_')) {\n return false\n }\n\n /**\n * Best effort infer Portable Text paths that should not be encoded.\n * Nothing is for certain, and the below implementation may cause paths that aren't Portable Text and otherwise be safe to encode to be skipped.\n * However, that's ok as userland can always opt-in with the `encodeSourceMapAtPath` option and mark known safe paths as such, which will override this heuristic.\n */\n // If the path ends in marks[number] it's likely a PortableTextSpan: https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#LL154C16-L154C16\n if (typeof endPath === 'number' && sourcePath.at(-2) === 'marks') {\n return false\n }\n // Or if it's [number].markDefs[number].href it's likely a PortableTextLink: https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#L163\n if (\n endPath === 'href' &&\n typeof sourcePath.at(-2) === 'number' &&\n sourcePath.at(-3) === 'markDefs'\n ) {\n return false\n }\n // Otherwise we have to deal with special properties of PortableTextBlock, and we can't confidently know if it's actually a `_type: 'block'` array item or not.\n // All we know is that if it is indeed a block, and we encode the strings on these keys it'll for sure break the PortableText rendering and thus we skip encoding.\n // https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#L48-L58\n if (endPath === 'style' || endPath === 'listItem') {\n return false\n }\n\n // Don't encode into anything that is suggested it'll render for SEO in meta tags\n if (\n sourcePath.some(\n (path) => path === 'meta' || path === 'metadata' || path === 'openGraph' || path === 'seo',\n )\n ) {\n return false\n }\n\n // Finally, we ignore a bunch of paths that are typically used for page building\n if (typeof endPath === 'string' && denylist.has(endPath)) {\n return false\n }\n\n return true\n}\n\nconst denylist = new Set([\n 'color',\n 'colour',\n 'currency',\n 'email',\n 'format',\n 'gid',\n 'hex',\n 'href',\n 'hsl',\n 'hsla',\n 'icon',\n 'id',\n 'index',\n 'key',\n 'language',\n 'layout',\n 'link',\n 'linkAction',\n 'locale',\n 'lqip',\n 'page',\n 'path',\n 'ref',\n 'rgb',\n 'rgba',\n 'route',\n 'secret',\n 'slug',\n 'status',\n 'tag',\n 'template',\n 'theme',\n 'type',\n 'unit',\n 'url',\n 'username',\n 'variant',\n 'website',\n])\n\nfunction isValidDate(dateString: string) {\n return /^\\d{4}-\\d{2}-\\d{2}/.test(dateString) ? Boolean(Date.parse(dateString)) : false\n}\n\nfunction isValidURL(url: string) {\n try {\n new URL(url, url.startsWith('/') ? 'https://acme.com' : undefined)\n } catch {\n return false\n }\n return true\n}\n","import {vercelStegaCombine} from '@vercel/stega'\n\nimport {createEditUrl} from '../csm/createEditUrl'\nimport {jsonPathToStudioPath} from '../csm/jsonPath'\nimport {resolveStudioBaseRoute} from '../csm/resolveEditInfo'\nimport {reKeySegment, toString as studioPathToString} from '../csm/studioPath'\nimport {encodeIntoResult} from './encodeIntoResult'\nimport {filterDefault} from './filterDefault'\nimport {ContentSourceMap, ContentSourceMapParsedPath, InitializedStegaConfig} from './types'\n\nconst TRUNCATE_LENGTH = 20\n\n/**\n * Uses `@vercel/stega` to embed edit info JSON into strings in your query result.\n * The JSON payloads are added using invisible characters so they don't show up visually.\n * The edit info is generated from the Content Source Map (CSM) that is returned from Sanity for the query.\n * @public\n */\nexport function stegaEncodeSourceMap<Result = unknown>(\n result: Result,\n resultSourceMap: ContentSourceMap | undefined,\n config: InitializedStegaConfig,\n): Result {\n const {filter, logger, enabled} = config\n if (!enabled) {\n const msg = \"config.enabled must be true, don't call this function otherwise\"\n logger?.error?.(`[@sanity/client/stega]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n if (!resultSourceMap) {\n logger?.error?.('[@sanity/client/stega]: Missing Content Source Map from response body', {\n result,\n resultSourceMap,\n config,\n })\n return result\n }\n\n if (!config.studioUrl) {\n const msg = 'config.studioUrl must be defined'\n logger?.error?.(`[@sanity/client/stega]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n const report: Record<'encoded' | 'skipped', {path: string; length: number; value: string}[]> = {\n encoded: [],\n skipped: [],\n }\n\n const resultWithStega = encodeIntoResult(\n result,\n resultSourceMap,\n ({sourcePath, sourceDocument, resultPath, value}) => {\n // Allow userland to control when to opt-out of encoding\n if (\n (typeof filter === 'function'\n ? filter({sourcePath, resultPath, filterDefault, sourceDocument, value})\n : filterDefault({sourcePath, resultPath, filterDefault, sourceDocument, value})) === false\n ) {\n if (logger) {\n report.skipped.push({\n path: prettyPathForLogging(sourcePath),\n value: `${value.slice(0, TRUNCATE_LENGTH)}${\n value.length > TRUNCATE_LENGTH ? '...' : ''\n }`,\n length: value.length,\n })\n }\n return value\n }\n\n if (logger) {\n report.encoded.push({\n path: prettyPathForLogging(sourcePath),\n value: `${value.slice(0, TRUNCATE_LENGTH)}${value.length > TRUNCATE_LENGTH ? '...' : ''}`,\n length: value.length,\n })\n }\n\n const {baseUrl, workspace, tool} = resolveStudioBaseRoute(\n typeof config.studioUrl === 'function'\n ? config.studioUrl(sourceDocument)\n : config.studioUrl!,\n )\n if (!baseUrl) return value\n const {_id: id, _type: type} = sourceDocument\n\n return vercelStegaCombine(\n value,\n {\n origin: 'sanity.io',\n href: createEditUrl({\n baseUrl,\n workspace,\n tool,\n id,\n type,\n path: sourcePath,\n }),\n },\n // We use custom logic to determine if we should skip encoding\n false,\n )\n },\n )\n\n if (logger) {\n const isSkipping = report.skipped.length\n const isEncoding = report.encoded.length\n if (isSkipping || isEncoding) {\n ;(logger?.groupCollapsed || logger.log)?.(\n '[@sanity/client/stega]: Encoding source map into result',\n )\n logger.log?.(\n `[@sanity/client/stega]: Paths encoded: ${report.encoded.length}, skipped: ${report.skipped.length}`,\n )\n }\n if (report.encoded.length > 0) {\n logger?.log?.(`[@sanity/client/stega]: Table of encoded paths`)\n ;(logger?.table || logger.log)?.(report.encoded)\n }\n if (report.skipped.length > 0) {\n const skipped = new Set<string>()\n for (const {path} of report.skipped) {\n skipped.add(path.replace(reKeySegment, '0').replace(/\\[\\d+\\]/g, '[]'))\n }\n logger?.log?.(`[@sanity/client/stega]: List of skipped paths`, [...skipped.values()])\n }\n\n if (isSkipping || isEncoding) {\n logger?.groupEnd?.()\n }\n }\n\n return resultWithStega\n}\n\nfunction prettyPathForLogging(path: ContentSourceMapParsedPath): string {\n return studioPathToString(jsonPathToStudioPath(path))\n}\n"],"names":["walkMap","resolveMapping","parseJsonPath","resolveStudioBaseRoute","vercelStegaCombine","createEditUrl","reKeySegment","studioPathToString","jsonPathToStudioPath"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { b } from './browserMiddleware-YHi9NZoW.js';
1
+ import { b } from './browserMiddleware-zDVeirri.js';
2
2
 
3
3
  const reKeySegment = /_key\s*==\s*['"](.*)['"]/;
4
4
  function isKeySegment(segment) {
@@ -351,7 +351,7 @@ const denylist = /* @__PURE__ */ new Set([
351
351
  "website"
352
352
  ]);
353
353
  function isValidDate(dateString) {
354
- return Number.isNaN(Number(dateString)) ? Boolean(Date.parse(dateString)) : false;
354
+ return /^\d{4}-\d{2}-\d{2}/.test(dateString) ? Boolean(Date.parse(dateString)) : false;
355
355
  }
356
356
  function isValidURL(url) {
357
357
  try {
@@ -472,4 +472,4 @@ var stegaEncodeSourceMap$1 = /*#__PURE__*/Object.freeze({
472
472
  });
473
473
 
474
474
  export { encodeIntoResult, stegaEncodeSourceMap, stegaEncodeSourceMap$1 };
475
- //# sourceMappingURL=stegaEncodeSourceMap-wX9ZIHBe.js.map
475
+ //# sourceMappingURL=stegaEncodeSourceMap-gZIRaYar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stegaEncodeSourceMap-gZIRaYar.js","sources":["../../src/csm/studioPath.ts","../../src/csm/jsonPath.ts","../../src/csm/resolveMapping.ts","../../src/csm/isArray.ts","../../src/csm/isRecord.ts","../../src/csm/walkMap.ts","../../src/stega/encodeIntoResult.ts","../../src/csm/getPublishedId.ts","../../src/csm/createEditUrl.ts","../../src/csm/resolveEditInfo.ts","../../src/stega/filterDefault.ts","../../src/stega/stegaEncodeSourceMap.ts"],"sourcesContent":["/** @alpha */\nexport type KeyedSegment = {_key: string}\n\n/** @alpha */\nexport type IndexTuple = [number | '', number | '']\n\n/** @alpha */\nexport type PathSegment = string | number | KeyedSegment | IndexTuple\n\n/** @alpha */\nexport type Path = PathSegment[]\n\nconst rePropName =\n /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g\n/** @internal */\nexport const reKeySegment = /_key\\s*==\\s*['\"](.*)['\"]/\nconst reIndexTuple = /^\\d*:\\d*$/\n\n/** @internal */\nexport function isIndexSegment(segment: PathSegment): segment is number {\n return typeof segment === 'number' || (typeof segment === 'string' && /^\\[\\d+\\]$/.test(segment))\n}\n\n/** @internal */\nexport function isKeySegment(segment: PathSegment): segment is KeyedSegment {\n if (typeof segment === 'string') {\n return reKeySegment.test(segment.trim())\n }\n\n return typeof segment === 'object' && '_key' in segment\n}\n\n/** @internal */\nexport function isIndexTuple(segment: PathSegment): segment is IndexTuple {\n if (typeof segment === 'string' && reIndexTuple.test(segment)) {\n return true\n }\n\n if (!Array.isArray(segment) || segment.length !== 2) {\n return false\n }\n\n const [from, to] = segment\n return (typeof from === 'number' || from === '') && (typeof to === 'number' || to === '')\n}\n\n/** @internal */\nexport function get<Result = unknown, Fallback = unknown>(\n obj: unknown,\n path: Path | string,\n defaultVal?: Fallback,\n): Result | typeof defaultVal {\n const select = typeof path === 'string' ? fromString(path) : path\n if (!Array.isArray(select)) {\n throw new Error('Path must be an array or a string')\n }\n\n let acc: unknown | undefined = obj\n for (let i = 0; i < select.length; i++) {\n const segment = select[i]\n if (isIndexSegment(segment)) {\n if (!Array.isArray(acc)) {\n return defaultVal\n }\n\n acc = acc[segment]\n }\n\n if (isKeySegment(segment)) {\n if (!Array.isArray(acc)) {\n return defaultVal\n }\n\n acc = acc.find((item) => item._key === segment._key)\n }\n\n if (typeof segment === 'string') {\n acc =\n typeof acc === 'object' && acc !== null\n ? ((acc as Record<string, unknown>)[segment] as Result)\n : undefined\n }\n\n if (typeof acc === 'undefined') {\n return defaultVal\n }\n }\n\n return acc as Result\n}\n\n/** @alpha */\nexport function toString(path: Path): string {\n if (!Array.isArray(path)) {\n throw new Error('Path is not an array')\n }\n\n return path.reduce<string>((target, segment, i) => {\n const segmentType = typeof segment\n if (segmentType === 'number') {\n return `${target}[${segment}]`\n }\n\n if (segmentType === 'string') {\n const separator = i === 0 ? '' : '.'\n return `${target}${separator}${segment}`\n }\n\n if (isKeySegment(segment) && segment._key) {\n return `${target}[_key==\"${segment._key}\"]`\n }\n\n if (Array.isArray(segment)) {\n const [from, to] = segment\n return `${target}[${from}:${to}]`\n }\n\n throw new Error(`Unsupported path segment \\`${JSON.stringify(segment)}\\``)\n }, '')\n}\n\n/** @alpha */\nexport function fromString(path: string): Path {\n if (typeof path !== 'string') {\n throw new Error('Path is not a string')\n }\n\n const segments = path.match(rePropName)\n if (!segments) {\n throw new Error('Invalid path string')\n }\n\n return segments.map(parsePathSegment)\n}\n\nfunction parsePathSegment(segment: string): PathSegment {\n if (isIndexSegment(segment)) {\n return parseIndexSegment(segment)\n }\n\n if (isKeySegment(segment)) {\n return parseKeySegment(segment)\n }\n\n if (isIndexTuple(segment)) {\n return parseIndexTupleSegment(segment)\n }\n\n return segment\n}\n\nfunction parseIndexSegment(segment: string): PathSegment {\n return Number(segment.replace(/[^\\d]/g, ''))\n}\n\nfunction parseKeySegment(segment: string): KeyedSegment {\n const segments = segment.match(reKeySegment)\n return {_key: segments![1]}\n}\n\nfunction parseIndexTupleSegment(segment: string): IndexTuple {\n const [from, to] = segment.split(':').map((seg) => (seg === '' ? seg : Number(seg)))\n return [from, to]\n}\n","import * as studioPath from './studioPath'\nimport type {\n ContentSourceMapParsedPath,\n ContentSourceMapParsedPathKeyedSegment,\n ContentSourceMapPaths,\n Path,\n} from './types'\n\nconst ESCAPE: Record<string, string> = {\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n \"'\": \"\\\\'\",\n '\\\\': '\\\\\\\\',\n}\n\nconst UNESCAPE: Record<string, string> = {\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t',\n \"\\\\'\": \"'\",\n '\\\\\\\\': '\\\\',\n}\n\n/**\n * @internal\n */\nexport function jsonPath(path: ContentSourceMapParsedPath): ContentSourceMapPaths[number] {\n return `$${path\n .map((segment) => {\n if (typeof segment === 'string') {\n const escapedKey = segment.replace(/[\\f\\n\\r\\t'\\\\]/g, (match) => {\n return ESCAPE[match]\n })\n return `['${escapedKey}']`\n }\n\n if (typeof segment === 'number') {\n return `[${segment}]`\n }\n\n if (segment._key !== '') {\n const escapedKey = segment._key.replace(/['\\\\]/g, (match) => {\n return ESCAPE[match]\n })\n return `[?(@._key=='${escapedKey}')]`\n }\n\n return `[${segment._index}]`\n })\n .join('')}`\n}\n\n/**\n * @internal\n */\nexport function parseJsonPath(path: ContentSourceMapPaths[number]): ContentSourceMapParsedPath {\n const parsed: ContentSourceMapParsedPath = []\n\n const parseRe = /\\['(.*?)'\\]|\\[(\\d+)\\]|\\[\\?\\(@\\._key=='(.*?)'\\)\\]/g\n let match: RegExpExecArray | null\n\n while ((match = parseRe.exec(path)) !== null) {\n if (match[1] !== undefined) {\n const key = match[1].replace(/\\\\(\\\\|f|n|r|t|')/g, (m) => {\n return UNESCAPE[m]\n })\n\n parsed.push(key)\n continue\n }\n\n if (match[2] !== undefined) {\n parsed.push(parseInt(match[2], 10))\n continue\n }\n\n if (match[3] !== undefined) {\n const _key = match[3].replace(/\\\\(\\\\')/g, (m) => {\n return UNESCAPE[m]\n })\n\n parsed.push({\n _key,\n _index: -1,\n })\n continue\n }\n }\n\n return parsed\n}\n\n/**\n * @internal\n */\nexport function jsonPathToStudioPath(path: ContentSourceMapParsedPath): Path {\n return path.map((segment) => {\n if (typeof segment === 'string') {\n return segment\n }\n\n if (typeof segment === 'number') {\n return segment\n }\n\n if (segment._key !== '') {\n return {_key: segment._key}\n }\n\n if (segment._index !== -1) {\n return segment._index\n }\n\n throw new Error(`invalid segment:${JSON.stringify(segment)}`)\n })\n}\n\n/**\n * @internal\n */\nexport function studioPathToJsonPath(path: Path | string): ContentSourceMapParsedPath {\n const parsedPath = typeof path === 'string' ? studioPath.fromString(path) : path\n\n return parsedPath.map((segment) => {\n if (typeof segment === 'string') {\n return segment\n }\n\n if (typeof segment === 'number') {\n return segment\n }\n\n if (Array.isArray(segment)) {\n throw new Error(`IndexTuple segments aren't supported:${JSON.stringify(segment)}`)\n }\n\n if (isContentSourceMapParsedPathKeyedSegment(segment)) {\n return segment\n }\n\n if (segment._key) {\n return {_key: segment._key, _index: -1}\n }\n\n throw new Error(`invalid segment:${JSON.stringify(segment)}`)\n })\n}\n\nfunction isContentSourceMapParsedPathKeyedSegment(\n segment: studioPath.PathSegment | ContentSourceMapParsedPath[number],\n): segment is ContentSourceMapParsedPathKeyedSegment {\n return typeof segment === 'object' && '_key' in segment && '_index' in segment\n}\n\n/**\n * @internal\n */\nexport function jsonPathToMappingPath(path: ContentSourceMapParsedPath): (string | number)[] {\n return path.map((segment) => {\n if (typeof segment === 'string') {\n return segment\n }\n\n if (typeof segment === 'number') {\n return segment\n }\n\n if (segment._index !== -1) {\n return segment._index\n }\n\n throw new Error(`invalid segment:${JSON.stringify(segment)}`)\n })\n}\n","import {jsonPath, jsonPathToMappingPath} from './jsonPath'\nimport type {ContentSourceMap, ContentSourceMapMapping, ContentSourceMapParsedPath} from './types'\n\n/**\n * @internal\n */\nexport function resolveMapping(\n resultPath: ContentSourceMapParsedPath,\n csm?: ContentSourceMap,\n):\n | {\n mapping: ContentSourceMapMapping\n matchedPath: string\n pathSuffix: string\n }\n | undefined {\n if (!csm?.mappings) {\n return undefined\n }\n const resultMappingPath = jsonPath(jsonPathToMappingPath(resultPath))\n\n if (csm.mappings[resultMappingPath] !== undefined) {\n return {\n mapping: csm.mappings[resultMappingPath],\n matchedPath: resultMappingPath,\n pathSuffix: '',\n }\n }\n\n const mappings = Object.entries(csm.mappings)\n .filter(([key]) => resultMappingPath.startsWith(key))\n .sort(([key1], [key2]) => key2.length - key1.length)\n\n if (mappings.length == 0) {\n return undefined\n }\n\n const [matchedPath, mapping] = mappings[0]\n const pathSuffix = resultMappingPath.substring(matchedPath.length)\n return {mapping, matchedPath, pathSuffix}\n}\n","/** @internal */\nexport function isArray(value: unknown): value is Array<unknown> {\n return value !== null && Array.isArray(value)\n}\n","/** @internal */\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n","import {isArray} from './isArray'\nimport {isRecord} from './isRecord'\nimport type {ContentSourceMapParsedPath, WalkMapFn} from './types'\n\n/**\n * generic way to walk a nested object or array and apply a mapping function to each value\n * @internal\n */\nexport function walkMap(\n value: unknown,\n mappingFn: WalkMapFn,\n path: ContentSourceMapParsedPath = [],\n): unknown {\n if (isArray(value)) {\n return value.map((v, idx) => {\n if (isRecord(v)) {\n const _key = v['_key']\n if (typeof _key === 'string') {\n return walkMap(v, mappingFn, path.concat({_key, _index: idx}))\n }\n }\n\n return walkMap(v, mappingFn, path.concat(idx))\n })\n }\n\n if (isRecord(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([k, v]) => [k, walkMap(v, mappingFn, path.concat(k))]),\n )\n }\n\n return mappingFn(value, path)\n}\n","import {parseJsonPath} from '../csm/jsonPath'\nimport {resolveMapping} from '../csm/resolveMapping'\nimport type {ContentSourceMap} from '../csm/types'\nimport {walkMap} from '../csm/walkMap'\nimport type {Encoder} from './types'\n\n/**\n * @internal\n */\nexport function encodeIntoResult<Result>(\n result: Result,\n csm: ContentSourceMap,\n encoder: Encoder,\n): Result {\n return walkMap(result, (value, path) => {\n // Only map strings, we could extend this in the future to support other types like integers...\n if (typeof value !== 'string') {\n return value\n }\n\n const resolveMappingResult = resolveMapping(path, csm)\n if (!resolveMappingResult) {\n return value\n }\n\n const {mapping, matchedPath} = resolveMappingResult\n if (mapping.type !== 'value') {\n return value\n }\n\n if (mapping.source.type !== 'documentValue') {\n return value\n }\n\n const sourceDocument = csm.documents[mapping.source.document!]\n const sourcePath = csm.paths[mapping.source.path]\n\n const matchPathSegments = parseJsonPath(matchedPath)\n const sourcePathSegments = parseJsonPath(sourcePath)\n const fullSourceSegments = sourcePathSegments.concat(path.slice(matchPathSegments.length))\n\n return encoder({\n sourcePath: fullSourceSegments,\n sourceDocument,\n resultPath: path,\n value,\n })\n }) as Result\n}\n","export const DRAFTS_PREFIX = 'drafts.'\n\n/** @internal */\nexport function getPublishedId(id: string): string {\n if (id.startsWith(DRAFTS_PREFIX)) {\n return id.slice(DRAFTS_PREFIX.length)\n }\n\n return id\n}\n","import {getPublishedId} from './getPublishedId'\nimport {jsonPathToStudioPath} from './jsonPath'\nimport * as studioPath from './studioPath'\nimport type {CreateEditUrlOptions, EditIntentUrl, StudioBaseUrl} from './types'\n\n/** @internal */\nexport function createEditUrl(options: CreateEditUrlOptions): `${StudioBaseUrl}${EditIntentUrl}` {\n const {\n baseUrl,\n workspace: _workspace = 'default',\n tool: _tool = 'default',\n id: _id,\n type,\n path,\n } = options\n\n if (!baseUrl) {\n throw new Error('baseUrl is required')\n }\n if (!path) {\n throw new Error('path is required')\n }\n if (!_id) {\n throw new Error('id is required')\n }\n if (baseUrl !== '/' && baseUrl.endsWith('/')) {\n throw new Error('baseUrl must not end with a slash')\n }\n\n const workspace = _workspace === 'default' ? undefined : _workspace\n const tool = _tool === 'default' ? undefined : _tool\n // eslint-disable-next-line no-warning-comments\n // @TODO allow passing draft prefixed IDs, to better open the right perspective mode\n const id = getPublishedId(_id)\n const stringifiedPath = Array.isArray(path)\n ? studioPath.toString(jsonPathToStudioPath(path))\n : path\n\n // eslint-disable-next-line no-warning-comments\n // @TODO Using searchParams as a temporary workaround until `@sanity/overlays` can decode state from the path reliably\n const searchParams = new URLSearchParams({\n baseUrl,\n id,\n type,\n path: stringifiedPath,\n })\n if (workspace) {\n searchParams.set('workspace', workspace)\n }\n if (tool) {\n searchParams.set('tool', tool)\n }\n\n const segments = [baseUrl === '/' ? '' : baseUrl]\n if (workspace) {\n segments.push(workspace)\n }\n const routerParams = [\n 'mode=presentation',\n `id=${id}`,\n `type=${type}`,\n `path=${encodeURIComponent(stringifiedPath)}`,\n ]\n if (tool) {\n routerParams.push(`tool=${tool}`)\n }\n segments.push('intent', 'edit', `${routerParams.join(';')}?${searchParams}`)\n return segments.join('/') as unknown as `${StudioBaseUrl}${EditIntentUrl}`\n}\n","import {parseJsonPath} from './jsonPath'\nimport {resolveMapping} from './resolveMapping'\nimport type {\n CreateEditUrlOptions,\n ResolveEditInfoOptions,\n StudioBaseRoute,\n StudioBaseUrl,\n StudioUrl,\n} from './types'\n\n/** @internal */\nexport function resolveEditInfo(options: ResolveEditInfoOptions): CreateEditUrlOptions | undefined {\n const {resultSourceMap: csm, resultPath} = options\n const {mapping, pathSuffix} = resolveMapping(resultPath, csm) || {}\n\n if (!mapping) {\n // console.warn('no mapping for path', { path: resultPath, sourceMap: csm })\n return undefined\n }\n\n if (mapping.source.type === 'literal') {\n return undefined\n }\n\n if (mapping.source.type === 'unknown') {\n return undefined\n }\n\n const sourceDoc = csm.documents[mapping.source.document]\n const sourcePath = csm.paths[mapping.source.path]\n\n if (sourceDoc && sourcePath) {\n const {baseUrl, workspace, tool} = resolveStudioBaseRoute(\n typeof options.studioUrl === 'function' ? options.studioUrl(sourceDoc) : options.studioUrl,\n )\n if (!baseUrl) return undefined\n const {_id, _type} = sourceDoc\n return {\n baseUrl,\n workspace,\n tool,\n id: _id,\n type: _type,\n path: parseJsonPath(sourcePath + pathSuffix),\n } satisfies CreateEditUrlOptions\n }\n\n return undefined\n}\n\n/** @internal */\nexport function resolveStudioBaseRoute(studioUrl: StudioUrl): StudioBaseRoute {\n let baseUrl: StudioBaseUrl = typeof studioUrl === 'string' ? studioUrl : studioUrl.baseUrl\n if (baseUrl !== '/') {\n baseUrl = baseUrl.replace(/\\/$/, '')\n }\n if (typeof studioUrl === 'string') {\n return {baseUrl}\n }\n return {...studioUrl, baseUrl}\n}\n","import type {FilterDefault} from './types'\n\nexport const filterDefault: FilterDefault = ({sourcePath, value}) => {\n // Skips encoding on URL or Date strings, similar to the `skip: 'auto'` parameter in vercelStegaCombine()\n if (isValidDate(value) || isValidURL(value)) {\n return false\n }\n\n const endPath = sourcePath.at(-1)\n // Never encode slugs\n if (sourcePath.at(-2) === 'slug' && endPath === 'current') {\n return false\n }\n\n // Skip underscored keys, needs better heuristics but it works for now\n if (typeof endPath === 'string' && endPath.startsWith('_')) {\n return false\n }\n\n /**\n * Best effort infer Portable Text paths that should not be encoded.\n * Nothing is for certain, and the below implementation may cause paths that aren't Portable Text and otherwise be safe to encode to be skipped.\n * However, that's ok as userland can always opt-in with the `encodeSourceMapAtPath` option and mark known safe paths as such, which will override this heuristic.\n */\n // If the path ends in marks[number] it's likely a PortableTextSpan: https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#LL154C16-L154C16\n if (typeof endPath === 'number' && sourcePath.at(-2) === 'marks') {\n return false\n }\n // Or if it's [number].markDefs[number].href it's likely a PortableTextLink: https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#L163\n if (\n endPath === 'href' &&\n typeof sourcePath.at(-2) === 'number' &&\n sourcePath.at(-3) === 'markDefs'\n ) {\n return false\n }\n // Otherwise we have to deal with special properties of PortableTextBlock, and we can't confidently know if it's actually a `_type: 'block'` array item or not.\n // All we know is that if it is indeed a block, and we encode the strings on these keys it'll for sure break the PortableText rendering and thus we skip encoding.\n // https://github.com/portabletext/types/blob/e54eb24f136d8efd51a46c6a190e7c46e79b5380/src/portableText.ts#L48-L58\n if (endPath === 'style' || endPath === 'listItem') {\n return false\n }\n\n // Don't encode into anything that is suggested it'll render for SEO in meta tags\n if (\n sourcePath.some(\n (path) => path === 'meta' || path === 'metadata' || path === 'openGraph' || path === 'seo',\n )\n ) {\n return false\n }\n\n // Finally, we ignore a bunch of paths that are typically used for page building\n if (typeof endPath === 'string' && denylist.has(endPath)) {\n return false\n }\n\n return true\n}\n\nconst denylist = new Set([\n 'color',\n 'colour',\n 'currency',\n 'email',\n 'format',\n 'gid',\n 'hex',\n 'href',\n 'hsl',\n 'hsla',\n 'icon',\n 'id',\n 'index',\n 'key',\n 'language',\n 'layout',\n 'link',\n 'linkAction',\n 'locale',\n 'lqip',\n 'page',\n 'path',\n 'ref',\n 'rgb',\n 'rgba',\n 'route',\n 'secret',\n 'slug',\n 'status',\n 'tag',\n 'template',\n 'theme',\n 'type',\n 'unit',\n 'url',\n 'username',\n 'variant',\n 'website',\n])\n\nfunction isValidDate(dateString: string) {\n return /^\\d{4}-\\d{2}-\\d{2}/.test(dateString) ? Boolean(Date.parse(dateString)) : false\n}\n\nfunction isValidURL(url: string) {\n try {\n new URL(url, url.startsWith('/') ? 'https://acme.com' : undefined)\n } catch {\n return false\n }\n return true\n}\n","import {vercelStegaCombine} from '@vercel/stega'\n\nimport {createEditUrl} from '../csm/createEditUrl'\nimport {jsonPathToStudioPath} from '../csm/jsonPath'\nimport {resolveStudioBaseRoute} from '../csm/resolveEditInfo'\nimport {reKeySegment, toString as studioPathToString} from '../csm/studioPath'\nimport {encodeIntoResult} from './encodeIntoResult'\nimport {filterDefault} from './filterDefault'\nimport {ContentSourceMap, ContentSourceMapParsedPath, InitializedStegaConfig} from './types'\n\nconst TRUNCATE_LENGTH = 20\n\n/**\n * Uses `@vercel/stega` to embed edit info JSON into strings in your query result.\n * The JSON payloads are added using invisible characters so they don't show up visually.\n * The edit info is generated from the Content Source Map (CSM) that is returned from Sanity for the query.\n * @public\n */\nexport function stegaEncodeSourceMap<Result = unknown>(\n result: Result,\n resultSourceMap: ContentSourceMap | undefined,\n config: InitializedStegaConfig,\n): Result {\n const {filter, logger, enabled} = config\n if (!enabled) {\n const msg = \"config.enabled must be true, don't call this function otherwise\"\n logger?.error?.(`[@sanity/client/stega]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n if (!resultSourceMap) {\n logger?.error?.('[@sanity/client/stega]: Missing Content Source Map from response body', {\n result,\n resultSourceMap,\n config,\n })\n return result\n }\n\n if (!config.studioUrl) {\n const msg = 'config.studioUrl must be defined'\n logger?.error?.(`[@sanity/client/stega]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n const report: Record<'encoded' | 'skipped', {path: string; length: number; value: string}[]> = {\n encoded: [],\n skipped: [],\n }\n\n const resultWithStega = encodeIntoResult(\n result,\n resultSourceMap,\n ({sourcePath, sourceDocument, resultPath, value}) => {\n // Allow userland to control when to opt-out of encoding\n if (\n (typeof filter === 'function'\n ? filter({sourcePath, resultPath, filterDefault, sourceDocument, value})\n : filterDefault({sourcePath, resultPath, filterDefault, sourceDocument, value})) === false\n ) {\n if (logger) {\n report.skipped.push({\n path: prettyPathForLogging(sourcePath),\n value: `${value.slice(0, TRUNCATE_LENGTH)}${\n value.length > TRUNCATE_LENGTH ? '...' : ''\n }`,\n length: value.length,\n })\n }\n return value\n }\n\n if (logger) {\n report.encoded.push({\n path: prettyPathForLogging(sourcePath),\n value: `${value.slice(0, TRUNCATE_LENGTH)}${value.length > TRUNCATE_LENGTH ? '...' : ''}`,\n length: value.length,\n })\n }\n\n const {baseUrl, workspace, tool} = resolveStudioBaseRoute(\n typeof config.studioUrl === 'function'\n ? config.studioUrl(sourceDocument)\n : config.studioUrl!,\n )\n if (!baseUrl) return value\n const {_id: id, _type: type} = sourceDocument\n\n return vercelStegaCombine(\n value,\n {\n origin: 'sanity.io',\n href: createEditUrl({\n baseUrl,\n workspace,\n tool,\n id,\n type,\n path: sourcePath,\n }),\n },\n // We use custom logic to determine if we should skip encoding\n false,\n )\n },\n )\n\n if (logger) {\n const isSkipping = report.skipped.length\n const isEncoding = report.encoded.length\n if (isSkipping || isEncoding) {\n ;(logger?.groupCollapsed || logger.log)?.(\n '[@sanity/client/stega]: Encoding source map into result',\n )\n logger.log?.(\n `[@sanity/client/stega]: Paths encoded: ${report.encoded.length}, skipped: ${report.skipped.length}`,\n )\n }\n if (report.encoded.length > 0) {\n logger?.log?.(`[@sanity/client/stega]: Table of encoded paths`)\n ;(logger?.table || logger.log)?.(report.encoded)\n }\n if (report.skipped.length > 0) {\n const skipped = new Set<string>()\n for (const {path} of report.skipped) {\n skipped.add(path.replace(reKeySegment, '0').replace(/\\[\\d+\\]/g, '[]'))\n }\n logger?.log?.(`[@sanity/client/stega]: List of skipped paths`, [...skipped.values()])\n }\n\n if (isSkipping || isEncoding) {\n logger?.groupEnd?.()\n }\n }\n\n return resultWithStega\n}\n\nfunction prettyPathForLogging(path: ContentSourceMapParsedPath): string {\n return studioPathToString(jsonPathToStudioPath(path))\n}\n"],"names":["studioPath.toString","vercelStegaCombine","studioPathToString"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var browserMiddleware = require('./_chunks/browserMiddleware-VPUeJSZR.cjs');
5
+ var browserMiddleware = require('./_chunks/browserMiddleware-IWUpjfF7.cjs');
6
6
  var getIt = require('get-it');
7
7
 
8
8
  function defineDeprecatedCreateClient(createClient) {
@@ -1,5 +1,5 @@
1
- import { printNoDefaultExport, defineCreateClientExports, SanityClient, envMiddleware } from './_chunks/browserMiddleware-YHi9NZoW.js';
2
- export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/browserMiddleware-YHi9NZoW.js';
1
+ import { printNoDefaultExport, defineCreateClientExports, SanityClient, envMiddleware } from './_chunks/browserMiddleware-zDVeirri.js';
2
+ export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/browserMiddleware-zDVeirri.js';
3
3
  export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
4
4
 
5
5
  function defineDeprecatedCreateClient(createClient) {
package/dist/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var nodeMiddleware = require('./_chunks/nodeMiddleware-wVTxM7jj.cjs');
5
+ var nodeMiddleware = require('./_chunks/nodeMiddleware-WxY6WiGP.cjs');
6
6
  var getIt = require('get-it');
7
7
 
8
8
  function defineDeprecatedCreateClient(createClient) {
package/dist/index.d.ts CHANGED
@@ -1126,31 +1126,36 @@ export declare class ObservableSanityClient {
1126
1126
  *
1127
1127
  * @param query - GROQ-query to perform
1128
1128
  */
1129
- fetch<R = Any, Q extends never | undefined | Record<string, never> = never>(
1130
- query: string,
1131
- ): Observable<R>
1129
+ fetch<R = Any>(query: string): Observable<R>
1132
1130
  /**
1133
1131
  * Perform a GROQ-query against the configured dataset.
1134
1132
  *
1135
1133
  * @param query - GROQ-query to perform
1136
- * @param params - Optional query parameters
1137
- * @param options - Optional request options
1134
+ * @param params - Query parameters
1135
+ */
1136
+ fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(query: string, params: Q): Observable<R>
1137
+ /**
1138
+ * Perform a GROQ-query against the configured dataset.
1139
+ *
1140
+ * @param query - GROQ-query to perform
1141
+ * @param params - Query parameters
1142
+ * @param options - Request options
1138
1143
  */
1139
1144
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
1140
1145
  query: string,
1141
- params: QueryParamsParameter<Q>,
1142
- options?: FilteredResponseQueryOptions,
1146
+ params: Q | undefined,
1147
+ options: FilteredResponseQueryOptions,
1143
1148
  ): Observable<R>
1144
1149
  /**
1145
1150
  * Perform a GROQ-query against the configured dataset.
1146
1151
  *
1147
1152
  * @param query - GROQ-query to perform
1148
- * @param params - Optional query parameters
1153
+ * @param params - Query parameters
1149
1154
  * @param options - Request options
1150
1155
  */
1151
1156
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
1152
1157
  query: string,
1153
- params: QueryParamsParameter<Q>,
1158
+ params: Q | undefined,
1154
1159
  options: UnfilteredResponseQueryOptions,
1155
1160
  ): Observable<RawQueryResponse<R>>
1156
1161
  /**
@@ -1812,19 +1817,6 @@ export declare type _QueryParamsLikelyByMistake = {
1812
1817
  useCdn?: Any
1813
1818
  }
1814
1819
 
1815
- /**
1816
- * Transform a QueryParams generic type to a valid parameter type for `client.fetch
1817
- * @public
1818
- */
1819
- export declare type QueryParamsParameter<QueryParamsParameterType> =
1820
- QueryParamsParameterType extends QueryParams
1821
- ? QueryParamsParameterType
1822
- : QueryParamsParameterType extends Record<string, never>
1823
- ? Record<string, never>
1824
- : QueryParamsParameterType extends undefined
1825
- ? undefined | Record<string, never>
1826
- : never
1827
-
1828
1820
  /**
1829
1821
  * It's easy to accidentally set query options such as `filterResponse`, `cache` and `next` as the second parameter in `client.fetch`,
1830
1822
  * as that is a wide type used to set GROQ query paramaters and it accepts anything that can serialize to JSON.
@@ -1987,20 +1979,25 @@ export declare class SanityClient {
1987
1979
  *
1988
1980
  * @param query - GROQ-query to perform
1989
1981
  */
1990
- fetch<R = Any, Q extends never | undefined | Record<string, never> = never>(
1991
- query: string,
1992
- ): Promise<R>
1982
+ fetch<R = Any>(query: string): Promise<R>
1993
1983
  /**
1994
1984
  * Perform a GROQ-query against the configured dataset.
1995
1985
  *
1996
1986
  * @param query - GROQ-query to perform
1997
1987
  * @param params - Optional query parameters
1998
- * @param options - Optional request options
1988
+ */
1989
+ fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(query: string, params: Q): Promise<R>
1990
+ /**
1991
+ * Perform a GROQ-query against the configured dataset.
1992
+ *
1993
+ * @param query - GROQ-query to perform
1994
+ * @param params - Optional query parameters
1995
+ * @param options - Request options
1999
1996
  */
2000
1997
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
2001
1998
  query: string,
2002
- params: QueryParamsParameter<Q>,
2003
- options?: FilteredResponseQueryOptions,
1999
+ params: Q | undefined,
2000
+ options: FilteredResponseQueryOptions,
2004
2001
  ): Promise<R>
2005
2002
  /**
2006
2003
  * Perform a GROQ-query against the configured dataset.
@@ -2011,7 +2008,7 @@ export declare class SanityClient {
2011
2008
  */
2012
2009
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
2013
2010
  query: string,
2014
- params: QueryParamsParameter<Q>,
2011
+ params: Q | undefined,
2015
2012
  options: UnfilteredResponseQueryOptions,
2016
2013
  ): Promise<RawQueryResponse<R>>
2017
2014
  /**
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { printNoDefaultExport, defineCreateClientExports, SanityClient, middleware } from './_chunks/nodeMiddleware-9OakwOIL.js';
2
- export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/nodeMiddleware-9OakwOIL.js';
1
+ import { printNoDefaultExport, defineCreateClientExports, SanityClient, middleware } from './_chunks/nodeMiddleware-itgO-mht.js';
2
+ export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/nodeMiddleware-itgO-mht.js';
3
3
  export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
4
4
 
5
5
  function defineDeprecatedCreateClient(createClient) {
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var browserMiddleware = require('./_chunks/browserMiddleware-VPUeJSZR.cjs');
5
+ var browserMiddleware = require('./_chunks/browserMiddleware-IWUpjfF7.cjs');
6
6
  var getIt = require('get-it');
7
- var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-hJEIEzBG.cjs');
7
+ var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-YNx-0kzT.cjs');
8
8
 
9
9
  class SanityStegaClient extends browserMiddleware.SanityClient {
10
10
  }
@@ -1,7 +1,7 @@
1
- import { SanityClient, ObservableSanityClient, defineCreateClientExports, envMiddleware } from './_chunks/browserMiddleware-YHi9NZoW.js';
2
- export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/browserMiddleware-YHi9NZoW.js';
1
+ import { SanityClient, ObservableSanityClient, defineCreateClientExports, envMiddleware } from './_chunks/browserMiddleware-zDVeirri.js';
2
+ export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/browserMiddleware-zDVeirri.js';
3
3
  export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
4
- export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-wX9ZIHBe.js';
4
+ export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-gZIRaYar.js';
5
5
 
6
6
  class SanityStegaClient extends SanityClient {
7
7
  }
package/dist/stega.cjs CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var nodeMiddleware = require('./_chunks/nodeMiddleware-wVTxM7jj.cjs');
5
+ var nodeMiddleware = require('./_chunks/nodeMiddleware-WxY6WiGP.cjs');
6
6
  var getIt = require('get-it');
7
- var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-M30Akn03.cjs');
7
+ var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-d-bYFA5X.cjs');
8
8
 
9
9
  class SanityStegaClient extends nodeMiddleware.SanityClient {
10
10
  }
package/dist/stega.d.ts CHANGED
@@ -1155,31 +1155,36 @@ export declare class ObservableSanityClient {
1155
1155
  *
1156
1156
  * @param query - GROQ-query to perform
1157
1157
  */
1158
- fetch<R = Any, Q extends never | undefined | Record<string, never> = never>(
1159
- query: string,
1160
- ): Observable<R>
1158
+ fetch<R = Any>(query: string): Observable<R>
1161
1159
  /**
1162
1160
  * Perform a GROQ-query against the configured dataset.
1163
1161
  *
1164
1162
  * @param query - GROQ-query to perform
1165
- * @param params - Optional query parameters
1166
- * @param options - Optional request options
1163
+ * @param params - Query parameters
1164
+ */
1165
+ fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(query: string, params: Q): Observable<R>
1166
+ /**
1167
+ * Perform a GROQ-query against the configured dataset.
1168
+ *
1169
+ * @param query - GROQ-query to perform
1170
+ * @param params - Query parameters
1171
+ * @param options - Request options
1167
1172
  */
1168
1173
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
1169
1174
  query: string,
1170
- params: QueryParamsParameter<Q>,
1171
- options?: FilteredResponseQueryOptions,
1175
+ params: Q | undefined,
1176
+ options: FilteredResponseQueryOptions,
1172
1177
  ): Observable<R>
1173
1178
  /**
1174
1179
  * Perform a GROQ-query against the configured dataset.
1175
1180
  *
1176
1181
  * @param query - GROQ-query to perform
1177
- * @param params - Optional query parameters
1182
+ * @param params - Query parameters
1178
1183
  * @param options - Request options
1179
1184
  */
1180
1185
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
1181
1186
  query: string,
1182
- params: QueryParamsParameter<Q>,
1187
+ params: Q | undefined,
1183
1188
  options: UnfilteredResponseQueryOptions,
1184
1189
  ): Observable<RawQueryResponse<R>>
1185
1190
  /**
@@ -1847,19 +1852,6 @@ export declare type _QueryParamsLikelyByMistake = {
1847
1852
  useCdn?: Any
1848
1853
  }
1849
1854
 
1850
- /**
1851
- * Transform a QueryParams generic type to a valid parameter type for `client.fetch
1852
- * @public
1853
- */
1854
- export declare type QueryParamsParameter<QueryParamsParameterType> =
1855
- QueryParamsParameterType extends QueryParams
1856
- ? QueryParamsParameterType
1857
- : QueryParamsParameterType extends Record<string, never>
1858
- ? Record<string, never>
1859
- : QueryParamsParameterType extends undefined
1860
- ? undefined | Record<string, never>
1861
- : never
1862
-
1863
1855
  /**
1864
1856
  * It's easy to accidentally set query options such as `filterResponse`, `cache` and `next` as the second parameter in `client.fetch`,
1865
1857
  * as that is a wide type used to set GROQ query paramaters and it accepts anything that can serialize to JSON.
@@ -2022,20 +2014,25 @@ export declare class SanityClient {
2022
2014
  *
2023
2015
  * @param query - GROQ-query to perform
2024
2016
  */
2025
- fetch<R = Any, Q extends never | undefined | Record<string, never> = never>(
2026
- query: string,
2027
- ): Promise<R>
2017
+ fetch<R = Any>(query: string): Promise<R>
2028
2018
  /**
2029
2019
  * Perform a GROQ-query against the configured dataset.
2030
2020
  *
2031
2021
  * @param query - GROQ-query to perform
2032
2022
  * @param params - Optional query parameters
2033
- * @param options - Optional request options
2023
+ */
2024
+ fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(query: string, params: Q): Promise<R>
2025
+ /**
2026
+ * Perform a GROQ-query against the configured dataset.
2027
+ *
2028
+ * @param query - GROQ-query to perform
2029
+ * @param params - Optional query parameters
2030
+ * @param options - Request options
2034
2031
  */
2035
2032
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
2036
2033
  query: string,
2037
- params: QueryParamsParameter<Q>,
2038
- options?: FilteredResponseQueryOptions,
2034
+ params: Q | undefined,
2035
+ options: FilteredResponseQueryOptions,
2039
2036
  ): Promise<R>
2040
2037
  /**
2041
2038
  * Perform a GROQ-query against the configured dataset.
@@ -2046,7 +2043,7 @@ export declare class SanityClient {
2046
2043
  */
2047
2044
  fetch<R = Any, Q = QueryParamsWithoutQueryOptions>(
2048
2045
  query: string,
2049
- params: QueryParamsParameter<Q>,
2046
+ params: Q | undefined,
2050
2047
  options: UnfilteredResponseQueryOptions,
2051
2048
  ): Promise<RawQueryResponse<R>>
2052
2049
  /**
package/dist/stega.js CHANGED
@@ -1,7 +1,7 @@
1
- import { SanityClient, ObservableSanityClient, defineCreateClientExports, middleware } from './_chunks/nodeMiddleware-9OakwOIL.js';
2
- export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/nodeMiddleware-9OakwOIL.js';
1
+ import { SanityClient, ObservableSanityClient, defineCreateClientExports, middleware } from './_chunks/nodeMiddleware-itgO-mht.js';
2
+ export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/nodeMiddleware-itgO-mht.js';
3
3
  export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
4
- export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-FKPgf7TA.js';
4
+ export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-6b6FFhTO.js';
5
5
 
6
6
  class SanityStegaClient extends SanityClient {
7
7
  }