@elysiajs/eden 1.0.12 → 1.0.13

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.
@@ -1 +1 @@
1
- "use strict";var Eden=(()=>{var q=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var re=(t,e)=>{for(var n in e)q(t,n,{get:e[n],enumerable:!0})},se=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of te(e))!ne.call(t,i)&&i!==n&&q(t,i,{get:()=>e[i],enumerable:!(r=ee(e,i))||r.enumerable});return t};var ae=t=>se(q({},"__esModule",{value:!0}),t);var le={};re(le,{edenFetch:()=>Y,edenTreaty:()=>X,treaty:()=>V});var _=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[i,s]of Object.entries(n))r+=`${i}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},L=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var T=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var I=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,i=>{if(e==="message"){let s=i.data.toString(),a=s.charCodeAt(0);if(a===47||a===123)try{s=JSON.parse(s)}catch{}else L(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...i,data:s})}else n(i)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}};var ie=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],J=typeof FileList>"u",oe=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,ce=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,fe=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,G=t=>J?t instanceof Blob:t instanceof FileList||t instanceof File,ye=t=>{if(!t)return!1;for(let e in t)if(G(t[e])||Array.isArray(t[e])&&t[e].find(G))return!0;return!1},D=t=>J?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),$=(t,e,n={},r={})=>{if(Array.isArray(t)){for(let i of t)if(!Array.isArray(i))r=$(i,e,n,r);else{let s=i[0];if(typeof s=="string")r[s.toLowerCase()]=i[1];else for(let[a,d]of s)r[a.toLowerCase()]=d}return r}if(!t)return r;switch(typeof t){case"function":let i=t(e,n);return i?$(i,e,n,r):r;case"object":if(t instanceof Headers)return t.forEach((s,a)=>{r[a.toLowerCase()]=s}),r;for(let[s,a]of Object.entries(t))r[s.toLowerCase()]=a;default:return r}},K=(t,e,n=[],r)=>new Proxy(()=>{},{get(i,s){return K(t,e,s==="index"?n:[...n,s],r)},apply(i,s,[a,d]){if(!a||d||typeof a=="object"&&Object.keys(a).length!==1||ie.includes(n.at(-1))){let W=[...n],v=W.pop(),g="/"+W.join("/"),{fetcher:u=fetch,headers:E,onRequest:p,onResponse:F,fetch:j}=e,A=v==="get"||v==="head"||v==="subscribe";E=$(E,g,d);let N=A?a?.query:d?.query,w="";if(N){let o=(O,k)=>{w+=(w?"&":"?")+`${encodeURIComponent(O)}=${encodeURIComponent(k)}`};for(let[O,k]of Object.entries(N)){if(Array.isArray(k)){for(let f of k)o(O,f);continue}o(O,`${k}`)}}if(v==="subscribe"){let o=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||Z.find(O=>t.includes(O))?"ws://":"wss://")+g+w;return new I(o)}return(async()=>{let o={method:v?.toUpperCase(),body:a,...j,headers:E};o.headers={...E,...$(A?a?.headers:d?.headers,g,o)};let O=A&&typeof a=="object"?a.fetch:d?.fetch;if(o={...o,...O},A&&delete o.body,p){Array.isArray(p)||(p=[p]);for(let y of p){let c=await y(g,o);typeof c=="object"&&(o={...o,...c,headers:{...o.headers,...$(c.headers,g,o)}})}}if(A&&delete o.body,ye(a)){let y=new FormData;for(let[c,h]of Object.entries(o.body)){if(J){y.append(c,h);continue}if(h instanceof File){y.append(c,await D(h));continue}if(h instanceof FileList){for(let l=0;l<h.length;l++)y.append(c,await D(h[l]));continue}if(Array.isArray(h)){for(let l=0;l<h.length;l++){let S=h[l];y.append(c,S instanceof File?await D(S):S)}continue}y.append(c,h)}}else typeof a=="object"?(o.headers["content-type"]="application/json",o.body=JSON.stringify(a)):a!=null&&(o.headers["content-type"]="text/plain");if(A&&delete o.body,p){Array.isArray(p)||(p=[p]);for(let y of p){let c=await y(g,o);typeof c=="object"&&(o={...o,...c,headers:{...o.headers,...c.headers}})}}let k=t+g+w,f=await(r?.handle(new Request(k,o))??u(k,o)),b=null,m=null;if(F){Array.isArray(F)||(F=[F]);for(let y of F)try{let c=await y(f.clone());if(c!=null){b=c;break}}catch(c){c instanceof T?m=c:m=new T(422,c);break}}if(b===null){switch(f.headers.get("Content-Type")?.split(";")[0]){case"application/json":b=await f.json();break;case"application/octet-stream":b=await f.arrayBuffer();break;default:b=await f.text().then(y=>{if(L(y))return+y;if(y==="true")return!0;if(y==="false")return!1;if(!y)return y;let c=y.replace(/"/g,"");if(oe.test(c)||ce.test(c)||fe.test(c)){let h=new Date(c);if(!Number.isNaN(h.getTime()))return h}return y})}(f.status>=300||f.status<200)&&(m=new T(f.status,b),b=null)}return{data:b,error:m,response:f,status:f.status,headers:f.headers}})()}return typeof a=="object"?K(t,e,[...n,Object.values(a)[0]],r):K(t,e,n)}}),V=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(Z.find(n=>t.includes(n))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1))),K(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",e,[],t));var H=typeof FileList>"u",z=t=>H?t instanceof Blob:t instanceof FileList||t instanceof File,ue=t=>{if(!t)return!1;for(let e in t){if(z(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>z(n)))return!0}return!1},U=t=>H?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),B=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,i=>{if(e==="message"){let s=i.data.toString(),a=s.charCodeAt(0);if(a===47||a===123)try{s=JSON.parse(s)}catch{}else L(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...i,data:s})}else n(i)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},Q=(t,e="",n)=>new Proxy(()=>{},{get(r,i,s){return Q(t,`${e}/${i.toString()}`,n)},apply(r,i,[s,a={}]=[{},{}]){let d=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:W,$fetch:v,$headers:g,$transform:u,getRaw:E,...p}=s??{};d??=p;let F=e.lastIndexOf("/"),j=e.slice(F+1).toUpperCase(),A=_(t,F===-1?"/":e.slice(0,F),Object.assign(a.query??{},W)),N=n.fetcher??fetch,w=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=u?Array.isArray(u)?u:[u]:void 0;return o&&(w?w=o.concat(w):w=o),j==="SUBSCRIBE"?new B(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async k=>{let f,b={...n.$fetch?.headers,...v?.headers,...a.headers,...g};if(j!=="GET"&&j!=="HEAD"){f=Object.keys(d).length||Array.isArray(d)?d:void 0;let l=f&&(typeof f=="object"||Array.isArray(d));if(l&&ue(f)){let C=new FormData;for(let[M,x]of Object.entries(f))if(H)C.append(M,x);else if(x instanceof File)C.append(M,await U(x));else if(x instanceof FileList)for(let R=0;R<x.length;R++)C.append(M,await U(x[R]));else if(Array.isArray(x))for(let R=0;R<x.length;R++){let P=x[R];C.append(M,P instanceof File?await U(P):P)}else C.append(M,x);f=C}else f!=null&&(b["content-type"]=l?"application/json":"text/plain",f=l?JSON.stringify(f):d)}let m=await N(A,{method:j,body:f,...n.$fetch,...a.fetch,...v,headers:b}),y;if(k.getRaw)return m;switch(m.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await m.json();break;default:y=await m.text().then(l=>L(l)?+l:l==="true"?!0:l==="false"?!1:l)}let c=m.status>=300||m.status<200?new T(m.status,y):null,h={data:y,error:c,response:m,status:m.status,headers:m.headers};if(w)for(let l of w){let S=l(h);S instanceof Promise&&(S=await S),S!=null&&(h=S)}return h})({getRaw:E})}}),X=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return Q(t,r,e)}});var Y=(t,e)=>(n,{query:r,params:i,body:s,...a}={})=>{i&&Object.entries(i).forEach(([u,E])=>{n=n.replace(`:${u}`,E)});let d=a.headers?.["Content-Type"];if(!d||d==="application/json")try{s=JSON.stringify(s)}catch{}let W=e?.fetcher||globalThis.fetch,v=r?`?${new URLSearchParams(r).toString()}`:"",g=()=>W(t+n+v,{...a,method:a.method?.toUpperCase()||"GET",headers:s?{"content-type":"application/json",...a.headers}:a.headers,body:s}).then(async u=>{let E;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await u.json();break;default:E=await u.text().then(p=>L(p)?parseInt(p):p==="true"?!0:p==="false"?!1:p);break}return u.status>300?{data:null,status:u.status,headers:u.headers,retry:g,error:new T(u.status,E)}:{data:E,error:null,status:u.status,headers:u.headers,retry:g}});return g()};return ae(le);})();
1
+ "use strict";var Eden=(()=>{var D=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var ne=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var se=(t,e)=>{for(var n in e)D(t,n,{get:e[n],enumerable:!0})},ae=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ne(e))!re.call(t,o)&&o!==n&&D(t,o,{get:()=>e[o],enumerable:!(s=te(e,o))||s.enumerable});return t};var ie=t=>ae(D({},"__esModule",{value:!0}),t);var de={};se(de,{edenFetch:()=>ee,edenTreaty:()=>Y,treaty:()=>z});var _=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let s="";for(let[o,r]of Object.entries(n))s+=`${o}=${r}&`;return`${t}${e}?${s.slice(0,-1)}`},L=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var T=class extends Error{constructor(n,s){super(s+"");this.status=n;this.value=s}};var G=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,I=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,s){return this.addEventListener(e,n,s)}off(e,n,s){return this.ws.removeEventListener(e,n,s),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let r=o.data.toString(),a=r.charCodeAt(0),u=r.charCodeAt(r.length-1);if(a===91||a===123)try{r=JSON.parse(r,(R,g)=>{if(typeof g=="string"&&G.test(g)){let m=new Date(g);if(!Number.isNaN(m.getTime()))return m}return g})}catch{}else L(r)?r=+r:r==="true"?r=!0:r==="false"?r=!1:r==="null"?r=null:a===34&&u===34&&G.test(r)&&(r=new Date(r.substring(1,r.length-1)));n({...o,data:r})}else n(o)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}};var oe=["get","post","put","delete","patch","options","head","connect","subscribe"],V=["localhost","127.0.0.1","0.0.0.0"],J=typeof FileList>"u",ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,ye=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,Z=t=>J?t instanceof Blob:t instanceof FileList||t instanceof File,ue=t=>{if(!t)return!1;for(let e in t)if(Z(t[e])||Array.isArray(t[e])&&t[e].find(Z))return!0;return!1},q=t=>J?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},n.readAsArrayBuffer(t)}),N=(t,e,n={},s={})=>{if(Array.isArray(t)){for(let o of t)if(!Array.isArray(o))s=N(o,e,n,s);else{let r=o[0];if(typeof r=="string")s[r.toLowerCase()]=o[1];else for(let[a,u]of r)s[a.toLowerCase()]=u}return s}if(!t)return s;switch(typeof t){case"function":let o=t(e,n);return o?N(o,e,n,s):s;case"object":if(t instanceof Headers)return t.forEach((r,a)=>{s[a.toLowerCase()]=r}),s;for(let[r,a]of Object.entries(t))s[r.toLowerCase()]=a;default:return s}},$=(t,e,n=[],s)=>new Proxy(()=>{},{get(o,r){return $(t,e,r==="index"?n:[...n,r],s)},apply(o,r,[a,u]){if(!a||u||typeof a=="object"&&Object.keys(a).length!==1||oe.includes(n.at(-1))){let R=[...n],g=R.pop(),m="/"+R.join("/"),{fetcher:l=fetch,headers:w,onRequest:p,onResponse:F,fetch:j}=e,A=g==="get"||g==="head"||g==="subscribe";w=N(w,m,u);let K=A?a?.query:u?.query,b="";if(K){let i=(O,k)=>{b+=(b?"&":"?")+`${encodeURIComponent(O)}=${encodeURIComponent(k)}`};for(let[O,k]of Object.entries(K)){if(Array.isArray(k)){for(let y of k)i(O,y);continue}i(O,`${k}`)}}if(g==="subscribe"){let i=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||V.find(O=>t.includes(O))?"ws://":"wss://")+m+b;return new I(i)}return(async()=>{let i={method:g?.toUpperCase(),body:a,...j,headers:w};i.headers={...w,...N(A?a?.headers:u?.headers,m,i)};let O=A&&typeof a=="object"?a.fetch:u?.fetch;if(i={...i,...O},A&&delete i.body,p){Array.isArray(p)||(p=[p]);for(let f of p){let c=await f(m,i);typeof c=="object"&&(i={...i,...c,headers:{...i.headers,...N(c.headers,m,i)}})}}if(A&&delete i.body,ue(a)){let f=new FormData;for(let[c,h]of Object.entries(i.body)){if(J){f.append(c,h);continue}if(h instanceof File){f.append(c,await q(h));continue}if(h instanceof FileList){for(let d=0;d<h.length;d++)f.append(c,await q(h[d]));continue}if(Array.isArray(h)){for(let d=0;d<h.length;d++){let v=h[d];f.append(c,v instanceof File?await q(v):v)}continue}f.append(c,h)}i.body=f}else typeof a=="object"?(i.headers["content-type"]="application/json",i.body=JSON.stringify(a)):a!=null&&(i.headers["content-type"]="text/plain");if(A&&delete i.body,p){Array.isArray(p)||(p=[p]);for(let f of p){let c=await f(m,i);typeof c=="object"&&(i={...i,...c,headers:{...i.headers,...c.headers}})}}let k=t+m+b,y=await(s?.handle(new Request(k,i))??l(k,i)),S=null,E=null;if(F){Array.isArray(F)||(F=[F]);for(let f of F)try{let c=await f(y.clone());if(c!=null){S=c;break}}catch(c){c instanceof T?E=c:E=new T(422,c);break}}if(S===null){switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":S=await y.json();break;case"application/octet-stream":S=await y.arrayBuffer();break;default:S=await y.text().then(f=>{if(L(f))return+f;if(f==="true")return!0;if(f==="false")return!1;if(!f)return f;let c=f.replace(/"/g,"");if(ce.test(c)||fe.test(c)||ye.test(c)){let h=new Date(c);if(!Number.isNaN(h.getTime()))return h}return f})}(y.status>=300||y.status<200)&&(E=new T(y.status,S),S=null)}return{data:S,error:E,response:y,status:y.status,headers:y.headers}})()}return typeof a=="object"?$(t,e,[...n,Object.values(a)[0]],s):$(t,e,n)}}),z=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(V.find(n=>t.includes(n))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1))),$(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),$("http://e.ly",e,[],t));var H=typeof FileList>"u",Q=t=>H?t instanceof Blob:t instanceof FileList||t instanceof File,le=t=>{if(!t)return!1;for(let e in t){if(Q(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>Q(n)))return!0}return!1},U=t=>H?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},n.readAsArrayBuffer(t)}),B=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,s){return this.addEventListener(e,n,s)}off(e,n,s){return this.ws.removeEventListener(e,n,s),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let r=o.data.toString(),a=r.charCodeAt(0);if(a===47||a===123)try{r=JSON.parse(r)}catch{}else L(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);n({...o,data:r})}else n(o)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}},X=(t,e="",n)=>new Proxy(()=>{},{get(s,o,r){return X(t,`${e}/${o.toString()}`,n)},apply(s,o,[r,a={}]=[{},{}]){let u=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:R,$fetch:g,$headers:m,$transform:l,getRaw:w,...p}=r??{};u??=p;let F=e.lastIndexOf("/"),j=e.slice(F+1).toUpperCase(),A=_(t,F===-1?"/":e.slice(0,F),Object.assign(a.query??{},R)),K=n.fetcher??fetch,b=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,i=l?Array.isArray(l)?l:[l]:void 0;return i&&(b?b=i.concat(b):b=i),j==="SUBSCRIBE"?new B(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async k=>{let y,S={...n.$fetch?.headers,...g?.headers,...a.headers,...m};if(j!=="GET"&&j!=="HEAD"){y=Object.keys(u).length||Array.isArray(u)?u:void 0;let d=y&&(typeof y=="object"||Array.isArray(u));if(d&&le(y)){let C=new FormData;for(let[M,x]of Object.entries(y))if(H)C.append(M,x);else if(x instanceof File)C.append(M,await U(x));else if(x instanceof FileList)for(let W=0;W<x.length;W++)C.append(M,await U(x[W]));else if(Array.isArray(x))for(let W=0;W<x.length;W++){let P=x[W];C.append(M,P instanceof File?await U(P):P)}else C.append(M,x);y=C}else y!=null&&(S["content-type"]=d?"application/json":"text/plain",y=d?JSON.stringify(y):u)}let E=await K(A,{method:j,body:y,...n.$fetch,...a.fetch,...g,headers:S}),f;if(k.getRaw)return E;switch(E.headers.get("Content-Type")?.split(";")[0]){case"application/json":f=await E.json();break;default:f=await E.text().then(d=>L(d)?+d:d==="true"?!0:d==="false"?!1:d)}let c=E.status>=300||E.status<200?new T(E.status,f):null,h={data:f,error:c,response:E,status:E.status,headers:E.headers};if(b)for(let d of b){let v=d(h);v instanceof Promise&&(v=await v),v!=null&&(h=v)}return h})({getRaw:w})}}),Y=(t,e={fetcher:fetch})=>new Proxy({},{get(n,s){return X(t,s,e)}});var ee=(t,e)=>(n,{query:s,params:o,body:r,...a}={})=>{o&&Object.entries(o).forEach(([l,w])=>{n=n.replace(`:${l}`,w)});let u=a.headers?.["Content-Type"];if(!u||u==="application/json")try{r=JSON.stringify(r)}catch{}let R=e?.fetcher||globalThis.fetch,g=s?`?${new URLSearchParams(s).toString()}`:"",m=()=>R(t+n+g,{...a,method:a.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...a.headers}:a.headers,body:r}).then(async l=>{let w;switch(l.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await l.json();break;default:w=await l.text().then(p=>L(p)?parseInt(p):p==="true"?!0:p==="false"?!1:p);break}return l.status>300?{data:null,status:l.status,headers:l.headers,retry:m,error:new T(l.status,w)}:{data:w,error:null,status:l.status,headers:l.headers,retry:m}});return m()};return ie(de);})();
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var q=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var re=(t,e)=>{for(var n in e)q(t,n,{get:e[n],enumerable:!0})},se=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of te(e))!ne.call(t,i)&&i!==n&&q(t,i,{get:()=>e[i],enumerable:!(r=ee(e,i))||r.enumerable});return t};var ae=t=>se(q({},"__esModule",{value:!0}),t);var le={};re(le,{edenFetch:()=>Y,edenTreaty:()=>X,treaty:()=>V});module.exports=ae(le);var _=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let r="";for(let[i,s]of Object.entries(n))r+=`${i}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},L=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var T=class extends Error{constructor(n,r){super(r+"");this.status=n;this.value=r}};var I=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,i=>{if(e==="message"){let s=i.data.toString(),a=s.charCodeAt(0);if(a===47||a===123)try{s=JSON.parse(s)}catch{}else L(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...i,data:s})}else n(i)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}};var ie=["get","post","put","delete","patch","options","head","connect","subscribe"],Z=["localhost","127.0.0.1","0.0.0.0"],J=typeof FileList>"u",oe=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,ce=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,fe=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,G=t=>J?t instanceof Blob:t instanceof FileList||t instanceof File,ye=t=>{if(!t)return!1;for(let e in t)if(G(t[e])||Array.isArray(t[e])&&t[e].find(G))return!0;return!1},D=t=>J?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),$=(t,e,n={},r={})=>{if(Array.isArray(t)){for(let i of t)if(!Array.isArray(i))r=$(i,e,n,r);else{let s=i[0];if(typeof s=="string")r[s.toLowerCase()]=i[1];else for(let[a,d]of s)r[a.toLowerCase()]=d}return r}if(!t)return r;switch(typeof t){case"function":let i=t(e,n);return i?$(i,e,n,r):r;case"object":if(t instanceof Headers)return t.forEach((s,a)=>{r[a.toLowerCase()]=s}),r;for(let[s,a]of Object.entries(t))r[s.toLowerCase()]=a;default:return r}},K=(t,e,n=[],r)=>new Proxy(()=>{},{get(i,s){return K(t,e,s==="index"?n:[...n,s],r)},apply(i,s,[a,d]){if(!a||d||typeof a=="object"&&Object.keys(a).length!==1||ie.includes(n.at(-1))){let W=[...n],v=W.pop(),g="/"+W.join("/"),{fetcher:u=fetch,headers:E,onRequest:p,onResponse:F,fetch:j}=e,A=v==="get"||v==="head"||v==="subscribe";E=$(E,g,d);let N=A?a?.query:d?.query,w="";if(N){let o=(O,k)=>{w+=(w?"&":"?")+`${encodeURIComponent(O)}=${encodeURIComponent(k)}`};for(let[O,k]of Object.entries(N)){if(Array.isArray(k)){for(let f of k)o(O,f);continue}o(O,`${k}`)}}if(v==="subscribe"){let o=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||Z.find(O=>t.includes(O))?"ws://":"wss://")+g+w;return new I(o)}return(async()=>{let o={method:v?.toUpperCase(),body:a,...j,headers:E};o.headers={...E,...$(A?a?.headers:d?.headers,g,o)};let O=A&&typeof a=="object"?a.fetch:d?.fetch;if(o={...o,...O},A&&delete o.body,p){Array.isArray(p)||(p=[p]);for(let y of p){let c=await y(g,o);typeof c=="object"&&(o={...o,...c,headers:{...o.headers,...$(c.headers,g,o)}})}}if(A&&delete o.body,ye(a)){let y=new FormData;for(let[c,h]of Object.entries(o.body)){if(J){y.append(c,h);continue}if(h instanceof File){y.append(c,await D(h));continue}if(h instanceof FileList){for(let l=0;l<h.length;l++)y.append(c,await D(h[l]));continue}if(Array.isArray(h)){for(let l=0;l<h.length;l++){let S=h[l];y.append(c,S instanceof File?await D(S):S)}continue}y.append(c,h)}}else typeof a=="object"?(o.headers["content-type"]="application/json",o.body=JSON.stringify(a)):a!=null&&(o.headers["content-type"]="text/plain");if(A&&delete o.body,p){Array.isArray(p)||(p=[p]);for(let y of p){let c=await y(g,o);typeof c=="object"&&(o={...o,...c,headers:{...o.headers,...c.headers}})}}let k=t+g+w,f=await(r?.handle(new Request(k,o))??u(k,o)),b=null,m=null;if(F){Array.isArray(F)||(F=[F]);for(let y of F)try{let c=await y(f.clone());if(c!=null){b=c;break}}catch(c){c instanceof T?m=c:m=new T(422,c);break}}if(b===null){switch(f.headers.get("Content-Type")?.split(";")[0]){case"application/json":b=await f.json();break;case"application/octet-stream":b=await f.arrayBuffer();break;default:b=await f.text().then(y=>{if(L(y))return+y;if(y==="true")return!0;if(y==="false")return!1;if(!y)return y;let c=y.replace(/"/g,"");if(oe.test(c)||ce.test(c)||fe.test(c)){let h=new Date(c);if(!Number.isNaN(h.getTime()))return h}return y})}(f.status>=300||f.status<200)&&(m=new T(f.status,b),b=null)}return{data:b,error:m,response:f,status:f.status,headers:f.headers}})()}return typeof a=="object"?K(t,e,[...n,Object.values(a)[0]],r):K(t,e,n)}}),V=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(Z.find(n=>t.includes(n))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1))),K(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",e,[],t));var H=typeof FileList>"u",z=t=>H?t instanceof Blob:t instanceof FileList||t instanceof File,ue=t=>{if(!t)return!1;for(let e in t){if(z(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>z(n)))return!0}return!1},U=t=>H?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let r=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(r)},n.readAsArrayBuffer(t)}),B=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,r){return this.addEventListener(e,n,r)}off(e,n,r){return this.ws.removeEventListener(e,n,r),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,r){return this.ws.addEventListener(e,i=>{if(e==="message"){let s=i.data.toString(),a=s.charCodeAt(0);if(a===47||a===123)try{s=JSON.parse(s)}catch{}else L(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...i,data:s})}else n(i)},r),this}removeEventListener(e,n,r){return this.off(e,n,r),this}close(){return this.ws.close(),this}},Q=(t,e="",n)=>new Proxy(()=>{},{get(r,i,s){return Q(t,`${e}/${i.toString()}`,n)},apply(r,i,[s,a={}]=[{},{}]){let d=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:W,$fetch:v,$headers:g,$transform:u,getRaw:E,...p}=s??{};d??=p;let F=e.lastIndexOf("/"),j=e.slice(F+1).toUpperCase(),A=_(t,F===-1?"/":e.slice(0,F),Object.assign(a.query??{},W)),N=n.fetcher??fetch,w=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=u?Array.isArray(u)?u:[u]:void 0;return o&&(w?w=o.concat(w):w=o),j==="SUBSCRIBE"?new B(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async k=>{let f,b={...n.$fetch?.headers,...v?.headers,...a.headers,...g};if(j!=="GET"&&j!=="HEAD"){f=Object.keys(d).length||Array.isArray(d)?d:void 0;let l=f&&(typeof f=="object"||Array.isArray(d));if(l&&ue(f)){let C=new FormData;for(let[M,x]of Object.entries(f))if(H)C.append(M,x);else if(x instanceof File)C.append(M,await U(x));else if(x instanceof FileList)for(let R=0;R<x.length;R++)C.append(M,await U(x[R]));else if(Array.isArray(x))for(let R=0;R<x.length;R++){let P=x[R];C.append(M,P instanceof File?await U(P):P)}else C.append(M,x);f=C}else f!=null&&(b["content-type"]=l?"application/json":"text/plain",f=l?JSON.stringify(f):d)}let m=await N(A,{method:j,body:f,...n.$fetch,...a.fetch,...v,headers:b}),y;if(k.getRaw)return m;switch(m.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await m.json();break;default:y=await m.text().then(l=>L(l)?+l:l==="true"?!0:l==="false"?!1:l)}let c=m.status>=300||m.status<200?new T(m.status,y):null,h={data:y,error:c,response:m,status:m.status,headers:m.headers};if(w)for(let l of w){let S=l(h);S instanceof Promise&&(S=await S),S!=null&&(h=S)}return h})({getRaw:E})}}),X=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return Q(t,r,e)}});var Y=(t,e)=>(n,{query:r,params:i,body:s,...a}={})=>{i&&Object.entries(i).forEach(([u,E])=>{n=n.replace(`:${u}`,E)});let d=a.headers?.["Content-Type"];if(!d||d==="application/json")try{s=JSON.stringify(s)}catch{}let W=e?.fetcher||globalThis.fetch,v=r?`?${new URLSearchParams(r).toString()}`:"",g=()=>W(t+n+v,{...a,method:a.method?.toUpperCase()||"GET",headers:s?{"content-type":"application/json",...a.headers}:a.headers,body:s}).then(async u=>{let E;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":E=await u.json();break;default:E=await u.text().then(p=>L(p)?parseInt(p):p==="true"?!0:p==="false"?!1:p);break}return u.status>300?{data:null,status:u.status,headers:u.headers,retry:g,error:new T(u.status,E)}:{data:E,error:null,status:u.status,headers:u.headers,retry:g}});return g()};0&&(module.exports={edenFetch,edenTreaty,treaty});
1
+ "use strict";var D=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var ne=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var se=(t,e)=>{for(var n in e)D(t,n,{get:e[n],enumerable:!0})},ae=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ne(e))!re.call(t,o)&&o!==n&&D(t,o,{get:()=>e[o],enumerable:!(s=te(e,o))||s.enumerable});return t};var ie=t=>ae(D({},"__esModule",{value:!0}),t);var de={};se(de,{edenFetch:()=>ee,edenTreaty:()=>Y,treaty:()=>z});module.exports=ie(de);var _=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let s="";for(let[o,r]of Object.entries(n))s+=`${o}=${r}&`;return`${t}${e}?${s.slice(0,-1)}`},L=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var T=class extends Error{constructor(n,s){super(s+"");this.status=n;this.value=s}};var G=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,I=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,s){return this.addEventListener(e,n,s)}off(e,n,s){return this.ws.removeEventListener(e,n,s),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let r=o.data.toString(),a=r.charCodeAt(0),u=r.charCodeAt(r.length-1);if(a===91||a===123)try{r=JSON.parse(r,(R,g)=>{if(typeof g=="string"&&G.test(g)){let m=new Date(g);if(!Number.isNaN(m.getTime()))return m}return g})}catch{}else L(r)?r=+r:r==="true"?r=!0:r==="false"?r=!1:r==="null"?r=null:a===34&&u===34&&G.test(r)&&(r=new Date(r.substring(1,r.length-1)));n({...o,data:r})}else n(o)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}};var oe=["get","post","put","delete","patch","options","head","connect","subscribe"],V=["localhost","127.0.0.1","0.0.0.0"],J=typeof FileList>"u",ce=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,fe=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,ye=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,Z=t=>J?t instanceof Blob:t instanceof FileList||t instanceof File,ue=t=>{if(!t)return!1;for(let e in t)if(Z(t[e])||Array.isArray(t[e])&&t[e].find(Z))return!0;return!1},q=t=>J?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},n.readAsArrayBuffer(t)}),N=(t,e,n={},s={})=>{if(Array.isArray(t)){for(let o of t)if(!Array.isArray(o))s=N(o,e,n,s);else{let r=o[0];if(typeof r=="string")s[r.toLowerCase()]=o[1];else for(let[a,u]of r)s[a.toLowerCase()]=u}return s}if(!t)return s;switch(typeof t){case"function":let o=t(e,n);return o?N(o,e,n,s):s;case"object":if(t instanceof Headers)return t.forEach((r,a)=>{s[a.toLowerCase()]=r}),s;for(let[r,a]of Object.entries(t))s[r.toLowerCase()]=a;default:return s}},$=(t,e,n=[],s)=>new Proxy(()=>{},{get(o,r){return $(t,e,r==="index"?n:[...n,r],s)},apply(o,r,[a,u]){if(!a||u||typeof a=="object"&&Object.keys(a).length!==1||oe.includes(n.at(-1))){let R=[...n],g=R.pop(),m="/"+R.join("/"),{fetcher:l=fetch,headers:w,onRequest:p,onResponse:F,fetch:j}=e,A=g==="get"||g==="head"||g==="subscribe";w=N(w,m,u);let K=A?a?.query:u?.query,b="";if(K){let i=(O,k)=>{b+=(b?"&":"?")+`${encodeURIComponent(O)}=${encodeURIComponent(k)}`};for(let[O,k]of Object.entries(K)){if(Array.isArray(k)){for(let y of k)i(O,y);continue}i(O,`${k}`)}}if(g==="subscribe"){let i=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||V.find(O=>t.includes(O))?"ws://":"wss://")+m+b;return new I(i)}return(async()=>{let i={method:g?.toUpperCase(),body:a,...j,headers:w};i.headers={...w,...N(A?a?.headers:u?.headers,m,i)};let O=A&&typeof a=="object"?a.fetch:u?.fetch;if(i={...i,...O},A&&delete i.body,p){Array.isArray(p)||(p=[p]);for(let f of p){let c=await f(m,i);typeof c=="object"&&(i={...i,...c,headers:{...i.headers,...N(c.headers,m,i)}})}}if(A&&delete i.body,ue(a)){let f=new FormData;for(let[c,h]of Object.entries(i.body)){if(J){f.append(c,h);continue}if(h instanceof File){f.append(c,await q(h));continue}if(h instanceof FileList){for(let d=0;d<h.length;d++)f.append(c,await q(h[d]));continue}if(Array.isArray(h)){for(let d=0;d<h.length;d++){let v=h[d];f.append(c,v instanceof File?await q(v):v)}continue}f.append(c,h)}i.body=f}else typeof a=="object"?(i.headers["content-type"]="application/json",i.body=JSON.stringify(a)):a!=null&&(i.headers["content-type"]="text/plain");if(A&&delete i.body,p){Array.isArray(p)||(p=[p]);for(let f of p){let c=await f(m,i);typeof c=="object"&&(i={...i,...c,headers:{...i.headers,...c.headers}})}}let k=t+m+b,y=await(s?.handle(new Request(k,i))??l(k,i)),S=null,E=null;if(F){Array.isArray(F)||(F=[F]);for(let f of F)try{let c=await f(y.clone());if(c!=null){S=c;break}}catch(c){c instanceof T?E=c:E=new T(422,c);break}}if(S===null){switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":S=await y.json();break;case"application/octet-stream":S=await y.arrayBuffer();break;default:S=await y.text().then(f=>{if(L(f))return+f;if(f==="true")return!0;if(f==="false")return!1;if(!f)return f;let c=f.replace(/"/g,"");if(ce.test(c)||fe.test(c)||ye.test(c)){let h=new Date(c);if(!Number.isNaN(h.getTime()))return h}return f})}(y.status>=300||y.status<200)&&(E=new T(y.status,S),S=null)}return{data:S,error:E,response:y,status:y.status,headers:y.headers}})()}return typeof a=="object"?$(t,e,[...n,Object.values(a)[0]],s):$(t,e,n)}}),z=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(V.find(n=>t.includes(n))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1))),$(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),$("http://e.ly",e,[],t));var H=typeof FileList>"u",Q=t=>H?t instanceof Blob:t instanceof FileList||t instanceof File,le=t=>{if(!t)return!1;for(let e in t){if(Q(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>Q(n)))return!0}return!1},U=t=>H?t:new Promise(e=>{let n=new FileReader;n.onload=()=>{let s=new File([n.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},n.readAsArrayBuffer(t)}),B=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(n=>this.send(n)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,n,s){return this.addEventListener(e,n,s)}off(e,n,s){return this.ws.removeEventListener(e,n,s),this}subscribe(e,n){return this.addEventListener("message",e,n)}addEventListener(e,n,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let r=o.data.toString(),a=r.charCodeAt(0);if(a===47||a===123)try{r=JSON.parse(r)}catch{}else L(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);n({...o,data:r})}else n(o)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}},X=(t,e="",n)=>new Proxy(()=>{},{get(s,o,r){return X(t,`${e}/${o.toString()}`,n)},apply(s,o,[r,a={}]=[{},{}]){let u=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:R,$fetch:g,$headers:m,$transform:l,getRaw:w,...p}=r??{};u??=p;let F=e.lastIndexOf("/"),j=e.slice(F+1).toUpperCase(),A=_(t,F===-1?"/":e.slice(0,F),Object.assign(a.query??{},R)),K=n.fetcher??fetch,b=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,i=l?Array.isArray(l)?l:[l]:void 0;return i&&(b?b=i.concat(b):b=i),j==="SUBSCRIBE"?new B(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async k=>{let y,S={...n.$fetch?.headers,...g?.headers,...a.headers,...m};if(j!=="GET"&&j!=="HEAD"){y=Object.keys(u).length||Array.isArray(u)?u:void 0;let d=y&&(typeof y=="object"||Array.isArray(u));if(d&&le(y)){let C=new FormData;for(let[M,x]of Object.entries(y))if(H)C.append(M,x);else if(x instanceof File)C.append(M,await U(x));else if(x instanceof FileList)for(let W=0;W<x.length;W++)C.append(M,await U(x[W]));else if(Array.isArray(x))for(let W=0;W<x.length;W++){let P=x[W];C.append(M,P instanceof File?await U(P):P)}else C.append(M,x);y=C}else y!=null&&(S["content-type"]=d?"application/json":"text/plain",y=d?JSON.stringify(y):u)}let E=await K(A,{method:j,body:y,...n.$fetch,...a.fetch,...g,headers:S}),f;if(k.getRaw)return E;switch(E.headers.get("Content-Type")?.split(";")[0]){case"application/json":f=await E.json();break;default:f=await E.text().then(d=>L(d)?+d:d==="true"?!0:d==="false"?!1:d)}let c=E.status>=300||E.status<200?new T(E.status,f):null,h={data:f,error:c,response:E,status:E.status,headers:E.headers};if(b)for(let d of b){let v=d(h);v instanceof Promise&&(v=await v),v!=null&&(h=v)}return h})({getRaw:w})}}),Y=(t,e={fetcher:fetch})=>new Proxy({},{get(n,s){return X(t,s,e)}});var ee=(t,e)=>(n,{query:s,params:o,body:r,...a}={})=>{o&&Object.entries(o).forEach(([l,w])=>{n=n.replace(`:${l}`,w)});let u=a.headers?.["Content-Type"];if(!u||u==="application/json")try{r=JSON.stringify(r)}catch{}let R=e?.fetcher||globalThis.fetch,g=s?`?${new URLSearchParams(s).toString()}`:"",m=()=>R(t+n+g,{...a,method:a.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...a.headers}:a.headers,body:r}).then(async l=>{let w;switch(l.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await l.json();break;default:w=await l.text().then(p=>L(p)?parseInt(p):p==="true"?!0:p==="false"?!1:p);break}return l.status>300?{data:null,status:l.status,headers:l.headers,retry:m,error:new T(l.status,w)}:{data:w,error:null,status:l.status,headers:l.headers,retry:m}});return m()};0&&(module.exports={edenFetch,edenTreaty,treaty});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{b as D}from"./chunk-FOFYS2DG.mjs";import{a as J}from"./chunk-TDCHXBL7.mjs";import{b as L,c as x}from"./chunk-HUZ6GXDC.mjs";var O=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(s=>this.send(s)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,s,r){return this.addEventListener(t,s,r)}off(t,s,r){return this.ws.removeEventListener(t,s,r),this}subscribe(t,s){return this.addEventListener("message",t,s)}addEventListener(t,s,r){return this.ws.addEventListener(t,f=>{if(t==="message"){let o=f.data.toString(),a=o.charCodeAt(0);if(a===47||a===123)try{o=JSON.parse(o)}catch{}else L(o)?o=+o:o==="true"?o=!0:o==="false"&&(o=!1);s({...f,data:o})}else s(f)},r),this}removeEventListener(t,s,r){return this.off(t,s,r),this}close(){return this.ws.close(),this}};var P=["get","post","put","delete","patch","options","head","connect","subscribe"],N=["localhost","127.0.0.1","0.0.0.0"],M=typeof FileList>"u",U=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,_=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,$=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,K=e=>M?e instanceof Blob:e instanceof FileList||e instanceof File,B=e=>{if(!e)return!1;for(let t in e)if(K(e[t])||Array.isArray(e[t])&&e[t].find(K))return!0;return!1},R=e=>M?e:new Promise(t=>{let s=new FileReader;s.onload=()=>{let r=new File([s.result],e.name,{lastModified:e.lastModified,type:e.type});t(r)},s.readAsArrayBuffer(e)}),E=(e,t,s={},r={})=>{if(Array.isArray(e)){for(let f of e)if(!Array.isArray(f))r=E(f,t,s,r);else{let o=f[0];if(typeof o=="string")r[o.toLowerCase()]=f[1];else for(let[a,g]of o)r[a.toLowerCase()]=g}return r}if(!e)return r;switch(typeof e){case"function":let f=e(t,s);return f?E(f,t,s,r):r;case"object":if(e instanceof Headers)return e.forEach((o,a)=>{r[a.toLowerCase()]=o}),r;for(let[o,a]of Object.entries(e))r[o.toLowerCase()]=a;default:return r}},A=(e,t,s=[],r)=>new Proxy(()=>{},{get(f,o){return A(e,t,o==="index"?s:[...s,o],r)},apply(f,o,[a,g]){if(!a||g||typeof a=="object"&&Object.keys(a).length!==1||P.includes(s.at(-1))){let j=[...s],b=j.pop(),m="/"+j.join("/"),{fetcher:q=fetch,headers:k,onRequest:u,onResponse:S,fetch:I}=t,v=b==="get"||b==="head"||b==="subscribe";k=E(k,m,g);let C=v?a?.query:g?.query,F="";if(C){let n=(p,d)=>{F+=(F?"&":"?")+`${encodeURIComponent(p)}=${encodeURIComponent(d)}`};for(let[p,d]of Object.entries(C)){if(Array.isArray(d)){for(let y of d)n(p,y);continue}n(p,`${d}`)}}if(b==="subscribe"){let n=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||N.find(p=>e.includes(p))?"ws://":"wss://")+m+F;return new O(n)}return(async()=>{let n={method:b?.toUpperCase(),body:a,...I,headers:k};n.headers={...k,...E(v?a?.headers:g?.headers,m,n)};let p=v&&typeof a=="object"?a.fetch:g?.fetch;if(n={...n,...p},v&&delete n.body,u){Array.isArray(u)||(u=[u]);for(let c of u){let i=await c(m,n);typeof i=="object"&&(n={...n,...i,headers:{...n.headers,...E(i.headers,m,n)}})}}if(v&&delete n.body,B(a)){let c=new FormData;for(let[i,l]of Object.entries(n.body)){if(M){c.append(i,l);continue}if(l instanceof File){c.append(i,await R(l));continue}if(l instanceof FileList){for(let w=0;w<l.length;w++)c.append(i,await R(l[w]));continue}if(Array.isArray(l)){for(let w=0;w<l.length;w++){let W=l[w];c.append(i,W instanceof File?await R(W):W)}continue}c.append(i,l)}}else typeof a=="object"?(n.headers["content-type"]="application/json",n.body=JSON.stringify(a)):a!=null&&(n.headers["content-type"]="text/plain");if(v&&delete n.body,u){Array.isArray(u)||(u=[u]);for(let c of u){let i=await c(m,n);typeof i=="object"&&(n={...n,...i,headers:{...n.headers,...i.headers}})}}let d=e+m+F,y=await(r?.handle(new Request(d,n))??q(d,n)),h=null,T=null;if(S){Array.isArray(S)||(S=[S]);for(let c of S)try{let i=await c(y.clone());if(i!=null){h=i;break}}catch(i){i instanceof x?T=i:T=new x(422,i);break}}if(h===null){switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":h=await y.json();break;case"application/octet-stream":h=await y.arrayBuffer();break;default:h=await y.text().then(c=>{if(L(c))return+c;if(c==="true")return!0;if(c==="false")return!1;if(!c)return c;let i=c.replace(/"/g,"");if(U.test(i)||_.test(i)||$.test(i)){let l=new Date(i);if(!Number.isNaN(l.getTime()))return l}return c})}(y.status>=300||y.status<200)&&(T=new x(y.status,h),h=null)}return{data:h,error:T,response:y,status:y.status,headers:y.headers}})()}return typeof a=="object"?A(e,t,[...s,Object.values(a)[0]],r):A(e,t,s)}}),H=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(N.find(s=>e.includes(s))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),A(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),A("http://e.ly",t,[],e));export{J as edenFetch,D as edenTreaty,H as treaty};
1
+ import{b as J}from"./chunk-FOFYS2DG.mjs";import{a as P}from"./chunk-TDCHXBL7.mjs";import{b as L,c as O}from"./chunk-HUZ6GXDC.mjs";var N=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,x=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(s=>this.send(s)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,s,i){return this.addEventListener(t,s,i)}off(t,s,i){return this.ws.removeEventListener(t,s,i),this}subscribe(t,s){return this.addEventListener("message",t,s)}addEventListener(t,s,i){return this.ws.addEventListener(t,f=>{if(t==="message"){let n=f.data.toString(),a=n.charCodeAt(0),h=n.charCodeAt(n.length-1);if(a===91||a===123)try{n=JSON.parse(n,(W,d)=>{if(typeof d=="string"&&N.test(d)){let u=new Date(d);if(!Number.isNaN(u.getTime()))return u}return d})}catch{}else L(n)?n=+n:n==="true"?n=!0:n==="false"?n=!1:n==="null"?n=null:a===34&&h===34&&N.test(n)&&(n=new Date(n.substring(1,n.length-1)));s({...f,data:n})}else s(f)},i),this}removeEventListener(t,s,i){return this.off(t,s,i),this}close(){return this.ws.close(),this}};var U=["get","post","put","delete","patch","options","head","connect","subscribe"],D=["localhost","127.0.0.1","0.0.0.0"],M=typeof FileList>"u",Z=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,_=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,$=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,K=e=>M?e instanceof Blob:e instanceof FileList||e instanceof File,B=e=>{if(!e)return!1;for(let t in e)if(K(e[t])||Array.isArray(e[t])&&e[t].find(K))return!0;return!1},C=e=>M?e:new Promise(t=>{let s=new FileReader;s.onload=()=>{let i=new File([s.result],e.name,{lastModified:e.lastModified,type:e.type});t(i)},s.readAsArrayBuffer(e)}),E=(e,t,s={},i={})=>{if(Array.isArray(e)){for(let f of e)if(!Array.isArray(f))i=E(f,t,s,i);else{let n=f[0];if(typeof n=="string")i[n.toLowerCase()]=f[1];else for(let[a,h]of n)i[a.toLowerCase()]=h}return i}if(!e)return i;switch(typeof e){case"function":let f=e(t,s);return f?E(f,t,s,i):i;case"object":if(e instanceof Headers)return e.forEach((n,a)=>{i[a.toLowerCase()]=n}),i;for(let[n,a]of Object.entries(e))i[n.toLowerCase()]=a;default:return i}},A=(e,t,s=[],i)=>new Proxy(()=>{},{get(f,n){return A(e,t,n==="index"?s:[...s,n],i)},apply(f,n,[a,h]){if(!a||h||typeof a=="object"&&Object.keys(a).length!==1||U.includes(s.at(-1))){let W=[...s],d=W.pop(),u="/"+W.join("/"),{fetcher:I=fetch,headers:k,onRequest:p,onResponse:S,fetch:q}=t,v=d==="get"||d==="head"||d==="subscribe";k=E(k,u,h);let j=v?a?.query:h?.query,T="";if(j){let r=(g,m)=>{T+=(T?"&":"?")+`${encodeURIComponent(g)}=${encodeURIComponent(m)}`};for(let[g,m]of Object.entries(j)){if(Array.isArray(m)){for(let y of m)r(g,y);continue}r(g,`${m}`)}}if(d==="subscribe"){let r=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||D.find(g=>e.includes(g))?"ws://":"wss://")+u+T;return new x(r)}return(async()=>{let r={method:d?.toUpperCase(),body:a,...q,headers:k};r.headers={...k,...E(v?a?.headers:h?.headers,u,r)};let g=v&&typeof a=="object"?a.fetch:h?.fetch;if(r={...r,...g},v&&delete r.body,p){Array.isArray(p)||(p=[p]);for(let c of p){let o=await c(u,r);typeof o=="object"&&(r={...r,...o,headers:{...r.headers,...E(o.headers,u,r)}})}}if(v&&delete r.body,B(a)){let c=new FormData;for(let[o,l]of Object.entries(r.body)){if(M){c.append(o,l);continue}if(l instanceof File){c.append(o,await C(l));continue}if(l instanceof FileList){for(let b=0;b<l.length;b++)c.append(o,await C(l[b]));continue}if(Array.isArray(l)){for(let b=0;b<l.length;b++){let R=l[b];c.append(o,R instanceof File?await C(R):R)}continue}c.append(o,l)}r.body=c}else typeof a=="object"?(r.headers["content-type"]="application/json",r.body=JSON.stringify(a)):a!=null&&(r.headers["content-type"]="text/plain");if(v&&delete r.body,p){Array.isArray(p)||(p=[p]);for(let c of p){let o=await c(u,r);typeof o=="object"&&(r={...r,...o,headers:{...r.headers,...o.headers}})}}let m=e+u+T,y=await(i?.handle(new Request(m,r))??I(m,r)),w=null,F=null;if(S){Array.isArray(S)||(S=[S]);for(let c of S)try{let o=await c(y.clone());if(o!=null){w=o;break}}catch(o){o instanceof O?F=o:F=new O(422,o);break}}if(w===null){switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await y.json();break;case"application/octet-stream":w=await y.arrayBuffer();break;default:w=await y.text().then(c=>{if(L(c))return+c;if(c==="true")return!0;if(c==="false")return!1;if(!c)return c;let o=c.replace(/"/g,"");if(Z.test(o)||_.test(o)||$.test(o)){let l=new Date(o);if(!Number.isNaN(l.getTime()))return l}return c})}(y.status>=300||y.status<200)&&(F=new O(y.status,w),w=null)}return{data:w,error:F,response:y,status:y.status,headers:y.headers}})()}return typeof a=="object"?A(e,t,[...s,Object.values(a)[0]],i):A(e,t,s)}}),H=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(D.find(s=>e.includes(s))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),A(e,t)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),A("http://e.ly",t,[],e));export{P as edenFetch,J as edenTreaty,H as treaty};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elysiajs/eden",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "Fully type-safe Elysia client",
5
5
  "author": {
6
6
  "name": "saltyAom",
@@ -77,4 +77,4 @@
77
77
  "dependencies": {
78
78
  "@elysiajs/stream": "rc"
79
79
  }
80
- }
80
+ }