@tstdl/base 0.71.88 → 0.78.0-beta2

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 (349) 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/gateway.js +12 -18
  8. package/api/server/gateway.js.map +1 -1
  9. package/api/server/module.d.ts +0 -4
  10. package/api/server/module.js +1 -12
  11. package/api/server/module.js.map +1 -1
  12. package/api/types.d.ts +8 -32
  13. package/api/types.js.map +1 -1
  14. package/container/container.js +2 -2
  15. package/container/container.js.map +1 -1
  16. package/data-structures/index.d.ts +1 -0
  17. package/data-structures/index.js +1 -0
  18. package/data-structures/index.js.map +1 -1
  19. package/data-structures/iterable-weak-map.d.ts +29 -0
  20. package/data-structures/iterable-weak-map.js +128 -0
  21. package/data-structures/iterable-weak-map.js.map +1 -0
  22. package/data-structures/multi-key-map.d.ts +12 -1
  23. package/data-structures/multi-key-map.js +22 -11
  24. package/data-structures/multi-key-map.js.map +1 -1
  25. package/error/custom.error.d.ts +3 -1
  26. package/error/custom.error.js +16 -7
  27. package/error/custom.error.js.map +1 -1
  28. package/examples/api/basic-overview.js +16 -8
  29. package/examples/api/basic-overview.js.map +1 -1
  30. package/image-service/image-service.d.ts +32 -65
  31. package/image-service/image-service.js +73 -15
  32. package/image-service/image-service.js.map +1 -1
  33. package/json-path/json-path.d.ts +8 -3
  34. package/json-path/json-path.js +24 -7
  35. package/json-path/json-path.js.map +1 -1
  36. package/module/modules/index.d.ts +0 -1
  37. package/module/modules/index.js +0 -1
  38. package/module/modules/index.js.map +1 -1
  39. package/openid-connect/oidc-configuration.service.js +7 -7
  40. package/openid-connect/oidc-configuration.service.js.map +1 -1
  41. package/openid-connect/oidc.service.js +7 -7
  42. package/openid-connect/oidc.service.js.map +1 -1
  43. package/package.json +3 -4
  44. package/process-shutdown.js +3 -2
  45. package/process-shutdown.js.map +1 -1
  46. package/reflection/decorators.js +1 -0
  47. package/reflection/decorators.js.map +1 -1
  48. package/reflection/reflection-data-map.d.ts +10 -0
  49. package/reflection/reflection-data-map.js +40 -0
  50. package/reflection/reflection-data-map.js.map +1 -0
  51. package/reflection/registry.d.ts +7 -7
  52. package/reflection/registry.js +7 -6
  53. package/reflection/registry.js.map +1 -1
  54. package/reflection/types.d.ts +1 -0
  55. package/reflection/utils.d.ts +6 -3
  56. package/reflection/utils.js +9 -35
  57. package/reflection/utils.js.map +1 -1
  58. package/schema/array-constraints/index.d.ts +2 -0
  59. package/{old-api/validation/validators → schema/array-constraints}/index.js +2 -1
  60. package/schema/array-constraints/index.js.map +1 -0
  61. package/schema/array-constraints/maximum-length.d.ts +11 -0
  62. package/schema/array-constraints/maximum-length.js +26 -0
  63. package/schema/array-constraints/maximum-length.js.map +1 -0
  64. package/schema/array-constraints/minimum-length.d.ts +11 -0
  65. package/schema/array-constraints/minimum-length.js +26 -0
  66. package/schema/array-constraints/minimum-length.js.map +1 -0
  67. package/schema/coercers/boolean.coercer.d.ts +9 -0
  68. package/schema/coercers/boolean.coercer.js +35 -0
  69. package/schema/coercers/boolean.coercer.js.map +1 -0
  70. package/schema/coercers/date.coercer.d.ts +9 -0
  71. package/schema/coercers/date.coercer.js +24 -0
  72. package/schema/coercers/date.coercer.js.map +1 -0
  73. package/schema/coercers/default-value.coercer.d.ts +9 -0
  74. package/schema/coercers/default-value.coercer.js +16 -0
  75. package/schema/coercers/default-value.coercer.js.map +1 -0
  76. package/schema/coercers/index.d.ts +7 -0
  77. package/schema/coercers/index.js +24 -0
  78. package/schema/coercers/index.js.map +1 -0
  79. package/schema/coercers/number.coercer.d.ts +9 -0
  80. package/schema/coercers/number.coercer.js +22 -0
  81. package/schema/coercers/number.coercer.js.map +1 -0
  82. package/schema/coercers/regexp.coercer.d.ts +11 -0
  83. package/schema/coercers/regexp.coercer.js +24 -0
  84. package/schema/coercers/regexp.coercer.js.map +1 -0
  85. package/schema/coercers/string.coercer.d.ts +9 -0
  86. package/schema/coercers/string.coercer.js +22 -0
  87. package/schema/coercers/string.coercer.js.map +1 -0
  88. package/schema/coercers/uint8-array.coercer.d.ts +9 -0
  89. package/schema/coercers/uint8-array.coercer.js +31 -0
  90. package/schema/coercers/uint8-array.coercer.js.map +1 -0
  91. package/schema/constraints/enumeration.d.ts +13 -0
  92. package/schema/constraints/enumeration.js +29 -0
  93. package/schema/constraints/enumeration.js.map +1 -0
  94. package/schema/constraints/generic.d.ts +22 -0
  95. package/schema/constraints/generic.js +32 -0
  96. package/schema/constraints/generic.js.map +1 -0
  97. package/schema/constraints/index.d.ts +12 -0
  98. package/schema/constraints/index.js +29 -0
  99. package/schema/constraints/index.js.map +1 -0
  100. package/schema/constraints/integer.d.ts +12 -0
  101. package/schema/constraints/integer.js +27 -0
  102. package/schema/constraints/integer.js.map +1 -0
  103. package/schema/constraints/length.d.ts +6 -0
  104. package/schema/constraints/length.js +20 -0
  105. package/schema/constraints/length.js.map +1 -0
  106. package/schema/constraints/literal.d.ts +10 -0
  107. package/schema/constraints/literal.js +26 -0
  108. package/schema/constraints/literal.js.map +1 -0
  109. package/schema/constraints/maximum-date.d.ts +12 -0
  110. package/schema/constraints/maximum-date.js +29 -0
  111. package/schema/constraints/maximum-date.js.map +1 -0
  112. package/schema/constraints/maximum-length.d.ts +12 -0
  113. package/schema/constraints/maximum-length.js +29 -0
  114. package/schema/constraints/maximum-length.js.map +1 -0
  115. package/schema/constraints/maximum.d.ts +12 -0
  116. package/schema/constraints/maximum.js +27 -0
  117. package/schema/constraints/maximum.js.map +1 -0
  118. package/schema/constraints/minimum-date.d.ts +12 -0
  119. package/schema/constraints/minimum-date.js +29 -0
  120. package/schema/constraints/minimum-date.js.map +1 -0
  121. package/schema/constraints/minimum-length.d.ts +12 -0
  122. package/schema/constraints/minimum-length.js +29 -0
  123. package/schema/constraints/minimum-length.js.map +1 -0
  124. package/schema/constraints/minimum.d.ts +12 -0
  125. package/schema/constraints/minimum.js +27 -0
  126. package/schema/constraints/minimum.js.map +1 -0
  127. package/schema/constraints/pattern.d.ts +13 -0
  128. package/schema/constraints/pattern.js +28 -0
  129. package/schema/constraints/pattern.js.map +1 -0
  130. package/schema/decorators/array.d.ts +4 -0
  131. package/schema/decorators/array.js +11 -0
  132. package/schema/decorators/array.js.map +1 -0
  133. package/schema/decorators/coerce.d.ts +2 -0
  134. package/schema/decorators/coerce.js +10 -0
  135. package/schema/decorators/coerce.js.map +1 -0
  136. package/schema/decorators/defaulted.d.ts +3 -0
  137. package/schema/decorators/defaulted.js +11 -0
  138. package/schema/decorators/defaulted.js.map +1 -0
  139. package/schema/decorators/index.d.ts +8 -0
  140. package/{old-api → schema/decorators}/index.js +8 -3
  141. package/schema/decorators/index.js.map +1 -0
  142. package/schema/decorators/nullable.d.ts +2 -0
  143. package/schema/decorators/nullable.js +10 -0
  144. package/schema/decorators/nullable.js.map +1 -0
  145. package/schema/decorators/optional.d.ts +2 -0
  146. package/schema/decorators/optional.js +10 -0
  147. package/schema/decorators/optional.js.map +1 -0
  148. package/schema/decorators/property.d.ts +6 -0
  149. package/schema/decorators/property.js +19 -0
  150. package/schema/decorators/property.js.map +1 -0
  151. package/schema/decorators/type.d.ts +3 -0
  152. package/schema/decorators/type.js +10 -0
  153. package/schema/decorators/type.js.map +1 -0
  154. package/schema/decorators/types.d.ts +18 -0
  155. package/schema/decorators/types.js +3 -0
  156. package/schema/decorators/types.js.map +1 -0
  157. package/schema/decorators/utils.d.ts +10 -0
  158. package/schema/decorators/utils.js +59 -0
  159. package/schema/decorators/utils.js.map +1 -0
  160. package/schema/index.d.ts +7 -1
  161. package/schema/index.js +7 -1
  162. package/schema/index.js.map +1 -1
  163. package/schema/schema.d.ts +19 -0
  164. package/schema/schema.error.d.ts +13 -7
  165. package/schema/schema.error.js +45 -13
  166. package/schema/schema.error.js.map +1 -1
  167. package/schema/schema.js +286 -0
  168. package/schema/schema.js.map +1 -0
  169. package/schema/schemas/any.d.ts +4 -8
  170. package/schema/schemas/any.js +9 -14
  171. package/schema/schemas/any.js.map +1 -1
  172. package/schema/schemas/array.d.ts +7 -13
  173. package/schema/schemas/array.js +14 -43
  174. package/schema/schemas/array.js.map +1 -1
  175. package/schema/schemas/assign.d.ts +8 -0
  176. package/schema/schemas/assign.js +28 -0
  177. package/schema/schemas/assign.js.map +1 -0
  178. package/schema/schemas/boolean.d.ts +5 -9
  179. package/schema/schemas/boolean.js +11 -38
  180. package/schema/schemas/boolean.js.map +1 -1
  181. package/schema/schemas/constraint.d.ts +4 -0
  182. package/schema/schemas/constraint.js +14 -0
  183. package/schema/schemas/constraint.js.map +1 -0
  184. package/schema/schemas/date.d.ts +7 -11
  185. package/schema/schemas/date.js +18 -53
  186. package/schema/schemas/date.js.map +1 -1
  187. package/schema/schemas/defaulted.d.ts +2 -15
  188. package/schema/schemas/defaulted.js +7 -23
  189. package/schema/schemas/defaulted.js.map +1 -1
  190. package/schema/schemas/enumeration.d.ts +6 -18
  191. package/schema/schemas/enumeration.js +13 -50
  192. package/schema/schemas/enumeration.js.map +1 -1
  193. package/schema/schemas/exclude.d.ts +4 -0
  194. package/schema/schemas/exclude.js +17 -0
  195. package/schema/schemas/exclude.js.map +1 -0
  196. package/schema/schemas/index.d.ts +5 -6
  197. package/schema/schemas/index.js +5 -6
  198. package/schema/schemas/index.js.map +1 -1
  199. package/schema/schemas/instance.d.ts +2 -12
  200. package/schema/schemas/instance.js +4 -20
  201. package/schema/schemas/instance.js.map +1 -1
  202. package/schema/schemas/literal.d.ts +4 -11
  203. package/schema/schemas/literal.js +13 -18
  204. package/schema/schemas/literal.js.map +1 -1
  205. package/schema/schemas/nullable.d.ts +3 -13
  206. package/schema/schemas/nullable.js +3 -26
  207. package/schema/schemas/nullable.js.map +1 -1
  208. package/schema/schemas/number.d.ts +7 -14
  209. package/schema/schemas/number.js +23 -44
  210. package/schema/schemas/number.js.map +1 -1
  211. package/schema/schemas/object.d.ts +6 -34
  212. package/schema/schemas/object.js +8 -112
  213. package/schema/schemas/object.js.map +1 -1
  214. package/schema/schemas/optional.d.ts +3 -13
  215. package/schema/schemas/optional.js +3 -26
  216. package/schema/schemas/optional.js.map +1 -1
  217. package/schema/schemas/pick.d.ts +4 -0
  218. package/schema/schemas/pick.js +17 -0
  219. package/schema/schemas/pick.js.map +1 -0
  220. package/schema/schemas/readable-stream.d.ts +4 -9
  221. package/schema/schemas/readable-stream.js +9 -15
  222. package/schema/schemas/readable-stream.js.map +1 -1
  223. package/schema/schemas/record.d.ts +4 -0
  224. package/schema/schemas/record.js +14 -0
  225. package/schema/schemas/record.js.map +1 -0
  226. package/schema/schemas/regexp.d.ts +6 -9
  227. package/schema/schemas/regexp.js +10 -27
  228. package/schema/schemas/regexp.js.map +1 -1
  229. package/schema/schemas/string.d.ts +9 -13
  230. package/schema/schemas/string.js +34 -46
  231. package/schema/schemas/string.js.map +1 -1
  232. package/schema/schemas/transform.d.ts +4 -16
  233. package/schema/schemas/transform.js +7 -36
  234. package/schema/schemas/transform.js.map +1 -1
  235. package/schema/schemas/uint8-array.d.ts +8 -11
  236. package/schema/schemas/uint8-array.js +20 -32
  237. package/schema/schemas/uint8-array.js.map +1 -1
  238. package/schema/schemas/union.d.ts +5 -17
  239. package/schema/schemas/union.js +9 -35
  240. package/schema/schemas/union.js.map +1 -1
  241. package/schema/schemas/unknown.d.ts +4 -8
  242. package/schema/schemas/unknown.js +9 -14
  243. package/schema/schemas/unknown.js.map +1 -1
  244. package/schema/transformers/generic.d.ts +13 -0
  245. package/schema/transformers/generic.js +28 -0
  246. package/schema/transformers/generic.js.map +1 -0
  247. package/schema/transformers/index.d.ts +3 -0
  248. package/{old-api/endpoints → schema/transformers}/index.js +3 -1
  249. package/schema/transformers/index.js.map +1 -0
  250. package/schema/transformers/lowercase.d.ts +9 -0
  251. package/schema/transformers/lowercase.js +22 -0
  252. package/schema/transformers/lowercase.js.map +1 -0
  253. package/schema/transformers/trim.d.ts +9 -0
  254. package/schema/transformers/trim.js +22 -0
  255. package/schema/transformers/trim.js.map +1 -0
  256. package/schema/transformers/uppercase.d.ts +9 -0
  257. package/schema/transformers/uppercase.js +22 -0
  258. package/schema/transformers/uppercase.js.map +1 -0
  259. package/schema/types.d.ts +135 -15
  260. package/schema/types.js +39 -3
  261. package/schema/types.js.map +1 -1
  262. package/schema/utils/index.d.ts +2 -0
  263. package/{old-api/validation → schema/utils}/index.js +2 -1
  264. package/schema/utils/index.js.map +1 -0
  265. package/schema/utils/schema.d.ts +12 -0
  266. package/schema/utils/schema.js +78 -0
  267. package/schema/utils/schema.js.map +1 -0
  268. package/schema/utils/value-type.d.ts +4 -0
  269. package/schema/utils/value-type.js +35 -0
  270. package/schema/utils/value-type.js.map +1 -0
  271. package/templates/providers/file-template.provider.base.d.ts +1 -1
  272. package/templates/providers/file-template.provider.base.js +3 -2
  273. package/templates/providers/file-template.provider.base.js.map +1 -1
  274. package/types.d.ts +6 -3
  275. package/utils/enum.d.ts +1 -1
  276. package/utils/function/memoize.d.ts +6 -2
  277. package/utils/function/memoize.js +28 -20
  278. package/utils/function/memoize.js.map +1 -1
  279. package/utils/index.d.ts +1 -0
  280. package/utils/index.js +1 -0
  281. package/utils/index.js.map +1 -1
  282. package/utils/merge.d.ts +5 -0
  283. package/utils/merge.js +32 -0
  284. package/utils/merge.js.map +1 -0
  285. package/utils/object/dereference.js.map +1 -1
  286. package/utils/object/object.d.ts +4 -0
  287. package/utils/object/object.js +9 -2
  288. package/utils/object/object.js.map +1 -1
  289. package/utils/patterns.d.ts +1 -1
  290. package/utils/patterns.js +3 -3
  291. package/utils/patterns.js.map +1 -1
  292. package/utils/timing.d.ts +0 -8
  293. package/utils/timing.js.map +1 -1
  294. package/utils/type-guards.d.ts +6 -0
  295. package/utils/type-guards.js +16 -4
  296. package/utils/type-guards.js.map +1 -1
  297. package/instance-provider.d.ts +0 -17
  298. package/instance-provider.js +0 -55
  299. package/instance-provider.js.map +0 -1
  300. package/module/modules/old-web-server.module.d.ts +0 -22
  301. package/module/modules/old-web-server.module.js +0 -37
  302. package/module/modules/old-web-server.module.js.map +0 -1
  303. package/old-api/endpoint.d.ts +0 -5
  304. package/old-api/endpoint.js +0 -20
  305. package/old-api/endpoint.js.map +0 -1
  306. package/old-api/endpoints/echo.endpoint.d.ts +0 -2
  307. package/old-api/endpoints/echo.endpoint.js +0 -6
  308. package/old-api/endpoints/echo.endpoint.js.map +0 -1
  309. package/old-api/endpoints/index.d.ts +0 -1
  310. package/old-api/endpoints/index.js.map +0 -1
  311. package/old-api/http-api.d.ts +0 -63
  312. package/old-api/http-api.js +0 -269
  313. package/old-api/http-api.js.map +0 -1
  314. package/old-api/index.d.ts +0 -3
  315. package/old-api/index.js.map +0 -1
  316. package/old-api/validation/index.d.ts +0 -1
  317. package/old-api/validation/index.js.map +0 -1
  318. package/old-api/validation/types.d.ts +0 -6
  319. package/old-api/validation/types.js +0 -6
  320. package/old-api/validation/types.js.map +0 -1
  321. package/old-api/validation/validators/index.d.ts +0 -1
  322. package/old-api/validation/validators/index.js.map +0 -1
  323. package/old-api/validation/validators/noop.d.ts +0 -2
  324. package/old-api/validation/validators/noop.js +0 -8
  325. package/old-api/validation/validators/noop.js.map +0 -1
  326. package/old-api/validation/validators/superstruct.d.ts +0 -14
  327. package/old-api/validation/validators/superstruct.js +0 -66
  328. package/old-api/validation/validators/superstruct.js.map +0 -1
  329. package/old-api/validation/validators/yup.d.ts +0 -7
  330. package/old-api/validation/validators/yup.js +0 -60
  331. package/old-api/validation/validators/yup.js.map +0 -1
  332. package/schema/schema.validator.d.ts +0 -40
  333. package/schema/schema.validator.js +0 -75
  334. package/schema/schema.validator.js.map +0 -1
  335. package/schema/schemas/async-iterable.d.ts +0 -13
  336. package/schema/schemas/async-iterable.js +0 -40
  337. package/schema/schemas/async-iterable.js.map +0 -1
  338. package/schema/schemas/iterable.d.ts +0 -13
  339. package/schema/schemas/iterable.js +0 -40
  340. package/schema/schemas/iterable.js.map +0 -1
  341. package/schema/schemas/never.d.ts +0 -9
  342. package/schema/schemas/never.js +0 -22
  343. package/schema/schemas/never.js.map +0 -1
  344. package/schema/schemas/preprocess.d.ts +0 -16
  345. package/schema/schemas/preprocess.js +0 -35
  346. package/schema/schemas/preprocess.js.map +0 -1
  347. package/schema/schemas/refine.d.ts +0 -24
  348. package/schema/schemas/refine.js +0 -52
  349. package/schema/schemas/refine.js.map +0 -1
@@ -1,53 +1,24 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.array = exports.ArraySchemaValidator = void 0;
4
+ exports.array = void 0;
4
5
  const type_guards_1 = require("../../utils/type-guards");
5
- const type_of_1 = require("../../utils/type-of");
6
- const schema_error_1 = require("../schema.error");
7
- const schema_validator_1 = require("../schema.validator");
6
+ const array_constraints_1 = require("../array-constraints");
8
7
  const types_1 = require("../types");
9
- class ArraySchemaValidator extends schema_validator_1.SchemaValidator {
10
- constructor(innerValidator, schema) {
11
- super(schema);
12
- this.innerValidator = innerValidator;
8
+ function array(innerValues, options = {}) {
9
+ const arrayConstraints = [];
10
+ if ((0, type_guards_1.isDefined)(options.minimumLength)) {
11
+ arrayConstraints.push(new array_constraints_1.ArrayMaximumLengthConstraint(options.minimumLength));
13
12
  }
14
- [schema_validator_1.test](value, options, path) {
15
- if (!(0, type_guards_1.isArray)(value)) {
16
- return { valid: false, error: schema_error_1.SchemaError.expectedButGot('array', (0, type_of_1.typeOf)(value), path) };
17
- }
18
- const validatedArray = [];
19
- for (let i = 0; i < value.length; i++) {
20
- const innerTestResult = this.innerValidator[schema_validator_1.test](value[i], options, path.add(i));
21
- if (!innerTestResult.valid) {
22
- return innerTestResult;
23
- }
24
- validatedArray.push(innerTestResult.value);
25
- }
26
- return { valid: true, value: validatedArray };
13
+ if ((0, type_guards_1.isDefined)(options.maximumLength)) {
14
+ arrayConstraints.push(new array_constraints_1.ArrayMaximumLengthConstraint(options.maximumLength));
27
15
  }
28
- async [schema_validator_1.testAsync](value, options, path) {
29
- if (!(0, type_guards_1.isArray)(value)) {
30
- return { valid: false, error: schema_error_1.SchemaError.expectedButGot('array', (0, type_of_1.typeOf)(value), path) };
31
- }
32
- const validatedArray = [];
33
- for (let i = 0; i < value.length; i++) {
34
- const innerTestResult = await this.innerValidator[schema_validator_1.testAsync](value[i], options, path.add(i));
35
- if (!innerTestResult.valid) {
36
- return innerTestResult;
37
- }
38
- validatedArray.push(innerTestResult.value);
39
- }
40
- return { valid: true, value: validatedArray };
41
- }
42
- }
43
- exports.ArraySchemaValidator = ArraySchemaValidator;
44
- function array(innerValidator, options) {
45
- const schema = (0, types_1.schemaHelper)({
46
- type: 'array',
47
- schema: innerValidator.schema,
48
- ...options
16
+ return (0, types_1.valueSchema)({
17
+ type: innerValues,
18
+ array: true,
19
+ coerce: options.coerce,
20
+ arrayConstraints
49
21
  });
50
- return new ArraySchemaValidator(innerValidator, schema);
51
22
  }
52
23
  exports.array = array;
53
24
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../source/schema/schemas/array.ts"],"names":[],"mappings":";;;AACA,yDAA8C;AAC9C,iDAAyC;AACzC,kDAA8C;AAE9C,0DAAuE;AAEvE,oCAAwC;AAMxC,MAAa,oBAAiD,SAAQ,kCAAyC;IAG7G,YAAY,cAAkC,EAAE,MAAgC;QAC9E,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,CAAC,IAAA,qBAAO,EAAC,KAAK,CAAC,EAAE;YACnB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,OAAO,EAAE,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;SAC1F;QAED,MAAM,cAAc,GAAsB,EAAE,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;gBAC1B,OAAO,eAAe,CAAC;aACxB;YAED,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC5C;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,CAAC,4BAAS,CAAC,CAAC,KAAc,EAAE,OAAiC,EAAE,IAAc;QACjF,IAAI,CAAC,IAAA,qBAAO,EAAC,KAAK,CAAC,EAAE;YACnB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,OAAO,EAAE,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;SAC1F;QAED,MAAM,cAAc,GAAsB,EAAE,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,4BAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/G,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;gBAC1B,OAAO,eAAe,CAAC;aACxB;YAED,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC5C;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAChD,CAAC;CACF;AAhDD,oDAgDC;AAED,SAAgB,KAAK,CAA6B,cAAkC,EAAE,OAA2D;IAC/I,MAAM,MAAM,GAAG,IAAA,oBAAY,EAA2B;QACpD,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,oBAAoB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AARD,sBAQC"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../source/schema/schemas/array.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAEzD,yDAAgD;AAChD,4DAAoE;AAEpE,oCAAuC;AAUvC,SAAgB,KAAK,CAAI,WAAuC,EAAE,UAAwB,EAAE;IAC1F,MAAM,gBAAgB,GAA4B,EAAE,CAAC;IAErD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,gBAAgB,CAAC,IAAI,CAAC,IAAI,gDAA4B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KAChF;IAED,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACpC,gBAAgB,CAAC,IAAI,CAAC,IAAI,gDAA4B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;KAChF;IAED,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB;KACjB,CAAC,CAAC;AACL,CAAC;AAjBD,sBAiBC"}
@@ -0,0 +1,8 @@
1
+ import type { Record } from "../../types";
2
+ import type { Merge } from 'type-fest';
3
+ import type { ObjectSchema } from '../types';
4
+ export declare function assign<A extends Record, B extends Record>(schema1: ObjectSchema<A>, schema2: ObjectSchema<B>): ObjectSchema<Merge<A, B>>;
5
+ export declare function assign<A extends Record, B extends Record, C extends Record>(schema1: ObjectSchema<A>, schema2: ObjectSchema<B>, schema3: ObjectSchema<C>): ObjectSchema<Merge<Merge<A, B>, C>>;
6
+ export declare function assign<A extends Record, B extends Record, C extends Record, D extends Record>(schema1: ObjectSchema<A>, schema2: ObjectSchema<B>, schema3: ObjectSchema<C>, schema4: ObjectSchema<D>): ObjectSchema<Merge<Merge<Merge<A, B>, C>, D>>;
7
+ export declare function assign<A extends Record, B extends Record, C extends Record, D extends Record, E extends Record>(schema1: ObjectSchema<A>, schema2: ObjectSchema<B>, schema3: ObjectSchema<C>, schema4: ObjectSchema<D>, schema5: ObjectSchema<E>): ObjectSchema<Merge<Merge<Merge<Merge<A, B>, C>, D>, E>>;
8
+ export declare function assign<A extends Record, B extends Record, C extends Record, D extends Record, E extends Record, F extends Record>(schema1: ObjectSchema<A>, schema2: ObjectSchema<B>, schema3: ObjectSchema<C>, schema4: ObjectSchema<D>, schema5: ObjectSchema<E>, schema6: ObjectSchema<F>): ObjectSchema<Merge<Merge<Merge<Merge<Merge<A, B>, C>, D>, E>, F>>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assign = void 0;
4
+ const array_1 = require("../../utils/array/array");
5
+ const type_guards_1 = require("../../utils/type-guards");
6
+ function assign(...schemas) {
7
+ (0, type_guards_1.assert)(schemas.length >= 2, 'Assign requires at least 2 schemas.');
8
+ let result = schemas[0];
9
+ const hasDeferredValueType = schemas.flatMap((schema) => (0, array_1.toArray)(schema.allowUnknownProperties));
10
+ for (let i = 1; i < schemas.length; i++) {
11
+ result = {
12
+ ...result,
13
+ ...schemas[i],
14
+ properties: {
15
+ ...result.properties,
16
+ ...schemas[i].properties
17
+ },
18
+ allowUnknownProperties: [...(0, array_1.toArray)(result.allowUnknownProperties ?? []), ...(0, array_1.toArray)(schemas[i].allowUnknownProperties ?? [])]
19
+ };
20
+ }
21
+ if (result.allowUnknownProperties.length == 0) {
22
+ const { allowUnknownProperties: _, ...rest } = result;
23
+ result = rest;
24
+ }
25
+ return result;
26
+ }
27
+ exports.assign = assign;
28
+ //# sourceMappingURL=assign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../source/schema/schemas/assign.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAC9C,yDAA6C;AAoB7C,SAAgB,MAAM,CAAC,GAAG,OAAuB;IAC/C,IAAA,oBAAM,EAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,qCAAqC,CAAC,CAAC;IAEnE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IACzB,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,GAAG;YACP,GAAG,MAAM;YACT,GAAG,OAAO,CAAC,CAAC,CAAE;YACd,UAAU,EAAE;gBACV,GAAG,MAAM,CAAC,UAAU;gBACpB,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,UAAU;aAC1B;YACD,sBAAsB,EAAE,CAAC,GAAG,IAAA,eAAO,EAAC,MAAM,CAAC,sBAAsB,IAAI,EAAE,CAAC,EAAE,GAAG,IAAA,eAAO,EAAC,OAAO,CAAC,CAAC,CAAE,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;SAChI,CAAC;KACH;IAED,IAAK,MAAM,CAAC,sBAAgC,CAAC,MAAM,IAAI,CAAC,EAAE;QACxD,MAAM,EAAE,sBAAsB,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACtD,MAAM,GAAG,IAAI,CAAC;KACf;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,wBAwBC"}
@@ -1,9 +1,5 @@
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 BooleanSchemaDefinition = SchemaDefinition<'boolean', unknown, boolean> & Coercible;
6
- export declare class BooleanSchemaValidator extends SchemaValidator<BooleanSchemaDefinition> {
7
- [test](value: unknown, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<boolean>;
8
- }
9
- export declare function boolean(options?: SchemaOptions<BooleanSchemaDefinition>): BooleanSchemaValidator;
1
+ import type { Decorator } from "../../reflection";
2
+ import type { Coercible, ValueSchema } from '../types';
3
+ export declare type BooleanOptions = Coercible;
4
+ export declare function boolean(options?: BooleanOptions): ValueSchema<boolean>;
5
+ export declare function Boolean(options?: BooleanOptions): Decorator<'property' | 'accessor'>;
@@ -1,45 +1,18 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.boolean = exports.BooleanSchemaValidator = void 0;
4
- const schema_error_1 = require("../schema.error");
5
- const schema_validator_1 = require("../schema.validator");
4
+ exports.Boolean = exports.boolean = void 0;
5
+ const decorators_1 = require("../decorators");
6
6
  const types_1 = require("../types");
7
- const coercerMap = {
8
- string: (string, path) => {
9
- const lowered = string.toLowerCase();
10
- switch (lowered) {
11
- case 'true':
12
- case '1':
13
- case 'yes':
14
- return { valid: true, value: true };
15
- case 'false':
16
- case '0':
17
- case 'no':
18
- return { valid: true, value: false };
19
- default:
20
- return { valid: false, error: schema_error_1.SchemaError.expectedButGot('boolean', 'string', path) };
21
- }
22
- },
23
- number: (number, path) => ((number == 1) ? { valid: true, value: true }
24
- : (number == 0) ? { valid: true, value: false }
25
- : { valid: false, error: schema_error_1.SchemaError.expectedButGot('boolean', 'number', path) })
26
- };
27
- class BooleanSchemaValidator extends schema_validator_1.SchemaValidator {
28
- [schema_validator_1.test](value, options, path) {
29
- const result = super.ensureType('boolean', value, path, { coerce: this.schema.coerce ?? options.coerce }, coercerMap);
30
- if (!result.valid) {
31
- return result;
32
- }
33
- return { valid: true, value: result.value };
34
- }
35
- }
36
- exports.BooleanSchemaValidator = BooleanSchemaValidator;
37
- function boolean(options) {
38
- const schema = (0, types_1.schemaHelper)({
39
- type: 'boolean',
40
- ...options
7
+ function boolean(options = {}) {
8
+ return (0, types_1.valueSchema)({
9
+ type: globalThis.Boolean,
10
+ coerce: options.coerce
41
11
  });
42
- return new BooleanSchemaValidator(schema);
43
12
  }
44
13
  exports.boolean = boolean;
14
+ function Boolean(options) {
15
+ return (0, decorators_1.createSchemaPropertyDecoratorFromValueType)(boolean(options));
16
+ }
17
+ exports.Boolean = Boolean;
45
18
  //# sourceMappingURL=boolean.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../source/schema/schemas/boolean.ts"],"names":[],"mappings":";;;AACA,kDAA8C;AAE9C,0DAA4D;AAE5D,oCAAwC;AAExC,MAAM,UAAU,GAAwB;IACtC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAErC,QAAQ,OAAO,EAAE;YACf,KAAK,MAAM,CAAC;YACZ,KAAK,GAAG,CAAC;YACT,KAAK,KAAK;gBACR,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAEtC,KAAK,OAAO,CAAC;YACb,KAAK,GAAG,CAAC;YACT,KAAK,IAAI;gBACP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAEvC;gBACE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;SACzF;IACH,CAAC;IACD,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CACxB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QAC1C,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;YAC7C,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CACrF;CACF,CAAC;AAIF,MAAa,sBAAuB,SAAQ,kCAAwC;IAClF,CAAC,uBAAI,CAAC,CAAC,KAAc,EAAE,OAAiC,EAAE,IAAc;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;QAEtH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO,MAAM,CAAC;SACf;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC;CACF;AAVD,wDAUC;AAED,SAAgB,OAAO,CAAC,OAAgD;IACtE,MAAM,MAAM,GAAG,IAAA,oBAAY,EAA0B;QACnD,IAAI,EAAE,SAAS;QACf,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAPD,0BAOC"}
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../source/schema/schemas/boolean.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,8CAA2E;AAE3E,oCAAuC;AAIvC,SAAgB,OAAO,CAAC,UAA0B,EAAE;IAClD,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,UAAU,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AALD,0BAKC;AAED,SAAgB,OAAO,CAAC,OAAwB;IAC9C,OAAO,IAAA,uDAA0C,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC;AAFD,0BAEC"}
@@ -0,0 +1,4 @@
1
+ import type { OneOrMany } from "../../types";
2
+ import type { GenericConstraintFunction } from '../constraints/generic';
3
+ import type { Schema } from '../schema';
4
+ export declare function constraint<T>(schema: Schema<T>, constraintFunction: GenericConstraintFunction<T>, expects?: OneOrMany<string>): Schema<T>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.constraint = void 0;
4
+ const generic_1 = require("../constraints/generic");
5
+ const types_1 = require("../types");
6
+ function constraint(schema, constraintFunction, expects) {
7
+ return (0, types_1.valueSchema)({
8
+ type: schema,
9
+ valueConstraints: new generic_1.GenericConstraint(constraintFunction, expects)
10
+ });
11
+ }
12
+ exports.constraint = constraint;
13
+ /* decorator is in file of GenericConstraint */
14
+ //# sourceMappingURL=constraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../source/schema/schemas/constraint.ts"],"names":[],"mappings":";;;AAEA,oDAA2D;AAE3D,oCAAuC;AAEvC,SAAgB,UAAU,CAAI,MAAiB,EAAE,kBAAgD,EAAE,OAA2B;IAC5H,OAAO,IAAA,mBAAW,EAAC;QACjB,IAAI,EAAE,MAAM;QACZ,gBAAgB,EAAE,IAAI,2BAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC;KACrE,CAAC,CAAC;AACL,CAAC;AALD,gCAKC;AAED,+CAA+C"}
@@ -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);