justus 0.2.0 → 0.2.1

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.
@@ -77,7 +77,7 @@ function generateTypeNode(validator, references) {
77
77
  return type;
78
78
  if (type === neverType)
79
79
  return undefinedType;
80
- if ((0, import_typescript.isUnionTypeNode)(type)) {
80
+ if (import_typescript.default.isUnionTypeNode(type)) {
81
81
  return import_typescript.default.factory.createUnionTypeNode([...type.types, undefinedType]);
82
82
  }
83
83
  return import_typescript.default.factory.createUnionTypeNode([type, undefinedType]);
@@ -111,15 +111,6 @@ registerTypeGenerator(import_index.BooleanValidator, () => booleanType);
111
111
  registerTypeGenerator(import_index.NeverValidator, () => neverType);
112
112
  registerTypeGenerator(import_index.DateValidator, () => import_typescript.default.factory.createTypeReferenceNode("Date"));
113
113
  registerTypeGenerator(import_index.URLValidator, () => import_typescript.default.factory.createTypeReferenceNode("URL"));
114
- registerTypeGenerator(import_index.any, () => anyType);
115
- registerTypeGenerator(import_index.array, () => anyArrayType);
116
- registerTypeGenerator(import_index.number, () => numberType);
117
- registerTypeGenerator(import_index.object, () => recordType);
118
- registerTypeGenerator(import_index.string, () => stringType);
119
- registerTypeGenerator(import_index.boolean, () => booleanType);
120
- registerTypeGenerator(import_index.never, () => neverType);
121
- registerTypeGenerator(import_index.date, () => import_typescript.default.factory.createTypeReferenceNode("Date"));
122
- registerTypeGenerator(import_index.url, () => import_typescript.default.factory.createTypeReferenceNode("URL"));
123
114
  registerTypeGenerator(import_index.ArrayValidator, (validator, references) => {
124
115
  const itemType = generateTypeNode(validator.items, references);
125
116
  return import_typescript.default.factory.createArrayTypeNode(itemType);
@@ -171,8 +162,8 @@ registerTypeGenerator(import_index.TupleValidator, (validator, references) => {
171
162
  const types = members.slice(first, next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
172
163
  const after = members.slice(next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
173
164
  const union = import_typescript.default.factory.createUnionTypeNode(types);
174
- const array2 = import_typescript.default.factory.createArrayTypeNode(union);
175
- const rest = import_typescript.default.factory.createRestTypeNode(array2);
165
+ const array = import_typescript.default.factory.createArrayTypeNode(union);
166
+ const rest = import_typescript.default.factory.createRestTypeNode(array);
176
167
  return import_typescript.default.factory.createTupleTypeNode([...before, rest, ...after]);
177
168
  });
178
169
  registerTypeGenerator(import_index.AllOfValidator, (validator, references) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/dts-generator.ts"],
4
- "mappings": "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",
5
- "names": ["ts", "count", "first", "next", "types", "validator", "array"]
4
+ "mappings": "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",
5
+ "names": ["ts", "count", "first", "next", "types", "validator"]
6
6
  }
@@ -1,34 +1,25 @@
1
1
  // dts-generator.ts
2
- import ts, { isUnionTypeNode } from "typescript";
2
+ import ts from "typescript";
3
3
  import {
4
4
  AllOfValidator,
5
- any,
6
5
  AnyArrayValidator,
7
6
  AnyNumberValidator,
8
7
  AnyObjectValidator,
9
8
  AnyStringValidator,
10
9
  AnyValidator,
11
- array,
12
10
  ArrayValidator,
13
11
  assertSchema,
14
- boolean,
15
12
  BooleanValidator,
16
13
  ConstantValidator,
17
- date,
18
14
  DateValidator,
19
15
  getValidator,
20
- never,
21
16
  NeverValidator,
22
- number,
23
17
  NumberValidator,
24
- object,
25
18
  ObjectValidator,
26
19
  OneOfValidator,
27
20
  OptionalValidator,
28
- string,
29
21
  StringValidator,
30
22
  TupleValidator,
31
- url,
32
23
  URLValidator
33
24
  } from "./index.mjs";
34
25
  var generators = /* @__PURE__ */ new Map();
@@ -72,7 +63,7 @@ function generateTypeNode(validator, references) {
72
63
  return type;
73
64
  if (type === neverType)
74
65
  return undefinedType;
75
- if (isUnionTypeNode(type)) {
66
+ if (ts.isUnionTypeNode(type)) {
76
67
  return ts.factory.createUnionTypeNode([...type.types, undefinedType]);
77
68
  }
78
69
  return ts.factory.createUnionTypeNode([type, undefinedType]);
@@ -106,15 +97,6 @@ registerTypeGenerator(BooleanValidator, () => booleanType);
106
97
  registerTypeGenerator(NeverValidator, () => neverType);
107
98
  registerTypeGenerator(DateValidator, () => ts.factory.createTypeReferenceNode("Date"));
108
99
  registerTypeGenerator(URLValidator, () => ts.factory.createTypeReferenceNode("URL"));
109
- registerTypeGenerator(any, () => anyType);
110
- registerTypeGenerator(array, () => anyArrayType);
111
- registerTypeGenerator(number, () => numberType);
112
- registerTypeGenerator(object, () => recordType);
113
- registerTypeGenerator(string, () => stringType);
114
- registerTypeGenerator(boolean, () => booleanType);
115
- registerTypeGenerator(never, () => neverType);
116
- registerTypeGenerator(date, () => ts.factory.createTypeReferenceNode("Date"));
117
- registerTypeGenerator(url, () => ts.factory.createTypeReferenceNode("URL"));
118
100
  registerTypeGenerator(ArrayValidator, (validator, references) => {
119
101
  const itemType = generateTypeNode(validator.items, references);
120
102
  return ts.factory.createArrayTypeNode(itemType);
@@ -166,8 +148,8 @@ registerTypeGenerator(TupleValidator, (validator, references) => {
166
148
  const types = members.slice(first, next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
167
149
  const after = members.slice(next).map(({ validator: validator2 }) => generateTypeNode(validator2, references));
168
150
  const union = ts.factory.createUnionTypeNode(types);
169
- const array2 = ts.factory.createArrayTypeNode(union);
170
- const rest = ts.factory.createRestTypeNode(array2);
151
+ const array = ts.factory.createArrayTypeNode(union);
152
+ const rest = ts.factory.createRestTypeNode(array);
171
153
  return ts.factory.createTupleTypeNode([...before, rest, ...after]);
172
154
  });
173
155
  registerTypeGenerator(AllOfValidator, (validator, references) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/dts-generator.ts"],
4
- "mappings": "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",
5
- "names": ["count", "first", "next", "types", "validator", "array"]
4
+ "mappings": ";AAAA,OAAO,QAAQ;AAEf;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA2BP,IAAM,aAAa,oBAAI,IAA8C;AAG9D,SAAS,sBACZ,WACA,WACI;AACN,aAAW,IAAI,WAAW,SAAS;AACrC;AAGO,SAAS,cAAc,aAAiD;AAK7E,QAAM,aAAa,oBAAI,IAAuB;AAC9C,QAAM,aAAa,oBAAI,IAAuB;AAE9C,SAAO,QAAQ,WAAW,EAAE,QAAQ,CAAC,CAAE,MAAM,UAAW,MAAM;AAC5D,UAAM,YAAY,aAAa,UAAU;AAEzC,QAAI,CAAE,WAAW,IAAI,SAAS;AAAG,iBAAW,IAAI,WAAW,IAAI;AAC/D,eAAW,IAAI,MAAM,SAAS;AAAA,EAChC,CAAC;AAGD,QAAM,QAAmC,CAAC;AAC1C,aAAW,CAAE,MAAM,SAAU,KAAK,WAAW,QAAQ,GAAG;AAGtD,UAAM,gBAAgB,IAAI,IAAI,UAAU;AACxC,QAAI,cAAc,IAAI,SAAS,MAAM,MAAM;AACzC,oBAAc,OAAO,SAAS;AAAA,IAChC;AAGA,UAAM,OAAO,iBAAiB,WAAW,aAAa;AAGtD,UAAM,YAAY,CAAE,GAAG,QAAQ,eAAe,GAAG,WAAW,aAAa,CAAE;AAC3E,UAAM,OAAO,GAAG,QAAQ,2BAA2B,WAAW,MAAM,CAAC,GAAG,IAAI;AAC5E,UAAM,KAAK,IAAI;AAAA,EACjB;AAGA,SAAO,GAAG,cAAc,EAAE;AAAA,IACtB,GAAG,WAAW;AAAA,IACd,GAAG,QAAQ,gBAAgB,KAAK;AAAA,IAChC,GAAG,iBAAiB,cAAc,IAAI,GAAG,aAAa,MAAM;AAAA,EAAC;AACnE;AAOA,SAAS,iBACL,WACA,YACW;AACb,QAAM,YAAY,WAAW,IAAI,SAAS;AAC1C,MAAI;AAAW,WAAO,GAAG,QAAQ,wBAAwB,SAAS;AAElE,QAAM,YAAY,WAAW,IAAI,SAAS,KAAK,WAAW,IAAI,UAAU,WAAW;AACnF,eAAa,CAAC,CAAE,WAAW,uBAAuB,UAAU,YAAY,iBAAiB;AACzF,QAAM,OAAO,UAAU,WAAW,UAAU;AAG5C,MAAI,CAAE,UAAU;AAAU,WAAO;AAGjC,MAAI,SAAS;AAAW,WAAO;AAG/B,MAAI,GAAG,gBAAgB,IAAI,GAAG;AAC5B,WAAO,GAAG,QAAQ,oBAAoB,CAAE,GAAG,KAAK,OAAO,aAAc,CAAC;AAAA,EACxE;AAGA,SAAO,GAAG,QAAQ,oBAAoB,CAAE,MAAM,aAAc,CAAC;AAC/D;AAMA,IAAM,UAAU,GAAG,QAAQ,sBAAsB,GAAG,WAAW,UAAU;AACzE,IAAM,eAAe,GAAG,QAAQ,oBAAoB,OAAO;AAC3D,IAAM,cAAc,GAAG,QAAQ,sBAAsB,GAAG,WAAW,cAAc;AACjF,IAAM,aAAa,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa;AAC/E,IAAM,YAAY,GAAG,QAAQ,sBAAsB,GAAG,WAAW,YAAY;AAC7E,IAAM,aAAa,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa;AAC/E,IAAM,gBAAgB,GAAG,QAAQ,sBAAsB,GAAG,WAAW,gBAAgB;AACrF,IAAM,aAAa,GAAG,QAAQ;AAAA,EAC1B;AAAA;AAAA,EACA,GAAG,QAAQ,+BAA+B,CAAC,GAAG,OAAO,UAAU;AAAA,EAC/D;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAS;AAGb,IAAM,kBAAkB,GAAG,QAAQ,YAAY,GAAG,WAAW,aAAa;AAM1E,sBAAsB,cAAc,MAAM,OAAO;AACjD,sBAAsB,mBAAmB,MAAM,YAAY;AAC3D,sBAAsB,oBAAoB,MAAM,UAAU;AAC1D,sBAAsB,oBAAoB,MAAM,UAAU;AAC1D,sBAAsB,oBAAoB,MAAM,UAAU;AAC1D,sBAAsB,kBAAkB,MAAM,WAAW;AACzD,sBAAsB,gBAAgB,MAAM,SAAS;AACrD,sBAAsB,eAAe,MAAM,GAAG,QAAQ,wBAAwB,MAAM,CAAC;AACrF,sBAAsB,cAAc,MAAM,GAAG,QAAQ,wBAAwB,KAAK,CAAC;AAMnF,sBAAsB,gBAAgB,CAAC,WAAW,eAAe;AAC/D,QAAM,WAAW,iBAAiB,UAAU,OAAO,UAAU;AAC7D,SAAO,GAAG,QAAQ,oBAAoB,QAAQ;AAChD,CAAC;AAED,sBAAsB,mBAAmB,CAAC,cAAc;AACtD,QAAM,UACJ,OAAO,UAAU,aAAa,WAAW,GAAG,QAAQ,qBAAqB,UAAU,QAAQ,IAC3F,OAAO,UAAU,aAAa,WAAW,GAAG,QAAQ,oBAAoB,UAAU,QAAQ,IAC1F,UAAU,aAAa,QAAQ,GAAG,QAAQ,YAAY,IACtD,UAAU,aAAa,OAAO,GAAG,QAAQ,WAAW,IACpD,UAAU,aAAa,OAAO,GAAG,QAAQ,WAAW,IACpD;AAEF,eAAa,CAAC,CAAE,SAAS,qBAAqB,UAAU,WAAW;AACnE,SAAO,GAAG,QAAQ,sBAAsB,OAAO;AACjD,CAAC;AAED,sBAAsB,iBAAiB,CAAC,cAA+B;AACrE,MAAI,CAAE,UAAU;AAAO,WAAO;AAE9B,QAAM,YAAY,GAAG,QAAQ,wBAAwB,QAAW,WAAW,UAAU,SAAS,QAAW,SAAS;AAClH,QAAM,UAAU,GAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AAC9D,SAAO,GAAG,QAAQ,2BAA2B,CAAE,YAAY,OAAQ,CAAC;AACtE,CAAC;AAED,sBAAsB,mBAAmB,CAAC,WAA8B,eAAe;AAGrF,SAAO,iBAAiB,UAAU,WAAW,UAAU;AACzD,CAAC;AAED,sBAAsB,iBAAiB,CAAC,cAA+B;AACrE,MAAI,CAAE,UAAU;AAAO,WAAO;AAE9B,QAAM,YAAY,GAAG,QAAQ,wBAAwB,QAAW,WAAW,UAAU,SAAS,QAAW,SAAS;AAClH,QAAM,UAAU,GAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AAC9D,SAAO,GAAG,QAAQ,2BAA2B,CAAE,YAAY,OAAQ,CAAC;AACtE,CAAC;AAED,sBAAsB,gBAAgB,CAAC,WAAgC,eAAe;AACpF,QAAM,UAAU,UAAU;AAG1B,QAAM,EAAE,OAAO,OAAO,KAAK,IACvB,QAAQ,OAAO,CAAC,EAAE,OAAAA,QAAO,OAAAC,QAAO,MAAAC,MAAK,GAAG,EAAE,OAAO,GAAG,MAAM;AACxD,QAAI,CAAE,QAAQ;AACZ,UAAI,IAAID;AAAO,QAAAA,SAAQ;AACvB,MAAAC,QAAO,IAAI;AACX,MAAAF,UAAS;AAAA,IACX;AACA,WAAO,EAAE,OAAAA,QAAO,OAAAC,QAAO,MAAAC,MAAK;AAAA,EAC9B,GAAG,EAAE,OAAO,GAAG,OAAO,QAAQ,QAAQ,MAAM,GAAG,CAAC;AAGpD,MAAI,QAAQ,GAAG;AACb,UAAMC,SAAQ,QAAQ,IAAI,CAAC,EAAE,QAAQ,WAAAC,WAAU,MAAM;AACnD,YAAM,aAAa,iBAAiBA,YAAW,UAAU;AAEzD,UAAI;AAAQ,eAAO,iBAAiBA,YAAW,UAAU;AAEzD,YAAM,YAAY,GAAG,QAAQ,oBAAoB,UAAU;AAC3D,aAAO,GAAG,QAAQ,mBAAmB,SAAS;AAAA,IAChD,CAAC;AAED,WAAO,GAAG,QAAQ,oBAAoBD,MAAK;AAAA,EAC7C;AAIA,QAAM,SAAS,QAAQ,MAAM,GAAG,KAAK,EAChC,IAAI,CAAC,EAAE,WAAAC,WAAU,MAAM,iBAAiBA,YAAW,UAAU,CAAC;AACnE,QAAM,QAAQ,QAAQ,MAAM,OAAO,IAAI,EAClC,IAAI,CAAC,EAAE,WAAAA,WAAU,MAAM,iBAAiBA,YAAW,UAAU,CAAC;AACnE,QAAM,QAAQ,QAAQ,MAAM,IAAI,EAC3B,IAAI,CAAC,EAAE,WAAAA,WAAU,MAAM,iBAAiBA,YAAW,UAAU,CAAC;AAEnE,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,KAAK;AAClD,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,KAAK;AAClD,QAAM,OAAO,GAAG,QAAQ,mBAAmB,KAAK;AAEhD,SAAO,GAAG,QAAQ,oBAAoB,CAAE,GAAG,QAAQ,MAAM,GAAG,KAAM,CAAC;AACrE,CAAC;AAED,sBAAsB,gBAAgB,CAAC,WAAW,eAAe;AAC/D,QAAM,UAAU,UAAU,WAAW,IAAI,CAACA,eAAc,iBAAiBA,YAAW,UAAU,CAAC;AAC/F,SAAO,GAAG,QAAQ,2BAA2B,OAAO;AACtD,CAAC;AAED,sBAAsB,gBAAgB,CAAC,WAAW,eAAe;AAC/D,QAAM,UAAU,UAAU,WAAW,IAAI,CAACA,eAAc,iBAAiBA,YAAW,UAAU,CAAC;AAC/F,SAAO,GAAG,QAAQ,oBAAoB,OAAO;AAC/C,CAAC;AAED,sBAAsB,iBAAiB,CAAC,WAAW,eAAe;AAChE,QAAM,aAAqC,CAAC;AAE5C,aAAW,CAAE,KAAK,cAAe,KAAK,UAAU,WAAW,QAAQ,GAAG;AACpE,UAAM,OAAO,iBAAiB,gBAAgB,UAAU;AACxD,UAAM,WAAW,eAAe;AAEhC,UAAM,YAAY,GAAG,QAAQ;AAAA,MACzB;AAAA,MACA;AAAA,MACA,WAAW,kBAAkB;AAAA,MAC7B;AAAA,IAAI;AAER,eAAW,KAAK,SAAS;AAAA,EAC3B;AAEA,MAAI,UAAU,sBAAsB;AAClC,UAAM,eAAe,iBAAiB,UAAU,sBAAsB,UAAU;AAEhF,UAAM,QAAQ,GAAG,QAAQ;AAAA,MACrB;AAAA;AAAA,MACA,GAAG,QAAQ,+BAA+B,CAAC,GAAG,OAAO,UAAU;AAAA,MAC/D;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,IAAS;AAEb,QAAI,WAAW,UAAU;AAAG,aAAO;AAEnC,UAAM,OAAO,GAAG,QAAQ,sBAAsB,UAAU;AACxD,WAAO,GAAG,QAAQ,2BAA2B,CAAE,MAAM,KAAM,CAAC;AAAA,EAC9D,OAAO;AACL,WAAO,GAAG,QAAQ,sBAAsB,UAAU;AAAA,EACpD;AACF,CAAC;",
5
+ "names": ["count", "first", "next", "types", "validator"]
6
6
  }
package/dist/schema.cjs CHANGED
@@ -24,18 +24,17 @@ __export(schema_exports, {
24
24
  allowAdditionalProperties: () => allowAdditionalProperties
25
25
  });
26
26
  module.exports = __toCommonJS(schema_exports);
27
- var import_types = require("./types.cjs");
28
27
  var import_utilities = require("./utilities.cjs");
29
28
  var import_any = require("./validators/any.cjs");
30
29
  function _allowAdditionalProperties(options) {
31
30
  if (options === false)
32
- return { [import_types.additionalValidator]: false };
31
+ return { [Symbol.justusAdditionalValidator]: false };
33
32
  if (options === true)
34
- return { [import_types.additionalValidator]: import_any.any };
35
- return { [import_types.additionalValidator]: options ? (0, import_utilities.getValidator)(options) : import_any.any };
33
+ return { [Symbol.justusAdditionalValidator]: import_any.any };
34
+ return { [Symbol.justusAdditionalValidator]: options ? (0, import_utilities.getValidator)(options) : import_any.any };
36
35
  }
37
36
  var allowAdditionalProperties = _allowAdditionalProperties;
38
- allowAdditionalProperties[import_types.additionalValidator] = import_any.any;
37
+ allowAdditionalProperties[Symbol.justusAdditionalValidator] = import_any.any;
39
38
  // Annotate the CommonJS export names for ESM import in node:
40
39
  0 && (module.exports = {
41
40
  _allowAdditionalProperties,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/schema.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoC;AAEpC,uBAA6B;AAC7B,iBAAoB;AAkBb,SAAS,2BAA2B,SAAyE;AAClH,MAAI,YAAY;AAAO,WAAO,EAAE,CAAC,gCAAmB,GAAG,MAAM;AAC7D,MAAI,YAAY;AAAM,WAAO,EAAE,CAAC,gCAAmB,GAAG,eAAI;AAE1D,SAAO,EAAE,CAAC,gCAAmB,GAAG,cAAU,+BAAa,OAAO,IAAI,eAAI;AACxE;AAWO,IAAM,4BAA4B;AAKzC,0BAA0B,gCAAmB,IAAI;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,uBAA6B;AAC7B,iBAAoB;AAkBb,SAAS,2BAA2B,SAAyE;AAClH,MAAI,YAAY;AAAO,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,MAAM;AAC1E,MAAI,YAAY;AAAM,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,eAAI;AAEvE,SAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,cAAU,+BAAa,OAAO,IAAI,eAAI;AACrF;AAWO,IAAM,4BAA4B;AAKzC,0BAA0B,OAAO,yBAAyB,IAAI;",
5
5
  "names": []
6
6
  }
package/dist/schema.mjs CHANGED
@@ -1,16 +1,15 @@
1
1
  // schema.ts
2
- import { additionalValidator } from "./types.mjs";
3
2
  import { getValidator } from "./utilities.mjs";
4
3
  import { any } from "./validators/any.mjs";
5
4
  function _allowAdditionalProperties(options) {
6
5
  if (options === false)
7
- return { [additionalValidator]: false };
6
+ return { [Symbol.justusAdditionalValidator]: false };
8
7
  if (options === true)
9
- return { [additionalValidator]: any };
10
- return { [additionalValidator]: options ? getValidator(options) : any };
8
+ return { [Symbol.justusAdditionalValidator]: any };
9
+ return { [Symbol.justusAdditionalValidator]: options ? getValidator(options) : any };
11
10
  }
12
11
  var allowAdditionalProperties = _allowAdditionalProperties;
13
- allowAdditionalProperties[additionalValidator] = any;
12
+ allowAdditionalProperties[Symbol.justusAdditionalValidator] = any;
14
13
  export {
15
14
  _allowAdditionalProperties,
16
15
  allowAdditionalProperties
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/schema.ts"],
4
- "mappings": ";AAAA,SAAS,2BAA2B;AAEpC,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AAkBb,SAAS,2BAA2B,SAAyE;AAClH,MAAI,YAAY;AAAO,WAAO,EAAE,CAAC,mBAAmB,GAAG,MAAM;AAC7D,MAAI,YAAY;AAAM,WAAO,EAAE,CAAC,mBAAmB,GAAG,IAAI;AAE1D,SAAO,EAAE,CAAC,mBAAmB,GAAG,UAAU,aAAa,OAAO,IAAI,IAAI;AACxE;AAWO,IAAM,4BAA4B;AAKzC,0BAA0B,mBAAmB,IAAI;",
4
+ "mappings": ";AAEA,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AAkBb,SAAS,2BAA2B,SAAyE;AAClH,MAAI,YAAY;AAAO,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,MAAM;AAC1E,MAAI,YAAY;AAAM,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,IAAI;AAEvE,SAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,UAAU,aAAa,OAAO,IAAI,IAAI;AACrF;AAWO,IAAM,4BAA4B;AAKzC,0BAA0B,OAAO,yBAAyB,IAAI;",
5
5
  "names": []
6
6
  }
package/dist/types.cjs CHANGED
@@ -21,18 +21,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var types_exports = {};
22
22
  __export(types_exports, {
23
23
  AbstractValidator: () => AbstractValidator,
24
- additionalValidator: () => additionalValidator,
25
24
  defaultValidationOptions: () => defaultValidationOptions,
26
- isValidator: () => isValidator,
27
- makeValidatorFactory: () => makeValidatorFactory,
28
- restValidator: () => restValidator,
29
- schemaValidator: () => schemaValidator
25
+ makeValidatorFactory: () => makeValidatorFactory
30
26
  });
31
27
  module.exports = __toCommonJS(types_exports);
32
- var isValidator = Symbol.for("justus.isValidator");
33
- var restValidator = Symbol.for("justus.restValidator");
34
- var schemaValidator = Symbol.for("justus.schemaValidator");
35
- var additionalValidator = Symbol.for("justus.additionalValidator");
28
+ Object.defineProperties(Symbol, {
29
+ justusValidator: { value: Symbol.for("justus.Validator") },
30
+ justusRestValidator: { value: Symbol.for("justus.restValidator") },
31
+ justusAdditionalValidator: { value: Symbol.for("justus.additionalValidator") }
32
+ });
36
33
  var defaultValidationOptions = {
37
34
  stripAdditionalProperties: false,
38
35
  stripForbiddenProperties: false,
@@ -43,25 +40,21 @@ function makeValidatorFactory(validator, factory) {
43
40
  optional: validator.optional,
44
41
  validate: validator.validate.bind(validator),
45
42
  [Symbol.iterator]: validator[Symbol.iterator].bind(validator),
46
- [isValidator]: true
43
+ [Symbol.justusValidator]: validator
47
44
  });
48
45
  }
49
46
  var AbstractValidator = class {
50
- [isValidator] = true;
47
+ [Symbol.justusValidator] = this;
51
48
  optional = void 0;
52
49
  /** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
53
50
  *[Symbol.iterator]() {
54
- yield { [restValidator]: this };
51
+ yield { [Symbol.justusRestValidator]: this };
55
52
  }
56
53
  };
57
54
  // Annotate the CommonJS export names for ESM import in node:
58
55
  0 && (module.exports = {
59
56
  AbstractValidator,
60
- additionalValidator,
61
57
  defaultValidationOptions,
62
- isValidator,
63
- makeValidatorFactory,
64
- restValidator,
65
- schemaValidator
58
+ makeValidatorFactory
66
59
  });
67
60
  //# sourceMappingURL=types.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/types.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,IAAM,cAAc,OAAO,IAAI,oBAAoB;AAGnD,IAAM,gBAAgB,OAAO,IAAI,sBAAsB;AAGvD,IAAM,kBAAkB,OAAO,IAAI,wBAAwB;AAG3D,IAAM,sBAAsB,OAAO,IAAI,4BAA4B;AAqBnE,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAwBO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,WAAW,GAAG;AAAA,EACjB,CAAC;AACH;AAMO,IAAe,oBAAf,MACkD;AAAA,EACvD,CAAC,WAAW,IAAU;AAAA,EAEtB,WAAqB;AAAA;AAAA,EAMrB,EAAG,OAAO,QAAQ,IAAsC;AACtD,UAAM,EAAE,CAAC,aAAa,GAAG,KAAK;AAAA,EAChC;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAwBO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,MACkD;AAAA,EACvD,CAAC,OAAO,eAAe,IAAI;AAAA,EAE3B,WAAqB;AAAA;AAAA,EAMrB,EAAG,OAAO,QAAQ,IAAsC;AACtD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,KAAK;AAAA,EAC7C;AACF;",
5
5
  "names": []
6
6
  }
package/dist/types.d.ts CHANGED
@@ -1,11 +1,13 @@
1
- /** A symbol indicating that an instance is (in fact) a `Validator`. */
2
- export declare const isValidator: unique symbol;
3
- /** A symbol indicating the `Validator` for a `Tuple`'s rest parameter. */
4
- export declare const restValidator: unique symbol;
5
- /** A symbol indicating the `Validator` for a `Schema`. */
6
- export declare const schemaValidator: unique symbol;
7
- /** A symbol indicating the `Validator` for a `Schema`'s additional properties. */
8
- export declare const additionalValidator: unique symbol;
1
+ declare global {
2
+ interface SymbolConstructor {
3
+ /** A symbol associated with a `Validator` instance. */
4
+ readonly justusValidator: unique symbol;
5
+ /** A symbol indicating the `Validator` for a `Tuple`'s rest parameter. */
6
+ readonly justusRestValidator: unique symbol;
7
+ /** A symbol indicating the `Validator` for a `Schema`'s additional properties. */
8
+ readonly justusAdditionalValidator: unique symbol;
9
+ }
10
+ }
9
11
  /**
10
12
  * Options to be using while validating.
11
13
  */
@@ -26,7 +28,7 @@ export declare const defaultValidationOptions: Readonly<Required<ValidationOptio
26
28
  * (possibly) converting it the required type `T`.
27
29
  */
28
30
  export interface Validator<T = any> extends Iterable<TupleRestParameter<T>> {
29
- [isValidator]: true;
31
+ [Symbol.justusValidator]: this;
30
32
  optional?: boolean;
31
33
  /** Validate a _value_ and optionally convert it to the required `Type` */
32
34
  validate(value: unknown, options?: ValidationOptions | undefined): T;
@@ -45,7 +47,7 @@ export declare function makeValidatorFactory<V extends Validator, F extends (...
45
47
  * (possibly) converting it the required type `T`.
46
48
  */
47
49
  export declare abstract class AbstractValidator<T = any> implements Validator<T>, Iterable<TupleRestParameter<T>> {
48
- [isValidator]: true;
50
+ [Symbol.justusValidator]: this;
49
51
  optional?: boolean;
50
52
  /** Validate a _value_ and optionally convert it to the required `Type` */
51
53
  abstract validate(value: unknown, options?: ValidationOptions | undefined): T;
@@ -89,7 +91,7 @@ export type Tuple = readonly (Validation | TupleRestParameter)[];
89
91
  * ```
90
92
  */
91
93
  export type TupleRestParameter<T = any> = {
92
- [restValidator]: Validator<T>;
94
+ [Symbol.justusRestValidator]: Validator<T>;
93
95
  };
94
96
  /**
95
97
  * Infer the type returned by a `TupleValidator` when validating an array.
@@ -109,14 +111,14 @@ export type InferTuple<T> = T extends Tuple ? T extends readonly [] ? [] : T ext
109
111
  */
110
112
  export interface Schema {
111
113
  [key: string]: Validation;
112
- [additionalValidator]?: Validator | false;
114
+ [Symbol.justusAdditionalValidator]?: Validator | false;
113
115
  }
114
116
  /**
115
117
  * An interface defining whether a `Schema` should include additional
116
118
  * properties, and the `Validator` used to validate them.
117
119
  */
118
120
  export interface AdditionalProperties<V extends Validator | false> {
119
- [additionalValidator]: V;
121
+ [Symbol.justusAdditionalValidator]: V;
120
122
  }
121
123
  /** Infer the type validated by a `Schema` */
122
124
  export type InferSchema<S> = S extends AdditionalProperties<Validator<infer V>> ? {
package/dist/types.mjs CHANGED
@@ -1,8 +1,9 @@
1
1
  // types.ts
2
- var isValidator = Symbol.for("justus.isValidator");
3
- var restValidator = Symbol.for("justus.restValidator");
4
- var schemaValidator = Symbol.for("justus.schemaValidator");
5
- var additionalValidator = Symbol.for("justus.additionalValidator");
2
+ Object.defineProperties(Symbol, {
3
+ justusValidator: { value: Symbol.for("justus.Validator") },
4
+ justusRestValidator: { value: Symbol.for("justus.restValidator") },
5
+ justusAdditionalValidator: { value: Symbol.for("justus.additionalValidator") }
6
+ });
6
7
  var defaultValidationOptions = {
7
8
  stripAdditionalProperties: false,
8
9
  stripForbiddenProperties: false,
@@ -13,24 +14,20 @@ function makeValidatorFactory(validator, factory) {
13
14
  optional: validator.optional,
14
15
  validate: validator.validate.bind(validator),
15
16
  [Symbol.iterator]: validator[Symbol.iterator].bind(validator),
16
- [isValidator]: true
17
+ [Symbol.justusValidator]: validator
17
18
  });
18
19
  }
19
20
  var AbstractValidator = class {
20
- [isValidator] = true;
21
+ [Symbol.justusValidator] = this;
21
22
  optional = void 0;
22
23
  /** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
23
24
  *[Symbol.iterator]() {
24
- yield { [restValidator]: this };
25
+ yield { [Symbol.justusRestValidator]: this };
25
26
  }
26
27
  };
27
28
  export {
28
29
  AbstractValidator,
29
- additionalValidator,
30
30
  defaultValidationOptions,
31
- isValidator,
32
- makeValidatorFactory,
33
- restValidator,
34
- schemaValidator
31
+ makeValidatorFactory
35
32
  };
36
33
  //# sourceMappingURL=types.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/types.ts"],
4
- "mappings": ";AAKO,IAAM,cAAc,OAAO,IAAI,oBAAoB;AAGnD,IAAM,gBAAgB,OAAO,IAAI,sBAAsB;AAGvD,IAAM,kBAAkB,OAAO,IAAI,wBAAwB;AAG3D,IAAM,sBAAsB,OAAO,IAAI,4BAA4B;AAqBnE,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAwBO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,WAAW,GAAG;AAAA,EACjB,CAAC;AACH;AAMO,IAAe,oBAAf,MACkD;AAAA,EACvD,CAAC,WAAW,IAAU;AAAA,EAEtB,WAAqB;AAAA;AAAA,EAMrB,EAAG,OAAO,QAAQ,IAAsC;AACtD,UAAM,EAAE,CAAC,aAAa,GAAG,KAAK;AAAA,EAChC;AACF;",
4
+ "mappings": ";AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAwBO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,MACkD;AAAA,EACvD,CAAC,OAAO,eAAe,IAAI;AAAA,EAE3B,WAAqB;AAAA;AAAA,EAMrB,EAAG,OAAO,QAAQ,IAAsC;AACtD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,KAAK;AAAA,EAC7C;AACF;",
5
5
  "names": []
6
6
  }
@@ -23,23 +23,21 @@ __export(utilities_exports, {
23
23
  getValidator: () => getValidator
24
24
  });
25
25
  module.exports = __toCommonJS(utilities_exports);
26
- var import_types = require("./types.cjs");
27
26
  var import_constant = require("./validators/constant.cjs");
28
27
  var import_object = require("./validators/object.cjs");
29
28
  var import_tuple = require("./validators/tuple.cjs");
30
29
  function getValidator(validation) {
31
30
  if (validation === null)
32
31
  return import_constant.nullValidator;
33
- if (validation[import_types.isValidator] === true)
34
- return validation;
32
+ if (validation[Symbol.justusValidator]) {
33
+ return validation[Symbol.justusValidator];
34
+ }
35
35
  switch (typeof validation) {
36
36
  case "boolean":
37
37
  case "string":
38
38
  case "number":
39
39
  return new import_constant.ConstantValidator(validation);
40
40
  case "object":
41
- if (import_types.schemaValidator in validation)
42
- return validation[import_types.schemaValidator];
43
41
  if (Array.isArray(validation))
44
42
  return new import_tuple.TupleValidator(validation);
45
43
  return new import_object.ObjectValidator(validation);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/utilities.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,sBAAiD;AAEjD,oBAAgC;AAEhC,mBAA+B;AAaxB,SAAS,aAAa,YAAmC;AAE9D,MAAI,eAAe;AAAM,WAAO;AAGhC,MAAW,WAAY,wBAAW,MAAM;AAAM,WAAO;AAGrD,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,kCAAkB,UAAU;AAAA,IAGzC,KAAK;AAEH,UAAI,gCAAmB;AAAY,eAAc,WAAY,4BAAe;AAE5E,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,IAAI,4BAAe,UAAU;AAEnE,aAAO,IAAI,8BAAgB,UAAoB;AAAA,IAGjD;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,aAAa;AAAA,EACxE;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAiD;AAEjD,oBAAgC;AAEhC,mBAA+B;AAaxB,SAAS,aAAa,YAAmC;AAE9D,MAAI,eAAe;AAAM,WAAO;AAGhC,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,kCAAkB,UAAU;AAAA,IAGzC,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,IAAI,4BAAe,UAAU;AAEnE,aAAO,IAAI,8BAAgB,UAAoB;AAAA,IAGjD;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,aAAa;AAAA,EACxE;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,21 +1,19 @@
1
1
  // utilities.ts
2
- import { isValidator, schemaValidator } from "./types.mjs";
3
2
  import { ConstantValidator, nullValidator } from "./validators/constant.mjs";
4
3
  import { ObjectValidator } from "./validators/object.mjs";
5
4
  import { TupleValidator } from "./validators/tuple.mjs";
6
5
  function getValidator(validation) {
7
6
  if (validation === null)
8
7
  return nullValidator;
9
- if (validation[isValidator] === true)
10
- return validation;
8
+ if (validation[Symbol.justusValidator]) {
9
+ return validation[Symbol.justusValidator];
10
+ }
11
11
  switch (typeof validation) {
12
12
  case "boolean":
13
13
  case "string":
14
14
  case "number":
15
15
  return new ConstantValidator(validation);
16
16
  case "object":
17
- if (schemaValidator in validation)
18
- return validation[schemaValidator];
19
17
  if (Array.isArray(validation))
20
18
  return new TupleValidator(validation);
21
19
  return new ObjectValidator(validation);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/utilities.ts"],
4
- "mappings": ";AAAA,SAAS,aAAa,uBAAuB;AAC7C,SAAS,mBAAmB,qBAAqB;AAEjD,SAAS,uBAAuB;AAEhC,SAAS,sBAAsB;AAaxB,SAAS,aAAa,YAAmC;AAE9D,MAAI,eAAe;AAAM,WAAO;AAGhC,MAAW,WAAY,WAAW,MAAM;AAAM,WAAO;AAGrD,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,kBAAkB,UAAU;AAAA,IAGzC,KAAK;AAEH,UAAI,mBAAmB;AAAY,eAAc,WAAY,eAAe;AAE5E,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,IAAI,eAAe,UAAU;AAEnE,aAAO,IAAI,gBAAgB,UAAoB;AAAA,IAGjD;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,aAAa;AAAA,EACxE;AACF;",
4
+ "mappings": ";AAAA,SAAS,mBAAmB,qBAAqB;AAEjD,SAAS,uBAAuB;AAEhC,SAAS,sBAAsB;AAaxB,SAAS,aAAa,YAAmC;AAE9D,MAAI,eAAe;AAAM,WAAO;AAGhC,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,kBAAkB,UAAU;AAAA,IAGzC,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,IAAI,eAAe,UAAU;AAEnE,aAAO,IAAI,gBAAgB,UAAoB;AAAA,IAGjD;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,aAAa;AAAA,EACxE;AACF;",
5
5
  "names": []
6
6
  }
@@ -43,9 +43,9 @@ var ObjectValidator = class extends import_types.AbstractValidator {
43
43
  additionalProperties;
44
44
  constructor(schema) {
45
45
  super();
46
- const { [import_types.additionalValidator]: additional, ...properties } = schema;
46
+ const { [Symbol.justusAdditionalValidator]: additional, ...properties } = schema;
47
47
  if (additional)
48
- this.additionalProperties = (0, import_utilities.getValidator)(additional);
48
+ this.additionalProperties = additional;
49
49
  for (const key of Object.keys(properties)) {
50
50
  this.validators.set(key, (0, import_utilities.getValidator)(properties[key]));
51
51
  }
@@ -108,10 +108,10 @@ var ObjectValidator = class extends import_types.AbstractValidator {
108
108
  function _object(schema) {
109
109
  const validator = new ObjectValidator(schema);
110
110
  function* iterator() {
111
- yield { [import_types.restValidator]: validator };
111
+ yield { [Symbol.justusRestValidator]: validator };
112
112
  }
113
113
  return Object.defineProperties(schema, {
114
- [import_types.schemaValidator]: { value: validator, enumerable: false },
114
+ [Symbol.justusValidator]: { value: validator, enumerable: false },
115
115
  [Symbol.iterator]: { value: iterator, enumerable: false }
116
116
  });
117
117
  }
@@ -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": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyD;AAEzD,oBAA0C;AAC1C,mBAIO;AACP,uBAA6B;AAYtB,IAAM,qBAAN,cAAiC,+BAAuC;AAAA,EAC7E,SAAS,OAAqC;AAC5C,wCAAiB,OAAO,SAAS,UAAU,0BAA0B;AACrE,wCAAiB,UAAU,MAAM,iBAAiB;AAClD,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAgD,+BAAkC;AAAA,EAC9E;AAAA,EAET,aAAa,oBAAI,IAAuB;AAAA,EACxC;AAAA,EAEA,YAAY,QAAW;AACrB,UAAM;AACN,UAAM,EAAE,CAAC,OAAO,yBAAyB,GAAG,YAAY,GAAG,WAAW,IAAI;AAE1E,QAAI;AAAY,WAAK,uBAAuB;AAE5C,eAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACzC,WAAK,WAAW,IAAI,SAAK,+BAAa,WAAW,GAAG,CAAC,CAAC;AAAA,IACxD;AAEA,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAAS,OAAgB,UAA6B,uCAA0C;AAC9F,wCAAiB,OAAO,UAAU,UAAU,0BAA0B;AACtE,wCAAiB,UAAU,MAAM,iBAAiB;AAElD,UAAM,EAAE,2BAA2B,mBAAmB,IAAI;AAE1D,UAAM,SAA0D;AAChE,UAAM,UAAU,IAAI,qCAAuB;AAC3C,UAAM,QAA6B,CAAC;AAEpC,eAAW,CAAE,KAAK,SAAU,KAAK,KAAK,WAAW,QAAQ,GAAG;AAC1D,YAAM,WAAW,CAAC,CAAE,UAAU;AAC9B,YAAM,WAAW,OAAO,GAAG;AAG3B,UAAI,sBAAsB,YAAa,aAAa,MAAO;AACzD;AAAA,MACF;AAMA,UAAI,aAAa,QAAW;AAC1B,YAAI;AAEF,gBAAM,YAAY,UAAU,SAAS,UAAU,OAAO;AAEtD,cAAI,EAAG,YAAa,aAAa;AAAa,kBAAM,GAAG,IAAI;AAAA,QAC7D,SAAS,OAAP;AACA,cAAI;AAAU;AACd,kBAAQ,OAAO,6BAA6B,GAAG;AAAA,QAEjD;AAEA;AAAA,MACF;AAGA,UAAI;AACF,cAAM,YAAY,UAAU,SAAS,UAAU,OAAO;AAEtD,YAAI,EAAG,YAAa,aAAa;AAAa,gBAAM,GAAG,IAAI;AAAA,MAC7D,SAAS,OAAP;AACA,gBAAQ,OAAO,OAAO,GAAG;AAAA,MAC3B;AAAA,IACF;AAGA,UAAM,iBAAiB,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC;AAChF,UAAM,aAAa,KAAK;AAExB,QAAI,YAAY;AACd,qBAAe,QAAQ,CAAC,QAAQ;AAC9B,YAAI,OAAO,GAAG,MAAM;AAAW;AAC/B,YAAI;AACF,gBAAM,GAAG,IAAI,WAAW,SAAS,OAAO,GAAG,GAAG,OAAO;AAAA,QACvD,SAAS,OAAP;AACA,kBAAQ,OAAO,OAAO,GAAG;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH,WAAW,CAAE,2BAA2B;AACtC,qBAAe,QAAQ,CAAC,QAAQ;AAC9B,YAAI,OAAO,GAAG,MAAM;AAAW,kBAAQ,OAAO,oBAAoB,GAAG;AAAA,MACvE,CAAC;AAAA,IACH;AAEA,WAAO,QAAQ,OAAO,KAAuB;AAAA,EAC/C;AACF;AAEA,SAAS,QAA0B,QAEjC;AACA,QAAM,YAAY,IAAI,gBAAgB,MAAM;AAC5C,YAAU,WAA0C;AAClD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,UAAU;AAAA,EAClD;AAEA,SAAO,OAAO,iBAAiB,QAAQ;AAAA,IACrC,CAAC,OAAO,eAAe,GAAG,EAAE,OAAO,WAAW,YAAY,MAAM;AAAA,IAChE,CAAC,OAAO,QAAQ,GAAG,EAAE,OAAO,UAAU,YAAY,MAAM;AAAA,EAC1D,CAAC;AACH;AAGO,IAAM,aAAS,mCAAqB,IAAI,mBAAmB,GAAG,OAAO;AAGrE,SAAS,SAA+B,YAA8D;AAC3G,SAAO,IAAI,gBAAgB,EAAE,OAAG,yCAA0B,UAAU,EAAE,CAAC;AACzE;",
5
5
  "names": []
6
6
  }
@@ -3,11 +3,8 @@ import { assertValidation, ValidationErrorBuilder } from "../errors.mjs";
3
3
  import { allowAdditionalProperties } from "../schema.mjs";
4
4
  import {
5
5
  AbstractValidator,
6
- additionalValidator,
7
6
  defaultValidationOptions,
8
- makeValidatorFactory,
9
- restValidator,
10
- schemaValidator
7
+ makeValidatorFactory
11
8
  } from "../types.mjs";
12
9
  import { getValidator } from "../utilities.mjs";
13
10
  var AnyObjectValidator = class extends AbstractValidator {
@@ -23,9 +20,9 @@ var ObjectValidator = class extends AbstractValidator {
23
20
  additionalProperties;
24
21
  constructor(schema) {
25
22
  super();
26
- const { [additionalValidator]: additional, ...properties } = schema;
23
+ const { [Symbol.justusAdditionalValidator]: additional, ...properties } = schema;
27
24
  if (additional)
28
- this.additionalProperties = getValidator(additional);
25
+ this.additionalProperties = additional;
29
26
  for (const key of Object.keys(properties)) {
30
27
  this.validators.set(key, getValidator(properties[key]));
31
28
  }
@@ -88,10 +85,10 @@ var ObjectValidator = class extends AbstractValidator {
88
85
  function _object(schema) {
89
86
  const validator = new ObjectValidator(schema);
90
87
  function* iterator() {
91
- yield { [restValidator]: validator };
88
+ yield { [Symbol.justusRestValidator]: validator };
92
89
  }
93
90
  return Object.defineProperties(schema, {
94
- [schemaValidator]: { value: validator, enumerable: false },
91
+ [Symbol.justusValidator]: { value: validator, enumerable: false },
95
92
  [Symbol.iterator]: { value: iterator, enumerable: false }
96
93
  });
97
94
  }
@@ -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
  }
@@ -37,8 +37,8 @@ var TupleValidator = class extends import_types.AbstractValidator {
37
37
  for (const item of tuple2) {
38
38
  if (item === null) {
39
39
  members.push({ single: true, validator: import_constant.nullValidator });
40
- } else if (typeof item === "object" && import_types.restValidator in item) {
41
- members.push({ single: false, validator: item[import_types.restValidator] });
40
+ } else if (typeof item === "object" && Symbol.justusRestValidator in item) {
41
+ members.push({ single: false, validator: item[Symbol.justusRestValidator] });
42
42
  } else {
43
43
  members.push({ single: true, validator: (0, import_utilities.getValidator)(item) });
44
44
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/tuple.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAkD;AAClD,mBAAiD;AAEjD,uBAA6B;AAC7B,sBAA8B;AAOvB,IAAM,iBAAN,cAA8C,+BAAiC;AAAA,EAC3E;AAAA,EACA;AAAA,EAET,YAAYA,QAAU;AACpB,UAAM;AAEN,UAAM,UAAyB,CAAC;AAChC,eAAW,QAAQA,QAAO;AACxB,UAAI,SAAS,MAAM;AACjB,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,8BAAc,CAAC;AAAA,MACzD,WAAY,OAAO,SAAS,YAAc,8BAAiB,MAAO;AAChE,gBAAQ,KAAK,EAAE,QAAQ,OAAO,WAAiB,KAAM,0BAAa,EAAE,CAAC;AAAA,MACvE,OAAO;AACL,gBAAQ,KAAK,EAAE,QAAQ,MAAM,eAAW,+BAAa,IAAI,EAAE,CAAC;AAAA,MAC9D;AAAA,IACF;AAEA,SAAK,UAAU;AACf,SAAK,QAAQA;AAAA,EACf;AAAA,EAEA,SAAS,OAAgB,SAA4C;AACnE,wCAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAGhE,QAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,YAAM,OAAO,MAAM;AACnB,0CAAiB,SAAS,GAAG,SAAS,eAAe,SAAS,IAAI,KAAK,4BAA4B;AACnG,aAAO;AAAA,IACT;AAGA,UAAM,QAAQ,IAAI,MAAM,MAAM,MAAM;AACpC,QAAI,SAAS;AACb,QAAI,WAAW;AACf,QAAI,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,MAAM;AAE/C,WAAQ,SAAS,KAAK,QAAQ,UAAY,WAAW,MAAM,QAAS;AAClE,UAAI;AACF,cAAM,QAAQ,IAAI,UAAU,SAAS,MAAM,QAAQ,GAAG,OAAO;AAC7D,YAAI;AAAQ,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AACjE;AAAA,MACF,SAAS,OAAP;AACA,YAAI;AAAQ,gBAAM,IAAI,8BAAgB,OAAO,CAAE,QAAS,CAAC;AAAA;AACpD,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AAAA,MAC5D;AAAA,IACF;AAEA,WAAQ,SAAS,KAAK,QAAQ,UAAY,KAAK,QAAQ,MAAM,EAAE,WAAW,OAAQ;AAChF;AAAA,IACF;AAEA,UAAM,UAAU,KAAK,QAAQ,SAAS;AACtC,QAAK,YAAY,KAAM,QAAQ;AAC7B,YAAM,IAAI,8BAAgB,oCAAoC;AAAA,IAChE,WAAW,UAAU,GAAG;AACtB,YAAM,IAAI,8BAAgB,iBAAiB,6BAA6B;AAAA,IAC1E;AAEA,UAAM,QAAQ,MAAM,SAAS;AAC7B,wCAAiB,UAAU,GAAG,SAAS,sBAAsB,UAAU,IAAI,KAAK,cAAc;AAE9F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,MAAuBA,QAAoC;AACzE,SAAO,IAAI,eAAeA,MAAK;AACjC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAkD;AAClD,mBAAkC;AAElC,uBAA6B;AAC7B,sBAA8B;AAOvB,IAAM,iBAAN,cAA8C,+BAAiC;AAAA,EAC3E;AAAA,EACA;AAAA,EAET,YAAYA,QAAU;AACpB,UAAM;AAEN,UAAM,UAAyB,CAAC;AAChC,eAAW,QAAQA,QAAO;AACxB,UAAI,SAAS,MAAM;AACjB,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,8BAAc,CAAC;AAAA,MACzD,WAAY,OAAO,SAAS,YAAc,OAAO,uBAAuB,MAAO;AAC7E,gBAAQ,KAAK,EAAE,QAAQ,OAAO,WAAiB,KAAM,OAAO,mBAAmB,EAAE,CAAC;AAAA,MACpF,OAAO;AACL,gBAAQ,KAAK,EAAE,QAAQ,MAAM,eAAW,+BAAa,IAAI,EAAE,CAAC;AAAA,MAC9D;AAAA,IACF;AAEA,SAAK,UAAU;AACf,SAAK,QAAQA;AAAA,EACf;AAAA,EAEA,SAAS,OAAgB,SAA4C;AACnE,wCAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAGhE,QAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,YAAM,OAAO,MAAM;AACnB,0CAAiB,SAAS,GAAG,SAAS,eAAe,SAAS,IAAI,KAAK,4BAA4B;AACnG,aAAO;AAAA,IACT;AAGA,UAAM,QAAQ,IAAI,MAAM,MAAM,MAAM;AACpC,QAAI,SAAS;AACb,QAAI,WAAW;AACf,QAAI,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,MAAM;AAE/C,WAAQ,SAAS,KAAK,QAAQ,UAAY,WAAW,MAAM,QAAS;AAClE,UAAI;AACF,cAAM,QAAQ,IAAI,UAAU,SAAS,MAAM,QAAQ,GAAG,OAAO;AAC7D,YAAI;AAAQ,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AACjE;AAAA,MACF,SAAS,OAAP;AACA,YAAI;AAAQ,gBAAM,IAAI,8BAAgB,OAAO,CAAE,QAAS,CAAC;AAAA;AACpD,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AAAA,MAC5D;AAAA,IACF;AAEA,WAAQ,SAAS,KAAK,QAAQ,UAAY,KAAK,QAAQ,MAAM,EAAE,WAAW,OAAQ;AAChF;AAAA,IACF;AAEA,UAAM,UAAU,KAAK,QAAQ,SAAS;AACtC,QAAK,YAAY,KAAM,QAAQ;AAC7B,YAAM,IAAI,8BAAgB,oCAAoC;AAAA,IAChE,WAAW,UAAU,GAAG;AACtB,YAAM,IAAI,8BAAgB,iBAAiB,6BAA6B;AAAA,IAC1E;AAEA,UAAM,QAAQ,MAAM,SAAS;AAC7B,wCAAiB,UAAU,GAAG,SAAS,sBAAsB,UAAU,IAAI,KAAK,cAAc;AAE9F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,MAAuBA,QAAoC;AACzE,SAAO,IAAI,eAAeA,MAAK;AACjC;",
5
5
  "names": ["tuple"]
6
6
  }
@@ -1,6 +1,6 @@
1
1
  // validators/tuple.ts
2
2
  import { assertValidation, ValidationError } from "../errors.mjs";
3
- import { AbstractValidator, restValidator } from "../types.mjs";
3
+ import { AbstractValidator } from "../types.mjs";
4
4
  import { getValidator } from "../utilities.mjs";
5
5
  import { nullValidator } from "./constant.mjs";
6
6
  var TupleValidator = class extends AbstractValidator {
@@ -12,8 +12,8 @@ var TupleValidator = class extends AbstractValidator {
12
12
  for (const item of tuple2) {
13
13
  if (item === null) {
14
14
  members.push({ single: true, validator: nullValidator });
15
- } else if (typeof item === "object" && restValidator in item) {
16
- members.push({ single: false, validator: item[restValidator] });
15
+ } else if (typeof item === "object" && Symbol.justusRestValidator in item) {
16
+ members.push({ single: false, validator: item[Symbol.justusRestValidator] });
17
17
  } else {
18
18
  members.push({ single: true, validator: getValidator(item) });
19
19
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/tuple.ts"],
4
- "mappings": ";AAAA,SAAS,kBAAkB,uBAAuB;AAClD,SAAS,mBAAmB,qBAAqB;AAEjD,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAOvB,IAAM,iBAAN,cAA8C,kBAAiC;AAAA,EAC3E;AAAA,EACA;AAAA,EAET,YAAYA,QAAU;AACpB,UAAM;AAEN,UAAM,UAAyB,CAAC;AAChC,eAAW,QAAQA,QAAO;AACxB,UAAI,SAAS,MAAM;AACjB,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,cAAc,CAAC;AAAA,MACzD,WAAY,OAAO,SAAS,YAAc,iBAAiB,MAAO;AAChE,gBAAQ,KAAK,EAAE,QAAQ,OAAO,WAAiB,KAAM,aAAa,EAAE,CAAC;AAAA,MACvE,OAAO;AACL,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,aAAa,IAAI,EAAE,CAAC;AAAA,MAC9D;AAAA,IACF;AAEA,SAAK,UAAU;AACf,SAAK,QAAQA;AAAA,EACf;AAAA,EAEA,SAAS,OAAgB,SAA4C;AACnE,qBAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAGhE,QAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,YAAM,OAAO,MAAM;AACnB,uBAAiB,SAAS,GAAG,SAAS,eAAe,SAAS,IAAI,KAAK,4BAA4B;AACnG,aAAO;AAAA,IACT;AAGA,UAAM,QAAQ,IAAI,MAAM,MAAM,MAAM;AACpC,QAAI,SAAS;AACb,QAAI,WAAW;AACf,QAAI,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,MAAM;AAE/C,WAAQ,SAAS,KAAK,QAAQ,UAAY,WAAW,MAAM,QAAS;AAClE,UAAI;AACF,cAAM,QAAQ,IAAI,UAAU,SAAS,MAAM,QAAQ,GAAG,OAAO;AAC7D,YAAI;AAAQ,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AACjE;AAAA,MACF,SAAS,OAAP;AACA,YAAI;AAAQ,gBAAM,IAAI,gBAAgB,OAAO,CAAE,QAAS,CAAC;AAAA;AACpD,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AAAA,MAC5D;AAAA,IACF;AAEA,WAAQ,SAAS,KAAK,QAAQ,UAAY,KAAK,QAAQ,MAAM,EAAE,WAAW,OAAQ;AAChF;AAAA,IACF;AAEA,UAAM,UAAU,KAAK,QAAQ,SAAS;AACtC,QAAK,YAAY,KAAM,QAAQ;AAC7B,YAAM,IAAI,gBAAgB,oCAAoC;AAAA,IAChE,WAAW,UAAU,GAAG;AACtB,YAAM,IAAI,gBAAgB,iBAAiB,6BAA6B;AAAA,IAC1E;AAEA,UAAM,QAAQ,MAAM,SAAS;AAC7B,qBAAiB,UAAU,GAAG,SAAS,sBAAsB,UAAU,IAAI,KAAK,cAAc;AAE9F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,MAAuBA,QAAoC;AACzE,SAAO,IAAI,eAAeA,MAAK;AACjC;",
4
+ "mappings": ";AAAA,SAAS,kBAAkB,uBAAuB;AAClD,SAAS,yBAAyB;AAElC,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAOvB,IAAM,iBAAN,cAA8C,kBAAiC;AAAA,EAC3E;AAAA,EACA;AAAA,EAET,YAAYA,QAAU;AACpB,UAAM;AAEN,UAAM,UAAyB,CAAC;AAChC,eAAW,QAAQA,QAAO;AACxB,UAAI,SAAS,MAAM;AACjB,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,cAAc,CAAC;AAAA,MACzD,WAAY,OAAO,SAAS,YAAc,OAAO,uBAAuB,MAAO;AAC7E,gBAAQ,KAAK,EAAE,QAAQ,OAAO,WAAiB,KAAM,OAAO,mBAAmB,EAAE,CAAC;AAAA,MACpF,OAAO;AACL,gBAAQ,KAAK,EAAE,QAAQ,MAAM,WAAW,aAAa,IAAI,EAAE,CAAC;AAAA,MAC9D;AAAA,IACF;AAEA,SAAK,UAAU;AACf,SAAK,QAAQA;AAAA,EACf;AAAA,EAEA,SAAS,OAAgB,SAA4C;AACnE,qBAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAGhE,QAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,YAAM,OAAO,MAAM;AACnB,uBAAiB,SAAS,GAAG,SAAS,eAAe,SAAS,IAAI,KAAK,4BAA4B;AACnG,aAAO;AAAA,IACT;AAGA,UAAM,QAAQ,IAAI,MAAM,MAAM,MAAM;AACpC,QAAI,SAAS;AACb,QAAI,WAAW;AACf,QAAI,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,MAAM;AAE/C,WAAQ,SAAS,KAAK,QAAQ,UAAY,WAAW,MAAM,QAAS;AAClE,UAAI;AACF,cAAM,QAAQ,IAAI,UAAU,SAAS,MAAM,QAAQ,GAAG,OAAO;AAC7D,YAAI;AAAQ,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AACjE;AAAA,MACF,SAAS,OAAP;AACA,YAAI;AAAQ,gBAAM,IAAI,gBAAgB,OAAO,CAAE,QAAS,CAAC;AAAA;AACpD,WAAC,EAAE,QAAQ,UAAU,IAAI,KAAK,QAAQ,EAAG,MAAM,KAAK,CAAC;AAAA,MAC5D;AAAA,IACF;AAEA,WAAQ,SAAS,KAAK,QAAQ,UAAY,KAAK,QAAQ,MAAM,EAAE,WAAW,OAAQ;AAChF;AAAA,IACF;AAEA,UAAM,UAAU,KAAK,QAAQ,SAAS;AACtC,QAAK,YAAY,KAAM,QAAQ;AAC7B,YAAM,IAAI,gBAAgB,oCAAoC;AAAA,IAChE,WAAW,UAAU,GAAG;AACtB,YAAM,IAAI,gBAAgB,iBAAiB,6BAA6B;AAAA,IAC1E;AAEA,UAAM,QAAQ,MAAM,SAAS;AAC7B,qBAAiB,UAAU,GAAG,SAAS,sBAAsB,UAAU,IAAI,KAAK,cAAc;AAE9F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,MAAuBA,QAAoC;AACzE,SAAO,IAAI,eAAeA,MAAK;AACjC;",
5
5
  "names": ["tuple"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "justus",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "A JavaScript validation library, with types!",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -38,8 +38,8 @@
38
38
  "author": "Juit Developers <developers@juit.com>",
39
39
  "license": "MIT",
40
40
  "devDependencies": {
41
- "@plugjs/build": "^0.2.2",
42
- "@plugjs/tsd": "^0.2.1",
41
+ "@plugjs/build": "^0.2.4",
42
+ "@plugjs/tsd": "^0.2.3",
43
43
  "@types/chai": "^4.3.4",
44
44
  "chai": "^4.3.7",
45
45
  "tsd": "^0.25.0",
@@ -1,34 +1,25 @@
1
- import ts, { isUnionTypeNode } from 'typescript'
1
+ import ts from 'typescript'
2
2
 
3
3
  import {
4
4
  AllOfValidator,
5
- any,
6
5
  AnyArrayValidator,
7
6
  AnyNumberValidator,
8
7
  AnyObjectValidator,
9
8
  AnyStringValidator,
10
9
  AnyValidator,
11
- array,
12
10
  ArrayValidator,
13
11
  assertSchema,
14
- boolean,
15
12
  BooleanValidator,
16
13
  ConstantValidator,
17
- date,
18
14
  DateValidator,
19
15
  getValidator,
20
- never,
21
16
  NeverValidator,
22
- number,
23
17
  NumberValidator,
24
- object,
25
18
  ObjectValidator,
26
19
  OneOfValidator,
27
20
  OptionalValidator,
28
- string,
29
21
  StringValidator,
30
22
  TupleValidator,
31
- url,
32
23
  URLValidator,
33
24
  } from './index'
34
25
 
@@ -132,7 +123,7 @@ function generateTypeNode(
132
123
  if (type === neverType) return undefinedType
133
124
 
134
125
  // If the type is already a union type, we simply add our "undefined"
135
- if (isUnionTypeNode(type)) {
126
+ if (ts.isUnionTypeNode(type)) {
136
127
  return ts.factory.createUnionTypeNode([ ...type.types, undefinedType ])
137
128
  }
138
129
 
@@ -176,16 +167,6 @@ registerTypeGenerator(NeverValidator, () => neverType)
176
167
  registerTypeGenerator(DateValidator, () => ts.factory.createTypeReferenceNode('Date'))
177
168
  registerTypeGenerator(URLValidator, () => ts.factory.createTypeReferenceNode('URL'))
178
169
 
179
- registerTypeGenerator(any, () => anyType)
180
- registerTypeGenerator(array, () => anyArrayType)
181
- registerTypeGenerator(number, () => numberType)
182
- registerTypeGenerator(object, () => recordType)
183
- registerTypeGenerator(string, () => stringType)
184
- registerTypeGenerator(boolean, () => booleanType)
185
- registerTypeGenerator(never, () => neverType)
186
- registerTypeGenerator(date, () => ts.factory.createTypeReferenceNode('Date'))
187
- registerTypeGenerator(url, () => ts.factory.createTypeReferenceNode('URL'))
188
-
189
170
  /* ========================================================================== */
190
171
 
191
172
  // Complex generator functions...
package/src/schema.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { additionalValidator } from './types'
1
+ // import { additionalValidator } from './types'
2
2
  // eslint-disable-next-line import/no-cycle
3
3
  import { getValidator } from './utilities'
4
4
  import { any } from './validators/any'
@@ -20,10 +20,10 @@ export function _allowAdditionalProperties(allow: false): AdditionalProperties<f
20
20
  export function _allowAdditionalProperties<V extends Validation>(validation: V): AdditionalProperties<Validator<InferValidation<V>>>
21
21
 
22
22
  export function _allowAdditionalProperties(options?: Validation | boolean): AdditionalProperties<Validator | false> {
23
- if (options === false) return { [additionalValidator]: false }
24
- if (options === true) return { [additionalValidator]: any }
23
+ if (options === false) return { [Symbol.justusAdditionalValidator]: false }
24
+ if (options === true) return { [Symbol.justusAdditionalValidator]: any }
25
25
 
26
- return { [additionalValidator]: options ? getValidator(options) : any }
26
+ return { [Symbol.justusAdditionalValidator]: options ? getValidator(options) : any }
27
27
  }
28
28
 
29
29
  /**
@@ -40,4 +40,4 @@ export const allowAdditionalProperties = _allowAdditionalProperties as
40
40
 
41
41
  // Remember to inject our `any` validator as the default for when
42
42
  // `allowAdditionalProperties` is _not_ used as a function
43
- allowAdditionalProperties[additionalValidator] = any
43
+ allowAdditionalProperties[Symbol.justusAdditionalValidator] = any
package/src/types.ts CHANGED
@@ -2,17 +2,23 @@
2
2
  * SYMBOLS IDENTIFYING SPECIAL FUNCTIONALITIES *
3
3
  * ========================================================================== */
4
4
 
5
- /** A symbol indicating that an instance is (in fact) a `Validator`. */
6
- export const isValidator = Symbol.for('justus.isValidator')
7
-
8
- /** A symbol indicating the `Validator` for a `Tuple`'s rest parameter. */
9
- export const restValidator = Symbol.for('justus.restValidator')
10
-
11
- /** A symbol indicating the `Validator` for a `Schema`. */
12
- export const schemaValidator = Symbol.for('justus.schemaValidator')
5
+ declare global {
6
+ interface SymbolConstructor {
7
+ /** A symbol associated with a `Validator` instance. */
8
+ readonly justusValidator: unique symbol
9
+ /** A symbol indicating the `Validator` for a `Tuple`'s rest parameter. */
10
+ readonly justusRestValidator: unique symbol
11
+ /** A symbol indicating the `Validator` for a `Schema`'s additional properties. */
12
+ readonly justusAdditionalValidator: unique symbol
13
+ }
14
+ }
13
15
 
14
- /** A symbol indicating the `Validator` for a `Schema`'s additional properties. */
15
- export const additionalValidator = Symbol.for('justus.additionalValidator')
16
+ /* Inject our symbols as globals */
17
+ Object.defineProperties(Symbol, {
18
+ justusValidator: { value: Symbol.for('justus.Validator') },
19
+ justusRestValidator: { value: Symbol.for('justus.restValidator') },
20
+ justusAdditionalValidator: { value: Symbol.for('justus.additionalValidator') },
21
+ })
16
22
 
17
23
  /* ========================================================================== *
18
24
  * BASIC VALIDATION TYPES *
@@ -44,7 +50,7 @@ export const defaultValidationOptions: Readonly<Required<ValidationOptions>> = {
44
50
  * (possibly) converting it the required type `T`.
45
51
  */
46
52
  export interface Validator<T = any> extends Iterable<TupleRestParameter<T>> {
47
- [isValidator]: true
53
+ [Symbol.justusValidator]: this
48
54
 
49
55
  optional?: boolean
50
56
 
@@ -69,7 +75,7 @@ export function makeValidatorFactory<
69
75
  optional: validator.optional,
70
76
  validate: validator.validate.bind(validator),
71
77
  [Symbol.iterator]: validator[Symbol.iterator].bind(validator),
72
- [isValidator]: true,
78
+ [Symbol.justusValidator]: validator,
73
79
  }) as F & V
74
80
  }
75
81
 
@@ -79,7 +85,7 @@ export function makeValidatorFactory<
79
85
  */
80
86
  export abstract class AbstractValidator<T = any>
81
87
  implements Validator<T>, Iterable<TupleRestParameter<T>> {
82
- [isValidator]: true = true
88
+ [Symbol.justusValidator] = this
83
89
 
84
90
  optional?: boolean = undefined
85
91
 
@@ -88,7 +94,7 @@ implements Validator<T>, Iterable<TupleRestParameter<T>> {
88
94
 
89
95
  /** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
90
96
  * [Symbol.iterator](): Generator<TupleRestParameter<T>> {
91
- yield { [restValidator]: this }
97
+ yield { [Symbol.justusRestValidator]: this }
92
98
  }
93
99
  }
94
100
 
@@ -159,7 +165,7 @@ export type Tuple = readonly (Validation | TupleRestParameter)[]
159
165
  * ```
160
166
  */
161
167
  export type TupleRestParameter<T = any> = {
162
- [restValidator] : Validator<T>
168
+ [Symbol.justusRestValidator] : Validator<T>
163
169
  }
164
170
 
165
171
  /**
@@ -192,7 +198,7 @@ export type InferTuple<T> =
192
198
  */
193
199
  export interface Schema {
194
200
  [ key: string ] : Validation
195
- [ additionalValidator ]?: Validator | false
201
+ [ Symbol.justusAdditionalValidator ]?: Validator | false
196
202
  }
197
203
 
198
204
  /**
@@ -200,7 +206,7 @@ export interface Schema {
200
206
  * properties, and the `Validator` used to validate them.
201
207
  */
202
208
  export interface AdditionalProperties<V extends Validator | false> {
203
- [ additionalValidator ]: V
209
+ [ Symbol.justusAdditionalValidator ]: V
204
210
  }
205
211
 
206
212
  /* ========================================================================== *
package/src/utilities.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { isValidator, schemaValidator } from './types'
2
1
  import { ConstantValidator, nullValidator } from './validators/constant'
3
2
  // eslint-disable-next-line import/no-cycle
4
3
  import { ObjectValidator } from './validators/object'
@@ -20,8 +19,10 @@ export function getValidator(validation: Validation): Validator {
20
19
  // Null is a constant
21
20
  if (validation === null) return nullValidator
22
21
 
23
- // Validator instance (either object or function)
24
- if ((<any> validation)[isValidator] === true) return validation as Validator
22
+ // Anything with a validor associated with
23
+ if ((<any> validation)[Symbol.justusValidator]) {
24
+ return (<any> validation)[Symbol.justusValidator] as Validator
25
+ }
25
26
 
26
27
  // Other types
27
28
  switch (typeof validation) {
@@ -33,8 +34,6 @@ export function getValidator(validation: Validation): Validator {
33
34
 
34
35
  // other objects...
35
36
  case 'object':
36
- // pre-compiled schema with validator
37
- if (schemaValidator in validation) return (<any> validation)[schemaValidator]
38
37
  // arrays are tuples
39
38
  if (Array.isArray(validation)) return new TupleValidator(validation)
40
39
  // any other object is a schema
@@ -3,11 +3,8 @@ import { assertValidation, ValidationErrorBuilder } from '../errors'
3
3
  import { allowAdditionalProperties } from '../schema'
4
4
  import {
5
5
  AbstractValidator,
6
- additionalValidator,
7
6
  defaultValidationOptions,
8
7
  makeValidatorFactory,
9
- restValidator,
10
- schemaValidator,
11
8
  } from '../types'
12
9
  import { getValidator } from '../utilities'
13
10
 
@@ -38,9 +35,9 @@ export class ObjectValidator<S extends Schema> extends AbstractValidator<InferSc
38
35
 
39
36
  constructor(schema: S) {
40
37
  super()
41
- const { [additionalValidator]: additional, ...properties } = schema
38
+ const { [Symbol.justusAdditionalValidator]: additional, ...properties } = schema
42
39
 
43
- if (additional) this.additionalProperties = getValidator(additional)
40
+ if (additional) this.additionalProperties = additional
44
41
 
45
42
  for (const key of Object.keys(properties)) {
46
43
  this.validators.set(key, getValidator(properties[key]))
@@ -125,11 +122,11 @@ function _object<S extends Schema>(schema: S): S & {
125
122
  } {
126
123
  const validator = new ObjectValidator(schema)
127
124
  function* iterator(): Generator<TupleRestParameter> {
128
- yield { [restValidator]: validator }
125
+ yield { [Symbol.justusRestValidator]: validator }
129
126
  }
130
127
 
131
128
  return Object.defineProperties(schema, {
132
- [schemaValidator]: { value: validator, enumerable: false },
129
+ [Symbol.justusValidator]: { value: validator, enumerable: false },
133
130
  [Symbol.iterator]: { value: iterator, enumerable: false },
134
131
  }) as any
135
132
  }
@@ -1,5 +1,5 @@
1
1
  import { assertValidation, ValidationError } from '../errors'
2
- import { AbstractValidator, restValidator } from '../types'
2
+ import { AbstractValidator } from '../types'
3
3
  // eslint-disable-next-line import/no-cycle
4
4
  import { getValidator } from '../utilities'
5
5
  import { nullValidator } from './constant'
@@ -20,8 +20,8 @@ export class TupleValidator<T extends Tuple> extends AbstractValidator<InferTupl
20
20
  for (const item of tuple) {
21
21
  if (item === null) { // god knows why typeof null === "object"
22
22
  members.push({ single: true, validator: nullValidator })
23
- } else if ((typeof item === 'object') && (restValidator in item)) {
24
- members.push({ single: false, validator: (<any>item)[restValidator] })
23
+ } else if ((typeof item === 'object') && (Symbol.justusRestValidator in item)) {
24
+ members.push({ single: false, validator: (<any>item)[Symbol.justusRestValidator] })
25
25
  } else {
26
26
  members.push({ single: true, validator: getValidator(item) })
27
27
  }