@sanity/client 7.26.2 → 8.1.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 (133) hide show
  1. package/README.md +63 -341
  2. package/dist/browserUpload-2tz6Sdqp.js +87 -0
  3. package/dist/browserUpload-2tz6Sdqp.js.map +1 -0
  4. package/dist/browserUpload-CwpNx7Vl.js +87 -0
  5. package/dist/browserUpload-CwpNx7Vl.js.map +1 -0
  6. package/dist/config-3wiPP-sZ.js +126 -0
  7. package/dist/config-3wiPP-sZ.js.map +1 -0
  8. package/dist/csm.d.ts +122 -335
  9. package/dist/csm.js +79 -91
  10. package/dist/csm.js.map +1 -1
  11. package/dist/dist-C9ExSk2R.js +73 -0
  12. package/dist/dist-C9ExSk2R.js.map +1 -0
  13. package/dist/dist-Z8cIRxoB.js +69 -0
  14. package/dist/dist-Z8cIRxoB.js.map +1 -0
  15. package/dist/index.d.ts +112 -6722
  16. package/dist/index.js +2950 -2848
  17. package/dist/index.js.map +1 -1
  18. package/dist/{index.d.cts → index.node.d.ts} +4529 -5322
  19. package/dist/index.node.js +3264 -0
  20. package/dist/index.node.js.map +1 -0
  21. package/dist/isRecord-Kfmt-nk-.js +7 -0
  22. package/dist/isRecord-Kfmt-nk-.js.map +1 -0
  23. package/dist/media-library.d.ts +9 -100
  24. package/dist/media-library.js +36 -14
  25. package/dist/media-library.js.map +1 -1
  26. package/dist/request-BhMuKj0D.js +373 -0
  27. package/dist/request-BhMuKj0D.js.map +1 -0
  28. package/dist/request-SnMg7nUX.js +355 -0
  29. package/dist/request-SnMg7nUX.js.map +1 -0
  30. package/dist/resolveEditInfo-Cz-smq3a.js +339 -0
  31. package/dist/resolveEditInfo-Cz-smq3a.js.map +1 -0
  32. package/dist/rolldown-runtime-vyAXikos.js +9 -0
  33. package/dist/stega.d.ts +78 -7137
  34. package/dist/stega.js +27 -20
  35. package/dist/stega.js.map +1 -1
  36. package/dist/stegaClean-C18wLWau.js +21 -0
  37. package/dist/stegaClean-C18wLWau.js.map +1 -0
  38. package/dist/stegaEncodeSourceMap-DbM2fTN4.js +373 -0
  39. package/dist/stegaEncodeSourceMap-DbM2fTN4.js.map +1 -0
  40. package/dist/stegaEncodeSourceMap-YR3NQ3iz.js +163 -0
  41. package/dist/stegaEncodeSourceMap-YR3NQ3iz.js.map +1 -0
  42. package/dist/{index.browser.d.cts → types-BODIEY7F.d.ts} +4196 -5258
  43. package/dist/types-CfGzbXrl.d.ts +108 -0
  44. package/package.json +80 -142
  45. package/src/SanityClient.ts +101 -137
  46. package/src/agent/actions/AgentActionsClient.ts +12 -12
  47. package/src/agent/actions/commonTypes.ts +2 -1
  48. package/src/agent/actions/generate.ts +26 -6
  49. package/src/agent/actions/patch.ts +27 -7
  50. package/src/agent/actions/prompt.ts +19 -5
  51. package/src/agent/actions/transform.ts +23 -5
  52. package/src/agent/actions/translate.ts +23 -5
  53. package/src/assets/AssetsClient.ts +121 -24
  54. package/src/csm/applySourceDocuments.ts +5 -5
  55. package/src/csm/createEditUrl.ts +1 -1
  56. package/src/csm/draftUtils.ts +23 -5
  57. package/src/csm/index.ts +2 -2
  58. package/src/csm/studioPath.ts +2 -1
  59. package/src/csm/types.ts +8 -2
  60. package/src/data/dataMethods.ts +784 -349
  61. package/src/data/eventsource.ts +82 -49
  62. package/src/data/listen.ts +18 -23
  63. package/src/data/live.ts +60 -35
  64. package/src/data/resolveEventSourceFetch.ts +104 -0
  65. package/src/datasets/DatasetsClient.ts +58 -41
  66. package/src/defineCreateClient.ts +38 -22
  67. package/src/functions/FunctionsClient.ts +66 -0
  68. package/src/functions/invoke.ts +176 -0
  69. package/src/http/browserMiddleware.ts +7 -1
  70. package/src/http/browserUpload.ts +163 -0
  71. package/src/http/errors.ts +61 -6
  72. package/src/http/nodeMiddleware.ts +94 -30
  73. package/src/http/request.ts +304 -87
  74. package/src/http/requestOptions.ts +131 -15
  75. package/src/{index.browser.ts → index.node.ts} +9 -4
  76. package/src/index.ts +4 -3
  77. package/src/mediaLibrary/MediaLibraryVideoClient.ts +27 -12
  78. package/src/projects/ProjectsClient.ts +18 -16
  79. package/src/releases/ReleasesClient.ts +38 -33
  80. package/src/stega/index.ts +1 -2
  81. package/src/stega/stegaEncodeSourceMap.ts +5 -0
  82. package/src/stega/types.ts +2 -2
  83. package/src/types.ts +328 -103
  84. package/src/users/UsersClient.ts +10 -14
  85. package/src/util/shareReplayLatest.ts +1 -1
  86. package/src/validators.ts +1 -1
  87. package/src/warnings.ts +13 -2
  88. package/dist/_chunks-cjs/config.cjs +0 -206
  89. package/dist/_chunks-cjs/config.cjs.map +0 -1
  90. package/dist/_chunks-cjs/isRecord.cjs +0 -6
  91. package/dist/_chunks-cjs/isRecord.cjs.map +0 -1
  92. package/dist/_chunks-cjs/resolveEditInfo.cjs +0 -334
  93. package/dist/_chunks-cjs/resolveEditInfo.cjs.map +0 -1
  94. package/dist/_chunks-cjs/stegaClean.cjs +0 -46
  95. package/dist/_chunks-cjs/stegaClean.cjs.map +0 -1
  96. package/dist/_chunks-cjs/stegaEncodeSourceMap.cjs +0 -388
  97. package/dist/_chunks-cjs/stegaEncodeSourceMap.cjs.map +0 -1
  98. package/dist/_chunks-es/config.js +0 -207
  99. package/dist/_chunks-es/config.js.map +0 -1
  100. package/dist/_chunks-es/isRecord.js +0 -7
  101. package/dist/_chunks-es/isRecord.js.map +0 -1
  102. package/dist/_chunks-es/resolveEditInfo.js +0 -335
  103. package/dist/_chunks-es/resolveEditInfo.js.map +0 -1
  104. package/dist/_chunks-es/stegaClean.js +0 -47
  105. package/dist/_chunks-es/stegaClean.js.map +0 -1
  106. package/dist/_chunks-es/stegaEncodeSourceMap.js +0 -389
  107. package/dist/_chunks-es/stegaEncodeSourceMap.js.map +0 -1
  108. package/dist/csm.cjs +0 -99
  109. package/dist/csm.cjs.map +0 -1
  110. package/dist/csm.d.cts +0 -391
  111. package/dist/index.browser.cjs +0 -3106
  112. package/dist/index.browser.cjs.map +0 -1
  113. package/dist/index.browser.d.ts +0 -6802
  114. package/dist/index.browser.js +0 -3082
  115. package/dist/index.browser.js.map +0 -1
  116. package/dist/index.cjs +0 -2946
  117. package/dist/index.cjs.map +0 -1
  118. package/dist/media-library.cjs +0 -20
  119. package/dist/media-library.cjs.map +0 -1
  120. package/dist/media-library.d.cts +0 -117
  121. package/dist/stega.browser.cjs +0 -29
  122. package/dist/stega.browser.cjs.map +0 -1
  123. package/dist/stega.browser.d.cts +0 -7200
  124. package/dist/stega.browser.d.ts +0 -7200
  125. package/dist/stega.browser.js +0 -24
  126. package/dist/stega.browser.js.map +0 -1
  127. package/dist/stega.cjs +0 -29
  128. package/dist/stega.cjs.map +0 -1
  129. package/dist/stega.d.cts +0 -7200
  130. package/src/data/eventsourcePolyfill.ts +0 -7
  131. package/umd/.gitkeep +0 -1
  132. package/umd/sanityClient.js +0 -6543
  133. package/umd/sanityClient.min.js +0 -6
@@ -0,0 +1,339 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-vyAXikos.js";
2
+ import { t as isRecord } from "./isRecord-Kfmt-nk-.js";
3
+ var studioPath_exports = /* @__PURE__ */ __exportAll({
4
+ fromString: () => fromString,
5
+ get: () => get,
6
+ isIndexSegment: () => isIndexSegment,
7
+ isIndexTuple: () => isIndexTuple,
8
+ isKeySegment: () => isKeySegment,
9
+ reKeySegment: () => reKeySegment,
10
+ toString: () => toString
11
+ });
12
+ const rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, reKeySegment = /_key\s*==\s*['"](.*)['"]/, reIndexTuple = /^\d*:\d*$/;
13
+ /** @internal */
14
+ function isIndexSegment(segment) {
15
+ return typeof segment == "number" || typeof segment == "string" && /^\[\d+\]$/.test(segment);
16
+ }
17
+ /** @internal */
18
+ function isKeySegment(segment) {
19
+ return typeof segment == "string" ? reKeySegment.test(segment.trim()) : typeof segment == "object" && "_key" in segment;
20
+ }
21
+ /** @internal */
22
+ function isIndexTuple(segment) {
23
+ if (typeof segment == "string" && reIndexTuple.test(segment)) return !0;
24
+ if (!Array.isArray(segment) || segment.length !== 2) return !1;
25
+ let [from, to] = segment;
26
+ return (typeof from == "number" || from === "") && (typeof to == "number" || to === "");
27
+ }
28
+ /** @internal */
29
+ function get(obj, path, defaultVal) {
30
+ let select = typeof path == "string" ? fromString(path) : path;
31
+ if (!Array.isArray(select)) throw Error("Path must be an array or a string");
32
+ let acc = obj;
33
+ for (let i = 0; i < select.length; i++) {
34
+ let segment = select[i];
35
+ if (isIndexSegment(segment)) {
36
+ if (!Array.isArray(acc)) return defaultVal;
37
+ acc = acc[segment];
38
+ }
39
+ if (isKeySegment(segment)) {
40
+ if (!Array.isArray(acc)) return defaultVal;
41
+ acc = acc.find((item) => item._key === segment._key);
42
+ }
43
+ if (typeof segment == "string" && (acc = typeof acc == "object" && acc ? acc[segment] : void 0), acc === void 0) return defaultVal;
44
+ }
45
+ return acc;
46
+ }
47
+ /** @alpha */
48
+ function toString(path) {
49
+ if (!Array.isArray(path)) throw Error("Path is not an array");
50
+ return path.reduce((target, segment, i) => {
51
+ let segmentType = typeof segment;
52
+ if (segmentType === "number") return `${target}[${segment}]`;
53
+ if (segmentType === "string") return `${target}${i === 0 ? "" : "."}${segment}`;
54
+ if (isKeySegment(segment) && segment._key) return `${target}[_key=="${segment._key}"]`;
55
+ if (Array.isArray(segment)) {
56
+ let [from, to] = segment;
57
+ return `${target}[${from}:${to}]`;
58
+ }
59
+ throw Error(`Unsupported path segment \`${JSON.stringify(segment)}\``);
60
+ }, "");
61
+ }
62
+ /** @alpha */
63
+ function fromString(path) {
64
+ if (typeof path != "string") throw Error("Path is not a string");
65
+ let segments = path.match(rePropName);
66
+ if (!segments) throw Error("Invalid path string");
67
+ return segments.map(parsePathSegment);
68
+ }
69
+ function parsePathSegment(segment) {
70
+ return isIndexSegment(segment) ? parseIndexSegment(segment) : isKeySegment(segment) ? parseKeySegment(segment) : isIndexTuple(segment) ? parseIndexTupleSegment(segment) : segment;
71
+ }
72
+ function parseIndexSegment(segment) {
73
+ return Number(segment.replace(/[^\d]/g, ""));
74
+ }
75
+ function parseKeySegment(segment) {
76
+ return { _key: segment.match(reKeySegment)[1] };
77
+ }
78
+ function parseIndexTupleSegment(segment) {
79
+ let [from, to] = segment.split(":").map((seg) => seg === "" ? seg : Number(seg));
80
+ return [from, to];
81
+ }
82
+ /** @internal */
83
+ const DRAFTS_FOLDER = "drafts", VERSION_FOLDER = "versions", DRAFTS_PREFIX = `${DRAFTS_FOLDER}.`, VERSION_PREFIX = `${VERSION_FOLDER}.`;
84
+ /** @internal */
85
+ function isDraftId(id) {
86
+ return id.startsWith(DRAFTS_PREFIX);
87
+ }
88
+ /** @internal */
89
+ function isVersionId(id) {
90
+ return id.startsWith(VERSION_PREFIX);
91
+ }
92
+ /** @internal */
93
+ function isPublishedId(id) {
94
+ return !isDraftId(id) && !isVersionId(id);
95
+ }
96
+ /**
97
+ * A phantom brand like `DraftId` has no runtime representation, so it can never be produced
98
+ * by narrowing a string - there's nothing to check. These two functions are the only places
99
+ * allowed to assert a plain string into a branded id.
100
+ */
101
+ function asDraftId(value) {
102
+ return value;
103
+ }
104
+ function asPublishedId(value) {
105
+ return value;
106
+ }
107
+ /** @internal */
108
+ function getDraftId(id) {
109
+ if (isVersionId(id)) {
110
+ let publishedId = getPublishedId(id);
111
+ return asDraftId(DRAFTS_PREFIX + publishedId);
112
+ }
113
+ return isDraftId(id) ? id : DRAFTS_PREFIX + id;
114
+ }
115
+ /** @internal */
116
+ function getVersionId(id, version) {
117
+ if (version === "drafts" || version === "published") throw Error("Version can not be \"published\" or \"drafts\"");
118
+ return `${VERSION_PREFIX}${version}.${getPublishedId(id)}`;
119
+ }
120
+ /**
121
+ * @internal
122
+ * Given an id, returns the versionId if it exists.
123
+ * e.g. `versions.summer-drop.foo` = `summer-drop`
124
+ * e.g. `drafts.foo` = `undefined`
125
+ * e.g. `foo` = `undefined`
126
+ */
127
+ function getVersionFromId(id) {
128
+ if (!isVersionId(id)) return;
129
+ let [_versionPrefix, versionId, ..._publishedId] = id.split(".");
130
+ return versionId;
131
+ }
132
+ /** @internal */
133
+ function getPublishedId(id) {
134
+ if (isVersionId(id)) return asPublishedId(id.split(".").slice(2).join("."));
135
+ if (isDraftId(id)) return asPublishedId(id.slice(DRAFTS_PREFIX.length));
136
+ if (isPublishedId(id)) return id;
137
+ throw Error(`Unable to resolve a published id from "${id}"`);
138
+ }
139
+ const ESCAPE = {
140
+ "\f": "\\f",
141
+ "\n": "\\n",
142
+ "\r": "\\r",
143
+ " ": "\\t",
144
+ "'": "\\'",
145
+ "\\": "\\\\"
146
+ }, UNESCAPE = {
147
+ "\\f": "\f",
148
+ "\\n": "\n",
149
+ "\\r": "\r",
150
+ "\\t": " ",
151
+ "\\'": "'",
152
+ "\\\\": "\\"
153
+ };
154
+ /**
155
+ * @internal
156
+ */
157
+ function jsonPath(path) {
158
+ return `$${path.map((segment) => typeof segment == "string" ? `['${segment.replace(/[\f\n\r\t'\\]/g, (match) => ESCAPE[match])}']` : typeof segment == "number" ? `[${segment}]` : segment._key === "" ? `[${segment._index}]` : `[?(@._key=='${segment._key.replace(/['\\]/g, (match) => ESCAPE[match])}')]`).join("")}`;
159
+ }
160
+ /**
161
+ * @internal
162
+ */
163
+ function jsonPathArray(path) {
164
+ return path.map((segment) => typeof segment == "string" ? `['${segment.replace(/[\f\n\r\t'\\]/g, (match) => ESCAPE[match])}']` : typeof segment == "number" ? `[${segment}]` : segment._key === "" ? `[${segment._index}]` : `[?(@._key=='${segment._key.replace(/['\\]/g, (match) => ESCAPE[match])}')]`);
165
+ }
166
+ /**
167
+ * @internal
168
+ */
169
+ function parseJsonPath(path) {
170
+ let parsed = [], parseRe = /\['(.*?)'\]|\[(\d+)\]|\[\?\(@\._key=='(.*?)'\)\]/g, match;
171
+ for (; (match = parseRe.exec(path)) !== null;) {
172
+ if (match[1] !== void 0) {
173
+ let key = match[1].replace(/\\(\\|f|n|r|t|')/g, (m) => UNESCAPE[m]);
174
+ parsed.push(key);
175
+ continue;
176
+ }
177
+ if (match[2] !== void 0) {
178
+ parsed.push(parseInt(match[2], 10));
179
+ continue;
180
+ }
181
+ if (match[3] !== void 0) {
182
+ let _key = match[3].replace(/\\(\\')/g, (m) => UNESCAPE[m]);
183
+ parsed.push({
184
+ _key,
185
+ _index: -1
186
+ });
187
+ continue;
188
+ }
189
+ }
190
+ return parsed;
191
+ }
192
+ /**
193
+ * @internal
194
+ */
195
+ function jsonPathToStudioPath(path) {
196
+ return path.map((segment) => {
197
+ if (typeof segment == "string" || typeof segment == "number") return segment;
198
+ if (segment._key !== "") return { _key: segment._key };
199
+ if (segment._index !== -1) return segment._index;
200
+ throw Error(`invalid segment:${JSON.stringify(segment)}`);
201
+ });
202
+ }
203
+ /**
204
+ * @internal
205
+ */
206
+ function studioPathToJsonPath(path) {
207
+ return (typeof path == "string" ? fromString(path) : path).map((segment) => {
208
+ if (typeof segment == "string" || typeof segment == "number") return segment;
209
+ if (Array.isArray(segment)) throw Error(`IndexTuple segments aren't supported:${JSON.stringify(segment)}`);
210
+ if (isContentSourceMapParsedPathKeyedSegment(segment)) return segment;
211
+ if (segment._key) return {
212
+ _key: segment._key,
213
+ _index: -1
214
+ };
215
+ throw Error(`invalid segment:${JSON.stringify(segment)}`);
216
+ });
217
+ }
218
+ function isContentSourceMapParsedPathKeyedSegment(segment) {
219
+ return typeof segment == "object" && "_key" in segment && "_index" in segment;
220
+ }
221
+ /**
222
+ * @internal
223
+ */
224
+ function jsonPathToMappingPath(path) {
225
+ return path.map((segment) => {
226
+ if (typeof segment == "string" || typeof segment == "number") return segment;
227
+ if (segment._index !== -1) return segment._index;
228
+ throw Error(`invalid segment:${JSON.stringify(segment)}`);
229
+ });
230
+ }
231
+ /**
232
+ * @internal
233
+ */
234
+ function resolveMapping(resultPath, csm) {
235
+ if (!csm?.mappings) return;
236
+ let resultMappingPath = jsonPath(jsonPathToMappingPath(resultPath));
237
+ if (csm.mappings[resultMappingPath] !== void 0) return {
238
+ mapping: csm.mappings[resultMappingPath],
239
+ matchedPath: resultMappingPath,
240
+ pathSuffix: ""
241
+ };
242
+ let resultMappingPathArray = jsonPathArray(jsonPathToMappingPath(resultPath));
243
+ for (let i = resultMappingPathArray.length - 1; i >= 0; i--) {
244
+ let key = `$${resultMappingPathArray.slice(0, i).join("")}`, mappingFound = csm.mappings[key];
245
+ if (mappingFound) return {
246
+ mapping: mappingFound,
247
+ matchedPath: key,
248
+ pathSuffix: resultMappingPath.substring(key.length)
249
+ };
250
+ }
251
+ }
252
+ /** @internal */
253
+ function isArray(value) {
254
+ return value !== null && Array.isArray(value);
255
+ }
256
+ /**
257
+ * generic way to walk a nested object or array and apply a mapping function to each value
258
+ * @internal
259
+ */
260
+ function walkMap(value, mappingFn, path = []) {
261
+ if (isArray(value)) return value.map((v, idx) => {
262
+ if (isRecord(v)) {
263
+ let _key = v._key;
264
+ if (typeof _key == "string") return walkMap(v, mappingFn, path.concat({
265
+ _key,
266
+ _index: idx
267
+ }));
268
+ }
269
+ return walkMap(v, mappingFn, path.concat(idx));
270
+ });
271
+ if (isRecord(value)) {
272
+ if (value._type === "block" || value._type === "span") {
273
+ let result = { ...value };
274
+ return value._type === "block" ? result.children = walkMap(value.children, mappingFn, path.concat("children")) : value._type === "span" && (result.text = walkMap(value.text, mappingFn, path.concat("text"))), result;
275
+ }
276
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, walkMap(v, mappingFn, path.concat(k))]));
277
+ }
278
+ return mappingFn(value, path);
279
+ }
280
+ /** @internal */
281
+ function createEditUrl(options) {
282
+ let { baseUrl, workspace: _workspace = "default", tool: _tool = "default", id: _id, type, path, projectId, dataset } = options;
283
+ if (!baseUrl) throw Error("baseUrl is required");
284
+ if (!path) throw Error("path is required");
285
+ if (!_id) throw Error("id is required");
286
+ if (baseUrl !== "/" && baseUrl.endsWith("/")) throw Error("baseUrl must not end with a slash");
287
+ let workspace = _workspace === "default" ? void 0 : _workspace, tool = _tool === "default" ? void 0 : _tool, id = getPublishedId(_id), stringifiedPath = Array.isArray(path) ? toString(jsonPathToStudioPath(path)) : path, searchParams = new URLSearchParams({
288
+ baseUrl,
289
+ id,
290
+ type,
291
+ path: stringifiedPath
292
+ });
293
+ if (workspace && searchParams.set("workspace", workspace), tool && searchParams.set("tool", tool), projectId && searchParams.set("projectId", projectId), dataset && searchParams.set("dataset", dataset), isPublishedId(_id)) searchParams.set("perspective", "published");
294
+ else if (isVersionId(_id)) {
295
+ let versionId = getVersionFromId(_id);
296
+ searchParams.set("perspective", versionId);
297
+ }
298
+ let segments = [baseUrl === "/" ? "" : baseUrl];
299
+ workspace && segments.push(workspace);
300
+ let routerParams = [
301
+ "mode=presentation",
302
+ `id=${id}`,
303
+ `type=${type}`,
304
+ `path=${encodeURIComponent(stringifiedPath)}`
305
+ ];
306
+ return tool && routerParams.push(`tool=${tool}`), segments.push("intent", "edit", `${routerParams.join(";")}?${searchParams}`), segments.join("/");
307
+ }
308
+ /** @internal */
309
+ function resolveEditInfo(options) {
310
+ let { resultSourceMap: csm, resultPath } = options, { mapping, pathSuffix } = resolveMapping(resultPath, csm) || {};
311
+ if (!mapping || mapping.source.type === "literal" || mapping.source.type === "unknown") return;
312
+ let sourceDoc = csm.documents[mapping.source.document], sourcePath = csm.paths[mapping.source.path];
313
+ if (sourceDoc && sourcePath) {
314
+ let { baseUrl, workspace, tool } = resolveStudioBaseRoute(typeof options.studioUrl == "function" ? options.studioUrl(sourceDoc) : options.studioUrl);
315
+ if (!baseUrl) return;
316
+ let { _id, _type, _projectId, _dataset } = sourceDoc;
317
+ return {
318
+ baseUrl,
319
+ workspace,
320
+ tool,
321
+ id: _id,
322
+ type: _type,
323
+ path: parseJsonPath(sourcePath + pathSuffix),
324
+ projectId: _projectId,
325
+ dataset: _dataset
326
+ };
327
+ }
328
+ }
329
+ /** @internal */
330
+ function resolveStudioBaseRoute(studioUrl) {
331
+ let baseUrl = typeof studioUrl == "string" ? studioUrl : studioUrl.baseUrl;
332
+ return baseUrl !== "/" && (baseUrl = baseUrl.replace(/\/$/, "")), typeof studioUrl == "string" ? { baseUrl } : {
333
+ ...studioUrl,
334
+ baseUrl
335
+ };
336
+ }
337
+ export { toString as S, isPublishedId as _, resolveMapping as a, reKeySegment as b, parseJsonPath as c, VERSION_FOLDER as d, getDraftId as f, isDraftId as g, getVersionId as h, walkMap as i, studioPathToJsonPath as l, getVersionFromId as m, resolveStudioBaseRoute as n, jsonPath as o, getPublishedId as p, createEditUrl as r, jsonPathToStudioPath as s, resolveEditInfo as t, DRAFTS_FOLDER as u, isVersionId as v, studioPath_exports as x, get as y };
338
+
339
+ //# sourceMappingURL=resolveEditInfo-Cz-smq3a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveEditInfo-Cz-smq3a.js","names":["studioPath.fromString","studioPath.toString"],"sources":["../src/csm/studioPath.ts","../src/csm/draftUtils.ts","../src/csm/jsonPath.ts","../src/csm/resolveMapping.ts","../src/csm/isArray.ts","../src/csm/walkMap.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 */\n// oxlint-disable-next-line typescript/no-unnecessary-type-parameters -- caller-supplied return type; removing it breaks `get<Result>(...)` call sites\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 = 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","// nominal/opaque type hack\ntype Opaque<T, K> = T & {__opaqueId__: K}\n\n/** @internal */\nexport type DraftId = Opaque<string, 'draftId'>\n\n/** @internal */\nexport type PublishedId = Opaque<string, 'publishedId'>\n\n/** @internal */\nexport const DRAFTS_FOLDER = 'drafts'\n\n/** @internal */\nexport const VERSION_FOLDER = 'versions'\n\nconst PATH_SEPARATOR = '.'\nconst DRAFTS_PREFIX = `${DRAFTS_FOLDER}${PATH_SEPARATOR}`\nconst VERSION_PREFIX = `${VERSION_FOLDER}${PATH_SEPARATOR}`\n\n/** @internal */\nexport function isDraftId(id: string): id is DraftId {\n return id.startsWith(DRAFTS_PREFIX)\n}\n\n/** @internal */\nexport function isVersionId(id: string): boolean {\n return id.startsWith(VERSION_PREFIX)\n}\n\n/** @internal */\nexport function isPublishedId(id: string): id is PublishedId {\n return !isDraftId(id) && !isVersionId(id)\n}\n\n/**\n * A phantom brand like `DraftId` has no runtime representation, so it can never be produced\n * by narrowing a string - there's nothing to check. These two functions are the only places\n * allowed to assert a plain string into a branded id.\n */\nfunction asDraftId(value: string): DraftId {\n return value as DraftId\n}\n\nfunction asPublishedId(value: string): PublishedId {\n return value as PublishedId\n}\n\n/** @internal */\nexport function getDraftId(id: string): DraftId {\n if (isVersionId(id)) {\n const publishedId = getPublishedId(id)\n return asDraftId(DRAFTS_PREFIX + publishedId)\n }\n\n return isDraftId(id) ? id : ((DRAFTS_PREFIX + id) as DraftId)\n}\n\n/** @internal */\nexport function getVersionId(id: string, version: string): string {\n if (version === 'drafts' || version === 'published') {\n throw new Error('Version can not be \"published\" or \"drafts\"')\n }\n\n return `${VERSION_PREFIX}${version}${PATH_SEPARATOR}${getPublishedId(id)}`\n}\n\n/**\n * @internal\n * Given an id, returns the versionId if it exists.\n * e.g. `versions.summer-drop.foo` = `summer-drop`\n * e.g. `drafts.foo` = `undefined`\n * e.g. `foo` = `undefined`\n */\nexport function getVersionFromId(id: string): string | undefined {\n if (!isVersionId(id)) return undefined\n const [_versionPrefix, versionId, ..._publishedId] = id.split(PATH_SEPARATOR)\n\n return versionId\n}\n\n/** @internal */\nexport function getPublishedId(id: string): PublishedId {\n if (isVersionId(id)) {\n // make sure to only remove the versions prefix and the bundle name\n return asPublishedId(id.split(PATH_SEPARATOR).slice(2).join(PATH_SEPARATOR))\n }\n\n if (isDraftId(id)) {\n return asPublishedId(id.slice(DRAFTS_PREFIX.length))\n }\n\n if (isPublishedId(id)) {\n return id\n }\n\n // Unreachable: `isPublishedId` is defined as `!isDraftId(id) && !isVersionId(id)`, both of\n // which were already checked (and found false) above, so this can never execute.\n throw new Error(`Unable to resolve a published id from \"${id}\"`)\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 * @internal\n */\nexport function jsonPathArray(path: ContentSourceMapParsedPath): string[] {\n return path.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}\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, jsonPathArray, 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 resultMappingPathArray = jsonPathArray(jsonPathToMappingPath(resultPath))\n for (let i = resultMappingPathArray.length - 1; i >= 0; i--) {\n const key = `$${resultMappingPathArray.slice(0, i).join('')}`\n const mappingFound = csm.mappings[key]\n if (mappingFound) {\n const pathSuffix = resultMappingPath.substring(key.length)\n return {mapping: mappingFound, matchedPath: key, pathSuffix}\n }\n }\n\n return undefined\n}\n","/** @internal */\nexport function isArray(value: unknown): value is Array<unknown> {\n return value !== null && Array.isArray(value)\n}\n","import {isRecord} from '../util/isRecord'\nimport {isArray} from './isArray'\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 // Handle Portable Text in a faster way\n if (value._type === 'block' || value._type === 'span') {\n const result = {...value}\n if (value._type === 'block') {\n result.children = walkMap(value.children, mappingFn, path.concat('children'))\n } else if (value._type === 'span') {\n result.text = walkMap(value.text, mappingFn, path.concat('text'))\n }\n return result\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([k, v]) => [k, walkMap(v, mappingFn, path.concat(k))]),\n )\n }\n\n return mappingFn(value, path)\n}\n","import {getPublishedId, getVersionFromId, isPublishedId, isVersionId} from './draftUtils'\nimport {jsonPathToStudioPath} from './jsonPath'\nimport * as studioPath from './studioPath'\nimport type {CreateEditUrlOptions, EditIntentUrl, StudioBaseUrl} from './types'\n\n/** @internal */\nexport function createEditUrl(options: CreateEditUrlOptions): `${StudioBaseUrl}${EditIntentUrl}` {\n const {\n baseUrl,\n workspace: _workspace = 'default',\n tool: _tool = 'default',\n id: _id,\n type,\n path,\n projectId,\n dataset,\n } = options\n\n if (!baseUrl) {\n throw new Error('baseUrl is required')\n }\n if (!path) {\n throw new Error('path is required')\n }\n if (!_id) {\n throw new Error('id is required')\n }\n if (baseUrl !== '/' && baseUrl.endsWith('/')) {\n throw new Error('baseUrl must not end with a slash')\n }\n\n const workspace = _workspace === 'default' ? undefined : _workspace\n const tool = _tool === 'default' ? undefined : _tool\n const id = getPublishedId(_id)\n const stringifiedPath = Array.isArray(path)\n ? studioPath.toString(jsonPathToStudioPath(path))\n : path\n\n // oxlint-disable-next-line no-warning-comments\n // @TODO Using searchParams as a temporary workaround until `@sanity/overlays` can decode state from the path reliably\n const searchParams = new URLSearchParams({\n baseUrl,\n id,\n type,\n path: stringifiedPath,\n })\n if (workspace) {\n searchParams.set('workspace', workspace)\n }\n if (tool) {\n searchParams.set('tool', tool)\n }\n if (projectId) {\n searchParams.set('projectId', projectId)\n }\n if (dataset) {\n searchParams.set('dataset', dataset)\n }\n if (isPublishedId(_id)) {\n searchParams.set('perspective', 'published')\n } else if (isVersionId(_id)) {\n const versionId = getVersionFromId(_id)!\n searchParams.set('perspective', versionId)\n }\n\n const segments = [baseUrl === '/' ? '' : baseUrl]\n if (workspace) {\n segments.push(workspace)\n }\n const routerParams = [\n 'mode=presentation',\n `id=${id}`,\n `type=${type}`,\n `path=${encodeURIComponent(stringifiedPath)}`,\n ]\n if (tool) {\n routerParams.push(`tool=${tool}`)\n }\n segments.push('intent', 'edit', `${routerParams.join(';')}?${searchParams}`)\n return segments.join('/') as unknown as `${StudioBaseUrl}${EditIntentUrl}`\n}\n","import {parseJsonPath} from './jsonPath'\nimport {resolveMapping} from './resolveMapping'\nimport type {\n CreateEditUrlOptions,\n ResolveEditInfoOptions,\n StudioBaseRoute,\n StudioBaseUrl,\n StudioUrl,\n} from './types'\n\n/** @internal */\nexport function resolveEditInfo(options: ResolveEditInfoOptions): CreateEditUrlOptions | undefined {\n const {resultSourceMap: csm, resultPath} = options\n const {mapping, pathSuffix} = resolveMapping(resultPath, csm) || {}\n\n if (!mapping) {\n // console.warn('no mapping for path', { path: resultPath, sourceMap: csm })\n return undefined\n }\n\n if (mapping.source.type === 'literal') {\n return undefined\n }\n\n if (mapping.source.type === 'unknown') {\n return undefined\n }\n\n const sourceDoc = csm.documents[mapping.source.document]\n const sourcePath = csm.paths[mapping.source.path]\n\n if (sourceDoc && sourcePath) {\n const {baseUrl, workspace, tool} = resolveStudioBaseRoute(\n typeof options.studioUrl === 'function' ? options.studioUrl(sourceDoc) : options.studioUrl,\n )\n if (!baseUrl) return undefined\n const {_id, _type, _projectId, _dataset} = sourceDoc\n return {\n baseUrl,\n workspace,\n tool,\n id: _id,\n type: _type,\n path: parseJsonPath(sourcePath + pathSuffix),\n projectId: _projectId,\n dataset: _dataset,\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"],"mappings":";;;;;;;;;;;AAYA,MAAM,aACJ,oGAEW,eAAe,4BACtB,eAAe;;AAGrB,SAAgB,eAAe,SAAyC;CACtE,OAAO,OAAO,WAAY,YAAa,OAAO,WAAY,YAAY,YAAY,KAAK,OAAO;AAChG;;AAGA,SAAgB,aAAa,SAA+C;CAK1E,OAJI,OAAO,WAAY,WACd,aAAa,KAAK,QAAQ,KAAK,CAAC,IAGlC,OAAO,WAAY,YAAY,UAAU;AAClD;;AAGA,SAAgB,aAAa,SAA6C;CACxE,IAAI,OAAO,WAAY,YAAY,aAAa,KAAK,OAAO,GAC1D,OAAO;CAGT,IAAI,CAAC,MAAM,QAAQ,OAAO,KAAK,QAAQ,WAAW,GAChD,OAAO;CAGT,IAAM,CAAC,MAAM,MAAM;CACnB,QAAQ,OAAO,QAAS,YAAY,SAAS,QAAQ,OAAO,MAAO,YAAY,OAAO;AACxF;;AAIA,SAAgB,IACd,KACA,MACA,YAC4B;CAC5B,IAAM,SAAS,OAAO,QAAS,WAAW,WAAW,IAAI,IAAI;CAC7D,IAAI,CAAC,MAAM,QAAQ,MAAM,GACvB,MAAU,MAAM,mCAAmC;CAGrD,IAAI,MAAe;CACnB,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;EACtC,IAAM,UAAU,OAAO;EACvB,IAAI,eAAe,OAAO,GAAG;GAC3B,IAAI,CAAC,MAAM,QAAQ,GAAG,GACpB,OAAO;GAGT,MAAM,IAAI;EACZ;EAEA,IAAI,aAAa,OAAO,GAAG;GACzB,IAAI,CAAC,MAAM,QAAQ,GAAG,GACpB,OAAO;GAGT,MAAM,IAAI,MAAM,SAAS,KAAK,SAAS,QAAQ,IAAI;EACrD;EASA,IAPI,OAAO,WAAY,aACrB,MACE,OAAO,OAAQ,YAAY,MACrB,IAAgC,WAClC,KAAA,IAGG,QAAQ,QACjB,OAAO;CAEX;CAEA,OAAO;AACT;;AAGA,SAAgB,SAAS,MAAoB;CAC3C,IAAI,CAAC,MAAM,QAAQ,IAAI,GACrB,MAAU,MAAM,sBAAsB;CAGxC,OAAO,KAAK,QAAgB,QAAQ,SAAS,MAAM;EACjD,IAAM,cAAc,OAAO;EAC3B,IAAI,gBAAgB,UAClB,OAAO,GAAG,OAAO,GAAG,QAAQ;EAG9B,IAAI,gBAAgB,UAElB,OAAO,GAAG,SADQ,MAAM,IAAI,KAAK,MACF;EAGjC,IAAI,aAAa,OAAO,KAAK,QAAQ,MACnC,OAAO,GAAG,OAAO,UAAU,QAAQ,KAAK;EAG1C,IAAI,MAAM,QAAQ,OAAO,GAAG;GAC1B,IAAM,CAAC,MAAM,MAAM;GACnB,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,GAAG;EACjC;EAEA,MAAU,MAAM,8BAA8B,KAAK,UAAU,OAAO,EAAE,GAAG;CAC3E,GAAG,EAAE;AACP;;AAGA,SAAgB,WAAW,MAAoB;CAC7C,IAAI,OAAO,QAAS,UAClB,MAAU,MAAM,sBAAsB;CAGxC,IAAM,WAAW,KAAK,MAAM,UAAU;CACtC,IAAI,CAAC,UACH,MAAU,MAAM,qBAAqB;CAGvC,OAAO,SAAS,IAAI,gBAAgB;AACtC;AAEA,SAAS,iBAAiB,SAA8B;CAatD,OAZI,eAAe,OAAO,IACjB,kBAAkB,OAAO,IAG9B,aAAa,OAAO,IACf,gBAAgB,OAAO,IAG5B,aAAa,OAAO,IACf,uBAAuB,OAAO,IAGhC;AACT;AAEA,SAAS,kBAAkB,SAA8B;CACvD,OAAO,OAAO,QAAQ,QAAQ,UAAU,EAAE,CAAC;AAC7C;AAEA,SAAS,gBAAgB,SAA+B;CAEtD,OAAO,EAAC,MADS,QAAQ,MAAM,YACV,CAAC,CAAE,GAAE;AAC5B;AAEA,SAAS,uBAAuB,SAA6B;CAC3D,IAAM,CAAC,MAAM,MAAM,QAAQ,MAAM,GAAG,CAAC,CAAC,KAAK,QAAS,QAAQ,KAAK,MAAM,OAAO,GAAG,CAAE;CACnF,OAAO,CAAC,MAAM,EAAE;AAClB;;AC1JA,MAAa,gBAAgB,UAGhB,iBAAiB,YAGxB,gBAAgB,GAAG,kBACnB,iBAAiB,GAAG;;AAG1B,SAAgB,UAAU,IAA2B;CACnD,OAAO,GAAG,WAAW,aAAa;AACpC;;AAGA,SAAgB,YAAY,IAAqB;CAC/C,OAAO,GAAG,WAAW,cAAc;AACrC;;AAGA,SAAgB,cAAc,IAA+B;CAC3D,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE;AAC1C;;;;;;AAOA,SAAS,UAAU,OAAwB;CACzC,OAAO;AACT;AAEA,SAAS,cAAc,OAA4B;CACjD,OAAO;AACT;;AAGA,SAAgB,WAAW,IAAqB;CAC9C,IAAI,YAAY,EAAE,GAAG;EACnB,IAAM,cAAc,eAAe,EAAE;EACrC,OAAO,UAAU,gBAAgB,WAAW;CAC9C;CAEA,OAAO,UAAU,EAAE,IAAI,KAAO,gBAAgB;AAChD;;AAGA,SAAgB,aAAa,IAAY,SAAyB;CAChE,IAAI,YAAY,YAAY,YAAY,aACtC,MAAU,MAAM,gDAA4C;CAG9D,OAAO,GAAG,iBAAiB,WAA2B,eAAe,EAAE;AACzE;;;;;;;;AASA,SAAgB,iBAAiB,IAAgC;CAC/D,IAAI,CAAC,YAAY,EAAE,GAAG;CACtB,IAAM,CAAC,gBAAgB,WAAW,GAAG,gBAAgB,GAAG,MAAM,GAAc;CAE5E,OAAO;AACT;;AAGA,SAAgB,eAAe,IAAyB;CACtD,IAAI,YAAY,EAAE,GAEhB,OAAO,cAAc,GAAG,MAAM,GAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAc,CAAC;CAG7E,IAAI,UAAU,EAAE,GACd,OAAO,cAAc,GAAG,MAAM,cAAc,MAAM,CAAC;CAGrD,IAAI,cAAc,EAAE,GAClB,OAAO;CAKT,MAAU,MAAM,0CAA0C,GAAG,EAAE;AACjE;AC1FA,MAAM,SAAiC;CACrC,MAAM;CACN,MAAM;CACN,MAAM;CACN,KAAM;CACN,KAAK;CACL,MAAM;AACR,GAEM,WAAmC;CACvC,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,QAAQ;AACV;;;;AAKA,SAAgB,SAAS,MAAiE;CACxF,OAAO,IAAI,KACR,KAAK,YACA,OAAO,WAAY,WAId,KAHY,QAAQ,QAAQ,mBAAmB,UAC7C,OAAO,MAEK,EAAE,MAGrB,OAAO,WAAY,WACd,IAAI,QAAQ,KAGjB,QAAQ,SAAS,KAOd,IAAI,QAAQ,OAAO,KAHjB,eAHY,QAAQ,KAAK,QAAQ,WAAW,UAC1C,OAAO,MAEe,EAAE,IAIpC,CAAC,CACD,KAAK,EAAE;AACZ;;;;AAIA,SAAgB,cAAc,MAA4C;CACxE,OAAO,KAAK,KAAK,YACX,OAAO,WAAY,WAId,KAHY,QAAQ,QAAQ,mBAAmB,UAC7C,OAAO,MAEK,EAAE,MAGrB,OAAO,WAAY,WACd,IAAI,QAAQ,KAGjB,QAAQ,SAAS,KAOd,IAAI,QAAQ,OAAO,KAHjB,eAHY,QAAQ,KAAK,QAAQ,WAAW,UAC1C,OAAO,MAEe,EAAE,IAIpC;AACH;;;;AAKA,SAAgB,cAAc,MAAiE;CAC7F,IAAM,SAAqC,CAAC,GAEtC,UAAU,qDACZ;CAEJ,QAAQ,QAAQ,QAAQ,KAAK,IAAI,OAAO,OAAM;EAC5C,IAAI,MAAM,OAAO,KAAA,GAAW;GAC1B,IAAM,MAAM,MAAM,EAAE,CAAC,QAAQ,sBAAsB,MAC1C,SAAS,EACjB;GAED,OAAO,KAAK,GAAG;GACf;EACF;EAEA,IAAI,MAAM,OAAO,KAAA,GAAW;GAC1B,OAAO,KAAK,SAAS,MAAM,IAAI,EAAE,CAAC;GAClC;EACF;EAEA,IAAI,MAAM,OAAO,KAAA,GAAW;GAC1B,IAAM,OAAO,MAAM,EAAE,CAAC,QAAQ,aAAa,MAClC,SAAS,EACjB;GAED,OAAO,KAAK;IACV;IACA,QAAQ;GACV,CAAC;GACD;EACF;CACF;CAEA,OAAO;AACT;;;;AAKA,SAAgB,qBAAqB,MAAwC;CAC3E,OAAO,KAAK,KAAK,YAAY;EAK3B,IAJI,OAAO,WAAY,YAInB,OAAO,WAAY,UACrB,OAAO;EAGT,IAAI,QAAQ,SAAS,IACnB,OAAO,EAAC,MAAM,QAAQ,KAAI;EAG5B,IAAI,QAAQ,WAAW,IACrB,OAAO,QAAQ;EAGjB,MAAU,MAAM,mBAAmB,KAAK,UAAU,OAAO,GAAG;CAC9D,CAAC;AACH;;;;AAKA,SAAgB,qBAAqB,MAAiD;CAGpF,QAFmB,OAAO,QAAS,WAAWA,WAAsB,IAAI,IAAI,KAAA,CAE1D,KAAK,YAAY;EAKjC,IAJI,OAAO,WAAY,YAInB,OAAO,WAAY,UACrB,OAAO;EAGT,IAAI,MAAM,QAAQ,OAAO,GACvB,MAAU,MAAM,wCAAwC,KAAK,UAAU,OAAO,GAAG;EAGnF,IAAI,yCAAyC,OAAO,GAClD,OAAO;EAGT,IAAI,QAAQ,MACV,OAAO;GAAC,MAAM,QAAQ;GAAM,QAAQ;EAAE;EAGxC,MAAU,MAAM,mBAAmB,KAAK,UAAU,OAAO,GAAG;CAC9D,CAAC;AACH;AAEA,SAAS,yCACP,SACmD;CACnD,OAAO,OAAO,WAAY,YAAY,UAAU,WAAW,YAAY;AACzE;;;;AAKA,SAAgB,sBAAsB,MAAuD;CAC3F,OAAO,KAAK,KAAK,YAAY;EAK3B,IAJI,OAAO,WAAY,YAInB,OAAO,WAAY,UACrB,OAAO;EAGT,IAAI,QAAQ,WAAW,IACrB,OAAO,QAAQ;EAGjB,MAAU,MAAM,mBAAmB,KAAK,UAAU,OAAO,GAAG;CAC9D,CAAC;AACH;;;;ACpMA,SAAgB,eACd,YACA,KAOY;CACZ,IAAI,CAAC,KAAK,UACR;CAEF,IAAM,oBAAoB,SAAS,sBAAsB,UAAU,CAAC;CAEpE,IAAI,IAAI,SAAS,uBAAuB,KAAA,GACtC,OAAO;EACL,SAAS,IAAI,SAAS;EACtB,aAAa;EACb,YAAY;CACd;CAGF,IAAM,yBAAyB,cAAc,sBAAsB,UAAU,CAAC;CAC9E,KAAK,IAAI,IAAI,uBAAuB,SAAS,GAAG,KAAK,GAAG,KAAK;EAC3D,IAAM,MAAM,IAAI,uBAAuB,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KACpD,eAAe,IAAI,SAAS;EAClC,IAAI,cAEF,OAAO;GAAC,SAAS;GAAc,aAAa;GAAK,YAD9B,kBAAkB,UAAU,IAAI,MACO;EAAC;CAE/D;AAGF;;ACvCA,SAAgB,QAAQ,OAAyC;CAC/D,OAAO,UAAU,QAAQ,MAAM,QAAQ,KAAK;AAC9C;;;;;ACKA,SAAgB,QACd,OACA,WACA,OAAmC,CAAC,GAC3B;CACT,IAAI,QAAQ,KAAK,GACf,OAAO,MAAM,KAAK,GAAG,QAAQ;EAC3B,IAAI,SAAS,CAAC,GAAG;GACf,IAAM,OAAO,EAAE;GACf,IAAI,OAAO,QAAS,UAClB,OAAO,QAAQ,GAAG,WAAW,KAAK,OAAO;IAAC;IAAM,QAAQ;GAAG,CAAC,CAAC;EAEjE;EAEA,OAAO,QAAQ,GAAG,WAAW,KAAK,OAAO,GAAG,CAAC;CAC/C,CAAC;CAGH,IAAI,SAAS,KAAK,GAAG;EAEnB,IAAI,MAAM,UAAU,WAAW,MAAM,UAAU,QAAQ;GACrD,IAAM,SAAS,EAAC,GAAG,MAAK;GAMxB,OALI,MAAM,UAAU,UAClB,OAAO,WAAW,QAAQ,MAAM,UAAU,WAAW,KAAK,OAAO,UAAU,CAAC,IACnE,MAAM,UAAU,WACzB,OAAO,OAAO,QAAQ,MAAM,MAAM,WAAW,KAAK,OAAO,MAAM,CAAC,IAE3D;EACT;EAEA,OAAO,OAAO,YACZ,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,QAAQ,GAAG,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAClF;CACF;CAEA,OAAO,UAAU,OAAO,IAAI;AAC9B;;ACtCA,SAAgB,cAAc,SAAmE;CAC/F,IAAM,EACJ,SACA,WAAW,aAAa,WACxB,MAAM,QAAQ,WACd,IAAI,KACJ,MACA,MACA,WACA,YACE;CAEJ,IAAI,CAAC,SACH,MAAU,MAAM,qBAAqB;CAEvC,IAAI,CAAC,MACH,MAAU,MAAM,kBAAkB;CAEpC,IAAI,CAAC,KACH,MAAU,MAAM,gBAAgB;CAElC,IAAI,YAAY,OAAO,QAAQ,SAAS,GAAG,GACzC,MAAU,MAAM,mCAAmC;CAGrD,IAAM,YAAY,eAAe,YAAY,KAAA,IAAY,YACnD,OAAO,UAAU,YAAY,KAAA,IAAY,OACzC,KAAK,eAAe,GAAG,GACvB,kBAAkB,MAAM,QAAQ,IAAI,IACtCC,SAAoB,qBAAqB,IAAI,CAAC,IAC9C,MAIE,eAAe,IAAI,gBAAgB;EACvC;EACA;EACA;EACA,MAAM;CACR,CAAC;CAaD,IAZI,aACF,aAAa,IAAI,aAAa,SAAS,GAErC,QACF,aAAa,IAAI,QAAQ,IAAI,GAE3B,aACF,aAAa,IAAI,aAAa,SAAS,GAErC,WACF,aAAa,IAAI,WAAW,OAAO,GAEjC,cAAc,GAAG,GACnB,aAAa,IAAI,eAAe,WAAW;MACtC,IAAI,YAAY,GAAG,GAAG;EAC3B,IAAM,YAAY,iBAAiB,GAAG;EACtC,aAAa,IAAI,eAAe,SAAS;CAC3C;CAEA,IAAM,WAAW,CAAC,YAAY,MAAM,KAAK,OAAO;CAChD,AAAI,aACF,SAAS,KAAK,SAAS;CAEzB,IAAM,eAAe;EACnB;EACA,MAAM;EACN,QAAQ;EACR,QAAQ,mBAAmB,eAAe;CAC5C;CAKA,OAJI,QACF,aAAa,KAAK,QAAQ,MAAM,GAElC,SAAS,KAAK,UAAU,QAAQ,GAAG,aAAa,KAAK,GAAG,EAAE,GAAG,cAAc,GACpE,SAAS,KAAK,GAAG;AAC1B;;ACrEA,SAAgB,gBAAgB,SAAmE;CACjG,IAAM,EAAC,iBAAiB,KAAK,eAAc,SACrC,EAAC,SAAS,eAAc,eAAe,YAAY,GAAG,KAAK,CAAC;CAWlE,IATI,CAAC,WAKD,QAAQ,OAAO,SAAS,aAIxB,QAAQ,OAAO,SAAS,WAC1B;CAGF,IAAM,YAAY,IAAI,UAAU,QAAQ,OAAO,WACzC,aAAa,IAAI,MAAM,QAAQ,OAAO;CAE5C,IAAI,aAAa,YAAY;EAC3B,IAAM,EAAC,SAAS,WAAW,SAAQ,uBACjC,OAAO,QAAQ,aAAc,aAAa,QAAQ,UAAU,SAAS,IAAI,QAAQ,SACnF;EACA,IAAI,CAAC,SAAS;EACd,IAAM,EAAC,KAAK,OAAO,YAAY,aAAY;EAC3C,OAAO;GACL;GACA;GACA;GACA,IAAI;GACJ,MAAM;GACN,MAAM,cAAc,aAAa,UAAU;GAC3C,WAAW;GACX,SAAS;EACX;CACF;AAGF;;AAGA,SAAgB,uBAAuB,WAAuC;CAC5E,IAAI,UAAyB,OAAO,aAAc,WAAW,YAAY,UAAU;CAOnF,OANI,YAAY,QACd,UAAU,QAAQ,QAAQ,OAAO,EAAE,IAEjC,OAAO,aAAc,WAChB,EAAC,QAAO,IAEV;EAAC,GAAG;EAAW;CAAO;AAC/B"}
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty, __exportAll = (all, no_symbols) => {
2
+ let target = {};
3
+ for (var name in all) __defProp(target, name, {
4
+ get: all[name],
5
+ enumerable: !0
6
+ });
7
+ return no_symbols || __defProp(target, Symbol.toStringTag, { value: "Module" }), target;
8
+ };
9
+ export { __exportAll as t };