@sanity/client 6.24.0 → 6.25.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks-cjs/stegaEncodeSourceMap.cjs.map +1 -1
- package/dist/_chunks-es/stegaEncodeSourceMap.js.map +1 -1
- package/dist/index.browser.cjs +185 -128
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.d.cts +104 -1
- package/dist/index.browser.d.ts +104 -1
- package/dist/index.browser.js +186 -129
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +186 -129
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +104 -1
- package/dist/index.d.ts +104 -1
- package/dist/index.js +187 -130
- package/dist/index.js.map +1 -1
- package/package.json +16 -16
- package/src/config.ts +3 -1
- package/src/csm/types.ts +1 -1
- package/src/data/eventsource.ts +255 -0
- package/src/data/eventsourcePolyfill.ts +7 -0
- package/src/data/listen.ts +31 -142
- package/src/data/live.ts +60 -120
- package/src/data/reconnectOnConnectionFailure.ts +30 -0
- package/src/defineCreateClient.ts +11 -0
- package/src/http/request.ts +1 -1
- package/src/index.browser.ts +1 -1
- package/src/index.ts +1 -1
- package/src/stega/stegaEncodeSourceMap.ts +5 -1
- package/src/types.ts +9 -0
- package/src/util/pick.ts +1 -1
- package/src/warnings.ts +1 -1
- package/umd/sanityClient.js +981 -139
- package/umd/sanityClient.min.js +2 -2
package/umd/sanityClient.js
CHANGED
|
@@ -4,6 +4,21 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.SanityClient = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
+
function _mergeNamespaces(n, m) {
|
|
8
|
+
m.forEach(function (e) {
|
|
9
|
+
e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
|
|
10
|
+
if (k !== 'default' && !(k in n)) {
|
|
11
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return e[k]; }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
return Object.freeze(n);
|
|
20
|
+
}
|
|
21
|
+
|
|
7
22
|
const e=!(typeof navigator>"u")&&"ReactNative"===navigator.product,t={timeout:e?6e4:12e4},r=function(r){const a={...t,..."string"==typeof r?{url:r}:r};if(a.timeout=n$1(a.timeout),a.query){const{url:t,searchParams:r}=function(t){const r=t.indexOf("?");if(-1===r)return {url:t,searchParams:new URLSearchParams};const n=t.slice(0,r),a=t.slice(r+1);if(!e)return {url:n,searchParams:new URLSearchParams(a)};if("function"!=typeof decodeURIComponent)throw new Error("Broken `URLSearchParams` implementation, and `decodeURIComponent` is not defined");const s=new URLSearchParams;for(const e of a.split("&")){const[t,r]=e.split("=");t&&s.append(o$1(t),o$1(r||""));}return {url:n,searchParams:s}}(a.url);for(const[e,o]of Object.entries(a.query)){if(void 0!==o)if(Array.isArray(o))for(const t of o)r.append(e,t);else r.append(e,o);const n=r.toString();n&&(a.url=`${t}?${n}`);}}return a.method=a.body&&!a.method?"POST":(a.method||"GET").toUpperCase(),a};function o$1(e){return decodeURIComponent(e.replace(/\+/g," "))}function n$1(e){if(!1===e||0===e)return !1;if(e.connect||e.socket)return e;const r=Number(e);return isNaN(r)?n$1(t.timeout):{connect:r,socket:r}}const a$2=/^https?:\/\//i,s$2=function(e){if(!a$2.test(e.url))throw new Error(`"${e.url}" is not a valid URL`)};function c$3(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}
|
|
8
23
|
|
|
9
24
|
const o=["request","response","progress","error","abort"],s$1=["processOptions","validateOptions","interceptRequest","finalizeOptions","onRequest","onResponse","onError","onReturn","onHeaders"];function n(r$1,a){const i=[],u=s$1.reduce(((e,t)=>(e[t]=e[t]||[],e)),{processOptions:[r],validateOptions:[s$2]});function l(e){const t=o.reduce(((e,t)=>(e[t]=function(){const e=Object.create(null);let t=0;return {publish:function(t){for(const r in e)e[r](t);},subscribe:function(r){const o=t++;return e[o]=r,function(){delete e[o];}}}}(),e)),{}),r=(e=>function(t,r,...o){const s="onError"===t;let n=r;for(let r=0;r<e[t].length&&(n=(0, e[t][r])(n,...o),!s||n);r++);return n})(u),s=r("processOptions",e);r("validateOptions",s);const n={options:s,channels:t,applyMiddleware:r};let i;const l=t.request.subscribe((e=>{i=a(e,((o,s)=>((e,o,s)=>{let n=e,a=o;if(!n)try{a=r("onResponse",o,s);}catch(e){a=null,n=e;}n=n&&r("onError",n,s),n?t.error.publish(n):a&&t.response.publish(a);})(o,s,e)));}));t.abort.subscribe((()=>{l(),i&&i.abort();}));const c=r("onReturn",t,n);return c===t&&t.request.publish(n),c}return l.use=function(e){if(!e)throw new Error("Tried to add middleware that resolved to falsey value");if("function"==typeof e)throw new Error("Tried to add middleware that was a function. It probably expects you to pass options to it.");if(e.onReturn&&u.onReturn.length>0)throw new Error("Tried to add new middleware with `onReturn` handler, but another handler has already been registered for this event");return s$1.forEach((t=>{e[t]&&u[t].push(e[t]);})),i.push(e),l},l.clone=()=>n(i,a),r$1.forEach(l.use),l}var a$1=function(e){return e.replace(/^\s+|\s+$/g,"")},i=c$3((function(e){if(!e)return {};for(var t={},r=a$1(e).split("\n"),o=0;o<r.length;o++){var s=r[o],n=s.indexOf(":"),i=a$1(s.slice(0,n)).toLowerCase(),u=a$1(s.slice(n+1));typeof t[i]>"u"?t[i]=u:(l=t[i],"[object Array]"===Object.prototype.toString.call(l)?t[i].push(u):t[i]=[t[i],u]);}var l;return t}));let u$2 = class u{onabort;onerror;onreadystatechange;ontimeout;readyState=0;response;responseText="";responseType="";status;statusText;withCredentials;#e;#t;#r;#o={};#s;#n={};#a;open(e,t,r){this.#e=e,this.#t=t,this.#r="",this.readyState=1,this.onreadystatechange?.(),this.#s=void 0;}abort(){this.#s&&this.#s.abort();}getAllResponseHeaders(){return this.#r}setRequestHeader(e,t){this.#o[e]=t;}setInit(e,t=!0){this.#n=e,this.#a=t;}send(e){const t="arraybuffer"!==this.responseType,r={...this.#n,method:this.#e,headers:this.#o,body:e};"function"==typeof AbortController&&this.#a&&(this.#s=new AbortController,typeof EventTarget<"u"&&this.#s.signal instanceof EventTarget&&(r.signal=this.#s.signal)),typeof document<"u"&&(r.credentials=this.withCredentials?"include":"omit"),fetch(this.#t,r).then((e=>(e.headers.forEach(((e,t)=>{this.#r+=`${t}: ${e}\r\n`;})),this.status=e.status,this.statusText=e.statusText,this.readyState=3,this.onreadystatechange?.(),t?e.text():e.arrayBuffer()))).then((e=>{"string"==typeof e?this.responseText=e:this.response=e,this.readyState=4,this.onreadystatechange?.();})).catch((e=>{"AbortError"!==e.name?this.onerror?.(e):this.onabort?.();}));}};const l$1="function"==typeof XMLHttpRequest?"xhr":"fetch",c$2="xhr"===l$1?XMLHttpRequest:u$2,h=(e,t)=>{const r=e.options,o=e.applyMiddleware("finalizeOptions",r),s={},n=e.applyMiddleware("interceptRequest",void 0,{adapter:l$1,context:e});if(n){const e=setTimeout(t,0,null,n);return {abort:()=>clearTimeout(e)}}let a=new c$2;a instanceof u$2&&"object"==typeof o.fetch&&a.setInit(o.fetch,o.useAbortSignal??!0);const h=o.headers,d=o.timeout;let p=!1,f=!1,b=!1;if(a.onerror=e=>{m(a instanceof u$2?e instanceof Error?e:new Error(`Request error while attempting to reach is ${o.url}`,{cause:e}):new Error(`Request error while attempting to reach is ${o.url}${e.lengthComputable?`(${e.loaded} of ${e.total} bytes transferred)`:""}`));},a.ontimeout=e=>{m(new Error(`Request timeout while attempting to reach ${o.url}${e.lengthComputable?`(${e.loaded} of ${e.total} bytes transferred)`:""}`));},a.onabort=()=>{w(!0),p=!0;},a.onreadystatechange=()=>{d&&(w(),s.socket=setTimeout((()=>y("ESOCKETTIMEDOUT")),d.socket)),!p&&4===a.readyState&&0!==a.status&&function(){if(!(p||f||b)){if(0===a.status)return void m(new Error("Unknown XHR error"));w(),f=!0,t(null,{body:a.response||(""===a.responseType||"text"===a.responseType?a.responseText:""),url:o.url,method:o.method,headers:i(a.getAllResponseHeaders()),statusCode:a.status,statusMessage:a.statusText});}}();},a.open(o.method,o.url,!0),a.withCredentials=!!o.withCredentials,h&&a.setRequestHeader)for(const e in h)h.hasOwnProperty(e)&&a.setRequestHeader(e,h[e]);return o.rawBody&&(a.responseType="arraybuffer"),e.applyMiddleware("onRequest",{options:o,adapter:l$1,request:a,context:e}),a.send(o.body||null),d&&(s.connect=setTimeout((()=>y("ETIMEDOUT")),d.connect)),{abort:function(){p=!0,a&&a.abort();}};function y(t){b=!0,a.abort();const r=new Error("ESOCKETTIMEDOUT"===t?`Socket timed out on request to ${o.url}`:`Connection timed out on request to ${o.url}`);r.code=t,e.channels.error.publish(r);}function w(e){(e||p||a.readyState>=2&&s.connect)&&clearTimeout(s.connect),s.socket&&clearTimeout(s.socket);}function m(e){if(f)return;w(!0),f=!0,a=null;const r=e||new Error(`Network error while attempting to reach ${o.url}`);r.isNetworkError=!0,r.request=o,t(r);}},d=(e=[],t=h)=>n(e,t),p$1="browser";
|
|
@@ -24,7 +39,7 @@
|
|
|
24
39
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
25
40
|
PERFORMANCE OF THIS SOFTWARE.
|
|
26
41
|
***************************************************************************** */
|
|
27
|
-
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
42
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
28
43
|
|
|
29
44
|
var extendStatics = function(d, b) {
|
|
30
45
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -52,8 +67,8 @@
|
|
|
52
67
|
}
|
|
53
68
|
|
|
54
69
|
function __generator(thisArg, body) {
|
|
55
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
56
|
-
return g =
|
|
70
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
71
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
57
72
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
58
73
|
function step(op) {
|
|
59
74
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -125,8 +140,9 @@
|
|
|
125
140
|
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
126
141
|
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
127
142
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
128
|
-
return i =
|
|
129
|
-
function
|
|
143
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
144
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
145
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
130
146
|
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
131
147
|
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
132
148
|
function fulfill(value) { resume("next", value); }
|
|
@@ -304,7 +320,7 @@
|
|
|
304
320
|
})();
|
|
305
321
|
return Subscription;
|
|
306
322
|
}());
|
|
307
|
-
Subscription.EMPTY;
|
|
323
|
+
var EMPTY_SUBSCRIPTION = Subscription.EMPTY;
|
|
308
324
|
function isSubscription(value) {
|
|
309
325
|
return (value instanceof Subscription ||
|
|
310
326
|
(value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));
|
|
@@ -713,12 +729,404 @@
|
|
|
713
729
|
return OperatorSubscriber;
|
|
714
730
|
}(Subscriber));
|
|
715
731
|
|
|
732
|
+
var ObjectUnsubscribedError = createErrorClass(function (_super) {
|
|
733
|
+
return function ObjectUnsubscribedErrorImpl() {
|
|
734
|
+
_super(this);
|
|
735
|
+
this.name = 'ObjectUnsubscribedError';
|
|
736
|
+
this.message = 'object unsubscribed';
|
|
737
|
+
};
|
|
738
|
+
});
|
|
739
|
+
|
|
740
|
+
var Subject = (function (_super) {
|
|
741
|
+
__extends(Subject, _super);
|
|
742
|
+
function Subject() {
|
|
743
|
+
var _this = _super.call(this) || this;
|
|
744
|
+
_this.closed = false;
|
|
745
|
+
_this.currentObservers = null;
|
|
746
|
+
_this.observers = [];
|
|
747
|
+
_this.isStopped = false;
|
|
748
|
+
_this.hasError = false;
|
|
749
|
+
_this.thrownError = null;
|
|
750
|
+
return _this;
|
|
751
|
+
}
|
|
752
|
+
Subject.prototype.lift = function (operator) {
|
|
753
|
+
var subject = new AnonymousSubject(this, this);
|
|
754
|
+
subject.operator = operator;
|
|
755
|
+
return subject;
|
|
756
|
+
};
|
|
757
|
+
Subject.prototype._throwIfClosed = function () {
|
|
758
|
+
if (this.closed) {
|
|
759
|
+
throw new ObjectUnsubscribedError();
|
|
760
|
+
}
|
|
761
|
+
};
|
|
762
|
+
Subject.prototype.next = function (value) {
|
|
763
|
+
var _this = this;
|
|
764
|
+
errorContext(function () {
|
|
765
|
+
var e_1, _a;
|
|
766
|
+
_this._throwIfClosed();
|
|
767
|
+
if (!_this.isStopped) {
|
|
768
|
+
if (!_this.currentObservers) {
|
|
769
|
+
_this.currentObservers = Array.from(_this.observers);
|
|
770
|
+
}
|
|
771
|
+
try {
|
|
772
|
+
for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
773
|
+
var observer = _c.value;
|
|
774
|
+
observer.next(value);
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
778
|
+
finally {
|
|
779
|
+
try {
|
|
780
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
781
|
+
}
|
|
782
|
+
finally { if (e_1) throw e_1.error; }
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
});
|
|
786
|
+
};
|
|
787
|
+
Subject.prototype.error = function (err) {
|
|
788
|
+
var _this = this;
|
|
789
|
+
errorContext(function () {
|
|
790
|
+
_this._throwIfClosed();
|
|
791
|
+
if (!_this.isStopped) {
|
|
792
|
+
_this.hasError = _this.isStopped = true;
|
|
793
|
+
_this.thrownError = err;
|
|
794
|
+
var observers = _this.observers;
|
|
795
|
+
while (observers.length) {
|
|
796
|
+
observers.shift().error(err);
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
});
|
|
800
|
+
};
|
|
801
|
+
Subject.prototype.complete = function () {
|
|
802
|
+
var _this = this;
|
|
803
|
+
errorContext(function () {
|
|
804
|
+
_this._throwIfClosed();
|
|
805
|
+
if (!_this.isStopped) {
|
|
806
|
+
_this.isStopped = true;
|
|
807
|
+
var observers = _this.observers;
|
|
808
|
+
while (observers.length) {
|
|
809
|
+
observers.shift().complete();
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
};
|
|
814
|
+
Subject.prototype.unsubscribe = function () {
|
|
815
|
+
this.isStopped = this.closed = true;
|
|
816
|
+
this.observers = this.currentObservers = null;
|
|
817
|
+
};
|
|
818
|
+
Object.defineProperty(Subject.prototype, "observed", {
|
|
819
|
+
get: function () {
|
|
820
|
+
var _a;
|
|
821
|
+
return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
822
|
+
},
|
|
823
|
+
enumerable: false,
|
|
824
|
+
configurable: true
|
|
825
|
+
});
|
|
826
|
+
Subject.prototype._trySubscribe = function (subscriber) {
|
|
827
|
+
this._throwIfClosed();
|
|
828
|
+
return _super.prototype._trySubscribe.call(this, subscriber);
|
|
829
|
+
};
|
|
830
|
+
Subject.prototype._subscribe = function (subscriber) {
|
|
831
|
+
this._throwIfClosed();
|
|
832
|
+
this._checkFinalizedStatuses(subscriber);
|
|
833
|
+
return this._innerSubscribe(subscriber);
|
|
834
|
+
};
|
|
835
|
+
Subject.prototype._innerSubscribe = function (subscriber) {
|
|
836
|
+
var _this = this;
|
|
837
|
+
var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;
|
|
838
|
+
if (hasError || isStopped) {
|
|
839
|
+
return EMPTY_SUBSCRIPTION;
|
|
840
|
+
}
|
|
841
|
+
this.currentObservers = null;
|
|
842
|
+
observers.push(subscriber);
|
|
843
|
+
return new Subscription(function () {
|
|
844
|
+
_this.currentObservers = null;
|
|
845
|
+
arrRemove(observers, subscriber);
|
|
846
|
+
});
|
|
847
|
+
};
|
|
848
|
+
Subject.prototype._checkFinalizedStatuses = function (subscriber) {
|
|
849
|
+
var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;
|
|
850
|
+
if (hasError) {
|
|
851
|
+
subscriber.error(thrownError);
|
|
852
|
+
}
|
|
853
|
+
else if (isStopped) {
|
|
854
|
+
subscriber.complete();
|
|
855
|
+
}
|
|
856
|
+
};
|
|
857
|
+
Subject.prototype.asObservable = function () {
|
|
858
|
+
var observable = new Observable();
|
|
859
|
+
observable.source = this;
|
|
860
|
+
return observable;
|
|
861
|
+
};
|
|
862
|
+
Subject.create = function (destination, source) {
|
|
863
|
+
return new AnonymousSubject(destination, source);
|
|
864
|
+
};
|
|
865
|
+
return Subject;
|
|
866
|
+
}(Observable));
|
|
867
|
+
var AnonymousSubject = (function (_super) {
|
|
868
|
+
__extends(AnonymousSubject, _super);
|
|
869
|
+
function AnonymousSubject(destination, source) {
|
|
870
|
+
var _this = _super.call(this) || this;
|
|
871
|
+
_this.destination = destination;
|
|
872
|
+
_this.source = source;
|
|
873
|
+
return _this;
|
|
874
|
+
}
|
|
875
|
+
AnonymousSubject.prototype.next = function (value) {
|
|
876
|
+
var _a, _b;
|
|
877
|
+
(_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
|
|
878
|
+
};
|
|
879
|
+
AnonymousSubject.prototype.error = function (err) {
|
|
880
|
+
var _a, _b;
|
|
881
|
+
(_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
|
|
882
|
+
};
|
|
883
|
+
AnonymousSubject.prototype.complete = function () {
|
|
884
|
+
var _a, _b;
|
|
885
|
+
(_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
886
|
+
};
|
|
887
|
+
AnonymousSubject.prototype._subscribe = function (subscriber) {
|
|
888
|
+
var _a, _b;
|
|
889
|
+
return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
|
|
890
|
+
};
|
|
891
|
+
return AnonymousSubject;
|
|
892
|
+
}(Subject));
|
|
893
|
+
|
|
894
|
+
var dateTimestampProvider = {
|
|
895
|
+
now: function () {
|
|
896
|
+
return (dateTimestampProvider.delegate || Date).now();
|
|
897
|
+
},
|
|
898
|
+
delegate: undefined,
|
|
899
|
+
};
|
|
900
|
+
|
|
901
|
+
var ReplaySubject = (function (_super) {
|
|
902
|
+
__extends(ReplaySubject, _super);
|
|
903
|
+
function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {
|
|
904
|
+
if (_bufferSize === void 0) { _bufferSize = Infinity; }
|
|
905
|
+
if (_windowTime === void 0) { _windowTime = Infinity; }
|
|
906
|
+
if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }
|
|
907
|
+
var _this = _super.call(this) || this;
|
|
908
|
+
_this._bufferSize = _bufferSize;
|
|
909
|
+
_this._windowTime = _windowTime;
|
|
910
|
+
_this._timestampProvider = _timestampProvider;
|
|
911
|
+
_this._buffer = [];
|
|
912
|
+
_this._infiniteTimeWindow = true;
|
|
913
|
+
_this._infiniteTimeWindow = _windowTime === Infinity;
|
|
914
|
+
_this._bufferSize = Math.max(1, _bufferSize);
|
|
915
|
+
_this._windowTime = Math.max(1, _windowTime);
|
|
916
|
+
return _this;
|
|
917
|
+
}
|
|
918
|
+
ReplaySubject.prototype.next = function (value) {
|
|
919
|
+
var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;
|
|
920
|
+
if (!isStopped) {
|
|
921
|
+
_buffer.push(value);
|
|
922
|
+
!_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);
|
|
923
|
+
}
|
|
924
|
+
this._trimBuffer();
|
|
925
|
+
_super.prototype.next.call(this, value);
|
|
926
|
+
};
|
|
927
|
+
ReplaySubject.prototype._subscribe = function (subscriber) {
|
|
928
|
+
this._throwIfClosed();
|
|
929
|
+
this._trimBuffer();
|
|
930
|
+
var subscription = this._innerSubscribe(subscriber);
|
|
931
|
+
var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;
|
|
932
|
+
var copy = _buffer.slice();
|
|
933
|
+
for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {
|
|
934
|
+
subscriber.next(copy[i]);
|
|
935
|
+
}
|
|
936
|
+
this._checkFinalizedStatuses(subscriber);
|
|
937
|
+
return subscription;
|
|
938
|
+
};
|
|
939
|
+
ReplaySubject.prototype._trimBuffer = function () {
|
|
940
|
+
var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;
|
|
941
|
+
var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;
|
|
942
|
+
_bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);
|
|
943
|
+
if (!_infiniteTimeWindow) {
|
|
944
|
+
var now = _timestampProvider.now();
|
|
945
|
+
var last = 0;
|
|
946
|
+
for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {
|
|
947
|
+
last = i;
|
|
948
|
+
}
|
|
949
|
+
last && _buffer.splice(0, last + 1);
|
|
950
|
+
}
|
|
951
|
+
};
|
|
952
|
+
return ReplaySubject;
|
|
953
|
+
}(Subject));
|
|
954
|
+
|
|
955
|
+
var Action = (function (_super) {
|
|
956
|
+
__extends(Action, _super);
|
|
957
|
+
function Action(scheduler, work) {
|
|
958
|
+
return _super.call(this) || this;
|
|
959
|
+
}
|
|
960
|
+
Action.prototype.schedule = function (state, delay) {
|
|
961
|
+
return this;
|
|
962
|
+
};
|
|
963
|
+
return Action;
|
|
964
|
+
}(Subscription));
|
|
965
|
+
|
|
966
|
+
var intervalProvider = {
|
|
967
|
+
setInterval: function (handler, timeout) {
|
|
968
|
+
var args = [];
|
|
969
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
970
|
+
args[_i - 2] = arguments[_i];
|
|
971
|
+
}
|
|
972
|
+
return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));
|
|
973
|
+
},
|
|
974
|
+
clearInterval: function (handle) {
|
|
975
|
+
return (clearInterval)(handle);
|
|
976
|
+
},
|
|
977
|
+
delegate: undefined,
|
|
978
|
+
};
|
|
979
|
+
|
|
980
|
+
var AsyncAction = (function (_super) {
|
|
981
|
+
__extends(AsyncAction, _super);
|
|
982
|
+
function AsyncAction(scheduler, work) {
|
|
983
|
+
var _this = _super.call(this, scheduler, work) || this;
|
|
984
|
+
_this.scheduler = scheduler;
|
|
985
|
+
_this.work = work;
|
|
986
|
+
_this.pending = false;
|
|
987
|
+
return _this;
|
|
988
|
+
}
|
|
989
|
+
AsyncAction.prototype.schedule = function (state, delay) {
|
|
990
|
+
var _a;
|
|
991
|
+
if (delay === void 0) { delay = 0; }
|
|
992
|
+
if (this.closed) {
|
|
993
|
+
return this;
|
|
994
|
+
}
|
|
995
|
+
this.state = state;
|
|
996
|
+
var id = this.id;
|
|
997
|
+
var scheduler = this.scheduler;
|
|
998
|
+
if (id != null) {
|
|
999
|
+
this.id = this.recycleAsyncId(scheduler, id, delay);
|
|
1000
|
+
}
|
|
1001
|
+
this.pending = true;
|
|
1002
|
+
this.delay = delay;
|
|
1003
|
+
this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);
|
|
1004
|
+
return this;
|
|
1005
|
+
};
|
|
1006
|
+
AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {
|
|
1007
|
+
if (delay === void 0) { delay = 0; }
|
|
1008
|
+
return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);
|
|
1009
|
+
};
|
|
1010
|
+
AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {
|
|
1011
|
+
if (delay === void 0) { delay = 0; }
|
|
1012
|
+
if (delay != null && this.delay === delay && this.pending === false) {
|
|
1013
|
+
return id;
|
|
1014
|
+
}
|
|
1015
|
+
if (id != null) {
|
|
1016
|
+
intervalProvider.clearInterval(id);
|
|
1017
|
+
}
|
|
1018
|
+
return undefined;
|
|
1019
|
+
};
|
|
1020
|
+
AsyncAction.prototype.execute = function (state, delay) {
|
|
1021
|
+
if (this.closed) {
|
|
1022
|
+
return new Error('executing a cancelled action');
|
|
1023
|
+
}
|
|
1024
|
+
this.pending = false;
|
|
1025
|
+
var error = this._execute(state, delay);
|
|
1026
|
+
if (error) {
|
|
1027
|
+
return error;
|
|
1028
|
+
}
|
|
1029
|
+
else if (this.pending === false && this.id != null) {
|
|
1030
|
+
this.id = this.recycleAsyncId(this.scheduler, this.id, null);
|
|
1031
|
+
}
|
|
1032
|
+
};
|
|
1033
|
+
AsyncAction.prototype._execute = function (state, _delay) {
|
|
1034
|
+
var errored = false;
|
|
1035
|
+
var errorValue;
|
|
1036
|
+
try {
|
|
1037
|
+
this.work(state);
|
|
1038
|
+
}
|
|
1039
|
+
catch (e) {
|
|
1040
|
+
errored = true;
|
|
1041
|
+
errorValue = e ? e : new Error('Scheduled action threw falsy error');
|
|
1042
|
+
}
|
|
1043
|
+
if (errored) {
|
|
1044
|
+
this.unsubscribe();
|
|
1045
|
+
return errorValue;
|
|
1046
|
+
}
|
|
1047
|
+
};
|
|
1048
|
+
AsyncAction.prototype.unsubscribe = function () {
|
|
1049
|
+
if (!this.closed) {
|
|
1050
|
+
var _a = this, id = _a.id, scheduler = _a.scheduler;
|
|
1051
|
+
var actions = scheduler.actions;
|
|
1052
|
+
this.work = this.state = this.scheduler = null;
|
|
1053
|
+
this.pending = false;
|
|
1054
|
+
arrRemove(actions, this);
|
|
1055
|
+
if (id != null) {
|
|
1056
|
+
this.id = this.recycleAsyncId(scheduler, id, null);
|
|
1057
|
+
}
|
|
1058
|
+
this.delay = null;
|
|
1059
|
+
_super.prototype.unsubscribe.call(this);
|
|
1060
|
+
}
|
|
1061
|
+
};
|
|
1062
|
+
return AsyncAction;
|
|
1063
|
+
}(Action));
|
|
1064
|
+
|
|
1065
|
+
var Scheduler = (function () {
|
|
1066
|
+
function Scheduler(schedulerActionCtor, now) {
|
|
1067
|
+
if (now === void 0) { now = Scheduler.now; }
|
|
1068
|
+
this.schedulerActionCtor = schedulerActionCtor;
|
|
1069
|
+
this.now = now;
|
|
1070
|
+
}
|
|
1071
|
+
Scheduler.prototype.schedule = function (work, delay, state) {
|
|
1072
|
+
if (delay === void 0) { delay = 0; }
|
|
1073
|
+
return new this.schedulerActionCtor(this, work).schedule(state, delay);
|
|
1074
|
+
};
|
|
1075
|
+
Scheduler.now = dateTimestampProvider.now;
|
|
1076
|
+
return Scheduler;
|
|
1077
|
+
}());
|
|
1078
|
+
|
|
1079
|
+
var AsyncScheduler = (function (_super) {
|
|
1080
|
+
__extends(AsyncScheduler, _super);
|
|
1081
|
+
function AsyncScheduler(SchedulerAction, now) {
|
|
1082
|
+
if (now === void 0) { now = Scheduler.now; }
|
|
1083
|
+
var _this = _super.call(this, SchedulerAction, now) || this;
|
|
1084
|
+
_this.actions = [];
|
|
1085
|
+
_this._active = false;
|
|
1086
|
+
return _this;
|
|
1087
|
+
}
|
|
1088
|
+
AsyncScheduler.prototype.flush = function (action) {
|
|
1089
|
+
var actions = this.actions;
|
|
1090
|
+
if (this._active) {
|
|
1091
|
+
actions.push(action);
|
|
1092
|
+
return;
|
|
1093
|
+
}
|
|
1094
|
+
var error;
|
|
1095
|
+
this._active = true;
|
|
1096
|
+
do {
|
|
1097
|
+
if ((error = action.execute(action.state, action.delay))) {
|
|
1098
|
+
break;
|
|
1099
|
+
}
|
|
1100
|
+
} while ((action = actions.shift()));
|
|
1101
|
+
this._active = false;
|
|
1102
|
+
if (error) {
|
|
1103
|
+
while ((action = actions.shift())) {
|
|
1104
|
+
action.unsubscribe();
|
|
1105
|
+
}
|
|
1106
|
+
throw error;
|
|
1107
|
+
}
|
|
1108
|
+
};
|
|
1109
|
+
return AsyncScheduler;
|
|
1110
|
+
}(Scheduler));
|
|
1111
|
+
|
|
1112
|
+
var asyncScheduler = new AsyncScheduler(AsyncAction);
|
|
1113
|
+
var async = asyncScheduler;
|
|
1114
|
+
|
|
1115
|
+
var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });
|
|
1116
|
+
|
|
1117
|
+
function isScheduler(value) {
|
|
1118
|
+
return value && isFunction(value.schedule);
|
|
1119
|
+
}
|
|
1120
|
+
|
|
716
1121
|
function last(arr) {
|
|
717
1122
|
return arr[arr.length - 1];
|
|
718
1123
|
}
|
|
719
1124
|
function popResultSelector(args) {
|
|
720
1125
|
return isFunction(last(args)) ? args.pop() : undefined;
|
|
721
1126
|
}
|
|
1127
|
+
function popScheduler(args) {
|
|
1128
|
+
return isScheduler(last(args)) ? args.pop() : undefined;
|
|
1129
|
+
}
|
|
722
1130
|
|
|
723
1131
|
var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
|
|
724
1132
|
|
|
@@ -917,8 +1325,161 @@
|
|
|
917
1325
|
});
|
|
918
1326
|
}
|
|
919
1327
|
|
|
1328
|
+
function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {
|
|
1329
|
+
if (delay === void 0) { delay = 0; }
|
|
1330
|
+
if (repeat === void 0) { repeat = false; }
|
|
1331
|
+
var scheduleSubscription = scheduler.schedule(function () {
|
|
1332
|
+
work();
|
|
1333
|
+
if (repeat) {
|
|
1334
|
+
parentSubscription.add(this.schedule(null, delay));
|
|
1335
|
+
}
|
|
1336
|
+
else {
|
|
1337
|
+
this.unsubscribe();
|
|
1338
|
+
}
|
|
1339
|
+
}, delay);
|
|
1340
|
+
parentSubscription.add(scheduleSubscription);
|
|
1341
|
+
if (!repeat) {
|
|
1342
|
+
return scheduleSubscription;
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
function observeOn(scheduler, delay) {
|
|
1347
|
+
if (delay === void 0) { delay = 0; }
|
|
1348
|
+
return operate(function (source, subscriber) {
|
|
1349
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));
|
|
1350
|
+
});
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
function subscribeOn(scheduler, delay) {
|
|
1354
|
+
if (delay === void 0) { delay = 0; }
|
|
1355
|
+
return operate(function (source, subscriber) {
|
|
1356
|
+
subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));
|
|
1357
|
+
});
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
function scheduleObservable(input, scheduler) {
|
|
1361
|
+
return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
function schedulePromise(input, scheduler) {
|
|
1365
|
+
return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
function scheduleArray(input, scheduler) {
|
|
1369
|
+
return new Observable(function (subscriber) {
|
|
1370
|
+
var i = 0;
|
|
1371
|
+
return scheduler.schedule(function () {
|
|
1372
|
+
if (i === input.length) {
|
|
1373
|
+
subscriber.complete();
|
|
1374
|
+
}
|
|
1375
|
+
else {
|
|
1376
|
+
subscriber.next(input[i++]);
|
|
1377
|
+
if (!subscriber.closed) {
|
|
1378
|
+
this.schedule();
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
});
|
|
1382
|
+
});
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
function scheduleIterable(input, scheduler) {
|
|
1386
|
+
return new Observable(function (subscriber) {
|
|
1387
|
+
var iterator$1;
|
|
1388
|
+
executeSchedule(subscriber, scheduler, function () {
|
|
1389
|
+
iterator$1 = input[iterator]();
|
|
1390
|
+
executeSchedule(subscriber, scheduler, function () {
|
|
1391
|
+
var _a;
|
|
1392
|
+
var value;
|
|
1393
|
+
var done;
|
|
1394
|
+
try {
|
|
1395
|
+
(_a = iterator$1.next(), value = _a.value, done = _a.done);
|
|
1396
|
+
}
|
|
1397
|
+
catch (err) {
|
|
1398
|
+
subscriber.error(err);
|
|
1399
|
+
return;
|
|
1400
|
+
}
|
|
1401
|
+
if (done) {
|
|
1402
|
+
subscriber.complete();
|
|
1403
|
+
}
|
|
1404
|
+
else {
|
|
1405
|
+
subscriber.next(value);
|
|
1406
|
+
}
|
|
1407
|
+
}, 0, true);
|
|
1408
|
+
});
|
|
1409
|
+
return function () { return isFunction(iterator$1 === null || iterator$1 === void 0 ? void 0 : iterator$1.return) && iterator$1.return(); };
|
|
1410
|
+
});
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1413
|
+
function scheduleAsyncIterable(input, scheduler) {
|
|
1414
|
+
if (!input) {
|
|
1415
|
+
throw new Error('Iterable cannot be null');
|
|
1416
|
+
}
|
|
1417
|
+
return new Observable(function (subscriber) {
|
|
1418
|
+
executeSchedule(subscriber, scheduler, function () {
|
|
1419
|
+
var iterator = input[Symbol.asyncIterator]();
|
|
1420
|
+
executeSchedule(subscriber, scheduler, function () {
|
|
1421
|
+
iterator.next().then(function (result) {
|
|
1422
|
+
if (result.done) {
|
|
1423
|
+
subscriber.complete();
|
|
1424
|
+
}
|
|
1425
|
+
else {
|
|
1426
|
+
subscriber.next(result.value);
|
|
1427
|
+
}
|
|
1428
|
+
});
|
|
1429
|
+
}, 0, true);
|
|
1430
|
+
});
|
|
1431
|
+
});
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1434
|
+
function scheduleReadableStreamLike(input, scheduler) {
|
|
1435
|
+
return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
function scheduled(input, scheduler) {
|
|
1439
|
+
if (input != null) {
|
|
1440
|
+
if (isInteropObservable(input)) {
|
|
1441
|
+
return scheduleObservable(input, scheduler);
|
|
1442
|
+
}
|
|
1443
|
+
if (isArrayLike(input)) {
|
|
1444
|
+
return scheduleArray(input, scheduler);
|
|
1445
|
+
}
|
|
1446
|
+
if (isPromise(input)) {
|
|
1447
|
+
return schedulePromise(input, scheduler);
|
|
1448
|
+
}
|
|
1449
|
+
if (isAsyncIterable(input)) {
|
|
1450
|
+
return scheduleAsyncIterable(input, scheduler);
|
|
1451
|
+
}
|
|
1452
|
+
if (isIterable(input)) {
|
|
1453
|
+
return scheduleIterable(input, scheduler);
|
|
1454
|
+
}
|
|
1455
|
+
if (isReadableStreamLike(input)) {
|
|
1456
|
+
return scheduleReadableStreamLike(input, scheduler);
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
throw createInvalidObservableTypeError(input);
|
|
1460
|
+
}
|
|
1461
|
+
|
|
920
1462
|
function from(input, scheduler) {
|
|
921
|
-
return innerFrom(input);
|
|
1463
|
+
return scheduler ? scheduled(input, scheduler) : innerFrom(input);
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1466
|
+
function of() {
|
|
1467
|
+
var args = [];
|
|
1468
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1469
|
+
args[_i] = arguments[_i];
|
|
1470
|
+
}
|
|
1471
|
+
var scheduler = popScheduler(args);
|
|
1472
|
+
return from(args, scheduler);
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
function throwError(errorOrErrorFactory, scheduler) {
|
|
1476
|
+
var errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function () { return errorOrErrorFactory; };
|
|
1477
|
+
var init = function (subscriber) { return subscriber.error(errorFactory()); };
|
|
1478
|
+
return new Observable(init);
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
function isObservable(obj) {
|
|
1482
|
+
return !!obj && (obj instanceof Observable || (isFunction(obj.lift) && isFunction(obj.subscribe)));
|
|
922
1483
|
}
|
|
923
1484
|
|
|
924
1485
|
var EmptyError = createErrorClass(function (_super) { return function EmptyErrorImpl() {
|
|
@@ -949,6 +1510,10 @@
|
|
|
949
1510
|
});
|
|
950
1511
|
}
|
|
951
1512
|
|
|
1513
|
+
function isValidDate$1(value) {
|
|
1514
|
+
return value instanceof Date && !isNaN(value);
|
|
1515
|
+
}
|
|
1516
|
+
|
|
952
1517
|
function map(project, thisArg) {
|
|
953
1518
|
return operate(function (source, subscriber) {
|
|
954
1519
|
var index = 0;
|
|
@@ -976,7 +1541,7 @@
|
|
|
976
1541
|
var remainingFirstValues = length;
|
|
977
1542
|
var _loop_1 = function (i) {
|
|
978
1543
|
maybeSchedule(scheduler, function () {
|
|
979
|
-
var source = from(observables[i]);
|
|
1544
|
+
var source = from(observables[i], scheduler);
|
|
980
1545
|
var hasFirstValue = false;
|
|
981
1546
|
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
982
1547
|
values[i] = value;
|
|
@@ -1006,6 +1571,108 @@
|
|
|
1006
1571
|
}
|
|
1007
1572
|
}
|
|
1008
1573
|
|
|
1574
|
+
function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {
|
|
1575
|
+
var buffer = [];
|
|
1576
|
+
var active = 0;
|
|
1577
|
+
var index = 0;
|
|
1578
|
+
var isComplete = false;
|
|
1579
|
+
var checkComplete = function () {
|
|
1580
|
+
if (isComplete && !buffer.length && !active) {
|
|
1581
|
+
subscriber.complete();
|
|
1582
|
+
}
|
|
1583
|
+
};
|
|
1584
|
+
var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };
|
|
1585
|
+
var doInnerSub = function (value) {
|
|
1586
|
+
active++;
|
|
1587
|
+
var innerComplete = false;
|
|
1588
|
+
innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {
|
|
1589
|
+
{
|
|
1590
|
+
subscriber.next(innerValue);
|
|
1591
|
+
}
|
|
1592
|
+
}, function () {
|
|
1593
|
+
innerComplete = true;
|
|
1594
|
+
}, undefined, function () {
|
|
1595
|
+
if (innerComplete) {
|
|
1596
|
+
try {
|
|
1597
|
+
active--;
|
|
1598
|
+
var _loop_1 = function () {
|
|
1599
|
+
var bufferedValue = buffer.shift();
|
|
1600
|
+
if (innerSubScheduler) ;
|
|
1601
|
+
else {
|
|
1602
|
+
doInnerSub(bufferedValue);
|
|
1603
|
+
}
|
|
1604
|
+
};
|
|
1605
|
+
while (buffer.length && active < concurrent) {
|
|
1606
|
+
_loop_1();
|
|
1607
|
+
}
|
|
1608
|
+
checkComplete();
|
|
1609
|
+
}
|
|
1610
|
+
catch (err) {
|
|
1611
|
+
subscriber.error(err);
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1614
|
+
}));
|
|
1615
|
+
};
|
|
1616
|
+
source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {
|
|
1617
|
+
isComplete = true;
|
|
1618
|
+
checkComplete();
|
|
1619
|
+
}));
|
|
1620
|
+
return function () {
|
|
1621
|
+
};
|
|
1622
|
+
}
|
|
1623
|
+
|
|
1624
|
+
function mergeMap(project, resultSelector, concurrent) {
|
|
1625
|
+
if (concurrent === void 0) { concurrent = Infinity; }
|
|
1626
|
+
if (isFunction(resultSelector)) {
|
|
1627
|
+
return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);
|
|
1628
|
+
}
|
|
1629
|
+
else if (typeof resultSelector === 'number') {
|
|
1630
|
+
concurrent = resultSelector;
|
|
1631
|
+
}
|
|
1632
|
+
return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
function mergeAll(concurrent) {
|
|
1636
|
+
return mergeMap(identity, concurrent);
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
function concatAll() {
|
|
1640
|
+
return mergeAll(1);
|
|
1641
|
+
}
|
|
1642
|
+
|
|
1643
|
+
function concat() {
|
|
1644
|
+
var args = [];
|
|
1645
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1646
|
+
args[_i] = arguments[_i];
|
|
1647
|
+
}
|
|
1648
|
+
return concatAll()(from(args, popScheduler(args)));
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
function defer(observableFactory) {
|
|
1652
|
+
return new Observable(function (subscriber) {
|
|
1653
|
+
innerFrom(observableFactory()).subscribe(subscriber);
|
|
1654
|
+
});
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
function timer(dueTime, intervalOrScheduler, scheduler) {
|
|
1658
|
+
if (scheduler === void 0) { scheduler = async; }
|
|
1659
|
+
return new Observable(function (subscriber) {
|
|
1660
|
+
var due = isValidDate$1(dueTime) ? +dueTime - scheduler.now() : dueTime;
|
|
1661
|
+
if (due < 0) {
|
|
1662
|
+
due = 0;
|
|
1663
|
+
}
|
|
1664
|
+
var n = 0;
|
|
1665
|
+
return scheduler.schedule(function () {
|
|
1666
|
+
if (!subscriber.closed) {
|
|
1667
|
+
subscriber.next(n++);
|
|
1668
|
+
{
|
|
1669
|
+
subscriber.complete();
|
|
1670
|
+
}
|
|
1671
|
+
}
|
|
1672
|
+
}, due);
|
|
1673
|
+
});
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1009
1676
|
var isArray$1 = Array.isArray;
|
|
1010
1677
|
function argsOrArgArray(args) {
|
|
1011
1678
|
return args.length === 1 && isArray$1(args[0]) ? args[0] : args;
|
|
@@ -1018,6 +1685,30 @@
|
|
|
1018
1685
|
});
|
|
1019
1686
|
}
|
|
1020
1687
|
|
|
1688
|
+
function catchError(selector) {
|
|
1689
|
+
return operate(function (source, subscriber) {
|
|
1690
|
+
var innerSub = null;
|
|
1691
|
+
var syncUnsub = false;
|
|
1692
|
+
var handledResult;
|
|
1693
|
+
innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {
|
|
1694
|
+
handledResult = innerFrom(selector(err, catchError(selector)(source)));
|
|
1695
|
+
if (innerSub) {
|
|
1696
|
+
innerSub.unsubscribe();
|
|
1697
|
+
innerSub = null;
|
|
1698
|
+
handledResult.subscribe(subscriber);
|
|
1699
|
+
}
|
|
1700
|
+
else {
|
|
1701
|
+
syncUnsub = true;
|
|
1702
|
+
}
|
|
1703
|
+
}));
|
|
1704
|
+
if (syncUnsub) {
|
|
1705
|
+
innerSub.unsubscribe();
|
|
1706
|
+
innerSub = null;
|
|
1707
|
+
handledResult.subscribe(subscriber);
|
|
1708
|
+
}
|
|
1709
|
+
});
|
|
1710
|
+
}
|
|
1711
|
+
|
|
1021
1712
|
function combineLatest() {
|
|
1022
1713
|
var args = [];
|
|
1023
1714
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
@@ -1039,6 +1730,100 @@
|
|
|
1039
1730
|
return combineLatest.apply(void 0, __spreadArray([], __read(otherSources)));
|
|
1040
1731
|
}
|
|
1041
1732
|
|
|
1733
|
+
function share(options) {
|
|
1734
|
+
if (options === void 0) { options = {}; }
|
|
1735
|
+
var _a = options.connector, connector = _a === void 0 ? function () { return new Subject(); } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d;
|
|
1736
|
+
return function (wrapperSource) {
|
|
1737
|
+
var connection;
|
|
1738
|
+
var resetConnection;
|
|
1739
|
+
var subject;
|
|
1740
|
+
var refCount = 0;
|
|
1741
|
+
var hasCompleted = false;
|
|
1742
|
+
var hasErrored = false;
|
|
1743
|
+
var cancelReset = function () {
|
|
1744
|
+
resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();
|
|
1745
|
+
resetConnection = undefined;
|
|
1746
|
+
};
|
|
1747
|
+
var reset = function () {
|
|
1748
|
+
cancelReset();
|
|
1749
|
+
connection = subject = undefined;
|
|
1750
|
+
hasCompleted = hasErrored = false;
|
|
1751
|
+
};
|
|
1752
|
+
var resetAndUnsubscribe = function () {
|
|
1753
|
+
var conn = connection;
|
|
1754
|
+
reset();
|
|
1755
|
+
conn === null || conn === void 0 ? void 0 : conn.unsubscribe();
|
|
1756
|
+
};
|
|
1757
|
+
return operate(function (source, subscriber) {
|
|
1758
|
+
refCount++;
|
|
1759
|
+
if (!hasErrored && !hasCompleted) {
|
|
1760
|
+
cancelReset();
|
|
1761
|
+
}
|
|
1762
|
+
var dest = (subject = subject !== null && subject !== void 0 ? subject : connector());
|
|
1763
|
+
subscriber.add(function () {
|
|
1764
|
+
refCount--;
|
|
1765
|
+
if (refCount === 0 && !hasErrored && !hasCompleted) {
|
|
1766
|
+
resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);
|
|
1767
|
+
}
|
|
1768
|
+
});
|
|
1769
|
+
dest.subscribe(subscriber);
|
|
1770
|
+
if (!connection &&
|
|
1771
|
+
refCount > 0) {
|
|
1772
|
+
connection = new SafeSubscriber({
|
|
1773
|
+
next: function (value) { return dest.next(value); },
|
|
1774
|
+
error: function (err) {
|
|
1775
|
+
hasErrored = true;
|
|
1776
|
+
cancelReset();
|
|
1777
|
+
resetConnection = handleReset(reset, resetOnError, err);
|
|
1778
|
+
dest.error(err);
|
|
1779
|
+
},
|
|
1780
|
+
complete: function () {
|
|
1781
|
+
hasCompleted = true;
|
|
1782
|
+
cancelReset();
|
|
1783
|
+
resetConnection = handleReset(reset, resetOnComplete);
|
|
1784
|
+
dest.complete();
|
|
1785
|
+
},
|
|
1786
|
+
});
|
|
1787
|
+
innerFrom(source).subscribe(connection);
|
|
1788
|
+
}
|
|
1789
|
+
})(wrapperSource);
|
|
1790
|
+
};
|
|
1791
|
+
}
|
|
1792
|
+
function handleReset(reset, on) {
|
|
1793
|
+
var args = [];
|
|
1794
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
1795
|
+
args[_i - 2] = arguments[_i];
|
|
1796
|
+
}
|
|
1797
|
+
if (on === true) {
|
|
1798
|
+
reset();
|
|
1799
|
+
return;
|
|
1800
|
+
}
|
|
1801
|
+
if (on === false) {
|
|
1802
|
+
return;
|
|
1803
|
+
}
|
|
1804
|
+
var onSubscriber = new SafeSubscriber({
|
|
1805
|
+
next: function () {
|
|
1806
|
+
onSubscriber.unsubscribe();
|
|
1807
|
+
reset();
|
|
1808
|
+
},
|
|
1809
|
+
});
|
|
1810
|
+
return innerFrom(on.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber);
|
|
1811
|
+
}
|
|
1812
|
+
|
|
1813
|
+
function shareReplay(configOrBufferSize, windowTime, scheduler) {
|
|
1814
|
+
var bufferSize;
|
|
1815
|
+
var refCount = false;
|
|
1816
|
+
{
|
|
1817
|
+
bufferSize = (configOrBufferSize );
|
|
1818
|
+
}
|
|
1819
|
+
return share({
|
|
1820
|
+
connector: function () { return new ReplaySubject(bufferSize, windowTime, scheduler); },
|
|
1821
|
+
resetOnError: true,
|
|
1822
|
+
resetOnComplete: false,
|
|
1823
|
+
resetOnRefCountZero: refCount,
|
|
1824
|
+
});
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1042
1827
|
var s = { 0: 8203, 1: 8204, 2: 8205, 3: 8290, 4: 8291, 5: 8288, 6: 65279, 7: 8289, 8: 119155, 9: 119156, a: 119157, b: 119158, c: 119159, d: 119160, e: 119161, f: 119162 }, c = { 0: 8203, 1: 8204, 2: 8205, 3: 65279 }, u = new Array(4).fill(String.fromCodePoint(c[0])).join("");
|
|
1043
1828
|
function E(t) {
|
|
1044
1829
|
let e = JSON.stringify(t);
|
|
@@ -1264,7 +2049,7 @@
|
|
|
1264
2049
|
if (!(/^\d{4}-\d{2}-\d{2}$/.test(apiVersion) && apiDate instanceof Date && apiDate.getTime() > 0))
|
|
1265
2050
|
throw new Error("Invalid API version string, expected `1` or date in format `YYYY-MM-DD`");
|
|
1266
2051
|
}
|
|
1267
|
-
|
|
2052
|
+
function validateApiPerspective(perspective) {
|
|
1268
2053
|
if (Array.isArray(perspective)) {
|
|
1269
2054
|
for (const perspectiveValue of perspective)
|
|
1270
2055
|
if (perspectiveValue !== "published" && perspectiveValue !== "drafts" && !(typeof perspectiveValue == "string" && perspectiveValue.startsWith("r") && perspectiveValue !== "raw"))
|
|
@@ -1284,7 +2069,8 @@
|
|
|
1284
2069
|
"Invalid API perspective string, expected `published`, `previewDrafts` or `raw`"
|
|
1285
2070
|
);
|
|
1286
2071
|
}
|
|
1287
|
-
}
|
|
2072
|
+
}
|
|
2073
|
+
const initConfig = (config, prevConfig) => {
|
|
1288
2074
|
const specifiedConfig = {
|
|
1289
2075
|
...prevConfig,
|
|
1290
2076
|
...config,
|
|
@@ -1325,6 +2111,112 @@
|
|
|
1325
2111
|
const hostParts = newConfig.apiHost.split("://", 2), protocol = hostParts[0], host = hostParts[1], cdnHost = newConfig.isDefaultApi ? defaultCdnHost : host;
|
|
1326
2112
|
return newConfig.useProjectHostname ? (newConfig.url = `${protocol}://${newConfig.projectId}.${host}/v${newConfig.apiVersion}`, newConfig.cdnUrl = `${protocol}://${newConfig.projectId}.${cdnHost}/v${newConfig.apiVersion}`) : (newConfig.url = `${newConfig.apiHost}/v${newConfig.apiVersion}`, newConfig.cdnUrl = newConfig.url), newConfig;
|
|
1327
2113
|
};
|
|
2114
|
+
class ConnectionFailedError extends Error {
|
|
2115
|
+
name = "ConnectionFailedError";
|
|
2116
|
+
}
|
|
2117
|
+
class DisconnectError extends Error {
|
|
2118
|
+
name = "DisconnectError";
|
|
2119
|
+
reason;
|
|
2120
|
+
constructor(message, reason, options = {}) {
|
|
2121
|
+
super(message, options), this.reason = reason;
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
2124
|
+
class ChannelError extends Error {
|
|
2125
|
+
name = "ChannelError";
|
|
2126
|
+
data;
|
|
2127
|
+
constructor(message, data) {
|
|
2128
|
+
super(message), this.data = data;
|
|
2129
|
+
}
|
|
2130
|
+
}
|
|
2131
|
+
class MessageError extends Error {
|
|
2132
|
+
name = "MessageError";
|
|
2133
|
+
data;
|
|
2134
|
+
constructor(message, data, options = {}) {
|
|
2135
|
+
super(message, options), this.data = data;
|
|
2136
|
+
}
|
|
2137
|
+
}
|
|
2138
|
+
class MessageParseError extends Error {
|
|
2139
|
+
name = "MessageParseError";
|
|
2140
|
+
}
|
|
2141
|
+
const REQUIRED_EVENTS = ["channelError", "disconnect"];
|
|
2142
|
+
function connectEventSource(initEventSource, events) {
|
|
2143
|
+
return defer(() => {
|
|
2144
|
+
const es = initEventSource();
|
|
2145
|
+
return isObservable(es) ? es : of(es);
|
|
2146
|
+
}).pipe(mergeMap((es) => connectWithESInstance(es, events)));
|
|
2147
|
+
}
|
|
2148
|
+
function connectWithESInstance(es, events) {
|
|
2149
|
+
return new Observable((observer) => {
|
|
2150
|
+
const emitOpen = events.includes("open"), emitReconnect = events.includes("reconnect");
|
|
2151
|
+
function onError(evt) {
|
|
2152
|
+
if ("data" in evt) {
|
|
2153
|
+
const [parseError, event] = parseEvent(evt);
|
|
2154
|
+
observer.error(
|
|
2155
|
+
parseError ? new MessageParseError("Unable to parse EventSource error message", { cause: event }) : new MessageError((event?.data).message, event)
|
|
2156
|
+
);
|
|
2157
|
+
return;
|
|
2158
|
+
}
|
|
2159
|
+
es.readyState === es.CLOSED ? observer.error(new ConnectionFailedError("EventSource connection failed")) : emitReconnect && observer.next({ type: "reconnect" });
|
|
2160
|
+
}
|
|
2161
|
+
function onOpen() {
|
|
2162
|
+
observer.next({ type: "open" });
|
|
2163
|
+
}
|
|
2164
|
+
function onMessage(message) {
|
|
2165
|
+
const [parseError, event] = parseEvent(message);
|
|
2166
|
+
if (parseError) {
|
|
2167
|
+
observer.error(
|
|
2168
|
+
new MessageParseError("Unable to parse EventSource message", { cause: parseError })
|
|
2169
|
+
);
|
|
2170
|
+
return;
|
|
2171
|
+
}
|
|
2172
|
+
if (message.type === "channelError") {
|
|
2173
|
+
observer.error(new ChannelError(extractErrorMessage(event?.data), event.data));
|
|
2174
|
+
return;
|
|
2175
|
+
}
|
|
2176
|
+
if (message.type === "disconnect") {
|
|
2177
|
+
observer.error(
|
|
2178
|
+
new DisconnectError(
|
|
2179
|
+
`Server disconnected client: ${event.data?.reason || "unknown error"}`
|
|
2180
|
+
)
|
|
2181
|
+
);
|
|
2182
|
+
return;
|
|
2183
|
+
}
|
|
2184
|
+
observer.next({
|
|
2185
|
+
type: message.type,
|
|
2186
|
+
id: message.lastEventId,
|
|
2187
|
+
...event.data ? { data: event.data } : {}
|
|
2188
|
+
});
|
|
2189
|
+
}
|
|
2190
|
+
es.addEventListener("error", onError), emitOpen && es.addEventListener("open", onOpen);
|
|
2191
|
+
const cleanedEvents = [.../* @__PURE__ */ new Set([...REQUIRED_EVENTS, ...events])].filter((type) => type !== "error" && type !== "open" && type !== "reconnect");
|
|
2192
|
+
return cleanedEvents.forEach((type) => es.addEventListener(type, onMessage)), () => {
|
|
2193
|
+
es.removeEventListener("error", onError), emitOpen && es.removeEventListener("open", onOpen), cleanedEvents.forEach((type) => es.removeEventListener(type, onMessage)), es.close();
|
|
2194
|
+
};
|
|
2195
|
+
});
|
|
2196
|
+
}
|
|
2197
|
+
function parseEvent(message) {
|
|
2198
|
+
try {
|
|
2199
|
+
const data = typeof message.data == "string" && JSON.parse(message.data);
|
|
2200
|
+
return [
|
|
2201
|
+
null,
|
|
2202
|
+
{
|
|
2203
|
+
type: message.type,
|
|
2204
|
+
id: message.lastEventId,
|
|
2205
|
+
...isEmptyObject(data) ? {} : { data }
|
|
2206
|
+
}
|
|
2207
|
+
];
|
|
2208
|
+
} catch (err) {
|
|
2209
|
+
return [err, null];
|
|
2210
|
+
}
|
|
2211
|
+
}
|
|
2212
|
+
function extractErrorMessage(err) {
|
|
2213
|
+
return err.error ? err.error.description ? err.error.description : typeof err.error == "string" ? err.error : JSON.stringify(err.error, null, 2) : err.message || "Unknown listener error";
|
|
2214
|
+
}
|
|
2215
|
+
function isEmptyObject(data) {
|
|
2216
|
+
for (const _ in data)
|
|
2217
|
+
return !1;
|
|
2218
|
+
return !0;
|
|
2219
|
+
}
|
|
1328
2220
|
function getSelection(sel) {
|
|
1329
2221
|
if (typeof sel == "string")
|
|
1330
2222
|
return { id: sel };
|
|
@@ -1941,7 +2833,18 @@ ${selectionOpts}`);
|
|
|
1941
2833
|
);
|
|
1942
2834
|
}
|
|
1943
2835
|
var defaults = (obj, defaults2) => Object.keys(defaults2).concat(Object.keys(obj)).reduce((target, prop) => (target[prop] = typeof obj[prop] > "u" ? defaults2[prop] : obj[prop], target), {});
|
|
1944
|
-
const pick = (obj, props) => props.reduce((selection, prop) => (typeof obj[prop] > "u" || (selection[prop] = obj[prop]), selection), {}),
|
|
2836
|
+
const pick = (obj, props) => props.reduce((selection, prop) => (typeof obj[prop] > "u" || (selection[prop] = obj[prop]), selection), {}), eventSourcePolyfill = defer(() => Promise.resolve().then(function () { return browser$1; })).pipe(
|
|
2837
|
+
map(({ default: EventSource2 }) => EventSource2),
|
|
2838
|
+
shareReplay(1)
|
|
2839
|
+
);
|
|
2840
|
+
function reconnectOnConnectionFailure() {
|
|
2841
|
+
return function(source) {
|
|
2842
|
+
return source.pipe(
|
|
2843
|
+
catchError((err, caught) => err instanceof ConnectionFailedError ? concat(of({ type: "reconnect" }), timer(1e3).pipe(mergeMap(() => caught))) : throwError(() => err))
|
|
2844
|
+
);
|
|
2845
|
+
};
|
|
2846
|
+
}
|
|
2847
|
+
const MAX_URL_LENGTH = 14800, possibleOptions = [
|
|
1945
2848
|
"includePreviousRevision",
|
|
1946
2849
|
"includeResult",
|
|
1947
2850
|
"includeMutations",
|
|
@@ -1954,68 +2857,23 @@ ${selectionOpts}`);
|
|
|
1954
2857
|
function _listen(query, params, opts = {}) {
|
|
1955
2858
|
const { url, token, withCredentials, requestTagPrefix } = this.config(), tag = opts.tag && requestTagPrefix ? [requestTagPrefix, opts.tag].join(".") : opts.tag, options = { ...defaults(opts, defaultOptions), tag }, listenOpts = pick(options, possibleOptions), qs = encodeQueryString({ query, params, options: { tag, ...listenOpts } }), uri = `${url}${_getDataUrl(this, "listen", qs)}`;
|
|
1956
2859
|
if (uri.length > MAX_URL_LENGTH)
|
|
1957
|
-
return
|
|
1958
|
-
const listenFor = options.events ? options.events : ["mutation"],
|
|
2860
|
+
return throwError(() => new Error("Query too large for listener"));
|
|
2861
|
+
const listenFor = options.events ? options.events : ["mutation"], esOptions = {};
|
|
1959
2862
|
return (token || withCredentials) && (esOptions.withCredentials = !0), token && (esOptions.headers = {
|
|
1960
2863
|
Authorization: `Bearer ${token}`
|
|
1961
|
-
}),
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
function onDisconnect() {
|
|
1975
|
-
stopped = !0, unsubscribe(), observer.complete();
|
|
1976
|
-
}
|
|
1977
|
-
function unsubscribe() {
|
|
1978
|
-
es && (es.removeEventListener("error", onError), es.removeEventListener("channelError", onChannelError), es.removeEventListener("disconnect", onDisconnect), listenFor.forEach((type) => es.removeEventListener(type, onMessage)), es.close());
|
|
1979
|
-
}
|
|
1980
|
-
function emitReconnect() {
|
|
1981
|
-
shouldEmitReconnect && observer.next({ type: "reconnect" });
|
|
1982
|
-
}
|
|
1983
|
-
async function getEventSource() {
|
|
1984
|
-
const { default: EventSource2 } = await Promise.resolve().then(function () { return browser$1; });
|
|
1985
|
-
if (unsubscribed)
|
|
1986
|
-
return;
|
|
1987
|
-
const evs = new EventSource2(uri, esOptions);
|
|
1988
|
-
return evs.addEventListener("error", onError), evs.addEventListener("channelError", onChannelError), evs.addEventListener("disconnect", onDisconnect), listenFor.forEach((type) => evs.addEventListener(type, onMessage)), evs;
|
|
1989
|
-
}
|
|
1990
|
-
function open() {
|
|
1991
|
-
getEventSource().then((eventSource) => {
|
|
1992
|
-
eventSource && (es = eventSource, unsubscribed && unsubscribe());
|
|
1993
|
-
}).catch((reason) => {
|
|
1994
|
-
observer.error(reason), stop();
|
|
1995
|
-
});
|
|
1996
|
-
}
|
|
1997
|
-
function stop() {
|
|
1998
|
-
stopped = !0, unsubscribe(), unsubscribed = !0;
|
|
1999
|
-
}
|
|
2000
|
-
return stop;
|
|
2001
|
-
});
|
|
2002
|
-
}
|
|
2003
|
-
function parseEvent$1(event) {
|
|
2004
|
-
try {
|
|
2005
|
-
const data = event.data && JSON.parse(event.data) || {};
|
|
2006
|
-
return Object.assign({ type: event.type }, data);
|
|
2007
|
-
} catch (err) {
|
|
2008
|
-
return err;
|
|
2009
|
-
}
|
|
2010
|
-
}
|
|
2011
|
-
function cooerceError(err) {
|
|
2012
|
-
if (err instanceof Error)
|
|
2013
|
-
return err;
|
|
2014
|
-
const evt = parseEvent$1(err);
|
|
2015
|
-
return evt instanceof Error ? evt : new Error(extractErrorMessage(evt));
|
|
2016
|
-
}
|
|
2017
|
-
function extractErrorMessage(err) {
|
|
2018
|
-
return err.error ? err.error.description ? err.error.description : typeof err.error == "string" ? err.error : JSON.stringify(err.error, null, 2) : err.message || "Unknown listener error";
|
|
2864
|
+
}), connectEventSource(() => (
|
|
2865
|
+
// use polyfill if there is no global EventSource or if we need to set headers
|
|
2866
|
+
(typeof EventSource > "u" || esOptions.headers ? eventSourcePolyfill : of(EventSource)).pipe(map((EventSource2) => new EventSource2(uri, esOptions)))
|
|
2867
|
+
), listenFor).pipe(
|
|
2868
|
+
reconnectOnConnectionFailure(),
|
|
2869
|
+
filter((event) => listenFor.includes(event.type)),
|
|
2870
|
+
map(
|
|
2871
|
+
(event) => ({
|
|
2872
|
+
type: event.type,
|
|
2873
|
+
..."data" in event ? event.data : {}
|
|
2874
|
+
})
|
|
2875
|
+
)
|
|
2876
|
+
);
|
|
2019
2877
|
}
|
|
2020
2878
|
const requiredApiVersion = "2021-03-26";
|
|
2021
2879
|
class LiveClient {
|
|
@@ -2051,75 +2909,53 @@ ${selectionOpts}`);
|
|
|
2051
2909
|
);
|
|
2052
2910
|
const path = _getDataUrl(this.#client, "live/events"), url = new URL(this.#client.getUrl(path, !1)), tag = _tag && requestTagPrefix ? [requestTagPrefix, _tag].join(".") : _tag;
|
|
2053
2911
|
tag && url.searchParams.set("tag", tag), includeDrafts && url.searchParams.set("includeDrafts", "true");
|
|
2054
|
-
const
|
|
2055
|
-
|
|
2912
|
+
const esOptions = {};
|
|
2913
|
+
includeDrafts && token && (esOptions.headers = {
|
|
2056
2914
|
Authorization: `Bearer ${token}`
|
|
2057
|
-
}), includeDrafts && withCredentials && (esOptions.withCredentials = !0)
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
}
|
|
2073
|
-
function unsubscribe() {
|
|
2074
|
-
if (es) {
|
|
2075
|
-
es.removeEventListener("error", onError);
|
|
2076
|
-
for (const type of listenFor)
|
|
2077
|
-
es.removeEventListener(type, onMessage);
|
|
2078
|
-
es.close();
|
|
2915
|
+
}), includeDrafts && withCredentials && (esOptions.withCredentials = !0);
|
|
2916
|
+
const events = connectEventSource(() => (
|
|
2917
|
+
// use polyfill if there is no global EventSource or if we need to set headers
|
|
2918
|
+
(typeof EventSource > "u" || esOptions.headers ? eventSourcePolyfill : of(EventSource)).pipe(map((EventSource2) => new EventSource2(url.href, esOptions)))
|
|
2919
|
+
), [
|
|
2920
|
+
"message",
|
|
2921
|
+
"restart",
|
|
2922
|
+
"welcome",
|
|
2923
|
+
"reconnect"
|
|
2924
|
+
]).pipe(
|
|
2925
|
+
reconnectOnConnectionFailure(),
|
|
2926
|
+
map((event) => {
|
|
2927
|
+
if (event.type === "message") {
|
|
2928
|
+
const { data, ...rest } = event;
|
|
2929
|
+
return { ...rest, tags: data.tags };
|
|
2079
2930
|
}
|
|
2931
|
+
return event;
|
|
2932
|
+
})
|
|
2933
|
+
), checkCors = fetchObservable(url, {
|
|
2934
|
+
method: "OPTIONS",
|
|
2935
|
+
mode: "cors",
|
|
2936
|
+
credentials: esOptions.withCredentials ? "include" : "omit",
|
|
2937
|
+
headers: esOptions.headers
|
|
2938
|
+
}).pipe(
|
|
2939
|
+
mergeMap(() => EMPTY),
|
|
2940
|
+
catchError(() => {
|
|
2941
|
+
throw new CorsOriginError({ projectId: projectId2 });
|
|
2942
|
+
})
|
|
2943
|
+
);
|
|
2944
|
+
return concat(checkCors, events);
|
|
2945
|
+
}
|
|
2946
|
+
}
|
|
2947
|
+
function fetchObservable(url, init) {
|
|
2948
|
+
return new Observable((observer) => {
|
|
2949
|
+
const controller = new AbortController(), signal = controller.signal;
|
|
2950
|
+
return fetch(url, { ...init, signal: controller.signal }).then(
|
|
2951
|
+
(response) => {
|
|
2952
|
+
observer.next(response), observer.complete();
|
|
2953
|
+
},
|
|
2954
|
+
(err) => {
|
|
2955
|
+
signal.aborted || observer.error(err);
|
|
2080
2956
|
}
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
if (unsubscribed)
|
|
2084
|
-
return;
|
|
2085
|
-
try {
|
|
2086
|
-
if (await fetch(url, {
|
|
2087
|
-
method: "OPTIONS",
|
|
2088
|
-
mode: "cors",
|
|
2089
|
-
credentials: esOptions.withCredentials ? "include" : "omit",
|
|
2090
|
-
headers: esOptions.headers
|
|
2091
|
-
}), unsubscribed)
|
|
2092
|
-
return;
|
|
2093
|
-
} catch {
|
|
2094
|
-
throw new CorsOriginError({ projectId: projectId2 });
|
|
2095
|
-
}
|
|
2096
|
-
const evs = new EventSourceImplementation(url.toString(), esOptions);
|
|
2097
|
-
evs.addEventListener("error", onError);
|
|
2098
|
-
for (const type of listenFor)
|
|
2099
|
-
evs.addEventListener(type, onMessage);
|
|
2100
|
-
return evs;
|
|
2101
|
-
}
|
|
2102
|
-
function open() {
|
|
2103
|
-
getEventSource().then((eventSource) => {
|
|
2104
|
-
eventSource && (es = eventSource, unsubscribed && unsubscribe());
|
|
2105
|
-
}).catch((reason) => {
|
|
2106
|
-
observer.error(reason), stop();
|
|
2107
|
-
});
|
|
2108
|
-
}
|
|
2109
|
-
function stop() {
|
|
2110
|
-
stopped = !0, unsubscribe(), unsubscribed = !0;
|
|
2111
|
-
}
|
|
2112
|
-
return stop;
|
|
2113
|
-
});
|
|
2114
|
-
}
|
|
2115
|
-
}
|
|
2116
|
-
function parseEvent(event) {
|
|
2117
|
-
try {
|
|
2118
|
-
const data = event.data && JSON.parse(event.data) || {};
|
|
2119
|
-
return { type: event.type, id: event.lastEventId, ...data };
|
|
2120
|
-
} catch (err) {
|
|
2121
|
-
return err;
|
|
2122
|
-
}
|
|
2957
|
+
), () => controller.abort();
|
|
2958
|
+
});
|
|
2123
2959
|
}
|
|
2124
2960
|
class ObservableDatasetsClient {
|
|
2125
2961
|
#client;
|
|
@@ -4053,15 +4889,20 @@ ${selectionOpts}`);
|
|
|
4053
4889
|
var browserExports = /*@__PURE__*/ requireBrowser();
|
|
4054
4890
|
var browser = /*@__PURE__*/getDefaultExportFromCjs(browserExports);
|
|
4055
4891
|
|
|
4056
|
-
var browser$1 = /*#__PURE__*/
|
|
4892
|
+
var browser$1 = /*#__PURE__*/_mergeNamespaces({
|
|
4057
4893
|
__proto__: null,
|
|
4058
4894
|
default: browser
|
|
4059
|
-
});
|
|
4895
|
+
}, [browserExports]);
|
|
4060
4896
|
|
|
4061
4897
|
exports.BasePatch = BasePatch;
|
|
4062
4898
|
exports.BaseTransaction = BaseTransaction;
|
|
4899
|
+
exports.ChannelError = ChannelError;
|
|
4063
4900
|
exports.ClientError = ClientError;
|
|
4901
|
+
exports.ConnectionFailedError = ConnectionFailedError;
|
|
4064
4902
|
exports.CorsOriginError = CorsOriginError;
|
|
4903
|
+
exports.DisconnectError = DisconnectError;
|
|
4904
|
+
exports.MessageError = MessageError;
|
|
4905
|
+
exports.MessageParseError = MessageParseError;
|
|
4065
4906
|
exports.ObservablePatch = ObservablePatch;
|
|
4066
4907
|
exports.ObservableSanityClient = ObservableSanityClient;
|
|
4067
4908
|
exports.ObservableTransaction = ObservableTransaction;
|
|
@@ -4069,6 +4910,7 @@ ${selectionOpts}`);
|
|
|
4069
4910
|
exports.SanityClient = SanityClient;
|
|
4070
4911
|
exports.ServerError = ServerError;
|
|
4071
4912
|
exports.Transaction = Transaction;
|
|
4913
|
+
exports.connectEventSource = connectEventSource;
|
|
4072
4914
|
exports.createClient = createClient;
|
|
4073
4915
|
exports.default = deprecatedCreateClient;
|
|
4074
4916
|
exports.requester = requester;
|