@elysiajs/eden 1.0.0-beta.0 → 1.0.0-beta.2
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-YTAZNCPF.mjs → chunk-FGCQ7BRI.mjs} +1 -1
- package/dist/chunk-HUZ6GXDC.mjs +1 -0
- package/dist/{chunk-VMCNRAXS.mjs → chunk-TETN57VK.mjs} +1 -1
- package/dist/fetch/index.d.ts +9 -1
- package/dist/fetch/types.d.ts +1 -1
- package/dist/fetch.d.mts +11 -3
- package/dist/fetch.d.ts +11 -3
- package/dist/fetch.mjs +1 -1
- package/dist/index.d.mts +33 -9
- package/dist/index.d.ts +33 -9
- package/dist/index.global.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/treaty/index.d.ts +9 -1
- package/dist/treaty/types.d.ts +3 -3
- package/dist/treaty.d.mts +13 -5
- package/dist/treaty.d.ts +13 -5
- package/dist/treaty.mjs +1 -1
- package/dist/treaty2/index.d.ts +11 -3
- package/dist/treaty2/types.d.ts +10 -6
- package/dist/treaty2/ws.d.ts +5 -5
- package/package.json +3 -3
- package/dist/chunk-R27QELXO.mjs +0 -1
- /package/dist/{types-BQi-Ff9p.d.ts → types-DNydNaKe.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{b as p,c as y}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=>p(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 y(e.status,t)}:{data:t,error:null,status:e.status,headers:e.headers,retry:c}});return c()};export{g as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var c=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let s="";for(let[i,u]of Object.entries(r))s+=`${i}=${u}&`;return`${t}${e}?${s.slice(0,-1)}`},o=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var n=class extends Error{constructor(r,s){super(s+"");this.status=r;this.value=s}};export{c as a,o as b,n as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as W,b as
|
|
1
|
+
import{a as W,b as x,c as K}from"./chunk-HUZ6GXDC.mjs";var R=typeof FileList>"u",$=n=>R?n instanceof Blob:n instanceof FileList||n instanceof File,J=n=>{if(!n)return!1;for(let e in n){if($(n[e]))return!0;if(Array.isArray(n[e])&&n[e].find(t=>$(t)))return!0}return!1},T=n=>R?n:new Promise(e=>{let t=new FileReader;t.onload=()=>{let s=new File([t.result],n.name,{lastModified:n.lastModified,type:n.type});e(s)},t.readAsArrayBuffer(n)}),F=class{ws;url;constructor(e){this.ws=new WebSocket(e),this.url=e}send(e){return Array.isArray(e)?(e.forEach(t=>this.send(t)),this):(this.ws.send(typeof e=="object"?JSON.stringify(e):e.toString()),this)}on(e,t,s){return this.addEventListener(e,t,s)}off(e,t,s){return this.ws.removeEventListener(e,t,s),this}subscribe(e,t){return this.addEventListener("message",e,t)}addEventListener(e,t,s){return this.ws.addEventListener(e,l=>{if(e==="message"){let r=l.data.toString(),u=r.charCodeAt(0);if(u===47||u===123)try{r=JSON.parse(r)}catch{}else x(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);t({...l,data:r})}else t(l)},s),this}removeEventListener(e,t,s){return this.off(e,t,s),this}close(){return this.ws.close(),this}},M=(n,e="",t)=>new Proxy(()=>{},{get(s,l,r){return M(n,`${e}/${l.toString()}`,t)},apply(s,l,[r,u={}]=[{},{}]){let f=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:I,$fetch:O,$headers:j,$transform:E,getRaw:C,...P}=r??{};f??=P;let S=e.lastIndexOf("/"),g=e.slice(S+1).toUpperCase(),b=W(n,S===-1?"/":e.slice(0,S),Object.assign(u.query??{},I)),q=t.fetcher??fetch,p=t.transform?Array.isArray(t.transform)?t.transform:[t.transform]:void 0,v=E?Array.isArray(E)?E:[E]:void 0;return v&&(p?p=v.concat(p):p=v),g==="SUBSCRIBE"?new F(b.replace(/^([^]+):\/\//,b.startsWith("https://")?"wss://":"ws://")):(async N=>{let c,L={...t.$fetch?.headers,...O?.headers,...u.headers,...j};if(g!=="GET"&&g!=="HEAD"){c=Object.keys(f).length||Array.isArray(f)?f:void 0;let a=typeof c=="object"||Array.isArray(f);if(a&&J(c)){let h=new FormData;for(let[m,o]of Object.entries(c))if(R)h.append(m,o);else if(o instanceof File)h.append(m,await T(o));else if(o instanceof FileList)for(let d=0;d<o.length;d++)h.append(m,await T(o[d]));else if(Array.isArray(o))for(let d=0;d<o.length;d++){let k=o[d];h.append(m,k instanceof File?await T(k):k)}else h.append(m,o);c=h}else L["content-type"]=a?"application/json":"text/plain",c=a?JSON.stringify(c):f}let i=await q(b,{method:g,body:c,...t.$fetch,...u.fetch,...O,headers:L}),w;if(N.getRaw)return i;switch(i.headers.get("Content-Type")?.split(";")[0]){case"application/json":w=await i.json();break;default:w=await i.text().then(a=>x(a)?+a:a==="true"?!0:a==="false"?!1:a)}let D=i.status>=300||i.status<200?new K(i.status,w):null,A={data:w,error:D,response:i,status:i.status,headers:i.headers};if(p)for(let a of p){let y=a(A);y instanceof Promise&&(y=await y),y!=null&&(A=y)}return A})({getRaw:C})}}),G=(n,e={fetcher:fetch})=>new Proxy({},{get(t,s){return M(n,s,e)}});export{F as a,G as b};
|
package/dist/fetch/index.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { Elysia } from 'elysia';
|
|
2
2
|
import type { EdenFetch } from './types';
|
|
3
3
|
export type { EdenFetch } from './types';
|
|
4
|
-
export declare const edenFetch: <App extends Elysia<any, any, any, any, any, any
|
|
4
|
+
export declare const edenFetch: <App extends Elysia<any, any, any, any, any, any, {
|
|
5
|
+
decorator: {};
|
|
6
|
+
store: {};
|
|
7
|
+
derive: {};
|
|
8
|
+
resolve: {};
|
|
9
|
+
}, {
|
|
10
|
+
schema: {};
|
|
11
|
+
macro: {};
|
|
12
|
+
}>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
|
package/dist/fetch/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Elysia } from 'elysia';
|
|
|
2
2
|
import type { EdenFetchError } from '../errors';
|
|
3
3
|
import type { MapError, IsUnknown, IsNever, Prettify, TreatyToPath } from '../types';
|
|
4
4
|
export declare namespace EdenFetch {
|
|
5
|
-
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
5
|
+
type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
6
6
|
_routes: infer Schema extends Record<string, unknown>;
|
|
7
7
|
} ? EdenFetch.Fn<TreatyToPath<Schema>> : 'Please install Elysia before using Eden';
|
|
8
8
|
interface Config extends RequestInit {
|
package/dist/fetch.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Elysia } from 'elysia';
|
|
2
|
-
import { T as TreatyToPath, a as IsNever, I as IsUnknown, P as Prettify, M as MapError, E as EdenFetchError } from './types-
|
|
2
|
+
import { T as TreatyToPath, a as IsNever, I as IsUnknown, P as Prettify, M as MapError, E as EdenFetchError } from './types-DNydNaKe.js';
|
|
3
3
|
|
|
4
4
|
declare namespace EdenFetch {
|
|
5
|
-
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
5
|
+
type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
6
6
|
_routes: infer Schema extends Record<string, unknown>;
|
|
7
7
|
} ? EdenFetch.Fn<TreatyToPath<Schema>> : 'Please install Elysia before using Eden';
|
|
8
8
|
interface Config extends RequestInit {
|
|
@@ -43,6 +43,14 @@ declare namespace EdenFetch {
|
|
|
43
43
|
}>>;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
declare const edenFetch: <App extends Elysia<any, any, any, any, any, any
|
|
46
|
+
declare const edenFetch: <App extends Elysia<any, any, any, any, any, any, {
|
|
47
|
+
decorator: {};
|
|
48
|
+
store: {};
|
|
49
|
+
derive: {};
|
|
50
|
+
resolve: {};
|
|
51
|
+
}, {
|
|
52
|
+
schema: {};
|
|
53
|
+
macro: {};
|
|
54
|
+
}>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
|
|
47
55
|
|
|
48
56
|
export { EdenFetch, edenFetch };
|
package/dist/fetch.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Elysia } from 'elysia';
|
|
2
|
-
import { T as TreatyToPath, a as IsNever, I as IsUnknown, P as Prettify, M as MapError, E as EdenFetchError } from './types-
|
|
2
|
+
import { T as TreatyToPath, a as IsNever, I as IsUnknown, P as Prettify, M as MapError, E as EdenFetchError } from './types-DNydNaKe.js';
|
|
3
3
|
|
|
4
4
|
declare namespace EdenFetch {
|
|
5
|
-
type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
5
|
+
type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
6
6
|
_routes: infer Schema extends Record<string, unknown>;
|
|
7
7
|
} ? EdenFetch.Fn<TreatyToPath<Schema>> : 'Please install Elysia before using Eden';
|
|
8
8
|
interface Config extends RequestInit {
|
|
@@ -43,6 +43,14 @@ declare namespace EdenFetch {
|
|
|
43
43
|
}>>;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
declare const edenFetch: <App extends Elysia<any, any, any, any, any, any
|
|
46
|
+
declare const edenFetch: <App extends Elysia<any, any, any, any, any, any, {
|
|
47
|
+
decorator: {};
|
|
48
|
+
store: {};
|
|
49
|
+
derive: {};
|
|
50
|
+
resolve: {};
|
|
51
|
+
}, {
|
|
52
|
+
schema: {};
|
|
53
|
+
macro: {};
|
|
54
|
+
}>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
|
|
47
55
|
|
|
48
56
|
export { EdenFetch, edenFetch };
|
package/dist/fetch.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a}from"./chunk-FGCQ7BRI.mjs";import"./chunk-HUZ6GXDC.mjs";export{a as edenFetch};
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
+
import { InputSchema, Elysia } from 'elysia';
|
|
2
|
+
import { P as Prettify } from './types-DNydNaKe.js';
|
|
1
3
|
export { edenTreaty } from './treaty.mjs';
|
|
2
|
-
import { Elysia } from 'elysia';
|
|
3
|
-
import { P as Prettify } from './types-BQi-Ff9p.js';
|
|
4
4
|
export { edenFetch } from './fetch.mjs';
|
|
5
5
|
|
|
6
|
+
declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
|
|
7
|
+
url: string;
|
|
8
|
+
ws: WebSocket;
|
|
9
|
+
constructor(url: string);
|
|
10
|
+
send(data: Schema['body'] | Schema['body'][]): this;
|
|
11
|
+
on<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
12
|
+
off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
13
|
+
subscribe(onMessage: (event: Treaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
14
|
+
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
15
|
+
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
16
|
+
close(): this;
|
|
17
|
+
}
|
|
18
|
+
|
|
6
19
|
/// <reference lib="dom" />
|
|
7
20
|
|
|
8
21
|
type Files = File | FileList;
|
|
@@ -11,17 +24,22 @@ type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
|
|
|
11
24
|
} & {};
|
|
12
25
|
type MaybeArray<T> = T | T[];
|
|
13
26
|
type MaybePromise<T> = T | Promise<T>;
|
|
14
|
-
declare namespace
|
|
27
|
+
declare namespace Treaty {
|
|
15
28
|
interface TreatyParam {
|
|
16
29
|
fetch?: RequestInit;
|
|
17
30
|
}
|
|
18
|
-
export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
31
|
+
export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
19
32
|
_routes: infer Schema extends Record<string, any>;
|
|
20
33
|
} ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
21
34
|
export type Sign<in out Route extends Record<string, any>> = {
|
|
22
|
-
[K in keyof Route as K extends '' ? 'index' : K extends `:${string}` ? never : K]: Route[
|
|
35
|
+
[K in keyof Route as K extends '/' | '' ? 'index' : K extends `:${string}` ? never : K]: K extends 'subscribe' ? undefined extends Route['subscribe']['query'] ? (params?: {
|
|
36
|
+
query?: Record<string, string>;
|
|
37
|
+
}) => EdenWS<Route['subscribe']> : (params: {
|
|
38
|
+
query: Route['subscribe']['query'];
|
|
39
|
+
}) => EdenWS<Route['subscribe']> : Route[K] extends {
|
|
23
40
|
body: infer Body;
|
|
24
41
|
headers: infer Headers;
|
|
42
|
+
params: any;
|
|
25
43
|
query: infer Query;
|
|
26
44
|
response: infer Response extends Record<number, unknown>;
|
|
27
45
|
} ? (undefined extends Headers ? {
|
|
@@ -32,9 +50,7 @@ declare namespace EdenTreaty2 {
|
|
|
32
50
|
query?: Record<string, unknown>;
|
|
33
51
|
} : {
|
|
34
52
|
query: Query;
|
|
35
|
-
}) extends infer Param ? {} extends Param ? undefined extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : keyof Route[K] extends `:${infer Param}` ? (params: {
|
|
36
|
-
[param in Param]: string;
|
|
37
|
-
}) => Prettify<Prettify<Sign<Route[K]>> & Sign<Route[K][`:${Param}`]>> : Prettify<Sign<Route[K]>>;
|
|
53
|
+
}) extends infer Param ? {} extends Param ? undefined extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : keyof Route[K] extends `:${infer Param}` ? (params: Record<Param, string>) => Prettify<Prettify<Sign<Route[K]>> & Sign<Route[K][`:${Param}`]>> : Prettify<Sign<Route[K]>>;
|
|
38
54
|
};
|
|
39
55
|
export interface Config extends Omit<RequestInit, 'headers'> {
|
|
40
56
|
fetcher?: typeof fetch;
|
|
@@ -65,6 +81,14 @@ declare namespace EdenTreaty2 {
|
|
|
65
81
|
export { };
|
|
66
82
|
}
|
|
67
83
|
|
|
68
|
-
declare const treaty: <const App extends Elysia<any, any, any, any, any, any
|
|
84
|
+
declare const treaty: <const App extends Elysia<any, any, any, any, any, any, {
|
|
85
|
+
decorator: {};
|
|
86
|
+
store: {};
|
|
87
|
+
derive: {};
|
|
88
|
+
resolve: {};
|
|
89
|
+
}, {
|
|
90
|
+
schema: {};
|
|
91
|
+
macro: {};
|
|
92
|
+
}>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
|
|
69
93
|
|
|
70
94
|
export { treaty };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
+
import { InputSchema, Elysia } from 'elysia';
|
|
2
|
+
import { P as Prettify } from './types-DNydNaKe.js';
|
|
1
3
|
export { edenTreaty } from './treaty.js';
|
|
2
|
-
import { Elysia } from 'elysia';
|
|
3
|
-
import { P as Prettify } from './types-BQi-Ff9p.js';
|
|
4
4
|
export { edenFetch } from './fetch.js';
|
|
5
5
|
|
|
6
|
+
declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
|
|
7
|
+
url: string;
|
|
8
|
+
ws: WebSocket;
|
|
9
|
+
constructor(url: string);
|
|
10
|
+
send(data: Schema['body'] | Schema['body'][]): this;
|
|
11
|
+
on<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
12
|
+
off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
13
|
+
subscribe(onMessage: (event: Treaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
14
|
+
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
15
|
+
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
16
|
+
close(): this;
|
|
17
|
+
}
|
|
18
|
+
|
|
6
19
|
/// <reference lib="dom" />
|
|
7
20
|
|
|
8
21
|
type Files = File | FileList;
|
|
@@ -11,17 +24,22 @@ type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
|
|
|
11
24
|
} & {};
|
|
12
25
|
type MaybeArray<T> = T | T[];
|
|
13
26
|
type MaybePromise<T> = T | Promise<T>;
|
|
14
|
-
declare namespace
|
|
27
|
+
declare namespace Treaty {
|
|
15
28
|
interface TreatyParam {
|
|
16
29
|
fetch?: RequestInit;
|
|
17
30
|
}
|
|
18
|
-
export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
31
|
+
export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
19
32
|
_routes: infer Schema extends Record<string, any>;
|
|
20
33
|
} ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
21
34
|
export type Sign<in out Route extends Record<string, any>> = {
|
|
22
|
-
[K in keyof Route as K extends '' ? 'index' : K extends `:${string}` ? never : K]: Route[
|
|
35
|
+
[K in keyof Route as K extends '/' | '' ? 'index' : K extends `:${string}` ? never : K]: K extends 'subscribe' ? undefined extends Route['subscribe']['query'] ? (params?: {
|
|
36
|
+
query?: Record<string, string>;
|
|
37
|
+
}) => EdenWS<Route['subscribe']> : (params: {
|
|
38
|
+
query: Route['subscribe']['query'];
|
|
39
|
+
}) => EdenWS<Route['subscribe']> : Route[K] extends {
|
|
23
40
|
body: infer Body;
|
|
24
41
|
headers: infer Headers;
|
|
42
|
+
params: any;
|
|
25
43
|
query: infer Query;
|
|
26
44
|
response: infer Response extends Record<number, unknown>;
|
|
27
45
|
} ? (undefined extends Headers ? {
|
|
@@ -32,9 +50,7 @@ declare namespace EdenTreaty2 {
|
|
|
32
50
|
query?: Record<string, unknown>;
|
|
33
51
|
} : {
|
|
34
52
|
query: Query;
|
|
35
|
-
}) extends infer Param ? {} extends Param ? undefined extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : keyof Route[K] extends `:${infer Param}` ? (params: {
|
|
36
|
-
[param in Param]: string;
|
|
37
|
-
}) => Prettify<Prettify<Sign<Route[K]>> & Sign<Route[K][`:${Param}`]>> : Prettify<Sign<Route[K]>>;
|
|
53
|
+
}) extends infer Param ? {} extends Param ? undefined extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : keyof Route[K] extends `:${infer Param}` ? (params: Record<Param, string>) => Prettify<Prettify<Sign<Route[K]>> & Sign<Route[K][`:${Param}`]>> : Prettify<Sign<Route[K]>>;
|
|
38
54
|
};
|
|
39
55
|
export interface Config extends Omit<RequestInit, 'headers'> {
|
|
40
56
|
fetcher?: typeof fetch;
|
|
@@ -65,6 +81,14 @@ declare namespace EdenTreaty2 {
|
|
|
65
81
|
export { };
|
|
66
82
|
}
|
|
67
83
|
|
|
68
|
-
declare const treaty: <const App extends Elysia<any, any, any, any, any, any
|
|
84
|
+
declare const treaty: <const App extends Elysia<any, any, any, any, any, any, {
|
|
85
|
+
decorator: {};
|
|
86
|
+
store: {};
|
|
87
|
+
derive: {};
|
|
88
|
+
resolve: {};
|
|
89
|
+
}, {
|
|
90
|
+
schema: {};
|
|
91
|
+
macro: {};
|
|
92
|
+
}>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
|
|
69
93
|
|
|
70
94
|
export { treaty };
|
package/dist/index.global.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Eden=(()=>{var C=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.prototype.hasOwnProperty;var te=(t,e)=>{for(var n in e)C(t,n,{get:e[n],enumerable:!0})},ne=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of Z(e))!ee.call(t,c)&&c!==n&&C(t,c,{get:()=>e[c],enumerable:!(s=Y(e,c))||s.enumerable});return t};var re=t=>ne(C({},"__esModule",{value:!0}),t);var oe={};te(oe,{edenFetch:()=>z,edenTreaty:()=>
|
|
1
|
+
"use strict";var Eden=(()=>{var C=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.prototype.hasOwnProperty;var te=(t,e)=>{for(var n in e)C(t,n,{get:e[n],enumerable:!0})},ne=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of Z(e))!ee.call(t,c)&&c!==n&&C(t,c,{get:()=>e[c],enumerable:!(s=Y(e,c))||s.enumerable});return t};var re=t=>ne(C({},"__esModule",{value:!0}),t);var oe={};te(oe,{edenFetch:()=>z,edenTreaty:()=>V,treaty:()=>U});var B=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let s="";for(let[c,r]of Object.entries(n))s+=`${c}=${r}&`;return`${t}${e}?${s.slice(0,-1)}`},v=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var S=class extends Error{constructor(n,s){super(s+"");this.status=n;this.value=s}};var $=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,c=>{if(e==="message"){let r=c.data.toString(),i=r.charCodeAt(0);if(i===47||i===123)try{r=JSON.parse(r)}catch{}else v(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);n({...c,data:r})}else n(c)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}};var se=["get","post","put","delete","patch","options","head","connect","subscribe"],P=typeof FileList>"u",H=t=>P?t instanceof Blob:t instanceof FileList||t instanceof File,ae=t=>{if(!t)return!1;for(let e in t)if(H(t[e])||Array.isArray(t[e])&&t[e].find(H))return!0;return!1},I=t=>P?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)}),K=(t,e,n=[],s)=>new Proxy(()=>{},{get(c,r){return K(t,e,[...n,r],s)},apply(c,r,[i,u]){return!i||u||typeof i=="object"&&Object.keys(i).length!==1||se.includes(n.at(-1))?(async()=>{let L=n.pop(),g="/"+n.join("/");if(L==="subscribe")return new $(t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":"ws://")+g);let{fetcher:x=fetch,headers:a,onRequest:p,onResponse:d,...R}=e;if(typeof a=="function"&&!(a instanceof Headers))a=a(g,u)??void 0;else if(Array.isArray(a)&&a.every(o=>typeof o=="function"))for(let o of a)a=o(g,u)??void 0;else if(a instanceof Headers){a={};for(let[o,f]of Object.entries(a))a[o]=f}let b=(a instanceof Headers?a.get("content-type"):Array.isArray(a)?a.find(o=>Array.isArray(o)&&o[0]==="headers"?o[1]:!1):typeof a=="function"?a(g,u):a?.contentType)||u?.headers?.contentType;if(!b)if(typeof i=="object")b="application/json",i=JSON.stringify(i);else if(ae(i)){let o=new FormData;for(let[f,m]of Object.entries(i)){if(P){o.append(f,m);continue}if(m instanceof File){o.append(f,await I(m));continue}if(m instanceof FileList){for(let y=0;y<m.length;y++)o.append(f,await I(m[y]));continue}if(Array.isArray(m)){for(let y=0;y<m.length;y++){let k=m[y];o.append(f,k instanceof File?await I(k):k)}continue}o.append(f,m)}i=o}else b="text/plain";let A={method:L,body:i,...R,headers:{...a,"content-type":b}};if(p){Array.isArray(p)||(p=[p]);for(let o of p){let f=await o(g,A);typeof f=="object"&&Object.assign(A,f)}}let h=await(s?.handle(new Request(t+g,A))??x(t+g,A)),l,F;if(d){Array.isArray(d)||(d=[d]);for(let o of d)try{if(l=await o(h.clone()),l!==void 0)break}catch(f){f instanceof S?F=f:F=new S(500,f);break}}if(l===void 0)if(h.status>=300||h.status<200)new S(h.status,l);else switch(h.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await h.json();break;case"application/octet-stream":l=await h.arrayBuffer();break;default:l=await h.text().then(o=>v(o)?+o:o==="true"?!0:o==="false"?!1:o)}return{data:l,error:F,response:h,status:h.status,headers:h.headers}})():typeof i=="object"?K(t,e,[...n,Object.values(i)[0]],s):K(t,e,n)}}),U=(t,e={})=>typeof t=="string"?(t.includes("://")||(t=(["localhost","127.0.0.1","0.0.0.0"].find(n=>t.includes(n))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1)),K(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",e,[],t));var D=typeof FileList>"u",_=t=>D?t instanceof Blob:t instanceof FileList||t instanceof File,ie=t=>{if(!t)return!1;for(let e in t){if(_(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>_(n)))return!0}return!1},q=t=>D?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)}),J=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,c=>{if(e==="message"){let r=c.data.toString(),i=r.charCodeAt(0);if(i===47||i===123)try{r=JSON.parse(r)}catch{}else v(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);n({...c,data:r})}else n(c)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}},G=(t,e="",n)=>new Proxy(()=>{},{get(s,c,r){return G(t,`${e}/${c.toString()}`,n)},apply(s,c,[r,i={}]=[{},{}]){let u=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:L,$fetch:g,$headers:x,$transform:a,getRaw:p,...d}=r??{};u??=d;let R=e.lastIndexOf("/"),b=e.slice(R+1).toUpperCase(),A=B(t,R===-1?"/":e.slice(0,R),Object.assign(i.query??{},L)),h=n.fetcher??fetch,l=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,F=a?Array.isArray(a)?a:[a]:void 0;return F&&(l?l=F.concat(l):l=F),b==="SUBSCRIBE"?new J(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async o=>{let f,m={...n.$fetch?.headers,...g?.headers,...i.headers,...x};if(b!=="GET"&&b!=="HEAD"){f=Object.keys(u).length||Array.isArray(u)?u:void 0;let E=typeof f=="object"||Array.isArray(u);if(E&&ie(f)){let W=new FormData;for(let[j,w]of Object.entries(f))if(D)W.append(j,w);else if(w instanceof File)W.append(j,await q(w));else if(w instanceof FileList)for(let O=0;O<w.length;O++)W.append(j,await q(w[O]));else if(Array.isArray(w))for(let O=0;O<w.length;O++){let N=w[O];W.append(j,N instanceof File?await q(N):N)}else W.append(j,w);f=W}else m["content-type"]=E?"application/json":"text/plain",f=E?JSON.stringify(f):u}let y=await h(A,{method:b,body:f,...n.$fetch,...i.fetch,...g,headers:m}),k;if(o.getRaw)return y;switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":k=await y.json();break;default:k=await y.text().then(E=>v(E)?+E:E==="true"?!0:E==="false"?!1:E)}let X=y.status>=300||y.status<200?new S(y.status,k):null,M={data:k,error:X,response:y,status:y.status,headers:y.headers};if(l)for(let E of l){let T=E(M);T instanceof Promise&&(T=await T),T!=null&&(M=T)}return M})({getRaw:p})}}),V=(t,e={fetcher:fetch})=>new Proxy({},{get(n,s){return G(t,s,e)}});var z=(t,e)=>(n,{query:s,params:c,body:r,...i}={})=>{c&&Object.entries(c).forEach(([a,p])=>{n=n.replace(`:${a}`,p)});let u=i.headers?.["Content-Type"];if(!u||u==="application/json")try{r=JSON.stringify(r)}catch{}let L=e?.fetcher||globalThis.fetch,g=s?`?${new URLSearchParams(s).toString()}`:"",x=()=>L(t+n+g,{...i,method:i.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...i.headers}:i.headers,body:r}).then(async a=>{let p;switch(a.headers.get("Content-Type")?.split(";")[0]){case"application/json":p=await a.json();break;default:p=await a.text().then(d=>v(d)?parseInt(d):d==="true"?!0:d==="false"?!1:d);break}return a.status>300?{data:null,status:a.status,headers:a.headers,retry:x,error:new S(a.status,p)}:{data:p,error:null,status:a.status,headers:a.headers,retry:x}});return x()};return re(oe);})();
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var C=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.prototype.hasOwnProperty;var te=(t,e)=>{for(var n in e)C(t,n,{get:e[n],enumerable:!0})},ne=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of Z(e))!ee.call(t,c)&&c!==n&&C(t,c,{get:()=>e[c],enumerable:!(s=Y(e,c))||s.enumerable});return t};var re=t=>ne(C({},"__esModule",{value:!0}),t);var oe={};te(oe,{edenFetch:()=>z,edenTreaty:()=>
|
|
1
|
+
"use strict";var C=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.prototype.hasOwnProperty;var te=(t,e)=>{for(var n in e)C(t,n,{get:e[n],enumerable:!0})},ne=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of Z(e))!ee.call(t,c)&&c!==n&&C(t,c,{get:()=>e[c],enumerable:!(s=Y(e,c))||s.enumerable});return t};var re=t=>ne(C({},"__esModule",{value:!0}),t);var oe={};te(oe,{edenFetch:()=>z,edenTreaty:()=>V,treaty:()=>U});module.exports=re(oe);var B=(t,e,n)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!n||!Object.keys(n).length)return`${t}${e}`;let s="";for(let[c,r]of Object.entries(n))s+=`${c}=${r}&`;return`${t}${e}?${s.slice(0,-1)}`},v=t=>t.trim().length!==0&&!Number.isNaN(Number(t));var S=class extends Error{constructor(n,s){super(s+"");this.status=n;this.value=s}};var $=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,c=>{if(e==="message"){let r=c.data.toString(),i=r.charCodeAt(0);if(i===47||i===123)try{r=JSON.parse(r)}catch{}else v(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);n({...c,data:r})}else n(c)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}};var se=["get","post","put","delete","patch","options","head","connect","subscribe"],P=typeof FileList>"u",H=t=>P?t instanceof Blob:t instanceof FileList||t instanceof File,ae=t=>{if(!t)return!1;for(let e in t)if(H(t[e])||Array.isArray(t[e])&&t[e].find(H))return!0;return!1},I=t=>P?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)}),K=(t,e,n=[],s)=>new Proxy(()=>{},{get(c,r){return K(t,e,[...n,r],s)},apply(c,r,[i,u]){return!i||u||typeof i=="object"&&Object.keys(i).length!==1||se.includes(n.at(-1))?(async()=>{let L=n.pop(),g="/"+n.join("/");if(L==="subscribe")return new $(t.replace(/^([^]+):\/\//,t.startsWith("https://")?"wss://":"ws://")+g);let{fetcher:x=fetch,headers:a,onRequest:p,onResponse:d,...R}=e;if(typeof a=="function"&&!(a instanceof Headers))a=a(g,u)??void 0;else if(Array.isArray(a)&&a.every(o=>typeof o=="function"))for(let o of a)a=o(g,u)??void 0;else if(a instanceof Headers){a={};for(let[o,f]of Object.entries(a))a[o]=f}let b=(a instanceof Headers?a.get("content-type"):Array.isArray(a)?a.find(o=>Array.isArray(o)&&o[0]==="headers"?o[1]:!1):typeof a=="function"?a(g,u):a?.contentType)||u?.headers?.contentType;if(!b)if(typeof i=="object")b="application/json",i=JSON.stringify(i);else if(ae(i)){let o=new FormData;for(let[f,m]of Object.entries(i)){if(P){o.append(f,m);continue}if(m instanceof File){o.append(f,await I(m));continue}if(m instanceof FileList){for(let y=0;y<m.length;y++)o.append(f,await I(m[y]));continue}if(Array.isArray(m)){for(let y=0;y<m.length;y++){let k=m[y];o.append(f,k instanceof File?await I(k):k)}continue}o.append(f,m)}i=o}else b="text/plain";let A={method:L,body:i,...R,headers:{...a,"content-type":b}};if(p){Array.isArray(p)||(p=[p]);for(let o of p){let f=await o(g,A);typeof f=="object"&&Object.assign(A,f)}}let h=await(s?.handle(new Request(t+g,A))??x(t+g,A)),l,F;if(d){Array.isArray(d)||(d=[d]);for(let o of d)try{if(l=await o(h.clone()),l!==void 0)break}catch(f){f instanceof S?F=f:F=new S(500,f);break}}if(l===void 0)if(h.status>=300||h.status<200)new S(h.status,l);else switch(h.headers.get("Content-Type")?.split(";")[0]){case"application/json":l=await h.json();break;case"application/octet-stream":l=await h.arrayBuffer();break;default:l=await h.text().then(o=>v(o)?+o:o==="true"?!0:o==="false"?!1:o)}return{data:l,error:F,response:h,status:h.status,headers:h.headers}})():typeof i=="object"?K(t,e,[...n,Object.values(i)[0]],s):K(t,e,n)}}),U=(t,e={})=>typeof t=="string"?(t.includes("://")||(t=(["localhost","127.0.0.1","0.0.0.0"].find(n=>t.includes(n))?"http://":"https://")+t),t.endsWith("/")&&(t=t.slice(0,-1)),K(t,e)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),K("http://e.ly",e,[],t));var D=typeof FileList>"u",_=t=>D?t instanceof Blob:t instanceof FileList||t instanceof File,ie=t=>{if(!t)return!1;for(let e in t){if(_(t[e]))return!0;if(Array.isArray(t[e])&&t[e].find(n=>_(n)))return!0}return!1},q=t=>D?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)}),J=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,c=>{if(e==="message"){let r=c.data.toString(),i=r.charCodeAt(0);if(i===47||i===123)try{r=JSON.parse(r)}catch{}else v(r)?r=+r:r==="true"?r=!0:r==="false"&&(r=!1);n({...c,data:r})}else n(c)},s),this}removeEventListener(e,n,s){return this.off(e,n,s),this}close(){return this.ws.close(),this}},G=(t,e="",n)=>new Proxy(()=>{},{get(s,c,r){return G(t,`${e}/${c.toString()}`,n)},apply(s,c,[r,i={}]=[{},{}]){let u=r!==void 0&&(typeof r!="object"||Array.isArray(r))?r:void 0,{$query:L,$fetch:g,$headers:x,$transform:a,getRaw:p,...d}=r??{};u??=d;let R=e.lastIndexOf("/"),b=e.slice(R+1).toUpperCase(),A=B(t,R===-1?"/":e.slice(0,R),Object.assign(i.query??{},L)),h=n.fetcher??fetch,l=n.transform?Array.isArray(n.transform)?n.transform:[n.transform]:void 0,F=a?Array.isArray(a)?a:[a]:void 0;return F&&(l?l=F.concat(l):l=F),b==="SUBSCRIBE"?new J(A.replace(/^([^]+):\/\//,A.startsWith("https://")?"wss://":"ws://")):(async o=>{let f,m={...n.$fetch?.headers,...g?.headers,...i.headers,...x};if(b!=="GET"&&b!=="HEAD"){f=Object.keys(u).length||Array.isArray(u)?u:void 0;let E=typeof f=="object"||Array.isArray(u);if(E&&ie(f)){let W=new FormData;for(let[j,w]of Object.entries(f))if(D)W.append(j,w);else if(w instanceof File)W.append(j,await q(w));else if(w instanceof FileList)for(let O=0;O<w.length;O++)W.append(j,await q(w[O]));else if(Array.isArray(w))for(let O=0;O<w.length;O++){let N=w[O];W.append(j,N instanceof File?await q(N):N)}else W.append(j,w);f=W}else m["content-type"]=E?"application/json":"text/plain",f=E?JSON.stringify(f):u}let y=await h(A,{method:b,body:f,...n.$fetch,...i.fetch,...g,headers:m}),k;if(o.getRaw)return y;switch(y.headers.get("Content-Type")?.split(";")[0]){case"application/json":k=await y.json();break;default:k=await y.text().then(E=>v(E)?+E:E==="true"?!0:E==="false"?!1:E)}let X=y.status>=300||y.status<200?new S(y.status,k):null,M={data:k,error:X,response:y,status:y.status,headers:y.headers};if(l)for(let E of l){let T=E(M);T instanceof Promise&&(T=await T),T!=null&&(M=T)}return M})({getRaw:p})}}),V=(t,e={fetcher:fetch})=>new Proxy({},{get(n,s){return G(t,s,e)}});var z=(t,e)=>(n,{query:s,params:c,body:r,...i}={})=>{c&&Object.entries(c).forEach(([a,p])=>{n=n.replace(`:${a}`,p)});let u=i.headers?.["Content-Type"];if(!u||u==="application/json")try{r=JSON.stringify(r)}catch{}let L=e?.fetcher||globalThis.fetch,g=s?`?${new URLSearchParams(s).toString()}`:"",x=()=>L(t+n+g,{...i,method:i.method?.toUpperCase()||"GET",headers:r?{"content-type":"application/json",...i.headers}:i.headers,body:r}).then(async a=>{let p;switch(a.headers.get("Content-Type")?.split(";")[0]){case"application/json":p=await a.json();break;default:p=await a.text().then(d=>v(d)?parseInt(d):d==="true"?!0:d==="false"?!1:d);break}return a.status>300?{data:null,status:a.status,headers:a.headers,retry:x,error:new S(a.status,p)}:{data:p,error:null,status:a.status,headers:a.headers,retry:x}});return x()};0&&(module.exports={edenFetch,edenTreaty,treaty});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as j}from"./chunk-
|
|
1
|
+
import{b as j}from"./chunk-TETN57VK.mjs";import{a as M}from"./chunk-FGCQ7BRI.mjs";import{b as S,c as A}from"./chunk-HUZ6GXDC.mjs";var b=class{constructor(t){this.url=t;this.ws=new WebSocket(t)}ws;send(t){return Array.isArray(t)?(t.forEach(r=>this.send(r)),this):(this.ws.send(typeof t=="object"?JSON.stringify(t):t.toString()),this)}on(t,r,f){return this.addEventListener(t,r,f)}off(t,r,f){return this.ws.removeEventListener(t,r,f),this}subscribe(t,r){return this.addEventListener("message",t,r)}addEventListener(t,r,f){return this.ws.addEventListener(t,d=>{if(t==="message"){let a=d.data.toString(),i=a.charCodeAt(0);if(i===47||i===123)try{a=JSON.parse(a)}catch{}else S(a)?a=+a:a==="true"?a=!0:a==="false"&&(a=!1);r({...d,data:a})}else r(d)},f),this}removeEventListener(t,r,f){return this.off(t,r,f),this}close(){return this.ws.close(),this}};var R=["get","post","put","delete","patch","options","head","connect","subscribe"],W=typeof FileList>"u",L=e=>W?e instanceof Blob:e instanceof FileList||e instanceof File,N=e=>{if(!e)return!1;for(let t in e)if(L(e[t])||Array.isArray(e[t])&&e[t].find(L))return!0;return!1},T=e=>W?e:new Promise(t=>{let r=new FileReader;r.onload=()=>{let f=new File([r.result],e.name,{lastModified:e.lastModified,type:e.type});t(f)},r.readAsArrayBuffer(e)}),w=(e,t,r=[],f)=>new Proxy(()=>{},{get(d,a){return w(e,t,[...r,a],f)},apply(d,a,[i,h]){return!i||h||typeof i=="object"&&Object.keys(i).length!==1||R.includes(r.at(-1))?(async()=>{let x=r.pop(),l="/"+r.join("/");if(x==="subscribe")return new b(e.replace(/^([^]+):\/\//,e.startsWith("https://")?"wss://":"ws://")+l);let{fetcher:O=fetch,headers:s,onRequest:m,onResponse:v,...K}=t;if(typeof s=="function"&&!(s instanceof Headers))s=s(l,h)??void 0;else if(Array.isArray(s)&&s.every(n=>typeof n=="function"))for(let n of s)s=n(l,h)??void 0;else if(s instanceof Headers){s={};for(let[n,o]of Object.entries(s))s[n]=o}let E=(s instanceof Headers?s.get("content-type"):Array.isArray(s)?s.find(n=>Array.isArray(n)&&n[0]==="headers"?n[1]:!1):typeof s=="function"?s(l,h):s?.contentType)||h?.headers?.contentType;if(!E)if(typeof i=="object")E="application/json",i=JSON.stringify(i);else if(N(i)){let n=new FormData;for(let[o,y]of Object.entries(i)){if(W){n.append(o,y);continue}if(y instanceof File){n.append(o,await T(y));continue}if(y instanceof FileList){for(let u=0;u<y.length;u++)n.append(o,await T(y[u]));continue}if(Array.isArray(y)){for(let u=0;u<y.length;u++){let F=y[u];n.append(o,F instanceof File?await T(F):F)}continue}n.append(o,y)}i=n}else E="text/plain";let g={method:x,body:i,...K,headers:{...s,"content-type":E}};if(m){Array.isArray(m)||(m=[m]);for(let n of m){let o=await n(l,g);typeof o=="object"&&Object.assign(g,o)}}let c=await(f?.handle(new Request(e+l,g))??O(e+l,g)),p,k;if(v){Array.isArray(v)||(v=[v]);for(let n of v)try{if(p=await n(c.clone()),p!==void 0)break}catch(o){o instanceof A?k=o:k=new A(500,o);break}}if(p===void 0)if(c.status>=300||c.status<200)new A(c.status,p);else switch(c.headers.get("Content-Type")?.split(";")[0]){case"application/json":p=await c.json();break;case"application/octet-stream":p=await c.arrayBuffer();break;default:p=await c.text().then(n=>S(n)?+n:n==="true"?!0:n==="false"?!1:n)}return{data:p,error:k,response:c,status:c.status,headers:c.headers}})():typeof i=="object"?w(e,t,[...r,Object.values(i)[0]],f):w(e,t,r)}}),C=(e,t={})=>typeof e=="string"?(e.includes("://")||(e=(["localhost","127.0.0.1","0.0.0.0"].find(r=>e.includes(r))?"http://":"https://")+e),e.endsWith("/")&&(e=e.slice(0,-1)),w(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."),w("http://e.ly",t,[],e));export{M as edenFetch,j as edenTreaty,C as treaty};
|
package/dist/treaty/index.d.ts
CHANGED
|
@@ -13,4 +13,12 @@ export declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
|
|
|
13
13
|
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
14
14
|
close(): this;
|
|
15
15
|
}
|
|
16
|
-
export declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any
|
|
16
|
+
export declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, {
|
|
17
|
+
decorator: {};
|
|
18
|
+
store: {};
|
|
19
|
+
derive: {};
|
|
20
|
+
resolve: {};
|
|
21
|
+
}, {
|
|
22
|
+
schema: {};
|
|
23
|
+
macro: {};
|
|
24
|
+
}>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
|
package/dist/treaty/types.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ type Replace<RecordType, TargetType, GenericType> = {
|
|
|
9
9
|
};
|
|
10
10
|
type MaybeArray<T> = T | T[];
|
|
11
11
|
export declare namespace EdenTreaty {
|
|
12
|
-
export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
12
|
+
export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
13
13
|
_routes: infer Schema extends Record<string, unknown>;
|
|
14
14
|
} ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
15
15
|
export type Sign<Route extends Record<string, any>> = {
|
|
@@ -19,7 +19,7 @@ export declare namespace EdenTreaty {
|
|
|
19
19
|
headers: infer Headers;
|
|
20
20
|
query: infer Query;
|
|
21
21
|
params: unknown;
|
|
22
|
-
response:
|
|
22
|
+
response: infer Response;
|
|
23
23
|
};
|
|
24
24
|
} ? {
|
|
25
25
|
[Method in keyof Route[K]]: Method extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
|
|
@@ -44,7 +44,7 @@ export declare namespace EdenTreaty {
|
|
|
44
44
|
error: null;
|
|
45
45
|
} | {
|
|
46
46
|
data: null;
|
|
47
|
-
error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> :
|
|
47
|
+
error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> : EdenFetchError<number, unknown>;
|
|
48
48
|
}) & {
|
|
49
49
|
status: number;
|
|
50
50
|
response: Response;
|
package/dist/treaty.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Elysia, InputSchema } from 'elysia';
|
|
2
|
-
import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-
|
|
2
|
+
import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-DNydNaKe.js';
|
|
3
3
|
|
|
4
4
|
/// <reference lib="dom" />
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@ type Replace<RecordType, TargetType, GenericType> = {
|
|
|
9
9
|
};
|
|
10
10
|
type MaybeArray<T> = T | T[];
|
|
11
11
|
declare namespace EdenTreaty {
|
|
12
|
-
export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
12
|
+
export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
13
13
|
_routes: infer Schema extends Record<string, unknown>;
|
|
14
14
|
} ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
15
15
|
export type Sign<Route extends Record<string, any>> = {
|
|
@@ -19,7 +19,7 @@ declare namespace EdenTreaty {
|
|
|
19
19
|
headers: infer Headers;
|
|
20
20
|
query: infer Query;
|
|
21
21
|
params: unknown;
|
|
22
|
-
response:
|
|
22
|
+
response: infer Response;
|
|
23
23
|
};
|
|
24
24
|
} ? {
|
|
25
25
|
[Method in keyof Route[K]]: Method extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
|
|
@@ -44,7 +44,7 @@ declare namespace EdenTreaty {
|
|
|
44
44
|
error: null;
|
|
45
45
|
} | {
|
|
46
46
|
data: null;
|
|
47
|
-
error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> :
|
|
47
|
+
error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> : EdenFetchError<number, unknown>;
|
|
48
48
|
}) & {
|
|
49
49
|
status: number;
|
|
50
50
|
response: Response;
|
|
@@ -113,6 +113,14 @@ declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
|
|
|
113
113
|
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
114
114
|
close(): this;
|
|
115
115
|
}
|
|
116
|
-
declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any
|
|
116
|
+
declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, {
|
|
117
|
+
decorator: {};
|
|
118
|
+
store: {};
|
|
119
|
+
derive: {};
|
|
120
|
+
resolve: {};
|
|
121
|
+
}, {
|
|
122
|
+
schema: {};
|
|
123
|
+
macro: {};
|
|
124
|
+
}>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
|
|
117
125
|
|
|
118
126
|
export { EdenTreaty, EdenWS, edenTreaty };
|
package/dist/treaty.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Elysia, InputSchema } from 'elysia';
|
|
2
|
-
import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-
|
|
2
|
+
import { P as Prettify, I as IsUnknown, M as MapError, a as IsNever, E as EdenFetchError } from './types-DNydNaKe.js';
|
|
3
3
|
|
|
4
4
|
/// <reference lib="dom" />
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@ type Replace<RecordType, TargetType, GenericType> = {
|
|
|
9
9
|
};
|
|
10
10
|
type MaybeArray<T> = T | T[];
|
|
11
11
|
declare namespace EdenTreaty {
|
|
12
|
-
export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
12
|
+
export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
13
13
|
_routes: infer Schema extends Record<string, unknown>;
|
|
14
14
|
} ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
15
15
|
export type Sign<Route extends Record<string, any>> = {
|
|
@@ -19,7 +19,7 @@ declare namespace EdenTreaty {
|
|
|
19
19
|
headers: infer Headers;
|
|
20
20
|
query: infer Query;
|
|
21
21
|
params: unknown;
|
|
22
|
-
response:
|
|
22
|
+
response: infer Response;
|
|
23
23
|
};
|
|
24
24
|
} ? {
|
|
25
25
|
[Method in keyof Route[K]]: Method extends 'subscribe' ? undefined extends Route['query'] ? (params?: {
|
|
@@ -44,7 +44,7 @@ declare namespace EdenTreaty {
|
|
|
44
44
|
error: null;
|
|
45
45
|
} | {
|
|
46
46
|
data: null;
|
|
47
|
-
error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> :
|
|
47
|
+
error: Response extends Record<number, unknown> ? MapError<Response> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string> : EdenFetchError<number, unknown>;
|
|
48
48
|
}) & {
|
|
49
49
|
status: number;
|
|
50
50
|
response: Response;
|
|
@@ -113,6 +113,14 @@ declare class EdenWS<Schema extends InputSchema<any> = InputSchema> {
|
|
|
113
113
|
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
114
114
|
close(): this;
|
|
115
115
|
}
|
|
116
|
-
declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any
|
|
116
|
+
declare const edenTreaty: <App extends Elysia<any, any, any, any, any, any, {
|
|
117
|
+
decorator: {};
|
|
118
|
+
store: {};
|
|
119
|
+
derive: {};
|
|
120
|
+
resolve: {};
|
|
121
|
+
}, {
|
|
122
|
+
schema: {};
|
|
123
|
+
macro: {};
|
|
124
|
+
}>>(domain: string, config?: EdenTreaty.Config) => EdenTreaty.Create<App>;
|
|
117
125
|
|
|
118
126
|
export { EdenTreaty, EdenWS, edenTreaty };
|
package/dist/treaty.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"./chunk-
|
|
1
|
+
import{a,b}from"./chunk-TETN57VK.mjs";import"./chunk-HUZ6GXDC.mjs";export{a as EdenWS,b as edenTreaty};
|
package/dist/treaty2/index.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { Elysia } from 'elysia';
|
|
2
|
-
import type {
|
|
3
|
-
export declare const treaty: <const App extends Elysia<any, any, any, any, any, any
|
|
4
|
-
|
|
2
|
+
import type { Treaty } from './types';
|
|
3
|
+
export declare const treaty: <const App extends Elysia<any, any, any, any, any, any, {
|
|
4
|
+
decorator: {};
|
|
5
|
+
store: {};
|
|
6
|
+
derive: {};
|
|
7
|
+
resolve: {};
|
|
8
|
+
}, {
|
|
9
|
+
schema: {};
|
|
10
|
+
macro: {};
|
|
11
|
+
}>>(domain: string | App, config?: Treaty.Config) => Treaty.Create<App>;
|
|
12
|
+
export type { Treaty };
|
package/dist/treaty2/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="bun-types" />
|
|
2
2
|
/// <reference lib="dom" />
|
|
3
3
|
import type { Elysia } from 'elysia';
|
|
4
|
+
import { EdenWS } from './ws';
|
|
4
5
|
import type { Prettify } from '../types';
|
|
5
6
|
type Files = File | FileList;
|
|
6
7
|
type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
|
|
@@ -8,17 +9,22 @@ type ReplaceBlobWithFiles<in out RecordType extends Record<string, unknown>> = {
|
|
|
8
9
|
} & {};
|
|
9
10
|
type MaybeArray<T> = T | T[];
|
|
10
11
|
type MaybePromise<T> = T | Promise<T>;
|
|
11
|
-
export declare namespace
|
|
12
|
+
export declare namespace Treaty {
|
|
12
13
|
interface TreatyParam {
|
|
13
14
|
fetch?: RequestInit;
|
|
14
15
|
}
|
|
15
|
-
export type Create<App extends Elysia<any, any, any, any, any, any>> = App extends {
|
|
16
|
+
export type Create<App extends Elysia<any, any, any, any, any, any, any, any>> = App extends {
|
|
16
17
|
_routes: infer Schema extends Record<string, any>;
|
|
17
18
|
} ? Prettify<Sign<Schema>> : 'Please install Elysia before using Eden';
|
|
18
19
|
export type Sign<in out Route extends Record<string, any>> = {
|
|
19
|
-
[K in keyof Route as K extends '' ? 'index' : K extends `:${string}` ? never : K]: Route[
|
|
20
|
+
[K in keyof Route as K extends '/' | '' ? 'index' : K extends `:${string}` ? never : K]: K extends 'subscribe' ? undefined extends Route['subscribe']['query'] ? (params?: {
|
|
21
|
+
query?: Record<string, string>;
|
|
22
|
+
}) => EdenWS<Route['subscribe']> : (params: {
|
|
23
|
+
query: Route['subscribe']['query'];
|
|
24
|
+
}) => EdenWS<Route['subscribe']> : Route[K] extends {
|
|
20
25
|
body: infer Body;
|
|
21
26
|
headers: infer Headers;
|
|
27
|
+
params: any;
|
|
22
28
|
query: infer Query;
|
|
23
29
|
response: infer Response extends Record<number, unknown>;
|
|
24
30
|
} ? (undefined extends Headers ? {
|
|
@@ -29,9 +35,7 @@ export declare namespace EdenTreaty2 {
|
|
|
29
35
|
query?: Record<string, unknown>;
|
|
30
36
|
} : {
|
|
31
37
|
query: Query;
|
|
32
|
-
}) extends infer Param ? {} extends Param ? undefined extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : keyof Route[K] extends `:${infer Param}` ? (params: {
|
|
33
|
-
[param in Param]: string;
|
|
34
|
-
}) => Prettify<Prettify<Sign<Route[K]>> & Sign<Route[K][`:${Param}`]>> : Prettify<Sign<Route[K]>>;
|
|
38
|
+
}) extends infer Param ? {} extends Param ? undefined extends Body ? (body?: Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options?: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : (body: Body extends Record<string, unknown> ? ReplaceBlobWithFiles<Body> : Body, options: Prettify<Param & TreatyParam>) => Promise<TreatyResponse<Response>> : never : keyof Route[K] extends `:${infer Param}` ? (params: Record<Param, string>) => Prettify<Prettify<Sign<Route[K]>> & Sign<Route[K][`:${Param}`]>> : Prettify<Sign<Route[K]>>;
|
|
35
39
|
};
|
|
36
40
|
export interface Config extends Omit<RequestInit, 'headers'> {
|
|
37
41
|
fetcher?: typeof fetch;
|
package/dist/treaty2/ws.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { InputSchema } from 'elysia';
|
|
2
|
-
import type {
|
|
3
|
-
export declare class EdenWS<Schema extends InputSchema<any> = {}> {
|
|
2
|
+
import type { Treaty } from './types';
|
|
3
|
+
export declare class EdenWS<in out Schema extends InputSchema<any> = {}> {
|
|
4
4
|
url: string;
|
|
5
5
|
ws: WebSocket;
|
|
6
6
|
constructor(url: string);
|
|
7
7
|
send(data: Schema['body'] | Schema['body'][]): this;
|
|
8
|
-
on<K extends keyof WebSocketEventMap>(type: K, listener: (event:
|
|
8
|
+
on<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
9
9
|
off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
10
|
-
subscribe(onMessage: (event:
|
|
11
|
-
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event:
|
|
10
|
+
subscribe(onMessage: (event: Treaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
11
|
+
addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: Treaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
|
|
12
12
|
removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
|
|
13
13
|
close(): this;
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elysiajs/eden",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.2",
|
|
4
4
|
"description": "Fully type-safe Elysia client",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "saltyAom",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
"release": "npm run build && npm run test && npm publish --access public"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"elysia": ">= 1.0.0-beta.
|
|
55
|
+
"elysia": ">= 1.0.0-beta.4"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@elysiajs/cors": "0.7.0",
|
|
59
59
|
"@types/bun": "^1.0.3",
|
|
60
60
|
"@types/node": "^18.15.5",
|
|
61
|
-
"elysia": "1.0.0-beta.
|
|
61
|
+
"elysia": "1.0.0-beta.4",
|
|
62
62
|
"esbuild": "^0.19.3",
|
|
63
63
|
"eslint": "^8.26.0",
|
|
64
64
|
"rimraf": "^4.4.1",
|
package/dist/chunk-R27QELXO.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var n=class extends Error{constructor(r,s){super(s+"");this.status=r;this.value=s}};var o=(t,e,r)=>{if(t.endsWith("/")||(t+="/"),e==="index"&&(e=""),!r||!Object.keys(r).length)return`${t}${e}`;let s="";for(let[i,u]of Object.entries(r))s+=`${i}=${u}&`;return`${t}${e}?${s.slice(0,-1)}`},l=t=>t.trim().length!==0&&!Number.isNaN(Number(t));export{n as a,o as b,l as c};
|
|
File without changes
|