@sanity/client 6.8.0-pink-lizard.11 → 6.8.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.
Files changed (31) hide show
  1. package/README.md +2 -112
  2. package/dist/_chunks/{nodeMiddleware-cQeqivr5.cjs → nodeMiddleware-AQIXW8nd.cjs} +2 -2
  3. package/dist/_chunks/{nodeMiddleware-cQeqivr5.cjs.map → nodeMiddleware-AQIXW8nd.cjs.map} +1 -1
  4. package/dist/_chunks/{nodeMiddleware-pr0WzTXK.js → nodeMiddleware-cKmlsf7J.js} +2 -2
  5. package/dist/_chunks/{nodeMiddleware-pr0WzTXK.js.map → nodeMiddleware-cKmlsf7J.js.map} +1 -1
  6. package/dist/_chunks/{resolveEditInfo-xcYOjX4T.cjs → resolveEditInfo-2keGcJpx.cjs} +2 -1
  7. package/dist/_chunks/{resolveEditInfo-xcYOjX4T.cjs.map → resolveEditInfo-2keGcJpx.cjs.map} +1 -1
  8. package/dist/_chunks/{resolveEditInfo-8A-bssPb.js → resolveEditInfo-hVGpZYTe.js} +2 -2
  9. package/dist/_chunks/{resolveEditInfo-8A-bssPb.js.map → resolveEditInfo-hVGpZYTe.js.map} +1 -1
  10. package/dist/csm.cjs +1 -1
  11. package/dist/csm.js +2 -2
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.js +2 -2
  14. package/dist/stega.browser.cjs +23 -65
  15. package/dist/stega.browser.cjs.map +1 -1
  16. package/dist/stega.browser.js +23 -65
  17. package/dist/stega.browser.js.map +1 -1
  18. package/dist/stega.cjs +25 -21
  19. package/dist/stega.cjs.map +1 -1
  20. package/dist/stega.js +26 -22
  21. package/dist/stega.js.map +1 -1
  22. package/package.json +3 -3
  23. package/src/csm/resolveEditInfo.ts +2 -1
  24. package/src/stega/stegaEncodeSourceMap.ts +25 -18
  25. package/src/csm/applySourceDocuments.test.ts +0 -410
  26. package/src/csm/createEditUrl.test.ts +0 -39
  27. package/src/csm/jsonPath.test.ts +0 -39
  28. package/src/csm/resolveEditUrl.test.ts +0 -537
  29. package/src/csm/studioPath.test.ts +0 -237
  30. package/src/stega/encodeIntoResult.test.ts +0 -259
  31. package/src/stega/vercelStegaCleanAll.test.ts +0 -21
@@ -440,8 +440,9 @@ exports.parseJsonPath = parseJsonPath;
440
440
  exports.reKeySegment = reKeySegment;
441
441
  exports.resolveEditInfo = resolveEditInfo;
442
442
  exports.resolveMapping = resolveMapping;
443
+ exports.resolveStudioBaseRoute = resolveStudioBaseRoute;
443
444
  exports.studioPath = studioPath;
444
445
  exports.studioPathToJsonPath = studioPathToJsonPath;
445
446
  exports.toString = toString;
446
447
  exports.walkMap = walkMap;
447
- //# sourceMappingURL=resolveEditInfo-xcYOjX4T.cjs.map
448
+ //# sourceMappingURL=resolveEditInfo-2keGcJpx.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveEditInfo-xcYOjX4T.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/csm/getPublishedId.ts","../../src/csm/createEditUrl.ts","../../src/csm/resolveEditInfo.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","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 projectId,\n dataset,\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 (!projectId) {\n throw new Error('projectId is required')\n }\n if (!dataset) {\n throw new Error('dataset 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 = studioPath.toString(jsonPathToStudioPath(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 projectId,\n dataset,\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 if (tool) {\n segments.push(tool)\n }\n const routerParams = [`id=${id}`, `type=${type}`, `path=${encodeURIComponent(stringifiedPath)}`]\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, _dataset = options.projectId, _projectId = options.dataset} = sourceDoc\n return {\n baseUrl,\n projectId: _projectId,\n dataset: _dataset,\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\nfunction 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"],"names":["rePropName","reKeySegment","reIndexTuple","isIndexSegment","segment","test","isKeySegment","trim","isIndexTuple","Array","isArray","length","from","to","get","obj","path","defaultVal","select","fromString","Error","acc","i","find","item","_key","toString","reduce","target","segmentType","concat","separator","stringify","segments","match","map","parsePathSegment","parseIndexSegment","parseKeySegment","parseIndexTupleSegment","Number","replace","split","seg","ESCAPE","UNESCAPE","jsonPath","escapedKey","_index","join","parseJsonPath","parsed","parseRe","exec","key","m","push","parseInt","jsonPathToStudioPath","JSON","studioPathToJsonPath","parsedPath","studioPath.fromString","isContentSourceMapParsedPathKeyedSegment","jsonPathToMappingPath","resolveMapping","resultPath","csm","mappings","resultMappingPath","mapping","matchedPath","pathSuffix","Object","entries","filter","_ref","startsWith","sort","_ref2","_ref3","key1","key2","substring","value","isRecord","walkMap","mappingFn","arguments","undefined","v","idx","fromEntries","_ref4","k","DRAFTS_PREFIX","getPublishedId","id","slice","createEditUrl","options","baseUrl","projectId","dataset","workspace","_workspace","tool","_tool","_id","type","endsWith","stringifiedPath","studioPath.toString","searchParams","URLSearchParams","set","routerParams","encodeURIComponent","resolveEditInfo","resultSourceMap","source","sourceDoc","documents","document","sourcePath","paths","resolveStudioBaseRoute","studioUrl","_type","_dataset","_projectId"],"mappings":";;AAYA,MAAMA,UACJ,GAAA,kGAAA;AAEK,MAAMC,YAAe,GAAA,0BAAA;AAC5B,MAAMC,YAAe,GAAA,WAAA;AAGd,SAASC,eAAeC,OAAyC,EAAA;EAC/D,OAAA,OAAOA,YAAY,QAAa,IAAA,OAAOA,YAAY,QAAY,IAAA,WAAA,CAAYC,KAAKD,OAAO,CAAA;AAChG;AAGO,SAASE,aAAaF,OAA+C,EAAA;EACtE,IAAA,OAAOA,YAAY,QAAU,EAAA;IAC/B,OAAOH,YAAa,CAAAI,IAAA,CAAKD,OAAQ,CAAAG,IAAA,CAAM,CAAA,CAAA;EACzC;EAEO,OAAA,OAAOH,OAAY,KAAA,QAAA,IAAY,MAAU,IAAAA,OAAA;AAClD;AAGO,SAASI,aAAaJ,OAA6C,EAAA;EACxE,IAAI,OAAOA,OAAY,KAAA,QAAA,IAAYF,YAAa,CAAAG,IAAA,CAAKD,OAAO,CAAG,EAAA;IACtD,OAAA,IAAA;EACT;EAEA,IAAI,CAACK,KAAM,CAAAC,OAAA,CAAQN,OAAO,CAAK,IAAAA,OAAA,CAAQO,WAAW,CAAG,EAAA;IAC5C,OAAA,KAAA;EACT;EAEM,MAAA,CAACC,IAAM,EAAAC,EAAE,CAAI,GAAAT,OAAA;EACX,OAAA,CAAA,OAAOQ,SAAS,QAAY,IAAAA,IAAA,KAAS,QAAQ,OAAOC,EAAA,KAAO,YAAYA,EAAO,KAAA,EAAA,CAAA;AACxF;AAGgB,SAAAC,GAAAA,CACdC,GACA,EAAAC,IAAA,EACAC,UAC4B,EAAA;EAC5B,MAAMC,SAAS,OAAOF,IAAA,KAAS,QAAW,GAAAG,UAAA,CAAWH,IAAI,CAAI,GAAAA,IAAA;EAC7D,IAAI,CAACP,KAAA,CAAMC,OAAQ,CAAAQ,MAAM,CAAG,EAAA;IACpB,MAAA,IAAIE,MAAM,mCAAmC,CAAA;EACrD;EAEA,IAAIC,GAA2B,GAAAN,GAAA;EAC/B,KAAA,IAASO,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAJ,MAAA,CAAOP,QAAQW,CAAK,EAAA,EAAA;IAChC,MAAAlB,OAAA,GAAUc,OAAOI,CAAC,CAAA;IACpB,IAAAnB,cAAA,CAAeC,OAAO,CAAG,EAAA;MAC3B,IAAI,CAACK,KAAA,CAAMC,OAAQ,CAAAW,GAAG,CAAG,EAAA;QAChB,OAAAJ,UAAA;MACT;MAEAI,GAAA,GAAMA,IAAIjB,OAAO,CAAA;IACnB;IAEI,IAAAE,YAAA,CAAaF,OAAO,CAAG,EAAA;MACzB,IAAI,CAACK,KAAA,CAAMC,OAAQ,CAAAW,GAAG,CAAG,EAAA;QAChB,OAAAJ,UAAA;MACT;MAEAI,GAAA,GAAMA,IAAIE,IAAK,CAACC,QAASA,IAAK,CAAAC,IAAA,KAASrB,QAAQqB,IAAI,CAAA;IACrD;IAEI,IAAA,OAAOrB,YAAY,QAAU,EAAA;MAC/BiB,GAAA,GACE,OAAOA,GAAQ,KAAA,QAAA,IAAYA,QAAQ,IAC7B,GAAAA,GAAA,CAAgCjB,OAAO,CACzC,GAAA,KAAA,CAAA;IACR;IAEI,IAAA,OAAOiB,QAAQ,WAAa,EAAA;MACvB,OAAAJ,UAAA;IACT;EACF;EAEO,OAAAI,GAAA;AACT;AAGO,SAASK,SAASV,IAAoB,EAAA;EAC3C,IAAI,CAACP,KAAA,CAAMC,OAAQ,CAAAM,IAAI,CAAG,EAAA;IAClB,MAAA,IAAII,MAAM,sBAAsB,CAAA;EACxC;EAEA,OAAOJ,IAAK,CAAAW,MAAA,CAAe,CAACC,MAAA,EAAQxB,SAASkB,CAAM,KAAA;IACjD,MAAMO,cAAc,OAAOzB,OAAA;IAC3B,IAAIyB,gBAAgB,QAAU,EAAA;MACrB,OAAA,EAAA,CAAGC,MAAM,CAAAF,MAAA,EAAA,GAAA,CAAA,CAAIE,MAAO,CAAA1B,OAAA,EAAA,GAAA,CAAA;IAC7B;IAEA,IAAIyB,gBAAgB,QAAU,EAAA;MACtB,MAAAE,SAAA,GAAYT,CAAM,KAAA,CAAA,GAAI,EAAK,GAAA,GAAA;MAC1B,OAAA,EAAA,CAAGQ,eAASA,MAAY,CAAAC,SAAA,CAAA,CAAAD,MAAA,CAAA1B,OAAA,CAAA;IACjC;IAEA,IAAIE,YAAa,CAAAF,OAAO,CAAK,IAAAA,OAAA,CAAQqB,IAAM,EAAA;MACzC,OAAO,EAAG,CAAAK,MAAA,CAAAF,MAAA,EAAM,UAAW,CAAA,CAAAE,MAAA,CAAA1B,OAAA,CAAQqB,IAAI,EAAA,IAAA,CAAA;IACzC;IAEI,IAAAhB,KAAA,CAAMC,OAAQ,CAAAN,OAAO,CAAG,EAAA;MACpB,MAAA,CAACQ,IAAM,EAAAC,EAAE,CAAI,GAAAT,OAAA;MACnB,OAAO,EAAG,CAAA0B,MAAA,CAAAF,MAAA,EAAM,GAAI,CAAA,CAAAE,MAAA,CAAAlB,IAAA,EAAI,KAAIkB,MAAE,CAAAjB,EAAA,EAAA,GAAA,CAAA;IAChC;IAEA,MAAM,IAAIO,KAAM,CAAA,4BAAA,CAA8BU,YAAKE,SAAU,CAAA5B,OAAO,GAAC,GAAI,CAAA,CAAA;KACxE,EAAE,CAAA;AACP;AAGO,SAASe,WAAWH,IAAoB,EAAA;EACzC,IAAA,OAAOA,SAAS,QAAU,EAAA;IACtB,MAAA,IAAII,MAAM,sBAAsB,CAAA;EACxC;EAEM,MAAAa,QAAA,GAAWjB,IAAK,CAAAkB,KAAA,CAAMlC,UAAU,CAAA;EACtC,IAAI,CAACiC,QAAU,EAAA;IACP,MAAA,IAAIb,MAAM,qBAAqB,CAAA;EACvC;EAEO,OAAAa,QAAA,CAASE,IAAIC,gBAAgB,CAAA;AACtC;AAEA,SAASA,iBAAiBhC,OAA8B,EAAA;EAClD,IAAAD,cAAA,CAAeC,OAAO,CAAG,EAAA;IAC3B,OAAOiC,kBAAkBjC,OAAO,CAAA;EAClC;EAEI,IAAAE,YAAA,CAAaF,OAAO,CAAG,EAAA;IACzB,OAAOkC,gBAAgBlC,OAAO,CAAA;EAChC;EAEI,IAAAI,YAAA,CAAaJ,OAAO,CAAG,EAAA;IACzB,OAAOmC,uBAAuBnC,OAAO,CAAA;EACvC;EAEO,OAAAA,OAAA;AACT;AAEA,SAASiC,kBAAkBjC,OAA8B,EAAA;EACvD,OAAOoC,MAAO,CAAApC,OAAA,CAAQqC,OAAQ,CAAA,QAAA,EAAU,EAAE,CAAC,CAAA;AAC7C;AAEA,SAASH,gBAAgBlC,OAA+B,EAAA;EAChD,MAAA6B,QAAA,GAAW7B,OAAQ,CAAA8B,KAAA,CAAMjC,YAAY,CAAA;EAC3C,OAAO;IAACwB,IAAA,EAAMQ,QAAU,CAAA,CAAC;EAAC,CAAA;AAC5B;AAEA,SAASM,uBAAuBnC,OAA6B,EAAA;EAC3D,MAAM,CAACQ,IAAM,EAAAC,EAAE,CAAI,GAAAT,OAAA,CAAQsC,MAAM,GAAG,CAAA,CAAEP,GAAI,CAACQ,OAASA,GAAQ,KAAA,EAAA,GAAKA,GAAM,GAAAH,MAAA,CAAOG,GAAG,CAAE,CAAA;EAC5E,OAAA,CAAC/B,MAAMC,EAAE,CAAA;AAClB;;;;;;;;;;;AC3JA,MAAM+B,MAAiC,GAAA;EACrC,IAAM,EAAA,KAAA;EACN,IAAM,EAAA,KAAA;EACN,IAAM,EAAA,KAAA;EACN,GAAM,EAAA,KAAA;EACN,GAAK,EAAA,KAAA;EACL,IAAM,EAAA;AACR,CAAA;AAEA,MAAMC,QAAmC,GAAA;EACvC,KAAO,EAAA,IAAA;EACP,KAAO,EAAA,IAAA;EACP,KAAO,EAAA,IAAA;EACP,KAAO,EAAA,GAAA;EACP,KAAO,EAAA,GAAA;EACP,MAAQ,EAAA;AACV,CAAA;AAKO,SAASC,SAAS9B,IAAiE,EAAA;EACxF,OAAO,GAAI,CAAAc,MAAA,CAAAd,IAAA,CACRmB,GAAI,CAAC/B,OAAY,IAAA;IACZ,IAAA,OAAOA,YAAY,QAAU,EAAA;MAC/B,MAAM2C,UAAa,GAAA3C,OAAA,CAAQqC,OAAQ,CAAA,gBAAA,EAAmBP,KAAU,IAAA;QAC9D,OAAOU,OAAOV,KAAK,CAAA;MAAA,CACpB,CAAA;MACD,OAAO,KAAKJ,MAAU,CAAAiB,UAAA,EAAA,IAAA,CAAA;IACxB;IAEI,IAAA,OAAO3C,YAAY,QAAU,EAAA;MAC/B,OAAO,IAAI0B,MAAO,CAAA1B,OAAA,EAAA,GAAA,CAAA;IACpB;IAEI,IAAAA,OAAA,CAAQqB,SAAS,EAAI,EAAA;MACvB,MAAMsB,aAAa3C,OAAQ,CAAAqB,IAAA,CAAKgB,OAAQ,CAAA,QAAA,EAAWP,KAAU,IAAA;QAC3D,OAAOU,OAAOV,KAAK,CAAA;MAAA,CACpB,CAAA;MACD,OAAO,eAAeJ,MAAU,CAAAiB,UAAA,EAAA,KAAA,CAAA;IAClC;IAEO,OAAA,GAAA,CAAIjB,eAAQkB,MAAM,EAAA,GAAA,CAAA;EAAA,CAC1B,CACA,CAAAC,IAAA,CAAK,EAAE,CAAA,CAAA;AACZ;AAKO,SAASC,cAAclC,IAAiE,EAAA;EAC7F,MAAMmC,SAAqC,EAAC;EAE5C,MAAMC,OAAU,GAAA,mDAAA;EACZ,IAAAlB,KAAA;EAEJ,OAAA,CAAQA,KAAQ,GAAAkB,OAAA,CAAQC,IAAK,CAAArC,IAAI,OAAO,IAAM,EAAA;IACxC,IAAAkB,KAAA,CAAM,CAAC,CAAA,KAAM,KAAW,CAAA,EAAA;MAC1B,MAAMoB,MAAMpB,KAAM,CAAA,CAAC,EAAEO,OAAQ,CAAA,mBAAA,EAAsBc,CAAM,IAAA;QACvD,OAAOV,SAASU,CAAC,CAAA;MAAA,CAClB,CAAA;MAEDJ,MAAA,CAAOK,KAAKF,GAAG,CAAA;MACf;IACF;IAEI,IAAApB,KAAA,CAAM,CAAC,CAAA,KAAM,KAAW,CAAA,EAAA;MAC1BiB,MAAA,CAAOK,KAAKC,QAAS,CAAAvB,KAAA,CAAM,CAAC,CAAA,EAAG,EAAE,CAAC,CAAA;MAClC;IACF;IAEI,IAAAA,KAAA,CAAM,CAAC,CAAA,KAAM,KAAW,CAAA,EAAA;MAC1B,MAAMT,OAAOS,KAAM,CAAA,CAAC,EAAEO,OAAQ,CAAA,UAAA,EAAac,CAAM,IAAA;QAC/C,OAAOV,SAASU,CAAC,CAAA;MAAA,CAClB,CAAA;MAEDJ,MAAA,CAAOK,IAAK,CAAA;QACV/B,IAAA;QACAuB,MAAQ,EAAA,CAAA;MAAA,CACT,CAAA;MACD;IACF;EACF;EAEO,OAAAG,MAAA;AACT;AAKO,SAASO,qBAAqB1C,IAAwC,EAAA;EACpE,OAAAA,IAAA,CAAKmB,GAAI,CAAC/B,OAAY,IAAA;IACvB,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAAA,OAAA,CAAQqB,SAAS,EAAI,EAAA;MAChB,OAAA;QAACA,IAAM,EAAArB,OAAA,CAAQqB;OAAI;IAC5B;IAEI,IAAArB,OAAA,CAAQ4C,WAAW,CAAI,CAAA,EAAA;MACzB,OAAO5C,OAAQ,CAAA4C,MAAA;IACjB;IAEA,MAAM,IAAI5B,KAAM,CAAA,kBAAA,CAAmBU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;EAAA,CAC7D,CAAA;AACH;AAKO,SAASwD,qBAAqB5C,IAAiD,EAAA;EACpF,MAAM6C,aAAa,OAAO7C,IAAA,KAAS,WAAW8C,UAAW,CAAW9C,IAAI,CAAI,GAAAA,IAAA;EAErE,OAAA6C,UAAA,CAAW1B,GAAI,CAAC/B,OAAY,IAAA;IAC7B,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAAK,KAAA,CAAMC,OAAQ,CAAAN,OAAO,CAAG,EAAA;MAC1B,MAAM,IAAIgB,KAAM,CAAA,uCAAA,CAAwCU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;IACnF;IAEI,IAAA2D,wCAAA,CAAyC3D,OAAO,CAAG,EAAA;MAC9C,OAAAA,OAAA;IACT;IAEA,IAAIA,QAAQqB,IAAM,EAAA;MAChB,OAAO;QAACA,IAAA,EAAMrB,OAAQ,CAAAqB,IAAA;QAAMuB,QAAQ,CAAE;OAAA;IACxC;IAEA,MAAM,IAAI5B,KAAM,CAAA,kBAAA,CAAmBU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;EAAA,CAC7D,CAAA;AACH;AAEA,SAAS2D,yCACP3D,OACmD,EAAA;EACnD,OAAO,OAAOA,OAAA,KAAY,QAAY,IAAA,MAAA,IAAUA,WAAW,QAAY,IAAAA,OAAA;AACzE;AAKO,SAAS4D,sBAAsBhD,IAAuD,EAAA;EACpF,OAAAA,IAAA,CAAKmB,GAAI,CAAC/B,OAAY,IAAA;IACvB,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAAA,OAAA,CAAQ4C,WAAW,CAAI,CAAA,EAAA;MACzB,OAAO5C,OAAQ,CAAA4C,MAAA;IACjB;IAEA,MAAM,IAAI5B,KAAM,CAAA,kBAAA,CAAmBU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;EAAA,CAC7D,CAAA;AACH;AC1KgB,SAAA6D,cAAAA,CACdC,YACAC,GAOY,EAAA;EACR,IAAA,EAACA,2BAAKC,QAAU,CAAA,EAAA;IACX,OAAA,KAAA,CAAA;EACT;EACA,MAAMC,iBAAoB,GAAAvB,QAAA,CAASkB,qBAAsB,CAAAE,UAAU,CAAC,CAAA;EAEpE,IAAIC,GAAI,CAAAC,QAAA,CAASC,iBAAiB,CAAA,KAAM,KAAW,CAAA,EAAA;IAC1C,OAAA;MACLC,OAAA,EAASH,GAAI,CAAAC,QAAA,CAASC,iBAAiB,CAAA;MACvCE,WAAa,EAAAF,iBAAA;MACbG,UAAY,EAAA;IAAA,CACd;EACF;EAEM,MAAAJ,QAAA,GAAWK,MAAO,CAAAC,OAAA,CAAQP,GAAI,CAAAC,QAAQ,CACzC,CAAAO,MAAA,CAAOC,IAAA;IAAA,IAAC,CAACtB,GAAG,CAAA,GAAAsB,IAAA;IAAA,OAAMP,iBAAkB,CAAAQ,UAAA,CAAWvB,GAAG,CAAC;EAAA,EACnD,CAAAwB,IAAA,CAAK,CAAAC,KAAA,EAAAC,KAAA;IAAA,IAAC,CAACC,IAAI,CAAA,GAAAF,KAAA;IAAA,IAAG,CAACG,IAAI,CAAM,GAAAF,KAAA;IAAA,OAAAE,IAAA,CAAKvE,MAAS,GAAAsE,IAAA,CAAKtE,MAAM;EAAA,EAAA;EAEjD,IAAAyD,QAAA,CAASzD,UAAU,CAAG,EAAA;IACjB,OAAA,KAAA,CAAA;EACT;EAEA,MAAM,CAAC4D,WAAA,EAAaD,OAAO,CAAA,GAAIF,SAAS,CAAC,CAAA;EACzC,MAAMI,UAAa,GAAAH,iBAAA,CAAkBc,SAAU,CAAAZ,WAAA,CAAY5D,MAAM,CAAA;EAC1D,OAAA;IAAC2D,OAAS;IAAAC,WAAA;IAAaC;GAAU;AAC1C;ACvCO,SAAS9D,QAAQ0E,KAAyC,EAAA;EAC/D,OAAOA,KAAU,KAAA,IAAA,IAAQ3E,KAAM,CAAAC,OAAA,CAAQ0E,KAAK,CAAA;AAC9C;ACFO,SAASC,SAASD,KAAkD,EAAA;EAClE,OAAA,OAAOA,KAAU,KAAA,QAAA,IAAYA,KAAU,KAAA,IAAA;AAChD;ACKO,SAASE,OACdA,CAAAF,KAAA,EACAG,SACA,EACS;EAAA,IADTvE,IAAA,GAAAwE,SAAA,CAAA7E,MAAA,QAAA6E,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAmC,EAC1B;EACL,IAAA9E,OAAA,CAAQ0E,KAAK,CAAG,EAAA;IAClB,OAAOA,KAAM,CAAAjD,GAAA,CAAI,CAACuD,CAAA,EAAGC,GAAQ,KAAA;MACvB,IAAAN,QAAA,CAASK,CAAC,CAAG,EAAA;QACT,MAAAjE,IAAA,GAAOiE,EAAE,MAAM,CAAA;QACjB,IAAA,OAAOjE,SAAS,QAAU,EAAA;UACrB,OAAA6D,OAAA,CAAQI,CAAG,EAAAH,SAAA,EAAWvE,IAAK,CAAAc,MAAA,CAAO;YAACL,IAAM;YAAAuB,MAAA,EAAQ2C;UAAI,CAAA,CAAC,CAAA;QAC/D;MACF;MAEA,OAAOL,QAAQI,CAAG,EAAAH,SAAA,EAAWvE,IAAK,CAAAc,MAAA,CAAO6D,GAAG,CAAC,CAAA;IAAA,CAC9C,CAAA;EACH;EAEI,IAAAN,QAAA,CAASD,KAAK,CAAG,EAAA;IACnB,OAAOX,MAAO,CAAAmB,WAAA,CACZnB,MAAA,CAAOC,QAAQU,KAAK,CAAA,CAAEjD,IAAI0D,KAAA;MAAA,IAAC,CAACC,GAAGJ,CAAC,CAAA,GAAAG,KAAA;MAAA,OAAM,CAACC,CAAG,EAAAR,OAAA,CAAQI,GAAGH,SAAW,EAAAvE,IAAA,CAAKc,OAAOgE,CAAC,CAAC,CAAC,CAAC;IAAA,EAAA,CAClF;EACF;EAEO,OAAAP,SAAA,CAAUH,OAAOpE,IAAI,CAAA;AAC9B;ACjCA,MAAM+E,aAAgB,GAAA,SAAA;AAGf,SAASC,eAAeC,EAAoB,EAAA;EAC7C,IAAAA,EAAA,CAAGpB,UAAW,CAAAkB,aAAa,CAAG,EAAA;IACzB,OAAAE,EAAA,CAAGC,KAAM,CAAAH,aAAA,CAAcpF,MAAM,CAAA;EACtC;EAEO,OAAAsF,EAAA;AACT;ACHO,SAASE,cAAcC,OAAmE,EAAA;EACzF,MAAA;IACJC,OAAA;IACAC,SAAA;IACAC,OAAA;IACAC,WAAWC,UAAa,GAAA,SAAA;IACxBC,MAAMC,KAAQ,GAAA,SAAA;IACdV,EAAI,EAAAW,GAAA;IACJC,IAAA;IACA7F;EACE,CAAA,GAAAoF,OAAA;EAEJ,IAAI,CAACC,OAAS,EAAA;IACN,MAAA,IAAIjF,MAAM,qBAAqB,CAAA;EACvC;EACA,IAAI,CAACkF,SAAW,EAAA;IACR,MAAA,IAAIlF,MAAM,uBAAuB,CAAA;EACzC;EACA,IAAI,CAACmF,OAAS,EAAA;IACN,MAAA,IAAInF,MAAM,qBAAqB,CAAA;EACvC;EACA,IAAI,CAACJ,IAAM,EAAA;IACH,MAAA,IAAII,MAAM,kBAAkB,CAAA;EACpC;EACA,IAAI,CAACwF,GAAK,EAAA;IACF,MAAA,IAAIxF,MAAM,gBAAgB,CAAA;EAClC;EACA,IAAIiF,OAAY,KAAA,GAAA,IAAOA,OAAQ,CAAAS,QAAA,CAAS,GAAG,CAAG,EAAA;IACtC,MAAA,IAAI1F,MAAM,mCAAmC,CAAA;EACrD;EAEM,MAAAoF,SAAA,GAAYC,UAAe,KAAA,SAAA,GAAY,KAAY,CAAA,GAAAA,UAAA;EACnD,MAAAC,IAAA,GAAOC,KAAU,KAAA,SAAA,GAAY,KAAY,CAAA,GAAAA,KAAA;EAGzC,MAAAV,EAAA,GAAKD,eAAeY,GAAG,CAAA;EAC7B,MAAMG,eAAkB,GAAAC,QAAoB,CAAAtD,oBAAA,CAAqB1C,IAAI,CAAC,CAAA;EAIhE,MAAAiG,YAAA,GAAe,IAAIC,eAAgB,CAAA;IACvCb,OAAA;IACAC,SAAA;IACAC,OAAA;IACAN,EAAA;IACAY,IAAA;IACA7F,IAAM,EAAA+F;EAAA,CACP,CAAA;EACD,IAAIP,SAAW,EAAA;IACAS,YAAA,CAAAE,GAAA,CAAI,aAAaX,SAAS,CAAA;EACzC;EACA,IAAIE,IAAM,EAAA;IACKO,YAAA,CAAAE,GAAA,CAAI,QAAQT,IAAI,CAAA;EAC/B;EAEA,MAAMzE,QAAW,GAAA,CAACoE,OAAY,KAAA,GAAA,GAAM,KAAKA,OAAO,CAAA;EAChD,IAAIG,SAAW,EAAA;IACbvE,QAAA,CAASuB,KAAKgD,SAAS,CAAA;EACzB;EACA,IAAIE,IAAM,EAAA;IACRzE,QAAA,CAASuB,KAAKkD,IAAI,CAAA;EACpB;EACM,MAAAU,YAAA,GAAe,CAAC,KAAM,CAAAtF,MAAA,CAAAmE,EAAA,CAAA,EAAM,QAAQnE,MAAQ,CAAA+E,IAAA,CAAA,EAAA,OAAA,CAAQ/E,MAAmB,CAAAuF,kBAAA,CAAAN,eAAe,CAAG,CAAA,CAAA;EACtF9E,QAAA,CAAAuB,IAAA,CAAK,UAAU,MAAQ,EAAA,EAAA,CAAG1B,oBAAamB,IAAK,CAAA,GAAG,CAAC,EAAA,GAAA,CAAA,CAAInB,MAAc,CAAAmF,YAAA,CAAA,CAAA;EACpE,OAAAhF,QAAA,CAASgB,KAAK,GAAG,CAAA;AAC1B;AC5DO,SAASqE,gBAAgBlB,OAAmE,EAAA;EACjG,MAAM;IAACmB,eAAA,EAAiBpD,GAAK;IAAAD;EAAA,CAAc,GAAAkC,OAAA;EACrC,MAAA;IAAC9B;IAASE;EAAU,CAAA,GAAIP,eAAeC,UAAY,EAAAC,GAAG,KAAK,EAAC;EAElE,IAAI,CAACG,OAAS,EAAA;IAEL,OAAA,KAAA,CAAA;EACT;EAEI,IAAAA,OAAA,CAAQkD,MAAO,CAAAX,IAAA,KAAS,SAAW,EAAA;IAC9B,OAAA,KAAA,CAAA;EACT;EAEI,IAAAvC,OAAA,CAAQkD,MAAO,CAAAX,IAAA,KAAS,SAAW,EAAA;IAC9B,OAAA,KAAA,CAAA;EACT;EAEA,MAAMY,SAAY,GAAAtD,GAAA,CAAIuD,SAAU,CAAApD,OAAA,CAAQkD,OAAOG,QAAQ,CAAA;EACvD,MAAMC,UAAa,GAAAzD,GAAA,CAAI0D,KAAM,CAAAvD,OAAA,CAAQkD,OAAOxG,IAAI,CAAA;EAEhD,IAAIyG,aAAaG,UAAY,EAAA;IAC3B,MAAM;MAACvB,OAAA;MAASG,SAAW;MAAAE;IAAQ,CAAA,GAAAoB,sBAAA,CACjC,OAAO1B,QAAQ2B,SAAc,KAAA,UAAA,GAAa3B,QAAQ2B,SAAU,CAAAN,SAAS,IAAIrB,OAAQ,CAAA2B,SAAA,CACnF;IACA,IAAI,CAAC1B,OAAA,EAAgB,OAAA,KAAA,CAAA;IACf,MAAA;MAACO;MAAKoB,KAAO;MAAAC,QAAA,GAAW7B,QAAQE,SAAW;MAAA4B,UAAA,GAAa9B,OAAQ,CAAAG;IAAW,CAAA,GAAAkB,SAAA;IAC1E,OAAA;MACLpB,OAAA;MACAC,SAAW,EAAA4B,UAAA;MACX3B,OAAS,EAAA0B,QAAA;MACTzB,SAAA;MACAE,IAAA;MACAT,EAAI,EAAAW,GAAA;MACJC,IAAM,EAAAmB,KAAA;MACNhH,IAAA,EAAMkC,aAAc,CAAA0E,UAAA,GAAapD,UAAU;IAAA,CAC7C;EACF;EAEO,OAAA,KAAA,CAAA;AACT;AAEA,SAASsD,uBAAuBC,SAAuC,EAAA;EACrE,IAAI1B,OAAyB,GAAA,OAAO0B,SAAc,KAAA,QAAA,GAAWA,YAAYA,SAAU,CAAA1B,OAAA;EACnF,IAAIA,YAAY,GAAK,EAAA;IACTA,OAAA,GAAAA,OAAA,CAAQ5D,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAA;EACrC;EACI,IAAA,OAAOsF,cAAc,QAAU,EAAA;IACjC,OAAO;MAAC1B;IAAO,CAAA;EACjB;EACO,OAAA;IAAC,GAAG0B,SAAA;IAAW1B;GAAO;AAC/B;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"resolveEditInfo-2keGcJpx.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/csm/getPublishedId.ts","../../src/csm/createEditUrl.ts","../../src/csm/resolveEditInfo.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","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 projectId,\n dataset,\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 (!projectId) {\n throw new Error('projectId is required')\n }\n if (!dataset) {\n throw new Error('dataset 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 = studioPath.toString(jsonPathToStudioPath(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 projectId,\n dataset,\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 if (tool) {\n segments.push(tool)\n }\n const routerParams = [`id=${id}`, `type=${type}`, `path=${encodeURIComponent(stringifiedPath)}`]\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, _dataset = options.projectId, _projectId = options.dataset} = sourceDoc\n return {\n baseUrl,\n projectId: _projectId,\n dataset: _dataset,\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"],"names":["rePropName","reKeySegment","reIndexTuple","isIndexSegment","segment","test","isKeySegment","trim","isIndexTuple","Array","isArray","length","from","to","get","obj","path","defaultVal","select","fromString","Error","acc","i","find","item","_key","toString","reduce","target","segmentType","concat","separator","stringify","segments","match","map","parsePathSegment","parseIndexSegment","parseKeySegment","parseIndexTupleSegment","Number","replace","split","seg","ESCAPE","UNESCAPE","jsonPath","escapedKey","_index","join","parseJsonPath","parsed","parseRe","exec","key","m","push","parseInt","jsonPathToStudioPath","JSON","studioPathToJsonPath","parsedPath","studioPath.fromString","isContentSourceMapParsedPathKeyedSegment","jsonPathToMappingPath","resolveMapping","resultPath","csm","mappings","resultMappingPath","mapping","matchedPath","pathSuffix","Object","entries","filter","_ref","startsWith","sort","_ref2","_ref3","key1","key2","substring","value","isRecord","walkMap","mappingFn","arguments","undefined","v","idx","fromEntries","_ref4","k","DRAFTS_PREFIX","getPublishedId","id","slice","createEditUrl","options","baseUrl","projectId","dataset","workspace","_workspace","tool","_tool","_id","type","endsWith","stringifiedPath","studioPath.toString","searchParams","URLSearchParams","set","routerParams","encodeURIComponent","resolveEditInfo","resultSourceMap","source","sourceDoc","documents","document","sourcePath","paths","resolveStudioBaseRoute","studioUrl","_type","_dataset","_projectId"],"mappings":";;AAYA,MAAMA,UACJ,GAAA,kGAAA;AAEK,MAAMC,YAAe,GAAA,0BAAA;AAC5B,MAAMC,YAAe,GAAA,WAAA;AAGd,SAASC,eAAeC,OAAyC,EAAA;EAC/D,OAAA,OAAOA,YAAY,QAAa,IAAA,OAAOA,YAAY,QAAY,IAAA,WAAA,CAAYC,KAAKD,OAAO,CAAA;AAChG;AAGO,SAASE,aAAaF,OAA+C,EAAA;EACtE,IAAA,OAAOA,YAAY,QAAU,EAAA;IAC/B,OAAOH,YAAa,CAAAI,IAAA,CAAKD,OAAQ,CAAAG,IAAA,CAAM,CAAA,CAAA;EACzC;EAEO,OAAA,OAAOH,OAAY,KAAA,QAAA,IAAY,MAAU,IAAAA,OAAA;AAClD;AAGO,SAASI,aAAaJ,OAA6C,EAAA;EACxE,IAAI,OAAOA,OAAY,KAAA,QAAA,IAAYF,YAAa,CAAAG,IAAA,CAAKD,OAAO,CAAG,EAAA;IACtD,OAAA,IAAA;EACT;EAEA,IAAI,CAACK,KAAM,CAAAC,OAAA,CAAQN,OAAO,CAAK,IAAAA,OAAA,CAAQO,WAAW,CAAG,EAAA;IAC5C,OAAA,KAAA;EACT;EAEM,MAAA,CAACC,IAAM,EAAAC,EAAE,CAAI,GAAAT,OAAA;EACX,OAAA,CAAA,OAAOQ,SAAS,QAAY,IAAAA,IAAA,KAAS,QAAQ,OAAOC,EAAA,KAAO,YAAYA,EAAO,KAAA,EAAA,CAAA;AACxF;AAGgB,SAAAC,GAAAA,CACdC,GACA,EAAAC,IAAA,EACAC,UAC4B,EAAA;EAC5B,MAAMC,SAAS,OAAOF,IAAA,KAAS,QAAW,GAAAG,UAAA,CAAWH,IAAI,CAAI,GAAAA,IAAA;EAC7D,IAAI,CAACP,KAAA,CAAMC,OAAQ,CAAAQ,MAAM,CAAG,EAAA;IACpB,MAAA,IAAIE,MAAM,mCAAmC,CAAA;EACrD;EAEA,IAAIC,GAA2B,GAAAN,GAAA;EAC/B,KAAA,IAASO,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAJ,MAAA,CAAOP,QAAQW,CAAK,EAAA,EAAA;IAChC,MAAAlB,OAAA,GAAUc,OAAOI,CAAC,CAAA;IACpB,IAAAnB,cAAA,CAAeC,OAAO,CAAG,EAAA;MAC3B,IAAI,CAACK,KAAA,CAAMC,OAAQ,CAAAW,GAAG,CAAG,EAAA;QAChB,OAAAJ,UAAA;MACT;MAEAI,GAAA,GAAMA,IAAIjB,OAAO,CAAA;IACnB;IAEI,IAAAE,YAAA,CAAaF,OAAO,CAAG,EAAA;MACzB,IAAI,CAACK,KAAA,CAAMC,OAAQ,CAAAW,GAAG,CAAG,EAAA;QAChB,OAAAJ,UAAA;MACT;MAEAI,GAAA,GAAMA,IAAIE,IAAK,CAACC,QAASA,IAAK,CAAAC,IAAA,KAASrB,QAAQqB,IAAI,CAAA;IACrD;IAEI,IAAA,OAAOrB,YAAY,QAAU,EAAA;MAC/BiB,GAAA,GACE,OAAOA,GAAQ,KAAA,QAAA,IAAYA,QAAQ,IAC7B,GAAAA,GAAA,CAAgCjB,OAAO,CACzC,GAAA,KAAA,CAAA;IACR;IAEI,IAAA,OAAOiB,QAAQ,WAAa,EAAA;MACvB,OAAAJ,UAAA;IACT;EACF;EAEO,OAAAI,GAAA;AACT;AAGO,SAASK,SAASV,IAAoB,EAAA;EAC3C,IAAI,CAACP,KAAA,CAAMC,OAAQ,CAAAM,IAAI,CAAG,EAAA;IAClB,MAAA,IAAII,MAAM,sBAAsB,CAAA;EACxC;EAEA,OAAOJ,IAAK,CAAAW,MAAA,CAAe,CAACC,MAAA,EAAQxB,SAASkB,CAAM,KAAA;IACjD,MAAMO,cAAc,OAAOzB,OAAA;IAC3B,IAAIyB,gBAAgB,QAAU,EAAA;MACrB,OAAA,EAAA,CAAGC,MAAM,CAAAF,MAAA,EAAA,GAAA,CAAA,CAAIE,MAAO,CAAA1B,OAAA,EAAA,GAAA,CAAA;IAC7B;IAEA,IAAIyB,gBAAgB,QAAU,EAAA;MACtB,MAAAE,SAAA,GAAYT,CAAM,KAAA,CAAA,GAAI,EAAK,GAAA,GAAA;MAC1B,OAAA,EAAA,CAAGQ,eAASA,MAAY,CAAAC,SAAA,CAAA,CAAAD,MAAA,CAAA1B,OAAA,CAAA;IACjC;IAEA,IAAIE,YAAa,CAAAF,OAAO,CAAK,IAAAA,OAAA,CAAQqB,IAAM,EAAA;MACzC,OAAO,EAAG,CAAAK,MAAA,CAAAF,MAAA,EAAM,UAAW,CAAA,CAAAE,MAAA,CAAA1B,OAAA,CAAQqB,IAAI,EAAA,IAAA,CAAA;IACzC;IAEI,IAAAhB,KAAA,CAAMC,OAAQ,CAAAN,OAAO,CAAG,EAAA;MACpB,MAAA,CAACQ,IAAM,EAAAC,EAAE,CAAI,GAAAT,OAAA;MACnB,OAAO,EAAG,CAAA0B,MAAA,CAAAF,MAAA,EAAM,GAAI,CAAA,CAAAE,MAAA,CAAAlB,IAAA,EAAI,KAAIkB,MAAE,CAAAjB,EAAA,EAAA,GAAA,CAAA;IAChC;IAEA,MAAM,IAAIO,KAAM,CAAA,4BAAA,CAA8BU,YAAKE,SAAU,CAAA5B,OAAO,GAAC,GAAI,CAAA,CAAA;KACxE,EAAE,CAAA;AACP;AAGO,SAASe,WAAWH,IAAoB,EAAA;EACzC,IAAA,OAAOA,SAAS,QAAU,EAAA;IACtB,MAAA,IAAII,MAAM,sBAAsB,CAAA;EACxC;EAEM,MAAAa,QAAA,GAAWjB,IAAK,CAAAkB,KAAA,CAAMlC,UAAU,CAAA;EACtC,IAAI,CAACiC,QAAU,EAAA;IACP,MAAA,IAAIb,MAAM,qBAAqB,CAAA;EACvC;EAEO,OAAAa,QAAA,CAASE,IAAIC,gBAAgB,CAAA;AACtC;AAEA,SAASA,iBAAiBhC,OAA8B,EAAA;EAClD,IAAAD,cAAA,CAAeC,OAAO,CAAG,EAAA;IAC3B,OAAOiC,kBAAkBjC,OAAO,CAAA;EAClC;EAEI,IAAAE,YAAA,CAAaF,OAAO,CAAG,EAAA;IACzB,OAAOkC,gBAAgBlC,OAAO,CAAA;EAChC;EAEI,IAAAI,YAAA,CAAaJ,OAAO,CAAG,EAAA;IACzB,OAAOmC,uBAAuBnC,OAAO,CAAA;EACvC;EAEO,OAAAA,OAAA;AACT;AAEA,SAASiC,kBAAkBjC,OAA8B,EAAA;EACvD,OAAOoC,MAAO,CAAApC,OAAA,CAAQqC,OAAQ,CAAA,QAAA,EAAU,EAAE,CAAC,CAAA;AAC7C;AAEA,SAASH,gBAAgBlC,OAA+B,EAAA;EAChD,MAAA6B,QAAA,GAAW7B,OAAQ,CAAA8B,KAAA,CAAMjC,YAAY,CAAA;EAC3C,OAAO;IAACwB,IAAA,EAAMQ,QAAU,CAAA,CAAC;EAAC,CAAA;AAC5B;AAEA,SAASM,uBAAuBnC,OAA6B,EAAA;EAC3D,MAAM,CAACQ,IAAM,EAAAC,EAAE,CAAI,GAAAT,OAAA,CAAQsC,MAAM,GAAG,CAAA,CAAEP,GAAI,CAACQ,OAASA,GAAQ,KAAA,EAAA,GAAKA,GAAM,GAAAH,MAAA,CAAOG,GAAG,CAAE,CAAA;EAC5E,OAAA,CAAC/B,MAAMC,EAAE,CAAA;AAClB;;;;;;;;;;;AC3JA,MAAM+B,MAAiC,GAAA;EACrC,IAAM,EAAA,KAAA;EACN,IAAM,EAAA,KAAA;EACN,IAAM,EAAA,KAAA;EACN,GAAM,EAAA,KAAA;EACN,GAAK,EAAA,KAAA;EACL,IAAM,EAAA;AACR,CAAA;AAEA,MAAMC,QAAmC,GAAA;EACvC,KAAO,EAAA,IAAA;EACP,KAAO,EAAA,IAAA;EACP,KAAO,EAAA,IAAA;EACP,KAAO,EAAA,GAAA;EACP,KAAO,EAAA,GAAA;EACP,MAAQ,EAAA;AACV,CAAA;AAKO,SAASC,SAAS9B,IAAiE,EAAA;EACxF,OAAO,GAAI,CAAAc,MAAA,CAAAd,IAAA,CACRmB,GAAI,CAAC/B,OAAY,IAAA;IACZ,IAAA,OAAOA,YAAY,QAAU,EAAA;MAC/B,MAAM2C,UAAa,GAAA3C,OAAA,CAAQqC,OAAQ,CAAA,gBAAA,EAAmBP,KAAU,IAAA;QAC9D,OAAOU,OAAOV,KAAK,CAAA;MAAA,CACpB,CAAA;MACD,OAAO,KAAKJ,MAAU,CAAAiB,UAAA,EAAA,IAAA,CAAA;IACxB;IAEI,IAAA,OAAO3C,YAAY,QAAU,EAAA;MAC/B,OAAO,IAAI0B,MAAO,CAAA1B,OAAA,EAAA,GAAA,CAAA;IACpB;IAEI,IAAAA,OAAA,CAAQqB,SAAS,EAAI,EAAA;MACvB,MAAMsB,aAAa3C,OAAQ,CAAAqB,IAAA,CAAKgB,OAAQ,CAAA,QAAA,EAAWP,KAAU,IAAA;QAC3D,OAAOU,OAAOV,KAAK,CAAA;MAAA,CACpB,CAAA;MACD,OAAO,eAAeJ,MAAU,CAAAiB,UAAA,EAAA,KAAA,CAAA;IAClC;IAEO,OAAA,GAAA,CAAIjB,eAAQkB,MAAM,EAAA,GAAA,CAAA;EAAA,CAC1B,CACA,CAAAC,IAAA,CAAK,EAAE,CAAA,CAAA;AACZ;AAKO,SAASC,cAAclC,IAAiE,EAAA;EAC7F,MAAMmC,SAAqC,EAAC;EAE5C,MAAMC,OAAU,GAAA,mDAAA;EACZ,IAAAlB,KAAA;EAEJ,OAAA,CAAQA,KAAQ,GAAAkB,OAAA,CAAQC,IAAK,CAAArC,IAAI,OAAO,IAAM,EAAA;IACxC,IAAAkB,KAAA,CAAM,CAAC,CAAA,KAAM,KAAW,CAAA,EAAA;MAC1B,MAAMoB,MAAMpB,KAAM,CAAA,CAAC,EAAEO,OAAQ,CAAA,mBAAA,EAAsBc,CAAM,IAAA;QACvD,OAAOV,SAASU,CAAC,CAAA;MAAA,CAClB,CAAA;MAEDJ,MAAA,CAAOK,KAAKF,GAAG,CAAA;MACf;IACF;IAEI,IAAApB,KAAA,CAAM,CAAC,CAAA,KAAM,KAAW,CAAA,EAAA;MAC1BiB,MAAA,CAAOK,KAAKC,QAAS,CAAAvB,KAAA,CAAM,CAAC,CAAA,EAAG,EAAE,CAAC,CAAA;MAClC;IACF;IAEI,IAAAA,KAAA,CAAM,CAAC,CAAA,KAAM,KAAW,CAAA,EAAA;MAC1B,MAAMT,OAAOS,KAAM,CAAA,CAAC,EAAEO,OAAQ,CAAA,UAAA,EAAac,CAAM,IAAA;QAC/C,OAAOV,SAASU,CAAC,CAAA;MAAA,CAClB,CAAA;MAEDJ,MAAA,CAAOK,IAAK,CAAA;QACV/B,IAAA;QACAuB,MAAQ,EAAA,CAAA;MAAA,CACT,CAAA;MACD;IACF;EACF;EAEO,OAAAG,MAAA;AACT;AAKO,SAASO,qBAAqB1C,IAAwC,EAAA;EACpE,OAAAA,IAAA,CAAKmB,GAAI,CAAC/B,OAAY,IAAA;IACvB,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAAA,OAAA,CAAQqB,SAAS,EAAI,EAAA;MAChB,OAAA;QAACA,IAAM,EAAArB,OAAA,CAAQqB;OAAI;IAC5B;IAEI,IAAArB,OAAA,CAAQ4C,WAAW,CAAI,CAAA,EAAA;MACzB,OAAO5C,OAAQ,CAAA4C,MAAA;IACjB;IAEA,MAAM,IAAI5B,KAAM,CAAA,kBAAA,CAAmBU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;EAAA,CAC7D,CAAA;AACH;AAKO,SAASwD,qBAAqB5C,IAAiD,EAAA;EACpF,MAAM6C,aAAa,OAAO7C,IAAA,KAAS,WAAW8C,UAAW,CAAW9C,IAAI,CAAI,GAAAA,IAAA;EAErE,OAAA6C,UAAA,CAAW1B,GAAI,CAAC/B,OAAY,IAAA;IAC7B,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAAK,KAAA,CAAMC,OAAQ,CAAAN,OAAO,CAAG,EAAA;MAC1B,MAAM,IAAIgB,KAAM,CAAA,uCAAA,CAAwCU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;IACnF;IAEI,IAAA2D,wCAAA,CAAyC3D,OAAO,CAAG,EAAA;MAC9C,OAAAA,OAAA;IACT;IAEA,IAAIA,QAAQqB,IAAM,EAAA;MAChB,OAAO;QAACA,IAAA,EAAMrB,OAAQ,CAAAqB,IAAA;QAAMuB,QAAQ,CAAE;OAAA;IACxC;IAEA,MAAM,IAAI5B,KAAM,CAAA,kBAAA,CAAmBU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;EAAA,CAC7D,CAAA;AACH;AAEA,SAAS2D,yCACP3D,OACmD,EAAA;EACnD,OAAO,OAAOA,OAAA,KAAY,QAAY,IAAA,MAAA,IAAUA,WAAW,QAAY,IAAAA,OAAA;AACzE;AAKO,SAAS4D,sBAAsBhD,IAAuD,EAAA;EACpF,OAAAA,IAAA,CAAKmB,GAAI,CAAC/B,OAAY,IAAA;IACvB,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAA,OAAOA,YAAY,QAAU,EAAA;MACxB,OAAAA,OAAA;IACT;IAEI,IAAAA,OAAA,CAAQ4C,WAAW,CAAI,CAAA,EAAA;MACzB,OAAO5C,OAAQ,CAAA4C,MAAA;IACjB;IAEA,MAAM,IAAI5B,KAAM,CAAA,kBAAA,CAAmBU,MAAK,CAAA6B,IAAA,CAAA3B,SAAA,CAAU5B,OAAO,CAAG,CAAA,CAAA;EAAA,CAC7D,CAAA;AACH;AC1KgB,SAAA6D,cAAAA,CACdC,YACAC,GAOY,EAAA;EACR,IAAA,EAACA,2BAAKC,QAAU,CAAA,EAAA;IACX,OAAA,KAAA,CAAA;EACT;EACA,MAAMC,iBAAoB,GAAAvB,QAAA,CAASkB,qBAAsB,CAAAE,UAAU,CAAC,CAAA;EAEpE,IAAIC,GAAI,CAAAC,QAAA,CAASC,iBAAiB,CAAA,KAAM,KAAW,CAAA,EAAA;IAC1C,OAAA;MACLC,OAAA,EAASH,GAAI,CAAAC,QAAA,CAASC,iBAAiB,CAAA;MACvCE,WAAa,EAAAF,iBAAA;MACbG,UAAY,EAAA;IAAA,CACd;EACF;EAEM,MAAAJ,QAAA,GAAWK,MAAO,CAAAC,OAAA,CAAQP,GAAI,CAAAC,QAAQ,CACzC,CAAAO,MAAA,CAAOC,IAAA;IAAA,IAAC,CAACtB,GAAG,CAAA,GAAAsB,IAAA;IAAA,OAAMP,iBAAkB,CAAAQ,UAAA,CAAWvB,GAAG,CAAC;EAAA,EACnD,CAAAwB,IAAA,CAAK,CAAAC,KAAA,EAAAC,KAAA;IAAA,IAAC,CAACC,IAAI,CAAA,GAAAF,KAAA;IAAA,IAAG,CAACG,IAAI,CAAM,GAAAF,KAAA;IAAA,OAAAE,IAAA,CAAKvE,MAAS,GAAAsE,IAAA,CAAKtE,MAAM;EAAA,EAAA;EAEjD,IAAAyD,QAAA,CAASzD,UAAU,CAAG,EAAA;IACjB,OAAA,KAAA,CAAA;EACT;EAEA,MAAM,CAAC4D,WAAA,EAAaD,OAAO,CAAA,GAAIF,SAAS,CAAC,CAAA;EACzC,MAAMI,UAAa,GAAAH,iBAAA,CAAkBc,SAAU,CAAAZ,WAAA,CAAY5D,MAAM,CAAA;EAC1D,OAAA;IAAC2D,OAAS;IAAAC,WAAA;IAAaC;GAAU;AAC1C;ACvCO,SAAS9D,QAAQ0E,KAAyC,EAAA;EAC/D,OAAOA,KAAU,KAAA,IAAA,IAAQ3E,KAAM,CAAAC,OAAA,CAAQ0E,KAAK,CAAA;AAC9C;ACFO,SAASC,SAASD,KAAkD,EAAA;EAClE,OAAA,OAAOA,KAAU,KAAA,QAAA,IAAYA,KAAU,KAAA,IAAA;AAChD;ACKO,SAASE,OACdA,CAAAF,KAAA,EACAG,SACA,EACS;EAAA,IADTvE,IAAA,GAAAwE,SAAA,CAAA7E,MAAA,QAAA6E,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAmC,EAC1B;EACL,IAAA9E,OAAA,CAAQ0E,KAAK,CAAG,EAAA;IAClB,OAAOA,KAAM,CAAAjD,GAAA,CAAI,CAACuD,CAAA,EAAGC,GAAQ,KAAA;MACvB,IAAAN,QAAA,CAASK,CAAC,CAAG,EAAA;QACT,MAAAjE,IAAA,GAAOiE,EAAE,MAAM,CAAA;QACjB,IAAA,OAAOjE,SAAS,QAAU,EAAA;UACrB,OAAA6D,OAAA,CAAQI,CAAG,EAAAH,SAAA,EAAWvE,IAAK,CAAAc,MAAA,CAAO;YAACL,IAAM;YAAAuB,MAAA,EAAQ2C;UAAI,CAAA,CAAC,CAAA;QAC/D;MACF;MAEA,OAAOL,QAAQI,CAAG,EAAAH,SAAA,EAAWvE,IAAK,CAAAc,MAAA,CAAO6D,GAAG,CAAC,CAAA;IAAA,CAC9C,CAAA;EACH;EAEI,IAAAN,QAAA,CAASD,KAAK,CAAG,EAAA;IACnB,OAAOX,MAAO,CAAAmB,WAAA,CACZnB,MAAA,CAAOC,QAAQU,KAAK,CAAA,CAAEjD,IAAI0D,KAAA;MAAA,IAAC,CAACC,GAAGJ,CAAC,CAAA,GAAAG,KAAA;MAAA,OAAM,CAACC,CAAG,EAAAR,OAAA,CAAQI,GAAGH,SAAW,EAAAvE,IAAA,CAAKc,OAAOgE,CAAC,CAAC,CAAC,CAAC;IAAA,EAAA,CAClF;EACF;EAEO,OAAAP,SAAA,CAAUH,OAAOpE,IAAI,CAAA;AAC9B;ACjCA,MAAM+E,aAAgB,GAAA,SAAA;AAGf,SAASC,eAAeC,EAAoB,EAAA;EAC7C,IAAAA,EAAA,CAAGpB,UAAW,CAAAkB,aAAa,CAAG,EAAA;IACzB,OAAAE,EAAA,CAAGC,KAAM,CAAAH,aAAA,CAAcpF,MAAM,CAAA;EACtC;EAEO,OAAAsF,EAAA;AACT;ACHO,SAASE,cAAcC,OAAmE,EAAA;EACzF,MAAA;IACJC,OAAA;IACAC,SAAA;IACAC,OAAA;IACAC,WAAWC,UAAa,GAAA,SAAA;IACxBC,MAAMC,KAAQ,GAAA,SAAA;IACdV,EAAI,EAAAW,GAAA;IACJC,IAAA;IACA7F;EACE,CAAA,GAAAoF,OAAA;EAEJ,IAAI,CAACC,OAAS,EAAA;IACN,MAAA,IAAIjF,MAAM,qBAAqB,CAAA;EACvC;EACA,IAAI,CAACkF,SAAW,EAAA;IACR,MAAA,IAAIlF,MAAM,uBAAuB,CAAA;EACzC;EACA,IAAI,CAACmF,OAAS,EAAA;IACN,MAAA,IAAInF,MAAM,qBAAqB,CAAA;EACvC;EACA,IAAI,CAACJ,IAAM,EAAA;IACH,MAAA,IAAII,MAAM,kBAAkB,CAAA;EACpC;EACA,IAAI,CAACwF,GAAK,EAAA;IACF,MAAA,IAAIxF,MAAM,gBAAgB,CAAA;EAClC;EACA,IAAIiF,OAAY,KAAA,GAAA,IAAOA,OAAQ,CAAAS,QAAA,CAAS,GAAG,CAAG,EAAA;IACtC,MAAA,IAAI1F,MAAM,mCAAmC,CAAA;EACrD;EAEM,MAAAoF,SAAA,GAAYC,UAAe,KAAA,SAAA,GAAY,KAAY,CAAA,GAAAA,UAAA;EACnD,MAAAC,IAAA,GAAOC,KAAU,KAAA,SAAA,GAAY,KAAY,CAAA,GAAAA,KAAA;EAGzC,MAAAV,EAAA,GAAKD,eAAeY,GAAG,CAAA;EAC7B,MAAMG,eAAkB,GAAAC,QAAoB,CAAAtD,oBAAA,CAAqB1C,IAAI,CAAC,CAAA;EAIhE,MAAAiG,YAAA,GAAe,IAAIC,eAAgB,CAAA;IACvCb,OAAA;IACAC,SAAA;IACAC,OAAA;IACAN,EAAA;IACAY,IAAA;IACA7F,IAAM,EAAA+F;EAAA,CACP,CAAA;EACD,IAAIP,SAAW,EAAA;IACAS,YAAA,CAAAE,GAAA,CAAI,aAAaX,SAAS,CAAA;EACzC;EACA,IAAIE,IAAM,EAAA;IACKO,YAAA,CAAAE,GAAA,CAAI,QAAQT,IAAI,CAAA;EAC/B;EAEA,MAAMzE,QAAW,GAAA,CAACoE,OAAY,KAAA,GAAA,GAAM,KAAKA,OAAO,CAAA;EAChD,IAAIG,SAAW,EAAA;IACbvE,QAAA,CAASuB,KAAKgD,SAAS,CAAA;EACzB;EACA,IAAIE,IAAM,EAAA;IACRzE,QAAA,CAASuB,KAAKkD,IAAI,CAAA;EACpB;EACM,MAAAU,YAAA,GAAe,CAAC,KAAM,CAAAtF,MAAA,CAAAmE,EAAA,CAAA,EAAM,QAAQnE,MAAQ,CAAA+E,IAAA,CAAA,EAAA,OAAA,CAAQ/E,MAAmB,CAAAuF,kBAAA,CAAAN,eAAe,CAAG,CAAA,CAAA;EACtF9E,QAAA,CAAAuB,IAAA,CAAK,UAAU,MAAQ,EAAA,EAAA,CAAG1B,oBAAamB,IAAK,CAAA,GAAG,CAAC,EAAA,GAAA,CAAA,CAAInB,MAAc,CAAAmF,YAAA,CAAA,CAAA;EACpE,OAAAhF,QAAA,CAASgB,KAAK,GAAG,CAAA;AAC1B;AC5DO,SAASqE,gBAAgBlB,OAAmE,EAAA;EACjG,MAAM;IAACmB,eAAA,EAAiBpD,GAAK;IAAAD;EAAA,CAAc,GAAAkC,OAAA;EACrC,MAAA;IAAC9B;IAASE;EAAU,CAAA,GAAIP,eAAeC,UAAY,EAAAC,GAAG,KAAK,EAAC;EAElE,IAAI,CAACG,OAAS,EAAA;IAEL,OAAA,KAAA,CAAA;EACT;EAEI,IAAAA,OAAA,CAAQkD,MAAO,CAAAX,IAAA,KAAS,SAAW,EAAA;IAC9B,OAAA,KAAA,CAAA;EACT;EAEI,IAAAvC,OAAA,CAAQkD,MAAO,CAAAX,IAAA,KAAS,SAAW,EAAA;IAC9B,OAAA,KAAA,CAAA;EACT;EAEA,MAAMY,SAAY,GAAAtD,GAAA,CAAIuD,SAAU,CAAApD,OAAA,CAAQkD,OAAOG,QAAQ,CAAA;EACvD,MAAMC,UAAa,GAAAzD,GAAA,CAAI0D,KAAM,CAAAvD,OAAA,CAAQkD,OAAOxG,IAAI,CAAA;EAEhD,IAAIyG,aAAaG,UAAY,EAAA;IAC3B,MAAM;MAACvB,OAAA;MAASG,SAAW;MAAAE;IAAQ,CAAA,GAAAoB,sBAAA,CACjC,OAAO1B,QAAQ2B,SAAc,KAAA,UAAA,GAAa3B,QAAQ2B,SAAU,CAAAN,SAAS,IAAIrB,OAAQ,CAAA2B,SAAA,CACnF;IACA,IAAI,CAAC1B,OAAA,EAAgB,OAAA,KAAA,CAAA;IACf,MAAA;MAACO;MAAKoB,KAAO;MAAAC,QAAA,GAAW7B,QAAQE,SAAW;MAAA4B,UAAA,GAAa9B,OAAQ,CAAAG;IAAW,CAAA,GAAAkB,SAAA;IAC1E,OAAA;MACLpB,OAAA;MACAC,SAAW,EAAA4B,UAAA;MACX3B,OAAS,EAAA0B,QAAA;MACTzB,SAAA;MACAE,IAAA;MACAT,EAAI,EAAAW,GAAA;MACJC,IAAM,EAAAmB,KAAA;MACNhH,IAAA,EAAMkC,aAAc,CAAA0E,UAAA,GAAapD,UAAU;IAAA,CAC7C;EACF;EAEO,OAAA,KAAA,CAAA;AACT;AAGO,SAASsD,uBAAuBC,SAAuC,EAAA;EAC5E,IAAI1B,OAAyB,GAAA,OAAO0B,SAAc,KAAA,QAAA,GAAWA,YAAYA,SAAU,CAAA1B,OAAA;EACnF,IAAIA,YAAY,GAAK,EAAA;IACTA,OAAA,GAAAA,OAAA,CAAQ5D,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAA;EACrC;EACI,IAAA,OAAOsF,cAAc,QAAU,EAAA;IACjC,OAAO;MAAC1B;IAAO,CAAA;EACjB;EACO,OAAA;IAAC,GAAG0B,SAAA;IAAW1B;GAAO;AAC/B;;;;;;;;;;;;;;"}
@@ -429,5 +429,5 @@ function resolveStudioBaseRoute(studioUrl) {
429
429
  baseUrl
430
430
  };
431
431
  }
432
- export { createEditUrl, get, getPublishedId, jsonPath, jsonPathToStudioPath, parseJsonPath, reKeySegment, resolveEditInfo, resolveMapping, studioPath, studioPathToJsonPath, toString, walkMap };
433
- //# sourceMappingURL=resolveEditInfo-8A-bssPb.js.map
432
+ export { createEditUrl, get, getPublishedId, jsonPath, jsonPathToStudioPath, parseJsonPath, reKeySegment, resolveEditInfo, resolveMapping, resolveStudioBaseRoute, studioPath, studioPathToJsonPath, toString, walkMap };
433
+ //# sourceMappingURL=resolveEditInfo-hVGpZYTe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveEditInfo-8A-bssPb.js","sources":["../../src/csm/studioPath.ts","../../src/csm/jsonPath.ts","../../src/csm/resolveMapping.ts","../../src/csm/isArray.ts","../../src/csm/isRecord.ts","../../src/csm/walkMap.ts","../../src/csm/getPublishedId.ts","../../src/csm/createEditUrl.ts","../../src/csm/resolveEditInfo.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","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 projectId,\n dataset,\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 (!projectId) {\n throw new Error('projectId is required')\n }\n if (!dataset) {\n throw new Error('dataset 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 = studioPath.toString(jsonPathToStudioPath(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 projectId,\n dataset,\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 if (tool) {\n segments.push(tool)\n }\n const routerParams = [`id=${id}`, `type=${type}`, `path=${encodeURIComponent(stringifiedPath)}`]\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, _dataset = options.projectId, _projectId = options.dataset} = sourceDoc\n return {\n baseUrl,\n projectId: _projectId,\n dataset: _dataset,\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\nfunction 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"],"names":["rePropName","reKeySegment","reIndexTuple","isIndexSegment","segment","test","isKeySegment","trim","isIndexTuple","Array","isArray","length","from","to","get","obj","path","defaultVal","select","fromString","Error","acc","i","find","item","_key","toString","reduce","target","segmentType","concat","separator","stringify","segments","match","map","parsePathSegment","parseIndexSegment","parseKeySegment","parseIndexTupleSegment","Number","replace","split","seg","ESCAPE","UNESCAPE","jsonPath","escapedKey","_index","join","parseJsonPath","parsed","parseRe","exec","key","m","push","parseInt","jsonPathToStudioPath","JSON","studioPathToJsonPath","parsedPath","studioPath.fromString","isContentSourceMapParsedPathKeyedSegment","jsonPathToMappingPath","resolveMapping","resultPath","csm","mappings","resultMappingPath","mapping","matchedPath","pathSuffix","Object","entries","filter","_ref","startsWith","sort","_ref2","_ref3","key1","key2","substring","value","isRecord","walkMap","mappingFn","arguments","undefined","v","idx","fromEntries","_ref4","k","DRAFTS_PREFIX","getPublishedId","id","slice","createEditUrl","options","baseUrl","projectId","dataset","workspace","_workspace","tool","_tool","_id","type","endsWith","stringifiedPath","studioPath.toString","searchParams","URLSearchParams","set","routerParams","encodeURIComponent","resolveEditInfo","resultSourceMap","source","sourceDoc","documents","document","sourcePath","paths","resolveStudioBaseRoute","studioUrl","_type","_dataset","_projectId"],"mappings":"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"}
1
+ {"version":3,"file":"resolveEditInfo-hVGpZYTe.js","sources":["../../src/csm/studioPath.ts","../../src/csm/jsonPath.ts","../../src/csm/resolveMapping.ts","../../src/csm/isArray.ts","../../src/csm/isRecord.ts","../../src/csm/walkMap.ts","../../src/csm/getPublishedId.ts","../../src/csm/createEditUrl.ts","../../src/csm/resolveEditInfo.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","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 projectId,\n dataset,\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 (!projectId) {\n throw new Error('projectId is required')\n }\n if (!dataset) {\n throw new Error('dataset 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 = studioPath.toString(jsonPathToStudioPath(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 projectId,\n dataset,\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 if (tool) {\n segments.push(tool)\n }\n const routerParams = [`id=${id}`, `type=${type}`, `path=${encodeURIComponent(stringifiedPath)}`]\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, _dataset = options.projectId, _projectId = options.dataset} = sourceDoc\n return {\n baseUrl,\n projectId: _projectId,\n dataset: _dataset,\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"],"names":["rePropName","reKeySegment","reIndexTuple","isIndexSegment","segment","test","isKeySegment","trim","isIndexTuple","Array","isArray","length","from","to","get","obj","path","defaultVal","select","fromString","Error","acc","i","find","item","_key","toString","reduce","target","segmentType","concat","separator","stringify","segments","match","map","parsePathSegment","parseIndexSegment","parseKeySegment","parseIndexTupleSegment","Number","replace","split","seg","ESCAPE","UNESCAPE","jsonPath","escapedKey","_index","join","parseJsonPath","parsed","parseRe","exec","key","m","push","parseInt","jsonPathToStudioPath","JSON","studioPathToJsonPath","parsedPath","studioPath.fromString","isContentSourceMapParsedPathKeyedSegment","jsonPathToMappingPath","resolveMapping","resultPath","csm","mappings","resultMappingPath","mapping","matchedPath","pathSuffix","Object","entries","filter","_ref","startsWith","sort","_ref2","_ref3","key1","key2","substring","value","isRecord","walkMap","mappingFn","arguments","undefined","v","idx","fromEntries","_ref4","k","DRAFTS_PREFIX","getPublishedId","id","slice","createEditUrl","options","baseUrl","projectId","dataset","workspace","_workspace","tool","_tool","_id","type","endsWith","stringifiedPath","studioPath.toString","searchParams","URLSearchParams","set","routerParams","encodeURIComponent","resolveEditInfo","resultSourceMap","source","sourceDoc","documents","document","sourcePath","paths","resolveStudioBaseRoute","studioUrl","_type","_dataset","_projectId"],"mappings":"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"}
package/dist/csm.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', {
4
4
  value: true
5
5
  });
6
- var resolveEditInfo = require('./_chunks/resolveEditInfo-xcYOjX4T.cjs');
6
+ var resolveEditInfo = require('./_chunks/resolveEditInfo-2keGcJpx.cjs');
7
7
  const defaultUpdateFunction = changed => changed;
8
8
  function applySourceDocuments(result, resultSourceMap, getCachedDocument) {
9
9
  let updateFn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultUpdateFunction;
package/dist/csm.js CHANGED
@@ -1,5 +1,5 @@
1
- import { walkMap, resolveMapping, parseJsonPath, get, toString, jsonPath, studioPathToJsonPath, resolveEditInfo, createEditUrl } from './_chunks/resolveEditInfo-8A-bssPb.js';
2
- export { getPublishedId, jsonPathToStudioPath, studioPath } from './_chunks/resolveEditInfo-8A-bssPb.js';
1
+ import { walkMap, resolveMapping, parseJsonPath, get, toString, jsonPath, studioPathToJsonPath, resolveEditInfo, createEditUrl } from './_chunks/resolveEditInfo-hVGpZYTe.js';
2
+ export { getPublishedId, jsonPathToStudioPath, studioPath } from './_chunks/resolveEditInfo-hVGpZYTe.js';
3
3
  const defaultUpdateFunction = changed => changed;
4
4
  function applySourceDocuments(result, resultSourceMap, getCachedDocument) {
5
5
  let updateFn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultUpdateFunction;
package/dist/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', {
4
4
  value: true
5
5
  });
6
- var nodeMiddleware = require('./_chunks/nodeMiddleware-cQeqivr5.cjs');
6
+ var nodeMiddleware = require('./_chunks/nodeMiddleware-AQIXW8nd.cjs');
7
7
  var getIt = require('get-it');
8
8
  function defineDeprecatedCreateClient(createClient) {
9
9
  return function deprecatedCreateClient(config) {
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { printNoDefaultExport, defineCreateClientExports, SanityClient, middleware } from './_chunks/nodeMiddleware-pr0WzTXK.js';
2
- export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/nodeMiddleware-pr0WzTXK.js';
1
+ import { printNoDefaultExport, defineCreateClientExports, SanityClient, middleware } from './_chunks/nodeMiddleware-cKmlsf7J.js';
2
+ export { BasePatch, BaseTransaction, ClientError, ObservablePatch, ObservableSanityClient, ObservableTransaction, Patch, ServerError, Transaction } from './_chunks/nodeMiddleware-cKmlsf7J.js';
3
3
  export { adapter as unstable__adapter, environment as unstable__environment } from 'get-it';
4
4
  function defineDeprecatedCreateClient(createClient) {
5
5
  return function deprecatedCreateClient(config) {
@@ -266,52 +266,6 @@ function resolveMapping(resultPath, csm) {
266
266
  pathSuffix
267
267
  };
268
268
  }
269
- function resolveEditInfo(options) {
270
- const {
271
- resultSourceMap: csm,
272
- resultPath
273
- } = options;
274
- const {
275
- mapping,
276
- pathSuffix
277
- } = resolveMapping(resultPath, csm) || {};
278
- if (!mapping) {
279
- return void 0;
280
- }
281
- if (mapping.source.type === "literal") {
282
- return void 0;
283
- }
284
- if (mapping.source.type === "unknown") {
285
- return void 0;
286
- }
287
- const sourceDoc = csm.documents[mapping.source.document];
288
- const sourcePath = csm.paths[mapping.source.path];
289
- if (sourceDoc && sourcePath) {
290
- const {
291
- baseUrl,
292
- workspace,
293
- tool
294
- } = resolveStudioBaseRoute(typeof options.studioUrl === "function" ? options.studioUrl(sourceDoc) : options.studioUrl);
295
- if (!baseUrl) return void 0;
296
- const {
297
- _id,
298
- _type,
299
- _dataset = options.projectId,
300
- _projectId = options.dataset
301
- } = sourceDoc;
302
- return {
303
- baseUrl,
304
- projectId: _projectId,
305
- dataset: _dataset,
306
- workspace,
307
- tool,
308
- id: _id,
309
- type: _type,
310
- path: parseJsonPath(sourcePath + pathSuffix)
311
- };
312
- }
313
- return void 0;
314
- }
315
269
  function resolveStudioBaseRoute(studioUrl) {
316
270
  let baseUrl = typeof studioUrl === "string" ? studioUrl : studioUrl.baseUrl;
317
271
  if (baseUrl !== "/") {
@@ -425,7 +379,6 @@ function stegaEncodeSourceMap(result, resultSourceMap, config, clientConfig) {
425
379
  filter,
426
380
  vercelStegaCombineSkip,
427
381
  logger,
428
- studioUrl,
429
382
  enabled
430
383
  } = config;
431
384
  if (!enabled) {
@@ -445,7 +398,7 @@ function stegaEncodeSourceMap(result, resultSourceMap, config, clientConfig) {
445
398
  });
446
399
  return result;
447
400
  }
448
- if (!studioUrl) {
401
+ if (!config.studioUrl) {
449
402
  const msg = "config.studioUrl must be defined";
450
403
  (_c = logger == null ? void 0 : logger.error) == null ? void 0 : _c.call(logger, "[@sanity/client/stega]: ".concat(msg), {
451
404
  result,
@@ -475,7 +428,6 @@ function stegaEncodeSourceMap(result, resultSourceMap, config, clientConfig) {
475
428
  resultPath,
476
429
  value
477
430
  } = _ref6;
478
- var _a2;
479
431
  if ((typeof filter === "function" ? filter({
480
432
  sourcePath,
481
433
  resultPath,
@@ -505,24 +457,30 @@ function stegaEncodeSourceMap(result, resultSourceMap, config, clientConfig) {
505
457
  length: value.length
506
458
  });
507
459
  }
508
- const editInfo = resolveEditInfo({
509
- studioUrl,
510
- projectId,
511
- dataset,
512
- resultPath,
513
- resultSourceMap
514
- });
515
- if (!editInfo) {
516
- (_a2 = logger == null ? void 0 : logger.error) == null ? void 0 : _a2.call(logger, "[@sanity/client/stega]: Failed to resolve edit info, this is a bug in the stega integration", {
517
- result,
518
- resultSourceMap,
519
- config
520
- });
521
- return value;
522
- }
460
+ const {
461
+ baseUrl,
462
+ workspace,
463
+ tool
464
+ } = resolveStudioBaseRoute(typeof config.studioUrl === "function" ? config.studioUrl(sourceDocument) : config.studioUrl);
465
+ if (!baseUrl) return value;
466
+ const {
467
+ _id: id,
468
+ _type: type,
469
+ _dataset = clientConfig.projectId,
470
+ _projectId = clientConfig.dataset
471
+ } = sourceDocument;
523
472
  return stega.vercelStegaCombine(value, {
524
473
  origin: "sanity.io",
525
- href: createEditUrl(editInfo)
474
+ href: createEditUrl({
475
+ baseUrl,
476
+ projectId: _projectId,
477
+ dataset: _dataset,
478
+ workspace,
479
+ tool,
480
+ id,
481
+ type,
482
+ path: sourcePath
483
+ })
526
484
  }, vercelStegaCombineSkip);
527
485
  });
528
486
  if (logger) {