@opra/client 1.0.0-alpha.32 → 1.0.0-alpha.34

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/index.cjs CHANGED
@@ -3,6 +3,7 @@
3
3
  * http://www.panates.com
4
4
  *****************************************/
5
5
 
6
+ "use strict";
6
7
  var __create = Object.create;
7
8
  var __defProp = Object.defineProperty;
8
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -598,20 +599,3 @@ function urlPath(strings, ...values) {
598
599
  return str;
599
600
  }
600
601
  __name(urlPath, "urlPath");
601
- // Annotate the CommonJS export names for ESM import in node:
602
- 0 && (module.exports = {
603
- Backend,
604
- ClientError,
605
- FetchBackend,
606
- HttpBackend,
607
- HttpClientBase,
608
- HttpEventType,
609
- HttpObserveType,
610
- HttpRequestObservable,
611
- HttpResponse,
612
- OpraHttpClient,
613
- kBackend,
614
- kClient,
615
- kContext,
616
- urlPath
617
- });
package/browser/index.mjs CHANGED
@@ -6,9 +6,6 @@
6
6
  var __defProp = Object.defineProperty;
7
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
8
 
9
- // ../../build/client/esm/index.js
10
- import { Buffer as Buffer2 } from "buffer";
11
-
12
9
  // ../../build/client/esm/constants.js
13
10
  var kClient = Symbol.for("kClient");
14
11
  var kBackend = Symbol.for("kBackend");
@@ -555,9 +552,6 @@ function urlPath(strings, ...values) {
555
552
  return str;
556
553
  }
557
554
  __name(urlPath, "urlPath");
558
-
559
- // ../../build/client/esm/index.js
560
- globalThis.Buffer = Buffer2;
561
555
  export {
562
556
  Backend,
563
557
  ClientError,
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
package/package.json CHANGED
@@ -1,44 +1,15 @@
1
1
  {
2
2
  "name": "@opra/client",
3
- "version": "1.0.0-alpha.32",
3
+ "version": "1.0.0-alpha.34",
4
4
  "description": "Opra Client package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
7
- "type": "module",
8
- "module": "./esm/index.js",
9
- "main": "./cjs/index.js",
10
- "types": "./types/index.d.ts",
11
- "exports": {
12
- ".": {
13
- "import": "./esm/index.js",
14
- "browser": "./cjs/index.js",
15
- "require": "./cjs/index.js",
16
- "types": "./types/index.d.ts"
17
- },
18
- "./esm": {
19
- "browser": "./browser/index.mjs",
20
- "types": "./types/index.d.ts",
21
- "default": "./browser/index.mjs"
22
- },
23
- "./cjs": {
24
- "browser": "./browser/index.cjs",
25
- "types": "./types/index.d.ts",
26
- "default": "./cjs/index.js"
27
- },
28
- "./browser": {
29
- "import": "./browser/index.mjs",
30
- "types": "./types/index.d.ts",
31
- "default": "./browser/index.cjs"
32
- },
33
- "./browser-cjs-min": "./browser/cjs.min.cjs",
34
- "./browser-esm-min": "./browser/esm.min.mjs"
35
- },
36
7
  "dependencies": {
37
- "@opra/common": "^1.0.0-alpha.32",
8
+ "@opra/common": "^1.0.0-alpha.34",
38
9
  "accepts": "^1.3.8",
39
10
  "cookie": "^0.6.0",
40
11
  "encodeurl": "^2.0.0",
41
- "fast-tokenizer": "^1.3.0",
12
+ "fast-tokenizer": "^1.6.1",
42
13
  "lodash.omit": "^4.5.0",
43
14
  "process": "^0.11.10",
44
15
  "putil-isplainobject": "^1.1.5",
@@ -47,25 +18,35 @@
47
18
  "putil-varhelpers": "^1.6.5",
48
19
  "reflect-metadata": "^0.2.2",
49
20
  "rxjs": ">=7.0.0",
50
- "ts-gems": "^3.4.0",
21
+ "ts-gems": "^3.5.0",
51
22
  "tslib": "^2.6.3",
52
23
  "uid": "^2.0.1"
53
24
  },
54
- "devDependencies": {
55
- "@browsery/fs": "^0.4.0",
56
- "@browsery/highland": "^2.13.5",
57
- "@browsery/http-parser": "^0.5.8",
58
- "@browsery/i18next": "^23.11.5",
59
- "@browsery/stream": "^4.3.0",
60
- "@browsery/type-is": "^1.6.18-r2",
61
- "@browsery/util": "^0.12.5",
62
- "body-parser": "^1.20.2",
63
- "buffer": "^6.0.3",
64
- "crypto-browserify": "^3.12.0",
65
- "events": "^3.3.0",
66
- "express": "^4.19.2",
67
- "path-browserify": "^1.0.1"
25
+ "type": "module",
26
+ "exports": {
27
+ ".": {
28
+ "import": {
29
+ "types": "./types/index.d.ts",
30
+ "default": "./esm/index.js"
31
+ },
32
+ "require": {
33
+ "types": "./types/index.d.ts",
34
+ "default": "./cjs/index.js"
35
+ },
36
+ "browser": {
37
+ "types": "./types/index.d.ts",
38
+ "import": "./browser/index.mjs",
39
+ "require": "./browser/index.cjs",
40
+ "default": "./browser/index.mjs"
41
+ },
42
+ "default": "./esm/index.js"
43
+ },
44
+ "./package.json": "./package.json"
68
45
  },
46
+ "main": "./cjs/index.js",
47
+ "module": "./esm/index.js",
48
+ "browser": "./browser/index.cjs",
49
+ "types": "./types/index.d.ts",
69
50
  "repository": {
70
51
  "type": "git",
71
52
  "url": "https://github.com/panates/opra.git",
@@ -77,7 +58,6 @@
77
58
  "esm/",
78
59
  "browser/",
79
60
  "types/",
80
- "browser.js",
81
61
  "LICENSE",
82
62
  "README.md"
83
63
  ],
@@ -1,8 +0,0 @@
1
- /****************************************
2
- * All rights reserved Panates® 2022-2024
3
- * http://www.panates.com
4
- *****************************************/
5
-
6
- var _=Object.create;var w=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var re=Object.getPrototypeOf,se=Object.prototype.hasOwnProperty;var d=(n,e)=>w(n,"name",{value:e,configurable:!0});var ae=(n,e)=>{for(var t in e)w(n,t,{get:e[t],enumerable:!0})},K=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of te(e))!se.call(n,a)&&a!==t&&w(n,a,{get:()=>e[a],enumerable:!(r=ee(e,a))||r.enumerable});return n};var M=(n,e,t)=>(t=n!=null?_(re(n)):{},K(e||!n||!n.__esModule?w(t,"default",{value:n,enumerable:!0}):t,n)),oe=n=>K(w({},"__esModule",{value:!0}),n);var he={};ae(he,{Backend:()=>S,ClientError:()=>b,FetchBackend:()=>P,HttpBackend:()=>R,HttpClientBase:()=>k,HttpEventType:()=>f,HttpObserveType:()=>u,HttpRequestObservable:()=>U,HttpResponse:()=>T,OpraHttpClient:()=>N,kBackend:()=>h,kClient:()=>V,kContext:()=>l,urlPath:()=>ce});module.exports=oe(he);var V=Symbol.for("kClient"),h=Symbol.for("kBackend"),l=Symbol.for("kContext");var O=class O{constructor(e){this.document=e==null?void 0:e.document}};d(O,"Backend");var S=O;var H=class H extends Error{constructor(e,t){super(e.message),this.cause=t,this.issues=e.issues||[],this.status=e.status,t&&(this.cause=t,t.stack&&(this.stack=t.stack))}};d(H,"ClientError");var b=H;var u;(function(n){n.ResponseHeader="response-header",n.Response="response",n.Body="body",n.Events="events"})(u||(u={}));var j=M(require("@browsery/type-is"),1),E=require("@opra/common"),W=require("rxjs"),$=require("rxjs/internal/util/isReadableStreamLike");var A=class A extends S{constructor(e,t){super(t);let r=new URL(e);this.serviceUrl=r.toString().split("?")[0].split("#")[0],this.serviceUrl.endsWith("/")||(this.serviceUrl+="/")}};d(A,"HttpBackend");var R=A;var L=class L{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 L({...this,...e})}};d(L,"HttpResponse");var T=L;var f;(function(n){n.Sent="Sent",n.UploadProgress="UploadProgress",n.ResponseHeader="ResponseHeader",n.DownloadProgress="DownloadProgress",n.Response="Response",n.User="User"})(f||(f={}));var I=class I extends R{constructor(e,t){var r,a,s,o,c,m;super(e,t),this.interceptors=Array.from(new Set([...(t==null?void 0:t.interceptors)||[]])),this.defaults={...t==null?void 0:t.defaults,headers:((r=t==null?void 0:t.defaults)==null?void 0:r.headers)instanceof Headers?(a=t==null?void 0:t.defaults)==null?void 0:a.headers:new Headers((s=t==null?void 0:t.defaults)==null?void 0:s.headers),params:((o=t==null?void 0:t.defaults)==null?void 0:o.params)instanceof URLSearchParams?(c=t==null?void 0:t.defaults)==null?void 0:c.params:new URLSearchParams((m=t==null?void 0:t.defaults)==null?void 0:m.params)}}handle(e){return new W.Observable(t=>{(async()=>{let r=this.prepareRequest(e);if(r.body&&e.reportProgress){let y=r.body,p=r.headers.get("content-length")||"0",i=parseInt(p,10)||0,x=0,v=new TransformStream({transform(g,D){D.enqueue(g),x+=g.byteLength,t.next({type:f.UploadProgress,request:r,total:i,loaded:x})}});r=new Request(r.url,{cache:r.cache,credentials:r.credentials,headers:r.headers,integrity:r.integrity,keepalive:r.keepalive,method:r.method,mode:r.mode,redirect:r.redirect,referrer:r.referrer,referrerPolicy:r.referrerPolicy,signal:r.signal,body:y.pipeThrough(v),window:e.window,duplex:"half"})}let a=this.send(r);t.next({request:r,type:f.Sent});let s=await a,o=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,hasBody:!!s.body});t.next({request:r,type:f.ResponseHeader,response:o});let c;if(s.body)if(e.reportProgress){let y=s.body,p=s.headers.get("content-length")||"0",i=parseInt(p,10)||0,x=0,v=new Response(new ReadableStream({async start(g){let D=y.getReader();for(;;){let{done:Z,value:G}=await D.read();if(Z)break;x+=G.byteLength,g.enqueue(G),t.next({type:f.DownloadProgress,request:r,total:i,loaded:x})}g.close()}}));c=await this.parseBody(v)}else c=await this.parseBody(s);let m=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,body:c});t.next({request:r,type:f.Response,response:m}),t.complete()})().catch(r=>t.error(r))})}send(e){return fetch(e)}prepareRequest(e){let t=e.headers||new Headers,r={...e,headers:t};this.defaults.headers.forEach((o,c)=>{t.has(c)||t.set(c,o)});let a=new URL(r.url,this.serviceUrl);this.defaults.params.size&&(this.defaults.params.forEach((o,c)=>{a.searchParams.has(c)||a.searchParams.set(c,o)}),r.url=a.toString());let s=r.body;if(s){let o="";typeof s=="string"||typeof s=="number"||typeof s=="boolean"?(o='text/plain; charset="UTF-8"',r.body=new Blob([String(s)],{type:o}),t.set("Content-Length",String(r.body.size)),delete r.duplex):(0,$.isReadableStreamLike)(s)?(o="application/octet-stream",r.duplex="half"):Buffer.isBuffer(s)?(o="application/octet-stream",t.set("Content-Length",String(s.length)),delete r.duplex):(0,E.isBlob)(s)?(o=s.type||"application/octet-stream",t.set("Content-Length",String(s.size)),delete r.duplex):((0,E.isFormData)(s)||(o='application/json;charset="UTF-8"',r.body=new Blob([JSON.stringify(s)],{type:o}),t.set("Content-Length",String(r.body.size))),delete r.duplex),o&&!t.has("Content-Type")&&t.set("Content-Type",o)}return new Request(a.toString(),r)}createResponse(e){return new T(e)}async parseBody(e){let t,r=e.headers.get("Content-Type")||"";if(j.default.is(r,["json","application/*+json"]))t=await e.json(),typeof t=="string"&&(t=JSON.parse(t));else if(j.default.is(r,["text"]))t=await e.text();else if(j.default.is(r,["multipart"]))t=await e.formData();else{let a=await e.arrayBuffer();a.byteLength&&(t=a)}return t}};d(I,"FetchBackend");var P=I;var Y=require("@opra/common");var Q=M(require("@browsery/type-is"),1),X=require("@opra/common"),B=require("rxjs");var z=class z{constructor(e,t){this.chain=e.reduceRight((r,a)=>(s,o)=>a.intercept(s,{handle:d(c=>r(c,o),"handle")}),ne),this.finalHandler=t}handle(e){return this.chain(e,t=>this.finalHandler.handle(t))}};d(z,"HttpInterceptorHandler");var q=z;function ne(n,e){return e(n)}d(ne,"chainEnd");var C=class C extends B.Observable{constructor(e,t){super(r=>{let a=this[l].observe;new q(e.interceptors||[],this[h]).handle(this[l]).subscribe({next(s){if(a===u.Events){r.next(s);return}if(a===u.ResponseHeader&&s.type===f.ResponseHeader){r.next(s.response),r.complete();return}if(s.type===f.Response){let{response:o}=s;if(a===u.Response){r.next(o),r.complete();return}let c=Q.default.is(s.response.contentType||"",[X.MimeTypes.opra_response_json]);if(o.status>=400&&o.status<600){r.error(new b({message:o.status+" "+o.statusText,status:o.status,issues:c?o.body.errors:void 0})),r.complete();return}r.next(s.response.body),r.complete()}},error(s){r.error(s)},complete(){r.complete()}})}),Object.defineProperty(this,h,{enumerable:!1,value:e}),Object.defineProperty(this,l,{enumerable:!1,value:{...t,observe:u.Body,headers:new Headers(t==null?void 0:t.headers)}})}clone(){return new C(this[h],this[l])}options(e){return Object.assign(this[l],e),this}header(e,t){let r=this[l].headers;return typeof e=="object"?((e instanceof Headers?e:new Headers(e)).forEach((s,o)=>{o.toLowerCase()==="set-cookie"?r.append(o,s):r.set(o,s)}),this):(t==null||t===""?r.delete(e):r.append(e,String(t)),this)}param(e,t){t&&typeof t=="object"&&(t=JSON.stringify(t));let r=this[l].url.searchParams;return typeof e=="object"?(typeof e.forEach=="function"?e.forEach((a,s)=>r.set(String(s),String(a))):Object.entries(e).forEach(a=>r.set(String(a[0]),String(a[1]))),this):(t==null?r.delete(e):r.set(e,String(t)),this)}observe(e){if(e===this[l].observe)return this;let t=this.clone();return t[l].observe=e||u.Body,t}getBody(){return(0,B.lastValueFrom)(this.observe(u.Body))}getResponse(){return(0,B.lastValueFrom)(this.observe(u.Response))}};d(C,"HttpRequestObservable");var U=C;var de=/^(\/*)(.+)/,F=class F{constructor(e){Object.defineProperty(this,h,{enumerable:!1,value:e})}get serviceUrl(){return this[h].serviceUrl}async fetchDocument(e){let t={},r=d(async s=>{let o=this.request("$schema",{headers:new Headers({accept:"application/json"})});s&&o.param("id",s);let c=await o.getBody().catch(m=>{throw m.message="Error fetching api schema from url ("+this.serviceUrl+`).
7
- `+m.message,m});if(c.references){let m=c.references;c.references={};for(let[y,p]of Object.entries(m)){if(t[p.id]===null)throw new Error("Circular reference detected");t[p.id]=null;let i=await r(p.id);c.references[y]=t[p.id]=i}}return c},"getDocument"),a=await r(e==null?void 0:e.documentId);return await Y.ApiDocumentFactory.createDocument(a).catch(s=>{throw s.message=`Error loading api document.
8
- `+s.message,s})}request(e,t){var a;e=((a=de.exec(e))==null?void 0:a[2])||"";let r=new U(this[h],{...t,method:(t==null?void 0:t.method)||"GET",url:new URL(e,this.serviceUrl)});return t!=null&&t.params&&r.param(t.params),r}delete(e,t){return this.request(e,{...t,method:"DELETE"})}get(e,t){return this.request(e,{...t,method:"GET"})}patch(e,t,r){return this.request(e,{...r,method:"PATCH",body:t})}post(e,t,r){return this.request(e,{...r,method:"POST",body:t})}put(e,t,r){return this.request(e,{...r,method:"PUT",body:t})}};d(F,"HttpClientBase");var k=F;var J=class J extends k{constructor(e,t){super(new P(e,t))}get defaults(){return this[h].defaults}};d(J,"OpraHttpClient");var N=J;function ce(n,...e){let t="",r;for(r=0;r<n.length;r++)t+=n[0]+encodeURIComponent(e[r]);return t}d(ce,"urlPath");0&&(module.exports={Backend,ClientError,FetchBackend,HttpBackend,HttpClientBase,HttpEventType,HttpObserveType,HttpRequestObservable,HttpResponse,OpraHttpClient,kBackend,kClient,kContext,urlPath});
@@ -1,8 +0,0 @@
1
- /****************************************
2
- * All rights reserved Panates® 2022-2024
3
- * http://www.panates.com
4
- *****************************************/
5
-
6
- var G=Object.defineProperty;var n=(c,e)=>G(c,"name",{value:e,configurable:!0});var K=Symbol.for("kClient"),h=Symbol.for("kBackend"),l=Symbol.for("kContext");var q=class q{constructor(e){this.document=e==null?void 0:e.document}};n(q,"Backend");var w=q;var C=class C extends Error{constructor(e,t){super(e.message),this.cause=t,this.issues=e.issues||[],this.status=e.status,t&&(this.cause=t,t.stack&&(this.stack=t.stack))}};n(C,"ClientError");var S=C;var m;(function(c){c.ResponseHeader="response-header",c.Response="response",c.Body="body",c.Events="events"})(m||(m={}));import D from"@browsery/type-is";import{isBlob as M,isFormData as V}from"@opra/common";import{Observable as W}from"rxjs";import{isReadableStreamLike as $}from"rxjs/internal/util/isReadableStreamLike";var v=class v extends w{constructor(e,t){super(t);let r=new URL(e);this.serviceUrl=r.toString().split("?")[0].split("#")[0],this.serviceUrl.endsWith("/")||(this.serviceUrl+="/")}};n(v,"HttpBackend");var b=v;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({...this,...e})}};n(T,"HttpResponse");var R=T;var f;(function(c){c.Sent="Sent",c.UploadProgress="UploadProgress",c.ResponseHeader="ResponseHeader",c.DownloadProgress="DownloadProgress",c.Response="Response",c.User="User"})(f||(f={}));var O=class O extends b{constructor(e,t){var r,o,s,a,d,u;super(e,t),this.interceptors=Array.from(new Set([...(t==null?void 0:t.interceptors)||[]])),this.defaults={...t==null?void 0:t.defaults,headers:((r=t==null?void 0:t.defaults)==null?void 0:r.headers)instanceof Headers?(o=t==null?void 0:t.defaults)==null?void 0:o.headers:new Headers((s=t==null?void 0:t.defaults)==null?void 0:s.headers),params:((a=t==null?void 0:t.defaults)==null?void 0:a.params)instanceof URLSearchParams?(d=t==null?void 0:t.defaults)==null?void 0:d.params:new URLSearchParams((u=t==null?void 0:t.defaults)==null?void 0:u.params)}}handle(e){return new W(t=>{(async()=>{let r=this.prepareRequest(e);if(r.body&&e.reportProgress){let y=r.body,p=r.headers.get("content-length")||"0",i=parseInt(p,10)||0,x=0,j=new TransformStream({transform(g,E){E.enqueue(g),x+=g.byteLength,t.next({type:f.UploadProgress,request:r,total:i,loaded:x})}});r=new Request(r.url,{cache:r.cache,credentials:r.credentials,headers:r.headers,integrity:r.integrity,keepalive:r.keepalive,method:r.method,mode:r.mode,redirect:r.redirect,referrer:r.referrer,referrerPolicy:r.referrerPolicy,signal:r.signal,body:y.pipeThrough(j),window:e.window,duplex:"half"})}let o=this.send(r);t.next({request:r,type:f.Sent});let s=await o,a=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,hasBody:!!s.body});t.next({request:r,type:f.ResponseHeader,response:a});let d;if(s.body)if(e.reportProgress){let y=s.body,p=s.headers.get("content-length")||"0",i=parseInt(p,10)||0,x=0,j=new Response(new ReadableStream({async start(g){let E=y.getReader();for(;;){let{done:J,value:z}=await E.read();if(J)break;x+=z.byteLength,g.enqueue(z),t.next({type:f.DownloadProgress,request:r,total:i,loaded:x})}g.close()}}));d=await this.parseBody(j)}else d=await this.parseBody(s);let u=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,body:d});t.next({request:r,type:f.Response,response:u}),t.complete()})().catch(r=>t.error(r))})}send(e){return fetch(e)}prepareRequest(e){let t=e.headers||new Headers,r={...e,headers:t};this.defaults.headers.forEach((a,d)=>{t.has(d)||t.set(d,a)});let o=new URL(r.url,this.serviceUrl);this.defaults.params.size&&(this.defaults.params.forEach((a,d)=>{o.searchParams.has(d)||o.searchParams.set(d,a)}),r.url=o.toString());let s=r.body;if(s){let a="";typeof s=="string"||typeof s=="number"||typeof s=="boolean"?(a='text/plain; charset="UTF-8"',r.body=new Blob([String(s)],{type:a}),t.set("Content-Length",String(r.body.size)),delete r.duplex):$(s)?(a="application/octet-stream",r.duplex="half"):Buffer.isBuffer(s)?(a="application/octet-stream",t.set("Content-Length",String(s.length)),delete r.duplex):M(s)?(a=s.type||"application/octet-stream",t.set("Content-Length",String(s.size)),delete r.duplex):(V(s)||(a='application/json;charset="UTF-8"',r.body=new Blob([JSON.stringify(s)],{type:a}),t.set("Content-Length",String(r.body.size))),delete r.duplex),a&&!t.has("Content-Type")&&t.set("Content-Type",a)}return new Request(o.toString(),r)}createResponse(e){return new R(e)}async parseBody(e){let t,r=e.headers.get("Content-Type")||"";if(D.is(r,["json","application/*+json"]))t=await e.json(),typeof t=="string"&&(t=JSON.parse(t));else if(D.is(r,["text"]))t=await e.text();else if(D.is(r,["multipart"]))t=await e.formData();else{let o=await e.arrayBuffer();o.byteLength&&(t=o)}return t}};n(O,"FetchBackend");var P=O;import{ApiDocumentFactory as _}from"@opra/common";import X from"@browsery/type-is";import{MimeTypes as Y}from"@opra/common";import{lastValueFrom as F,Observable as Z}from"rxjs";var H=class H{constructor(e,t){this.chain=e.reduceRight((r,o)=>(s,a)=>o.intercept(s,{handle:n(d=>r(d,a),"handle")}),Q),this.finalHandler=t}handle(e){return this.chain(e,t=>this.finalHandler.handle(t))}};n(H,"HttpInterceptorHandler");var B=H;function Q(c,e){return e(c)}n(Q,"chainEnd");var k=class k extends Z{constructor(e,t){super(r=>{let o=this[l].observe;new B(e.interceptors||[],this[h]).handle(this[l]).subscribe({next(s){if(o===m.Events){r.next(s);return}if(o===m.ResponseHeader&&s.type===f.ResponseHeader){r.next(s.response),r.complete();return}if(s.type===f.Response){let{response:a}=s;if(o===m.Response){r.next(a),r.complete();return}let d=X.is(s.response.contentType||"",[Y.opra_response_json]);if(a.status>=400&&a.status<600){r.error(new S({message:a.status+" "+a.statusText,status:a.status,issues:d?a.body.errors:void 0})),r.complete();return}r.next(s.response.body),r.complete()}},error(s){r.error(s)},complete(){r.complete()}})}),Object.defineProperty(this,h,{enumerable:!1,value:e}),Object.defineProperty(this,l,{enumerable:!1,value:{...t,observe:m.Body,headers:new Headers(t==null?void 0:t.headers)}})}clone(){return new k(this[h],this[l])}options(e){return Object.assign(this[l],e),this}header(e,t){let r=this[l].headers;return typeof e=="object"?((e instanceof Headers?e:new Headers(e)).forEach((s,a)=>{a.toLowerCase()==="set-cookie"?r.append(a,s):r.set(a,s)}),this):(t==null||t===""?r.delete(e):r.append(e,String(t)),this)}param(e,t){t&&typeof t=="object"&&(t=JSON.stringify(t));let r=this[l].url.searchParams;return typeof e=="object"?(typeof e.forEach=="function"?e.forEach((o,s)=>r.set(String(s),String(o))):Object.entries(e).forEach(o=>r.set(String(o[0]),String(o[1]))),this):(t==null?r.delete(e):r.set(e,String(t)),this)}observe(e){if(e===this[l].observe)return this;let t=this.clone();return t[l].observe=e||m.Body,t}getBody(){return F(this.observe(m.Body))}getResponse(){return F(this.observe(m.Response))}};n(k,"HttpRequestObservable");var U=k;var ee=/^(\/*)(.+)/,A=class A{constructor(e){Object.defineProperty(this,h,{enumerable:!1,value:e})}get serviceUrl(){return this[h].serviceUrl}async fetchDocument(e){let t={},r=n(async s=>{let a=this.request("$schema",{headers:new Headers({accept:"application/json"})});s&&a.param("id",s);let d=await a.getBody().catch(u=>{throw u.message="Error fetching api schema from url ("+this.serviceUrl+`).
7
- `+u.message,u});if(d.references){let u=d.references;d.references={};for(let[y,p]of Object.entries(u)){if(t[p.id]===null)throw new Error("Circular reference detected");t[p.id]=null;let i=await r(p.id);d.references[y]=t[p.id]=i}}return d},"getDocument"),o=await r(e==null?void 0:e.documentId);return await _.createDocument(o).catch(s=>{throw s.message=`Error loading api document.
8
- `+s.message,s})}request(e,t){var o;e=((o=ee.exec(e))==null?void 0:o[2])||"";let r=new U(this[h],{...t,method:(t==null?void 0:t.method)||"GET",url:new URL(e,this.serviceUrl)});return t!=null&&t.params&&r.param(t.params),r}delete(e,t){return this.request(e,{...t,method:"DELETE"})}get(e,t){return this.request(e,{...t,method:"GET"})}patch(e,t,r){return this.request(e,{...r,method:"PATCH",body:t})}post(e,t,r){return this.request(e,{...r,method:"POST",body:t})}put(e,t,r){return this.request(e,{...r,method:"PUT",body:t})}};n(A,"HttpClientBase");var L=A;var I=class I extends L{constructor(e,t){super(new P(e,t))}get defaults(){return this[h].defaults}};n(I,"OpraHttpClient");var N=I;function Me(c,...e){let t="",r;for(r=0;r<c.length;r++)t+=c[0]+encodeURIComponent(e[r]);return t}n(Me,"urlPath");export{w as Backend,S as ClientError,P as FetchBackend,b as HttpBackend,L as HttpClientBase,f as HttpEventType,m as HttpObserveType,U as HttpRequestObservable,R as HttpResponse,N as OpraHttpClient,h as kBackend,K as kClient,l as kContext,Me as urlPath};