elysia 1.0.21 → 1.0.23

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/cjs/utils.js CHANGED
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/utils.ts
31
31
  var utils_exports = {};
32
32
  __export(utils_exports, {
33
+ ELYSIA_FORM_DATA: () => ELYSIA_FORM_DATA,
33
34
  InvertedStatusMap: () => InvertedStatusMap,
34
35
  PromiseGroup: () => PromiseGroup,
35
36
  StatusMap: () => StatusMap,
@@ -39,6 +40,7 @@ __export(utils_exports, {
39
40
  createMacroManager: () => createMacroManager,
40
41
  filterGlobalHook: () => filterGlobalHook,
41
42
  fnToContainer: () => fnToContainer,
43
+ form: () => form,
42
44
  getCookieValidator: () => getCookieValidator,
43
45
  getResponseSchemaValidator: () => getResponseSchemaValidator,
44
46
  getSchemaValidator: () => getSchemaValidator,
@@ -387,7 +389,7 @@ var validateFile = (options, value) => {
387
389
  }
388
390
  return true;
389
391
  };
390
- var File = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
392
+ var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
391
393
  var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
392
394
  "Files",
393
395
  (options, value) => {
@@ -533,7 +535,7 @@ var ElysiaType = {
533
535
  return JSON.stringify(value);
534
536
  });
535
537
  },
536
- File,
538
+ File: File2,
537
539
  Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
538
540
  if (Array.isArray(value))
539
541
  return value;
@@ -732,7 +734,7 @@ var getSchemaValidator = (s, {
732
734
  models = {},
733
735
  dynamic = false,
734
736
  normalize = false,
735
- additionalProperties = normalize
737
+ additionalProperties = false
736
738
  } = {}) => {
737
739
  if (!s)
738
740
  return void 0;
@@ -753,7 +755,7 @@ var getSchemaValidator = (s, {
753
755
  Errors: (value) => import_value4.Value.Errors(schema, value),
754
756
  Code: () => ""
755
757
  };
756
- if (normalize && schema.additionalProperties === true)
758
+ if (normalize && schema.additionalProperties === false)
757
759
  validator.Clean = cleaner;
758
760
  if (schema.config) {
759
761
  validator.config = schema.config;
@@ -775,7 +777,7 @@ var getResponseSchemaValidator = (s, {
775
777
  models = {},
776
778
  dynamic = false,
777
779
  normalize = false,
778
- additionalProperties = normalize
780
+ additionalProperties = false
779
781
  }) => {
780
782
  if (!s)
781
783
  return;
@@ -796,7 +798,7 @@ var getResponseSchemaValidator = (s, {
796
798
  Code: () => ""
797
799
  };
798
800
  const compiledValidator = import_compiler2.TypeCompiler.Compile(schema, references);
799
- if (normalize && schema.additionalProperties === true)
801
+ if (normalize && schema.additionalProperties === false)
800
802
  compiledValidator.Clean = cleaner;
801
803
  return compiledValidator;
802
804
  };
@@ -1283,14 +1285,28 @@ var cloneInference = (inference) => ({
1283
1285
  set: inference.trace.set
1284
1286
  }
1285
1287
  });
1286
- var redirect = (url, status = 301) => new Response(null, {
1287
- status,
1288
- headers: {
1289
- Location: url
1288
+ var redirect = (url, status = 301) => Response.redirect(url, status);
1289
+ var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
1290
+ var form = (items) => {
1291
+ const formData = new FormData();
1292
+ for (const [key, value] of Object.entries(items)) {
1293
+ if (Array.isArray(value)) {
1294
+ for (const v of value) {
1295
+ if (value instanceof File)
1296
+ formData.append(key, value, value.name);
1297
+ formData.append(key, v);
1298
+ }
1299
+ continue;
1300
+ }
1301
+ if (value instanceof File)
1302
+ formData.append(key, value, value.name);
1303
+ formData.append(key, value);
1290
1304
  }
1291
- });
1305
+ return formData;
1306
+ };
1292
1307
  // Annotate the CommonJS export names for ESM import in node:
1293
1308
  0 && (module.exports = {
1309
+ ELYSIA_FORM_DATA,
1294
1310
  InvertedStatusMap,
1295
1311
  PromiseGroup,
1296
1312
  StatusMap,
@@ -1300,6 +1316,7 @@ var redirect = (url, status = 301) => new Response(null, {
1300
1316
  createMacroManager,
1301
1317
  filterGlobalHook,
1302
1318
  fnToContainer,
1319
+ form,
1303
1320
  getCookieValidator,
1304
1321
  getResponseSchemaValidator,
1305
1322
  getSchemaValidator,
@@ -269,7 +269,7 @@ var validateFile = (options, value) => {
269
269
  }
270
270
  return true;
271
271
  };
272
- var File = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
272
+ var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
273
273
  var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
274
274
  "Files",
275
275
  (options, value) => {
@@ -415,7 +415,7 @@ var ElysiaType = {
415
415
  return JSON.stringify(value);
416
416
  });
417
417
  },
418
- File,
418
+ File: File2,
419
419
  Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
420
420
  if (Array.isArray(value))
421
421
  return value;
@@ -577,6 +577,7 @@ var InvertedStatusMap = Object.fromEntries(
577
577
  Object.entries(StatusMap).map(([k, v]) => [v, k])
578
578
  );
579
579
  var encoder = new TextEncoder();
580
+ var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
580
581
 
581
582
  // src/error.ts
582
583
  var env = typeof Bun !== "undefined" ? Bun.env : typeof process !== "undefined" ? process?.env : void 0;
package/dist/compose.mjs CHANGED
@@ -45,8 +45,10 @@ var separateFunction = (code) => {
45
45
  }
46
46
  const start = code.indexOf("(");
47
47
  if (start !== -1) {
48
- const [parameter, body] = code.split("\n", 2);
48
+ const sep = code.indexOf("\n", 2);
49
+ const parameter = code.slice(0, sep);
49
50
  const end = parameter.lastIndexOf(")") + 1;
51
+ const body = code.slice(sep + 1);
50
52
  return [
51
53
  parameter.slice(start, end),
52
54
  "{" + body,
@@ -302,6 +304,8 @@ var validateInferencedQueries = (queries) => {
302
304
  return false;
303
305
  if (query.indexOf(" ") !== -1)
304
306
  return false;
307
+ if (query.indexOf("(") !== -1)
308
+ return false;
305
309
  }
306
310
  return true;
307
311
  };
@@ -693,6 +697,12 @@ var parseCookie = async (set, cookieString, {
693
697
  throw new InvalidCookieSignature(name);
694
698
  }
695
699
  }
700
+ if (value == null) {
701
+ jar[name] = {
702
+ value: v
703
+ };
704
+ continue;
705
+ }
696
706
  const start = value.charCodeAt(0);
697
707
  if (start === 123 || start === 91)
698
708
  try {
@@ -833,9 +843,21 @@ var mapResponse = (response, set, request) => {
833
843
  return new Response(response, set);
834
844
  case "Blob":
835
845
  return handleFile(response, set);
836
- case "Object":
837
846
  case "Array":
838
847
  return Response.json(response, set);
848
+ case "Object":
849
+ for (const value in Object.values(response)) {
850
+ switch (value?.constructor?.name) {
851
+ case "Blob":
852
+ case "File":
853
+ case "ArrayBuffer":
854
+ case "FileRef":
855
+ return new Response(form(response));
856
+ default:
857
+ break;
858
+ }
859
+ }
860
+ return Response.json(response, set);
839
861
  case "ReadableStream":
840
862
  if (!set.headers["content-type"]?.startsWith(
841
863
  "text/event-stream"
@@ -909,6 +931,8 @@ var mapResponse = (response, set, request) => {
909
931
  if (response instanceof Cookie)
910
932
  return new Response(response.value, set);
911
933
  return new Response(response?.toString(), set);
934
+ case "FormData":
935
+ return new Response(response, set);
912
936
  default:
913
937
  if (response instanceof Response) {
914
938
  let isCookieSet2 = false;
@@ -949,6 +973,8 @@ var mapResponse = (response, set, request) => {
949
973
  return response.then((x) => mapResponse(x, set));
950
974
  if (response instanceof Error)
951
975
  return errorToResponse(response, set);
976
+ if ("toResponse" in response)
977
+ return mapResponse(response.toResponse(), set);
952
978
  if ("charCodeAt" in response) {
953
979
  const code = response.charCodeAt(0);
954
980
  if (code === 123 || code === 91) {
@@ -968,13 +994,24 @@ var mapResponse = (response, set, request) => {
968
994
  return new Response(response);
969
995
  case "Blob":
970
996
  return handleFile(response, set);
971
- case "Object":
972
997
  case "Array":
973
- return new Response(JSON.stringify(response), {
974
- headers: {
975
- "content-type": "application/json"
998
+ return Response.json(response);
999
+ case "Object":
1000
+ for (const value in Object.values(response)) {
1001
+ switch (value?.constructor?.name) {
1002
+ case "Blob":
1003
+ case "File":
1004
+ case "ArrayBuffer":
1005
+ case "FileRef":
1006
+ return new Response(
1007
+ form(response),
1008
+ set
1009
+ );
1010
+ default:
1011
+ break;
976
1012
  }
977
- });
1013
+ }
1014
+ return Response.json(response, set);
978
1015
  case "ReadableStream":
979
1016
  request?.signal.addEventListener(
980
1017
  "abort",
@@ -1021,6 +1058,8 @@ var mapResponse = (response, set, request) => {
1021
1058
  if (response instanceof Cookie)
1022
1059
  return new Response(response.value, set);
1023
1060
  return new Response(response?.toString(), set);
1061
+ case "FormData":
1062
+ return new Response(response, set);
1024
1063
  default:
1025
1064
  if (response instanceof Response)
1026
1065
  return new Response(response.body, {
@@ -1032,6 +1071,8 @@ var mapResponse = (response, set, request) => {
1032
1071
  return response.then((x) => mapResponse(x, set));
1033
1072
  if (response instanceof Error)
1034
1073
  return errorToResponse(response, set);
1074
+ if ("toResponse" in response)
1075
+ return mapResponse(response.toResponse(), set);
1035
1076
  if ("charCodeAt" in response) {
1036
1077
  const code = response.charCodeAt(0);
1037
1078
  if (code === 123 || code === 91) {
@@ -1075,9 +1116,24 @@ var mapEarlyResponse = (response, set, request) => {
1075
1116
  return new Response(response, set);
1076
1117
  case "Blob":
1077
1118
  return handleFile(response, set);
1078
- case "Object":
1079
1119
  case "Array":
1080
1120
  return Response.json(response, set);
1121
+ case "Object":
1122
+ for (const value in Object.values(response)) {
1123
+ switch (value?.constructor?.name) {
1124
+ case "Blob":
1125
+ case "File":
1126
+ case "ArrayBuffer":
1127
+ case "FileRef":
1128
+ return new Response(
1129
+ form(response),
1130
+ set
1131
+ );
1132
+ default:
1133
+ break;
1134
+ }
1135
+ }
1136
+ return Response.json(response, set);
1081
1137
  case "ReadableStream":
1082
1138
  if (!set.headers["content-type"]?.startsWith(
1083
1139
  "text/event-stream"
@@ -1149,6 +1205,8 @@ var mapEarlyResponse = (response, set, request) => {
1149
1205
  response.toString(),
1150
1206
  set
1151
1207
  );
1208
+ case "FormData":
1209
+ return new Response(response);
1152
1210
  case "Cookie":
1153
1211
  if (response instanceof Cookie)
1154
1212
  return new Response(response.value, set);
@@ -1189,6 +1247,8 @@ var mapEarlyResponse = (response, set, request) => {
1189
1247
  return response.then((x) => mapEarlyResponse(x, set));
1190
1248
  if (response instanceof Error)
1191
1249
  return errorToResponse(response, set);
1250
+ if ("toResponse" in response)
1251
+ return mapEarlyResponse(response.toResponse(), set);
1192
1252
  if ("charCodeAt" in response) {
1193
1253
  const code = response.charCodeAt(0);
1194
1254
  if (code === 123 || code === 91) {
@@ -1208,13 +1268,24 @@ var mapEarlyResponse = (response, set, request) => {
1208
1268
  return new Response(response);
1209
1269
  case "Blob":
1210
1270
  return handleFile(response, set);
1211
- case "Object":
1212
1271
  case "Array":
1213
- return new Response(JSON.stringify(response), {
1214
- headers: {
1215
- "content-type": "application/json"
1272
+ return Response.json(response);
1273
+ case "Object":
1274
+ for (const value in Object.values(response)) {
1275
+ switch (value?.constructor?.name) {
1276
+ case "Blob":
1277
+ case "File":
1278
+ case "ArrayBuffer":
1279
+ case "FileRef":
1280
+ return new Response(
1281
+ form(response),
1282
+ set
1283
+ );
1284
+ default:
1285
+ break;
1216
1286
  }
1217
- });
1287
+ }
1288
+ return Response.json(response, set);
1218
1289
  case "ReadableStream":
1219
1290
  request?.signal.addEventListener(
1220
1291
  "abort",
@@ -1260,6 +1331,8 @@ var mapEarlyResponse = (response, set, request) => {
1260
1331
  if (response instanceof Cookie)
1261
1332
  return new Response(response.value, set);
1262
1333
  return new Response(response?.toString(), set);
1334
+ case "FormData":
1335
+ return new Response(response);
1263
1336
  default:
1264
1337
  if (response instanceof Response)
1265
1338
  return new Response(response.body, {
@@ -1271,6 +1344,8 @@ var mapEarlyResponse = (response, set, request) => {
1271
1344
  return response.then((x) => mapEarlyResponse(x, set));
1272
1345
  if (response instanceof Error)
1273
1346
  return errorToResponse(response, set);
1347
+ if ("toResponse" in response)
1348
+ return mapEarlyResponse(response.toResponse(), set);
1274
1349
  if ("charCodeAt" in response) {
1275
1350
  const code = response.charCodeAt(0);
1276
1351
  if (code === 123 || code === 91) {
@@ -1299,13 +1374,23 @@ var mapCompactResponse = (response, request) => {
1299
1374
  return new Response(response);
1300
1375
  case "Blob":
1301
1376
  return handleFile(response);
1302
- case "Object":
1303
1377
  case "Array":
1304
- return new Response(JSON.stringify(response), {
1305
- headers: {
1306
- "content-type": "application/json"
1307
- }
1308
- });
1378
+ return Response.json(response);
1379
+ case "Object":
1380
+ form:
1381
+ for (const value of Object.values(response))
1382
+ switch (value?.constructor?.name) {
1383
+ case "Blob":
1384
+ case "File":
1385
+ case "ArrayBuffer":
1386
+ case "FileRef":
1387
+ return new Response(form(response));
1388
+ case "Object":
1389
+ break form;
1390
+ default:
1391
+ break;
1392
+ }
1393
+ return Response.json(response);
1309
1394
  case "ReadableStream":
1310
1395
  request?.signal.addEventListener(
1311
1396
  "abort",
@@ -1345,6 +1430,8 @@ var mapCompactResponse = (response, request) => {
1345
1430
  case "Number":
1346
1431
  case "Boolean":
1347
1432
  return new Response(response.toString());
1433
+ case "FormData":
1434
+ return new Response(response);
1348
1435
  default:
1349
1436
  if (response instanceof Response)
1350
1437
  return new Response(response.body, {
@@ -1356,6 +1443,8 @@ var mapCompactResponse = (response, request) => {
1356
1443
  return response.then(mapCompactResponse);
1357
1444
  if (response instanceof Error)
1358
1445
  return errorToResponse(response);
1446
+ if ("toResponse" in response)
1447
+ return mapCompactResponse(response.toResponse());
1359
1448
  if ("charCodeAt" in response) {
1360
1449
  const code = response.charCodeAt(0);
1361
1450
  if (code === 123 || code === 91) {
@@ -1594,7 +1683,7 @@ var validateFile = (options, value) => {
1594
1683
  }
1595
1684
  return true;
1596
1685
  };
1597
- var File = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
1686
+ var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
1598
1687
  var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
1599
1688
  "Files",
1600
1689
  (options, value) => {
@@ -1740,7 +1829,7 @@ var ElysiaType = {
1740
1829
  return JSON.stringify(value);
1741
1830
  });
1742
1831
  },
1743
- File,
1832
+ File: File2,
1744
1833
  Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
1745
1834
  if (Array.isArray(value))
1746
1835
  return value;
@@ -1867,7 +1956,7 @@ var getSchemaValidator = (s, {
1867
1956
  models = {},
1868
1957
  dynamic = false,
1869
1958
  normalize = false,
1870
- additionalProperties = normalize
1959
+ additionalProperties = false
1871
1960
  } = {}) => {
1872
1961
  if (!s)
1873
1962
  return void 0;
@@ -1888,7 +1977,7 @@ var getSchemaValidator = (s, {
1888
1977
  Errors: (value) => Value3.Errors(schema, value),
1889
1978
  Code: () => ""
1890
1979
  };
1891
- if (normalize && schema.additionalProperties === true)
1980
+ if (normalize && schema.additionalProperties === false)
1892
1981
  validator.Clean = cleaner;
1893
1982
  if (schema.config) {
1894
1983
  validator.config = schema.config;
@@ -2065,12 +2154,25 @@ var lifeCycleToFn = (a) => {
2065
2154
  stop: a.stop?.map((x) => x.fn)
2066
2155
  };
2067
2156
  };
2068
- var redirect = (url, status = 301) => new Response(null, {
2069
- status,
2070
- headers: {
2071
- Location: url
2157
+ var redirect = (url, status = 301) => Response.redirect(url, status);
2158
+ var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
2159
+ var form = (items) => {
2160
+ const formData = new FormData();
2161
+ for (const [key, value] of Object.entries(items)) {
2162
+ if (Array.isArray(value)) {
2163
+ for (const v of value) {
2164
+ if (value instanceof File)
2165
+ formData.append(key, value, value.name);
2166
+ formData.append(key, v);
2167
+ }
2168
+ continue;
2169
+ }
2170
+ if (value instanceof File)
2171
+ formData.append(key, value, value.name);
2172
+ formData.append(key, value);
2072
2173
  }
2073
- });
2174
+ return formData;
2175
+ };
2074
2176
 
2075
2177
  // src/compose.ts
2076
2178
  var headersHasToJSON = new Headers().toJSON;
@@ -2660,7 +2762,7 @@ const traceDone = Promise.all([`;
2660
2762
  if (validator) {
2661
2763
  fnLiteral += "\n";
2662
2764
  if (validator.headers) {
2663
- if (hasProperty("default", validator.headers.params))
2765
+ if (hasProperty("default", validator.headers.schema))
2664
2766
  for (const [key, value] of Object.entries(
2665
2767
  Value4.Default(
2666
2768
  // @ts-ignore
@@ -2668,7 +2770,7 @@ const traceDone = Promise.all([`;
2668
2770
  {}
2669
2771
  )
2670
2772
  )) {
2671
- const parsed = typeof value === "object" ? JSON.stringify(value) : `'${value}'`;
2773
+ const parsed = typeof value === "object" ? JSON.stringify(value) : typeof value === "string" ? `'${value}'` : value;
2672
2774
  if (parsed)
2673
2775
  fnLiteral += `c.headers['${key}'] ??= ${parsed}
2674
2776
  `;
@@ -2690,7 +2792,7 @@ c.headers = headers.Decode(c.headers)
2690
2792
  {}
2691
2793
  )
2692
2794
  )) {
2693
- const parsed = typeof value === "object" ? JSON.stringify(value) : `'${value}'`;
2795
+ const parsed = typeof value === "object" ? JSON.stringify(value) : typeof value === "string" ? `'${value}'` : value;
2694
2796
  if (parsed)
2695
2797
  fnLiteral += `c.params['${key}'] ??= ${parsed}
2696
2798
  `;
@@ -2714,11 +2816,26 @@ c.params = params.Decode(c.params)
2714
2816
  {}
2715
2817
  )
2716
2818
  )) {
2717
- const parsed = typeof value === "object" ? JSON.stringify(value) : `'${value}'`;
2819
+ const parsed = typeof value === "object" ? JSON.stringify(value) : typeof value === "string" ? `'${value}'` : value;
2718
2820
  if (parsed)
2719
2821
  fnLiteral += `c.query['${key}'] ??= ${parsed}
2720
2822
  `;
2721
2823
  }
2824
+ for (const [key, value] of Object.entries(
2825
+ // @ts-ignore
2826
+ validator.query.schema?.properties
2827
+ )) {
2828
+ const { type, anyOf } = value;
2829
+ if (type === "object" || type === "array") {
2830
+ fnLiteral += `c.query['${key}'] = JSON.parse(c.query['${key}'])
2831
+ `;
2832
+ continue;
2833
+ }
2834
+ if (anyOf) {
2835
+ fnLiteral += `if(typeof c.query['${key}'] === "object") c.query['${key}'] = JSON.parse(c.query['${key}'])
2836
+ `;
2837
+ }
2838
+ }
2722
2839
  fnLiteral += `if(query.Check(c.query) === false) {
2723
2840
  ${composeValidation("query")}
2724
2841
  }`;
@@ -2730,21 +2847,32 @@ c.query = query.Decode(Object.assign({}, c.query))
2730
2847
  if (validator.body) {
2731
2848
  if (normalize)
2732
2849
  fnLiteral += "c.body = body.Clean(c.body);\n";
2733
- if (hasProperty("default", validator.body.schema))
2850
+ if (hasProperty("default", validator.body.schema)) {
2734
2851
  fnLiteral += `if(body.Check(c.body) === false) {
2735
- c.body = Object.assign(${JSON.stringify(
2852
+ if (typeof c.body === 'object') {
2853
+ c.body = Object.assign(${JSON.stringify(
2736
2854
  Value4.Default(
2737
2855
  // @ts-ignore
2738
2856
  validator.body.schema,
2739
- null
2857
+ {}
2740
2858
  ) ?? {}
2741
2859
  )}, c.body)
2742
-
2743
- if(body.Check(c.query) === false) {
2860
+ } else {`;
2861
+ const defaultValue = Value4.Default(
2862
+ // @ts-ignore
2863
+ validator.body.schema,
2864
+ void 0
2865
+ );
2866
+ if (typeof defaultValue === "string")
2867
+ fnLiteral += `c.body = '${defaultValue}'`;
2868
+ else
2869
+ fnLiteral += `c.body = ${defaultValue}`;
2870
+ fnLiteral += `}
2871
+ if(body.Check(c.body) === false) {
2744
2872
  ${composeValidation("body")}
2745
2873
  }
2746
2874
  }`;
2747
- else
2875
+ } else
2748
2876
  fnLiteral += `if(body.Check(c.body) === false) {
2749
2877
  ${composeValidation("body")}
2750
2878
  }`;
@@ -2753,7 +2881,11 @@ c.query = query.Decode(Object.assign({}, c.query))
2753
2881
  c.body = body.Decode(c.body)
2754
2882
  `;
2755
2883
  }
2756
- if (isNotEmpty(cookieValidator?.schema?.properties ?? cookieValidator?.schema?.schema ?? {})) {
2884
+ if (isNotEmpty(
2885
+ // @ts-ignore
2886
+ cookieValidator?.schema?.properties ?? // @ts-ignore
2887
+ cookieValidator?.schema?.schema ?? {}
2888
+ )) {
2757
2889
  fnLiteral += `const cookieValue = {}
2758
2890
  for(const [key, value] of Object.entries(c.cookie))
2759
2891
  cookieValue[key] = value.value
package/dist/cookies.mjs CHANGED
@@ -336,7 +336,7 @@ var validateFile = (options, value) => {
336
336
  }
337
337
  return true;
338
338
  };
339
- var File = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
339
+ var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
340
340
  var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
341
341
  "Files",
342
342
  (options, value) => {
@@ -482,7 +482,7 @@ var ElysiaType = {
482
482
  return JSON.stringify(value);
483
483
  });
484
484
  },
485
- File,
485
+ File: File2,
486
486
  Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
487
487
  if (Array.isArray(value))
488
488
  return value;
@@ -689,6 +689,7 @@ var isNumericString = (message) => {
689
689
  }
690
690
  return false;
691
691
  };
692
+ var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
692
693
 
693
694
  // src/cookies.ts
694
695
  var Cookie = class {
@@ -861,6 +862,12 @@ var parseCookie = async (set, cookieString, {
861
862
  throw new InvalidCookieSignature(name);
862
863
  }
863
864
  }
865
+ if (value == null) {
866
+ jar[name] = {
867
+ value: v
868
+ };
869
+ continue;
870
+ }
864
871
  const start = value.charCodeAt(0);
865
872
  if (start === 123 || start === 91)
866
873
  try {