{"version":3,"sources":["webpack://_N_E/./node_modules/is-plain-object/index.js","webpack://_N_E/./node_modules/@sanity/client/lib/sanityClient.js","webpack://_N_E/./node_modules/get-it/lib/middleware/progress/index.js","webpack://_N_E/./node_modules/rxjs/internal/operators/defaultIfEmpty.js","webpack://_N_E/./node_modules/@sanity/client/lib/assets/assetsClient.js","webpack://_N_E/./node_modules/@sanity/observable/lib/SanityObservableMinimal.js","webpack://_N_E/./node_modules/@sanity/client/lib/config.js","webpack://_N_E/./node_modules/rxjs/internal/operators/filter.js","webpack://_N_E/./node_modules/@sanity/client/lib/users/usersClient.js","webpack://_N_E/./node_modules/rxjs/internal/operators/takeLast.js","webpack://_N_E/./node_modules/@rexxars/eventsource-polyfill/src/eventsource.js","webpack://_N_E/./node_modules/nano-pubsub/index.js","webpack://_N_E/./node_modules/get-it/lib/middleware/jsonRequest.js","webpack://_N_E/./node_modules/@sanity/observable/operators/filter.js","webpack://_N_E/./node_modules/rxjs/internal/util/pipe.js","webpack://_N_E/./node_modules/@sanity/observable/operators/reduce.js","webpack://_N_E/./node_modules/get-it/lib/util/global.js","webpack://_N_E/./node_modules/@sanity/client/lib/http/requestOptions.js","webpack://_N_E/./node_modules/@sanity/client/lib/util/pick.js","webpack://_N_E/./node_modules/get-it/lib/middleware/defaultOptionsProcessor.js","webpack://_N_E/./node_modules/rxjs/internal/Subscriber.js","webpack://_N_E/./node_modules/url-parse/index.js","webpack://_N_E/./node_modules/rxjs/internal/util/isObject.js","webpack://_N_E/./node_modules/rxjs/internal/Observer.js","webpack://_N_E/./node_modules/deep-assign/index.js","webpack://_N_E/./node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js","webpack://_N_E/./node_modules/@sanity/client/lib/projects/projectsClient.js","webpack://_N_E/./src/services/sanity/client.ts","webpack://_N_E/./src/api/cms/index.ts","webpack://_N_E/./node_modules/rxjs/internal/util/UnsubscriptionError.js","webpack://_N_E/./node_modules/@sanity/client/lib/util/getSelection.js","webpack://_N_E/./node_modules/@sanity/client/lib/http/errors.js","webpack://_N_E/./node_modules/rxjs/internal/util/hostReportError.js","webpack://_N_E/./node_modules/@sanity/generate-help-url/index.js","webpack://_N_E/./node_modules/rxjs/internal/Observable.js","webpack://_N_E/./node_modules/requires-port/index.js","webpack://_N_E/./node_modules/get-it/lib/middleware/jsonResponse.js","webpack://_N_E/./node_modules/@sanity/client/lib/validators.js","webpack://_N_E/./node_modules/rxjs/internal/util/toSubscriber.js","webpack://_N_E/./node_modules/@sanity/client/lib/http/queryString.js","webpack://_N_E/./node_modules/rxjs/internal/operators/reduce.js","webpack://_N_E/./node_modules/parse-headers/parse-headers.js","webpack://_N_E/./node_modules/@sanity/eventsource/browser.js","webpack://_N_E/./node_modules/get-it/lib/request/browser-request.js","webpack://_N_E/./node_modules/rxjs/internal/observable/empty.js","webpack://_N_E/./node_modules/make-error/index.js","webpack://_N_E/./node_modules/@sanity/image-url/lib/browser/image-url.umd.js","webpack://_N_E/./node_modules/get-it/lib/index.js","webpack://_N_E/./node_modules/groq/lib/groq.js","webpack://_N_E/./node_modules/@sanity/observable/operators/map.js","webpack://_N_E/./node_modules/get-it/lib/middleware/progress/browser-progress.js","webpack://_N_E/./node_modules/same-origin/index.js","webpack://_N_E/./node_modules/@sanity/client/lib/datasets/datasetsClient.js","webpack://_N_E/./node_modules/@sanity/client/lib/data/listen.js","webpack://_N_E/./node_modules/get-it/lib/middleware/observable.js","webpack://_N_E/./node_modules/@sanity/client/lib/http/browserMiddleware.js","webpack://_N_E/./node_modules/get-it/lib/middleware/defaultOptionsValidator.js","webpack://_N_E/./node_modules/@sanity/observable/minimal.js","webpack://_N_E/./node_modules/@sanity/client/lib/data/transaction.js","webpack://_N_E/./node_modules/rxjs/internal/util/isArray.js","webpack://_N_E/./node_modules/rxjs/internal/config.js","webpack://_N_E/./node_modules/querystringify/index.js","webpack://_N_E/./node_modules/is-obj/index.js","webpack://_N_E/./node_modules/rxjs/internal/symbol/rxSubscriber.js","webpack://_N_E/./node_modules/get-it/lib/request/index.js","webpack://_N_E/./node_modules/@sanity/client/lib/util/once.js","webpack://_N_E/./node_modules/get-it/lib/util/middlewareReducer.js","webpack://_N_E/./node_modules/rxjs/internal/util/isFunction.js","webpack://_N_E/./node_modules/rxjs/internal/operators/map.js","webpack://_N_E/./node_modules/isobject/index.js","webpack://_N_E/./node_modules/@sanity/client/lib/data/dataMethods.js","webpack://_N_E/./node_modules/@sanity/client/lib/util/defaults.js","webpack://_N_E/./node_modules/@sanity/client/lib/data/patch.js","webpack://_N_E/./node_modules/@sanity/client/lib/auth/authClient.js","webpack://_N_E/./node_modules/rxjs/internal/operators/scan.js","webpack://_N_E/./node_modules/get-it/index.js","webpack://_N_E/./node_modules/@sanity/client/lib/http/request.js","webpack://_N_E/./node_modules/@sanity/client/lib/data/encodeQueryString.js","webpack://_N_E/./node_modules/rxjs/internal/util/identity.js","webpack://_N_E/./node_modules/rxjs/internal/util/canReportError.js","webpack://_N_E/./node_modules/rxjs/internal/Subscription.js","webpack://_N_E/./node_modules/rxjs/internal/symbol/observable.js"],"names":["isObject","isObjectObject","o","Object","prototype","toString","call","module","exports","ctor","prot","constructor","hasOwnProperty","assign","filter","map","Patch","Transaction","dataMethods","DatasetsClient","ProjectsClient","AssetsClient","UsersClient","AuthClient","httpRequest","getRequestOptions","_require3","defaultConfig","initConfig","SanityClient","config","arguments","length","undefined","this","assets","datasets","projects","users","auth","clientConfig","isPromiseAPI","observableConfig","observable","clone","newConfig","getUrl","uri","canUseCdn","base","cdnUrl","url","concat","replace","_requestObservable","options","useCdn","indexOf","method","reqOptions","requester","request","pipe","event","type","body","toPromise","ClientError","ServerError","defaultRequester","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","__","create","defineProperty","value","Subscriber_1","defaultIfEmpty","defaultValue","source","lift","DefaultIfEmptyOperator","subscriber","subscribe","DefaultIfEmptySubscriber","_super","destination","_this","isEmpty","_next","next","_complete","complete","Subscriber","_slicedToArray","arr","i","isArray","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","done","push","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","n","slice","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","queryString","validators","client","toDocument","document","enumerable","get","console","warn","optionsFromFile","opts","file","window","File","filename","preserveFilename","contentType","upload","assetType","validateAssetType","meta","extract","dataset","hasDataset","assetEndpoint","label","title","description","creditLine","query","sourceId","id","sourceName","sourceUrl","timeout","headers","delete","docId","_id","getImageUrl","ref","_ref","Error","_id$split2","split","assetId","size","format","_this$client$clientCo","projectId","qs","Observable","reduce","SanityObservableMinimal","apply","createDeprecatedMemberOp","op","hasWarned","writable","configurable","operator","generateHelpUrl","validate","once","apiHost","useProjectHostname","gradientMode","LOCALHOSTS","createWarningPrinter","message","join","printCdnWarning","printBrowserTokenWarning","printCdnTokenWarning","prevConfig","projectBased","Promise","helpUrl","namespace","isBrowser","location","hostname","isLocalhost","host","isLocal","token","ignoreBrowserTokenWarning","isDefaultApi","Boolean","withCredentials","hostParts","protocol","cdnHost","predicate","thisArg","FilterOperator","FilterSubscriber","count","result","error","getById","ArgumentOutOfRangeError_1","empty_1","takeLast","empty","TakeLastOperator","total","ArgumentOutOfRangeError","TakeLastSubscriber","ring","idx","self","EventSource","SyntaxError","URL","setOptions","evs","setTimeout","poll","CONNECTING","OPEN","CLOSED","defaultOptions","loggingEnabled","loggingPrefix","interval","bufferSizeLimit","silentTimeout","getArgs","evs_buffer_size_limit","xhrHeaders","Accept","option","defaults","log","readyState","cleanup","cursor","cache","_xhr","XHR","resetNoActivityTimer","dispatchEvent","data","pollAgain","_pollTimer","clearInterval","_noActivityTimer","abort","close","_onxhrdata","isReady","hasError","buffer","getBuffer","substring","lastMessageIndex","newcursor","toparse","parseStream","isDone","chunk","j","eventType","datas","line","retry","events","normalizeToLF","parts","trimWhiteSpace","parseInt","isNaN","lastEventId","MessageEvent","origin","handlers","addEventListener","handler","removeEventListener","splice","_noactivityTimer","onerror","onmessage","onopen","urlWithParams","baseURL","params","encodedArgs","key","urlarg","urlize","encodeURIComponent","text","ln2","lastIndexOf","lr2","lrln2","Math","max","str","reTrim","isOldIE","isPolyfill","evs_preamble","XDomainRequest","_request","onprogress","_ready","onload","_loaded","_failed","ontimeout","reqGetArgs","defaultArgs","evs_last_event_id","open","send","useXDomainRequest","rv","responseText","XMLHttpRequest","onreadystatechange","status","header","setRequestHeader","bubbles","cancelBubble","cancelable","responseType","subscribers","publish","_typeof","obj","objectAssign","isPlainObject","serializeTypes","processOptions","isBuffer","JSON","stringify","identity_1","pipeFromArray","fns","identity","input","prev","fn","global","projectHeader","overrides","Authorization","useGlobalApi","json","props","selection","prop","urlParse","isReactNative","navigator","product","has","stringifyQueryString","pairs","val","forEach","item","normalizeTimeout","time","connect","socket","delay","Number","target","removeUndefined","toUpperCase","isFunction_1","Observer_1","Subscription_1","rxSubscriber_1","config_1","hostReportError_1","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","add","SafeSubscriber","rxSubscriber","_error","unsubscribe","closed","_unsubscribeAndRecycle","_parentOrParents","Subscription","_parentSubscriber","observerOrNext","context","isFunction","bind","_context","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","hostReportError","wrappedComplete","parent","_unsubscribe","required","slashes","protocolre","left","RegExp","trimLeft","rules","address","NaN","ignore","hash","lolcation","loc","finaldestination","Url","unescape","pathname","href","extractProtocol","match","exec","toLowerCase","rest","parser","relative","extracted","parse","instruction","index","instructions","charAt","path","last","unshift","up","resolve","port","username","password","set","part","pop","char","ins","x","isObj","propIsEnumerable","propertyIsEnumerable","toObject","assignKey","to","getOwnPropertySymbols","symbols","s","ArgumentOutOfRangeErrorImpl","list","process","String","isProd","sanityClient","previewClient","getClient","preview","internalLink","groq","downloadResourceByTagQuery","upcomingEventFields","upcomingEventById","upcomingEventsByRegionQuery","siteSettingsQuery","pageFields","slug","a","fetch","page","getPageBySlug","getDocument","getDownloadResourceByTag","tag","downloadResources","getUpcomingEventsByRegion","region","date","upcomingEvents","getUpcomingEventById","upcomingEvent","getSiteSettings","settings","imageBuilder","imageUrlBuilder","defaultClient","urlFor","image","UnsubscriptionErrorImpl","errors","UnsubscriptionError","sel","selectionOpts","makeError","res","extractErrorProps","super","response","statusCode","responseBody","stringifyBody","details","statusMessage","httpErrorMessage","canReportError_1","toSubscriber_1","observable_1","pipe_1","_isScalar","_subscribe","sink","toSubscriber","_trySubscribe","canReportError","promiseCtor","getPromiseCtor","reject","subscription","operations","tryParse","onResponse","shouldDecode","force","VALID_ASSET_TYPES","VALID_INSERT_LOCATIONS","validateObject","requireDocumentId","doc","validateDocumentId","validateInsert","at","selector","items","signature","valid","nextOrObserver","scan_1","takeLast_1","defaultIfEmpty_1","accumulator","seed","scan","acc","trim","string","arg","headersArr","row","sameOrigin","parseHeaders","win","XmlHttpRequest","callback","applyMiddleware","timers","cors","injectedResponse","adapter","cbTimer","clearTimeout","xhr","isXdr","aborted","loaded","timedOut","onError","onabort","delays","stopTimers","timeoutRequest","resetTimers","statusText","getAllResponseHeaders","reduceResponse","onLoad","rawBody","code","channels","isNetworkError","Observable_1","EMPTY","scheduler","schedule","emptyScheduled","construct","Reflect","captureStackTrace","BaseError","cname","container","stack","setFunctionName","f","_","super_","properties","_extends","_createForOfIteratorHelperLoose","example","parseAssetId","_ref$split","dimensionString","_dimensionString$spli","width","height","isFinite","isRef","src","isAsset","isAssetStub","asset","parseSource","isUrl","urlToId","img","crop","hotspot","applyDefaults","top","bottom","right","y","SPEC_NAME_TO_URL_NAME_MAPPINGS","urlForImage","spec","cropLeft","round","cropTop","hotSpotVerticalRadius","hotSpotHorizontalRadius","hotSpotCenterX","hotSpotCenterY","rect","focalPoint","ignoreImageParams","fit","specToImageUrl","baseUrl","_spec$rect","bg","flip","flipHorizontal","flipVertical","mapping","specName","param","cropRect","imgWidth","imgHeight","desiredAspectRatio","_width","_height","_left","_top","floor","validFits","validCrops","validAutoModes","isSanityClientLike","rewriteSpecName","_step","_iterator","entry","urlBuilder","_client$clientConfig","apiUrl","ImageUrlBuilder","_proto","withOptions","newOptions","_dataset","_projectId","_bg","dpr","_dpr","maxWidth","_maxWidth","minWidth","_minWidth","maxHeight","_maxHeight","minHeight","_minHeight","blur","_blur","sharpen","_sharpen","_format","invert","_invert","orientation","_orientation","quality","_quality","forceDownload","download","saturation","_saturation","auto","pad","_pad","factory","pubsub","middlewareReducer","validateOptions","channelNames","middlehooks","createRequester","initMiddleware","loadedMiddleware","middleware","ware","ongoingRequest","ctx","reqErr","returnValue","use","newMiddleware","onReturn","strings","_len","keys","_key","lastIndex","onRequest","evt","handleProgress","stage","percent","lengthComputable","progress","uri1","uri2","ieMode","url1","url2","url1Port","url2Port","proto","_modify","edit","polyfilledEventSource","pick","encodeQueryString","tokenWarning","printTokenWarning","isWindowEventSource","possibleOptions","includeResult","parseEvent","cooerceError","extractErrorMessage","listenOpts","_this$clientConfig","getDataUrl","listenFor","shouldEmitReconnect","esOptions","observer","reconnectTimer","es","getEventSource","stopped","onChannelError","onMessage","onDisconnect","implementation","validUrl","_defineProperty","defaultMutateOptions","returnDocuments","transactionId","trxId","_add","createIfNotExists","createOrReplace","documentId","patch","patchOps","isBuilder","serialize","toJSON","commit","mutate","reset","mut","_enable_super_gross_mode_that_will_cause_bad_things","decode","decodeURIComponent","e","encode","prefix","undef","random","$$rxSubscriber","didCall","hook","args","bailEarly","project","MapOperator","MapSubscriber","getSelection","listen","excludeFalsey","defValue","getMutationQuery","returnIds","visibility","isResponse","getBody","operation","catalog","baseUri","mapResponse","filterResponse","_dataRequest","documents","getDocuments","ids","docs","attr","indexed","_create","dataRequest","mutations","muts","transaction","endpoint","isMutation","strQuery","useGet","stringQuery","returnFirst","results","mutation","deepAssign","merge","_assign","diffMatchPatch","unset","attrs","setIfMissing","_set","$","inc","dec","insert","_this$_assign","append","prepend","start","deleteCount","startIndex","delCount","delRange","rangeSelector","ifRevisionId","rev","ifRevisionID","getLoginProviders","logout","hasSeed","ScanOperator","ScanSubscriber","_seed","_tryNext","getIt","jsonRequest","jsonResponse","_require","httpError","maxRedirects","enc","_ref$params","_ref$options","qString","_a","closed_1","isArray_1","isObject_1","UnsubscriptionError_1","_subscriptions","_ctorUnsubscribe","remove","flattenUnsubscriptionErrors","sub","teardown","tmp","subscriptions","subscriptionIndex","errs"],"mappings":"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","file":"static/chunks/1f03e7c48ea5fef691c818637eb5ac501296caa6.a066dba69aae306f07bc.js","sourcesContent":["/*!\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\nvar assign = require('object-assign');\n\nvar _require = require('@sanity/observable/operators/filter'),\n filter = _require.filter;\n\nvar _require2 = require('@sanity/observable/operators/map'),\n map = _require2.map;\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 _require3 = require('./config'),\n defaultConfig = _require3.defaultConfig,\n initConfig = _require3.initConfig;\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.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 getUrl: function getUrl(uri) {\n var canUseCdn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var base = canUseCdn ? 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 uri = options.url || options.uri;\n var canUseCdn = this.clientConfig.useCdn && ['GET', 'HEAD'].indexOf(options.method || 'GET') >= 0 && uri.indexOf('/data/') === 0;\n var reqOptions = getRequestOptions(this.clientConfig, assign({}, options, {\n url: this.getUrl(uri, canUseCdn)\n }));\n return httpRequest(reqOptions, this.clientConfig.requester);\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;","'use strict';\n\nmodule.exports = require('./node-progress');\n//# sourceMappingURL=index.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 defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nexports.defaultIfEmpty = defaultIfEmpty;\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n __extends(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map","\"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) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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('@sanity/observable/operators/map'),\n map = _require.map;\n\nvar _require2 = require('@sanity/observable/operators/filter'),\n filter = _require2.filter;\n\nvar queryString = require('../http/queryString');\n\nvar validators = require('../validators');\n\nfunction AssetsClient(client) {\n this.client = client;\n}\n\nfunction toDocument(body) {\n // todo: rewrite to just return body.document in a while\n var document = body.document;\n Object.defineProperty(document, 'document', {\n enumerable: false,\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The promise returned from client.asset.upload(...) now resolves with the asset document');\n return document;\n }\n });\n return document;\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 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 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 toDocument(event.body);\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 _require = require('rxjs/internal/Observable'),\n Observable = _require.Observable;\n\nvar assign = require('object-assign');\n\nvar _require2 = require('../operators/map'),\n map = _require2.map;\n\nvar _require3 = require('../operators/filter'),\n filter = _require3.filter;\n\nvar _require4 = require('../operators/reduce'),\n reduce = _require4.reduce;\n/*\n A minimal rxjs based observable that align as closely as possible with the current es-observable spec,\n without the static factory methods\n */\n\n\nfunction SanityObservableMinimal() {\n Observable.apply(this, arguments); // eslint-disable-line prefer-rest-params\n}\n\nSanityObservableMinimal.prototype = Object.create(assign(Object.create(null), Observable.prototype));\nObject.defineProperty(SanityObservableMinimal.prototype, 'constructor', {\n value: SanityObservableMinimal,\n enumerable: false,\n writable: true,\n configurable: true\n});\n\nSanityObservableMinimal.prototype.lift = function lift(operator) {\n var observable = new SanityObservableMinimal();\n observable.source = this;\n observable.operator = operator;\n return observable;\n};\n\nfunction createDeprecatedMemberOp(name, op) {\n var hasWarned = false;\n return function deprecatedOperator() {\n if (!hasWarned) {\n hasWarned = true;\n console.warn(new Error(\"Calling observable.\".concat(name, \"(...) is deprecated. Please use observable.pipe(\").concat(name, \"(...)) instead\")));\n }\n\n return this.pipe(op.apply(this, arguments));\n };\n}\n\nSanityObservableMinimal.prototype.map = createDeprecatedMemberOp('map', map);\nSanityObservableMinimal.prototype.filter = createDeprecatedMemberOp('filter', filter);\nSanityObservableMinimal.prototype.reduce = createDeprecatedMemberOp('filter', reduce);\nmodule.exports = SanityObservableMinimal;","\"use strict\";\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar assign = require('object-assign');\n\nvar validate = require('./validators');\n\nvar once = require('./util/once');\n\nvar defaultCdnHost = 'apicdn.sanity.io';\nvar defaultConfig = {\n apiHost: 'https://api.sanity.io',\n useProjectHostname: true,\n gradientMode: false,\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}; // eslint-disable-next-line no-console\n\n\nvar createWarningPrinter = function createWarningPrinter(message) {\n return once(function () {\n return console.warn(message.join(' '));\n });\n};\n\nvar 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.']);\nvar 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.\")]);\nvar printCdnTokenWarning = createWarningPrinter(['You have set `useCdn` to `true` while also specifying a token. This is usually not what you', 'want. The CDN cannot be used with an authorization token, since private data cannot be cached.', \"See \".concat(generateHelpUrl('js-client-usecdn-token'), \" for more information.\")]);\nexports.defaultConfig = defaultConfig;\n\nexports.initConfig = function (config, prevConfig) {\n var newConfig = assign({}, defaultConfig, prevConfig, config);\n var gradientMode = newConfig.gradientMode;\n var projectBased = !gradientMode && 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 (gradientMode && !newConfig.namespace) {\n throw new Error('Configuration must contain `namespace` when running in gradient mode');\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 printBrowserTokenWarning();\n } else if ((!isBrowser || isLocalhost) && newConfig.useCdn && newConfig.token) {\n printCdnTokenWarning();\n } else if (typeof newConfig.useCdn === 'undefined') {\n printCdnWarning();\n }\n\n if (projectBased) {\n validate.projectId(newConfig.projectId);\n }\n\n if (!gradientMode && newConfig.dataset) {\n validate.dataset(newConfig.dataset, newConfig.gradientMode);\n }\n\n newConfig.isDefaultApi = newConfig.apiHost === defaultConfig.apiHost;\n newConfig.useCdn = Boolean(newConfig.useCdn) && !newConfig.token && !newConfig.withCredentials;\n\n if (newConfig.gradientMode) {\n newConfig.url = newConfig.apiHost;\n newConfig.cdnUrl = newConfig.apiHost;\n } else {\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, \"/v1\");\n newConfig.cdnUrl = \"\".concat(protocol, \"://\").concat(newConfig.projectId, \".\").concat(cdnHost, \"/v1\");\n } else {\n newConfig.url = \"\".concat(newConfig.apiHost, \"/v1\");\n newConfig.cdnUrl = newConfig.url;\n }\n }\n\n return newConfig;\n};","\"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\";\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\";\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\");\nvar ArgumentOutOfRangeError_1 = require(\"../util/ArgumentOutOfRangeError\");\nvar empty_1 = require(\"../observable/empty\");\nfunction takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty_1.empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nexports.takeLast = takeLast;\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n __extends(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=takeLast.js.map","/*\n * EventSource polyfill\n * Originally published by sc AmvTek srl (https://github.com/amvtek/EventSource) - devel@amvtek.com\n * Forked by Espen Hovlandsdal to fix a few issues + publish latest version\n */\n\n;(function (root, factory) {\n /* global define */\n if (typeof define === 'function' && define.amd) {\n // AMD\n define([], factory)\n } else if (typeof module === 'object' && module.exports) {\n // CommonJS\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n if (global.EventSource && !global._eventSourceImportPrefix) {\n return\n }\n\n var evsImportName = (root._eventSourceImportPrefix || '') + 'EventSource'\n root[evsImportName] = factory()\n }\n})(typeof self === 'undefined' ? this : self, function () {\n var EventSource = function (url, options) {\n if (!url || typeof url != 'string') {\n throw new SyntaxError('Not enough arguments')\n }\n\n this.URL = url\n this.setOptions(options)\n var evs = this\n setTimeout(function () {\n evs.poll()\n }, 0)\n }\n\n EventSource.prototype = {\n CONNECTING: 0,\n\n OPEN: 1,\n\n CLOSED: 2,\n\n defaultOptions: {\n loggingEnabled: false,\n\n loggingPrefix: 'eventsource',\n\n interval: 500, // milliseconds\n\n bufferSizeLimit: 256 * 1024, // bytes\n\n silentTimeout: 300000, // milliseconds\n\n getArgs: {\n evs_buffer_size_limit: 256 * 1024,\n },\n\n xhrHeaders: {\n Accept: 'text/event-stream',\n 'Cache-Control': 'no-cache',\n 'X-Requested-With': 'XMLHttpRequest',\n },\n },\n\n setOptions: function (options) {\n var defaults = this.defaultOptions\n var option\n\n // set all default options...\n for (option in defaults) {\n if (defaults.hasOwnProperty(option)) {\n this[option] = defaults[option]\n }\n }\n\n // override with what is in options\n for (option in options) {\n if (option in defaults && options.hasOwnProperty(option)) {\n this[option] = options[option]\n }\n }\n\n // if getArgs option is enabled\n // ensure evs_buffer_size_limit corresponds to bufferSizeLimit\n if (this.getArgs && this.bufferSizeLimit) {\n this.getArgs.evs_buffer_size_limit = this.bufferSizeLimit\n }\n\n // if console is not available, force loggingEnabled to false\n // eslint-disable-next-line no-console\n if (typeof console === 'undefined' || typeof console.log === 'undefined') {\n this.loggingEnabled = false\n }\n },\n\n log: function (message) {\n if (this.loggingEnabled) {\n // eslint-disable-next-line no-console\n console.log('[' + this.loggingPrefix + ']:' + message)\n }\n },\n\n poll: function () {\n try {\n if (this.readyState == this.CLOSED) {\n return\n }\n\n this.cleanup()\n this.readyState = this.CONNECTING\n this.cursor = 0\n this.cache = ''\n this._xhr = new this.XHR(this)\n this.resetNoActivityTimer()\n } catch (err) {\n // in an attempt to silence the errors\n this.log('There were errors inside the pool try-catch')\n this.dispatchEvent('error', {type: 'error', data: err.message})\n }\n },\n\n pollAgain: function (interval) {\n // schedule poll to be called after interval milliseconds\n var evs = this\n evs.readyState = evs.CONNECTING\n evs.dispatchEvent('error', {\n type: 'error',\n data: 'Reconnecting ',\n })\n this._pollTimer = setTimeout(function () {\n evs.poll()\n }, interval || 0)\n },\n\n cleanup: function () {\n this.log('evs cleaning up')\n\n if (this._pollTimer) {\n clearInterval(this._pollTimer)\n this._pollTimer = null\n }\n\n if (this._noActivityTimer) {\n clearInterval(this._noActivityTimer)\n this._noActivityTimer = null\n }\n\n if (this._xhr) {\n this._xhr.abort()\n this._xhr = null\n }\n },\n\n resetNoActivityTimer: function () {\n if (this.silentTimeout) {\n if (this._noActivityTimer) {\n clearInterval(this._noActivityTimer)\n }\n var evs = this\n this._noActivityTimer = setTimeout(function () {\n evs.log('Timeout! silentTImeout:' + evs.silentTimeout)\n evs.pollAgain()\n }, this.silentTimeout)\n }\n },\n\n close: function () {\n this.readyState = this.CLOSED\n this.log('Closing connection. readyState: ' + this.readyState)\n this.cleanup()\n },\n\n _onxhrdata: function () {\n var request = this._xhr\n\n if (request.isReady() && !request.hasError()) {\n // reset the timer, as we have activity\n this.resetNoActivityTimer()\n\n // move this EventSource to OPEN state...\n if (this.readyState == this.CONNECTING) {\n this.readyState = this.OPEN\n this.dispatchEvent('open', {type: 'open'})\n }\n\n var buffer = request.getBuffer()\n\n if (buffer.length > this.bufferSizeLimit) {\n this.log('buffer.length > this.bufferSizeLimit')\n this.pollAgain()\n }\n\n if (this.cursor == 0 && buffer.length > 0) {\n // skip byte order mark \\uFEFF character if it starts the stream\n if (buffer.substring(0, 1) == '\\uFEFF') {\n this.cursor = 1\n }\n }\n\n var lastMessageIndex = this.lastMessageIndex(buffer)\n if (lastMessageIndex[0] >= this.cursor) {\n var newcursor = lastMessageIndex[1]\n var toparse = buffer.substring(this.cursor, newcursor)\n this.parseStream(toparse)\n this.cursor = newcursor\n }\n\n // if request is finished, reopen the connection\n if (request.isDone()) {\n this.log('request.isDone(). reopening the connection')\n this.pollAgain(this.interval)\n }\n } else if (this.readyState !== this.CLOSED) {\n this.log('this.readyState !== this.CLOSED')\n this.pollAgain(this.interval)\n\n //MV: Unsure why an error was previously dispatched\n }\n },\n\n parseStream: function (chunk) {\n // normalize line separators (\\r\\n,\\r,\\n) to \\n\n // remove white spaces that may precede \\n\n chunk = this.cache + this.normalizeToLF(chunk)\n\n var events = chunk.split('\\n\\n')\n\n var i, j, eventType, datas, line, retry\n\n for (i = 0; i < events.length - 1; i++) {\n eventType = 'message'\n datas = []\n var parts = events[i].split('\\n')\n\n for (j = 0; j < parts.length; j++) {\n line = this.trimWhiteSpace(parts[j])\n\n if (line.indexOf('event') == 0) {\n eventType = line.replace(/event:?\\s*/, '')\n } else if (line.indexOf('retry') == 0) {\n retry = parseInt(line.replace(/retry:?\\s*/, ''), 10)\n if (!isNaN(retry)) {\n this.interval = retry\n }\n } else if (line.indexOf('data') == 0) {\n datas.push(line.replace(/data:?\\s*/, ''))\n } else if (line.indexOf('id:') == 0) {\n this.lastEventId = line.replace(/id:?\\s*/, '')\n } else if (line.indexOf('id') == 0) {\n // this resets the id\n\n this.lastEventId = null\n }\n }\n\n if (datas.length && this.readyState != this.CLOSED) {\n // dispatch a new event\n var event = new MessageEvent(\n eventType,\n datas.join('\\n'),\n typeof window !== 'undefined' && typeof window.location !== 'undefined'\n ? window.location.origin\n : null,\n this.lastEventId\n )\n this.dispatchEvent(eventType, event)\n }\n }\n\n this.cache = events[events.length - 1]\n },\n\n dispatchEvent: function (type, event) {\n var handlers = this['_' + type + 'Handlers']\n\n if (handlers) {\n for (var i = 0; i < handlers.length; i++) {\n handlers[i].call(this, event)\n }\n }\n\n if (this['on' + type]) {\n this['on' + type].call(this, event)\n }\n },\n\n addEventListener: function (type, handler) {\n if (!this['_' + type + 'Handlers']) {\n this['_' + type + 'Handlers'] = []\n }\n\n this['_' + type + 'Handlers'].push(handler)\n },\n\n removeEventListener: function (type, handler) {\n var handlers = this['_' + type + 'Handlers']\n if (!handlers) {\n return\n }\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1)\n break\n }\n }\n },\n\n _pollTimer: null,\n\n _noactivityTimer: null,\n\n _xhr: null,\n\n lastEventId: null,\n\n cache: '',\n\n cursor: 0,\n\n onerror: null,\n\n onmessage: null,\n\n onopen: null,\n\n readyState: 0,\n\n // ===================================================================\n // helpers functions\n // those are attached to prototype to ease reuse and testing...\n\n urlWithParams: function (baseURL, params) {\n var encodedArgs = []\n\n if (params) {\n var key, urlarg\n var urlize = encodeURIComponent\n\n for (key in params) {\n if (params.hasOwnProperty(key)) {\n urlarg = urlize(key) + '=' + urlize(params[key])\n encodedArgs.push(urlarg)\n }\n }\n }\n\n if (encodedArgs.length > 0) {\n if (baseURL.indexOf('?') == -1) return baseURL + '?' + encodedArgs.join('&')\n return baseURL + '&' + encodedArgs.join('&')\n }\n return baseURL\n },\n\n lastMessageIndex: function (text) {\n var ln2 = text.lastIndexOf('\\n\\n')\n var lr2 = text.lastIndexOf('\\r\\r')\n var lrln2 = text.lastIndexOf('\\r\\n\\r\\n')\n\n if (lrln2 > Math.max(ln2, lr2)) {\n return [lrln2, lrln2 + 4]\n }\n return [Math.max(ln2, lr2), Math.max(ln2, lr2) + 2]\n },\n\n trimWhiteSpace: function (str) {\n // to remove whitespaces left and right of string\n\n var reTrim = /^(\\s|\\u00A0)+|(\\s|\\u00A0)+$/g\n return str.replace(reTrim, '')\n },\n\n normalizeToLF: function (str) {\n // replace \\r and \\r\\n with \\n\n return str.replace(/\\r\\n|\\r/g, '\\n')\n },\n }\n\n if (isOldIE()) {\n EventSource.isPolyfill = 'IE_8-9'\n\n // patch EventSource defaultOptions\n var defaults = EventSource.prototype.defaultOptions\n defaults.xhrHeaders = null // no headers will be sent\n defaults.getArgs.evs_preamble = 2048 + 8\n\n // EventSource will send request using Internet Explorer XDomainRequest\n EventSource.prototype.XHR = function (evs) {\n /* global XDomainRequest */\n var request = new XDomainRequest()\n this._request = request\n\n // set handlers\n request.onprogress = function () {\n request._ready = true\n evs._onxhrdata()\n }\n\n request.onload = function () {\n this._loaded = true\n evs._onxhrdata()\n }\n\n request.onerror = function () {\n this._failed = true\n evs.readyState = evs.CLOSED\n evs.dispatchEvent('error', {\n type: 'error',\n data: 'XDomainRequest error',\n })\n }\n\n request.ontimeout = function () {\n this._failed = true\n evs.readyState = evs.CLOSED\n evs.dispatchEvent('error', {\n type: 'error',\n data: 'XDomainRequest timed out',\n })\n }\n\n // XDomainRequest does not allow setting custom headers\n // If EventSource has enabled the use of GET arguments\n // we add parameters to URL so that server can adapt the stream...\n var reqGetArgs = {}\n if (evs.getArgs) {\n // copy evs.getArgs in reqGetArgs\n var defaultArgs = evs.getArgs\n for (var key in defaultArgs) {\n if (defaultArgs.hasOwnProperty(key)) {\n reqGetArgs[key] = defaultArgs[key]\n }\n }\n if (evs.lastEventId) {\n reqGetArgs.evs_last_event_id = evs.lastEventId\n }\n }\n // send the request\n\n request.open('GET', evs.urlWithParams(evs.URL, reqGetArgs))\n request.send()\n }\n\n EventSource.prototype.XHR.prototype = {\n useXDomainRequest: true,\n\n _request: null,\n\n _ready: false, // true when progress events are dispatched\n\n _loaded: false, // true when request has been loaded\n\n _failed: false, // true if when request is in error\n\n isReady: function () {\n return this._request._ready\n },\n\n isDone: function () {\n return this._request._loaded\n },\n\n hasError: function () {\n return this._request._failed\n },\n\n getBuffer: function () {\n var rv = ''\n try {\n rv = this._request.responseText || ''\n } catch (err) {\n // intentional noop\n }\n return rv\n },\n\n abort: function () {\n if (this._request) {\n this._request.abort()\n }\n },\n }\n } else {\n EventSource.isPolyfill = 'XHR'\n\n // EventSource will send request using XMLHttpRequest\n EventSource.prototype.XHR = function (evs) {\n var request = new XMLHttpRequest()\n this._request = request\n evs._xhr = this\n\n // set handlers\n request.onreadystatechange = function () {\n if (request.readyState > 1 && evs.readyState != evs.CLOSED) {\n if (request.status == 200 || (request.status >= 300 && request.status < 400)) {\n evs._onxhrdata()\n } else {\n request._failed = true\n evs.readyState = evs.CLOSED\n evs.dispatchEvent('error', {\n type: 'error',\n data: 'The server responded with ' + request.status,\n })\n evs.close()\n }\n }\n }\n\n request.onprogress = function () {\n // intentional noop\n }\n\n request.open('GET', evs.urlWithParams(evs.URL, evs.getArgs), true)\n\n var headers = evs.xhrHeaders // maybe null\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, headers[header])\n }\n }\n if (evs.lastEventId) {\n request.setRequestHeader('Last-Event-Id', evs.lastEventId)\n }\n\n request.send()\n }\n\n EventSource.prototype.XHR.prototype = {\n useXDomainRequest: false,\n\n _request: null,\n\n _failed: false, // true if we have had errors...\n\n isReady: function () {\n return this._request.readyState >= 2\n },\n\n isDone: function () {\n return this._request.readyState == 4\n },\n\n hasError: function () {\n return this._failed || this._request.status >= 400\n },\n\n getBuffer: function () {\n var rv = ''\n try {\n rv = this._request.responseText || ''\n } catch (err) {\n // intentional noop\n }\n return rv\n },\n\n abort: function () {\n if (this._request) {\n this._request.abort()\n }\n },\n }\n }\n\n function MessageEvent(type, data, origin, lastEventId) {\n this.bubbles = false\n this.cancelBubble = false\n this.cancelable = false\n this.data = data || null\n this.origin = origin || ''\n this.lastEventId = lastEventId || ''\n this.type = type || 'message'\n }\n\n function isOldIE() {\n //return true if we are in IE8 or IE9\n return Boolean(\n typeof window !== 'undefined' &&\n window.XDomainRequest &&\n window.XMLHttpRequest &&\n new XMLHttpRequest().responseType === undefined\n )\n }\n\n return EventSource\n})\n","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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar objectAssign = require('object-assign');\nvar isPlainObject = require('is-plain-object');\n\nvar serializeTypes = ['boolean', 'string', 'number'];\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 if (!body) {\n return options;\n }\n\n var isStream = typeof body.pipe === 'function';\n var shouldSerialize = !isStream && !isBuffer(body) && (serializeTypes.indexOf(typeof body === 'undefined' ? 'undefined' : _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","exports.filter = require('rxjs/internal/operators/filter').filter\n","\"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","exports.reduce = require('rxjs/internal/operators/reduce').reduce\n","'use strict';\n\n/* eslint-disable no-negated-condition */\nif (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 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 json: true,\n withCredentials: withCredentials\n });\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\nvar objectAssign = require('object-assign');\nvar urlParse = require('url-parse');\n\nvar isReactNative = typeof navigator === 'undefined' ? false : navigator.product === 'ReactNative';\n\nvar has = Object.prototype.hasOwnProperty;\nvar defaultOptions = { timeout: isReactNative ? 60000 : 120000 };\n\nmodule.exports = function (opts) {\n var options = typeof opts === 'string' ? objectAssign({ url: opts }, defaultOptions) : objectAssign({}, defaultOptions, opts);\n\n // Parse URL into parts\n var url = urlParse(options.url, {}, // Don't use current browser location\n true // Parse query strings\n );\n\n // Normalize timeouts\n options.timeout = normalizeTimeout(options.timeout);\n\n // Shallow-merge (override) existing query params\n if (options.query) {\n url.query = objectAssign({}, url.query, removeUndefined(options.query));\n }\n\n // Implicit POST if we have not specified a method but have a body\n options.method = options.body && !options.method ? 'POST' : (options.method || 'GET').toUpperCase();\n\n // Stringify URL\n options.url = url.toString(stringifyQueryString);\n\n return options;\n};\n\nfunction stringifyQueryString(obj) {\n var pairs = [];\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 if (isNaN(delay)) {\n return normalizeTimeout(defaultOptions.timeout);\n }\n\n return { connect: delay, socket: delay };\n}\n\nfunction removeUndefined(obj) {\n var target = {};\n for (var key in obj) {\n if (obj[key] !== undefined) {\n target[key] = obj[key];\n }\n }\n return target;\n}\n//# sourceMappingURL=defaultOptionsProcessor.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';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\S\\s]*)/i\n , whitespace = '[\\\\x09\\\\x0A\\\\x0B\\\\x0C\\\\x0D\\\\x20\\\\xA0\\\\u1680\\\\u180E\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200A\\\\u202F\\\\u205F\\\\u3000\\\\u2028\\\\u2029\\\\uFEFF]'\n , left = new RegExp('^'+ whitespace +'+');\n\n/**\n * Trim a given string.\n *\n * @param {String} str String to trim.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(left, '');\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) { // Sanitize what is left of the address\n return address.replace('\\\\', '/');\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 * @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 * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address) {\n address = trimLeft(address);\n var match = protocolre.exec(address);\n\n return {\n protocol: match[1] ? match[1].toLowerCase() : '',\n slashes: !!match[2],\n rest: match[3]\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\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 || '');\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 (!extracted.slashes) instructions[3] = [/(.*)/, 'pathname'];\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address);\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 if (~(index = address.indexOf(parse))) {\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 // 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 if (url.auth) {\n instruction = url.auth.split(':');\n url.username = instruction[0] || '';\n url.password = instruction[1] || '';\n }\n\n url.origin = url.protocol && url.host && url.protocol !== 'file:'\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 (/:\\d+$/.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 default:\n url[part] = value;\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.origin = url.protocol && url.host && url.protocol !== 'file:'\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 , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result = protocol + (url.slashes ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n }\n\n result += url.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\";\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 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';\nvar isObj = require('is-obj');\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('Sources cannot be null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction assignKey(to, from, key) {\n\tvar val = from[key];\n\n\tif (val === undefined || val === null) {\n\t\treturn;\n\t}\n\n\tif (hasOwnProperty.call(to, key)) {\n\t\tif (to[key] === undefined || to[key] === null) {\n\t\t\tthrow new TypeError('Cannot convert undefined or null to object (' + key + ')');\n\t\t}\n\t}\n\n\tif (!hasOwnProperty.call(to, key) || !isObj(val)) {\n\t\tto[key] = val;\n\t} else {\n\t\tto[key] = assign(Object(to[key]), from[key]);\n\t}\n}\n\nfunction assign(to, from) {\n\tif (to === from) {\n\t\treturn to;\n\t}\n\n\tfrom = Object(from);\n\n\tfor (var key in from) {\n\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\tassignKey(to, from, key);\n\t\t}\n\t}\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tvar symbols = Object.getOwnPropertySymbols(from);\n\n\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\tassignKey(to, from, symbols[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n}\n\nmodule.exports = function deepAssign(target) {\n\ttarget = toObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tassign(target, arguments[s]);\n\t}\n\n\treturn target;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexports.ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","\"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;","import sanityClient, { ClientConfig, SanityClient } from '@sanity/client';\nimport { isProd } from 'utils/helpers';\n\nconst getDataset = () => {\n const dataset = process.env.NEXT_PUBLIC_SANITY_DATASET || 'production';\n return dataset;\n};\n\nconst config: ClientConfig = {\n dataset: getDataset(),\n projectId: String(process.env.NEXT_PUBLIC_SANITY_PROJECT_ID), // you can find this in sanity.json\n useCdn: isProd(),\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).\n};\n\nexport const client = sanityClient(config);\n\nconst previewClient = sanityClient({\n ...config,\n // only want fresh data for previews which requires the token\n useCdn: false,\n withCredentials: true, // only users who are logged into Sanity Studio\n});\n\nexport const getClient = (preview = false): SanityClient =>\n preview ? previewClient : client;\n","import imageUrlBuilder from '@sanity/image-url';\nimport groq from 'groq';\nimport { client as defaultClient, getClient } from 'services/sanity/client';\nimport {\n DownloadResourceByTag,\n HomePage,\n ImageBase,\n Page,\n ResourceTag,\n SiteSettings,\n TaggedDownloadResource,\n UpcomingEvent,\n} from 'types/sanity';\n\n/** Internal links could reference:\n * - page\n * - download resource\n */\nconst internalLink = groq`\n_type == \"internalLink\" => {\n blank,\n \"slug\": @.reference->slug.current,\n \"downloadResourceUrl\": @.reference->resource.asset->url,\n}`;\n\n/** All resource tags */\nconst resourceTagsQuery = groq`\n*[_type == \"resourceTag\"] {\n title,\n \"slug\": slug.current,\n description\n}`;\n\n/** Single resource tag\n * @param {string} title\n */\nconst resourceTagByTitleQuery = groq`\n*[_type == \"resourceTag\" && title == $title] | order(_updatedAt desc)[0] {\n title,\n description\n}`;\n\n/** All download resources */\nconst downloadResourcesQuery = groq`\n*[_type == \"downloadResource\"] | order(title asc) {\n title,\n description,\n \"asset\": resource.asset->,\n tags[] -> {\n title,\n description,\n }\n}`;\n\n/** All files for all tags */\nconst downloadResourcesByTagQuery = groq`\n*[_type==\"resourceTag\"] {\n title,\n description,\n \"files\": *[_type=='downloadResource' && references(^._id)]| order(title asc) {\n title,\n description,\n \"asset\": resource.asset->\n }\n}`;\n\n/** All files for a single tag\n * @param {string} tag\n */\nconst downloadResourceByTagQuery = groq`\n*[_type==\"resourceTag\" && (slug.current == $tag || title == $tag)][0] {\n title,\n \"slug\": slug.current,\n \"files\": *[_type=='downloadResource' && references(^._id)] | order(title asc) {\n title,\n description,\n \"asset\": resource.asset->\n }\n}`;\n\nconst upcomingEventFields = groq`\n_id,\ntitle,\nbody[] {\n ...,\n markDefs[] {\n ...,\n ${internalLink}\n }\n},\nstartDate,\nendDate,\nrelatedRegions,\n`;\n\n/** An individual upcoming event\n * @param {string} id\n */\nconst upcomingEventById = groq`\n*[_type==\"upcomingEvent\" && _id==$id][0] {\n ${upcomingEventFields}\n}`;\n\n/** All upcoming events\n * @param {string} date\n */\nconst upcomingEventsQuery = groq`\n*[_type==\"upcomingEvent\" && $date >= startDate && $date <= endDate] | order(startDate desc) {\n ${upcomingEventFields}\n}`;\n\n/** Upcoming events for a region\n * @param {string} region\n * @param {string} date\n */\nconst upcomingEventsByRegionQuery = groq`\n*[_type==\"upcomingEvent\" && $region in relatedRegions && $date >= startDate && $date <= endDate] | order(startDate desc) {\n ${upcomingEventFields}\n}\n`;\n\nconst homeQuery = groq`\n*[_type == 'home'][0] {\n title,\n text,\n image,\n}`;\n\nconst siteSettingsQuery = groq`\n*[_type == 'siteSettings'][0] {\n title,\n description,\n image,\n \"nav\": {\n \"header\": headerNavigation[] {\n title,\n url,\n \"url\": \"/\" + internalLink->slug.current,\n blank,\n },\n \"footer\": footerNavigation[] {\n title,\n url,\n \"url\": \"/\" + internalLink->slug.current,\n blank,\n },\n }\n}`;\n\nconst pageFields = groq`\ntitle,\ndescription,\nslug,\nbody[] {\n ...,\n \"asset\": asset->,\n markDefs[] {\n ...,\n ${internalLink},\n }\n}`;\n\nconst pageQuery = groq`\n*[_type == \"page\"] {\n ${pageFields}\n}`;\n\nexport async function getAllPages(preview?: boolean) {\n const pages = await getClient(preview).fetch(pageQuery);\n return { pages };\n}\n\nexport async function getDocument(\n type?: string,\n slug?: string,\n preview?: boolean\n) {\n const page = await getClient(preview).fetch(\n groq`*[_type == $type && slug.current == $slug] | order(_updatedAt desc)[0] {\n ${pageFields}\n }`,\n { type, slug }\n );\n\n return { page };\n}\n\nexport function getPageBySlug(slug?: string, preview?: boolean) {\n return getDocument('page', slug, preview);\n}\n\nexport async function getResourceTags(preview?: boolean) {\n const resourceTags =\n await getClient(preview).fetch(resourceTagsQuery);\n return { resourceTags };\n}\n\nexport async function getResourceTagByTitle(title?: string, preview?: boolean) {\n const resourceTags = await getClient(preview).fetch(\n resourceTagByTitleQuery,\n { title }\n );\n return { resourceTags };\n}\n\nexport async function getDownloadResources(preview?: boolean) {\n const downloadResources = await getClient(preview).fetch<\n TaggedDownloadResource[]\n >(downloadResourcesQuery);\n return downloadResources;\n}\n\nexport async function getDownloadResourcesByTag(preview?: boolean) {\n const downloadResources = await getClient(preview).fetch<\n DownloadResourceByTag[]\n >(downloadResourcesByTagQuery);\n return downloadResources;\n}\n\nexport async function getDownloadResourceByTag(\n tag?: string,\n preview?: boolean\n) {\n const downloadResources = await getClient(\n preview\n ).fetch(downloadResourceByTagQuery, { tag });\n return downloadResources;\n}\n\nexport async function getUpcomingEvents(date?: string, preview?: boolean) {\n const upcomingEvents = await getClient(preview).fetch(\n upcomingEventsQuery,\n { date }\n );\n return upcomingEvents;\n}\n\nexport async function getUpcomingEventsByRegion(\n region?: string,\n date?: string,\n preview?: boolean\n) {\n const upcomingEvents = await getClient(preview).fetch(\n upcomingEventsByRegionQuery,\n { region, date }\n );\n return upcomingEvents;\n}\n\nexport async function getUpcomingEventById(id: string, preview?: boolean) {\n const upcomingEvent = await getClient(preview).fetch(\n upcomingEventById,\n { id }\n );\n return upcomingEvent;\n}\n\nexport async function getSiteSettings(preview?: boolean) {\n const settings =\n await getClient(preview).fetch(siteSettingsQuery);\n return settings;\n}\n\nexport async function getHomePage(preview?: boolean) {\n const home = await getClient(preview).fetch(homeQuery);\n return home;\n}\n\n// Get a pre-configured url-builder from your sanity client\nconst imageBuilder = imageUrlBuilder(defaultClient);\n\n/**\n * Helper method to return the image builder that can be used to add additional\n * parameters.\n */\nexport function urlFor(source: ImageBase) {\n return imageBuilder.image(source);\n}\n","\"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\";\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 {\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\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\nexports.hostReportError = hostReportError;\n//# sourceMappingURL=hostReportError.js.map","var baseUrl = 'https://docs.sanity.io/help/'\n\nmodule.exports = function generateHelpUrl(slug) {\n return baseUrl + slug\n}\n","\"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';\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 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 if (!response.body || !contentType || !shouldDecode) {\n return response;\n }\n\n return objectAssign({}, response, { body: tryParse(response.body) });\n },\n\n processOptions: function processOptions(options) {\n return objectAssign({}, options, {\n headers: objectAssign({ Accept: 'application/json' }, 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: ' + err.message;\n throw err;\n }\n}\n//# sourceMappingURL=jsonResponse.js.map","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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,25}|[a-z0-9]{1}[-\\w]{0,19})$/.test(name)) {\n throw new Error('Datasets can only contain lowercase characters, numbers, underscores and dashes, and start with tilde, and be maximum 20 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.gradientMode && !config.dataset) {\n throw new Error('`dataset` must be provided to perform queries');\n }\n\n return config.dataset || '';\n};","\"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\";\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar scan_1 = require(\"./scan\");\nvar takeLast_1 = require(\"./takeLast\");\nvar defaultIfEmpty_1 = require(\"./defaultIfEmpty\");\nvar pipe_1 = require(\"../util/pipe\");\nfunction reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe_1.pipe(scan_1.scan(accumulator, seed), takeLast_1.takeLast(1), defaultIfEmpty_1.defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe_1.pipe(scan_1.scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast_1.takeLast(1))(source);\n };\n}\nexports.reduce = reduce;\n//# sourceMappingURL=reduce.js.map","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","/* eslint-disable no-var */\nvar evs = require('@rexxars/eventsource-polyfill')\n\nmodule.exports = window.EventSource || evs.EventSource\n","'use strict';\n\n/* eslint max-depth: [\"error\", 4] */\nvar sameOrigin = require('same-origin');\nvar parseHeaders = require('parse-headers');\nvar noop = function noop() {\n /* intentional noop */\n};\n\nvar win = window;\nvar XmlHttpRequest = win.XMLHttpRequest || noop;\nvar hasXhr2 = 'withCredentials' in new XmlHttpRequest();\nvar XDomainRequest = hasXhr2 ? XmlHttpRequest : win.XDomainRequest;\nvar adapter = 'xhr';\n\nmodule.exports = function (context, callback) {\n var opts = context.options;\n var options = context.applyMiddleware('finalizeOptions', opts);\n var timers = {};\n\n // Deep-checking window.location because of react native, where `location` doesn't exist\n var cors = win && win.location && !sameOrigin(win.location.href, options.url);\n\n // Allow middleware to inject a response, for instance in the case of caching or mocking\n var injectedResponse = context.applyMiddleware('interceptRequest', undefined, {\n adapter: adapter,\n context: context\n });\n\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 if (injectedResponse) {\n var cbTimer = setTimeout(callback, 0, null, injectedResponse);\n var cancel = function cancel() {\n return clearTimeout(cbTimer);\n };\n return { abort: cancel };\n }\n\n // We'll want to null out the request on success/failure\n var xhr = cors ? new XDomainRequest() : new XmlHttpRequest();\n\n var isXdr = win.XDomainRequest && xhr instanceof win.XDomainRequest;\n var headers = options.headers;\n\n // Request state\n var aborted = false;\n var loaded = false;\n var timedOut = false;\n\n // Apply event handlers\n xhr.onerror = onError;\n xhr.ontimeout = onError;\n xhr.onabort = function () {\n aborted = true;\n };\n\n // IE9 must have onprogress be set to a unique function\n xhr.onprogress = function () {\n /* intentional noop */\n };\n\n var loadEvent = isXdr ? 'onload' : 'onreadystatechange';\n xhr[loadEvent] = function () {\n // Prevent request from timing out\n resetTimers();\n\n if (aborted || xhr.readyState !== 4 && !isXdr) {\n return;\n }\n\n // Will be handled by onError\n if (xhr.status === 0) {\n return;\n }\n\n onLoad();\n };\n\n // @todo two last options to open() is username/password\n xhr.open(options.method, options.url, true // Always async\n );\n\n // Some options need to be applied after open\n xhr.withCredentials = !!options.withCredentials;\n\n // Set headers\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 }\n\n // Let middleware know we're about to do a request\n context.applyMiddleware('onRequest', { options: options, adapter: adapter, request: xhr, context: context });\n\n xhr.send(options.body || null);\n\n // Figure out which timeouts to use (if any)\n var delays = options.timeout;\n if (delays) {\n timers.connect = setTimeout(function () {\n return timeoutRequest('ETIMEDOUT');\n }, delays.connect);\n }\n\n return { abort: abort };\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 ' + options.url : 'Connection timed out on request to ' + 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() {\n // Only clear the connect timeout if we've got a connection\n if (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() {\n if (loaded) {\n return;\n }\n\n // Clean up\n stopTimers();\n loaded = true;\n xhr = null;\n\n // Annoyingly, details are extremely scarce and hidden from us.\n // We only really know that it is a network error\n var err = new Error('Network error while attempting to reach ' + 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 }\n\n // Prevent being called twice\n stopTimers();\n loaded = true;\n callback(null, reduceResponse());\n }\n};\n//# sourceMappingURL=browser-request.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Observable_1 = require(\"../Observable\");\nexports.EMPTY = new Observable_1.Observable(function (subscriber) { return subscriber.complete(); });\nfunction empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : exports.EMPTY;\n}\nexports.empty = empty;\nfunction emptyScheduled(scheduler) {\n return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.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","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.SanityImageUrlBuilder = factory());\n}(this, (function () {\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelperLoose(o) {\n var i = 0;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n i = o[Symbol.iterator]();\n return i.next.bind(i);\n }\n\n var example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg';\n function parseAssetId(ref) {\n var _ref$split = ref.split('-'),\n id = _ref$split[1],\n dimensionString = _ref$split[2],\n format = _ref$split[3];\n\n if (!id || !dimensionString || !format) {\n throw new Error(\"Malformed asset _ref '\" + ref + \"'. Expected an id like \\\"\" + example + \"\\\".\");\n }\n\n var _dimensionString$spli = dimensionString.split('x'),\n imgWidthStr = _dimensionString$spli[0],\n imgHeightStr = _dimensionString$spli[1];\n\n var width = +imgWidthStr;\n var height = +imgHeightStr;\n var isValidAssetId = isFinite(width) && isFinite(height);\n\n if (!isValidAssetId) {\n throw new Error(\"Malformed asset _ref '\" + ref + \"'. Expected an id like \\\"\" + example + \"\\\".\");\n }\n\n return {\n id: id,\n width: width,\n height: height,\n format: format\n };\n }\n\n var isRef = function isRef(src) {\n var source = src;\n return source ? typeof source._ref === 'string' : false;\n };\n\n var isAsset = function isAsset(src) {\n var source = src;\n return source ? typeof source._id === 'string' : false;\n };\n\n var isAssetStub = function isAssetStub(src) {\n var source = src;\n return source && source.asset ? typeof source.asset.url === 'string' : false;\n };\n\n function parseSource(source) {\n if (!source) {\n return null;\n }\n\n var image;\n\n if (typeof source === 'string' && isUrl(source)) {\n image = {\n asset: {\n _ref: urlToId(source)\n }\n };\n } else if (typeof source === 'string') {\n image = {\n asset: {\n _ref: source\n }\n };\n } else if (isRef(source)) {\n image = {\n asset: source\n };\n } else if (isAsset(source)) {\n image = {\n asset: {\n _ref: source._id || ''\n }\n };\n } else if (isAssetStub(source)) {\n image = {\n asset: {\n _ref: urlToId(source.asset.url)\n }\n };\n } else if (typeof source.asset === 'object') {\n image = source;\n } else {\n return null;\n }\n\n var img = source;\n\n if (img.crop) {\n image.crop = img.crop;\n }\n\n if (img.hotspot) {\n image.hotspot = img.hotspot;\n }\n\n return applyDefaults(image);\n }\n\n function isUrl(url) {\n return /^https?:\\/\\//.test(\"\" + url);\n }\n\n function urlToId(url) {\n var parts = url.split('/').slice(-1);\n return (\"image-\" + parts[0]).replace(/\\.([a-z]+)$/, '-$1');\n }\n\n function applyDefaults(image) {\n if (image.crop && image.hotspot) {\n return image;\n }\n\n var result = _extends({}, image);\n\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n };\n }\n\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0\n };\n }\n\n return result;\n }\n\n var SPEC_NAME_TO_URL_NAME_MAPPINGS = [['width', 'w'], ['height', 'h'], ['format', 'fm'], ['download', 'dl'], ['blur', 'blur'], ['sharpen', 'sharp'], ['invert', 'invert'], ['orientation', 'or'], ['minHeight', 'min-h'], ['maxHeight', 'max-h'], ['minWidth', 'min-w'], ['maxWidth', 'max-w'], ['quality', 'q'], ['fit', 'fit'], ['crop', 'crop'], ['saturation', 'sat'], ['auto', 'auto'], ['dpr', 'dpr'], ['pad', 'pad']];\n function urlForImage(options) {\n var spec = _extends({}, options || {});\n\n var source = spec.source;\n delete spec.source;\n var image = parseSource(source);\n\n if (!image) {\n return null;\n }\n\n var id = image.asset._ref || image.asset._id || '';\n var asset = parseAssetId(id);\n var cropLeft = Math.round(image.crop.left * asset.width);\n var cropTop = Math.round(image.crop.top * asset.height);\n var crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop)\n };\n var hotSpotVerticalRadius = image.hotspot.height * asset.height / 2;\n var hotSpotHorizontalRadius = image.hotspot.width * asset.width / 2;\n var hotSpotCenterX = image.hotspot.x * asset.width;\n var hotSpotCenterY = image.hotspot.y * asset.height;\n var hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius\n };\n\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = _extends(_extends({}, spec), fit({\n crop: crop,\n hotspot: hotspot\n }, spec));\n }\n\n return specToImageUrl(_extends(_extends({}, spec), {}, {\n asset: asset\n }));\n }\n\n function specToImageUrl(spec) {\n var cdnUrl = spec.baseUrl || 'https://cdn.sanity.io';\n var filename = spec.asset.id + \"-\" + spec.asset.width + \"x\" + spec.asset.height + \".\" + spec.asset.format;\n var baseUrl = cdnUrl + \"/images/\" + spec.projectId + \"/\" + spec.dataset + \"/\" + filename;\n var params = [];\n\n if (spec.rect) {\n var _spec$rect = spec.rect,\n left = _spec$rect.left,\n top = _spec$rect.top,\n width = _spec$rect.width,\n height = _spec$rect.height;\n var isEffectiveCrop = left !== 0 || top !== 0 || height !== spec.asset.height || width !== spec.asset.width;\n\n if (isEffectiveCrop) {\n params.push(\"rect=\" + left + \",\" + top + \",\" + width + \",\" + height);\n }\n }\n\n if (spec.bg) {\n params.push(\"bg=\" + spec.bg);\n }\n\n if (spec.focalPoint) {\n params.push(\"fp-x=\" + spec.focalPoint.x);\n params.push(\"fp-y=\" + spec.focalPoint.y);\n }\n\n var flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('');\n\n if (flip) {\n params.push(\"flip=\" + flip);\n }\n\n SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach(function (mapping) {\n var specName = mapping[0],\n param = mapping[1];\n\n if (typeof spec[specName] !== 'undefined') {\n params.push(param + \"=\" + encodeURIComponent(spec[specName]));\n } else if (typeof spec[param] !== 'undefined') {\n params.push(param + \"=\" + encodeURIComponent(spec[param]));\n }\n });\n\n if (params.length === 0) {\n return baseUrl;\n }\n\n return baseUrl + \"?\" + params.join('&');\n }\n\n function fit(source, spec) {\n var cropRect;\n var imgWidth = spec.width;\n var imgHeight = spec.height;\n\n if (!(imgWidth && imgHeight)) {\n return {\n width: imgWidth,\n height: imgHeight,\n rect: source.crop\n };\n }\n\n var crop = source.crop;\n var hotspot = source.hotspot;\n var desiredAspectRatio = imgWidth / imgHeight;\n var cropAspectRatio = crop.width / crop.height;\n\n if (cropAspectRatio > desiredAspectRatio) {\n var height = crop.height;\n var width = height * desiredAspectRatio;\n var top = crop.top;\n var hotspotXCenter = (hotspot.right - hotspot.left) / 2 + hotspot.left;\n var left = hotspotXCenter - width / 2;\n\n if (left < crop.left) {\n left = crop.left;\n } else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width;\n }\n\n cropRect = {\n left: Math.round(left),\n top: Math.round(top),\n width: Math.round(width),\n height: Math.round(height)\n };\n } else {\n var _width = crop.width;\n\n var _height = _width / desiredAspectRatio;\n\n var _left = crop.left;\n var hotspotYCenter = (hotspot.bottom - hotspot.top) / 2 + hotspot.top;\n\n var _top = hotspotYCenter - _height / 2;\n\n if (_top < crop.top) {\n _top = crop.top;\n } else if (_top + _height > crop.top + crop.height) {\n _top = crop.top + crop.height - _height;\n }\n\n cropRect = {\n left: Math.max(0, Math.floor(_left)),\n top: Math.max(0, Math.floor(_top)),\n width: Math.round(_width),\n height: Math.round(_height)\n };\n }\n\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect\n };\n }\n\n var validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min'];\n var validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy'];\n var validAutoModes = ['format'];\n\n function isSanityClientLike(client) {\n return client ? typeof client.clientConfig === 'object' : false;\n }\n\n function rewriteSpecName(key) {\n var specs = SPEC_NAME_TO_URL_NAME_MAPPINGS;\n\n for (var _iterator = _createForOfIteratorHelperLoose(specs), _step; !(_step = _iterator()).done;) {\n var entry = _step.value;\n var specName = entry[0],\n param = entry[1];\n\n if (key === specName || key === param) {\n return specName;\n }\n }\n\n return key;\n }\n\n function urlBuilder(options) {\n var client = options;\n\n if (isSanityClientLike(client)) {\n var _client$clientConfig = client.clientConfig,\n apiUrl = _client$clientConfig.apiHost,\n projectId = _client$clientConfig.projectId,\n dataset = _client$clientConfig.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset\n });\n }\n\n return new ImageUrlBuilder(null, options);\n }\n var ImageUrlBuilder = /*#__PURE__*/function () {\n function ImageUrlBuilder(parent, options) {\n this.options = parent ? _extends(_extends({}, parent.options || {}), options || {}) : _extends({}, options || {});\n }\n\n var _proto = ImageUrlBuilder.prototype;\n\n _proto.withOptions = function withOptions(options) {\n var baseUrl = options.baseUrl || this.options.baseUrl;\n var newOptions = {\n baseUrl: baseUrl\n };\n\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n var specKey = rewriteSpecName(key);\n newOptions[specKey] = options[key];\n }\n }\n\n return new ImageUrlBuilder(this, _extends({\n baseUrl: baseUrl\n }, newOptions));\n };\n\n _proto.image = function image(source) {\n return this.withOptions({\n source: source\n });\n };\n\n _proto.dataset = function dataset(_dataset) {\n return this.withOptions({\n dataset: _dataset\n });\n };\n\n _proto.projectId = function projectId(_projectId) {\n return this.withOptions({\n projectId: _projectId\n });\n };\n\n _proto.bg = function bg(_bg) {\n return this.withOptions({\n bg: _bg\n });\n };\n\n _proto.dpr = function dpr(_dpr) {\n return this.withOptions({\n dpr: _dpr\n });\n };\n\n _proto.width = function width(_width) {\n return this.withOptions({\n width: _width\n });\n };\n\n _proto.height = function height(_height) {\n return this.withOptions({\n height: _height\n });\n };\n\n _proto.focalPoint = function focalPoint(x, y) {\n return this.withOptions({\n focalPoint: {\n x: x,\n y: y\n }\n });\n };\n\n _proto.maxWidth = function maxWidth(_maxWidth) {\n return this.withOptions({\n maxWidth: _maxWidth\n });\n };\n\n _proto.minWidth = function minWidth(_minWidth) {\n return this.withOptions({\n minWidth: _minWidth\n });\n };\n\n _proto.maxHeight = function maxHeight(_maxHeight) {\n return this.withOptions({\n maxHeight: _maxHeight\n });\n };\n\n _proto.minHeight = function minHeight(_minHeight) {\n return this.withOptions({\n minHeight: _minHeight\n });\n };\n\n _proto.size = function size(width, height) {\n return this.withOptions({\n width: width,\n height: height\n });\n };\n\n _proto.blur = function blur(_blur) {\n return this.withOptions({\n blur: _blur\n });\n };\n\n _proto.sharpen = function sharpen(_sharpen) {\n return this.withOptions({\n sharpen: _sharpen\n });\n };\n\n _proto.rect = function rect(left, top, width, height) {\n return this.withOptions({\n rect: {\n left: left,\n top: top,\n width: width,\n height: height\n }\n });\n };\n\n _proto.format = function format(_format) {\n return this.withOptions({\n format: _format\n });\n };\n\n _proto.invert = function invert(_invert) {\n return this.withOptions({\n invert: _invert\n });\n };\n\n _proto.orientation = function orientation(_orientation) {\n return this.withOptions({\n orientation: _orientation\n });\n };\n\n _proto.quality = function quality(_quality) {\n return this.withOptions({\n quality: _quality\n });\n };\n\n _proto.forceDownload = function forceDownload(download) {\n return this.withOptions({\n download: download\n });\n };\n\n _proto.flipHorizontal = function flipHorizontal() {\n return this.withOptions({\n flipHorizontal: true\n });\n };\n\n _proto.flipVertical = function flipVertical() {\n return this.withOptions({\n flipVertical: true\n });\n };\n\n _proto.ignoreImageParams = function ignoreImageParams() {\n return this.withOptions({\n ignoreImageParams: true\n });\n };\n\n _proto.fit = function fit(value) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(\"Invalid fit mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n fit: value\n });\n };\n\n _proto.crop = function crop(value) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(\"Invalid crop mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n crop: value\n });\n };\n\n _proto.saturation = function saturation(_saturation) {\n return this.withOptions({\n saturation: _saturation\n });\n };\n\n _proto.auto = function auto(value) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(\"Invalid auto mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n auto: value\n });\n };\n\n _proto.pad = function pad(_pad) {\n return this.withOptions({\n pad: _pad\n });\n };\n\n _proto.url = function url() {\n return urlForImage(this.options);\n };\n\n _proto.toString = function toString() {\n return this.url();\n };\n\n return ImageUrlBuilder;\n }();\n\n return urlBuilder;\n\n})));\n//# sourceMappingURL=image-url.umd.js.map\n","'use strict';\n\nvar pubsub = require('nano-pubsub');\nvar middlewareReducer = require('./util/middlewareReducer');\nvar processOptions = require('./middleware/defaultOptionsProcessor');\nvar validateOptions = require('./middleware/defaultOptionsValidator');\nvar httpRequest = require('./request'); // node-request in node, browser-request in browsers\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\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 }, {});\n\n // Prepare a middleware reducer that can be reused throughout the lifecycle\n var applyMiddleware = middlewareReducer(middleware);\n\n // Parse the passed options\n var options = applyMiddleware('processOptions', opts);\n\n // Validate the options\n applyMiddleware('validateOptions', options);\n\n // Build a context object we can pass to child handlers\n var context = { options: options, channels: channels, applyMiddleware: applyMiddleware\n\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 };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 });\n\n // If we abort the request, prevent further requests from happening,\n // and be sure to cancel any ongoing request (obviously)\n channels.abort.subscribe(function () {\n unsubscribe();\n if (ongoingRequest) {\n ongoingRequest.abort();\n }\n });\n\n // See if any middleware wants to modify the return value - for instance\n // the promise or observable middlewares\n var returnValue = applyMiddleware('onReturn', channels, context);\n\n // 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 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;\n\n // We're processing non-errors first, in case a middleware converts the\n // response into an error (for instance, status >= 400 == HttpError)\n if (!error) {\n try {\n response = applyMiddleware('onResponse', res, ctx);\n } catch (err) {\n response = null;\n error = err;\n }\n }\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 error = error && applyMiddleware('onError', error, ctx);\n\n // Figure out if we should publish on error/response channels\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\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\n return request;\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\n\n/* eslint-disable @typescript-eslint/no-var-requires */\nmodule.exports = function groq(strings) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n\n var lastIndex = strings.length - 1;\n return strings.slice(0, lastIndex).reduce(function (acc, str, i) {\n return acc + str + keys[i];\n }, '') + strings[lastIndex];\n};","exports.map = require('rxjs/internal/operators/map').map\n","'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\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};","\"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\nvar Observable = require('@sanity/observable/minimal');\n\nvar polyfilledEventSource = require('@sanity/eventsource');\n\nvar pick = require('../util/pick');\n\nvar defaults = require('../util/defaults');\n\nvar encodeQueryString = require('./encodeQueryString');\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar once = require('../util/once');\n\nvar tokenWarning = ['Using token with listeners is not supported in browsers. ', \"For more info, see \".concat(generateHelpUrl('js-client-listener-tokens-browser'), \".\")]; // eslint-disable-next-line no-console\n\nvar printTokenWarning = once(function () {\n return console.warn(tokenWarning.join(' '));\n});\nvar isWindowEventSource = Boolean(typeof window !== 'undefined' && window.EventSource);\nvar EventSource = isWindowEventSource ? window.EventSource // Native browser EventSource\n: polyfilledEventSource; // Node.js, IE etc\n\nvar possibleOptions = ['includePreviousRevision', 'includeResult', 'visibility', 'effectFormat'];\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 options = defaults(opts, defaultOptions);\n var listenOpts = pick(options, possibleOptions);\n var qs = encodeQueryString({\n query: query,\n params: params,\n options: listenOpts\n });\n var _this$clientConfig = this.clientConfig,\n url = _this$clientConfig.url,\n token = _this$clientConfig.token,\n withCredentials = _this$clientConfig.withCredentials;\n var uri = \"\".concat(url).concat(this.getDataUrl('listen', qs));\n var listenFor = options.events ? options.events : ['mutation'];\n var shouldEmitReconnect = listenFor.indexOf('reconnect') !== -1;\n\n if (token && isWindowEventSource) {\n printTokenWarning();\n }\n\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\nvar global = require('../util/global');\nvar objectAssign = require('object-assign');\n\nmodule.exports = function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var Observable = opts.implementation || global.Observable;\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({ type: 'progress' }, event));\n });\n channels.response.subscribe(function (response) {\n observer.next(objectAssign({ type: 'response' }, response));\n observer.complete();\n });\n\n channels.request.publish(context);\n return function () {\n return channels.abort.publish();\n };\n });\n }\n };\n};\n//# sourceMappingURL=observable.js.map","\"use strict\";\n\nmodule.exports = [];","\"use strict\";\n\nvar validUrl = /^https?:\\/\\//i;\n\nmodule.exports = function (options) {\n if (!validUrl.test(options.url)) {\n throw new Error(\"\\\"\" + options.url + \"\\\" is not a valid URL\");\n }\n};\n//# sourceMappingURL=defaultOptionsValidator.js.map","module.exports = require('./lib/SanityObservableMinimal')\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 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\";\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 });\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';\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';\nmodule.exports = function (x) {\n\tvar type = typeof x;\n\treturn x !== null && (type === 'object' || type === 'function');\n};\n","\"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';\n\nmodule.exports = require('./node-request');\n//# sourceMappingURL=index.js.map","\"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\nmodule.exports = function (middleware) {\n var applyMiddleware = function applyMiddleware(hook, defaultValue) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var bailEarly = hook === 'onError';\n\n var value = defaultValue;\n for (var i = 0; i < middleware[hook].length; i++) {\n var handler = middleware[hook][i];\n value = handler.apply(undefined, [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\";\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\";\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","/*!\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","\"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('@sanity/observable/operators/filter'),\n filter = _require.filter;\n\nvar _require2 = require('@sanity/observable/operators/map'),\n map = _require2.map;\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 returnIds: true,\n returnDocuments: excludeFalsey(options.returnDocuments, true),\n visibility: options.visibility || 'sync'\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 = config.gradientMode ? config.namespace : validators.hasDataset(config);\n var baseUri = \"/\".concat(operation, \"/\").concat(catalog);\n var uri = path ? \"\".concat(baseUri, \"/\").concat(path) : baseUri;\n return (this.clientConfig.gradientMode ? uri : \"/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 options = {\n uri: this.getDataUrl('doc', id),\n json: true\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 options = {\n uri: this.getDataUrl('doc', ids.join(',')),\n json: true\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'; // 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 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 token: token\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\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 _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 deepAssign = require('deep-assign');\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 merge: function merge(props) {\n validateObject('merge', props);\n var stack = new Error().stack.toString().split('\\n').filter(function (str) {\n return str.trim();\n }).slice(2);\n console.warn(\"The \\\"merge\\\" patch has been deprecated and will be removed in the future\\n\".concat(stack.join('\\n')));\n return this._assign('merge', deepAssign(this.operations.merge || {}, props));\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\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;","\"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 scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nexports.scan = scan;\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n __extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=scan.js.map","module.exports = require('./lib-node')\n","\"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 Observable = require('@sanity/observable/minimal');\n\nvar _require = require('./errors'),\n ClientError = _require.ClientError,\n ServerError = _require.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}; // Environment-specific middleware.\n\nvar envSpecific = require('./nodeMiddleware');\n\nvar middleware = envSpecific.concat([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 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 var base = \"?query=\".concat(enc(query));\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(options).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};","\"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 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 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.observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map"],"sourceRoot":""}