{"version":3,"file":"static/js/5337_3bdc05279aff3c38e5ea.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@sanity+asset-utils@1.3.0/node_modules/@sanity/asset-utils/dist/asset-utils.esm.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@sanity+image-url@1.0.2/node_modules/@sanity/image-url/lib/browser/image-url.umd.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/scheduler@0.20.2/node_modules/scheduler/cjs/scheduler.production.min.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/scheduler@0.20.2/node_modules/scheduler/index.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/scheduler@0.23.0/node_modules/scheduler/cjs/scheduler.production.min.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/scheduler@0.23.0/node_modules/scheduler/index.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@sanity+client@6.4.12/node_modules/@sanity/client/dist/index.browser.cjs"],"sourcesContent":["function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\n/**\r\n * Default crop (equals to \"whole image\")\r\n */\nvar DEFAULT_CROP = /*#__PURE__*/Object.freeze({\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n});\n/**\r\n * Default hotspot (equals to horizontal/vertical center, full size of image)\r\n */\n\nvar DEFAULT_HOTSPOT = /*#__PURE__*/Object.freeze({\n x: 0.5,\n y: 0.5,\n height: 1,\n width: 1\n});\n/**\r\n * Returns cloned version of the default crop (prevents accidental mutations)\r\n *\r\n * @returns Default image crop object\r\n */\n\nvar getDefaultCrop = function getDefaultCrop() {\n return _extends({}, DEFAULT_CROP);\n};\n/**\r\n * Returns cloned version of the default hotspot (prevents accidental mutations)\r\n *\r\n * @returns Default image hotspot object\r\n */\n\nvar getDefaultHotspot = function getDefaultHotspot() {\n return _extends({}, DEFAULT_HOTSPOT);\n};\n/**\r\n * Returns whether or not the passed crop has the default values for a crop region\r\n *\r\n * @param crop The crop to return whether or not is the default crop\r\n * @returns True if passed crop matches default, false otherwise\r\n */\n\nvar isDefaultCrop = function isDefaultCrop(crop) {\n var top = crop.top,\n bottom = crop.bottom,\n left = crop.left,\n right = crop.right;\n var defaultTop = DEFAULT_CROP.top,\n defaultBottom = DEFAULT_CROP.bottom,\n defaultLeft = DEFAULT_CROP.left,\n defaultRight = DEFAULT_CROP.right;\n return top === defaultTop && bottom === defaultBottom && left === defaultLeft && right === defaultRight;\n};\n/**\r\n * Returns whether or not the passed hotspot has the default values for a hotspot region\r\n *\r\n * @param hotspot The hotspot to return whether or not is the default hotspot\r\n * @returns True if passed hotspot matches default, false otherwise\r\n */\n\nvar isDefaultHotspot = function isDefaultHotspot(hotspot) {\n var x = hotspot.x,\n y = hotspot.y,\n width = hotspot.width,\n height = hotspot.height;\n var defaultX = DEFAULT_HOTSPOT.x,\n defaultY = DEFAULT_HOTSPOT.y,\n defaultWidth = DEFAULT_HOTSPOT.width,\n defaultHeight = DEFAULT_HOTSPOT.height;\n return x === defaultX && y === defaultY && width === defaultWidth && height === defaultHeight;\n};\n\n/**\r\n * Error type thrown when the library fails to resolve a value, such as an asset ID,\r\n * filename or project ID/dataset information.\r\n *\r\n * The `input` property holds the value passed as the input, which failed to be\r\n * resolved to something meaningful.\r\n */\nvar UnresolvableError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(UnresolvableError, _Error);\n\n function UnresolvableError(inputSource, message) {\n var _this;\n\n if (message === void 0) {\n message = 'Failed to resolve asset ID from source';\n }\n\n _this = _Error.call(this, message) || this;\n _this.unresolvable = true;\n _this.input = inputSource;\n return _this;\n }\n\n return UnresolvableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\r\n * Checks whether or not an error instance is of type UnresolvableError\r\n *\r\n * @param err - Error to check for unresolvable error type\r\n * @returns True if the passed error instance appears to be an unresolveable error\r\n */\n\nfunction isUnresolvableError(err) {\n var error = err;\n return Boolean(error.unresolvable && 'input' in error);\n}\n/**\r\n * Returns a getter which returns `undefined` instead of throwing,\r\n * if encountering an `UnresolvableError`\r\n *\r\n * @param method - Function to use as resolver\r\n * @returns Function that returns `undefined` if passed resolver throws UnresolvableError\r\n * @internal\r\n */\n\nfunction getForgivingResolver(method) {\n return function () {\n try {\n return method.apply(void 0, arguments);\n } catch (err) {\n if (isUnresolvableError(err)) {\n return undefined;\n }\n\n throw err;\n }\n };\n}\n\n/**\r\n * @internal\r\n */\nvar cdnUrl = 'https://cdn.sanity.io';\n/**\r\n * @internal\r\n */\n\nvar fileAssetFilenamePattern = /^([a-zA-Z0-9_]{24,40}|[a-f0-9]{40})+\\.[a-z0-9]+$/;\n/**\r\n * @internal\r\n */\n\nvar fileAssetIdPattern = /^file-([a-zA-Z0-9_]{24,40}|[a-f0-9]{40})+-[a-z0-9]+$/;\n/**\r\n * @internal\r\n */\n\nvar imageAssetFilenamePattern = /^([a-zA-Z0-9_]{24,40}|[a-f0-9]{40})-\\d+x\\d+\\.[a-z0-9]+$/;\n/**\r\n * @internal\r\n */\n\nvar imageAssetIdPattern = /^image-([a-zA-Z0-9_]{24,40}|[a-f0-9]{40})+-\\d+x\\d+-[a-z0-9]+$/;\n/**\r\n * @internal\r\n */\n\nvar pathPattern = /^(images|files)\\/([a-z0-9]+)\\/([a-z0-9][-\\w]*)\\//;\n/**\r\n * @internal\r\n */\n\nvar idPattern = /^(?:image-(?:[a-zA-Z0-9_]{24,40}|[a-f0-9]{40})+-\\d+x\\d+-[a-z0-9]+|file-(?:[a-zA-Z0-9_]{24,40}|[a-f0-9]{40})+-[a-z0-9]+)$/;\n/**\r\n * For use in cases where the project and dataset doesn't really matter\r\n *\r\n * @internal\r\n */\n\nvar dummyProject = {\n projectId: 'a',\n dataset: 'b'\n};\n\n/**\r\n * Checks whether or not the given source is a Sanity reference\r\n * (an object containing _ref string key)\r\n *\r\n * @param ref - Possible reference\r\n * @returns Whether or not the passed object is a reference\r\n */\n\nfunction isReference(ref) {\n return isObject(ref) && typeof ref._ref === 'string';\n}\n/**\r\n * Checks whether or not the given source is an asset ID stub\r\n * (an object containing an `_id` property)\r\n *\r\n * @param stub - Possible asset id stub\r\n * @returns Whether or not the passed object is an object id stub\r\n */\n\nfunction isAssetIdStub(stub) {\n return isObject(stub) && typeof stub._id === 'string';\n}\n/**\r\n * Checks whether or not the given source is an asset path stub\r\n * (an object containing a `path` property)\r\n *\r\n * @param stub - Possible asset path stub\r\n * @returns Whether or not the passed object is an object path stub\r\n */\n\nfunction isAssetPathStub(stub) {\n return isObject(stub) && typeof stub.path === 'string';\n}\n/**\r\n * Checks whether or not the given source is an asset URL stub\r\n * (an object containing a `url` property)\r\n *\r\n * @param stub - Possible asset url stub\r\n * @returns Whether or not the passed object is an object url stub\r\n */\n\nfunction isAssetUrlStub(stub) {\n return isObject(stub) && typeof stub.url === 'string';\n}\n/**\r\n * Checks whether or not the given source is a (partial) sanity file asset document.\r\n * Only checks the `_type` property, all other properties _may_ be missing\r\n *\r\n * @param src - Source to check\r\n * @returns Whether or not the given source is a file asset\r\n */\n\nfunction isSanityFileAsset(src) {\n return isObject(src) && src._type === 'sanity.fileAsset';\n}\n/**\r\n * Checks whether or not the given source is a (partial) sanity image asset document.\r\n * Only checks the `_type` property, all other properties _may_ be missing\r\n *\r\n * @param src - Source to check\r\n * @returns Whether or not the given source is a file asset\r\n */\n\nfunction isSanityImageAsset(src) {\n return isObject(src) && src._type === 'sanity.imageAsset';\n}\n/**\r\n * Checks whether or not the given document ID is a valid Sanity image asset document ID\r\n *\r\n * @param documentId - Document ID to check\r\n * @returns Whether or not the given document ID is a Sanity image asset document ID\r\n */\n\nfunction isImageAssetId(documentId) {\n return imageAssetIdPattern.test(documentId);\n}\n/**\r\n * Checks whether or not the given document ID is a valid Sanity file asset document ID\r\n *\r\n * @param documentId - Document ID to check\r\n * @returns Whether or not the given document ID is a Sanity file asset document ID\r\n */\n\nfunction isFileAssetId(documentId) {\n return fileAssetIdPattern.test(documentId);\n}\n/**\r\n * Checks whether or not the given document ID is a valid Sanity asset document ID (file or image)\r\n *\r\n * @param documentId - Document ID to check\r\n * @returns Whether or not the given document ID is a Sanity asset document ID (file or image)\r\n */\n\nfunction isAssetId(documentId) {\n return isImageAssetId(documentId) || isFileAssetId(documentId);\n}\n/**\r\n * Checks whether or not the given source is an asset object stub\r\n *\r\n * @param stub - Possible asset object stub\r\n * @returns Whether or not the passed object is an object stub\r\n */\n\nfunction isAssetObjectStub(stub) {\n var item = stub;\n return isObject(item) && item.asset && typeof item.asset === 'object';\n}\n/**\r\n * Checks whether or not the passed object is an object (and not `null`)\r\n *\r\n * @param obj Item to check whether or not is an object\r\n * @returns Whether or not `obj` is an object\r\n * @internal\r\n */\n\nfunction isObject(obj) {\n return obj !== null && !Array.isArray(obj) && typeof obj === 'object';\n}\n\n/**\r\n * Builds the base image path from the minimal set of parts required to assemble it\r\n *\r\n * @param asset - An asset-like shape defining ID, dimensions and extension\r\n * @param options - Project ID and dataset the image belongs to, along with other options\r\n * @return string\r\n */\n\nfunction buildImagePath(asset, options) {\n var projectId = (options == null ? void 0 : options.projectId) || asset.projectId;\n var dataset = (options == null ? void 0 : options.dataset) || asset.dataset;\n\n if (!projectId || !dataset) {\n throw new Error('Project details (projectId and dataset) required to resolve path for image');\n }\n\n var dimensions = 'metadata' in asset ? asset.metadata.dimensions : {\n width: asset.width,\n height: asset.height\n };\n var originalFilename = 'originalFilename' in asset ? asset.originalFilename : undefined;\n var assetId = asset.assetId,\n extension = asset.extension,\n vanityFilename = asset.vanityFilename;\n var width = dimensions.width,\n height = dimensions.height;\n var vanity = getVanityStub(originalFilename, vanityFilename, options);\n return \"images/\" + projectId + \"/\" + dataset + \"/\" + assetId + \"-\" + width + \"x\" + height + \".\" + extension + vanity;\n}\n/**\r\n * Builds the base image URL from the minimal set of parts required to assemble it\r\n *\r\n * @param asset - An asset-like shape defining ID, dimensions and extension\r\n * @param options - Project ID and dataset the image belongs to\r\n * @return string\r\n */\n\nfunction buildImageUrl(asset, options) {\n return cdnUrl + \"/\" + buildImagePath(asset, options);\n}\n/**\r\n * Builds the base file path from the minimal set of parts required to assemble it\r\n *\r\n * @param asset - An asset-like shape defining ID, dimensions and extension\r\n * @param options - Project ID and dataset the file belongs to, along with other options\r\n * @return string\r\n */\n\nfunction buildFilePath(asset, options) {\n var projectId = (options == null ? void 0 : options.projectId) || asset.projectId;\n var dataset = (options == null ? void 0 : options.dataset) || asset.dataset;\n\n if (!projectId || !dataset) {\n throw new Error('Project details (projectId and dataset) required to resolve path for file');\n }\n\n var originalFilename = 'originalFilename' in asset ? asset.originalFilename : undefined;\n var assetId = asset.assetId,\n extension = asset.extension,\n vanityFilename = asset.vanityFilename;\n var vanity = getVanityStub(originalFilename, vanityFilename, options);\n return \"files/\" + projectId + \"/\" + dataset + \"/\" + assetId + \".\" + extension + vanity;\n}\n/**\r\n * Builds the base file URL from the minimal set of parts required to assemble it\r\n *\r\n * @param asset - An asset-like shape defining ID and extension\r\n * @param options - Project ID and dataset the file belongs to, along with other options\r\n * @return string\r\n */\n\nfunction buildFileUrl(asset, project) {\n return cdnUrl + \"/\" + buildFilePath(asset, project);\n}\n/**\r\n * Checks whether or not the given URL contains an asset path\r\n *\r\n * @param url - URL or path name\r\n * @returns Whether or not it contained an asset path\r\n */\n\nfunction hasPath(urlOrPath) {\n return pathPattern.test(tryGetUrlPath(urlOrPath) || '');\n}\n/**\r\n * Tries to get the asset path from a given asset source\r\n *\r\n * @param src - The source image to infer an asset path from\r\n * @returns A path if resolvable, undefined otherwise\r\n */\n\n\nfunction tryGetAssetPath(src) {\n if (isAssetObjectStub(src)) {\n return tryGetAssetPath(src.asset);\n }\n\n if (isReference(src)) {\n return undefined;\n }\n\n if (typeof src === 'string') {\n return hasPath(src) ? getUrlPath(src) : undefined;\n }\n\n if (isAssetPathStub(src)) {\n return src.path;\n }\n\n if (isAssetUrlStub(src)) {\n return getUrlPath(src.url);\n }\n\n return undefined;\n}\n/**\r\n * Strips the CDN URL and query params from a URL, eg:\r\n * `https://cdn.sanity.io/images/project/dataset/filename-200x200.jpg?foo=bar` =>\r\n * `images/project/dataset/filename-200x200.jpg`\r\n *\r\n * @param url - URL to get path name from\r\n * @returns The path of a CDN URL\r\n * @throws If URL is not a valid Sanity asset URL\r\n */\n\nfunction getUrlPath(url) {\n if (pathPattern.test(url)) {\n // Already just a path\n return url;\n }\n\n if (!url.startsWith(cdnUrl + \"/\")) {\n throw new UnresolvableError(\"Failed to resolve path from URL \\\"\" + url + \"\\\"\");\n }\n\n var qsPos = url.indexOf('?');\n var toIndex = qsPos === -1 ? undefined : qsPos;\n return url.slice(cdnUrl.length + 1, toIndex);\n}\n/**\r\n * See {@link getUrlPath}\r\n *\r\n * @inheritFrom {@link getUrlPath}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetUrlPath = /*#__PURE__*/getForgivingResolver(getUrlPath);\n/**\r\n * Strips the CDN URL, path and query params from a URL, eg:\r\n * `https://cdn.sanity.io/images/project/dataset/filename-200x200.jpg?foo=bar` =>\r\n * `filename-200x200.jpg`\r\n *\r\n * @param url - URL to get filename from\r\n * @returns The filename of an URL, if URL matches the CDN URL\r\n * @throws If URL is not a valid Sanity asset URL\r\n */\n\nfunction getUrlFilename(url) {\n var path = tryGetUrlPath(url) || url;\n var filename = path.replace(/^(images|files)\\/[a-z0-9]+\\/[a-z0-9][-\\w]\\/*/, '');\n\n if (!isValidFilename(filename)) {\n throw new UnresolvableError(\"Failed to resolve filename from URL \\\"\" + url + \"\\\"\");\n }\n\n return filename;\n}\n/**\r\n * See {@link getUrlFilename}\r\n *\r\n * @inheritFrom {@link getUrlFilename}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetUrlFilename = /*#__PURE__*/getForgivingResolver(getUrlFilename);\n/**\r\n * Checks whether or not a given filename matches the expected Sanity asset filename pattern\r\n *\r\n * @param filename - Filename to check for validity\r\n * @returns Whether or not the specified filename is valid\r\n */\n\nfunction isValidFilename(filename) {\n return fileAssetFilenamePattern.test(filename) || imageAssetFilenamePattern.test(filename);\n}\n/**\r\n * Get the \"path stub\" at the end of the path, if the user hasn't explicitly opted out of this behavior\r\n */\n\nfunction getVanityStub(originalFilename, vanityFilename, options) {\n var vanity = vanityFilename || originalFilename;\n return (options == null ? void 0 : options.useVanityName) === false || !vanity ? '' : \"/\" + vanity;\n}\n\n/**\r\n * @internal\r\n */\n\nvar exampleFileId = 'file-027401f31c3ac1e6d78c5d539ccd1beff72b9b11-pdf';\n/**\r\n * @internal\r\n */\n\nvar exampleImageId = 'image-027401f31c3ac1e6d78c5d539ccd1beff72b9b11-2000x3000-jpg';\n/**\r\n * Parses a Sanity asset document ID into individual parts (type, id, extension, width/height etc)\r\n *\r\n * @param documentId - Document ID to parse into named parts\r\n * @returns Object of named properties\r\n * @throws If document ID is invalid\r\n */\n\nfunction parseAssetId(documentId) {\n if (imageAssetIdPattern.test(documentId)) {\n return parseImageAssetId(documentId);\n }\n\n if (fileAssetIdPattern.test(documentId)) {\n return parseFileAssetId(documentId);\n }\n\n throw new Error(\"Invalid image/file asset ID: \" + documentId);\n}\n/**\r\n * Parses a Sanity file asset document ID into individual parts (type, id, extension)\r\n *\r\n * @param documentId - File asset document ID to parse into named parts\r\n * @returns Object of named properties\r\n * @throws If document ID invalid\r\n */\n\nfunction parseFileAssetId(documentId) {\n if (!fileAssetIdPattern.test(documentId)) {\n throw new Error(\"Malformed file asset ID '\" + documentId + \"'. Expected an id like \\\"\" + exampleFileId + \"\\\"\");\n }\n\n var _documentId$split = documentId.split('-'),\n assetId = _documentId$split[1],\n extension = _documentId$split[2];\n\n return {\n type: 'file',\n assetId: assetId,\n extension: extension\n };\n}\n/**\r\n * Parses a Sanity image asset document ID into individual parts (type, id, extension, width, height)\r\n *\r\n * @param documentId - Image asset document ID to parse into named parts\r\n * @returns Object of named properties\r\n * @throws If document ID invalid\r\n */\n\nfunction parseImageAssetId(documentId) {\n var _documentId$split2 = documentId.split('-'),\n assetId = _documentId$split2[1],\n dimensionString = _documentId$split2[2],\n extension = _documentId$split2[3];\n\n var _split$map = (dimensionString || '').split('x').map(Number),\n width = _split$map[0],\n height = _split$map[1];\n\n if (!assetId || !dimensionString || !extension || !(width > 0) || !(height > 0)) {\n throw new Error(\"Malformed asset ID '\" + documentId + \"'. Expected an id like \\\"\" + exampleImageId + \"\\\".\");\n }\n\n return {\n type: 'image',\n assetId: assetId,\n width: width,\n height: height,\n extension: extension\n };\n}\n/**\r\n * Parses a Sanity asset filename into individual parts (type, id, extension, width, height)\r\n *\r\n * @param filename - Filename to parse into named parts\r\n * @returns Object of named properties\r\n * @throws If image/filename is invalid\r\n */\n\nfunction parseAssetFilename(filename) {\n var file = tryGetUrlFilename(filename) || '';\n\n if (!isValidFilename(file)) {\n throw new Error(\"Invalid image/file asset filename: \" + filename);\n }\n\n try {\n var type = imageAssetFilenamePattern.test(file) ? 'image' : 'file';\n var assetId = file.replace(/\\.([a-z0-9+]+)$/i, '-$1');\n return parseAssetId(type + \"-\" + assetId);\n } catch (err) {\n throw new Error(\"Invalid image/file asset filename: \" + filename);\n }\n}\n/**\r\n * Parses a full Sanity asset URL into individual parts\r\n * (type, project ID, dataset, id, extension, width, height)\r\n *\r\n * @param url - Full URL to parse into named parts\r\n * @returns Object of named properties\r\n * @throws If URL is invalid or not a Sanity asset URL\r\n */\n\nfunction parseAssetUrl(url) {\n if (!url.startsWith(cdnUrl)) {\n throw new Error(\"URL is not a valid Sanity asset URL: \" + url);\n }\n\n var path = url.slice(cdnUrl.length).replace(/^\\/+/, '');\n\n var _ref = path.match(pathPattern) || [],\n projectPath = _ref[0],\n projectId = _ref[2],\n dataset = _ref[3];\n\n if (!projectId || !dataset) {\n throw new Error(\"URL is not a valid Sanity asset URL: \" + url);\n }\n\n var _path$slice$split = path.slice(projectPath.length).split('/'),\n filename = _path$slice$split[0],\n vanityFilename = _path$slice$split[1];\n\n var parsed = parseAssetFilename(filename);\n return _extends({}, parsed, {\n projectId: projectId,\n dataset: dataset,\n vanityFilename: vanityFilename\n });\n}\n/**\r\n * Parses a full Sanity image asset URL into individual parts\r\n * (type, project ID, dataset, id, extension, width, height)\r\n *\r\n * @param url - Full URL to parse into named parts\r\n * @returns Object of named properties\r\n * @throws If URL is invalid or not a Sanity image asset URL\r\n */\n\nfunction parseImageAssetUrl(url) {\n var parsed = parseAssetUrl(url);\n\n if (parsed.type !== 'image') {\n throw new Error(\"URL is not a valid Sanity image asset URL: \" + url);\n }\n\n return parsed;\n}\n/**\r\n * Parses a full Sanity file asset URL into individual parts\r\n * (type, project ID, dataset, id, extension, width, height)\r\n *\r\n * @param url - Full URL to parse into named parts\r\n * @returns Object of named properties\r\n * @throws If URL is invalid or not a Sanity file asset URL\r\n */\n\nfunction parseFileAssetUrl(url) {\n var parsed = parseAssetUrl(url);\n\n if (parsed.type !== 'file') {\n throw new Error(\"URL is not a valid Sanity file asset URL: \" + url);\n }\n\n return parsed;\n}\n/**\r\n * Validates that a given URL is a Sanity asset URL, and returns the asset type if valid.\r\n *\r\n * @param url URL to extract asset type from\r\n * @returns Asset type if valid URL, false otherwise\r\n * @internal\r\n */\n\nfunction getAssetUrlType(url) {\n try {\n return parseAssetUrl(url).type;\n } catch (err) {\n return false;\n }\n}\n\n/**\r\n * Returns the width, height and aspect ratio of a passed image asset, from any\r\n * inferrable structure (id, url, path, asset document, image object etc)\r\n *\r\n * @param src - Input source (image object, asset, reference, id, url, path)\r\n * @returns Object with width, height and aspect ratio properties\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed image source could not be resolved to an asset ID\r\n */\n\nfunction getImageDimensions(src) {\n var imageId = getAssetDocumentId(src);\n\n var _parseImageAssetId = parseImageAssetId(imageId),\n width = _parseImageAssetId.width,\n height = _parseImageAssetId.height;\n\n var aspectRatio = width / height;\n return {\n width: width,\n height: height,\n aspectRatio: aspectRatio\n };\n}\n/**\r\n * See {@link getImageDimensions}\r\n *\r\n * @inheritFrom {@link getImageDimensions}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetImageDimensions = /*#__PURE__*/getForgivingResolver(getImageDimensions);\n/**\r\n * Returns the file extension for a given asset\r\n *\r\n * @param src - Input source (file/image object, asset, reference, id, url, path)\r\n * @returns The file extension, if resolvable (no `.` included)\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed asset source could not be resolved to an asset ID\r\n */\n\nfunction getExtension(src) {\n return isFileSource(src) ? getFile(src, dummyProject).asset.extension : getImage(src, dummyProject).asset.extension;\n}\n/**\r\n * See {@link getExtension}\r\n *\r\n * @inheritFrom {@link getExtension}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetExtension = /*#__PURE__*/getForgivingResolver(getExtension);\n/**\r\n * Tries to resolve an image object with as much information as possible,\r\n * from any inferrable structure (id, url, path, image object etc)\r\n *\r\n * @param src - Input source (image object, asset, reference, id, url, path)\r\n * @param project Project ID and dataset the image belongs to\r\n * @returns Image object\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed image source could not be resolved to an asset ID\r\n */\n\nfunction getImage(src, project) {\n var projectDetails = project || tryGetProject(src);\n var asset = getImageAsset(src, projectDetails);\n var img = src;\n return {\n asset: asset,\n crop: img.crop || getDefaultCrop(),\n hotspot: img.hotspot || getDefaultHotspot()\n };\n}\n/**\r\n * See {@link getImage}\r\n *\r\n * @inheritFrom {@link getImage}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetImage = /*#__PURE__*/getForgivingResolver(getImage);\n/**\r\n * Tries to resolve a (partial) image asset document with as much information as possible,\r\n * from any inferrable structure (id, url, path, image object etc)\r\n *\r\n * @param src - Input source (image object, asset, reference, id, url, path)\r\n * @param project - Project ID and dataset the image belongs to\r\n * @returns Image asset document\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed image source could not be resolved to an asset ID\r\n */\n\nfunction getImageAsset(src, project) {\n var projectDetails = project || getProject(src);\n\n var pathOptions = _extends({}, projectDetails, {\n useVanityName: false\n });\n\n var _id = getAssetDocumentId(src);\n\n var sourceObj = src;\n var source = sourceObj.asset || src;\n var metadata = source.metadata || {};\n\n var _parseImageAssetId2 = parseImageAssetId(_id),\n assetId = _parseImageAssetId2.assetId,\n width = _parseImageAssetId2.width,\n height = _parseImageAssetId2.height,\n extension = _parseImageAssetId2.extension;\n\n var aspectRatio = width / height;\n\n var baseAsset = _extends({}, isSanityImageAsset(src) ? src : {}, {\n _id: _id,\n _type: 'sanity.imageAsset',\n assetId: assetId,\n extension: extension,\n metadata: _extends({}, metadata, {\n dimensions: {\n width: width,\n height: height,\n aspectRatio: aspectRatio\n }\n }),\n // Placeholders, overwritten below\n url: '',\n path: ''\n });\n\n return _extends({}, baseAsset, {\n path: buildImagePath(baseAsset, pathOptions),\n url: buildImageUrl(baseAsset, pathOptions)\n });\n}\n/**\r\n * See {@link getImageAsset}\r\n *\r\n * @inheritFrom {@link getImageAsset}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetImageAsset = /*#__PURE__*/getForgivingResolver(getImageAsset);\n/**\r\n * Tries to resolve an file object with as much information as possible,\r\n * from any inferrable structure (id, url, path, file object etc)\r\n *\r\n * @param src - Input source (file object, asset, reference, id, url, path)\r\n * @param project Project ID and dataset the file belongs to\r\n * @returns File object\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed file source could not be resolved to an asset ID\r\n */\n\nfunction getFile(src, project) {\n var projectDetails = project || tryGetProject(src);\n var asset = getFileAsset(src, projectDetails);\n return {\n asset: asset\n };\n}\n/**\r\n * See {@link getFile}\r\n *\r\n * @inheritFrom {@link getFile}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetFile = /*#__PURE__*/getForgivingResolver(getFile);\n/**\r\n * Tries to resolve a (partial) file asset document with as much information as possible,\r\n * from any inferrable structure (id, url, path, file object etc)\r\n *\r\n * @param src - Input source (file object, asset, reference, id, url, path)\r\n * @param options - Project ID and dataset the file belongs to, along with other options\r\n * @returns File asset document\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed file source could not be resolved to an asset ID\r\n */\n\nfunction getFileAsset(src, options) {\n var projectDetails = _extends({}, options || getProject(src), {\n useVanityName: false\n });\n\n var _id = getAssetDocumentId(src);\n\n var sourceObj = src;\n var source = sourceObj.asset || src;\n\n var _parseFileAssetId = parseFileAssetId(_id),\n assetId = _parseFileAssetId.assetId,\n extension = _parseFileAssetId.extension;\n\n var baseAsset = _extends({}, isSanityFileAsset(src) ? src : {}, {\n _id: _id,\n _type: 'sanity.fileAsset',\n assetId: assetId,\n extension: extension,\n metadata: source.metadata || {},\n // Placeholders, overwritten below\n url: '',\n path: ''\n });\n\n return _extends({}, baseAsset, {\n path: buildFilePath(baseAsset, projectDetails),\n url: buildFileUrl(baseAsset, projectDetails)\n });\n}\n/**\r\n * See {@link getFileAsset}\r\n *\r\n * @inheritFrom {@link getFileAsset}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetFileAsset = /*#__PURE__*/getForgivingResolver(getFileAsset);\n/**\r\n * Tries to resolve the asset document ID from any inferrable structure\r\n *\r\n * @param src - Input source (image/file object, asset, reference, id, url, path)\r\n * @returns The asset document ID\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed asset source could not be resolved to an asset document ID\r\n */\n\nfunction getAssetDocumentId(src) {\n var source = isAssetObjectStub(src) ? src.asset : src;\n var id = '';\n\n if (typeof source === 'string') {\n id = getIdFromString(source);\n } else if (isReference(source)) {\n id = source._ref;\n } else if (isAssetIdStub(source)) {\n id = source._id;\n } else if (isAssetPathStub(source)) {\n id = idFromUrl(cdnUrl + \"/\" + source.path);\n } else if (isAssetUrlStub(source)) {\n id = idFromUrl(source.url);\n }\n\n var hasId = id && idPattern.test(id);\n\n if (!hasId) {\n throw new UnresolvableError(src);\n }\n\n return id;\n}\n/**\r\n * See {@link getAssetDocumentId}\r\n *\r\n * @inheritFrom {@link getAssetDocumentId}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetAssetDocumentId = /*#__PURE__*/getForgivingResolver(getAssetDocumentId);\n/**\r\n * Tries to cooerce a string (ID, URL or path) to an image asset ID\r\n *\r\n * @param str - Input string (ID, URL or path)\r\n * @returns string\r\n *\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed image source could not be resolved to an asset ID\r\n */\n\nfunction getIdFromString(str) {\n if (idPattern.test(str)) {\n // Already an ID\n return str;\n }\n\n if (str.indexOf(cdnUrl + \"/images\") === 0 || str.indexOf(cdnUrl + \"/files\") === 0) {\n // Full URL\n return idFromUrl(str);\n }\n\n if (pathPattern.test(str)) {\n // Path\n return idFromUrl(cdnUrl + \"/\" + str);\n }\n\n if (isFileAssetFilename(str)) {\n // Just a filename (projectId/dataset irrelevant: just need asset ID)\n return idFromUrl(cdnUrl + \"/files/a/b/\" + str);\n }\n\n if (isImageAssetFilename(str)) {\n // Just a filename (projectId/dataset irrelevant: just need asset ID)\n return idFromUrl(cdnUrl + \"/images/a/b/\" + str);\n }\n\n throw new UnresolvableError(str);\n}\n/**\r\n * See {@link getIdFromString}\r\n *\r\n * @inheritFrom {@link getIdFromString}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetIdFromString = /*#__PURE__*/getForgivingResolver(getIdFromString);\n/**\r\n * Converts from a full asset URL to just the asset document ID\r\n *\r\n * @param url - A full asset URL to convert\r\n * @returns string\r\n */\n\nfunction idFromUrl(url) {\n var path = getUrlPath(url);\n\n var _path$split = path.split('/'),\n type = _path$split[0],\n fileName = _path$split[3];\n\n var prefix = type.replace(/s$/, '');\n return prefix + \"-\" + fileName.replace(/\\./g, '-');\n}\n/**\r\n * Resolves project ID and dataset the image belongs to, based on full URL or path\r\n * @param source - Image URL or path\r\n * @returns object | undefined\r\n *\r\n * @throws {@link UnresolvableError}\r\n * Throws if passed image source could not be resolved to an asset ID\r\n */\n\n\nfunction getProject(src) {\n var path = tryGetAssetPath(src);\n\n if (!path) {\n throw new UnresolvableError(src, 'Failed to resolve project ID and dataset from source');\n }\n\n var _ref = path.match(pathPattern) || [],\n projectId = _ref[2],\n dataset = _ref[3];\n\n if (!projectId || !dataset) {\n throw new UnresolvableError(src, 'Failed to resolve project ID and dataset from source');\n }\n\n return {\n projectId: projectId,\n dataset: dataset\n };\n}\n/**\r\n * See {@link getProject}\r\n *\r\n * @inheritFrom {@link getProject}\r\n * @returns Returns `undefined` instead of throwing if a value cannot be resolved\r\n */\n\nvar tryGetProject = /*#__PURE__*/getForgivingResolver(getProject);\n/**\r\n * Returns whether or not the passed filename is a valid image asset filename\r\n *\r\n * @param filename - Filename to validate\r\n * @returns Whether or not the filename is an image asset filename\r\n */\n\nfunction isImageAssetFilename(filename) {\n return imageAssetFilenamePattern.test(filename);\n}\n/**\r\n * Returns whether or not the passed filename is a valid file asset filename\r\n *\r\n * @param filename - Filename to validate\r\n * @returns Whether or not the filename is a file asset filename\r\n */\n\nfunction isFileAssetFilename(filename) {\n return fileAssetFilenamePattern.test(filename);\n}\n/**\r\n * Returns whether or not the passed filename is a valid file or image asset filename\r\n *\r\n * @param filename - Filename to validate\r\n * @returns Whether or not the filename is an asset filename\r\n */\n\nfunction isAssetFilename(filename) {\n return isImageAssetFilename(filename) || isFileAssetFilename(filename);\n}\n/**\r\n * Return whether or not the passed source is a file source\r\n *\r\n * @param src - Source to check\r\n * @returns Whether or not the given source is a file source\r\n */\n\nfunction isFileSource(src) {\n var assetId = tryGetAssetDocumentId(src);\n return assetId ? assetId.startsWith('file-') : false;\n}\n/**\r\n * Return whether or not the passed source is an image source\r\n *\r\n * @param src - Source to check\r\n * @returns Whether or not the given source is an image source\r\n */\n\nfunction isImageSource(src) {\n var assetId = tryGetAssetDocumentId(src);\n return assetId ? assetId.startsWith('image-') : false;\n}\n\n/**\r\n * Checks whether or not a given URL is a valid Sanity asset URL\r\n *\r\n * @param url URL to test\r\n * @returns True if url is a valid Sanity asset URL, false otherwise\r\n */\n\nfunction isSanityAssetUrl(url) {\n return getAssetUrlType(url) !== false;\n}\n/**\r\n * Checks whether or not a given URL is a valid Sanity image asset URL\r\n *\r\n * @param url URL to test\r\n * @returns True if url is a valid Sanity image asset URL, false otherwise\r\n */\n\nfunction isSanityImageUrl(url) {\n return getAssetUrlType(url) === 'image';\n}\n/**\r\n * Checks whether or not a given URL is a valid Sanity file asset URL\r\n *\r\n * @param url URL to test\r\n * @returns True if url is a valid Sanity file asset URL, false otherwise\r\n */\n\nfunction isSanityFileUrl(url) {\n return getAssetUrlType(url) === 'file';\n}\n\nexport { DEFAULT_CROP, DEFAULT_HOTSPOT, buildFilePath, buildFileUrl, buildImagePath, buildImageUrl, getAssetDocumentId, getAssetUrlType, getDefaultCrop, getDefaultHotspot, getExtension, getFile, getFileAsset, getIdFromString, getImage, getImageAsset, getImageDimensions, getProject, getUrlFilename, getUrlPath, isAssetFilename, isAssetId, isAssetIdStub, isAssetObjectStub, isAssetPathStub, isAssetUrlStub, isDefaultCrop, isDefaultHotspot, isFileAssetFilename, isFileAssetId, isFileSource, isImageAssetFilename, isImageAssetId, isImageSource, isObject, isReference, isSanityAssetUrl, isSanityFileAsset, isSanityFileUrl, isSanityImageAsset, isSanityImageUrl, isValidFilename, parseAssetFilename, parseAssetId, parseAssetUrl, parseFileAssetId, parseFileAssetUrl, parseImageAssetId, parseImageAssetUrl, tryGetAssetDocumentId, tryGetAssetPath, tryGetExtension, tryGetFile, tryGetFileAsset, tryGetIdFromString, tryGetImage, tryGetImageAsset, tryGetImageDimensions, tryGetProject, tryGetUrlFilename, tryGetUrlPath };\n//# sourceMappingURL=asset-utils.esm.js.map\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.SanityImageUrlBuilder = factory());\n})(this, (function () {\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg';\n function parseAssetId(ref) {\n var _ref$split = ref.split('-'),\n id = _ref$split[1],\n dimensionString = _ref$split[2],\n format = _ref$split[3];\n\n if (!id || !dimensionString || !format) {\n throw new Error(\"Malformed asset _ref '\" + ref + \"'. Expected an id like \\\"\" + example + \"\\\".\");\n }\n\n var _dimensionString$spli = dimensionString.split('x'),\n imgWidthStr = _dimensionString$spli[0],\n imgHeightStr = _dimensionString$spli[1];\n\n var width = +imgWidthStr;\n var height = +imgHeightStr;\n var isValidAssetId = isFinite(width) && isFinite(height);\n\n if (!isValidAssetId) {\n throw new Error(\"Malformed asset _ref '\" + ref + \"'. Expected an id like \\\"\" + example + \"\\\".\");\n }\n\n return {\n id: id,\n width: width,\n height: height,\n format: format\n };\n }\n\n var isRef = function isRef(src) {\n var source = src;\n return source ? typeof source._ref === 'string' : false;\n };\n\n var isAsset = function isAsset(src) {\n var source = src;\n return source ? typeof source._id === 'string' : false;\n };\n\n var isAssetStub = function isAssetStub(src) {\n var source = src;\n return source && source.asset ? typeof source.asset.url === 'string' : false;\n }; // Convert an asset-id, asset or image to an image record suitable for processing\n // eslint-disable-next-line complexity\n\n\n function parseSource(source) {\n if (!source) {\n return null;\n }\n\n var image;\n\n if (typeof source === 'string' && isUrl(source)) {\n // Someone passed an existing image url?\n image = {\n asset: {\n _ref: urlToId(source)\n }\n };\n } else if (typeof source === 'string') {\n // Just an asset id\n image = {\n asset: {\n _ref: source\n }\n };\n } else if (isRef(source)) {\n // We just got passed an asset directly\n image = {\n asset: source\n };\n } else if (isAsset(source)) {\n // If we were passed an image asset document\n image = {\n asset: {\n _ref: source._id || ''\n }\n };\n } else if (isAssetStub(source)) {\n // If we were passed a partial asset (`url`, but no `_id`)\n image = {\n asset: {\n _ref: urlToId(source.asset.url)\n }\n };\n } else if (typeof source.asset === 'object') {\n // Probably an actual image with materialized asset\n image = _extends({}, source);\n } else {\n // We got something that does not look like an image, or it is an image\n // that currently isn't sporting an asset.\n return null;\n }\n\n var img = source;\n\n if (img.crop) {\n image.crop = img.crop;\n }\n\n if (img.hotspot) {\n image.hotspot = img.hotspot;\n }\n\n return applyDefaults(image);\n }\n\n function isUrl(url) {\n return /^https?:\\/\\//.test(\"\" + url);\n }\n\n function urlToId(url) {\n var parts = url.split('/').slice(-1);\n return (\"image-\" + parts[0]).replace(/\\.([a-z]+)$/, '-$1');\n } // Mock crop and hotspot if image lacks it\n\n\n function applyDefaults(image) {\n if (image.crop && image.hotspot) {\n return image;\n } // We need to pad in default values for crop or hotspot\n\n\n var result = _extends({}, image);\n\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n };\n }\n\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0\n };\n }\n\n return result;\n }\n\n var SPEC_NAME_TO_URL_NAME_MAPPINGS = [['width', 'w'], ['height', 'h'], ['format', 'fm'], ['download', 'dl'], ['blur', 'blur'], ['sharpen', 'sharp'], ['invert', 'invert'], ['orientation', 'or'], ['minHeight', 'min-h'], ['maxHeight', 'max-h'], ['minWidth', 'min-w'], ['maxWidth', 'max-w'], ['quality', 'q'], ['fit', 'fit'], ['crop', 'crop'], ['saturation', 'sat'], ['auto', 'auto'], ['dpr', 'dpr'], ['pad', 'pad']];\n function urlForImage(options) {\n var spec = _extends({}, options || {});\n\n var source = spec.source;\n delete spec.source;\n var image = parseSource(source);\n\n if (!image) {\n throw new Error(\"Unable to resolve image URL from source (\" + JSON.stringify(source) + \")\");\n }\n\n var id = image.asset._ref || image.asset._id || '';\n var asset = parseAssetId(id); // Compute crop rect in terms of pixel coordinates in the raw source image\n\n var cropLeft = Math.round(image.crop.left * asset.width);\n var cropTop = Math.round(image.crop.top * asset.height);\n var crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop)\n }; // Compute hot spot rect in terms of pixel coordinates\n\n var hotSpotVerticalRadius = image.hotspot.height * asset.height / 2;\n var hotSpotHorizontalRadius = image.hotspot.width * asset.width / 2;\n var hotSpotCenterX = image.hotspot.x * asset.width;\n var hotSpotCenterY = image.hotspot.y * asset.height;\n var hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius\n }; // If irrelevant, or if we are requested to: don't perform crop/fit based on\n // the crop/hotspot.\n\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = _extends({}, spec, fit({\n crop: crop,\n hotspot: hotspot\n }, spec));\n }\n\n return specToImageUrl(_extends({}, spec, {\n asset: asset\n }));\n } // eslint-disable-next-line complexity\n\n function specToImageUrl(spec) {\n var cdnUrl = (spec.baseUrl || 'https://cdn.sanity.io').replace(/\\/+$/, '');\n var filename = spec.asset.id + \"-\" + spec.asset.width + \"x\" + spec.asset.height + \".\" + spec.asset.format;\n var baseUrl = cdnUrl + \"/images/\" + spec.projectId + \"/\" + spec.dataset + \"/\" + filename;\n var params = [];\n\n if (spec.rect) {\n // Only bother url with a crop if it actually crops anything\n var _spec$rect = spec.rect,\n left = _spec$rect.left,\n top = _spec$rect.top,\n width = _spec$rect.width,\n height = _spec$rect.height;\n var isEffectiveCrop = left !== 0 || top !== 0 || height !== spec.asset.height || width !== spec.asset.width;\n\n if (isEffectiveCrop) {\n params.push(\"rect=\" + left + \",\" + top + \",\" + width + \",\" + height);\n }\n }\n\n if (spec.bg) {\n params.push(\"bg=\" + spec.bg);\n }\n\n if (spec.focalPoint) {\n params.push(\"fp-x=\" + spec.focalPoint.x);\n params.push(\"fp-y=\" + spec.focalPoint.y);\n }\n\n var flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('');\n\n if (flip) {\n params.push(\"flip=\" + flip);\n } // Map from spec name to url param name, and allow using the actual param name as an alternative\n\n\n SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach(function (mapping) {\n var specName = mapping[0],\n param = mapping[1];\n\n if (typeof spec[specName] !== 'undefined') {\n params.push(param + \"=\" + encodeURIComponent(spec[specName]));\n } else if (typeof spec[param] !== 'undefined') {\n params.push(param + \"=\" + encodeURIComponent(spec[param]));\n }\n });\n\n if (params.length === 0) {\n return baseUrl;\n }\n\n return baseUrl + \"?\" + params.join('&');\n }\n\n function fit(source, spec) {\n var cropRect;\n var imgWidth = spec.width;\n var imgHeight = spec.height; // If we are not constraining the aspect ratio, we'll just use the whole crop\n\n if (!(imgWidth && imgHeight)) {\n return {\n width: imgWidth,\n height: imgHeight,\n rect: source.crop\n };\n }\n\n var crop = source.crop;\n var hotspot = source.hotspot; // If we are here, that means aspect ratio is locked and fitting will be a bit harder\n\n var desiredAspectRatio = imgWidth / imgHeight;\n var cropAspectRatio = crop.width / crop.height;\n\n if (cropAspectRatio > desiredAspectRatio) {\n // The crop is wider than the desired aspect ratio. That means we are cutting from the sides\n var height = Math.round(crop.height);\n var width = Math.round(height * desiredAspectRatio);\n var top = Math.max(0, Math.round(crop.top)); // Center output horizontally over hotspot\n\n var hotspotXCenter = Math.round((hotspot.right - hotspot.left) / 2 + hotspot.left);\n var left = Math.max(0, Math.round(hotspotXCenter - width / 2)); // Keep output within crop\n\n if (left < crop.left) {\n left = crop.left;\n } else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width;\n }\n\n cropRect = {\n left: left,\n top: top,\n width: width,\n height: height\n };\n } else {\n // The crop is taller than the desired ratio, we are cutting from top and bottom\n var _width = crop.width;\n\n var _height = Math.round(_width / desiredAspectRatio);\n\n var _left = Math.max(0, Math.round(crop.left)); // Center output vertically over hotspot\n\n\n var hotspotYCenter = Math.round((hotspot.bottom - hotspot.top) / 2 + hotspot.top);\n\n var _top = Math.max(0, Math.round(hotspotYCenter - _height / 2)); // Keep output rect within crop\n\n\n if (_top < crop.top) {\n _top = crop.top;\n } else if (_top + _height > crop.top + crop.height) {\n _top = crop.top + crop.height - _height;\n }\n\n cropRect = {\n left: _left,\n top: _top,\n width: _width,\n height: _height\n };\n }\n\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect\n };\n } // For backwards-compatibility\n\n var validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min'];\n var validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy'];\n var validAutoModes = ['format'];\n\n function isSanityModernClientLike(client) {\n return client && 'config' in client ? typeof client.config === 'function' : false;\n }\n\n function isSanityClientLike(client) {\n return client && 'clientConfig' in client ? typeof client.clientConfig === 'object' : false;\n }\n\n function rewriteSpecName(key) {\n var specs = SPEC_NAME_TO_URL_NAME_MAPPINGS;\n\n for (var _iterator = _createForOfIteratorHelperLoose(specs), _step; !(_step = _iterator()).done;) {\n var entry = _step.value;\n var specName = entry[0],\n param = entry[1];\n\n if (key === specName || key === param) {\n return specName;\n }\n }\n\n return key;\n }\n\n function urlBuilder(options) {\n // Did we get a modernish client?\n if (isSanityModernClientLike(options)) {\n // Inherit config from client\n var _options$config = options.config(),\n apiUrl = _options$config.apiHost,\n projectId = _options$config.projectId,\n dataset = _options$config.dataset;\n\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset\n });\n } // Did we get a SanityClient?\n\n\n var client = options;\n\n if (isSanityClientLike(client)) {\n // Inherit config from client\n var _client$clientConfig = client.clientConfig,\n _apiUrl = _client$clientConfig.apiHost,\n _projectId = _client$clientConfig.projectId,\n _dataset = _client$clientConfig.dataset;\n\n var _apiHost = _apiUrl || 'https://api.sanity.io';\n\n return new ImageUrlBuilder(null, {\n baseUrl: _apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: _projectId,\n dataset: _dataset\n });\n } // Or just accept the options as given\n\n\n return new ImageUrlBuilder(null, options);\n }\n var ImageUrlBuilder = /*#__PURE__*/function () {\n function ImageUrlBuilder(parent, options) {\n this.options = void 0;\n this.options = parent ? _extends({}, parent.options || {}, options || {}) // Merge parent options\n : _extends({}, options || {}); // Copy options\n }\n\n var _proto = ImageUrlBuilder.prototype;\n\n _proto.withOptions = function withOptions(options) {\n var baseUrl = options.baseUrl || this.options.baseUrl;\n var newOptions = {\n baseUrl: baseUrl\n };\n\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n var specKey = rewriteSpecName(key);\n newOptions[specKey] = options[key];\n }\n }\n\n return new ImageUrlBuilder(this, _extends({\n baseUrl: baseUrl\n }, newOptions));\n } // The image to be represented. Accepts a Sanity 'image'-document, 'asset'-document or\n // _id of asset. To get the benefit of automatic hot-spot/crop integration with the content\n // studio, the 'image'-document must be provided.\n ;\n\n _proto.image = function image(source) {\n return this.withOptions({\n source: source\n });\n } // Specify the dataset\n ;\n\n _proto.dataset = function dataset(_dataset2) {\n return this.withOptions({\n dataset: _dataset2\n });\n } // Specify the projectId\n ;\n\n _proto.projectId = function projectId(_projectId2) {\n return this.withOptions({\n projectId: _projectId2\n });\n } // Specify background color\n ;\n\n _proto.bg = function bg(_bg) {\n return this.withOptions({\n bg: _bg\n });\n } // Set DPR scaling factor\n ;\n\n _proto.dpr = function dpr(_dpr) {\n // A DPR of 1 is the default - so only include it if we have a different value\n return this.withOptions(_dpr && _dpr !== 1 ? {\n dpr: _dpr\n } : {});\n } // Specify the width of the image in pixels\n ;\n\n _proto.width = function width(_width) {\n return this.withOptions({\n width: _width\n });\n } // Specify the height of the image in pixels\n ;\n\n _proto.height = function height(_height) {\n return this.withOptions({\n height: _height\n });\n } // Specify focal point in fraction of image dimensions. Each component 0.0-1.0\n ;\n\n _proto.focalPoint = function focalPoint(x, y) {\n return this.withOptions({\n focalPoint: {\n x: x,\n y: y\n }\n });\n };\n\n _proto.maxWidth = function maxWidth(_maxWidth) {\n return this.withOptions({\n maxWidth: _maxWidth\n });\n };\n\n _proto.minWidth = function minWidth(_minWidth) {\n return this.withOptions({\n minWidth: _minWidth\n });\n };\n\n _proto.maxHeight = function maxHeight(_maxHeight) {\n return this.withOptions({\n maxHeight: _maxHeight\n });\n };\n\n _proto.minHeight = function minHeight(_minHeight) {\n return this.withOptions({\n minHeight: _minHeight\n });\n } // Specify width and height in pixels\n ;\n\n _proto.size = function size(width, height) {\n return this.withOptions({\n width: width,\n height: height\n });\n } // Specify blur between 0 and 100\n ;\n\n _proto.blur = function blur(_blur) {\n return this.withOptions({\n blur: _blur\n });\n };\n\n _proto.sharpen = function sharpen(_sharpen) {\n return this.withOptions({\n sharpen: _sharpen\n });\n } // Specify the desired rectangle of the image\n ;\n\n _proto.rect = function rect(left, top, width, height) {\n return this.withOptions({\n rect: {\n left: left,\n top: top,\n width: width,\n height: height\n }\n });\n } // Specify the image format of the image. 'jpg', 'pjpg', 'png', 'webp'\n ;\n\n _proto.format = function format(_format) {\n return this.withOptions({\n format: _format\n });\n };\n\n _proto.invert = function invert(_invert) {\n return this.withOptions({\n invert: _invert\n });\n } // Rotation in degrees 0, 90, 180, 270\n ;\n\n _proto.orientation = function orientation(_orientation) {\n return this.withOptions({\n orientation: _orientation\n });\n } // Compression quality 0-100\n ;\n\n _proto.quality = function quality(_quality) {\n return this.withOptions({\n quality: _quality\n });\n } // Make it a download link. Parameter is default filename.\n ;\n\n _proto.forceDownload = function forceDownload(download) {\n return this.withOptions({\n download: download\n });\n } // Flip image horizontally\n ;\n\n _proto.flipHorizontal = function flipHorizontal() {\n return this.withOptions({\n flipHorizontal: true\n });\n } // Flip image vertically\n ;\n\n _proto.flipVertical = function flipVertical() {\n return this.withOptions({\n flipVertical: true\n });\n } // Ignore crop/hotspot from image record, even when present\n ;\n\n _proto.ignoreImageParams = function ignoreImageParams() {\n return this.withOptions({\n ignoreImageParams: true\n });\n };\n\n _proto.fit = function fit(value) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(\"Invalid fit mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n fit: value\n });\n };\n\n _proto.crop = function crop(value) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(\"Invalid crop mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n crop: value\n });\n } // Saturation\n ;\n\n _proto.saturation = function saturation(_saturation) {\n return this.withOptions({\n saturation: _saturation\n });\n };\n\n _proto.auto = function auto(value) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(\"Invalid auto mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n auto: value\n });\n } // Specify the number of pixels to pad the image\n ;\n\n _proto.pad = function pad(_pad) {\n return this.withOptions({\n pad: _pad\n });\n } // Gets the url based on the submitted parameters\n ;\n\n _proto.url = function url() {\n return urlForImage(this.options);\n } // Alias for url()\n ;\n\n _proto.toString = function toString() {\n return this.url();\n };\n\n return ImageUrlBuilder;\n }();\n\n return urlBuilder;\n\n}));\n//# sourceMappingURL=image-url.umd.js.map\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar getIt = require('get-it');\nvar middleware = require('get-it/middleware');\nvar rxjs = require('rxjs');\nvar operators = require('rxjs/operators');\nvar envMiddleware = [];\nvar __defProp$3 = Object.defineProperty;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __publicField$3 = (obj, key, value) => {\n __defNormalProp$3(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst MAX_ITEMS_IN_ERROR_MESSAGE = 5;\nclass ClientError extends Error {\n constructor(res) {\n const props = extractErrorProps(res);\n super(props.message);\n __publicField$3(this, \"response\");\n __publicField$3(this, \"statusCode\", 400);\n __publicField$3(this, \"responseBody\");\n __publicField$3(this, \"details\");\n Object.assign(this, props);\n }\n}\nclass ServerError extends Error {\n constructor(res) {\n const props = extractErrorProps(res);\n super(props.message);\n __publicField$3(this, \"response\");\n __publicField$3(this, \"statusCode\", 500);\n __publicField$3(this, \"responseBody\");\n __publicField$3(this, \"details\");\n Object.assign(this, props);\n }\n}\nfunction extractErrorProps(res) {\n const body = res.body;\n const props = {\n response: res,\n statusCode: res.statusCode,\n responseBody: stringifyBody(body, res),\n message: \"\",\n details: void 0\n };\n if (body.error && body.message) {\n props.message = \"\".concat(body.error, \" - \").concat(body.message);\n return props;\n }\n if (isMutationError(body)) {\n const allItems = body.error.items || [];\n const items = allItems.slice(0, MAX_ITEMS_IN_ERROR_MESSAGE).map(item => {\n var _a;\n return (_a = item.error) == null ? void 0 : _a.description;\n }).filter(Boolean);\n let itemsStr = items.length ? \":\\n- \".concat(items.join(\"\\n- \")) : \"\";\n if (allItems.length > MAX_ITEMS_IN_ERROR_MESSAGE) {\n itemsStr += \"\\n...and \".concat(allItems.length - MAX_ITEMS_IN_ERROR_MESSAGE, \" more\");\n }\n props.message = \"\".concat(body.error.description).concat(itemsStr);\n props.details = body.error;\n return props;\n }\n if (body.error && body.error.description) {\n props.message = body.error.description;\n props.details = body.error;\n return props;\n }\n props.message = body.error || body.message || httpErrorMessage(res);\n return props;\n}\nfunction isMutationError(body) {\n return isPlainObject(body) && isPlainObject(body.error) && body.error.type === \"mutationError\" && typeof body.error.description === \"string\";\n}\nfunction isPlainObject(obj) {\n return typeof obj === \"object\" && obj !== null && !Array.isArray(obj);\n}\nfunction httpErrorMessage(res) {\n const statusMessage = res.statusMessage ? \" \".concat(res.statusMessage) : \"\";\n return \"\".concat(res.method, \"-request to \").concat(res.url, \" resulted in HTTP \").concat(res.statusCode).concat(statusMessage);\n}\nfunction stringifyBody(body, res) {\n const contentType = (res.headers[\"content-type\"] || \"\").toLowerCase();\n const isJson = contentType.indexOf(\"application/json\") !== -1;\n return isJson ? JSON.stringify(body, null, 2) : body;\n}\nconst httpError = {\n onResponse: res => {\n if (res.statusCode >= 500) {\n throw new ServerError(res);\n } else if (res.statusCode >= 400) {\n throw new ClientError(res);\n }\n return res;\n }\n};\nconst printWarnings = {\n onResponse: res => {\n const warn = res.headers[\"x-sanity-warning\"];\n const warnings = Array.isArray(warn) ? warn : [warn];\n warnings.filter(Boolean).forEach(msg => console.warn(msg));\n return res;\n }\n};\nfunction defineHttpRequest(envMiddleware, _ref) {\n let {\n maxRetries = 5,\n retryDelay\n } = _ref;\n const request = getIt.getIt([maxRetries > 0 ? middleware.retry({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n retryDelay,\n // This option is typed incorrectly in get-it.\n maxRetries,\n shouldRetry\n }) : {}, ...envMiddleware, printWarnings, middleware.jsonRequest(), middleware.jsonResponse(), middleware.progress(), httpError, middleware.observable({\n implementation: rxjs.Observable\n })]);\n function httpRequest(options) {\n let requester = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : request;\n return requester({\n maxRedirects: 0,\n ...options\n });\n }\n httpRequest.defaultRequester = request;\n return httpRequest;\n}\nfunction shouldRetry(err, attempt, options) {\n const isSafe = options.method === \"GET\" || options.method === \"HEAD\";\n const uri = options.uri || options.url;\n const isQuery = uri.startsWith(\"/data/query\");\n const isRetriableResponse = err.response && (err.response.statusCode === 429 || err.response.statusCode === 502 || err.response.statusCode === 503);\n if ((isSafe || isQuery) && isRetriableResponse) return true;\n return middleware.retry.shouldRetry(err, attempt, options);\n}\nconst BASE_URL = \"https://www.sanity.io/help/\";\nfunction generateHelpUrl(slug) {\n return BASE_URL + slug;\n}\nconst VALID_ASSET_TYPES = [\"image\", \"file\"];\nconst VALID_INSERT_LOCATIONS = [\"before\", \"after\", \"replace\"];\nconst dataset = name => {\n if (!/^(~[a-z0-9]{1}[-\\w]{0,63}|[a-z0-9]{1}[-\\w]{0,63})$/.test(name)) {\n throw new Error(\"Datasets can only contain lowercase characters, numbers, underscores and dashes, and start with tilde, and be maximum 64 characters\");\n }\n};\nconst projectId = id => {\n if (!/^[-a-z0-9]+$/i.test(id)) {\n throw new Error(\"`projectId` can only contain only a-z, 0-9 and dashes\");\n }\n};\nconst validateAssetType = type => {\n if (VALID_ASSET_TYPES.indexOf(type) === -1) {\n throw new Error(\"Invalid asset type: \".concat(type, \". Must be one of \").concat(VALID_ASSET_TYPES.join(\", \")));\n }\n};\nconst validateObject = (op, val) => {\n if (val === null || typeof val !== \"object\" || Array.isArray(val)) {\n throw new Error(\"\".concat(op, \"() takes an object of properties\"));\n }\n};\nconst validateDocumentId = (op, id) => {\n if (typeof id !== \"string\" || !/^[a-z0-9_][a-z0-9_.-]{0,127}$/i.test(id) || id.includes(\"..\")) {\n throw new Error(\"\".concat(op, '(): \"').concat(id, '\" is not a valid document ID'));\n }\n};\nconst requireDocumentId = (op, doc) => {\n if (!doc._id) {\n throw new Error(\"\".concat(op, '() requires that the document contains an ID (\"_id\" property)'));\n }\n validateDocumentId(op, doc._id);\n};\nconst validateInsert = (at, selector, items) => {\n const signature = \"insert(at, selector, items)\";\n if (VALID_INSERT_LOCATIONS.indexOf(at) === -1) {\n const valid = VALID_INSERT_LOCATIONS.map(loc => '\"'.concat(loc, '\"')).join(\", \");\n throw new Error(\"\".concat(signature, ' takes an \"at\"-argument which is one of: ').concat(valid));\n }\n if (typeof selector !== \"string\") {\n throw new Error(\"\".concat(signature, ' takes a \"selector\"-argument which must be a string'));\n }\n if (!Array.isArray(items)) {\n throw new Error(\"\".concat(signature, ' takes an \"items\"-argument which must be an array'));\n }\n};\nconst hasDataset = config => {\n if (!config.dataset) {\n throw new Error(\"`dataset` must be provided to perform queries\");\n }\n return config.dataset || \"\";\n};\nconst requestTag = tag => {\n if (typeof tag !== \"string\" || !/^[a-z0-9._-]{1,75}$/i.test(tag)) {\n throw new Error(\"Tag can only contain alphanumeric characters, underscores, dashes and dots, and be between one and 75 characters long.\");\n }\n return tag;\n};\nfunction once(fn) {\n let didCall = false;\n let returnValue;\n return function () {\n if (didCall) {\n return returnValue;\n }\n returnValue = fn(...arguments);\n didCall = true;\n return returnValue;\n };\n}\nconst createWarningPrinter = message =>\n// eslint-disable-next-line no-console\nonce(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return console.warn(message.join(\" \"), ...args);\n});\nconst printCdnWarning = createWarningPrinter([\"Since you haven't set a value for `useCdn`, we will deliver content using our\", \"global, edge-cached API-CDN. If you wish to have content delivered faster, set\", \"`useCdn: false` to use the Live API. Note: You may incur higher costs using the live API.\"]);\nconst printCdnPreviewDraftsWarning = createWarningPrinter([\"The Sanity client is configured with the `perspective` set to `previewDrafts`, which doesn't support the API-CDN.\", \"The Live API will be used instead. Set `useCdn: false` in your configuration to hide this warning.\"]);\nconst printBrowserTokenWarning = createWarningPrinter([\"You have configured Sanity client to use a token in the browser. This may cause unintentional security issues.\", \"See \".concat(generateHelpUrl(\"js-client-browser-token\"), \" for more information and how to hide this warning.\")]);\nconst printNoApiVersionSpecifiedWarning = createWarningPrinter([\"Using the Sanity client without specifying an API version is deprecated.\", \"See \".concat(generateHelpUrl(\"js-client-api-version\"))]);\nconst printNoDefaultExport = createWarningPrinter([\"The default export of @sanity/client has been deprecated. Use the named export `createClient` instead.\"]);\nconst defaultCdnHost = \"apicdn.sanity.io\";\nconst defaultConfig = {\n apiHost: \"https://api.sanity.io\",\n apiVersion: \"1\",\n useProjectHostname: true\n};\nconst LOCALHOSTS = [\"localhost\", \"127.0.0.1\", \"0.0.0.0\"];\nconst isLocal = host => LOCALHOSTS.indexOf(host) !== -1;\nconst validateApiVersion = function validateApiVersion2(apiVersion) {\n if (apiVersion === \"1\" || apiVersion === \"X\") {\n return;\n }\n const apiDate = new Date(apiVersion);\n const apiVersionValid = /^\\d{4}-\\d{2}-\\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0;\n if (!apiVersionValid) {\n throw new Error(\"Invalid API version string, expected `1` or date in format `YYYY-MM-DD`\");\n }\n};\nconst validateApiPerspective = function validateApiPerspective2(perspective) {\n switch (perspective) {\n case \"previewDrafts\":\n case \"published\":\n case \"raw\":\n return;\n default:\n throw new TypeError(\"Invalid API perspective string, expected `published`, `previewDrafts` or `raw`\");\n }\n};\nconst initConfig = (config, prevConfig) => {\n const specifiedConfig = Object.assign({}, prevConfig, config);\n if (!specifiedConfig.apiVersion) {\n printNoApiVersionSpecifiedWarning();\n }\n const newConfig = Object.assign({}, defaultConfig, specifiedConfig);\n const projectBased = newConfig.useProjectHostname;\n if (typeof Promise === \"undefined\") {\n const helpUrl = generateHelpUrl(\"js-client-promise-polyfill\");\n throw new Error(\"No native Promise-implementation found, polyfill needed - see \".concat(helpUrl));\n }\n if (projectBased && !newConfig.projectId) {\n throw new Error(\"Configuration must contain `projectId`\");\n }\n if (typeof newConfig.perspective === \"string\") {\n validateApiPerspective(newConfig.perspective);\n }\n if (\"encodeSourceMapAtPath\" in newConfig || \"encodeSourceMap\" in newConfig || \"studioUrl\" in newConfig || \"logger\" in newConfig) {\n throw new Error(\"It looks like you're using options meant for '@sanity/preview-kit/client', such as 'encodeSourceMapAtPath', 'encodeSourceMap', 'studioUrl' and 'logger'. Make sure you're using the right import.\");\n }\n const isBrowser = typeof window !== \"undefined\" && window.location && window.location.hostname;\n const isLocalhost = isBrowser && isLocal(window.location.hostname);\n if (isBrowser && isLocalhost && newConfig.token && newConfig.ignoreBrowserTokenWarning !== true) {\n printBrowserTokenWarning();\n } else if (typeof newConfig.useCdn === \"undefined\") {\n printCdnWarning();\n }\n if (projectBased) {\n projectId(newConfig.projectId);\n }\n if (newConfig.dataset) {\n dataset(newConfig.dataset);\n }\n if (\"requestTagPrefix\" in newConfig) {\n newConfig.requestTagPrefix = newConfig.requestTagPrefix ? requestTag(newConfig.requestTagPrefix).replace(/\\.+$/, \"\") : void 0;\n }\n newConfig.apiVersion = \"\".concat(newConfig.apiVersion).replace(/^v/, \"\");\n newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost;\n newConfig.useCdn = newConfig.useCdn !== false && !newConfig.withCredentials;\n validateApiVersion(newConfig.apiVersion);\n const hostParts = newConfig.apiHost.split(\"://\", 2);\n const protocol = hostParts[0];\n const host = hostParts[1];\n const cdnHost = newConfig.isDefaultApi ? defaultCdnHost : host;\n if (newConfig.useProjectHostname) {\n newConfig.url = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(host, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(cdnHost, \"/v\").concat(newConfig.apiVersion);\n } else {\n newConfig.url = \"\".concat(newConfig.apiHost, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = newConfig.url;\n }\n return newConfig;\n};\nconst projectHeader = \"X-Sanity-Project-ID\";\nfunction requestOptions(config) {\n let overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const headers = {};\n const token = overrides.token || config.token;\n if (token) {\n headers.Authorization = \"Bearer \".concat(token);\n }\n if (!overrides.useGlobalApi && !config.useProjectHostname && config.projectId) {\n headers[projectHeader] = config.projectId;\n }\n const withCredentials = Boolean(typeof overrides.withCredentials === \"undefined\" ? config.token || config.withCredentials : overrides.withCredentials);\n const timeout = typeof overrides.timeout === \"undefined\" ? config.timeout : overrides.timeout;\n return Object.assign({}, overrides, {\n headers: Object.assign({}, headers, overrides.headers || {}),\n timeout: typeof timeout === \"undefined\" ? 5 * 60 * 1e3 : timeout,\n proxy: overrides.proxy || config.proxy,\n json: true,\n withCredentials,\n fetch: typeof overrides.fetch === \"object\" && typeof config.fetch === \"object\" ? {\n ...config.fetch,\n ...overrides.fetch\n } : overrides.fetch || config.fetch\n });\n}\nfunction getSelection(sel) {\n if (typeof sel === \"string\" || Array.isArray(sel)) {\n return {\n id: sel\n };\n }\n if (typeof sel === \"object\" && sel !== null && \"query\" in sel && typeof sel.query === \"string\") {\n return \"params\" in sel && typeof sel.params === \"object\" && sel.params !== null ? {\n query: sel.query,\n params: sel.params\n } : {\n query: sel.query\n };\n }\n const selectionOpts = [\"* Document ID ()\", \"* Array of document IDs\", \"* Object containing `query`\"].join(\"\\n\");\n throw new Error(\"Unknown selection - must be one of:\\n\\n\".concat(selectionOpts));\n}\nconst encodeQueryString = _ref2 => {\n let {\n query,\n params = {},\n options = {}\n } = _ref2;\n const searchParams = new URLSearchParams();\n const {\n tag,\n ...opts\n } = options;\n if (tag) searchParams.append(\"tag\", tag);\n searchParams.append(\"query\", query);\n for (const [key, value] of Object.entries(params)) {\n searchParams.append(\"$\".concat(key), JSON.stringify(value));\n }\n for (const [key, value] of Object.entries(opts)) {\n if (value) searchParams.append(key, \"\".concat(value));\n }\n return \"?\".concat(searchParams);\n};\nvar __defProp$2 = Object.defineProperty;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __publicField$2 = (obj, key, value) => {\n __defNormalProp$2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck$6 = (obj, member, msg) => {\n if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet$6 = (obj, member, getter) => {\n __accessCheck$6(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd$6 = (obj, member, value) => {\n if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet$6 = (obj, member, value, setter) => {\n __accessCheck$6(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _client$5, _client2$5;\nclass BasePatch {\n constructor(selection) {\n let operations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n __publicField$2(this, \"selection\");\n __publicField$2(this, \"operations\");\n this.selection = selection;\n this.operations = operations;\n }\n /**\n * Sets the given attributes to the document. Does NOT merge objects.\n * The operation is added to the current patch, ready to be commited by `commit()`\n *\n * @param attrs - Attributes to set. To set a deep attribute, use JSONMatch, eg: \\{\"nested.prop\": \"value\"\\}\n */\n set(attrs) {\n return this._assign(\"set\", attrs);\n }\n /**\n * Sets the given attributes to the document if they are not currently set. Does NOT merge objects.\n * The operation is added to the current patch, ready to be commited by `commit()`\n *\n * @param attrs - Attributes to set. To set a deep attribute, use JSONMatch, eg: \\{\"nested.prop\": \"value\"\\}\n */\n setIfMissing(attrs) {\n return this._assign(\"setIfMissing\", attrs);\n }\n /**\n * Performs a \"diff-match-patch\" operation on the string attributes provided.\n * The operation is added to the current patch, ready to be commited by `commit()`\n *\n * @param attrs - Attributes to perform operation on. To set a deep attribute, use JSONMatch, eg: \\{\"nested.prop\": \"dmp\"\\}\n */\n diffMatchPatch(attrs) {\n validateObject(\"diffMatchPatch\", attrs);\n return this._assign(\"diffMatchPatch\", attrs);\n }\n /**\n * Unsets the attribute paths provided.\n * The operation is added to the current patch, ready to be commited by `commit()`\n *\n * @param attrs - Attribute paths to unset.\n */\n unset(attrs) {\n if (!Array.isArray(attrs)) {\n throw new Error(\"unset(attrs) takes an array of attributes to unset, non-array given\");\n }\n this.operations = Object.assign({}, this.operations, {\n unset: attrs\n });\n return this;\n }\n /**\n * Increment a numeric value. Each entry in the argument is either an attribute or a JSON path. The value may be a positive or negative integer or floating-point value. The operation will fail if target value is not a numeric value, or doesn't exist.\n *\n * @param attrs - Object of attribute paths to increment, values representing the number to increment by.\n */\n inc(attrs) {\n return this._assign(\"inc\", attrs);\n }\n /**\n * Decrement a numeric value. Each entry in the argument is either an attribute or a JSON path. The value may be a positive or negative integer or floating-point value. The operation will fail if target value is not a numeric value, or doesn't exist.\n *\n * @param attrs - Object of attribute paths to decrement, values representing the number to decrement by.\n */\n dec(attrs) {\n return this._assign(\"dec\", attrs);\n }\n /**\n * Provides methods for modifying arrays, by inserting, appending and replacing elements via a JSONPath expression.\n *\n * @param at - Location to insert at, relative to the given selector, or 'replace' the matched path\n * @param selector - JSONPath expression, eg `comments[-1]` or `blocks[_key==\"abc123\"]`\n * @param items - Array of items to insert/replace\n */\n insert(at, selector, items) {\n validateInsert(at, selector, items);\n return this._assign(\"insert\", {\n [at]: selector,\n items\n });\n }\n /**\n * Append the given items to the array at the given JSONPath\n *\n * @param selector - Attribute/path to append to, eg `comments` or `person.hobbies`\n * @param items - Array of items to append to the array\n */\n append(selector, items) {\n return this.insert(\"after\", \"\".concat(selector, \"[-1]\"), items);\n }\n /**\n * Prepend the given items to the array at the given JSONPath\n *\n * @param selector - Attribute/path to prepend to, eg `comments` or `person.hobbies`\n * @param items - Array of items to prepend to the array\n */\n prepend(selector, items) {\n return this.insert(\"before\", \"\".concat(selector, \"[0]\"), items);\n }\n /**\n * Change the contents of an array by removing existing elements and/or adding new elements.\n *\n * @param selector - Attribute or JSONPath expression for array\n * @param start - Index at which to start changing the array (with origin 0). If greater than the length of the array, actual starting index will be set to the length of the array. If negative, will begin that many elements from the end of the array (with origin -1) and will be set to 0 if absolute value is greater than the length of the array.x\n * @param deleteCount - An integer indicating the number of old array elements to remove.\n * @param items - The elements to add to the array, beginning at the start index. If you don't specify any elements, splice() will only remove elements from the array.\n */\n splice(selector, start, deleteCount, items) {\n const delAll = typeof deleteCount === \"undefined\" || deleteCount === -1;\n const startIndex = start < 0 ? start - 1 : start;\n const delCount = delAll ? -1 : Math.max(0, start + deleteCount);\n const delRange = startIndex < 0 && delCount >= 0 ? \"\" : delCount;\n const rangeSelector = \"\".concat(selector, \"[\").concat(startIndex, \":\").concat(delRange, \"]\");\n return this.insert(\"replace\", rangeSelector, items || []);\n }\n /**\n * Adds a revision clause, preventing the document from being patched if the `_rev` property does not match the given value\n *\n * @param rev - Revision to lock the patch to\n */\n ifRevisionId(rev) {\n this.operations.ifRevisionID = rev;\n return this;\n }\n /**\n * Return a plain JSON representation of the patch\n */\n serialize() {\n return {\n ...getSelection(this.selection),\n ...this.operations\n };\n }\n /**\n * Return a plain JSON representation of the patch\n */\n toJSON() {\n return this.serialize();\n }\n /**\n * Clears the patch of all operations\n */\n reset() {\n this.operations = {};\n return this;\n }\n _assign(op, props) {\n let merge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n validateObject(op, props);\n this.operations = Object.assign({}, this.operations, {\n [op]: Object.assign({}, merge && this.operations[op] || {}, props)\n });\n return this;\n }\n _set(op, props) {\n return this._assign(op, props, false);\n }\n}\nconst _ObservablePatch = class _ObservablePatch extends BasePatch {\n constructor(selection, operations, client) {\n super(selection, operations);\n __privateAdd$6(this, _client$5, void 0);\n __privateSet$6(this, _client$5, client);\n }\n /**\n * Clones the patch\n */\n clone() {\n return new _ObservablePatch(this.selection, {\n ...this.operations\n }, __privateGet$6(this, _client$5));\n }\n commit(options) {\n if (!__privateGet$6(this, _client$5)) {\n throw new Error(\"No `client` passed to patch, either provide one or pass the patch to a clients `mutate()` method\");\n }\n const returnFirst = typeof this.selection === \"string\";\n const opts = Object.assign({\n returnFirst,\n returnDocuments: true\n }, options);\n return __privateGet$6(this, _client$5).mutate({\n patch: this.serialize()\n }, opts);\n }\n};\n_client$5 = new WeakMap();\nlet ObservablePatch = _ObservablePatch;\nconst _Patch = class _Patch extends BasePatch {\n constructor(selection, operations, client) {\n super(selection, operations);\n __privateAdd$6(this, _client2$5, void 0);\n __privateSet$6(this, _client2$5, client);\n }\n /**\n * Clones the patch\n */\n clone() {\n return new _Patch(this.selection, {\n ...this.operations\n }, __privateGet$6(this, _client2$5));\n }\n commit(options) {\n if (!__privateGet$6(this, _client2$5)) {\n throw new Error(\"No `client` passed to patch, either provide one or pass the patch to a clients `mutate()` method\");\n }\n const returnFirst = typeof this.selection === \"string\";\n const opts = Object.assign({\n returnFirst,\n returnDocuments: true\n }, options);\n return __privateGet$6(this, _client2$5).mutate({\n patch: this.serialize()\n }, opts);\n }\n};\n_client2$5 = new WeakMap();\nlet Patch = _Patch;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck$5 = (obj, member, msg) => {\n if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet$5 = (obj, member, getter) => {\n __accessCheck$5(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd$5 = (obj, member, value) => {\n if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet$5 = (obj, member, value, setter) => {\n __accessCheck$5(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _client$4, _client2$4;\nconst defaultMutateOptions = {\n returnDocuments: false\n};\nclass BaseTransaction {\n constructor() {\n let operations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let transactionId = arguments.length > 1 ? arguments[1] : undefined;\n __publicField$1(this, \"operations\");\n __publicField$1(this, \"trxId\");\n this.operations = operations;\n this.trxId = transactionId;\n }\n /**\n * Creates a new Sanity document. If `_id` is provided and already exists, the mutation will fail. If no `_id` is given, one will automatically be generated by the database.\n * The operation is added to the current transaction, ready to be commited by `commit()`\n *\n * @param doc - Document to create. Requires a `_type` property.\n */\n create(doc) {\n validateObject(\"create\", doc);\n return this._add({\n create: doc\n });\n }\n /**\n * Creates a new Sanity document. If a document with the same `_id` already exists, the create operation will be ignored.\n * The operation is added to the current transaction, ready to be commited by `commit()`\n *\n * @param doc - Document to create if it does not already exist. Requires `_id` and `_type` properties.\n */\n createIfNotExists(doc) {\n const op = \"createIfNotExists\";\n validateObject(op, doc);\n requireDocumentId(op, doc);\n return this._add({\n [op]: doc\n });\n }\n /**\n * Creates a new Sanity document, or replaces an existing one if the same `_id` is already used.\n * The operation is added to the current transaction, ready to be commited by `commit()`\n *\n * @param doc - Document to create or replace. Requires `_id` and `_type` properties.\n */\n createOrReplace(doc) {\n const op = \"createOrReplace\";\n validateObject(op, doc);\n requireDocumentId(op, doc);\n return this._add({\n [op]: doc\n });\n }\n /**\n * Deletes the document with the given document ID\n * The operation is added to the current transaction, ready to be commited by `commit()`\n *\n * @param documentId - Document ID to delete\n */\n delete(documentId) {\n validateDocumentId(\"delete\", documentId);\n return this._add({\n delete: {\n id: documentId\n }\n });\n }\n transactionId(id) {\n if (!id) {\n return this.trxId;\n }\n this.trxId = id;\n return this;\n }\n /**\n * Return a plain JSON representation of the transaction\n */\n serialize() {\n return [...this.operations];\n }\n /**\n * Return a plain JSON representation of the transaction\n */\n toJSON() {\n return this.serialize();\n }\n /**\n * Clears the transaction of all operations\n */\n reset() {\n this.operations = [];\n return this;\n }\n _add(mut) {\n this.operations.push(mut);\n return this;\n }\n}\nconst _Transaction = class _Transaction extends BaseTransaction {\n constructor(operations, client, transactionId) {\n super(operations, transactionId);\n __privateAdd$5(this, _client$4, void 0);\n __privateSet$5(this, _client$4, client);\n }\n /**\n * Clones the transaction\n */\n clone() {\n return new _Transaction([...this.operations], __privateGet$5(this, _client$4), this.trxId);\n }\n commit(options) {\n if (!__privateGet$5(this, _client$4)) {\n throw new Error(\"No `client` passed to transaction, either provide one or pass the transaction to a clients `mutate()` method\");\n }\n return __privateGet$5(this, _client$4).mutate(this.serialize(), Object.assign({\n transactionId: this.trxId\n }, defaultMutateOptions, options || {}));\n }\n patch(patchOrDocumentId, patchOps) {\n const isBuilder = typeof patchOps === \"function\";\n const isPatch = typeof patchOrDocumentId !== \"string\" && patchOrDocumentId instanceof Patch;\n if (isPatch) {\n return this._add({\n patch: patchOrDocumentId.serialize()\n });\n }\n if (isBuilder) {\n const patch = patchOps(new Patch(patchOrDocumentId, {}, __privateGet$5(this, _client$4)));\n if (!(patch instanceof Patch)) {\n throw new Error(\"function passed to `patch()` must return the patch\");\n }\n return this._add({\n patch: patch.serialize()\n });\n }\n return this._add({\n patch: {\n id: patchOrDocumentId,\n ...patchOps\n }\n });\n }\n};\n_client$4 = new WeakMap();\nlet Transaction = _Transaction;\nconst _ObservableTransaction = class _ObservableTransaction extends BaseTransaction {\n constructor(operations, client, transactionId) {\n super(operations, transactionId);\n __privateAdd$5(this, _client2$4, void 0);\n __privateSet$5(this, _client2$4, client);\n }\n /**\n * Clones the transaction\n */\n clone() {\n return new _ObservableTransaction([...this.operations], __privateGet$5(this, _client2$4), this.trxId);\n }\n commit(options) {\n if (!__privateGet$5(this, _client2$4)) {\n throw new Error(\"No `client` passed to transaction, either provide one or pass the transaction to a clients `mutate()` method\");\n }\n return __privateGet$5(this, _client2$4).mutate(this.serialize(), Object.assign({\n transactionId: this.trxId\n }, defaultMutateOptions, options || {}));\n }\n patch(patchOrDocumentId, patchOps) {\n const isBuilder = typeof patchOps === \"function\";\n const isPatch = typeof patchOrDocumentId !== \"string\" && patchOrDocumentId instanceof ObservablePatch;\n if (isPatch) {\n return this._add({\n patch: patchOrDocumentId.serialize()\n });\n }\n if (isBuilder) {\n const patch = patchOps(new ObservablePatch(patchOrDocumentId, {}, __privateGet$5(this, _client2$4)));\n if (!(patch instanceof ObservablePatch)) {\n throw new Error(\"function passed to `patch()` must return the patch\");\n }\n return this._add({\n patch: patch.serialize()\n });\n }\n return this._add({\n patch: {\n id: patchOrDocumentId,\n ...patchOps\n }\n });\n }\n};\n_client2$4 = new WeakMap();\nlet ObservableTransaction = _ObservableTransaction;\nconst excludeFalsey = (param, defValue) => {\n const value = typeof param === \"undefined\" ? defValue : param;\n return param === false ? void 0 : value;\n};\nconst getMutationQuery = function () {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n dryRun: options.dryRun,\n returnIds: true,\n returnDocuments: excludeFalsey(options.returnDocuments, true),\n visibility: options.visibility || \"sync\",\n autoGenerateArrayKeys: options.autoGenerateArrayKeys,\n skipCrossDatasetReferenceValidation: options.skipCrossDatasetReferenceValidation\n };\n};\nconst isResponse = event => event.type === \"response\";\nconst getBody = event => event.body;\nconst indexBy = (docs, attr) => docs.reduce((indexed, doc) => {\n indexed[attr(doc)] = doc;\n return indexed;\n}, /* @__PURE__ */Object.create(null));\nconst getQuerySizeLimit = 11264;\nfunction _fetch(client, httpRequest, query, params) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n const mapResponse = options.filterResponse === false ? res => res : res => res.result;\n const {\n cache,\n next,\n ...opts\n } = {\n // Opt out of setting a `signal` on an internal `fetch` if one isn't provided.\n // This is necessary in React Server Components to avoid opting out of Request Memoization.\n useAbortSignal: typeof options.signal !== \"undefined\",\n ...options\n };\n const reqOpts = typeof cache !== \"undefined\" || typeof next !== \"undefined\" ? {\n ...opts,\n fetch: {\n cache,\n next\n }\n } : opts;\n return _dataRequest(client, httpRequest, \"query\", {\n query,\n params\n }, reqOpts).pipe(operators.map(mapResponse));\n}\nfunction _getDocument(client, httpRequest, id) {\n let opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const options = {\n uri: _getDataUrl(client, \"doc\", id),\n json: true,\n tag: opts.tag\n };\n return _requestObservable(client, httpRequest, options).pipe(operators.filter(isResponse), operators.map(event => event.body.documents && event.body.documents[0]));\n}\nfunction _getDocuments(client, httpRequest, ids) {\n let opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const options = {\n uri: _getDataUrl(client, \"doc\", ids.join(\",\")),\n json: true,\n tag: opts.tag\n };\n return _requestObservable(client, httpRequest, options).pipe(operators.filter(isResponse), operators.map(event => {\n const indexed = indexBy(event.body.documents || [], doc => doc._id);\n return ids.map(id => indexed[id] || null);\n }));\n}\nfunction _createIfNotExists(client, httpRequest, doc, options) {\n requireDocumentId(\"createIfNotExists\", doc);\n return _create(client, httpRequest, doc, \"createIfNotExists\", options);\n}\nfunction _createOrReplace(client, httpRequest, doc, options) {\n requireDocumentId(\"createOrReplace\", doc);\n return _create(client, httpRequest, doc, \"createOrReplace\", options);\n}\nfunction _delete(client, httpRequest, selection, options) {\n return _dataRequest(client, httpRequest, \"mutate\", {\n mutations: [{\n delete: getSelection(selection)\n }]\n }, options);\n}\nfunction _mutate(client, httpRequest, mutations, options) {\n let mut;\n if (mutations instanceof Patch || mutations instanceof ObservablePatch) {\n mut = {\n patch: mutations.serialize()\n };\n } else if (mutations instanceof Transaction || mutations instanceof ObservableTransaction) {\n mut = mutations.serialize();\n } else {\n mut = mutations;\n }\n const muts = Array.isArray(mut) ? mut : [mut];\n const transactionId = options && options.transactionId || void 0;\n return _dataRequest(client, httpRequest, \"mutate\", {\n mutations: muts,\n transactionId\n }, options);\n}\nfunction _dataRequest(client, httpRequest, endpoint, body) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n const isMutation = endpoint === \"mutate\";\n const isQuery = endpoint === \"query\";\n const strQuery = isMutation ? \"\" : encodeQueryString(body);\n const useGet = !isMutation && strQuery.length < getQuerySizeLimit;\n const stringQuery = useGet ? strQuery : \"\";\n const returnFirst = options.returnFirst;\n const {\n timeout,\n token,\n tag,\n headers\n } = options;\n const uri = _getDataUrl(client, endpoint, stringQuery);\n const reqOptions = {\n method: useGet ? \"GET\" : \"POST\",\n uri,\n json: true,\n body: useGet ? void 0 : body,\n query: isMutation && getMutationQuery(options),\n timeout,\n headers,\n token,\n tag,\n perspective: options.perspective,\n resultSourceMap: options.resultSourceMap,\n canUseCdn: isQuery,\n signal: options.signal,\n fetch: options.fetch,\n useAbortSignal: options.useAbortSignal\n };\n return _requestObservable(client, httpRequest, reqOptions).pipe(operators.filter(isResponse), operators.map(getBody), operators.map(res => {\n if (!isMutation) {\n return res;\n }\n const results = res.results || [];\n if (options.returnDocuments) {\n return returnFirst ? results[0] && results[0].document : results.map(mut => mut.document);\n }\n const key = returnFirst ? \"documentId\" : \"documentIds\";\n const ids = returnFirst ? results[0] && results[0].id : results.map(mut => mut.id);\n return {\n transactionId: res.transactionId,\n results,\n [key]: ids\n };\n }));\n}\nfunction _create(client, httpRequest, doc, op) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n const mutation = {\n [op]: doc\n };\n const opts = Object.assign({\n returnFirst: true,\n returnDocuments: true\n }, options);\n return _dataRequest(client, httpRequest, \"mutate\", {\n mutations: [mutation]\n }, opts);\n}\nfunction _requestObservable(client, httpRequest, options) {\n var _a;\n const uri = options.url || options.uri;\n const config = client.config();\n const canUseCdn = typeof options.canUseCdn === \"undefined\" ? [\"GET\", \"HEAD\"].indexOf(options.method || \"GET\") >= 0 && uri.indexOf(\"/data/\") === 0 : options.canUseCdn;\n let useCdn = config.useCdn && canUseCdn;\n const tag = options.tag && config.requestTagPrefix ? [config.requestTagPrefix, options.tag].join(\".\") : options.tag || config.requestTagPrefix;\n if (tag) {\n options.query = {\n tag: requestTag(tag),\n ...options.query\n };\n }\n if ([\"GET\", \"HEAD\", \"POST\"].indexOf(options.method || \"GET\") >= 0 && uri.indexOf(\"/data/query/\") === 0) {\n if ((_a = options.resultSourceMap) != null ? _a : config.resultSourceMap) {\n options.query = {\n resultSourceMap: true,\n ...options.query\n };\n }\n const perspective = options.perspective || config.perspective;\n if (typeof perspective === \"string\" && perspective !== \"raw\") {\n validateApiPerspective(perspective);\n options.query = {\n perspective,\n ...options.query\n };\n if (perspective === \"previewDrafts\" && useCdn) {\n useCdn = false;\n printCdnPreviewDraftsWarning();\n }\n }\n }\n const reqOptions = requestOptions(config, Object.assign({}, options, {\n url: _getUrl(client, uri, useCdn)\n }));\n const request = new rxjs.Observable(subscriber => httpRequest(reqOptions, config.requester).subscribe(subscriber));\n return options.signal ? request.pipe(_withAbortSignal(options.signal)) : request;\n}\nfunction _request(client, httpRequest, options) {\n const observable = _requestObservable(client, httpRequest, options).pipe(operators.filter(event => event.type === \"response\"), operators.map(event => event.body));\n return observable;\n}\nfunction _getDataUrl(client, operation, path) {\n const config = client.config();\n const catalog = hasDataset(config);\n const baseUri = \"/\".concat(operation, \"/\").concat(catalog);\n const uri = path ? \"\".concat(baseUri, \"/\").concat(path) : baseUri;\n return \"/data\".concat(uri).replace(/\\/($|\\?)/, \"$1\");\n}\nfunction _getUrl(client, uri) {\n let canUseCdn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const {\n url,\n cdnUrl\n } = client.config();\n const base = canUseCdn ? cdnUrl : url;\n return \"\".concat(base, \"/\").concat(uri.replace(/^\\//, \"\"));\n}\nfunction _withAbortSignal(signal) {\n return input => {\n return new rxjs.Observable(observer => {\n const abort = () => observer.error(_createAbortError(signal));\n if (signal && signal.aborted) {\n abort();\n return;\n }\n const subscription = input.subscribe(observer);\n signal.addEventListener(\"abort\", abort);\n return () => {\n signal.removeEventListener(\"abort\", abort);\n subscription.unsubscribe();\n };\n });\n };\n}\nconst isDomExceptionSupported = Boolean(globalThis.DOMException);\nfunction _createAbortError(signal) {\n var _a, _b;\n if (isDomExceptionSupported) {\n return new DOMException((_a = signal == null ? void 0 : signal.reason) != null ? _a : \"The operation was aborted.\", \"AbortError\");\n }\n const error = new Error((_b = signal == null ? void 0 : signal.reason) != null ? _b : \"The operation was aborted.\");\n error.name = \"AbortError\";\n return error;\n}\nvar __accessCheck$4 = (obj, member, msg) => {\n if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet$4 = (obj, member, getter) => {\n __accessCheck$4(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd$4 = (obj, member, value) => {\n if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet$4 = (obj, member, value, setter) => {\n __accessCheck$4(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _client$3, _httpRequest$4, _client2$3, _httpRequest2$4;\nclass ObservableAssetsClient {\n constructor(client, httpRequest) {\n __privateAdd$4(this, _client$3, void 0);\n __privateAdd$4(this, _httpRequest$4, void 0);\n __privateSet$4(this, _client$3, client);\n __privateSet$4(this, _httpRequest$4, httpRequest);\n }\n upload(assetType, body, options) {\n return _upload(__privateGet$4(this, _client$3), __privateGet$4(this, _httpRequest$4), assetType, body, options);\n }\n}\n_client$3 = new WeakMap();\n_httpRequest$4 = new WeakMap();\nclass AssetsClient {\n constructor(client, httpRequest) {\n __privateAdd$4(this, _client2$3, void 0);\n __privateAdd$4(this, _httpRequest2$4, void 0);\n __privateSet$4(this, _client2$3, client);\n __privateSet$4(this, _httpRequest2$4, httpRequest);\n }\n upload(assetType, body, options) {\n const observable = _upload(__privateGet$4(this, _client2$3), __privateGet$4(this, _httpRequest2$4), assetType, body, options);\n return rxjs.lastValueFrom(observable.pipe(operators.filter(event => event.type === \"response\"), operators.map(event => event.body.document)));\n }\n}\n_client2$3 = new WeakMap();\n_httpRequest2$4 = new WeakMap();\nfunction _upload(client, httpRequest, assetType, body) {\n let opts = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n validateAssetType(assetType);\n let meta = opts.extract || void 0;\n if (meta && !meta.length) {\n meta = [\"none\"];\n }\n const dataset = hasDataset(client.config());\n const assetEndpoint = assetType === \"image\" ? \"images\" : \"files\";\n const options = optionsFromFile(opts, body);\n const {\n tag,\n label,\n title,\n description,\n creditLine,\n filename,\n source\n } = options;\n const query = {\n label,\n title,\n description,\n filename,\n meta,\n creditLine\n };\n if (source) {\n query.sourceId = source.id;\n query.sourceName = source.name;\n query.sourceUrl = source.url;\n }\n return _requestObservable(client, httpRequest, {\n tag,\n method: \"POST\",\n timeout: options.timeout || 0,\n uri: \"/assets/\".concat(assetEndpoint, \"/\").concat(dataset),\n headers: options.contentType ? {\n \"Content-Type\": options.contentType\n } : {},\n query,\n body\n });\n}\nfunction optionsFromFile(opts, file) {\n if (typeof File === \"undefined\" || !(file instanceof File)) {\n return opts;\n }\n return Object.assign({\n filename: opts.preserveFilename === false ? void 0 : file.name,\n contentType: file.type\n }, opts);\n}\nvar defaults = (obj, defaults) => Object.keys(defaults).concat(Object.keys(obj)).reduce((target, prop) => {\n target[prop] = typeof obj[prop] === \"undefined\" ? defaults[prop] : obj[prop];\n return target;\n}, {});\nconst pick = (obj, props) => props.reduce((selection, prop) => {\n if (typeof obj[prop] === \"undefined\") {\n return selection;\n }\n selection[prop] = obj[prop];\n return selection;\n}, {});\nconst MAX_URL_LENGTH = 16e3 - 1200;\nconst possibleOptions = [\"includePreviousRevision\", \"includeResult\", \"visibility\", \"effectFormat\", \"tag\"];\nconst defaultOptions = {\n includeResult: true\n};\nfunction _listen(query, params) {\n let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n url,\n token,\n withCredentials,\n requestTagPrefix\n } = this.config();\n const tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join(\".\") : opts.tag;\n const options = {\n ...defaults(opts, defaultOptions),\n tag\n };\n const listenOpts = pick(options, possibleOptions);\n const qs = encodeQueryString({\n query,\n params,\n options: {\n tag,\n ...listenOpts\n }\n });\n const uri = \"\".concat(url).concat(_getDataUrl(this, \"listen\", qs));\n if (uri.length > MAX_URL_LENGTH) {\n return new rxjs.Observable(observer => observer.error(new Error(\"Query too large for listener\")));\n }\n const listenFor = options.events ? options.events : [\"mutation\"];\n const shouldEmitReconnect = listenFor.indexOf(\"reconnect\") !== -1;\n const esOptions = {};\n if (token || withCredentials) {\n esOptions.withCredentials = true;\n }\n if (token) {\n esOptions.headers = {\n Authorization: \"Bearer \".concat(token)\n };\n }\n return new rxjs.Observable(observer => {\n let es;\n getEventSource().then(eventSource => {\n es = eventSource;\n }).catch(reason => {\n observer.error(reason);\n stop();\n });\n let reconnectTimer;\n let stopped = false;\n function onError() {\n if (stopped) {\n return;\n }\n emitReconnect();\n if (stopped) {\n return;\n }\n if (es.readyState === es.CLOSED) {\n unsubscribe();\n clearTimeout(reconnectTimer);\n reconnectTimer = setTimeout(open, 100);\n }\n }\n function onChannelError(err) {\n observer.error(cooerceError(err));\n }\n function onMessage(evt) {\n const event = parseEvent(evt);\n return event instanceof Error ? observer.error(event) : observer.next(event);\n }\n function onDisconnect() {\n stopped = true;\n unsubscribe();\n observer.complete();\n }\n function unsubscribe() {\n if (!es) return;\n es.removeEventListener(\"error\", onError);\n es.removeEventListener(\"channelError\", onChannelError);\n es.removeEventListener(\"disconnect\", onDisconnect);\n listenFor.forEach(type => es.removeEventListener(type, onMessage));\n es.close();\n }\n function emitReconnect() {\n if (shouldEmitReconnect) {\n observer.next({\n type: \"reconnect\"\n });\n }\n }\n async function getEventSource() {\n const {\n default: EventSource\n } = await import('@sanity/eventsource');\n const evs = new EventSource(uri, esOptions);\n evs.addEventListener(\"error\", onError);\n evs.addEventListener(\"channelError\", onChannelError);\n evs.addEventListener(\"disconnect\", onDisconnect);\n listenFor.forEach(type => evs.addEventListener(type, onMessage));\n return evs;\n }\n function open() {\n getEventSource().then(eventSource => {\n es = eventSource;\n }).catch(reason => {\n observer.error(reason);\n stop();\n });\n }\n function stop() {\n stopped = true;\n unsubscribe();\n }\n return stop;\n });\n}\nfunction parseEvent(event) {\n try {\n const data = event.data && JSON.parse(event.data) || {};\n return Object.assign({\n type: event.type\n }, data);\n } catch (err) {\n return err;\n }\n}\nfunction cooerceError(err) {\n if (err instanceof Error) {\n return err;\n }\n const evt = parseEvent(err);\n return evt instanceof Error ? evt : new Error(extractErrorMessage(evt));\n}\nfunction extractErrorMessage(err) {\n if (!err.error) {\n return err.message || \"Unknown listener error\";\n }\n if (err.error.description) {\n return err.error.description;\n }\n return typeof err.error === \"string\" ? err.error : JSON.stringify(err.error, null, 2);\n}\nvar __accessCheck$3 = (obj, member, msg) => {\n if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet$3 = (obj, member, getter) => {\n __accessCheck$3(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd$3 = (obj, member, value) => {\n if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet$3 = (obj, member, value, setter) => {\n __accessCheck$3(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _client$2, _httpRequest$3, _client2$2, _httpRequest2$3;\nclass ObservableDatasetsClient {\n constructor(client, httpRequest) {\n __privateAdd$3(this, _client$2, void 0);\n __privateAdd$3(this, _httpRequest$3, void 0);\n __privateSet$3(this, _client$2, client);\n __privateSet$3(this, _httpRequest$3, httpRequest);\n }\n /**\n * Create a new dataset with the given name\n *\n * @param name - Name of the dataset to create\n * @param options - Options for the dataset\n */\n create(name, options) {\n return _modify(__privateGet$3(this, _client$2), __privateGet$3(this, _httpRequest$3), \"PUT\", name, options);\n }\n /**\n * Edit a dataset with the given name\n *\n * @param name - Name of the dataset to edit\n * @param options - New options for the dataset\n */\n edit(name, options) {\n return _modify(__privateGet$3(this, _client$2), __privateGet$3(this, _httpRequest$3), \"PATCH\", name, options);\n }\n /**\n * Delete a dataset with the given name\n *\n * @param name - Name of the dataset to delete\n */\n delete(name) {\n return _modify(__privateGet$3(this, _client$2), __privateGet$3(this, _httpRequest$3), \"DELETE\", name);\n }\n /**\n * Fetch a list of datasets for the configured project\n */\n list() {\n return _request(__privateGet$3(this, _client$2), __privateGet$3(this, _httpRequest$3), {\n uri: \"/datasets\"\n });\n }\n}\n_client$2 = new WeakMap();\n_httpRequest$3 = new WeakMap();\nclass DatasetsClient {\n constructor(client, httpRequest) {\n __privateAdd$3(this, _client2$2, void 0);\n __privateAdd$3(this, _httpRequest2$3, void 0);\n __privateSet$3(this, _client2$2, client);\n __privateSet$3(this, _httpRequest2$3, httpRequest);\n }\n /**\n * Create a new dataset with the given name\n *\n * @param name - Name of the dataset to create\n * @param options - Options for the dataset\n */\n create(name, options) {\n return rxjs.lastValueFrom(_modify(__privateGet$3(this, _client2$2), __privateGet$3(this, _httpRequest2$3), \"PUT\", name, options));\n }\n /**\n * Edit a dataset with the given name\n *\n * @param name - Name of the dataset to edit\n * @param options - New options for the dataset\n */\n edit(name, options) {\n return rxjs.lastValueFrom(_modify(__privateGet$3(this, _client2$2), __privateGet$3(this, _httpRequest2$3), \"PATCH\", name, options));\n }\n /**\n * Delete a dataset with the given name\n *\n * @param name - Name of the dataset to delete\n */\n delete(name) {\n return rxjs.lastValueFrom(_modify(__privateGet$3(this, _client2$2), __privateGet$3(this, _httpRequest2$3), \"DELETE\", name));\n }\n /**\n * Fetch a list of datasets for the configured project\n */\n list() {\n return rxjs.lastValueFrom(_request(__privateGet$3(this, _client2$2), __privateGet$3(this, _httpRequest2$3), {\n uri: \"/datasets\"\n }));\n }\n}\n_client2$2 = new WeakMap();\n_httpRequest2$3 = new WeakMap();\nfunction _modify(client, httpRequest, method, name, options) {\n dataset(name);\n return _request(client, httpRequest, {\n method,\n uri: \"/datasets/\".concat(name),\n body: options\n });\n}\nvar __accessCheck$2 = (obj, member, msg) => {\n if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet$2 = (obj, member, getter) => {\n __accessCheck$2(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd$2 = (obj, member, value) => {\n if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet$2 = (obj, member, value, setter) => {\n __accessCheck$2(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _client$1, _httpRequest$2, _client2$1, _httpRequest2$2;\nclass ObservableProjectsClient {\n constructor(client, httpRequest) {\n __privateAdd$2(this, _client$1, void 0);\n __privateAdd$2(this, _httpRequest$2, void 0);\n __privateSet$2(this, _client$1, client);\n __privateSet$2(this, _httpRequest$2, httpRequest);\n }\n list(options) {\n const uri = (options == null ? void 0 : options.includeMembers) === false ? \"/projects?includeMembers=false\" : \"/projects\";\n return _request(__privateGet$2(this, _client$1), __privateGet$2(this, _httpRequest$2), {\n uri\n });\n }\n /**\n * Fetch a project by project ID\n *\n * @param projectId - ID of the project to fetch\n */\n getById(projectId) {\n return _request(__privateGet$2(this, _client$1), __privateGet$2(this, _httpRequest$2), {\n uri: \"/projects/\".concat(projectId)\n });\n }\n}\n_client$1 = new WeakMap();\n_httpRequest$2 = new WeakMap();\nclass ProjectsClient {\n constructor(client, httpRequest) {\n __privateAdd$2(this, _client2$1, void 0);\n __privateAdd$2(this, _httpRequest2$2, void 0);\n __privateSet$2(this, _client2$1, client);\n __privateSet$2(this, _httpRequest2$2, httpRequest);\n }\n list(options) {\n const uri = (options == null ? void 0 : options.includeMembers) === false ? \"/projects?includeMembers=false\" : \"/projects\";\n return rxjs.lastValueFrom(_request(__privateGet$2(this, _client2$1), __privateGet$2(this, _httpRequest2$2), {\n uri\n }));\n }\n /**\n * Fetch a project by project ID\n *\n * @param projectId - ID of the project to fetch\n */\n getById(projectId) {\n return rxjs.lastValueFrom(_request(__privateGet$2(this, _client2$1), __privateGet$2(this, _httpRequest2$2), {\n uri: \"/projects/\".concat(projectId)\n }));\n }\n}\n_client2$1 = new WeakMap();\n_httpRequest2$2 = new WeakMap();\nvar __accessCheck$1 = (obj, member, msg) => {\n if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet$1 = (obj, member, getter) => {\n __accessCheck$1(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd$1 = (obj, member, value) => {\n if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet$1 = (obj, member, value, setter) => {\n __accessCheck$1(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _client, _httpRequest$1, _client2, _httpRequest2$1;\nclass ObservableUsersClient {\n constructor(client, httpRequest) {\n __privateAdd$1(this, _client, void 0);\n __privateAdd$1(this, _httpRequest$1, void 0);\n __privateSet$1(this, _client, client);\n __privateSet$1(this, _httpRequest$1, httpRequest);\n }\n /**\n * Fetch a user by user ID\n *\n * @param id - User ID of the user to fetch. If `me` is provided, a minimal response including the users role is returned.\n */\n getById(id) {\n return _request(__privateGet$1(this, _client), __privateGet$1(this, _httpRequest$1), {\n uri: \"/users/\".concat(id)\n });\n }\n}\n_client = new WeakMap();\n_httpRequest$1 = new WeakMap();\nclass UsersClient {\n constructor(client, httpRequest) {\n __privateAdd$1(this, _client2, void 0);\n __privateAdd$1(this, _httpRequest2$1, void 0);\n __privateSet$1(this, _client2, client);\n __privateSet$1(this, _httpRequest2$1, httpRequest);\n }\n /**\n * Fetch a user by user ID\n *\n * @param id - User ID of the user to fetch. If `me` is provided, a minimal response including the users role is returned.\n */\n getById(id) {\n return rxjs.lastValueFrom(_request(__privateGet$1(this, _client2), __privateGet$1(this, _httpRequest2$1), {\n uri: \"/users/\".concat(id)\n }));\n }\n}\n_client2 = new WeakMap();\n_httpRequest2$1 = new WeakMap();\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _clientConfig, _httpRequest, _clientConfig2, _httpRequest2;\nconst _ObservableSanityClient = class _ObservableSanityClient {\n constructor(httpRequest) {\n let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultConfig;\n __publicField(this, \"assets\");\n __publicField(this, \"datasets\");\n __publicField(this, \"projects\");\n __publicField(this, \"users\");\n /**\n * Private properties\n */\n __privateAdd(this, _clientConfig, void 0);\n __privateAdd(this, _httpRequest, void 0);\n /**\n * Instance properties\n */\n __publicField(this, \"listen\", _listen);\n this.config(config);\n __privateSet(this, _httpRequest, httpRequest);\n this.assets = new ObservableAssetsClient(this, __privateGet(this, _httpRequest));\n this.datasets = new ObservableDatasetsClient(this, __privateGet(this, _httpRequest));\n this.projects = new ObservableProjectsClient(this, __privateGet(this, _httpRequest));\n this.users = new ObservableUsersClient(this, __privateGet(this, _httpRequest));\n }\n /**\n * Clone the client - returns a new instance\n */\n clone() {\n return new _ObservableSanityClient(__privateGet(this, _httpRequest), this.config());\n }\n config(newConfig) {\n if (newConfig === void 0) {\n return {\n ...__privateGet(this, _clientConfig)\n };\n }\n if (__privateGet(this, _clientConfig) && __privateGet(this, _clientConfig).allowReconfigure === false) {\n throw new Error(\"Existing client instance cannot be reconfigured - use `withConfig(newConfig)` to return a new client\");\n }\n __privateSet(this, _clientConfig, initConfig(newConfig, __privateGet(this, _clientConfig) || {}));\n return this;\n }\n /**\n * Clone the client with a new (partial) configuration.\n *\n * @param newConfig - New client configuration properties, shallowly merged with existing configuration\n */\n withConfig(newConfig) {\n return new _ObservableSanityClient(__privateGet(this, _httpRequest), {\n ...this.config(),\n ...newConfig\n });\n }\n fetch(query, params) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _fetch(this, __privateGet(this, _httpRequest), query, params, options);\n }\n /**\n * Fetch a single document with the given ID.\n *\n * @param id - Document ID to fetch\n * @param options - Request options\n */\n getDocument(id, options) {\n return _getDocument(this, __privateGet(this, _httpRequest), id, options);\n }\n /**\n * Fetch multiple documents in one request.\n * Should be used sparingly - performing a query is usually a better option.\n * The order/position of documents is preserved based on the original array of IDs.\n * If any of the documents are missing, they will be replaced by a `null` entry in the returned array\n *\n * @param ids - Document IDs to fetch\n * @param options - Request options\n */\n getDocuments(ids, options) {\n return _getDocuments(this, __privateGet(this, _httpRequest), ids, options);\n }\n create(document, options) {\n return _create(this, __privateGet(this, _httpRequest), document, \"create\", options);\n }\n createIfNotExists(document, options) {\n return _createIfNotExists(this, __privateGet(this, _httpRequest), document, options);\n }\n createOrReplace(document, options) {\n return _createOrReplace(this, __privateGet(this, _httpRequest), document, options);\n }\n delete(selection, options) {\n return _delete(this, __privateGet(this, _httpRequest), selection, options);\n }\n mutate(operations, options) {\n return _mutate(this, __privateGet(this, _httpRequest), operations, options);\n }\n /**\n * Create a new buildable patch of operations to perform\n *\n * @param selection - Document ID, an array of document IDs, or an object with `query` and optional `params`, defining which document(s) to patch\n * @param operations - Optional object of patch operations to initialize the patch instance with\n * @returns Patch instance - call `.commit()` to perform the operations defined\n */\n patch(selection, operations) {\n return new ObservablePatch(selection, operations, this);\n }\n /**\n * Create a new transaction of mutations\n *\n * @param operations - Optional array of mutation operations to initialize the transaction instance with\n */\n transaction(operations) {\n return new ObservableTransaction(operations, this);\n }\n /**\n * Perform an HTTP request against the Sanity API\n *\n * @param options - Request options\n */\n request(options) {\n return _request(this, __privateGet(this, _httpRequest), options);\n }\n /**\n * Get a Sanity API URL for the URI provided\n *\n * @param uri - URI/path to build URL for\n * @param canUseCdn - Whether or not to allow using the API CDN for this route\n */\n getUrl(uri, canUseCdn) {\n return _getUrl(this, uri, canUseCdn);\n }\n /**\n * Get a Sanity API URL for the data operation and path provided\n *\n * @param operation - Data operation (eg `query`, `mutate`, `listen` or similar)\n * @param path - Path to append after the operation\n */\n getDataUrl(operation, path) {\n return _getDataUrl(this, operation, path);\n }\n};\n_clientConfig = new WeakMap();\n_httpRequest = new WeakMap();\nlet ObservableSanityClient = _ObservableSanityClient;\nconst _SanityClient = class _SanityClient {\n constructor(httpRequest) {\n let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultConfig;\n __publicField(this, \"assets\");\n __publicField(this, \"datasets\");\n __publicField(this, \"projects\");\n __publicField(this, \"users\");\n /**\n * Observable version of the Sanity client, with the same configuration as the promise-based one\n */\n __publicField(this, \"observable\");\n /**\n * Private properties\n */\n __privateAdd(this, _clientConfig2, void 0);\n __privateAdd(this, _httpRequest2, void 0);\n /**\n * Instance properties\n */\n __publicField(this, \"listen\", _listen);\n this.config(config);\n __privateSet(this, _httpRequest2, httpRequest);\n this.assets = new AssetsClient(this, __privateGet(this, _httpRequest2));\n this.datasets = new DatasetsClient(this, __privateGet(this, _httpRequest2));\n this.projects = new ProjectsClient(this, __privateGet(this, _httpRequest2));\n this.users = new UsersClient(this, __privateGet(this, _httpRequest2));\n this.observable = new ObservableSanityClient(httpRequest, config);\n }\n /**\n * Clone the client - returns a new instance\n */\n clone() {\n return new _SanityClient(__privateGet(this, _httpRequest2), this.config());\n }\n config(newConfig) {\n if (newConfig === void 0) {\n return {\n ...__privateGet(this, _clientConfig2)\n };\n }\n if (__privateGet(this, _clientConfig2) && __privateGet(this, _clientConfig2).allowReconfigure === false) {\n throw new Error(\"Existing client instance cannot be reconfigured - use `withConfig(newConfig)` to return a new client\");\n }\n if (this.observable) {\n this.observable.config(newConfig);\n }\n __privateSet(this, _clientConfig2, initConfig(newConfig, __privateGet(this, _clientConfig2) || {}));\n return this;\n }\n /**\n * Clone the client with a new (partial) configuration.\n *\n * @param newConfig - New client configuration properties, shallowly merged with existing configuration\n */\n withConfig(newConfig) {\n return new _SanityClient(__privateGet(this, _httpRequest2), {\n ...this.config(),\n ...newConfig\n });\n }\n fetch(query, params) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return rxjs.lastValueFrom(_fetch(this, __privateGet(this, _httpRequest2), query, params, options));\n }\n /**\n * Fetch a single document with the given ID.\n *\n * @param id - Document ID to fetch\n * @param options - Request options\n */\n getDocument(id, options) {\n return rxjs.lastValueFrom(_getDocument(this, __privateGet(this, _httpRequest2), id, options));\n }\n /**\n * Fetch multiple documents in one request.\n * Should be used sparingly - performing a query is usually a better option.\n * The order/position of documents is preserved based on the original array of IDs.\n * If any of the documents are missing, they will be replaced by a `null` entry in the returned array\n *\n * @param ids - Document IDs to fetch\n * @param options - Request options\n */\n getDocuments(ids, options) {\n return rxjs.lastValueFrom(_getDocuments(this, __privateGet(this, _httpRequest2), ids, options));\n }\n create(document, options) {\n return rxjs.lastValueFrom(_create(this, __privateGet(this, _httpRequest2), document, \"create\", options));\n }\n createIfNotExists(document, options) {\n return rxjs.lastValueFrom(_createIfNotExists(this, __privateGet(this, _httpRequest2), document, options));\n }\n createOrReplace(document, options) {\n return rxjs.lastValueFrom(_createOrReplace(this, __privateGet(this, _httpRequest2), document, options));\n }\n delete(selection, options) {\n return rxjs.lastValueFrom(_delete(this, __privateGet(this, _httpRequest2), selection, options));\n }\n mutate(operations, options) {\n return rxjs.lastValueFrom(_mutate(this, __privateGet(this, _httpRequest2), operations, options));\n }\n /**\n * Create a new buildable patch of operations to perform\n *\n * @param selection - Document ID, an array of document IDs, or an object with `query` and optional `params`, defining which document(s) to patch\n * @param operations - Optional object of patch operations to initialize the patch instance with\n * @returns Patch instance - call `.commit()` to perform the operations defined\n */\n patch(documentId, operations) {\n return new Patch(documentId, operations, this);\n }\n /**\n * Create a new transaction of mutations\n *\n * @param operations - Optional array of mutation operations to initialize the transaction instance with\n */\n transaction(operations) {\n return new Transaction(operations, this);\n }\n /**\n * Perform a request against the Sanity API\n * NOTE: Only use this for Sanity API endpoints, not for your own APIs!\n *\n * @param options - Request options\n * @returns Promise resolving to the response body\n */\n request(options) {\n return rxjs.lastValueFrom(_request(this, __privateGet(this, _httpRequest2), options));\n }\n /**\n * Perform an HTTP request a `/data` sub-endpoint\n * NOTE: Considered internal, thus marked as deprecated. Use `request` instead.\n *\n * @deprecated - Use `request()` or your own HTTP library instead\n * @param endpoint - Endpoint to hit (mutate, query etc)\n * @param body - Request body\n * @param options - Request options\n * @internal\n */\n dataRequest(endpoint, body, options) {\n return rxjs.lastValueFrom(_dataRequest(this, __privateGet(this, _httpRequest2), endpoint, body, options));\n }\n /**\n * Get a Sanity API URL for the URI provided\n *\n * @param uri - URI/path to build URL for\n * @param canUseCdn - Whether or not to allow using the API CDN for this route\n */\n getUrl(uri, canUseCdn) {\n return _getUrl(this, uri, canUseCdn);\n }\n /**\n * Get a Sanity API URL for the data operation and path provided\n *\n * @param operation - Data operation (eg `query`, `mutate`, `listen` or similar)\n * @param path - Path to append after the operation\n */\n getDataUrl(operation, path) {\n return _getDataUrl(this, operation, path);\n }\n};\n_clientConfig2 = new WeakMap();\n_httpRequest2 = new WeakMap();\nlet SanityClient = _SanityClient;\nconst httpRequest = defineHttpRequest(envMiddleware, {});\nconst requester = httpRequest.defaultRequester;\nconst createClient = config => new SanityClient(defineHttpRequest(envMiddleware, {\n maxRetries: config.maxRetries,\n retryDelay: config.retryDelay\n}), config);\nfunction deprecatedCreateClient(config) {\n printNoDefaultExport();\n return new SanityClient(httpRequest, config);\n}\nObject.defineProperty(exports, 'unstable__adapter', {\n enumerable: true,\n get: function () {\n return getIt.adapter;\n }\n});\nObject.defineProperty(exports, 'unstable__environment', {\n enumerable: true,\n get: function () {\n return getIt.environment;\n }\n});\nexports.BasePatch = BasePatch;\nexports.BaseTransaction = BaseTransaction;\nexports.ClientError = ClientError;\nexports.ObservablePatch = ObservablePatch;\nexports.ObservableSanityClient = ObservableSanityClient;\nexports.ObservableTransaction = ObservableTransaction;\nexports.Patch = Patch;\nexports.SanityClient = SanityClient;\nexports.ServerError = ServerError;\nexports.Transaction = Transaction;\nexports.createClient = createClient;\nexports.default = deprecatedCreateClient;\nexports.requester = requester;\n//# sourceMappingURL=index.browser.cjs.map\n"],"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","a","push","instance","Function","_wrapNativeSuper","_cache","Map","undefined","fn","toString","indexOf","TypeError","has","get","set","Wrapper","constructor","create","value","enumerable","writable","configurable","DEFAULT_CROP","freeze","left","top","bottom","right","DEFAULT_HOTSPOT","x","y","height","width","getDefaultCrop","getDefaultHotspot","isDefaultCrop","crop","defaultTop","defaultBottom","defaultLeft","defaultRight","isDefaultHotspot","hotspot","defaultX","defaultY","defaultWidth","defaultHeight","UnresolvableError","_Error","subClass","superClass","inputSource","message","_this","unresolvable","input","Error","getForgivingResolver","method","err","error","isUnresolvableError","cdnUrl","fileAssetFilenamePattern","fileAssetIdPattern","imageAssetFilenamePattern","imageAssetIdPattern","pathPattern","idPattern","dummyProject","projectId","dataset","isReference","ref","isObject","_ref","isAssetIdStub","stub","_id","isAssetPathStub","path","isAssetUrlStub","url","isSanityFileAsset","src","_type","isSanityImageAsset","isImageAssetId","documentId","test","isFileAssetId","isAssetId","isAssetObjectStub","item","asset","obj","Array","isArray","buildImagePath","options","dimensions","metadata","originalFilename","assetId","extension","vanityFilename","getVanityStub","buildImageUrl","buildFilePath","buildFileUrl","project","tryGetAssetPath","urlOrPath","tryGetUrlPath","getUrlPath","startsWith","qsPos","toIndex","slice","getUrlFilename","filename","replace","isValidFilename","tryGetUrlFilename","vanity","useVanityName","exampleFileId","exampleImageId","parseAssetId","parseImageAssetId","parseFileAssetId","_documentId$split","split","type","_documentId$split2","dimensionString","_split$map","map","Number","parseAssetFilename","file","parseAssetUrl","match","projectPath","_path$slice$split","parseImageAssetUrl","parsed","parseFileAssetUrl","getAssetUrlType","getImageDimensions","_parseImageAssetId","getAssetDocumentId","aspectRatio","tryGetImageDimensions","getExtension","isFileSource","getFile","getImage","tryGetExtension","img","getImageAsset","tryGetProject","tryGetImage","pathOptions","getProject","_parseImageAssetId2","baseAsset","tryGetImageAsset","getFileAsset","tryGetFile","projectDetails","_parseFileAssetId","tryGetFileAsset","id","getIdFromString","idFromUrl","tryGetAssetDocumentId","str","isFileAssetFilename","isImageAssetFilename","tryGetIdFromString","_path$split","fileName","isAssetFilename","isImageSource","isSanityAssetUrl","isSanityImageUrl","isSanityFileUrl","module","exports","_unsupportedIterableToArray","minLen","_arrayLikeToArray","n","name","from","arr","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","next","done","example","_ref$split","format","_dimensionString$spli","isFinite","isRef","isAsset","isAssetStub","parseSource","image","isUrl","urlToId","applyDefaults","result","SPEC_NAME_TO_URL_NAME_MAPPINGS","urlForImage","spec","JSON","stringify","cropLeft","Math","round","cropTop","hotSpotVerticalRadius","hotSpotHorizontalRadius","hotSpotCenterX","hotSpotCenterY","rect","focalPoint","ignoreImageParams","fit","specToImageUrl","baseUrl","params","_spec$rect","bg","flip","flipHorizontal","flipVertical","filter","join","forEach","mapping","specName","param","encodeURIComponent","cropRect","imgWidth","imgHeight","desiredAspectRatio","max","hotspotXCenter","_width","_height","_left","hotspotYCenter","_top","validFits","validCrops","validAutoModes","isSanityModernClientLike","client","config","isSanityClientLike","clientConfig","rewriteSpecName","_step","_iterator","entry","urlBuilder","_options$config","apiUrl","apiHost","ImageUrlBuilder","_client$clientConfig","_apiUrl","_projectId","_dataset","parent","_proto","withOptions","newOptions","_dataset2","_projectId2","_bg","dpr","_dpr","maxWidth","_maxWidth","minWidth","_minWidth","maxHeight","_maxHeight","minHeight","_minHeight","size","blur","_blur","sharpen","_sharpen","_format","invert","_invert","orientation","_orientation","quality","_quality","forceDownload","download","saturation","_saturation","auto","pad","_pad","factory","f","g","h","k","performance","now","l","unstable_now","Date","q","window","MessageChannel","t","u","w","b","setTimeout","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","console","z","cancelAnimationFrame","requestAnimationFrame","A","B","C","D","E","floor","F","G","port2","port1","onmessage","postMessage","H","c","d","I","J","K","pop","m","v","r","sortIndex","L","M","N","O","P","Q","R","S","T","callback","startTime","expirationTime","U","V","priorityLevel","W","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","unstable_wrapCallback","setImmediate","navigator","scheduling","isInputPending","defineProperty","getIt","middleware","rxjs","operators","envMiddleware","__defProp$3","__publicField$3","__defNormalProp$3","ClientError","res","props","extractErrorProps","super","ServerError","body","response","statusCode","responseBody","stringifyBody","details","concat","isPlainObject","description","isMutationError","allItems","items","_a","itemsStr","statusMessage","httpErrorMessage","headers","toLowerCase","httpError","onResponse","printWarnings","warn","msg","defineHttpRequest","maxRetries","retryDelay","request","retry","shouldRetry","jsonRequest","jsonResponse","progress","observable","implementation","Observable","httpRequest","maxRedirects","defaultRequester","attempt","isSafe","isQuery","uri","isRetriableResponse","generateHelpUrl","slug","VALID_ASSET_TYPES","VALID_INSERT_LOCATIONS","validateObject","op","val","validateDocumentId","includes","requireDocumentId","doc","hasDataset","requestTag","tag","createWarningPrinter","returnValue","didCall","once","_len","_key","printCdnWarning","printCdnPreviewDraftsWarning","printBrowserTokenWarning","printNoApiVersionSpecifiedWarning","printNoDefaultExport","defaultConfig","apiVersion","useProjectHostname","LOCALHOSTS","validateApiPerspective","perspective","initConfig","prevConfig","specifiedConfig","newConfig","projectBased","Promise","helpUrl","isBrowser","location","hostname","isLocalhost","host","isLocal","token","ignoreBrowserTokenWarning","useCdn","requestTagPrefix","isDefaultApi","withCredentials","apiDate","getTime","validateApiVersion","hostParts","protocol","cdnHost","projectHeader","getSelection","sel","query","selectionOpts","encodeQueryString","_ref2","searchParams","URLSearchParams","opts","append","entries","_client$5","_client2$5","__defProp$2","__publicField$2","__defNormalProp$2","__accessCheck$6","member","__privateGet$6","getter","__privateAdd$6","WeakSet","add","__privateSet$6","setter","BasePatch","selection","operations","attrs","_assign","setIfMissing","diffMatchPatch","unset","inc","dec","insert","at","selector","signature","valid","loc","validateInsert","prepend","splice","start","deleteCount","startIndex","delCount","delRange","rangeSelector","ifRevisionId","rev","ifRevisionID","serialize","toJSON","reset","merge","_set","WeakMap","ObservablePatch","_ObservablePatch","clone","commit","returnFirst","returnDocuments","mutate","patch","Patch","_Patch","_client$4","_client2$4","__defProp$1","__publicField$1","__defNormalProp$1","__accessCheck$5","__privateGet$5","__privateAdd$5","__privateSet$5","defaultMutateOptions","BaseTransaction","transactionId","trxId","_add","createIfNotExists","createOrReplace","delete","mut","Transaction","_Transaction","patchOrDocumentId","patchOps","isBuilder","ObservableTransaction","_ObservableTransaction","getMutationQuery","dryRun","returnIds","defValue","visibility","autoGenerateArrayKeys","skipCrossDatasetReferenceValidation","isResponse","event","getBody","getQuerySizeLimit","_fetch","mapResponse","filterResponse","cache","useAbortSignal","signal","_dataRequest","fetch","pipe","_getDocument","_requestObservable","_getDataUrl","json","documents","_getDocuments","ids","indexed","docs","attr","reduce","_createIfNotExists","_create","_createOrReplace","_delete","mutations","_mutate","endpoint","isMutation","strQuery","useGet","stringQuery","timeout","resultSourceMap","canUseCdn","results","document","reqOptions","overrides","Authorization","useGlobalApi","proxy","requestOptions","_getUrl","subscriber","requester","subscribe","observer","abort","_b","isDomExceptionSupported","DOMException","reason","_createAbortError","aborted","subscription","addEventListener","removeEventListener","unsubscribe","_request","operation","catalog","baseUri","globalThis","_client$3","_httpRequest$4","_client2$3","_httpRequest2$4","__accessCheck$4","__privateGet$4","__privateAdd$4","__privateSet$4","ObservableAssetsClient","upload","assetType","_upload","AssetsClient","lastValueFrom","validateAssetType","meta","extract","assetEndpoint","File","preserveFilename","contentType","optionsFromFile","label","title","creditLine","sourceId","sourceName","sourceUrl","defaults","keys","prop","possibleOptions","defaultOptions","includeResult","_listen","listenOpts","qs","listenFor","events","shouldEmitReconnect","esOptions","es","reconnectTimer","getEventSource","then","eventSource","catch","stop","stopped","onError","readyState","CLOSED","open","onChannelError","evt","parseEvent","extractErrorMessage","cooerceError","onMessage","onDisconnect","complete","close","async","default","EventSource","evs","data","parse","_client$2","_httpRequest$3","_client2$2","_httpRequest2$3","__accessCheck$3","__privateGet$3","__privateAdd$3","__privateSet$3","ObservableDatasetsClient","_modify","edit","list","DatasetsClient","_client$1","_httpRequest$2","_client2$1","_httpRequest2$2","__accessCheck$2","__privateGet$2","__privateAdd$2","__privateSet$2","ObservableProjectsClient","includeMembers","getById","ProjectsClient","_client","_httpRequest$1","_client2","_httpRequest2$1","__accessCheck$1","__privateGet$1","__privateAdd$1","__privateSet$1","ObservableUsersClient","UsersClient","_clientConfig","_httpRequest","_clientConfig2","_httpRequest2","__defProp","__publicField","__defNormalProp","__accessCheck","__privateGet","__privateAdd","__privateSet","ObservableSanityClient","_ObservableSanityClient","assets","datasets","projects","users","allowReconfigure","withConfig","getDocument","getDocuments","transaction","getUrl","getDataUrl","SanityClient","_SanityClient","dataRequest","adapter","environment","createClient"],"sourceRoot":""}