@decaf-ts/decorator-validation 1.21.0 → 1.22.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.
@@ -5,6 +5,7 @@ exports.isLessThan = isLessThan;
5
5
  exports.isGreaterThan = isGreaterThan;
6
6
  exports.checkType = checkType;
7
7
  exports.checkTypes = checkTypes;
8
+ exports.matchesAcceptedType = matchesAcceptedType;
8
9
  exports.evaluateDesignTypes = evaluateDesignTypes;
9
10
  exports.valueLength = valueLength;
10
11
  const index_js_1 = require("./../../constants/index.cjs");
@@ -207,13 +208,16 @@ function isGreaterThan(a, b) {
207
208
  function checkType(value, acceptedType) {
208
209
  if (typeof value === acceptedType.toLowerCase())
209
210
  return true;
211
+ if (value === null)
212
+ return false;
210
213
  if (typeof value === "undefined")
211
214
  return false;
212
215
  if (typeof value !== "object")
213
216
  return false;
214
- return (value.constructor &&
217
+ return value instanceof Object &&
218
+ !!value.constructor &&
215
219
  value.constructor.name.toLowerCase() ===
216
- acceptedType.toLowerCase());
220
+ acceptedType.toLowerCase();
217
221
  }
218
222
  /**
219
223
  * @description Checks if a value matches any of the specified type names
@@ -225,6 +229,42 @@ function checkType(value, acceptedType) {
225
229
  function checkTypes(value, acceptedTypes) {
226
230
  return !acceptedTypes.every((t) => !checkType(value, t));
227
231
  }
232
+ function normalizeAcceptedType(acceptedType) {
233
+ if (typeof acceptedType === "function" && !acceptedType.name) {
234
+ return acceptedType();
235
+ }
236
+ return acceptedType;
237
+ }
238
+ function matchesAcceptedType(value, acceptedType) {
239
+ const normalizedType = normalizeAcceptedType(acceptedType);
240
+ if (typeof normalizedType === "string")
241
+ return checkType(value, normalizedType);
242
+ if (typeof normalizedType !== "function")
243
+ return false;
244
+ switch (normalizedType.name) {
245
+ case "String":
246
+ return typeof value === "string";
247
+ case "Number":
248
+ return typeof value === "number";
249
+ case "Boolean":
250
+ return typeof value === "boolean";
251
+ case "BigInt":
252
+ return typeof value === "bigint";
253
+ case "Symbol":
254
+ return typeof value === "symbol";
255
+ case "Function":
256
+ return typeof value === "function";
257
+ case "Array":
258
+ return Array.isArray(value);
259
+ case "Date":
260
+ return value instanceof Date;
261
+ case "Object":
262
+ return typeof value === "object";
263
+ default:
264
+ break;
265
+ }
266
+ return value instanceof normalizedType;
267
+ }
228
268
  /**
229
269
  * @description Evaluates if a value matches the specified type metadata
230
270
  * @summary Compares a value against type metadata to determine if they match
@@ -233,20 +273,8 @@ function checkTypes(value, acceptedTypes) {
233
273
  * @return {boolean} Returns true if the value matches the type metadata, false otherwise
234
274
  */
235
275
  function evaluateDesignTypes(value, types) {
236
- switch (typeof types) {
237
- case "string":
238
- return checkType(value, types);
239
- case "object":
240
- if (Array.isArray(types))
241
- return checkTypes(value, types);
242
- return true;
243
- case "function":
244
- if (types.name && types.name !== "Object")
245
- return checkType(value, types.name);
246
- return true;
247
- default:
248
- return true;
249
- }
276
+ const expectedTypes = Array.isArray(types) ? types : [types];
277
+ return expectedTypes.some((type) => matchesAcceptedType(value, type));
250
278
  }
251
279
  /**
252
280
  * @description Returns the length of a value
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -6,6 +6,7 @@
6
6
  * implementing type-safe, declarative validation in TypeScript applications.
7
7
  */
8
8
  import { Metadata } from "@decaf-ts/decoration";
9
+ import "./validation/index.js";
9
10
  export * from "./overrides/index.js";
10
11
  export * from "./constants/index.js";
11
12
  export * from "./types/index.js";
@@ -18,7 +19,21 @@ export * from "./model/index.js";
18
19
  * @const VERSION
19
20
  * @memberOf module:decorator-validation
20
21
  */
21
- export const VERSION = "1.20.0";
22
+ export const VERSION = "1.21.1";
23
+ /**
24
+ * @description Represents the current commit hash of the module build.
25
+ * @summary Stores the current git commit hash for the package. The build replaces
26
+ * the placeholder with the actual commit hash at publish time.
27
+ * @const COMMIT
28
+ */
29
+ export const COMMIT = "94e521b";
30
+ /**
31
+ * @description Represents the full version string of the module.
32
+ * @summary Stores the semver version and commit hash for the package.
33
+ * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
34
+ * @const FULL_VERSION
35
+ */
36
+ export const FULL_VERSION = "1.21.1-94e521b";
22
37
  /**
23
38
  * @description Current version of the reflection package
24
39
  * @summary Stores the semantic version number of the package
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,qCAA4B;AAC5B,qCAA4B;AAC5B,iCAAwB;AACxB,iCAAwB;AACxB,sCAA6B;AAC7B,iCAAwB;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,+BAAsB;AAEtB,qCAA4B;AAC5B,qCAA4B;AAC5B,iCAAwB;AACxB,iCAAwB;AACxB,sCAA6B;AAC7B,iCAAwB;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAG/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
@@ -192,6 +192,35 @@ export class ModelRegistryManager {
192
192
  }
193
193
  continue;
194
194
  }
195
+ const validation = Metadata.validationFor(self.constructor, prop);
196
+ if (validation?.[ValidationKeys.LIST] &&
197
+ (Array.isArray(self[prop]) ||
198
+ self[prop] instanceof Set)) {
199
+ const listDec = validation[ValidationKeys.LIST];
200
+ const clazzName = listDec.clazz
201
+ .map((t) => typeof t === "function" && !t.name ? t() : t)
202
+ .find((t) => !jsTypes.includes(t.name.toLowerCase()));
203
+ if (Array.isArray(self[prop])) {
204
+ self[prop] = self[prop].map((el) => {
205
+ return ["object", "function"].includes(typeof el) && clazzName
206
+ ? ModelRegistryManager.getRegistry().build(el, clazzName.name)
207
+ : el;
208
+ });
209
+ }
210
+ if (self[prop] instanceof Set) {
211
+ const s = new Set();
212
+ for (const v of self[prop]) {
213
+ if (["object", "function"].includes(typeof v) && clazzName) {
214
+ s.add(ModelRegistryManager.getRegistry().build(v, clazzName.name));
215
+ }
216
+ else {
217
+ s.add(v);
218
+ }
219
+ }
220
+ self[prop] = s;
221
+ }
222
+ continue;
223
+ }
195
224
  decorators = Metadata.allowedTypes(self.constructor, prop);
196
225
  if (!decorators || !decorators.length)
197
226
  throw new Error(`failed to find decorators for property ${prop}`);
@@ -201,39 +230,6 @@ export class ModelRegistryManager {
201
230
  if (!reserved.includes(c))
202
231
  try {
203
232
  switch (c.name) {
204
- case "Array":
205
- case "Set": {
206
- const validation = Metadata.validationFor(self.constructor, prop);
207
- if (!validation || !validation[ValidationKeys.LIST])
208
- break;
209
- const listDec = validation[ValidationKeys.LIST];
210
- const clazzName = listDec.clazz
211
- .map((t) => typeof t === "function" && !t.name
212
- ? t()
213
- : t)
214
- .find((t) => !jsTypes.includes(t.name));
215
- if (c.name === "Array")
216
- self[prop] = self[prop].map((el) => {
217
- return ["object", "function"].includes(typeof el) &&
218
- clazzName
219
- ? ModelRegistryManager.getRegistry().build(el, clazzName.name)
220
- : el;
221
- });
222
- if (c.name === "Set") {
223
- const s = new Set();
224
- for (const v of self[prop]) {
225
- if (["object", "function"].includes(typeof v) &&
226
- clazzName) {
227
- s.add(ModelRegistryManager.getRegistry().build(v, clazzName.name));
228
- }
229
- else {
230
- s.add(v);
231
- }
232
- }
233
- self[prop] = s;
234
- }
235
- break;
236
- }
237
233
  default:
238
234
  if (typeof self[prop] !== "undefined" &&
239
235
  ModelRegistryManager.getRegistry().get(c.name))
@@ -1 +1 @@
1
- {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../../../src/model/ModelRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../../../src/model/ModelRegistry.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Validator } from "./Validator.js";
11
11
  import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
+ import { matchesAcceptedType } from "./utils.js";
13
14
  /**
14
15
  * @description Validator for checking if elements in a list or set match expected types
15
16
  * @summary The ListValidator validates that all elements in an array or Set match the expected types.
@@ -87,15 +88,8 @@ let ListValidator = class ListValidator extends Validator {
87
88
  let val, isValid = true;
88
89
  for (let i = 0; i < (Array.isArray(value) ? value.length : value.size); i++) {
89
90
  val = [...value][i];
90
- switch (typeof val) {
91
- case "object":
92
- case "function":
93
- isValid = clazz.includes((val ?? {}).constructor?.name); // null is an object
94
- break;
95
- default:
96
- isValid = clazz.some((c) => typeof val === c?.toLowerCase());
97
- break;
98
- }
91
+ isValid = (Array.isArray(options.clazz) ? options.clazz : [options.clazz])
92
+ .some((t) => matchesAcceptedType(val, t));
99
93
  }
100
94
  return isValid
101
95
  ? undefined
@@ -1 +1 @@
1
- {"version":3,"file":"ListValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/ListValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAIzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CACP,KAAuB,EACvB,OAA6B;QAE7B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QAE3E,MAAM,KAAK,GAAG,CACZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,UAAU;gBACrC,OAAQ,CAA4B,EAAE,CAAC,IAAI,CAAC;YAC9C,OAAO,CAAC,EAAE,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,GAAQ,EACV,OAAO,GAAG,IAAI,CAAC;QACjB,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EACtD,CAAC,EAAE,EACH,CAAC;YACD,GAAG,GAAI,CAAC,GAAG,KAAK,CAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,QAAQ,OAAO,GAAG,EAAE,CAAC;gBACnB,KAAK,QAAQ,CAAC;gBACd,KAAK,UAAU;oBACb,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAE,CAAC,GAAG,IAAI,EAAE,CAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB;oBACzF,MAAM;gBACR;oBACE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;oBACrE,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,OAAO;YACZ,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAzDY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CAyDzB"}
1
+ {"version":3,"file":"ListValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/ListValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CACP,KAAuB,EACvB,OAA6B;QAE7B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QAE3E,MAAM,KAAK,GAAG,CACZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,UAAU;gBACrC,OAAQ,CAA4B,EAAE,CAAC,IAAI,CAAC;YAC9C,OAAO,CAAC,EAAE,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,GAAQ,EACV,OAAO,GAAG,IAAI,CAAC;QACjB,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EACtD,CAAC,EAAE,EACH,CAAC;YACD,GAAG,GAAI,CAAC,GAAG,KAAK,CAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBACvE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,OAAO;YACZ,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAlDY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CAkDzB"}
@@ -95,15 +95,16 @@ let TypeValidator = class TypeValidator extends Validator {
95
95
  return; // Don't try and enforce type if undefined
96
96
  const { type, message, customTypes } = options;
97
97
  let ts = customTypes || type;
98
- ts = (Array.isArray(ts) ? ts : [ts]).map((t) => {
98
+ ts = Array.isArray(ts) ? ts : [ts];
99
+ const typeNames = ts.map((t) => {
99
100
  if (typeof t === "string")
100
101
  return t;
101
102
  if (typeof t === "function" && !t.name)
102
- t = t();
103
- return t.name || t;
103
+ return t().name;
104
+ return t?.name || String(t);
104
105
  });
105
106
  if (!evaluateDesignTypes(value, ts))
106
- return this.getMessage(message || this.message, typeof ts === "string" ? ts : Array.isArray(ts) ? ts.join(", ") : ts, typeof value);
107
+ return this.getMessage(message || this.message, typeNames.join(", "), typeof value);
107
108
  }
108
109
  };
109
110
  TypeValidator = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"TypeValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/TypeValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AACzC,OAAO,EAAE,UAAU,EAAE,2BAAsB;AAM3C,OAAO,EAAE,SAAS,EAAE,mCAA8B;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,SAAS,CACd,KAAU,EACV,OAA6B;QAE7B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,0CAA0C;QAE3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAE/C,IAAI,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC;QAC7B,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI;gBAAE,CAAC,GAAI,CAAkB,EAAE,CAAC;YAClE,OAAQ,CAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAS,CAAC;YACxC,OAAO,IAAI,CAAC,UAAU,CACpB,OAAO,IAAI,IAAI,CAAC,OAAO,EACvB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EACpE,OAAO,KAAK,CACb,CAAC;IACN,CAAC;CACF,CAAA;AA1CY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CA0CzB;;AAED;;;;;;;GAOG;AACH,UAAU,CAAC,QAAQ,CAAC;IAClB,SAAS,EAAE,aAAiC;IAC5C,aAAa,EAAE,SAAS,CAAC,IAAI;IAC7B,IAAI,EAAE,KAAK;CACW,CAAC,CAAC"}
1
+ {"version":3,"file":"TypeValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/TypeValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AACzC,OAAO,EAAE,UAAU,EAAE,2BAAsB;AAM3C,OAAO,EAAE,SAAS,EAAE,mCAA8B;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,SAAS,CACd,KAAU,EACV,OAA6B;QAE7B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,0CAA0C;QAE3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAE/C,IAAI,EAAE,GAAQ,WAAW,IAAI,IAAI,CAAC;QAClC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,GAAI,EAAY,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI;gBAAE,OAAQ,CAAe,EAAE,CAAC,IAAI,CAAC;YACvE,OAAO,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAS,CAAC;YACxC,OAAO,IAAI,CAAC,UAAU,CACpB,OAAO,IAAI,IAAI,CAAC,OAAO,EACvB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACpB,OAAO,KAAK,CACb,CAAC;IACN,CAAC;CACF,CAAA;AA3CY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CA2CzB;;AAED;;;;;;;GAOG;AACH,UAAU,CAAC,QAAQ,CAAC;IAClB,SAAS,EAAE,aAAiC;IAC5C,aAAa,EAAE,SAAS,CAAC,IAAI;IAC7B,IAAI,EAAE,KAAK;CACW,CAAC,CAAC"}
@@ -198,13 +198,16 @@ export function isGreaterThan(a, b) {
198
198
  export function checkType(value, acceptedType) {
199
199
  if (typeof value === acceptedType.toLowerCase())
200
200
  return true;
201
+ if (value === null)
202
+ return false;
201
203
  if (typeof value === "undefined")
202
204
  return false;
203
205
  if (typeof value !== "object")
204
206
  return false;
205
- return (value.constructor &&
207
+ return value instanceof Object &&
208
+ !!value.constructor &&
206
209
  value.constructor.name.toLowerCase() ===
207
- acceptedType.toLowerCase());
210
+ acceptedType.toLowerCase();
208
211
  }
209
212
  /**
210
213
  * @description Checks if a value matches any of the specified type names
@@ -216,6 +219,42 @@ export function checkType(value, acceptedType) {
216
219
  export function checkTypes(value, acceptedTypes) {
217
220
  return !acceptedTypes.every((t) => !checkType(value, t));
218
221
  }
222
+ function normalizeAcceptedType(acceptedType) {
223
+ if (typeof acceptedType === "function" && !acceptedType.name) {
224
+ return acceptedType();
225
+ }
226
+ return acceptedType;
227
+ }
228
+ export function matchesAcceptedType(value, acceptedType) {
229
+ const normalizedType = normalizeAcceptedType(acceptedType);
230
+ if (typeof normalizedType === "string")
231
+ return checkType(value, normalizedType);
232
+ if (typeof normalizedType !== "function")
233
+ return false;
234
+ switch (normalizedType.name) {
235
+ case "String":
236
+ return typeof value === "string";
237
+ case "Number":
238
+ return typeof value === "number";
239
+ case "Boolean":
240
+ return typeof value === "boolean";
241
+ case "BigInt":
242
+ return typeof value === "bigint";
243
+ case "Symbol":
244
+ return typeof value === "symbol";
245
+ case "Function":
246
+ return typeof value === "function";
247
+ case "Array":
248
+ return Array.isArray(value);
249
+ case "Date":
250
+ return value instanceof Date;
251
+ case "Object":
252
+ return typeof value === "object";
253
+ default:
254
+ break;
255
+ }
256
+ return value instanceof normalizedType;
257
+ }
219
258
  /**
220
259
  * @description Evaluates if a value matches the specified type metadata
221
260
  * @summary Compares a value against type metadata to determine if they match
@@ -224,20 +263,8 @@ export function checkTypes(value, acceptedTypes) {
224
263
  * @return {boolean} Returns true if the value matches the type metadata, false otherwise
225
264
  */
226
265
  export function evaluateDesignTypes(value, types) {
227
- switch (typeof types) {
228
- case "string":
229
- return checkType(value, types);
230
- case "object":
231
- if (Array.isArray(types))
232
- return checkTypes(value, types);
233
- return true;
234
- case "function":
235
- if (types.name && types.name !== "Object")
236
- return checkType(value, types.name);
237
- return true;
238
- default:
239
- return true;
240
- }
266
+ const expectedTypes = Array.isArray(types) ? types : [types];
267
+ return expectedTypes.some((type) => matchesAcceptedType(value, type));
241
268
  }
242
269
  /**
243
270
  * @description Returns the length of a value
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/validation/Validators/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mCAAwB;AAC5D,OAAO,EAAE,EAAE,EAAE,iCAA4B;AAEzC,MAAM;AACN,8FAA8F;AAC9F,KAAK;AACL,mEAAmE;AACnE,KAAK;AACL,sFAAsF;AACtF,gIAAgI;AAChI,KAAK;AACL,0DAA0D;AAC1D,KAAK;AACL,sIAAsI;AACtI,2CAA2C;AAC3C,MAAM;AACN,iFAAiF;AACjF,oDAAoD;AACpD,yEAAyE;AACzE,MAAM;AACN,EAAE;AACF,6CAA6C;AAC7C,yDAAyD;AACzD,gDAAgD;AAChD,mDAAmD;AACnD,EAAE;AACF,oCAAoC;AACpC,mCAAmC;AACnC,4CAA4C;AAC5C,mEAAmE;AACnE,yBAAyB;AACzB,mFAAmF;AACnF,WAAW;AACX,QAAQ;AACR,EAAE;AACF,oDAAoD;AACpD,yBAAyB;AACzB,0EAA0E;AAC1E,WAAW;AACX,QAAQ;AACR,EAAE;AACF,8DAA8D;AAC9D,MAAM;AACN,EAAE;AACF,iCAAiC;AACjC,wCAAwC;AACxC,4CAA4C;AAC5C,EAAE;AACF,gCAAgC;AAChC,WAAW;AACX,iCAAiC;AACjC,4CAA4C;AAC5C,6BAA6B;AAC7B,UAAU;AACV,oEAAoE;AACpE,eAAe;AACf,iCAAiC;AACjC,4BAA4B;AAC5B,2DAA2D;AAC3D,gCAAgC;AAChC,uEAAuE;AACvE,2EAA2E;AAC3E,EAAE;AACF,wEAAwE;AACxE,QAAQ;AACR,MAAM;AACN,EAAE;AACF,8BAA8B;AAC9B,IAAI;AAEJ,MAAM,WAAW,GAAG,CAAC,KAAc,EAAU,EAAE;IAC7C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IAC1C,IAAI,KAAK,KAAK,CAAC,QAAQ;QAAE,OAAO,WAAW,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,KAAc,EAC+B,EAAE;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3C,6DAA6D;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE7D,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,4BAA4B,CAAC,CAAM,EAAE,CAAM;IACzD,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAElD,MAAM,IAAI,SAAS,CACjB,EAAE,CACA,yBAAyB,CAAC,4BAA4B,EACtD,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,CAAM,EAAE,CAAM;IACvC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,4BAA4B,CAAC,CAAC;IAE1E,8BAA8B;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IAEvB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,wBAAwB;QACxB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;YAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,GAAI,CAAY,CAAC;QACnC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;YAC1C,OAAQ,CAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,SAAS,CACjB,EAAE,CAAC,yBAAyB,CAAC,wBAAwB,EAAE,KAAK,EAAE,KAAK,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,IACE,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC;QAC1C,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC,EAC1C,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,EAAE,CACA,yBAAyB,CAAC,4BAA4B,EACtD,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,CAAM,EAAE,CAAM;IAC1C,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,4BAA4B,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC;IAEvB,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,wBAAwB;QACxB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;YAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,GAAI,CAAY,CAAC;QACnC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;YAC1C,OAAQ,CAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,EAAE,CAAC,yBAAyB,CAAC,wBAAwB,EAAE,KAAK,EAAE,KAAK,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,IACE,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC;QAC1C,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC,EAC1C,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,EAAE,CACA,yBAAyB,CAAC,4BAA4B,EACtD,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,YAAoB;IAC5D,IAAI,OAAO,KAAK,KAAK,YAAY,CAAC,WAAW,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,CACJ,KAAgB,CAAC,WAAW;QAC5B,KAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;YAC9C,YAAY,CAAC,WAAW,EAAE,CAC7B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,aAAuB;IAChE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAc,EACd,KAA2C;IAE3C,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjC,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,KAAK,UAAU;YACb,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBACvC,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgD;IAC1E,OAAO,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG;QACjD,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/validation/Validators/utils.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import "./validation";
1
2
  export * from "./overrides/index.d.cts";
2
3
  export * from "./constants/index.d.cts";
3
4
  export * from "./types/index.d.cts";
@@ -10,7 +11,21 @@ export * from "./model/index.d.cts";
10
11
  * @const VERSION
11
12
  * @memberOf module:decorator-validation
12
13
  */
13
- export declare const VERSION = "1.20.0";
14
+ export declare const VERSION = "1.21.1";
15
+ /**
16
+ * @description Represents the current commit hash of the module build.
17
+ * @summary Stores the current git commit hash for the package. The build replaces
18
+ * the placeholder with the actual commit hash at publish time.
19
+ * @const COMMIT
20
+ */
21
+ export declare const COMMIT = "94e521b";
22
+ /**
23
+ * @description Represents the full version string of the module.
24
+ * @summary Stores the semver version and commit hash for the package.
25
+ * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
26
+ * @const FULL_VERSION
27
+ */
28
+ export declare const FULL_VERSION = "1.21.1-94e521b";
14
29
  /**
15
30
  * @description Current version of the reflection package
16
31
  * @summary Stores the semantic version number of the package
@@ -1,3 +1,4 @@
1
+ import "./validation";
1
2
  export * from "./overrides/index.d.mts";
2
3
  export * from "./constants/index.d.mts";
3
4
  export * from "./types/index.d.mts";
@@ -10,7 +11,21 @@ export * from "./model/index.d.mts";
10
11
  * @const VERSION
11
12
  * @memberOf module:decorator-validation
12
13
  */
13
- export declare const VERSION = "1.20.0";
14
+ export declare const VERSION = "1.21.1";
15
+ /**
16
+ * @description Represents the current commit hash of the module build.
17
+ * @summary Stores the current git commit hash for the package. The build replaces
18
+ * the placeholder with the actual commit hash at publish time.
19
+ * @const COMMIT
20
+ */
21
+ export declare const COMMIT = "94e521b";
22
+ /**
23
+ * @description Represents the full version string of the module.
24
+ * @summary Stores the semver version and commit hash for the package.
25
+ * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
26
+ * @const FULL_VERSION
27
+ */
28
+ export declare const FULL_VERSION = "1.21.1-94e521b";
14
29
  /**
15
30
  * @description Current version of the reflection package
16
31
  * @summary Stores the semantic version number of the package
@@ -1,3 +1,4 @@
1
+ import { Constructor } from "@decaf-ts/decoration";
1
2
  /**
2
3
  * Validates whether two values are eligible for comparison using >= or <= operators.
3
4
  *
@@ -56,6 +57,7 @@ export declare function checkType(value: unknown, acceptedType: string): boolean
56
57
  * @return {boolean} Returns true if the value matches any of the accepted types, false otherwise
57
58
  */
58
59
  export declare function checkTypes(value: unknown, acceptedTypes: string[]): boolean;
60
+ export declare function matchesAcceptedType(value: unknown, acceptedType: unknown): boolean;
59
61
  /**
60
62
  * @description Evaluates if a value matches the specified type metadata
61
63
  * @summary Compares a value against type metadata to determine if they match
@@ -63,7 +65,7 @@ export declare function checkTypes(value: unknown, acceptedTypes: string[]): boo
63
65
  * @param {string | string[] | {name: string}} types - Type metadata to check against, can be a string, array of strings, or an object with a name property
64
66
  * @return {boolean} Returns true if the value matches the type metadata, false otherwise
65
67
  */
66
- export declare function evaluateDesignTypes(value: unknown, types: string | string[] | {
68
+ export declare function evaluateDesignTypes(value: unknown, types: string | string[] | Constructor | Constructor[] | {
67
69
  name: string;
68
70
  }): boolean;
69
71
  /**
@@ -1,3 +1,4 @@
1
+ import { Constructor } from "@decaf-ts/decoration";
1
2
  /**
2
3
  * Validates whether two values are eligible for comparison using >= or <= operators.
3
4
  *
@@ -56,6 +57,7 @@ export declare function checkType(value: unknown, acceptedType: string): boolean
56
57
  * @return {boolean} Returns true if the value matches any of the accepted types, false otherwise
57
58
  */
58
59
  export declare function checkTypes(value: unknown, acceptedTypes: string[]): boolean;
60
+ export declare function matchesAcceptedType(value: unknown, acceptedType: unknown): boolean;
59
61
  /**
60
62
  * @description Evaluates if a value matches the specified type metadata
61
63
  * @summary Compares a value against type metadata to determine if they match
@@ -63,7 +65,7 @@ export declare function checkTypes(value: unknown, acceptedTypes: string[]): boo
63
65
  * @param {string | string[] | {name: string}} types - Type metadata to check against, can be a string, array of strings, or an object with a name property
64
66
  * @return {boolean} Returns true if the value matches the type metadata, false otherwise
65
67
  */
66
- export declare function evaluateDesignTypes(value: unknown, types: string | string[] | {
68
+ export declare function evaluateDesignTypes(value: unknown, types: string | string[] | Constructor | Constructor[] | {
67
69
  name: string;
68
70
  }): boolean;
69
71
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/decorator-validation",
3
- "version": "1.21.0",
3
+ "version": "1.22.0",
4
4
  "description": "simple decorator based validation engine",
5
5
  "type": "module",
6
6
  "exports": {
@@ -99,6 +99,14 @@
99
99
  "main": "./lib/cjs/index.cjs",
100
100
  "module": "./lib/esm/index.js",
101
101
  "sideEffects": [
102
+ "./lib/esm/index.js",
103
+ "./lib/cjs/index.cjs",
104
+ "./lib/esm/validation/index.js",
105
+ "./lib/cjs/validation/index.cjs",
106
+ "./lib/esm/validation/Validators/index.js",
107
+ "./lib/cjs/validation/Validators/index.cjs",
108
+ "./lib/esm/validation/**/*.js",
109
+ "./lib/cjs/validation/**/*.cjs",
102
110
  "./lib/esm/overrides/index.js",
103
111
  "./lib/esm/overrides/overrides.js",
104
112
  "./lib/cjs/overrides/index.cjs",