@sinclair/typebox 0.32.0-dev-23 → 0.32.0-dev-25

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 (114) hide show
  1. package/build/import/compiler/compiler.d.mts +3 -2
  2. package/build/import/compiler/compiler.mjs +3 -2
  3. package/build/import/errors/errors.d.mts +2 -1
  4. package/build/import/errors/errors.mjs +2 -1
  5. package/build/import/index.d.mts +2 -1
  6. package/build/import/index.mjs +2 -1
  7. package/build/import/system/system.d.mts +3 -2
  8. package/build/import/system/system.mjs +3 -2
  9. package/build/import/type/error/error.d.mts +4 -0
  10. package/build/import/type/error/error.mjs +6 -0
  11. package/build/import/type/error/index.d.mts +1 -0
  12. package/build/import/type/error/index.mjs +1 -0
  13. package/build/import/type/extends/extends-check.d.mts +2 -1
  14. package/build/import/type/extends/extends-check.mjs +2 -1
  15. package/build/import/type/guard/type.d.mts +2 -1
  16. package/build/import/type/guard/type.mjs +2 -1
  17. package/build/import/type/index.d.mts +1 -0
  18. package/build/import/type/index.mjs +1 -0
  19. package/build/import/type/indexed/index.d.mts +1 -0
  20. package/build/import/type/indexed/index.mjs +1 -0
  21. package/build/import/type/indexed/indexed-from-mapped-result.d.mts +12 -0
  22. package/build/import/type/indexed/indexed-from-mapped-result.mjs +18 -0
  23. package/build/import/type/indexed/indexed.d.mts +4 -1
  24. package/build/import/type/indexed/indexed.mjs +6 -5
  25. package/build/import/type/record/record.d.mts +1 -1
  26. package/build/import/type/template-literal/finite.d.mts +2 -1
  27. package/build/import/type/template-literal/finite.mjs +2 -1
  28. package/build/import/type/template-literal/generate.d.mts +2 -1
  29. package/build/import/type/template-literal/generate.mjs +2 -1
  30. package/build/import/type/template-literal/parse.d.mts +2 -1
  31. package/build/import/type/template-literal/parse.mjs +2 -1
  32. package/build/import/type/template-literal/pattern.d.mts +2 -1
  33. package/build/import/type/template-literal/pattern.mjs +2 -1
  34. package/build/import/type/type/json.d.mts +3 -1
  35. package/build/import/value/cast/cast.d.mts +5 -4
  36. package/build/import/value/cast/cast.mjs +5 -4
  37. package/build/import/value/check/check.d.mts +2 -1
  38. package/build/import/value/check/check.mjs +2 -1
  39. package/build/import/value/convert/convert.d.mts +2 -1
  40. package/build/import/value/convert/convert.mjs +2 -1
  41. package/build/import/value/create/create.d.mts +7 -6
  42. package/build/import/value/create/create.mjs +7 -6
  43. package/build/import/value/delta/delta.d.mts +3 -2
  44. package/build/import/value/delta/delta.mjs +3 -2
  45. package/build/import/value/deref/deref.d.mts +2 -1
  46. package/build/import/value/deref/deref.mjs +2 -1
  47. package/build/import/value/hash/hash.d.mts +2 -1
  48. package/build/import/value/hash/hash.mjs +2 -1
  49. package/build/import/value/mutate/mutate.d.mts +3 -2
  50. package/build/import/value/mutate/mutate.mjs +3 -2
  51. package/build/import/value/pointer/pointer.d.mts +3 -2
  52. package/build/import/value/pointer/pointer.mjs +3 -2
  53. package/build/import/value/transform/decode.d.mts +3 -2
  54. package/build/import/value/transform/decode.mjs +3 -2
  55. package/build/import/value/transform/encode.d.mts +3 -2
  56. package/build/import/value/transform/encode.mjs +3 -2
  57. package/build/require/compiler/compiler.d.ts +3 -2
  58. package/build/require/compiler/compiler.js +61 -60
  59. package/build/require/errors/errors.d.ts +2 -1
  60. package/build/require/errors/errors.js +34 -33
  61. package/build/require/index.d.ts +2 -1
  62. package/build/require/index.js +155 -152
  63. package/build/require/system/system.d.ts +3 -2
  64. package/build/require/system/system.js +3 -2
  65. package/build/require/type/error/error.d.ts +4 -0
  66. package/build/require/type/error/error.js +11 -0
  67. package/build/require/type/error/index.d.ts +1 -0
  68. package/build/require/type/error/index.js +18 -0
  69. package/build/require/type/extends/extends-check.d.ts +2 -1
  70. package/build/require/type/extends/extends-check.js +172 -171
  71. package/build/require/type/guard/type.d.ts +2 -1
  72. package/build/require/type/guard/type.js +2 -1
  73. package/build/require/type/index.d.ts +1 -0
  74. package/build/require/type/index.js +1 -0
  75. package/build/require/type/indexed/index.d.ts +1 -0
  76. package/build/require/type/indexed/index.js +1 -0
  77. package/build/require/type/indexed/indexed-from-mapped-result.d.ts +12 -0
  78. package/build/require/type/indexed/indexed-from-mapped-result.js +23 -0
  79. package/build/require/type/indexed/indexed.d.ts +4 -1
  80. package/build/require/type/indexed/indexed.js +5 -4
  81. package/build/require/type/record/record.d.ts +1 -1
  82. package/build/require/type/template-literal/finite.d.ts +2 -1
  83. package/build/require/type/template-literal/finite.js +2 -1
  84. package/build/require/type/template-literal/generate.d.ts +2 -1
  85. package/build/require/type/template-literal/generate.js +2 -1
  86. package/build/require/type/template-literal/parse.d.ts +2 -1
  87. package/build/require/type/template-literal/parse.js +3 -2
  88. package/build/require/type/template-literal/pattern.d.ts +2 -1
  89. package/build/require/type/template-literal/pattern.js +2 -1
  90. package/build/require/type/type/json.d.ts +3 -1
  91. package/build/require/value/cast/cast.d.ts +5 -4
  92. package/build/require/value/cast/cast.js +36 -35
  93. package/build/require/value/check/check.d.ts +2 -1
  94. package/build/require/value/check/check.js +24 -23
  95. package/build/require/value/convert/convert.d.ts +2 -1
  96. package/build/require/value/convert/convert.js +32 -31
  97. package/build/require/value/create/create.d.ts +7 -6
  98. package/build/require/value/create/create.js +7 -6
  99. package/build/require/value/delta/delta.d.ts +3 -2
  100. package/build/require/value/delta/delta.js +20 -19
  101. package/build/require/value/deref/deref.d.ts +2 -1
  102. package/build/require/value/deref/deref.js +2 -1
  103. package/build/require/value/hash/hash.d.ts +2 -1
  104. package/build/require/value/hash/hash.js +2 -1
  105. package/build/require/value/mutate/mutate.d.ts +3 -2
  106. package/build/require/value/mutate/mutate.js +3 -2
  107. package/build/require/value/pointer/pointer.d.ts +3 -2
  108. package/build/require/value/pointer/pointer.js +3 -2
  109. package/build/require/value/transform/decode.d.ts +3 -2
  110. package/build/require/value/transform/decode.js +19 -18
  111. package/build/require/value/transform/encode.d.ts +3 -2
  112. package/build/require/value/transform/encode.js +20 -19
  113. package/package.json +1 -1
  114. package/readme.md +117 -137
@@ -1,12 +1,13 @@
1
+ import { TypeBoxError } from '../../type/error/index';
1
2
  import { ValueError } from '../../errors/index';
2
3
  import type { TSchema } from '../../type/schema/index';
3
- export declare class TransformDecodeCheckError extends Error {
4
+ export declare class TransformDecodeCheckError extends TypeBoxError {
4
5
  readonly schema: TSchema;
5
6
  readonly value: unknown;
6
7
  readonly error: ValueError;
7
8
  constructor(schema: TSchema, value: unknown, error: ValueError);
8
9
  }
9
- export declare class TransformDecodeError extends Error {
10
+ export declare class TransformDecodeError extends TypeBoxError {
10
11
  readonly schema: TSchema;
11
12
  readonly value: unknown;
12
13
  constructor(schema: TSchema, value: unknown, error: any);
@@ -3,14 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.TransformDecode = exports.TransformDecodeError = exports.TransformDecodeCheckError = void 0;
5
5
  const index_1 = require("../../type/symbols/index");
6
- const index_2 = require("../../type/keyof/index");
7
- const index_3 = require("../../type/indexed/index");
8
- const index_4 = require("../deref/index");
9
- const index_5 = require("../check/index");
6
+ const index_2 = require("../../type/error/index");
7
+ const index_3 = require("../../type/keyof/index");
8
+ const index_4 = require("../../type/indexed/index");
9
+ const index_5 = require("../deref/index");
10
+ const index_6 = require("../check/index");
10
11
  // ------------------------------------------------------------------
11
12
  // ValueGuard
12
13
  // ------------------------------------------------------------------
13
- const index_6 = require("../guard/index");
14
+ const index_7 = require("../guard/index");
14
15
  // ------------------------------------------------------------------
15
16
  // TypeGuard
16
17
  // ------------------------------------------------------------------
@@ -19,7 +20,7 @@ const type_1 = require("../../type/guard/type");
19
20
  // Errors
20
21
  // ------------------------------------------------------------------
21
22
  // thrown externally
22
- class TransformDecodeCheckError extends Error {
23
+ class TransformDecodeCheckError extends index_2.TypeBoxError {
23
24
  constructor(schema, value, error) {
24
25
  super(`Unable to decode due to invalid value`);
25
26
  this.schema = schema;
@@ -28,7 +29,7 @@ class TransformDecodeCheckError extends Error {
28
29
  }
29
30
  }
30
31
  exports.TransformDecodeCheckError = TransformDecodeCheckError;
31
- class TransformDecodeError extends Error {
32
+ class TransformDecodeError extends index_2.TypeBoxError {
32
33
  constructor(schema, value, error) {
33
34
  super(`${error instanceof Error ? error.message : 'Unknown error'}`);
34
35
  this.schema = schema;
@@ -50,18 +51,18 @@ function Default(schema, value) {
50
51
  }
51
52
  // prettier-ignore
52
53
  function FromArray(schema, references, value) {
53
- return ((0, index_6.IsArray)(value))
54
+ return ((0, index_7.IsArray)(value))
54
55
  ? Default(schema, value.map((value) => Visit(schema.items, references, value)))
55
56
  : Default(schema, value);
56
57
  }
57
58
  // prettier-ignore
58
59
  function FromIntersect(schema, references, value) {
59
- if (!(0, index_6.IsPlainObject)(value) || (0, index_6.IsValueType)(value))
60
+ if (!(0, index_7.IsPlainObject)(value) || (0, index_7.IsValueType)(value))
60
61
  return Default(schema, value);
61
- const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
62
+ const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
62
63
  const knownProperties = knownKeys.reduce((value, key) => {
63
64
  return (key in value)
64
- ? { ...value, [key]: Visit((0, index_3.Index)(schema, [key]), references, value[key]) }
65
+ ? { ...value, [key]: Visit((0, index_4.Index)(schema, [key]), references, value[key]) }
65
66
  : value;
66
67
  }, value);
67
68
  if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
@@ -81,9 +82,9 @@ function FromNot(schema, references, value) {
81
82
  }
82
83
  // prettier-ignore
83
84
  function FromObject(schema, references, value) {
84
- if (!(0, index_6.IsPlainObject)(value))
85
+ if (!(0, index_7.IsPlainObject)(value))
85
86
  return Default(schema, value);
86
- const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
87
+ const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
87
88
  const knownProperties = knownKeys.reduce((value, key) => {
88
89
  return (key in value)
89
90
  ? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
@@ -103,7 +104,7 @@ function FromObject(schema, references, value) {
103
104
  }
104
105
  // prettier-ignore
105
106
  function FromRecord(schema, references, value) {
106
- if (!(0, index_6.IsPlainObject)(value))
107
+ if (!(0, index_7.IsPlainObject)(value))
107
108
  return Default(schema, value);
108
109
  const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
109
110
  const knownKeys = new RegExp(pattern);
@@ -126,24 +127,24 @@ function FromRecord(schema, references, value) {
126
127
  }
127
128
  // prettier-ignore
128
129
  function FromRef(schema, references, value) {
129
- const target = (0, index_4.Deref)(schema, references);
130
+ const target = (0, index_5.Deref)(schema, references);
130
131
  return Default(schema, Visit(target, references, value));
131
132
  }
132
133
  // prettier-ignore
133
134
  function FromThis(schema, references, value) {
134
- const target = (0, index_4.Deref)(schema, references);
135
+ const target = (0, index_5.Deref)(schema, references);
135
136
  return Default(schema, Visit(target, references, value));
136
137
  }
137
138
  // prettier-ignore
138
139
  function FromTuple(schema, references, value) {
139
- return ((0, index_6.IsArray)(value) && (0, index_6.IsArray)(schema.items))
140
+ return ((0, index_7.IsArray)(value) && (0, index_7.IsArray)(schema.items))
140
141
  ? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
141
142
  : Default(schema, value);
142
143
  }
143
144
  // prettier-ignore
144
145
  function FromUnion(schema, references, value) {
145
146
  for (const subschema of schema.anyOf) {
146
- if (!(0, index_5.Check)(subschema, references, value))
147
+ if (!(0, index_6.Check)(subschema, references, value))
147
148
  continue;
148
149
  // note: ensure interior is decoded first
149
150
  const decoded = Visit(subschema, references, value);
@@ -1,12 +1,13 @@
1
+ import { TypeBoxError } from '../../type/error/index';
1
2
  import { ValueError } from '../../errors/index';
2
3
  import type { TSchema } from '../../type/schema/index';
3
- export declare class TransformEncodeCheckError extends Error {
4
+ export declare class TransformEncodeCheckError extends TypeBoxError {
4
5
  readonly schema: TSchema;
5
6
  readonly value: unknown;
6
7
  readonly error: ValueError;
7
8
  constructor(schema: TSchema, value: unknown, error: ValueError);
8
9
  }
9
- export declare class TransformEncodeError extends Error {
10
+ export declare class TransformEncodeError extends TypeBoxError {
10
11
  readonly schema: TSchema;
11
12
  readonly value: unknown;
12
13
  constructor(schema: TSchema, value: unknown, error: any);
@@ -3,14 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.TransformEncode = exports.TransformEncodeError = exports.TransformEncodeCheckError = void 0;
5
5
  const index_1 = require("../../type/symbols/index");
6
- const index_2 = require("../../type/keyof/index");
7
- const index_3 = require("../../type/indexed/index");
8
- const index_4 = require("../deref/index");
9
- const index_5 = require("../check/index");
6
+ const index_2 = require("../../type/error/index");
7
+ const index_3 = require("../../type/keyof/index");
8
+ const index_4 = require("../../type/indexed/index");
9
+ const index_5 = require("../deref/index");
10
+ const index_6 = require("../check/index");
10
11
  // ------------------------------------------------------------------
11
12
  // ValueGuard
12
13
  // ------------------------------------------------------------------
13
- const index_6 = require("../guard/index");
14
+ const index_7 = require("../guard/index");
14
15
  // ------------------------------------------------------------------
15
16
  // TypeGuard
16
17
  // ------------------------------------------------------------------
@@ -18,7 +19,7 @@ const type_1 = require("../../type/guard/type");
18
19
  // ------------------------------------------------------------------
19
20
  // Errors
20
21
  // ------------------------------------------------------------------
21
- class TransformEncodeCheckError extends Error {
22
+ class TransformEncodeCheckError extends index_2.TypeBoxError {
22
23
  constructor(schema, value, error) {
23
24
  super(`Unable to encode due to invalid value`);
24
25
  this.schema = schema;
@@ -27,7 +28,7 @@ class TransformEncodeCheckError extends Error {
27
28
  }
28
29
  }
29
30
  exports.TransformEncodeCheckError = TransformEncodeCheckError;
30
- class TransformEncodeError extends Error {
31
+ class TransformEncodeError extends index_2.TypeBoxError {
31
32
  constructor(schema, value, error) {
32
33
  super(`${error instanceof Error ? error.message : 'Unknown error'}`);
33
34
  this.schema = schema;
@@ -50,19 +51,19 @@ function Default(schema, value) {
50
51
  // prettier-ignore
51
52
  function FromArray(schema, references, value) {
52
53
  const defaulted = Default(schema, value);
53
- return (0, index_6.IsArray)(defaulted)
54
+ return (0, index_7.IsArray)(defaulted)
54
55
  ? defaulted.map((value) => Visit(schema.items, references, value))
55
56
  : defaulted;
56
57
  }
57
58
  // prettier-ignore
58
59
  function FromIntersect(schema, references, value) {
59
60
  const defaulted = Default(schema, value);
60
- if (!(0, index_6.IsPlainObject)(value) || (0, index_6.IsValueType)(value))
61
+ if (!(0, index_7.IsPlainObject)(value) || (0, index_7.IsValueType)(value))
61
62
  return defaulted;
62
- const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
63
+ const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
63
64
  const knownProperties = knownKeys.reduce((value, key) => {
64
65
  return key in defaulted
65
- ? { ...value, [key]: Visit((0, index_3.Index)(schema, [key]), references, value[key]) }
66
+ ? { ...value, [key]: Visit((0, index_4.Index)(schema, [key]), references, value[key]) }
66
67
  : value;
67
68
  }, defaulted);
68
69
  if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
@@ -83,9 +84,9 @@ function FromNot(schema, references, value) {
83
84
  // prettier-ignore
84
85
  function FromObject(schema, references, value) {
85
86
  const defaulted = Default(schema, value);
86
- if (!(0, index_6.IsPlainObject)(value))
87
+ if (!(0, index_7.IsPlainObject)(value))
87
88
  return defaulted;
88
- const knownKeys = (0, index_2.KeyOfPropertyKeys)(schema);
89
+ const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
89
90
  const knownProperties = knownKeys.reduce((value, key) => {
90
91
  return key in value
91
92
  ? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
@@ -105,7 +106,7 @@ function FromObject(schema, references, value) {
105
106
  // prettier-ignore
106
107
  function FromRecord(schema, references, value) {
107
108
  const defaulted = Default(schema, value);
108
- if (!(0, index_6.IsPlainObject)(value))
109
+ if (!(0, index_7.IsPlainObject)(value))
109
110
  return defaulted;
110
111
  const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
111
112
  const knownKeys = new RegExp(pattern);
@@ -127,26 +128,26 @@ function FromRecord(schema, references, value) {
127
128
  }
128
129
  // prettier-ignore
129
130
  function FromRef(schema, references, value) {
130
- const target = (0, index_4.Deref)(schema, references);
131
+ const target = (0, index_5.Deref)(schema, references);
131
132
  const resolved = Visit(target, references, value);
132
133
  return Default(schema, resolved);
133
134
  }
134
135
  // prettier-ignore
135
136
  function FromThis(schema, references, value) {
136
- const target = (0, index_4.Deref)(schema, references);
137
+ const target = (0, index_5.Deref)(schema, references);
137
138
  const resolved = Visit(target, references, value);
138
139
  return Default(schema, resolved);
139
140
  }
140
141
  // prettier-ignore
141
142
  function FromTuple(schema, references, value) {
142
143
  const value1 = Default(schema, value);
143
- return (0, index_6.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
144
+ return (0, index_7.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
144
145
  }
145
146
  // prettier-ignore
146
147
  function FromUnion(schema, references, value) {
147
148
  // test value against union variants
148
149
  for (const subschema of schema.anyOf) {
149
- if (!(0, index_5.Check)(subschema, references, value))
150
+ if (!(0, index_6.Check)(subschema, references, value))
150
151
  continue;
151
152
  const value1 = Visit(subschema, references, value);
152
153
  return Default(schema, value1);
@@ -154,7 +155,7 @@ function FromUnion(schema, references, value) {
154
155
  // test transformed value against union variants
155
156
  for (const subschema of schema.anyOf) {
156
157
  const value1 = Visit(subschema, references, value);
157
- if (!(0, index_5.Check)(schema, references, value1))
158
+ if (!(0, index_6.Check)(schema, references, value1))
158
159
  continue;
159
160
  return Default(schema, value1);
160
161
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sinclair/typebox",
3
- "version": "0.32.0-dev-23",
3
+ "version": "0.32.0-dev-25",
4
4
  "description": "Json Schema Type Builder with Static Type Resolution for TypeScript",
5
5
  "keywords": [
6
6
  "typescript",