@sanity/client 3.3.3-esm.9 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sanityClient.browser.mjs +1081 -909
- package/dist/sanityClient.browser.mjs.map +4 -4
- package/lib/assets/assetsClient.js +15 -29
- package/lib/auth/authClient.js +3 -11
- package/lib/config.js +22 -40
- package/lib/data/dataMethods.js +24 -38
- package/lib/data/encodeQueryString.js +2 -9
- package/lib/data/listen.js +22 -30
- package/lib/data/patch.js +27 -36
- package/lib/data/transaction.js +11 -27
- package/lib/datasets/datasetsClient.js +4 -18
- package/lib/generateHelpUrl.js +2 -8
- package/lib/http/browserMiddleware.js +1 -7
- package/lib/http/errors.js +8 -16
- package/lib/http/nodeMiddleware.js +7 -16
- package/lib/http/queryString.js +2 -10
- package/lib/http/request.js +23 -23
- package/lib/http/requestOptions.js +5 -13
- package/lib/projects/projectsClient.js +3 -11
- package/lib/sanityClient.js +45 -59
- package/lib/users/usersClient.js +3 -11
- package/lib/util/defaults.js +2 -10
- package/lib/util/getSelection.js +2 -9
- package/lib/util/observable.js +13 -24
- package/lib/util/once.js +2 -10
- package/lib/util/pick.js +2 -10
- package/lib/validators.js +15 -38
- package/lib/warnings.js +6 -16
- package/package.json +7 -16
- package/umd/sanityClient.js +100 -168
- package/umd/sanityClient.min.js +1 -1
- package/lib/util/observable-modern.js +0 -29
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/util/observable
|
|
4
|
-
"sourcesContent": ["// Rxjs v7 requires pkg.exports support, which means node older than v12, and a lot of legacy bundlers, don't support these\n// THat's why they're only used here, which is bundled by esbuild and supports conditional exports\nimport {Observable} from 'rxjs-v7/internal/Observable'\nimport {filter} from 'rxjs-v7/internal/operators/filter'\nimport {map} from 'rxjs-v7/internal/operators/map'\n\nexport {Observable, filter, map}\n", "export default function getSelection(sel) {\n if (typeof sel === 'string' || Array.isArray(sel)) {\n return {id: sel}\n }\n\n if (sel && sel.query) {\n return 'params' in sel ? {query: sel.query, params: sel.params} : {query: sel.query}\n }\n\n const selectionOpts = [\n '* Document ID (<docId>)',\n '* Array of document IDs',\n '* Object containing `query`',\n ].join('\\n')\n\n throw new Error(`Unknown selection - must be one of:\\n\\n${selectionOpts}`)\n}\n", "const VALID_ASSET_TYPES = ['image', 'file']\nconst VALID_INSERT_LOCATIONS = ['before', 'after', 'replace']\n\nexport const dataset = (name) => {\n if (!/^(~[a-z0-9]{1}[-\\w]{0,63}|[a-z0-9]{1}[-\\w]{0,63})$/.test(name)) {\n throw new Error(\n 'Datasets can only contain lowercase characters, numbers, underscores and dashes, and start with tilde, and be maximum 64 characters'\n )\n }\n}\n\nexport const 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}\n\nexport const validateAssetType = (type) => {\n if (VALID_ASSET_TYPES.indexOf(type) === -1) {\n throw new Error(`Invalid asset type: ${type}. Must be one of ${VALID_ASSET_TYPES.join(', ')}`)\n }\n}\n\nexport const validateObject = (op, val) => {\n if (val === null || typeof val !== 'object' || Array.isArray(val)) {\n throw new Error(`${op}() takes an object of properties`)\n }\n}\n\nexport const validateDocumentId = (op, id) => {\n if (typeof id !== 'string' || !/^[a-z0-9_.-]+$/i.test(id)) {\n throw new Error(`${op}(): \"${id}\" is not a valid document ID`)\n }\n}\n\nexport const requireDocumentId = (op, doc) => {\n if (!doc._id) {\n throw new Error(`${op}() requires that the document contains an ID (\"_id\" property)`)\n }\n\n validateDocumentId(op, doc._id)\n}\n\nexport const 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) => `\"${loc}\"`).join(', ')\n throw new Error(`${signature} takes an \"at\"-argument which is one of: ${valid}`)\n }\n\n if (typeof selector !== 'string') {\n throw new Error(`${signature} takes a \"selector\"-argument which must be a string`)\n }\n\n if (!Array.isArray(items)) {\n throw new Error(`${signature} takes an \"items\"-argument which must be an array`)\n }\n}\n\nexport const hasDataset = (config) => {\n if (!config.dataset) {\n throw new Error('`dataset` must be provided to perform queries')\n }\n\n return config.dataset || ''\n}\n\nexport const requestTag = (tag) => {\n if (typeof tag !== 'string' || !/^[a-z0-9._-]{1,75}$/i.test(tag)) {\n throw new Error(\n `Tag can only contain alphanumeric characters, underscores, dashes and dots, and be between one and 75 characters long.`\n )\n }\n\n return tag\n}\n", "import getSelection from '../util/getSelection'\nimport {validateObject, validateInsert} from '../validators'\n\nfunction Patch(selection, operations = {}, client = null) {\n this.selection = selection\n this.operations = Object.assign({}, operations)\n this.client = client\n}\n\nObject.assign(Patch.prototype, {\n clone() {\n return new Patch(this.selection, Object.assign({}, this.operations), this.client)\n },\n\n set(props) {\n return this.assign('set', props)\n },\n\n diffMatchPatch(props) {\n validateObject('diffMatchPatch', props)\n return this.assign('diffMatchPatch', props)\n },\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\n this.operations = Object.assign({}, this.operations, {unset: attrs})\n return this\n },\n\n setIfMissing(props) {\n return this.assign('setIfMissing', props)\n },\n\n replace(props) {\n validateObject('replace', props)\n return this._set('set', {$: props}) // eslint-disable-line id-length\n },\n\n inc(props) {\n return this.assign('inc', props)\n },\n\n dec(props) {\n return this.assign('dec', props)\n },\n\n insert(at, selector, items) {\n validateInsert(at, selector, items)\n return this.assign('insert', {[at]: selector, items})\n },\n\n append(selector, items) {\n return this.insert('after', `${selector}[-1]`, items)\n },\n\n prepend(selector, items) {\n return this.insert('before', `${selector}[0]`, items)\n },\n\n splice(selector, start, deleteCount, items) {\n // Negative indexes doesn't mean the same in Sanity as they do in JS;\n // -1 means \"actually at the end of the array\", which allows inserting\n // at the end of the array without knowing its length. We therefore have\n // to substract negative indexes by one to match JS. If you want Sanity-\n // behaviour, just use `insert('replace', selector, items)` directly\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 = `${selector}[${startIndex}:${delRange}]`\n return this.insert('replace', rangeSelector, items || [])\n },\n\n ifRevisionId(rev) {\n this.operations.ifRevisionID = rev\n return this\n },\n\n serialize() {\n return Object.assign(getSelection(this.selection), this.operations)\n },\n\n toJSON() {\n return this.serialize()\n },\n\n commit(options = {}) {\n if (!this.client) {\n throw new Error(\n 'No `client` passed to patch, either provide one or pass the ' +\n 'patch to a clients `mutate()` method'\n )\n }\n\n const returnFirst = typeof this.selection === 'string'\n const opts = Object.assign({returnFirst, returnDocuments: true}, options)\n return this.client.mutate({patch: this.serialize()}, opts)\n },\n\n reset() {\n this.operations = {}\n return this\n },\n\n _set(op, props) {\n return this.assign(op, props, false)\n },\n\n assign(op, props, merge = 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})\n\nexport default Patch\n", "import * as validators from '../validators'\nimport Patch from './patch'\n\nconst defaultMutateOptions = {returnDocuments: false}\n\nfunction Transaction(operations = [], client, transactionId) {\n this.trxId = transactionId\n this.operations = operations\n this.client = client\n}\n\nObject.assign(Transaction.prototype, {\n clone() {\n return new Transaction(this.operations.slice(0), this.client, this.trxId)\n },\n\n create(doc) {\n validators.validateObject('create', doc)\n return this._add({create: doc})\n },\n\n createIfNotExists(doc) {\n const op = 'createIfNotExists'\n validators.validateObject(op, doc)\n validators.requireDocumentId(op, doc)\n return this._add({[op]: doc})\n },\n\n createOrReplace(doc) {\n const op = 'createOrReplace'\n validators.validateObject(op, doc)\n validators.requireDocumentId(op, doc)\n return this._add({[op]: doc})\n },\n\n delete(documentId) {\n validators.validateDocumentId('delete', documentId)\n return this._add({delete: {id: documentId}})\n },\n\n patch(documentId, patchOps) {\n const isBuilder = typeof patchOps === 'function'\n const isPatch = documentId instanceof Patch\n\n // transaction.patch(client.patch('documentId').inc({visits: 1}))\n if (isPatch) {\n return this._add({patch: documentId.serialize()})\n }\n\n // patch => patch.inc({visits: 1}).set({foo: 'bar'})\n if (isBuilder) {\n const patch = patchOps(new Patch(documentId, {}, this.client))\n if (!(patch instanceof Patch)) {\n throw new Error('function passed to `patch()` must return the patch')\n }\n\n return this._add({patch: patch.serialize()})\n }\n\n return this._add({patch: Object.assign({id: documentId}, patchOps)})\n },\n\n transactionId(id) {\n if (!id) {\n return this.trxId\n }\n\n this.trxId = id\n return this\n },\n\n serialize() {\n return this.operations.slice()\n },\n\n toJSON() {\n return this.serialize()\n },\n\n commit(options) {\n if (!this.client) {\n throw new Error(\n 'No `client` passed to transaction, either provide one or pass the ' +\n 'transaction to a clients `mutate()` method'\n )\n }\n\n return this.client.mutate(\n this.serialize(),\n Object.assign({transactionId: this.trxId}, defaultMutateOptions, options || {})\n )\n },\n\n reset() {\n this.operations = []\n return this\n },\n\n _add(mut) {\n this.operations.push(mut)\n return this\n },\n})\n\nexport default Transaction\n", "const enc = encodeURIComponent\n\nexport default ({query, params = {}, options = {}}) => {\n // We generally want tag at the start of the query string\n const {tag, ...opts} = options\n const q = `query=${enc(query)}`\n const base = tag ? `?tag=${enc(tag)}&${q}` : `?${q}`\n\n const qString = Object.keys(params).reduce(\n (qs, param) => `${qs}&${enc(`$${param}`)}=${enc(JSON.stringify(params[param]))}`,\n base\n )\n\n return Object.keys(opts).reduce((qs, option) => {\n // Only include the option if it is truthy\n return options[option] ? `${qs}&${enc(option)}=${enc(options[option])}` : qs\n }, qString)\n}\n", "import {Observable} from '../util/observable'\nimport polyfilledEventSource from '@sanity/eventsource'\nimport pick from '../util/pick'\nimport defaults from '../util/defaults'\nimport encodeQueryString from './encodeQueryString'\n\n// Limit is 16K for a _request_, eg including headers. Have to account for an\n// unknown range of headers, but an average EventSource request from Chrome seems\n// to have around 700 bytes of cruft, so let us account for 1.2K to be \"safe\"\nconst MAX_URL_LENGTH = 16000 - 1200\nconst EventSource = polyfilledEventSource\n\nconst possibleOptions = [\n 'includePreviousRevision',\n 'includeResult',\n 'visibility',\n 'effectFormat',\n 'tag',\n]\n\nconst defaultOptions = {\n includeResult: true,\n}\n\nexport default function listen(query, params, opts = {}) {\n const {url, token, withCredentials, requestTagPrefix} = this.clientConfig\n const tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join('.') : opts.tag\n const options = {...defaults(opts, defaultOptions), tag}\n const listenOpts = pick(options, possibleOptions)\n const qs = encodeQueryString({query, params, options: listenOpts, tag})\n\n const uri = `${url}${this.getDataUrl('listen', qs)}`\n if (uri.length > MAX_URL_LENGTH) {\n return new Observable((observer) => observer.error(new Error('Query too large for listener')))\n }\n\n const listenFor = options.events ? options.events : ['mutation']\n const shouldEmitReconnect = listenFor.indexOf('reconnect') !== -1\n\n const esOptions = {}\n if (token || withCredentials) {\n esOptions.withCredentials = true\n }\n\n if (token) {\n esOptions.headers = {\n Authorization: `Bearer ${token}`,\n }\n }\n\n return new Observable((observer) => {\n let es = getEventSource()\n let reconnectTimer\n let stopped = false\n\n function onError() {\n if (stopped) {\n return\n }\n\n emitReconnect()\n\n // Allow event handlers of `emitReconnect` to cancel/close the reconnect attempt\n if (stopped) {\n return\n }\n\n // Unless we've explicitly stopped the ES (in which case `stopped` should be true),\n // we should never be in a disconnected state. By default, EventSource will reconnect\n // automatically, in which case it sets readyState to `CONNECTING`, but in some cases\n // (like when a laptop lid is closed), it closes the connection. In these cases we need\n // to explicitly reconnect.\n if (es.readyState === EventSource.CLOSED) {\n unsubscribe()\n clearTimeout(reconnectTimer)\n reconnectTimer = setTimeout(open, 100)\n }\n }\n\n function onChannelError(err) {\n observer.error(cooerceError(err))\n }\n\n function onMessage(evt) {\n const event = parseEvent(evt)\n return event instanceof Error ? observer.error(event) : observer.next(event)\n }\n\n function onDisconnect(evt) {\n stopped = true\n unsubscribe()\n observer.complete()\n }\n\n function unsubscribe() {\n es.removeEventListener('error', onError, false)\n es.removeEventListener('channelError', onChannelError, false)\n es.removeEventListener('disconnect', onDisconnect, false)\n listenFor.forEach((type) => es.removeEventListener(type, onMessage, false))\n es.close()\n }\n\n function emitReconnect() {\n if (shouldEmitReconnect) {\n observer.next({type: 'reconnect'})\n }\n }\n\n function getEventSource() {\n const evs = new EventSource(uri, esOptions)\n evs.addEventListener('error', onError, false)\n evs.addEventListener('channelError', onChannelError, false)\n evs.addEventListener('disconnect', onDisconnect, false)\n listenFor.forEach((type) => evs.addEventListener(type, onMessage, false))\n return evs\n }\n\n function open() {\n es = getEventSource()\n }\n\n function stop() {\n stopped = true\n unsubscribe()\n }\n\n return stop\n })\n}\n\nfunction parseEvent(event) {\n try {\n const data = (event.data && JSON.parse(event.data)) || {}\n return Object.assign({type: event.type}, data)\n } catch (err) {\n return err\n }\n}\n\nfunction cooerceError(err) {\n if (err instanceof Error) {\n return err\n }\n\n const evt = parseEvent(err)\n return evt instanceof Error ? evt : new Error(extractErrorMessage(evt))\n}\n\nfunction extractErrorMessage(err) {\n if (!err.error) {\n return err.message || 'Unknown listener error'\n }\n\n if (err.error.description) {\n return err.error.description\n }\n\n return typeof err.error === 'string' ? err.error : JSON.stringify(err.error, null, 2)\n}\n", "export default (obj, props) =>\n props.reduce((selection, prop) => {\n if (typeof obj[prop] === 'undefined') {\n return selection\n }\n\n selection[prop] = obj[prop]\n return selection\n }, {})\n", "export default (obj, defaults) =>\n Object.keys(defaults)\n .concat(Object.keys(obj))\n .reduce((target, prop) => {\n target[prop] = typeof obj[prop] === 'undefined' ? defaults[prop] : obj[prop]\n\n return target\n }, {})\n", "import {map, filter} from '../util/observable'\nimport * as validators from '../validators'\nimport getSelection from '../util/getSelection'\nimport encodeQueryString from './encodeQueryString'\nimport Transaction from './transaction'\nimport Patch from './patch'\nimport listen from './listen'\n\nconst excludeFalsey = (param, defValue) => {\n const value = typeof param === 'undefined' ? defValue : param\n return param === false ? undefined : value\n}\n\nconst getMutationQuery = (options = {}) => {\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}\n\nconst isResponse = (event) => event.type === 'response'\nconst getBody = (event) => event.body\n\nconst indexBy = (docs, attr) =>\n docs.reduce((indexed, doc) => {\n indexed[attr(doc)] = doc\n return indexed\n }, Object.create(null))\n\nconst toPromise = (observable) => observable.toPromise()\n\nconst getQuerySizeLimit = 11264\n\nexport default {\n listen: listen,\n\n getDataUrl(operation, path) {\n const config = this.clientConfig\n const catalog = validators.hasDataset(config)\n const baseUri = `/${operation}/${catalog}`\n const uri = path ? `${baseUri}/${path}` : baseUri\n return `/data${uri}`.replace(/\\/($|\\?)/, '$1')\n },\n\n fetch(query, params, options = {}) {\n const mapResponse = options.filterResponse === false ? (res) => res : (res) => res.result\n\n const observable = this._dataRequest('query', {query, params}, options).pipe(map(mapResponse))\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n\n getDocument(id, opts = {}) {\n const options = {uri: this.getDataUrl('doc', id), json: true, tag: opts.tag}\n const observable = this._requestObservable(options).pipe(\n filter(isResponse),\n map((event) => event.body.documents && event.body.documents[0])\n )\n\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n\n getDocuments(ids, opts = {}) {\n const options = {uri: this.getDataUrl('doc', ids.join(',')), json: true, tag: opts.tag}\n const observable = this._requestObservable(options).pipe(\n filter(isResponse),\n map((event) => {\n const indexed = indexBy(event.body.documents || [], (doc) => doc._id)\n return ids.map((id) => indexed[id] || null)\n })\n )\n\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n\n create(doc, options) {\n return this._create(doc, 'create', options)\n },\n\n createIfNotExists(doc, options) {\n validators.requireDocumentId('createIfNotExists', doc)\n return this._create(doc, 'createIfNotExists', options)\n },\n\n createOrReplace(doc, options) {\n validators.requireDocumentId('createOrReplace', doc)\n return this._create(doc, 'createOrReplace', options)\n },\n\n patch(selector, operations) {\n return new Patch(selector, operations, this)\n },\n\n delete(selection, options) {\n return this.dataRequest('mutate', {mutations: [{delete: getSelection(selection)}]}, options)\n },\n\n mutate(mutations, options) {\n const mut =\n mutations instanceof Patch || mutations instanceof Transaction\n ? mutations.serialize()\n : mutations\n\n const muts = Array.isArray(mut) ? mut : [mut]\n const transactionId = options && options.transactionId\n return this.dataRequest('mutate', {mutations: muts, transactionId}, options)\n },\n\n transaction(operations) {\n return new Transaction(operations, this)\n },\n\n dataRequest(endpoint, body, options = {}) {\n const request = this._dataRequest(endpoint, body, options)\n\n return this.isPromiseAPI() ? toPromise(request) : request\n },\n\n _dataRequest(endpoint, body, options = {}) {\n const isMutation = endpoint === 'mutate'\n const isQuery = endpoint === 'query'\n\n // Check if the query string is within a configured threshold,\n // in which case we can use GET. Otherwise, use POST.\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 {timeout, token, tag, headers} = options\n\n const uri = this.getDataUrl(endpoint, stringQuery)\n\n const reqOptions = {\n method: useGet ? 'GET' : 'POST',\n uri: uri,\n json: true,\n body: useGet ? undefined : body,\n query: isMutation && getMutationQuery(options),\n timeout,\n headers,\n token,\n tag,\n canUseCdn: isQuery,\n }\n\n return this._requestObservable(reqOptions).pipe(\n filter(isResponse),\n map(getBody),\n map((res) => {\n if (!isMutation) {\n return res\n }\n\n // Should we return documents?\n const results = res.results || []\n if (options.returnDocuments) {\n return returnFirst\n ? results[0] && results[0].document\n : results.map((mut) => mut.document)\n }\n\n // Return a reduced subset\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: results,\n [key]: ids,\n }\n })\n )\n },\n\n _create(doc, op, options = {}) {\n const mutation = {[op]: doc}\n const opts = Object.assign({returnFirst: true, returnDocuments: true}, options)\n return this.dataRequest('mutate', {mutations: [mutation]}, opts)\n },\n}\n", "import * as validate from '../validators'\n\nfunction DatasetsClient(client) {\n this.request = client.request.bind(client)\n}\n\nObject.assign(DatasetsClient.prototype, {\n create(name, options) {\n return this._modify('PUT', name, options)\n },\n\n edit(name, options) {\n return this._modify('PATCH', name, options)\n },\n\n delete(name) {\n return this._modify('DELETE', name)\n },\n\n list() {\n return this.request({uri: '/datasets'})\n },\n\n _modify(method, name, body) {\n validate.dataset(name)\n return this.request({method, uri: `/datasets/${name}`, body})\n },\n})\n\nexport default DatasetsClient\n", "function ProjectsClient(client) {\n this.client = client\n}\n\nObject.assign(ProjectsClient.prototype, {\n list() {\n return this.client.request({uri: '/projects'})\n },\n\n getById(id) {\n return this.client.request({uri: `/projects/${id}`})\n },\n})\n\nexport default ProjectsClient\n", "export default (params) => {\n const qs = []\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)\n }\n }\n\n return qs.length > 0 ? `?${qs.join('&')}` : ''\n}\n", "import {map, filter} from '../util/observable'\nimport queryString from '../http/queryString'\nimport * as validators from '../validators'\n\nfunction AssetsClient(client) {\n this.client = client\n}\n\nfunction optionsFromFile(opts, file) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts\n }\n\n return Object.assign(\n {\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type,\n },\n opts\n )\n}\n\nObject.assign(AssetsClient.prototype, {\n /**\n * Upload an asset\n *\n * @param {String} assetType `image` or `file`\n * @param {File|Blob|Buffer|ReadableStream} body File to upload\n * @param {Object} opts Options for the upload\n * @param {Boolean} opts.preserveFilename Whether or not to preserve the original filename (default: true)\n * @param {String} opts.filename Filename for this file (optional)\n * @param {Number} opts.timeout Milliseconds to wait before timing the request out (default: 0)\n * @param {String} opts.contentType Mime type of the file\n * @param {Array} opts.extract Array of metadata parts to extract from image.\n * Possible values: `location`, `exif`, `image`, `palette`\n * @param {String} opts.label Label\n * @param {String} opts.title Title\n * @param {String} opts.description Description\n * @param {String} opts.creditLine The credit to person(s) and/or organization(s) required by the supplier of the image to be used when published\n * @param {Object} opts.source Source data (when the asset is from an external service)\n * @param {String} opts.source.id The (u)id of the asset within the source, i.e. 'i-f323r1E'\n * Required if source is defined\n * @param {String} opts.source.name The name of the source, i.e. 'unsplash'\n * Required if source is defined\n * @param {String} opts.source.url A url to where to find the asset, or get more info about it in the source\n * Optional\n * @return {Promise} Resolves with the created asset document\n */\n upload(assetType, body, opts = {}) {\n validators.validateAssetType(assetType)\n\n // If an empty array is given, explicitly set `none` to override API defaults\n let meta = opts.extract || undefined\n if (meta && !meta.length) {\n meta = ['none']\n }\n\n const dataset = validators.hasDataset(this.client.clientConfig)\n const assetEndpoint = assetType === 'image' ? 'images' : 'files'\n const options = optionsFromFile(opts, body)\n const {tag, label, title, description, creditLine, filename, source} = 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 const observable = this.client._requestObservable({\n tag,\n method: 'POST',\n timeout: options.timeout || 0,\n uri: `/assets/${assetEndpoint}/${dataset}`,\n headers: options.contentType ? {'Content-Type': options.contentType} : {},\n query,\n body,\n })\n\n return this.client.isPromiseAPI()\n ? observable\n .pipe(\n filter((event) => event.type === 'response'),\n map((event) => event.body.document)\n )\n .toPromise()\n : observable\n },\n\n delete(type, id) {\n // eslint-disable-next-line no-console\n console.warn('client.assets.delete() is deprecated, please use client.delete(<document-id>)')\n\n let docId = id || ''\n if (!/^(image|file)-/.test(docId)) {\n docId = `${type}-${docId}`\n } else if (type._id) {\n // We could be passing an entire asset document instead of an ID\n docId = type._id\n }\n\n validators.hasDataset(this.client.clientConfig)\n return this.client.delete(docId)\n },\n\n getImageUrl(ref, query) {\n const id = ref._ref || ref\n if (typeof id !== 'string') {\n throw new Error(\n 'getImageUrl() needs either an object with a _ref, or a string with an asset document ID'\n )\n }\n\n if (!/^image-[A-Za-z0-9_]+-\\d+x\\d+-[a-z]{1,5}$/.test(id)) {\n throw new Error(\n `Unsupported asset ID \"${id}\". URL generation only works for auto-generated IDs.`\n )\n }\n\n const [, assetId, size, format] = id.split('-')\n\n validators.hasDataset(this.client.clientConfig)\n const {projectId, dataset} = this.client.clientConfig\n const qs = query ? queryString(query) : ''\n return `https://cdn.sanity.io/images/${projectId}/${dataset}/${assetId}-${size}.${format}${qs}`\n },\n})\n\nexport default AssetsClient\n", "function UsersClient(client) {\n this.client = client\n}\n\nObject.assign(UsersClient.prototype, {\n getById(id) {\n return this.client.request({uri: `/users/${id}`})\n },\n})\n\nexport default UsersClient\n", "function AuthClient(client) {\n this.client = client\n}\n\nObject.assign(AuthClient.prototype, {\n getLoginProviders() {\n return this.client.request({uri: '/auth/providers'})\n },\n\n logout() {\n return this.client.request({uri: '/auth/logout', method: 'POST'})\n },\n})\n\nexport default AuthClient\n", "/* eslint-disable no-empty-function, no-process-env */\nimport getIt from 'get-it'\nimport {observable, jsonRequest, jsonResponse, progress} from 'get-it/middleware'\nimport {Observable} from '../util/observable'\nimport {ClientError, ServerError} from './errors'\nimport envMiddleware from './nodeMiddleware'\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\n return res\n },\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)) // eslint-disable-line no-console\n return res\n },\n}\n\n// Environment-specific middleware.\nconst envSpecific = envMiddleware\n\nconst middleware = envSpecific.concat([\n printWarnings,\n jsonRequest(),\n jsonResponse(),\n progress(),\n httpError,\n observable({implementation: Observable}),\n])\n\nconst request = getIt(middleware)\n\nfunction httpRequest(options, requester = request) {\n return requester(Object.assign({maxRedirects: 0}, options))\n}\n\nhttpRequest.defaultRequester = request\nhttpRequest.ClientError = ClientError\nhttpRequest.ServerError = ServerError\n\nexport default httpRequest\n", "import makeError from 'make-error'\n\nfunction ClientError(res) {\n const props = extractErrorProps(res)\n ClientError.super.call(this, props.message)\n Object.assign(this, props)\n}\n\nfunction ServerError(res) {\n const props = extractErrorProps(res)\n ServerError.super.call(this, props.message)\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 }\n\n // API/Boom style errors ({statusCode, error, message})\n if (body.error && body.message) {\n props.message = `${body.error} - ${body.message}`\n return props\n }\n\n // Query/database errors ({error: {description, other, arb, props}})\n if (body.error && body.error.description) {\n props.message = body.error.description\n props.details = body.error\n return props\n }\n\n // Other, more arbitrary errors\n props.message = body.error || body.message || httpErrorMessage(res)\n return props\n}\n\nfunction httpErrorMessage(res) {\n const statusMessage = res.statusMessage ? ` ${res.statusMessage}` : ''\n return `${res.method}-request to ${res.url} resulted in HTTP ${res.statusCode}${statusMessage}`\n}\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}\n\nmakeError(ClientError)\nmakeError(ServerError)\n\nexport {ClientError, ServerError}\n", "export default []\n", "const projectHeader = 'X-Sanity-Project-ID'\n\nexport default (config, overrides = {}) => {\n const headers = {}\n\n const token = overrides.token || config.token\n if (token) {\n headers.Authorization = `Bearer ${token}`\n }\n\n if (!overrides.useGlobalApi && !config.useProjectHostname && config.projectId) {\n headers[projectHeader] = config.projectId\n }\n\n const withCredentials = Boolean(\n typeof overrides.withCredentials === 'undefined'\n ? config.token || config.withCredentials\n : overrides.withCredentials\n )\n\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 * 1000 : timeout,\n proxy: overrides.proxy || config.proxy,\n json: true,\n withCredentials,\n })\n}\n", "const BASE_URL = 'https://docs.sanity.io/help/'\n\nexport default function generateHelpUrl(slug) {\n return BASE_URL + slug\n}\n", "export default (fn) => {\n let didCall = false\n let returnValue\n return (...args) => {\n if (didCall) {\n return returnValue\n }\n returnValue = fn(...args)\n didCall = true\n return returnValue\n }\n}\n", "import generateHelpUrl from './generateHelpUrl'\nimport once from './util/once'\n\nconst createWarningPrinter = (message) =>\n // eslint-disable-next-line no-console\n once((...args) => console.warn(message.join(' '), ...args))\n\nexport const printCdnWarning = createWarningPrinter([\n 'You are not using the Sanity CDN. That means your data is always fresh, but the CDN is faster and',\n `cheaper. Think about it! For more info, see ${generateHelpUrl('js-client-cdn-configuration')}.`,\n 'To hide this warning, please set the `useCdn` option to either `true` or `false` when creating',\n 'the client.',\n])\n\nexport const printBrowserTokenWarning = createWarningPrinter([\n 'You have configured Sanity client to use a token in the browser. This may cause unintentional security issues.',\n `See ${generateHelpUrl(\n 'js-client-browser-token'\n )} for more information and how to hide this warning.`,\n])\n\nexport const printNoApiVersionSpecifiedWarning = createWarningPrinter([\n 'Using the Sanity client without specifying an API version is deprecated.',\n `See ${generateHelpUrl('js-client-api-version')}`,\n])\n", "import generateHelpUrl from './generateHelpUrl'\nimport * as validate from './validators'\nimport * as warnings from './warnings'\n\nconst defaultCdnHost = 'apicdn.sanity.io'\nexport const defaultConfig = {\n apiHost: 'https://api.sanity.io',\n apiVersion: '1',\n useProjectHostname: true,\n isPromiseAPI: true,\n}\n\nconst LOCALHOSTS = ['localhost', '127.0.0.1', '0.0.0.0']\nconst isLocal = (host) => LOCALHOSTS.indexOf(host) !== -1\n\nexport const validateApiVersion = function validateApiVersion(apiVersion) {\n if (apiVersion === '1' || apiVersion === 'X') {\n return\n }\n\n const apiDate = new Date(apiVersion)\n const apiVersionValid =\n /^\\d{4}-\\d{2}-\\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0\n\n if (!apiVersionValid) {\n throw new Error('Invalid API version string, expected `1` or date in format `YYYY-MM-DD`')\n }\n}\n\n// eslint-disable-next-line complexity\nexport const initConfig = (config, prevConfig) => {\n const specifiedConfig = Object.assign({}, prevConfig, config)\n if (!specifiedConfig.apiVersion) {\n warnings.printNoApiVersionSpecifiedWarning()\n }\n\n const newConfig = Object.assign({}, defaultConfig, specifiedConfig)\n const projectBased = newConfig.useProjectHostname\n\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 ${helpUrl}`)\n }\n\n if (projectBased && !newConfig.projectId) {\n throw new Error('Configuration must contain `projectId`')\n }\n\n const isBrowser = typeof window !== 'undefined' && window.location && window.location.hostname\n const isLocalhost = isBrowser && isLocal(window.location.hostname)\n\n if (isBrowser && isLocalhost && newConfig.token && newConfig.ignoreBrowserTokenWarning !== true) {\n warnings.printBrowserTokenWarning()\n } else if (typeof newConfig.useCdn === 'undefined') {\n warnings.printCdnWarning()\n }\n\n if (projectBased) {\n validate.projectId(newConfig.projectId)\n }\n\n if (newConfig.dataset) {\n validate.dataset(newConfig.dataset)\n }\n\n if ('requestTagPrefix' in newConfig) {\n // Allow setting and unsetting request tag prefix\n newConfig.requestTagPrefix = newConfig.requestTagPrefix\n ? validate.requestTag(newConfig.requestTagPrefix).replace(/\\.+$/, '')\n : undefined\n }\n\n newConfig.apiVersion = `${newConfig.apiVersion}`.replace(/^v/, '')\n newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost\n newConfig.useCdn = Boolean(newConfig.useCdn) && !newConfig.withCredentials\n\n validateApiVersion(newConfig.apiVersion)\n\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\n if (newConfig.useProjectHostname) {\n newConfig.url = `${protocol}://${newConfig.projectId}.${host}/v${newConfig.apiVersion}`\n newConfig.cdnUrl = `${protocol}://${newConfig.projectId}.${cdnHost}/v${newConfig.apiVersion}`\n } else {\n newConfig.url = `${newConfig.apiHost}/v${newConfig.apiVersion}`\n newConfig.cdnUrl = newConfig.url\n }\n\n return newConfig\n}\n", "import {Observable, map, filter} from './util/observable'\nimport Patch from './data/patch'\nimport Transaction from './data/transaction'\nimport dataMethods from './data/dataMethods'\nimport DatasetsClient from './datasets/datasetsClient'\nimport ProjectsClient from './projects/projectsClient'\nimport AssetsClient from './assets/assetsClient'\nimport UsersClient from './users/usersClient'\nimport AuthClient from './auth/authClient'\nimport httpRequest from './http/request'\nimport getRequestOptions from './http/requestOptions'\nimport {defaultConfig, initConfig} from './config'\nimport * as validate from './validators'\n\nconst toPromise = (observable) => observable.toPromise()\n\nfunction SanityClient(config = defaultConfig) {\n if (!(this instanceof SanityClient)) {\n return new SanityClient(config)\n }\n\n this.config(config)\n\n this.assets = new AssetsClient(this)\n this.datasets = new DatasetsClient(this)\n this.projects = new ProjectsClient(this)\n this.users = new UsersClient(this)\n this.auth = new AuthClient(this)\n\n if (this.clientConfig.isPromiseAPI) {\n const observableConfig = Object.assign({}, this.clientConfig, {isPromiseAPI: false})\n this.observable = new SanityClient(observableConfig)\n }\n}\n\nObject.assign(SanityClient.prototype, dataMethods)\nObject.assign(SanityClient.prototype, {\n clone() {\n return new SanityClient(this.config())\n },\n\n config(newConfig) {\n if (typeof newConfig === 'undefined') {\n return Object.assign({}, this.clientConfig)\n }\n\n if (this.observable) {\n const observableConfig = Object.assign({}, newConfig, {isPromiseAPI: false})\n this.observable.config(observableConfig)\n }\n\n this.clientConfig = initConfig(newConfig, this.clientConfig || {})\n return this\n },\n\n withConfig(newConfig) {\n return this.clone().config(newConfig)\n },\n\n getUrl(uri, useCdn = false) {\n const base = useCdn ? this.clientConfig.cdnUrl : this.clientConfig.url\n return `${base}/${uri.replace(/^\\//, '')}`\n },\n\n isPromiseAPI() {\n return this.clientConfig.isPromiseAPI\n },\n\n _requestObservable(options) {\n const uri = options.url || options.uri\n\n // If the `canUseCdn`-option is not set we detect it automatically based on the method + URL.\n // Only the /data endpoint is currently available through API-CDN.\n const canUseCdn =\n typeof options.canUseCdn === 'undefined'\n ? ['GET', 'HEAD'].indexOf(options.method || 'GET') >= 0 && uri.indexOf('/data/') === 0\n : options.canUseCdn\n\n const useCdn = this.clientConfig.useCdn && canUseCdn\n\n const tag =\n options.tag && this.clientConfig.requestTagPrefix\n ? [this.clientConfig.requestTagPrefix, options.tag].join('.')\n : options.tag || this.clientConfig.requestTagPrefix\n\n if (tag) {\n options.query = {tag: validate.requestTag(tag), ...options.query}\n }\n\n const reqOptions = getRequestOptions(\n this.clientConfig,\n Object.assign({}, options, {\n url: this.getUrl(uri, useCdn),\n })\n )\n\n return new Observable((subscriber) =>\n httpRequest(reqOptions, this.clientConfig.requester).subscribe(subscriber)\n )\n },\n\n request(options) {\n const observable = this._requestObservable(options).pipe(\n filter((event) => event.type === 'response'),\n map((event) => event.body)\n )\n\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n})\n\nSanityClient.Patch = Patch\nSanityClient.Transaction = Transaction\nSanityClient.ClientError = httpRequest.ClientError\nSanityClient.ServerError = httpRequest.ServerError\nSanityClient.requester = httpRequest.defaultRequester\n\nexport default SanityClient\n"],
|
|
5
|
-
"mappings": ";AAEA,SAAQ,kBAAiB;AACzB,SAAQ,cAAa;AACrB,SAAQ,WAAU;;;ACJH,SAAR,aAA8B,KAAK;AACxC,MAAI,OAAO,QAAQ,YAAY,MAAM,QAAQ,GAAG,GAAG;AACjD,WAAO,EAAC,IAAI,IAAG;AAAA,EACjB;AAEA,MAAI,OAAO,IAAI,OAAO;AACpB,WAAO,YAAY,MAAM,EAAC,OAAO,IAAI,OAAO,QAAQ,IAAI,OAAM,IAAI,EAAC,OAAO,IAAI,MAAK;AAAA,EACrF;AAEA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AAEX,QAAM,IAAI,MAAM;AAAA;AAAA,EAA0C,eAAe;AAC3E;;;AChBA,IAAM,oBAAoB,CAAC,SAAS,MAAM;AAC1C,IAAM,yBAAyB,CAAC,UAAU,SAAS,SAAS;AAErD,IAAM,UAAU,CAAC,SAAS;AAC/B,MAAI,CAAC,qDAAqD,KAAK,IAAI,GAAG;AACpE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,YAAY,CAAC,OAAO;AAC/B,MAAI,CAAC,gBAAgB,KAAK,EAAE,GAAG;AAC7B,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AACF;AAEO,IAAM,oBAAoB,CAAC,SAAS;AACzC,MAAI,kBAAkB,QAAQ,IAAI,MAAM,IAAI;AAC1C,UAAM,IAAI,MAAM,uBAAuB,wBAAwB,kBAAkB,KAAK,IAAI,GAAG;AAAA,EAC/F;AACF;AAEO,IAAM,iBAAiB,CAAC,IAAI,QAAQ;AACzC,MAAI,QAAQ,QAAQ,OAAO,QAAQ,YAAY,MAAM,QAAQ,GAAG,GAAG;AACjE,UAAM,IAAI,MAAM,GAAG,oCAAoC;AAAA,EACzD;AACF;AAEO,IAAM,qBAAqB,CAAC,IAAI,OAAO;AAC5C,MAAI,OAAO,OAAO,YAAY,CAAC,kBAAkB,KAAK,EAAE,GAAG;AACzD,UAAM,IAAI,MAAM,GAAG,UAAU,gCAAgC;AAAA,EAC/D;AACF;AAEO,IAAM,oBAAoB,CAAC,IAAI,QAAQ;AAC5C,MAAI,CAAC,IAAI,KAAK;AACZ,UAAM,IAAI,MAAM,GAAG,iEAAiE;AAAA,EACtF;AAEA,qBAAmB,IAAI,IAAI,GAAG;AAChC;AAEO,IAAM,iBAAiB,CAAC,IAAI,UAAU,UAAU;AACrD,QAAM,YAAY;AAClB,MAAI,uBAAuB,QAAQ,EAAE,MAAM,IAAI;AAC7C,UAAM,QAAQ,uBAAuB,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,KAAK,IAAI;AACvE,UAAM,IAAI,MAAM,GAAG,qDAAqD,OAAO;AAAA,EACjF;AAEA,MAAI,OAAO,aAAa,UAAU;AAChC,UAAM,IAAI,MAAM,GAAG,8DAA8D;AAAA,EACnF;AAEA,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,UAAM,IAAI,MAAM,GAAG,4DAA4D;AAAA,EACjF;AACF;AAEO,IAAM,aAAa,CAAC,WAAW;AACpC,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAEA,SAAO,OAAO,WAAW;AAC3B;AAEO,IAAM,aAAa,CAAC,QAAQ;AACjC,MAAI,OAAO,QAAQ,YAAY,CAAC,uBAAuB,KAAK,GAAG,GAAG;AAChE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;ACxEA,SAAS,MAAM,WAAW,aAAa,CAAC,GAAG,SAAS,MAAM;AACxD,OAAK,YAAY;AACjB,OAAK,aAAa,OAAO,OAAO,CAAC,GAAG,UAAU;AAC9C,OAAK,SAAS;AAChB;AAEA,OAAO,OAAO,MAAM,WAAW;AAAA,EAC7B,QAAQ;AACN,WAAO,IAAI,MAAM,KAAK,WAAW,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,GAAG,KAAK,MAAM;AAAA,EAClF;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO,OAAO,KAAK;AAAA,EACjC;AAAA,EAEA,eAAe,OAAO;AACpB,mBAAe,kBAAkB,KAAK;AACtC,WAAO,KAAK,OAAO,kBAAkB,KAAK;AAAA,EAC5C;AAAA,EAEA,MAAM,OAAO;AACX,QAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,YAAM,IAAI,MAAM,qEAAqE;AAAA,IACvF;AAEA,SAAK,aAAa,OAAO,OAAO,CAAC,GAAG,KAAK,YAAY,EAAC,OAAO,MAAK,CAAC;AACnE,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,OAAO;AAClB,WAAO,KAAK,OAAO,gBAAgB,KAAK;AAAA,EAC1C;AAAA,EAEA,QAAQ,OAAO;AACb,mBAAe,WAAW,KAAK;AAC/B,WAAO,KAAK,KAAK,OAAO,EAAC,GAAG,MAAK,CAAC;AAAA,EACpC;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO,OAAO,KAAK;AAAA,EACjC;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO,OAAO,KAAK;AAAA,EACjC;AAAA,EAEA,OAAO,IAAI,UAAU,OAAO;AAC1B,mBAAe,IAAI,UAAU,KAAK;AAClC,WAAO,KAAK,OAAO,UAAU,EAAC,CAAC,KAAK,UAAU,MAAK,CAAC;AAAA,EACtD;AAAA,EAEA,OAAO,UAAU,OAAO;AACtB,WAAO,KAAK,OAAO,SAAS,GAAG,gBAAgB,KAAK;AAAA,EACtD;AAAA,EAEA,QAAQ,UAAU,OAAO;AACvB,WAAO,KAAK,OAAO,UAAU,GAAG,eAAe,KAAK;AAAA,EACtD;AAAA,EAEA,OAAO,UAAU,OAAO,aAAa,OAAO;AAM1C,UAAM,SAAS,OAAO,gBAAgB,eAAe,gBAAgB;AACrE,UAAM,aAAa,QAAQ,IAAI,QAAQ,IAAI;AAC3C,UAAM,WAAW,SAAS,KAAK,KAAK,IAAI,GAAG,QAAQ,WAAW;AAC9D,UAAM,WAAW,aAAa,KAAK,YAAY,IAAI,KAAK;AACxD,UAAM,gBAAgB,GAAG,YAAY,cAAc;AACnD,WAAO,KAAK,OAAO,WAAW,eAAe,SAAS,CAAC,CAAC;AAAA,EAC1D;AAAA,EAEA,aAAa,KAAK;AAChB,SAAK,WAAW,eAAe;AAC/B,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,WAAO,OAAO,OAAO,aAAa,KAAK,SAAS,GAAG,KAAK,UAAU;AAAA,EACpE;AAAA,EAEA,SAAS;AACP,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,OAAO,UAAU,CAAC,GAAG;AACnB,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MAEF;AAAA,IACF;AAEA,UAAM,cAAc,OAAO,KAAK,cAAc;AAC9C,UAAM,OAAO,OAAO,OAAO,EAAC,aAAa,iBAAiB,KAAI,GAAG,OAAO;AACxE,WAAO,KAAK,OAAO,OAAO,EAAC,OAAO,KAAK,UAAU,EAAC,GAAG,IAAI;AAAA,EAC3D;AAAA,EAEA,QAAQ;AACN,SAAK,aAAa,CAAC;AACnB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,IAAI,OAAO;AACd,WAAO,KAAK,OAAO,IAAI,OAAO,KAAK;AAAA,EACrC;AAAA,EAEA,OAAO,IAAI,OAAO,QAAQ,MAAM;AAC9B,mBAAe,IAAI,KAAK;AACxB,SAAK,aAAa,OAAO,OAAO,CAAC,GAAG,KAAK,YAAY;AAAA,MACnD,CAAC,KAAK,OAAO,OAAO,CAAC,GAAI,SAAS,KAAK,WAAW,OAAQ,CAAC,GAAG,KAAK;AAAA,IACrE,CAAC;AACD,WAAO;AAAA,EACT;AACF,CAAC;AAED,IAAO,gBAAQ;;;ACrHf,IAAM,uBAAuB,EAAC,iBAAiB,MAAK;AAEpD,SAAS,YAAY,aAAa,CAAC,GAAG,QAAQ,eAAe;AAC3D,OAAK,QAAQ;AACb,OAAK,aAAa;AAClB,OAAK,SAAS;AAChB;AAEA,OAAO,OAAO,YAAY,WAAW;AAAA,EACnC,QAAQ;AACN,WAAO,IAAI,YAAY,KAAK,WAAW,MAAM,CAAC,GAAG,KAAK,QAAQ,KAAK,KAAK;AAAA,EAC1E;AAAA,EAEA,OAAO,KAAK;AACV,IAAW,eAAe,UAAU,GAAG;AACvC,WAAO,KAAK,KAAK,EAAC,QAAQ,IAAG,CAAC;AAAA,EAChC;AAAA,EAEA,kBAAkB,KAAK;AACrB,UAAM,KAAK;AACX,IAAW,eAAe,IAAI,GAAG;AACjC,IAAW,kBAAkB,IAAI,GAAG;AACpC,WAAO,KAAK,KAAK,EAAC,CAAC,KAAK,IAAG,CAAC;AAAA,EAC9B;AAAA,EAEA,gBAAgB,KAAK;AACnB,UAAM,KAAK;AACX,IAAW,eAAe,IAAI,GAAG;AACjC,IAAW,kBAAkB,IAAI,GAAG;AACpC,WAAO,KAAK,KAAK,EAAC,CAAC,KAAK,IAAG,CAAC;AAAA,EAC9B;AAAA,EAEA,OAAO,YAAY;AACjB,IAAW,mBAAmB,UAAU,UAAU;AAClD,WAAO,KAAK,KAAK,EAAC,QAAQ,EAAC,IAAI,WAAU,EAAC,CAAC;AAAA,EAC7C;AAAA,EAEA,MAAM,YAAY,UAAU;AAC1B,UAAM,YAAY,OAAO,aAAa;AACtC,UAAM,UAAU,sBAAsB;AAGtC,QAAI,SAAS;AACX,aAAO,KAAK,KAAK,EAAC,OAAO,WAAW,UAAU,EAAC,CAAC;AAAA,IAClD;AAGA,QAAI,WAAW;AACb,YAAM,QAAQ,SAAS,IAAI,cAAM,YAAY,CAAC,GAAG,KAAK,MAAM,CAAC;AAC7D,UAAI,EAAE,iBAAiB,gBAAQ;AAC7B,cAAM,IAAI,MAAM,oDAAoD;AAAA,MACtE;AAEA,aAAO,KAAK,KAAK,EAAC,OAAO,MAAM,UAAU,EAAC,CAAC;AAAA,IAC7C;AAEA,WAAO,KAAK,KAAK,EAAC,OAAO,OAAO,OAAO,EAAC,IAAI,WAAU,GAAG,QAAQ,EAAC,CAAC;AAAA,EACrE;AAAA,EAEA,cAAc,IAAI;AAChB,QAAI,CAAC,IAAI;AACP,aAAO,KAAK;AAAA,IACd;AAEA,SAAK,QAAQ;AACb,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,WAAO,KAAK,WAAW,MAAM;AAAA,EAC/B;AAAA,EAEA,SAAS;AACP,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,OAAO,SAAS;AACd,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MAEF;AAAA,IACF;AAEA,WAAO,KAAK,OAAO;AAAA,MACjB,KAAK,UAAU;AAAA,MACf,OAAO,OAAO,EAAC,eAAe,KAAK,MAAK,GAAG,sBAAsB,WAAW,CAAC,CAAC;AAAA,IAChF;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,SAAK,aAAa,CAAC;AACnB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,KAAK;AACR,SAAK,WAAW,KAAK,GAAG;AACxB,WAAO;AAAA,EACT;AACF,CAAC;AAED,IAAO,sBAAQ;;;ACxGf,IAAM,MAAM;AAEZ,IAAO,4BAAQ,CAAC,EAAC,OAAO,SAAS,CAAC,GAAG,UAAU,CAAC,EAAC,MAAM;AAErD,QAAM,EAAC,QAAQ,KAAI,IAAI;AACvB,QAAM,IAAI,SAAS,IAAI,KAAK;AAC5B,QAAM,OAAO,MAAM,QAAQ,IAAI,GAAG,KAAK,MAAM,IAAI;AAEjD,QAAM,UAAU,OAAO,KAAK,MAAM,EAAE;AAAA,IAClC,CAAC,IAAI,UAAU,GAAG,MAAM,IAAI,IAAI,OAAO,KAAK,IAAI,KAAK,UAAU,OAAO,MAAM,CAAC;AAAA,IAC7E;AAAA,EACF;AAEA,SAAO,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,IAAI,WAAW;AAE9C,WAAO,QAAQ,UAAU,GAAG,MAAM,IAAI,MAAM,KAAK,IAAI,QAAQ,OAAO,MAAM;AAAA,EAC5E,GAAG,OAAO;AACZ;;;AChBA,OAAO,2BAA2B;;;ACDlC,IAAO,eAAQ,CAAC,KAAK,UACnB,MAAM,OAAO,CAAC,WAAW,SAAS;AAChC,MAAI,OAAO,IAAI,UAAU,aAAa;AACpC,WAAO;AAAA,EACT;AAEA,YAAU,QAAQ,IAAI;AACtB,SAAO;AACT,GAAG,CAAC,CAAC;;;ACRP,IAAO,mBAAQ,CAAC,KAAK,aACnB,OAAO,KAAK,QAAQ,EACjB,OAAO,OAAO,KAAK,GAAG,CAAC,EACvB,OAAO,CAAC,QAAQ,SAAS;AACxB,SAAO,QAAQ,OAAO,IAAI,UAAU,cAAc,SAAS,QAAQ,IAAI;AAEvE,SAAO;AACT,GAAG,CAAC,CAAC;;;AFET,IAAM,iBAAiB,OAAQ;AAC/B,IAAM,cAAc;AAEpB,IAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,iBAAiB;AAAA,EACrB,eAAe;AACjB;AAEe,SAAR,OAAwB,OAAO,QAAQ,OAAO,CAAC,GAAG;AACvD,QAAM,EAAC,KAAK,OAAO,iBAAiB,iBAAgB,IAAI,KAAK;AAC7D,QAAM,MAAM,KAAK,OAAO,mBAAmB,CAAC,kBAAkB,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,KAAK;AACzF,QAAM,UAAU,EAAC,GAAG,iBAAS,MAAM,cAAc,GAAG,IAAG;AACvD,QAAM,aAAa,aAAK,SAAS,eAAe;AAChD,QAAM,KAAK,0BAAkB,EAAC,OAAO,QAAQ,SAAS,YAAY,IAAG,CAAC;AAEtE,QAAM,MAAM,GAAG,MAAM,KAAK,WAAW,UAAU,EAAE;AACjD,MAAI,IAAI,SAAS,gBAAgB;AAC/B,WAAO,IAAI,WAAW,CAAC,aAAa,SAAS,MAAM,IAAI,MAAM,8BAA8B,CAAC,CAAC;AAAA,EAC/F;AAEA,QAAM,YAAY,QAAQ,SAAS,QAAQ,SAAS,CAAC,UAAU;AAC/D,QAAM,sBAAsB,UAAU,QAAQ,WAAW,MAAM;AAE/D,QAAM,YAAY,CAAC;AACnB,MAAI,SAAS,iBAAiB;AAC5B,cAAU,kBAAkB;AAAA,EAC9B;AAEA,MAAI,OAAO;AACT,cAAU,UAAU;AAAA,MAClB,eAAe,UAAU;AAAA,IAC3B;AAAA,EACF;AAEA,SAAO,IAAI,WAAW,CAAC,aAAa;AAClC,QAAI,KAAK,eAAe;AACxB,QAAI;AACJ,QAAI,UAAU;AAEd,aAAS,UAAU;AACjB,UAAI,SAAS;AACX;AAAA,MACF;AAEA,oBAAc;AAGd,UAAI,SAAS;AACX;AAAA,MACF;AAOA,UAAI,GAAG,eAAe,YAAY,QAAQ;AACxC,oBAAY;AACZ,qBAAa,cAAc;AAC3B,yBAAiB,WAAW,MAAM,GAAG;AAAA,MACvC;AAAA,IACF;AAEA,aAAS,eAAe,KAAK;AAC3B,eAAS,MAAM,aAAa,GAAG,CAAC;AAAA,IAClC;AAEA,aAAS,UAAU,KAAK;AACtB,YAAM,QAAQ,WAAW,GAAG;AAC5B,aAAO,iBAAiB,QAAQ,SAAS,MAAM,KAAK,IAAI,SAAS,KAAK,KAAK;AAAA,IAC7E;AAEA,aAAS,aAAa,KAAK;AACzB,gBAAU;AACV,kBAAY;AACZ,eAAS,SAAS;AAAA,IACpB;AAEA,aAAS,cAAc;AACrB,SAAG,oBAAoB,SAAS,SAAS,KAAK;AAC9C,SAAG,oBAAoB,gBAAgB,gBAAgB,KAAK;AAC5D,SAAG,oBAAoB,cAAc,cAAc,KAAK;AACxD,gBAAU,QAAQ,CAAC,SAAS,GAAG,oBAAoB,MAAM,WAAW,KAAK,CAAC;AAC1E,SAAG,MAAM;AAAA,IACX;AAEA,aAAS,gBAAgB;AACvB,UAAI,qBAAqB;AACvB,iBAAS,KAAK,EAAC,MAAM,YAAW,CAAC;AAAA,MACnC;AAAA,IACF;AAEA,aAAS,iBAAiB;AACxB,YAAM,MAAM,IAAI,YAAY,KAAK,SAAS;AAC1C,UAAI,iBAAiB,SAAS,SAAS,KAAK;AAC5C,UAAI,iBAAiB,gBAAgB,gBAAgB,KAAK;AAC1D,UAAI,iBAAiB,cAAc,cAAc,KAAK;AACtD,gBAAU,QAAQ,CAAC,SAAS,IAAI,iBAAiB,MAAM,WAAW,KAAK,CAAC;AACxE,aAAO;AAAA,IACT;AAEA,aAAS,OAAO;AACd,WAAK,eAAe;AAAA,IACtB;AAEA,aAAS,OAAO;AACd,gBAAU;AACV,kBAAY;AAAA,IACd;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,SAAS,WAAW,OAAO;AACzB,MAAI;AACF,UAAM,OAAQ,MAAM,QAAQ,KAAK,MAAM,MAAM,IAAI,KAAM,CAAC;AACxD,WAAO,OAAO,OAAO,EAAC,MAAM,MAAM,KAAI,GAAG,IAAI;AAAA,EAC/C,SAAS,KAAP;AACA,WAAO;AAAA,EACT;AACF;AAEA,SAAS,aAAa,KAAK;AACzB,MAAI,eAAe,OAAO;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,WAAW,GAAG;AAC1B,SAAO,eAAe,QAAQ,MAAM,IAAI,MAAM,oBAAoB,GAAG,CAAC;AACxE;AAEA,SAAS,oBAAoB,KAAK;AAChC,MAAI,CAAC,IAAI,OAAO;AACd,WAAO,IAAI,WAAW;AAAA,EACxB;AAEA,MAAI,IAAI,MAAM,aAAa;AACzB,WAAO,IAAI,MAAM;AAAA,EACnB;AAEA,SAAO,OAAO,IAAI,UAAU,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC;AACtF;;;AGtJA,IAAM,gBAAgB,CAAC,OAAO,aAAa;AACzC,QAAM,QAAQ,OAAO,UAAU,cAAc,WAAW;AACxD,SAAO,UAAU,QAAQ,SAAY;AACvC;AAEA,IAAM,mBAAmB,CAAC,UAAU,CAAC,MAAM;AACzC,SAAO;AAAA,IACL,QAAQ,QAAQ;AAAA,IAChB,WAAW;AAAA,IACX,iBAAiB,cAAc,QAAQ,iBAAiB,IAAI;AAAA,IAC5D,YAAY,QAAQ,cAAc;AAAA,IAClC,uBAAuB,QAAQ;AAAA,IAC/B,qCAAqC,QAAQ;AAAA,EAC/C;AACF;AAEA,IAAM,aAAa,CAAC,UAAU,MAAM,SAAS;AAC7C,IAAM,UAAU,CAAC,UAAU,MAAM;AAEjC,IAAM,UAAU,CAAC,MAAM,SACrB,KAAK,OAAO,CAAC,SAAS,QAAQ;AAC5B,UAAQ,KAAK,GAAG,KAAK;AACrB,SAAO;AACT,GAAG,uBAAO,OAAO,IAAI,CAAC;AAExB,IAAM,YAAY,CAACA,gBAAeA,YAAW,UAAU;AAEvD,IAAM,oBAAoB;AAE1B,IAAO,sBAAQ;AAAA,EACb;AAAA,EAEA,WAAW,WAAW,MAAM;AAC1B,UAAM,SAAS,KAAK;AACpB,UAAM,UAAqB,WAAW,MAAM;AAC5C,UAAM,UAAU,IAAI,aAAa;AACjC,UAAM,MAAM,OAAO,GAAG,WAAW,SAAS;AAC1C,WAAO,QAAQ,MAAM,QAAQ,YAAY,IAAI;AAAA,EAC/C;AAAA,EAEA,MAAM,OAAO,QAAQ,UAAU,CAAC,GAAG;AACjC,UAAM,cAAc,QAAQ,mBAAmB,QAAQ,CAAC,QAAQ,MAAM,CAAC,QAAQ,IAAI;AAEnF,UAAMA,cAAa,KAAK,aAAa,SAAS,EAAC,OAAO,OAAM,GAAG,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC;AAC7F,WAAO,KAAK,aAAa,IAAI,UAAUA,WAAU,IAAIA;AAAA,EACvD;AAAA,EAEA,YAAY,IAAI,OAAO,CAAC,GAAG;AACzB,UAAM,UAAU,EAAC,KAAK,KAAK,WAAW,OAAO,EAAE,GAAG,MAAM,MAAM,KAAK,KAAK,IAAG;AAC3E,UAAMA,cAAa,KAAK,mBAAmB,OAAO,EAAE;AAAA,MAClD,OAAO,UAAU;AAAA,MACjB,IAAI,CAAC,UAAU,MAAM,KAAK,aAAa,MAAM,KAAK,UAAU,EAAE;AAAA,IAChE;AAEA,WAAO,KAAK,aAAa,IAAI,UAAUA,WAAU,IAAIA;AAAA,EACvD;AAAA,EAEA,aAAa,KAAK,OAAO,CAAC,GAAG;AAC3B,UAAM,UAAU,EAAC,KAAK,KAAK,WAAW,OAAO,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,MAAM,KAAK,KAAK,IAAG;AACtF,UAAMA,cAAa,KAAK,mBAAmB,OAAO,EAAE;AAAA,MAClD,OAAO,UAAU;AAAA,MACjB,IAAI,CAAC,UAAU;AACb,cAAM,UAAU,QAAQ,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG;AACpE,eAAO,IAAI,IAAI,CAAC,OAAO,QAAQ,OAAO,IAAI;AAAA,MAC5C,CAAC;AAAA,IACH;AAEA,WAAO,KAAK,aAAa,IAAI,UAAUA,WAAU,IAAIA;AAAA,EACvD;AAAA,EAEA,OAAO,KAAK,SAAS;AACnB,WAAO,KAAK,QAAQ,KAAK,UAAU,OAAO;AAAA,EAC5C;AAAA,EAEA,kBAAkB,KAAK,SAAS;AAC9B,IAAW,kBAAkB,qBAAqB,GAAG;AACrD,WAAO,KAAK,QAAQ,KAAK,qBAAqB,OAAO;AAAA,EACvD;AAAA,EAEA,gBAAgB,KAAK,SAAS;AAC5B,IAAW,kBAAkB,mBAAmB,GAAG;AACnD,WAAO,KAAK,QAAQ,KAAK,mBAAmB,OAAO;AAAA,EACrD;AAAA,EAEA,MAAM,UAAU,YAAY;AAC1B,WAAO,IAAI,cAAM,UAAU,YAAY,IAAI;AAAA,EAC7C;AAAA,EAEA,OAAO,WAAW,SAAS;AACzB,WAAO,KAAK,YAAY,UAAU,EAAC,WAAW,CAAC,EAAC,QAAQ,aAAa,SAAS,EAAC,CAAC,EAAC,GAAG,OAAO;AAAA,EAC7F;AAAA,EAEA,OAAO,WAAW,SAAS;AACzB,UAAM,MACJ,qBAAqB,iBAAS,qBAAqB,sBAC/C,UAAU,UAAU,IACpB;AAEN,UAAM,OAAO,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG;AAC5C,UAAM,gBAAgB,WAAW,QAAQ;AACzC,WAAO,KAAK,YAAY,UAAU,EAAC,WAAW,MAAM,cAAa,GAAG,OAAO;AAAA,EAC7E;AAAA,EAEA,YAAY,YAAY;AACtB,WAAO,IAAI,oBAAY,YAAY,IAAI;AAAA,EACzC;AAAA,EAEA,YAAY,UAAU,MAAM,UAAU,CAAC,GAAG;AACxC,UAAMC,WAAU,KAAK,aAAa,UAAU,MAAM,OAAO;AAEzD,WAAO,KAAK,aAAa,IAAI,UAAUA,QAAO,IAAIA;AAAA,EACpD;AAAA,EAEA,aAAa,UAAU,MAAM,UAAU,CAAC,GAAG;AACzC,UAAM,aAAa,aAAa;AAChC,UAAM,UAAU,aAAa;AAI7B,UAAM,WAAW,CAAC,cAAc,0BAAkB,IAAI;AACtD,UAAM,SAAS,CAAC,cAAc,SAAS,SAAS;AAChD,UAAM,cAAc,SAAS,WAAW;AACxC,UAAM,cAAc,QAAQ;AAC5B,UAAM,EAAC,SAAS,OAAO,KAAK,QAAO,IAAI;AAEvC,UAAM,MAAM,KAAK,WAAW,UAAU,WAAW;AAEjD,UAAM,aAAa;AAAA,MACjB,QAAQ,SAAS,QAAQ;AAAA,MACzB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,SAAS,SAAY;AAAA,MAC3B,OAAO,cAAc,iBAAiB,OAAO;AAAA,MAC7C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IACb;AAEA,WAAO,KAAK,mBAAmB,UAAU,EAAE;AAAA,MACzC,OAAO,UAAU;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,IAAI,CAAC,QAAQ;AACX,YAAI,CAAC,YAAY;AACf,iBAAO;AAAA,QACT;AAGA,cAAM,UAAU,IAAI,WAAW,CAAC;AAChC,YAAI,QAAQ,iBAAiB;AAC3B,iBAAO,cACH,QAAQ,MAAM,QAAQ,GAAG,WACzB,QAAQ,IAAI,CAAC,QAAQ,IAAI,QAAQ;AAAA,QACvC;AAGA,cAAM,MAAM,cAAc,eAAe;AACzC,cAAM,MAAM,cAAc,QAAQ,MAAM,QAAQ,GAAG,KAAK,QAAQ,IAAI,CAAC,QAAQ,IAAI,EAAE;AACnF,eAAO;AAAA,UACL,eAAe,IAAI;AAAA,UACnB;AAAA,UACA,CAAC,MAAM;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,QAAQ,KAAK,IAAI,UAAU,CAAC,GAAG;AAC7B,UAAM,WAAW,EAAC,CAAC,KAAK,IAAG;AAC3B,UAAM,OAAO,OAAO,OAAO,EAAC,aAAa,MAAM,iBAAiB,KAAI,GAAG,OAAO;AAC9E,WAAO,KAAK,YAAY,UAAU,EAAC,WAAW,CAAC,QAAQ,EAAC,GAAG,IAAI;AAAA,EACjE;AACF;;;ACnLA,SAAS,eAAe,QAAQ;AAC9B,OAAK,UAAU,OAAO,QAAQ,KAAK,MAAM;AAC3C;AAEA,OAAO,OAAO,eAAe,WAAW;AAAA,EACtC,OAAO,MAAM,SAAS;AACpB,WAAO,KAAK,QAAQ,OAAO,MAAM,OAAO;AAAA,EAC1C;AAAA,EAEA,KAAK,MAAM,SAAS;AAClB,WAAO,KAAK,QAAQ,SAAS,MAAM,OAAO;AAAA,EAC5C;AAAA,EAEA,OAAO,MAAM;AACX,WAAO,KAAK,QAAQ,UAAU,IAAI;AAAA,EACpC;AAAA,EAEA,OAAO;AACL,WAAO,KAAK,QAAQ,EAAC,KAAK,YAAW,CAAC;AAAA,EACxC;AAAA,EAEA,QAAQ,QAAQ,MAAM,MAAM;AAC1B,IAAS,QAAQ,IAAI;AACrB,WAAO,KAAK,QAAQ,EAAC,QAAQ,KAAK,aAAa,QAAQ,KAAI,CAAC;AAAA,EAC9D;AACF,CAAC;AAED,IAAO,yBAAQ;;;AC7Bf,SAAS,eAAe,QAAQ;AAC9B,OAAK,SAAS;AAChB;AAEA,OAAO,OAAO,eAAe,WAAW;AAAA,EACtC,OAAO;AACL,WAAO,KAAK,OAAO,QAAQ,EAAC,KAAK,YAAW,CAAC;AAAA,EAC/C;AAAA,EAEA,QAAQ,IAAI;AACV,WAAO,KAAK,OAAO,QAAQ,EAAC,KAAK,aAAa,KAAI,CAAC;AAAA,EACrD;AACF,CAAC;AAED,IAAO,yBAAQ;;;ACdf,IAAO,sBAAQ,CAAC,WAAW;AACzB,QAAM,KAAK,CAAC;AACZ,aAAW,OAAO,QAAQ;AACxB,QAAI,OAAO,eAAe,GAAG,GAAG;AAC9B,SAAG,KAAK,GAAG,mBAAmB,GAAG,KAAK,mBAAmB,OAAO,IAAI,GAAG;AAAA,IACzE;AAAA,EACF;AAEA,SAAO,GAAG,SAAS,IAAI,IAAI,GAAG,KAAK,GAAG,MAAM;AAC9C;;;ACLA,SAAS,aAAa,QAAQ;AAC5B,OAAK,SAAS;AAChB;AAEA,SAAS,gBAAgB,MAAM,MAAM;AACnC,MAAI,OAAO,WAAW,eAAe,EAAE,gBAAgB,OAAO,OAAO;AACnE,WAAO;AAAA,EACT;AAEA,SAAO,OAAO;AAAA,IACZ;AAAA,MACE,UAAU,KAAK,qBAAqB,QAAQ,SAAY,KAAK;AAAA,MAC7D,aAAa,KAAK;AAAA,IACpB;AAAA,IACA;AAAA,EACF;AACF;AAEA,OAAO,OAAO,aAAa,WAAW;AAAA,EA0BpC,OAAO,WAAW,MAAM,OAAO,CAAC,GAAG;AACjC,IAAW,kBAAkB,SAAS;AAGtC,QAAI,OAAO,KAAK,WAAW;AAC3B,QAAI,QAAQ,CAAC,KAAK,QAAQ;AACxB,aAAO,CAAC,MAAM;AAAA,IAChB;AAEA,UAAMC,WAAqB,WAAW,KAAK,OAAO,YAAY;AAC9D,UAAM,gBAAgB,cAAc,UAAU,WAAW;AACzD,UAAM,UAAU,gBAAgB,MAAM,IAAI;AAC1C,UAAM,EAAC,KAAK,OAAO,OAAO,aAAa,YAAY,UAAU,OAAM,IAAI;AACvE,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,QAAI,QAAQ;AACV,YAAM,WAAW,OAAO;AACxB,YAAM,aAAa,OAAO;AAC1B,YAAM,YAAY,OAAO;AAAA,IAC3B;AACA,UAAMC,cAAa,KAAK,OAAO,mBAAmB;AAAA,MAChD;AAAA,MACA,QAAQ;AAAA,MACR,SAAS,QAAQ,WAAW;AAAA,MAC5B,KAAK,WAAW,iBAAiBD;AAAA,MACjC,SAAS,QAAQ,cAAc,EAAC,gBAAgB,QAAQ,YAAW,IAAI,CAAC;AAAA,MACxE;AAAA,MACA;AAAA,IACF,CAAC;AAED,WAAO,KAAK,OAAO,aAAa,IAC5BC,YACG;AAAA,MACC,OAAO,CAAC,UAAU,MAAM,SAAS,UAAU;AAAA,MAC3C,IAAI,CAAC,UAAU,MAAM,KAAK,QAAQ;AAAA,IACpC,EACC,UAAU,IACbA;AAAA,EACN;AAAA,EAEA,OAAO,MAAM,IAAI;AAEf,YAAQ,KAAK,+EAA+E;AAE5F,QAAI,QAAQ,MAAM;AAClB,QAAI,CAAC,iBAAiB,KAAK,KAAK,GAAG;AACjC,cAAQ,GAAG,QAAQ;AAAA,IACrB,WAAW,KAAK,KAAK;AAEnB,cAAQ,KAAK;AAAA,IACf;AAEA,IAAW,WAAW,KAAK,OAAO,YAAY;AAC9C,WAAO,KAAK,OAAO,OAAO,KAAK;AAAA,EACjC;AAAA,EAEA,YAAY,KAAK,OAAO;AACtB,UAAM,KAAK,IAAI,QAAQ;AACvB,QAAI,OAAO,OAAO,UAAU;AAC1B,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,2CAA2C,KAAK,EAAE,GAAG;AACxD,YAAM,IAAI;AAAA,QACR,yBAAyB;AAAA,MAC3B;AAAA,IACF;AAEA,UAAM,CAAC,EAAE,SAAS,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;AAE9C,IAAW,WAAW,KAAK,OAAO,YAAY;AAC9C,UAAM,EAAC,WAAAC,YAAW,SAAAF,SAAO,IAAI,KAAK,OAAO;AACzC,UAAM,KAAK,QAAQ,oBAAY,KAAK,IAAI;AACxC,WAAO,gCAAgCE,cAAaF,YAAW,WAAW,QAAQ,SAAS;AAAA,EAC7F;AACF,CAAC;AAED,IAAO,uBAAQ;;;ACrIf,SAAS,YAAY,QAAQ;AAC3B,OAAK,SAAS;AAChB;AAEA,OAAO,OAAO,YAAY,WAAW;AAAA,EACnC,QAAQ,IAAI;AACV,WAAO,KAAK,OAAO,QAAQ,EAAC,KAAK,UAAU,KAAI,CAAC;AAAA,EAClD;AACF,CAAC;AAED,IAAO,sBAAQ;;;ACVf,SAAS,WAAW,QAAQ;AAC1B,OAAK,SAAS;AAChB;AAEA,OAAO,OAAO,WAAW,WAAW;AAAA,EAClC,oBAAoB;AAClB,WAAO,KAAK,OAAO,QAAQ,EAAC,KAAK,kBAAiB,CAAC;AAAA,EACrD;AAAA,EAEA,SAAS;AACP,WAAO,KAAK,OAAO,QAAQ,EAAC,KAAK,gBAAgB,QAAQ,OAAM,CAAC;AAAA,EAClE;AACF,CAAC;AAED,IAAO,qBAAQ;;;ACbf,OAAO,WAAW;AAClB,SAAQ,YAAY,aAAa,cAAc,gBAAe;;;ACF9D,OAAO,eAAe;AAEtB,SAAS,YAAY,KAAK;AACxB,QAAM,QAAQ,kBAAkB,GAAG;AACnC,cAAY,MAAM,KAAK,MAAM,MAAM,OAAO;AAC1C,SAAO,OAAO,MAAM,KAAK;AAC3B;AAEA,SAAS,YAAY,KAAK;AACxB,QAAM,QAAQ,kBAAkB,GAAG;AACnC,cAAY,MAAM,KAAK,MAAM,MAAM,OAAO;AAC1C,SAAO,OAAO,MAAM,KAAK;AAC3B;AAEA,SAAS,kBAAkB,KAAK;AAC9B,QAAM,OAAO,IAAI;AACjB,QAAM,QAAQ;AAAA,IACZ,UAAU;AAAA,IACV,YAAY,IAAI;AAAA,IAChB,cAAc,cAAc,MAAM,GAAG;AAAA,EACvC;AAGA,MAAI,KAAK,SAAS,KAAK,SAAS;AAC9B,UAAM,UAAU,GAAG,KAAK,WAAW,KAAK;AACxC,WAAO;AAAA,EACT;AAGA,MAAI,KAAK,SAAS,KAAK,MAAM,aAAa;AACxC,UAAM,UAAU,KAAK,MAAM;AAC3B,UAAM,UAAU,KAAK;AACrB,WAAO;AAAA,EACT;AAGA,QAAM,UAAU,KAAK,SAAS,KAAK,WAAW,iBAAiB,GAAG;AAClE,SAAO;AACT;AAEA,SAAS,iBAAiB,KAAK;AAC7B,QAAM,gBAAgB,IAAI,gBAAgB,IAAI,IAAI,kBAAkB;AACpE,SAAO,GAAG,IAAI,qBAAqB,IAAI,wBAAwB,IAAI,aAAa;AAClF;AAEA,SAAS,cAAc,MAAM,KAAK;AAChC,QAAM,eAAe,IAAI,QAAQ,mBAAmB,IAAI,YAAY;AACpE,QAAM,SAAS,YAAY,QAAQ,kBAAkB,MAAM;AAC3D,SAAO,SAAS,KAAK,UAAU,MAAM,MAAM,CAAC,IAAI;AAClD;AAEA,UAAU,WAAW;AACrB,UAAU,WAAW;;;ACpDrB,IAAO,4BAAQ,CAAC;;;AFOhB,IAAM,YAAY;AAAA,EAChB,YAAY,CAAC,QAAQ;AACnB,QAAI,IAAI,cAAc,KAAK;AACzB,YAAM,IAAI,YAAY,GAAG;AAAA,IAC3B,WAAW,IAAI,cAAc,KAAK;AAChC,YAAM,IAAI,YAAY,GAAG;AAAA,IAC3B;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAM,gBAAgB;AAAA,EACpB,YAAY,CAAC,QAAQ;AACnB,UAAM,OAAO,IAAI,QAAQ;AACzB,UAAM,WAAW,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AACnD,aAAS,OAAO,OAAO,EAAE,QAAQ,CAAC,QAAQ,QAAQ,KAAK,GAAG,CAAC;AAC3D,WAAO;AAAA,EACT;AACF;AAGA,IAAM,cAAc;AAEpB,IAAM,aAAa,YAAY,OAAO;AAAA,EACpC;AAAA,EACA,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,SAAS;AAAA,EACT;AAAA,EACA,WAAW,EAAC,gBAAgB,WAAU,CAAC;AACzC,CAAC;AAED,IAAM,UAAU,MAAM,UAAU;AAEhC,SAAS,YAAY,SAAS,YAAY,SAAS;AACjD,SAAO,UAAU,OAAO,OAAO,EAAC,cAAc,EAAC,GAAG,OAAO,CAAC;AAC5D;AAEA,YAAY,mBAAmB;AAC/B,YAAY,cAAc;AAC1B,YAAY,cAAc;AAE1B,IAAO,kBAAQ;;;AGlDf,IAAM,gBAAgB;AAEtB,IAAO,yBAAQ,CAAC,QAAQ,YAAY,CAAC,MAAM;AACzC,QAAM,UAAU,CAAC;AAEjB,QAAM,QAAQ,UAAU,SAAS,OAAO;AACxC,MAAI,OAAO;AACT,YAAQ,gBAAgB,UAAU;AAAA,EACpC;AAEA,MAAI,CAAC,UAAU,gBAAgB,CAAC,OAAO,sBAAsB,OAAO,WAAW;AAC7E,YAAQ,iBAAiB,OAAO;AAAA,EAClC;AAEA,QAAM,kBAAkB;AAAA,IACtB,OAAO,UAAU,oBAAoB,cACjC,OAAO,SAAS,OAAO,kBACvB,UAAU;AAAA,EAChB;AAEA,QAAM,UAAU,OAAO,UAAU,YAAY,cAAc,OAAO,UAAU,UAAU;AACtF,SAAO,OAAO,OAAO,CAAC,GAAG,WAAW;AAAA,IAClC,SAAS,OAAO,OAAO,CAAC,GAAG,SAAS,UAAU,WAAW,CAAC,CAAC;AAAA,IAC3D,SAAS,OAAO,YAAY,cAAc,IAAI,KAAK,MAAO;AAAA,IAC1D,OAAO,UAAU,SAAS,OAAO;AAAA,IACjC,MAAM;AAAA,IACN;AAAA,EACF,CAAC;AACH;;;AC5BA,IAAM,WAAW;AAEF,SAAR,gBAAiC,MAAM;AAC5C,SAAO,WAAW;AACpB;;;ACJA,IAAO,eAAQ,CAAC,OAAO;AACrB,MAAI,UAAU;AACd,MAAI;AACJ,SAAO,IAAI,SAAS;AAClB,QAAI,SAAS;AACX,aAAO;AAAA,IACT;AACA,kBAAc,GAAG,GAAG,IAAI;AACxB,cAAU;AACV,WAAO;AAAA,EACT;AACF;;;ACRA,IAAM,uBAAuB,CAAC,YAE5B,aAAK,IAAI,SAAS,QAAQ,KAAK,QAAQ,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;AAErD,IAAM,kBAAkB,qBAAqB;AAAA,EAClD;AAAA,EACA,+CAA+C,gBAAgB,6BAA6B;AAAA,EAC5F;AAAA,EACA;AACF,CAAC;AAEM,IAAM,2BAA2B,qBAAqB;AAAA,EAC3D;AAAA,EACA,OAAO;AAAA,IACL;AAAA,EACF;AACF,CAAC;AAEM,IAAM,oCAAoC,qBAAqB;AAAA,EACpE;AAAA,EACA,OAAO,gBAAgB,uBAAuB;AAChD,CAAC;;;ACpBD,IAAM,iBAAiB;AAChB,IAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,cAAc;AAChB;AAEA,IAAM,aAAa,CAAC,aAAa,aAAa,SAAS;AACvD,IAAM,UAAU,CAAC,SAAS,WAAW,QAAQ,IAAI,MAAM;AAEhD,IAAM,qBAAqB,SAASG,oBAAmB,YAAY;AACxE,MAAI,eAAe,OAAO,eAAe,KAAK;AAC5C;AAAA,EACF;AAEA,QAAM,UAAU,IAAI,KAAK,UAAU;AACnC,QAAM,kBACJ,sBAAsB,KAAK,UAAU,KAAK,mBAAmB,QAAQ,QAAQ,QAAQ,IAAI;AAE3F,MAAI,CAAC,iBAAiB;AACpB,UAAM,IAAI,MAAM,yEAAyE;AAAA,EAC3F;AACF;AAGO,IAAM,aAAa,CAAC,QAAQ,eAAe;AAChD,QAAM,kBAAkB,OAAO,OAAO,CAAC,GAAG,YAAY,MAAM;AAC5D,MAAI,CAAC,gBAAgB,YAAY;AAC/B,IAAS,kCAAkC;AAAA,EAC7C;AAEA,QAAM,YAAY,OAAO,OAAO,CAAC,GAAG,eAAe,eAAe;AAClE,QAAM,eAAe,UAAU;AAE/B,MAAI,OAAO,YAAY,aAAa;AAClC,UAAM,UAAU,gBAAgB,4BAA4B;AAC5D,UAAM,IAAI,MAAM,iEAAiE,SAAS;AAAA,EAC5F;AAEA,MAAI,gBAAgB,CAAC,UAAU,WAAW;AACxC,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AAEA,QAAM,YAAY,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,SAAS;AACtF,QAAM,cAAc,aAAa,QAAQ,OAAO,SAAS,QAAQ;AAEjE,MAAI,aAAa,eAAe,UAAU,SAAS,UAAU,8BAA8B,MAAM;AAC/F,IAAS,yBAAyB;AAAA,EACpC,WAAW,OAAO,UAAU,WAAW,aAAa;AAClD,IAAS,gBAAgB;AAAA,EAC3B;AAEA,MAAI,cAAc;AAChB,IAAS,UAAU,UAAU,SAAS;AAAA,EACxC;AAEA,MAAI,UAAU,SAAS;AACrB,IAAS,QAAQ,UAAU,OAAO;AAAA,EACpC;AAEA,MAAI,sBAAsB,WAAW;AAEnC,cAAU,mBAAmB,UAAU,mBAC1B,WAAW,UAAU,gBAAgB,EAAE,QAAQ,QAAQ,EAAE,IAClE;AAAA,EACN;AAEA,YAAU,aAAa,GAAG,UAAU,aAAa,QAAQ,MAAM,EAAE;AACjE,YAAU,eAAe,UAAU,YAAY,cAAc;AAC7D,YAAU,SAAS,QAAQ,UAAU,MAAM,KAAK,CAAC,UAAU;AAE3D,qBAAmB,UAAU,UAAU;AAEvC,QAAM,YAAY,UAAU,QAAQ,MAAM,OAAO,CAAC;AAClD,QAAM,WAAW,UAAU;AAC3B,QAAM,OAAO,UAAU;AACvB,QAAM,UAAU,UAAU,eAAe,iBAAiB;AAE1D,MAAI,UAAU,oBAAoB;AAChC,cAAU,MAAM,GAAG,cAAc,UAAU,aAAa,SAAS,UAAU;AAC3E,cAAU,SAAS,GAAG,cAAc,UAAU,aAAa,YAAY,UAAU;AAAA,EACnF,OAAO;AACL,cAAU,MAAM,GAAG,UAAU,YAAY,UAAU;AACnD,cAAU,SAAS,UAAU;AAAA,EAC/B;AAEA,SAAO;AACT;;;AC9EA,IAAMC,aAAY,CAACC,gBAAeA,YAAW,UAAU;AAEvD,SAAS,aAAa,SAAS,eAAe;AAC5C,MAAI,EAAE,gBAAgB,eAAe;AACnC,WAAO,IAAI,aAAa,MAAM;AAAA,EAChC;AAEA,OAAK,OAAO,MAAM;AAElB,OAAK,SAAS,IAAI,qBAAa,IAAI;AACnC,OAAK,WAAW,IAAI,uBAAe,IAAI;AACvC,OAAK,WAAW,IAAI,uBAAe,IAAI;AACvC,OAAK,QAAQ,IAAI,oBAAY,IAAI;AACjC,OAAK,OAAO,IAAI,mBAAW,IAAI;AAE/B,MAAI,KAAK,aAAa,cAAc;AAClC,UAAM,mBAAmB,OAAO,OAAO,CAAC,GAAG,KAAK,cAAc,EAAC,cAAc,MAAK,CAAC;AACnF,SAAK,aAAa,IAAI,aAAa,gBAAgB;AAAA,EACrD;AACF;AAEA,OAAO,OAAO,aAAa,WAAW,mBAAW;AACjD,OAAO,OAAO,aAAa,WAAW;AAAA,EACpC,QAAQ;AACN,WAAO,IAAI,aAAa,KAAK,OAAO,CAAC;AAAA,EACvC;AAAA,EAEA,OAAO,WAAW;AAChB,QAAI,OAAO,cAAc,aAAa;AACpC,aAAO,OAAO,OAAO,CAAC,GAAG,KAAK,YAAY;AAAA,IAC5C;AAEA,QAAI,KAAK,YAAY;AACnB,YAAM,mBAAmB,OAAO,OAAO,CAAC,GAAG,WAAW,EAAC,cAAc,MAAK,CAAC;AAC3E,WAAK,WAAW,OAAO,gBAAgB;AAAA,IACzC;AAEA,SAAK,eAAe,WAAW,WAAW,KAAK,gBAAgB,CAAC,CAAC;AACjE,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,WAAW;AACpB,WAAO,KAAK,MAAM,EAAE,OAAO,SAAS;AAAA,EACtC;AAAA,EAEA,OAAO,KAAK,SAAS,OAAO;AAC1B,UAAM,OAAO,SAAS,KAAK,aAAa,SAAS,KAAK,aAAa;AACnE,WAAO,GAAG,QAAQ,IAAI,QAAQ,OAAO,EAAE;AAAA,EACzC;AAAA,EAEA,eAAe;AACb,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA,EAEA,mBAAmB,SAAS;AAC1B,UAAM,MAAM,QAAQ,OAAO,QAAQ;AAInC,UAAM,YACJ,OAAO,QAAQ,cAAc,cACzB,CAAC,OAAO,MAAM,EAAE,QAAQ,QAAQ,UAAU,KAAK,KAAK,KAAK,IAAI,QAAQ,QAAQ,MAAM,IACnF,QAAQ;AAEd,UAAM,SAAS,KAAK,aAAa,UAAU;AAE3C,UAAM,MACJ,QAAQ,OAAO,KAAK,aAAa,mBAC7B,CAAC,KAAK,aAAa,kBAAkB,QAAQ,GAAG,EAAE,KAAK,GAAG,IAC1D,QAAQ,OAAO,KAAK,aAAa;AAEvC,QAAI,KAAK;AACP,cAAQ,QAAQ,EAAC,KAAc,WAAW,GAAG,GAAG,GAAG,QAAQ,MAAK;AAAA,IAClE;AAEA,UAAM,aAAa;AAAA,MACjB,KAAK;AAAA,MACL,OAAO,OAAO,CAAC,GAAG,SAAS;AAAA,QACzB,KAAK,KAAK,OAAO,KAAK,MAAM;AAAA,MAC9B,CAAC;AAAA,IACH;AAEA,WAAO,IAAI;AAAA,MAAW,CAAC,eACrB,gBAAY,YAAY,KAAK,aAAa,SAAS,EAAE,UAAU,UAAU;AAAA,IAC3E;AAAA,EACF;AAAA,EAEA,QAAQ,SAAS;AACf,UAAMA,cAAa,KAAK,mBAAmB,OAAO,EAAE;AAAA,MAClD,OAAO,CAAC,UAAU,MAAM,SAAS,UAAU;AAAA,MAC3C,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,IAC3B;AAEA,WAAO,KAAK,aAAa,IAAID,WAAUC,WAAU,IAAIA;AAAA,EACvD;AACF,CAAC;AAED,aAAa,QAAQ;AACrB,aAAa,cAAc;AAC3B,aAAa,cAAc,gBAAY;AACvC,aAAa,cAAc,gBAAY;AACvC,aAAa,YAAY,gBAAY;AAErC,IAAO,uBAAQ;",
|
|
6
|
-
"names": [
|
|
3
|
+
"sources": ["../src/util/observable.js", "../src/util/getSelection.js", "../src/validators.js", "../src/data/patch.js", "../src/data/transaction.js", "../src/data/encodeQueryString.js", "../src/util/pick.js", "../src/util/defaults.js", "../src/data/listen.js", "../src/data/dataMethods.js", "../src/datasets/datasetsClient.js", "../src/projects/projectsClient.js", "../src/http/queryString.js", "../src/assets/assetsClient.js", "../src/users/usersClient.js", "../src/auth/authClient.js", "../src/http/errors.js", "../src/http/browserMiddleware.js", "../src/http/request.js", "../src/http/requestOptions.js", "../src/generateHelpUrl.js", "../src/util/once.js", "../src/warnings.js", "../src/config.js", "../src/sanityClient.js"],
|
|
4
|
+
"sourcesContent": ["// Since `@sanity/client` doesn't offer ESM exports (yet) const {filter} = require('rxjs/operators') will cause the the whole of rxjs to be included in the bundle.\n// The internal import paths here is a stop-gap measure and will become less of a problem when @sanity/client export tree-shakeable esm bundles\nconst {Observable} = require('rxjs/internal/Observable')\nconst {filter} = require('rxjs/internal/operators/filter')\nconst {map} = require('rxjs/internal/operators/map')\n\nmodule.exports = {\n Observable,\n filter,\n map,\n}\n", "module.exports = function getSelection(sel) {\n if (typeof sel === 'string' || Array.isArray(sel)) {\n return {id: sel}\n }\n\n if (sel && sel.query) {\n return 'params' in sel ? {query: sel.query, params: sel.params} : {query: sel.query}\n }\n\n const selectionOpts = [\n '* Document ID (<docId>)',\n '* Array of document IDs',\n '* Object containing `query`',\n ].join('\\n')\n\n throw new Error(`Unknown selection - must be one of:\\n\\n${selectionOpts}`)\n}\n", "const VALID_ASSET_TYPES = ['image', 'file']\nconst VALID_INSERT_LOCATIONS = ['before', 'after', 'replace']\n\nexports.dataset = (name) => {\n if (!/^(~[a-z0-9]{1}[-\\w]{0,63}|[a-z0-9]{1}[-\\w]{0,63})$/.test(name)) {\n throw new Error(\n 'Datasets can only contain lowercase characters, numbers, underscores and dashes, and start with tilde, and be maximum 64 characters'\n )\n }\n}\n\nexports.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}\n\nexports.validateAssetType = (type) => {\n if (VALID_ASSET_TYPES.indexOf(type) === -1) {\n throw new Error(`Invalid asset type: ${type}. Must be one of ${VALID_ASSET_TYPES.join(', ')}`)\n }\n}\n\nexports.validateObject = (op, val) => {\n if (val === null || typeof val !== 'object' || Array.isArray(val)) {\n throw new Error(`${op}() takes an object of properties`)\n }\n}\n\nexports.requireDocumentId = (op, doc) => {\n if (!doc._id) {\n throw new Error(`${op}() requires that the document contains an ID (\"_id\" property)`)\n }\n\n exports.validateDocumentId(op, doc._id)\n}\n\nexports.validateDocumentId = (op, id) => {\n if (typeof id !== 'string' || !/^[a-z0-9_.-]+$/i.test(id)) {\n throw new Error(`${op}(): \"${id}\" is not a valid document ID`)\n }\n}\n\nexports.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) => `\"${loc}\"`).join(', ')\n throw new Error(`${signature} takes an \"at\"-argument which is one of: ${valid}`)\n }\n\n if (typeof selector !== 'string') {\n throw new Error(`${signature} takes a \"selector\"-argument which must be a string`)\n }\n\n if (!Array.isArray(items)) {\n throw new Error(`${signature} takes an \"items\"-argument which must be an array`)\n }\n}\n\nexports.hasDataset = (config) => {\n if (!config.dataset) {\n throw new Error('`dataset` must be provided to perform queries')\n }\n\n return config.dataset || ''\n}\n\nexports.requestTag = (tag) => {\n if (typeof tag !== 'string' || !/^[a-z0-9._-]{1,75}$/i.test(tag)) {\n throw new Error(\n `Tag can only contain alphanumeric characters, underscores, dashes and dots, and be between one and 75 characters long.`\n )\n }\n\n return tag\n}\n", "const assign = require('object-assign')\nconst getSelection = require('../util/getSelection')\nconst validate = require('../validators')\nconst validateObject = validate.validateObject\nconst validateInsert = validate.validateInsert\n\nfunction Patch(selection, operations = {}, client = null) {\n this.selection = selection\n this.operations = assign({}, operations)\n this.client = client\n}\n\nassign(Patch.prototype, {\n clone() {\n return new Patch(this.selection, assign({}, this.operations), this.client)\n },\n\n set(props) {\n return this._assign('set', props)\n },\n\n diffMatchPatch(props) {\n validateObject('diffMatchPatch', props)\n return this._assign('diffMatchPatch', props)\n },\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\n this.operations = assign({}, this.operations, {unset: attrs})\n return this\n },\n\n setIfMissing(props) {\n return this._assign('setIfMissing', props)\n },\n\n replace(props) {\n validateObject('replace', props)\n return this._set('set', {$: props}) // eslint-disable-line id-length\n },\n\n inc(props) {\n return this._assign('inc', props)\n },\n\n dec(props) {\n return this._assign('dec', props)\n },\n\n insert(at, selector, items) {\n validateInsert(at, selector, items)\n return this._assign('insert', {[at]: selector, items})\n },\n\n append(selector, items) {\n return this.insert('after', `${selector}[-1]`, items)\n },\n\n prepend(selector, items) {\n return this.insert('before', `${selector}[0]`, items)\n },\n\n splice(selector, start, deleteCount, items) {\n // Negative indexes doesn't mean the same in Sanity as they do in JS;\n // -1 means \"actually at the end of the array\", which allows inserting\n // at the end of the array without knowing its length. We therefore have\n // to substract negative indexes by one to match JS. If you want Sanity-\n // behaviour, just use `insert('replace', selector, items)` directly\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 = `${selector}[${startIndex}:${delRange}]`\n return this.insert('replace', rangeSelector, items || [])\n },\n\n ifRevisionId(rev) {\n this.operations.ifRevisionID = rev\n return this\n },\n\n serialize() {\n return assign(getSelection(this.selection), this.operations)\n },\n\n toJSON() {\n return this.serialize()\n },\n\n commit(options = {}) {\n if (!this.client) {\n throw new Error(\n 'No `client` passed to patch, either provide one or pass the ' +\n 'patch to a clients `mutate()` method'\n )\n }\n\n const returnFirst = typeof this.selection === 'string'\n const opts = assign({returnFirst, returnDocuments: true}, options)\n return this.client.mutate({patch: this.serialize()}, opts)\n },\n\n reset() {\n this.operations = {}\n return this\n },\n\n _set(op, props) {\n return this._assign(op, props, false)\n },\n\n _assign(op, props, merge = true) {\n validateObject(op, props)\n this.operations = assign({}, this.operations, {\n [op]: assign({}, (merge && this.operations[op]) || {}, props),\n })\n return this\n },\n})\n\nmodule.exports = Patch\n", "const assign = require('object-assign')\nconst validators = require('../validators')\nconst Patch = require('./patch')\n\nconst defaultMutateOptions = {returnDocuments: false}\n\nfunction Transaction(operations = [], client, transactionId) {\n this.trxId = transactionId\n this.operations = operations\n this.client = client\n}\n\nassign(Transaction.prototype, {\n clone() {\n return new Transaction(this.operations.slice(0), this.client, this.trxId)\n },\n\n create(doc) {\n validators.validateObject('create', doc)\n return this._add({create: doc})\n },\n\n createIfNotExists(doc) {\n const op = 'createIfNotExists'\n validators.validateObject(op, doc)\n validators.requireDocumentId(op, doc)\n return this._add({[op]: doc})\n },\n\n createOrReplace(doc) {\n const op = 'createOrReplace'\n validators.validateObject(op, doc)\n validators.requireDocumentId(op, doc)\n return this._add({[op]: doc})\n },\n\n delete(documentId) {\n validators.validateDocumentId('delete', documentId)\n return this._add({delete: {id: documentId}})\n },\n\n patch(documentId, patchOps) {\n const isBuilder = typeof patchOps === 'function'\n const isPatch = documentId instanceof Patch\n\n // transaction.patch(client.patch('documentId').inc({visits: 1}))\n if (isPatch) {\n return this._add({patch: documentId.serialize()})\n }\n\n // patch => patch.inc({visits: 1}).set({foo: 'bar'})\n if (isBuilder) {\n const patch = patchOps(new Patch(documentId, {}, this.client))\n if (!(patch instanceof Patch)) {\n throw new Error('function passed to `patch()` must return the patch')\n }\n\n return this._add({patch: patch.serialize()})\n }\n\n return this._add({patch: assign({id: documentId}, patchOps)})\n },\n\n transactionId(id) {\n if (!id) {\n return this.trxId\n }\n\n this.trxId = id\n return this\n },\n\n serialize() {\n return this.operations.slice()\n },\n\n toJSON() {\n return this.serialize()\n },\n\n commit(options) {\n if (!this.client) {\n throw new Error(\n 'No `client` passed to transaction, either provide one or pass the ' +\n 'transaction to a clients `mutate()` method'\n )\n }\n\n return this.client.mutate(\n this.serialize(),\n assign({transactionId: this.trxId}, defaultMutateOptions, options || {})\n )\n },\n\n reset() {\n this.operations = []\n return this\n },\n\n _add(mut) {\n this.operations.push(mut)\n return this\n },\n})\n\nmodule.exports = Transaction\n", "const enc = encodeURIComponent\n\nmodule.exports = ({query, params = {}, options = {}}) => {\n // We generally want tag at the start of the query string\n const {tag, ...opts} = options\n const q = `query=${enc(query)}`\n const base = tag ? `?tag=${enc(tag)}&${q}` : `?${q}`\n\n const qString = Object.keys(params).reduce(\n (qs, param) => `${qs}&${enc(`$${param}`)}=${enc(JSON.stringify(params[param]))}`,\n base\n )\n\n return Object.keys(opts).reduce((qs, option) => {\n // Only include the option if it is truthy\n return options[option] ? `${qs}&${enc(option)}=${enc(options[option])}` : qs\n }, qString)\n}\n", "module.exports = (obj, props) =>\n props.reduce((selection, prop) => {\n if (typeof obj[prop] === 'undefined') {\n return selection\n }\n\n selection[prop] = obj[prop]\n return selection\n }, {})\n", "module.exports = (obj, defaults) =>\n Object.keys(defaults)\n .concat(Object.keys(obj))\n .reduce((target, prop) => {\n target[prop] = typeof obj[prop] === 'undefined' ? defaults[prop] : obj[prop]\n\n return target\n }, {})\n", "const assign = require('object-assign')\nconst {Observable} = require('../util/observable')\nconst polyfilledEventSource = require('@sanity/eventsource')\nconst pick = require('../util/pick')\nconst defaults = require('../util/defaults')\nconst encodeQueryString = require('./encodeQueryString')\n\n// Limit is 16K for a _request_, eg including headers. Have to account for an\n// unknown range of headers, but an average EventSource request from Chrome seems\n// to have around 700 bytes of cruft, so let us account for 1.2K to be \"safe\"\nconst MAX_URL_LENGTH = 16000 - 1200\nconst EventSource = polyfilledEventSource\n\nconst possibleOptions = [\n 'includePreviousRevision',\n 'includeResult',\n 'visibility',\n 'effectFormat',\n 'tag',\n]\n\nconst defaultOptions = {\n includeResult: true,\n}\n\nmodule.exports = function listen(query, params, opts = {}) {\n const {url, token, withCredentials, requestTagPrefix} = this.clientConfig\n const tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join('.') : opts.tag\n const options = {...defaults(opts, defaultOptions), tag}\n const listenOpts = pick(options, possibleOptions)\n const qs = encodeQueryString({query, params, options: listenOpts, tag})\n\n const uri = `${url}${this.getDataUrl('listen', qs)}`\n if (uri.length > MAX_URL_LENGTH) {\n return new Observable((observer) => observer.error(new Error('Query too large for listener')))\n }\n\n const listenFor = options.events ? options.events : ['mutation']\n const shouldEmitReconnect = listenFor.indexOf('reconnect') !== -1\n\n const esOptions = {}\n if (token || withCredentials) {\n esOptions.withCredentials = true\n }\n\n if (token) {\n esOptions.headers = {\n Authorization: `Bearer ${token}`,\n }\n }\n\n return new Observable((observer) => {\n let es = getEventSource()\n let reconnectTimer\n let stopped = false\n\n function onError() {\n if (stopped) {\n return\n }\n\n emitReconnect()\n\n // Allow event handlers of `emitReconnect` to cancel/close the reconnect attempt\n if (stopped) {\n return\n }\n\n // Unless we've explicitly stopped the ES (in which case `stopped` should be true),\n // we should never be in a disconnected state. By default, EventSource will reconnect\n // automatically, in which case it sets readyState to `CONNECTING`, but in some cases\n // (like when a laptop lid is closed), it closes the connection. In these cases we need\n // to explicitly reconnect.\n if (es.readyState === EventSource.CLOSED) {\n unsubscribe()\n clearTimeout(reconnectTimer)\n reconnectTimer = setTimeout(open, 100)\n }\n }\n\n function onChannelError(err) {\n observer.error(cooerceError(err))\n }\n\n function onMessage(evt) {\n const event = parseEvent(evt)\n return event instanceof Error ? observer.error(event) : observer.next(event)\n }\n\n function onDisconnect(evt) {\n stopped = true\n unsubscribe()\n observer.complete()\n }\n\n function unsubscribe() {\n es.removeEventListener('error', onError, false)\n es.removeEventListener('channelError', onChannelError, false)\n es.removeEventListener('disconnect', onDisconnect, false)\n listenFor.forEach((type) => es.removeEventListener(type, onMessage, false))\n es.close()\n }\n\n function emitReconnect() {\n if (shouldEmitReconnect) {\n observer.next({type: 'reconnect'})\n }\n }\n\n function getEventSource() {\n const evs = new EventSource(uri, esOptions)\n evs.addEventListener('error', onError, false)\n evs.addEventListener('channelError', onChannelError, false)\n evs.addEventListener('disconnect', onDisconnect, false)\n listenFor.forEach((type) => evs.addEventListener(type, onMessage, false))\n return evs\n }\n\n function open() {\n es = getEventSource()\n }\n\n function stop() {\n stopped = true\n unsubscribe()\n }\n\n return stop\n })\n}\n\nfunction parseEvent(event) {\n try {\n const data = (event.data && JSON.parse(event.data)) || {}\n return assign({type: event.type}, data)\n } catch (err) {\n return err\n }\n}\n\nfunction cooerceError(err) {\n if (err instanceof Error) {\n return err\n }\n\n const evt = parseEvent(err)\n return evt instanceof Error ? evt : new Error(extractErrorMessage(evt))\n}\n\nfunction extractErrorMessage(err) {\n if (!err.error) {\n return err.message || 'Unknown listener error'\n }\n\n if (err.error.description) {\n return err.error.description\n }\n\n return typeof err.error === 'string' ? err.error : JSON.stringify(err.error, null, 2)\n}\n", "const assign = require('object-assign')\nconst {map, filter} = require('../util/observable')\nconst validators = require('../validators')\nconst getSelection = require('../util/getSelection')\nconst encodeQueryString = require('./encodeQueryString')\nconst Transaction = require('./transaction')\nconst Patch = require('./patch')\nconst listen = require('./listen')\n\nconst excludeFalsey = (param, defValue) => {\n const value = typeof param === 'undefined' ? defValue : param\n return param === false ? undefined : value\n}\n\nconst getMutationQuery = (options = {}) => {\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}\n\nconst isResponse = (event) => event.type === 'response'\nconst getBody = (event) => event.body\n\nconst indexBy = (docs, attr) =>\n docs.reduce((indexed, doc) => {\n indexed[attr(doc)] = doc\n return indexed\n }, Object.create(null))\n\nconst toPromise = (observable) => observable.toPromise()\n\nconst getQuerySizeLimit = 11264\n\nmodule.exports = {\n listen: listen,\n\n getDataUrl(operation, path) {\n const config = this.clientConfig\n const catalog = validators.hasDataset(config)\n const baseUri = `/${operation}/${catalog}`\n const uri = path ? `${baseUri}/${path}` : baseUri\n return `/data${uri}`.replace(/\\/($|\\?)/, '$1')\n },\n\n fetch(query, params, options = {}) {\n const mapResponse = options.filterResponse === false ? (res) => res : (res) => res.result\n\n const observable = this._dataRequest('query', {query, params}, options).pipe(map(mapResponse))\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n\n getDocument(id, opts = {}) {\n const options = {uri: this.getDataUrl('doc', id), json: true, tag: opts.tag}\n const observable = this._requestObservable(options).pipe(\n filter(isResponse),\n map((event) => event.body.documents && event.body.documents[0])\n )\n\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n\n getDocuments(ids, opts = {}) {\n const options = {uri: this.getDataUrl('doc', ids.join(',')), json: true, tag: opts.tag}\n const observable = this._requestObservable(options).pipe(\n filter(isResponse),\n map((event) => {\n const indexed = indexBy(event.body.documents || [], (doc) => doc._id)\n return ids.map((id) => indexed[id] || null)\n })\n )\n\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n\n create(doc, options) {\n return this._create(doc, 'create', options)\n },\n\n createIfNotExists(doc, options) {\n validators.requireDocumentId('createIfNotExists', doc)\n return this._create(doc, 'createIfNotExists', options)\n },\n\n createOrReplace(doc, options) {\n validators.requireDocumentId('createOrReplace', doc)\n return this._create(doc, 'createOrReplace', options)\n },\n\n patch(selector, operations) {\n return new Patch(selector, operations, this)\n },\n\n delete(selection, options) {\n return this.dataRequest('mutate', {mutations: [{delete: getSelection(selection)}]}, options)\n },\n\n mutate(mutations, options) {\n const mut =\n mutations instanceof Patch || mutations instanceof Transaction\n ? mutations.serialize()\n : mutations\n\n const muts = Array.isArray(mut) ? mut : [mut]\n const transactionId = options && options.transactionId\n return this.dataRequest('mutate', {mutations: muts, transactionId}, options)\n },\n\n transaction(operations) {\n return new Transaction(operations, this)\n },\n\n dataRequest(endpoint, body, options = {}) {\n const request = this._dataRequest(endpoint, body, options)\n\n return this.isPromiseAPI() ? toPromise(request) : request\n },\n\n _dataRequest(endpoint, body, options = {}) {\n const isMutation = endpoint === 'mutate'\n const isQuery = endpoint === 'query'\n\n // Check if the query string is within a configured threshold,\n // in which case we can use GET. Otherwise, use POST.\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 {timeout, token, tag, headers} = options\n\n const uri = this.getDataUrl(endpoint, stringQuery)\n\n const reqOptions = {\n method: useGet ? 'GET' : 'POST',\n uri: uri,\n json: true,\n body: useGet ? undefined : body,\n query: isMutation && getMutationQuery(options),\n timeout,\n headers,\n token,\n tag,\n canUseCdn: isQuery,\n }\n\n return this._requestObservable(reqOptions).pipe(\n filter(isResponse),\n map(getBody),\n map((res) => {\n if (!isMutation) {\n return res\n }\n\n // Should we return documents?\n const results = res.results || []\n if (options.returnDocuments) {\n return returnFirst\n ? results[0] && results[0].document\n : results.map((mut) => mut.document)\n }\n\n // Return a reduced subset\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: results,\n [key]: ids,\n }\n })\n )\n },\n\n _create(doc, op, options = {}) {\n const mutation = {[op]: doc}\n const opts = assign({returnFirst: true, returnDocuments: true}, options)\n return this.dataRequest('mutate', {mutations: [mutation]}, opts)\n },\n}\n", "const assign = require('object-assign')\nconst validate = require('../validators')\n\nfunction DatasetsClient(client) {\n this.request = client.request.bind(client)\n}\n\nassign(DatasetsClient.prototype, {\n create(name, options) {\n return this._modify('PUT', name, options)\n },\n\n edit(name, options) {\n return this._modify('PATCH', name, options)\n },\n\n delete(name) {\n return this._modify('DELETE', name)\n },\n\n list() {\n return this.request({uri: '/datasets'})\n },\n\n _modify(method, name, body) {\n validate.dataset(name)\n return this.request({method, uri: `/datasets/${name}`, body})\n },\n})\n\nmodule.exports = DatasetsClient\n", "const assign = require('object-assign')\n\nfunction ProjectsClient(client) {\n this.client = client\n}\n\nassign(ProjectsClient.prototype, {\n list() {\n return this.client.request({uri: '/projects'})\n },\n\n getById(id) {\n return this.client.request({uri: `/projects/${id}`})\n },\n})\n\nmodule.exports = ProjectsClient\n", "module.exports = (params) => {\n const qs = []\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)\n }\n }\n\n return qs.length > 0 ? `?${qs.join('&')}` : ''\n}\n", "const assign = require('object-assign')\nconst {map, filter} = require('../util/observable')\nconst queryString = require('../http/queryString')\nconst validators = require('../validators')\n\nfunction AssetsClient(client) {\n this.client = client\n}\n\nfunction optionsFromFile(opts, file) {\n if (typeof window === 'undefined' || !(file instanceof window.File)) {\n return opts\n }\n\n return assign(\n {\n filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type,\n },\n opts\n )\n}\n\nassign(AssetsClient.prototype, {\n /**\n * Upload an asset\n *\n * @param {String} assetType `image` or `file`\n * @param {File|Blob|Buffer|ReadableStream} body File to upload\n * @param {Object} opts Options for the upload\n * @param {Boolean} opts.preserveFilename Whether or not to preserve the original filename (default: true)\n * @param {String} opts.filename Filename for this file (optional)\n * @param {Number} opts.timeout Milliseconds to wait before timing the request out (default: 0)\n * @param {String} opts.contentType Mime type of the file\n * @param {Array} opts.extract Array of metadata parts to extract from image.\n * Possible values: `location`, `exif`, `image`, `palette`\n * @param {String} opts.label Label\n * @param {String} opts.title Title\n * @param {String} opts.description Description\n * @param {String} opts.creditLine The credit to person(s) and/or organization(s) required by the supplier of the image to be used when published\n * @param {Object} opts.source Source data (when the asset is from an external service)\n * @param {String} opts.source.id The (u)id of the asset within the source, i.e. 'i-f323r1E'\n * Required if source is defined\n * @param {String} opts.source.name The name of the source, i.e. 'unsplash'\n * Required if source is defined\n * @param {String} opts.source.url A url to where to find the asset, or get more info about it in the source\n * Optional\n * @return {Promise} Resolves with the created asset document\n */\n upload(assetType, body, opts = {}) {\n validators.validateAssetType(assetType)\n\n // If an empty array is given, explicitly set `none` to override API defaults\n let meta = opts.extract || undefined\n if (meta && !meta.length) {\n meta = ['none']\n }\n\n const dataset = validators.hasDataset(this.client.clientConfig)\n const assetEndpoint = assetType === 'image' ? 'images' : 'files'\n const options = optionsFromFile(opts, body)\n const {tag, label, title, description, creditLine, filename, source} = 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 const observable = this.client._requestObservable({\n tag,\n method: 'POST',\n timeout: options.timeout || 0,\n uri: `/assets/${assetEndpoint}/${dataset}`,\n headers: options.contentType ? {'Content-Type': options.contentType} : {},\n query,\n body,\n })\n\n return this.client.isPromiseAPI()\n ? observable\n .pipe(\n filter((event) => event.type === 'response'),\n map((event) => event.body.document)\n )\n .toPromise()\n : observable\n },\n\n delete(type, id) {\n // eslint-disable-next-line no-console\n console.warn('client.assets.delete() is deprecated, please use client.delete(<document-id>)')\n\n let docId = id || ''\n if (!/^(image|file)-/.test(docId)) {\n docId = `${type}-${docId}`\n } else if (type._id) {\n // We could be passing an entire asset document instead of an ID\n docId = type._id\n }\n\n validators.hasDataset(this.client.clientConfig)\n return this.client.delete(docId)\n },\n\n getImageUrl(ref, query) {\n const id = ref._ref || ref\n if (typeof id !== 'string') {\n throw new Error(\n 'getImageUrl() needs either an object with a _ref, or a string with an asset document ID'\n )\n }\n\n if (!/^image-[A-Za-z0-9_]+-\\d+x\\d+-[a-z]{1,5}$/.test(id)) {\n throw new Error(\n `Unsupported asset ID \"${id}\". URL generation only works for auto-generated IDs.`\n )\n }\n\n const [, assetId, size, format] = id.split('-')\n\n validators.hasDataset(this.client.clientConfig)\n const {projectId, dataset} = this.client.clientConfig\n const qs = query ? queryString(query) : ''\n return `https://cdn.sanity.io/images/${projectId}/${dataset}/${assetId}-${size}.${format}${qs}`\n },\n})\n\nmodule.exports = AssetsClient\n", "const assign = require('object-assign')\n\nfunction UsersClient(client) {\n this.client = client\n}\n\nassign(UsersClient.prototype, {\n getById(id) {\n return this.client.request({uri: `/users/${id}`})\n },\n})\n\nmodule.exports = UsersClient\n", "const assign = require('object-assign')\n\nfunction AuthClient(client) {\n this.client = client\n}\n\nassign(AuthClient.prototype, {\n getLoginProviders() {\n return this.client.request({uri: '/auth/providers'})\n },\n\n logout() {\n return this.client.request({uri: '/auth/logout', method: 'POST'})\n },\n})\n\nmodule.exports = AuthClient\n", "const makeError = require('make-error')\nconst assign = require('object-assign')\n\nfunction ClientError(res) {\n const props = extractErrorProps(res)\n ClientError.super.call(this, props.message)\n assign(this, props)\n}\n\nfunction ServerError(res) {\n const props = extractErrorProps(res)\n ServerError.super.call(this, props.message)\n 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 }\n\n // API/Boom style errors ({statusCode, error, message})\n if (body.error && body.message) {\n props.message = `${body.error} - ${body.message}`\n return props\n }\n\n // Query/database errors ({error: {description, other, arb, props}})\n if (body.error && body.error.description) {\n props.message = body.error.description\n props.details = body.error\n return props\n }\n\n // Other, more arbitrary errors\n props.message = body.error || body.message || httpErrorMessage(res)\n return props\n}\n\nfunction httpErrorMessage(res) {\n const statusMessage = res.statusMessage ? ` ${res.statusMessage}` : ''\n return `${res.method}-request to ${res.url} resulted in HTTP ${res.statusCode}${statusMessage}`\n}\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}\n\nmakeError(ClientError)\nmakeError(ServerError)\n\nexports.ClientError = ClientError\nexports.ServerError = ServerError\n", "module.exports = []\n", "/* eslint-disable no-empty-function, no-process-env */\nconst getIt = require('get-it')\nconst assign = require('object-assign')\nconst observable = require('get-it/lib/middleware/observable')\nconst jsonRequest = require('get-it/lib/middleware/jsonRequest')\nconst jsonResponse = require('get-it/lib/middleware/jsonResponse')\nconst progress = require('get-it/lib/middleware/progress')\nconst {Observable} = require('../util/observable')\nconst {ClientError, ServerError} = require('./errors')\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\n return res\n },\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)) // eslint-disable-line no-console\n return res\n },\n}\n\n// Environment-specific middleware.\nconst envSpecific = require('./nodeMiddleware')\n\nconst middleware = envSpecific.concat([\n printWarnings,\n jsonRequest(),\n jsonResponse(),\n progress(),\n httpError,\n observable({implementation: Observable}),\n])\n\nconst request = getIt(middleware)\n\nfunction httpRequest(options, requester = request) {\n return requester(assign({maxRedirects: 0}, options))\n}\n\nhttpRequest.defaultRequester = request\nhttpRequest.ClientError = ClientError\nhttpRequest.ServerError = ServerError\n\nmodule.exports = httpRequest\n", "const assign = require('object-assign')\n\nconst projectHeader = 'X-Sanity-Project-ID'\n\nmodule.exports = (config, overrides = {}) => {\n const headers = {}\n\n const token = overrides.token || config.token\n if (token) {\n headers.Authorization = `Bearer ${token}`\n }\n\n if (!overrides.useGlobalApi && !config.useProjectHostname && config.projectId) {\n headers[projectHeader] = config.projectId\n }\n\n const withCredentials = Boolean(\n typeof overrides.withCredentials === 'undefined'\n ? config.token || config.withCredentials\n : overrides.withCredentials\n )\n\n const timeout = typeof overrides.timeout === 'undefined' ? config.timeout : overrides.timeout\n return assign({}, overrides, {\n headers: assign({}, headers, overrides.headers || {}),\n timeout: typeof timeout === 'undefined' ? 5 * 60 * 1000 : timeout,\n proxy: overrides.proxy || config.proxy,\n json: true,\n withCredentials,\n })\n}\n", "const BASE_URL = 'https://docs.sanity.io/help/'\n\nmodule.exports = function generateHelpUrl(slug) {\n return BASE_URL + slug\n}\n", "module.exports = (fn) => {\n let didCall = false\n let returnValue\n return (...args) => {\n if (didCall) {\n return returnValue\n }\n returnValue = fn(...args)\n didCall = true\n return returnValue\n }\n}\n", "const generateHelpUrl = require('./generateHelpUrl')\nconst once = require('./util/once')\n\nconst createWarningPrinter = (message) =>\n // eslint-disable-next-line no-console\n once((...args) => console.warn(message.join(' '), ...args))\n\nexports.printCdnWarning = createWarningPrinter([\n 'You are not using the Sanity CDN. That means your data is always fresh, but the CDN is faster and',\n `cheaper. Think about it! For more info, see ${generateHelpUrl('js-client-cdn-configuration')}.`,\n 'To hide this warning, please set the `useCdn` option to either `true` or `false` when creating',\n 'the client.',\n])\n\nexports.printBrowserTokenWarning = createWarningPrinter([\n 'You have configured Sanity client to use a token in the browser. This may cause unintentional security issues.',\n `See ${generateHelpUrl(\n 'js-client-browser-token'\n )} for more information and how to hide this warning.`,\n])\n\nexports.printNoApiVersionSpecifiedWarning = createWarningPrinter([\n 'Using the Sanity client without specifying an API version is deprecated.',\n `See ${generateHelpUrl('js-client-api-version')}`,\n])\n", "const assign = require('object-assign')\nconst generateHelpUrl = require('./generateHelpUrl')\nconst validate = require('./validators')\nconst warnings = require('./warnings')\n\nconst defaultCdnHost = 'apicdn.sanity.io'\nconst defaultConfig = {\n apiHost: 'https://api.sanity.io',\n apiVersion: '1',\n useProjectHostname: true,\n isPromiseAPI: true,\n}\n\nconst LOCALHOSTS = ['localhost', '127.0.0.1', '0.0.0.0']\nconst isLocal = (host) => LOCALHOSTS.indexOf(host) !== -1\n\nexports.defaultConfig = defaultConfig\n\n// eslint-disable-next-line complexity\nexports.initConfig = (config, prevConfig) => {\n const specifiedConfig = assign({}, prevConfig, config)\n if (!specifiedConfig.apiVersion) {\n warnings.printNoApiVersionSpecifiedWarning()\n }\n\n const newConfig = assign({}, defaultConfig, specifiedConfig)\n const projectBased = newConfig.useProjectHostname\n\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 ${helpUrl}`)\n }\n\n if (projectBased && !newConfig.projectId) {\n throw new Error('Configuration must contain `projectId`')\n }\n\n const isBrowser = typeof window !== 'undefined' && window.location && window.location.hostname\n const isLocalhost = isBrowser && isLocal(window.location.hostname)\n\n if (isBrowser && isLocalhost && newConfig.token && newConfig.ignoreBrowserTokenWarning !== true) {\n warnings.printBrowserTokenWarning()\n } else if (typeof newConfig.useCdn === 'undefined') {\n warnings.printCdnWarning()\n }\n\n if (projectBased) {\n validate.projectId(newConfig.projectId)\n }\n\n if (newConfig.dataset) {\n validate.dataset(newConfig.dataset)\n }\n\n if ('requestTagPrefix' in newConfig) {\n // Allow setting and unsetting request tag prefix\n newConfig.requestTagPrefix = newConfig.requestTagPrefix\n ? validate.requestTag(newConfig.requestTagPrefix).replace(/\\.+$/, '')\n : undefined\n }\n\n newConfig.apiVersion = `${newConfig.apiVersion}`.replace(/^v/, '')\n newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost\n newConfig.useCdn = Boolean(newConfig.useCdn) && !newConfig.withCredentials\n\n exports.validateApiVersion(newConfig.apiVersion)\n\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\n if (newConfig.useProjectHostname) {\n newConfig.url = `${protocol}://${newConfig.projectId}.${host}/v${newConfig.apiVersion}`\n newConfig.cdnUrl = `${protocol}://${newConfig.projectId}.${cdnHost}/v${newConfig.apiVersion}`\n } else {\n newConfig.url = `${newConfig.apiHost}/v${newConfig.apiVersion}`\n newConfig.cdnUrl = newConfig.url\n }\n\n return newConfig\n}\n\nexports.validateApiVersion = function validateApiVersion(apiVersion) {\n if (apiVersion === '1' || apiVersion === 'X') {\n return\n }\n\n const apiDate = new Date(apiVersion)\n const apiVersionValid =\n /^\\d{4}-\\d{2}-\\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0\n\n if (!apiVersionValid) {\n throw new Error('Invalid API version string, expected `1` or date in format `YYYY-MM-DD`')\n }\n}\n", "const assign = require('object-assign')\nconst {Observable, map, filter} = require('./util/observable')\nconst Patch = require('./data/patch')\nconst Transaction = require('./data/transaction')\nconst dataMethods = require('./data/dataMethods')\nconst DatasetsClient = require('./datasets/datasetsClient')\nconst ProjectsClient = require('./projects/projectsClient')\nconst AssetsClient = require('./assets/assetsClient')\nconst UsersClient = require('./users/usersClient')\nconst AuthClient = require('./auth/authClient')\nconst httpRequest = require('./http/request')\nconst getRequestOptions = require('./http/requestOptions')\nconst {defaultConfig, initConfig} = require('./config')\nconst validate = require('./validators')\n\nconst toPromise = (observable) => observable.toPromise()\n\nfunction SanityClient(config = defaultConfig) {\n if (!(this instanceof SanityClient)) {\n return new SanityClient(config)\n }\n\n this.config(config)\n\n this.assets = new AssetsClient(this)\n this.datasets = new DatasetsClient(this)\n this.projects = new ProjectsClient(this)\n this.users = new UsersClient(this)\n this.auth = new AuthClient(this)\n\n if (this.clientConfig.isPromiseAPI) {\n const observableConfig = assign({}, this.clientConfig, {isPromiseAPI: false})\n this.observable = new SanityClient(observableConfig)\n }\n}\n\nassign(SanityClient.prototype, dataMethods)\nassign(SanityClient.prototype, {\n clone() {\n return new SanityClient(this.config())\n },\n\n config(newConfig) {\n if (typeof newConfig === 'undefined') {\n return assign({}, this.clientConfig)\n }\n\n if (this.observable) {\n const observableConfig = assign({}, newConfig, {isPromiseAPI: false})\n this.observable.config(observableConfig)\n }\n\n this.clientConfig = initConfig(newConfig, this.clientConfig || {})\n return this\n },\n\n withConfig(newConfig) {\n return this.clone().config(newConfig)\n },\n\n getUrl(uri, useCdn = false) {\n const base = useCdn ? this.clientConfig.cdnUrl : this.clientConfig.url\n return `${base}/${uri.replace(/^\\//, '')}`\n },\n\n isPromiseAPI() {\n return this.clientConfig.isPromiseAPI\n },\n\n _requestObservable(options) {\n const uri = options.url || options.uri\n\n // If the `canUseCdn`-option is not set we detect it automatically based on the method + URL.\n // Only the /data endpoint is currently available through API-CDN.\n const canUseCdn =\n typeof options.canUseCdn === 'undefined'\n ? ['GET', 'HEAD'].indexOf(options.method || 'GET') >= 0 && uri.indexOf('/data/') === 0\n : options.canUseCdn\n\n const useCdn = this.clientConfig.useCdn && canUseCdn\n\n const tag =\n options.tag && this.clientConfig.requestTagPrefix\n ? [this.clientConfig.requestTagPrefix, options.tag].join('.')\n : options.tag || this.clientConfig.requestTagPrefix\n\n if (tag) {\n options.query = {tag: validate.requestTag(tag), ...options.query}\n }\n\n const reqOptions = getRequestOptions(\n this.clientConfig,\n assign({}, options, {\n url: this.getUrl(uri, useCdn),\n })\n )\n\n return new Observable((subscriber) =>\n httpRequest(reqOptions, this.clientConfig.requester).subscribe(subscriber)\n )\n },\n\n request(options) {\n const observable = this._requestObservable(options).pipe(\n filter((event) => event.type === 'response'),\n map((event) => event.body)\n )\n\n return this.isPromiseAPI() ? toPromise(observable) : observable\n },\n})\n\nSanityClient.Patch = Patch\nSanityClient.Transaction = Transaction\nSanityClient.ClientError = httpRequest.ClientError\nSanityClient.ServerError = httpRequest.ServerError\nSanityClient.requester = httpRequest.defaultRequester\n\nmodule.exports = SanityClient\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,24 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _observable = require("../util/observable");
|
|
11
|
-
|
|
12
|
-
var _queryString = _interopRequireDefault(require("../http/queryString"));
|
|
13
|
-
|
|
14
|
-
var validators = _interopRequireWildcard(require("../validators"));
|
|
15
|
-
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
4
|
|
|
24
5
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -31,7 +12,15 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
31
12
|
|
|
32
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
33
14
|
|
|
34
|
-
|
|
15
|
+
var assign = require('object-assign');
|
|
16
|
+
|
|
17
|
+
var _require = require('../util/observable'),
|
|
18
|
+
map = _require.map,
|
|
19
|
+
filter = _require.filter;
|
|
20
|
+
|
|
21
|
+
var queryString = require('../http/queryString');
|
|
22
|
+
|
|
23
|
+
var validators = require('../validators');
|
|
35
24
|
|
|
36
25
|
function AssetsClient(client) {
|
|
37
26
|
this.client = client;
|
|
@@ -42,13 +31,13 @@ function optionsFromFile(opts, file) {
|
|
|
42
31
|
return opts;
|
|
43
32
|
}
|
|
44
33
|
|
|
45
|
-
return
|
|
34
|
+
return assign({
|
|
46
35
|
filename: opts.preserveFilename === false ? undefined : file.name,
|
|
47
36
|
contentType: file.type
|
|
48
37
|
}, opts);
|
|
49
38
|
}
|
|
50
39
|
|
|
51
|
-
|
|
40
|
+
assign(AssetsClient.prototype, {
|
|
52
41
|
/**
|
|
53
42
|
* Upload an asset
|
|
54
43
|
*
|
|
@@ -121,9 +110,9 @@ _extends(AssetsClient.prototype, {
|
|
|
121
110
|
body: body
|
|
122
111
|
});
|
|
123
112
|
|
|
124
|
-
return this.client.isPromiseAPI() ? observable.pipe(
|
|
113
|
+
return this.client.isPromiseAPI() ? observable.pipe(filter(function (event) {
|
|
125
114
|
return event.type === 'response';
|
|
126
|
-
}),
|
|
115
|
+
}), map(function (event) {
|
|
127
116
|
return event.body.document;
|
|
128
117
|
})).toPromise() : observable;
|
|
129
118
|
},
|
|
@@ -163,11 +152,8 @@ _extends(AssetsClient.prototype, {
|
|
|
163
152
|
var _this$client$clientCo = this.client.clientConfig,
|
|
164
153
|
projectId = _this$client$clientCo.projectId,
|
|
165
154
|
dataset = _this$client$clientCo.dataset;
|
|
166
|
-
var qs = query ? (
|
|
155
|
+
var qs = query ? queryString(query) : '';
|
|
167
156
|
return "https://cdn.sanity.io/images/".concat(projectId, "/").concat(dataset, "/").concat(assetId, "-").concat(size, ".").concat(format).concat(qs);
|
|
168
157
|
}
|
|
169
158
|
});
|
|
170
|
-
|
|
171
|
-
var _default = AssetsClient;
|
|
172
|
-
exports.default = _default;
|
|
173
|
-
module.exports = exports.default;
|
|
159
|
+
module.exports = AssetsClient;
|
package/lib/auth/authClient.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
|
+
var assign = require('object-assign');
|
|
9
4
|
|
|
10
5
|
function AuthClient(client) {
|
|
11
6
|
this.client = client;
|
|
12
7
|
}
|
|
13
8
|
|
|
14
|
-
|
|
9
|
+
assign(AuthClient.prototype, {
|
|
15
10
|
getLoginProviders: function getLoginProviders() {
|
|
16
11
|
return this.client.request({
|
|
17
12
|
uri: '/auth/providers'
|
|
@@ -24,7 +19,4 @@ _extends(AuthClient.prototype, {
|
|
|
24
19
|
});
|
|
25
20
|
}
|
|
26
21
|
});
|
|
27
|
-
|
|
28
|
-
var _default = AuthClient;
|
|
29
|
-
exports.default = _default;
|
|
30
|
-
module.exports = exports.default;
|
|
22
|
+
module.exports = AuthClient;
|
package/lib/config.js
CHANGED
|
@@ -1,25 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var assign = require('object-assign');
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.validateApiVersion = exports.initConfig = exports.defaultConfig = void 0;
|
|
5
|
+
var generateHelpUrl = require('./generateHelpUrl');
|
|
9
6
|
|
|
10
|
-
var
|
|
7
|
+
var validate = require('./validators');
|
|
11
8
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var warnings = _interopRequireWildcard(require("./warnings"));
|
|
15
|
-
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
9
|
+
var warnings = require('./warnings');
|
|
23
10
|
|
|
24
11
|
var defaultCdnHost = 'apicdn.sanity.io';
|
|
25
12
|
var defaultConfig = {
|
|
@@ -28,42 +15,26 @@ var defaultConfig = {
|
|
|
28
15
|
useProjectHostname: true,
|
|
29
16
|
isPromiseAPI: true
|
|
30
17
|
};
|
|
31
|
-
exports.defaultConfig = defaultConfig;
|
|
32
18
|
var LOCALHOSTS = ['localhost', '127.0.0.1', '0.0.0.0'];
|
|
33
19
|
|
|
34
20
|
var isLocal = function isLocal(host) {
|
|
35
21
|
return LOCALHOSTS.indexOf(host) !== -1;
|
|
36
22
|
};
|
|
37
23
|
|
|
38
|
-
|
|
39
|
-
if (apiVersion === '1' || apiVersion === 'X') {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
var apiDate = new Date(apiVersion);
|
|
44
|
-
var apiVersionValid = /^\d{4}-\d{2}-\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0;
|
|
45
|
-
|
|
46
|
-
if (!apiVersionValid) {
|
|
47
|
-
throw new Error('Invalid API version string, expected `1` or date in format `YYYY-MM-DD`');
|
|
48
|
-
}
|
|
49
|
-
}; // eslint-disable-next-line complexity
|
|
50
|
-
|
|
24
|
+
exports.defaultConfig = defaultConfig; // eslint-disable-next-line complexity
|
|
51
25
|
|
|
52
|
-
exports.
|
|
53
|
-
|
|
54
|
-
var initConfig = function initConfig(config, prevConfig) {
|
|
55
|
-
var specifiedConfig = _extends({}, prevConfig, config);
|
|
26
|
+
exports.initConfig = function (config, prevConfig) {
|
|
27
|
+
var specifiedConfig = assign({}, prevConfig, config);
|
|
56
28
|
|
|
57
29
|
if (!specifiedConfig.apiVersion) {
|
|
58
30
|
warnings.printNoApiVersionSpecifiedWarning();
|
|
59
31
|
}
|
|
60
32
|
|
|
61
|
-
var newConfig =
|
|
62
|
-
|
|
33
|
+
var newConfig = assign({}, defaultConfig, specifiedConfig);
|
|
63
34
|
var projectBased = newConfig.useProjectHostname;
|
|
64
35
|
|
|
65
36
|
if (typeof Promise === 'undefined') {
|
|
66
|
-
var helpUrl = (
|
|
37
|
+
var helpUrl = generateHelpUrl('js-client-promise-polyfill');
|
|
67
38
|
throw new Error("No native Promise-implementation found, polyfill needed - see ".concat(helpUrl));
|
|
68
39
|
}
|
|
69
40
|
|
|
@@ -96,7 +67,7 @@ var initConfig = function initConfig(config, prevConfig) {
|
|
|
96
67
|
newConfig.apiVersion = "".concat(newConfig.apiVersion).replace(/^v/, '');
|
|
97
68
|
newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost;
|
|
98
69
|
newConfig.useCdn = Boolean(newConfig.useCdn) && !newConfig.withCredentials;
|
|
99
|
-
validateApiVersion(newConfig.apiVersion);
|
|
70
|
+
exports.validateApiVersion(newConfig.apiVersion);
|
|
100
71
|
var hostParts = newConfig.apiHost.split('://', 2);
|
|
101
72
|
var protocol = hostParts[0];
|
|
102
73
|
var host = hostParts[1];
|
|
@@ -113,4 +84,15 @@ var initConfig = function initConfig(config, prevConfig) {
|
|
|
113
84
|
return newConfig;
|
|
114
85
|
};
|
|
115
86
|
|
|
116
|
-
exports.
|
|
87
|
+
exports.validateApiVersion = function validateApiVersion(apiVersion) {
|
|
88
|
+
if (apiVersion === '1' || apiVersion === 'X') {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
var apiDate = new Date(apiVersion);
|
|
93
|
+
var apiVersionValid = /^\d{4}-\d{2}-\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0;
|
|
94
|
+
|
|
95
|
+
if (!apiVersionValid) {
|
|
96
|
+
throw new Error('Invalid API version string, expected `1` or date in format `YYYY-MM-DD`');
|
|
97
|
+
}
|
|
98
|
+
};
|