@sanity/client 6.13.2 → 6.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{browserMiddleware-C0hQLS9X.js → browserMiddleware--4iEqxOv.js} +14 -5
- package/dist/_chunks/browserMiddleware--4iEqxOv.js.map +1 -0
- package/dist/_chunks/{browserMiddleware-e8tcYvdt.cjs → browserMiddleware-3B0LRN1j.cjs} +14 -5
- package/dist/_chunks/browserMiddleware-3B0LRN1j.cjs.map +1 -0
- package/dist/_chunks/{nodeMiddleware-BhRfWf0W.cjs → nodeMiddleware-ClJKodBZ.cjs} +15 -6
- package/dist/_chunks/nodeMiddleware-ClJKodBZ.cjs.map +1 -0
- package/dist/_chunks/{nodeMiddleware-D2afPgJS.js → nodeMiddleware-CpwnMbUW.js} +15 -6
- package/dist/_chunks/nodeMiddleware-CpwnMbUW.js.map +1 -0
- package/dist/_chunks/{stegaEncodeSourceMap-BfR5oD3Z.js → stegaEncodeSourceMap-D3O62d5b.js} +2 -2
- package/dist/_chunks/{stegaEncodeSourceMap-BfR5oD3Z.js.map → stegaEncodeSourceMap-D3O62d5b.js.map} +1 -1
- package/dist/_chunks/{stegaEncodeSourceMap-YSe0h4rd.cjs → stegaEncodeSourceMap-DYge0fQ_.cjs} +2 -2
- package/dist/_chunks/{stegaEncodeSourceMap-YSe0h4rd.cjs.map → stegaEncodeSourceMap-DYge0fQ_.cjs.map} +1 -1
- package/dist/_chunks/{stegaEncodeSourceMap-B3BX9g4D.js → stegaEncodeSourceMap-Do2NcGKy.js} +2 -2
- package/dist/_chunks/{stegaEncodeSourceMap-B3BX9g4D.js.map → stegaEncodeSourceMap-Do2NcGKy.js.map} +1 -1
- package/dist/_chunks/{stegaEncodeSourceMap-Ji8dgoO-.cjs → stegaEncodeSourceMap-VuriKnxL.cjs} +2 -2
- package/dist/_chunks/{stegaEncodeSourceMap-Ji8dgoO-.cjs.map → stegaEncodeSourceMap-VuriKnxL.cjs.map} +1 -1
- package/dist/index.browser.cjs +1 -1
- package/dist/index.browser.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +52 -1
- package/dist/index.js +2 -2
- package/dist/stega.browser.cjs +2 -2
- package/dist/stega.browser.js +3 -3
- package/dist/stega.cjs +2 -2
- package/dist/stega.d.ts +52 -1
- package/dist/stega.js +3 -3
- package/package.json +1 -1
- package/src/SanityClient.ts +26 -0
- package/src/data/dataMethods.ts +10 -1
- package/src/data/encodeQueryString.ts +4 -1
- package/src/types.ts +29 -1
- package/umd/sanityClient.js +14 -5
- package/umd/sanityClient.min.js +3 -3
- package/dist/_chunks/browserMiddleware-C0hQLS9X.js.map +0 -1
- package/dist/_chunks/browserMiddleware-e8tcYvdt.cjs.map +0 -1
- package/dist/_chunks/nodeMiddleware-BhRfWf0W.cjs.map +0 -1
- package/dist/_chunks/nodeMiddleware-D2afPgJS.js.map +0 -1
package/dist/_chunks/{stegaEncodeSourceMap-Ji8dgoO-.cjs.map → stegaEncodeSourceMap-VuriKnxL.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stegaEncodeSourceMap-Ji8dgoO-.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]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n if (!resultSourceMap) {\n logger?.error?.('[@sanity/client]: 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]: ${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)?.('[@sanity/client]: Encoding source map into result')\n logger.log?.(\n `[@sanity/client]: Paths encoded: ${report.encoded.length}, skipped: ${report.skipped.length}`,\n )\n }\n if (report.encoded.length > 0) {\n logger?.log?.(`[@sanity/client]: 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]: 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
|
+
{"version":3,"file":"stegaEncodeSourceMap-VuriKnxL.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]: ${msg}`, {result, resultSourceMap, config})\n throw new TypeError(msg)\n }\n\n if (!resultSourceMap) {\n logger?.error?.('[@sanity/client]: 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]: ${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)?.('[@sanity/client]: Encoding source map into result')\n logger.log?.(\n `[@sanity/client]: Paths encoded: ${report.encoded.length}, skipped: ${report.skipped.length}`,\n )\n }\n if (report.encoded.length > 0) {\n logger?.log?.(`[@sanity/client]: 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]: 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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"}
|
package/dist/index.browser.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var browserMiddleware = require('./_chunks/browserMiddleware-
|
|
5
|
+
var browserMiddleware = require('./_chunks/browserMiddleware-3B0LRN1j.cjs');
|
|
6
6
|
var getIt = require('get-it');
|
|
7
7
|
|
|
8
8
|
function defineDeprecatedCreateClient(createClient) {
|
package/dist/index.browser.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { printNoDefaultExport, defineCreateClientExports, SanityClient, envMiddleware } from './_chunks/browserMiddleware
|
|
2
|
-
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/browserMiddleware
|
|
1
|
+
import { printNoDefaultExport, defineCreateClientExports, SanityClient, envMiddleware } from './_chunks/browserMiddleware--4iEqxOv.js';
|
|
2
|
+
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/browserMiddleware--4iEqxOv.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-
|
|
5
|
+
var nodeMiddleware = require('./_chunks/nodeMiddleware-ClJKodBZ.cjs');
|
|
6
6
|
var getIt = require('get-it');
|
|
7
7
|
|
|
8
8
|
function defineDeprecatedCreateClient(createClient) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1169,6 +1169,18 @@ export declare class ObservableSanityClient {
|
|
|
1169
1169
|
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
1170
1170
|
options: UnfilteredResponseQueryOptions,
|
|
1171
1171
|
): Observable<RawQueryResponse<R>>
|
|
1172
|
+
/**
|
|
1173
|
+
* Perform a GROQ-query against the configured dataset.
|
|
1174
|
+
*
|
|
1175
|
+
* @param query - GROQ-query to perform
|
|
1176
|
+
* @param params - Optional query parameters
|
|
1177
|
+
* @param options - Request options
|
|
1178
|
+
*/
|
|
1179
|
+
fetch<R = Any, Q extends QueryWithoutParams | QueryParams = QueryParams>(
|
|
1180
|
+
query: string,
|
|
1181
|
+
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
1182
|
+
options: UnfilteredResponseWithoutQuery,
|
|
1183
|
+
): Observable<RawQuerylessQueryResponse<R>>
|
|
1172
1184
|
/**
|
|
1173
1185
|
* Fetch a single document with the given ID.
|
|
1174
1186
|
*
|
|
@@ -1756,7 +1768,10 @@ export declare class ProjectsClient {
|
|
|
1756
1768
|
}
|
|
1757
1769
|
|
|
1758
1770
|
/** @public */
|
|
1759
|
-
export declare type QueryOptions =
|
|
1771
|
+
export declare type QueryOptions =
|
|
1772
|
+
| FilteredResponseQueryOptions
|
|
1773
|
+
| UnfilteredResponseQueryOptions
|
|
1774
|
+
| UnfilteredResponseWithoutQuery
|
|
1760
1775
|
|
|
1761
1776
|
/** @public */
|
|
1762
1777
|
export declare interface QueryParams {
|
|
@@ -1780,6 +1795,8 @@ export declare interface QueryParams {
|
|
|
1780
1795
|
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1781
1796
|
resultSourceMap?: never
|
|
1782
1797
|
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1798
|
+
returnQuery?: never
|
|
1799
|
+
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1783
1800
|
signal?: never
|
|
1784
1801
|
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1785
1802
|
stega?: never
|
|
@@ -1799,6 +1816,9 @@ export declare interface QueryParams {
|
|
|
1799
1816
|
*/
|
|
1800
1817
|
export declare type QueryWithoutParams = Record<string, never> | undefined
|
|
1801
1818
|
|
|
1819
|
+
/** @public */
|
|
1820
|
+
export declare type RawQuerylessQueryResponse<R> = Omit<RawQueryResponse<R>, 'query'>
|
|
1821
|
+
|
|
1802
1822
|
/** @public */
|
|
1803
1823
|
export declare interface RawQueryResponse<R> {
|
|
1804
1824
|
query: string
|
|
@@ -1848,6 +1868,7 @@ export declare interface RequestObservableOptions extends Omit<RequestOptions, '
|
|
|
1848
1868
|
canUseCdn?: boolean
|
|
1849
1869
|
useCdn?: boolean
|
|
1850
1870
|
tag?: string
|
|
1871
|
+
returnQuery?: boolean
|
|
1851
1872
|
resultSourceMap?: boolean | 'withKeyArraySelector'
|
|
1852
1873
|
perspective?: ClientPerspective
|
|
1853
1874
|
}
|
|
@@ -1884,6 +1905,7 @@ export declare interface ResponseEvent<T = unknown> {
|
|
|
1884
1905
|
export declare interface ResponseQueryOptions extends RequestOptions {
|
|
1885
1906
|
perspective?: ClientPerspective
|
|
1886
1907
|
resultSourceMap?: boolean | 'withKeyArraySelector'
|
|
1908
|
+
returnQuery?: boolean
|
|
1887
1909
|
useCdn?: boolean
|
|
1888
1910
|
stega?: boolean | StegaConfig
|
|
1889
1911
|
cache?: 'next' extends keyof RequestInit ? RequestInit['cache'] : never
|
|
@@ -1970,6 +1992,18 @@ export declare class SanityClient {
|
|
|
1970
1992
|
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
1971
1993
|
options: UnfilteredResponseQueryOptions,
|
|
1972
1994
|
): Promise<RawQueryResponse<R>>
|
|
1995
|
+
/**
|
|
1996
|
+
* Perform a GROQ-query against the configured dataset.
|
|
1997
|
+
*
|
|
1998
|
+
* @param query - GROQ-query to perform
|
|
1999
|
+
* @param params - Optional query parameters
|
|
2000
|
+
* @param options - Request options
|
|
2001
|
+
*/
|
|
2002
|
+
fetch<R = Any, Q extends QueryWithoutParams | QueryParams = QueryParams>(
|
|
2003
|
+
query: string,
|
|
2004
|
+
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
2005
|
+
options: UnfilteredResponseWithoutQuery,
|
|
2006
|
+
): Promise<RawQuerylessQueryResponse<R>>
|
|
1973
2007
|
/**
|
|
1974
2008
|
* Fetch a single document with the given ID.
|
|
1975
2009
|
*
|
|
@@ -2657,6 +2691,23 @@ export declare type TransactionMutationOptions =
|
|
|
2657
2691
|
/** @public */
|
|
2658
2692
|
export declare interface UnfilteredResponseQueryOptions extends ResponseQueryOptions {
|
|
2659
2693
|
filterResponse: false
|
|
2694
|
+
/**
|
|
2695
|
+
* When `filterResponse` is `false`, `returnQuery` also defaults to `true` for
|
|
2696
|
+
* backwards compatibility (on the client side, not from the content lake API).
|
|
2697
|
+
* Can also explicitly be set to `true`.
|
|
2698
|
+
*/
|
|
2699
|
+
returnQuery?: true
|
|
2700
|
+
}
|
|
2701
|
+
|
|
2702
|
+
/**
|
|
2703
|
+
* When using `filterResponse: false`, but you do not wish to receive back the query from
|
|
2704
|
+
* the content lake API.
|
|
2705
|
+
*
|
|
2706
|
+
* @public
|
|
2707
|
+
*/
|
|
2708
|
+
export declare interface UnfilteredResponseWithoutQuery extends ResponseQueryOptions {
|
|
2709
|
+
filterResponse: false
|
|
2710
|
+
returnQuery: false
|
|
2660
2711
|
}
|
|
2661
2712
|
|
|
2662
2713
|
export {unstable__adapter}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { printNoDefaultExport, defineCreateClientExports, SanityClient, middleware } from './_chunks/nodeMiddleware-
|
|
2
|
-
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/nodeMiddleware-
|
|
1
|
+
import { printNoDefaultExport, defineCreateClientExports, SanityClient, middleware } from './_chunks/nodeMiddleware-CpwnMbUW.js';
|
|
2
|
+
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/nodeMiddleware-CpwnMbUW.js';
|
|
3
3
|
export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
|
|
4
4
|
|
|
5
5
|
function defineDeprecatedCreateClient(createClient) {
|
package/dist/stega.browser.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var browserMiddleware = require('./_chunks/browserMiddleware-
|
|
5
|
+
var browserMiddleware = require('./_chunks/browserMiddleware-3B0LRN1j.cjs');
|
|
6
6
|
var getIt = require('get-it');
|
|
7
|
-
var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-
|
|
7
|
+
var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-VuriKnxL.cjs');
|
|
8
8
|
|
|
9
9
|
class SanityStegaClient extends browserMiddleware.SanityClient {
|
|
10
10
|
}
|
package/dist/stega.browser.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SanityClient, ObservableSanityClient, defineCreateClientExports, envMiddleware } from './_chunks/browserMiddleware
|
|
2
|
-
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/browserMiddleware
|
|
1
|
+
import { SanityClient, ObservableSanityClient, defineCreateClientExports, envMiddleware } from './_chunks/browserMiddleware--4iEqxOv.js';
|
|
2
|
+
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/browserMiddleware--4iEqxOv.js';
|
|
3
3
|
export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
|
|
4
|
-
export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-
|
|
4
|
+
export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-D3O62d5b.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-
|
|
5
|
+
var nodeMiddleware = require('./_chunks/nodeMiddleware-ClJKodBZ.cjs');
|
|
6
6
|
var getIt = require('get-it');
|
|
7
|
-
var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-
|
|
7
|
+
var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-DYge0fQ_.cjs');
|
|
8
8
|
|
|
9
9
|
class SanityStegaClient extends nodeMiddleware.SanityClient {
|
|
10
10
|
}
|
package/dist/stega.d.ts
CHANGED
|
@@ -1198,6 +1198,18 @@ export declare class ObservableSanityClient {
|
|
|
1198
1198
|
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
1199
1199
|
options: UnfilteredResponseQueryOptions,
|
|
1200
1200
|
): Observable<RawQueryResponse<R>>
|
|
1201
|
+
/**
|
|
1202
|
+
* Perform a GROQ-query against the configured dataset.
|
|
1203
|
+
*
|
|
1204
|
+
* @param query - GROQ-query to perform
|
|
1205
|
+
* @param params - Optional query parameters
|
|
1206
|
+
* @param options - Request options
|
|
1207
|
+
*/
|
|
1208
|
+
fetch<R = Any, Q extends QueryWithoutParams | QueryParams = QueryParams>(
|
|
1209
|
+
query: string,
|
|
1210
|
+
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
1211
|
+
options: UnfilteredResponseWithoutQuery,
|
|
1212
|
+
): Observable<RawQuerylessQueryResponse<R>>
|
|
1201
1213
|
/**
|
|
1202
1214
|
* Fetch a single document with the given ID.
|
|
1203
1215
|
*
|
|
@@ -1791,7 +1803,10 @@ export declare class ProjectsClient {
|
|
|
1791
1803
|
}
|
|
1792
1804
|
|
|
1793
1805
|
/** @public */
|
|
1794
|
-
export declare type QueryOptions =
|
|
1806
|
+
export declare type QueryOptions =
|
|
1807
|
+
| FilteredResponseQueryOptions
|
|
1808
|
+
| UnfilteredResponseQueryOptions
|
|
1809
|
+
| UnfilteredResponseWithoutQuery
|
|
1795
1810
|
|
|
1796
1811
|
/** @public */
|
|
1797
1812
|
export declare interface QueryParams {
|
|
@@ -1815,6 +1830,8 @@ export declare interface QueryParams {
|
|
|
1815
1830
|
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1816
1831
|
resultSourceMap?: never
|
|
1817
1832
|
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1833
|
+
returnQuery?: never
|
|
1834
|
+
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1818
1835
|
signal?: never
|
|
1819
1836
|
/** @deprecated you're using a fetch option as a GROQ parameter, this is likely a mistake */
|
|
1820
1837
|
stega?: never
|
|
@@ -1834,6 +1851,9 @@ export declare interface QueryParams {
|
|
|
1834
1851
|
*/
|
|
1835
1852
|
export declare type QueryWithoutParams = Record<string, never> | undefined
|
|
1836
1853
|
|
|
1854
|
+
/** @public */
|
|
1855
|
+
export declare type RawQuerylessQueryResponse<R> = Omit<RawQueryResponse<R>, 'query'>
|
|
1856
|
+
|
|
1837
1857
|
/** @public */
|
|
1838
1858
|
export declare interface RawQueryResponse<R> {
|
|
1839
1859
|
query: string
|
|
@@ -1883,6 +1903,7 @@ export declare interface RequestObservableOptions extends Omit<RequestOptions, '
|
|
|
1883
1903
|
canUseCdn?: boolean
|
|
1884
1904
|
useCdn?: boolean
|
|
1885
1905
|
tag?: string
|
|
1906
|
+
returnQuery?: boolean
|
|
1886
1907
|
resultSourceMap?: boolean | 'withKeyArraySelector'
|
|
1887
1908
|
perspective?: ClientPerspective
|
|
1888
1909
|
}
|
|
@@ -1919,6 +1940,7 @@ export declare interface ResponseEvent<T = unknown> {
|
|
|
1919
1940
|
export declare interface ResponseQueryOptions extends RequestOptions {
|
|
1920
1941
|
perspective?: ClientPerspective
|
|
1921
1942
|
resultSourceMap?: boolean | 'withKeyArraySelector'
|
|
1943
|
+
returnQuery?: boolean
|
|
1922
1944
|
useCdn?: boolean
|
|
1923
1945
|
stega?: boolean | StegaConfig
|
|
1924
1946
|
cache?: 'next' extends keyof RequestInit ? RequestInit['cache'] : never
|
|
@@ -2005,6 +2027,18 @@ export declare class SanityClient {
|
|
|
2005
2027
|
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
2006
2028
|
options: UnfilteredResponseQueryOptions,
|
|
2007
2029
|
): Promise<RawQueryResponse<R>>
|
|
2030
|
+
/**
|
|
2031
|
+
* Perform a GROQ-query against the configured dataset.
|
|
2032
|
+
*
|
|
2033
|
+
* @param query - GROQ-query to perform
|
|
2034
|
+
* @param params - Optional query parameters
|
|
2035
|
+
* @param options - Request options
|
|
2036
|
+
*/
|
|
2037
|
+
fetch<R = Any, Q extends QueryWithoutParams | QueryParams = QueryParams>(
|
|
2038
|
+
query: string,
|
|
2039
|
+
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
2040
|
+
options: UnfilteredResponseWithoutQuery,
|
|
2041
|
+
): Promise<RawQuerylessQueryResponse<R>>
|
|
2008
2042
|
/**
|
|
2009
2043
|
* Fetch a single document with the given ID.
|
|
2010
2044
|
*
|
|
@@ -2710,6 +2744,23 @@ export declare type TransactionMutationOptions =
|
|
|
2710
2744
|
/** @public */
|
|
2711
2745
|
export declare interface UnfilteredResponseQueryOptions extends ResponseQueryOptions {
|
|
2712
2746
|
filterResponse: false
|
|
2747
|
+
/**
|
|
2748
|
+
* When `filterResponse` is `false`, `returnQuery` also defaults to `true` for
|
|
2749
|
+
* backwards compatibility (on the client side, not from the content lake API).
|
|
2750
|
+
* Can also explicitly be set to `true`.
|
|
2751
|
+
*/
|
|
2752
|
+
returnQuery?: true
|
|
2753
|
+
}
|
|
2754
|
+
|
|
2755
|
+
/**
|
|
2756
|
+
* When using `filterResponse: false`, but you do not wish to receive back the query from
|
|
2757
|
+
* the content lake API.
|
|
2758
|
+
*
|
|
2759
|
+
* @public
|
|
2760
|
+
*/
|
|
2761
|
+
export declare interface UnfilteredResponseWithoutQuery extends ResponseQueryOptions {
|
|
2762
|
+
filterResponse: false
|
|
2763
|
+
returnQuery: false
|
|
2713
2764
|
}
|
|
2714
2765
|
|
|
2715
2766
|
export {unstable__adapter}
|
package/dist/stega.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SanityClient, ObservableSanityClient, defineCreateClientExports, middleware } from './_chunks/nodeMiddleware-
|
|
2
|
-
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/nodeMiddleware-
|
|
1
|
+
import { SanityClient, ObservableSanityClient, defineCreateClientExports, middleware } from './_chunks/nodeMiddleware-CpwnMbUW.js';
|
|
2
|
+
export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/nodeMiddleware-CpwnMbUW.js';
|
|
3
3
|
export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
|
|
4
|
-
export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-
|
|
4
|
+
export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-Do2NcGKy.js';
|
|
5
5
|
|
|
6
6
|
class SanityStegaClient extends SanityClient {
|
|
7
7
|
}
|
package/package.json
CHANGED
package/src/SanityClient.ts
CHANGED
|
@@ -28,12 +28,14 @@ import type {
|
|
|
28
28
|
QueryOptions,
|
|
29
29
|
QueryParams,
|
|
30
30
|
QueryWithoutParams,
|
|
31
|
+
RawQuerylessQueryResponse,
|
|
31
32
|
RawQueryResponse,
|
|
32
33
|
RawRequestOptions,
|
|
33
34
|
SanityDocument,
|
|
34
35
|
SanityDocumentStub,
|
|
35
36
|
SingleMutationResult,
|
|
36
37
|
UnfilteredResponseQueryOptions,
|
|
38
|
+
UnfilteredResponseWithoutQuery,
|
|
37
39
|
} from './types'
|
|
38
40
|
import {ObservableUsersClient, UsersClient} from './users/UsersClient'
|
|
39
41
|
|
|
@@ -160,6 +162,18 @@ export class ObservableSanityClient {
|
|
|
160
162
|
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
161
163
|
options: UnfilteredResponseQueryOptions,
|
|
162
164
|
): Observable<RawQueryResponse<R>>
|
|
165
|
+
/**
|
|
166
|
+
* Perform a GROQ-query against the configured dataset.
|
|
167
|
+
*
|
|
168
|
+
* @param query - GROQ-query to perform
|
|
169
|
+
* @param params - Optional query parameters
|
|
170
|
+
* @param options - Request options
|
|
171
|
+
*/
|
|
172
|
+
fetch<R = Any, Q extends QueryWithoutParams | QueryParams = QueryParams>(
|
|
173
|
+
query: string,
|
|
174
|
+
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
175
|
+
options: UnfilteredResponseWithoutQuery,
|
|
176
|
+
): Observable<RawQuerylessQueryResponse<R>>
|
|
163
177
|
fetch<R, Q>(
|
|
164
178
|
query: string,
|
|
165
179
|
params?: Q,
|
|
@@ -799,6 +813,18 @@ export class SanityClient {
|
|
|
799
813
|
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
800
814
|
options: UnfilteredResponseQueryOptions,
|
|
801
815
|
): Promise<RawQueryResponse<R>>
|
|
816
|
+
/**
|
|
817
|
+
* Perform a GROQ-query against the configured dataset.
|
|
818
|
+
*
|
|
819
|
+
* @param query - GROQ-query to perform
|
|
820
|
+
* @param params - Optional query parameters
|
|
821
|
+
* @param options - Request options
|
|
822
|
+
*/
|
|
823
|
+
fetch<R = Any, Q extends QueryWithoutParams | QueryParams = QueryParams>(
|
|
824
|
+
query: string,
|
|
825
|
+
params: Q extends QueryWithoutParams ? QueryWithoutParams : Q,
|
|
826
|
+
options: UnfilteredResponseWithoutQuery,
|
|
827
|
+
): Promise<RawQuerylessQueryResponse<R>>
|
|
802
828
|
fetch<R, Q>(query: string, params?: Q, options?: QueryOptions): Promise<RawQueryResponse<R> | R> {
|
|
803
829
|
return lastValueFrom(
|
|
804
830
|
dataMethods._fetch<R, Q>(
|
package/src/data/dataMethods.ts
CHANGED
|
@@ -80,6 +80,7 @@ export function _fetch<R, Q>(
|
|
|
80
80
|
const params = stega.enabled ? vercelStegaCleanAll(_params) : _params
|
|
81
81
|
const mapResponse =
|
|
82
82
|
options.filterResponse === false ? (res: Any) => res : (res: Any) => res.result
|
|
83
|
+
|
|
83
84
|
const {cache, next, ...opts} = {
|
|
84
85
|
// Opt out of setting a `signal` on an internal `fetch` if one isn't provided.
|
|
85
86
|
// This is necessary in React Server Components to avoid opting out of Request Memoization.
|
|
@@ -87,6 +88,9 @@ export function _fetch<R, Q>(
|
|
|
87
88
|
// Set `resultSourceMap' when stega is enabled, as it's required for encoding.
|
|
88
89
|
resultSourceMap: stega.enabled ? 'withKeyArraySelector' : options.resultSourceMap,
|
|
89
90
|
...options,
|
|
91
|
+
// Default to not returning the query, unless `filterResponse` is `false`,
|
|
92
|
+
// or `returnQuery` is explicitly set. `true` is the default in Content Lake, so skip if truthy
|
|
93
|
+
returnQuery: options.filterResponse === false && options.returnQuery !== false,
|
|
90
94
|
}
|
|
91
95
|
const reqOpts =
|
|
92
96
|
typeof cache !== 'undefined' || typeof next !== 'undefined'
|
|
@@ -253,7 +257,7 @@ export function _dataRequest(
|
|
|
253
257
|
const useGet = !isMutation && strQuery.length < getQuerySizeLimit
|
|
254
258
|
const stringQuery = useGet ? strQuery : ''
|
|
255
259
|
const returnFirst = options.returnFirst
|
|
256
|
-
const {timeout, token, tag, headers} = options
|
|
260
|
+
const {timeout, token, tag, headers, returnQuery} = options
|
|
257
261
|
|
|
258
262
|
const uri = _getDataUrl(client, endpoint, stringQuery)
|
|
259
263
|
|
|
@@ -267,6 +271,7 @@ export function _dataRequest(
|
|
|
267
271
|
headers,
|
|
268
272
|
token,
|
|
269
273
|
tag,
|
|
274
|
+
returnQuery,
|
|
270
275
|
perspective: options.perspective,
|
|
271
276
|
resultSourceMap: options.resultSourceMap,
|
|
272
277
|
canUseCdn: isQuery,
|
|
@@ -369,6 +374,10 @@ export function _requestObservable<R>(
|
|
|
369
374
|
printCdnPreviewDraftsWarning()
|
|
370
375
|
}
|
|
371
376
|
}
|
|
377
|
+
|
|
378
|
+
if (options.returnQuery === false) {
|
|
379
|
+
options.query = {returnQuery: 'false', ...options.query}
|
|
380
|
+
}
|
|
372
381
|
}
|
|
373
382
|
|
|
374
383
|
const reqOptions = requestOptions(
|