elysia 2.0.0-beta.2 → 2.0.0-beta.4

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.
Files changed (175) hide show
  1. package/dist/adapter/bun/index.d.ts +1 -1
  2. package/dist/adapter/bun/index.js +320 -56
  3. package/dist/adapter/bun/index.mjs +321 -57
  4. package/dist/adapter/utils.js +51 -30
  5. package/dist/adapter/utils.mjs +52 -31
  6. package/dist/adapter/web-standard/handler.js +5 -2
  7. package/dist/adapter/web-standard/handler.mjs +5 -2
  8. package/dist/base.d.ts +18 -7
  9. package/dist/base.js +213 -101
  10. package/dist/base.mjs +215 -103
  11. package/dist/compile/aot-capture.js +1 -1
  12. package/dist/compile/aot-capture.mjs +1 -1
  13. package/dist/compile/aot.d.ts +5 -4
  14. package/dist/compile/aot.js +17 -9
  15. package/dist/compile/aot.mjs +18 -9
  16. package/dist/compile/handler/descriptor.js +1 -1
  17. package/dist/compile/handler/descriptor.mjs +1 -1
  18. package/dist/compile/handler/frozen-validator.d.ts +4 -1
  19. package/dist/compile/handler/frozen-validator.js +8 -3
  20. package/dist/compile/handler/frozen-validator.mjs +5 -3
  21. package/dist/compile/handler/index.d.ts +2 -2
  22. package/dist/compile/handler/index.js +8 -6
  23. package/dist/compile/handler/index.mjs +8 -6
  24. package/dist/compile/handler/reconstruct.d.ts +1 -1
  25. package/dist/compile/handler/reconstruct.js +4 -3
  26. package/dist/compile/handler/reconstruct.mjs +4 -3
  27. package/dist/compile/handler/utils.js +2 -2
  28. package/dist/compile/handler/utils.mjs +3 -3
  29. package/dist/compile/jit-probe.d.ts +2 -2
  30. package/dist/context.d.ts +1 -1
  31. package/dist/context.js +8 -5
  32. package/dist/context.mjs +8 -5
  33. package/dist/cookie/config.d.ts +1 -0
  34. package/dist/cookie/config.js +3 -2
  35. package/dist/cookie/config.mjs +3 -2
  36. package/dist/cookie/cookie.d.ts +1 -0
  37. package/dist/cookie/cookie.js +6 -5
  38. package/dist/cookie/cookie.mjs +6 -5
  39. package/dist/cookie/crypto.d.ts +8 -7
  40. package/dist/cookie/crypto.js +38 -31
  41. package/dist/cookie/crypto.mjs +38 -32
  42. package/dist/cookie/error.js +1 -2
  43. package/dist/cookie/error.mjs +1 -2
  44. package/dist/cookie/lib.js +5 -1
  45. package/dist/cookie/lib.mjs +5 -1
  46. package/dist/cookie/serialize.js +1 -1
  47. package/dist/cookie/serialize.mjs +1 -1
  48. package/dist/cookie/types.d.ts +10 -0
  49. package/dist/cookie/utils.js +28 -14
  50. package/dist/cookie/utils.mjs +29 -15
  51. package/dist/handler/error.d.ts +23 -12
  52. package/dist/handler/error.js +24 -21
  53. package/dist/handler/error.mjs +20 -21
  54. package/dist/handler/fetch.js +6 -7
  55. package/dist/handler/fetch.mjs +7 -8
  56. package/dist/handler/utils.js +4 -2
  57. package/dist/handler/utils.mjs +5 -3
  58. package/dist/index.js +1 -8
  59. package/dist/package.js +1 -1
  60. package/dist/package.mjs +1 -1
  61. package/dist/plugin/aot/core.d.ts +33 -6
  62. package/dist/plugin/aot/core.js +120 -40
  63. package/dist/plugin/aot/core.mjs +121 -43
  64. package/dist/plugin/aot/esbuild.js +8 -2
  65. package/dist/plugin/aot/esbuild.mjs +9 -3
  66. package/dist/plugin/aot/hooks.d.ts +2 -1
  67. package/dist/plugin/aot/hooks.js +3 -3
  68. package/dist/plugin/aot/hooks.mjs +4 -4
  69. package/dist/plugin/aot/source.d.ts +4 -1
  70. package/dist/plugin/aot/source.js +21 -14
  71. package/dist/plugin/aot/source.mjs +21 -14
  72. package/dist/plugin/aot/worker.js +2 -2
  73. package/dist/plugin/aot/worker.mjs +2 -2
  74. package/dist/route-table.d.ts +3 -0
  75. package/dist/route-table.js +16 -11
  76. package/dist/route-table.mjs +16 -11
  77. package/dist/schema-snapshot.js +17 -22
  78. package/dist/schema-snapshot.mjs +17 -22
  79. package/dist/type/bridge-live.d.ts +1 -1
  80. package/dist/type/bridge-live.js +2 -2
  81. package/dist/type/bridge-live.mjs +2 -2
  82. package/dist/type/bridge.d.ts +1 -1
  83. package/dist/type/coerce-plan.js +3 -4
  84. package/dist/type/coerce-plan.mjs +1 -1
  85. package/dist/type/coerce.d.ts +1 -1
  86. package/dist/type/compat.d.ts +3 -0
  87. package/dist/type/compat.js +32 -14
  88. package/dist/type/compat.mjs +27 -8
  89. package/dist/type/constants.d.ts +1 -1
  90. package/dist/type/elysia/array-buffer.js +2 -3
  91. package/dist/type/elysia/array-buffer.mjs +1 -1
  92. package/dist/type/elysia/array-string.js +7 -4
  93. package/dist/type/elysia/array-string.mjs +9 -5
  94. package/dist/type/elysia/boolean-string.js +2 -3
  95. package/dist/type/elysia/boolean-string.mjs +1 -1
  96. package/dist/type/elysia/boolean.js +4 -3
  97. package/dist/type/elysia/boolean.mjs +4 -2
  98. package/dist/type/elysia/cookie.js +2 -1
  99. package/dist/type/elysia/cookie.mjs +2 -1
  100. package/dist/type/elysia/date.js +7 -7
  101. package/dist/type/elysia/date.mjs +3 -2
  102. package/dist/type/elysia/file-type.d.ts +9 -2
  103. package/dist/type/elysia/file-type.js +16 -1
  104. package/dist/type/elysia/file-type.mjs +16 -2
  105. package/dist/type/elysia/file.js +8 -4
  106. package/dist/type/elysia/file.mjs +8 -3
  107. package/dist/type/elysia/files.js +6 -4
  108. package/dist/type/elysia/files.mjs +5 -2
  109. package/dist/type/elysia/form.js +2 -3
  110. package/dist/type/elysia/form.mjs +3 -3
  111. package/dist/type/elysia/integer-string.js +4 -5
  112. package/dist/type/elysia/integer-string.mjs +3 -3
  113. package/dist/type/elysia/integer.js +4 -3
  114. package/dist/type/elysia/integer.mjs +4 -2
  115. package/dist/type/elysia/maybe-empty.js +3 -4
  116. package/dist/type/elysia/maybe-empty.mjs +1 -1
  117. package/dist/type/elysia/nullable.js +2 -3
  118. package/dist/type/elysia/nullable.mjs +1 -1
  119. package/dist/type/elysia/number.js +4 -3
  120. package/dist/type/elysia/number.mjs +4 -2
  121. package/dist/type/elysia/numeric-enum.js +2 -3
  122. package/dist/type/elysia/numeric-enum.mjs +1 -1
  123. package/dist/type/elysia/numeric.js +5 -5
  124. package/dist/type/elysia/numeric.mjs +3 -2
  125. package/dist/type/elysia/object-string.js +7 -4
  126. package/dist/type/elysia/object-string.mjs +9 -5
  127. package/dist/type/elysia/string.js +4 -3
  128. package/dist/type/elysia/string.mjs +4 -2
  129. package/dist/type/elysia/uint8-array.js +2 -3
  130. package/dist/type/elysia/uint8-array.mjs +1 -1
  131. package/dist/type/elysia/union-enum.js +2 -3
  132. package/dist/type/elysia/union-enum.mjs +1 -1
  133. package/dist/type/elysia/utils.js +2 -3
  134. package/dist/type/elysia/utils.mjs +1 -1
  135. package/dist/type/exports.js +10 -1
  136. package/dist/type/exports.mjs +7 -0
  137. package/dist/type/index.d.ts +9 -1
  138. package/dist/type/index.js +41 -13
  139. package/dist/type/index.mjs +44 -9
  140. package/dist/type/typebox-type-live.d.ts +9 -0
  141. package/dist/type/typebox-type-live.js +31 -0
  142. package/dist/type/typebox-type-live.mjs +16 -0
  143. package/dist/type/typebox-type.d.ts +24 -0
  144. package/dist/type/typebox-type.js +130 -0
  145. package/dist/type/typebox-type.mjs +66 -0
  146. package/dist/type/typebox-value-live.d.ts +9 -0
  147. package/dist/type/typebox-value-live.js +27 -0
  148. package/dist/type/typebox-value-live.mjs +11 -0
  149. package/dist/type/typebox-value.d.ts +30 -0
  150. package/dist/type/typebox-value.js +147 -0
  151. package/dist/type/typebox-value.mjs +62 -0
  152. package/dist/type/validator/custom-error.js +4 -5
  153. package/dist/type/validator/custom-error.mjs +3 -3
  154. package/dist/type/validator/default-precompute.js +4 -5
  155. package/dist/type/validator/default-precompute.mjs +1 -1
  156. package/dist/type/validator/index.d.ts +1 -1
  157. package/dist/type/validator/index.js +51 -42
  158. package/dist/type/validator/index.mjs +33 -23
  159. package/dist/type/validator/validator-cache.d.ts +1 -1
  160. package/dist/type/validator/validator-cache.js +27 -14
  161. package/dist/type/validator/validator-cache.mjs +27 -13
  162. package/dist/universal/constants.d.ts +2 -1
  163. package/dist/universal/constants.js +3 -1
  164. package/dist/universal/constants.mjs +2 -1
  165. package/dist/utils.d.ts +19 -1
  166. package/dist/utils.js +25 -3
  167. package/dist/utils.mjs +19 -3
  168. package/dist/validator/index.js +2 -1
  169. package/dist/validator/index.mjs +2 -1
  170. package/dist/ws/context.d.ts +8 -1
  171. package/dist/ws/context.js +65 -29
  172. package/dist/ws/context.mjs +64 -29
  173. package/dist/ws/route.js +176 -28
  174. package/dist/ws/route.mjs +179 -31
  175. package/package.json +5 -3
@@ -1,8 +1,8 @@
1
1
  import { isBlob, isEmpty } from "../../utils.mjs";
2
2
  import { ELYSIA_TYPES } from "../constants.mjs";
3
- import { ASYNC_REFINE, checkFileExtension, collectFileTypeChecks, fileType, matchesAnyFileType, maybeQueueFileTypeCheck, parseFileUnit, setFileTypeDetector, takeFileTypeChecks } from "./file-type.mjs";
3
+ import { ASYNC_REFINE, MAX_QUEUED_FILE_TYPE_CHECKS, checkFileExtension, collectFileTypeChecks, fileType, matchesAnyFileType, maybeQueueFileTypeCheck, parseFileUnit, setFileTypeDetector, takeFileTypeChecks } from "./file-type.mjs";
4
+ import { Refine, Unsafe } from "../typebox-type.mjs";
4
5
  import { Refines, cloneSchema, createSharedReference, elyType, getMeta } from "./utils.mjs";
5
- import { Refine, Unsafe } from "typebox/type";
6
6
 
7
7
  //#region src/type/elysia/file.ts
8
8
  let BaseFile;
@@ -27,9 +27,14 @@ function FileWithProperty(options) {
27
27
  if (options.type) {
28
28
  const types = typeof options.type === "string" ? [options.type] : options.type;
29
29
  const message = types.length === 1 ? `Expect file type to be ${types[0]}` : `Expect file type to be one of ${types.join(", ")}`;
30
+ const budget = {
31
+ epoch: -1,
32
+ count: 0,
33
+ limit: options.maxItems ?? 64
34
+ };
30
35
  const checkType = (value) => {
31
36
  if (!matchesAnyFileType(value.type, types)) return false;
32
- maybeQueueFileTypeCheck(value, types, message);
37
+ maybeQueueFileTypeCheck(value, types, message, budget);
33
38
  return true;
34
39
  };
35
40
  checkType[ASYNC_REFINE] = true;
@@ -1,18 +1,17 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
4
+ const require_type_typebox_type = require('../typebox-type.js');
5
5
  const require_type_elysia_array = require('./array.js');
6
6
  const require_type_elysia_union = require('./union.js');
7
7
  const require_type_elysia_utils = require('./utils.js');
8
8
  const require_type_elysia_file = require('./file.js');
9
- let typebox_type = require("typebox/type");
10
9
 
11
10
  //#region src/type/elysia/files.ts
12
11
  let BaseFiles;
13
12
  let emptyFiles;
14
13
  let sharedFiles;
15
- const filesUnion = (options) => require_type_elysia_union.Union([require_type_elysia_array.ArrayType(require_type_elysia_file.File(options)), (0, typebox_type.Decode)(require_type_elysia_file.File(options), (value) => [value])]);
14
+ const filesUnion = (options) => require_type_elysia_union.Union([require_type_elysia_array.ArrayType(require_type_elysia_file.File(options)), require_type_typebox_type.Decode(require_type_elysia_file.File(options), (value) => [value])]);
16
15
  function Files(options) {
17
16
  BaseFiles ??= filesUnion();
18
17
  if (!options || require_utils.isEmpty(options)) return emptyFiles ??= Object.freeze(require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.Files, require_type_elysia_utils.cloneSchema(BaseFiles)));
@@ -21,7 +20,10 @@ function Files(options) {
21
20
  }
22
21
  function FilesWithProperty(options) {
23
22
  const fileOptions = {};
24
- if (options.type !== void 0) fileOptions.type = options.type;
23
+ if (options.type !== void 0) {
24
+ fileOptions.type = options.type;
25
+ if (options.maxItems !== void 0) fileOptions.maxItems = options.maxItems;
26
+ }
25
27
  if (options.minSize !== void 0) fileOptions.minSize = options.minSize;
26
28
  if (options.maxSize !== void 0) fileOptions.maxSize = options.maxSize;
27
29
  const base = require_utils.isEmpty(fileOptions) ? BaseFiles : filesUnion(fileOptions);
@@ -1,10 +1,10 @@
1
1
  import { isBlob, isEmpty } from "../../utils.mjs";
2
2
  import { ELYSIA_TYPES } from "../constants.mjs";
3
+ import { Decode } from "../typebox-type.mjs";
3
4
  import { ArrayType } from "./array.mjs";
4
5
  import { Union } from "./union.mjs";
5
6
  import { Refines, cloneSchema, createSharedReference, elyType, getMeta } from "./utils.mjs";
6
7
  import { File } from "./file.mjs";
7
- import { Decode } from "typebox/type";
8
8
 
9
9
  //#region src/type/elysia/files.ts
10
10
  let BaseFiles;
@@ -19,7 +19,10 @@ function Files(options) {
19
19
  }
20
20
  function FilesWithProperty(options) {
21
21
  const fileOptions = {};
22
- if (options.type !== void 0) fileOptions.type = options.type;
22
+ if (options.type !== void 0) {
23
+ fileOptions.type = options.type;
24
+ if (options.maxItems !== void 0) fileOptions.maxItems = options.maxItems;
25
+ }
23
26
  if (options.minSize !== void 0) fileOptions.minSize = options.minSize;
24
27
  if (options.maxSize !== void 0) fileOptions.maxSize = options.maxSize;
25
28
  const base = isEmpty(fileOptions) ? BaseFiles : filesUnion(fileOptions);
@@ -1,16 +1,15 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
4
+ const require_type_typebox_type = require('../typebox-type.js');
5
5
  const require_type_elysia_utils = require('./utils.js');
6
6
  const require_type_elysia_object = require('./object.js');
7
7
  const require_type_elysia_intersect = require('./intersect.js');
8
- let typebox_type = require("typebox/type");
9
8
 
10
9
  //#region src/type/elysia/form.ts
11
10
  let BaseForm;
12
11
  const Form = (property, options) => {
13
- BaseForm ??= Object.freeze((0, typebox_type.Decode)((0, typebox_type.Refine)((0, typebox_type.Unsafe)({ "~kind": "FormData" }), (value) => require_utils.isElysiaForm(value), () => "must be instance of Elysia.form"), (value) => value));
12
+ BaseForm ??= Object.freeze(require_type_typebox_type.Decode(require_type_typebox_type.Refine(require_type_typebox_type.Unsafe({ "~kind": "FormData" }), (value) => require_utils.isElysiaForm(value), () => "must be instance of Elysia.form"), (value) => value));
14
13
  return require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.Form, require_type_elysia_intersect.Intersect([BaseForm, require_type_elysia_object.ObjectType(property, options)]));
15
14
  };
16
15
 
@@ -1,15 +1,15 @@
1
1
  import { isElysiaForm } from "../../utils.mjs";
2
2
  import { ELYSIA_TYPES } from "../constants.mjs";
3
+ import { Decode, Refine, Unsafe } from "../typebox-type.mjs";
3
4
  import { elyType } from "./utils.mjs";
4
5
  import { ObjectType } from "./object.mjs";
5
- import { Intersect as Intersect$1 } from "./intersect.mjs";
6
- import { Decode, Refine, Unsafe } from "typebox/type";
6
+ import { Intersect } from "./intersect.mjs";
7
7
 
8
8
  //#region src/type/elysia/form.ts
9
9
  let BaseForm;
10
10
  const Form = (property, options) => {
11
11
  BaseForm ??= Object.freeze(Decode(Refine(Unsafe({ "~kind": "FormData" }), (value) => isElysiaForm(value), () => "must be instance of Elysia.form"), (value) => value));
12
- return elyType(ELYSIA_TYPES.Form, Intersect$1([BaseForm, ObjectType(property, options)]));
12
+ return elyType(ELYSIA_TYPES.Form, Intersect([BaseForm, ObjectType(property, options)]));
13
13
  };
14
14
 
15
15
  //#endregion
@@ -1,27 +1,26 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
5
4
  const require_type_shared = require('../shared.js');
5
+ const require_type_typebox_type = require('../typebox-type.js');
6
6
  const require_type_elysia_string = require('./string.js');
7
7
  const require_type_elysia_union = require('./union.js');
8
8
  const require_type_elysia_utils = require('./utils.js');
9
9
  const require_type_elysia_number = require('./number.js');
10
10
  const require_type_elysia_integer = require('./integer.js');
11
- let typebox_type = require("typebox/type");
12
11
 
13
12
  //#region src/type/elysia/integer-string.ts
14
13
  let StringifiedInteger;
15
14
  let StrictInteger;
16
15
  let emptyIntegerString;
17
16
  function IntegerString(property) {
18
- StringifiedInteger ??= require_type_shared.pureRefine((0, typebox_type.Decode)((0, typebox_type.Refine)(require_type_elysia_string.StringType(), (value) => /^[+-]?\d+$/.test(value) && Number.isInteger(+value), () => "must be integer"), (value) => +value));
19
- StrictInteger ??= require_type_shared.pureRefine((0, typebox_type.Refine)(require_type_elysia_number.NumberType(), (value) => Number.isInteger(value), () => "must be integer"));
17
+ StringifiedInteger ??= require_type_shared.pureRefine(require_type_typebox_type.Decode(require_type_typebox_type.Refine(require_type_elysia_string.StringType(), (value) => /^[+-]?\d+$/.test(value) && Number.isInteger(+value), () => "must be integer"), (value) => +value));
18
+ StrictInteger ??= require_type_shared.pureRefine(require_type_typebox_type.Refine(require_type_elysia_number.NumberType(), (value) => Number.isInteger(value), () => "must be integer"));
20
19
  if (!property || require_utils.isEmpty(property)) return emptyIntegerString ??= Object.freeze(require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.Integer, require_type_elysia_union.Union([StrictInteger, StringifiedInteger])));
21
20
  const [constraints, meta] = require_type_elysia_utils.getMeta(property);
22
21
  const integer = require_type_elysia_integer.Integer(constraints);
23
22
  const c = constraints;
24
- const stringified = (0, typebox_type.Decode)((0, typebox_type.Refine)(require_type_elysia_string.StringType(), (value) => {
23
+ const stringified = require_type_typebox_type.Decode(require_type_typebox_type.Refine(require_type_elysia_string.StringType(), (value) => {
25
24
  if (!/^[+-]?\d+$/.test(value)) return false;
26
25
  const n = +value;
27
26
  if (!Number.isInteger(n)) return false;
@@ -1,12 +1,12 @@
1
1
  import { isEmpty } from "../../utils.mjs";
2
2
  import { ELYSIA_TYPES } from "../constants.mjs";
3
3
  import { pureRefine } from "../shared.mjs";
4
+ import { Decode, Refine } from "../typebox-type.mjs";
4
5
  import { StringType } from "./string.mjs";
5
6
  import { Union } from "./union.mjs";
6
7
  import { elyType, getMeta } from "./utils.mjs";
7
8
  import { NumberType } from "./number.mjs";
8
- import { Integer as Integer$1 } from "./integer.mjs";
9
- import { Decode, Refine } from "typebox/type";
9
+ import { Integer } from "./integer.mjs";
10
10
 
11
11
  //#region src/type/elysia/integer-string.ts
12
12
  let StringifiedInteger;
@@ -17,7 +17,7 @@ function IntegerString(property) {
17
17
  StrictInteger ??= pureRefine(Refine(NumberType(), (value) => Number.isInteger(value), () => "must be integer"));
18
18
  if (!property || isEmpty(property)) return emptyIntegerString ??= Object.freeze(elyType(ELYSIA_TYPES.Integer, Union([StrictInteger, StringifiedInteger])));
19
19
  const [constraints, meta] = getMeta(property);
20
- const integer = Integer$1(constraints);
20
+ const integer = Integer(constraints);
21
21
  const c = constraints;
22
22
  const stringified = Decode(Refine(StringType(), (value) => {
23
23
  if (!/^[+-]?\d+$/.test(value)) return false;
@@ -1,11 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
5
- let typebox_type = require("typebox/type");
6
4
 
7
5
  //#region src/type/elysia/integer.ts
8
- const emptyInteger = Object.freeze((0, typebox_type.Integer)());
6
+ const emptyInteger = Object.freeze(Object.defineProperty({
7
+ type: "integer",
8
+ "~kind": "Integer"
9
+ }, "~kind", require_type_constants.noEnumerable));
9
10
  function Integer(options) {
10
11
  if (!options || require_utils.isEmpty(options)) return emptyInteger;
11
12
  const schema = {
@@ -1,9 +1,11 @@
1
1
  import { isEmpty } from "../../utils.mjs";
2
2
  import { noEnumerable } from "../constants.mjs";
3
- import { Integer as Integer$1 } from "typebox/type";
4
3
 
5
4
  //#region src/type/elysia/integer.ts
6
- const emptyInteger = Object.freeze(Integer$1());
5
+ const emptyInteger = Object.freeze(Object.defineProperty({
6
+ type: "integer",
7
+ "~kind": "Integer"
8
+ }, "~kind", noEnumerable));
7
9
  function Integer(options) {
8
10
  if (!options || isEmpty(options)) return emptyInteger;
9
11
  const schema = {
@@ -1,16 +1,15 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_type_constants = require('../constants.js');
3
+ const require_type_typebox_type = require('../typebox-type.js');
4
4
  const require_type_elysia_union = require('./union.js');
5
5
  const require_type_elysia_utils = require('./utils.js');
6
- let typebox_type = require("typebox/type");
7
6
 
8
7
  //#region src/type/elysia/maybe-empty.ts
9
8
  function MaybeEmpty(schema, options) {
10
9
  return require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.MaybeEmpty, require_type_elysia_union.Union([
11
10
  schema,
12
- (0, typebox_type.Null)(),
13
- (0, typebox_type.Undefined)()
11
+ require_type_typebox_type.Null(),
12
+ require_type_typebox_type.Undefined()
14
13
  ], {
15
14
  ...options,
16
15
  nullable: true
@@ -1,7 +1,7 @@
1
1
  import { ELYSIA_TYPES } from "../constants.mjs";
2
+ import { Null, Undefined } from "../typebox-type.mjs";
2
3
  import { Union } from "./union.mjs";
3
4
  import { elyType } from "./utils.mjs";
4
- import { Null, Undefined } from "typebox/type";
5
5
 
6
6
  //#region src/type/elysia/maybe-empty.ts
7
7
  function MaybeEmpty(schema, options) {
@@ -1,12 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_type_constants = require('../constants.js');
3
+ const require_type_typebox_type = require('../typebox-type.js');
4
4
  const require_type_elysia_union = require('./union.js');
5
5
  const require_type_elysia_utils = require('./utils.js');
6
- let typebox_type = require("typebox/type");
7
6
 
8
7
  //#region src/type/elysia/nullable.ts
9
- const Nullable = (schema, options) => require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.Nullable, require_type_elysia_union.Union([schema, (0, typebox_type.Null)()], {
8
+ const Nullable = (schema, options) => require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.Nullable, require_type_elysia_union.Union([schema, require_type_typebox_type.Null()], {
10
9
  ...options,
11
10
  nullable: true
12
11
  }));
@@ -1,7 +1,7 @@
1
1
  import { ELYSIA_TYPES } from "../constants.mjs";
2
+ import { Null } from "../typebox-type.mjs";
2
3
  import { Union } from "./union.mjs";
3
4
  import { elyType } from "./utils.mjs";
4
- import { Null } from "typebox/type";
5
5
 
6
6
  //#region src/type/elysia/nullable.ts
7
7
  const Nullable = (schema, options) => elyType(ELYSIA_TYPES.Nullable, Union([schema, Null()], {
@@ -1,11 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
5
- let typebox_type = require("typebox/type");
6
4
 
7
5
  //#region src/type/elysia/number.ts
8
- const emptyNumber = Object.freeze((0, typebox_type.Number)());
6
+ const emptyNumber = Object.freeze(Object.defineProperty({
7
+ type: "number",
8
+ "~kind": "Number"
9
+ }, "~kind", require_type_constants.noEnumerable));
9
10
  function NumberType(options) {
10
11
  if (!options || require_utils.isEmpty(options)) return emptyNumber;
11
12
  const schema = {
@@ -1,9 +1,11 @@
1
1
  import { isEmpty } from "../../utils.mjs";
2
2
  import { noEnumerable } from "../constants.mjs";
3
- import { Number } from "typebox/type";
4
3
 
5
4
  //#region src/type/elysia/number.ts
6
- const emptyNumber = Object.freeze(Number());
5
+ const emptyNumber = Object.freeze(Object.defineProperty({
6
+ type: "number",
7
+ "~kind": "Number"
8
+ }, "~kind", noEnumerable));
7
9
  function NumberType(options) {
8
10
  if (!options || isEmpty(options)) return emptyNumber;
9
11
  const schema = {
@@ -1,11 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_type_constants = require('../constants.js');
3
+ const require_type_typebox_type = require('../typebox-type.js');
4
4
  const require_type_elysia_string = require('./string.js');
5
5
  const require_type_elysia_union = require('./union.js');
6
6
  const require_type_elysia_utils = require('./utils.js');
7
7
  const require_type_elysia_number = require('./number.js');
8
- let typebox_type = require("typebox/type");
9
8
 
10
9
  //#region src/type/elysia/numeric-enum.ts
11
10
  /**
@@ -14,7 +13,7 @@ let typebox_type = require("typebox/type");
14
13
  */
15
14
  function NumericEnum(item, property) {
16
15
  const allowed = new Set(Object.values(item).filter((v) => typeof v === "number").map((v) => v));
17
- const decoder = (0, typebox_type.Decode)((0, typebox_type.Refine)(require_type_elysia_union.Union([require_type_elysia_string.StringType({ format: "numeric" }), require_type_elysia_number.NumberType()], property), (value) => {
16
+ const decoder = require_type_typebox_type.Decode(require_type_typebox_type.Refine(require_type_elysia_union.Union([require_type_elysia_string.StringType({ format: "numeric" }), require_type_elysia_number.NumberType()], property), (value) => {
18
17
  if (typeof value === "string" && value.trim() === "") return false;
19
18
  const n = +value;
20
19
  return !isNaN(n) && allowed.has(n);
@@ -1,9 +1,9 @@
1
1
  import { ELYSIA_TYPES } from "../constants.mjs";
2
+ import { Decode, Refine } from "../typebox-type.mjs";
2
3
  import { StringType } from "./string.mjs";
3
4
  import { Union } from "./union.mjs";
4
5
  import { elyType } from "./utils.mjs";
5
6
  import { NumberType } from "./number.mjs";
6
- import { Decode, Refine } from "typebox/type";
7
7
 
8
8
  //#region src/type/elysia/numeric-enum.ts
9
9
  /**
@@ -1,13 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
5
4
  const require_type_shared = require('../shared.js');
5
+ const require_type_typebox_type = require('../typebox-type.js');
6
6
  const require_type_elysia_string = require('./string.js');
7
7
  const require_type_elysia_union = require('./union.js');
8
8
  const require_type_elysia_utils = require('./utils.js');
9
9
  const require_type_elysia_number = require('./number.js');
10
- let typebox_type = require("typebox/type");
11
10
 
12
11
  //#region src/type/elysia/numeric.ts
13
12
  function isDecimalString(value) {
@@ -33,7 +32,8 @@ function isDecimalString(value) {
33
32
  }
34
33
  if (!digits && !fractions) return false;
35
34
  } else if (!digits) return false;
36
- return index === length;
35
+ if (index !== length) return false;
36
+ return digits < 309 || Number.isFinite(+value);
37
37
  }
38
38
  let StringifiedNumber;
39
39
  let emptyNumeric;
@@ -46,11 +46,11 @@ function passesConstraints(n, c) {
46
46
  return true;
47
47
  }
48
48
  function Numeric(property) {
49
- StringifiedNumber ??= require_type_shared.pureRefine((0, typebox_type.Decode)((0, typebox_type.Refine)(require_type_elysia_string.StringType(), isDecimalString, () => "must be number"), (value) => +value));
49
+ StringifiedNumber ??= require_type_shared.pureRefine(require_type_typebox_type.Decode(require_type_typebox_type.Refine(require_type_elysia_string.StringType(), isDecimalString, () => "must be number"), (value) => +value));
50
50
  if (!property || require_utils.isEmpty(property)) return emptyNumeric ??= Object.freeze(require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.Numeric, require_type_elysia_union.Union([require_type_elysia_number.NumberType(), StringifiedNumber])));
51
51
  const [constraints, meta] = require_type_elysia_utils.getMeta(property);
52
52
  const number = require_type_elysia_number.NumberType(constraints);
53
- const stringified = (0, typebox_type.Decode)((0, typebox_type.Refine)(require_type_elysia_string.StringType(), (value) => {
53
+ const stringified = require_type_typebox_type.Decode(require_type_typebox_type.Refine(require_type_elysia_string.StringType(), (value) => {
54
54
  if (!isDecimalString(value)) return false;
55
55
  return passesConstraints(+value, constraints);
56
56
  }, () => "must be number"), (value) => +value);
@@ -1,11 +1,11 @@
1
1
  import { isEmpty } from "../../utils.mjs";
2
2
  import { ELYSIA_TYPES } from "../constants.mjs";
3
3
  import { pureRefine } from "../shared.mjs";
4
+ import { Decode, Refine } from "../typebox-type.mjs";
4
5
  import { StringType } from "./string.mjs";
5
6
  import { Union } from "./union.mjs";
6
7
  import { elyType, getMeta } from "./utils.mjs";
7
8
  import { NumberType } from "./number.mjs";
8
- import { Decode, Refine } from "typebox/type";
9
9
 
10
10
  //#region src/type/elysia/numeric.ts
11
11
  function isDecimalString(value) {
@@ -31,7 +31,8 @@ function isDecimalString(value) {
31
31
  }
32
32
  if (!digits && !fractions) return false;
33
33
  } else if (!digits) return false;
34
- return index === length;
34
+ if (index !== length) return false;
35
+ return digits < 309 || Number.isFinite(+value);
35
36
  }
36
37
  let StringifiedNumber;
37
38
  let emptyNumeric;
@@ -1,13 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_bridge = require('../bridge.js');
5
4
  const require_type_constants = require('../constants.js');
5
+ const require_type_typebox_type = require('../typebox-type.js');
6
6
  const require_type_elysia_string = require('./string.js');
7
7
  const require_type_elysia_union = require('./union.js');
8
8
  const require_type_elysia_utils = require('./utils.js');
9
9
  const require_type_elysia_object = require('./object.js');
10
- let typebox_type = require("typebox/type");
11
10
 
12
11
  //#region src/type/elysia/object-string.ts
13
12
  const MEMO_LIMIT = 8192;
@@ -17,7 +16,7 @@ function ObjectString(property, _options) {
17
16
  let check;
18
17
  let raw;
19
18
  let parsed;
20
- const objectString = (0, typebox_type.Decode)((0, typebox_type.Refine)(require_type_elysia_string.StringType(), (value) => {
19
+ const objectString = require_type_typebox_type.Decode(require_type_typebox_type.Refine(require_type_elysia_string.StringType(), (value) => {
21
20
  if (value.charCodeAt(0) !== 123) return false;
22
21
  if (value === raw) return true;
23
22
  try {
@@ -30,13 +29,17 @@ function ObjectString(property, _options) {
30
29
  } catch {
31
30
  check = (v) => require_type_bridge.Check(object, v);
32
31
  }
33
- if (!check(next)) return false;
32
+ if (!check(next)) {
33
+ raw = parsed = void 0;
34
+ return false;
35
+ }
34
36
  if (value.length <= MEMO_LIMIT) {
35
37
  raw = value;
36
38
  parsed = next;
37
39
  }
38
40
  return true;
39
41
  } catch {
42
+ raw = parsed = void 0;
40
43
  return false;
41
44
  }
42
45
  }, () => "must be an object"), (value) => {
@@ -1,11 +1,11 @@
1
1
  import { nullObject } from "../../utils.mjs";
2
- import { Check, Compile, Decode as Decode$1 } from "../bridge.mjs";
2
+ import { Check, Compile, Decode } from "../bridge.mjs";
3
3
  import { ELYSIA_TYPES } from "../constants.mjs";
4
+ import { Decode as Decode$1, Refine } from "../typebox-type.mjs";
4
5
  import { StringType } from "./string.mjs";
5
6
  import { Union } from "./union.mjs";
6
7
  import { elyType, getMeta } from "./utils.mjs";
7
8
  import { ObjectType } from "./object.mjs";
8
- import { Decode, Refine } from "typebox/type";
9
9
 
10
10
  //#region src/type/elysia/object-string.ts
11
11
  const MEMO_LIMIT = 8192;
@@ -15,7 +15,7 @@ function ObjectString(property, _options) {
15
15
  let check;
16
16
  let raw;
17
17
  let parsed;
18
- const objectString = Decode(Refine(StringType(), (value) => {
18
+ const objectString = Decode$1(Refine(StringType(), (value) => {
19
19
  if (value.charCodeAt(0) !== 123) return false;
20
20
  if (value === raw) return true;
21
21
  try {
@@ -28,20 +28,24 @@ function ObjectString(property, _options) {
28
28
  } catch {
29
29
  check = (v) => Check(object, v);
30
30
  }
31
- if (!check(next)) return false;
31
+ if (!check(next)) {
32
+ raw = parsed = void 0;
33
+ return false;
34
+ }
32
35
  if (value.length <= MEMO_LIMIT) {
33
36
  raw = value;
34
37
  parsed = next;
35
38
  }
36
39
  return true;
37
40
  } catch {
41
+ raw = parsed = void 0;
38
42
  return false;
39
43
  }
40
44
  }, () => "must be an object"), (value) => {
41
45
  const decoded = value === raw ? parsed : JSON.parse(value);
42
46
  raw = void 0;
43
47
  parsed = void 0;
44
- return Decode$1(object, decoded);
48
+ return Decode(object, decoded);
45
49
  });
46
50
  return elyType(ELYSIA_TYPES.ObjectString, Union([object, objectString], meta));
47
51
  }
@@ -1,12 +1,13 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
5
4
  const require_type_shared = require('../shared.js');
6
- let typebox_type = require("typebox/type");
7
5
 
8
6
  //#region src/type/elysia/string.ts
9
- const emptyString = Object.freeze((0, typebox_type.String)());
7
+ const emptyString = Object.freeze(Object.defineProperty({
8
+ type: "string",
9
+ "~kind": "String"
10
+ }, "~kind", require_type_constants.noEnumerable));
10
11
  const stringFormatCache = /* @__PURE__ */ new Map();
11
12
  require_type_shared.referenceCache(stringFormatCache);
12
13
  function StringType(options) {
@@ -1,10 +1,12 @@
1
1
  import { evictOldestHalf } from "../../utils.mjs";
2
2
  import { noEnumerable } from "../constants.mjs";
3
3
  import { SHARED_REFERENCE_CACHE_LIMIT, referenceCache } from "../shared.mjs";
4
- import { String } from "typebox/type";
5
4
 
6
5
  //#region src/type/elysia/string.ts
7
- const emptyString = Object.freeze(String());
6
+ const emptyString = Object.freeze(Object.defineProperty({
7
+ type: "string",
8
+ "~kind": "String"
9
+ }, "~kind", noEnumerable));
8
10
  const stringFormatCache = /* @__PURE__ */ new Map();
9
11
  referenceCache(stringFormatCache);
10
12
  function StringType(options) {
@@ -1,15 +1,14 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_constants = require('../constants.js');
4
+ const require_type_typebox_type = require('../typebox-type.js');
5
5
  const require_type_elysia_utils = require('./utils.js');
6
- let typebox_type = require("typebox/type");
7
6
 
8
7
  //#region src/type/elysia/uint8-array.ts
9
8
  let BaseUint8Array;
10
9
  let emptyUint8Array;
11
10
  function Uint8ArrayType(property) {
12
- BaseUint8Array ??= (0, typebox_type.Codec)((0, typebox_type.Refine)((0, typebox_type.Unsafe)({ "~kind": "Uint8Array" }), (value) => value instanceof Uint8Array || value instanceof ArrayBuffer, () => "must be Uint8Array")).Decode((value) => value instanceof Uint8Array ? value : new Uint8Array(value)).Encode((value) => value);
11
+ BaseUint8Array ??= require_type_typebox_type.Codec(require_type_typebox_type.Refine(require_type_typebox_type.Unsafe({ "~kind": "Uint8Array" }), (value) => value instanceof Uint8Array || value instanceof ArrayBuffer, () => "must be Uint8Array")).Decode((value) => value instanceof Uint8Array ? value : new Uint8Array(value)).Encode((value) => value);
13
12
  if (!property || require_utils.isEmpty(property)) return emptyUint8Array ??= Object.freeze(require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.Uint8Array, BaseUint8Array));
14
13
  const refines = [[(value) => value instanceof Uint8Array || value instanceof ArrayBuffer, "must be Uint8Array"]];
15
14
  if (property.minByteLength !== void 0) refines.push([(value) => value.byteLength >= property.minByteLength, `Expect byte to be more than ${property.minByteLength}`]);
@@ -1,7 +1,7 @@
1
1
  import { isEmpty } from "../../utils.mjs";
2
2
  import { ELYSIA_TYPES } from "../constants.mjs";
3
+ import { Codec, Refine, Unsafe } from "../typebox-type.mjs";
3
4
  import { Refines, cloneSchema, elyType, getMeta } from "./utils.mjs";
4
- import { Codec, Refine, Unsafe } from "typebox/type";
5
5
 
6
6
  //#region src/type/elysia/uint8-array.ts
7
7
  let BaseUint8Array;
@@ -1,8 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_type_constants = require('../constants.js');
3
+ const require_type_typebox_type = require('../typebox-type.js');
4
4
  const require_type_elysia_utils = require('./utils.js');
5
- let typebox_type = require("typebox/type");
6
5
 
7
6
  //#region src/type/elysia/union-enum.ts
8
7
  let unionEnumNoEnumerable;
@@ -24,7 +23,7 @@ function UnionEnum(values, options) {
24
23
  enumerable: false
25
24
  });
26
25
  if (!mixed) schema.type = kind;
27
- return require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.UnionEnum, (0, typebox_type.Unsafe)(schema));
26
+ return require_type_elysia_utils.elyType(require_type_constants.ELYSIA_TYPES.UnionEnum, require_type_typebox_type.Unsafe(schema));
28
27
  }
29
28
 
30
29
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { ELYSIA_TYPES } from "../constants.mjs";
2
+ import { Unsafe } from "../typebox-type.mjs";
2
3
  import { elyType } from "./utils.mjs";
3
- import { Unsafe } from "typebox/type";
4
4
 
5
5
  //#region src/type/elysia/union-enum.ts
6
6
  let unionEnumNoEnumerable;
@@ -1,8 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../../_virtual/_rolldown/runtime.js');
3
2
  const require_utils = require('../../utils.js');
4
3
  const require_type_shared = require('../shared.js');
5
- let typebox_type = require("typebox/type");
4
+ const require_type_typebox_type = require('../typebox-type.js');
6
5
 
7
6
  //#region src/type/elysia/utils.ts
8
7
  function copyNonEnumerable(src, target, skipKey) {
@@ -82,7 +81,7 @@ function propertyChecksum(property) {
82
81
  return [require_utils.fnv1a(JSON.stringify(entries))];
83
82
  }
84
83
  function Refines(schema, refines) {
85
- for (const [refine, message] of refines) schema = (0, typebox_type.Refine)(schema, refine, () => message);
84
+ for (const [refine, message] of refines) schema = require_type_typebox_type.Refine(schema, refine, () => message);
86
85
  return schema;
87
86
  }
88
87
 
@@ -1,6 +1,6 @@
1
1
  import { evictOldestHalf, fnv1a } from "../../utils.mjs";
2
2
  import { SHARED_REFERENCE_CACHE_LIMIT, clearSharedReferenceCaches, referenceCache } from "../shared.mjs";
3
- import { Refine } from "typebox/type";
3
+ import { Refine } from "../typebox-type.mjs";
4
4
 
5
5
  //#region src/type/elysia/utils.ts
6
6
  function copyNonEnumerable(src, target, skipKey) {