elysia 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bun/index.d.ts +1 -1
- package/dist/bun/index.js +71 -68
- package/dist/bun/index.js.map +8 -8
- package/dist/cjs/compose.js +13 -10
- package/dist/cjs/context.d.ts +2 -2
- package/dist/cjs/cookies.d.ts +1 -2
- package/dist/cjs/cookies.js +6 -6
- package/dist/cjs/dynamic-handle.js +7 -7
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +14 -11
- package/dist/cjs/types.d.ts +8 -0
- package/dist/compose.mjs +13 -10
- package/dist/context.d.ts +2 -2
- package/dist/cookies.d.ts +1 -2
- package/dist/cookies.mjs +6 -6
- package/dist/dynamic-handle.mjs +7 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +14 -11
- package/dist/types.d.ts +8 -0
- package/package.json +1 -1
- package/tsconfig.test.tsbuildinfo +1 -1
package/dist/cjs/compose.js
CHANGED
|
@@ -684,13 +684,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
684
684
|
});
|
|
685
685
|
};
|
|
686
686
|
var parseCookie = async (set, cookieString, {
|
|
687
|
-
|
|
687
|
+
secrets,
|
|
688
688
|
sign,
|
|
689
689
|
...initial
|
|
690
690
|
} = {}) => {
|
|
691
691
|
if (!cookieString)
|
|
692
692
|
return createCookieJar(set, {}, initial);
|
|
693
|
-
const isStringKey = typeof
|
|
693
|
+
const isStringKey = typeof secrets === "string";
|
|
694
694
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
695
695
|
sign = [sign];
|
|
696
696
|
const jar = {};
|
|
@@ -698,17 +698,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
698
698
|
for (const [name, v] of Object.entries(cookies)) {
|
|
699
699
|
let value = (0, import_fast_decode_uri_component.default)(v);
|
|
700
700
|
if (sign === true || sign?.includes(name)) {
|
|
701
|
-
if (!
|
|
701
|
+
if (!secrets)
|
|
702
702
|
throw new Error("No secret is provided to cookie plugin");
|
|
703
703
|
if (isStringKey) {
|
|
704
|
-
const temp = await unsignCookie(value,
|
|
704
|
+
const temp = await unsignCookie(value, secrets);
|
|
705
705
|
if (temp === false)
|
|
706
706
|
throw new InvalidCookieSignature(name);
|
|
707
707
|
value = temp;
|
|
708
708
|
} else {
|
|
709
709
|
let decoded = true;
|
|
710
|
-
for (let i = 0; i <
|
|
711
|
-
const temp = await unsignCookie(value,
|
|
710
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
711
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
712
712
|
if (temp !== false) {
|
|
713
713
|
decoded = true;
|
|
714
714
|
value = temp;
|
|
@@ -2087,7 +2087,10 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2087
2087
|
composeResponseValidation: (name = "r") => {
|
|
2088
2088
|
const returnError = hasErrorHandler ? `throw new ValidationError('response', response[c.set.status], ${name})` : `return new ValidationError('response', response[c.set.status], ${name}).toResponse(c.set.headers)`;
|
|
2089
2089
|
let code = "\n" + injectResponse + "\n";
|
|
2090
|
-
code += `
|
|
2090
|
+
code += `let er
|
|
2091
|
+
|
|
2092
|
+
if(${name} && typeof ${name} === "object" && ELYSIA_RESPONSE in ${name})
|
|
2093
|
+
er = ${name}[ELYSIA_RESPONSE]
|
|
2091
2094
|
`;
|
|
2092
2095
|
if (normalize)
|
|
2093
2096
|
code += `
|
|
@@ -2096,7 +2099,7 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2096
2099
|
else if(response[er]?.Clean)
|
|
2097
2100
|
${name}.response = response[er]?.Clean(${name}.response)`;
|
|
2098
2101
|
code += `
|
|
2099
|
-
if(
|
|
2102
|
+
if(er) {
|
|
2100
2103
|
if(!(${name} instanceof Response) && response[er]?.Check(${name}.response) === false) {
|
|
2101
2104
|
if(!(response instanceof Error)) {
|
|
2102
2105
|
c.set.status = ${name}[ELYSIA_RESPONSE]
|
|
@@ -2304,7 +2307,7 @@ var composeHandler = ({
|
|
|
2304
2307
|
return `${name}: ${value},`;
|
|
2305
2308
|
};
|
|
2306
2309
|
const options = cookieMeta ? `{
|
|
2307
|
-
|
|
2310
|
+
secrets: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
|
|
2308
2311
|
(a, b) => a + `'${b}',`,
|
|
2309
2312
|
""
|
|
2310
2313
|
) + "]" : "undefined"},
|
|
@@ -3333,7 +3336,7 @@ var composeErrorHandler = (app) => {
|
|
|
3333
3336
|
context.code = error.code
|
|
3334
3337
|
context.error = error
|
|
3335
3338
|
|
|
3336
|
-
if(error
|
|
3339
|
+
if(ELYSIA_RESPONSE in error) {
|
|
3337
3340
|
error.status = error[ELYSIA_RESPONSE]
|
|
3338
3341
|
error.message = error.response
|
|
3339
3342
|
}
|
package/dist/cjs/context.d.ts
CHANGED
|
@@ -17,9 +17,9 @@ export type Context<in out Route extends RouteSchema = {}, in out Singleton exte
|
|
|
17
17
|
query: undefined extends Route['query'] ? Record<string, string | undefined> : Route['query'];
|
|
18
18
|
params: undefined extends Route['params'] ? Path extends `${string}/${':' | '*'}${string}` ? Record<GetPathParameter<Path>, string> : never : Route['params'];
|
|
19
19
|
headers: undefined extends Route['headers'] ? Record<string, string | undefined> : Route['headers'];
|
|
20
|
-
cookie: undefined extends Route['cookie'] ? Record<string, Cookie<any>> : Record<string, Cookie<any>> & WithoutNullableKeys<{
|
|
20
|
+
cookie: undefined extends Route['cookie'] ? Record<string, Cookie<any>> : Record<string, Cookie<any>> & Prettify<WithoutNullableKeys<{
|
|
21
21
|
[key in keyof Route['cookie']]: Cookie<Route['cookie'][key]>;
|
|
22
|
-
}
|
|
22
|
+
}>>;
|
|
23
23
|
set: {
|
|
24
24
|
headers: Record<string, string> & {
|
|
25
25
|
'Set-Cookie'?: string | string[];
|
package/dist/cjs/cookies.d.ts
CHANGED
|
@@ -131,8 +131,7 @@ export declare class Cookie<T> implements ElysiaCookie {
|
|
|
131
131
|
toString(): string;
|
|
132
132
|
}
|
|
133
133
|
export declare const createCookieJar: (set: Context['set'], store: Record<string, ElysiaCookie>, initial?: Partial<ElysiaCookie>) => Record<string, Cookie<unknown>>;
|
|
134
|
-
export declare const parseCookie: (set: Context['set'], cookieString?: string | null, {
|
|
135
|
-
secret?: string | string[] | undefined;
|
|
134
|
+
export declare const parseCookie: (set: Context['set'], cookieString?: string | null, { secrets, sign, ...initial }?: CookieOptions & {
|
|
136
135
|
sign?: string | true | string[] | undefined;
|
|
137
136
|
}) => Promise<Record<string, Cookie<unknown>>>;
|
|
138
137
|
export {};
|
package/dist/cjs/cookies.js
CHANGED
|
@@ -837,13 +837,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
837
837
|
});
|
|
838
838
|
};
|
|
839
839
|
var parseCookie = async (set, cookieString, {
|
|
840
|
-
|
|
840
|
+
secrets,
|
|
841
841
|
sign,
|
|
842
842
|
...initial
|
|
843
843
|
} = {}) => {
|
|
844
844
|
if (!cookieString)
|
|
845
845
|
return createCookieJar(set, {}, initial);
|
|
846
|
-
const isStringKey = typeof
|
|
846
|
+
const isStringKey = typeof secrets === "string";
|
|
847
847
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
848
848
|
sign = [sign];
|
|
849
849
|
const jar = {};
|
|
@@ -851,17 +851,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
851
851
|
for (const [name, v] of Object.entries(cookies)) {
|
|
852
852
|
let value = (0, import_fast_decode_uri_component2.default)(v);
|
|
853
853
|
if (sign === true || sign?.includes(name)) {
|
|
854
|
-
if (!
|
|
854
|
+
if (!secrets)
|
|
855
855
|
throw new Error("No secret is provided to cookie plugin");
|
|
856
856
|
if (isStringKey) {
|
|
857
|
-
const temp = await unsignCookie(value,
|
|
857
|
+
const temp = await unsignCookie(value, secrets);
|
|
858
858
|
if (temp === false)
|
|
859
859
|
throw new InvalidCookieSignature(name);
|
|
860
860
|
value = temp;
|
|
861
861
|
} else {
|
|
862
862
|
let decoded = true;
|
|
863
|
-
for (let i = 0; i <
|
|
864
|
-
const temp = await unsignCookie(value,
|
|
863
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
864
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
865
865
|
if (temp !== false) {
|
|
866
866
|
decoded = true;
|
|
867
867
|
value = temp;
|
|
@@ -282,13 +282,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
282
282
|
});
|
|
283
283
|
};
|
|
284
284
|
var parseCookie = async (set, cookieString, {
|
|
285
|
-
|
|
285
|
+
secrets,
|
|
286
286
|
sign,
|
|
287
287
|
...initial
|
|
288
288
|
} = {}) => {
|
|
289
289
|
if (!cookieString)
|
|
290
290
|
return createCookieJar(set, {}, initial);
|
|
291
|
-
const isStringKey = typeof
|
|
291
|
+
const isStringKey = typeof secrets === "string";
|
|
292
292
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
293
293
|
sign = [sign];
|
|
294
294
|
const jar = {};
|
|
@@ -296,17 +296,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
296
296
|
for (const [name, v] of Object.entries(cookies)) {
|
|
297
297
|
let value = (0, import_fast_decode_uri_component.default)(v);
|
|
298
298
|
if (sign === true || sign?.includes(name)) {
|
|
299
|
-
if (!
|
|
299
|
+
if (!secrets)
|
|
300
300
|
throw new Error("No secret is provided to cookie plugin");
|
|
301
301
|
if (isStringKey) {
|
|
302
|
-
const temp = await unsignCookie(value,
|
|
302
|
+
const temp = await unsignCookie(value, secrets);
|
|
303
303
|
if (temp === false)
|
|
304
304
|
throw new InvalidCookieSignature(name);
|
|
305
305
|
value = temp;
|
|
306
306
|
} else {
|
|
307
307
|
let decoded = true;
|
|
308
|
-
for (let i = 0; i <
|
|
309
|
-
const temp = await unsignCookie(value,
|
|
308
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
309
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
310
310
|
if (temp !== false) {
|
|
311
311
|
decoded = true;
|
|
312
312
|
value = temp;
|
|
@@ -1623,7 +1623,7 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1623
1623
|
context.set,
|
|
1624
1624
|
cookieHeaderValue,
|
|
1625
1625
|
cookieMeta ? {
|
|
1626
|
-
|
|
1626
|
+
secrets: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
|
|
1627
1627
|
sign: cookieMeta.sign === true ? true : cookieMeta.sign !== void 0 ? typeof cookieMeta.sign === "string" ? cookieMeta.sign : cookieMeta.sign.join(",") : void 0
|
|
1628
1628
|
} : void 0
|
|
1629
1629
|
);
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1412,5 +1412,5 @@ export { Cookie, type CookieOptions } from './cookies';
|
|
|
1412
1412
|
export { getSchemaValidator, mergeHook, mergeObjectArray, getResponseSchemaValidator, StatusMap, InvertedStatusMap } from './utils';
|
|
1413
1413
|
export { error, ParseError, NotFoundError, ValidationError, InternalServerError, InvalidCookieSignature, ERROR_CODE, ELYSIA_RESPONSE } from './error';
|
|
1414
1414
|
export type { Context, PreContext } from './context';
|
|
1415
|
-
export type { EphemeralType, CreateEden, ComposeElysiaResponse, ElysiaConfig, SingletonBase, DefinitionBase, RouteBase, Handler, ComposedHandler, InputSchema, LocalHook, MergeSchema, RouteSchema, UnwrapRoute, InternalRoute, HTTPMethod, SchemaValidator, VoidHandler, PreHandler, BodyHandler, OptionalHandler, ErrorHandler, AfterHandler, LifeCycleEvent, TraceEvent, LifeCycleStore, LifeCycleType, MaybePromise, ListenCallback, UnwrapSchema, TraceHandler, TraceProcess, TraceReporter, TraceStream, Checksum, DocumentDecoration } from './types';
|
|
1415
|
+
export type { EphemeralType, CreateEden, ComposeElysiaResponse, ElysiaConfig, SingletonBase, DefinitionBase, RouteBase, Handler, ComposedHandler, InputSchema, LocalHook, MergeSchema, RouteSchema, UnwrapRoute, InternalRoute, HTTPMethod, SchemaValidator, VoidHandler, PreHandler, BodyHandler, OptionalHandler, ErrorHandler, AfterHandler, LifeCycleEvent, TraceEvent, LifeCycleStore, LifeCycleType, MaybePromise, ListenCallback, UnwrapSchema, TraceHandler, TraceProcess, TraceReporter, TraceStream, Checksum, DocumentDecoration, InferContext, InferHandler } from './types';
|
|
1416
1416
|
export type { Static, TSchema } from '@sinclair/typebox';
|
package/dist/cjs/index.js
CHANGED
|
@@ -1007,13 +1007,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
1007
1007
|
});
|
|
1008
1008
|
};
|
|
1009
1009
|
var parseCookie = async (set, cookieString, {
|
|
1010
|
-
|
|
1010
|
+
secrets,
|
|
1011
1011
|
sign,
|
|
1012
1012
|
...initial
|
|
1013
1013
|
} = {}) => {
|
|
1014
1014
|
if (!cookieString)
|
|
1015
1015
|
return createCookieJar(set, {}, initial);
|
|
1016
|
-
const isStringKey = typeof
|
|
1016
|
+
const isStringKey = typeof secrets === "string";
|
|
1017
1017
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
1018
1018
|
sign = [sign];
|
|
1019
1019
|
const jar = {};
|
|
@@ -1021,17 +1021,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
1021
1021
|
for (const [name, v] of Object.entries(cookies)) {
|
|
1022
1022
|
let value = (0, import_fast_decode_uri_component.default)(v);
|
|
1023
1023
|
if (sign === true || sign?.includes(name)) {
|
|
1024
|
-
if (!
|
|
1024
|
+
if (!secrets)
|
|
1025
1025
|
throw new Error("No secret is provided to cookie plugin");
|
|
1026
1026
|
if (isStringKey) {
|
|
1027
|
-
const temp = await unsignCookie(value,
|
|
1027
|
+
const temp = await unsignCookie(value, secrets);
|
|
1028
1028
|
if (temp === false)
|
|
1029
1029
|
throw new InvalidCookieSignature(name);
|
|
1030
1030
|
value = temp;
|
|
1031
1031
|
} else {
|
|
1032
1032
|
let decoded = true;
|
|
1033
|
-
for (let i = 0; i <
|
|
1034
|
-
const temp = await unsignCookie(value,
|
|
1033
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
1034
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
1035
1035
|
if (temp !== false) {
|
|
1036
1036
|
decoded = true;
|
|
1037
1037
|
value = temp;
|
|
@@ -2638,7 +2638,10 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2638
2638
|
composeResponseValidation: (name = "r") => {
|
|
2639
2639
|
const returnError = hasErrorHandler ? `throw new ValidationError('response', response[c.set.status], ${name})` : `return new ValidationError('response', response[c.set.status], ${name}).toResponse(c.set.headers)`;
|
|
2640
2640
|
let code = "\n" + injectResponse + "\n";
|
|
2641
|
-
code += `
|
|
2641
|
+
code += `let er
|
|
2642
|
+
|
|
2643
|
+
if(${name} && typeof ${name} === "object" && ELYSIA_RESPONSE in ${name})
|
|
2644
|
+
er = ${name}[ELYSIA_RESPONSE]
|
|
2642
2645
|
`;
|
|
2643
2646
|
if (normalize)
|
|
2644
2647
|
code += `
|
|
@@ -2647,7 +2650,7 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2647
2650
|
else if(response[er]?.Clean)
|
|
2648
2651
|
${name}.response = response[er]?.Clean(${name}.response)`;
|
|
2649
2652
|
code += `
|
|
2650
|
-
if(
|
|
2653
|
+
if(er) {
|
|
2651
2654
|
if(!(${name} instanceof Response) && response[er]?.Check(${name}.response) === false) {
|
|
2652
2655
|
if(!(response instanceof Error)) {
|
|
2653
2656
|
c.set.status = ${name}[ELYSIA_RESPONSE]
|
|
@@ -2855,7 +2858,7 @@ var composeHandler = ({
|
|
|
2855
2858
|
return `${name}: ${value},`;
|
|
2856
2859
|
};
|
|
2857
2860
|
const options = cookieMeta ? `{
|
|
2858
|
-
|
|
2861
|
+
secrets: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
|
|
2859
2862
|
(a2, b) => a2 + `'${b}',`,
|
|
2860
2863
|
""
|
|
2861
2864
|
) + "]" : "undefined"},
|
|
@@ -3884,7 +3887,7 @@ var composeErrorHandler = (app) => {
|
|
|
3884
3887
|
context.code = error.code
|
|
3885
3888
|
context.error = error
|
|
3886
3889
|
|
|
3887
|
-
if(error
|
|
3890
|
+
if(ELYSIA_RESPONSE in error) {
|
|
3888
3891
|
error.status = error[ELYSIA_RESPONSE]
|
|
3889
3892
|
error.message = error.response
|
|
3890
3893
|
}
|
|
@@ -4078,7 +4081,7 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
4078
4081
|
context.set,
|
|
4079
4082
|
cookieHeaderValue,
|
|
4080
4083
|
cookieMeta ? {
|
|
4081
|
-
|
|
4084
|
+
secrets: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
|
|
4082
4085
|
sign: cookieMeta.sign === true ? true : cookieMeta.sign !== void 0 ? typeof cookieMeta.sign === "string" ? cookieMeta.sign : cookieMeta.sign.join(",") : void 0
|
|
4083
4086
|
} : void 0
|
|
4084
4087
|
);
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -577,4 +577,12 @@ export type LifeCycleType = 'global' | 'local' | 'scoped';
|
|
|
577
577
|
export type ExcludeElysiaResponse<T> = Exclude<Awaited<T>, {
|
|
578
578
|
[ELYSIA_RESPONSE]: any;
|
|
579
579
|
}>;
|
|
580
|
+
export type InferContext<T extends Elysia<any, any, any, any, any, any, any, any>, Path extends string = T['_types']['Prefix'], Schema extends RouteSchema = T['_types']['Metadata']['schema']> = Context<MergeSchema<Schema, T['_types']['Metadata']['schema']>, T['_types']['Singleton'] & {
|
|
581
|
+
derive: T['_ephemeral']['derive'] & T['_volatile']['derive'];
|
|
582
|
+
resolve: T['_ephemeral']['resolve'] & T['_volatile']['resolve'];
|
|
583
|
+
}, T['_types']['Prefix']>;
|
|
584
|
+
export type InferHandler<T extends Elysia<any, any, any, any, any, any, any, any>, Path extends string = T['_types']['Prefix'], Schema extends RouteSchema = T['_types']['Metadata']['schema']> = InlineHandler<MergeSchema<Schema, T['_types']['Metadata']['schema']>, T['_types']['Singleton'] & {
|
|
585
|
+
derive: T['_ephemeral']['derive'] & T['_volatile']['derive'];
|
|
586
|
+
resolve: T['_ephemeral']['resolve'] & T['_volatile']['resolve'];
|
|
587
|
+
}, T['_types']['Prefix']>;
|
|
580
588
|
export {};
|
package/dist/compose.mjs
CHANGED
|
@@ -642,13 +642,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
642
642
|
});
|
|
643
643
|
};
|
|
644
644
|
var parseCookie = async (set, cookieString, {
|
|
645
|
-
|
|
645
|
+
secrets,
|
|
646
646
|
sign,
|
|
647
647
|
...initial
|
|
648
648
|
} = {}) => {
|
|
649
649
|
if (!cookieString)
|
|
650
650
|
return createCookieJar(set, {}, initial);
|
|
651
|
-
const isStringKey = typeof
|
|
651
|
+
const isStringKey = typeof secrets === "string";
|
|
652
652
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
653
653
|
sign = [sign];
|
|
654
654
|
const jar = {};
|
|
@@ -656,17 +656,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
656
656
|
for (const [name, v] of Object.entries(cookies)) {
|
|
657
657
|
let value = decodeURIComponent(v);
|
|
658
658
|
if (sign === true || sign?.includes(name)) {
|
|
659
|
-
if (!
|
|
659
|
+
if (!secrets)
|
|
660
660
|
throw new Error("No secret is provided to cookie plugin");
|
|
661
661
|
if (isStringKey) {
|
|
662
|
-
const temp = await unsignCookie(value,
|
|
662
|
+
const temp = await unsignCookie(value, secrets);
|
|
663
663
|
if (temp === false)
|
|
664
664
|
throw new InvalidCookieSignature(name);
|
|
665
665
|
value = temp;
|
|
666
666
|
} else {
|
|
667
667
|
let decoded = true;
|
|
668
|
-
for (let i = 0; i <
|
|
669
|
-
const temp = await unsignCookie(value,
|
|
668
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
669
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
670
670
|
if (temp !== false) {
|
|
671
671
|
decoded = true;
|
|
672
672
|
value = temp;
|
|
@@ -2055,7 +2055,10 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2055
2055
|
composeResponseValidation: (name = "r") => {
|
|
2056
2056
|
const returnError = hasErrorHandler ? `throw new ValidationError('response', response[c.set.status], ${name})` : `return new ValidationError('response', response[c.set.status], ${name}).toResponse(c.set.headers)`;
|
|
2057
2057
|
let code = "\n" + injectResponse + "\n";
|
|
2058
|
-
code += `
|
|
2058
|
+
code += `let er
|
|
2059
|
+
|
|
2060
|
+
if(${name} && typeof ${name} === "object" && ELYSIA_RESPONSE in ${name})
|
|
2061
|
+
er = ${name}[ELYSIA_RESPONSE]
|
|
2059
2062
|
`;
|
|
2060
2063
|
if (normalize)
|
|
2061
2064
|
code += `
|
|
@@ -2064,7 +2067,7 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2064
2067
|
else if(response[er]?.Clean)
|
|
2065
2068
|
${name}.response = response[er]?.Clean(${name}.response)`;
|
|
2066
2069
|
code += `
|
|
2067
|
-
if(
|
|
2070
|
+
if(er) {
|
|
2068
2071
|
if(!(${name} instanceof Response) && response[er]?.Check(${name}.response) === false) {
|
|
2069
2072
|
if(!(response instanceof Error)) {
|
|
2070
2073
|
c.set.status = ${name}[ELYSIA_RESPONSE]
|
|
@@ -2272,7 +2275,7 @@ var composeHandler = ({
|
|
|
2272
2275
|
return `${name}: ${value},`;
|
|
2273
2276
|
};
|
|
2274
2277
|
const options = cookieMeta ? `{
|
|
2275
|
-
|
|
2278
|
+
secrets: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
|
|
2276
2279
|
(a, b) => a + `'${b}',`,
|
|
2277
2280
|
""
|
|
2278
2281
|
) + "]" : "undefined"},
|
|
@@ -3301,7 +3304,7 @@ var composeErrorHandler = (app) => {
|
|
|
3301
3304
|
context.code = error.code
|
|
3302
3305
|
context.error = error
|
|
3303
3306
|
|
|
3304
|
-
if(error
|
|
3307
|
+
if(ELYSIA_RESPONSE in error) {
|
|
3305
3308
|
error.status = error[ELYSIA_RESPONSE]
|
|
3306
3309
|
error.message = error.response
|
|
3307
3310
|
}
|
package/dist/context.d.ts
CHANGED
|
@@ -17,9 +17,9 @@ export type Context<in out Route extends RouteSchema = {}, in out Singleton exte
|
|
|
17
17
|
query: undefined extends Route['query'] ? Record<string, string | undefined> : Route['query'];
|
|
18
18
|
params: undefined extends Route['params'] ? Path extends `${string}/${':' | '*'}${string}` ? Record<GetPathParameter<Path>, string> : never : Route['params'];
|
|
19
19
|
headers: undefined extends Route['headers'] ? Record<string, string | undefined> : Route['headers'];
|
|
20
|
-
cookie: undefined extends Route['cookie'] ? Record<string, Cookie<any>> : Record<string, Cookie<any>> & WithoutNullableKeys<{
|
|
20
|
+
cookie: undefined extends Route['cookie'] ? Record<string, Cookie<any>> : Record<string, Cookie<any>> & Prettify<WithoutNullableKeys<{
|
|
21
21
|
[key in keyof Route['cookie']]: Cookie<Route['cookie'][key]>;
|
|
22
|
-
}
|
|
22
|
+
}>>;
|
|
23
23
|
set: {
|
|
24
24
|
headers: Record<string, string> & {
|
|
25
25
|
'Set-Cookie'?: string | string[];
|
package/dist/cookies.d.ts
CHANGED
|
@@ -131,8 +131,7 @@ export declare class Cookie<T> implements ElysiaCookie {
|
|
|
131
131
|
toString(): string;
|
|
132
132
|
}
|
|
133
133
|
export declare const createCookieJar: (set: Context['set'], store: Record<string, ElysiaCookie>, initial?: Partial<ElysiaCookie>) => Record<string, Cookie<unknown>>;
|
|
134
|
-
export declare const parseCookie: (set: Context['set'], cookieString?: string | null, {
|
|
135
|
-
secret?: string | string[] | undefined;
|
|
134
|
+
export declare const parseCookie: (set: Context['set'], cookieString?: string | null, { secrets, sign, ...initial }?: CookieOptions & {
|
|
136
135
|
sign?: string | true | string[] | undefined;
|
|
137
136
|
}) => Promise<Record<string, Cookie<unknown>>>;
|
|
138
137
|
export {};
|
package/dist/cookies.mjs
CHANGED
|
@@ -811,13 +811,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
811
811
|
});
|
|
812
812
|
};
|
|
813
813
|
var parseCookie = async (set, cookieString, {
|
|
814
|
-
|
|
814
|
+
secrets,
|
|
815
815
|
sign,
|
|
816
816
|
...initial
|
|
817
817
|
} = {}) => {
|
|
818
818
|
if (!cookieString)
|
|
819
819
|
return createCookieJar(set, {}, initial);
|
|
820
|
-
const isStringKey = typeof
|
|
820
|
+
const isStringKey = typeof secrets === "string";
|
|
821
821
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
822
822
|
sign = [sign];
|
|
823
823
|
const jar = {};
|
|
@@ -825,17 +825,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
825
825
|
for (const [name, v] of Object.entries(cookies)) {
|
|
826
826
|
let value = decodeURIComponent2(v);
|
|
827
827
|
if (sign === true || sign?.includes(name)) {
|
|
828
|
-
if (!
|
|
828
|
+
if (!secrets)
|
|
829
829
|
throw new Error("No secret is provided to cookie plugin");
|
|
830
830
|
if (isStringKey) {
|
|
831
|
-
const temp = await unsignCookie(value,
|
|
831
|
+
const temp = await unsignCookie(value, secrets);
|
|
832
832
|
if (temp === false)
|
|
833
833
|
throw new InvalidCookieSignature(name);
|
|
834
834
|
value = temp;
|
|
835
835
|
} else {
|
|
836
836
|
let decoded = true;
|
|
837
|
-
for (let i = 0; i <
|
|
838
|
-
const temp = await unsignCookie(value,
|
|
837
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
838
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
839
839
|
if (temp !== false) {
|
|
840
840
|
decoded = true;
|
|
841
841
|
value = temp;
|
package/dist/dynamic-handle.mjs
CHANGED
|
@@ -245,13 +245,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
245
245
|
});
|
|
246
246
|
};
|
|
247
247
|
var parseCookie = async (set, cookieString, {
|
|
248
|
-
|
|
248
|
+
secrets,
|
|
249
249
|
sign,
|
|
250
250
|
...initial
|
|
251
251
|
} = {}) => {
|
|
252
252
|
if (!cookieString)
|
|
253
253
|
return createCookieJar(set, {}, initial);
|
|
254
|
-
const isStringKey = typeof
|
|
254
|
+
const isStringKey = typeof secrets === "string";
|
|
255
255
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
256
256
|
sign = [sign];
|
|
257
257
|
const jar = {};
|
|
@@ -259,17 +259,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
259
259
|
for (const [name, v] of Object.entries(cookies)) {
|
|
260
260
|
let value = decodeURIComponent(v);
|
|
261
261
|
if (sign === true || sign?.includes(name)) {
|
|
262
|
-
if (!
|
|
262
|
+
if (!secrets)
|
|
263
263
|
throw new Error("No secret is provided to cookie plugin");
|
|
264
264
|
if (isStringKey) {
|
|
265
|
-
const temp = await unsignCookie(value,
|
|
265
|
+
const temp = await unsignCookie(value, secrets);
|
|
266
266
|
if (temp === false)
|
|
267
267
|
throw new InvalidCookieSignature(name);
|
|
268
268
|
value = temp;
|
|
269
269
|
} else {
|
|
270
270
|
let decoded = true;
|
|
271
|
-
for (let i = 0; i <
|
|
272
|
-
const temp = await unsignCookie(value,
|
|
271
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
272
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
273
273
|
if (temp !== false) {
|
|
274
274
|
decoded = true;
|
|
275
275
|
value = temp;
|
|
@@ -1596,7 +1596,7 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1596
1596
|
context.set,
|
|
1597
1597
|
cookieHeaderValue,
|
|
1598
1598
|
cookieMeta ? {
|
|
1599
|
-
|
|
1599
|
+
secrets: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
|
|
1600
1600
|
sign: cookieMeta.sign === true ? true : cookieMeta.sign !== void 0 ? typeof cookieMeta.sign === "string" ? cookieMeta.sign : cookieMeta.sign.join(",") : void 0
|
|
1601
1601
|
} : void 0
|
|
1602
1602
|
);
|
package/dist/index.d.ts
CHANGED
|
@@ -1412,5 +1412,5 @@ export { Cookie, type CookieOptions } from './cookies';
|
|
|
1412
1412
|
export { getSchemaValidator, mergeHook, mergeObjectArray, getResponseSchemaValidator, StatusMap, InvertedStatusMap } from './utils';
|
|
1413
1413
|
export { error, ParseError, NotFoundError, ValidationError, InternalServerError, InvalidCookieSignature, ERROR_CODE, ELYSIA_RESPONSE } from './error';
|
|
1414
1414
|
export type { Context, PreContext } from './context';
|
|
1415
|
-
export type { EphemeralType, CreateEden, ComposeElysiaResponse, ElysiaConfig, SingletonBase, DefinitionBase, RouteBase, Handler, ComposedHandler, InputSchema, LocalHook, MergeSchema, RouteSchema, UnwrapRoute, InternalRoute, HTTPMethod, SchemaValidator, VoidHandler, PreHandler, BodyHandler, OptionalHandler, ErrorHandler, AfterHandler, LifeCycleEvent, TraceEvent, LifeCycleStore, LifeCycleType, MaybePromise, ListenCallback, UnwrapSchema, TraceHandler, TraceProcess, TraceReporter, TraceStream, Checksum, DocumentDecoration } from './types';
|
|
1415
|
+
export type { EphemeralType, CreateEden, ComposeElysiaResponse, ElysiaConfig, SingletonBase, DefinitionBase, RouteBase, Handler, ComposedHandler, InputSchema, LocalHook, MergeSchema, RouteSchema, UnwrapRoute, InternalRoute, HTTPMethod, SchemaValidator, VoidHandler, PreHandler, BodyHandler, OptionalHandler, ErrorHandler, AfterHandler, LifeCycleEvent, TraceEvent, LifeCycleStore, LifeCycleType, MaybePromise, ListenCallback, UnwrapSchema, TraceHandler, TraceProcess, TraceReporter, TraceStream, Checksum, DocumentDecoration, InferContext, InferHandler } from './types';
|
|
1416
1416
|
export type { Static, TSchema } from '@sinclair/typebox';
|
package/dist/index.mjs
CHANGED
|
@@ -951,13 +951,13 @@ var createCookieJar = (set, store, initial) => {
|
|
|
951
951
|
});
|
|
952
952
|
};
|
|
953
953
|
var parseCookie = async (set, cookieString, {
|
|
954
|
-
|
|
954
|
+
secrets,
|
|
955
955
|
sign,
|
|
956
956
|
...initial
|
|
957
957
|
} = {}) => {
|
|
958
958
|
if (!cookieString)
|
|
959
959
|
return createCookieJar(set, {}, initial);
|
|
960
|
-
const isStringKey = typeof
|
|
960
|
+
const isStringKey = typeof secrets === "string";
|
|
961
961
|
if (sign && sign !== true && !Array.isArray(sign))
|
|
962
962
|
sign = [sign];
|
|
963
963
|
const jar = {};
|
|
@@ -965,17 +965,17 @@ var parseCookie = async (set, cookieString, {
|
|
|
965
965
|
for (const [name, v] of Object.entries(cookies)) {
|
|
966
966
|
let value = decodeURIComponent(v);
|
|
967
967
|
if (sign === true || sign?.includes(name)) {
|
|
968
|
-
if (!
|
|
968
|
+
if (!secrets)
|
|
969
969
|
throw new Error("No secret is provided to cookie plugin");
|
|
970
970
|
if (isStringKey) {
|
|
971
|
-
const temp = await unsignCookie(value,
|
|
971
|
+
const temp = await unsignCookie(value, secrets);
|
|
972
972
|
if (temp === false)
|
|
973
973
|
throw new InvalidCookieSignature(name);
|
|
974
974
|
value = temp;
|
|
975
975
|
} else {
|
|
976
976
|
let decoded = true;
|
|
977
|
-
for (let i = 0; i <
|
|
978
|
-
const temp = await unsignCookie(value,
|
|
977
|
+
for (let i = 0; i < secrets.length; i++) {
|
|
978
|
+
const temp = await unsignCookie(value, secrets[i]);
|
|
979
979
|
if (temp !== false) {
|
|
980
980
|
decoded = true;
|
|
981
981
|
value = temp;
|
|
@@ -2582,7 +2582,10 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2582
2582
|
composeResponseValidation: (name = "r") => {
|
|
2583
2583
|
const returnError = hasErrorHandler ? `throw new ValidationError('response', response[c.set.status], ${name})` : `return new ValidationError('response', response[c.set.status], ${name}).toResponse(c.set.headers)`;
|
|
2584
2584
|
let code = "\n" + injectResponse + "\n";
|
|
2585
|
-
code += `
|
|
2585
|
+
code += `let er
|
|
2586
|
+
|
|
2587
|
+
if(${name} && typeof ${name} === "object" && ELYSIA_RESPONSE in ${name})
|
|
2588
|
+
er = ${name}[ELYSIA_RESPONSE]
|
|
2586
2589
|
`;
|
|
2587
2590
|
if (normalize)
|
|
2588
2591
|
code += `
|
|
@@ -2591,7 +2594,7 @@ var composeValidationFactory = (hasErrorHandler, {
|
|
|
2591
2594
|
else if(response[er]?.Clean)
|
|
2592
2595
|
${name}.response = response[er]?.Clean(${name}.response)`;
|
|
2593
2596
|
code += `
|
|
2594
|
-
if(
|
|
2597
|
+
if(er) {
|
|
2595
2598
|
if(!(${name} instanceof Response) && response[er]?.Check(${name}.response) === false) {
|
|
2596
2599
|
if(!(response instanceof Error)) {
|
|
2597
2600
|
c.set.status = ${name}[ELYSIA_RESPONSE]
|
|
@@ -2799,7 +2802,7 @@ var composeHandler = ({
|
|
|
2799
2802
|
return `${name}: ${value},`;
|
|
2800
2803
|
};
|
|
2801
2804
|
const options = cookieMeta ? `{
|
|
2802
|
-
|
|
2805
|
+
secrets: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
|
|
2803
2806
|
(a2, b) => a2 + `'${b}',`,
|
|
2804
2807
|
""
|
|
2805
2808
|
) + "]" : "undefined"},
|
|
@@ -3828,7 +3831,7 @@ var composeErrorHandler = (app) => {
|
|
|
3828
3831
|
context.code = error.code
|
|
3829
3832
|
context.error = error
|
|
3830
3833
|
|
|
3831
|
-
if(error
|
|
3834
|
+
if(ELYSIA_RESPONSE in error) {
|
|
3832
3835
|
error.status = error[ELYSIA_RESPONSE]
|
|
3833
3836
|
error.message = error.response
|
|
3834
3837
|
}
|
|
@@ -4022,7 +4025,7 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
4022
4025
|
context.set,
|
|
4023
4026
|
cookieHeaderValue,
|
|
4024
4027
|
cookieMeta ? {
|
|
4025
|
-
|
|
4028
|
+
secrets: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
|
|
4026
4029
|
sign: cookieMeta.sign === true ? true : cookieMeta.sign !== void 0 ? typeof cookieMeta.sign === "string" ? cookieMeta.sign : cookieMeta.sign.join(",") : void 0
|
|
4027
4030
|
} : void 0
|
|
4028
4031
|
);
|
package/dist/types.d.ts
CHANGED
|
@@ -577,4 +577,12 @@ export type LifeCycleType = 'global' | 'local' | 'scoped';
|
|
|
577
577
|
export type ExcludeElysiaResponse<T> = Exclude<Awaited<T>, {
|
|
578
578
|
[ELYSIA_RESPONSE]: any;
|
|
579
579
|
}>;
|
|
580
|
+
export type InferContext<T extends Elysia<any, any, any, any, any, any, any, any>, Path extends string = T['_types']['Prefix'], Schema extends RouteSchema = T['_types']['Metadata']['schema']> = Context<MergeSchema<Schema, T['_types']['Metadata']['schema']>, T['_types']['Singleton'] & {
|
|
581
|
+
derive: T['_ephemeral']['derive'] & T['_volatile']['derive'];
|
|
582
|
+
resolve: T['_ephemeral']['resolve'] & T['_volatile']['resolve'];
|
|
583
|
+
}, T['_types']['Prefix']>;
|
|
584
|
+
export type InferHandler<T extends Elysia<any, any, any, any, any, any, any, any>, Path extends string = T['_types']['Prefix'], Schema extends RouteSchema = T['_types']['Metadata']['schema']> = InlineHandler<MergeSchema<Schema, T['_types']['Metadata']['schema']>, T['_types']['Singleton'] & {
|
|
585
|
+
derive: T['_ephemeral']['derive'] & T['_volatile']['derive'];
|
|
586
|
+
resolve: T['_ephemeral']['resolve'] & T['_volatile']['resolve'];
|
|
587
|
+
}, T['_types']['Prefix']>;
|
|
580
588
|
export {};
|