justus 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/dts-generator.cjs +22 -7
  2. package/dist/dts-generator.cjs.map +1 -1
  3. package/dist/dts-generator.mjs +22 -7
  4. package/dist/dts-generator.mjs.map +1 -1
  5. package/dist/extra/arn.cjs +1 -1
  6. package/dist/extra/arn.cjs.map +1 -1
  7. package/dist/extra/arn.mjs +1 -1
  8. package/dist/extra/arn.mjs.map +1 -1
  9. package/dist/index.cjs +13 -2
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.ts +12 -0
  12. package/dist/index.mjs +9 -2
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/types.cjs +0 -7
  15. package/dist/types.cjs.map +1 -1
  16. package/dist/types.d.ts +11 -13
  17. package/dist/types.mjs +0 -6
  18. package/dist/types.mjs.map +1 -1
  19. package/dist/utilities.cjs +1 -0
  20. package/dist/utilities.cjs.map +1 -1
  21. package/dist/utilities.mjs +1 -0
  22. package/dist/utilities.mjs.map +1 -1
  23. package/dist/validators/bigint.cjs +146 -0
  24. package/dist/validators/bigint.cjs.map +6 -0
  25. package/dist/validators/bigint.d.ts +46 -0
  26. package/dist/validators/bigint.mjs +118 -0
  27. package/dist/validators/bigint.mjs.map +6 -0
  28. package/dist/validators/boolean.cjs +1 -1
  29. package/dist/validators/boolean.cjs.map +1 -1
  30. package/dist/validators/boolean.mjs +1 -1
  31. package/dist/validators/boolean.mjs.map +1 -1
  32. package/dist/validators/constant.cjs +2 -1
  33. package/dist/validators/constant.cjs.map +1 -1
  34. package/dist/validators/constant.d.ts +2 -2
  35. package/dist/validators/constant.mjs +2 -1
  36. package/dist/validators/constant.mjs.map +1 -1
  37. package/dist/validators/never.cjs +1 -1
  38. package/dist/validators/never.cjs.map +1 -1
  39. package/dist/validators/never.mjs +2 -2
  40. package/dist/validators/never.mjs.map +1 -1
  41. package/dist/validators/number.cjs +5 -5
  42. package/dist/validators/number.cjs.map +1 -1
  43. package/dist/validators/number.mjs +5 -5
  44. package/dist/validators/number.mjs.map +1 -1
  45. package/dist/validators/object.cjs +7 -5
  46. package/dist/validators/object.cjs.map +1 -1
  47. package/dist/validators/object.mjs +8 -6
  48. package/dist/validators/object.mjs.map +1 -1
  49. package/dist/validators/optional.cjs +1 -1
  50. package/dist/validators/optional.cjs.map +1 -1
  51. package/dist/validators/optional.mjs +2 -2
  52. package/dist/validators/optional.mjs.map +1 -1
  53. package/dist/validators/string.cjs +2 -2
  54. package/dist/validators/string.cjs.map +1 -1
  55. package/dist/validators/string.mjs +2 -2
  56. package/dist/validators/string.mjs.map +1 -1
  57. package/package.json +3 -8
  58. package/src/dts-generator.ts +23 -6
  59. package/src/extra/arn.ts +1 -1
  60. package/src/index.ts +20 -2
  61. package/src/types.ts +11 -16
  62. package/src/utilities.ts +1 -0
  63. package/src/validators/bigint.ts +147 -0
  64. package/src/validators/boolean.ts +1 -1
  65. package/src/validators/constant.ts +4 -3
  66. package/src/validators/never.ts +2 -2
  67. package/src/validators/number.ts +5 -5
  68. package/src/validators/object.ts +8 -7
  69. package/src/validators/optional.ts +2 -2
  70. package/src/validators/string.ts +2 -2
@@ -39,7 +39,7 @@ function countDecimals(n) {
39
39
  }
40
40
  var AnyNumberValidator = class extends import_types.AbstractValidator {
41
41
  validate(value) {
42
- (0, import_errors.assertValidation)(typeof value == "number", 'Value is not a "number"');
42
+ (0, import_errors.assertValidation)(typeof value === "number", 'Value is not a "number"');
43
43
  (0, import_errors.assertValidation)(!isNaN(value), 'Number is "NaN"');
44
44
  return value;
45
45
  }
@@ -114,12 +114,12 @@ var NumberValidator = class extends import_types.AbstractValidator {
114
114
  this.multipleOf = multipleOf;
115
115
  }
116
116
  validate(value) {
117
- if (typeof value == "string" && this.fromString) {
117
+ if (typeof value === "string" && this.fromString) {
118
118
  const parsed = +`${value}`;
119
119
  (0, import_errors.assertValidation)(!isNaN(parsed), "Number can not be parsed from string");
120
120
  value = parsed;
121
121
  }
122
- (0, import_errors.assertValidation)(typeof value == "number", 'Value is not a "number"');
122
+ (0, import_errors.assertValidation)(typeof value === "number", 'Value is not a "number"');
123
123
  if (isNaN(value)) {
124
124
  (0, import_errors.assertValidation)(this.allowNaN, 'Number is "NaN"');
125
125
  return value;
@@ -127,11 +127,11 @@ var NumberValidator = class extends import_types.AbstractValidator {
127
127
  (0, import_errors.assertValidation)(value >= this.minimum, `Number is less than ${this.minimum}`);
128
128
  (0, import_errors.assertValidation)(value <= this.maximum, `Number is greater than ${this.maximum}`);
129
129
  (0, import_errors.assertValidation)(
130
- this.exclusiveMinimum == void 0 || value > this.exclusiveMinimum,
130
+ this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
131
131
  `Number is less than or equal to ${this.exclusiveMinimum}`
132
132
  );
133
133
  (0, import_errors.assertValidation)(
134
- this.exclusiveMaximum == void 0 || value < this.exclusiveMaximum,
134
+ this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
135
135
  `Number is greater than or equal to ${this.exclusiveMaximum}`
136
136
  );
137
137
  (0, import_errors.assertValidation)(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/number.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -12,7 +12,7 @@ function countDecimals(n) {
12
12
  }
13
13
  var AnyNumberValidator = class extends AbstractValidator {
14
14
  validate(value) {
15
- assertValidation(typeof value == "number", 'Value is not a "number"');
15
+ assertValidation(typeof value === "number", 'Value is not a "number"');
16
16
  assertValidation(!isNaN(value), 'Number is "NaN"');
17
17
  return value;
18
18
  }
@@ -87,12 +87,12 @@ var NumberValidator = class extends AbstractValidator {
87
87
  this.multipleOf = multipleOf;
88
88
  }
89
89
  validate(value) {
90
- if (typeof value == "string" && this.fromString) {
90
+ if (typeof value === "string" && this.fromString) {
91
91
  const parsed = +`${value}`;
92
92
  assertValidation(!isNaN(parsed), "Number can not be parsed from string");
93
93
  value = parsed;
94
94
  }
95
- assertValidation(typeof value == "number", 'Value is not a "number"');
95
+ assertValidation(typeof value === "number", 'Value is not a "number"');
96
96
  if (isNaN(value)) {
97
97
  assertValidation(this.allowNaN, 'Number is "NaN"');
98
98
  return value;
@@ -100,11 +100,11 @@ var NumberValidator = class extends AbstractValidator {
100
100
  assertValidation(value >= this.minimum, `Number is less than ${this.minimum}`);
101
101
  assertValidation(value <= this.maximum, `Number is greater than ${this.maximum}`);
102
102
  assertValidation(
103
- this.exclusiveMinimum == void 0 || value > this.exclusiveMinimum,
103
+ this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
104
104
  `Number is less than or equal to ${this.exclusiveMinimum}`
105
105
  );
106
106
  assertValidation(
107
- this.exclusiveMaximum == void 0 || value < this.exclusiveMaximum,
107
+ this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
108
108
  `Number is greater than or equal to ${this.exclusiveMaximum}`
109
109
  );
110
110
  assertValidation(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/number.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -33,7 +33,7 @@ var import_types = require("../types.cjs");
33
33
  var import_utilities = require("../utilities.cjs");
34
34
  var AnyObjectValidator = class extends import_types.AbstractValidator {
35
35
  validate(value) {
36
- (0, import_errors.assertValidation)(typeof value == "object", 'Value is not an "object"');
36
+ (0, import_errors.assertValidation)(typeof value === "object", 'Value is not an "object"');
37
37
  (0, import_errors.assertValidation)(value !== null, 'Value is "null"');
38
38
  return value;
39
39
  }
@@ -52,10 +52,10 @@ var ObjectValidator = class extends import_types.AbstractValidator {
52
52
  }
53
53
  this.schema = schema;
54
54
  }
55
- validate(value, options = import_types.defaultValidationOptions) {
55
+ validate(value, options = {}) {
56
56
  (0, import_errors.assertValidation)(typeof value === "object", 'Value is not an "object"');
57
57
  (0, import_errors.assertValidation)(value !== null, 'Value is "null"');
58
- const { stripAdditionalProperties, stripOptionalNulls } = options;
58
+ const { stripAdditionalProperties, stripOptionalNulls, partialValidation } = options;
59
59
  const record = value;
60
60
  const builder = new import_errors.ValidationErrorBuilder();
61
61
  const clone = {};
@@ -66,9 +66,11 @@ var ObjectValidator = class extends import_types.AbstractValidator {
66
66
  continue;
67
67
  }
68
68
  if (original === void 0) {
69
+ if (partialValidation)
70
+ continue;
69
71
  try {
70
72
  const validated = validator.validate(original, options);
71
- if (!(optional && validated == void 0))
73
+ if (!(optional && validated === void 0))
72
74
  clone[key] = validated;
73
75
  } catch (error) {
74
76
  if (optional)
@@ -79,7 +81,7 @@ var ObjectValidator = class extends import_types.AbstractValidator {
79
81
  }
80
82
  try {
81
83
  const validated = validator.validate(original, options);
82
- if (!(optional && validated == void 0))
84
+ if (!(optional && validated === void 0))
83
85
  clone[key] = validated;
84
86
  } catch (error) {
85
87
  builder.record(error, key);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/object.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,11 +1,11 @@
1
1
  // validators/object.ts
2
2
  import { assertValidation, ValidationErrorBuilder } from "../errors.mjs";
3
3
  import { registry } from "../registry.mjs";
4
- import { AbstractValidator, defaultValidationOptions, makeValidatorFactory } from "../types.mjs";
4
+ import { AbstractValidator, makeValidatorFactory } from "../types.mjs";
5
5
  import { getValidator } from "../utilities.mjs";
6
6
  var AnyObjectValidator = class extends AbstractValidator {
7
7
  validate(value) {
8
- assertValidation(typeof value == "object", 'Value is not an "object"');
8
+ assertValidation(typeof value === "object", 'Value is not an "object"');
9
9
  assertValidation(value !== null, 'Value is "null"');
10
10
  return value;
11
11
  }
@@ -24,10 +24,10 @@ var ObjectValidator = class extends AbstractValidator {
24
24
  }
25
25
  this.schema = schema;
26
26
  }
27
- validate(value, options = defaultValidationOptions) {
27
+ validate(value, options = {}) {
28
28
  assertValidation(typeof value === "object", 'Value is not an "object"');
29
29
  assertValidation(value !== null, 'Value is "null"');
30
- const { stripAdditionalProperties, stripOptionalNulls } = options;
30
+ const { stripAdditionalProperties, stripOptionalNulls, partialValidation } = options;
31
31
  const record = value;
32
32
  const builder = new ValidationErrorBuilder();
33
33
  const clone = {};
@@ -38,9 +38,11 @@ var ObjectValidator = class extends AbstractValidator {
38
38
  continue;
39
39
  }
40
40
  if (original === void 0) {
41
+ if (partialValidation)
42
+ continue;
41
43
  try {
42
44
  const validated = validator.validate(original, options);
43
- if (!(optional && validated == void 0))
45
+ if (!(optional && validated === void 0))
44
46
  clone[key] = validated;
45
47
  } catch (error) {
46
48
  if (optional)
@@ -51,7 +53,7 @@ var ObjectValidator = class extends AbstractValidator {
51
53
  }
52
54
  try {
53
55
  const validated = validator.validate(original, options);
54
- if (!(optional && validated == void 0))
56
+ if (!(optional && validated === void 0))
55
57
  clone[key] = validated;
56
58
  } catch (error) {
57
59
  builder.record(error, key);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/object.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -38,7 +38,7 @@ var OptionalValidator = class extends import_types.AbstractValidator {
38
38
  return;
39
39
  }
40
40
  try {
41
- this.defaultValue = validator.validate(defaultValue, import_types.defaultValidationOptions);
41
+ this.defaultValue = validator.validate(defaultValue, {});
42
42
  } catch (cause) {
43
43
  throw new TypeError("Default value does not match validator", { cause });
44
44
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/optional.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4D;AAC5D,uBAA6B;AAOtB,IAAM,oBAAN,cAIG,+BAA0E;AAAA,EAClF;AAAA,EACA;AAAA,EAKA,YAAY,WAAyB,cAAkB;AACrD,UAAM;AACN,SAAK,YAAY;AACjB,SAAK,WAAY,iBAAiB;AAClC,QAAI,KAAK,UAAU;AACjB,WAAK,eAAe;AACpB;AAAA,IACF;AAEA,QAAI;AACF,WAAK,eAAe,UAAU,SAAS,cAAc,qCAAwB;AAAA,IAC/E,SAAS,OAAO;AACd,YAAM,IAAI,UAAU,0CAA0C,EAAE,MAAM,CAAC;AAAA,IACzE;AAAA,EACF;AAAA,EAGA,SAAS,OAAgB,SAA4C;AACnE,QAAI,UAAU;AAAW,aAAO,KAAK;AACrC,WAAO,KAAK,UAAU,SAAS,OAAO,OAAO;AAAA,EAC/C;AACF;AAeO,SAAS,SAEd,YAAe,cAA2E;AAC1F,QAAM,gBAAY,+BAAa,UAAU;AACzC,SAAO,IAAI,kBAAkB,WAAW,YAAY;AACtD;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAClC,uBAA6B;AAOtB,IAAM,oBAAN,cAIG,+BAA0E;AAAA,EAClF;AAAA,EACA;AAAA,EAKA,YAAY,WAAyB,cAAkB;AACrD,UAAM;AACN,SAAK,YAAY;AACjB,SAAK,WAAY,iBAAiB;AAClC,QAAI,KAAK,UAAU;AACjB,WAAK,eAAe;AACpB;AAAA,IACF;AAEA,QAAI;AACF,WAAK,eAAe,UAAU,SAAS,cAAc,CAAC,CAAC;AAAA,IACzD,SAAS,OAAO;AACd,YAAM,IAAI,UAAU,0CAA0C,EAAE,MAAM,CAAC;AAAA,IACzE;AAAA,EACF;AAAA,EAGA,SAAS,OAAgB,SAA4C;AACnE,QAAI,UAAU;AAAW,aAAO,KAAK;AACrC,WAAO,KAAK,UAAU,SAAS,OAAO,OAAO;AAAA,EAC/C;AACF;AAeO,SAAS,SAEd,YAAe,cAA2E;AAC1F,QAAM,gBAAY,+BAAa,UAAU;AACzC,SAAO,IAAI,kBAAkB,WAAW,YAAY;AACtD;",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,5 @@
1
1
  // validators/optional.ts
2
- import { AbstractValidator, defaultValidationOptions } from "../types.mjs";
2
+ import { AbstractValidator } from "../types.mjs";
3
3
  import { getValidator } from "../utilities.mjs";
4
4
  var OptionalValidator = class extends AbstractValidator {
5
5
  validator;
@@ -13,7 +13,7 @@ var OptionalValidator = class extends AbstractValidator {
13
13
  return;
14
14
  }
15
15
  try {
16
- this.defaultValue = validator.validate(defaultValue, defaultValidationOptions);
16
+ this.defaultValue = validator.validate(defaultValue, {});
17
17
  } catch (cause) {
18
18
  throw new TypeError("Default value does not match validator", { cause });
19
19
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/optional.ts"],
4
- "mappings": ";AAAA,SAAS,mBAAmB,gCAAgC;AAC5D,SAAS,oBAAoB;AAOtB,IAAM,oBAAN,cAIG,kBAA0E;AAAA,EAClF;AAAA,EACA;AAAA,EAKA,YAAY,WAAyB,cAAkB;AACrD,UAAM;AACN,SAAK,YAAY;AACjB,SAAK,WAAY,iBAAiB;AAClC,QAAI,KAAK,UAAU;AACjB,WAAK,eAAe;AACpB;AAAA,IACF;AAEA,QAAI;AACF,WAAK,eAAe,UAAU,SAAS,cAAc,wBAAwB;AAAA,IAC/E,SAAS,OAAO;AACd,YAAM,IAAI,UAAU,0CAA0C,EAAE,MAAM,CAAC;AAAA,IACzE;AAAA,EACF;AAAA,EAGA,SAAS,OAAgB,SAA4C;AACnE,QAAI,UAAU;AAAW,aAAO,KAAK;AACrC,WAAO,KAAK,UAAU,SAAS,OAAO,OAAO;AAAA,EAC/C;AACF;AAeO,SAAS,SAEd,YAAe,cAA2E;AAC1F,QAAM,YAAY,aAAa,UAAU;AACzC,SAAO,IAAI,kBAAkB,WAAW,YAAY;AACtD;",
4
+ "mappings": ";AAAA,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAOtB,IAAM,oBAAN,cAIG,kBAA0E;AAAA,EAClF;AAAA,EACA;AAAA,EAKA,YAAY,WAAyB,cAAkB;AACrD,UAAM;AACN,SAAK,YAAY;AACjB,SAAK,WAAY,iBAAiB;AAClC,QAAI,KAAK,UAAU;AACjB,WAAK,eAAe;AACpB;AAAA,IACF;AAEA,QAAI;AACF,WAAK,eAAe,UAAU,SAAS,cAAc,CAAC,CAAC;AAAA,IACzD,SAAS,OAAO;AACd,YAAM,IAAI,UAAU,0CAA0C,EAAE,MAAM,CAAC;AAAA,IACzE;AAAA,EACF;AAAA,EAGA,SAAS,OAAgB,SAA4C;AACnE,QAAI,UAAU;AAAW,aAAO,KAAK;AACrC,WAAO,KAAK,UAAU,SAAS,OAAO,OAAO;AAAA,EAC/C;AACF;AAeO,SAAS,SAEd,YAAe,cAA2E;AAC1F,QAAM,YAAY,aAAa,UAAU;AACzC,SAAO,IAAI,kBAAkB,WAAW,YAAY;AACtD;",
5
5
  "names": []
6
6
  }
@@ -30,7 +30,7 @@ var import_errors = require("../errors.cjs");
30
30
  var import_types = require("../types.cjs");
31
31
  var AnyStringValidator = class extends import_types.AbstractValidator {
32
32
  validate(value) {
33
- (0, import_errors.assertValidation)(typeof value == "string", 'Value is not a "string"');
33
+ (0, import_errors.assertValidation)(typeof value === "string", 'Value is not a "string"');
34
34
  return value;
35
35
  }
36
36
  };
@@ -56,7 +56,7 @@ var StringValidator = class extends import_types.AbstractValidator {
56
56
  this.pattern = pattern;
57
57
  }
58
58
  validate(value) {
59
- (0, import_errors.assertValidation)(typeof value == "string", 'Value is not a "string"');
59
+ (0, import_errors.assertValidation)(typeof value === "string", 'Value is not a "string"');
60
60
  (0, import_errors.assertValidation)(
61
61
  value.length >= this.minLength,
62
62
  `String must have a minimum length of ${this.minLength}`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/string.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+C;AAC/C,mBAAwD;AAqBjD,IAAM,qBAAN,cAAiC,+BAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,wCAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAqE,+BAAwB;AAAA,EACzF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAAiC,CAAC,GAAG;AAC/C,UAAM;AAEN,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY,OAAO;AAAA,MACnB;AAAA,IACF,IAAI;AAEJ,QAAI,WAAW;AAAa,WAAK,QAAe,YAAa;AAE7D,oCAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,oCAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,oCAAa,aAAa,WAAW,2BAA2B,SAAS,kCAAkC,SAAS,GAAG;AAEvH,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,SAAS,OAAmB;AAC1B,wCAAiB,OAAO,SAAS,UAAU,yBAAyB;AAEpE;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,IAAI;AAAA,MACvD,0CAA0C,KAAK,OAAO;AAAA,IAAE;AAE5D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,cAAc,aAAmD;AAC/E,SAAO,IAAI,gBAAgB,WAAW;AACxC;AAGO,IAAM,aAAS,mCAAqB,IAAI,mBAAmB,GAAG,aAAa;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+C;AAC/C,mBAAwD;AAqBjD,IAAM,qBAAN,cAAiC,+BAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,wCAAiB,OAAO,UAAU,UAAU,yBAAyB;AACrE,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAqE,+BAAwB;AAAA,EACzF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAAiC,CAAC,GAAG;AAC/C,UAAM;AAEN,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY,OAAO;AAAA,MACnB;AAAA,IACF,IAAI;AAEJ,QAAI,WAAW;AAAa,WAAK,QAAe,YAAa;AAE7D,oCAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,oCAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,oCAAa,aAAa,WAAW,2BAA2B,SAAS,kCAAkC,SAAS,GAAG;AAEvH,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,SAAS,OAAmB;AAC1B,wCAAiB,OAAO,UAAU,UAAU,yBAAyB;AAErE;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,IAAI;AAAA,MACvD,0CAA0C,KAAK,OAAO;AAAA,IAAE;AAE5D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,cAAc,aAAmD;AAC/E,SAAO,IAAI,gBAAgB,WAAW;AACxC;AAGO,IAAM,aAAS,mCAAqB,IAAI,mBAAmB,GAAG,aAAa;",
5
5
  "names": []
6
6
  }
@@ -3,7 +3,7 @@ import { assertSchema, assertValidation } from "../errors.mjs";
3
3
  import { AbstractValidator, makeValidatorFactory } from "../types.mjs";
4
4
  var AnyStringValidator = class extends AbstractValidator {
5
5
  validate(value) {
6
- assertValidation(typeof value == "string", 'Value is not a "string"');
6
+ assertValidation(typeof value === "string", 'Value is not a "string"');
7
7
  return value;
8
8
  }
9
9
  };
@@ -29,7 +29,7 @@ var StringValidator = class extends AbstractValidator {
29
29
  this.pattern = pattern;
30
30
  }
31
31
  validate(value) {
32
- assertValidation(typeof value == "string", 'Value is not a "string"');
32
+ assertValidation(typeof value === "string", 'Value is not a "string"');
33
33
  assertValidation(
34
34
  value.length >= this.minLength,
35
35
  `String must have a minimum length of ${this.minLength}`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/string.ts"],
4
- "mappings": ";AAAA,SAAS,cAAc,wBAAwB;AAC/C,SAAS,mBAAmB,4BAA4B;AAqBjD,IAAM,qBAAN,cAAiC,kBAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,qBAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAqE,kBAAwB;AAAA,EACzF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAAiC,CAAC,GAAG;AAC/C,UAAM;AAEN,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY,OAAO;AAAA,MACnB;AAAA,IACF,IAAI;AAEJ,QAAI,WAAW;AAAa,WAAK,QAAe,YAAa;AAE7D,iBAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,iBAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,iBAAa,aAAa,WAAW,2BAA2B,SAAS,kCAAkC,SAAS,GAAG;AAEvH,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,OAAO,SAAS,UAAU,yBAAyB;AAEpE;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,IAAI;AAAA,MACvD,0CAA0C,KAAK,OAAO;AAAA,IAAE;AAE5D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,cAAc,aAAmD;AAC/E,SAAO,IAAI,gBAAgB,WAAW;AACxC;AAGO,IAAM,SAAS,qBAAqB,IAAI,mBAAmB,GAAG,aAAa;",
4
+ "mappings": ";AAAA,SAAS,cAAc,wBAAwB;AAC/C,SAAS,mBAAmB,4BAA4B;AAqBjD,IAAM,qBAAN,cAAiC,kBAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,qBAAiB,OAAO,UAAU,UAAU,yBAAyB;AACrE,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAqE,kBAAwB;AAAA,EACzF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAAiC,CAAC,GAAG;AAC/C,UAAM;AAEN,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY,OAAO;AAAA,MACnB;AAAA,IACF,IAAI;AAEJ,QAAI,WAAW;AAAa,WAAK,QAAe,YAAa;AAE7D,iBAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,iBAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,iBAAa,aAAa,WAAW,2BAA2B,SAAS,kCAAkC,SAAS,GAAG;AAEvH,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,OAAO,UAAU,UAAU,yBAAyB;AAErE;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,IAAI;AAAA,MACvD,0CAA0C,KAAK,OAAO;AAAA,IAAE;AAE5D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,cAAc,aAAmD;AAC/E,SAAO,IAAI,gBAAgB,WAAW;AACxC;AAGO,IAAM,SAAS,qBAAqB,IAAI,mBAAmB,GAAG,aAAa;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "justus",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "A JavaScript validation library, with types!",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -78,13 +78,8 @@
78
78
  "author": "Juit Developers <developers@juit.com>",
79
79
  "license": "Apache-2.0",
80
80
  "devDependencies": {
81
- "@plugjs/build": "^0.5.3",
82
- "@plugjs/tsd": "^0.5.4",
83
- "@types/chai": "^4.3.6",
84
- "chai": "^4.3.8",
85
- "typescript": "^5.2.2"
86
- },
87
- "optionalDependencies": {
81
+ "@plugjs/build": "^0.5.9",
82
+ "@plugjs/tsd": "^0.5.9",
88
83
  "typescript": "^5.2.2"
89
84
  },
90
85
  "directories": {
@@ -7,6 +7,7 @@ import { UUIDValidator } from './extra/uuid'
7
7
  import { getValidator } from './utilities'
8
8
  import { AnyValidator } from './validators/any'
9
9
  import { AnyArrayValidator, ArrayValidator } from './validators/array'
10
+ import { AnyBigIntValidator, BigIntValidator } from './validators/bigint'
10
11
  import { BooleanValidator } from './validators/boolean'
11
12
  import { ConstantValidator } from './validators/constant'
12
13
  import { DateValidator } from './validators/date'
@@ -29,8 +30,8 @@ import type { Validation, Validator } from './types'
29
30
  /** Check that two of our generated types are equal */
30
31
  function typeEqual(a: TypeNode, b: TypeNode): boolean {
31
32
  function eq(a: any, b: any): boolean {
32
- if ((typeof a == 'object' && a != null) &&
33
- (typeof b == 'object' && b != null) ) {
33
+ if ((typeof a === 'object' && a != null) &&
34
+ (typeof b === 'object' && b != null) ) {
34
35
  for (const key in a) {
35
36
  if (! eq(a[key], b[key])) return false
36
37
  }
@@ -255,12 +256,10 @@ export function generateDeclarations(validations: Record<string, Validation>): s
255
256
  }
256
257
 
257
258
  /* Pretty print our DTS */
258
- const dts = ts.createPrinter().printList(
259
+ return ts.createPrinter().printList(
259
260
  ts.ListFormat.SourceFileStatements,
260
261
  ts.factory.createNodeArray(statements),
261
262
  ts.createSourceFile('types.d.ts', '', ts.ScriptTarget.Latest))
262
- /* Include a leading comment with the generation date and return */
263
- return `// Generated on ${new Date().toUTCString()}\n\n${dts}`
264
263
  }
265
264
 
266
265
  /* ========================================================================== *
@@ -428,6 +427,7 @@ function generateTypeNode(
428
427
 
429
428
  const anyType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)
430
429
  const anyArrayType = ts.factory.createArrayTypeNode(anyType)
430
+ const bigintType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.BigIntKeyword)
431
431
  const booleanType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword)
432
432
  const dateType = ts.factory.createTypeReferenceNode('Date')
433
433
  const numberType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)
@@ -455,6 +455,7 @@ const readonlyModifiers = [ ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyw
455
455
 
456
456
  registerTypeGenerator(AnyValidator, () => anyType)
457
457
  registerTypeGenerator(AnyArrayValidator, () => anyArrayType)
458
+ registerTypeGenerator(AnyBigIntValidator, () => bigintType)
458
459
  registerTypeGenerator(AnyNumberValidator, () => numberType)
459
460
  registerTypeGenerator(AnyObjectValidator, () => recordType)
460
461
  registerTypeGenerator(AnyStringValidator, () => stringType)
@@ -469,6 +470,21 @@ registerTypeGenerator(ArrayValidator, (validator, references, isInput) => {
469
470
  return ts.factory.createArrayTypeNode(itemType)
470
471
  })
471
472
 
473
+ registerTypeGenerator(BigIntValidator, (validator: BigIntValidator, _references, isInput) => {
474
+ if (isInput) {
475
+ const types: ts.TypeNode[] = [ bigintType ]
476
+ if (validator.fromNumber) types.push(numberType)
477
+ if (validator.fromString) types.push(stringType)
478
+ return types.length === 1 ? types[0] : ts.factory.createUnionTypeNode(types)
479
+ }
480
+
481
+ if (! validator.brand) return bigintType
482
+
483
+ const signature = ts.factory.createPropertySignature(undefined, `__brand_${validator.brand}`, undefined, neverType)
484
+ const literal = ts.factory.createTypeLiteralNode([ signature ])
485
+ return ts.factory.createIntersectionTypeNode([ bigintType, literal ])
486
+ })
487
+
472
488
  registerTypeGenerator(BooleanValidator, (validator, _references, isInput) => {
473
489
  return (isInput && validator.fromString) ?
474
490
  ts.factory.createUnionTypeNode([
@@ -483,6 +499,7 @@ registerTypeGenerator(ConstantValidator, (validator) => {
483
499
  const literal =
484
500
  typeof validator.constant === 'number' ? ts.factory.createNumericLiteral(validator.constant) :
485
501
  typeof validator.constant === 'string' ? ts.factory.createStringLiteral(validator.constant) :
502
+ typeof validator.constant === 'bigint' ? ts.factory.createBigIntLiteral(`${validator.constant}n`) :
486
503
  validator.constant === false ? ts.factory.createFalse() :
487
504
  validator.constant === true ? ts.factory.createTrue() :
488
505
  validator.constant === null ? ts.factory.createNull() :
@@ -613,7 +630,7 @@ registerTypeGenerator(ObjectValidator, (validator, references, isInput) => {
613
630
  propertyType, // type
614
631
  undefined) // members
615
632
 
616
- if (properties.length == 0) return extra
633
+ if (properties.length === 0) return extra
617
634
 
618
635
  const type = ts.factory.createTypeLiteralNode(properties)
619
636
  return ts.factory.createIntersectionTypeNode([ type, extra ])
package/src/extra/arn.ts CHANGED
@@ -42,7 +42,7 @@ function parse<Service extends string, ResourceType extends string>(
42
42
  service?: Service,
43
43
  type?: ResourceType,
44
44
  ): ParsedArn<Service, ResourceType> {
45
- assertValidation(typeof value == 'string', 'Value is not a "string"')
45
+ assertValidation(typeof value === 'string', 'Value is not a "string"')
46
46
 
47
47
  const segments = value.split(':')
48
48
 
package/src/index.ts CHANGED
@@ -11,6 +11,7 @@ export * from './utilities'
11
11
  // Validators
12
12
  export { AnyValidator, any } from './validators/any'
13
13
  export { AnyArrayValidator, ArrayValidator, array, arrayOf } from './validators/array'
14
+ export { AnyBigIntValidator, BigIntValidator, bigint } from './validators/bigint'
14
15
  export { BooleanValidator, boolean } from './validators/boolean'
15
16
  export { ConstantValidator, constant } from './validators/constant'
16
17
  export { DateValidator, date } from './validators/date'
@@ -24,6 +25,7 @@ export { AllOfValidator, OneOfValidator, allOf, oneOf } from './validators/union
24
25
 
25
26
  // Validator Types
26
27
  export type { ArrayConstraints, arrayFactory } from './validators/array'
28
+ export type { BrandedBigIntConstraints, bigintFactory } from './validators/bigint'
27
29
  export type { BooleanConstraints, booleanFactory } from './validators/boolean'
28
30
  export type { DateConstraints, dateFactory } from './validators/date'
29
31
  export type { BrandedNumberConstraints, numberFactory } from './validators/number'
@@ -35,7 +37,6 @@ export type { TupleMember } from './validators/tuple'
35
37
  * VALIDATE FUNCTION (our main entry point) *
36
38
  * ========================================================================== */
37
39
 
38
- import { defaultValidationOptions } from './types'
39
40
  import { getValidator } from './utilities'
40
41
 
41
42
  import type { InferValidation, Validation, ValidationOptions } from './types'
@@ -51,7 +52,7 @@ export function validate<V extends Validation>(
51
52
  value: any,
52
53
  options?: ValidationOptions,
53
54
  ): InferValidation<V> {
54
- const opts: ValidationOptions = { ...defaultValidationOptions, ...options }
55
+ const opts: ValidationOptions = { ...options }
55
56
  return getValidator(validation).validate(value, opts)
56
57
  }
57
58
 
@@ -83,3 +84,20 @@ export function strip<V extends Validation>(
83
84
 
84
85
  return getValidator(validation).validate(value, opts)
85
86
  }
87
+
88
+ /**
89
+ * Validate a _value_ using the specified `Validation`, automatically stripping
90
+ * additional properties and optional `null`s (but not forbidden ones), and
91
+ * treating all properties as optional.
92
+ *
93
+ * This is equivalent to setting the `partialValidation` option to `true` in
94
+ * `validate(...)`, but this function correctly represents the returned type as
95
+ * a `Partial<...>` type.
96
+ */
97
+ export function partial<V extends Validation>(
98
+ validation: V,
99
+ value: any,
100
+ options?: ValidationOptions,
101
+ ): Partial<InferValidation<V>> {
102
+ return getValidator(validation).validate(value, { ...options, partialValidation: true })
103
+ }
package/src/types.ts CHANGED
@@ -34,15 +34,8 @@ export interface ValidationOptions {
34
34
  stripOptionalNulls?: boolean,
35
35
  /** Ignore and strip forbidden (`never`) properties from objects (default: `false`) */
36
36
  stripForbiddenProperties?: boolean,
37
- }
38
-
39
- /**
40
- * Default validation options.
41
- */
42
- export const defaultValidationOptions: Readonly<Required<ValidationOptions>> = {
43
- stripAdditionalProperties: false,
44
- stripForbiddenProperties: false,
45
- stripOptionalNulls: false,
37
+ /** Perform a _partial_ validation, treating all properties as optional (default: `false`) */
38
+ partialValidation?: boolean,
46
39
  }
47
40
 
48
41
  /**
@@ -117,13 +110,13 @@ implements Validator<T, I>, Iterable<TupleRestParameter<T, I>> {
117
110
  * Those are:
118
111
  *
119
112
  * * A `Validator` instance or a _zero-arguments_ function returning one
120
- * * A `Tuple` or a `Schema`, validated as arrays or object
121
- * * Either `null`, a `boolean`, a `number` or a `string` for constants
113
+ * * A `Tuple` or a `Schema`, validated as arrays or objects
114
+ * * Either `null`, a `boolean`, a `number`, a `bigint` or a `string` for constants
122
115
  */
123
116
  export type Validation =
124
117
  Validator | // Validator instances
125
118
  Tuple | Schema | // Tuples or schemas (arrays, objects)
126
- null | boolean | number | string // Primitives, mapped as constants
119
+ null | boolean | bigint | number | string // Primitives, mapped as constants
127
120
 
128
121
  /**
129
122
  * Infer the type returned by a `Validation` when validating.
@@ -135,6 +128,7 @@ export type InferValidation<V> =
135
128
  // Primitives are returned as constants
136
129
  V extends undefined ? V :
137
130
  V extends boolean ? V :
131
+ V extends bigint ? V :
138
132
  V extends number ? V :
139
133
  V extends string ? V :
140
134
  V extends null ? V :
@@ -155,6 +149,7 @@ export type InferInput<V> =
155
149
  // Primitives are returned as constants
156
150
  V extends undefined ? V :
157
151
  V extends boolean ? V :
152
+ V extends bigint ? V :
158
153
  V extends number ? V :
159
154
  V extends string ? V :
160
155
  V extends null ? V :
@@ -278,12 +273,12 @@ export type InferSchema<S> =
278
273
  export type InferSchema2<S> = {
279
274
  // this first part of the type infers all keys from the schema into their
280
275
  // type, but makes *each* key optional... we'll restrict in the next part...
281
- [ key in keyof S as key extends string ? key : never ] ? : InferValidation<S[key]>
276
+ -readonly [ key in keyof S as key extends string ? key : never ] ? : InferValidation<S[key]>
282
277
  } & {
283
278
  // this second part infers *only* keys that _do not_ contain a "undefined"
284
279
  // in their unions, and associates them with the inferred value, basically
285
280
  // making the key *non optional*
286
- [ key in keyof S as
281
+ -readonly [ key in keyof S as
287
282
  key extends string ?
288
283
  undefined extends InferValidation<S[key]> ?
289
284
  never :
@@ -302,12 +297,12 @@ export type InferInputSchema<S> =
302
297
  export type InferInputSchema2<S> = {
303
298
  // this first part of the type infers all keys from the schema into their
304
299
  // type, but makes *each* key optional... we'll restrict in the next part...
305
- [ key in keyof S as key extends string ? key : never ] ? : InferInput<S[key]>
300
+ -readonly [ key in keyof S as key extends string ? key : never ] ? : InferInput<S[key]>
306
301
  } & {
307
302
  // this second part infers *only* keys that _do not_ contain a "undefined"
308
303
  // in their unions, and associates them with the inferred value, basically
309
304
  // making the key *non optional*
310
- [ key in keyof S as
305
+ -readonly [ key in keyof S as
311
306
  key extends string ?
312
307
  InferInput<S[key]> extends never ?
313
308
  never :
package/src/utilities.ts CHANGED
@@ -23,6 +23,7 @@ export function getValidator(validation: Validation): Validator {
23
23
  switch (typeof validation) {
24
24
  // constants
25
25
  case 'boolean':
26
+ case 'bigint':
26
27
  case 'string':
27
28
  case 'number':
28
29
  return new (registry.get('constant'))(validation)