@tstdl/base 0.71.87 → 0.78.0-beta1

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 (373) hide show
  1. package/.eslintrc.js +2 -4
  2. package/api/client/client.js +2 -12
  3. package/api/client/client.js.map +1 -1
  4. package/api/default-error-handlers.d.ts +0 -4
  5. package/api/default-error-handlers.js +1 -6
  6. package/api/default-error-handlers.js.map +1 -1
  7. package/api/server/error-handler.js +2 -2
  8. package/api/server/error-handler.js.map +1 -1
  9. package/api/server/gateway.js +12 -18
  10. package/api/server/gateway.js.map +1 -1
  11. package/api/server/module.d.ts +0 -4
  12. package/api/server/module.js +1 -12
  13. package/api/server/module.js.map +1 -1
  14. package/api/types.d.ts +8 -32
  15. package/api/types.js.map +1 -1
  16. package/container/container.js +2 -2
  17. package/container/container.js.map +1 -1
  18. package/data-structures/index.d.ts +1 -0
  19. package/data-structures/index.js +1 -0
  20. package/data-structures/index.js.map +1 -1
  21. package/data-structures/iterable-weak-map.d.ts +29 -0
  22. package/data-structures/iterable-weak-map.js +128 -0
  23. package/data-structures/iterable-weak-map.js.map +1 -0
  24. package/data-structures/multi-key-map.d.ts +12 -1
  25. package/data-structures/multi-key-map.js +22 -11
  26. package/data-structures/multi-key-map.js.map +1 -1
  27. package/error/custom.error.d.ts +3 -1
  28. package/error/custom.error.js +16 -7
  29. package/error/custom.error.js.map +1 -1
  30. package/examples/api/basic-overview.js +16 -8
  31. package/examples/api/basic-overview.js.map +1 -1
  32. package/http/http.error.d.ts +4 -2
  33. package/http/http.error.js +6 -0
  34. package/http/http.error.js.map +1 -1
  35. package/image-service/image-service.d.ts +32 -65
  36. package/image-service/image-service.js +73 -15
  37. package/image-service/image-service.js.map +1 -1
  38. package/json-path/json-path.d.ts +8 -3
  39. package/json-path/json-path.js +24 -7
  40. package/json-path/json-path.js.map +1 -1
  41. package/logger/console/logger.js +2 -2
  42. package/logger/console/logger.js.map +1 -1
  43. package/mail/mail.service.js +2 -2
  44. package/mail/mail.service.js.map +1 -1
  45. package/module/modules/index.d.ts +0 -1
  46. package/module/modules/index.js +0 -1
  47. package/module/modules/index.js.map +1 -1
  48. package/openid-connect/oidc-configuration.service.js +7 -7
  49. package/openid-connect/oidc-configuration.service.js.map +1 -1
  50. package/openid-connect/oidc.service.js +7 -7
  51. package/openid-connect/oidc.service.js.map +1 -1
  52. package/package.json +3 -4
  53. package/process-shutdown.js +3 -2
  54. package/process-shutdown.js.map +1 -1
  55. package/reflection/decorators.js +1 -0
  56. package/reflection/decorators.js.map +1 -1
  57. package/reflection/reflection-data-map.d.ts +10 -0
  58. package/reflection/reflection-data-map.js +40 -0
  59. package/reflection/reflection-data-map.js.map +1 -0
  60. package/reflection/registry.d.ts +7 -7
  61. package/reflection/registry.js +7 -6
  62. package/reflection/registry.js.map +1 -1
  63. package/reflection/types.d.ts +1 -0
  64. package/reflection/utils.d.ts +6 -3
  65. package/reflection/utils.js +9 -35
  66. package/reflection/utils.js.map +1 -1
  67. package/schema/array-constraints/index.d.ts +2 -0
  68. package/{old-api/validation/validators → schema/array-constraints}/index.js +2 -1
  69. package/schema/array-constraints/index.js.map +1 -0
  70. package/schema/array-constraints/maximum-length.d.ts +11 -0
  71. package/schema/array-constraints/maximum-length.js +26 -0
  72. package/schema/array-constraints/maximum-length.js.map +1 -0
  73. package/schema/array-constraints/minimum-length.d.ts +11 -0
  74. package/schema/array-constraints/minimum-length.js +26 -0
  75. package/schema/array-constraints/minimum-length.js.map +1 -0
  76. package/schema/coercers/boolean.coercer.d.ts +9 -0
  77. package/schema/coercers/boolean.coercer.js +35 -0
  78. package/schema/coercers/boolean.coercer.js.map +1 -0
  79. package/schema/coercers/date.coercer.d.ts +9 -0
  80. package/schema/coercers/date.coercer.js +24 -0
  81. package/schema/coercers/date.coercer.js.map +1 -0
  82. package/schema/coercers/default-value.coercer.d.ts +9 -0
  83. package/schema/coercers/default-value.coercer.js +16 -0
  84. package/schema/coercers/default-value.coercer.js.map +1 -0
  85. package/schema/coercers/index.d.ts +7 -0
  86. package/schema/coercers/index.js +24 -0
  87. package/schema/coercers/index.js.map +1 -0
  88. package/schema/coercers/number.coercer.d.ts +9 -0
  89. package/schema/coercers/number.coercer.js +22 -0
  90. package/schema/coercers/number.coercer.js.map +1 -0
  91. package/schema/coercers/regexp.coercer.d.ts +11 -0
  92. package/schema/coercers/regexp.coercer.js +24 -0
  93. package/schema/coercers/regexp.coercer.js.map +1 -0
  94. package/schema/coercers/string.coercer.d.ts +9 -0
  95. package/schema/coercers/string.coercer.js +22 -0
  96. package/schema/coercers/string.coercer.js.map +1 -0
  97. package/schema/coercers/uint8-array.coercer.d.ts +9 -0
  98. package/schema/coercers/uint8-array.coercer.js +31 -0
  99. package/schema/coercers/uint8-array.coercer.js.map +1 -0
  100. package/schema/constraints/enumeration.d.ts +13 -0
  101. package/schema/constraints/enumeration.js +29 -0
  102. package/schema/constraints/enumeration.js.map +1 -0
  103. package/schema/constraints/generic.d.ts +22 -0
  104. package/schema/constraints/generic.js +32 -0
  105. package/schema/constraints/generic.js.map +1 -0
  106. package/schema/constraints/index.d.ts +12 -0
  107. package/schema/constraints/index.js +29 -0
  108. package/schema/constraints/index.js.map +1 -0
  109. package/schema/constraints/integer.d.ts +12 -0
  110. package/schema/constraints/integer.js +27 -0
  111. package/schema/constraints/integer.js.map +1 -0
  112. package/schema/constraints/length.d.ts +6 -0
  113. package/schema/constraints/length.js +20 -0
  114. package/schema/constraints/length.js.map +1 -0
  115. package/schema/constraints/literal.d.ts +10 -0
  116. package/schema/constraints/literal.js +26 -0
  117. package/schema/constraints/literal.js.map +1 -0
  118. package/schema/constraints/maximum-date.d.ts +12 -0
  119. package/schema/constraints/maximum-date.js +29 -0
  120. package/schema/constraints/maximum-date.js.map +1 -0
  121. package/schema/constraints/maximum-length.d.ts +12 -0
  122. package/schema/constraints/maximum-length.js +29 -0
  123. package/schema/constraints/maximum-length.js.map +1 -0
  124. package/schema/constraints/maximum.d.ts +12 -0
  125. package/schema/constraints/maximum.js +27 -0
  126. package/schema/constraints/maximum.js.map +1 -0
  127. package/schema/constraints/minimum-date.d.ts +12 -0
  128. package/schema/constraints/minimum-date.js +29 -0
  129. package/schema/constraints/minimum-date.js.map +1 -0
  130. package/schema/constraints/minimum-length.d.ts +12 -0
  131. package/schema/constraints/minimum-length.js +29 -0
  132. package/schema/constraints/minimum-length.js.map +1 -0
  133. package/schema/constraints/minimum.d.ts +12 -0
  134. package/schema/constraints/minimum.js +27 -0
  135. package/schema/constraints/minimum.js.map +1 -0
  136. package/schema/constraints/pattern.d.ts +13 -0
  137. package/schema/constraints/pattern.js +28 -0
  138. package/schema/constraints/pattern.js.map +1 -0
  139. package/schema/decorators/array.d.ts +4 -0
  140. package/schema/decorators/array.js +11 -0
  141. package/schema/decorators/array.js.map +1 -0
  142. package/schema/decorators/coerce.d.ts +2 -0
  143. package/schema/decorators/coerce.js +10 -0
  144. package/schema/decorators/coerce.js.map +1 -0
  145. package/schema/decorators/defaulted.d.ts +3 -0
  146. package/schema/decorators/defaulted.js +11 -0
  147. package/schema/decorators/defaulted.js.map +1 -0
  148. package/schema/decorators/index.d.ts +8 -0
  149. package/{old-api → schema/decorators}/index.js +8 -3
  150. package/schema/decorators/index.js.map +1 -0
  151. package/schema/decorators/nullable.d.ts +2 -0
  152. package/schema/decorators/nullable.js +10 -0
  153. package/schema/decorators/nullable.js.map +1 -0
  154. package/schema/decorators/optional.d.ts +2 -0
  155. package/schema/decorators/optional.js +10 -0
  156. package/schema/decorators/optional.js.map +1 -0
  157. package/schema/decorators/property.d.ts +6 -0
  158. package/schema/decorators/property.js +19 -0
  159. package/schema/decorators/property.js.map +1 -0
  160. package/schema/decorators/type.d.ts +3 -0
  161. package/schema/decorators/type.js +10 -0
  162. package/schema/decorators/type.js.map +1 -0
  163. package/schema/decorators/types.d.ts +18 -0
  164. package/schema/decorators/types.js +3 -0
  165. package/schema/decorators/types.js.map +1 -0
  166. package/schema/decorators/utils.d.ts +10 -0
  167. package/schema/decorators/utils.js +59 -0
  168. package/schema/decorators/utils.js.map +1 -0
  169. package/schema/index.d.ts +7 -1
  170. package/schema/index.js +7 -1
  171. package/schema/index.js.map +1 -1
  172. package/schema/schema.d.ts +19 -0
  173. package/schema/schema.error.d.ts +13 -7
  174. package/schema/schema.error.js +45 -13
  175. package/schema/schema.error.js.map +1 -1
  176. package/schema/schema.js +286 -0
  177. package/schema/schema.js.map +1 -0
  178. package/schema/schemas/any.d.ts +4 -8
  179. package/schema/schemas/any.js +9 -14
  180. package/schema/schemas/any.js.map +1 -1
  181. package/schema/schemas/array.d.ts +7 -13
  182. package/schema/schemas/array.js +14 -43
  183. package/schema/schemas/array.js.map +1 -1
  184. package/schema/schemas/assign.d.ts +8 -0
  185. package/schema/schemas/assign.js +28 -0
  186. package/schema/schemas/assign.js.map +1 -0
  187. package/schema/schemas/boolean.d.ts +5 -9
  188. package/schema/schemas/boolean.js +11 -38
  189. package/schema/schemas/boolean.js.map +1 -1
  190. package/schema/schemas/constraint.d.ts +4 -0
  191. package/schema/schemas/constraint.js +14 -0
  192. package/schema/schemas/constraint.js.map +1 -0
  193. package/schema/schemas/date.d.ts +7 -11
  194. package/schema/schemas/date.js +18 -53
  195. package/schema/schemas/date.js.map +1 -1
  196. package/schema/schemas/defaulted.d.ts +2 -15
  197. package/schema/schemas/defaulted.js +7 -23
  198. package/schema/schemas/defaulted.js.map +1 -1
  199. package/schema/schemas/enumeration.d.ts +6 -18
  200. package/schema/schemas/enumeration.js +13 -50
  201. package/schema/schemas/enumeration.js.map +1 -1
  202. package/schema/schemas/exclude.d.ts +4 -0
  203. package/schema/schemas/exclude.js +17 -0
  204. package/schema/schemas/exclude.js.map +1 -0
  205. package/schema/schemas/index.d.ts +5 -6
  206. package/schema/schemas/index.js +5 -6
  207. package/schema/schemas/index.js.map +1 -1
  208. package/schema/schemas/instance.d.ts +2 -12
  209. package/schema/schemas/instance.js +4 -20
  210. package/schema/schemas/instance.js.map +1 -1
  211. package/schema/schemas/literal.d.ts +4 -11
  212. package/schema/schemas/literal.js +13 -18
  213. package/schema/schemas/literal.js.map +1 -1
  214. package/schema/schemas/nullable.d.ts +3 -13
  215. package/schema/schemas/nullable.js +3 -26
  216. package/schema/schemas/nullable.js.map +1 -1
  217. package/schema/schemas/number.d.ts +7 -14
  218. package/schema/schemas/number.js +23 -44
  219. package/schema/schemas/number.js.map +1 -1
  220. package/schema/schemas/object.d.ts +6 -34
  221. package/schema/schemas/object.js +8 -112
  222. package/schema/schemas/object.js.map +1 -1
  223. package/schema/schemas/optional.d.ts +3 -13
  224. package/schema/schemas/optional.js +3 -26
  225. package/schema/schemas/optional.js.map +1 -1
  226. package/schema/schemas/pick.d.ts +4 -0
  227. package/schema/schemas/pick.js +17 -0
  228. package/schema/schemas/pick.js.map +1 -0
  229. package/schema/schemas/readable-stream.d.ts +4 -9
  230. package/schema/schemas/readable-stream.js +9 -15
  231. package/schema/schemas/readable-stream.js.map +1 -1
  232. package/schema/schemas/record.d.ts +4 -0
  233. package/schema/schemas/record.js +14 -0
  234. package/schema/schemas/record.js.map +1 -0
  235. package/schema/schemas/regexp.d.ts +6 -9
  236. package/schema/schemas/regexp.js +10 -27
  237. package/schema/schemas/regexp.js.map +1 -1
  238. package/schema/schemas/string.d.ts +9 -13
  239. package/schema/schemas/string.js +34 -46
  240. package/schema/schemas/string.js.map +1 -1
  241. package/schema/schemas/transform.d.ts +4 -16
  242. package/schema/schemas/transform.js +7 -36
  243. package/schema/schemas/transform.js.map +1 -1
  244. package/schema/schemas/uint8-array.d.ts +8 -11
  245. package/schema/schemas/uint8-array.js +20 -32
  246. package/schema/schemas/uint8-array.js.map +1 -1
  247. package/schema/schemas/union.d.ts +5 -17
  248. package/schema/schemas/union.js +9 -35
  249. package/schema/schemas/union.js.map +1 -1
  250. package/schema/schemas/unknown.d.ts +4 -8
  251. package/schema/schemas/unknown.js +9 -14
  252. package/schema/schemas/unknown.js.map +1 -1
  253. package/schema/transformers/generic.d.ts +13 -0
  254. package/schema/transformers/generic.js +28 -0
  255. package/schema/transformers/generic.js.map +1 -0
  256. package/schema/transformers/index.d.ts +3 -0
  257. package/{old-api/endpoints → schema/transformers}/index.js +3 -1
  258. package/schema/transformers/index.js.map +1 -0
  259. package/schema/transformers/lowercase.d.ts +9 -0
  260. package/schema/transformers/lowercase.js +22 -0
  261. package/schema/transformers/lowercase.js.map +1 -0
  262. package/schema/transformers/trim.d.ts +9 -0
  263. package/schema/transformers/trim.js +22 -0
  264. package/schema/transformers/trim.js.map +1 -0
  265. package/schema/transformers/uppercase.d.ts +9 -0
  266. package/schema/transformers/uppercase.js +22 -0
  267. package/schema/transformers/uppercase.js.map +1 -0
  268. package/schema/types.d.ts +135 -15
  269. package/schema/types.js +39 -3
  270. package/schema/types.js.map +1 -1
  271. package/schema/utils/index.d.ts +2 -0
  272. package/{old-api/validation → schema/utils}/index.js +2 -1
  273. package/schema/utils/index.js.map +1 -0
  274. package/schema/utils/schema.d.ts +12 -0
  275. package/schema/utils/schema.js +78 -0
  276. package/schema/utils/schema.js.map +1 -0
  277. package/schema/utils/value-type.d.ts +4 -0
  278. package/schema/utils/value-type.js +35 -0
  279. package/schema/utils/value-type.js.map +1 -0
  280. package/templates/providers/file-template.provider.base.d.ts +1 -1
  281. package/templates/providers/file-template.provider.base.js +3 -2
  282. package/templates/providers/file-template.provider.base.js.map +1 -1
  283. package/types.d.ts +5 -1
  284. package/utils/clone.d.ts +1 -0
  285. package/utils/clone.js +45 -0
  286. package/utils/clone.js.map +1 -0
  287. package/utils/enum.d.ts +1 -1
  288. package/utils/format-error.d.ts +20 -0
  289. package/utils/format-error.js +42 -0
  290. package/utils/format-error.js.map +1 -0
  291. package/utils/function/memoize.d.ts +6 -2
  292. package/utils/function/memoize.js +28 -20
  293. package/utils/function/memoize.js.map +1 -1
  294. package/utils/helpers.d.ts +1 -32
  295. package/utils/helpers.js +3 -158
  296. package/utils/helpers.js.map +1 -1
  297. package/utils/index.d.ts +3 -0
  298. package/utils/index.js +3 -0
  299. package/utils/index.js.map +1 -1
  300. package/utils/merge.d.ts +5 -0
  301. package/utils/merge.js +32 -0
  302. package/utils/merge.js.map +1 -0
  303. package/utils/object/decycle.d.ts +16 -0
  304. package/utils/object/decycle.js +81 -0
  305. package/utils/object/decycle.js.map +1 -0
  306. package/utils/object/dereference.js.map +1 -1
  307. package/utils/object/index.d.ts +1 -0
  308. package/utils/object/index.js +1 -0
  309. package/utils/object/index.js.map +1 -1
  310. package/utils/object/object.d.ts +4 -0
  311. package/utils/object/object.js +9 -2
  312. package/utils/object/object.js.map +1 -1
  313. package/utils/patterns.d.ts +1 -1
  314. package/utils/patterns.js +3 -3
  315. package/utils/patterns.js.map +1 -1
  316. package/utils/timing.d.ts +0 -8
  317. package/utils/timing.js.map +1 -1
  318. package/utils/type-guards.d.ts +6 -0
  319. package/utils/type-guards.js +16 -4
  320. package/utils/type-guards.js.map +1 -1
  321. package/instance-provider.d.ts +0 -17
  322. package/instance-provider.js +0 -55
  323. package/instance-provider.js.map +0 -1
  324. package/module/modules/old-web-server.module.d.ts +0 -22
  325. package/module/modules/old-web-server.module.js +0 -37
  326. package/module/modules/old-web-server.module.js.map +0 -1
  327. package/old-api/endpoint.d.ts +0 -5
  328. package/old-api/endpoint.js +0 -20
  329. package/old-api/endpoint.js.map +0 -1
  330. package/old-api/endpoints/echo.endpoint.d.ts +0 -2
  331. package/old-api/endpoints/echo.endpoint.js +0 -6
  332. package/old-api/endpoints/echo.endpoint.js.map +0 -1
  333. package/old-api/endpoints/index.d.ts +0 -1
  334. package/old-api/endpoints/index.js.map +0 -1
  335. package/old-api/http-api.d.ts +0 -63
  336. package/old-api/http-api.js +0 -269
  337. package/old-api/http-api.js.map +0 -1
  338. package/old-api/index.d.ts +0 -3
  339. package/old-api/index.js.map +0 -1
  340. package/old-api/validation/index.d.ts +0 -1
  341. package/old-api/validation/index.js.map +0 -1
  342. package/old-api/validation/types.d.ts +0 -6
  343. package/old-api/validation/types.js +0 -6
  344. package/old-api/validation/types.js.map +0 -1
  345. package/old-api/validation/validators/index.d.ts +0 -1
  346. package/old-api/validation/validators/index.js.map +0 -1
  347. package/old-api/validation/validators/noop.d.ts +0 -2
  348. package/old-api/validation/validators/noop.js +0 -8
  349. package/old-api/validation/validators/noop.js.map +0 -1
  350. package/old-api/validation/validators/superstruct.d.ts +0 -14
  351. package/old-api/validation/validators/superstruct.js +0 -66
  352. package/old-api/validation/validators/superstruct.js.map +0 -1
  353. package/old-api/validation/validators/yup.d.ts +0 -7
  354. package/old-api/validation/validators/yup.js +0 -60
  355. package/old-api/validation/validators/yup.js.map +0 -1
  356. package/schema/schema.validator.d.ts +0 -40
  357. package/schema/schema.validator.js +0 -75
  358. package/schema/schema.validator.js.map +0 -1
  359. package/schema/schemas/async-iterable.d.ts +0 -13
  360. package/schema/schemas/async-iterable.js +0 -40
  361. package/schema/schemas/async-iterable.js.map +0 -1
  362. package/schema/schemas/iterable.d.ts +0 -13
  363. package/schema/schemas/iterable.js +0 -40
  364. package/schema/schemas/iterable.js.map +0 -1
  365. package/schema/schemas/never.d.ts +0 -9
  366. package/schema/schemas/never.js +0 -22
  367. package/schema/schemas/never.js.map +0 -1
  368. package/schema/schemas/preprocess.d.ts +0 -16
  369. package/schema/schemas/preprocess.js +0 -35
  370. package/schema/schemas/preprocess.js.map +0 -1
  371. package/schema/schemas/refine.d.ts +0 -24
  372. package/schema/schemas/refine.js +0 -52
  373. package/schema/schemas/refine.js.map +0 -1
@@ -1,12 +1,8 @@
1
- import type { JsonPath } from "../../json-path";
2
- import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
3
- import { SchemaValidator, test } from '../schema.validator';
4
- import type { Coercible, SchemaDefinition, SchemaOptions, SchemaOutput } from '../types';
5
- export declare type DateSchemaDefinition = SchemaDefinition<'uint8-array', unknown, Date> & Coercible & {
6
- min?: Date;
7
- max?: Date;
1
+ import type { Decorator } from "../../reflection";
2
+ import type { Coercible, ValueSchema } from '../types';
3
+ export declare type DateOptions = Coercible & {
4
+ minimum?: Date | number;
5
+ maximum?: Date | number;
8
6
  };
9
- export declare class DateSchemaValidator extends SchemaValidator<DateSchemaDefinition> {
10
- [test](value: unknown, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<SchemaOutput<DateSchemaDefinition>>;
11
- }
12
- export declare function date(options?: SchemaOptions<DateSchemaDefinition>): DateSchemaValidator;
7
+ export declare function date(options?: DateOptions): ValueSchema<Date>;
8
+ export declare function Date(options?: DateOptions): Decorator<'property' | 'accessor'>;
@@ -1,63 +1,28 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.date = exports.DateSchemaValidator = void 0;
4
+ exports.Date = exports.date = void 0;
4
5
  const type_guards_1 = require("../../utils/type-guards");
5
- const schema_error_1 = require("../schema.error");
6
- const schema_validator_1 = require("../schema.validator");
6
+ const constraints_1 = require("../constraints");
7
+ const decorators_1 = require("../decorators");
7
8
  const types_1 = require("../types");
8
- const instance_1 = require("./instance");
9
- const dateInstanceSchema = (0, instance_1.instance)(Date);
10
- const coercerMap = {
11
- string: (string, path) => {
12
- const dateValue = new Date(string);
13
- if (Number.isNaN(dateValue.getTime())) {
14
- return { valid: false, error: schema_error_1.SchemaError.couldNotCoerce('number', 'string', 'invalid format', path) };
15
- }
16
- return { valid: true, value: dateValue };
17
- },
18
- number: (number, path) => {
19
- const dateValue = new Date(number);
20
- if (Number.isNaN(dateValue.getTime())) {
21
- return { valid: false, error: schema_error_1.SchemaError.couldNotCoerce('number', 'string', 'invalid timestamp', path) };
22
- }
23
- return { valid: true, value: dateValue };
24
- },
25
- bigint: (bigint, path) => {
26
- const numberValue = Number(bigint);
27
- const dateValue = new Date(numberValue);
28
- if (Number.isNaN(dateValue.getTime())) {
29
- return { valid: false, error: schema_error_1.SchemaError.couldNotCoerce('number', 'string', 'invalid timestamp', path) };
30
- }
31
- return { valid: true, value: dateValue };
9
+ function date(options = {}) {
10
+ const constraints = [];
11
+ if ((0, type_guards_1.isDefined)(options.minimum)) {
12
+ constraints.push(new constraints_1.MinimumDateConstraint(options.minimum));
32
13
  }
33
- };
34
- class DateSchemaValidator extends schema_validator_1.SchemaValidator {
35
- [schema_validator_1.test](value, options, path) {
36
- const result = super.ensureInstance(Date, value, path, { coerce: this.schema.coerce ?? options.coerce }, coercerMap);
37
- if (!result.valid) {
38
- return result;
39
- }
40
- const instanceTestResult = dateInstanceSchema[schema_validator_1.test](result.value, options, path);
41
- if (!instanceTestResult.valid) {
42
- return instanceTestResult;
43
- }
44
- const dateValue = instanceTestResult.value;
45
- if ((0, type_guards_1.isDefined)(this.schema.min) && (dateValue < this.schema.min)) {
46
- return { valid: false, error: (0, schema_error_1.schemaError)(`minimum date is ${this.schema.min.toISOString()}`, path) };
47
- }
48
- if ((0, type_guards_1.isDefined)(this.schema.max) && (dateValue > this.schema.max)) {
49
- return { valid: false, error: (0, schema_error_1.schemaError)(`maximum date is ${this.schema.max.toISOString()}`, path) };
50
- }
51
- return { valid: true, value: dateValue };
14
+ if ((0, type_guards_1.isDefined)(options.maximum)) {
15
+ constraints.push(new constraints_1.MaximumDateConstraint(options.maximum));
52
16
  }
53
- }
54
- exports.DateSchemaValidator = DateSchemaValidator;
55
- function date(options) {
56
- const schema = (0, types_1.schemaHelper)({
57
- type: 'uint8-array',
58
- ...options
17
+ return (0, types_1.valueSchema)({
18
+ type: globalThis.Date,
19
+ coerce: options.coerce,
20
+ valueConstraints: constraints
59
21
  });
60
- return new DateSchemaValidator(schema);
61
22
  }
62
23
  exports.date = date;
24
+ function Date(options) {
25
+ return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(date(options));
26
+ }
27
+ exports.Date = Date;
63
28
  //# sourceMappingURL=date.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../source/schema/schemas/date.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../source/schema/schemas/date.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,yDAAgD;AAChD,gDAA8E;AAC9E,8CAA2E;AAE3E,oCAAuC;AAOvC,SAAgB,IAAI,CAAC,UAAuB,EAAE;IAC5C,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,mCAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC9D;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,mCAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC9D;IAED,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB,EAAE,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC;AAhBD,oBAgBC;AAED,SAAgB,IAAI,CAAC,OAAqB;IACxC,OAAO,IAAA,uDAA0C,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAFD,oBAEC"}
@@ -1,15 +1,2 @@
1
- import type { JsonPath } from "../../json-path";
2
- import type { NonNullOrUndefinable } from "../../types";
3
- import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
4
- import { SchemaValidator, test } from '../schema.validator';
5
- import type { SchemaDefinition, SchemaInput, SchemaOptions, SchemaOutput } from '../types';
6
- export declare type DefaultedSchemaDefinition<T extends SchemaDefinition = SchemaDefinition, U = unknown> = SchemaDefinition<'defaulted', SchemaInput<T> | undefined | null, NonNullOrUndefinable<SchemaOutput<T>> | U> & {
7
- schema: T;
8
- defaultValue: U;
9
- };
10
- export declare class DefaultedSchemaValidator<T extends SchemaDefinition, U> extends SchemaValidator<DefaultedSchemaDefinition<T, U>> {
11
- private readonly innerValidator;
12
- constructor(innerValidator: SchemaValidator<T>, schema: DefaultedSchemaDefinition<T, U>);
13
- [test](value: unknown, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<SchemaOutput<DefaultedSchemaDefinition<T, U>>>;
14
- }
15
- export declare function defaulted<T extends SchemaDefinition, U>(innerValidator: SchemaValidator<T>, defaultValue: U, options?: SchemaOptions<DefaultedSchemaDefinition<T, U>, 'schema' | 'defaultValue'>): DefaultedSchemaValidator<T, U>;
1
+ import type { MaybeDeferredValueTypes, ValueSchema } from '../types';
2
+ export declare function defaulted<T>(type: MaybeDeferredValueTypes, defaultValue: T): ValueSchema<Date | T>;
@@ -1,30 +1,14 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaulted = exports.DefaultedSchemaValidator = void 0;
4
- const type_guards_1 = require("../../utils/type-guards");
5
- const schema_validator_1 = require("../schema.validator");
4
+ exports.defaulted = void 0;
5
+ const coercers_1 = require("../coercers");
6
6
  const types_1 = require("../types");
7
- class DefaultedSchemaValidator extends schema_validator_1.SchemaValidator {
8
- constructor(innerValidator, schema) {
9
- super(schema);
10
- this.innerValidator = innerValidator;
11
- }
12
- [schema_validator_1.test](value, options, path) {
13
- if ((0, type_guards_1.isNullOrUndefined)(value)) {
14
- return { valid: true, value: this.schema.defaultValue };
15
- }
16
- return this.innerValidator[schema_validator_1.test](value, options, path);
17
- }
18
- }
19
- exports.DefaultedSchemaValidator = DefaultedSchemaValidator;
20
- function defaulted(innerValidator, defaultValue, options) {
21
- const schema = (0, types_1.schemaHelper)({
22
- type: 'defaulted',
23
- schema: innerValidator.schema,
24
- defaultValue,
25
- ...options
7
+ function defaulted(type, defaultValue) {
8
+ return (0, types_1.valueSchema)({
9
+ type,
10
+ coercers: new coercers_1.DefaultValueCoercer(defaultValue)
26
11
  });
27
- return new DefaultedSchemaValidator(innerValidator, schema);
28
12
  }
29
13
  exports.defaulted = defaulted;
30
14
  //# sourceMappingURL=defaulted.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaulted.js","sourceRoot":"","sources":["../../../source/schema/schemas/defaulted.ts"],"names":[],"mappings":";;;AAEA,yDAAwD;AAExD,0DAA4D;AAE5D,oCAAwC;AAOxC,MAAa,wBAAwD,SAAQ,kCAAgD;IAG3H,YAAY,cAAkC,EAAE,MAAuC;QACrF,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,CAAC,uBAAI,CAAC,CAAC,KAAc,EAAE,OAAiC,EAAE,IAAc;QACtE,IAAI,IAAA,+BAAiB,EAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;SACzD;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,uBAAI,CAAC,CAAC,KAAuB,EAAE,OAAO,EAAE,IAAI,CAAwE,CAAC;IAClJ,CAAC;CACF;AAhBD,4DAgBC;AAED,SAAgB,SAAS,CAAgC,cAAkC,EAAE,YAAe,EAAE,OAAmF;IAC/L,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAkC;QAC3D,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,YAAY;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AATD,8BASC"}
1
+ {"version":3,"file":"defaulted.js","sourceRoot":"","sources":["../../../source/schema/schemas/defaulted.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAEzD,0CAAkD;AAElD,oCAAuC;AAEvC,SAAgB,SAAS,CAAI,IAA6B,EAAE,YAAe;IACzE,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI;QACJ,QAAQ,EAAE,IAAI,8BAAmB,CAAC,YAAY,CAAC;KAChD,CAAC,CAAC;AACL,CAAC;AALD,8BAKC"}
@@ -1,18 +1,6 @@
1
- import type { JsonPath } from "../../json-path";
2
- import type { Enumeration, EnumerationArray } from "../../types";
3
- import type { EnumValue } from "../../utils/enum";
4
- import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
5
- import { SchemaValidator, test } from '../schema.validator';
6
- import type { Coercible, SchemaDefinition, SchemaOptions, SchemaOutput } from '../types';
7
- export declare type EnumerationSchemaOutput<T extends Enumeration> = T extends EnumerationArray ? T[number] : EnumValue<T>;
8
- export declare type EnumerationSchemaDefinition<T extends Enumeration = Enumeration> = SchemaDefinition<'enumeration', unknown, EnumerationSchemaOutput<T>> & Coercible & {
9
- values: T;
10
- };
11
- export declare class EnumerationSchemaValidator<T extends Enumeration> extends SchemaValidator<EnumerationSchemaDefinition<T>> {
12
- private readonly values;
13
- private readonly valuesSet;
14
- readonly valuesCommaSeparated: string;
15
- constructor(valuesOrEnum: T, schema: EnumerationSchemaDefinition<T>);
16
- [test](value: unknown, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<SchemaOutput<EnumerationSchemaDefinition<T>>>;
17
- }
18
- export declare function enumeration<T extends Enumeration>(values: T, options?: SchemaOptions<EnumerationSchemaDefinition, 'values'>): EnumerationSchemaValidator<T>;
1
+ import type { Decorator } from "../../reflection";
2
+ import type { Enumeration as EnumerationType, EnumerationValue } from "../../types";
3
+ import type { Coercible, ValueSchema } from '../types';
4
+ export declare type EnumerationOptions = Coercible;
5
+ export declare function enumeration<T extends EnumerationType>(enumerationValue: T, options?: EnumerationOptions): ValueSchema<EnumerationValue<T>>;
6
+ export declare function Enumeration(enumerationValue: EnumerationType, options?: EnumerationOptions): Decorator<'property' | 'accessor'>;
@@ -1,58 +1,21 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enumeration = exports.EnumerationSchemaValidator = void 0;
4
- const enum_1 = require("../../utils/enum");
5
- const lazy_property_1 = require("../../utils/object/lazy-property");
6
- const patterns_1 = require("../../utils/patterns");
7
- const type_guards_1 = require("../../utils/type-guards");
8
- const type_of_1 = require("../../utils/type-of");
9
- const schema_error_1 = require("../schema.error");
10
- const schema_validator_1 = require("../schema.validator");
4
+ exports.Enumeration = exports.enumeration = void 0;
5
+ const constraints_1 = require("../constraints");
6
+ const decorators_1 = require("../decorators");
11
7
  const types_1 = require("../types");
12
- class EnumerationSchemaValidator extends schema_validator_1.SchemaValidator {
13
- constructor(valuesOrEnum, schema) {
14
- super(schema);
15
- this.values = (0, type_guards_1.isArray)(valuesOrEnum) ? valuesOrEnum : (0, enum_1.enumValues)(valuesOrEnum);
16
- this.valuesSet = new Set(this.values);
17
- (0, lazy_property_1.lazyProperty)(this, 'valuesCommaSeparated', () => this.values.map((value) => (stringifyEnumerationValue(value))).join(', '));
18
- }
19
- [schema_validator_1.test](value, options, path) {
20
- if (this.valuesSet.has(value)) {
21
- return { valid: true, value: value };
22
- }
23
- if (this.schema.coerce ?? options.coerce) {
24
- let coercedValue;
25
- switch (typeof value) {
26
- case 'number':
27
- coercedValue = value.toString();
28
- break;
29
- case 'string':
30
- coercedValue = patterns_1.numberPattern.test(value) ? Number(value) : undefined;
31
- break;
32
- default:
33
- coercedValue = undefined;
34
- break;
35
- }
36
- if (this.valuesSet.has(coercedValue)) {
37
- return { valid: true, value: coercedValue };
38
- }
39
- }
40
- return { valid: false, error: schema_error_1.SchemaError.expectedButGot(`one of [${this.valuesCommaSeparated}]`, stringifyEnumerationValue(value), path) };
41
- }
42
- }
43
- exports.EnumerationSchemaValidator = EnumerationSchemaValidator;
44
- function enumeration(values, options) {
45
- const schema = (0, types_1.schemaHelper)({
46
- type: 'enumeration',
47
- values,
48
- ...options
8
+ function enumeration(enumerationValue, options = {}) {
9
+ const enumerationConstraint = new constraints_1.EnumerationConstraint(enumerationValue);
10
+ return (0, types_1.valueSchema)({
11
+ type: enumerationConstraint.suitableTypes,
12
+ coerce: options.coerce,
13
+ valueConstraints: enumerationConstraint
49
14
  });
50
- return new EnumerationSchemaValidator(values, schema);
51
15
  }
52
16
  exports.enumeration = enumeration;
53
- function stringifyEnumerationValue(value) {
54
- return (0, type_guards_1.isString)(value) ? `"${value}"`
55
- : (0, type_guards_1.isNumber)(value) ? value.toString()
56
- : (0, type_of_1.typeOf)(value);
17
+ function Enumeration(enumerationValue, options = {}) {
18
+ return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(enumeration(enumerationValue, options));
57
19
  }
20
+ exports.Enumeration = Enumeration;
58
21
  //# sourceMappingURL=enumeration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enumeration.js","sourceRoot":"","sources":["../../../source/schema/schemas/enumeration.ts"],"names":[],"mappings":";;;AAGA,2CAA0C;AAC1C,oEAA4D;AAC5D,mDAAiD;AACjD,yDAAkE;AAClE,iDAAyC;AACzC,kDAA8C;AAE9C,0DAA4D;AAE5D,oCAAwC;AAQxC,MAAa,0BAAkD,SAAQ,kCAA+C;IAMpH,YAAY,YAAe,EAAE,MAAsC;QACjE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,MAAM,GAAG,IAAA,qBAAO,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAgC,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,YAAY,CAAC,CAAC;QAClG,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAA,4BAAY,EAAC,IAAqC,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/J,CAAC;IAED,CAAC,uBAAI,CAAC,CAAC,KAAc,EAAE,OAAiC,EAAE,IAAc;QACtE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAwB,CAAC,EAAE;YAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAmC,EAAE,CAAC;SACpE;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;YACxC,IAAI,YAAyC,CAAC;YAE9C,QAAQ,OAAO,KAAK,EAAE;gBACpB,KAAK,QAAQ;oBACX,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAChC,MAAM;gBAER,KAAK,QAAQ;oBACX,YAAY,GAAG,wBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACrE,MAAM;gBAER;oBACE,YAAY,GAAG,SAAS,CAAC;oBACzB,MAAM;aACT;YAED,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAa,CAAC,EAAE;gBACrC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAA0C,EAAE,CAAC;aAC3E;SACF;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,WAAW,IAAI,CAAC,oBAAoB,GAAG,EAAE,yBAAyB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IAC9I,CAAC;CACF;AA5CD,gEA4CC;AAED,SAAgB,WAAW,CAAwB,MAAS,EAAE,OAA8D;IAC1H,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAiC;QAC1D,IAAI,EAAE,aAAa;QACnB,MAAM;QACN,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AARD,kCAQC;AAED,SAAS,yBAAyB,CAAC,KAAU;IAC3C,OAAO,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG;QACnC,CAAC,CAAC,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;YAClC,CAAC,CAAC,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"enumeration.js","sourceRoot":"","sources":["../../../source/schema/schemas/enumeration.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,gDAAuD;AACvD,8CAA2E;AAE3E,oCAAuC;AAIvC,SAAgB,WAAW,CAA4B,gBAAmB,EAAE,UAA8B,EAAE;IAC1G,MAAM,qBAAqB,GAAG,IAAI,mCAAqB,CAAC,gBAAgB,CAAC,CAAC;IAE1E,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,qBAAqB,CAAC,aAAa;QACzC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB,EAAE,qBAAqB;KACxC,CAAC,CAAC;AACL,CAAC;AARD,kCAQC;AAED,SAAgB,WAAW,CAAC,gBAAiC,EAAE,UAA8B,EAAE;IAC7F,OAAO,IAAA,uDAA0C,EAAC,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5F,CAAC;AAFD,kCAEC"}
@@ -0,0 +1,4 @@
1
+ import type { OneOrMany, Record } from "../../types";
2
+ import type { Simplify } from 'type-fest';
3
+ import type { ObjectSchema } from '../types';
4
+ export declare function exclude<T extends Record, K extends keyof T>(schema: ObjectSchema<T>, key: OneOrMany<K>): ObjectSchema<Simplify<Omit<T, K>>>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.exclude = void 0;
4
+ const array_1 = require("../../utils/array/array");
5
+ const types_1 = require("../types");
6
+ function exclude(schema, key) {
7
+ const keys = (0, array_1.toArray)(key);
8
+ const entries = Object.entries(schema.properties);
9
+ const pickedEntries = entries.filter(([propertyKey]) => !keys.includes(propertyKey));
10
+ const pickedSchema = (0, types_1.objectSchema)({
11
+ ...schema,
12
+ properties: Object.fromEntries(pickedEntries)
13
+ });
14
+ return pickedSchema;
15
+ }
16
+ exports.exclude = exclude;
17
+ //# sourceMappingURL=exclude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exclude.js","sourceRoot":"","sources":["../../../source/schema/schemas/exclude.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAG9C,oCAAwC;AAExC,SAAgB,OAAO,CAAsC,MAAuB,EAAE,GAAiB;IACrG,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC;IAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAgB,CAAC,CAAC,CAAC;IAE1F,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC;QAChC,GAAG,MAAM;QACT,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAe;KAC5D,CAAC,CAAC;IAEH,OAAO,YAAwC,CAAC;AAClD,CAAC;AAZD,0BAYC"}
@@ -1,21 +1,20 @@
1
1
  export * from './any';
2
2
  export * from './array';
3
- export * from './async-iterable';
3
+ export * from './assign';
4
4
  export * from './boolean';
5
+ export * from './constraint';
5
6
  export * from './date';
6
- export * from './defaulted';
7
7
  export * from './enumeration';
8
+ export * from './exclude';
8
9
  export * from './instance';
9
- export * from './iterable';
10
10
  export * from './literal';
11
- export * from './never';
12
11
  export * from './nullable';
13
12
  export * from './number';
14
13
  export * from './object';
15
14
  export * from './optional';
16
- export * from './preprocess';
15
+ export * from './pick';
17
16
  export * from './readable-stream';
18
- export * from './refine';
17
+ export * from './record';
19
18
  export * from './regexp';
20
19
  export * from './string';
21
20
  export * from './transform';
@@ -16,22 +16,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./any"), exports);
18
18
  __exportStar(require("./array"), exports);
19
- __exportStar(require("./async-iterable"), exports);
19
+ __exportStar(require("./assign"), exports);
20
20
  __exportStar(require("./boolean"), exports);
21
+ __exportStar(require("./constraint"), exports);
21
22
  __exportStar(require("./date"), exports);
22
- __exportStar(require("./defaulted"), exports);
23
23
  __exportStar(require("./enumeration"), exports);
24
+ __exportStar(require("./exclude"), exports);
24
25
  __exportStar(require("./instance"), exports);
25
- __exportStar(require("./iterable"), exports);
26
26
  __exportStar(require("./literal"), exports);
27
- __exportStar(require("./never"), exports);
28
27
  __exportStar(require("./nullable"), exports);
29
28
  __exportStar(require("./number"), exports);
30
29
  __exportStar(require("./object"), exports);
31
30
  __exportStar(require("./optional"), exports);
32
- __exportStar(require("./preprocess"), exports);
31
+ __exportStar(require("./pick"), exports);
33
32
  __exportStar(require("./readable-stream"), exports);
34
- __exportStar(require("./refine"), exports);
33
+ __exportStar(require("./record"), exports);
35
34
  __exportStar(require("./regexp"), exports);
36
35
  __exportStar(require("./string"), exports);
37
36
  __exportStar(require("./transform"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/schema/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,0CAAwB;AACxB,mDAAiC;AACjC,4CAA0B;AAC1B,yCAAuB;AACvB,8CAA4B;AAC5B,gDAA8B;AAC9B,6CAA2B;AAC3B,6CAA2B;AAC3B,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,+CAA6B;AAC7B,oDAAkC;AAClC,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,gDAA8B;AAC9B,0CAAwB;AACxB,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/schema/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,0CAAwB;AACxB,2CAAyB;AACzB,4CAA0B;AAC1B,+CAA6B;AAC7B,yCAAuB;AACvB,gDAA8B;AAC9B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,yCAAuB;AACvB,oDAAkC;AAClC,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,gDAA8B;AAC9B,0CAAwB;AACxB,4CAA0B"}
@@ -1,12 +1,2 @@
1
- import type { JsonPath } from "../../json-path";
2
- import type { Type } from "../../types";
3
- import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
4
- import { SchemaValidator, test } from '../schema.validator';
5
- import type { SchemaDefinition, SchemaOptions, SchemaOutput } from '../types';
6
- export declare type InstanceSchemaDefinition<T = unknown> = SchemaDefinition<'instance', T, T> & {
7
- constructor: Type<T>;
8
- };
9
- export declare class InstanceSchemaValidator<T> extends SchemaValidator<InstanceSchemaDefinition<T>> {
10
- [test](value: unknown, _options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<SchemaOutput<InstanceSchemaDefinition<T>>>;
11
- }
12
- export declare function instance<T>(constructor: Type<T>, options?: SchemaOptions<InstanceSchemaDefinition<T>, 'constructor'>): InstanceSchemaValidator<T>;
1
+ import type { ValueSchema, ValueType } from '../types';
2
+ export declare function instance<T>(type: Extract<ValueType<T>, Function>): ValueSchema<T>;
@@ -1,26 +1,10 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/ban-types */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.instance = exports.InstanceSchemaValidator = void 0;
4
- const type_of_1 = require("../../utils/type-of");
5
- const schema_error_1 = require("../schema.error");
6
- const schema_validator_1 = require("../schema.validator");
4
+ exports.instance = void 0;
7
5
  const types_1 = require("../types");
8
- class InstanceSchemaValidator extends schema_validator_1.SchemaValidator {
9
- [schema_validator_1.test](value, _options, path) {
10
- if (value instanceof this.schema.constructor) {
11
- return { valid: true, value: value };
12
- }
13
- return { valid: false, error: schema_error_1.SchemaError.expectedButGot(`instance of ${this.schema.constructor.name}`, (0, type_of_1.typeOf)(value), path) };
14
- }
15
- }
16
- exports.InstanceSchemaValidator = InstanceSchemaValidator;
17
- function instance(constructor, options) {
18
- const schema = (0, types_1.schemaHelper)({
19
- type: 'instance',
20
- constructor,
21
- ...options
22
- });
23
- return new InstanceSchemaValidator(schema);
6
+ function instance(type) {
7
+ return (0, types_1.valueSchema)({ type });
24
8
  }
25
9
  exports.instance = instance;
26
10
  //# sourceMappingURL=instance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../../source/schema/schemas/instance.ts"],"names":[],"mappings":";;;AAEA,iDAAyC;AACzC,kDAA8C;AAE9C,0DAA4D;AAE5D,oCAAwC;AAMxC,MAAa,uBAA2B,SAAQ,kCAA4C;IAC1F,CAAC,uBAAI,CAAC,CAAC,KAAc,EAAE,QAAkC,EAAE,IAAc;QACvE,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;SAC3C;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IACjI,CAAC;CACF;AARD,0DAQC;AAED,SAAgB,QAAQ,CAAI,WAAoB,EAAE,OAAmE;IACnH,MAAM,MAAM,GAAG,IAAA,oBAAY,EAA8B;QACvD,IAAI,EAAE,UAAU;QAChB,WAAW;QACX,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AARD,4BAQC"}
1
+ {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../../source/schema/schemas/instance.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;AAGjD,oCAAuC;AAEvC,SAAgB,QAAQ,CAAI,IAAqC;IAC/D,OAAO,IAAA,mBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC;AAFD,4BAEC"}
@@ -1,11 +1,4 @@
1
- import type { JsonPath } from "../../json-path";
2
- import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
3
- import { SchemaValidator, test } from '../schema.validator';
4
- import type { SchemaDefinition, SchemaOptions, SchemaOutput } from '../types';
5
- export declare type LiteralSchemaDefinition<T> = SchemaDefinition<'literal', T, T> & {
6
- value: T;
7
- };
8
- export declare class LiteralSchemaValidator<T> extends SchemaValidator<LiteralSchemaDefinition<T>> {
9
- [test](value: unknown, _options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<SchemaOutput<LiteralSchemaDefinition<T>>>;
10
- }
11
- export declare function literal<T>(value: T, options?: SchemaOptions<LiteralSchemaDefinition<T>, 'value'>): LiteralSchemaValidator<T>;
1
+ import type { Decorator } from "../../reflection";
2
+ import type { ValueSchema } from '../types';
3
+ export declare function literal<T>(value: T): ValueSchema<T>;
4
+ export declare function Literal(value: any): Decorator<'property' | 'accessor'>;
@@ -1,25 +1,20 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.literal = exports.LiteralSchemaValidator = void 0;
4
- const schema_error_1 = require("../schema.error");
5
- const schema_validator_1 = require("../schema.validator");
4
+ exports.Literal = exports.literal = void 0;
5
+ const constraints_1 = require("../constraints");
6
+ const decorators_1 = require("../decorators");
6
7
  const types_1 = require("../types");
7
- class LiteralSchemaValidator extends schema_validator_1.SchemaValidator {
8
- [schema_validator_1.test](value, _options, path) {
9
- if (value === this.schema.value) {
10
- return { valid: true, value: value };
11
- }
12
- return { valid: false, error: schema_error_1.SchemaError.expectedButGot(String(this.schema.value), String(value), path) };
13
- }
14
- }
15
- exports.LiteralSchemaValidator = LiteralSchemaValidator;
16
- function literal(value, options) {
17
- const schema = (0, types_1.schemaHelper)({
18
- type: 'literal',
19
- value,
20
- ...options
8
+ const utils_1 = require("../utils");
9
+ function literal(value) {
10
+ return (0, types_1.valueSchema)({
11
+ type: (0, utils_1.getValueType)(value),
12
+ valueConstraints: new constraints_1.LiteralConstraint(value)
21
13
  });
22
- return new LiteralSchemaValidator(schema);
23
14
  }
24
15
  exports.literal = literal;
16
+ function Literal(value) {
17
+ return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(literal(value));
18
+ }
19
+ exports.Literal = Literal;
25
20
  //# sourceMappingURL=literal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../source/schema/schemas/literal.ts"],"names":[],"mappings":";;;AACA,kDAA8C;AAE9C,0DAA4D;AAE5D,oCAAwC;AAMxC,MAAa,sBAA0B,SAAQ,kCAA2C;IACxF,CAAC,uBAAI,CAAC,CAAC,KAAc,EAAE,QAAkC,EAAE,IAAc;QACvE,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;SAC3C;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IAC7G,CAAC;CACF;AARD,wDAQC;AAED,SAAgB,OAAO,CAAI,KAAQ,EAAE,OAA4D;IAC/F,MAAM,MAAM,GAAG,IAAA,oBAAY,EAA6B;QACtD,IAAI,EAAE,SAAS;QACf,KAAK;QACL,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AARD,0BAQC"}
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../source/schema/schemas/literal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,gDAAmD;AACnD,8CAA2E;AAE3E,oCAAuC;AACvC,oCAAwC;AAExC,SAAgB,OAAO,CAAI,KAAQ;IACjC,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,IAAA,oBAAY,EAAC,KAAK,CAAC;QACzB,gBAAgB,EAAE,IAAI,+BAAiB,CAAC,KAAK,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AALD,0BAKC;AAED,SAAgB,OAAO,CAAC,KAAU;IAChC,OAAO,IAAA,uDAA0C,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAFD,0BAEC"}
@@ -1,13 +1,3 @@
1
- import type { JsonPath } from "../../json-path";
2
- import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
3
- import { SchemaValidator, test } from '../schema.validator';
4
- import type { Coercible, SchemaDefinition, SchemaInput, SchemaOptions, SchemaOutput } from '../types';
5
- export declare type NullableSchemaDefinition<T extends SchemaDefinition = SchemaDefinition> = SchemaDefinition<'nullable', SchemaInput<T> | null, SchemaOutput<T> | null> & Coercible & {
6
- schema: T;
7
- };
8
- export declare class NullableSchemaValidator<T extends SchemaDefinition> extends SchemaValidator<NullableSchemaDefinition<T>> {
9
- private readonly innerValidator;
10
- constructor(innerValidator: SchemaValidator<T>, schema: NullableSchemaDefinition<T>);
11
- [test](value: unknown, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<SchemaOutput<NullableSchemaDefinition<T>>>;
12
- }
13
- export declare function nullable<T extends SchemaDefinition>(innerValidator: SchemaValidator<T>, options?: SchemaOptions<NullableSchemaDefinition<T>, 'schema'>): NullableSchemaValidator<T>;
1
+ import type { Schema } from '../schema';
2
+ import type { ValueSchema } from '../types';
3
+ export declare function nullable<T>(schema: Schema<T>): ValueSchema<T | null>;
@@ -1,32 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nullable = exports.NullableSchemaValidator = void 0;
4
- const type_guards_1 = require("../../utils/type-guards");
5
- const schema_validator_1 = require("../schema.validator");
3
+ exports.nullable = void 0;
6
4
  const types_1 = require("../types");
7
- class NullableSchemaValidator extends schema_validator_1.SchemaValidator {
8
- constructor(innerValidator, schema) {
9
- super(schema);
10
- this.innerValidator = innerValidator;
11
- }
12
- [schema_validator_1.test](value, options, path) {
13
- if ((0, type_guards_1.isNull)(value)) {
14
- return { valid: true, value };
15
- }
16
- if ((this.schema.coerce ?? options.coerce) && (0, type_guards_1.isUndefined)(value)) {
17
- return { valid: true, value: null };
18
- }
19
- return this.innerValidator[schema_validator_1.test](value, options, path);
20
- }
21
- }
22
- exports.NullableSchemaValidator = NullableSchemaValidator;
23
- function nullable(innerValidator, options) {
24
- const schema = (0, types_1.schemaHelper)({
25
- type: 'nullable',
26
- schema: innerValidator.schema,
27
- ...options
28
- });
29
- return new NullableSchemaValidator(innerValidator, schema);
5
+ function nullable(schema) {
6
+ return (0, types_1.valueSchema)({ type: schema, nullable: true });
30
7
  }
31
8
  exports.nullable = nullable;
32
9
  //# sourceMappingURL=nullable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../source/schema/schemas/nullable.ts"],"names":[],"mappings":";;;AACA,yDAA0D;AAE1D,0DAA4D;AAE5D,oCAAwC;AAMxC,MAAa,uBAAoD,SAAQ,kCAA4C;IAGnH,YAAY,cAAkC,EAAE,MAAmC;QACjF,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,CAAC,uBAAI,CAAC,CAAC,KAAc,EAAE,OAAiC,EAAE,IAAc;QACtE,IAAI,IAAA,oBAAM,EAAC,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAC/B;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;YAChE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACrC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,uBAAI,CAAC,CAAC,KAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF;AApBD,0DAoBC;AAED,SAAgB,QAAQ,CAA6B,cAAkC,EAAE,OAA8D;IACrJ,MAAM,MAAM,GAAG,IAAA,oBAAY,EAA8B;QACvD,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,uBAAuB,CAAI,cAAc,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AARD,4BAQC"}
1
+ {"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../source/schema/schemas/nullable.ts"],"names":[],"mappings":";;;AAEA,oCAAuC;AAEvC,SAAgB,QAAQ,CAAI,MAAiB;IAC3C,OAAO,IAAA,mBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAFD,4BAEC"}
@@ -1,16 +1,9 @@
1
- import type { JsonPath } from "../../json-path";
2
- import type { DefinedValidationOptions, ValidationTestResult } from '../schema.validator';
3
- import { SchemaValidator, test } from '../schema.validator';
4
- import type { Coercible, SchemaDefinition, SchemaOptions } from '../types';
5
- export declare type NumberSchemaDefinition = SchemaDefinition<'number', unknown, number> & Coercible & {
6
- /** integer */
1
+ import type { Decorator } from "../../reflection";
2
+ import type { Coercible, ValueSchema } from '../types';
3
+ export declare type NumberOptions = Coercible & {
4
+ minimum?: number;
5
+ maximum?: number;
7
6
  integer?: boolean;
8
- /** min */
9
- min?: number;
10
- /** max */
11
- max?: number;
12
7
  };
13
- export declare class NumberSchemaValidator extends SchemaValidator<NumberSchemaDefinition> {
14
- [test](value: unknown, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<number>;
15
- }
16
- export declare function number(options?: SchemaOptions<NumberSchemaDefinition>): NumberSchemaValidator;
8
+ export declare function number(options?: NumberOptions): ValueSchema<number>;
9
+ export declare function Number(options?: NumberOptions): Decorator<'property' | 'accessor'>;