@sanity/client 6.11.4-canary.4 → 6.12.0

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.
@@ -1,4 +1,4 @@
1
- import { b } from './nodeMiddleware-HdxZM4IO.js';
1
+ import { b } from './nodeMiddleware-9OakwOIL.js';
2
2
  import { walkMap, resolveMapping, parseJsonPath, resolveStudioBaseRoute, createEditUrl, reKeySegment, toString, jsonPathToStudioPath } from './resolveEditInfo-uXvm6eWd.js';
3
3
 
4
4
  function encodeIntoResult(result, csm, encoder) {
@@ -223,4 +223,4 @@ var stegaEncodeSourceMap$1 = /*#__PURE__*/Object.freeze({
223
223
  });
224
224
 
225
225
  export { encodeIntoResult, stegaEncodeSourceMap, stegaEncodeSourceMap$1 };
226
- //# sourceMappingURL=stegaEncodeSourceMap-jNnNdFFs.js.map
226
+ //# sourceMappingURL=stegaEncodeSourceMap-FKPgf7TA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stegaEncodeSourceMap-jNnNdFFs.js","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 Number.isNaN(Number(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":["vercelStegaCombine","studioPathToString"],"mappings":"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"}
1
+ {"version":3,"file":"stegaEncodeSourceMap-FKPgf7TA.js","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 Number.isNaN(Number(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":["vercelStegaCombine","studioPathToString"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var nodeMiddleware = require('./nodeMiddleware-hT4jdzJO.cjs');
3
+ var nodeMiddleware = require('./nodeMiddleware-wVTxM7jj.cjs');
4
4
  var resolveEditInfo = require('./resolveEditInfo-dELeeJBE.cjs');
5
5
 
6
6
  function encodeIntoResult(result, csm, encoder) {
@@ -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-kcaoNiFL.cjs.map
230
+ //# sourceMappingURL=stegaEncodeSourceMap-M30Akn03.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"stegaEncodeSourceMap-kcaoNiFL.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 Number.isNaN(Number(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
+ {"version":3,"file":"stegaEncodeSourceMap-M30Akn03.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 Number.isNaN(Number(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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"}
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-hT4jdzJO.cjs');
5
+ var nodeMiddleware = require('./_chunks/nodeMiddleware-wVTxM7jj.cjs');
6
6
  var getIt = require('get-it');
7
7
 
8
8
  function defineDeprecatedCreateClient(createClient) {
package/dist/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export declare type AssetMetadataType =
42
42
 
43
43
  /** @internal */
44
44
  export declare class AssetsClient {
45
+ #private
45
46
  constructor(client: SanityClient, httpRequest: HttpRequest)
46
47
  /**
47
48
  * Uploads a file asset to the configured dataset
@@ -460,6 +461,7 @@ export declare type DatasetResponse = {
460
461
 
461
462
  /** @internal */
462
463
  export declare class DatasetsClient {
464
+ #private
463
465
  constructor(client: SanityClient, httpRequest: HttpRequest)
464
466
  /**
465
467
  * Create a new dataset with the given name
@@ -922,6 +924,7 @@ export declare type MutationSelection =
922
924
 
923
925
  /** @internal */
924
926
  export declare class ObservableAssetsClient {
927
+ #private
925
928
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
926
929
  /**
927
930
  * Uploads a file asset to the configured dataset
@@ -975,6 +978,7 @@ export declare class ObservableAssetsClient {
975
978
 
976
979
  /** @internal */
977
980
  export declare class ObservableDatasetsClient {
981
+ #private
978
982
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
979
983
  /**
980
984
  * Create a new dataset with the given name
@@ -1016,6 +1020,7 @@ export declare class ObservableDatasetsClient {
1016
1020
 
1017
1021
  /** @public */
1018
1022
  export declare class ObservablePatch extends BasePatch {
1023
+ #private
1019
1024
  constructor(
1020
1025
  selection: PatchSelection,
1021
1026
  operations?: PatchOperations,
@@ -1068,6 +1073,7 @@ export declare type ObservablePatchBuilder = (patch: ObservablePatch) => Observa
1068
1073
 
1069
1074
  /** @internal */
1070
1075
  export declare class ObservableProjectsClient {
1076
+ #private
1071
1077
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
1072
1078
  /**
1073
1079
  * Fetch a list of projects the authenticated user has access to.
@@ -1087,6 +1093,7 @@ export declare class ObservableProjectsClient {
1087
1093
 
1088
1094
  /** @public */
1089
1095
  export declare class ObservableSanityClient {
1096
+ #private
1090
1097
  assets: ObservableAssetsClient
1091
1098
  datasets: ObservableDatasetsClient
1092
1099
  projects: ObservableProjectsClient
@@ -1569,6 +1576,7 @@ export declare class ObservableSanityClient {
1569
1576
 
1570
1577
  /** @public */
1571
1578
  export declare class ObservableTransaction extends BaseTransaction {
1579
+ #private
1572
1580
  constructor(operations?: Mutation[], client?: ObservableSanityClient, transactionId?: string)
1573
1581
  /**
1574
1582
  * Clones the transaction
@@ -1627,6 +1635,7 @@ export declare class ObservableTransaction extends BaseTransaction {
1627
1635
 
1628
1636
  /** @public */
1629
1637
  export declare class ObservableUsersClient {
1638
+ #private
1630
1639
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
1631
1640
  /**
1632
1641
  * Fetch a user by user ID
@@ -1640,6 +1649,7 @@ export declare class ObservableUsersClient {
1640
1649
 
1641
1650
  /** @public */
1642
1651
  export declare class Patch extends BasePatch {
1652
+ #private
1643
1653
  constructor(selection: PatchSelection, operations?: PatchOperations, client?: SanityClient)
1644
1654
  /**
1645
1655
  * Clones the patch
@@ -1727,6 +1737,7 @@ export {ProgressEvent_2 as ProgressEvent}
1727
1737
 
1728
1738
  /** @internal */
1729
1739
  export declare class ProjectsClient {
1740
+ #private
1730
1741
  constructor(client: SanityClient, httpRequest: HttpRequest)
1731
1742
  /**
1732
1743
  * Fetch a list of projects the authenticated user has access to.
@@ -1939,6 +1950,7 @@ export declare interface SanityAssetDocument extends SanityDocument {
1939
1950
 
1940
1951
  /** @public */
1941
1952
  export declare class SanityClient {
1953
+ #private
1942
1954
  assets: AssetsClient
1943
1955
  datasets: DatasetsClient
1944
1956
  projects: ProjectsClient
@@ -2614,6 +2626,7 @@ export declare type StudioUrl = StudioBaseUrl | StudioBaseRoute
2614
2626
 
2615
2627
  /** @public */
2616
2628
  export declare class Transaction extends BaseTransaction {
2629
+ #private
2617
2630
  constructor(operations?: Mutation[], client?: SanityClient, transactionId?: string)
2618
2631
  /**
2619
2632
  * Clones the transaction
@@ -2776,6 +2789,7 @@ export declare interface UploadClientConfig {
2776
2789
 
2777
2790
  /** @public */
2778
2791
  export declare class UsersClient {
2792
+ #private
2779
2793
  constructor(client: SanityClient, httpRequest: HttpRequest)
2780
2794
  /**
2781
2795
  * Fetch a user by user ID
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { printNoDefaultExport, defineCreateClientExports, SanityClient, middleware } from './_chunks/nodeMiddleware-HdxZM4IO.js';
2
- export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/nodeMiddleware-HdxZM4IO.js';
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';
3
3
  export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
4
4
 
5
5
  function defineDeprecatedCreateClient(createClient) {
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-hT4jdzJO.cjs');
5
+ var nodeMiddleware = require('./_chunks/nodeMiddleware-wVTxM7jj.cjs');
6
6
  var getIt = require('get-it');
7
- var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-kcaoNiFL.cjs');
7
+ var stegaEncodeSourceMap = require('./_chunks/stegaEncodeSourceMap-M30Akn03.cjs');
8
8
 
9
9
  class SanityStegaClient extends nodeMiddleware.SanityClient {
10
10
  }
package/dist/stega.d.ts CHANGED
@@ -42,6 +42,7 @@ export declare type AssetMetadataType =
42
42
 
43
43
  /** @internal */
44
44
  export declare class AssetsClient {
45
+ #private
45
46
  constructor(client: SanityClient, httpRequest: HttpRequest)
46
47
  /**
47
48
  * Uploads a file asset to the configured dataset
@@ -471,6 +472,7 @@ export declare type DatasetResponse = {
471
472
 
472
473
  /** @internal */
473
474
  export declare class DatasetsClient {
475
+ #private
474
476
  constructor(client: SanityClient, httpRequest: HttpRequest)
475
477
  /**
476
478
  * Create a new dataset with the given name
@@ -951,6 +953,7 @@ export declare type MutationSelection =
951
953
 
952
954
  /** @internal */
953
955
  export declare class ObservableAssetsClient {
956
+ #private
954
957
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
955
958
  /**
956
959
  * Uploads a file asset to the configured dataset
@@ -1004,6 +1007,7 @@ export declare class ObservableAssetsClient {
1004
1007
 
1005
1008
  /** @internal */
1006
1009
  export declare class ObservableDatasetsClient {
1010
+ #private
1007
1011
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
1008
1012
  /**
1009
1013
  * Create a new dataset with the given name
@@ -1045,6 +1049,7 @@ export declare class ObservableDatasetsClient {
1045
1049
 
1046
1050
  /** @public */
1047
1051
  export declare class ObservablePatch extends BasePatch {
1052
+ #private
1048
1053
  constructor(
1049
1054
  selection: PatchSelection,
1050
1055
  operations?: PatchOperations,
@@ -1097,6 +1102,7 @@ export declare type ObservablePatchBuilder = (patch: ObservablePatch) => Observa
1097
1102
 
1098
1103
  /** @internal */
1099
1104
  export declare class ObservableProjectsClient {
1105
+ #private
1100
1106
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
1101
1107
  /**
1102
1108
  * Fetch a list of projects the authenticated user has access to.
@@ -1116,6 +1122,7 @@ export declare class ObservableProjectsClient {
1116
1122
 
1117
1123
  /** @public */
1118
1124
  export declare class ObservableSanityClient {
1125
+ #private
1119
1126
  assets: ObservableAssetsClient
1120
1127
  datasets: ObservableDatasetsClient
1121
1128
  projects: ObservableProjectsClient
@@ -1604,6 +1611,7 @@ export declare class ObservableSanityStegaClient extends ObservableSanityClient
1604
1611
 
1605
1612
  /** @public */
1606
1613
  export declare class ObservableTransaction extends BaseTransaction {
1614
+ #private
1607
1615
  constructor(operations?: Mutation[], client?: ObservableSanityClient, transactionId?: string)
1608
1616
  /**
1609
1617
  * Clones the transaction
@@ -1662,6 +1670,7 @@ export declare class ObservableTransaction extends BaseTransaction {
1662
1670
 
1663
1671
  /** @public */
1664
1672
  export declare class ObservableUsersClient {
1673
+ #private
1665
1674
  constructor(client: ObservableSanityClient, httpRequest: HttpRequest)
1666
1675
  /**
1667
1676
  * Fetch a user by user ID
@@ -1675,6 +1684,7 @@ export declare class ObservableUsersClient {
1675
1684
 
1676
1685
  /** @public */
1677
1686
  export declare class Patch extends BasePatch {
1687
+ #private
1678
1688
  constructor(selection: PatchSelection, operations?: PatchOperations, client?: SanityClient)
1679
1689
  /**
1680
1690
  * Clones the patch
@@ -1762,6 +1772,7 @@ export {ProgressEvent_2 as ProgressEvent}
1762
1772
 
1763
1773
  /** @internal */
1764
1774
  export declare class ProjectsClient {
1775
+ #private
1765
1776
  constructor(client: SanityClient, httpRequest: HttpRequest)
1766
1777
  /**
1767
1778
  * Fetch a list of projects the authenticated user has access to.
@@ -1974,6 +1985,7 @@ export declare interface SanityAssetDocument extends SanityDocument {
1974
1985
 
1975
1986
  /** @public */
1976
1987
  export declare class SanityClient {
1988
+ #private
1977
1989
  assets: AssetsClient
1978
1990
  datasets: DatasetsClient
1979
1991
  projects: ProjectsClient
@@ -2667,6 +2679,7 @@ export declare type StudioUrl = StudioBaseUrl | StudioBaseRoute
2667
2679
 
2668
2680
  /** @public */
2669
2681
  export declare class Transaction extends BaseTransaction {
2682
+ #private
2670
2683
  constructor(operations?: Mutation[], client?: SanityClient, transactionId?: string)
2671
2684
  /**
2672
2685
  * Clones the transaction
@@ -2829,6 +2842,7 @@ export declare interface UploadClientConfig {
2829
2842
 
2830
2843
  /** @public */
2831
2844
  export declare class UsersClient {
2845
+ #private
2832
2846
  constructor(client: SanityClient, httpRequest: HttpRequest)
2833
2847
  /**
2834
2848
  * Fetch a user by user ID
package/dist/stega.js CHANGED
@@ -1,7 +1,7 @@
1
- import { SanityClient, ObservableSanityClient, defineCreateClientExports, middleware } from './_chunks/nodeMiddleware-HdxZM4IO.js';
2
- export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableTransaction, Patch, ServerError, Transaction, vercelStegaCleanAll } from './_chunks/nodeMiddleware-HdxZM4IO.js';
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';
3
3
  export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
4
- export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-jNnNdFFs.js';
4
+ export { encodeIntoResult, stegaEncodeSourceMap } from './_chunks/stegaEncodeSourceMap-FKPgf7TA.js';
5
5
 
6
6
  class SanityStegaClient extends SanityClient {
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/client",
3
- "version": "6.11.4-canary.4",
3
+ "version": "6.12.0",
4
4
  "description": "Client for retrieving, creating and patching data from Sanity.io",
5
5
  "keywords": [
6
6
  "sanity",
@@ -102,7 +102,6 @@
102
102
  "scripts": {
103
103
  "prebuild": "npm run clean",
104
104
  "build": "pkg build --strict && pkg --strict && npm run rollup && npm run minify",
105
- "postbuild": "node ./scripts/fix-dts.mjs",
106
105
  "clean": "npx rimraf dist coverage umd/*.js",
107
106
  "coverage": "vitest run --coverage",
108
107
  "lint": "eslint . --ext .cjs,.js,.ts --max-warnings 0",
@@ -114,7 +113,6 @@
114
113
  "test:bun": "bun test runtimes/bun",
115
114
  "test:deno": "deno test --allow-read --allow-net --allow-env --fail-fast --import-map=runtimes/deno/import_map.json runtimes/deno",
116
115
  "test:deno:update_import_map": "deno run --allow-read --allow-write runtimes/deno/update_import_map.ts",
117
- "posttest:deno:update_import_map": "npx prettier --write runtimes/deno/import_map.json",
118
116
  "test:edge-runtime": "npm test -- --config vitest.edge.config.ts",
119
117
  "test:next": "npm test -- --config ./vitest.next.config.ts",
120
118
  "test:node-runtimes": "node --test runtimes/node | npx faucet"