@opra/client 0.31.8 → 0.31.10

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,6 +3,6 @@
3
3
  * http://www.panates.com
4
4
  *****************************************/
5
5
 
6
- var te=Object.defineProperty,le=Object.defineProperties;var he=Object.getOwnPropertyDescriptors;var ee=Object.getOwnPropertySymbols;var de=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var re=(h,r,e)=>r in h?te(h,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):h[r]=e,b=(h,r)=>{for(var e in r||(r={}))de.call(r,e)&&re(h,e,r[e]);if(ee)for(var e of ee(r))me.call(r,e)&&re(h,e,r[e]);return h},k=(h,r)=>le(h,he(r)),l=(h,r)=>te(h,"name",{value:r,configurable:!0});var G=class G{constructor(r){this.api=r==null?void 0:r.api}};l(G,"Backend");var p=G;var fe=Symbol.for("kClient"),f=Symbol.for("kBackend"),n=Symbol.for("kContext");var M=class M{constructor(r){Object.defineProperty(this,f,{enumerable:!1,value:r})}};l(M,"ClientBase");var j=M;var z=class z extends Error{constructor(r,e){super(r.message),this.cause=e,this.issues=r.issues||[],this.status=r.status,e&&(this.cause=e,e.stack&&(this.stack=e.stack))}};l(z,"ClientError");var S=z;import{Observable as ue}from"rxjs";import{isReadableStreamLike as ne}from"rxjs/internal/util/isReadableStreamLike";import I from"@browsery/type-is";import{isBlob as ie,isFormData as oe,OpraURL as ye}from"@opra/common";var F=class F extends p{constructor(r,e){super(e),this.serviceUrl=r}};l(F,"HttpBackend");var T=F;var _=class _{constructor(r){this.hasBody=!1,this.headers=(r==null?void 0:r.headers)instanceof Headers?r==null?void 0:r.headers:new Headers(r==null?void 0:r.headers),this.status=(r==null?void 0:r.status)||200,this.statusText=(r==null?void 0:r.statusText)||"OK",this.url=(r==null?void 0:r.url)||null,this.ok=this.status>=200&&this.status<300,this.body=r==null?void 0:r.body,this.hasBody=(r==null?void 0:r.body)!=null||!!(r!=null&&r.hasBody),this.contentType=(this.headers.get("content-type")||"").split(";")[0]}clone(r){return new _(b(b({},this),r))}};l(_,"HttpResponse");var R=_;var i;(function(h){h.Sent="Sent",h.UploadProgress="UploadProgress",h.ResponseHeader="ResponseHeader",h.DownloadProgress="DownloadProgress",h.Response="Response",h.User="User"})(i||(i={}));var J=class J extends T{constructor(r,e){var t,s,a,c,d,g;super(r,e),this.interceptors=Array.from(new Set([...(e==null?void 0:e.interceptors)||[]])),this.defaults=k(b({},e==null?void 0:e.defaults),{headers:((t=e==null?void 0:e.defaults)==null?void 0:t.headers)instanceof Headers?(s=e==null?void 0:e.defaults)==null?void 0:s.headers:new Headers((a=e==null?void 0:e.defaults)==null?void 0:a.headers),params:((c=e==null?void 0:e.defaults)==null?void 0:c.params)instanceof URLSearchParams?(d=e==null?void 0:e.defaults)==null?void 0:d.params:new URLSearchParams((g=e==null?void 0:e.defaults)==null?void 0:g.params)})}handle(r){return new ue(e=>{(async()=>{let t=this.prepareRequest(r);if(t.body&&r.reportProgress){let O=t.body,D=t.headers.get("content-length")||"0",q=parseInt(D,10)||0,w=0,H=new TransformStream({transform(x,A){A.enqueue(x),w+=x.byteLength,e.next({type:i.UploadProgress,request:t,total:q,loaded:w})}});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:O.pipeThrough(H),window:r.window,duplex:"half"})}let s=this.send(t);e.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});e.next({request:t,type:i.ResponseHeader,response:c});let d;if(a.body)if(r.reportProgress){let O=a.body,D=a.headers.get("content-length")||"0",q=parseInt(D,10)||0,w=0,H=new Response(new ReadableStream({async start(x){let A=O.getReader();for(;;){let{done:ce,value:$}=await A.read();if(ce)break;w+=$.byteLength,x.enqueue($),e.next({type:i.DownloadProgress,request:t,total:q,loaded:w})}x.close()}}));d=await this.parseBody(H)}else d=await this.parseBody(a);let g=this.createResponse({url:a.url,headers:a.headers,status:a.status,statusText:a.statusText,body:d});e.next({request:t,type:i.Response,response:g}),e.complete()})().catch(t=>e.error(t))})}send(r){return fetch(r)}prepareRequest(r){let e=r.headers||new Headers,t=k(b({},r),{headers:e});this.defaults.headers.forEach((c,d)=>{e.has(d)||e.set(d,c)});let s=new ye(t.url,this.serviceUrl);this.defaults.params.size&&(this.defaults.params.forEach((c,d)=>{s.searchParams.has(d)||s.searchParams.set(d,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}),e.set("Content-Length",String(t.body.size)),delete t.duplex):ne(a)?(c="application/octet-stream",t.duplex="half"):Buffer.isBuffer(a)?(c="application/octet-stream",e.set("Content-Length",String(a.length)),delete t.duplex):ie(a)?(c=a.type||"application/octet-stream",e.set("Content-Length",String(a.size)),delete t.duplex):(oe(a)||(c='application/json;charset="UTF-8"',t.body=new Blob([JSON.stringify(a)],{type:c}),e.set("Content-Length",String(t.body.size))),delete t.duplex),c&&!e.has("Content-Type")&&e.set("Content-Type",c)}return new Request(s.toString(),t)}createResponse(r){return new R(r)}async parseBody(r){let e,t=r.headers.get("Content-Type")||"";if(I.is(t,["json","application/*+json"]))e=await r.json(),typeof e=="string"&&(e=JSON.parse(e));else if(I.is(t,["text"]))e=await r.text();else if(I.is(t,["multipart"]))e=await r.formData();else{let s=await r.arrayBuffer();s.byteLength&&(e=s)}return e}};l(J,"FetchBackend");var v=J;import{ApiDocumentFactory as ke,ResponsiveMap as X}from"@opra/common";import{toArrayDef as u}from"putil-varhelpers";import{OpraURL as V}from"@opra/common";import{lastValueFrom as ae,Observable as ge}from"rxjs";import we from"@browsery/type-is";import{OpraURL as xe}from"@opra/common";var o;(function(h){h.ResponseHeader="response-header",h.Response="response",h.Body="body",h.Events="events"})(o||(o={}));var K=class K{constructor(r,e){this.chain=r.reduceRight((t,s)=>(a,c)=>s.intercept(a,{handle:d=>t(d,c)}),be),this.finalHandler=e}handle(r){return this.chain(r,e=>this.finalHandler.handle(e))}};l(K,"HttpInterceptorHandler");var P=K;function be(h,r){return r(h)}l(be,"chainEnd");var E=class E extends ge{constructor(r,e){super(s=>{let a=this[n].observe;new P(r.interceptors||[],this[f]).handle(this[n]).subscribe({next(c){if(a===o.Events){s.next(c);return}if(a===o.ResponseHeader&&c.type===i.ResponseHeader){s.next(c.response),s.complete();return}if(c.type===i.Response){let{response:d}=c;if(a===o.Response){s.next(d),s.complete();return}let g=we.is(c.response.contentType||"",["application/opra+json"]);if(d.status>=400&&d.status<600){s.error(new S({message:d.status+" "+d.statusText,status:d.status,issues:g?d.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:r});let t=new xe(e==null?void 0:e.url,r.serviceUrl.toString());Object.defineProperty(this,n,{enumerable:!1,value:k(b({},e),{observe:o.Body,headers:new Headers(e==null?void 0:e.headers),url:t})})}clone(){return new E(this[f],this[n])}options(r){return Object.assign(this[n],r),this}header(r,e){let t=this[n].headers;return typeof r=="object"?((r instanceof Headers?r:new Headers(r)).forEach((a,c)=>{c.toLowerCase()==="set-cookie"?t.append(c,a):t.set(c,a)}),this):(e==null||e===""?t.delete(r):t.append(r,String(e)),this)}param(r,e){e&&typeof e=="object"&&(e=JSON.stringify(e));let t=this[n].url.searchParams;return typeof r=="object"?((r instanceof URLSearchParams?r:new URLSearchParams(r)).forEach((a,c)=>t.set(c,a)),this):(e==null?t.delete(r):t.set(r,String(e)),this)}observe(r){if(r===this[n].observe)return this;let e=this.clone();return e[n].observe=r||o.Body,e}getBody(){return ae(this.observe(o.Body))}getResponse(){return ae(this.observe(o.Response))}};l(E,"HttpRequestObservable");var m=E;var N=class N{constructor(r,e){this._backend=r,this._path=e}create(r,e){let t=new m(this._backend,{method:"POST",url:this._path,body:r});return e!=null&&e.include&&t.param("include",u(e.include,[]).join(",")),e!=null&&e.pick&&t.param("pick",u(e.pick,[]).join(",")),e!=null&&e.omit&&t.param("omit",u(e.omit,[]).join(",")),t}delete(r){if(r==null||r==="")throw new TypeError("'id' argument must have a value");let e=new V;return e.join({resource:this._path,key:r}),new m(this._backend,{method:"DELETE",url:e})}deleteMany(r){let e=new m(this._backend,{method:"DELETE",url:this._path});return r!=null&&r.filter&&e.param("filter",String(r.filter)),e}get(r,e){if(r==null||r==="")throw new TypeError("'id' argument must have a value");let t=new V;t.join({resource:this._path,key:r});let s=new m(this._backend,{method:"GET",url:t});return e!=null&&e.include&&s.param("include",u(e.include,[]).join(",")),e!=null&&e.pick&&s.param("pick",u(e.pick,[]).join(",")),e!=null&&e.omit&&s.param("omit",u(e.omit,[]).join(",")),s}findMany(r){let e=new m(this._backend,{method:"GET",url:this._path});return r!=null&&r.include&&e.param("include",u(r.include,[]).join(",")),r!=null&&r.pick&&e.param("pick",u(r.pick,[]).join(",")),r!=null&&r.omit&&e.param("omit",u(r.omit,[]).join(",")),r!=null&&r.sort&&e.param("sort",u(r.sort,[]).join(",")),r!=null&&r.filter&&e.param("filter",String(r.filter)),(r==null?void 0:r.limit)!=null&&e.param("limit",String(r.limit)),(r==null?void 0:r.skip)!=null&&e.param("skip",String(r.skip)),(r==null?void 0:r.count)!=null&&e.param("count",String(r.count)),(r==null?void 0:r.distinct)!=null&&e.param("distinct",String(r.distinct)),e}update(r,e,t){if(r==null)throw new TypeError("'id' argument must have a value");let s=new V;s.join({resource:this._path,key:r});let a=new m(this._backend,{method:"PATCH",url:s,body:e});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(r,e){let t=new m(this._backend,{method:"PATCH",url:this._path,body:r});return e!=null&&e.filter&&t.param("filter",String(e.filter)),t}};l(N,"HttpCollectionNode");var B=N;import{toArrayDef as y}from"putil-varhelpers";var Q=class Q{constructor(r,e){this._backend=r,this._path=e}create(r,e){let t=new m(this._backend,{method:"POST",url:this._path,body:r});return e!=null&&e.include&&t.param("include",y(e.include,[]).join(",")),e!=null&&e.pick&&t.param("pick",y(e.pick,[]).join(",")),e!=null&&e.omit&&t.param("omit",y(e.omit,[]).join(",")),t}delete(){return new m(this._backend,{method:"DELETE",url:this._path})}get(r){let e=new m(this._backend,{method:"GET",url:this._path});return r!=null&&r.include&&e.param("include",y(r.include,[]).join(",")),r!=null&&r.pick&&e.param("pick",y(r.pick,[]).join(",")),r!=null&&r.omit&&e.param("omit",y(r.omit,[]).join(",")),e}update(r,e){let t=new m(this._backend,{method:"PATCH",url:this._path,body:r});return e!=null&&e.include&&t.param("include",y(e.include,[]).join(",")),e!=null&&e.pick&&t.param("pick",y(e.pick,[]).join(",")),e!=null&&e.omit&&t.param("omit",y(e.omit,[]).join(",")),t}};l(Q,"HttpSingletonNode");var L=Q;var W=class W{constructor(r,e){this._backend=r,this._path=e}delete(){return new m(this._backend,{method:"DELETE",url:this._path})}get(){return new m(this._backend,{method:"GET",url:this._path})}post(r){return new m(this._backend,{method:"POST",url:this._path,body:r})}};l(W,"HttpStorageNode");var C=W;var Y=class Y extends j{constructor(r){super(r),this._collectionCache=new X,this._singletonCache=new X,this._storageCache=new X}get serviceUrl(){return this[f].serviceUrl}async getMetadata(){if(this._metadataPromise)return this._metadataPromise;let r=new m(this[f],{method:"GET",url:"/",headers:new Headers({accept:"application/json"})}),e;try{this._metadataPromise=r.getBody(),e=await this._metadataPromise}catch(t){throw t.message="Error fetching metadata from url ("+this.serviceUrl+`).
7
- `+t.message,t}finally{this._metadataPromise=void 0}try{let t=await ke.createDocument(e);return this[f].api=t,t}catch(t){throw t.message=`Error loading api document.
8
- `+t.message,t}}collection(r){let e=this._collectionCache.get(r);return e||(e=new B(this[f],r),this._collectionCache.set(r,e)),e}singleton(r){let e=this._singletonCache.get(r);return e||(e=new L(this[f],r),this._singletonCache.set(r,e)),e}storage(r){let e=this._storageCache.get(r);return e||(e=new C(this[f],r),this._storageCache.set(r,e)),e}action(r,e){let t=new m(this[f],{method:"GET",url:r});return e&&(Object.keys(e).forEach(s=>e[s]=String(e[s])),t.param(e)),t}};l(Y,"HttpClientBase");var U=Y;var Z=class Z extends U{constructor(r,e){super(new v(r,e))}get defaults(){return this[f].defaults}};l(Z,"OpraHttpClient");var se=Z;export{p as Backend,j as ClientBase,S as ClientError,v as FetchBackend,T as HttpBackend,U as HttpClientBase,B as HttpCollectionNode,i as HttpEventType,o as HttpObserveType,m as HttpRequestObservable,R as HttpResponse,L as HttpSingletonNode,se as OpraHttpClient,f as kBackend,fe as kClient,n as kContext};
6
+ var ae=Object.defineProperty,de=Object.defineProperties;var he=Object.getOwnPropertyDescriptors;var re=Object.getOwnPropertySymbols;var me=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable;var te=(d,r,e)=>r in d?ae(d,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[r]=e,g=(d,r)=>{for(var e in r||(r={}))me.call(r,e)&&te(d,e,r[e]);if(re)for(var e of re(r))fe.call(r,e)&&te(d,e,r[e]);return d},k=(d,r)=>de(d,he(r)),l=(d,r)=>ae(d,"name",{value:r,configurable:!0});var G=class G{constructor(r){this.api=r==null?void 0:r.api}};l(G,"Backend");var p=G;var ne=Symbol.for("kClient"),f=Symbol.for("kBackend"),u=Symbol.for("kContext");var M=class M{constructor(r){Object.defineProperty(this,f,{enumerable:!1,value:r})}};l(M,"ClientBase");var j=M;var z=class z extends Error{constructor(r,e){super(r.message),this.cause=e,this.issues=r.issues||[],this.status=r.status,e&&(this.cause=e,e.stack&&(this.stack=e.stack))}};l(z,"ClientError");var S=z;import{Observable as ue}from"rxjs";import{isReadableStreamLike as ie}from"rxjs/internal/util/isReadableStreamLike";import I from"@browsery/type-is";import{isBlob as oe,isFormData as ye,OpraURL as ge}from"@opra/common";var F=class F extends p{constructor(r,e){super(e),this.serviceUrl=r}};l(F,"HttpBackend");var _=F;var T=class T{constructor(r){this.hasBody=!1,this.headers=(r==null?void 0:r.headers)instanceof Headers?r==null?void 0:r.headers:new Headers(r==null?void 0:r.headers),this.status=(r==null?void 0:r.status)||200,this.statusText=(r==null?void 0:r.statusText)||"OK",this.url=(r==null?void 0:r.url)||null,this.ok=this.status>=200&&this.status<300,this.body=r==null?void 0:r.body,this.hasBody=(r==null?void 0:r.body)!=null||!!(r!=null&&r.hasBody),this.contentType=(this.headers.get("content-type")||"").split(";")[0]}clone(r){return new T(g(g({},this),r))}};l(T,"HttpResponse");var R=T;var i;(function(d){d.Sent="Sent",d.UploadProgress="UploadProgress",d.ResponseHeader="ResponseHeader",d.DownloadProgress="DownloadProgress",d.Response="Response",d.User="User"})(i||(i={}));var J=class J extends _{constructor(r,e){var t,s,a,c,h,w;super(r,e),this.interceptors=Array.from(new Set([...(e==null?void 0:e.interceptors)||[]])),this.defaults=k(g({},e==null?void 0:e.defaults),{headers:((t=e==null?void 0:e.defaults)==null?void 0:t.headers)instanceof Headers?(s=e==null?void 0:e.defaults)==null?void 0:s.headers:new Headers((a=e==null?void 0:e.defaults)==null?void 0:a.headers),params:((c=e==null?void 0:e.defaults)==null?void 0:c.params)instanceof URLSearchParams?(h=e==null?void 0:e.defaults)==null?void 0:h.params:new URLSearchParams((w=e==null?void 0:e.defaults)==null?void 0:w.params)})}handle(r){return new ue(e=>{(async()=>{let t=this.prepareRequest(r);if(t.body&&r.reportProgress){let O=t.body,D=t.headers.get("content-length")||"0",q=parseInt(D,10)||0,x=0,H=new TransformStream({transform(b,A){A.enqueue(b),x+=b.byteLength,e.next({type:i.UploadProgress,request:t,total:q,loaded:x})}});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:O.pipeThrough(H),window:r.window,duplex:"half"})}let s=this.send(t);e.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});e.next({request:t,type:i.ResponseHeader,response:c});let h;if(a.body)if(r.reportProgress){let O=a.body,D=a.headers.get("content-length")||"0",q=parseInt(D,10)||0,x=0,H=new Response(new ReadableStream({async start(b){let A=O.getReader();for(;;){let{done:le,value:ee}=await A.read();if(le)break;x+=ee.byteLength,b.enqueue(ee),e.next({type:i.DownloadProgress,request:t,total:q,loaded:x})}b.close()}}));h=await this.parseBody(H)}else h=await this.parseBody(a);let w=this.createResponse({url:a.url,headers:a.headers,status:a.status,statusText:a.statusText,body:h});e.next({request:t,type:i.Response,response:w}),e.complete()})().catch(t=>e.error(t))})}send(r){return fetch(r)}prepareRequest(r){let e=r.headers||new Headers,t=k(g({},r),{headers:e});this.defaults.headers.forEach((c,h)=>{e.has(h)||e.set(h,c)});let s=new ge(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}),e.set("Content-Length",String(t.body.size)),delete t.duplex):ie(a)?(c="application/octet-stream",t.duplex="half"):Buffer.isBuffer(a)?(c="application/octet-stream",e.set("Content-Length",String(a.length)),delete t.duplex):oe(a)?(c=a.type||"application/octet-stream",e.set("Content-Length",String(a.size)),delete t.duplex):(ye(a)||(c='application/json;charset="UTF-8"',t.body=new Blob([JSON.stringify(a)],{type:c}),e.set("Content-Length",String(t.body.size))),delete t.duplex),c&&!e.has("Content-Type")&&e.set("Content-Type",c)}return new Request(s.toString(),t)}createResponse(r){return new R(r)}async parseBody(r){let e,t=r.headers.get("Content-Type")||"";if(I.is(t,["json","application/*+json"]))e=await r.json(),typeof e=="string"&&(e=JSON.parse(e));else if(I.is(t,["text"]))e=await r.text();else if(I.is(t,["multipart"]))e=await r.formData();else{let s=await r.arrayBuffer();s.byteLength&&(e=s)}return e}};l(J,"FetchBackend");var P=J;import{ApiDocumentFactory as pe,ResponsiveMap as Y}from"@opra/common";import{toArrayDef as n}from"putil-varhelpers";import{OpraURL as V}from"@opra/common";import{lastValueFrom as se,Observable as xe}from"rxjs";import be from"@browsery/type-is";import{OpraURL as ke}from"@opra/common";var o;(function(d){d.ResponseHeader="response-header",d.Response="response",d.Body="body",d.Events="events"})(o||(o={}));var K=class K{constructor(r,e){this.chain=r.reduceRight((t,s)=>(a,c)=>s.intercept(a,{handle:h=>t(h,c)}),we),this.finalHandler=e}handle(r){return this.chain(r,e=>this.finalHandler.handle(e))}};l(K,"HttpInterceptorHandler");var E=K;function we(d,r){return r(d)}l(we,"chainEnd");var v=class v extends xe{constructor(r,e){super(s=>{let a=this[u].observe;new E(r.interceptors||[],this[f]).handle(this[u]).subscribe({next(c){if(a===o.Events){s.next(c);return}if(a===o.ResponseHeader&&c.type===i.ResponseHeader){s.next(c.response),s.complete();return}if(c.type===i.Response){let{response:h}=c;if(a===o.Response){s.next(h),s.complete();return}let w=be.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:r});let t=new ke(e==null?void 0:e.url,r.serviceUrl.toString());Object.defineProperty(this,u,{enumerable:!1,value:k(g({},e),{observe:o.Body,headers:new Headers(e==null?void 0:e.headers),url:t})})}clone(){return new v(this[f],this[u])}options(r){return Object.assign(this[u],r),this}header(r,e){let t=this[u].headers;return typeof r=="object"?((r instanceof Headers?r:new Headers(r)).forEach((a,c)=>{c.toLowerCase()==="set-cookie"?t.append(c,a):t.set(c,a)}),this):(e==null||e===""?t.delete(r):t.append(r,String(e)),this)}param(r,e){e&&typeof e=="object"&&(e=JSON.stringify(e));let t=this[u].url.searchParams;return typeof r=="object"?((r instanceof URLSearchParams?r:new URLSearchParams(r)).forEach((a,c)=>t.set(c,a)),this):(e==null?t.delete(r):t.set(r,String(e)),this)}observe(r){if(r===this[u].observe)return this;let e=this.clone();return e[u].observe=r||o.Body,e}getBody(){return se(this.observe(o.Body))}getResponse(){return se(this.observe(o.Response))}};l(v,"HttpRequestObservable");var m=v;var N=class N{constructor(r,e){this._backend=r,this._path=e}create(r,e){let t=new m(this._backend,{method:"POST",url:this._path,body:r});return e!=null&&e.include&&t.param("include",n(e.include,[]).join(",")),e!=null&&e.pick&&t.param("pick",n(e.pick,[]).join(",")),e!=null&&e.omit&&t.param("omit",n(e.omit,[]).join(",")),t}delete(r){if(r==null||r==="")throw new TypeError("'id' argument must have a value");let e=new V;return e.join({resource:this._path,key:r}),new m(this._backend,{method:"DELETE",url:e})}deleteMany(r){let e=new m(this._backend,{method:"DELETE",url:this._path});return r!=null&&r.filter&&e.param("filter",String(r.filter)),e}get(r,e){if(r==null||r==="")throw new TypeError("'id' argument must have a value");let t=new V;t.join({resource:this._path,key:r});let s=new m(this._backend,{method:"GET",url:t});return e!=null&&e.include&&s.param("include",n(e.include,[]).join(",")),e!=null&&e.pick&&s.param("pick",n(e.pick,[]).join(",")),e!=null&&e.omit&&s.param("omit",n(e.omit,[]).join(",")),s}findMany(r){let e=new m(this._backend,{method:"GET",url:this._path});return r!=null&&r.include&&e.param("include",n(r.include,[]).join(",")),r!=null&&r.pick&&e.param("pick",n(r.pick,[]).join(",")),r!=null&&r.omit&&e.param("omit",n(r.omit,[]).join(",")),r!=null&&r.sort&&e.param("sort",n(r.sort,[]).join(",")),r!=null&&r.filter&&e.param("filter",String(r.filter)),(r==null?void 0:r.limit)!=null&&e.param("limit",String(r.limit)),(r==null?void 0:r.skip)!=null&&e.param("skip",String(r.skip)),(r==null?void 0:r.count)!=null&&e.param("count",String(r.count)),(r==null?void 0:r.distinct)!=null&&e.param("distinct",String(r.distinct)),e}update(r,e,t){if(r==null)throw new TypeError("'id' argument must have a value");let s=new V;s.join({resource:this._path,key:r});let a=new m(this._backend,{method:"PATCH",url:s,body:e});return t!=null&&t.include&&a.param("include",n(t.include,[]).join(",")),t!=null&&t.pick&&a.param("pick",n(t.pick,[]).join(",")),t!=null&&t.omit&&a.param("omit",n(t.omit,[]).join(",")),a}updateMany(r,e){let t=new m(this._backend,{method:"PATCH",url:this._path,body:r});return e!=null&&e.filter&&t.param("filter",String(e.filter)),t}};l(N,"HttpCollectionNode");var L=N;import{toArrayDef as y}from"putil-varhelpers";var Q=class Q{constructor(r,e){this._backend=r,this._path=e}create(r,e){let t=new m(this._backend,{method:"POST",url:this._path,body:r});return e!=null&&e.include&&t.param("include",y(e.include,[]).join(",")),e!=null&&e.pick&&t.param("pick",y(e.pick,[]).join(",")),e!=null&&e.omit&&t.param("omit",y(e.omit,[]).join(",")),t}delete(){return new m(this._backend,{method:"DELETE",url:this._path})}get(r){let e=new m(this._backend,{method:"GET",url:this._path});return r!=null&&r.include&&e.param("include",y(r.include,[]).join(",")),r!=null&&r.pick&&e.param("pick",y(r.pick,[]).join(",")),r!=null&&r.omit&&e.param("omit",y(r.omit,[]).join(",")),e}update(r,e){let t=new m(this._backend,{method:"PATCH",url:this._path,body:r});return e!=null&&e.include&&t.param("include",y(e.include,[]).join(",")),e!=null&&e.pick&&t.param("pick",y(e.pick,[]).join(",")),e!=null&&e.omit&&t.param("omit",y(e.omit,[]).join(",")),t}};l(Q,"HttpSingletonNode");var B=Q;import{OpraURL as W}from"@opra/common";var X=class X{constructor(r,e){this._backend=r,this._path=e}delete(r){if(r){let e=new W(this._path);e.join(r),r=e.toString()}else r=this._path;return new m(this._backend,{method:"DELETE",url:r})}get(r){if(r){let e=new W(this._path);e.join(r),r=e.toString()}else r=this._path;return new m(this._backend,{method:"GET",url:r})}post(r,e){if(e){let t=new W(this._path);t.join(e),e=t.toString()}else e=this._path;return new m(this._backend,{method:"POST",url:e,body:r})}};l(X,"HttpStorageNode");var C=X;var Z=class Z extends j{constructor(r){super(r),this._collectionCache=new Y,this._singletonCache=new Y,this._storageCache=new Y}get serviceUrl(){return this[f].serviceUrl}async getMetadata(){if(this._metadataPromise)return this._metadataPromise;let r=new m(this[f],{method:"GET",url:"/",headers:new Headers({accept:"application/json"})}),e;try{this._metadataPromise=r.getBody(),e=await this._metadataPromise}catch(t){throw t.message="Error fetching metadata from url ("+this.serviceUrl+`).
7
+ `+t.message,t}finally{this._metadataPromise=void 0}try{let t=await pe.createDocument(e);return this[f].api=t,t}catch(t){throw t.message=`Error loading api document.
8
+ `+t.message,t}}collection(r){let e=this._collectionCache.get(r);return e||(e=new L(this[f],r),this._collectionCache.set(r,e)),e}singleton(r){let e=this._singletonCache.get(r);return e||(e=new B(this[f],r),this._singletonCache.set(r,e)),e}storage(r){let e=this._storageCache.get(r);return e||(e=new C(this[f],r),this._storageCache.set(r,e)),e}action(r,e){let t=new m(this[f],{method:"GET",url:r});return e&&(Object.keys(e).forEach(s=>e[s]=String(e[s])),t.param(e)),t}};l(Z,"HttpClientBase");var U=Z;var $=class $ extends U{constructor(r,e){super(new P(r,e))}get defaults(){return this[f].defaults}};l($,"OpraHttpClient");var ce=$;export{p as Backend,j as ClientBase,S as ClientError,P as FetchBackend,_ as HttpBackend,U as HttpClientBase,L as HttpCollectionNode,i as HttpEventType,o as HttpObserveType,m as HttpRequestObservable,R as HttpResponse,B as HttpSingletonNode,C as HttpStorageNode,ce as OpraHttpClient,f as kBackend,ne as kClient,u as kContext};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HttpStorageNode = void 0;
4
+ const common_1 = require("@opra/common");
4
5
  const http_request_observable_js_1 = require("./http-request-observable.js");
5
6
  /**
6
7
  * @class HttpStorageNode
@@ -10,26 +11,45 @@ class HttpStorageNode {
10
11
  this._backend = backend;
11
12
  this._path = path;
12
13
  }
13
- delete() {
14
+ delete(path) {
15
+ if (path) {
16
+ const url = new common_1.OpraURL(this._path);
17
+ url.join(path);
18
+ path = url.toString();
19
+ }
20
+ else
21
+ path = this._path;
14
22
  return new http_request_observable_js_1.HttpRequestObservable(this._backend, {
15
23
  method: 'DELETE',
16
- url: this._path
24
+ url: path
17
25
  });
18
26
  }
19
- get() {
20
- const observable = new http_request_observable_js_1.HttpRequestObservable(this._backend, {
27
+ get(path) {
28
+ if (path) {
29
+ const url = new common_1.OpraURL(this._path);
30
+ url.join(path);
31
+ path = url.toString();
32
+ }
33
+ else
34
+ path = this._path;
35
+ return new http_request_observable_js_1.HttpRequestObservable(this._backend, {
21
36
  method: 'GET',
22
- url: this._path
37
+ url: path
23
38
  });
24
- return observable;
25
39
  }
26
- post(data) {
27
- const observable = new http_request_observable_js_1.HttpRequestObservable(this._backend, {
40
+ post(data, path) {
41
+ if (path) {
42
+ const url = new common_1.OpraURL(this._path);
43
+ url.join(path);
44
+ path = url.toString();
45
+ }
46
+ else
47
+ path = this._path;
48
+ return new http_request_observable_js_1.HttpRequestObservable(this._backend, {
28
49
  method: 'POST',
29
- url: this._path,
50
+ url: path,
30
51
  body: data
31
52
  });
32
- return observable;
33
53
  }
34
54
  }
35
55
  exports.HttpStorageNode = HttpStorageNode;
package/cjs/index.js CHANGED
@@ -14,6 +14,7 @@ tslib_1.__exportStar(require("./http/http-collection-node.js"), exports);
14
14
  tslib_1.__exportStar(require("./http/http-request-observable.js"), exports);
15
15
  tslib_1.__exportStar(require("./http/http-response.js"), exports);
16
16
  tslib_1.__exportStar(require("./http/http-singleton-node.js"), exports);
17
+ tslib_1.__exportStar(require("./http/http-storage-node.js"), exports);
17
18
  tslib_1.__exportStar(require("./http/enums/http-observable-type.enum.js"), exports);
18
19
  tslib_1.__exportStar(require("./http/interfaces/http-event.js"), exports);
19
20
  tslib_1.__exportStar(require("./http/interfaces/http-handler.js"), exports);
@@ -1,3 +1,4 @@
1
+ import { OpraURL } from '@opra/common';
1
2
  import { HttpRequestObservable } from './http-request-observable.js';
2
3
  /**
3
4
  * @class HttpStorageNode
@@ -7,25 +8,44 @@ export class HttpStorageNode {
7
8
  this._backend = backend;
8
9
  this._path = path;
9
10
  }
10
- delete() {
11
+ delete(path) {
12
+ if (path) {
13
+ const url = new OpraURL(this._path);
14
+ url.join(path);
15
+ path = url.toString();
16
+ }
17
+ else
18
+ path = this._path;
11
19
  return new HttpRequestObservable(this._backend, {
12
20
  method: 'DELETE',
13
- url: this._path
21
+ url: path
14
22
  });
15
23
  }
16
- get() {
17
- const observable = new HttpRequestObservable(this._backend, {
24
+ get(path) {
25
+ if (path) {
26
+ const url = new OpraURL(this._path);
27
+ url.join(path);
28
+ path = url.toString();
29
+ }
30
+ else
31
+ path = this._path;
32
+ return new HttpRequestObservable(this._backend, {
18
33
  method: 'GET',
19
- url: this._path
34
+ url: path
20
35
  });
21
- return observable;
22
36
  }
23
- post(data) {
24
- const observable = new HttpRequestObservable(this._backend, {
37
+ post(data, path) {
38
+ if (path) {
39
+ const url = new OpraURL(this._path);
40
+ url.join(path);
41
+ path = url.toString();
42
+ }
43
+ else
44
+ path = this._path;
45
+ return new HttpRequestObservable(this._backend, {
25
46
  method: 'POST',
26
- url: this._path,
47
+ url: path,
27
48
  body: data
28
49
  });
29
- return observable;
30
50
  }
31
51
  }
package/esm/index.js CHANGED
@@ -10,6 +10,7 @@ export * from './http/http-collection-node.js';
10
10
  export * from './http/http-request-observable.js';
11
11
  export * from './http/http-response.js';
12
12
  export * from './http/http-singleton-node.js';
13
+ export * from './http/http-storage-node.js';
13
14
  export * from './http/enums/http-observable-type.enum.js';
14
15
  export * from './http/interfaces/http-event.js';
15
16
  export * from './http/interfaces/http-handler.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/client",
3
- "version": "0.31.8",
3
+ "version": "0.31.10",
4
4
  "description": "Opra Client package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -40,7 +40,7 @@
40
40
  "@browsery/stream": "^0.6.0",
41
41
  "@browsery/type-is": "^0.6.3",
42
42
  "@browsery/util": "^0.4.0",
43
- "@opra/common": "^0.31.8",
43
+ "@opra/common": "^0.31.10",
44
44
  "accepts": "^1.3.8",
45
45
  "buffer": "^6.0.3",
46
46
  "cookie": "^0.6.0",
@@ -15,14 +15,14 @@ export declare abstract class HttpClientBase<TRequestOptions = {}, TResponseExt
15
15
  [kBackend]: HttpBackend;
16
16
  protected _collectionCache: ResponsiveMap<HttpCollectionNode<any, {}, {}>>;
17
17
  protected _singletonCache: ResponsiveMap<HttpCollectionNode<any, {}, {}>>;
18
- protected _storageCache: ResponsiveMap<HttpStorageNode<any, {}, {}>>;
18
+ protected _storageCache: ResponsiveMap<HttpStorageNode<any, {}>>;
19
19
  protected _metadataPromise?: Promise<any>;
20
20
  protected constructor(backend: HttpBackend);
21
21
  get serviceUrl(): string;
22
22
  getMetadata(): Promise<ApiDocument>;
23
23
  collection<TType = any>(path: string): HttpCollectionNode<TType, TRequestOptions, TResponseExt>;
24
24
  singleton<TType = any>(path: string): HttpSingletonNode<TType, TRequestOptions, TResponseExt>;
25
- storage(path: string): HttpStorageNode<any, TRequestOptions, TResponseExt>;
25
+ storage(path: string): HttpStorageNode<TRequestOptions, TResponseExt>;
26
26
  action<T = any>(path: string, params?: Record<string, any>): HttpRequestObservable<T, T, TRequestOptions, TResponseExt>;
27
27
  }
28
28
  /**
@@ -4,11 +4,11 @@ import { HttpRequestObservable } from './http-request-observable.js';
4
4
  /**
5
5
  * @class HttpStorageNode
6
6
  */
7
- export declare class HttpStorageNode<TType, TRequestOptions = {}, TResponseExt = {}> {
7
+ export declare class HttpStorageNode<TRequestOptions = {}, TResponseExt = {}> {
8
8
  protected _backend: HttpBackend;
9
9
  protected _path: string;
10
10
  constructor(backend: HttpBackend, path: string);
11
- delete(): HttpRequestObservable<OperationResult<never>, OperationResult<never>, TRequestOptions, TResponseExt>;
12
- get(): HttpRequestObservable<OperationResult<TType>, OperationResult<TType>, TRequestOptions, TResponseExt>;
13
- post(data: FormData): HttpRequestObservable<OperationResult<TType>, OperationResult<TType>, TRequestOptions, TResponseExt>;
11
+ delete(path?: string): HttpRequestObservable<OperationResult<never>, OperationResult<never>, TRequestOptions, TResponseExt>;
12
+ get(path?: string): HttpRequestObservable<OperationResult<any>, OperationResult<any>, TRequestOptions, TResponseExt>;
13
+ post(data: FormData, path?: string): HttpRequestObservable<OperationResult<any>, OperationResult<any>, TRequestOptions, TResponseExt>;
14
14
  }
package/types/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export * from './http/http-collection-node.js';
10
10
  export * from './http/http-request-observable.js';
11
11
  export * from './http/http-response.js';
12
12
  export * from './http/http-singleton-node.js';
13
+ export * from './http/http-storage-node.js';
13
14
  export * from './http/enums/http-observable-type.enum.js';
14
15
  export * from './http/interfaces/http-event.js';
15
16
  export * from './http/interfaces/http-handler.js';