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.
@@ -684,13 +684,13 @@ var createCookieJar = (set, store, initial) => {
684
684
  });
685
685
  };
686
686
  var parseCookie = async (set, cookieString, {
687
- secret,
687
+ secrets,
688
688
  sign,
689
689
  ...initial
690
690
  } = {}) => {
691
691
  if (!cookieString)
692
692
  return createCookieJar(set, {}, initial);
693
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
711
- const temp = await unsignCookie(value, secret[i]);
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 += `const er = ${name}[ELYSIA_RESPONSE]
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(typeof ${name} === "object" && ELYSIA_RESPONSE in ${name}) {
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
- secret: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
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[ELYSIA_RESPONSE]) {
3339
+ if(ELYSIA_RESPONSE in error) {
3337
3340
  error.status = error[ELYSIA_RESPONSE]
3338
3341
  error.message = error.response
3339
3342
  }
@@ -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[];
@@ -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, { secret, sign, ...initial }?: CookieOptions & {
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 {};
@@ -837,13 +837,13 @@ var createCookieJar = (set, store, initial) => {
837
837
  });
838
838
  };
839
839
  var parseCookie = async (set, cookieString, {
840
- secret,
840
+ secrets,
841
841
  sign,
842
842
  ...initial
843
843
  } = {}) => {
844
844
  if (!cookieString)
845
845
  return createCookieJar(set, {}, initial);
846
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
864
- const temp = await unsignCookie(value, secret[i]);
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
- secret,
285
+ secrets,
286
286
  sign,
287
287
  ...initial
288
288
  } = {}) => {
289
289
  if (!cookieString)
290
290
  return createCookieJar(set, {}, initial);
291
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
309
- const temp = await unsignCookie(value, secret[i]);
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
- secret: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
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
  );
@@ -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
- secret,
1010
+ secrets,
1011
1011
  sign,
1012
1012
  ...initial
1013
1013
  } = {}) => {
1014
1014
  if (!cookieString)
1015
1015
  return createCookieJar(set, {}, initial);
1016
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
1034
- const temp = await unsignCookie(value, secret[i]);
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 += `const er = ${name}[ELYSIA_RESPONSE]
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(typeof ${name} === "object" && ELYSIA_RESPONSE in ${name}) {
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
- secret: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
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[ELYSIA_RESPONSE]) {
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
- secret: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
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
  );
@@ -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
- secret,
645
+ secrets,
646
646
  sign,
647
647
  ...initial
648
648
  } = {}) => {
649
649
  if (!cookieString)
650
650
  return createCookieJar(set, {}, initial);
651
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
669
- const temp = await unsignCookie(value, secret[i]);
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 += `const er = ${name}[ELYSIA_RESPONSE]
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(typeof ${name} === "object" && ELYSIA_RESPONSE in ${name}) {
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
- secret: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
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[ELYSIA_RESPONSE]) {
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, { secret, sign, ...initial }?: CookieOptions & {
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
- secret,
814
+ secrets,
815
815
  sign,
816
816
  ...initial
817
817
  } = {}) => {
818
818
  if (!cookieString)
819
819
  return createCookieJar(set, {}, initial);
820
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
838
- const temp = await unsignCookie(value, secret[i]);
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;
@@ -245,13 +245,13 @@ var createCookieJar = (set, store, initial) => {
245
245
  });
246
246
  };
247
247
  var parseCookie = async (set, cookieString, {
248
- secret,
248
+ secrets,
249
249
  sign,
250
250
  ...initial
251
251
  } = {}) => {
252
252
  if (!cookieString)
253
253
  return createCookieJar(set, {}, initial);
254
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
272
- const temp = await unsignCookie(value, secret[i]);
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
- secret: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
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
- secret,
954
+ secrets,
955
955
  sign,
956
956
  ...initial
957
957
  } = {}) => {
958
958
  if (!cookieString)
959
959
  return createCookieJar(set, {}, initial);
960
- const isStringKey = typeof secret === "string";
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 (!secret)
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, secret);
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 < secret.length; i++) {
978
- const temp = await unsignCookie(value, secret[i]);
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 += `const er = ${name}[ELYSIA_RESPONSE]
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(typeof ${name} === "object" && ELYSIA_RESPONSE in ${name}) {
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
- secret: ${cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? `'${cookieMeta.secrets}'` : "[" + cookieMeta.secrets.reduce(
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[ELYSIA_RESPONSE]) {
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
- secret: cookieMeta.secrets !== void 0 ? typeof cookieMeta.secrets === "string" ? cookieMeta.secrets : cookieMeta.secrets.join(",") : void 0,
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 {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "elysia",
3
3
  "description": "Ergonomic Framework for Human",
4
- "version": "1.0.11",
4
+ "version": "1.0.13",
5
5
  "author": {
6
6
  "name": "saltyAom",
7
7
  "url": "https://github.com/SaltyAom",