@elysiajs/eden 1.0.11 → 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 a of te(e))!ne.call(t,a)&&a!==n&&q(t,a,{get:()=>e[a],enumerable:!(r=ee(e,a))||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[a,s]of Object.entries(n))r+=`${a}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},x=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var A=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,a=>{if(e==="message"){let s=a.data.toString(),i=s.charCodeAt(0);if(i===47||i===123)try{s=JSON.parse(s)}catch{}else x(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},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 a of t)if(!Array.isArray(a))r=$(a,e,n,r);else{let s=a[0];if(typeof s=="string")r[s.toLowerCase()]=a[1];else for(let[i,l]of s)r[i.toLowerCase()]=l}return r}if(!t)return r;switch(typeof t){case"function":let a=t(e,n);return a?$(a,e,n,r):r;case"object":if(t instanceof Headers)return t.forEach((s,i)=>{r[i.toLowerCase()]=s}),r;for(let[s,i]of Object.entries(t))r[s.toLowerCase()]=i;default:return r}},C=(t,e,n=[],r)=>new Proxy(()=>{},{get(a,s){return C(t,e,s==="index"?n:[...n,s],r)},apply(a,s,[i,l]){if(!i||l||typeof i=="object"&&Object.keys(i).length!==1||ie.includes(n.at(-1))){let R=[...n],S=R.pop(),b="/"+R.join("/"),{fetcher:u=fetch,headers:h,onRequest:m,onResponse:k,fetch:j}=e,T=S==="get"||S==="head"||S==="subscribe";h=$(h,b,l);let N=T?i?.query:l?.query,E="";if(N)for(let[o,F]of Object.entries(N))E+=(E?"&":"?")+`${o}=${F}`;if(S==="subscribe"){let o=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||Z.find(F=>t.includes(F))?"ws://":"wss://")+b+E;return new I(o)}return(async()=>{let o={method:S?.toUpperCase(),body:i,...j,headers:h};if(o.headers={...h,...$(T?i?.headers:l?.headers,b,o)},T&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let c of m){let f=await c(b,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...$(f.headers,b,o)}})}}if(T&&delete o.body,o.body!==void 0&&!o.headers["content-type"])if(typeof o.body=="object")o.headers["content-type"]="application/json",o.body=JSON.stringify(o.body);else if(ye(o.body)){let c=new FormData;for(let[f,d]of Object.entries(o.body)){if(J){c.append(f,d);continue}if(d instanceof File){c.append(f,await D(d));continue}if(d instanceof FileList){for(let w=0;w<d.length;w++)c.append(f,await D(d[w]));continue}if(Array.isArray(d)){for(let w=0;w<d.length;w++){let p=d[w];c.append(f,p instanceof File?await D(p):p)}continue}c.append(f,d)}o.body=c}else o.body!==void 0&&(o.headers["content-type"]="text/plain");let F=t+b+E,g=await(r?.handle(new Request(F,o))??u(F,o)),y=null,O=null;if(k){Array.isArray(k)||(k=[k]);for(let c of k)try{let f=await c(g.clone());if(f!=null){y=f;break}}catch(f){f instanceof A?O=f:O=new A(422,f);break}}if(y===null){switch(g.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await g.json();break;case"application/octet-stream":y=await g.arrayBuffer();break;default:y=await g.text().then(c=>{if(x(c))return+c;if(c==="true")return!0;if(c==="false")return!1;if(!c)return c;let f=c.replace(/"/g,"");if(oe.test(f)||ce.test(f)||fe.test(f)){let d=new Date(f);if(!Number.isNaN(d.getTime()))return d}return c})}(g.status>=300||g.status<200)&&(O=new A(g.status,y),y=null)}return{data:y,error:O,response:g,status:g.status,headers:g.headers}})()}return typeof i=="object"?C(t,e,[...n,Object.values(i)[0]],r):C(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))),C(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."),C("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,a=>{if(e==="message"){let s=a.data.toString(),i=s.charCodeAt(0);if(i===47||i===123)try{s=JSON.parse(s)}catch{}else x(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},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,a,s){return Q(t,`${e}/${a.toString()}`,n)},apply(r,a,[s,i={}]=[{},{}]){let l=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:R,$fetch:S,$headers:b,$transform:u,getRaw:h,...m}=s??{};l??=m;let k=e.lastIndexOf("/"),j=e.slice(k+1).toUpperCase(),T=_(t,k===-1?"/":e.slice(0,k),Object.assign(i.query??{},R)),N=n.fetcher??fetch,E=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=u?Array.isArray(u)?u:[u]:void 0;return o&&(E?E=o.concat(E):E=o),j==="SUBSCRIBE"?new B(T.replace(/^([^]+):\/\//,T.startsWith("https://")?"wss://":"ws://")):(async g=>{let y,O={...n.$fetch?.headers,...S?.headers,...i.headers,...b};if(j!=="GET"&&j!=="HEAD"){y=Object.keys(l).length||Array.isArray(l)?l:void 0;let p=y&&(typeof y=="object"||Array.isArray(l));if(p&&ue(y)){let M=new FormData;for(let[K,v]of Object.entries(y))if(H)M.append(K,v);else if(v instanceof File)M.append(K,await U(v));else if(v instanceof FileList)for(let W=0;W<v.length;W++)M.append(K,await U(v[W]));else if(Array.isArray(v))for(let W=0;W<v.length;W++){let P=v[W];M.append(K,P instanceof File?await U(P):P)}else M.append(K,v);y=M}else y!=null&&(O["content-type"]=p?"application/json":"text/plain",y=p?JSON.stringify(y):l)}let c=await N(T,{method:j,body:y,...n.$fetch,...i.fetch,...S,headers:O}),f;if(g.getRaw)return c;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":f=await c.json();break;default:f=await c.text().then(p=>x(p)?+p:p==="true"?!0:p==="false"?!1:p)}let d=c.status>=300||c.status<200?new A(c.status,f):null,w={data:f,error:d,response:c,status:c.status,headers:c.headers};if(E)for(let p of E){let L=p(w);L instanceof Promise&&(L=await L),L!=null&&(w=L)}return w})({getRaw:h})}}),X=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return Q(t,r,e)}});var Y=(t,e)=>(n,{query:r,params:a,body:s,...i}={})=>{a&&Object.entries(a).forEach(([u,h])=>{n=n.replace(`:${u}`,h)});let l=i.headers?.["Content-Type"];if(!l||l==="application/json")try{s=JSON.stringify(s)}catch{}let R=e?.fetcher||globalThis.fetch,S=r?`?${new URLSearchParams(r).toString()}`:"",b=()=>R(t+n+S,{...i,method:i.method?.toUpperCase()||"GET",headers:s?{"content-type":"application/json",...i.headers}:i.headers,body:s}).then(async u=>{let h;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":h=await u.json();break;default:h=await u.text().then(m=>x(m)?parseInt(m):m==="true"?!0:m==="false"?!1:m);break}return u.status>300?{data:null,status:u.status,headers:u.headers,retry:b,error:new A(u.status,h)}:{data:h,error:null,status:u.status,headers:u.headers,retry:b}});return b()};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 a of te(e))!ne.call(t,a)&&a!==n&&q(t,a,{get:()=>e[a],enumerable:!(r=ee(e,a))||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[a,s]of Object.entries(n))r+=`${a}=${s}&`;return`${t}${e}?${r.slice(0,-1)}`},x=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var A=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,a=>{if(e==="message"){let s=a.data.toString(),i=s.charCodeAt(0);if(i===47||i===123)try{s=JSON.parse(s)}catch{}else x(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},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 a of t)if(!Array.isArray(a))r=$(a,e,n,r);else{let s=a[0];if(typeof s=="string")r[s.toLowerCase()]=a[1];else for(let[i,l]of s)r[i.toLowerCase()]=l}return r}if(!t)return r;switch(typeof t){case"function":let a=t(e,n);return a?$(a,e,n,r):r;case"object":if(t instanceof Headers)return t.forEach((s,i)=>{r[i.toLowerCase()]=s}),r;for(let[s,i]of Object.entries(t))r[s.toLowerCase()]=i;default:return r}},C=(t,e,n=[],r)=>new Proxy(()=>{},{get(a,s){return C(t,e,s==="index"?n:[...n,s],r)},apply(a,s,[i,l]){if(!i||l||typeof i=="object"&&Object.keys(i).length!==1||ie.includes(n.at(-1))){let R=[...n],S=R.pop(),b="/"+R.join("/"),{fetcher:u=fetch,headers:h,onRequest:m,onResponse:k,fetch:j}=e,T=S==="get"||S==="head"||S==="subscribe";h=$(h,b,l);let N=T?i?.query:l?.query,E="";if(N)for(let[o,F]of Object.entries(N))E+=(E?"&":"?")+`${o}=${F}`;if(S==="subscribe"){let o=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||Z.find(F=>t.includes(F))?"ws://":"wss://")+b+E;return new I(o)}return(async()=>{let o={method:S?.toUpperCase(),body:i,...j,headers:h};if(o.headers={...h,...$(T?i?.headers:l?.headers,b,o)},T&&delete o.body,m){Array.isArray(m)||(m=[m]);for(let c of m){let f=await c(b,o);typeof f=="object"&&(o={...o,...f,headers:{...o.headers,...$(f.headers,b,o)}})}}if(T&&delete o.body,o.body!==void 0&&!o.headers["content-type"])if(typeof o.body=="object")o.headers["content-type"]="application/json",o.body=JSON.stringify(o.body);else if(ye(o.body)){let c=new FormData;for(let[f,d]of Object.entries(o.body)){if(J){c.append(f,d);continue}if(d instanceof File){c.append(f,await D(d));continue}if(d instanceof FileList){for(let w=0;w<d.length;w++)c.append(f,await D(d[w]));continue}if(Array.isArray(d)){for(let w=0;w<d.length;w++){let p=d[w];c.append(f,p instanceof File?await D(p):p)}continue}c.append(f,d)}o.body=c}else o.body!==void 0&&(o.headers["content-type"]="text/plain");let F=t+b+E,g=await(r?.handle(new Request(F,o))??u(F,o)),y=null,O=null;if(k){Array.isArray(k)||(k=[k]);for(let c of k)try{let f=await c(g.clone());if(f!=null){y=f;break}}catch(f){f instanceof A?O=f:O=new A(422,f);break}}if(y===null){switch(g.headers.get("Content-Type")?.split(";")[0]){case"application/json":y=await g.json();break;case"application/octet-stream":y=await g.arrayBuffer();break;default:y=await g.text().then(c=>{if(x(c))return+c;if(c==="true")return!0;if(c==="false")return!1;if(!c)return c;let f=c.replace(/"/g,"");if(oe.test(f)||ce.test(f)||fe.test(f)){let d=new Date(f);if(!Number.isNaN(d.getTime()))return d}return c})}(g.status>=300||g.status<200)&&(O=new A(g.status,y),y=null)}return{data:y,error:O,response:g,status:g.status,headers:g.headers}})()}return typeof i=="object"?C(t,e,[...n,Object.values(i)[0]],r):C(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))),C(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."),C("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,a=>{if(e==="message"){let s=a.data.toString(),i=s.charCodeAt(0);if(i===47||i===123)try{s=JSON.parse(s)}catch{}else x(s)?s=+s:s==="true"?s=!0:s==="false"&&(s=!1);n({...a,data:s})}else n(a)},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,a,s){return Q(t,`${e}/${a.toString()}`,n)},apply(r,a,[s,i={}]=[{},{}]){let l=s!==void 0&&(typeof s!="object"||Array.isArray(s))?s:void 0,{$query:R,$fetch:S,$headers:b,$transform:u,getRaw:h,...m}=s??{};l??=m;let k=e.lastIndexOf("/"),j=e.slice(k+1).toUpperCase(),T=_(t,k===-1?"/":e.slice(0,k),Object.assign(i.query??{},R)),N=n.fetcher??fetch,E=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,o=u?Array.isArray(u)?u:[u]:void 0;return o&&(E?E=o.concat(E):E=o),j==="SUBSCRIBE"?new B(T.replace(/^([^]+):\/\//,T.startsWith("https://")?"wss://":"ws://")):(async g=>{let y,O={...n.$fetch?.headers,...S?.headers,...i.headers,...b};if(j!=="GET"&&j!=="HEAD"){y=Object.keys(l).length||Array.isArray(l)?l:void 0;let p=y&&(typeof y=="object"||Array.isArray(l));if(p&&ue(y)){let M=new FormData;for(let[K,v]of Object.entries(y))if(H)M.append(K,v);else if(v instanceof File)M.append(K,await U(v));else if(v instanceof FileList)for(let W=0;W<v.length;W++)M.append(K,await U(v[W]));else if(Array.isArray(v))for(let W=0;W<v.length;W++){let P=v[W];M.append(K,P instanceof File?await U(P):P)}else M.append(K,v);y=M}else y!=null&&(O["content-type"]=p?"application/json":"text/plain",y=p?JSON.stringify(y):l)}let c=await N(T,{method:j,body:y,...n.$fetch,...i.fetch,...S,headers:O}),f;if(g.getRaw)return c;switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":f=await c.json();break;default:f=await c.text().then(p=>x(p)?+p:p==="true"?!0:p==="false"?!1:p)}let d=c.status>=300||c.status<200?new A(c.status,f):null,w={data:f,error:d,response:c,status:c.status,headers:c.headers};if(E)for(let p of E){let L=p(w);L instanceof Promise&&(L=await L),L!=null&&(w=L)}return w})({getRaw:h})}}),X=(t,e={fetcher:fetch})=>new Proxy({},{get(n,r){return Q(t,r,e)}});var Y=(t,e)=>(n,{query:r,params:a,body:s,...i}={})=>{a&&Object.entries(a).forEach(([u,h])=>{n=n.replace(`:${u}`,h)});let l=i.headers?.["Content-Type"];if(!l||l==="application/json")try{s=JSON.stringify(s)}catch{}let R=e?.fetcher||globalThis.fetch,S=r?`?${new URLSearchParams(r).toString()}`:"",b=()=>R(t+n+S,{...i,method:i.method?.toUpperCase()||"GET",headers:s?{"content-type":"application/json",...i.headers}:i.headers,body:s}).then(async u=>{let h;switch(u.headers.get("Content-Type")?.split(";")[0]){case"application/json":h=await u.json();break;default:h=await u.text().then(m=>x(m)?parseInt(m):m==="true"?!0:m==="false"?!1:m);break}return u.status>300?{data:null,status:u.status,headers:u.headers,retry:b,error:new A(u.status,h)}:{data:h,error:null,status:u.status,headers:u.headers,retry:b}});return b()};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 I}from"./chunk-TDCHXBL7.mjs";import{b as T,c as L}from"./chunk-HUZ6GXDC.mjs";var 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,n){return this.addEventListener(t,s,n)}off(t,s,n){return this.ws.removeEventListener(t,s,n),this}subscribe(t,s){return this.addEventListener("message",t,s)}addEventListener(t,s,n){return this.ws.addEventListener(t,f=>{if(t==="message"){let i=f.data.toString(),c=i.charCodeAt(0);if(c===47||c===123)try{i=JSON.parse(i)}catch{}else T(i)?i=+i:i==="true"?i=!0:i==="false"&&(i=!1);s({...f,data:i})}else s(f)},n),this}removeEventListener(t,s,n){return this.off(t,s,n),this}close(){return this.ws.close(),this}};var J=["get","post","put","delete","patch","options","head","connect","subscribe"],C=["localhost","127.0.0.1","0.0.0.0"],M=typeof FileList>"u",P=/(\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\([^)]+\)/,B=/^(?:(?:(?:(?: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)?)?$/,j=e=>M?e instanceof Blob:e instanceof FileList||e instanceof File,H=e=>{if(!e)return!1;for(let t in e)if(j(e[t])||Array.isArray(e[t])&&e[t].find(j))return!0;return!1},O=e=>M?e:new Promise(t=>{let s=new FileReader;s.onload=()=>{let n=new File([s.result],e.name,{lastModified:e.lastModified,type:e.type});t(n)},s.readAsArrayBuffer(e)}),v=(e,t,s={},n={})=>{if(Array.isArray(e)){for(let f of e)if(!Array.isArray(f))n=v(f,t,s,n);else{let i=f[0];if(typeof i=="string")n[i.toLowerCase()]=f[1];else for(let[c,p]of i)n[c.toLowerCase()]=p}return n}if(!e)return n;switch(typeof e){case"function":let f=e(t,s);return f?v(f,t,s,n):n;case"object":if(e instanceof Headers)return e.forEach((i,c)=>{n[c.toLowerCase()]=i}),n;for(let[i,c]of Object.entries(e))n[i.toLowerCase()]=c;default:return n}},S=(e,t,s=[],n)=>new Proxy(()=>{},{get(f,i){return S(e,t,i==="index"?s:[...s,i],n)},apply(f,i,[c,p]){if(!c||p||typeof c=="object"&&Object.keys(c).length!==1||J.includes(s.at(-1))){let K=[...s],b=K.pop(),h="/"+K.join("/"),{fetcher:N=fetch,headers:E,onRequest:g,onResponse:w,fetch:q}=t,k=b==="get"||b==="head"||b==="subscribe";E=v(E,h,p);let R=k?c?.query:p?.query,A="";if(R)for(let[r,m]of Object.entries(R))A+=(A?"&":"?")+`${r}=${m}`;if(b==="subscribe"){let r=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||C.find(m=>e.includes(m))?"ws://":"wss://")+h+A;return new x(r)}return(async()=>{let r={method:b?.toUpperCase(),body:c,...q,headers:E};if(r.headers={...E,...v(k?c?.headers:p?.headers,h,r)},k&&delete r.body,g){Array.isArray(g)||(g=[g]);for(let a of g){let o=await a(h,r);typeof o=="object"&&(r={...r,...o,headers:{...r.headers,...v(o.headers,h,r)}})}}if(k&&delete r.body,r.body!==void 0&&!r.headers["content-type"])if(typeof r.body=="object")r.headers["content-type"]="application/json",r.body=JSON.stringify(r.body);else if(H(r.body)){let a=new FormData;for(let[o,y]of Object.entries(r.body)){if(M){a.append(o,y);continue}if(y instanceof File){a.append(o,await O(y));continue}if(y instanceof FileList){for(let u=0;u<y.length;u++)a.append(o,await O(y[u]));continue}if(Array.isArray(y)){for(let u=0;u<y.length;u++){let W=y[u];a.append(o,W instanceof File?await O(W):W)}continue}a.append(o,y)}r.body=a}else r.body!==void 0&&(r.headers["content-type"]="text/plain");let m=e+h+A,d=await(n?.handle(new Request(m,r))??N(m,r)),l=null,F=null;if(w){Array.isArray(w)||(w=[w]);for(let a of w)try{let o=await a(d.clone());if(o!=null){l=o;break}}catch(o){o instanceof L?F=o:F=new L(422,o);break}}if(l===null){switch(d.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await d.json();break;case"application/octet-stream":l=await d.arrayBuffer();break;default:l=await d.text().then(a=>{if(T(a))return+a;if(a==="true")return!0;if(a==="false")return!1;if(!a)return a;let o=a.replace(/"/g,"");if(P.test(o)||_.test(o)||B.test(o)){let y=new Date(o);if(!Number.isNaN(y.getTime()))return y}return a})}(d.status>=300||d.status<200)&&(F=new L(d.status,l),l=null)}return{data:l,error:F,response:d,status:d.status,headers:d.headers}})()}return typeof c=="object"?S(e,t,[...s,Object.values(c)[0]],n):S(e,t,s)}}),Z=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(C.find(s=>e.includes(s))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),S(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."),S("http://e.ly",t,[],e));export{I as edenFetch,D as edenTreaty,Z 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.11",
3
+ "version": "1.0.13",
4
4
  "description": "Fully type-safe Elysia client",
5
5
  "author": {
6
6
  "name": "saltyAom",
@@ -10,6 +10,7 @@
10
10
  "main": "./dist/index.js",
11
11
  "module": "./dist/index.mjs",
12
12
  "exports": {
13
+ "./package.json": "./package.json",
13
14
  ".": {
14
15
  "require": "./dist/index.js",
15
16
  "import": "./dist/index.mjs",