@elysiajs/eden 1.0.13 → 1.1.0-exp.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-3TD723IX.mjs +1 -0
- package/dist/fetch.global.js +1 -1
- package/dist/fetch.js +1 -1
- package/dist/fetch.mjs +1 -1
- package/dist/index.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.global.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/treaty2/index.d.ts +4 -0
- package/dist/treaty2/types.d.ts +4 -1
- package/package.json +5 -5
- package/dist/chunk-TDCHXBL7.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as F,c as x}from"./chunk-HUZ6GXDC.mjs";var J=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,R=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,a){return this.addEventListener(t,s,a)}off(t,s,a){return this.ws.removeEventListener(t,s,a),this}subscribe(t,s){return this.addEventListener("message",t,s)}addEventListener(t,s,a){return this.ws.addEventListener(t,c=>{if(t==="message"){let n=c.data.toString(),r=n.charCodeAt(0),p=n.charCodeAt(n.length-1);if(r===91||r===123)try{n=JSON.parse(n,(v,f)=>{if(typeof f=="string"&&J.test(f)){let l=new Date(f);if(!Number.isNaN(l.getTime()))return l}return f})}catch{}else F(n)?n=+n:n==="true"?n=!0:n==="false"?n=!1:n==="null"?n=null:r===34&&p===34&&J.test(n)&&(n=new Date(n.substring(1,n.length-1)));s({...c,data:n})}else s(c)},a),this}removeEventListener(t,s,a){return this.off(t,s,a),this}close(){return this.ws.close(),this}};var $=["get","post","put","delete","patch","options","head","connect","subscribe"],U=["localhost","127.0.0.1","0.0.0.0"],I=typeof FileList>"u",j=/(\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))/,D=/(?: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\([^)]+\)/,W=/^(?:(?:(?:(?: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)?)?$/,P=e=>I?e instanceof Blob:e instanceof FileList||e instanceof File,B=e=>{if(!e)return!1;for(let t in e)if(P(e[t])||Array.isArray(e[t])&&e[t].find(P))return!0;return!1},K=e=>I?e:new Promise(t=>{let s=new FileReader;s.onload=()=>{let a=new File([s.result],e.name,{lastModified:e.lastModified,type:e.type});t(a)},s.readAsArrayBuffer(e)}),N=(e,t,s={},a={})=>{if(Array.isArray(e)){for(let c of e)if(!Array.isArray(c))a=N(c,t,s,a);else{let n=c[0];if(typeof n=="string")a[n.toLowerCase()]=c[1];else for(let[r,p]of n)a[r.toLowerCase()]=p}return a}if(!e)return a;switch(typeof e){case"function":if(e instanceof Headers)return N(e,t,s,a);let c=e(t,s);return c?N(c,t,s,a):a;case"object":if(e instanceof Headers)return e.forEach((n,r)=>{a[r.toLowerCase()]=n}),a;for(let[n,r]of Object.entries(e))a[n.toLowerCase()]=r;default:return a}};async function*H(e){let t=e.body;if(!t)return;let s=t.getReader(),a=new TextDecoder;try{for(;;){let{done:c,value:n}=await s.read();if(c)break;let r=a.decode(n);if(F(r)){yield+r;continue}if(r==="true"){yield!0;continue}if(r==="false"){yield!1;continue}let p=r.charCodeAt(0),v=r.charCodeAt(r.length-1);if(p===123&&v===125||p===91&&v===93)try{yield JSON.parse(r);continue}catch{}let f=r.replace(/"/g,"");if(j.test(f)||D.test(f)||W.test(f)){let l=new Date(f);Number.isNaN(l.getTime())||(yield l);continue}yield r}}finally{s.releaseLock()}}var O=(e,t,s=[],a)=>new Proxy(()=>{},{get(c,n){return O(e,t,n==="index"?s:[...s,n],a)},apply(c,n,[r,p]){if(!r||p||typeof r=="object"&&Object.keys(r).length!==1||$.includes(s.at(-1))){let v=[...s],f=v.pop(),l="/"+v.join("/"),{fetcher:y=fetch,headers:g,onRequest:w,onResponse:d,fetch:k}=t,E=f==="get"||f==="head"||f==="subscribe";g=N(g,l,p);let q=E?r?.query:p?.query,C="";if(q){let o=(A,T)=>{C+=(C?"&":"?")+`${encodeURIComponent(A)}=${encodeURIComponent(T)}`};for(let[A,T]of Object.entries(q)){if(Array.isArray(T)){for(let h of T)o(A,h);continue}o(A,`${T}`)}}if(f==="subscribe"){let o=e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":e.startsWith("http://")||U.find(A=>e.includes(A))?"ws://":"wss://")+l+C;return new R(o)}return(async()=>{let o={method:f?.toUpperCase(),body:r,...k,headers:g};o.headers={...g,...N(E?r?.headers:p?.headers,l,o)};let A=E&&typeof r=="object"?r.fetch:p?.fetch;if(o={...o,...A},E&&delete o.body,w){Array.isArray(w)||(w=[w]);for(let m of w){let i=await m(l,o);typeof i=="object"&&(o={...o,...i,headers:{...o.headers,...N(i.headers,l,o)}})}}if(E&&delete o.body,B(r)){let m=new FormData;for(let[i,u]of Object.entries(o.body)){if(I){m.append(i,u);continue}if(u instanceof File){m.append(i,await K(u));continue}if(u instanceof FileList){for(let S=0;S<u.length;S++)m.append(i,await K(u[S]));continue}if(Array.isArray(u)){for(let S=0;S<u.length;S++){let M=u[S];m.append(i,M instanceof File?await K(M):M)}continue}m.append(i,u)}o.body=m}else typeof r=="object"?(o.headers["content-type"]="application/json",o.body=JSON.stringify(r)):r!=null&&(o.headers["content-type"]="text/plain");if(E&&delete o.body,w){Array.isArray(w)||(w=[w]);for(let m of w){let i=await m(l,o);typeof i=="object"&&(o={...o,...i,headers:{...o.headers,...i.headers}})}}let T=e+l+C,h=await(a?.handle(new Request(T,o))??y(T,o)),b=null,L=null;if(d){Array.isArray(d)||(d=[d]);for(let m of d)try{let i=await m(h.clone());if(i!=null){b=i;break}}catch(i){i instanceof x?L=i:L=new x(422,i);break}}if(b===null){switch(h.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":b=H(h);break;case"application/json":b=await h.json();break;case"application/octet-stream":b=await h.arrayBuffer();break;case"multipart/form-data":let m=await h.formData();b={},m.forEach((i,u)=>{b[u]=i});break;default:b=await h.text().then(i=>{if(F(i))return+i;if(i==="true")return!0;if(i==="false")return!1;if(!i)return i;let u=i.replace(/"/g,"");if(j.test(u)||D.test(u)||W.test(u)){let S=new Date(u);if(!Number.isNaN(S.getTime()))return S}return i})}(h.status>=300||h.status<200)&&(L=new x(h.status,b),b=null)}return{data:b,error:L,response:h,status:h.status,headers:h.headers}})()}return typeof r=="object"?O(e,t,[...s,Object.values(r)[0]],a):O(e,t,s)}}),X=(e,t={})=>typeof e=="string"?(t.keepDomain||(e.includes("://")||(e=(U.find(s=>e.includes(s))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1))),O(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."),O("http://e.ly",t,[],e));var ne=(e,t)=>(s,{query:a,params:c,body:n,...r}={})=>{c&&Object.entries(c).forEach(([y,g])=>{s=s.replace(`:${y}`,g)});let p=r.headers?.["Content-Type"];if(!p||p==="application/json")try{n=JSON.stringify(n)}catch{}let v=t?.fetcher||globalThis.fetch,f=a?`?${new URLSearchParams(a).toString()}`:"",l=()=>v(e+s+f,{...r,method:r.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...r.headers}:r.headers,body:n}).then(async y=>{let g;switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await y.json();break;case"application/octet-stream":g=await y.arrayBuffer();break;case"multipart/form-data":let w=await y.formData();g={},w.forEach((d,k)=>{g[k]=d});break;default:g=await y.text().then(d=>{if(F(d))return+d;if(d==="true")return!0;if(d==="false")return!1;if(!d)return d;let k=d.replace(/"/g,"");if(j.test(k)||D.test(k)||W.test(k)){let E=new Date(k);if(!Number.isNaN(E.getTime()))return E}return d})}return y.status>300?{data:null,status:y.status,headers:y.headers,retry:l,error:new x(y.status,g)}:{data:g,error:null,status:y.status,headers:y.headers,retry:l}});return l()};export{X as a,ne as b};
|
package/dist/fetch.global.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Eden=(()=>{var p=Object.defineProperty;var
|
|
1
|
+
"use strict";var Eden=(()=>{var p=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var T=(t,r)=>{for(var s in r)p(t,s,{get:r[s],enumerable:!0})},N=(t,r,s,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of A(r))!x.call(t,a)&&a!==s&&p(t,a,{get:()=>r[a],enumerable:!(o=k(r,a))||o.enumerable});return t};var F=t=>N(p({},"__esModule",{value:!0}),t);var C={};T(C,{edenFetch:()=>O});var d=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var u=class extends Error{constructor(s,o){super(o+"");this.status=s;this.value=o}};var m=/(\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))/,w=/(?: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)?)?$/;var O=(t,r)=>(s,{query:o,params:a,body:l,...f}={})=>{a&&Object.entries(a).forEach(([e,i])=>{s=s.replace(`:${e}`,i)});let h=f.headers?.["Content-Type"];if(!h||h==="application/json")try{l=JSON.stringify(l)}catch{}let S=r?.fetcher||globalThis.fetch,E=o?`?${new URLSearchParams(o).toString()}`:"",y=()=>S(t+s+E,{...f,method:f.method?.toUpperCase()||"GET",headers:l?{"content-type":"application/json",...f.headers}:f.headers,body:l}).then(async e=>{let i;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":i=await e.json();break;case"application/octet-stream":i=await e.arrayBuffer();break;case"multipart/form-data":let v=await e.formData();i={},v.forEach((n,c)=>{i[c]=n});break;default:i=await e.text().then(n=>{if(d(n))return+n;if(n==="true")return!0;if(n==="false")return!1;if(!n)return n;let c=n.replace(/"/g,"");if(m.test(c)||w.test(c)||b.test(c)){let g=new Date(c);if(!Number.isNaN(g.getTime()))return g}return n})}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:y,error:new u(e.status,i)}:{data:i,error:null,status:e.status,headers:e.headers,retry:y}});return y()};return F(C);})();
|
package/dist/fetch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var T=(t,r)=>{for(var s in r)p(t,s,{get:r[s],enumerable:!0})},N=(t,r,s,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of A(r))!x.call(t,a)&&a!==s&&p(t,a,{get:()=>r[a],enumerable:!(o=k(r,a))||o.enumerable});return t};var F=t=>N(p({},"__esModule",{value:!0}),t);var C={};T(C,{edenFetch:()=>O});module.exports=F(C);var d=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var u=class extends Error{constructor(s,o){super(o+"");this.status=s;this.value=o}};var m=/(\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))/,w=/(?: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)?)?$/;var O=(t,r)=>(s,{query:o,params:a,body:l,...f}={})=>{a&&Object.entries(a).forEach(([e,i])=>{s=s.replace(`:${e}`,i)});let h=f.headers?.["Content-Type"];if(!h||h==="application/json")try{l=JSON.stringify(l)}catch{}let S=r?.fetcher||globalThis.fetch,E=o?`?${new URLSearchParams(o).toString()}`:"",y=()=>S(t+s+E,{...f,method:f.method?.toUpperCase()||"GET",headers:l?{"content-type":"application/json",...f.headers}:f.headers,body:l}).then(async e=>{let i;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":i=await e.json();break;case"application/octet-stream":i=await e.arrayBuffer();break;case"multipart/form-data":let v=await e.formData();i={},v.forEach((n,c)=>{i[c]=n});break;default:i=await e.text().then(n=>{if(d(n))return+n;if(n==="true")return!0;if(n==="false")return!1;if(!n)return n;let c=n.replace(/"/g,"");if(m.test(c)||w.test(c)||b.test(c)){let g=new Date(c);if(!Number.isNaN(g.getTime()))return g}return n})}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:y,error:new u(e.status,i)}:{data:i,error:null,status:e.status,headers:e.headers,retry:y}});return y()};0&&(module.exports={edenFetch});
|
package/dist/fetch.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{b as a}from"./chunk-3TD723IX.mjs";import"./chunk-HUZ6GXDC.mjs";export{a as edenFetch};
|
package/dist/index.d.mts
CHANGED
|
@@ -22,6 +22,9 @@ type Files = File | FileList;
|
|
|
22
22
|
type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
|
|
23
23
|
[K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K];
|
|
24
24
|
} & {};
|
|
25
|
+
type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
|
|
26
|
+
[K in keyof RecordType]: RecordType[K] extends Generator<infer A, infer B, infer C> ? AsyncGenerator<A, B, C> : RecordType[K];
|
|
27
|
+
} & {};
|
|
25
28
|
type MaybeArray<T> = T | T[];
|
|
26
29
|
type MaybePromise<T> = T | Promise<T>;
|
|
27
30
|
declare namespace Treaty {
|
|
@@ -68,7 +71,7 @@ declare namespace Treaty {
|
|
|
68
71
|
onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
|
|
69
72
|
keepDomain?: boolean;
|
|
70
73
|
}
|
|
71
|
-
type TreatyResponse<Res extends Record<number, unknown>> = {
|
|
74
|
+
type TreatyResponse<_Res extends Record<number, unknown>, Res extends Record<number, unknown> = ReplaceGeneratorWithAsyncGenerator<_Res>> = {
|
|
72
75
|
data: Res[200];
|
|
73
76
|
error: null;
|
|
74
77
|
response: Response;
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,9 @@ type Files = File | FileList;
|
|
|
22
22
|
type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
|
|
23
23
|
[K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K];
|
|
24
24
|
} & {};
|
|
25
|
+
type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
|
|
26
|
+
[K in keyof RecordType]: RecordType[K] extends Generator<infer A, infer B, infer C> ? AsyncGenerator<A, B, C> : RecordType[K];
|
|
27
|
+
} & {};
|
|
25
28
|
type MaybeArray<T> = T | T[];
|
|
26
29
|
type MaybePromise<T> = T | Promise<T>;
|
|
27
30
|
declare namespace Treaty {
|
|
@@ -68,7 +71,7 @@ declare namespace Treaty {
|
|
|
68
71
|
onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
|
|
69
72
|
keepDomain?: boolean;
|
|
70
73
|
}
|
|
71
|
-
type TreatyResponse<Res extends Record<number, unknown>> = {
|
|
74
|
+
type TreatyResponse<_Res extends Record<number, unknown>, Res extends Record<number, unknown> = ReplaceGeneratorWithAsyncGenerator<_Res>> = {
|
|
72
75
|
data: Res[200];
|
|
73
76
|
error: null;
|
|
74
77
|
response: Response;
|
package/dist/index.global.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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);})();
|
|
1
|
+
"use strict";var Eden=(()=>{var U=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var oe=(t,e)=>{for(var r in e)U(t,r,{get:e[r],enumerable:!0})},ce=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ae(e))!ie.call(t,o)&&o!==r&&U(t,o,{get:()=>e[o],enumerable:!(s=se(e,o))||s.enumerable});return t};var fe=t=>ce(U({},"__esModule",{value:!0}),t);var pe={};oe(pe,{edenFetch:()=>ne,edenTreaty:()=>re,treaty:()=>Y});var V=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let s="";for(let[o,n]of Object.entries(r))s+=`${o}=${n}&`;return`${t}${e}?${s.slice(0,-1)}`},R=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var L=class extends Error{constructor(r,s){super(s+"");this.status=r;this.value=s}};var z=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,D=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,s){return this.addEventListener(e,r,s)}off(e,r,s){return this.ws.removeEventListener(e,r,s),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let n=o.data.toString(),a=n.charCodeAt(0),y=n.charCodeAt(n.length-1);if(a===91||a===123)try{n=JSON.parse(n,(T,p)=>{if(typeof p=="string"&&z.test(p)){let m=new Date(p);if(!Number.isNaN(m.getTime()))return m}return p})}catch{}else R(n)?n=+n:n==="true"?n=!0:n==="false"?n=!1:n==="null"?n=null:a===34&&y===34&&z.test(n)&&(n=new Date(n.substring(1,n.length-1)));r({...o,data:n})}else r(o)},s),this}removeEventListener(e,r,s){return this.off(e,r,s),this}close(){return this.ws.close(),this}};var ye=["get","post","put","delete","patch","options","head","connect","subscribe"],X=["localhost","127.0.0.1","0.0.0.0"],H=typeof FileList>"u",I=/(\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))/,P=/(?: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\([^)]+\)/,q=/^(?:(?:(?:(?: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)?)?$/,Q=t=>H?t instanceof Blob:t instanceof FileList||t instanceof File,ue=t=>{if(!t)return!1;for(let e in t)if(Q(t[e])||Array.isArray(t[e])&&t[e].find(Q))return!0;return!1},B=t=>H?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let s=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},r.readAsArrayBuffer(t)}),j=(t,e,r={},s={})=>{if(Array.isArray(t)){for(let o of t)if(!Array.isArray(o))s=j(o,e,r,s);else{let n=o[0];if(typeof n=="string")s[n.toLowerCase()]=o[1];else for(let[a,y]of n)s[a.toLowerCase()]=y}return s}if(!t)return s;switch(typeof t){case"function":if(t instanceof Headers)return j(t,e,r,s);let o=t(e,r);return o?j(o,e,r,s):s;case"object":if(t instanceof Headers)return t.forEach((n,a)=>{s[a.toLowerCase()]=n}),s;for(let[n,a]of Object.entries(t))s[n.toLowerCase()]=a;default:return s}};async function*le(t){let e=t.body;if(!e)return;let r=e.getReader(),s=new TextDecoder;try{for(;;){let{done:o,value:n}=await r.read();if(o)break;let a=s.decode(n);if(R(a)){yield+a;continue}if(a==="true"){yield!0;continue}if(a==="false"){yield!1;continue}let y=a.charCodeAt(0),T=a.charCodeAt(a.length-1);if(y===123&&T===125||y===91&&T===93)try{yield JSON.parse(a);continue}catch{}let p=a.replace(/"/g,"");if(I.test(p)||P.test(p)||q.test(p)){let m=new Date(p);Number.isNaN(m.getTime())||(yield m);continue}yield a}}finally{r.releaseLock()}}var $=(t,e,r=[],s)=>new Proxy(()=>{},{get(o,n){return $(t,e,n==="index"?r:[...r,n],s)},apply(o,n,[a,y]){if(!a||y||typeof a=="object"&&Object.keys(a).length!==1||ye.includes(r.at(-1))){let T=[...r],p=T.pop(),m="/"+T.join("/"),{fetcher:l=fetch,headers:w,onRequest:E,onResponse:h,fetch:v}=e,A=p==="get"||p==="head"||p==="subscribe";w=j(w,m,y);let K=A?a?.query:y?.query,k="";if(K){let c=(N,F)=>{k+=(k?"&":"?")+`${encodeURIComponent(N)}=${encodeURIComponent(F)}`};for(let[N,F]of Object.entries(K)){if(Array.isArray(F)){for(let f of F)c(N,f);continue}c(N,`${F}`)}}if(p==="subscribe"){let c=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||X.find(N=>t.includes(N))?"ws://":"wss://")+m+k;return new D(c)}return(async()=>{let c={method:p?.toUpperCase(),body:a,...v,headers:w};c.headers={...w,...j(A?a?.headers:y?.headers,m,c)};let N=A&&typeof a=="object"?a.fetch:y?.fetch;if(c={...c,...N},A&&delete c.body,E){Array.isArray(E)||(E=[E]);for(let g of E){let i=await g(m,c);typeof i=="object"&&(c={...c,...i,headers:{...c.headers,...j(i.headers,m,c)}})}}if(A&&delete c.body,ue(a)){let g=new FormData;for(let[i,d]of Object.entries(c.body)){if(H){g.append(i,d);continue}if(d instanceof File){g.append(i,await B(d));continue}if(d instanceof FileList){for(let u=0;u<d.length;u++)g.append(i,await B(d[u]));continue}if(Array.isArray(d)){for(let u=0;u<d.length;u++){let x=d[u];g.append(i,x instanceof File?await B(x):x)}continue}g.append(i,d)}c.body=g}else typeof a=="object"?(c.headers["content-type"]="application/json",c.body=JSON.stringify(a)):a!=null&&(c.headers["content-type"]="text/plain");if(A&&delete c.body,E){Array.isArray(E)||(E=[E]);for(let g of E){let i=await g(m,c);typeof i=="object"&&(c={...c,...i,headers:{...c.headers,...i.headers}})}}let F=t+m+k,f=await(s?.handle(new Request(F,c))??l(F,c)),S=null,b=null;if(h){Array.isArray(h)||(h=[h]);for(let g of h)try{let i=await g(f.clone());if(i!=null){S=i;break}}catch(i){i instanceof L?b=i:b=new L(422,i);break}}if(S===null){switch(f.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":S=le(f);break;case"application/json":S=await f.json();break;case"application/octet-stream":S=await f.arrayBuffer();break;case"multipart/form-data":let g=await f.formData();S={},g.forEach((i,d)=>{S[d]=i});break;default:S=await f.text().then(i=>{if(R(i))return+i;if(i==="true")return!0;if(i==="false")return!1;if(!i)return i;let d=i.replace(/"/g,"");if(I.test(d)||P.test(d)||q.test(d)){let u=new Date(d);if(!Number.isNaN(u.getTime()))return u}return i})}(f.status>=300||f.status<200)&&(b=new L(f.status,S),S=null)}return{data:S,error:b,response:f,status:f.status,headers:f.headers}})()}return typeof a=="object"?$(t,e,[...r,Object.values(a)[0]],s):$(t,e,r)}}),Y=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(X.find(r=>t.includes(r))?"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 Z=typeof FileList>"u",ee=t=>Z?t instanceof Blob:t instanceof FileList||t instanceof File,de=t=>{if(!t)return!1;for(let e in t){if(ee(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(r=>ee(r)))return!0}return!1},_=t=>Z?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let s=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},r.readAsArrayBuffer(t)}),G=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,s){return this.addEventListener(e,r,s)}off(e,r,s){return this.ws.removeEventListener(e,r,s),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let n=o.data.toString(),a=n.charCodeAt(0);if(a===47||a===123)try{n=JSON.parse(n)}catch{}else R(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...o,data:n})}else r(o)},s),this}removeEventListener(e,r,s){return this.off(e,r,s),this}close(){return this.ws.close(),this}},te=(t,e="",r)=>new Proxy(()=>{},{get(s,o,n){return te(t,`${e}/${o.toString()}`,r)},apply(s,o,[n,a={}]=[{},{}]){let y=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:T,$fetch:p,$headers:m,$transform:l,getRaw:w,...E}=n??{};y??=E;let h=e.lastIndexOf("/"),v=e.slice(h+1).toUpperCase(),A=V(t,h===-1?"/":e.slice(0,h),Object.assign(a.query??{},T)),K=r.fetcher??fetch,k=r.transform?Array.isArray(r.transform)?r.transform:[r.transform]:void 0,c=l?Array.isArray(l)?l:[l]:void 0;return c&&(k?k=c.concat(k):k=c),v==="SUBSCRIBE"?new G(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async F=>{let f,S={...r.$fetch?.headers,...p?.headers,...a.headers,...m};if(v!=="GET"&&v!=="HEAD"){f=Object.keys(y).length||Array.isArray(y)?y:void 0;let u=f&&(typeof f=="object"||Array.isArray(y));if(u&&de(f)){let C=new FormData;for(let[M,O]of Object.entries(f))if(Z)C.append(M,O);else if(O instanceof File)C.append(M,await _(O));else if(O instanceof FileList)for(let W=0;W<O.length;W++)C.append(M,await _(O[W]));else if(Array.isArray(O))for(let W=0;W<O.length;W++){let J=O[W];C.append(M,J instanceof File?await _(J):J)}else C.append(M,O);f=C}else f!=null&&(S["content-type"]=u?"application/json":"text/plain",f=u?JSON.stringify(f):y)}let b=await K(A,{method:v,body:f,...r.$fetch,...a.fetch,...p,headers:S}),g;if(F.getRaw)return b;switch(b.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await b.json();break;default:g=await b.text().then(u=>R(u)?+u:u==="true"?!0:u==="false"?!1:u)}let i=b.status>=300||b.status<200?new L(b.status,g):null,d={data:g,error:i,response:b,status:b.status,headers:b.headers};if(k)for(let u of k){let x=u(d);x instanceof Promise&&(x=await x),x!=null&&(d=x)}return d})({getRaw:w})}}),re=(t,e={fetcher:fetch})=>new Proxy({},{get(r,s){return te(t,s,e)}});var ne=(t,e)=>(r,{query:s,params:o,body:n,...a}={})=>{o&&Object.entries(o).forEach(([l,w])=>{r=r.replace(`:${l}`,w)});let y=a.headers?.["Content-Type"];if(!y||y==="application/json")try{n=JSON.stringify(n)}catch{}let T=e?.fetcher||globalThis.fetch,p=s?`?${new URLSearchParams(s).toString()}`:"",m=()=>T(t+r+p,{...a,method:a.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...a.headers}:a.headers,body:n}).then(async l=>{let w;switch(l.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await l.json();break;case"application/octet-stream":w=await l.arrayBuffer();break;case"multipart/form-data":let E=await l.formData();w={},E.forEach((h,v)=>{w[v]=h});break;default:w=await l.text().then(h=>{if(R(h))return+h;if(h==="true")return!0;if(h==="false")return!1;if(!h)return h;let v=h.replace(/"/g,"");if(I.test(v)||P.test(v)||q.test(v)){let A=new Date(v);if(!Number.isNaN(A.getTime()))return A}return h})}return l.status>300?{data:null,status:l.status,headers:l.headers,retry:m,error:new L(l.status,w)}:{data:w,error:null,status:l.status,headers:l.headers,retry:m}});return m()};return fe(pe);})();
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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});
|
|
1
|
+
"use strict";var U=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var oe=(t,e)=>{for(var r in e)U(t,r,{get:e[r],enumerable:!0})},ce=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ae(e))!ie.call(t,o)&&o!==r&&U(t,o,{get:()=>e[o],enumerable:!(s=se(e,o))||s.enumerable});return t};var fe=t=>ce(U({},"__esModule",{value:!0}),t);var pe={};oe(pe,{edenFetch:()=>ne,edenTreaty:()=>re,treaty:()=>Y});module.exports=fe(pe);var V=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let s="";for(let[o,n]of Object.entries(r))s+=`${o}=${n}&`;return`${t}${e}?${s.slice(0,-1)}`},R=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var L=class extends Error{constructor(r,s){super(s+"");this.status=r;this.value=s}};var z=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/,D=class{constructor(e){this.url=e;this.ws=new WebSocket(e)}ws;send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,s){return this.addEventListener(e,r,s)}off(e,r,s){return this.ws.removeEventListener(e,r,s),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let n=o.data.toString(),a=n.charCodeAt(0),y=n.charCodeAt(n.length-1);if(a===91||a===123)try{n=JSON.parse(n,(T,p)=>{if(typeof p=="string"&&z.test(p)){let m=new Date(p);if(!Number.isNaN(m.getTime()))return m}return p})}catch{}else R(n)?n=+n:n==="true"?n=!0:n==="false"?n=!1:n==="null"?n=null:a===34&&y===34&&z.test(n)&&(n=new Date(n.substring(1,n.length-1)));r({...o,data:n})}else r(o)},s),this}removeEventListener(e,r,s){return this.off(e,r,s),this}close(){return this.ws.close(),this}};var ye=["get","post","put","delete","patch","options","head","connect","subscribe"],X=["localhost","127.0.0.1","0.0.0.0"],H=typeof FileList>"u",I=/(\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))/,P=/(?: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\([^)]+\)/,q=/^(?:(?:(?:(?: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)?)?$/,Q=t=>H?t instanceof Blob:t instanceof FileList||t instanceof File,ue=t=>{if(!t)return!1;for(let e in t)if(Q(t[e])||Array.isArray(t[e])&&t[e].find(Q))return!0;return!1},B=t=>H?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let s=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},r.readAsArrayBuffer(t)}),j=(t,e,r={},s={})=>{if(Array.isArray(t)){for(let o of t)if(!Array.isArray(o))s=j(o,e,r,s);else{let n=o[0];if(typeof n=="string")s[n.toLowerCase()]=o[1];else for(let[a,y]of n)s[a.toLowerCase()]=y}return s}if(!t)return s;switch(typeof t){case"function":if(t instanceof Headers)return j(t,e,r,s);let o=t(e,r);return o?j(o,e,r,s):s;case"object":if(t instanceof Headers)return t.forEach((n,a)=>{s[a.toLowerCase()]=n}),s;for(let[n,a]of Object.entries(t))s[n.toLowerCase()]=a;default:return s}};async function*le(t){let e=t.body;if(!e)return;let r=e.getReader(),s=new TextDecoder;try{for(;;){let{done:o,value:n}=await r.read();if(o)break;let a=s.decode(n);if(R(a)){yield+a;continue}if(a==="true"){yield!0;continue}if(a==="false"){yield!1;continue}let y=a.charCodeAt(0),T=a.charCodeAt(a.length-1);if(y===123&&T===125||y===91&&T===93)try{yield JSON.parse(a);continue}catch{}let p=a.replace(/"/g,"");if(I.test(p)||P.test(p)||q.test(p)){let m=new Date(p);Number.isNaN(m.getTime())||(yield m);continue}yield a}}finally{r.releaseLock()}}var $=(t,e,r=[],s)=>new Proxy(()=>{},{get(o,n){return $(t,e,n==="index"?r:[...r,n],s)},apply(o,n,[a,y]){if(!a||y||typeof a=="object"&&Object.keys(a).length!==1||ye.includes(r.at(-1))){let T=[...r],p=T.pop(),m="/"+T.join("/"),{fetcher:l=fetch,headers:w,onRequest:E,onResponse:h,fetch:v}=e,A=p==="get"||p==="head"||p==="subscribe";w=j(w,m,y);let K=A?a?.query:y?.query,k="";if(K){let c=(N,F)=>{k+=(k?"&":"?")+`${encodeURIComponent(N)}=${encodeURIComponent(F)}`};for(let[N,F]of Object.entries(K)){if(Array.isArray(F)){for(let f of F)c(N,f);continue}c(N,`${F}`)}}if(p==="subscribe"){let c=t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":t.startsWith("http://")||X.find(N=>t.includes(N))?"ws://":"wss://")+m+k;return new D(c)}return(async()=>{let c={method:p?.toUpperCase(),body:a,...v,headers:w};c.headers={...w,...j(A?a?.headers:y?.headers,m,c)};let N=A&&typeof a=="object"?a.fetch:y?.fetch;if(c={...c,...N},A&&delete c.body,E){Array.isArray(E)||(E=[E]);for(let g of E){let i=await g(m,c);typeof i=="object"&&(c={...c,...i,headers:{...c.headers,...j(i.headers,m,c)}})}}if(A&&delete c.body,ue(a)){let g=new FormData;for(let[i,d]of Object.entries(c.body)){if(H){g.append(i,d);continue}if(d instanceof File){g.append(i,await B(d));continue}if(d instanceof FileList){for(let u=0;u<d.length;u++)g.append(i,await B(d[u]));continue}if(Array.isArray(d)){for(let u=0;u<d.length;u++){let x=d[u];g.append(i,x instanceof File?await B(x):x)}continue}g.append(i,d)}c.body=g}else typeof a=="object"?(c.headers["content-type"]="application/json",c.body=JSON.stringify(a)):a!=null&&(c.headers["content-type"]="text/plain");if(A&&delete c.body,E){Array.isArray(E)||(E=[E]);for(let g of E){let i=await g(m,c);typeof i=="object"&&(c={...c,...i,headers:{...c.headers,...i.headers}})}}let F=t+m+k,f=await(s?.handle(new Request(F,c))??l(F,c)),S=null,b=null;if(h){Array.isArray(h)||(h=[h]);for(let g of h)try{let i=await g(f.clone());if(i!=null){S=i;break}}catch(i){i instanceof L?b=i:b=new L(422,i);break}}if(S===null){switch(f.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":S=le(f);break;case"application/json":S=await f.json();break;case"application/octet-stream":S=await f.arrayBuffer();break;case"multipart/form-data":let g=await f.formData();S={},g.forEach((i,d)=>{S[d]=i});break;default:S=await f.text().then(i=>{if(R(i))return+i;if(i==="true")return!0;if(i==="false")return!1;if(!i)return i;let d=i.replace(/"/g,"");if(I.test(d)||P.test(d)||q.test(d)){let u=new Date(d);if(!Number.isNaN(u.getTime()))return u}return i})}(f.status>=300||f.status<200)&&(b=new L(f.status,S),S=null)}return{data:S,error:b,response:f,status:f.status,headers:f.headers}})()}return typeof a=="object"?$(t,e,[...r,Object.values(a)[0]],s):$(t,e,r)}}),Y=(t,e={})=>typeof t=="string"?(e.keepDomain||(t.includes("://")||(t=(X.find(r=>t.includes(r))?"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 Z=typeof FileList>"u",ee=t=>Z?t instanceof Blob:t instanceof FileList||t instanceof File,de=t=>{if(!t)return!1;for(let e in t){if(ee(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(r=>ee(r)))return!0}return!1},_=t=>Z?t:new Promise(e=>{let r=new FileReader;r.onload=()=>{let s=new File([r.result],t.name,{lastModified:t.lastModified,type:t.type});e(s)},r.readAsArrayBuffer(t)}),G=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(r=>this.send(r)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,r,s){return this.addEventListener(e,r,s)}off(e,r,s){return this.ws.removeEventListener(e,r,s),this}subscribe(e,r){return this.addEventListener("message",e,r)}addEventListener(e,r,s){return this.ws.addEventListener(e,o=>{if(e==="message"){let n=o.data.toString(),a=n.charCodeAt(0);if(a===47||a===123)try{n=JSON.parse(n)}catch{}else R(n)?n=+n:n==="true"?n=!0:n==="false"&&(n=!1);r({...o,data:n})}else r(o)},s),this}removeEventListener(e,r,s){return this.off(e,r,s),this}close(){return this.ws.close(),this}},te=(t,e="",r)=>new Proxy(()=>{},{get(s,o,n){return te(t,`${e}/${o.toString()}`,r)},apply(s,o,[n,a={}]=[{},{}]){let y=n!==void 0&&(typeof n!="object"||Array.isArray(n))?n:void 0,{$query:T,$fetch:p,$headers:m,$transform:l,getRaw:w,...E}=n??{};y??=E;let h=e.lastIndexOf("/"),v=e.slice(h+1).toUpperCase(),A=V(t,h===-1?"/":e.slice(0,h),Object.assign(a.query??{},T)),K=r.fetcher??fetch,k=r.transform?Array.isArray(r.transform)?r.transform:[r.transform]:void 0,c=l?Array.isArray(l)?l:[l]:void 0;return c&&(k?k=c.concat(k):k=c),v==="SUBSCRIBE"?new G(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async F=>{let f,S={...r.$fetch?.headers,...p?.headers,...a.headers,...m};if(v!=="GET"&&v!=="HEAD"){f=Object.keys(y).length||Array.isArray(y)?y:void 0;let u=f&&(typeof f=="object"||Array.isArray(y));if(u&&de(f)){let C=new FormData;for(let[M,O]of Object.entries(f))if(Z)C.append(M,O);else if(O instanceof File)C.append(M,await _(O));else if(O instanceof FileList)for(let W=0;W<O.length;W++)C.append(M,await _(O[W]));else if(Array.isArray(O))for(let W=0;W<O.length;W++){let J=O[W];C.append(M,J instanceof File?await _(J):J)}else C.append(M,O);f=C}else f!=null&&(S["content-type"]=u?"application/json":"text/plain",f=u?JSON.stringify(f):y)}let b=await K(A,{method:v,body:f,...r.$fetch,...a.fetch,...p,headers:S}),g;if(F.getRaw)return b;switch(b.headers.get("Content-Type")?.split(";")[0]){case"application/json":g=await b.json();break;default:g=await b.text().then(u=>R(u)?+u:u==="true"?!0:u==="false"?!1:u)}let i=b.status>=300||b.status<200?new L(b.status,g):null,d={data:g,error:i,response:b,status:b.status,headers:b.headers};if(k)for(let u of k){let x=u(d);x instanceof Promise&&(x=await x),x!=null&&(d=x)}return d})({getRaw:w})}}),re=(t,e={fetcher:fetch})=>new Proxy({},{get(r,s){return te(t,s,e)}});var ne=(t,e)=>(r,{query:s,params:o,body:n,...a}={})=>{o&&Object.entries(o).forEach(([l,w])=>{r=r.replace(`:${l}`,w)});let y=a.headers?.["Content-Type"];if(!y||y==="application/json")try{n=JSON.stringify(n)}catch{}let T=e?.fetcher||globalThis.fetch,p=s?`?${new URLSearchParams(s).toString()}`:"",m=()=>T(t+r+p,{...a,method:a.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...a.headers}:a.headers,body:n}).then(async l=>{let w;switch(l.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await l.json();break;case"application/octet-stream":w=await l.arrayBuffer();break;case"multipart/form-data":let E=await l.formData();w={},E.forEach((h,v)=>{w[v]=h});break;default:w=await l.text().then(h=>{if(R(h))return+h;if(h==="true")return!0;if(h==="false")return!1;if(!h)return h;let v=h.replace(/"/g,"");if(I.test(v)||P.test(v)||q.test(v)){let A=new Date(v);if(!Number.isNaN(A.getTime()))return A}return h})}return l.status>300?{data:null,status:l.status,headers:l.headers,retry:m,error:new L(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
|
|
1
|
+
import{b as t}from"./chunk-FOFYS2DG.mjs";import{a as e,b as r}from"./chunk-3TD723IX.mjs";import"./chunk-HUZ6GXDC.mjs";export{r as edenFetch,t as edenTreaty,e as treaty};
|
package/dist/treaty2/index.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { Elysia } from 'elysia';
|
|
2
2
|
import type { Treaty } from './types';
|
|
3
|
+
export declare const isISO8601: RegExp;
|
|
4
|
+
export declare const isFormalDate: RegExp;
|
|
5
|
+
export declare const isShortenDate: RegExp;
|
|
6
|
+
export declare function streamResponse(response: Response): AsyncGenerator<any, void, unknown>;
|
|
3
7
|
export declare const treaty: <const App extends Elysia<any, any, any, any, any, any, any, any>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
|
|
4
8
|
export type { Treaty };
|
package/dist/treaty2/types.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ type Files = File | FileList;
|
|
|
7
7
|
type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
|
|
8
8
|
[K in keyof RecordType]: RecordType[K] extends Blob | Blob[] ? Files : RecordType[K];
|
|
9
9
|
} & {};
|
|
10
|
+
type ReplaceGeneratorWithAsyncGenerator<in out RecordType extends Record<string, unknown>> = {
|
|
11
|
+
[K in keyof RecordType]: RecordType[K] extends Generator<infer A, infer B, infer C> ? AsyncGenerator<A, B, C> : RecordType[K];
|
|
12
|
+
} & {};
|
|
10
13
|
type MaybeArray<T> = T | T[];
|
|
11
14
|
type MaybePromise<T> = T | Promise<T>;
|
|
12
15
|
export declare namespace Treaty {
|
|
@@ -53,7 +56,7 @@ export declare namespace Treaty {
|
|
|
53
56
|
onResponse?: MaybeArray<(response: Response) => MaybePromise<unknown>>;
|
|
54
57
|
keepDomain?: boolean;
|
|
55
58
|
}
|
|
56
|
-
type TreatyResponse<Res extends Record<number, unknown>> = {
|
|
59
|
+
type TreatyResponse<_Res extends Record<number, unknown>, Res extends Record<number, unknown> = ReplaceGeneratorWithAsyncGenerator<_Res>> = {
|
|
57
60
|
data: Res[200];
|
|
58
61
|
error: null;
|
|
59
62
|
response: Response;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elysiajs/eden",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.0-exp.1",
|
|
4
4
|
"description": "Fully type-safe Elysia client",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "saltyAom",
|
|
@@ -54,19 +54,19 @@
|
|
|
54
54
|
"release": "npm run build && npm run test && npm publish --access public"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"elysia": ">= 1.0.
|
|
57
|
+
"elysia": ">= 1.1.0-exp.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@elysiajs/cors": "0.7.0",
|
|
61
61
|
"@types/bun": "^1.0.3",
|
|
62
62
|
"@types/node": "^18.15.5",
|
|
63
|
-
"elysia": "^1.0.
|
|
63
|
+
"elysia": "^1.1.0-exp.1",
|
|
64
64
|
"esbuild": "^0.19.3",
|
|
65
65
|
"eslint": "^8.26.0",
|
|
66
66
|
"expect-type": "^0.17.3",
|
|
67
67
|
"rimraf": "^4.4.1",
|
|
68
68
|
"tsup": "^7.2.0",
|
|
69
|
-
"typescript": "^5.
|
|
69
|
+
"typescript": "^5.4.5"
|
|
70
70
|
},
|
|
71
71
|
"prettier": {
|
|
72
72
|
"semi": false,
|
|
@@ -75,6 +75,6 @@
|
|
|
75
75
|
"trailingComma": "none"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@elysiajs/stream": "
|
|
78
|
+
"@elysiajs/stream": "^1.0.2"
|
|
79
79
|
}
|
|
80
80
|
}
|
package/dist/chunk-TDCHXBL7.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as y,c as p}from"./chunk-HUZ6GXDC.mjs";var g=(f,u)=>(s,{query:i,params:h,body:n,...r}={})=>{h&&Object.entries(h).forEach(([e,t])=>{s=s.replace(`:${e}`,t)});let o=r.headers?.["Content-Type"];if(!o||o==="application/json")try{n=JSON.stringify(n)}catch{}let l=u?.fetcher||globalThis.fetch,d=i?`?${new URLSearchParams(i).toString()}`:"",c=()=>l(f+s+d,{...r,method:r.method?.toUpperCase()||"GET",headers:n?{"content-type":"application/json",...r.headers}:r.headers,body:n}).then(async e=>{let t;switch(e.headers.get("Content-Type")?.split(";")[0]){case"application/json":t=await e.json();break;default:t=await e.text().then(a=>y(a)?parseInt(a):a==="true"?!0:a==="false"?!1:a);break}return e.status>300?{data:null,status:e.status,headers:e.headers,retry:c,error:new p(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};export{g as a};
|