justus 0.4.1 → 0.5.0

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 (120) hide show
  1. package/README.md +78 -0
  2. package/dist/dts-generator.cjs +36 -22
  3. package/dist/dts-generator.cjs.map +1 -1
  4. package/dist/dts-generator.d.ts +1 -1
  5. package/dist/dts-generator.mjs +15 -22
  6. package/dist/dts-generator.mjs.map +1 -1
  7. package/dist/errors.cjs +3 -3
  8. package/dist/errors.cjs.map +1 -1
  9. package/dist/errors.mjs +3 -3
  10. package/dist/errors.mjs.map +1 -1
  11. package/dist/extra/arn.cjs +98 -0
  12. package/dist/extra/arn.cjs.map +6 -0
  13. package/dist/extra/arn.d.ts +71 -0
  14. package/dist/extra/arn.mjs +68 -0
  15. package/dist/extra/arn.mjs.map +6 -0
  16. package/dist/extra/ean13.cjs +52 -0
  17. package/dist/extra/ean13.cjs.map +6 -0
  18. package/dist/extra/ean13.d.ts +9 -0
  19. package/dist/extra/ean13.mjs +26 -0
  20. package/dist/extra/ean13.mjs.map +6 -0
  21. package/dist/{validators → extra}/url.cjs +10 -10
  22. package/dist/extra/url.cjs.map +6 -0
  23. package/dist/{validators → extra}/url.d.ts +4 -5
  24. package/dist/{validators → extra}/url.mjs +8 -9
  25. package/dist/{validators → extra}/url.mjs.map +3 -3
  26. package/dist/extra/uuid.cjs +45 -0
  27. package/dist/extra/uuid.cjs.map +6 -0
  28. package/dist/extra/uuid.d.ts +10 -0
  29. package/dist/extra/uuid.mjs +18 -0
  30. package/dist/extra/uuid.mjs.map +6 -0
  31. package/dist/index.cjs +0 -5
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.ts +18 -19
  34. package/dist/index.mjs +12 -15
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/registry.cjs +44 -0
  37. package/dist/registry.cjs.map +6 -0
  38. package/dist/registry.d.ts +16 -0
  39. package/dist/registry.mjs +19 -0
  40. package/dist/registry.mjs.map +6 -0
  41. package/dist/schema.cjs +3 -5
  42. package/dist/schema.cjs.map +1 -1
  43. package/dist/schema.d.ts +6 -5
  44. package/dist/schema.mjs +3 -4
  45. package/dist/schema.mjs.map +1 -1
  46. package/dist/types.cjs.map +1 -1
  47. package/dist/types.d.ts +38 -12
  48. package/dist/types.mjs.map +1 -1
  49. package/dist/utilities.cjs +5 -7
  50. package/dist/utilities.cjs.map +1 -1
  51. package/dist/utilities.mjs +5 -7
  52. package/dist/utilities.mjs.map +1 -1
  53. package/dist/validators/array.cjs +4 -2
  54. package/dist/validators/array.cjs.map +1 -1
  55. package/dist/validators/array.d.ts +3 -4
  56. package/dist/validators/array.mjs +3 -2
  57. package/dist/validators/array.mjs.map +1 -1
  58. package/dist/validators/boolean.cjs +6 -4
  59. package/dist/validators/boolean.cjs.map +1 -1
  60. package/dist/validators/boolean.d.ts +2 -3
  61. package/dist/validators/boolean.mjs +4 -3
  62. package/dist/validators/boolean.mjs.map +1 -1
  63. package/dist/validators/constant.cjs +4 -5
  64. package/dist/validators/constant.cjs.map +1 -1
  65. package/dist/validators/constant.d.ts +0 -2
  66. package/dist/validators/constant.mjs +3 -3
  67. package/dist/validators/constant.mjs.map +1 -1
  68. package/dist/validators/date.cjs +8 -10
  69. package/dist/validators/date.cjs.map +1 -1
  70. package/dist/validators/date.d.ts +3 -4
  71. package/dist/validators/date.mjs +6 -9
  72. package/dist/validators/date.mjs.map +1 -1
  73. package/dist/validators/number.cjs +6 -4
  74. package/dist/validators/number.cjs.map +1 -1
  75. package/dist/validators/number.d.ts +5 -6
  76. package/dist/validators/number.mjs +4 -3
  77. package/dist/validators/number.mjs.map +1 -1
  78. package/dist/validators/object.cjs +7 -4
  79. package/dist/validators/object.cjs.map +1 -1
  80. package/dist/validators/object.d.ts +6 -7
  81. package/dist/validators/object.mjs +7 -9
  82. package/dist/validators/object.mjs.map +1 -1
  83. package/dist/validators/optional.cjs.map +1 -1
  84. package/dist/validators/optional.d.ts +5 -4
  85. package/dist/validators/optional.mjs.map +1 -1
  86. package/dist/validators/string.cjs +6 -4
  87. package/dist/validators/string.cjs.map +1 -1
  88. package/dist/validators/string.d.ts +5 -6
  89. package/dist/validators/string.mjs +4 -3
  90. package/dist/validators/string.mjs.map +1 -1
  91. package/dist/validators/tuple.cjs +3 -2
  92. package/dist/validators/tuple.cjs.map +1 -1
  93. package/dist/validators/tuple.d.ts +3 -3
  94. package/dist/validators/tuple.mjs +3 -2
  95. package/dist/validators/tuple.mjs.map +1 -1
  96. package/dist/validators/union.cjs.map +1 -1
  97. package/dist/validators/union.d.ts +9 -7
  98. package/dist/validators/union.mjs.map +1 -1
  99. package/package.json +46 -6
  100. package/src/dts-generator.ts +17 -27
  101. package/src/extra/arn.ts +151 -0
  102. package/src/extra/ean13.ts +31 -0
  103. package/src/{validators → extra}/url.ts +6 -8
  104. package/src/extra/uuid.ts +18 -0
  105. package/src/index.ts +18 -19
  106. package/src/registry.ts +28 -0
  107. package/src/schema.ts +10 -11
  108. package/src/types.ts +80 -11
  109. package/src/utilities.ts +5 -9
  110. package/src/validators/array.ts +3 -3
  111. package/src/validators/boolean.ts +2 -2
  112. package/src/validators/constant.ts +3 -2
  113. package/src/validators/date.ts +9 -9
  114. package/src/validators/number.ts +6 -7
  115. package/src/validators/object.ts +15 -14
  116. package/src/validators/optional.ts +9 -7
  117. package/src/validators/string.ts +6 -6
  118. package/src/validators/tuple.ts +20 -6
  119. package/src/validators/union.ts +35 -10
  120. package/dist/validators/url.cjs.map +0 -6
@@ -0,0 +1,68 @@
1
+ // extra/arn.ts
2
+ import { assertValidation } from "../errors.mjs";
3
+ import { AbstractValidator, makeValidatorFactory } from "../types.mjs";
4
+ function parse(value, service, type) {
5
+ assertValidation(typeof value == "string", 'Value is not a "string"');
6
+ const segments = value.split(":");
7
+ assertValidation(segments.length >= 6, "Invalid components in ARN");
8
+ const [pfx, prt, svc, rgn, act, ...res] = segments;
9
+ assertValidation(pfx === "arn", 'ARN must start with "arn:"');
10
+ assertValidation(!!prt, "Missing partition in ARN");
11
+ assertValidation(!!svc, "Missing service in ARN");
12
+ assertValidation(!!act, "Missing account ID in ARN");
13
+ assertValidation(!!res[0], "Missing resource ID in ARN");
14
+ if (service !== void 0) {
15
+ assertValidation(svc === service, `ARN Service "${svc}" mismatch (expected "${service}")`);
16
+ }
17
+ const [resArray, resString] = res[0].includes("/") ? [res[0].split("/"), res[0]] : [res, res.join(":")];
18
+ assertValidation(!!resArray[0], "Invalid resource ID in ARN");
19
+ if (type !== void 0) {
20
+ assertValidation(resArray[0] === type, `ARN Resource Type "${resArray[0]}" mismatch (expected "${type}")`);
21
+ }
22
+ const arn2 = `arn:${prt}:${svc}:${rgn}:${act}:${resString}`;
23
+ return {
24
+ Arn: arn2,
25
+ Partition: prt,
26
+ Service: svc,
27
+ Region: rgn || "",
28
+ Account: act,
29
+ Resource: resArray
30
+ };
31
+ }
32
+ var ParsedArnValidator = class extends AbstractValidator {
33
+ constructor(_service, _type) {
34
+ super();
35
+ this._service = _service;
36
+ this._type = _type;
37
+ }
38
+ validate(value) {
39
+ return parse(value, this._service, this._type);
40
+ }
41
+ };
42
+ var ArnValidator = class extends AbstractValidator {
43
+ constructor(_service, _type) {
44
+ super();
45
+ this._service = _service;
46
+ this._type = _type;
47
+ }
48
+ validate(value) {
49
+ return parse(value, this._service, this._type).Arn;
50
+ }
51
+ };
52
+ function parseArnFactory(service, resourceType) {
53
+ return new ParsedArnValidator(service, resourceType);
54
+ }
55
+ function arnFactory(service, resourceType) {
56
+ return new ArnValidator(service, resourceType);
57
+ }
58
+ var parseArn = makeValidatorFactory(new ParsedArnValidator(), parseArnFactory);
59
+ var arn = makeValidatorFactory(new ArnValidator(), arnFactory);
60
+ export {
61
+ ArnValidator,
62
+ ParsedArnValidator,
63
+ arn,
64
+ arnFactory,
65
+ parseArn,
66
+ parseArnFactory
67
+ };
68
+ //# sourceMappingURL=arn.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/extra/arn.ts"],
4
+ "mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,4BAA4B;AAoBxD,SAAS,MACL,OACA,SACA,MACkB;AACpB,mBAAiB,OAAO,SAAS,UAAU,yBAAyB;AAEpE,QAAM,WAAW,MAAM,MAAM,GAAG;AAEhC,mBAAiB,SAAS,UAAU,GAAG,2BAA2B;AAElE,QAAM,CAAE,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAI,IAAI;AAE5C,mBAAiB,QAAQ,OAAO,4BAA4B;AAC5D,mBAAiB,CAAC,CAAE,KAAK,0BAA0B;AACnD,mBAAiB,CAAC,CAAE,KAAK,wBAAwB;AACjD,mBAAiB,CAAC,CAAE,KAAK,2BAA2B;AACpD,mBAAiB,CAAC,CAAE,IAAI,CAAC,GAAG,4BAA4B;AAExD,MAAI,YAAY,QAAW;AACzB,qBAAiB,QAAQ,SAAS,gBAAgB,GAAG,yBAAyB,OAAO,IAAI;AAAA,EAC3F;AAEA,QAAM,CAAE,UAAU,SAAU,IAAI,IAAI,CAAC,EAAE,SAAS,GAAG,IACjD,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAE,IAC5B,CAAE,KAAK,IAAI,KAAK,GAAG,CAAE;AAEvB,mBAAiB,CAAC,CAAE,SAAS,CAAC,GAAG,4BAA4B;AAE7D,MAAI,SAAS,QAAW;AACtB,qBAAiB,SAAS,CAAC,MAAM,MAAM,sBAAsB,SAAS,CAAC,CAAC,yBAAyB,IAAI,IAAI;AAAA,EAC3G;AAEA,QAAMA,OAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,SAAS;AAExD,SAAO;AAAA,IACL,KAAKA;AAAA,IACL,WAAW;AAAA,IACX,SAAS;AAAA,IACT,QAAQ,OAAO;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AACF;AAKO,IAAM,qBAAN,cACG,kBAA8C;AAAA,EAWtD,YAAoB,UAA4B,OAAgB;AAC9D,UAAM;AADY;AAA4B;AAAA,EAEhD;AAAA,EAEA,SAAS,OAAoC;AAC3C,WAAO,MAAM,OAAO,KAAK,UAAU,KAAK,KAAK;AAAA,EAC/C;AACF;AAGO,IAAM,eAAN,cACG,kBAA8C;AAAA,EAWtD,YAAoB,UAA4B,OAAgB;AAC9D,UAAM;AADY;AAA4B;AAAA,EAEhD;AAAA,EAEA,SAAS,OAAoC;AAC3C,WAAO,MAAM,OAAO,KAAK,UAAU,KAAK,KAAK,EAAE;AAAA,EACjD;AACF;AAYO,SAAS,gBACZ,SACA,cAC2B;AAC7B,SAAO,IAAI,mBAAmB,SAAS,YAAY;AACrD;AAUO,SAAS,WACZ,SACA,cACqB;AACvB,SAAO,IAAI,aAAa,SAAS,YAAY;AAC/C;AAKO,IAAM,WAAW,qBAAqB,IAAI,mBAAmB,GAAG,eAAe;AAG/E,IAAM,MAAM,qBAAqB,IAAI,aAAa,GAAG,UAAU;",
5
+ "names": ["arn"]
6
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // extra/ean13.ts
21
+ var ean13_exports = {};
22
+ __export(ean13_exports, {
23
+ EAN13Validator: () => EAN13Validator,
24
+ ean13: () => ean13
25
+ });
26
+ module.exports = __toCommonJS(ean13_exports);
27
+ var import_errors = require("../errors.cjs");
28
+ var import_string = require("../validators/string.cjs");
29
+ var EAN13Validator = class extends import_string.StringValidator {
30
+ constructor() {
31
+ super({ minLength: 13, maxLength: 13, pattern: /^\d{13}$/ });
32
+ }
33
+ validate(value) {
34
+ if (typeof value === "number")
35
+ value = `${value}`;
36
+ const ean132 = super.validate(value).toLowerCase();
37
+ let sum = 0;
38
+ for (let i = 0, w = 1; i < 12; i++, w = i % 2 ? 3 : 1) {
39
+ sum += (ean132.charCodeAt(i) - 48) * w;
40
+ }
41
+ const valid = (10 - sum % 10) % 10 === ean132.charCodeAt(12) - 48;
42
+ (0, import_errors.assertValidation)(valid, `Invalid checksum in EAN-13 "${ean132}"`);
43
+ return ean132;
44
+ }
45
+ };
46
+ var ean13 = new EAN13Validator();
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ EAN13Validator,
50
+ ean13
51
+ });
52
+ //# sourceMappingURL=ean13.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/extra/ean13.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,oBAAgC;AAIzB,IAAM,iBAAN,cAA6B,8BAA8C;AAAA,EAChF,cAAc;AACZ,UAAM,EAAE,WAAW,IAAI,WAAW,IAAI,SAAS,WAAW,CAAC;AAAA,EAC7D;AAAA,EAGA,SAAS,OAAwB;AAC/B,QAAI,OAAO,UAAU;AAAU,cAAQ,GAAG,KAAK;AAC/C,UAAMA,SAAQ,MAAM,SAAS,KAAK,EAAE,YAAY;AAGhD,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,KAAM,IAAI,IAAI,IAAI,IAAI,GAAG;AACtD,cAAQA,OAAM,WAAW,CAAC,IAAI,MAAQ;AAAA,IACxC;AAGA,UAAM,SAAS,KAAM,MAAM,MAAO,OAAOA,OAAM,WAAW,EAAE,IAAI;AAGhE,wCAAiB,OAAO,+BAA+BA,MAAK,GAAG;AAC/D,WAAOA;AAAA,EACT;AACF;AAEO,IAAM,QAAQ,IAAI,eAAe;",
5
+ "names": ["ean13"]
6
+ }
@@ -0,0 +1,9 @@
1
+ import { StringValidator } from '../validators/string';
2
+ export type EAN13String = string & {
3
+ __ean_13: never;
4
+ };
5
+ export declare class EAN13Validator extends StringValidator<EAN13String, string | number> {
6
+ constructor();
7
+ validate(value: unknown): EAN13String;
8
+ }
9
+ export declare const ean13: EAN13Validator;
@@ -0,0 +1,26 @@
1
+ // extra/ean13.ts
2
+ import { assertValidation } from "../errors.mjs";
3
+ import { StringValidator } from "../validators/string.mjs";
4
+ var EAN13Validator = class extends StringValidator {
5
+ constructor() {
6
+ super({ minLength: 13, maxLength: 13, pattern: /^\d{13}$/ });
7
+ }
8
+ validate(value) {
9
+ if (typeof value === "number")
10
+ value = `${value}`;
11
+ const ean132 = super.validate(value).toLowerCase();
12
+ let sum = 0;
13
+ for (let i = 0, w = 1; i < 12; i++, w = i % 2 ? 3 : 1) {
14
+ sum += (ean132.charCodeAt(i) - 48) * w;
15
+ }
16
+ const valid = (10 - sum % 10) % 10 === ean132.charCodeAt(12) - 48;
17
+ assertValidation(valid, `Invalid checksum in EAN-13 "${ean132}"`);
18
+ return ean132;
19
+ }
20
+ };
21
+ var ean13 = new EAN13Validator();
22
+ export {
23
+ EAN13Validator,
24
+ ean13
25
+ };
26
+ //# sourceMappingURL=ean13.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/extra/ean13.ts"],
4
+ "mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAIzB,IAAM,iBAAN,cAA6B,gBAA8C;AAAA,EAChF,cAAc;AACZ,UAAM,EAAE,WAAW,IAAI,WAAW,IAAI,SAAS,WAAW,CAAC;AAAA,EAC7D;AAAA,EAGA,SAAS,OAAwB;AAC/B,QAAI,OAAO,UAAU;AAAU,cAAQ,GAAG,KAAK;AAC/C,UAAMA,SAAQ,MAAM,SAAS,KAAK,EAAE,YAAY;AAGhD,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,KAAM,IAAI,IAAI,IAAI,IAAI,GAAG;AACtD,cAAQA,OAAM,WAAW,CAAC,IAAI,MAAQ;AAAA,IACxC;AAGA,UAAM,SAAS,KAAM,MAAM,MAAO,OAAOA,OAAM,WAAW,EAAE,IAAI;AAGhE,qBAAiB,OAAO,+BAA+BA,MAAK,GAAG;AAC/D,WAAOA;AAAA,EACT;AACF;AAEO,IAAM,QAAQ,IAAI,eAAe;",
5
+ "names": ["ean13"]
6
+ }
@@ -17,17 +17,18 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // validators/url.ts
20
+ // extra/url.ts
21
21
  var url_exports = {};
22
22
  __export(url_exports, {
23
23
  URLValidator: () => URLValidator,
24
- url: () => url
24
+ url: () => url,
25
+ urlFactory: () => urlFactory
25
26
  });
26
27
  module.exports = __toCommonJS(url_exports);
27
28
  var import_errors = require("../errors.cjs");
28
29
  var import_types = require("../types.cjs");
29
- var import_constant = require("./constant.cjs");
30
- var import_object = require("./object.cjs");
30
+ var import_constant = require("../validators/constant.cjs");
31
+ var import_object = require("../validators/object.cjs");
31
32
  var KEYS = [
32
33
  "href",
33
34
  "origin",
@@ -93,9 +94,7 @@ var URLValidator = class extends import_types.AbstractValidator {
93
94
  }
94
95
  if (this.searchParams) {
95
96
  const parameters = {};
96
- for (const param of url2.searchParams.keys()) {
97
- parameters[param] = url2.searchParams.get(param);
98
- }
97
+ url2.searchParams.forEach((value2, key) => parameters[key] = value2);
99
98
  try {
100
99
  this.searchParams.validate(parameters, OPTIONS);
101
100
  } catch (error) {
@@ -105,13 +104,14 @@ var URLValidator = class extends import_types.AbstractValidator {
105
104
  return builder.assert(url2);
106
105
  }
107
106
  };
108
- function _url(constraints) {
107
+ function urlFactory(constraints) {
109
108
  return new URLValidator(constraints);
110
109
  }
111
- var url = (0, import_types.makeValidatorFactory)(new URLValidator(), _url);
110
+ var url = (0, import_types.makeValidatorFactory)(new URLValidator(), urlFactory);
112
111
  // Annotate the CommonJS export names for ESM import in node:
113
112
  0 && (module.exports = {
114
113
  URLValidator,
115
- url
114
+ url,
115
+ urlFactory
116
116
  });
117
117
  //# sourceMappingURL=url.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/extra/url.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAwD;AACxD,mBAAwD;AACxD,sBAAkC;AAClC,oBAAgC;AAKhC,IAAM,OAAwD;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,UAA6B;AAAA,EACjC,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAoCO,IAAM,eAAN,cAA2B,+BAAqC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAET,YAAY,cAA8B,CAAC,GAAG;AAC5C,UAAM;AAEN,eAAW,OAAO,MAAM;AACtB,YAAM,aAAa,YAAY,GAAG;AAClC,UAAI,OAAO,eAAe,UAAU;AAClC,aAAK,GAAG,IAAI,IAAI,kCAAkB,UAAU;AAAA,MAC9C,WAAW,YAAY;AACrB,aAAK,GAAG,IAAI;AAAA,MACd;AAAA,IACF;AAEA,QAAI,YAAY,cAAc;AAC5B,WAAK,eAAe,IAAI,8BAAgB,YAAY,YAAY;AAAA,IAClE;AAAA,EACF;AAAA,EAEA,SAAS,OAAqB;AAC5B,QAAIA;AACJ,QAAI;AACF,MAAAA,OAAM,iBAAiB,MAAM,QAAQ,IAAI,IAAI,KAAY;AAAA,IAC3D,SAAS,OAAO;AACd,YAAM,IAAI,8BAAgB,yCAAyC;AAAA,IACrE;AAEA,UAAM,UAAU,IAAI,qCAAuB;AAE3C,eAAW,OAAO,MAAM;AACtB,YAAM,YAAY,KAAK,GAAG;AAC1B,UAAI,WAAW;AACb,YAAI;AACF,oBAAU,SAASA,KAAI,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,OAAO;AACd,kBAAQ,OAAO,OAAO,GAAG;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAEA,QAAI,KAAK,cAAc;AACrB,YAAM,aAAqC,CAAC;AAC5C,MAAAA,KAAI,aAAa,QAAQ,CAACC,QAAO,QAAQ,WAAW,GAAG,IAAIA,MAAK;AAEhE,UAAI;AACF,aAAK,aAAa,SAAS,YAAY,OAAO;AAAA,MAChD,SAAS,OAAO;AACd,gBAAQ,OAAO,OAAO,cAAc;AAAA,MACtC;AAAA,IACF;AAEA,WAAO,QAAQ,OAAOD,IAAG;AAAA,EAC3B;AACF;AAEO,SAAS,WAAW,aAA2C;AACpE,SAAO,IAAI,aAAa,WAAW;AACrC;AAGO,IAAM,UAAM,mCAAqB,IAAI,aAAa,GAAG,UAAU;",
5
+ "names": ["url", "value"]
6
+ }
@@ -1,5 +1,5 @@
1
1
  import { AbstractValidator } from '../types';
2
- import { ObjectValidator } from './object';
2
+ import { ObjectValidator } from '../validators/object';
3
3
  import type { Schema, Validator } from '../types';
4
4
  /** Constraints to validate a `URL` with. */
5
5
  export interface URLConstraints {
@@ -34,7 +34,7 @@ export interface URLConstraints {
34
34
  searchParams?: Schema;
35
35
  }
36
36
  /** A `Validator` validating URLs and converting them to `URL` instances. */
37
- export declare class URLValidator extends AbstractValidator<URL> {
37
+ export declare class URLValidator extends AbstractValidator<URL, URL | string> {
38
38
  readonly href?: Validator<string>;
39
39
  readonly origin?: Validator<string>;
40
40
  readonly protocol?: Validator<string>;
@@ -50,7 +50,6 @@ export declare class URLValidator extends AbstractValidator<URL> {
50
50
  constructor(constraints?: URLConstraints);
51
51
  validate(value: unknown): URL;
52
52
  }
53
- declare function _url(constraints: URLConstraints): URLValidator;
53
+ export declare function urlFactory(constraints: URLConstraints): URLValidator;
54
54
  /** Validate URLs and convert them to `URL` instances. */
55
- export declare const url: typeof _url & URLValidator;
56
- export {};
55
+ export declare const url: typeof urlFactory & URLValidator;
@@ -1,8 +1,8 @@
1
- // validators/url.ts
1
+ // extra/url.ts
2
2
  import { ValidationError, ValidationErrorBuilder } from "../errors.mjs";
3
3
  import { AbstractValidator, makeValidatorFactory } from "../types.mjs";
4
- import { ConstantValidator } from "./constant.mjs";
5
- import { ObjectValidator } from "./object.mjs";
4
+ import { ConstantValidator } from "../validators/constant.mjs";
5
+ import { ObjectValidator } from "../validators/object.mjs";
6
6
  var KEYS = [
7
7
  "href",
8
8
  "origin",
@@ -68,9 +68,7 @@ var URLValidator = class extends AbstractValidator {
68
68
  }
69
69
  if (this.searchParams) {
70
70
  const parameters = {};
71
- for (const param of url2.searchParams.keys()) {
72
- parameters[param] = url2.searchParams.get(param);
73
- }
71
+ url2.searchParams.forEach((value2, key) => parameters[key] = value2);
74
72
  try {
75
73
  this.searchParams.validate(parameters, OPTIONS);
76
74
  } catch (error) {
@@ -80,12 +78,13 @@ var URLValidator = class extends AbstractValidator {
80
78
  return builder.assert(url2);
81
79
  }
82
80
  };
83
- function _url(constraints) {
81
+ function urlFactory(constraints) {
84
82
  return new URLValidator(constraints);
85
83
  }
86
- var url = makeValidatorFactory(new URLValidator(), _url);
84
+ var url = makeValidatorFactory(new URLValidator(), urlFactory);
87
85
  export {
88
86
  URLValidator,
89
- url
87
+ url,
88
+ urlFactory
90
89
  };
91
90
  //# sourceMappingURL=url.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/validators/url.ts"],
4
- "mappings": ";AAAA,SAAS,iBAAiB,8BAA8B;AACxD,SAAS,mBAAmB,4BAA4B;AACxD,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAKhC,IAAM,OAAwD;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,UAA6B;AAAA,EACjC,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAoCO,IAAM,eAAN,cAA2B,kBAAuB;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAET,YAAY,cAA8B,CAAC,GAAG;AAC5C,UAAM;AAEN,eAAW,OAAO,MAAM;AACtB,YAAM,aAAa,YAAY,GAAG;AAClC,UAAI,OAAO,eAAe,UAAU;AAClC,aAAK,GAAG,IAAI,IAAI,kBAAkB,UAAU;AAAA,MAC9C,WAAW,YAAY;AACrB,aAAK,GAAG,IAAI;AAAA,MACd;AAAA,IACF;AAEA,QAAI,YAAY,cAAc;AAC5B,WAAK,eAAe,IAAI,gBAAgB,YAAY,YAAY;AAAA,IAClE;AAAA,EACF;AAAA,EAEA,SAAS,OAAqB;AAC5B,QAAIA;AACJ,QAAI;AACF,MAAAA,OAAM,iBAAiB,MAAM,QAAQ,IAAI,IAAI,KAAY;AAAA,IAC3D,SAAS,OAAP;AACA,YAAM,IAAI,gBAAgB,yCAAyC;AAAA,IACrE;AAEA,UAAM,UAAU,IAAI,uBAAuB;AAE3C,eAAW,OAAO,MAAM;AACtB,YAAM,YAAY,KAAK,GAAG;AAC1B,UAAI,WAAW;AACb,YAAI;AACF,oBAAU,SAASA,KAAI,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,OAAP;AACA,kBAAQ,OAAO,OAAO,GAAG;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAEA,QAAI,KAAK,cAAc;AACrB,YAAM,aAAqC,CAAC;AAC5C,iBAAW,SAASA,KAAI,aAAa,KAAK,GAAG;AAC3C,mBAAW,KAAK,IAAIA,KAAI,aAAa,IAAI,KAAK;AAAA,MAChD;AAEA,UAAI;AACF,aAAK,aAAa,SAAS,YAAY,OAAO;AAAA,MAChD,SAAS,OAAP;AACA,gBAAQ,OAAO,OAAO,cAAc;AAAA,MACtC;AAAA,IACF;AAEA,WAAO,QAAQ,OAAOA,IAAG;AAAA,EAC3B;AACF;AAEA,SAAS,KAAK,aAA2C;AACvD,SAAO,IAAI,aAAa,WAAW;AACrC;AAGO,IAAM,MAAM,qBAAqB,IAAI,aAAa,GAAG,IAAI;",
5
- "names": ["url"]
3
+ "sources": ["../../src/extra/url.ts"],
4
+ "mappings": ";AAAA,SAAS,iBAAiB,8BAA8B;AACxD,SAAS,mBAAmB,4BAA4B;AACxD,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAKhC,IAAM,OAAwD;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,UAA6B;AAAA,EACjC,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAoCO,IAAM,eAAN,cAA2B,kBAAqC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAET,YAAY,cAA8B,CAAC,GAAG;AAC5C,UAAM;AAEN,eAAW,OAAO,MAAM;AACtB,YAAM,aAAa,YAAY,GAAG;AAClC,UAAI,OAAO,eAAe,UAAU;AAClC,aAAK,GAAG,IAAI,IAAI,kBAAkB,UAAU;AAAA,MAC9C,WAAW,YAAY;AACrB,aAAK,GAAG,IAAI;AAAA,MACd;AAAA,IACF;AAEA,QAAI,YAAY,cAAc;AAC5B,WAAK,eAAe,IAAI,gBAAgB,YAAY,YAAY;AAAA,IAClE;AAAA,EACF;AAAA,EAEA,SAAS,OAAqB;AAC5B,QAAIA;AACJ,QAAI;AACF,MAAAA,OAAM,iBAAiB,MAAM,QAAQ,IAAI,IAAI,KAAY;AAAA,IAC3D,SAAS,OAAO;AACd,YAAM,IAAI,gBAAgB,yCAAyC;AAAA,IACrE;AAEA,UAAM,UAAU,IAAI,uBAAuB;AAE3C,eAAW,OAAO,MAAM;AACtB,YAAM,YAAY,KAAK,GAAG;AAC1B,UAAI,WAAW;AACb,YAAI;AACF,oBAAU,SAASA,KAAI,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,OAAO;AACd,kBAAQ,OAAO,OAAO,GAAG;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAEA,QAAI,KAAK,cAAc;AACrB,YAAM,aAAqC,CAAC;AAC5C,MAAAA,KAAI,aAAa,QAAQ,CAACC,QAAO,QAAQ,WAAW,GAAG,IAAIA,MAAK;AAEhE,UAAI;AACF,aAAK,aAAa,SAAS,YAAY,OAAO;AAAA,MAChD,SAAS,OAAO;AACd,gBAAQ,OAAO,OAAO,cAAc;AAAA,MACtC;AAAA,IACF;AAEA,WAAO,QAAQ,OAAOD,IAAG;AAAA,EAC3B;AACF;AAEO,SAAS,WAAW,aAA2C;AACpE,SAAO,IAAI,aAAa,WAAW;AACrC;AAGO,IAAM,MAAM,qBAAqB,IAAI,aAAa,GAAG,UAAU;",
5
+ "names": ["url", "value"]
6
6
  }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // extra/uuid.ts
21
+ var uuid_exports = {};
22
+ __export(uuid_exports, {
23
+ UUIDValidator: () => UUIDValidator,
24
+ UUID_EXPR: () => UUID_EXPR,
25
+ uuid: () => uuid
26
+ });
27
+ module.exports = __toCommonJS(uuid_exports);
28
+ var import_string = require("../validators/string.cjs");
29
+ var UUID_EXPR = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
30
+ var UUIDValidator = class extends import_string.StringValidator {
31
+ constructor() {
32
+ super({ minLength: 36, maxLength: 36, pattern: UUID_EXPR });
33
+ }
34
+ validate(value) {
35
+ return super.validate(value).toLowerCase();
36
+ }
37
+ };
38
+ var uuid = new UUIDValidator();
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ UUIDValidator,
42
+ UUID_EXPR,
43
+ uuid
44
+ });
45
+ //# sourceMappingURL=uuid.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/extra/uuid.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAEzB,IAAM,YAAY;AAIlB,IAAM,gBAAN,cAA4B,8BAA4B;AAAA,EAC7D,cAAc;AACZ,UAAM,EAAE,WAAW,IAAI,WAAW,IAAI,SAAS,UAAU,CAAC;AAAA,EAC5D;AAAA,EAGA,SAAS,OAAwB;AAC/B,WAAO,MAAM,SAAS,KAAK,EAAE,YAAY;AAAA,EAC3C;AACF;AAEO,IAAM,OAAO,IAAI,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1,10 @@
1
+ import { StringValidator } from '../validators/string';
2
+ export declare const UUID_EXPR: RegExp;
3
+ export type UUIDString = string & {
4
+ __uuid: never;
5
+ };
6
+ export declare class UUIDValidator extends StringValidator<UUIDString> {
7
+ constructor();
8
+ validate(value: unknown): UUIDString;
9
+ }
10
+ export declare const uuid: UUIDValidator;
@@ -0,0 +1,18 @@
1
+ // extra/uuid.ts
2
+ import { StringValidator } from "../validators/string.mjs";
3
+ var UUID_EXPR = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
4
+ var UUIDValidator = class extends StringValidator {
5
+ constructor() {
6
+ super({ minLength: 36, maxLength: 36, pattern: UUID_EXPR });
7
+ }
8
+ validate(value) {
9
+ return super.validate(value).toLowerCase();
10
+ }
11
+ };
12
+ var uuid = new UUIDValidator();
13
+ export {
14
+ UUIDValidator,
15
+ UUID_EXPR,
16
+ uuid
17
+ };
18
+ //# sourceMappingURL=uuid.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/extra/uuid.ts"],
4
+ "mappings": ";AAAA,SAAS,uBAAuB;AAEzB,IAAM,YAAY;AAIlB,IAAM,gBAAN,cAA4B,gBAA4B;AAAA,EAC7D,cAAc;AACZ,UAAM,EAAE,WAAW,IAAI,WAAW,IAAI,SAAS,UAAU,CAAC;AAAA,EAC5D;AAAA,EAGA,SAAS,OAAwB;AAC/B,WAAO,MAAM,SAAS,KAAK,EAAE,YAAY;AAAA,EAC3C;AACF;AAEO,IAAM,OAAO,IAAI,cAAc;",
5
+ "names": []
6
+ }
package/dist/index.cjs CHANGED
@@ -38,7 +38,6 @@ __export(src_exports, {
38
38
  OptionalValidator: () => import_optional.OptionalValidator,
39
39
  StringValidator: () => import_string.StringValidator,
40
40
  TupleValidator: () => import_tuple.TupleValidator,
41
- URLValidator: () => import_url.URLValidator,
42
41
  allOf: () => import_union.allOf,
43
42
  any: () => import_any.any,
44
43
  array: () => import_array.array,
@@ -55,7 +54,6 @@ __export(src_exports, {
55
54
  string: () => import_string.string,
56
55
  strip: () => strip,
57
56
  tuple: () => import_tuple.tuple,
58
- url: () => import_url.url,
59
57
  validate: () => validate
60
58
  });
61
59
  module.exports = __toCommonJS(src_exports);
@@ -75,7 +73,6 @@ var import_optional = require("./validators/optional.cjs");
75
73
  var import_string = require("./validators/string.cjs");
76
74
  var import_tuple = require("./validators/tuple.cjs");
77
75
  var import_union = require("./validators/union.cjs");
78
- var import_url = require("./validators/url.cjs");
79
76
  var import_types = require("./types.cjs");
80
77
  var import_utilities = require("./utilities.cjs");
81
78
  function validate(validation, value, options) {
@@ -110,7 +107,6 @@ function strip(validation, value, options) {
110
107
  OptionalValidator,
111
108
  StringValidator,
112
109
  TupleValidator,
113
- URLValidator,
114
110
  allOf,
115
111
  any,
116
112
  array,
@@ -127,7 +123,6 @@ function strip(validation, value, options) {
127
123
  string,
128
124
  strip,
129
125
  tuple,
130
- url,
131
126
  validate,
132
127
  ...require("./errors.cjs"),
133
128
  ...require("./schema.cjs"),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,wBAAc,yBALd;AAMA,wBAAc,yBANd;AAOA,wBAAc,wBAPd;AAQA,wBAAc,4BARd;AAWA,iBAAkC;AAClC,mBAAkE;AAClE,qBAA0C;AAC1C,sBAA4C;AAC5C,kBAAoC;AACpC,mBAAsC;AACtC,oBAA4D;AAC5D,oBAAsE;AACtE,sBAA4C;AAC5C,oBAA4D;AAC5D,mBAAsC;AACtC,mBAA6D;AAC7D,iBAAkC;AAelC,mBAAyC;AACzC,uBAA6B;AAUtB,SAAS,SACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B,EAAE,GAAG,uCAA0B,GAAG,QAAQ;AAC1E,aAAO,+BAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;AAgBO,SAAS,MACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B;AAAA,IAC9B,2BAA2B;AAAA,IAC3B,0BAA0B;AAAA,IAC1B,oBAAoB;AAAA,IACpB,GAAG;AAAA,EACL;AAEA,aAAO,+BAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,wBAAc,yBALd;AAMA,wBAAc,yBANd;AAOA,wBAAc,wBAPd;AAQA,wBAAc,4BARd;AAWA,iBAAkC;AAClC,mBAAkE;AAClE,qBAA0C;AAC1C,sBAA4C;AAC5C,kBAAoC;AACpC,mBAAsC;AACtC,oBAA4D;AAC5D,oBAAsE;AACtE,sBAA4C;AAC5C,oBAA4D;AAC5D,mBAAsC;AACtC,mBAA6D;AAe7D,mBAAyC;AACzC,uBAA6B;AAUtB,SAAS,SACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B,EAAE,GAAG,uCAA0B,GAAG,QAAQ;AAC1E,aAAO,+BAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;AAgBO,SAAS,MACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B;AAAA,IAC9B,2BAA2B;AAAA,IAC3B,0BAA0B;AAAA,IAC1B,oBAAoB;AAAA,IACpB,GAAG;AAAA,EACL;AAEA,aAAO,+BAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;",
5
5
  "names": []
6
6
  }
package/dist/index.d.ts CHANGED
@@ -2,26 +2,25 @@ export * from './errors';
2
2
  export * from './schema';
3
3
  export * from './types';
4
4
  export * from './utilities';
5
- export { any, AnyValidator } from './validators/any';
6
- export { array, arrayOf, ArrayValidator, AnyArrayValidator } from './validators/array';
7
- export { boolean, BooleanValidator } from './validators/boolean';
8
- export { constant, ConstantValidator } from './validators/constant';
9
- export { date, DateValidator } from './validators/date';
10
- export { never, NeverValidator } from './validators/never';
11
- export { AnyNumberValidator, number, NumberValidator } from './validators/number';
12
- export { AnyObjectValidator, object, objectOf, ObjectValidator } from './validators/object';
13
- export { optional, OptionalValidator } from './validators/optional';
14
- export { AnyStringValidator, string, StringValidator } from './validators/string';
15
- export { tuple, TupleValidator } from './validators/tuple';
16
- export { allOf, AllOfValidator, oneOf, OneOfValidator } from './validators/union';
17
- export { url, URLValidator } from './validators/url';
18
- export type { ArrayConstraints } from './validators/array';
19
- export type { BooleanConstraints } from './validators/boolean';
20
- export type { DateConstraints } from './validators/date';
21
- export type { BrandedNumberConstraints } from './validators/number';
22
- export type { BrandedStringConstraints, StringConstraints } from './validators/string';
5
+ export { AnyValidator, any } from './validators/any';
6
+ export { AnyArrayValidator, ArrayValidator, array, arrayOf } from './validators/array';
7
+ export { BooleanValidator, boolean } from './validators/boolean';
8
+ export { ConstantValidator, constant } from './validators/constant';
9
+ export { DateValidator, date } from './validators/date';
10
+ export { NeverValidator, never } from './validators/never';
11
+ export { AnyNumberValidator, NumberValidator, number } from './validators/number';
12
+ export { AnyObjectValidator, ObjectValidator, object, objectOf } from './validators/object';
13
+ export { OptionalValidator, optional } from './validators/optional';
14
+ export { AnyStringValidator, StringValidator, string } from './validators/string';
15
+ export { TupleValidator, tuple } from './validators/tuple';
16
+ export { AllOfValidator, OneOfValidator, allOf, oneOf } from './validators/union';
17
+ export type { ArrayConstraints, arrayFactory } from './validators/array';
18
+ export type { BooleanConstraints, booleanFactory } from './validators/boolean';
19
+ export type { DateConstraints, dateFactory } from './validators/date';
20
+ export type { BrandedNumberConstraints, numberFactory } from './validators/number';
21
+ export type { objectFactory } from './validators/object';
22
+ export type { BrandedStringConstraints, StringConstraints, stringFactory } from './validators/string';
23
23
  export type { TupleMember } from './validators/tuple';
24
- export type { URLConstraints } from './validators/url';
25
24
  import type { InferValidation, Validation, ValidationOptions } from './types';
26
25
  /**
27
26
  * Validate a _value_ using the specified `Validation`.
package/dist/index.mjs CHANGED
@@ -3,19 +3,18 @@ export * from "./errors.mjs";
3
3
  export * from "./schema.mjs";
4
4
  export * from "./types.mjs";
5
5
  export * from "./utilities.mjs";
6
- import { any, AnyValidator } from "./validators/any.mjs";
7
- import { array, arrayOf, ArrayValidator, AnyArrayValidator } from "./validators/array.mjs";
8
- import { boolean, BooleanValidator } from "./validators/boolean.mjs";
9
- import { constant, ConstantValidator } from "./validators/constant.mjs";
10
- import { date, DateValidator } from "./validators/date.mjs";
11
- import { never, NeverValidator } from "./validators/never.mjs";
12
- import { AnyNumberValidator, number, NumberValidator } from "./validators/number.mjs";
13
- import { AnyObjectValidator, object, objectOf, ObjectValidator } from "./validators/object.mjs";
14
- import { optional, OptionalValidator } from "./validators/optional.mjs";
15
- import { AnyStringValidator, string, StringValidator } from "./validators/string.mjs";
16
- import { tuple, TupleValidator } from "./validators/tuple.mjs";
17
- import { allOf, AllOfValidator, oneOf, OneOfValidator } from "./validators/union.mjs";
18
- import { url, URLValidator } from "./validators/url.mjs";
6
+ import { AnyValidator, any } from "./validators/any.mjs";
7
+ import { AnyArrayValidator, ArrayValidator, array, arrayOf } from "./validators/array.mjs";
8
+ import { BooleanValidator, boolean } from "./validators/boolean.mjs";
9
+ import { ConstantValidator, constant } from "./validators/constant.mjs";
10
+ import { DateValidator, date } from "./validators/date.mjs";
11
+ import { NeverValidator, never } from "./validators/never.mjs";
12
+ import { AnyNumberValidator, NumberValidator, number } from "./validators/number.mjs";
13
+ import { AnyObjectValidator, ObjectValidator, object, objectOf } from "./validators/object.mjs";
14
+ import { OptionalValidator, optional } from "./validators/optional.mjs";
15
+ import { AnyStringValidator, StringValidator, string } from "./validators/string.mjs";
16
+ import { TupleValidator, tuple } from "./validators/tuple.mjs";
17
+ import { AllOfValidator, OneOfValidator, allOf, oneOf } from "./validators/union.mjs";
19
18
  import { defaultValidationOptions } from "./types.mjs";
20
19
  import { getValidator } from "./utilities.mjs";
21
20
  function validate(validation, value, options) {
@@ -49,7 +48,6 @@ export {
49
48
  OptionalValidator,
50
49
  StringValidator,
51
50
  TupleValidator,
52
- URLValidator,
53
51
  allOf,
54
52
  any,
55
53
  array,
@@ -66,7 +64,6 @@ export {
66
64
  string,
67
65
  strip,
68
66
  tuple,
69
- url,
70
67
  validate
71
68
  };
72
69
  //# sourceMappingURL=index.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": ";AAKA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,SAAS,KAAK,oBAAoB;AAClC,SAAS,OAAO,SAAS,gBAAgB,yBAAyB;AAClE,SAAS,SAAS,wBAAwB;AAC1C,SAAS,UAAU,yBAAyB;AAC5C,SAAS,MAAM,qBAAqB;AACpC,SAAS,OAAO,sBAAsB;AACtC,SAAS,oBAAoB,QAAQ,uBAAuB;AAC5D,SAAS,oBAAoB,QAAQ,UAAU,uBAAuB;AACtE,SAAS,UAAU,yBAAyB;AAC5C,SAAS,oBAAoB,QAAQ,uBAAuB;AAC5D,SAAS,OAAO,sBAAsB;AACtC,SAAS,OAAO,gBAAgB,OAAO,sBAAsB;AAC7D,SAAS,KAAK,oBAAoB;AAelC,SAAS,gCAAgC;AACzC,SAAS,oBAAoB;AAUtB,SAAS,SACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B,EAAE,GAAG,0BAA0B,GAAG,QAAQ;AAC1E,SAAO,aAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;AAgBO,SAAS,MACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B;AAAA,IAC9B,2BAA2B;AAAA,IAC3B,0BAA0B;AAAA,IAC1B,oBAAoB;AAAA,IACpB,GAAG;AAAA,EACL;AAEA,SAAO,aAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;",
4
+ "mappings": ";AAKA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,SAAS,cAAc,WAAW;AAClC,SAAS,mBAAmB,gBAAgB,OAAO,eAAe;AAClE,SAAS,kBAAkB,eAAe;AAC1C,SAAS,mBAAmB,gBAAgB;AAC5C,SAAS,eAAe,YAAY;AACpC,SAAS,gBAAgB,aAAa;AACtC,SAAS,oBAAoB,iBAAiB,cAAc;AAC5D,SAAS,oBAAoB,iBAAiB,QAAQ,gBAAgB;AACtE,SAAS,mBAAmB,gBAAgB;AAC5C,SAAS,oBAAoB,iBAAiB,cAAc;AAC5D,SAAS,gBAAgB,aAAa;AACtC,SAAS,gBAAgB,gBAAgB,OAAO,aAAa;AAe7D,SAAS,gCAAgC;AACzC,SAAS,oBAAoB;AAUtB,SAAS,SACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B,EAAE,GAAG,0BAA0B,GAAG,QAAQ;AAC1E,SAAO,aAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;AAgBO,SAAS,MACZ,YACA,OACA,SACkB;AACpB,QAAM,OAA0B;AAAA,IAC9B,2BAA2B;AAAA,IAC3B,0BAA0B;AAAA,IAC1B,oBAAoB;AAAA,IACpB,GAAG;AAAA,EACL;AAEA,SAAO,aAAa,UAAU,EAAE,SAAS,OAAO,IAAI;AACtD;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // registry.ts
21
+ var registry_exports = {};
22
+ __export(registry_exports, {
23
+ registry: () => registry
24
+ });
25
+ module.exports = __toCommonJS(registry_exports);
26
+ var import_errors = require("./errors.cjs");
27
+ var _registry = {};
28
+ var registry = {
29
+ /** Registers the specified validator constructor */
30
+ set(key, constructor) {
31
+ _registry[key] = constructor;
32
+ },
33
+ /** Retrieves the specified validator constructor */
34
+ get(key) {
35
+ const value = _registry[key];
36
+ (0, import_errors.assertSchema)(!!value, `No validator found for "${key}"`);
37
+ return value;
38
+ }
39
+ };
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ registry
43
+ });
44
+ //# sourceMappingURL=registry.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/registry.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAY7B,IAAM,YAAoC,CAAC;AAGpC,IAAM,WAAW;AAAA;AAAA,EAEtB,IAAmC,KAAQ,aAAqC;AAC9E,cAAU,GAAG,IAAI;AAAA,EACnB;AAAA;AAAA,EAGA,IAAmC,KAA0B;AAC3D,UAAM,QAAQ,UAAU,GAAG;AAC3B,oCAAa,CAAC,CAAE,OAAO,2BAA2B,GAAG,GAAG;AACxD,WAAO;AAAA,EACT;AACF;",
5
+ "names": []
6
+ }