elysia 2.0.0-beta.2 → 2.0.0-beta.21
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/adapter/bun/index.d.ts +18 -2
- package/dist/adapter/bun/index.js +467 -110
- package/dist/adapter/bun/index.mjs +467 -112
- package/dist/adapter/types.d.ts +2 -21
- package/dist/adapter/utils.d.ts +14 -3
- package/dist/adapter/utils.js +146 -87
- package/dist/adapter/utils.mjs +148 -90
- package/dist/adapter/web-standard/handler.d.ts +1 -1
- package/dist/adapter/web-standard/handler.js +47 -36
- package/dist/adapter/web-standard/handler.mjs +48 -37
- package/dist/adapter/web-standard/index.js +2 -30
- package/dist/adapter/web-standard/index.mjs +2 -30
- package/dist/adapter/web-standard/utils.js +5 -18
- package/dist/adapter/web-standard/utils.mjs +5 -18
- package/dist/base.d.ts +99 -67
- package/dist/base.js +678 -510
- package/dist/base.mjs +682 -514
- package/dist/compile/aot-capture.d.ts +2 -13
- package/dist/compile/aot-capture.js +26 -69
- package/dist/compile/aot-capture.mjs +28 -67
- package/dist/compile/aot-emit.d.ts +9 -7
- package/dist/compile/aot-emit.js +42 -19
- package/dist/compile/aot-emit.mjs +42 -20
- package/dist/compile/aot.d.ts +17 -19
- package/dist/compile/aot.js +41 -51
- package/dist/compile/aot.mjs +39 -49
- package/dist/compile/handler/descriptor.d.ts +9 -12
- package/dist/compile/handler/descriptor.js +19 -44
- package/dist/compile/handler/descriptor.mjs +20 -42
- package/dist/compile/handler/frozen-validator.d.ts +5 -10
- package/dist/compile/handler/frozen-validator.js +55 -105
- package/dist/compile/handler/frozen-validator.mjs +53 -105
- package/dist/compile/handler/index.d.ts +7 -5
- package/dist/compile/handler/index.js +270 -111
- package/dist/compile/handler/index.mjs +270 -113
- package/dist/compile/handler/jit.d.ts +19 -17
- package/dist/compile/handler/jit.js +222 -149
- package/dist/compile/handler/jit.mjs +224 -152
- package/dist/compile/handler/params.d.ts +1 -4
- package/dist/compile/handler/params.js +10 -5
- package/dist/compile/handler/params.mjs +14 -8
- package/dist/compile/handler/reconstruct.d.ts +2 -2
- package/dist/compile/handler/reconstruct.js +6 -4
- package/dist/compile/handler/reconstruct.mjs +6 -4
- package/dist/compile/handler/static-clone-resolver.d.ts +6 -0
- package/dist/compile/handler/static-clone-resolver.js +8 -0
- package/dist/compile/handler/static-clone-resolver.mjs +7 -0
- package/dist/compile/handler/utils.d.ts +22 -11
- package/dist/compile/handler/utils.js +159 -253
- package/dist/compile/handler/utils.mjs +155 -252
- package/dist/compile/jit-probe.d.ts +2 -2
- package/dist/compile/jit-probe.js +2 -3
- package/dist/compile/jit-probe.mjs +2 -3
- package/dist/compile/lexer.d.ts +7 -4
- package/dist/compile/lexer.js +268 -6
- package/dist/compile/lexer.mjs +268 -4
- package/dist/compile/utils.js +7 -4
- package/dist/compile/utils.mjs +7 -4
- package/dist/compiled.d.ts +0 -1
- package/dist/compiled.js +0 -1
- package/dist/compiled.mjs +0 -1
- package/dist/context.d.ts +14 -4
- package/dist/context.js +17 -32
- package/dist/context.mjs +19 -34
- package/dist/cookie/config.d.ts +7 -2
- package/dist/cookie/config.js +76 -16
- package/dist/cookie/config.mjs +77 -18
- package/dist/cookie/cookie.d.ts +1 -1
- package/dist/cookie/cookie.js +8 -10
- package/dist/cookie/cookie.mjs +8 -10
- package/dist/cookie/crypto.d.ts +8 -7
- package/dist/cookie/crypto.js +51 -40
- package/dist/cookie/crypto.mjs +51 -41
- package/dist/cookie/error.d.ts +1 -2
- package/dist/cookie/error.js +6 -4
- package/dist/cookie/error.mjs +6 -4
- package/dist/cookie/lib.js +7 -2
- package/dist/cookie/lib.mjs +7 -2
- package/dist/cookie/serialize.js +1 -1
- package/dist/cookie/serialize.mjs +1 -1
- package/dist/cookie/types.d.ts +10 -0
- package/dist/cookie/utils.d.ts +4 -8
- package/dist/cookie/utils.js +86 -52
- package/dist/cookie/utils.mjs +89 -54
- package/dist/error.d.ts +113 -103
- package/dist/error.js +181 -117
- package/dist/error.mjs +179 -118
- package/dist/generation.d.ts +2 -2
- package/dist/handler/error.d.ts +26 -15
- package/dist/handler/error.js +77 -96
- package/dist/handler/error.mjs +74 -97
- package/dist/handler/fetch.js +87 -108
- package/dist/handler/fetch.mjs +89 -110
- package/dist/handler/utils.d.ts +12 -6
- package/dist/handler/utils.js +84 -28
- package/dist/handler/utils.mjs +80 -28
- package/dist/index.d.ts +12 -12
- package/dist/index.js +2 -9
- package/dist/index.mjs +1 -1
- package/dist/memory.js +1 -1
- package/dist/memory.mjs +1 -1
- package/dist/package.js +1 -1
- package/dist/package.mjs +1 -1
- package/dist/plugin/aot/bun.d.ts +8 -1
- package/dist/plugin/aot/bun.js +16 -9
- package/dist/plugin/aot/bun.mjs +17 -10
- package/dist/plugin/aot/core.d.ts +52 -60
- package/dist/plugin/aot/core.js +208 -109
- package/dist/plugin/aot/core.mjs +205 -111
- package/dist/plugin/aot/esbuild.js +8 -5
- package/dist/plugin/aot/esbuild.mjs +9 -6
- package/dist/plugin/aot/hooks.d.ts +6 -17
- package/dist/plugin/aot/hooks.js +36 -14
- package/dist/plugin/aot/hooks.mjs +37 -16
- package/dist/plugin/aot/rspack-loader.d.ts +1 -5
- package/dist/plugin/aot/rspack-loader.js +1 -10
- package/dist/plugin/aot/rspack-loader.mjs +1 -10
- package/dist/plugin/aot/rspack.js +2 -5
- package/dist/plugin/aot/rspack.mjs +3 -6
- package/dist/plugin/aot/source.d.ts +6 -42
- package/dist/plugin/aot/source.js +71 -71
- package/dist/plugin/aot/source.mjs +72 -72
- package/dist/plugin/aot/treeshake.js +2 -6
- package/dist/plugin/aot/treeshake.mjs +2 -6
- package/dist/plugin/aot/unplugin.d.ts +1 -4
- package/dist/plugin/aot/unplugin.js +4 -13
- package/dist/plugin/aot/unplugin.mjs +4 -13
- package/dist/plugin/aot/vite.d.ts +2 -6
- package/dist/plugin/aot/worker.js +2 -2
- package/dist/plugin/aot/worker.mjs +2 -2
- package/dist/plugin/auto-head.js +1 -10
- package/dist/plugin/auto-head.mjs +1 -10
- package/dist/plugin/trace.d.ts +2 -1
- package/dist/route-table.d.ts +3 -0
- package/dist/route-table.js +16 -11
- package/dist/route-table.mjs +16 -11
- package/dist/schema-snapshot.d.ts +0 -4
- package/dist/schema-snapshot.js +32 -49
- package/dist/schema-snapshot.mjs +32 -49
- package/dist/sucrose.d.ts +6 -55
- package/dist/sucrose.js +103 -731
- package/dist/sucrose.mjs +102 -724
- package/dist/trace.d.ts +5 -8
- package/dist/trace.js +23 -134
- package/dist/trace.mjs +24 -135
- package/dist/type/bridge-live.d.ts +4 -2
- package/dist/type/bridge-live.js +6 -3
- package/dist/type/bridge-live.mjs +4 -2
- package/dist/type/bridge.d.ts +6 -4
- package/dist/type/bridge.js +17 -9
- package/dist/type/bridge.mjs +5 -3
- package/dist/type/coerce-plan.d.ts +5 -5
- package/dist/type/coerce-plan.js +41 -39
- package/dist/type/coerce-plan.mjs +43 -39
- package/dist/type/coerce.d.ts +3 -7
- package/dist/type/coerce.js +18 -75
- package/dist/type/coerce.mjs +19 -76
- package/dist/type/compat.d.ts +3 -0
- package/dist/type/compat.js +23 -14
- package/dist/type/compat.mjs +20 -10
- package/dist/type/elysia/array-buffer.d.ts +4 -1
- package/dist/type/elysia/array-buffer.js +17 -17
- package/dist/type/elysia/array-buffer.mjs +17 -17
- package/dist/type/elysia/array-string.js +2 -40
- package/dist/type/elysia/array-string.mjs +2 -39
- package/dist/type/elysia/array.js +5 -9
- package/dist/type/elysia/array.mjs +5 -9
- package/dist/type/elysia/boolean-string.js +2 -3
- package/dist/type/elysia/boolean-string.mjs +1 -1
- package/dist/type/elysia/boolean.js +3 -12
- package/dist/type/elysia/boolean.mjs +3 -11
- package/dist/type/elysia/cookie.d.ts +3 -4
- package/dist/type/elysia/cookie.js +5 -15
- package/dist/type/elysia/cookie.mjs +5 -15
- package/dist/type/elysia/date.js +13 -20
- package/dist/type/elysia/date.mjs +10 -16
- package/dist/type/elysia/file-type.d.ts +11 -4
- package/dist/type/elysia/file-type.js +17 -2
- package/dist/type/elysia/file-type.mjs +17 -3
- package/dist/type/elysia/file.d.ts +1 -3
- package/dist/type/elysia/file.js +11 -27
- package/dist/type/elysia/file.mjs +11 -12
- package/dist/type/elysia/files.js +7 -11
- package/dist/type/elysia/files.mjs +7 -10
- package/dist/type/elysia/form.js +2 -3
- package/dist/type/elysia/form.mjs +3 -3
- package/dist/type/elysia/integer-string.d.ts +1 -1
- package/dist/type/elysia/integer-string.js +4 -30
- package/dist/type/elysia/integer-string.mjs +5 -30
- package/dist/type/elysia/integer.js +3 -12
- package/dist/type/elysia/integer.mjs +3 -11
- package/dist/type/elysia/intersect.js +0 -5
- package/dist/type/elysia/intersect.mjs +0 -5
- package/dist/type/elysia/json-string.d.ts +7 -0
- package/dist/type/elysia/json-string.js +47 -0
- package/dist/type/elysia/json-string.mjs +46 -0
- package/dist/type/elysia/keep-config.d.ts +14 -0
- package/dist/type/elysia/keep-config.js +62 -0
- package/dist/type/elysia/keep-config.mjs +53 -0
- package/dist/type/elysia/maybe-empty.js +3 -4
- package/dist/type/elysia/maybe-empty.mjs +1 -1
- package/dist/type/elysia/nullable.js +2 -3
- package/dist/type/elysia/nullable.mjs +1 -1
- package/dist/type/elysia/number.d.ts +2 -1
- package/dist/type/elysia/number.js +19 -11
- package/dist/type/elysia/number.mjs +18 -10
- package/dist/type/elysia/numeric-enum.d.ts +1 -1
- package/dist/type/elysia/numeric-enum.js +4 -5
- package/dist/type/elysia/numeric-enum.mjs +3 -3
- package/dist/type/elysia/numeric.d.ts +4 -2
- package/dist/type/elysia/numeric.js +20 -17
- package/dist/type/elysia/numeric.mjs +19 -16
- package/dist/type/elysia/object-string.js +2 -37
- package/dist/type/elysia/object-string.mjs +2 -36
- package/dist/type/elysia/object.js +5 -9
- package/dist/type/elysia/object.mjs +5 -9
- package/dist/type/elysia/optional.js +8 -8
- package/dist/type/elysia/optional.mjs +7 -7
- package/dist/type/elysia/problem.d.ts +20 -0
- package/dist/type/elysia/problem.js +25 -0
- package/dist/type/elysia/problem.mjs +24 -0
- package/dist/type/elysia/string.js +4 -3
- package/dist/type/elysia/string.mjs +4 -2
- package/dist/type/elysia/uint8-array.d.ts +1 -1
- package/dist/type/elysia/uint8-array.js +5 -20
- package/dist/type/elysia/uint8-array.mjs +5 -19
- package/dist/type/elysia/union-enum.js +7 -8
- package/dist/type/elysia/union-enum.mjs +6 -6
- package/dist/type/elysia/union.js +0 -5
- package/dist/type/elysia/union.mjs +0 -5
- package/dist/type/elysia/utils.d.ts +2 -4
- package/dist/type/elysia/utils.js +10 -21
- package/dist/type/elysia/utils.mjs +7 -15
- package/dist/type/exports.d.ts +4 -2
- package/dist/type/exports.js +23 -2
- package/dist/type/exports.mjs +11 -2
- package/dist/type/index.d.ts +10 -2
- package/dist/type/index.js +62 -15
- package/dist/type/index.mjs +65 -11
- package/dist/type/shared.d.ts +3 -9
- package/dist/type/shared.js +44 -97
- package/dist/type/shared.mjs +43 -97
- package/dist/type/sync-require.d.ts +11 -0
- package/dist/type/sync-require.js +14 -0
- package/dist/type/sync-require.mjs +12 -0
- package/dist/type/typebox-system-lite.d.ts +2 -0
- package/dist/type/typebox-system-lite.js +34 -0
- package/dist/type/typebox-system-lite.mjs +3 -0
- package/dist/type/typebox-system-require.d.ts +7 -0
- package/dist/type/typebox-system-require.js +24 -0
- package/dist/type/typebox-system-require.mjs +23 -0
- package/dist/type/typebox-type-live.d.ts +11 -0
- package/dist/type/typebox-type-live.js +45 -0
- package/dist/type/typebox-type-live.mjs +20 -0
- package/dist/type/typebox-type.d.ts +34 -0
- package/dist/type/typebox-type.js +199 -0
- package/dist/type/typebox-type.mjs +86 -0
- package/dist/type/typebox-value-live.d.ts +11 -0
- package/dist/type/typebox-value-live.js +31 -0
- package/dist/type/typebox-value-live.mjs +13 -0
- package/dist/type/typebox-value-ops.d.ts +4 -0
- package/dist/type/typebox-value-ops.js +90 -0
- package/dist/type/typebox-value-ops.mjs +5 -0
- package/dist/type/typebox-value-require.d.ts +8 -0
- package/dist/type/typebox-value-require.js +28 -0
- package/dist/type/typebox-value-require.mjs +25 -0
- package/dist/type/typebox-value.d.ts +35 -0
- package/dist/type/typebox-value.js +161 -0
- package/dist/type/typebox-value.mjs +74 -0
- package/dist/type/utils.js +1 -10
- package/dist/type/utils.mjs +1 -10
- package/dist/type/validator/clean-safe.d.ts +2 -4
- package/dist/type/validator/clean-safe.js +15 -11
- package/dist/type/validator/clean-safe.mjs +16 -10
- package/dist/type/validator/custom-error.js +12 -16
- package/dist/type/validator/custom-error.mjs +11 -14
- package/dist/type/validator/default-precompute.d.ts +9 -1
- package/dist/type/validator/default-precompute.js +40 -77
- package/dist/type/validator/default-precompute.mjs +37 -74
- package/dist/type/validator/exact-mirror-live.d.ts +8 -0
- package/dist/type/validator/exact-mirror-live.js +22 -0
- package/dist/type/validator/exact-mirror-live.mjs +17 -0
- package/dist/type/validator/exact-mirror-require.d.ts +4 -0
- package/dist/type/validator/exact-mirror-require.js +11 -0
- package/dist/type/validator/exact-mirror-require.mjs +9 -0
- package/dist/type/validator/exact-mirror.js +8 -8
- package/dist/type/validator/exact-mirror.mjs +9 -8
- package/dist/type/validator/frozen-check.js +5 -6
- package/dist/type/validator/frozen-check.mjs +6 -7
- package/dist/type/validator/index.d.ts +1 -0
- package/dist/type/validator/index.js +169 -166
- package/dist/type/validator/index.mjs +162 -158
- package/dist/type/validator/string-codec-aot.d.ts +2 -1
- package/dist/type/validator/string-codec-aot.js +8 -2
- package/dist/type/validator/string-codec-aot.mjs +7 -2
- package/dist/type/validator/validator-cache.d.ts +5 -4
- package/dist/type/validator/validator-cache.js +41 -24
- package/dist/type/validator/validator-cache.mjs +40 -22
- package/dist/types.d.ts +263 -95
- package/dist/universal/constants.d.ts +2 -1
- package/dist/universal/constants.js +3 -1
- package/dist/universal/constants.mjs +2 -1
- package/dist/universal/env.js +2 -3
- package/dist/universal/env.mjs +2 -3
- package/dist/universal/file.d.ts +6 -4
- package/dist/universal/file.js +11 -16
- package/dist/universal/file.mjs +12 -16
- package/dist/universal/index.d.ts +2 -2
- package/dist/universal/is-production.d.ts +1 -2
- package/dist/universal/is-production.js +1 -3
- package/dist/universal/is-production.mjs +2 -3
- package/dist/universal/server.d.ts +0 -272
- package/dist/utils.d.ts +43 -7
- package/dist/utils.js +181 -126
- package/dist/utils.mjs +168 -126
- package/dist/validator/index.d.ts +1 -1
- package/dist/validator/index.js +17 -30
- package/dist/validator/index.mjs +18 -31
- package/dist/validator/route.js +2 -1
- package/dist/validator/route.mjs +2 -1
- package/dist/ws/context.d.ts +8 -1
- package/dist/ws/context.js +68 -44
- package/dist/ws/context.mjs +67 -44
- package/dist/ws/parser.js +10 -20
- package/dist/ws/parser.mjs +10 -20
- package/dist/ws/route.d.ts +2 -2
- package/dist/ws/route.js +249 -141
- package/dist/ws/route.mjs +254 -146
- package/dist/ws/types.d.ts +2 -2
- package/package.json +23 -49
- package/dist/compile/analysis-cache.d.ts +0 -6
- package/dist/compile/analysis-cache.js +0 -12
- package/dist/compile/analysis-cache.mjs +0 -11
- package/dist/cookie/index.d.ts +0 -7
- package/dist/cookie/index.js +0 -13
- package/dist/cookie/index.mjs +0 -7
- package/dist/handler/index.d.ts +0 -2
- package/dist/handler/index.js +0 -5
- package/dist/handler/index.mjs +0 -3
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { dangerousKeys } from "../../constants.mjs";
|
|
2
2
|
import { nullObject } from "../../utils.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { isProduction } from "../../universal/is-production.mjs";
|
|
4
|
+
import { schemaSome } from "./clean-safe.mjs";
|
|
5
|
+
import { Default } from "../typebox-value.mjs";
|
|
4
6
|
|
|
5
7
|
//#region src/type/validator/default-precompute.ts
|
|
6
8
|
function isPrecomputeSafe(schema, depth = 0) {
|
|
@@ -64,64 +66,16 @@ function applyPrecomputed(defaults, value) {
|
|
|
64
66
|
}
|
|
65
67
|
return out;
|
|
66
68
|
}
|
|
67
|
-
const subtreeHasDefault = (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
for (const k in n.properties) if (f(n.properties[k])) return true;
|
|
72
|
-
}
|
|
73
|
-
const items = n.items;
|
|
74
|
-
if (Array.isArray(items)) {
|
|
75
|
-
for (const it of items) if (f(it)) return true;
|
|
76
|
-
} else if (items && f(items)) return true;
|
|
77
|
-
for (const key of [
|
|
78
|
-
"anyOf",
|
|
79
|
-
"allOf",
|
|
80
|
-
"oneOf"
|
|
81
|
-
]) {
|
|
82
|
-
const arr = n[key];
|
|
83
|
-
if (Array.isArray(arr)) {
|
|
84
|
-
for (const s of arr) if (f(s)) return true;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (typeof n.additionalProperties === "object" && f(n.additionalProperties)) return true;
|
|
88
|
-
if (n.patternProperties) {
|
|
89
|
-
for (const k in n.patternProperties) if (f(n.patternProperties[k])) return true;
|
|
90
|
-
}
|
|
91
|
-
for (const key of [
|
|
92
|
-
"not",
|
|
93
|
-
"if",
|
|
94
|
-
"then",
|
|
95
|
-
"else"
|
|
96
|
-
]) if (n[key] && f(n[key])) return true;
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
const hasDefaultBelow = (node) => childSchemaSome(node, subtreeHasDefault);
|
|
100
|
-
function hasUnemittableDefaultValue(node) {
|
|
101
|
-
if (!node || typeof node !== "object") return false;
|
|
102
|
-
if ("default" in node && !isEmittable(node.default, /* @__PURE__ */ new Set(), true)) return true;
|
|
103
|
-
return childSchemaSome(node, hasUnemittableDefaultValue);
|
|
104
|
-
}
|
|
105
|
-
function containsRefLike(node, seen = /* @__PURE__ */ new WeakSet()) {
|
|
106
|
-
if (!node || typeof node !== "object" || seen.has(node)) return false;
|
|
107
|
-
seen.add(node);
|
|
108
|
-
if (node.$ref !== void 0 || node["~kind"] === "Ref" || node["~kind"] === "This" || node["~kind"] === "Cyclic") return true;
|
|
109
|
-
return childSchemaSome(node, (child) => containsRefLike(child, seen));
|
|
110
|
-
}
|
|
111
|
-
function hasDivergentDefaultBelow(node) {
|
|
112
|
-
const ownKey = "default" in node ? canonical(node.default) : void 0;
|
|
113
|
-
let bad = false;
|
|
114
|
-
const visit = (n) => {
|
|
115
|
-
if (!n || typeof n !== "object") return false;
|
|
116
|
-
if ("default" in n && (ownKey === void 0 || canonical(n.default) !== ownKey)) return bad = true;
|
|
117
|
-
return childSchemaSome(n, visit);
|
|
118
|
-
};
|
|
119
|
-
childSchemaSome(node, visit);
|
|
120
|
-
return bad;
|
|
121
|
-
}
|
|
69
|
+
const subtreeHasDefault = (node) => schemaSome(node, (n) => "default" in n, void 0, void 0, true);
|
|
70
|
+
const hasDefaultBelow = (node) => schemaSome(node, (n) => n !== node && "default" in n, void 0, void 0, true);
|
|
71
|
+
const hasUnemittableDefaultValue = (node) => schemaSome(node, (n) => "default" in n && !isEmittable(n.default, /* @__PURE__ */ new Set(), true), void 0, void 0, true);
|
|
72
|
+
const containsRefLike = (node) => schemaSome(node, (n) => n.$ref !== void 0 || n["~kind"] === "Ref" || n["~kind"] === "This" || n["~kind"] === "Cyclic", void 0, void 0, true);
|
|
122
73
|
function structuralPreallocatable(schema, depth = 0) {
|
|
123
74
|
if (!schema || typeof schema !== "object") return true;
|
|
124
|
-
if (!((schema["~kind"] === "Object" || schema.type === "object") && !schema["~codec"] && !schema["~refine"] && !Array.isArray(schema.anyOf) && !Array.isArray(schema.allOf) && !Array.isArray(schema.oneOf) && schema.$ref === void 0 && schema.if === void 0 && schema.not === void 0))
|
|
75
|
+
if (!((schema["~kind"] === "Object" || schema.type === "object") && !schema["~codec"] && !schema["~refine"] && !Array.isArray(schema.anyOf) && !Array.isArray(schema.allOf) && !Array.isArray(schema.oneOf) && schema.$ref === void 0 && schema.if === void 0 && schema.not === void 0)) {
|
|
76
|
+
const ownKey = "default" in schema ? canonical(schema.default) : void 0;
|
|
77
|
+
return !schemaSome(schema, (n) => n !== schema && "default" in n && (ownKey === void 0 || canonical(n.default) !== ownKey), void 0, void 0, true);
|
|
78
|
+
}
|
|
125
79
|
if (depth > 0 && schema.default === void 0 && hasDefaultBelow(schema)) return false;
|
|
126
80
|
if (typeof schema.additionalProperties === "object" && subtreeHasDefault(schema.additionalProperties)) return false;
|
|
127
81
|
if (schema.patternProperties) {
|
|
@@ -256,11 +210,21 @@ function buildObjectDefaultMergeSource(defaults) {
|
|
|
256
210
|
if (!root) return;
|
|
257
211
|
return `(function(){${helpers.join(";")};return ${root}})()`;
|
|
258
212
|
}
|
|
213
|
+
let compileFailures = 0;
|
|
214
|
+
/**
|
|
215
|
+
* How many emitted default-precompute sources have failed to compile.
|
|
216
|
+
*
|
|
217
|
+
* Build-time only. A non-zero count means codegen emitted source that
|
|
218
|
+
* `Function()` rejected, so those routes silently fell back to the interpreted
|
|
219
|
+
* default path — always a bug in this module, never a user error.
|
|
220
|
+
*/
|
|
221
|
+
const precomputeCompileFailures = () => compileFailures;
|
|
259
222
|
function fromSource(source) {
|
|
260
223
|
try {
|
|
261
224
|
return Function(`return ${source}`)();
|
|
262
|
-
} catch {
|
|
263
|
-
|
|
225
|
+
} catch (error) {
|
|
226
|
+
compileFailures++;
|
|
227
|
+
console.warn("[Elysia] default precompute emitted source that does not compile; falling back to the interpreted default path. This is a bug, please report it:", error, ...isProduction() ? [] : ["\nsource: " + (source.length > 512 ? source.slice(0, 512) + "…" : source)]);
|
|
264
228
|
}
|
|
265
229
|
}
|
|
266
230
|
function createDefaultCloner(value) {
|
|
@@ -284,10 +248,6 @@ function mergeCategory(node) {
|
|
|
284
248
|
if ((kind === "Array" || node.type === "array") && node.items) return !Array.isArray(node.items) && subtreeHasDefault(node.items) ? "array" : "identity";
|
|
285
249
|
return "identity";
|
|
286
250
|
}
|
|
287
|
-
function presentExpr(child, isObject, varName) {
|
|
288
|
-
if (child === "") return varName;
|
|
289
|
-
return isObject ? `(${varName}!==null&&typeof ${varName}==='object'&&!Array.isArray(${varName})?${child}(${varName}):${varName})` : `(Array.isArray(${varName})?${child}(${varName}):${varName})`;
|
|
290
|
-
}
|
|
291
251
|
function mergeExpression(schema, varName, helpers, memo) {
|
|
292
252
|
const full = Default(schema, void 0);
|
|
293
253
|
const child = emitMerger(schema, helpers, memo);
|
|
@@ -295,9 +255,13 @@ function mergeExpression(schema, varName, helpers, memo) {
|
|
|
295
255
|
const absent = full === void 0 ? void 0 : cloneExpression(full);
|
|
296
256
|
if (full !== void 0 && absent === void 0) return;
|
|
297
257
|
const isObject = mergeCategory(schema) === "object";
|
|
258
|
+
let present;
|
|
259
|
+
if (child === "") present = varName;
|
|
260
|
+
else if (isObject) present = `(${varName}!==null&&typeof ${varName}==='object'&&!Array.isArray(${varName})?${child}(${varName}):${varName})`;
|
|
261
|
+
else present = `(Array.isArray(${varName})?${child}(${varName}):${varName})`;
|
|
298
262
|
return {
|
|
299
263
|
absent,
|
|
300
|
-
present
|
|
264
|
+
present,
|
|
301
265
|
child,
|
|
302
266
|
isObject
|
|
303
267
|
};
|
|
@@ -363,14 +327,6 @@ function emitMerger(node, helpers, memo = /* @__PURE__ */ new WeakMap()) {
|
|
|
363
327
|
helpers[+name.slice(2)] = `function ${name}(v){if(!Array.isArray(v))return v;const o=new Array(v.length);let e;for(let i=0;i<v.length;i++){e=v[i];o[i]=${assign}}return o}`;
|
|
364
328
|
return name;
|
|
365
329
|
}
|
|
366
|
-
function buildMergeSource(schema) {
|
|
367
|
-
const category = mergeCategory(schema);
|
|
368
|
-
if (category !== "object" && category !== "array") return;
|
|
369
|
-
const helpers = [];
|
|
370
|
-
const root = emitMerger(schema, helpers, /* @__PURE__ */ new WeakMap());
|
|
371
|
-
if (!root) return;
|
|
372
|
-
return `(function(){${helpers.join(";")};return ${root}})()`;
|
|
373
|
-
}
|
|
374
330
|
let probeImpl;
|
|
375
331
|
function setDefaultProbeImpl(impl) {
|
|
376
332
|
probeImpl = impl;
|
|
@@ -402,7 +358,14 @@ function verifyPreallocatableDefault(schema, validate = true) {
|
|
|
402
358
|
if (containsRefLike(schema)) return;
|
|
403
359
|
if (!isEmittable(pd, /* @__PURE__ */ new Set(), true) || pod !== void 0 && !isEmittable(pod, /* @__PURE__ */ new Set(), true)) return;
|
|
404
360
|
const nullDefault = isPrecomputeSafe(schema);
|
|
405
|
-
let ms
|
|
361
|
+
let ms;
|
|
362
|
+
const category = mergeCategory(schema);
|
|
363
|
+
if (category !== "object" && category !== "array") ms = void 0;
|
|
364
|
+
else {
|
|
365
|
+
const helpers = [];
|
|
366
|
+
const root = emitMerger(schema, helpers, /* @__PURE__ */ new WeakMap());
|
|
367
|
+
ms = root ? `(function(){${helpers.join(";")};return ${root}})()` : void 0;
|
|
368
|
+
}
|
|
406
369
|
if (ms !== void 0 && validate && !probe().validateMergeSource(schema, ms)) ms = void 0;
|
|
407
370
|
if (!nullDefault && ms === void 0) {
|
|
408
371
|
if (!rootIsObject) return;
|
|
@@ -418,4 +381,4 @@ function verifyPreallocatableDefault(schema, validate = true) {
|
|
|
418
381
|
}
|
|
419
382
|
|
|
420
383
|
//#endregion
|
|
421
|
-
export { applyPrecomputed, buildDefaultClonerSource, buildObjectDefaultMergeSource, canonical, createDefaultCloner, createMergerFromSource, createObjectDefaultMerger, isEmittable, setDefaultProbeImpl, verifyPreallocatableDefault };
|
|
384
|
+
export { applyPrecomputed, buildDefaultClonerSource, buildObjectDefaultMergeSource, canonical, createDefaultCloner, createMergerFromSource, createObjectDefaultMerger, isEmittable, precomputeCompileFailures, setDefaultProbeImpl, verifyPreallocatableDefault };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CreateMirror } from "./exact-mirror.js";
|
|
2
|
+
|
|
3
|
+
//#region src/type/validator/exact-mirror-live.d.ts
|
|
4
|
+
declare const getExactMirror: () => CreateMirror | undefined;
|
|
5
|
+
declare const setExactMirror: (mirror: CreateMirror | undefined) => CreateMirror | undefined;
|
|
6
|
+
declare const exactMirrorRequired: () => Error;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { type CreateMirror, exactMirrorRequired, getExactMirror, setExactMirror };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
let exact_mirror = require("exact-mirror");
|
|
4
|
+
exact_mirror = require_runtime.__toESM(exact_mirror);
|
|
5
|
+
|
|
6
|
+
//#region src/type/validator/exact-mirror-live.ts
|
|
7
|
+
/**
|
|
8
|
+
* Statically wired mirror of `./exact-mirror`
|
|
9
|
+
*
|
|
10
|
+
* The AOT build plugin re-routes `exact-mirror` to this module when the package
|
|
11
|
+
* resolves at build time, so bundlers embed it instead of leaving the runtime
|
|
12
|
+
* `require('exact-mirror')` unresolvable
|
|
13
|
+
*/
|
|
14
|
+
let exactMirror = exact_mirror.default;
|
|
15
|
+
const getExactMirror = () => exactMirror;
|
|
16
|
+
const setExactMirror = (mirror) => exactMirror = mirror;
|
|
17
|
+
const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.exactMirrorRequired = exactMirrorRequired;
|
|
21
|
+
exports.getExactMirror = getExactMirror;
|
|
22
|
+
exports.setExactMirror = setExactMirror;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import mirror from "exact-mirror";
|
|
2
|
+
|
|
3
|
+
//#region src/type/validator/exact-mirror-live.ts
|
|
4
|
+
/**
|
|
5
|
+
* Statically wired mirror of `./exact-mirror`
|
|
6
|
+
*
|
|
7
|
+
* The AOT build plugin re-routes `exact-mirror` to this module when the package
|
|
8
|
+
* resolves at build time, so bundlers embed it instead of leaving the runtime
|
|
9
|
+
* `require('exact-mirror')` unresolvable
|
|
10
|
+
*/
|
|
11
|
+
let exactMirror = mirror;
|
|
12
|
+
const getExactMirror = () => exactMirror;
|
|
13
|
+
const setExactMirror = (mirror) => exactMirror = mirror;
|
|
14
|
+
const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { exactMirrorRequired, getExactMirror, setExactMirror };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/type/validator/exact-mirror-require.ts
|
|
4
|
+
const requireExactMirror = () => {
|
|
5
|
+
if (typeof require === "function") try {
|
|
6
|
+
return require("exact-mirror");
|
|
7
|
+
} catch {}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.requireExactMirror = requireExactMirror;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_type_sync_require = require('../sync-require.js');
|
|
3
|
+
const require_type_validator_exact_mirror_require = require('./exact-mirror-require.js');
|
|
2
4
|
|
|
3
5
|
//#region src/type/validator/exact-mirror.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
let exactMirror = loadExactMirror();
|
|
6
|
+
let exactMirror;
|
|
7
|
+
try {
|
|
8
|
+
const module = require_type_validator_exact_mirror_require.requireExactMirror() ?? require_type_sync_require.syncRequire({}, require("url").pathToFileURL(__filename).href)?.("exact-mirror");
|
|
9
|
+
const mirror = module?.default ?? module;
|
|
10
|
+
exactMirror = typeof mirror === "function" ? mirror : void 0;
|
|
11
|
+
} catch {}
|
|
12
12
|
const getExactMirror = () => exactMirror;
|
|
13
13
|
const setExactMirror = (mirror) => exactMirror = mirror;
|
|
14
14
|
const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { syncRequire } from "../sync-require.mjs";
|
|
2
|
+
import { requireExactMirror } from "./exact-mirror-require.mjs";
|
|
3
|
+
|
|
1
4
|
//#region src/type/validator/exact-mirror.ts
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
let exactMirror = loadExactMirror();
|
|
5
|
+
let exactMirror;
|
|
6
|
+
try {
|
|
7
|
+
const module = requireExactMirror() ?? syncRequire(import.meta, import.meta.url)?.("exact-mirror");
|
|
8
|
+
const mirror = module?.default ?? module;
|
|
9
|
+
exactMirror = typeof mirror === "function" ? mirror : void 0;
|
|
10
|
+
} catch {}
|
|
10
11
|
const getExactMirror = () => exactMirror;
|
|
11
12
|
const setExactMirror = (mirror) => exactMirror = mirror;
|
|
12
13
|
const exactMirrorRequired = () => /* @__PURE__ */ new Error("exact-mirror is required when using normalize: 'exactMirror' or sanitize. Install it and, if the runtime cannot load CommonJS modules, register it with setupTypebox({ exactMirror }); otherwise use normalize: 'typebox'.");
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_compile_aot_reconstruct = require('../../compile/aot-reconstruct.js');
|
|
3
2
|
const require_compile_aot_emit = require('../../compile/aot-emit.js');
|
|
4
3
|
|
|
5
4
|
//#region src/type/validator/frozen-check.ts
|
|
6
5
|
function buildFrozenCheck(build, node) {
|
|
7
6
|
if (!build?.functions?.length || !build.entry) return;
|
|
8
|
-
const
|
|
9
|
-
if (!
|
|
10
|
-
const cr = require_compile_aot_emit.reconstructCheck(
|
|
7
|
+
const b = require_compile_aot_emit.alignBuildExternals(build, node);
|
|
8
|
+
if (!b) return;
|
|
9
|
+
const cr = require_compile_aot_emit.reconstructCheck(b);
|
|
11
10
|
return {
|
|
12
|
-
identifier:
|
|
11
|
+
identifier: b.external.identifier,
|
|
13
12
|
checkDefs: cr.defs,
|
|
14
13
|
checkValue: cr.value,
|
|
15
|
-
external:
|
|
14
|
+
external: b.external.variables.length > 0
|
|
16
15
|
};
|
|
17
16
|
}
|
|
18
17
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { externalsMatch, reconstructCheck } from "../../compile/aot-emit.mjs";
|
|
1
|
+
import { alignBuildExternals, reconstructCheck } from "../../compile/aot-emit.mjs";
|
|
3
2
|
|
|
4
3
|
//#region src/type/validator/frozen-check.ts
|
|
5
4
|
function buildFrozenCheck(build, node) {
|
|
6
5
|
if (!build?.functions?.length || !build.entry) return;
|
|
7
|
-
const
|
|
8
|
-
if (!
|
|
9
|
-
const cr = reconstructCheck(
|
|
6
|
+
const b = alignBuildExternals(build, node);
|
|
7
|
+
if (!b) return;
|
|
8
|
+
const cr = reconstructCheck(b);
|
|
10
9
|
return {
|
|
11
|
-
identifier:
|
|
10
|
+
identifier: b.external.identifier,
|
|
12
11
|
checkDefs: cr.defs,
|
|
13
12
|
checkValue: cr.value,
|
|
14
|
-
external:
|
|
13
|
+
external: b.external.variables.length > 0
|
|
15
14
|
};
|
|
16
15
|
}
|
|
17
16
|
|
|
@@ -10,6 +10,7 @@ declare function shallowMergeObjects(members: any[]): TSchema | null;
|
|
|
10
10
|
declare function schemaMayHaveAsyncRefine(node: any, seen?: WeakSet<object>): boolean;
|
|
11
11
|
declare class TypeBoxValidator<const in out T extends TSchema = TAny> extends Validator$1 {
|
|
12
12
|
#private;
|
|
13
|
+
static member(schema: TSchema, compiled: any): boolean;
|
|
13
14
|
tb?: Validator;
|
|
14
15
|
reconstructedCheck?: (value: unknown) => boolean;
|
|
15
16
|
schema: T;
|