{"version":3,"file":"bdd4b56d.js","sources":["../../../node_modules/object-assign/index.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/isFunction.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/config.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/hostReportError.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/Observer.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/isArray.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/isObject.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/UnsubscriptionError.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/Subscription.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/symbol/rxSubscriber.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/Subscriber.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/canReportError.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/toSubscriber.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/symbol/observable.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/identity.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/util/pipe.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/Observable.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/operators/filter.js","../../../node_modules/@sanity/client/node_modules/rxjs/internal/operators/map.js","../../../node_modules/@sanity/client/lib/util/observable.js","../../../node_modules/@sanity/client/lib/util/getSelection.js","../../../node_modules/@sanity/client/lib/validators.js","../../../node_modules/@sanity/client/lib/data/patch.js","../../../node_modules/@sanity/client/lib/data/transaction.js","../../../node_modules/@sanity/client/lib/data/encodeQueryString.js","../../../node_modules/event-source-polyfill/src/eventsource.js","../../../node_modules/@sanity/eventsource/browser.js","../../../node_modules/@sanity/client/lib/util/pick.js","../../../node_modules/@sanity/client/lib/util/defaults.js","../../../node_modules/@sanity/client/lib/data/listen.js","../../../node_modules/@sanity/client/lib/data/dataMethods.js","../../../node_modules/@sanity/client/lib/datasets/datasetsClient.js","../../../node_modules/@sanity/client/lib/projects/projectsClient.js","../../../node_modules/@sanity/client/lib/http/queryString.js","../../../node_modules/@sanity/client/lib/assets/assetsClient.js","../../../node_modules/@sanity/client/lib/users/usersClient.js","../../../node_modules/@sanity/client/lib/auth/authClient.js","../../../node_modules/nano-pubsub/index.js","../../../node_modules/get-it/lib/util/middlewareReducer.js","../../../node_modules/requires-port/index.js","../../../node_modules/querystringify/index.js","../../../node_modules/url-parse/index.js","../../../node_modules/get-it/lib/middleware/defaultOptionsProcessor.js","../../../node_modules/get-it/lib/middleware/defaultOptionsValidator.js","../../../node_modules/same-origin/url-parser.js","../../../node_modules/same-origin/index.js","../../../node_modules/parse-headers/parse-headers.js","../../../node_modules/get-it/lib/request/browser/fetchXhr.js","../../../node_modules/get-it/lib/request/browser-request.js","../../../node_modules/get-it/lib/request/index.js","../../../node_modules/get-it/lib/index.js","../../../node_modules/get-it/index.js","../../../node_modules/get-it/lib/util/global.js","../../../node_modules/get-it/lib/middleware/observable.js","../../../node_modules/isobject/index.js","../../../node_modules/is-plain-object/index.js","../../../node_modules/get-it/lib/middleware/jsonRequest.js","../../../node_modules/get-it/lib/middleware/jsonResponse.js","../../../node_modules/get-it/lib/middleware/progress/browser-progress.js","../../../node_modules/get-it/lib/middleware/progress/index.js","../../../node_modules/make-error/index.js","../../../node_modules/@sanity/client/lib/http/errors.js","../../../node_modules/@sanity/client/lib/http/browserMiddleware.js","../../../node_modules/@sanity/client/lib/http/request.js","../../../node_modules/@sanity/client/lib/http/requestOptions.js","../../../node_modules/@sanity/client/lib/generateHelpUrl.js","../../../node_modules/@sanity/client/lib/util/once.js","../../../node_modules/@sanity/client/lib/warnings.js","../../../node_modules/@sanity/client/lib/config.js","../../../node_modules/@sanity/client/lib/sanityClient.js","../../../src/lib/sanity-client.js"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexports.config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\nexports.hostReportError = hostReportError;\n//# sourceMappingURL=hostReportError.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar config_1 = require(\"./config\");\nvar hostReportError_1 = require(\"./util/hostReportError\");\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isObject(x) {\n return x !== null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexports.UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isArray_1 = require(\"./util/isArray\");\nvar isObject_1 = require(\"./util/isObject\");\nvar isFunction_1 = require(\"./util/isFunction\");\nvar UnsubscriptionError_1 = require(\"./util/UnsubscriptionError\");\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction_1.isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nexports.$$rxSubscriber = exports.rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isFunction_1 = require(\"./util/isFunction\");\nvar Observer_1 = require(\"./Observer\");\nvar Subscription_1 = require(\"./Subscription\");\nvar rxSubscriber_1 = require(\"../internal/symbol/rxSubscriber\");\nvar config_1 = require(\"./config\");\nvar hostReportError_1 = require(\"./util/hostReportError\");\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n if (isFunction_1.isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config_1.config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError_1.hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError_1.hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexports.SafeSubscriber = SafeSubscriber;\n//# sourceMappingURL=Subscriber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nfunction canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber_1.Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\nexports.canReportError = canReportError;\n//# sourceMappingURL=canReportError.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nvar rxSubscriber_1 = require(\"../symbol/rxSubscriber\");\nvar Observer_1 = require(\"../Observer\");\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction identity(x) {\n return x;\n}\nexports.identity = identity;\n//# sourceMappingURL=identity.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar identity_1 = require(\"./identity\");\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexports.pipe = pipe;\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity_1.identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\nexports.pipeFromArray = pipeFromArray;\n//# sourceMappingURL=pipe.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar canReportError_1 = require(\"./util/canReportError\");\nvar toSubscriber_1 = require(\"./util/toSubscriber\");\nvar observable_1 = require(\"./symbol/observable\");\nvar pipe_1 = require(\"./util/pipe\");\nvar config_1 = require(\"./config\");\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError_1.canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipe_1.pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config_1.config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nfunction filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nexports.filter = filter;\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=filter.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nfunction map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexports.map = map;\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexports.MapOperator = MapOperator;\nvar MapSubscriber = (function (_super) {\n __extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=map.js.map","\"use strict\";\n\n// 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\nvar _require = require('rxjs/internal/Observable'),\n Observable = _require.Observable;\n\nvar _require2 = require('rxjs/internal/operators/filter'),\n filter = _require2.filter;\n\nvar _require3 = require('rxjs/internal/operators/map'),\n map = _require3.map;\n\nmodule.exports = {\n Observable: Observable,\n filter: filter,\n map: map\n};","\"use strict\";\n\nmodule.exports = function getSelection(sel) {\n if (typeof sel === 'string' || Array.isArray(sel)) {\n return {\n id: sel\n };\n }\n\n if (sel && sel.query) {\n return 'params' in sel ? {\n query: sel.query,\n params: sel.params\n } : {\n query: sel.query\n };\n }\n\n var selectionOpts = ['* Document ID ()', '* Array of document IDs', '* Object containing `query`'].join('\\n');\n throw new Error(\"Unknown selection - must be one of:\\n\\n\".concat(selectionOpts));\n};","\"use strict\";\n\nfunction _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); }\n\nvar VALID_ASSET_TYPES = ['image', 'file'];\nvar VALID_INSERT_LOCATIONS = ['before', 'after', 'replace'];\n\nexports.dataset = function (name) {\n if (!/^(~[a-z0-9]{1}[-\\w]{0,63}|[a-z0-9]{1}[-\\w]{0,63})$/.test(name)) {\n throw new Error('Datasets can only contain lowercase characters, numbers, underscores and dashes, and start with tilde, and be maximum 64 characters');\n }\n};\n\nexports.projectId = function (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 = function (type) {\n if (VALID_ASSET_TYPES.indexOf(type) === -1) {\n throw new Error(\"Invalid asset type: \".concat(type, \". Must be one of \").concat(VALID_ASSET_TYPES.join(', ')));\n }\n};\n\nexports.validateObject = function (op, val) {\n if (val === null || _typeof(val) !== 'object' || Array.isArray(val)) {\n throw new Error(\"\".concat(op, \"() takes an object of properties\"));\n }\n};\n\nexports.requireDocumentId = function (op, doc) {\n if (!doc._id) {\n throw new Error(\"\".concat(op, \"() requires that the document contains an ID (\\\"_id\\\" property)\"));\n }\n\n exports.validateDocumentId(op, doc._id);\n};\n\nexports.validateDocumentId = function (op, id) {\n if (typeof id !== 'string' || !/^[a-z0-9_.-]+$/i.test(id)) {\n throw new Error(\"\".concat(op, \"(): \\\"\").concat(id, \"\\\" is not a valid document ID\"));\n }\n};\n\nexports.validateInsert = function (at, selector, items) {\n var signature = 'insert(at, selector, items)';\n\n if (VALID_INSERT_LOCATIONS.indexOf(at) === -1) {\n var valid = VALID_INSERT_LOCATIONS.map(function (loc) {\n return \"\\\"\".concat(loc, \"\\\"\");\n }).join(', ');\n throw new Error(\"\".concat(signature, \" takes an \\\"at\\\"-argument which is one of: \").concat(valid));\n }\n\n if (typeof selector !== 'string') {\n throw new Error(\"\".concat(signature, \" takes a \\\"selector\\\"-argument which must be a string\"));\n }\n\n if (!Array.isArray(items)) {\n throw new Error(\"\".concat(signature, \" takes an \\\"items\\\"-argument which must be an array\"));\n }\n};\n\nexports.hasDataset = function (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 = function (tag) {\n if (typeof tag !== 'string' || !/^[a-z0-9._-]{1,75}$/i.test(tag)) {\n throw new Error(\"Tag can only contain alphanumeric characters, underscores, dashes and dots, and be between one and 75 characters long.\");\n }\n\n return tag;\n};","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar getSelection = require('../util/getSelection');\n\nvar validate = require('../validators');\n\nvar validateObject = validate.validateObject;\nvar validateInsert = validate.validateInsert;\n\nfunction Patch(selection) {\n var operations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var client = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n this.selection = selection;\n this.operations = assign({}, operations);\n this.client = client;\n}\n\nassign(Patch.prototype, {\n clone: function clone() {\n return new Patch(this.selection, assign({}, this.operations), this.client);\n },\n set: function set(props) {\n return this._assign('set', props);\n },\n diffMatchPatch: function diffMatchPatch(props) {\n validateObject('diffMatchPatch', props);\n return this._assign('diffMatchPatch', props);\n },\n unset: function 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, {\n unset: attrs\n });\n return this;\n },\n setIfMissing: function setIfMissing(props) {\n return this._assign('setIfMissing', props);\n },\n replace: function replace(props) {\n validateObject('replace', props);\n return this._set('set', {\n $: props\n }); // eslint-disable-line id-length\n },\n inc: function inc(props) {\n return this._assign('inc', props);\n },\n dec: function dec(props) {\n return this._assign('dec', props);\n },\n insert: function insert(at, selector, items) {\n var _this$_assign;\n\n validateInsert(at, selector, items);\n return this._assign('insert', (_this$_assign = {}, _defineProperty(_this$_assign, at, selector), _defineProperty(_this$_assign, \"items\", items), _this$_assign));\n },\n append: function append(selector, items) {\n return this.insert('after', \"\".concat(selector, \"[-1]\"), items);\n },\n prepend: function prepend(selector, items) {\n return this.insert('before', \"\".concat(selector, \"[0]\"), items);\n },\n splice: function 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 var delAll = typeof deleteCount === 'undefined' || deleteCount === -1;\n var startIndex = start < 0 ? start - 1 : start;\n var delCount = delAll ? -1 : Math.max(0, start + deleteCount);\n var delRange = startIndex < 0 && delCount >= 0 ? '' : delCount;\n var rangeSelector = \"\".concat(selector, \"[\").concat(startIndex, \":\").concat(delRange, \"]\");\n return this.insert('replace', rangeSelector, items || []);\n },\n ifRevisionId: function ifRevisionId(rev) {\n this.operations.ifRevisionID = rev;\n return this;\n },\n serialize: function serialize() {\n return assign(getSelection(this.selection), this.operations);\n },\n toJSON: function toJSON() {\n return this.serialize();\n },\n commit: function commit() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.client) {\n throw new Error('No `client` passed to patch, either provide one or pass the ' + 'patch to a clients `mutate()` method');\n }\n\n var returnFirst = typeof this.selection === 'string';\n var opts = assign({\n returnFirst: returnFirst,\n returnDocuments: true\n }, options);\n return this.client.mutate({\n patch: this.serialize()\n }, opts);\n },\n reset: function reset() {\n this.operations = {};\n return this;\n },\n _set: function _set(op, props) {\n return this._assign(op, props, false);\n },\n _assign: function _assign(op, props) {\n var merge = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n validateObject(op, props);\n this.operations = assign({}, this.operations, _defineProperty({}, op, assign({}, merge && this.operations[op] || {}, props)));\n return this;\n }\n});\nmodule.exports = Patch;","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar validators = require('../validators');\n\nvar Patch = require('./patch');\n\nvar defaultMutateOptions = {\n returnDocuments: false\n};\n\nfunction Transaction() {\n var operations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var client = arguments.length > 1 ? arguments[1] : undefined;\n var transactionId = arguments.length > 2 ? arguments[2] : undefined;\n this.trxId = transactionId;\n this.operations = operations;\n this.client = client;\n}\n\nassign(Transaction.prototype, {\n clone: function clone() {\n return new Transaction(this.operations.slice(0), this.client, this.trxId);\n },\n create: function create(doc) {\n validators.validateObject('create', doc);\n return this._add({\n create: doc\n });\n },\n createIfNotExists: function createIfNotExists(doc) {\n var op = 'createIfNotExists';\n validators.validateObject(op, doc);\n validators.requireDocumentId(op, doc);\n return this._add(_defineProperty({}, op, doc));\n },\n createOrReplace: function createOrReplace(doc) {\n var op = 'createOrReplace';\n validators.validateObject(op, doc);\n validators.requireDocumentId(op, doc);\n return this._add(_defineProperty({}, op, doc));\n },\n delete: function _delete(documentId) {\n validators.validateDocumentId('delete', documentId);\n return this._add({\n delete: {\n id: documentId\n }\n });\n },\n patch: function patch(documentId, patchOps) {\n var isBuilder = typeof patchOps === 'function';\n var isPatch = documentId instanceof Patch; // transaction.patch(client.patch('documentId').inc({visits: 1}))\n\n if (isPatch) {\n return this._add({\n patch: documentId.serialize()\n });\n } // patch => patch.inc({visits: 1}).set({foo: 'bar'})\n\n\n if (isBuilder) {\n var patch = patchOps(new Patch(documentId, {}, this.client));\n\n if (!(patch instanceof Patch)) {\n throw new Error('function passed to `patch()` must return the patch');\n }\n\n return this._add({\n patch: patch.serialize()\n });\n }\n\n return this._add({\n patch: assign({\n id: documentId\n }, patchOps)\n });\n },\n transactionId: function transactionId(id) {\n if (!id) {\n return this.trxId;\n }\n\n this.trxId = id;\n return this;\n },\n serialize: function serialize() {\n return this.operations.slice();\n },\n toJSON: function toJSON() {\n return this.serialize();\n },\n commit: function commit(options) {\n if (!this.client) {\n throw new Error('No `client` passed to transaction, either provide one or pass the ' + 'transaction to a clients `mutate()` method');\n }\n\n return this.client.mutate(this.serialize(), assign({\n transactionId: this.trxId\n }, defaultMutateOptions, options || {}));\n },\n reset: function reset() {\n this.operations = [];\n return this;\n },\n _add: function _add(mut) {\n this.operations.push(mut);\n return this;\n }\n});\nmodule.exports = Transaction;","\"use strict\";\n\nvar _excluded = [\"tag\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar enc = encodeURIComponent;\n\nmodule.exports = function (_ref) {\n var query = _ref.query,\n _ref$params = _ref.params,\n params = _ref$params === void 0 ? {} : _ref$params,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n // We generally want tag at the start of the query string\n var tag = options.tag,\n opts = _objectWithoutProperties(options, _excluded);\n\n var q = \"query=\".concat(enc(query));\n var base = tag ? \"?tag=\".concat(enc(tag), \"&\").concat(q) : \"?\".concat(q);\n var qString = Object.keys(params).reduce(function (qs, param) {\n return \"\".concat(qs, \"&\").concat(enc(\"$\".concat(param)), \"=\").concat(enc(JSON.stringify(params[param])));\n }, base);\n return Object.keys(opts).reduce(function (qs, option) {\n // Only include the option if it is truthy\n return options[option] ? \"\".concat(qs, \"&\").concat(enc(option), \"=\").concat(enc(options[option])) : qs;\n }, qString);\n};","/** @license\r\n * eventsource.js\r\n * Available under MIT License (MIT)\r\n * https://github.com/Yaffle/EventSource/\r\n */\r\n\r\n/*jslint indent: 2, vars: true, plusplus: true */\r\n/*global setTimeout, clearTimeout */\r\n\r\n(function (global) {\r\n \"use strict\";\r\n\r\n var setTimeout = global.setTimeout;\r\n var clearTimeout = global.clearTimeout;\r\n var XMLHttpRequest = global.XMLHttpRequest;\r\n var XDomainRequest = global.XDomainRequest;\r\n var ActiveXObject = global.ActiveXObject;\r\n var NativeEventSource = global.EventSource;\r\n\r\n var document = global.document;\r\n var Promise = global.Promise;\r\n var fetch = global.fetch;\r\n var Response = global.Response;\r\n var TextDecoder = global.TextDecoder;\r\n var TextEncoder = global.TextEncoder;\r\n var AbortController = global.AbortController;\r\n\r\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && !(\"readyState\" in document) && document.body == null) { // Firefox 2\r\n document.readyState = \"loading\";\r\n window.addEventListener(\"load\", function (event) {\r\n document.readyState = \"complete\";\r\n }, false);\r\n }\r\n\r\n if (XMLHttpRequest == null && ActiveXObject != null) { // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest_in_IE6\r\n XMLHttpRequest = function () {\r\n return new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n };\r\n }\r\n\r\n if (Object.create == undefined) {\r\n Object.create = function (C) {\r\n function F(){}\r\n F.prototype = C;\r\n return new F();\r\n };\r\n }\r\n\r\n if (!Date.now) {\r\n Date.now = function now() {\r\n return new Date().getTime();\r\n };\r\n }\r\n\r\n // see #118 (Promise#finally with polyfilled Promise)\r\n // see #123 (data URLs crash Edge)\r\n // see #125 (CSP violations)\r\n // see pull/#138\r\n // => No way to polyfill Promise#finally\r\n\r\n if (AbortController == undefined) {\r\n var originalFetch2 = fetch;\r\n fetch = function (url, options) {\r\n var signal = options.signal;\r\n return originalFetch2(url, {headers: options.headers, credentials: options.credentials, cache: options.cache}).then(function (response) {\r\n var reader = response.body.getReader();\r\n signal._reader = reader;\r\n if (signal._aborted) {\r\n signal._reader.cancel();\r\n }\r\n return {\r\n status: response.status,\r\n statusText: response.statusText,\r\n headers: response.headers,\r\n body: {\r\n getReader: function () {\r\n return reader;\r\n }\r\n }\r\n };\r\n });\r\n };\r\n AbortController = function () {\r\n this.signal = {\r\n _reader: null,\r\n _aborted: false\r\n };\r\n this.abort = function () {\r\n if (this.signal._reader != null) {\r\n this.signal._reader.cancel();\r\n }\r\n this.signal._aborted = true;\r\n };\r\n };\r\n }\r\n\r\n function TextDecoderPolyfill() {\r\n this.bitsNeeded = 0;\r\n this.codePoint = 0;\r\n }\r\n\r\n TextDecoderPolyfill.prototype.decode = function (octets) {\r\n function valid(codePoint, shift, octetsCount) {\r\n if (octetsCount === 1) {\r\n return codePoint >= 0x0080 >> shift && codePoint << shift <= 0x07FF;\r\n }\r\n if (octetsCount === 2) {\r\n return codePoint >= 0x0800 >> shift && codePoint << shift <= 0xD7FF || codePoint >= 0xE000 >> shift && codePoint << shift <= 0xFFFF;\r\n }\r\n if (octetsCount === 3) {\r\n return codePoint >= 0x010000 >> shift && codePoint << shift <= 0x10FFFF;\r\n }\r\n throw new Error();\r\n }\r\n function octetsCount(bitsNeeded, codePoint) {\r\n if (bitsNeeded === 6 * 1) {\r\n return codePoint >> 6 > 15 ? 3 : codePoint > 31 ? 2 : 1;\r\n }\r\n if (bitsNeeded === 6 * 2) {\r\n return codePoint > 15 ? 3 : 2;\r\n }\r\n if (bitsNeeded === 6 * 3) {\r\n return 3;\r\n }\r\n throw new Error();\r\n }\r\n var REPLACER = 0xFFFD;\r\n var string = \"\";\r\n var bitsNeeded = this.bitsNeeded;\r\n var codePoint = this.codePoint;\r\n for (var i = 0; i < octets.length; i += 1) {\r\n var octet = octets[i];\r\n if (bitsNeeded !== 0) {\r\n if (octet < 128 || octet > 191 || !valid(codePoint << 6 | octet & 63, bitsNeeded - 6, octetsCount(bitsNeeded, codePoint))) {\r\n bitsNeeded = 0;\r\n codePoint = REPLACER;\r\n string += String.fromCharCode(codePoint);\r\n }\r\n }\r\n if (bitsNeeded === 0) {\r\n if (octet >= 0 && octet <= 127) {\r\n bitsNeeded = 0;\r\n codePoint = octet;\r\n } else if (octet >= 192 && octet <= 223) {\r\n bitsNeeded = 6 * 1;\r\n codePoint = octet & 31;\r\n } else if (octet >= 224 && octet <= 239) {\r\n bitsNeeded = 6 * 2;\r\n codePoint = octet & 15;\r\n } else if (octet >= 240 && octet <= 247) {\r\n bitsNeeded = 6 * 3;\r\n codePoint = octet & 7;\r\n } else {\r\n bitsNeeded = 0;\r\n codePoint = REPLACER;\r\n }\r\n if (bitsNeeded !== 0 && !valid(codePoint, bitsNeeded, octetsCount(bitsNeeded, codePoint))) {\r\n bitsNeeded = 0;\r\n codePoint = REPLACER;\r\n }\r\n } else {\r\n bitsNeeded -= 6;\r\n codePoint = codePoint << 6 | octet & 63;\r\n }\r\n if (bitsNeeded === 0) {\r\n if (codePoint <= 0xFFFF) {\r\n string += String.fromCharCode(codePoint);\r\n } else {\r\n string += String.fromCharCode(0xD800 + (codePoint - 0xFFFF - 1 >> 10));\r\n string += String.fromCharCode(0xDC00 + (codePoint - 0xFFFF - 1 & 0x3FF));\r\n }\r\n }\r\n }\r\n this.bitsNeeded = bitsNeeded;\r\n this.codePoint = codePoint;\r\n return string;\r\n };\r\n\r\n // Firefox < 38 throws an error with stream option\r\n var supportsStreamOption = function () {\r\n try {\r\n return new TextDecoder().decode(new TextEncoder().encode(\"test\"), {stream: true}) === \"test\";\r\n } catch (error) {\r\n console.debug(\"TextDecoder does not support streaming option. Using polyfill instead: \" + error);\r\n }\r\n return false;\r\n };\r\n\r\n // IE, Edge\r\n if (TextDecoder == undefined || TextEncoder == undefined || !supportsStreamOption()) {\r\n TextDecoder = TextDecoderPolyfill;\r\n }\r\n\r\n var k = function () {\r\n };\r\n\r\n function XHRWrapper(xhr) {\r\n this.withCredentials = false;\r\n this.readyState = 0;\r\n this.status = 0;\r\n this.statusText = \"\";\r\n this.responseText = \"\";\r\n this.onprogress = k;\r\n this.onload = k;\r\n this.onerror = k;\r\n this.onreadystatechange = k;\r\n this._contentType = \"\";\r\n this._xhr = xhr;\r\n this._sendTimeout = 0;\r\n this._abort = k;\r\n }\r\n\r\n XHRWrapper.prototype.open = function (method, url) {\r\n this._abort(true);\r\n\r\n var that = this;\r\n var xhr = this._xhr;\r\n var state = 1;\r\n var timeout = 0;\r\n\r\n this._abort = function (silent) {\r\n if (that._sendTimeout !== 0) {\r\n clearTimeout(that._sendTimeout);\r\n that._sendTimeout = 0;\r\n }\r\n if (state === 1 || state === 2 || state === 3) {\r\n state = 4;\r\n xhr.onload = k;\r\n xhr.onerror = k;\r\n xhr.onabort = k;\r\n xhr.onprogress = k;\r\n xhr.onreadystatechange = k;\r\n // IE 8 - 9: XDomainRequest#abort() does not fire any event\r\n // Opera < 10: XMLHttpRequest#abort() does not fire any event\r\n xhr.abort();\r\n if (timeout !== 0) {\r\n clearTimeout(timeout);\r\n timeout = 0;\r\n }\r\n if (!silent) {\r\n that.readyState = 4;\r\n that.onabort(null);\r\n that.onreadystatechange();\r\n }\r\n }\r\n state = 0;\r\n };\r\n\r\n var onStart = function () {\r\n if (state === 1) {\r\n //state = 2;\r\n var status = 0;\r\n var statusText = \"\";\r\n var contentType = undefined;\r\n if (!(\"contentType\" in xhr)) {\r\n try {\r\n status = xhr.status;\r\n statusText = xhr.statusText;\r\n contentType = xhr.getResponseHeader(\"Content-Type\");\r\n } catch (error) {\r\n // IE < 10 throws exception for `xhr.status` when xhr.readyState === 2 || xhr.readyState === 3\r\n // Opera < 11 throws exception for `xhr.status` when xhr.readyState === 2\r\n // https://bugs.webkit.org/show_bug.cgi?id=29121\r\n status = 0;\r\n statusText = \"\";\r\n contentType = undefined;\r\n // Firefox < 14, Chrome ?, Safari ?\r\n // https://bugs.webkit.org/show_bug.cgi?id=29658\r\n // https://bugs.webkit.org/show_bug.cgi?id=77854\r\n }\r\n } else {\r\n status = 200;\r\n statusText = \"OK\";\r\n contentType = xhr.contentType;\r\n }\r\n if (status !== 0) {\r\n state = 2;\r\n that.readyState = 2;\r\n that.status = status;\r\n that.statusText = statusText;\r\n that._contentType = contentType;\r\n that.onreadystatechange();\r\n }\r\n }\r\n };\r\n var onProgress = function () {\r\n onStart();\r\n if (state === 2 || state === 3) {\r\n state = 3;\r\n var responseText = \"\";\r\n try {\r\n responseText = xhr.responseText;\r\n } catch (error) {\r\n // IE 8 - 9 with XMLHttpRequest\r\n }\r\n that.readyState = 3;\r\n that.responseText = responseText;\r\n that.onprogress();\r\n }\r\n };\r\n var onFinish = function (type, event) {\r\n if (event == null || event.preventDefault == null) {\r\n event = {\r\n preventDefault: k\r\n };\r\n }\r\n // Firefox 52 fires \"readystatechange\" (xhr.readyState === 4) without final \"readystatechange\" (xhr.readyState === 3)\r\n // IE 8 fires \"onload\" without \"onprogress\"\r\n onProgress();\r\n if (state === 1 || state === 2 || state === 3) {\r\n state = 4;\r\n if (timeout !== 0) {\r\n clearTimeout(timeout);\r\n timeout = 0;\r\n }\r\n that.readyState = 4;\r\n if (type === \"load\") {\r\n that.onload(event);\r\n } else if (type === \"error\") {\r\n that.onerror(event);\r\n } else if (type === \"abort\") {\r\n that.onabort(event);\r\n } else {\r\n throw new TypeError();\r\n }\r\n that.onreadystatechange();\r\n }\r\n };\r\n var onReadyStateChange = function (event) {\r\n if (xhr != undefined) { // Opera 12\r\n if (xhr.readyState === 4) {\r\n if (!(\"onload\" in xhr) || !(\"onerror\" in xhr) || !(\"onabort\" in xhr)) {\r\n onFinish(xhr.responseText === \"\" ? \"error\" : \"load\", event);\r\n }\r\n } else if (xhr.readyState === 3) {\r\n if (!(\"onprogress\" in xhr)) { // testing XMLHttpRequest#responseText too many times is too slow in IE 11\r\n // and in Firefox 3.6\r\n onProgress();\r\n }\r\n } else if (xhr.readyState === 2) {\r\n onStart();\r\n }\r\n }\r\n };\r\n var onTimeout = function () {\r\n timeout = setTimeout(function () {\r\n onTimeout();\r\n }, 500);\r\n if (xhr.readyState === 3) {\r\n onProgress();\r\n }\r\n };\r\n\r\n // XDomainRequest#abort removes onprogress, onerror, onload\r\n if (\"onload\" in xhr) {\r\n xhr.onload = function (event) {\r\n onFinish(\"load\", event);\r\n };\r\n }\r\n if (\"onerror\" in xhr) {\r\n xhr.onerror = function (event) {\r\n onFinish(\"error\", event);\r\n };\r\n }\r\n // improper fix to match Firefox behaviour, but it is better than just ignore abort\r\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=768596\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=880200\r\n // https://code.google.com/p/chromium/issues/detail?id=153570\r\n // IE 8 fires \"onload\" without \"onprogress\r\n if (\"onabort\" in xhr) {\r\n xhr.onabort = function (event) {\r\n onFinish(\"abort\", event);\r\n };\r\n }\r\n\r\n if (\"onprogress\" in xhr) {\r\n xhr.onprogress = onProgress;\r\n }\r\n\r\n // IE 8 - 9 (XMLHTTPRequest)\r\n // Opera < 12\r\n // Firefox < 3.5\r\n // Firefox 3.5 - 3.6 - ? < 9.0\r\n // onprogress is not fired sometimes or delayed\r\n // see also #64 (significant lag in IE 11)\r\n if (\"onreadystatechange\" in xhr) {\r\n xhr.onreadystatechange = function (event) {\r\n onReadyStateChange(event);\r\n };\r\n }\r\n\r\n if (\"contentType\" in xhr || !(\"ontimeout\" in XMLHttpRequest.prototype)) {\r\n url += (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + \"padding=true\";\r\n }\r\n xhr.open(method, url, true);\r\n\r\n if (\"readyState\" in xhr) {\r\n // workaround for Opera 12 issue with \"progress\" events\r\n // #91 (XMLHttpRequest onprogress not fired for streaming response in Edge 14-15-?)\r\n timeout = setTimeout(function () {\r\n onTimeout();\r\n }, 0);\r\n }\r\n };\r\n XHRWrapper.prototype.abort = function () {\r\n this._abort(false);\r\n };\r\n XHRWrapper.prototype.getResponseHeader = function (name) {\r\n return this._contentType;\r\n };\r\n XHRWrapper.prototype.setRequestHeader = function (name, value) {\r\n var xhr = this._xhr;\r\n if (\"setRequestHeader\" in xhr) {\r\n xhr.setRequestHeader(name, value);\r\n }\r\n };\r\n XHRWrapper.prototype.getAllResponseHeaders = function () {\r\n // XMLHttpRequest#getAllResponseHeaders returns null for CORS requests in Firefox 3.6.28\r\n return this._xhr.getAllResponseHeaders != undefined ? this._xhr.getAllResponseHeaders() || \"\" : \"\";\r\n };\r\n XHRWrapper.prototype.send = function () {\r\n // loading indicator in Safari < ? (6), Chrome < 14, Firefox\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=736723\r\n if ((!(\"ontimeout\" in XMLHttpRequest.prototype) || (!(\"sendAsBinary\" in XMLHttpRequest.prototype) && !(\"mozAnon\" in XMLHttpRequest.prototype))) &&\r\n document != undefined &&\r\n document.readyState != undefined &&\r\n document.readyState !== \"complete\") {\r\n var that = this;\r\n that._sendTimeout = setTimeout(function () {\r\n that._sendTimeout = 0;\r\n that.send();\r\n }, 4);\r\n return;\r\n }\r\n\r\n var xhr = this._xhr;\r\n // withCredentials should be set after \"open\" for Safari and Chrome (< 19 ?)\r\n if (\"withCredentials\" in xhr) {\r\n xhr.withCredentials = this.withCredentials;\r\n }\r\n try {\r\n // xhr.send(); throws \"Not enough arguments\" in Firefox 3.0\r\n xhr.send(undefined);\r\n } catch (error1) {\r\n // Safari 5.1.7, Opera 12\r\n throw error1;\r\n }\r\n };\r\n\r\n function toLowerCase(name) {\r\n return name.replace(/[A-Z]/g, function (c) {\r\n return String.fromCharCode(c.charCodeAt(0) + 0x20);\r\n });\r\n }\r\n\r\n function HeadersPolyfill(all) {\r\n // Get headers: implemented according to mozilla's example code: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\r\n var map = Object.create(null);\r\n var array = all.split(\"\\r\\n\");\r\n for (var i = 0; i < array.length; i += 1) {\r\n var line = array[i];\r\n var parts = line.split(\": \");\r\n var name = parts.shift();\r\n var value = parts.join(\": \");\r\n map[toLowerCase(name)] = value;\r\n }\r\n this._map = map;\r\n }\r\n HeadersPolyfill.prototype.get = function (name) {\r\n return this._map[toLowerCase(name)];\r\n };\r\n\r\n if (XMLHttpRequest != null && XMLHttpRequest.HEADERS_RECEIVED == null) { // IE < 9, Firefox 3.6\r\n XMLHttpRequest.HEADERS_RECEIVED = 2;\r\n }\r\n\r\n function XHRTransport() {\r\n }\r\n\r\n XHRTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\r\n xhr.open(\"GET\", url);\r\n var offset = 0;\r\n xhr.onprogress = function () {\r\n var responseText = xhr.responseText;\r\n var chunk = responseText.slice(offset);\r\n offset += chunk.length;\r\n onProgressCallback(chunk);\r\n };\r\n xhr.onerror = function (event) {\r\n event.preventDefault();\r\n onFinishCallback(new Error(\"NetworkError\"));\r\n };\r\n xhr.onload = function () {\r\n onFinishCallback(null);\r\n };\r\n xhr.onabort = function () {\r\n onFinishCallback(null);\r\n };\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {\r\n var status = xhr.status;\r\n var statusText = xhr.statusText;\r\n var contentType = xhr.getResponseHeader(\"Content-Type\");\r\n var headers = xhr.getAllResponseHeaders();\r\n onStartCallback(status, statusText, contentType, new HeadersPolyfill(headers));\r\n }\r\n };\r\n xhr.withCredentials = withCredentials;\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\r\n xhr.setRequestHeader(name, headers[name]);\r\n }\r\n }\r\n xhr.send();\r\n return xhr;\r\n };\r\n\r\n function HeadersWrapper(headers) {\r\n this._headers = headers;\r\n }\r\n HeadersWrapper.prototype.get = function (name) {\r\n return this._headers.get(name);\r\n };\r\n\r\n function FetchTransport() {\r\n }\r\n\r\n FetchTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\r\n var reader = null;\r\n var controller = new AbortController();\r\n var signal = controller.signal;\r\n var textDecoder = new TextDecoder();\r\n fetch(url, {\r\n headers: headers,\r\n credentials: withCredentials ? \"include\" : \"same-origin\",\r\n signal: signal,\r\n cache: \"no-store\"\r\n }).then(function (response) {\r\n reader = response.body.getReader();\r\n onStartCallback(response.status, response.statusText, response.headers.get(\"Content-Type\"), new HeadersWrapper(response.headers));\r\n // see https://github.com/promises-aplus/promises-spec/issues/179\r\n return new Promise(function (resolve, reject) {\r\n var readNextChunk = function () {\r\n reader.read().then(function (result) {\r\n if (result.done) {\r\n //Note: bytes in textDecoder are ignored\r\n resolve(undefined);\r\n } else {\r\n var chunk = textDecoder.decode(result.value, {stream: true});\r\n onProgressCallback(chunk);\r\n readNextChunk();\r\n }\r\n })[\"catch\"](function (error) {\r\n reject(error);\r\n });\r\n };\r\n readNextChunk();\r\n });\r\n })[\"catch\"](function (error) {\r\n if (error.name === \"AbortError\") {\r\n return undefined;\r\n } else {\r\n return error;\r\n }\r\n }).then(function (error) {\r\n onFinishCallback(error);\r\n });\r\n return {\r\n abort: function () {\r\n if (reader != null) {\r\n reader.cancel(); // https://bugzilla.mozilla.org/show_bug.cgi?id=1583815\r\n }\r\n controller.abort();\r\n }\r\n };\r\n };\r\n\r\n function EventTarget() {\r\n this._listeners = Object.create(null);\r\n }\r\n\r\n function throwError(e) {\r\n setTimeout(function () {\r\n throw e;\r\n }, 0);\r\n }\r\n\r\n EventTarget.prototype.dispatchEvent = function (event) {\r\n event.target = this;\r\n var typeListeners = this._listeners[event.type];\r\n if (typeListeners != undefined) {\r\n var length = typeListeners.length;\r\n for (var i = 0; i < length; i += 1) {\r\n var listener = typeListeners[i];\r\n try {\r\n if (typeof listener.handleEvent === \"function\") {\r\n listener.handleEvent(event);\r\n } else {\r\n listener.call(this, event);\r\n }\r\n } catch (e) {\r\n throwError(e);\r\n }\r\n }\r\n }\r\n };\r\n EventTarget.prototype.addEventListener = function (type, listener) {\r\n type = String(type);\r\n var listeners = this._listeners;\r\n var typeListeners = listeners[type];\r\n if (typeListeners == undefined) {\r\n typeListeners = [];\r\n listeners[type] = typeListeners;\r\n }\r\n var found = false;\r\n for (var i = 0; i < typeListeners.length; i += 1) {\r\n if (typeListeners[i] === listener) {\r\n found = true;\r\n }\r\n }\r\n if (!found) {\r\n typeListeners.push(listener);\r\n }\r\n };\r\n EventTarget.prototype.removeEventListener = function (type, listener) {\r\n type = String(type);\r\n var listeners = this._listeners;\r\n var typeListeners = listeners[type];\r\n if (typeListeners != undefined) {\r\n var filtered = [];\r\n for (var i = 0; i < typeListeners.length; i += 1) {\r\n if (typeListeners[i] !== listener) {\r\n filtered.push(typeListeners[i]);\r\n }\r\n }\r\n if (filtered.length === 0) {\r\n delete listeners[type];\r\n } else {\r\n listeners[type] = filtered;\r\n }\r\n }\r\n };\r\n\r\n function Event(type) {\r\n this.type = type;\r\n this.target = undefined;\r\n }\r\n\r\n function MessageEvent(type, options) {\r\n Event.call(this, type);\r\n this.data = options.data;\r\n this.lastEventId = options.lastEventId;\r\n }\r\n\r\n MessageEvent.prototype = Object.create(Event.prototype);\r\n\r\n function ConnectionEvent(type, options) {\r\n Event.call(this, type);\r\n this.status = options.status;\r\n this.statusText = options.statusText;\r\n this.headers = options.headers;\r\n }\r\n\r\n ConnectionEvent.prototype = Object.create(Event.prototype);\r\n\r\n function ErrorEvent(type, options) {\r\n Event.call(this, type);\r\n this.error = options.error;\r\n }\r\n\r\n ErrorEvent.prototype = Object.create(Event.prototype);\r\n\r\n var WAITING = -1;\r\n var CONNECTING = 0;\r\n var OPEN = 1;\r\n var CLOSED = 2;\r\n\r\n var AFTER_CR = -1;\r\n var FIELD_START = 0;\r\n var FIELD = 1;\r\n var VALUE_START = 2;\r\n var VALUE = 3;\r\n\r\n var contentTypeRegExp = /^text\\/event\\-stream(;.*)?$/i;\r\n\r\n var MINIMUM_DURATION = 1000;\r\n var MAXIMUM_DURATION = 18000000;\r\n\r\n var parseDuration = function (value, def) {\r\n var n = value == null ? def : parseInt(value, 10);\r\n if (n !== n) {\r\n n = def;\r\n }\r\n return clampDuration(n);\r\n };\r\n var clampDuration = function (n) {\r\n return Math.min(Math.max(n, MINIMUM_DURATION), MAXIMUM_DURATION);\r\n };\r\n\r\n var fire = function (that, f, event) {\r\n try {\r\n if (typeof f === \"function\") {\r\n f.call(that, event);\r\n }\r\n } catch (e) {\r\n throwError(e);\r\n }\r\n };\r\n\r\n function EventSourcePolyfill(url, options) {\r\n EventTarget.call(this);\r\n options = options || {};\r\n\r\n this.onopen = undefined;\r\n this.onmessage = undefined;\r\n this.onerror = undefined;\r\n\r\n this.url = undefined;\r\n this.readyState = undefined;\r\n this.withCredentials = undefined;\r\n this.headers = undefined;\r\n\r\n this._close = undefined;\r\n\r\n start(this, url, options);\r\n }\r\n\r\n function getBestXHRTransport() {\r\n return (XMLHttpRequest != undefined && (\"withCredentials\" in XMLHttpRequest.prototype)) || XDomainRequest == undefined\r\n ? new XMLHttpRequest()\r\n : new XDomainRequest();\r\n }\r\n\r\n var isFetchSupported = fetch != undefined && Response != undefined && \"body\" in Response.prototype;\r\n\r\n function start(es, url, options) {\r\n url = String(url);\r\n var withCredentials = Boolean(options.withCredentials);\r\n var lastEventIdQueryParameterName = options.lastEventIdQueryParameterName || \"lastEventId\";\r\n\r\n var initialRetry = clampDuration(1000);\r\n var heartbeatTimeout = parseDuration(options.heartbeatTimeout, 45000);\r\n\r\n var lastEventId = \"\";\r\n var retry = initialRetry;\r\n var wasActivity = false;\r\n var textLength = 0;\r\n var headers = options.headers || {};\r\n var TransportOption = options.Transport;\r\n var xhr = isFetchSupported && TransportOption == undefined ? undefined : new XHRWrapper(TransportOption != undefined ? new TransportOption() : getBestXHRTransport());\r\n var transport = TransportOption != null && typeof TransportOption !== \"string\" ? new TransportOption() : (xhr == undefined ? new FetchTransport() : new XHRTransport());\r\n var abortController = undefined;\r\n var timeout = 0;\r\n var currentState = WAITING;\r\n var dataBuffer = \"\";\r\n var lastEventIdBuffer = \"\";\r\n var eventTypeBuffer = \"\";\r\n\r\n var textBuffer = \"\";\r\n var state = FIELD_START;\r\n var fieldStart = 0;\r\n var valueStart = 0;\r\n\r\n var onStart = function (status, statusText, contentType, headers) {\r\n if (currentState === CONNECTING) {\r\n if (status === 200 && contentType != undefined && contentTypeRegExp.test(contentType)) {\r\n currentState = OPEN;\r\n wasActivity = Date.now();\r\n retry = initialRetry;\r\n es.readyState = OPEN;\r\n var event = new ConnectionEvent(\"open\", {\r\n status: status,\r\n statusText: statusText,\r\n headers: headers\r\n });\r\n es.dispatchEvent(event);\r\n fire(es, es.onopen, event);\r\n } else {\r\n var message = \"\";\r\n if (status !== 200) {\r\n if (statusText) {\r\n statusText = statusText.replace(/\\s+/g, \" \");\r\n }\r\n message = \"EventSource's response has a status \" + status + \" \" + statusText + \" that is not 200. Aborting the connection.\";\r\n } else {\r\n message = \"EventSource's response has a Content-Type specifying an unsupported type: \" + (contentType == undefined ? \"-\" : contentType.replace(/\\s+/g, \" \")) + \". Aborting the connection.\";\r\n }\r\n close();\r\n var event = new ConnectionEvent(\"error\", {\r\n status: status,\r\n statusText: statusText,\r\n headers: headers\r\n });\r\n es.dispatchEvent(event);\r\n fire(es, es.onerror, event);\r\n console.error(message);\r\n }\r\n }\r\n };\r\n\r\n var onProgress = function (textChunk) {\r\n if (currentState === OPEN) {\r\n var n = -1;\r\n for (var i = 0; i < textChunk.length; i += 1) {\r\n var c = textChunk.charCodeAt(i);\r\n if (c === \"\\n\".charCodeAt(0) || c === \"\\r\".charCodeAt(0)) {\r\n n = i;\r\n }\r\n }\r\n var chunk = (n !== -1 ? textBuffer : \"\") + textChunk.slice(0, n + 1);\r\n textBuffer = (n === -1 ? textBuffer : \"\") + textChunk.slice(n + 1);\r\n if (textChunk !== \"\") {\r\n wasActivity = Date.now();\r\n textLength += textChunk.length;\r\n }\r\n for (var position = 0; position < chunk.length; position += 1) {\r\n var c = chunk.charCodeAt(position);\r\n if (state === AFTER_CR && c === \"\\n\".charCodeAt(0)) {\r\n state = FIELD_START;\r\n } else {\r\n if (state === AFTER_CR) {\r\n state = FIELD_START;\r\n }\r\n if (c === \"\\r\".charCodeAt(0) || c === \"\\n\".charCodeAt(0)) {\r\n if (state !== FIELD_START) {\r\n if (state === FIELD) {\r\n valueStart = position + 1;\r\n }\r\n var field = chunk.slice(fieldStart, valueStart - 1);\r\n var value = chunk.slice(valueStart + (valueStart < position && chunk.charCodeAt(valueStart) === \" \".charCodeAt(0) ? 1 : 0), position);\r\n if (field === \"data\") {\r\n dataBuffer += \"\\n\";\r\n dataBuffer += value;\r\n } else if (field === \"id\") {\r\n lastEventIdBuffer = value;\r\n } else if (field === \"event\") {\r\n eventTypeBuffer = value;\r\n } else if (field === \"retry\") {\r\n initialRetry = parseDuration(value, initialRetry);\r\n retry = initialRetry;\r\n } else if (field === \"heartbeatTimeout\") {\r\n heartbeatTimeout = parseDuration(value, heartbeatTimeout);\r\n if (timeout !== 0) {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(function () {\r\n onTimeout();\r\n }, heartbeatTimeout);\r\n }\r\n }\r\n }\r\n if (state === FIELD_START) {\r\n if (dataBuffer !== \"\") {\r\n lastEventId = lastEventIdBuffer;\r\n if (eventTypeBuffer === \"\") {\r\n eventTypeBuffer = \"message\";\r\n }\r\n var event = new MessageEvent(eventTypeBuffer, {\r\n data: dataBuffer.slice(1),\r\n lastEventId: lastEventIdBuffer\r\n });\r\n es.dispatchEvent(event);\r\n if (eventTypeBuffer === \"open\") {\r\n fire(es, es.onopen, event);\r\n } else if (eventTypeBuffer === \"message\") {\r\n fire(es, es.onmessage, event);\r\n } else if (eventTypeBuffer === \"error\") {\r\n fire(es, es.onerror, event);\r\n }\r\n if (currentState === CLOSED) {\r\n return;\r\n }\r\n }\r\n dataBuffer = \"\";\r\n eventTypeBuffer = \"\";\r\n }\r\n state = c === \"\\r\".charCodeAt(0) ? AFTER_CR : FIELD_START;\r\n } else {\r\n if (state === FIELD_START) {\r\n fieldStart = position;\r\n state = FIELD;\r\n }\r\n if (state === FIELD) {\r\n if (c === \":\".charCodeAt(0)) {\r\n valueStart = position + 1;\r\n state = VALUE_START;\r\n }\r\n } else if (state === VALUE_START) {\r\n state = VALUE;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n var onFinish = function (error) {\r\n if (currentState === OPEN || currentState === CONNECTING) {\r\n currentState = WAITING;\r\n if (timeout !== 0) {\r\n clearTimeout(timeout);\r\n timeout = 0;\r\n }\r\n timeout = setTimeout(function () {\r\n onTimeout();\r\n }, retry);\r\n retry = clampDuration(Math.min(initialRetry * 16, retry * 2));\r\n\r\n es.readyState = CONNECTING;\r\n var event = new ErrorEvent(\"error\", {error: error});\r\n es.dispatchEvent(event);\r\n fire(es, es.onerror, event);\r\n if (error != undefined) {\r\n console.error(error);\r\n }\r\n }\r\n };\r\n\r\n var close = function () {\r\n currentState = CLOSED;\r\n if (abortController != undefined) {\r\n abortController.abort();\r\n abortController = undefined;\r\n }\r\n if (timeout !== 0) {\r\n clearTimeout(timeout);\r\n timeout = 0;\r\n }\r\n es.readyState = CLOSED;\r\n };\r\n\r\n var onTimeout = function () {\r\n timeout = 0;\r\n\r\n if (currentState !== WAITING) {\r\n if (!wasActivity && abortController != undefined) {\r\n onFinish(new Error(\"No activity within \" + heartbeatTimeout + \" milliseconds.\" + \" \" + (currentState === CONNECTING ? \"No response received.\" : textLength + \" chars received.\") + \" \" + \"Reconnecting.\"));\r\n if (abortController != undefined) {\r\n abortController.abort();\r\n abortController = undefined;\r\n }\r\n } else {\r\n var nextHeartbeat = Math.max((wasActivity || Date.now()) + heartbeatTimeout - Date.now(), 1);\r\n wasActivity = false;\r\n timeout = setTimeout(function () {\r\n onTimeout();\r\n }, nextHeartbeat);\r\n }\r\n return;\r\n }\r\n\r\n wasActivity = false;\r\n textLength = 0;\r\n timeout = setTimeout(function () {\r\n onTimeout();\r\n }, heartbeatTimeout);\r\n\r\n currentState = CONNECTING;\r\n dataBuffer = \"\";\r\n eventTypeBuffer = \"\";\r\n lastEventIdBuffer = lastEventId;\r\n textBuffer = \"\";\r\n fieldStart = 0;\r\n valueStart = 0;\r\n state = FIELD_START;\r\n\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=428916\r\n // Request header field Last-Event-ID is not allowed by Access-Control-Allow-Headers.\r\n var requestURL = url;\r\n if (url.slice(0, 5) !== \"data:\" && url.slice(0, 5) !== \"blob:\") {\r\n if (lastEventId !== \"\") {\r\n // Remove the lastEventId parameter if it's already part of the request URL.\r\n var i = url.indexOf(\"?\");\r\n requestURL = i === -1 ? url : url.slice(0, i + 1) + url.slice(i + 1).replace(/(?:^|&)([^=&]*)(?:=[^&]*)?/g, function (p, paramName) {\r\n return paramName === lastEventIdQueryParameterName ? '' : p;\r\n });\r\n // Append the current lastEventId to the request URL.\r\n requestURL += (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + lastEventIdQueryParameterName +\"=\" + encodeURIComponent(lastEventId);\r\n }\r\n }\r\n var withCredentials = es.withCredentials;\r\n var requestHeaders = {};\r\n requestHeaders[\"Accept\"] = \"text/event-stream\";\r\n var headers = es.headers;\r\n if (headers != undefined) {\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\r\n requestHeaders[name] = headers[name];\r\n }\r\n }\r\n }\r\n try {\r\n abortController = transport.open(xhr, onStart, onProgress, onFinish, requestURL, withCredentials, requestHeaders);\r\n } catch (error) {\r\n close();\r\n throw error;\r\n }\r\n };\r\n\r\n es.url = url;\r\n es.readyState = CONNECTING;\r\n es.withCredentials = withCredentials;\r\n es.headers = headers;\r\n es._close = close;\r\n\r\n onTimeout();\r\n }\r\n\r\n EventSourcePolyfill.prototype = Object.create(EventTarget.prototype);\r\n EventSourcePolyfill.prototype.CONNECTING = CONNECTING;\r\n EventSourcePolyfill.prototype.OPEN = OPEN;\r\n EventSourcePolyfill.prototype.CLOSED = CLOSED;\r\n EventSourcePolyfill.prototype.close = function () {\r\n this._close();\r\n };\r\n\r\n EventSourcePolyfill.CONNECTING = CONNECTING;\r\n EventSourcePolyfill.OPEN = OPEN;\r\n EventSourcePolyfill.CLOSED = CLOSED;\r\n EventSourcePolyfill.prototype.withCredentials = undefined;\r\n\r\n var R = NativeEventSource\r\n if (XMLHttpRequest != undefined && (NativeEventSource == undefined || !(\"withCredentials\" in NativeEventSource.prototype))) {\r\n // Why replace a native EventSource ?\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=444328\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=831392\r\n // https://code.google.com/p/chromium/issues/detail?id=260144\r\n // https://code.google.com/p/chromium/issues/detail?id=225654\r\n // ...\r\n R = EventSourcePolyfill;\r\n }\r\n\r\n (function (factory) {\r\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n var v = factory(exports);\r\n if (v !== undefined) module.exports = v;\r\n }\r\n else if (typeof define === \"function\" && define.amd) {\r\n define([\"exports\"], factory);\r\n }\r\n else {\r\n factory(global);\r\n }\r\n })(function (exports) {\r\n exports.EventSourcePolyfill = EventSourcePolyfill;\r\n exports.NativeEventSource = NativeEventSource;\r\n exports.EventSource = R;\r\n });\r\n}(typeof globalThis === 'undefined' ? (typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : this) : globalThis));\r\n","/* eslint-disable no-var */\nvar evs = require(\"event-source-polyfill\");\n\nmodule.exports = evs.EventSourcePolyfill;\n","\"use strict\";\n\nmodule.exports = function (obj, props) {\n return props.reduce(function (selection, prop) {\n if (typeof obj[prop] === 'undefined') {\n return selection;\n }\n\n selection[prop] = obj[prop];\n return selection;\n }, {});\n};","\"use strict\";\n\nmodule.exports = function (obj, defaults) {\n return Object.keys(defaults).concat(Object.keys(obj)).reduce(function (target, prop) {\n target[prop] = typeof obj[prop] === 'undefined' ? defaults[prop] : obj[prop];\n return target;\n }, {});\n};","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('../util/observable'),\n Observable = _require.Observable;\n\nvar polyfilledEventSource = require('@sanity/eventsource');\n\nvar pick = require('../util/pick');\n\nvar defaults = require('../util/defaults');\n\nvar encodeQueryString = require('./encodeQueryString'); // 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\"\n\n\nvar MAX_URL_LENGTH = 16000 - 1200;\nvar EventSource = polyfilledEventSource;\nvar possibleOptions = ['includePreviousRevision', 'includeResult', 'visibility', 'effectFormat', 'tag'];\nvar defaultOptions = {\n includeResult: true\n};\n\nmodule.exports = function listen(query, params) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _this$clientConfig = this.clientConfig,\n url = _this$clientConfig.url,\n token = _this$clientConfig.token,\n withCredentials = _this$clientConfig.withCredentials,\n requestTagPrefix = _this$clientConfig.requestTagPrefix;\n var tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join('.') : opts.tag;\n\n var options = _objectSpread(_objectSpread({}, defaults(opts, defaultOptions)), {}, {\n tag: tag\n });\n\n var listenOpts = pick(options, possibleOptions);\n var qs = encodeQueryString({\n query: query,\n params: params,\n options: listenOpts,\n tag: tag\n });\n var uri = \"\".concat(url).concat(this.getDataUrl('listen', qs));\n\n if (uri.length > MAX_URL_LENGTH) {\n return new Observable(function (observer) {\n return observer.error(new Error('Query too large for listener'));\n });\n }\n\n var listenFor = options.events ? options.events : ['mutation'];\n var shouldEmitReconnect = listenFor.indexOf('reconnect') !== -1;\n var esOptions = {};\n\n if (token || withCredentials) {\n esOptions.withCredentials = true;\n }\n\n if (token) {\n esOptions.headers = {\n Authorization: \"Bearer \".concat(token)\n };\n }\n\n return new Observable(function (observer) {\n var es = getEventSource();\n var reconnectTimer;\n var stopped = false;\n\n function onError() {\n if (stopped) {\n return;\n }\n\n emitReconnect(); // Allow event handlers of `emitReconnect` to cancel/close the reconnect attempt\n\n if (stopped) {\n return;\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\n\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 var 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(function (type) {\n return es.removeEventListener(type, onMessage, false);\n });\n es.close();\n }\n\n function emitReconnect() {\n if (shouldEmitReconnect) {\n observer.next({\n type: 'reconnect'\n });\n }\n }\n\n function getEventSource() {\n var 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(function (type) {\n return evs.addEventListener(type, onMessage, false);\n });\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 var data = event.data && JSON.parse(event.data) || {};\n return assign({\n type: event.type\n }, data);\n } catch (err) {\n return err;\n }\n}\n\nfunction cooerceError(err) {\n if (err instanceof Error) {\n return err;\n }\n\n var 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}","\"use strict\";\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('../util/observable'),\n map = _require.map,\n filter = _require.filter;\n\nvar validators = require('../validators');\n\nvar getSelection = require('../util/getSelection');\n\nvar encodeQueryString = require('./encodeQueryString');\n\nvar Transaction = require('./transaction');\n\nvar Patch = require('./patch');\n\nvar listen = require('./listen');\n\nvar excludeFalsey = function excludeFalsey(param, defValue) {\n var value = typeof param === 'undefined' ? defValue : param;\n return param === false ? undefined : value;\n};\n\nvar getMutationQuery = function getMutationQuery() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n dryRun: options.dryRun,\n returnIds: true,\n returnDocuments: excludeFalsey(options.returnDocuments, true),\n visibility: options.visibility || 'sync',\n autoGenerateArrayKeys: options.autoGenerateArrayKeys,\n skipCrossDatasetReferenceValidation: options.skipCrossDatasetReferenceValidation\n };\n};\n\nvar isResponse = function isResponse(event) {\n return event.type === 'response';\n};\n\nvar getBody = function getBody(event) {\n return event.body;\n};\n\nvar indexBy = function indexBy(docs, attr) {\n return docs.reduce(function (indexed, doc) {\n indexed[attr(doc)] = doc;\n return indexed;\n }, Object.create(null));\n};\n\nvar toPromise = function toPromise(observable) {\n return observable.toPromise();\n};\n\nvar getQuerySizeLimit = 11264;\nmodule.exports = {\n listen: listen,\n getDataUrl: function getDataUrl(operation, path) {\n var config = this.clientConfig;\n var catalog = validators.hasDataset(config);\n var baseUri = \"/\".concat(operation, \"/\").concat(catalog);\n var uri = path ? \"\".concat(baseUri, \"/\").concat(path) : baseUri;\n return \"/data\".concat(uri).replace(/\\/($|\\?)/, '$1');\n },\n fetch: function fetch(query, params) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var mapResponse = options.filterResponse === false ? function (res) {\n return res;\n } : function (res) {\n return res.result;\n };\n\n var observable = this._dataRequest('query', {\n query: query,\n params: params\n }, options).pipe(map(mapResponse));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocument: function getDocument(id) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', id),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n return event.body.documents && event.body.documents[0];\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n getDocuments: function getDocuments(ids) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = {\n uri: this.getDataUrl('doc', ids.join(',')),\n json: true,\n tag: opts.tag\n };\n\n var observable = this._requestObservable(options).pipe(filter(isResponse), map(function (event) {\n var indexed = indexBy(event.body.documents || [], function (doc) {\n return doc._id;\n });\n return ids.map(function (id) {\n return indexed[id] || null;\n });\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n },\n create: function create(doc, options) {\n return this._create(doc, 'create', options);\n },\n createIfNotExists: function createIfNotExists(doc, options) {\n validators.requireDocumentId('createIfNotExists', doc);\n return this._create(doc, 'createIfNotExists', options);\n },\n createOrReplace: function createOrReplace(doc, options) {\n validators.requireDocumentId('createOrReplace', doc);\n return this._create(doc, 'createOrReplace', options);\n },\n patch: function patch(selector, operations) {\n return new Patch(selector, operations, this);\n },\n delete: function _delete(selection, options) {\n return this.dataRequest('mutate', {\n mutations: [{\n delete: getSelection(selection)\n }]\n }, options);\n },\n mutate: function mutate(mutations, options) {\n var mut = mutations instanceof Patch || mutations instanceof Transaction ? mutations.serialize() : mutations;\n var muts = Array.isArray(mut) ? mut : [mut];\n var transactionId = options && options.transactionId;\n return this.dataRequest('mutate', {\n mutations: muts,\n transactionId: transactionId\n }, options);\n },\n transaction: function transaction(operations) {\n return new Transaction(operations, this);\n },\n dataRequest: function dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var request = this._dataRequest(endpoint, body, options);\n\n return this.isPromiseAPI() ? toPromise(request) : request;\n },\n _dataRequest: function _dataRequest(endpoint, body) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var isMutation = endpoint === 'mutate';\n var isQuery = endpoint === 'query'; // Check if the query string is within a configured threshold,\n // in which case we can use GET. Otherwise, use POST.\n\n var strQuery = !isMutation && encodeQueryString(body);\n var useGet = !isMutation && strQuery.length < getQuerySizeLimit;\n var stringQuery = useGet ? strQuery : '';\n var returnFirst = options.returnFirst;\n var timeout = options.timeout,\n token = options.token,\n tag = options.tag,\n headers = options.headers;\n var uri = this.getDataUrl(endpoint, stringQuery);\n var reqOptions = {\n method: useGet ? 'GET' : 'POST',\n uri: uri,\n json: true,\n body: useGet ? undefined : body,\n query: isMutation && getMutationQuery(options),\n timeout: timeout,\n headers: headers,\n token: token,\n tag: tag,\n canUseCdn: isQuery\n };\n return this._requestObservable(reqOptions).pipe(filter(isResponse), map(getBody), map(function (res) {\n if (!isMutation) {\n return res;\n } // Should we return documents?\n\n\n var results = res.results || [];\n\n if (options.returnDocuments) {\n return returnFirst ? results[0] && results[0].document : results.map(function (mut) {\n return mut.document;\n });\n } // Return a reduced subset\n\n\n var key = returnFirst ? 'documentId' : 'documentIds';\n var ids = returnFirst ? results[0] && results[0].id : results.map(function (mut) {\n return mut.id;\n });\n return _defineProperty({\n transactionId: res.transactionId,\n results: results\n }, key, ids);\n }));\n },\n _create: function _create(doc, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var mutation = _defineProperty({}, op, doc);\n\n var opts = assign({\n returnFirst: true,\n returnDocuments: true\n }, options);\n return this.dataRequest('mutate', {\n mutations: [mutation]\n }, opts);\n }\n};","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar validate = require('../validators');\n\nfunction DatasetsClient(client) {\n this.request = client.request.bind(client);\n}\n\nassign(DatasetsClient.prototype, {\n create: function create(name, options) {\n return this._modify('PUT', name, options);\n },\n edit: function edit(name, options) {\n return this._modify('PATCH', name, options);\n },\n delete: function _delete(name) {\n return this._modify('DELETE', name);\n },\n list: function list() {\n return this.request({\n uri: '/datasets'\n });\n },\n _modify: function _modify(method, name, body) {\n validate.dataset(name);\n return this.request({\n method: method,\n uri: \"/datasets/\".concat(name),\n body: body\n });\n }\n});\nmodule.exports = DatasetsClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction ProjectsClient(client) {\n this.client = client;\n}\n\nassign(ProjectsClient.prototype, {\n list: function list() {\n return this.client.request({\n uri: '/projects'\n });\n },\n getById: function getById(id) {\n return this.client.request({\n uri: \"/projects/\".concat(id)\n });\n }\n});\nmodule.exports = ProjectsClient;","\"use strict\";\n\nmodule.exports = function (params) {\n var qs = [];\n\n for (var key in params) {\n if (params.hasOwnProperty(key)) {\n qs.push(\"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(params[key])));\n }\n }\n\n return qs.length > 0 ? \"?\".concat(qs.join('&')) : '';\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _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.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar assign = require('object-assign');\n\nvar _require = require('../util/observable'),\n map = _require.map,\n filter = _require.filter;\n\nvar queryString = require('../http/queryString');\n\nvar 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 filename: opts.preserveFilename === false ? undefined : file.name,\n contentType: file.type\n }, opts);\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: function upload(assetType, body) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n validators.validateAssetType(assetType); // If an empty array is given, explicitly set `none` to override API defaults\n\n var meta = opts.extract || undefined;\n\n if (meta && !meta.length) {\n meta = ['none'];\n }\n\n var dataset = validators.hasDataset(this.client.clientConfig);\n var assetEndpoint = assetType === 'image' ? 'images' : 'files';\n var options = optionsFromFile(opts, body);\n var tag = options.tag,\n label = options.label,\n title = options.title,\n description = options.description,\n creditLine = options.creditLine,\n filename = options.filename,\n source = options.source;\n var query = {\n label: label,\n title: title,\n description: description,\n filename: filename,\n meta: meta,\n creditLine: creditLine\n };\n\n if (source) {\n query.sourceId = source.id;\n query.sourceName = source.name;\n query.sourceUrl = source.url;\n }\n\n var observable = this.client._requestObservable({\n tag: tag,\n method: 'POST',\n timeout: options.timeout || 0,\n uri: \"/assets/\".concat(assetEndpoint, \"/\").concat(dataset),\n headers: options.contentType ? {\n 'Content-Type': options.contentType\n } : {},\n query: query,\n body: body\n });\n\n return this.client.isPromiseAPI() ? observable.pipe(filter(function (event) {\n return event.type === 'response';\n }), map(function (event) {\n return event.body.document;\n })).toPromise() : observable;\n },\n delete: function _delete(type, id) {\n // eslint-disable-next-line no-console\n console.warn('client.assets.delete() is deprecated, please use client.delete()');\n var docId = id || '';\n\n if (!/^(image|file)-/.test(docId)) {\n docId = \"\".concat(type, \"-\").concat(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 getImageUrl: function getImageUrl(ref, query) {\n var id = ref._ref || ref;\n\n if (typeof id !== 'string') {\n throw new Error('getImageUrl() needs either an object with a _ref, or a string with an asset document ID');\n }\n\n if (!/^image-[A-Za-z0-9_]+-\\d+x\\d+-[a-z]{1,5}$/.test(id)) {\n throw new Error(\"Unsupported asset ID \\\"\".concat(id, \"\\\". URL generation only works for auto-generated IDs.\"));\n }\n\n var _id$split = id.split('-'),\n _id$split2 = _slicedToArray(_id$split, 4),\n assetId = _id$split2[1],\n size = _id$split2[2],\n format = _id$split2[3];\n\n validators.hasDataset(this.client.clientConfig);\n var _this$client$clientCo = this.client.clientConfig,\n projectId = _this$client$clientCo.projectId,\n dataset = _this$client$clientCo.dataset;\n var qs = query ? queryString(query) : '';\n return \"https://cdn.sanity.io/images/\".concat(projectId, \"/\").concat(dataset, \"/\").concat(assetId, \"-\").concat(size, \".\").concat(format).concat(qs);\n }\n});\nmodule.exports = AssetsClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction UsersClient(client) {\n this.client = client;\n}\n\nassign(UsersClient.prototype, {\n getById: function getById(id) {\n return this.client.request({\n uri: \"/users/\".concat(id)\n });\n }\n});\nmodule.exports = UsersClient;","\"use strict\";\n\nvar assign = require('object-assign');\n\nfunction AuthClient(client) {\n this.client = client;\n}\n\nassign(AuthClient.prototype, {\n getLoginProviders: function getLoginProviders() {\n return this.client.request({\n uri: '/auth/providers'\n });\n },\n logout: function logout() {\n return this.client.request({\n uri: '/auth/logout',\n method: 'POST'\n });\n }\n});\nmodule.exports = AuthClient;","module.exports = function Pubsub() {\n var subscribers = []\n return {\n subscribe: subscribe,\n publish: publish\n }\n function subscribe(subscriber) {\n subscribers.push(subscriber)\n return function unsubscribe() {\n var idx = subscribers.indexOf(subscriber)\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n }\n }\n function publish() {\n for (var i = 0; i < subscribers.length; i++) {\n subscribers[i].apply(null, arguments)\n }\n }\n}","\"use strict\";\n\nmodule.exports = function (middleware) {\n var applyMiddleware = function applyMiddleware(hook, defaultValue) {\n var bailEarly = hook === 'onError';\n var value = defaultValue;\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n for (var i = 0; i < middleware[hook].length; i++) {\n var handler = middleware[hook][i];\n value = handler.apply(void 0, [value].concat(args));\n\n if (bailEarly && !value) {\n break;\n }\n }\n\n return value;\n };\n\n return applyMiddleware;\n};\n//# sourceMappingURL=middlewareReducer.js.map","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","\"use strict\";\n\nvar objectAssign = require('object-assign');\n\nvar urlParse = require('url-parse');\n\nvar isReactNative = typeof navigator === 'undefined' ? false : navigator.product === 'ReactNative';\nvar has = Object.prototype.hasOwnProperty;\nvar defaultOptions = {\n timeout: isReactNative ? 60000 : 120000\n};\n\nmodule.exports = function (opts) {\n var options = typeof opts === 'string' ? objectAssign({\n url: opts\n }, defaultOptions) : objectAssign({}, defaultOptions, opts); // Parse URL into parts\n\n var url = urlParse(options.url, {}, // Don't use current browser location\n true // Parse query strings\n ); // Normalize timeouts\n\n options.timeout = normalizeTimeout(options.timeout); // Shallow-merge (override) existing query params\n\n if (options.query) {\n url.query = objectAssign({}, url.query, removeUndefined(options.query));\n } // Implicit POST if we have not specified a method but have a body\n\n\n options.method = options.body && !options.method ? 'POST' : (options.method || 'GET').toUpperCase(); // Stringify URL\n\n options.url = url.toString(stringifyQueryString);\n return options;\n};\n\nfunction stringifyQueryString(obj) {\n var pairs = [];\n\n for (var key in obj) {\n if (has.call(obj, key)) {\n push(key, obj[key]);\n }\n }\n\n return pairs.length ? pairs.join('&') : '';\n\n function push(key, val) {\n if (Array.isArray(val)) {\n val.forEach(function (item) {\n return push(key, item);\n });\n } else {\n pairs.push([key, val].map(encodeURIComponent).join('='));\n }\n }\n}\n\nfunction normalizeTimeout(time) {\n if (time === false || time === 0) {\n return false;\n }\n\n if (time.connect || time.socket) {\n return time;\n }\n\n var delay = Number(time);\n\n if (isNaN(delay)) {\n return normalizeTimeout(defaultOptions.timeout);\n }\n\n return {\n connect: delay,\n socket: delay\n };\n}\n\nfunction removeUndefined(obj) {\n var target = {};\n\n for (var key in obj) {\n if (obj[key] !== undefined) {\n target[key] = obj[key];\n }\n }\n\n return target;\n}\n//# sourceMappingURL=defaultOptionsProcessor.js.map","\"use strict\";\n\nvar validUrl = /^https?:\\/\\//i;\n\nmodule.exports = function (options) {\n if (!validUrl.test(options.url)) {\n throw new Error(\"\\\"\".concat(options.url, \"\\\" is not a valid URL\"));\n }\n};\n//# sourceMappingURL=defaultOptionsValidator.js.map","/**\n * This file is only used for the browser version of `same-origin`.\n * Used to bring down the size of the browser bundle.\n */\n'use strict';\n\nvar regex = /^(?:(?:(?:([^:\\/#\\?]+:)?(?:(?:\\/\\/)((?:((?:[^:@\\/#\\?]+)(?:\\:(?:[^:@\\/#\\?]+))?)@)?(([^:\\/#\\?\\]\\[]+|\\[[^\\/\\]@#?]+\\])(?:\\:([0-9]+))?))?)?)?((?:\\/?(?:[^\\/\\?#]+\\/+)*)(?:[^\\?#]*)))?(\\?[^#]+)?)(#.*)?/;\n\nmodule.exports = {\n regex: regex,\n parse: function(url) {\n var match = regex.exec(url);\n if (!match) {\n return {};\n }\n\n return {\n protocol: (match[1] || '').toLowerCase() || undefined,\n hostname: (match[5] || '').toLowerCase() || undefined,\n port: match[6] || undefined\n };\n }\n};","'use strict';\n\nvar url = require('url');\n\nmodule.exports = function(uri1, uri2, ieMode) {\n if (uri1 === uri2) {\n return true;\n }\n\n var url1 = url.parse(uri1, false, true);\n var url2 = url.parse(uri2, false, true);\n\n var url1Port = url1.port|0 || (url1.protocol === 'https' ? 443 : 80);\n var url2Port = url2.port|0 || (url2.protocol === 'https' ? 443 : 80);\n\n var match = {\n proto: url1.protocol === url2.protocol,\n hostname: url1.hostname === url2.hostname,\n port: url1Port === url2Port\n };\n\n return ((match.proto && match.hostname) && (match.port || ieMode));\n};","var trim = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '');\n}\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n var headersArr = trim(headers).split('\\n')\n\n for (var i = 0; i < headersArr.length; i++) {\n var row = headersArr[i]\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n\n return result\n}\n","\"use strict\";\n\n/**\n * Mimicks the XMLHttpRequest API with only the parts needed for get-it's XHR adapter\n */\nfunction FetchXhr() {\n this.readyState = 0; // Unsent\n}\n\nFetchXhr.prototype.open = function (method, url) {\n this._method = method;\n this._url = url;\n this._resHeaders = '';\n this.readyState = 1; // Open\n\n this.onreadystatechange();\n};\n\nFetchXhr.prototype.abort = function () {\n if (this._controller) {\n this._controller.abort();\n }\n};\n\nFetchXhr.prototype.getAllResponseHeaders = function () {\n return this._resHeaders;\n};\n\nFetchXhr.prototype.setRequestHeader = function (key, value) {\n this._headers = this._headers || {};\n this._headers[key] = value;\n};\n\nFetchXhr.prototype.send = function (body) {\n var _this = this;\n\n // eslint-disable-next-line no-multi-assign\n var ctrl = this._controller = typeof AbortController === 'function' && new AbortController();\n var textBody = this.responseType !== 'arraybuffer';\n var options = {\n method: this._method,\n headers: this._headers,\n signal: ctrl && ctrl.signal,\n body: body\n }; // Some environments (like CloudFlare workers) don't support credentials in\n // RequestInitDict, and there doesn't seem to be any easy way to check for it,\n // so for now let's just make do with a window check :/\n\n if (typeof window !== 'undefined') {\n options.credentials = this.withCredentials ? 'include' : 'omit';\n }\n\n fetch(this._url, options).then(function (res) {\n res.headers.forEach(function (value, key) {\n _this._resHeaders += \"\".concat(key, \": \").concat(value, \"\\r\\n\");\n });\n _this.status = res.status;\n _this.statusText = res.statusText;\n _this.readyState = 3; // Loading\n\n return textBody ? res.text() : res.arrayBuffer();\n }).then(function (resBody) {\n if (textBody) {\n _this.responseText = resBody;\n } else {\n _this.response = resBody;\n }\n\n _this.readyState = 4; // Done\n\n _this.onreadystatechange();\n }).catch(function (err) {\n if (err.name === 'AbortError') {\n _this.onabort();\n\n return;\n }\n\n _this.onerror(err);\n });\n};\n\nmodule.exports = FetchXhr;\n//# sourceMappingURL=fetchXhr.js.map","\"use strict\";\n\n/* eslint max-depth: [\"error\", 4] */\nvar sameOrigin = require('same-origin');\n\nvar parseHeaders = require('parse-headers');\n\nvar FetchXhr = require('./browser/fetchXhr');\n\nvar noop = function noop() {\n /* intentional noop */\n};\n\nvar win = typeof window === 'undefined' ? undefined : window;\nvar adapter = win ? 'xhr' : 'fetch';\nvar XmlHttpRequest = typeof XMLHttpRequest === 'function' ? XMLHttpRequest : noop;\nvar hasXhr2 = ('withCredentials' in new XmlHttpRequest()); // eslint-disable-next-line no-undef\n\nvar XDR = typeof XDomainRequest === 'undefined' ? undefined : XDomainRequest;\nvar CrossDomainRequest = hasXhr2 ? XmlHttpRequest : XDR; // Fallback to fetch-based XHR polyfill for non-browser environments like Workers\n\nif (!win) {\n XmlHttpRequest = FetchXhr;\n CrossDomainRequest = FetchXhr;\n}\n\nmodule.exports = function (context, callback) {\n var opts = context.options;\n var options = context.applyMiddleware('finalizeOptions', opts);\n var timers = {}; // Deep-checking window.location because of react native, where `location` doesn't exist\n\n var cors = win && win.location && !sameOrigin(win.location.href, options.url); // Allow middleware to inject a response, for instance in the case of caching or mocking\n\n var injectedResponse = context.applyMiddleware('interceptRequest', undefined, {\n adapter: adapter,\n context: context\n }); // If middleware injected a response, treat it as we normally would and return it\n // Do note that the injected response has to be reduced to a cross-environment friendly response\n\n if (injectedResponse) {\n var cbTimer = setTimeout(callback, 0, null, injectedResponse);\n\n var cancel = function cancel() {\n return clearTimeout(cbTimer);\n };\n\n return {\n abort: cancel\n };\n } // We'll want to null out the request on success/failure\n\n\n var xhr = cors ? new CrossDomainRequest() : new XmlHttpRequest();\n var isXdr = win && win.XDomainRequest && xhr instanceof win.XDomainRequest;\n var headers = options.headers;\n var delays = options.timeout; // Request state\n\n var aborted = false;\n var loaded = false;\n var timedOut = false; // Apply event handlers\n\n xhr.onerror = onError;\n xhr.ontimeout = onError;\n\n xhr.onabort = function () {\n stopTimers(true);\n aborted = true;\n }; // IE9 must have onprogress be set to a unique function\n\n\n xhr.onprogress = function () {\n /* intentional noop */\n };\n\n var loadEvent = isXdr ? 'onload' : 'onreadystatechange';\n\n xhr[loadEvent] = function () {\n // Prevent request from timing out\n resetTimers();\n\n if (aborted || xhr.readyState !== 4 && !isXdr) {\n return;\n } // Will be handled by onError\n\n\n if (xhr.status === 0) {\n return;\n }\n\n onLoad();\n }; // @todo two last options to open() is username/password\n\n\n xhr.open(options.method, options.url, true // Always async\n ); // Some options need to be applied after open\n\n xhr.withCredentials = !!options.withCredentials; // Set headers\n\n if (headers && xhr.setRequestHeader) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } else if (headers && isXdr) {\n throw new Error('Headers cannot be set on an XDomainRequest object');\n }\n\n if (options.rawBody) {\n xhr.responseType = 'arraybuffer';\n } // Let middleware know we're about to do a request\n\n\n context.applyMiddleware('onRequest', {\n options: options,\n adapter: adapter,\n request: xhr,\n context: context\n });\n xhr.send(options.body || null); // Figure out which timeouts to use (if any)\n\n if (delays) {\n timers.connect = setTimeout(function () {\n return timeoutRequest('ETIMEDOUT');\n }, delays.connect);\n }\n\n return {\n abort: abort\n };\n\n function abort() {\n aborted = true;\n\n if (xhr) {\n xhr.abort();\n }\n }\n\n function timeoutRequest(code) {\n timedOut = true;\n xhr.abort();\n var error = new Error(code === 'ESOCKETTIMEDOUT' ? \"Socket timed out on request to \".concat(options.url) : \"Connection timed out on request to \".concat(options.url));\n error.code = code;\n context.channels.error.publish(error);\n }\n\n function resetTimers() {\n if (!delays) {\n return;\n }\n\n stopTimers();\n timers.socket = setTimeout(function () {\n return timeoutRequest('ESOCKETTIMEDOUT');\n }, delays.socket);\n }\n\n function stopTimers(force) {\n // Only clear the connect timeout if we've got a connection\n if (force || aborted || xhr.readyState >= 2 && timers.connect) {\n clearTimeout(timers.connect);\n }\n\n if (timers.socket) {\n clearTimeout(timers.socket);\n }\n }\n\n function onError(error) {\n if (loaded) {\n return;\n } // Clean up\n\n\n stopTimers(true);\n loaded = true;\n xhr = null; // Annoyingly, details are extremely scarce and hidden from us.\n // We only really know that it is a network error\n\n var err = error || new Error(\"Network error while attempting to reach \".concat(options.url));\n err.isNetworkError = true;\n err.request = options;\n callback(err);\n }\n\n function reduceResponse() {\n var statusCode = xhr.status;\n var statusMessage = xhr.statusText;\n\n if (isXdr && statusCode === undefined) {\n // IE8 CORS GET successful response doesn't have a status field, but body is fine\n statusCode = 200;\n } else if (statusCode > 12000 && statusCode < 12156) {\n // Yet another IE quirk where it emits weird status codes on network errors\n // https://support.microsoft.com/en-us/kb/193625\n return onError();\n } else {\n // Another IE bug where HTTP 204 somehow ends up as 1223\n statusCode = xhr.status === 1223 ? 204 : xhr.status;\n statusMessage = xhr.status === 1223 ? 'No Content' : statusMessage;\n }\n\n return {\n body: xhr.response || xhr.responseText,\n url: options.url,\n method: options.method,\n headers: isXdr ? {} : parseHeaders(xhr.getAllResponseHeaders()),\n statusCode: statusCode,\n statusMessage: statusMessage\n };\n }\n\n function onLoad() {\n if (aborted || loaded || timedOut) {\n return;\n }\n\n if (xhr.status === 0) {\n onError(new Error('Unknown XHR error'));\n return;\n } // Prevent being called twice\n\n\n stopTimers();\n loaded = true;\n callback(null, reduceResponse());\n }\n};\n//# sourceMappingURL=browser-request.js.map","\"use strict\";\n\nmodule.exports = require('./node-request');\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nvar pubsub = require('nano-pubsub');\n\nvar middlewareReducer = require('./util/middlewareReducer');\n\nvar processOptions = require('./middleware/defaultOptionsProcessor');\n\nvar validateOptions = require('./middleware/defaultOptionsValidator');\n\nvar httpRequester = require('./request'); // node-request in node, browser-request in browsers\n\n\nvar channelNames = ['request', 'response', 'progress', 'error', 'abort'];\nvar middlehooks = ['processOptions', 'validateOptions', 'interceptRequest', 'finalizeOptions', 'onRequest', 'onResponse', 'onError', 'onReturn', 'onHeaders'];\n\nmodule.exports = function createRequester() {\n var initMiddleware = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var httpRequest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : httpRequester;\n var loadedMiddleware = [];\n var middleware = middlehooks.reduce(function (ware, name) {\n ware[name] = ware[name] || [];\n return ware;\n }, {\n processOptions: [processOptions],\n validateOptions: [validateOptions]\n });\n\n function request(opts) {\n var channels = channelNames.reduce(function (target, name) {\n target[name] = pubsub();\n return target;\n }, {}); // Prepare a middleware reducer that can be reused throughout the lifecycle\n\n var applyMiddleware = middlewareReducer(middleware); // Parse the passed options\n\n var options = applyMiddleware('processOptions', opts); // Validate the options\n\n applyMiddleware('validateOptions', options); // Build a context object we can pass to child handlers\n\n var context = {\n options: options,\n channels: channels,\n applyMiddleware: applyMiddleware\n }; // We need to hold a reference to the current, ongoing request,\n // in order to allow cancellation. In the case of the retry middleware,\n // a new request might be triggered\n\n var ongoingRequest = null;\n var unsubscribe = channels.request.subscribe(function (ctx) {\n // Let request adapters (node/browser) perform the actual request\n ongoingRequest = httpRequest(ctx, function (err, res) {\n return onResponse(err, res, ctx);\n });\n }); // If we abort the request, prevent further requests from happening,\n // and be sure to cancel any ongoing request (obviously)\n\n channels.abort.subscribe(function () {\n unsubscribe();\n\n if (ongoingRequest) {\n ongoingRequest.abort();\n }\n }); // See if any middleware wants to modify the return value - for instance\n // the promise or observable middlewares\n\n var returnValue = applyMiddleware('onReturn', channels, context); // If return value has been modified by a middleware, we expect the middleware\n // to publish on the 'request' channel. If it hasn't been modified, we want to\n // trigger it right away\n\n if (returnValue === channels) {\n channels.request.publish(context);\n }\n\n return returnValue;\n\n function onResponse(reqErr, res, ctx) {\n var error = reqErr;\n var response = res; // We're processing non-errors first, in case a middleware converts the\n // response into an error (for instance, status >= 400 == HttpError)\n\n if (!error) {\n try {\n response = applyMiddleware('onResponse', res, ctx);\n } catch (err) {\n response = null;\n error = err;\n }\n } // Apply error middleware - if middleware return the same (or a different) error,\n // publish as an error event. If we *don't* return an error, assume it has been handled\n\n\n error = error && applyMiddleware('onError', error, ctx); // Figure out if we should publish on error/response channels\n\n if (error) {\n channels.error.publish(error);\n } else if (response) {\n channels.response.publish(response);\n }\n }\n }\n\n request.use = function use(newMiddleware) {\n if (!newMiddleware) {\n throw new Error('Tried to add middleware that resolved to falsey value');\n }\n\n if (typeof newMiddleware === 'function') {\n throw new Error('Tried to add middleware that was a function. It probably expects you to pass options to it.');\n }\n\n if (newMiddleware.onReturn && middleware.onReturn.length > 0) {\n throw new Error('Tried to add new middleware with `onReturn` handler, but another handler has already been registered for this event');\n }\n\n middlehooks.forEach(function (key) {\n if (newMiddleware[key]) {\n middleware[key].push(newMiddleware[key]);\n }\n });\n loadedMiddleware.push(newMiddleware);\n return request;\n };\n\n request.clone = function clone() {\n return createRequester(loadedMiddleware);\n };\n\n initMiddleware.forEach(request.use);\n return request;\n};\n//# sourceMappingURL=index.js.map","module.exports = require('./lib-node')\n","\"use strict\";\n\n/* global globalThis */\n\n/* eslint-disable no-negated-condition */\nif (typeof globalThis !== 'undefined') {\n module.exports = globalThis;\n} else if (typeof window !== 'undefined') {\n module.exports = window;\n} else if (typeof global !== 'undefined') {\n module.exports = global;\n} else if (typeof self !== 'undefined') {\n module.exports = self;\n} else {\n module.exports = {};\n}\n//# sourceMappingURL=global.js.map","\"use strict\";\n\nvar global = require('../util/global');\n\nvar objectAssign = require('object-assign');\n\nmodule.exports = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var Observable = opts.implementation || global.Observable;\n\n if (!Observable) {\n throw new Error('`Observable` is not available in global scope, and no implementation was passed');\n }\n\n return {\n onReturn: function onReturn(channels, context) {\n return new Observable(function (observer) {\n channels.error.subscribe(function (err) {\n return observer.error(err);\n });\n channels.progress.subscribe(function (event) {\n return observer.next(objectAssign({\n type: 'progress'\n }, event));\n });\n channels.response.subscribe(function (response) {\n observer.next(objectAssign({\n type: 'response'\n }, response));\n observer.complete();\n });\n channels.request.publish(context);\n return function () {\n return channels.abort.publish();\n };\n });\n }\n };\n};\n//# sourceMappingURL=observable.js.map","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","\"use strict\";\n\nfunction _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); }\n\nvar objectAssign = require('object-assign');\n\nvar isPlainObject = require('is-plain-object');\n\nvar serializeTypes = ['boolean', 'string', 'number'];\n\nvar isBuffer = function isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};\n\nmodule.exports = function () {\n return {\n processOptions: function processOptions(options) {\n var body = options.body;\n\n if (!body) {\n return options;\n }\n\n var isStream = typeof body.pipe === 'function';\n var shouldSerialize = !isStream && !isBuffer(body) && (serializeTypes.indexOf(_typeof(body)) !== -1 || Array.isArray(body) || isPlainObject(body));\n\n if (!shouldSerialize) {\n return options;\n }\n\n return objectAssign({}, options, {\n body: JSON.stringify(options.body),\n headers: objectAssign({}, options.headers, {\n 'Content-Type': 'application/json'\n })\n });\n }\n };\n};\n//# sourceMappingURL=jsonRequest.js.map","\"use strict\";\n\nvar objectAssign = require('object-assign');\n\nmodule.exports = function (opts) {\n return {\n onResponse: function onResponse(response) {\n var contentType = response.headers['content-type'] || '';\n var shouldDecode = opts && opts.force || contentType.indexOf('application/json') !== -1;\n\n if (!response.body || !contentType || !shouldDecode) {\n return response;\n }\n\n return objectAssign({}, response, {\n body: tryParse(response.body)\n });\n },\n processOptions: function processOptions(options) {\n return objectAssign({}, options, {\n headers: objectAssign({\n Accept: 'application/json'\n }, options.headers)\n });\n }\n };\n};\n\nfunction tryParse(body) {\n try {\n return JSON.parse(body);\n } catch (err) {\n err.message = \"Failed to parsed response body as JSON: \".concat(err.message);\n throw err;\n }\n}\n//# sourceMappingURL=jsonResponse.js.map","\"use strict\";\n\nmodule.exports = function () {\n return {\n onRequest: function onRequest(evt) {\n if (evt.adapter !== 'xhr') {\n return;\n }\n\n var xhr = evt.request;\n var context = evt.context;\n\n if ('upload' in xhr && 'onprogress' in xhr.upload) {\n xhr.upload.onprogress = handleProgress('upload');\n }\n\n if ('onprogress' in xhr) {\n xhr.onprogress = handleProgress('download');\n }\n\n function handleProgress(stage) {\n return function (event) {\n var percent = event.lengthComputable ? event.loaded / event.total * 100 : -1;\n context.channels.progress.publish({\n stage: stage,\n percent: percent,\n total: event.total,\n loaded: event.loaded,\n lengthComputable: event.lengthComputable\n });\n };\n }\n }\n };\n};\n//# sourceMappingURL=browser-progress.js.map","\"use strict\";\n\nmodule.exports = require('./node-progress');\n//# sourceMappingURL=index.js.map","// ISC @ Julien Fontanet\n\n\"use strict\";\n\n// ===================================================================\n\nvar construct = typeof Reflect !== \"undefined\" ? Reflect.construct : undefined;\nvar defineProperty = Object.defineProperty;\n\n// -------------------------------------------------------------------\n\nvar captureStackTrace = Error.captureStackTrace;\nif (captureStackTrace === undefined) {\n captureStackTrace = function captureStackTrace(error) {\n var container = new Error();\n\n defineProperty(error, \"stack\", {\n configurable: true,\n get: function getStack() {\n var stack = container.stack;\n\n // Replace property with value for faster future accesses.\n defineProperty(this, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n\n return stack;\n },\n set: function setStack(stack) {\n defineProperty(error, \"stack\", {\n configurable: true,\n value: stack,\n writable: true,\n });\n },\n });\n };\n}\n\n// -------------------------------------------------------------------\n\nfunction BaseError(message) {\n if (message !== undefined) {\n defineProperty(this, \"message\", {\n configurable: true,\n value: message,\n writable: true,\n });\n }\n\n var cname = this.constructor.name;\n if (cname !== undefined && cname !== this.name) {\n defineProperty(this, \"name\", {\n configurable: true,\n value: cname,\n writable: true,\n });\n }\n\n captureStackTrace(this, this.constructor);\n}\n\nBaseError.prototype = Object.create(Error.prototype, {\n // See: https://github.com/JsCommunity/make-error/issues/4\n constructor: {\n configurable: true,\n value: BaseError,\n writable: true,\n },\n});\n\n// -------------------------------------------------------------------\n\n// Sets the name of a function if possible (depends of the JS engine).\nvar setFunctionName = (function() {\n function setFunctionName(fn, name) {\n return defineProperty(fn, \"name\", {\n configurable: true,\n value: name,\n });\n }\n try {\n var f = function() {};\n setFunctionName(f, \"foo\");\n if (f.name === \"foo\") {\n return setFunctionName;\n }\n } catch (_) {}\n})();\n\n// -------------------------------------------------------------------\n\nfunction makeError(constructor, super_) {\n if (super_ == null || super_ === Error) {\n super_ = BaseError;\n } else if (typeof super_ !== \"function\") {\n throw new TypeError(\"super_ should be a function\");\n }\n\n var name;\n if (typeof constructor === \"string\") {\n name = constructor;\n constructor =\n construct !== undefined\n ? function() {\n return construct(super_, arguments, this.constructor);\n }\n : function() {\n super_.apply(this, arguments);\n };\n\n // If the name can be set, do it once and for all.\n if (setFunctionName !== undefined) {\n setFunctionName(constructor, name);\n name = undefined;\n }\n } else if (typeof constructor !== \"function\") {\n throw new TypeError(\"constructor should be either a string or a function\");\n }\n\n // Also register the super constructor also as `constructor.super_` just\n // like Node's `util.inherits()`.\n //\n // eslint-disable-next-line dot-notation\n constructor.super_ = constructor[\"super\"] = super_;\n\n var properties = {\n constructor: {\n configurable: true,\n value: constructor,\n writable: true,\n },\n };\n\n // If the name could not be set on the constructor, set it on the\n // prototype.\n if (name !== undefined) {\n properties.name = {\n configurable: true,\n value: name,\n writable: true,\n };\n }\n constructor.prototype = Object.create(super_.prototype, properties);\n\n return constructor;\n}\nexports = module.exports = makeError;\nexports.BaseError = BaseError;\n","\"use strict\";\n\nvar makeError = require('make-error');\n\nvar assign = require('object-assign');\n\nfunction ClientError(res) {\n var props = extractErrorProps(res);\n ClientError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction ServerError(res) {\n var props = extractErrorProps(res);\n ServerError.super.call(this, props.message);\n assign(this, props);\n}\n\nfunction extractErrorProps(res) {\n var body = res.body;\n var props = {\n response: res,\n statusCode: res.statusCode,\n responseBody: stringifyBody(body, res)\n }; // API/Boom style errors ({statusCode, error, message})\n\n if (body.error && body.message) {\n props.message = \"\".concat(body.error, \" - \").concat(body.message);\n return props;\n } // Query/database errors ({error: {description, other, arb, props}})\n\n\n if (body.error && body.error.description) {\n props.message = body.error.description;\n props.details = body.error;\n return props;\n } // Other, more arbitrary errors\n\n\n props.message = body.error || body.message || httpErrorMessage(res);\n return props;\n}\n\nfunction httpErrorMessage(res) {\n var statusMessage = res.statusMessage ? \" \".concat(res.statusMessage) : '';\n return \"\".concat(res.method, \"-request to \").concat(res.url, \" resulted in HTTP \").concat(res.statusCode).concat(statusMessage);\n}\n\nfunction stringifyBody(body, res) {\n var contentType = (res.headers['content-type'] || '').toLowerCase();\n var isJson = contentType.indexOf('application/json') !== -1;\n return isJson ? JSON.stringify(body, null, 2) : body;\n}\n\nmakeError(ClientError);\nmakeError(ServerError);\nexports.ClientError = ClientError;\nexports.ServerError = ServerError;","\"use strict\";\n\nmodule.exports = [];","\"use strict\";\n\n/* eslint-disable no-empty-function, no-process-env */\nvar getIt = require('get-it');\n\nvar assign = require('object-assign');\n\nvar observable = require('get-it/lib/middleware/observable');\n\nvar jsonRequest = require('get-it/lib/middleware/jsonRequest');\n\nvar jsonResponse = require('get-it/lib/middleware/jsonResponse');\n\nvar progress = require('get-it/lib/middleware/progress');\n\nvar _require = require('../util/observable'),\n Observable = _require.Observable;\n\nvar _require2 = require('./errors'),\n ClientError = _require2.ClientError,\n ServerError = _require2.ServerError;\n\nvar httpError = {\n onResponse: function 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};\nvar printWarnings = {\n onResponse: function onResponse(res) {\n var warn = res.headers['x-sanity-warning'];\n var warnings = Array.isArray(warn) ? warn : [warn];\n warnings.filter(Boolean).forEach(function (msg) {\n return console.warn(msg);\n }); // eslint-disable-line no-console\n\n return res;\n }\n}; // Environment-specific middleware.\n\nvar envSpecific = require('./nodeMiddleware');\n\nvar middleware = envSpecific.concat([printWarnings, jsonRequest(), jsonResponse(), progress(), httpError, observable({\n implementation: Observable\n})]);\nvar request = getIt(middleware);\n\nfunction httpRequest(options) {\n var requester = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : request;\n return requester(assign({\n maxRedirects: 0\n }, options));\n}\n\nhttpRequest.defaultRequester = request;\nhttpRequest.ClientError = ClientError;\nhttpRequest.ServerError = ServerError;\nmodule.exports = httpRequest;","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar projectHeader = 'X-Sanity-Project-ID';\n\nmodule.exports = function (config) {\n var overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var headers = {};\n var token = overrides.token || config.token;\n\n if (token) {\n headers.Authorization = \"Bearer \".concat(token);\n }\n\n if (!overrides.useGlobalApi && !config.useProjectHostname && config.projectId) {\n headers[projectHeader] = config.projectId;\n }\n\n var withCredentials = Boolean(typeof overrides.withCredentials === 'undefined' ? config.token || config.withCredentials : overrides.withCredentials);\n var 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: withCredentials\n });\n};","\"use strict\";\n\nvar BASE_URL = 'https://docs.sanity.io/help/';\n\nmodule.exports = function generateHelpUrl(slug) {\n return BASE_URL + slug;\n};","\"use strict\";\n\nmodule.exports = function (fn) {\n var didCall = false;\n var returnValue;\n return function () {\n if (didCall) {\n return returnValue;\n }\n\n returnValue = fn.apply(void 0, arguments);\n didCall = true;\n return returnValue;\n };\n};","\"use strict\";\n\nvar generateHelpUrl = require('./generateHelpUrl');\n\nvar once = require('./util/once');\n\nvar createWarningPrinter = function createWarningPrinter(message) {\n return (// eslint-disable-next-line no-console\n once(function () {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_console = console).warn.apply(_console, [message.join(' ')].concat(args));\n })\n );\n};\n\nexports.printCdnWarning = createWarningPrinter(['You are not using the Sanity CDN. That means your data is always fresh, but the CDN is faster and', \"cheaper. Think about it! For more info, see \".concat(generateHelpUrl('js-client-cdn-configuration'), \".\"), 'To hide this warning, please set the `useCdn` option to either `true` or `false` when creating', 'the client.']);\nexports.printBrowserTokenWarning = createWarningPrinter(['You have configured Sanity client to use a token in the browser. This may cause unintentional security issues.', \"See \".concat(generateHelpUrl('js-client-browser-token'), \" for more information and how to hide this warning.\")]);\nexports.printNoApiVersionSpecifiedWarning = createWarningPrinter(['Using the Sanity client without specifying an API version is deprecated.', \"See \".concat(generateHelpUrl('js-client-api-version'))]);","\"use strict\";\n\nvar assign = require('object-assign');\n\nvar generateHelpUrl = require('./generateHelpUrl');\n\nvar validate = require('./validators');\n\nvar warnings = require('./warnings');\n\nvar defaultCdnHost = 'apicdn.sanity.io';\nvar defaultConfig = {\n apiHost: 'https://api.sanity.io',\n apiVersion: '1',\n useProjectHostname: true,\n isPromiseAPI: true\n};\nvar LOCALHOSTS = ['localhost', '127.0.0.1', '0.0.0.0'];\n\nvar isLocal = function isLocal(host) {\n return LOCALHOSTS.indexOf(host) !== -1;\n};\n\nexports.defaultConfig = defaultConfig; // eslint-disable-next-line complexity\n\nexports.initConfig = function (config, prevConfig) {\n var specifiedConfig = assign({}, prevConfig, config);\n\n if (!specifiedConfig.apiVersion) {\n warnings.printNoApiVersionSpecifiedWarning();\n }\n\n var newConfig = assign({}, defaultConfig, specifiedConfig);\n var projectBased = newConfig.useProjectHostname;\n\n if (typeof Promise === 'undefined') {\n var helpUrl = generateHelpUrl('js-client-promise-polyfill');\n throw new Error(\"No native Promise-implementation found, polyfill needed - see \".concat(helpUrl));\n }\n\n if (projectBased && !newConfig.projectId) {\n throw new Error('Configuration must contain `projectId`');\n }\n\n var isBrowser = typeof window !== 'undefined' && window.location && window.location.hostname;\n var 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 ? validate.requestTag(newConfig.requestTagPrefix).replace(/\\.+$/, '') : undefined;\n }\n\n newConfig.apiVersion = \"\".concat(newConfig.apiVersion).replace(/^v/, '');\n newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost;\n newConfig.useCdn = Boolean(newConfig.useCdn) && !newConfig.withCredentials;\n exports.validateApiVersion(newConfig.apiVersion);\n var hostParts = newConfig.apiHost.split('://', 2);\n var protocol = hostParts[0];\n var host = hostParts[1];\n var cdnHost = newConfig.isDefaultApi ? defaultCdnHost : host;\n\n if (newConfig.useProjectHostname) {\n newConfig.url = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(host, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(cdnHost, \"/v\").concat(newConfig.apiVersion);\n } else {\n newConfig.url = \"\".concat(newConfig.apiHost, \"/v\").concat(newConfig.apiVersion);\n newConfig.cdnUrl = newConfig.url;\n }\n\n return newConfig;\n};\n\nexports.validateApiVersion = function validateApiVersion(apiVersion) {\n if (apiVersion === '1' || apiVersion === 'X') {\n return;\n }\n\n var apiDate = new Date(apiVersion);\n var apiVersionValid = /^\\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};","\"use strict\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar assign = require('object-assign');\n\nvar _require = require('./util/observable'),\n Observable = _require.Observable,\n map = _require.map,\n filter = _require.filter;\n\nvar Patch = require('./data/patch');\n\nvar Transaction = require('./data/transaction');\n\nvar dataMethods = require('./data/dataMethods');\n\nvar DatasetsClient = require('./datasets/datasetsClient');\n\nvar ProjectsClient = require('./projects/projectsClient');\n\nvar AssetsClient = require('./assets/assetsClient');\n\nvar UsersClient = require('./users/usersClient');\n\nvar AuthClient = require('./auth/authClient');\n\nvar httpRequest = require('./http/request');\n\nvar getRequestOptions = require('./http/requestOptions');\n\nvar _require2 = require('./config'),\n defaultConfig = _require2.defaultConfig,\n initConfig = _require2.initConfig;\n\nvar validate = require('./validators');\n\nvar toPromise = function toPromise(observable) {\n return observable.toPromise();\n};\n\nfunction SanityClient() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;\n\n if (!(this instanceof SanityClient)) {\n return new SanityClient(config);\n }\n\n this.config(config);\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 var observableConfig = assign({}, this.clientConfig, {\n isPromiseAPI: false\n });\n this.observable = new SanityClient(observableConfig);\n }\n}\n\nassign(SanityClient.prototype, dataMethods);\nassign(SanityClient.prototype, {\n clone: function clone() {\n return new SanityClient(this.config());\n },\n config: function config(newConfig) {\n if (typeof newConfig === 'undefined') {\n return assign({}, this.clientConfig);\n }\n\n if (this.clientConfig && this.clientConfig.allowReconfigure === false) {\n throw new Error('Existing client instance cannot be reconfigured - use `withConfig(newConfig)` to return a new client');\n }\n\n if (this.observable) {\n var observableConfig = assign({}, newConfig, {\n isPromiseAPI: false\n });\n this.observable.config(observableConfig);\n }\n\n this.clientConfig = initConfig(newConfig, this.clientConfig || {});\n return this;\n },\n withConfig: function withConfig(newConfig) {\n return new SanityClient(_objectSpread(_objectSpread({}, this.config()), newConfig));\n },\n getUrl: function getUrl(uri) {\n var useCdn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var base = useCdn ? this.clientConfig.cdnUrl : this.clientConfig.url;\n return \"\".concat(base, \"/\").concat(uri.replace(/^\\//, ''));\n },\n isPromiseAPI: function isPromiseAPI() {\n return this.clientConfig.isPromiseAPI;\n },\n _requestObservable: function _requestObservable(options) {\n var _this = this;\n\n var uri = options.url || options.uri; // 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\n var canUseCdn = typeof options.canUseCdn === 'undefined' ? ['GET', 'HEAD'].indexOf(options.method || 'GET') >= 0 && uri.indexOf('/data/') === 0 : options.canUseCdn;\n var useCdn = this.clientConfig.useCdn && canUseCdn;\n var tag = options.tag && this.clientConfig.requestTagPrefix ? [this.clientConfig.requestTagPrefix, options.tag].join('.') : options.tag || this.clientConfig.requestTagPrefix;\n\n if (tag) {\n options.query = _objectSpread({\n tag: validate.requestTag(tag)\n }, options.query);\n }\n\n var reqOptions = getRequestOptions(this.clientConfig, assign({}, options, {\n url: this.getUrl(uri, useCdn)\n }));\n return new Observable(function (subscriber) {\n return httpRequest(reqOptions, _this.clientConfig.requester).subscribe(subscriber);\n });\n },\n request: function request(options) {\n var observable = this._requestObservable(options).pipe(filter(function (event) {\n return event.type === 'response';\n }), map(function (event) {\n return event.body;\n }));\n\n return this.isPromiseAPI() ? toPromise(observable) : observable;\n }\n});\nSanityClient.Patch = Patch;\nSanityClient.Transaction = Transaction;\nSanityClient.ClientError = httpRequest.ClientError;\nSanityClient.ServerError = httpRequest.ServerError;\nSanityClient.requester = httpRequest.defaultRequester;\nmodule.exports = SanityClient;","import sanityClient from '@sanity/client';\n\nexport const projectParams = {\n apiVersion: 'v2021-10-21',\n dataset: import.meta.env.PUBLIC_SANITY_DATASET || '',\n projectId: import.meta.env.PUBLIC_SANITY_ID || '',\n useCdn: true,\n token: null,\n};\n\n// useCdn == true gives fast, cheap responses using a globally distributed cache.\n// Set this to false if your application require the freshest possible\n// data always (potentially slightly slower and a bit more expensive).\nexport const client = sanityClient(projectParams);\n"],"names":["getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","i","order2","n","test3","letter","objectAssign","target","source","from","to","symbols","s","key","isFunction_1","isFunction","x","config","_enable_super_gross_mode_that_will_cause_bad_things","value","error","hostReportError_1","hostReportError","err","Observer","config_1","require$$0","require$$1","isArray","isObject_1","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","errors","Subscription_1","isArray_1","require$$2","UnsubscriptionError_1","require$$3","Subscription","unsubscribe","_a","_parentOrParents","_ctorUnsubscribe","_unsubscribe","_subscriptions","index","parent_1","e","flattenUnsubscriptionErrors","len","sub","teardown","subscription","tmp","subscriptions","subscriptionIndex","empty","errs","exports","__extends","this","extendStatics","d","b","p","__","Subscriber_1","Observer_1","rxSubscriber_1","require$$4","require$$5","Subscriber","_super","destinationOrNext","complete","_this","SafeSubscriber","next","subscriber","_parentSubscriber","observerOrNext","context","useDeprecatedSynchronousErrorHandling","wrappedComplete","fn","parent","canReportError_1","canReportError","observer","closed_1","destination","isStopped","toSubscriber_1","toSubscriber","nextOrObserver","observable","identity_1","identity","pipe_1","pipe","fns","_i","pipeFromArray","input","prev","Observable_1","observable_1","Observable","subscribe","operator","sink","promiseCtor","getPromiseCtor","resolve","reject","operations","filter_1","filter","predicate","thisArg","FilterOperator","FilterSubscriber","result","map_1","map","project","MapOperator","MapSubscriber","_require","_require2","_require3","getSelection","sel","selectionOpts","_typeof","obj","VALID_ASSET_TYPES","VALID_INSERT_LOCATIONS","name","id","type","op","doc","at","selector","items","signature","valid","loc","tag","_defineProperty","assign","validate","validateObject","validateInsert","Patch","selection","client","props","attrs","_this$_assign","start","deleteCount","delAll","startIndex","delCount","delRange","rangeSelector","rev","options","returnFirst","opts","merge","patch","validators","defaultMutateOptions","Transaction","transactionId","documentId","patchOps","isBuilder","isPatch","mut","transaction","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","enc","encodeQueryString","_ref","query","_ref$params","params","_ref$options","q","base","qString","qs","param","option","global","setTimeout","clearTimeout","XMLHttpRequest","XDomainRequest","ActiveXObject","NativeEventSource","document","Promise","fetch","Response","TextDecoder","TextEncoder","AbortController","event","C","F","originalFetch2","url","signal","response","reader","TextDecoderPolyfill","octets","codePoint","shift","octetsCount","bitsNeeded","REPLACER","string","octet","supportsStreamOption","k","XHRWrapper","xhr","method","that","state","timeout","silent","onStart","status","statusText","contentType","onProgress","responseText","onFinish","onReadyStateChange","onTimeout","error1","toLowerCase","c","HeadersPolyfill","all","array","line","parts","XHRTransport","onStartCallback","onProgressCallback","onFinishCallback","withCredentials","headers","offset","chunk","HeadersWrapper","FetchTransport","controller","textDecoder","readNextChunk","EventTarget","throwError","typeListeners","length","listener","listeners","found","filtered","Event","MessageEvent","ConnectionEvent","ErrorEvent","WAITING","CONNECTING","OPEN","CLOSED","AFTER_CR","FIELD_START","FIELD","VALUE_START","VALUE","contentTypeRegExp","MINIMUM_DURATION","MAXIMUM_DURATION","parseDuration","def","clampDuration","fire","f","EventSourcePolyfill","getBestXHRTransport","isFetchSupported","es","lastEventIdQueryParameterName","initialRetry","heartbeatTimeout","lastEventId","retry","wasActivity","textLength","TransportOption","transport","abortController","currentState","dataBuffer","lastEventIdBuffer","eventTypeBuffer","textBuffer","fieldStart","valueStart","message","close","textChunk","position","field","nextHeartbeat","requestURL","paramName","requestHeaders","R","factory","v","module","evs","browser","pick","prop","defaults","ownKeys","object","enumerableOnly","keys","sym","_objectSpread","polyfilledEventSource","MAX_URL_LENGTH","EventSource","possibleOptions","defaultOptions","listen","_this$clientConfig","token","requestTagPrefix","listenOpts","uri","listenFor","shouldEmitReconnect","esOptions","getEventSource","reconnectTimer","stopped","onError","emitReconnect","open","onChannelError","cooerceError","onMessage","evt","parseEvent","onDisconnect","stop","data","extractErrorMessage","require$$6","require$$7","excludeFalsey","defValue","getMutationQuery","isResponse","getBody","indexBy","docs","attr","indexed","toPromise","getQuerySizeLimit","dataMethods","operation","path","catalog","baseUri","mapResponse","res","ids","mutations","muts","endpoint","body","request","isMutation","isQuery","strQuery","useGet","stringQuery","reqOptions","results","mutation","DatasetsClient","datasetsClient","ProjectsClient","projectsClient","queryString","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","arr2","_arr","_n","_d","_s","_e","AssetsClient","optionsFromFile","file","assetType","meta","dataset","assetEndpoint","label","title","description","creditLine","filename","docId","ref","_id$split","_id$split2","assetId","size","format","_this$client$clientCo","projectId","assetsClient","UsersClient","usersClient","AuthClient","authClient","nanoPubsub","subscribers","publish","idx","middlewareReducer","middleware","applyMiddleware","hook","defaultValue","bailEarly","_len","args","_key","handler","requiresPort","port","protocol","has","undef","decode","encode","querystring","parser","part","querystringify","prefix","pairs","querystringify_1","required","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","str","rules","address","isSpecial","ignore","lolcation","globalVar","location","finaldestination","Url","scheme","extractProtocol","match","forwardSlashes","otherSlashes","slashesCount","rest","relative","last","unshift","up","extracted","parse","instruction","instructions","set","char","ins","toString","stringify","host","urlParse","isReactNative","defaultOptionsProcessor","normalizeTimeout","removeUndefined","stringifyQueryString","push","item","time","delay","validUrl","defaultOptionsValidator","regex","urlParser","sameOrigin","uri1","uri2","ieMode","url1","url2","url1Port","url2Port","trim","arg","parseHeaders","headersArr","row","FetchXhr","ctrl","textBody","resBody","fetchXhr","noop","win","adapter","XmlHttpRequest","hasXhr2","XDR","CrossDomainRequest","browserRequest","callback","timers","cors","injectedResponse","cbTimer","cancel","isXdr","delays","aborted","loaded","timedOut","stopTimers","loadEvent","resetTimers","onLoad","timeoutRequest","abort","code","force","reduceResponse","statusCode","statusMessage","pubsub","processOptions","validateOptions","httpRequester","channelNames","middlehooks","lib","createRequester","initMiddleware","httpRequest","loadedMiddleware","ware","channels","ongoingRequest","ctx","onResponse","returnValue","reqErr","newMiddleware","getIt","globalModule","isobject","isObjectObject","isPlainObject","ctor","prot","serializeTypes","isBuffer","jsonRequest","isStream","shouldSerialize","jsonResponse","shouldDecode","tryParse","browserProgress","handleProgress","stage","percent","progress","construct","defineProperty","captureStackTrace","container","stack","BaseError","cname","setFunctionName","makeError","constructor","super_","properties","ClientError","extractErrorProps","ServerError","stringifyBody","httpErrorMessage","isJson","browserMiddleware","httpError","printWarnings","warn","warnings","msg","envSpecific","require$$8","requester","request_1","projectHeader","requestOptions","overrides","BASE_URL","generateHelpUrl","slug","once","didCall","createWarningPrinter","_console","defaultCdnHost","defaultConfig","LOCALHOSTS","isLocal","prevConfig","specifiedConfig","newConfig","projectBased","helpUrl","isBrowser","isLocalhost","hostParts","cdnHost","apiVersion","apiDate","apiVersionValid","require$$9","require$$10","getRequestOptions","require$$11","require$$12","initConfig","require$$13","SanityClient","observableConfig","useCdn","canUseCdn","sanityClient","projectParams"],"mappings":"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"}