@opra/client 0.30.0 → 0.31.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/browser.js CHANGED
@@ -3,4 +3,4 @@
3
3
  * http://www.panates.com
4
4
  *****************************************/
5
5
 
6
- var $=Object.defineProperty,se=Object.defineProperties;var ce=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var Z=(c,e,r)=>e in c?$(c,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):c[e]=r,x=(c,e)=>{for(var r in e||(e={}))le.call(e,r)&&Z(c,r,e[r]);if(Y)for(var r of Y(e))de.call(e,r)&&Z(c,r,e[r]);return c},k=(c,e)=>se(c,ce(e)),l=(c,e)=>$(c,"name",{value:e,configurable:!0});var A=class A{constructor(e){this.api=e==null?void 0:e.api}};l(A,"Backend");var p=A;var he=Symbol.for("kClient"),u=Symbol.for("kBackend"),n=Symbol.for("kContext");var G=class G{constructor(e){Object.defineProperty(this,u,{enumerable:!1,value:e})}};l(G,"ClientBase");var j=G;var M=class M extends Error{constructor(e,r){super(e.message),this.cause=r,this.issues=e.issues||[],this.status=e.status,r&&(this.cause=r,r.stack&&(this.stack=r.stack))}};l(M,"ClientError");var S=M;import{Observable as me}from"rxjs";import{isReadableStreamLike as ue}from"rxjs/internal/util/isReadableStreamLike";import z from"@browsery/type-is";import{isBlob as fe}from"@opra/common";var I=class I extends p{constructor(e,r){super(r),this.serviceUrl=e}};l(I,"HttpBackend");var R=I;var v=class v{constructor(e){this.hasBody=!1,this.headers=(e==null?void 0:e.headers)instanceof Headers?e==null?void 0:e.headers:new Headers(e==null?void 0:e.headers),this.status=(e==null?void 0:e.status)||200,this.statusText=(e==null?void 0:e.statusText)||"OK",this.url=(e==null?void 0:e.url)||null,this.ok=this.status>=200&&this.status<300,this.body=e==null?void 0:e.body,this.hasBody=(e==null?void 0:e.body)!=null||!!(e!=null&&e.hasBody),this.contentType=(this.headers.get("content-type")||"").split(";")[0]}clone(e){return new v(x(x({},this),e))}};l(v,"HttpResponse");var T=v;var y;(function(c){c.Sent="Sent",c.UploadProgress="UploadProgress",c.ResponseHeader="ResponseHeader",c.DownloadProgress="DownloadProgress",c.Response="Response",c.User="User"})(y||(y={}));var F=class F extends R{constructor(e,r){var t,a,s,d,m,w;super(e,r),this.interceptors=Array.from(new Set([...(r==null?void 0:r.interceptors)||[]])),this.defaults=k(x({},r==null?void 0:r.defaults),{headers:((t=r==null?void 0:r.defaults)==null?void 0:t.headers)instanceof Headers?(a=r==null?void 0:r.defaults)==null?void 0:a.headers:new Headers((s=r==null?void 0:r.defaults)==null?void 0:s.headers),params:((d=r==null?void 0:r.defaults)==null?void 0:d.params)instanceof URLSearchParams?(m=r==null?void 0:r.defaults)==null?void 0:m.params:new URLSearchParams((w=r==null?void 0:r.defaults)==null?void 0:w.params)})}handle(e){return new me(r=>{(async()=>{let t=this.prepareRequest(e);if(t.body&&e.reportProgress){let C=t.body,O=t.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new TransformStream({transform(b,H){H.enqueue(b),g+=b.byteLength,r.next({type:y.UploadProgress,request:t,total:D,loaded:g})}});t=new Request(t.url,{cache:t.cache,credentials:t.credentials,headers:t.headers,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,body:C.pipeThrough(q),window:e.window,duplex:"half"})}let a=this.send(t);r.next({request:t,type:y.Sent});let s=await a,d=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,hasBody:!!s.body});r.next({request:t,type:y.ResponseHeader,response:d});let m;if(s.body)if(e.reportProgress){let C=s.body,O=s.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new Response(new ReadableStream({async start(b){let H=C.getReader();for(;;){let{done:ae,value:X}=await H.read();if(ae)break;g+=X.byteLength,b.enqueue(X),r.next({type:y.DownloadProgress,request:t,total:D,loaded:g})}b.close()}}));m=await this.parseBody(q)}else m=await this.parseBody(s);let w=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,body:m});r.next({request:t,type:y.Response,response:w}),r.complete()})().catch(t=>r.error(t))})}send(e){return fetch(e)}prepareRequest(e){let r=e.headers||new Headers,t=k(x({},e),{headers:r}),a=t.body;if(a){let s;typeof a=="string"||typeof a=="number"||typeof a=="boolean"?(s='text/plain; charset="UTF-8"',t.body=new Blob([String(a)],{type:s}),r.set("Content-Length",String(t.body.size)),delete t.duplex):ue(a)?(s="application/octet-stream",t.duplex="half"):Buffer.isBuffer(a)?(s="application/octet-stream",r.set("Content-Length",String(a.length)),delete t.duplex):fe(a)?(s=a.type||"application/octet-stream",r.set("Content-Length",String(a.size)),delete t.duplex):(s='application/json;charset="UTF-8"',t.body=new Blob([JSON.stringify(a)],{type:s}),r.set("Content-Length",String(t.body.size)),delete t.duplex),s&&!r.has("Content-Type")&&r.set("Content-Type",s)}return new Request(t.url.toString(),t)}createResponse(e){return new T(e)}async parseBody(e){let r,t=e.headers.get("Content-Type")||"";if(z.is(t,["json","application/*+json"]))r=await e.json(),typeof r=="string"&&(r=JSON.parse(r));else if(z.is(t,["text"]))r=await e.text();else if(z.is(t,["multipart"]))r=await e.formData();else{let a=await e.arrayBuffer();a.byteLength&&(r=a)}return r}};l(F,"FetchBackend");var P=F;import{ApiDocumentFactory as xe,ResponsiveMap as re}from"@opra/common";import{toArrayDef as f}from"putil-varhelpers";import{OpraURL as K}from"@opra/common";import{lastValueFrom as ee,Observable as ye}from"rxjs";import ie from"@browsery/type-is";import{OpraURL as oe}from"@opra/common";var i;(function(c){c.ResponseHeader="response-header",c.Response="response",c.Body="body",c.Events="events"})(i||(i={}));var J=class J{constructor(e,r){this.chain=e.reduceRight((t,a)=>(s,d)=>a.intercept(s,{handle:m=>t(m,d)}),ne),this.finalHandler=r}handle(e){return this.chain(e,r=>this.finalHandler.handle(r))}};l(J,"HttpInterceptorHandler");var B=J;function ne(c,e){return e(c)}l(ne,"chainEnd");var E=class E extends ye{constructor(e,r){super(a=>{let s=this[n].observe;new B(e.interceptors||[],this[u]).handle(this[n]).subscribe({next(d){if(s===i.Events){a.next(d);return}if(s===i.ResponseHeader&&d.type===y.ResponseHeader){a.next(d.response),a.complete();return}if(d.type===y.Response){let{response:m}=d;if(s===i.Response){a.next(m),a.complete();return}let w=ie.is(d.response.contentType||"",["application/opra+json"]);if(m.status>=400&&m.status<600){a.error(new S({message:m.status+" "+m.statusText,status:m.status,issues:w?m.body.errors:void 0})),a.complete();return}a.next(d.response.body),a.complete()}},error(d){a.error(d)},complete(){a.complete()}})}),Object.defineProperty(this,u,{enumerable:!1,value:e});let t=new oe(r==null?void 0:r.url,e.serviceUrl.toString());Object.defineProperty(this,n,{enumerable:!1,value:k(x({},r),{observe:i.Body,headers:new Headers(r==null?void 0:r.headers),url:t})})}clone(){return new E(this[u],this[n])}options(e){return Object.assign(this[n],e),this}header(e,r){let t=this[n].headers;return typeof e=="object"?((e instanceof Headers?e:new Headers(e)).forEach((s,d)=>{d.toLowerCase()==="set-cookie"?t.append(d,s):t.set(d,s)}),this):(r==null||r===""?t.delete(e):t.append(e,String(r)),this)}param(e,r){let t=this[n].url.searchParams;return typeof e=="object"?((e instanceof URLSearchParams?e:new URLSearchParams(e)).forEach((s,d)=>t.set(d,s)),this):(r==null?t.delete(e):t.set(e,String(r)),this)}observe(e){if(e===this[n].observe)return this;let r=this.clone();return r[n].observe=e||i.Body,r}getBody(){return ee(this.observe(i.Body))}getResponse(){return ee(this.observe(i.Response))}};l(E,"HttpRequestObservable");var h=E;var N=class N{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new h(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",f(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",f(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",f(r.omit,[]).join(",")),t}delete(e){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let r=new K;return r.join({resource:this._path,key:e}),new h(this._backend,{method:"DELETE",url:r})}deleteMany(e){let r=new h(this._backend,{method:"DELETE",url:this._path});return e!=null&&e.filter&&r.param("filter",String(e.filter)),r}get(e,r){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let t=new K;t.join({resource:this._path,key:e});let a=new h(this._backend,{method:"GET",url:t});return r!=null&&r.include&&a.param("include",f(r.include,[]).join(",")),r!=null&&r.pick&&a.param("pick",f(r.pick,[]).join(",")),r!=null&&r.omit&&a.param("omit",f(r.omit,[]).join(",")),a}findMany(e){let r=new h(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",f(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",f(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",f(e.omit,[]).join(",")),e!=null&&e.sort&&r.param("sort",f(e.sort,[]).join(",")),e!=null&&e.filter&&r.param("filter",String(e.filter)),(e==null?void 0:e.limit)!=null&&r.param("limit",String(e.limit)),(e==null?void 0:e.skip)!=null&&r.param("skip",String(e.skip)),(e==null?void 0:e.count)!=null&&r.param("count",String(e.count)),(e==null?void 0:e.distinct)!=null&&r.param("distinct",String(e.distinct)),r}update(e,r,t){if(e==null)throw new TypeError("'id' argument must have a value");let a=new K;a.join({resource:this._path,key:e});let s=new h(this._backend,{method:"PATCH",url:a,body:r});return t!=null&&t.include&&s.param("include",f(t.include,[]).join(",")),t!=null&&t.pick&&s.param("pick",f(t.pick,[]).join(",")),t!=null&&t.omit&&s.param("omit",f(t.omit,[]).join(",")),s}updateMany(e,r){let t=new h(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.filter&&t.param("filter",String(r.filter)),t}};l(N,"HttpCollectionNode");var _=N;import{toArrayDef as o}from"putil-varhelpers";var V=class V{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new h(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}delete(){return new h(this._backend,{method:"DELETE",url:this._path})}get(e){let r=new h(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",o(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",o(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",o(e.omit,[]).join(",")),r}update(e,r){let t=new h(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}};l(V,"HttpSingletonNode");var L=V;var Q=class Q extends j{constructor(e){super(e),this._collectionCache=new re,this._singletonCache=new re}get serviceUrl(){return this[u].serviceUrl}async getMetadata(){let e=this._metadataPromise;if(e)return e;let r=new h(this[u],{method:"GET",url:"/",headers:new Headers({accept:"application/json"})});return this._metadataPromise=e=r.getBody(),await e.then(async t=>{if(!t)throw new Error("No response returned.");let a=await xe.createDocument(t);return this[u].api=a,a}).catch(t=>{throw t.message="Unable to fetch metadata from service url ("+this.serviceUrl+"). "+t.message,t}).finally(()=>delete this._metadataPromise)}collection(e){let r=this._collectionCache.get(e);return r||(r=new _(this[u],e),this._collectionCache.set(e,r)),r}singleton(e){let r=this._singletonCache.get(e);return r||(r=new L(this[u],e),this._singletonCache.set(e,r)),r}action(e,r){let t=new h(this[u],{method:"GET",url:e});return r&&(Object.keys(r).forEach(a=>r[a]=String(r[a])),t.param(r)),t}};l(Q,"HttpClientBase");var U=Q;var W=class W extends U{constructor(e,r){super(new P(e,r))}get defaults(){return this[u].defaults}};l(W,"OpraHttpClient");var te=W;export{p as Backend,j as ClientBase,S as ClientError,P as FetchBackend,R as HttpBackend,U as HttpClientBase,_ as HttpCollectionNode,y as HttpEventType,i as HttpObserveType,h as HttpRequestObservable,T as HttpResponse,L as HttpSingletonNode,te as OpraHttpClient,u as kBackend,he as kClient,n as kContext};
6
+ var $=Object.defineProperty,se=Object.defineProperties;var ce=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var Z=(l,e,r)=>e in l?$(l,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[e]=r,x=(l,e)=>{for(var r in e||(e={}))le.call(e,r)&&Z(l,r,e[r]);if(Y)for(var r of Y(e))de.call(e,r)&&Z(l,r,e[r]);return l},k=(l,e)=>se(l,ce(e)),d=(l,e)=>$(l,"name",{value:e,configurable:!0});var A=class A{constructor(e){this.api=e==null?void 0:e.api}};d(A,"Backend");var p=A;var he=Symbol.for("kClient"),f=Symbol.for("kBackend"),n=Symbol.for("kContext");var G=class G{constructor(e){Object.defineProperty(this,f,{enumerable:!1,value:e})}};d(G,"ClientBase");var j=G;var M=class M extends Error{constructor(e,r){super(e.message),this.cause=r,this.issues=e.issues||[],this.status=e.status,r&&(this.cause=r,r.stack&&(this.stack=r.stack))}};d(M,"ClientError");var S=M;import{Observable as me}from"rxjs";import{isReadableStreamLike as fe}from"rxjs/internal/util/isReadableStreamLike";import I from"@browsery/type-is";import{isBlob as ue,OpraURL as ne}from"@opra/common";var z=class z extends p{constructor(e,r){super(r),this.serviceUrl=e}};d(z,"HttpBackend");var R=z;var T=class T{constructor(e){this.hasBody=!1,this.headers=(e==null?void 0:e.headers)instanceof Headers?e==null?void 0:e.headers:new Headers(e==null?void 0:e.headers),this.status=(e==null?void 0:e.status)||200,this.statusText=(e==null?void 0:e.statusText)||"OK",this.url=(e==null?void 0:e.url)||null,this.ok=this.status>=200&&this.status<300,this.body=e==null?void 0:e.body,this.hasBody=(e==null?void 0:e.body)!=null||!!(e!=null&&e.hasBody),this.contentType=(this.headers.get("content-type")||"").split(";")[0]}clone(e){return new T(x(x({},this),e))}};d(T,"HttpResponse");var v=T;var i;(function(l){l.Sent="Sent",l.UploadProgress="UploadProgress",l.ResponseHeader="ResponseHeader",l.DownloadProgress="DownloadProgress",l.Response="Response",l.User="User"})(i||(i={}));var F=class F extends R{constructor(e,r){var t,s,a,c,h,w;super(e,r),this.interceptors=Array.from(new Set([...(r==null?void 0:r.interceptors)||[]])),this.defaults=k(x({},r==null?void 0:r.defaults),{headers:((t=r==null?void 0:r.defaults)==null?void 0:t.headers)instanceof Headers?(s=r==null?void 0:r.defaults)==null?void 0:s.headers:new Headers((a=r==null?void 0:r.defaults)==null?void 0:a.headers),params:((c=r==null?void 0:r.defaults)==null?void 0:c.params)instanceof URLSearchParams?(h=r==null?void 0:r.defaults)==null?void 0:h.params:new URLSearchParams((w=r==null?void 0:r.defaults)==null?void 0:w.params)})}handle(e){return new me(r=>{(async()=>{let t=this.prepareRequest(e);if(t.body&&e.reportProgress){let C=t.body,O=t.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new TransformStream({transform(b,H){H.enqueue(b),g+=b.byteLength,r.next({type:i.UploadProgress,request:t,total:D,loaded:g})}});t=new Request(t.url,{cache:t.cache,credentials:t.credentials,headers:t.headers,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,body:C.pipeThrough(q),window:e.window,duplex:"half"})}let s=this.send(t);r.next({request:t,type:i.Sent});let a=await s,c=this.createResponse({url:a.url,headers:a.headers,status:a.status,statusText:a.statusText,hasBody:!!a.body});r.next({request:t,type:i.ResponseHeader,response:c});let h;if(a.body)if(e.reportProgress){let C=a.body,O=a.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new Response(new ReadableStream({async start(b){let H=C.getReader();for(;;){let{done:ae,value:X}=await H.read();if(ae)break;g+=X.byteLength,b.enqueue(X),r.next({type:i.DownloadProgress,request:t,total:D,loaded:g})}b.close()}}));h=await this.parseBody(q)}else h=await this.parseBody(a);let w=this.createResponse({url:a.url,headers:a.headers,status:a.status,statusText:a.statusText,body:h});r.next({request:t,type:i.Response,response:w}),r.complete()})().catch(t=>r.error(t))})}send(e){return fetch(e)}prepareRequest(e){let r=e.headers||new Headers,t=k(x({},e),{headers:r});this.defaults.headers.forEach((c,h)=>{r.has(h)||r.set(h,c)});let s=new ne(t.url,this.serviceUrl);this.defaults.params.size&&(this.defaults.params.forEach((c,h)=>{s.searchParams.has(h)||s.searchParams.set(h,c)}),t.url=s.toString());let a=t.body;if(a){let c;typeof a=="string"||typeof a=="number"||typeof a=="boolean"?(c='text/plain; charset="UTF-8"',t.body=new Blob([String(a)],{type:c}),r.set("Content-Length",String(t.body.size)),delete t.duplex):fe(a)?(c="application/octet-stream",t.duplex="half"):Buffer.isBuffer(a)?(c="application/octet-stream",r.set("Content-Length",String(a.length)),delete t.duplex):ue(a)?(c=a.type||"application/octet-stream",r.set("Content-Length",String(a.size)),delete t.duplex):(c='application/json;charset="UTF-8"',t.body=new Blob([JSON.stringify(a)],{type:c}),r.set("Content-Length",String(t.body.size)),delete t.duplex),c&&!r.has("Content-Type")&&r.set("Content-Type",c)}return new Request(s.toString(),t)}createResponse(e){return new v(e)}async parseBody(e){let r,t=e.headers.get("Content-Type")||"";if(I.is(t,["json","application/*+json"]))r=await e.json(),typeof r=="string"&&(r=JSON.parse(r));else if(I.is(t,["text"]))r=await e.text();else if(I.is(t,["multipart"]))r=await e.formData();else{let s=await e.arrayBuffer();s.byteLength&&(r=s)}return r}};d(F,"FetchBackend");var P=F;import{ApiDocumentFactory as we,ResponsiveMap as re}from"@opra/common";import{toArrayDef as u}from"putil-varhelpers";import{OpraURL as K}from"@opra/common";import{lastValueFrom as ee,Observable as ye}from"rxjs";import oe from"@browsery/type-is";import{OpraURL as xe}from"@opra/common";var y;(function(l){l.ResponseHeader="response-header",l.Response="response",l.Body="body",l.Events="events"})(y||(y={}));var J=class J{constructor(e,r){this.chain=e.reduceRight((t,s)=>(a,c)=>s.intercept(a,{handle:h=>t(h,c)}),ie),this.finalHandler=r}handle(e){return this.chain(e,r=>this.finalHandler.handle(r))}};d(J,"HttpInterceptorHandler");var E=J;function ie(l,e){return e(l)}d(ie,"chainEnd");var B=class B extends ye{constructor(e,r){super(s=>{let a=this[n].observe;new E(e.interceptors||[],this[f]).handle(this[n]).subscribe({next(c){if(a===y.Events){s.next(c);return}if(a===y.ResponseHeader&&c.type===i.ResponseHeader){s.next(c.response),s.complete();return}if(c.type===i.Response){let{response:h}=c;if(a===y.Response){s.next(h),s.complete();return}let w=oe.is(c.response.contentType||"",["application/opra+json"]);if(h.status>=400&&h.status<600){s.error(new S({message:h.status+" "+h.statusText,status:h.status,issues:w?h.body.errors:void 0})),s.complete();return}s.next(c.response.body),s.complete()}},error(c){s.error(c)},complete(){s.complete()}})}),Object.defineProperty(this,f,{enumerable:!1,value:e});let t=new xe(r==null?void 0:r.url,e.serviceUrl.toString());Object.defineProperty(this,n,{enumerable:!1,value:k(x({},r),{observe:y.Body,headers:new Headers(r==null?void 0:r.headers),url:t})})}clone(){return new B(this[f],this[n])}options(e){return Object.assign(this[n],e),this}header(e,r){let t=this[n].headers;return typeof e=="object"?((e instanceof Headers?e:new Headers(e)).forEach((a,c)=>{c.toLowerCase()==="set-cookie"?t.append(c,a):t.set(c,a)}),this):(r==null||r===""?t.delete(e):t.append(e,String(r)),this)}param(e,r){let t=this[n].url.searchParams;return typeof e=="object"?((e instanceof URLSearchParams?e:new URLSearchParams(e)).forEach((a,c)=>t.set(c,a)),this):(r==null?t.delete(e):t.set(e,String(r)),this)}observe(e){if(e===this[n].observe)return this;let r=this.clone();return r[n].observe=e||y.Body,r}getBody(){return ee(this.observe(y.Body))}getResponse(){return ee(this.observe(y.Response))}};d(B,"HttpRequestObservable");var m=B;var N=class N{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new m(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",u(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",u(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",u(r.omit,[]).join(",")),t}delete(e){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let r=new K;return r.join({resource:this._path,key:e}),new m(this._backend,{method:"DELETE",url:r})}deleteMany(e){let r=new m(this._backend,{method:"DELETE",url:this._path});return e!=null&&e.filter&&r.param("filter",String(e.filter)),r}get(e,r){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let t=new K;t.join({resource:this._path,key:e});let s=new m(this._backend,{method:"GET",url:t});return r!=null&&r.include&&s.param("include",u(r.include,[]).join(",")),r!=null&&r.pick&&s.param("pick",u(r.pick,[]).join(",")),r!=null&&r.omit&&s.param("omit",u(r.omit,[]).join(",")),s}findMany(e){let r=new m(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",u(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",u(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",u(e.omit,[]).join(",")),e!=null&&e.sort&&r.param("sort",u(e.sort,[]).join(",")),e!=null&&e.filter&&r.param("filter",String(e.filter)),(e==null?void 0:e.limit)!=null&&r.param("limit",String(e.limit)),(e==null?void 0:e.skip)!=null&&r.param("skip",String(e.skip)),(e==null?void 0:e.count)!=null&&r.param("count",String(e.count)),(e==null?void 0:e.distinct)!=null&&r.param("distinct",String(e.distinct)),r}update(e,r,t){if(e==null)throw new TypeError("'id' argument must have a value");let s=new K;s.join({resource:this._path,key:e});let a=new m(this._backend,{method:"PATCH",url:s,body:r});return t!=null&&t.include&&a.param("include",u(t.include,[]).join(",")),t!=null&&t.pick&&a.param("pick",u(t.pick,[]).join(",")),t!=null&&t.omit&&a.param("omit",u(t.omit,[]).join(",")),a}updateMany(e,r){let t=new m(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.filter&&t.param("filter",String(r.filter)),t}};d(N,"HttpCollectionNode");var L=N;import{toArrayDef as o}from"putil-varhelpers";var V=class V{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new m(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}delete(){return new m(this._backend,{method:"DELETE",url:this._path})}get(e){let r=new m(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",o(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",o(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",o(e.omit,[]).join(",")),r}update(e,r){let t=new m(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}};d(V,"HttpSingletonNode");var U=V;var Q=class Q extends j{constructor(e){super(e),this._collectionCache=new re,this._singletonCache=new re}get serviceUrl(){return this[f].serviceUrl}async getMetadata(){let e=this._metadataPromise;if(e)return e;let r=new m(this[f],{method:"GET",url:"/",headers:new Headers({accept:"application/json"})});return this._metadataPromise=e=r.getBody(),await e.then(async t=>{if(!t)throw new Error("No response returned.");let s=await we.createDocument(t);return this[f].api=s,s}).catch(t=>{throw t.message="Unable to fetch metadata from service url ("+this.serviceUrl+"). "+t.message,t}).finally(()=>delete this._metadataPromise)}collection(e){let r=this._collectionCache.get(e);return r||(r=new L(this[f],e),this._collectionCache.set(e,r)),r}singleton(e){let r=this._singletonCache.get(e);return r||(r=new U(this[f],e),this._singletonCache.set(e,r)),r}action(e,r){let t=new m(this[f],{method:"GET",url:e});return r&&(Object.keys(r).forEach(s=>r[s]=String(r[s])),t.param(r)),t}};d(Q,"HttpClientBase");var _=Q;var W=class W extends _{constructor(e,r){super(new P(e,r))}get defaults(){return this[f].defaults}};d(W,"OpraHttpClient");var te=W;export{p as Backend,j as ClientBase,S as ClientError,P as FetchBackend,R as HttpBackend,_ as HttpClientBase,L as HttpCollectionNode,i as HttpEventType,y as HttpObserveType,m as HttpRequestObservable,v as HttpResponse,U as HttpSingletonNode,te as OpraHttpClient,f as kBackend,he as kClient,n as kContext};
@@ -150,6 +150,18 @@ class FetchBackend extends http_backend_js_1.HttpBackend {
150
150
  ...init,
151
151
  headers
152
152
  };
153
+ this.defaults.headers.forEach((val, key) => {
154
+ if (!headers.has(key))
155
+ headers.set(key, val);
156
+ });
157
+ const url = new common_1.OpraURL(requestInit.url, this.serviceUrl);
158
+ if (this.defaults.params.size) {
159
+ this.defaults.params.forEach((val, key) => {
160
+ if (!url.searchParams.has(key))
161
+ url.searchParams.set(key, val);
162
+ });
163
+ requestInit.url = url.toString();
164
+ }
153
165
  const body = requestInit.body;
154
166
  if (body) {
155
167
  let contentType;
@@ -182,7 +194,7 @@ class FetchBackend extends http_backend_js_1.HttpBackend {
182
194
  if (contentType && !headers.has('Content-Type'))
183
195
  headers.set('Content-Type', contentType);
184
196
  }
185
- return new Request(requestInit.url.toString(), requestInit);
197
+ return new Request(url.toString(), requestInit);
186
198
  }
187
199
  createResponse(init) {
188
200
  return new http_response_js_1.HttpResponse(init);
@@ -2,7 +2,7 @@
2
2
  import { Observable } from 'rxjs';
3
3
  import { isReadableStreamLike } from 'rxjs/internal/util/isReadableStreamLike';
4
4
  import typeIs from '@browsery/type-is';
5
- import { isBlob } from '@opra/common';
5
+ import { isBlob, OpraURL } from '@opra/common';
6
6
  import { HttpBackend } from './http-backend.js';
7
7
  import { HttpResponse } from './http-response.js';
8
8
  import { HttpEventType } from './interfaces/http-event.js';
@@ -146,6 +146,18 @@ export class FetchBackend extends HttpBackend {
146
146
  ...init,
147
147
  headers
148
148
  };
149
+ this.defaults.headers.forEach((val, key) => {
150
+ if (!headers.has(key))
151
+ headers.set(key, val);
152
+ });
153
+ const url = new OpraURL(requestInit.url, this.serviceUrl);
154
+ if (this.defaults.params.size) {
155
+ this.defaults.params.forEach((val, key) => {
156
+ if (!url.searchParams.has(key))
157
+ url.searchParams.set(key, val);
158
+ });
159
+ requestInit.url = url.toString();
160
+ }
149
161
  const body = requestInit.body;
150
162
  if (body) {
151
163
  let contentType;
@@ -178,7 +190,7 @@ export class FetchBackend extends HttpBackend {
178
190
  if (contentType && !headers.has('Content-Type'))
179
191
  headers.set('Content-Type', contentType);
180
192
  }
181
- return new Request(requestInit.url.toString(), requestInit);
193
+ return new Request(url.toString(), requestInit);
182
194
  }
183
195
  createResponse(init) {
184
196
  return new HttpResponse(init);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/client",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "Opra Client package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -39,7 +39,7 @@
39
39
  "@browsery/stream": "^0.6.0",
40
40
  "@browsery/type-is": "^0.6.3",
41
41
  "@browsery/util": "^0.4.0",
42
- "@opra/common": "^0.30.0",
42
+ "@opra/common": "^0.31.0",
43
43
  "accepts": "^1.3.8",
44
44
  "buffer": "^6.0.3",
45
45
  "cookie": "^0.5.0",