@decaf-ts/decorator-validation 1.7.2 → 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -157
- package/dist/decorator-validation.cjs +323 -211
- package/dist/decorator-validation.esm.cjs +323 -211
- package/lib/constants/errors.cjs +19 -0
- package/lib/constants/errors.d.ts +11 -0
- package/lib/constants/index.cjs +2 -1
- package/lib/constants/index.d.ts +1 -0
- package/lib/esm/constants/errors.d.ts +11 -0
- package/lib/esm/constants/errors.js +16 -0
- package/lib/esm/constants/index.d.ts +1 -0
- package/lib/esm/constants/index.js +2 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/model/validation.js +3 -3
- package/lib/esm/utils/PathProxy.d.ts +43 -0
- package/lib/esm/utils/PathProxy.js +89 -0
- package/lib/esm/utils/index.d.ts +1 -0
- package/lib/esm/utils/index.js +2 -1
- package/lib/esm/validation/Validators/DiffValidator.d.ts +4 -2
- package/lib/esm/validation/Validators/DiffValidator.js +5 -5
- package/lib/esm/validation/Validators/EmailValidator.js +2 -1
- package/lib/esm/validation/Validators/EqualsValidator.d.ts +4 -2
- package/lib/esm/validation/Validators/EqualsValidator.js +5 -5
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.d.ts +4 -2
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +6 -5
- package/lib/esm/validation/Validators/GreaterThanValidator.d.ts +4 -2
- package/lib/esm/validation/Validators/GreaterThanValidator.js +6 -5
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.d.ts +4 -2
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +6 -5
- package/lib/esm/validation/Validators/LessThanValidator.d.ts +4 -2
- package/lib/esm/validation/Validators/LessThanValidator.js +6 -5
- package/lib/esm/validation/Validators/PasswordValidator.js +3 -2
- package/lib/esm/validation/Validators/URLValidator.js +2 -1
- package/lib/esm/validation/Validators/Validator.d.ts +3 -2
- package/lib/esm/validation/Validators/Validator.js +1 -1
- package/lib/esm/validation/Validators/constants.d.ts +0 -13
- package/lib/esm/validation/Validators/constants.js +1 -14
- package/lib/esm/validation/Validators/utils.d.ts +0 -14
- package/lib/esm/validation/Validators/utils.js +69 -56
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/model/validation.cjs +3 -3
- package/lib/utils/PathProxy.cjs +93 -0
- package/lib/utils/PathProxy.d.ts +43 -0
- package/lib/utils/index.cjs +2 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/validation/Validators/DiffValidator.cjs +5 -5
- package/lib/validation/Validators/DiffValidator.d.ts +4 -2
- package/lib/validation/Validators/EmailValidator.cjs +2 -1
- package/lib/validation/Validators/EqualsValidator.cjs +5 -5
- package/lib/validation/Validators/EqualsValidator.d.ts +4 -2
- package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +5 -4
- package/lib/validation/Validators/GreaterThanOrEqualValidator.d.ts +4 -2
- package/lib/validation/Validators/GreaterThanValidator.cjs +5 -4
- package/lib/validation/Validators/GreaterThanValidator.d.ts +4 -2
- package/lib/validation/Validators/LessThanOrEqualValidator.cjs +5 -4
- package/lib/validation/Validators/LessThanOrEqualValidator.d.ts +4 -2
- package/lib/validation/Validators/LessThanValidator.cjs +5 -4
- package/lib/validation/Validators/LessThanValidator.d.ts +4 -2
- package/lib/validation/Validators/PasswordValidator.cjs +2 -1
- package/lib/validation/Validators/URLValidator.cjs +2 -1
- package/lib/validation/Validators/Validator.cjs +1 -1
- package/lib/validation/Validators/Validator.d.ts +3 -2
- package/lib/validation/Validators/constants.cjs +2 -15
- package/lib/validation/Validators/constants.d.ts +0 -13
- package/lib/validation/Validators/utils.cjs +79 -67
- package/lib/validation/Validators/utils.d.ts +0 -14
- package/package.json +2 -2
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.COMPARISON_ERROR_MESSAGES = void 0;
|
|
4
|
+
exports.COMPARISON_ERROR_MESSAGES = {
|
|
5
|
+
INVALID_PATH: "Invalid path argument. Expected non-empty string but received: '{0}'",
|
|
6
|
+
CONTEXT_NOT_OBJECT_COMPARISON: "Unable to access parent at level {0} for path '{1}': current context is not an object",
|
|
7
|
+
PROPERTY_INVALID: "Failed to resolve path {0}: property '{1}' is invalid or does not exist.",
|
|
8
|
+
PROPERTY_NOT_EXIST: "Failed to resolve path: property '{0}' does not exist.",
|
|
9
|
+
UNSUPPORTED_TYPES_COMPARISON: "Unsupported types for comparison: '{0}' and '{1}'",
|
|
10
|
+
NULL_OR_UNDEFINED_COMPARISON: "Comparison failed due to null or undefined value",
|
|
11
|
+
INVALID_DATE_COMPARISON: "Invalid Date objects are not comparable",
|
|
12
|
+
TYPE_MISMATCH_COMPARISON: "Cannot compare values of different types: {0} and {1}.",
|
|
13
|
+
NAN_COMPARISON: "Comparison not supported for NaN values",
|
|
14
|
+
// NO_PARENT_COMPARISON: "Unable to access parent at level {0} for path '{1}': no parent available",
|
|
15
|
+
// PROPERTY_NOT_FOUND: "Failed to resolve path {0}: property '{1}' does not exist.",
|
|
16
|
+
// PROPERTY_NOT_FOUND_ON_PARENT: "Failed to resolve path {0}: property '{1}' does not exist on parent.",
|
|
17
|
+
// PROPERTY_NOT_FOUND_AFTER_PARENT: "Failed to resolve path {0}: property '{1}' does not exist after {2} parent level(s).",
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSx5QkFBeUIsR0FBRztJQUN2QyxZQUFZLEVBQ1Ysc0VBQXNFO0lBQ3hFLDZCQUE2QixFQUMzQix1RkFBdUY7SUFDekYsZ0JBQWdCLEVBQ2QsMEVBQTBFO0lBQzVFLGtCQUFrQixFQUFFLHdEQUF3RDtJQUM1RSw0QkFBNEIsRUFDMUIsbURBQW1EO0lBQ3JELDRCQUE0QixFQUMxQixrREFBa0Q7SUFDcEQsdUJBQXVCLEVBQUUseUNBQXlDO0lBQ2xFLHdCQUF3QixFQUN0Qix3REFBd0Q7SUFDMUQsY0FBYyxFQUFFLHlDQUF5QztJQUN6RCxvR0FBb0c7SUFDcEcsb0ZBQW9GO0lBQ3BGLHdHQUF3RztJQUN4RywySEFBMkg7Q0FDNUgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDT01QQVJJU09OX0VSUk9SX01FU1NBR0VTID0ge1xuICBJTlZBTElEX1BBVEg6XG4gICAgXCJJbnZhbGlkIHBhdGggYXJndW1lbnQuIEV4cGVjdGVkIG5vbi1lbXB0eSBzdHJpbmcgYnV0IHJlY2VpdmVkOiAnezB9J1wiLFxuICBDT05URVhUX05PVF9PQkpFQ1RfQ09NUEFSSVNPTjpcbiAgICBcIlVuYWJsZSB0byBhY2Nlc3MgcGFyZW50IGF0IGxldmVsIHswfSBmb3IgcGF0aCAnezF9JzogY3VycmVudCBjb250ZXh0IGlzIG5vdCBhbiBvYmplY3RcIixcbiAgUFJPUEVSVFlfSU5WQUxJRDpcbiAgICBcIkZhaWxlZCB0byByZXNvbHZlIHBhdGggezB9OiBwcm9wZXJ0eSAnezF9JyBpcyBpbnZhbGlkIG9yIGRvZXMgbm90IGV4aXN0LlwiLFxuICBQUk9QRVJUWV9OT1RfRVhJU1Q6IFwiRmFpbGVkIHRvIHJlc29sdmUgcGF0aDogcHJvcGVydHkgJ3swfScgZG9lcyBub3QgZXhpc3QuXCIsXG4gIFVOU1VQUE9SVEVEX1RZUEVTX0NPTVBBUklTT046XG4gICAgXCJVbnN1cHBvcnRlZCB0eXBlcyBmb3IgY29tcGFyaXNvbjogJ3swfScgYW5kICd7MX0nXCIsXG4gIE5VTExfT1JfVU5ERUZJTkVEX0NPTVBBUklTT046XG4gICAgXCJDb21wYXJpc29uIGZhaWxlZCBkdWUgdG8gbnVsbCBvciB1bmRlZmluZWQgdmFsdWVcIixcbiAgSU5WQUxJRF9EQVRFX0NPTVBBUklTT046IFwiSW52YWxpZCBEYXRlIG9iamVjdHMgYXJlIG5vdCBjb21wYXJhYmxlXCIsXG4gIFRZUEVfTUlTTUFUQ0hfQ09NUEFSSVNPTjpcbiAgICBcIkNhbm5vdCBjb21wYXJlIHZhbHVlcyBvZiBkaWZmZXJlbnQgdHlwZXM6IHswfSBhbmQgezF9LlwiLFxuICBOQU5fQ09NUEFSSVNPTjogXCJDb21wYXJpc29uIG5vdCBzdXBwb3J0ZWQgZm9yIE5hTiB2YWx1ZXNcIixcbiAgLy8gTk9fUEFSRU5UX0NPTVBBUklTT046IFwiVW5hYmxlIHRvIGFjY2VzcyBwYXJlbnQgYXQgbGV2ZWwgezB9IGZvciBwYXRoICd7MX0nOiBubyBwYXJlbnQgYXZhaWxhYmxlXCIsXG4gIC8vIFBST1BFUlRZX05PVF9GT1VORDogXCJGYWlsZWQgdG8gcmVzb2x2ZSBwYXRoIHswfTogcHJvcGVydHkgJ3sxfScgZG9lcyBub3QgZXhpc3QuXCIsXG4gIC8vIFBST1BFUlRZX05PVF9GT1VORF9PTl9QQVJFTlQ6IFwiRmFpbGVkIHRvIHJlc29sdmUgcGF0aCB7MH06IHByb3BlcnR5ICd7MX0nIGRvZXMgbm90IGV4aXN0IG9uIHBhcmVudC5cIixcbiAgLy8gUFJPUEVSVFlfTk9UX0ZPVU5EX0FGVEVSX1BBUkVOVDogXCJGYWlsZWQgdG8gcmVzb2x2ZSBwYXRoIHswfTogcHJvcGVydHkgJ3sxfScgZG9lcyBub3QgZXhpc3QgYWZ0ZXIgezJ9IHBhcmVudCBsZXZlbChzKS5cIixcbn07XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const COMPARISON_ERROR_MESSAGES: {
|
|
2
|
+
INVALID_PATH: string;
|
|
3
|
+
CONTEXT_NOT_OBJECT_COMPARISON: string;
|
|
4
|
+
PROPERTY_INVALID: string;
|
|
5
|
+
PROPERTY_NOT_EXIST: string;
|
|
6
|
+
UNSUPPORTED_TYPES_COMPARISON: string;
|
|
7
|
+
NULL_OR_UNDEFINED_COMPARISON: string;
|
|
8
|
+
INVALID_DATE_COMPARISON: string;
|
|
9
|
+
TYPE_MISMATCH_COMPARISON: string;
|
|
10
|
+
NAN_COMPARISON: string;
|
|
11
|
+
};
|
package/lib/constants/index.cjs
CHANGED
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./errors.cjs"), exports);
|
|
17
18
|
__exportStar(require("./validation.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBeUI7QUFDekIsbURBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92YWxpZGF0aW9uXCI7XG4iXX0=
|
package/lib/constants/index.d.ts
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const COMPARISON_ERROR_MESSAGES: {
|
|
2
|
+
INVALID_PATH: string;
|
|
3
|
+
CONTEXT_NOT_OBJECT_COMPARISON: string;
|
|
4
|
+
PROPERTY_INVALID: string;
|
|
5
|
+
PROPERTY_NOT_EXIST: string;
|
|
6
|
+
UNSUPPORTED_TYPES_COMPARISON: string;
|
|
7
|
+
NULL_OR_UNDEFINED_COMPARISON: string;
|
|
8
|
+
INVALID_DATE_COMPARISON: string;
|
|
9
|
+
TYPE_MISMATCH_COMPARISON: string;
|
|
10
|
+
NAN_COMPARISON: string;
|
|
11
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const COMPARISON_ERROR_MESSAGES = {
|
|
2
|
+
INVALID_PATH: "Invalid path argument. Expected non-empty string but received: '{0}'",
|
|
3
|
+
CONTEXT_NOT_OBJECT_COMPARISON: "Unable to access parent at level {0} for path '{1}': current context is not an object",
|
|
4
|
+
PROPERTY_INVALID: "Failed to resolve path {0}: property '{1}' is invalid or does not exist.",
|
|
5
|
+
PROPERTY_NOT_EXIST: "Failed to resolve path: property '{0}' does not exist.",
|
|
6
|
+
UNSUPPORTED_TYPES_COMPARISON: "Unsupported types for comparison: '{0}' and '{1}'",
|
|
7
|
+
NULL_OR_UNDEFINED_COMPARISON: "Comparison failed due to null or undefined value",
|
|
8
|
+
INVALID_DATE_COMPARISON: "Invalid Date objects are not comparable",
|
|
9
|
+
TYPE_MISMATCH_COMPARISON: "Cannot compare values of different types: {0} and {1}.",
|
|
10
|
+
NAN_COMPARISON: "Comparison not supported for NaN values",
|
|
11
|
+
// NO_PARENT_COMPARISON: "Unable to access parent at level {0} for path '{1}': no parent available",
|
|
12
|
+
// PROPERTY_NOT_FOUND: "Failed to resolve path {0}: property '{1}' does not exist.",
|
|
13
|
+
// PROPERTY_NOT_FOUND_ON_PARENT: "Failed to resolve path {0}: property '{1}' does not exist on parent.",
|
|
14
|
+
// PROPERTY_NOT_FOUND_AFTER_PARENT: "Failed to resolve path {0}: property '{1}' does not exist after {2} parent level(s).",
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnN0YW50cy9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDdkMsWUFBWSxFQUNWLHNFQUFzRTtJQUN4RSw2QkFBNkIsRUFDM0IsdUZBQXVGO0lBQ3pGLGdCQUFnQixFQUNkLDBFQUEwRTtJQUM1RSxrQkFBa0IsRUFBRSx3REFBd0Q7SUFDNUUsNEJBQTRCLEVBQzFCLG1EQUFtRDtJQUNyRCw0QkFBNEIsRUFDMUIsa0RBQWtEO0lBQ3BELHVCQUF1QixFQUFFLHlDQUF5QztJQUNsRSx3QkFBd0IsRUFDdEIsd0RBQXdEO0lBQzFELGNBQWMsRUFBRSx5Q0FBeUM7SUFDekQsb0dBQW9HO0lBQ3BHLG9GQUFvRjtJQUNwRix3R0FBd0c7SUFDeEcsMkhBQTJIO0NBQzVILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09NUEFSSVNPTl9FUlJPUl9NRVNTQUdFUyA9IHtcbiAgSU5WQUxJRF9QQVRIOlxuICAgIFwiSW52YWxpZCBwYXRoIGFyZ3VtZW50LiBFeHBlY3RlZCBub24tZW1wdHkgc3RyaW5nIGJ1dCByZWNlaXZlZDogJ3swfSdcIixcbiAgQ09OVEVYVF9OT1RfT0JKRUNUX0NPTVBBUklTT046XG4gICAgXCJVbmFibGUgdG8gYWNjZXNzIHBhcmVudCBhdCBsZXZlbCB7MH0gZm9yIHBhdGggJ3sxfSc6IGN1cnJlbnQgY29udGV4dCBpcyBub3QgYW4gb2JqZWN0XCIsXG4gIFBST1BFUlRZX0lOVkFMSUQ6XG4gICAgXCJGYWlsZWQgdG8gcmVzb2x2ZSBwYXRoIHswfTogcHJvcGVydHkgJ3sxfScgaXMgaW52YWxpZCBvciBkb2VzIG5vdCBleGlzdC5cIixcbiAgUFJPUEVSVFlfTk9UX0VYSVNUOiBcIkZhaWxlZCB0byByZXNvbHZlIHBhdGg6IHByb3BlcnR5ICd7MH0nIGRvZXMgbm90IGV4aXN0LlwiLFxuICBVTlNVUFBPUlRFRF9UWVBFU19DT01QQVJJU09OOlxuICAgIFwiVW5zdXBwb3J0ZWQgdHlwZXMgZm9yIGNvbXBhcmlzb246ICd7MH0nIGFuZCAnezF9J1wiLFxuICBOVUxMX09SX1VOREVGSU5FRF9DT01QQVJJU09OOlxuICAgIFwiQ29tcGFyaXNvbiBmYWlsZWQgZHVlIHRvIG51bGwgb3IgdW5kZWZpbmVkIHZhbHVlXCIsXG4gIElOVkFMSURfREFURV9DT01QQVJJU09OOiBcIkludmFsaWQgRGF0ZSBvYmplY3RzIGFyZSBub3QgY29tcGFyYWJsZVwiLFxuICBUWVBFX01JU01BVENIX0NPTVBBUklTT046XG4gICAgXCJDYW5ub3QgY29tcGFyZSB2YWx1ZXMgb2YgZGlmZmVyZW50IHR5cGVzOiB7MH0gYW5kIHsxfS5cIixcbiAgTkFOX0NPTVBBUklTT046IFwiQ29tcGFyaXNvbiBub3Qgc3VwcG9ydGVkIGZvciBOYU4gdmFsdWVzXCIsXG4gIC8vIE5PX1BBUkVOVF9DT01QQVJJU09OOiBcIlVuYWJsZSB0byBhY2Nlc3MgcGFyZW50IGF0IGxldmVsIHswfSBmb3IgcGF0aCAnezF9Jzogbm8gcGFyZW50IGF2YWlsYWJsZVwiLFxuICAvLyBQUk9QRVJUWV9OT1RfRk9VTkQ6IFwiRmFpbGVkIHRvIHJlc29sdmUgcGF0aCB7MH06IHByb3BlcnR5ICd7MX0nIGRvZXMgbm90IGV4aXN0LlwiLFxuICAvLyBQUk9QRVJUWV9OT1RfRk9VTkRfT05fUEFSRU5UOiBcIkZhaWxlZCB0byByZXNvbHZlIHBhdGggezB9OiBwcm9wZXJ0eSAnezF9JyBkb2VzIG5vdCBleGlzdCBvbiBwYXJlbnQuXCIsXG4gIC8vIFBST1BFUlRZX05PVF9GT1VORF9BRlRFUl9QQVJFTlQ6IFwiRmFpbGVkIHRvIHJlc29sdmUgcGF0aCB7MH06IHByb3BlcnR5ICd7MX0nIGRvZXMgbm90IGV4aXN0IGFmdGVyIHsyfSBwYXJlbnQgbGV2ZWwocykuXCIsXG59O1xuIl19
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export * from "./errors";
|
|
1
2
|
export * from "./validation";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92YWxpZGF0aW9uXCI7XG4iXX0=
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -15,5 +15,5 @@ export * from "./model";
|
|
|
15
15
|
* @const VERSION
|
|
16
16
|
* @memberOf module:decorator-validation
|
|
17
17
|
*/
|
|
18
|
-
export const VERSION = "1.7.
|
|
18
|
+
export const VERSION = "1.7.4";
|
|
19
19
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFFeEI7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAZGVzY3JpcHRpb24gVHlwZVNjcmlwdCBkZWNvcmF0b3ItYmFzZWQgdmFsaWRhdGlvbiBsaWJyYXJ5XG4gKiBAc3VtbWFyeSBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGNvbXByZWhlbnNpdmUgdmFsaWRhdGlvbiBmcmFtZXdvcmsgdXNpbmcgVHlwZVNjcmlwdCBkZWNvcmF0b3JzLlxuICogSXQgZXhwb3NlcyB1dGlsaXR5IGZ1bmN0aW9ucywgdmFsaWRhdGlvbiBkZWNvcmF0b3JzLCBhbmQgbW9kZWwtcmVsYXRlZCBmdW5jdGlvbmFsaXR5IGZvclxuICogaW1wbGVtZW50aW5nIHR5cGUtc2FmZSwgZGVjbGFyYXRpdmUgdmFsaWRhdGlvbiBpbiBUeXBlU2NyaXB0IGFwcGxpY2F0aW9ucy5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3VycmVudCB2ZXJzaW9uIG9mIHRoZSByZWZsZWN0aW9uIHBhY2thZ2VcbiAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgc2VtYW50aWMgdmVyc2lvbiBudW1iZXIgb2YgdGhlIHBhY2thZ2VcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl19
|
|
@@ -6,6 +6,7 @@ import { VALIDATION_PARENT_KEY } from "../constants";
|
|
|
6
6
|
import { Model } from "./Model";
|
|
7
7
|
import { Validation } from "../validation/Validation";
|
|
8
8
|
import { ValidationKeys } from "../validation/Validators/constants";
|
|
9
|
+
import { PathProxyEngine } from "../utils/PathProxy";
|
|
9
10
|
/**
|
|
10
11
|
* @summary Analyses the decorations of the properties and validates the obj according to them
|
|
11
12
|
*
|
|
@@ -46,8 +47,7 @@ export function validate(obj, ...propsToIgnore) {
|
|
|
46
47
|
const decoratorProps = decorator.key === ModelKeys.TYPE
|
|
47
48
|
? [decorator.props]
|
|
48
49
|
: decorator.props || {};
|
|
49
|
-
const err = validator.hasErrors(obj[prop.toString()], decoratorProps, obj
|
|
50
|
-
);
|
|
50
|
+
const err = validator.hasErrors(obj[prop.toString()], decoratorProps, PathProxyEngine.create(obj, { ignoreUndefined: true, ignoreNull: true }));
|
|
51
51
|
if (err) {
|
|
52
52
|
errs = errs || {};
|
|
53
53
|
errs[decorator.key] = err;
|
|
@@ -143,4 +143,4 @@ export function validate(obj, ...propsToIgnore) {
|
|
|
143
143
|
}
|
|
144
144
|
return result ? new ModelErrorDefinition(result) : undefined;
|
|
145
145
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC92YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQU9wRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsR0FBTSxFQUNOLEdBQUcsYUFBdUI7SUFFMUIsTUFBTSxtQkFBbUIsR0FBNEMsRUFBRSxDQUFDO0lBQ3hFLEtBQUssTUFBTSxJQUFJLElBQUksR0FBRztRQUNwQixJQUNFLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQy9DLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWxDLG1CQUFtQixDQUFDLElBQUksQ0FDdEIsVUFBVSxDQUFDLHFCQUFxQixDQUM5QixjQUFjLENBQUMsT0FBTyxFQUN0QixHQUFHLEVBQ0gsSUFBSSxDQUNvQyxDQUMzQyxDQUFDO0lBRU4sSUFBSSxNQUFNLEdBQTRCLFNBQVMsQ0FBQztJQUVoRCxLQUFLLE1BQU0saUJBQWlCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztR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R0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQzdDLENBQUM7d0JBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQzs0QkFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEUsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFVLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxFcnJvckRlZmluaXRpb24gfSBmcm9tIFwiLi9Nb2RlbEVycm9yRGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgRGVjb3JhdG9yTWV0YWRhdGEsIFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuLi91dGlscy9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJlc2VydmVkTW9kZWxzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBWQUxJREFUSU9OX1BBUkVOVF9LRVkgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBWYWxpZGF0YWJsZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCIuL01vZGVsXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL3ZhbGlkYXRpb24vVmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiLi4vdmFsaWRhdGlvbi9WYWxpZGF0b3JzL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgTW9kZWxFcnJvcnMsXG4gIFZhbGlkYXRpb25Qcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb24sXG4gIFZhbGlkYXRvck9wdGlvbnMsXG59IGZyb20gXCIuLi92YWxpZGF0aW9uL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgQW5hbHlzZXMgdGhlIGRlY29yYXRpb25zIG9mIHRoZSBwcm9wZXJ0aWVzIGFuZCB2YWxpZGF0ZXMgdGhlIG9iaiBhY2NvcmRpbmcgdG8gdGhlbVxuICpcbiAqIEB0eXBlZGVmIE0gZXh0ZW5kcyBNb2RlbFxuICogQHByb3Age019IG9iaiBNb2RlbCBvYmplY3QgdG8gdmFsaWRhdGVcbiAqIEBwcm9wIHtzdHJpbmdbXX0gW3Byb3BzVG9JZ25vcmVdIG9iamVjdCBwcm9wZXJ0aWVzIHRvIGlnbm9yZSBpbiB0aGUgdmFsaWRhdGlvblxuICpcbiAqIEBmdW5jdGlvbiB2YWxpZGF0ZVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IE1vZGVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICBvYmo6IE0sXG4gIC4uLnByb3BzVG9JZ25vcmU6IHN0cmluZ1tdXG4pOiBNb2RlbEVycm9yRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlY29yYXRlZFByb3BlcnRpZXM6IFZhbGlkYXRpb25Qcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb25bXSA9IFtdO1xuICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqKVxuICAgIGlmIChcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApICYmXG4gICAgICBwcm9wc1RvSWdub3JlLmluZGV4T2YocHJvcCkgPT09IC0xXG4gICAgKVxuICAgICAgZGVjb3JhdGVkUHJvcGVydGllcy5wdXNoKFxuICAgICAgICBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgICAgICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgICAgIG9iaixcbiAgICAgICAgICBwcm9wXG4gICAgICAgICkgYXMgVmFsaWRhdGlvblByb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvblxuICAgICAgKTtcblxuICBsZXQgcmVzdWx0OiBNb2RlbEVycm9ycyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IGRlY29yYXRlZFByb3BlcnR5IG9mIGRlY29yYXRlZFByb3BlcnRpZXMpIHtcbiAgICBjb25zdCB7IHByb3AsIGRlY29yYXRvcnMgfSA9IGRlY29yYXRlZFByb3BlcnR5O1xuXG4gICAgaWYgKCFkZWNvcmF0b3JzIHx8ICFkZWNvcmF0b3JzLmxlbmd0aCkgY29udGludWU7XG5cbiAgICBjb25zdCBkZWZhdWx0VHlwZURlY29yYXRvcjogRGVjb3JhdG9yTWV0YWRhdGEgPSBkZWNvcmF0b3JzWzBdO1xuXG4gICAgLy8gdHJpZXMgdG8gZmluZCBhbnkgdHlwZSBkZWNvcmF0b3JzIG9yIG90aGVyIGRlY29yYXRvcnMgdGhhdCBhbHJlYWR5IGVuZm9yY2UgdHlwZSAodGhlIG9uZXMgd2l0aCB0aGUgYWxsb3dlZCB0eXBlcyBwcm9wZXJ0eSBkZWZpbmVkKS4gaWYgc28sIHNraXAgdGhlIGRlZmF1bHQgdHlwZSB2ZXJpZmljYXRpb25cbiAgICBpZiAoXG4gICAgICBkZWNvcmF0b3JzLmZpbmQoKGQpID0+IHtcbiAgICAgICAgaWYgKGQua2V5ID09PSBWYWxpZGF0aW9uS2V5cy5UWVBFKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuICEhZC5wcm9wcy50eXBlcz8uZmluZChcbiAgICAgICAgICAodCkgPT4gdCA9PT0gZGVmYXVsdFR5cGVEZWNvcmF0b3IucHJvcHMubmFtZVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApIHtcbiAgICAgIGRlY29yYXRvcnMuc2hpZnQoKTsgLy8gcmVtb3ZlIHRoZSBkZXNpZ246dHlwZSBkZWNvcmF0b3IsIHNpbmNlIHRoZSB0eXBlIHdpbGwgYWxyZWFkeSBiZSBjaGVja2VkXG4gICAgfVxuXG4gICAgbGV0IGVycnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGNvbnN0IGRlY29yYXRvciBvZiBkZWNvcmF0b3JzKSB7XG4gICAgICBjb25zdCB2YWxpZGF0b3IgPSBWYWxpZGF0aW9uLmdldChkZWNvcmF0b3Iua2V5KTtcbiAgICAgIGlmICghdmFsaWRhdG9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyB2YWxpZGF0b3IgZm9yICR7ZGVjb3JhdG9yLmtleX1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVjb3JhdG9yUHJvcHMgPVxuICAgICAgICBkZWNvcmF0b3Iua2V5ID09PSBNb2RlbEtleXMuVFlQRVxuICAgICAgICAgID8gW2RlY29yYXRvci5wcm9wc11cbiAgICAgICAgICA6IGRlY29yYXRvci5wcm9wcyB8fCB7fTtcblxuICAgICAgY29uc3QgZXJyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB2YWxpZGF0b3IuaGFzRXJyb3JzKFxuICAgICAgICAob2JqIGFzIGFueSlbcHJvcC50b1N0cmluZygpXSxcbiAgICAgICAgZGVjb3JhdG9yUHJvcHMgYXMgVmFsaWRhdG9yT3B0aW9ucyxcbiAgICAgICAgb2JqIC8vIFRPRE86IEFzc2VydCB0eXBlIGFuZCBkZWVwIE9iamVjdC5mcmVlemVcbiAgICAgICk7XG5cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgZXJycyA9IGVycnMgfHwge307XG4gICAgICAgIGVycnNbZGVjb3JhdG9yLmtleV0gPSBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVycnMpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCB8fCB7fTtcbiAgICAgIHJlc3VsdFtkZWNvcmF0ZWRQcm9wZXJ0eS5wcm9wLnRvU3RyaW5nKCldID0gZXJycztcbiAgICB9XG4gIH1cblxuICAvLyB0ZXN0cyBuZXN0ZWQgY2xhc3Nlc1xuICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXMob2JqKS5maWx0ZXIoKGspID0+ICFyZXN1bHQgfHwgIXJlc3VsdFtrXSkpIHtcbiAgICBsZXQgZXJyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLy8gaWYgYSBuZXN0ZWQgTW9kZWxcbiAgICBjb25zdCBhbGxEZWNvcmF0b3JzID0gUmVmbGVjdGlvbi5nZXRQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgb2JqLFxuICAgICAgcHJvcFxuICAgICkuZGVjb3JhdG9ycztcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gUmVmbGVjdGlvbi5nZXRQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICBWYWxpZGF0aW9uS2V5cy5SRUZMRUNULFxuICAgICAgb2JqLFxuICAgICAgcHJvcFxuICAgICkuZGVjb3JhdG9ycy5maWx0ZXIoXG4gICAgICAoZDogeyBrZXk6IHN0cmluZyB9KSA9PlxuICAgICAgICBbTW9kZWxLZXlzLlRZUEUsIFZhbGlkYXRpb25LZXlzLlRZUEUgYXMgc3RyaW5nXS5pbmRleE9mKGQua2V5KSAhPT0gLTFcbiAgICApO1xuICAgIGlmICghZGVjb3JhdG9ycyB8fCAhZGVjb3JhdG9ycy5sZW5ndGgpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGRlYyA9IGRlY29yYXRvcnMucG9wKCkgYXMgRGVjb3JhdG9yTWV0YWRhdGE7XG4gICAgY29uc3QgY2xhenogPSBkZWMucHJvcHMubmFtZVxuICAgICAgPyBbZGVjLnByb3BzLm5hbWVdXG4gICAgICA6IEFycmF5LmlzQXJyYXkoZGVjLnByb3BzLmN1c3RvbVR5cGVzKVxuICAgICAgICA/IGRlYy5wcm9wcy5jdXN0b21UeXBlc1xuICAgICAgICA6IFtkZWMucHJvcHMuY3VzdG9tVHlwZXNdO1xuICAgIGNvbnN0IHJlc2VydmVkID0gT2JqZWN0LnZhbHVlcyhSZXNlcnZlZE1vZGVscykubWFwKCh2KSA9PlxuICAgICAgdi50b0xvd2VyQ2FzZSgpXG4gICAgKSBhcyBzdHJpbmdbXTtcblxuICAgIGZvciAoY29uc3QgYyBvZiBjbGF6eikge1xuICAgICAgaWYgKHJlc2VydmVkLmluZGV4T2YoYy50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpIHtcbiAgICAgICAgY29uc3QgdHlwZURlY29yYXRvcktleSA9IEFycmF5LmlzQXJyYXkoKG9iaiBhcyBhbnkpW3Byb3BdKVxuICAgICAgICAgID8gVmFsaWRhdGlvbktleXMuTElTVFxuICAgICAgICAgIDogVmFsaWRhdGlvbktleXMuVFlQRTtcbiAgICAgICAgY29uc3QgdHlwZXM6IGFueSA9XG4gICAgICAgICAgYWxsRGVjb3JhdG9ycy5maW5kKFxuICAgICAgICAgICAgKGQ6IHsga2V5OiBzdHJpbmcgfSkgPT4gZC5rZXkgPT09IHR5cGVEZWNvcmF0b3JLZXlcbiAgICAgICAgICApIHx8IHt9O1xuICAgICAgICBsZXQgYWxsb3dlZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAodHlwZXMgJiYgdHlwZXMucHJvcHMpIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21UeXBlcyA9IEFycmF5LmlzQXJyYXkoKG9iaiBhcyBhbnkpW3Byb3BdKVxuICAgICAgICAgICAgPyB0eXBlcy5wcm9wcy5jbGFzc1xuICAgICAgICAgICAgOiB0eXBlcy5wcm9wcy5jdXN0b21UeXBlcztcbiAgICAgICAgICBpZiAoY3VzdG9tVHlwZXMpXG4gICAgICAgICAgICBhbGxvd2VkVHlwZXMgPSBBcnJheS5pc0FycmF5KGN1c3RvbVR5cGVzKVxuICAgICAgICAgICAgICA/IGN1c3RvbVR5cGVzLm1hcCgodCkgPT4gYCR7dH1gLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgIDogW2N1c3RvbVR5cGVzLnRvTG93ZXJDYXNlKCldO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsaWRhdGUgPSAocHJvcDogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlW1ZBTElEQVRJT05fUEFSRU5UX0tFWV0pXG4gICAgICAgICAgICAgIHZhbHVlW1ZBTElEQVRJT05fUEFSRU5UX0tFWV0gPSBvYmo7IC8vIFRPRE86IGZyZWV6ZT9cblxuICAgICAgICAgICAgcmV0dXJuIE1vZGVsLmlzTW9kZWwodmFsdWUpXG4gICAgICAgICAgICAgID8gdmFsdWUuaGFzRXJyb3JzKClcbiAgICAgICAgICAgICAgOiBhbGxvd2VkVHlwZXMuaW5jbHVkZXModHlwZW9mIHZhbHVlKVxuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiBcIlZhbHVlIGhhcyBubyB2YWxpZGF0YWJsZSB0eXBlXCI7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZVtWQUxJREFUSU9OX1BBUkVOVF9LRVldKVxuICAgICAgICAgICAgICBkZWxldGUgdmFsdWVbVkFMSURBVElPTl9QQVJFTlRfS0VZXTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBBcnJheS5uYW1lOlxuICAgICAgICAgIGNhc2UgU2V0Lm5hbWU6XG4gICAgICAgICAgICBpZiAoYWxsRGVjb3JhdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGlzdERlYyA9IGFsbERlY29yYXRvcnMuZmluZChcbiAgICAgICAgICAgICAgICAoZDogeyBrZXk6IHN0cmluZyB9KSA9PiBkLmtleSA9PT0gVmFsaWRhdGlvbktleXMuTElTVFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAobGlzdERlYykge1xuICAgICAgICAgICAgICAgIGVyciA9IChcbiAgICAgICAgICAgICAgICAgIGMgPT09IEFycmF5Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgPyAob2JqIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3Byb3BdXG4gICAgICAgICAgICAgICAgICAgIDogLy8gSWYgaXQncyBhIFNldFxuICAgICAgICAgICAgICAgICAgICAgIChvYmogYXMgUmVjb3JkPHN0cmluZywgYW55PilbcHJvcF0udmFsdWVzKClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAubWFwKCh2OiBWYWxpZGF0YWJsZSkgPT4gdmFsaWRhdGUocHJvcCwgdikpXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKChlOiBhbnkpID0+ICEhZSkgYXMgYW55O1xuICAgICAgICAgICAgICAgIGlmICghZXJyPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSByZXN1bHQgaXMgYW4gZW1wdHkgbGlzdC4uLlxuICAgICAgICAgICAgICAgICAgZXJyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmICgob2JqIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3Byb3BdKVxuICAgICAgICAgICAgICAgIGVyciA9IHZhbGlkYXRlKHByb3AsIChvYmogYXMgYW55KVtwcm9wXSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihgTW9kZWwgc2hvdWxkIGJlIHZhbGlkYXRhYmxlIGJ1dCBpdHMgbm90OiAke2V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IHt9O1xuICAgICAgICByZXN1bHRbcHJvcF0gPSBlcnIgYXMgYW55O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQgPyBuZXcgTW9kZWxFcnJvckRlZmluaXRpb24ocmVzdWx0KSA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC92YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQU1wRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLEdBQU0sRUFDTixHQUFHLGFBQXVCO0lBRTFCLE1BQU0sbUJBQW1CLEdBQTRDLEVBQUUsQ0FBQztJQUN4RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUc7UUFDcEIsSUFDRSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztZQUMvQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsQyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3RCLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDOUIsY0FBYyxDQUFDLE9BQU8sRUFDdEIsR0FBRyxFQUNILElBQUksQ0FDb0MsQ0FDM0MsQ0FBQztJQUVOLElBQUksTUFBTSxHQUE0QixTQUFTLENBQUM7SUFF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QUFDO3dCQUNELE1BQU07b0JBQ1I7d0JBQ0UsSUFBSSxDQUFDOzRCQUNILElBQUssR0FBMkIsQ0FBQyxJQUFJLENBQUM7Z0NBQ3BDLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFHLEdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUM3QyxDQUFDO3dCQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7NEJBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsNENBQTRDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ2hFLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLE1BQU0sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBVSxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsRXJyb3JEZWZpbml0aW9uIH0gZnJvbSBcIi4vTW9kZWxFcnJvckRlZmluaXRpb25cIjtcbmltcG9ydCB7IERlY29yYXRvck1ldGFkYXRhLCBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBNb2RlbEtleXMgfSBmcm9tIFwiLi4vdXRpbHMvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSZXNlcnZlZE1vZGVscyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgVkFMSURBVElPTl9QQVJFTlRfS0VZIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgVmFsaWRhdGFibGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiLi9Nb2RlbFwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gXCIuLi92YWxpZGF0aW9uL1ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4uL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIE1vZGVsRXJyb3JzLFxuICBWYWxpZGF0aW9uUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uLFxuICBWYWxpZGF0b3JPcHRpb25zLFxufSBmcm9tIFwiLi4vdmFsaWRhdGlvbi90eXBlc1wiO1xuaW1wb3J0IHsgUGF0aFByb3h5RW5naW5lIH0gZnJvbSBcIi4uL3V0aWxzL1BhdGhQcm94eVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEFuYWx5c2VzIHRoZSBkZWNvcmF0aW9ucyBvZiB0aGUgcHJvcGVydGllcyBhbmQgdmFsaWRhdGVzIHRoZSBvYmogYWNjb3JkaW5nIHRvIHRoZW1cbiAqXG4gKiBAdHlwZWRlZiBNIGV4dGVuZHMgTW9kZWxcbiAqIEBwcm9wIHtNfSBvYmogTW9kZWwgb2JqZWN0IHRvIHZhbGlkYXRlXG4gKiBAcHJvcCB7c3RyaW5nW119IFtwcm9wc1RvSWdub3JlXSBvYmplY3QgcHJvcGVydGllcyB0byBpZ25vcmUgaW4gdGhlIHZhbGlkYXRpb25cbiAqXG4gKiBAZnVuY3Rpb24gdmFsaWRhdGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBNb2RlbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgb2JqOiBNLFxuICAuLi5wcm9wc1RvSWdub3JlOiBzdHJpbmdbXVxuKTogTW9kZWxFcnJvckRlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBkZWNvcmF0ZWRQcm9wZXJ0aWVzOiBWYWxpZGF0aW9uUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uW10gPSBbXTtcbiAgZm9yIChjb25zdCBwcm9wIGluIG9iailcbiAgICBpZiAoXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSAmJlxuICAgICAgcHJvcHNUb0lnbm9yZS5pbmRleE9mKHByb3ApID09PSAtMVxuICAgIClcbiAgICAgIGRlY29yYXRlZFByb3BlcnRpZXMucHVzaChcbiAgICAgICAgUmVmbGVjdGlvbi5nZXRQcm9wZXJ0eURlY29yYXRvcnMoXG4gICAgICAgICAgVmFsaWRhdGlvbktleXMuUkVGTEVDVCxcbiAgICAgICAgICBvYmosXG4gICAgICAgICAgcHJvcFxuICAgICAgICApIGFzIFZhbGlkYXRpb25Qcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb25cbiAgICAgICk7XG5cbiAgbGV0IHJlc3VsdDogTW9kZWxFcnJvcnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgZm9yIChjb25zdCBkZWNvcmF0ZWRQcm9wZXJ0eSBvZiBkZWNvcmF0ZWRQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgeyBwcm9wLCBkZWNvcmF0b3JzIH0gPSBkZWNvcmF0ZWRQcm9wZXJ0eTtcblxuICAgIGlmICghZGVjb3JhdG9ycyB8fCAhZGVjb3JhdG9ycy5sZW5ndGgpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgZGVmYXVsdFR5cGVEZWNvcmF0b3I6IERlY29yYXRvck1ldGFkYXRhID0gZGVjb3JhdG9yc1swXTtcblxuICAgIC8vIHRyaWVzIHRvIGZpbmQgYW55IHR5cGUgZGVjb3JhdG9ycyBvciBvdGhlciBkZWNvcmF0b3JzIHRoYXQgYWxyZWFkeSBlbmZvcmNlIHR5cGUgKHRoZSBvbmVzIHdpdGggdGhlIGFsbG93ZWQgdHlwZXMgcHJvcGVydHkgZGVmaW5lZCkuIGlmIHNvLCBza2lwIHRoZSBkZWZhdWx0IHR5cGUgdmVyaWZpY2F0aW9uXG4gICAgaWYgKFxuICAgICAgZGVjb3JhdG9ycy5maW5kKChkKSA9PiB7XG4gICAgICAgIGlmIChkLmtleSA9PT0gVmFsaWRhdGlvbktleXMuVFlQRSkgcmV0dXJuIHRydWU7XG4gICAgICAgIHJldHVybiAhIWQucHJvcHMudHlwZXM/LmZpbmQoXG4gICAgICAgICAgKHQpID0+IHQgPT09IGRlZmF1bHRUeXBlRGVjb3JhdG9yLnByb3BzLm5hbWVcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKSB7XG4gICAgICBkZWNvcmF0b3JzLnNoaWZ0KCk7IC8vIHJlbW92ZSB0aGUgZGVzaWduOnR5cGUgZGVjb3JhdG9yLCBzaW5jZSB0aGUgdHlwZSB3aWxsIGFscmVhZHkgYmUgY2hlY2tlZFxuICAgIH1cblxuICAgIGxldCBlcnJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgZm9yIChjb25zdCBkZWNvcmF0b3Igb2YgZGVjb3JhdG9ycykge1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gVmFsaWRhdGlvbi5nZXQoZGVjb3JhdG9yLmtleSk7XG4gICAgICBpZiAoIXZhbGlkYXRvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgdmFsaWRhdG9yIGZvciAke2RlY29yYXRvci5rZXl9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlY29yYXRvclByb3BzID1cbiAgICAgICAgZGVjb3JhdG9yLmtleSA9PT0gTW9kZWxLZXlzLlRZUEVcbiAgICAgICAgICA/IFtkZWNvcmF0b3IucHJvcHNdXG4gICAgICAgICAgOiBkZWNvcmF0b3IucHJvcHMgfHwge307XG5cbiAgICAgIGNvbnN0IGVycjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdmFsaWRhdG9yLmhhc0Vycm9ycyhcbiAgICAgICAgKG9iaiBhcyBhbnkpW3Byb3AudG9TdHJpbmcoKV0sXG4gICAgICAgIGRlY29yYXRvclByb3BzIGFzIFZhbGlkYXRvck9wdGlvbnMsXG4gICAgICAgIFBhdGhQcm94eUVuZ2luZS5jcmVhdGUob2JqLCB7IGlnbm9yZVVuZGVmaW5lZDogdHJ1ZSwgaWdub3JlTnVsbDogdHJ1ZSB9KVxuICAgICAgKTtcblxuICAgICAgaWYgKGVycikge1xuICAgICAgICBlcnJzID0gZXJycyB8fCB7fTtcbiAgICAgICAgZXJyc1tkZWNvcmF0b3Iua2V5XSA9IGVycjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXJycykge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IHt9O1xuICAgICAgcmVzdWx0W2RlY29yYXRlZFByb3BlcnR5LnByb3AudG9TdHJpbmcoKV0gPSBlcnJzO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRlc3RzIG5lc3RlZCBjbGFzc2VzXG4gIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyhvYmopLmZpbHRlcigoaykgPT4gIXJlc3VsdCB8fCAhcmVzdWx0W2tdKSkge1xuICAgIGxldCBlcnI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvLyBpZiBhIG5lc3RlZCBNb2RlbFxuICAgIGNvbnN0IGFsbERlY29yYXRvcnMgPSBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1QsXG4gICAgICBvYmosXG4gICAgICBwcm9wXG4gICAgKS5kZWNvcmF0b3JzO1xuICAgIGNvbnN0IGRlY29yYXRvcnMgPSBSZWZsZWN0aW9uLmdldFByb3BlcnR5RGVjb3JhdG9ycyhcbiAgICAgIFZhbGlkYXRpb25LZXlzLlJFRkxFQ1QsXG4gICAgICBvYmosXG4gICAgICBwcm9wXG4gICAgKS5kZWNvcmF0b3JzLmZpbHRlcihcbiAgICAgIChkOiB7IGtleTogc3RyaW5nIH0pID0+XG4gICAgICAgIFtNb2RlbEtleXMuVFlQRSwgVmFsaWRhdGlvbktleXMuVFlQRSBhcyBzdHJpbmddLmluZGV4T2YoZC5rZXkpICE9PSAtMVxuICAgICk7XG4gICAgaWYgKCFkZWNvcmF0b3JzIHx8ICFkZWNvcmF0b3JzLmxlbmd0aCkgY29udGludWU7XG4gICAgY29uc3QgZGVjID0gZGVjb3JhdG9ycy5wb3AoKSBhcyBEZWNvcmF0b3JNZXRhZGF0YTtcbiAgICBjb25zdCBjbGF6eiA9IGRlYy5wcm9wcy5uYW1lXG4gICAgICA/IFtkZWMucHJvcHMubmFtZV1cbiAgICAgIDogQXJyYXkuaXNBcnJheShkZWMucHJvcHMuY3VzdG9tVHlwZXMpXG4gICAgICAgID8gZGVjLnByb3BzLmN1c3RvbVR5cGVzXG4gICAgICAgIDogW2RlYy5wcm9wcy5jdXN0b21UeXBlc107XG4gICAgY29uc3QgcmVzZXJ2ZWQgPSBPYmplY3QudmFsdWVzKFJlc2VydmVkTW9kZWxzKS5tYXAoKHYpID0+XG4gICAgICB2LnRvTG93ZXJDYXNlKClcbiAgICApIGFzIHN0cmluZ1tdO1xuXG4gICAgZm9yIChjb25zdCBjIG9mIGNsYXp6KSB7XG4gICAgICBpZiAocmVzZXJ2ZWQuaW5kZXhPZihjLnRvTG93ZXJDYXNlKCkpID09PSAtMSkge1xuICAgICAgICBjb25zdCB0eXBlRGVjb3JhdG9yS2V5ID0gQXJyYXkuaXNBcnJheSgob2JqIGFzIGFueSlbcHJvcF0pXG4gICAgICAgICAgPyBWYWxpZGF0aW9uS2V5cy5MSVNUXG4gICAgICAgICAgOiBWYWxpZGF0aW9uS2V5cy5UWVBFO1xuICAgICAgICBjb25zdCB0eXBlczogYW55ID1cbiAgICAgICAgICBhbGxEZWNvcmF0b3JzLmZpbmQoXG4gICAgICAgICAgICAoZDogeyBrZXk6IHN0cmluZyB9KSA9PiBkLmtleSA9PT0gdHlwZURlY29yYXRvcktleVxuICAgICAgICAgICkgfHwge307XG4gICAgICAgIGxldCBhbGxvd2VkVHlwZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmICh0eXBlcyAmJiB0eXBlcy5wcm9wcykge1xuICAgICAgICAgIGNvbnN0IGN1c3RvbVR5cGVzID0gQXJyYXkuaXNBcnJheSgob2JqIGFzIGFueSlbcHJvcF0pXG4gICAgICAgICAgICA/IHR5cGVzLnByb3BzLmNsYXNzXG4gICAgICAgICAgICA6IHR5cGVzLnByb3BzLmN1c3RvbVR5cGVzO1xuICAgICAgICAgIGlmIChjdXN0b21UeXBlcylcbiAgICAgICAgICAgIGFsbG93ZWRUeXBlcyA9IEFycmF5LmlzQXJyYXkoY3VzdG9tVHlwZXMpXG4gICAgICAgICAgICAgID8gY3VzdG9tVHlwZXMubWFwKCh0KSA9PiBgJHt0fWAudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgOiBbY3VzdG9tVHlwZXMudG9Mb3dlckNhc2UoKV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWxpZGF0ZSA9IChwcm9wOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiAhdmFsdWVbVkFMSURBVElPTl9QQVJFTlRfS0VZXSlcbiAgICAgICAgICAgICAgdmFsdWVbVkFMSURBVElPTl9QQVJFTlRfS0VZXSA9IG9iajsgLy8gVE9ETzogZnJlZXplP1xuXG4gICAgICAgICAgICByZXR1cm4gTW9kZWwuaXNNb2RlbCh2YWx1ZSlcbiAgICAgICAgICAgICAgPyB2YWx1ZS5oYXNFcnJvcnMoKVxuICAgICAgICAgICAgICA6IGFsbG93ZWRUeXBlcy5pbmNsdWRlcyh0eXBlb2YgdmFsdWUpXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IFwiVmFsdWUgaGFzIG5vIHZhbGlkYXRhYmxlIHR5cGVcIjtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlW1ZBTElEQVRJT05fUEFSRU5UX0tFWV0pXG4gICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtWQUxJREFUSU9OX1BBUkVOVF9LRVldO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzd2l0Y2ggKGMpIHtcbiAgICAgICAgICBjYXNlIEFycmF5Lm5hbWU6XG4gICAgICAgICAgY2FzZSBTZXQubmFtZTpcbiAgICAgICAgICAgIGlmIChhbGxEZWNvcmF0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBsaXN0RGVjID0gYWxsRGVjb3JhdG9ycy5maW5kKFxuICAgICAgICAgICAgICAgIChkOiB7IGtleTogc3RyaW5nIH0pID0+IGQua2V5ID09PSBWYWxpZGF0aW9uS2V5cy5MSVNUXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmIChsaXN0RGVjKSB7XG4gICAgICAgICAgICAgICAgZXJyID0gKFxuICAgICAgICAgICAgICAgICAgYyA9PT0gQXJyYXkubmFtZVxuICAgICAgICAgICAgICAgICAgICA/IChvYmogYXMgUmVjb3JkPHN0cmluZywgYW55PilbcHJvcF1cbiAgICAgICAgICAgICAgICAgICAgOiAvLyBJZiBpdCdzIGEgU2V0XG4gICAgICAgICAgICAgICAgICAgICAgKG9iaiBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtwcm9wXS52YWx1ZXMoKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKHY6IFZhbGlkYXRhYmxlKSA9PiB2YWxpZGF0ZShwcm9wLCB2KSlcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGU6IGFueSkgPT4gISFlKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnI/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpcyBhbiBlbXB0eSBsaXN0Li4uXG4gICAgICAgICAgICAgICAgICBlcnIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKChvYmogYXMgUmVjb3JkPHN0cmluZywgYW55PilbcHJvcF0pXG4gICAgICAgICAgICAgICAgZXJyID0gdmFsaWRhdGUocHJvcCwgKG9iaiBhcyBhbnkpW3Byb3BdKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBNb2RlbCBzaG91bGQgYmUgdmFsaWRhdGFibGUgYnV0IGl0cyBub3Q6ICR7ZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgfHwge307XG4gICAgICAgIHJlc3VsdFtwcm9wXSA9IGVyciBhcyBhbnk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdCA/IG5ldyBNb2RlbEVycm9yRGVmaW5pdGlvbihyZXN1bHQpIDogdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proxy object that provides path-based access to nested properties
|
|
3
|
+
* @template T - The type of the target object being proxied
|
|
4
|
+
*/
|
|
5
|
+
export type PathProxy<T> = T & {
|
|
6
|
+
getValueFromPath: (path: string, fallback?: any) => any;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Standard path resolution utility for accessing nested object properties.
|
|
10
|
+
* Provides consistent dot-notation access to both parent and child properties
|
|
11
|
+
* across complex object structures.
|
|
12
|
+
*
|
|
13
|
+
* - Dot-notation path resolution ('object.child.property')
|
|
14
|
+
* - Parent traversal using '../' notation
|
|
15
|
+
* - Configurable property access behavior
|
|
16
|
+
* - Null/undefined safety checks
|
|
17
|
+
*/
|
|
18
|
+
export declare class PathProxyEngine {
|
|
19
|
+
/**
|
|
20
|
+
* Creates a path-aware proxy for the target object
|
|
21
|
+
* @template T - The type of the target object
|
|
22
|
+
* @param {T} rootTarget - The target object to proxy
|
|
23
|
+
* @param opts - Configuration options
|
|
24
|
+
* @param opts.getValue - Custom function to get property value
|
|
25
|
+
* @param opts.getParent - Custom function to get parent object
|
|
26
|
+
* @param opts.ignoreUndefined - Whether to ignore undefined values in paths
|
|
27
|
+
* @param opts.ignoreNull - Whether to ignore null values in paths
|
|
28
|
+
* @returns A proxy object with path access capabilities
|
|
29
|
+
*/
|
|
30
|
+
static create<T extends object>(rootTarget: T, opts?: {
|
|
31
|
+
getValue?: (target: T, prop: string) => any;
|
|
32
|
+
getParent?: (target: T) => any;
|
|
33
|
+
ignoreUndefined: boolean;
|
|
34
|
+
ignoreNull: boolean;
|
|
35
|
+
}): PathProxy<T>;
|
|
36
|
+
/**
|
|
37
|
+
* Parses a path string into individual components
|
|
38
|
+
* @param path - The path string to parse (e.g., "user.address.city")
|
|
39
|
+
* @returns An array of path components
|
|
40
|
+
* @throws Error if the path is invalid
|
|
41
|
+
*/
|
|
42
|
+
private static parsePath;
|
|
43
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { COMPARISON_ERROR_MESSAGES, VALIDATION_PARENT_KEY } from "../constants";
|
|
2
|
+
import { sf } from "./strings";
|
|
3
|
+
const fallbackGetParent = (target) => {
|
|
4
|
+
return target[VALIDATION_PARENT_KEY];
|
|
5
|
+
};
|
|
6
|
+
const fallbackGetValue = (target, prop) => {
|
|
7
|
+
if (!Object.prototype.hasOwnProperty.call(target, prop))
|
|
8
|
+
throw new Error(sf(COMPARISON_ERROR_MESSAGES.PROPERTY_NOT_EXIST, prop));
|
|
9
|
+
return target[prop];
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Standard path resolution utility for accessing nested object properties.
|
|
13
|
+
* Provides consistent dot-notation access to both parent and child properties
|
|
14
|
+
* across complex object structures.
|
|
15
|
+
*
|
|
16
|
+
* - Dot-notation path resolution ('object.child.property')
|
|
17
|
+
* - Parent traversal using '../' notation
|
|
18
|
+
* - Configurable property access behavior
|
|
19
|
+
* - Null/undefined safety checks
|
|
20
|
+
*/
|
|
21
|
+
export class PathProxyEngine {
|
|
22
|
+
/**
|
|
23
|
+
* Creates a path-aware proxy for the target object
|
|
24
|
+
* @template T - The type of the target object
|
|
25
|
+
* @param {T} rootTarget - The target object to proxy
|
|
26
|
+
* @param opts - Configuration options
|
|
27
|
+
* @param opts.getValue - Custom function to get property value
|
|
28
|
+
* @param opts.getParent - Custom function to get parent object
|
|
29
|
+
* @param opts.ignoreUndefined - Whether to ignore undefined values in paths
|
|
30
|
+
* @param opts.ignoreNull - Whether to ignore null values in paths
|
|
31
|
+
* @returns A proxy object with path access capabilities
|
|
32
|
+
*/
|
|
33
|
+
static create(rootTarget, opts) {
|
|
34
|
+
const { getValue, getParent, ignoreUndefined, ignoreNull } = {
|
|
35
|
+
getParent: fallbackGetParent,
|
|
36
|
+
getValue: fallbackGetValue,
|
|
37
|
+
ignoreNull: false,
|
|
38
|
+
ignoreUndefined: false,
|
|
39
|
+
...opts,
|
|
40
|
+
};
|
|
41
|
+
const proxy = new Proxy({}, {
|
|
42
|
+
get(target, prop) {
|
|
43
|
+
if (prop === "getValueFromPath") {
|
|
44
|
+
return function (path) {
|
|
45
|
+
const parts = PathProxyEngine.parsePath(path);
|
|
46
|
+
let current = rootTarget;
|
|
47
|
+
for (let i = 0; i < parts.length; i++) {
|
|
48
|
+
const part = parts[i];
|
|
49
|
+
if (part === "..") {
|
|
50
|
+
const parent = getParent(current);
|
|
51
|
+
if (!parent || typeof parent !== "object") {
|
|
52
|
+
throw new Error(sf(COMPARISON_ERROR_MESSAGES.CONTEXT_NOT_OBJECT_COMPARISON, i + 1, path));
|
|
53
|
+
}
|
|
54
|
+
current = parent; //PathProxyEngine.create(parentTarget, opts);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
current = getValue(current, part);
|
|
58
|
+
if (!ignoreUndefined && typeof current === "undefined")
|
|
59
|
+
throw new Error(sf(COMPARISON_ERROR_MESSAGES.PROPERTY_INVALID, path, part));
|
|
60
|
+
if (!ignoreNull && current === null)
|
|
61
|
+
throw new Error(sf(COMPARISON_ERROR_MESSAGES.PROPERTY_INVALID, path, part));
|
|
62
|
+
}
|
|
63
|
+
return current;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return target[prop];
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
// Object.defineProperty(proxy, PROXY_PROP, {
|
|
70
|
+
// value: true, // overwrite by proxy behavior
|
|
71
|
+
// enumerable: false,
|
|
72
|
+
// configurable: false,
|
|
73
|
+
// writable: false,
|
|
74
|
+
// });
|
|
75
|
+
return proxy;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Parses a path string into individual components
|
|
79
|
+
* @param path - The path string to parse (e.g., "user.address.city")
|
|
80
|
+
* @returns An array of path components
|
|
81
|
+
* @throws Error if the path is invalid
|
|
82
|
+
*/
|
|
83
|
+
static parsePath(path) {
|
|
84
|
+
if (typeof path !== "string" || !path.trim())
|
|
85
|
+
throw new Error(sf(COMPARISON_ERROR_MESSAGES.INVALID_PATH, path));
|
|
86
|
+
return path.match(/(\.\.|[^/.]+)/g) || [];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF0aFByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1BhdGhQcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUvQixNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7SUFDeEMsT0FBTyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBVyxFQUFFLElBQVksRUFBRSxFQUFFO0lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztRQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQVdGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUNYLFVBQWEsRUFDYixJQUtDO1FBRUQsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxHQUFHO1lBQzNELFNBQVMsRUFBRSxpQkFBaUI7WUFDNUIsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixVQUFVLEVBQUUsS0FBSztZQUNqQixlQUFlLEVBQUUsS0FBSztZQUN0QixHQUFHLElBQUk7U0FDUixDQUFDO1FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBUyxFQUFFO1lBQ2pDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSTtnQkFDZCxJQUFJLElBQUksS0FBSyxrQkFBa0IsRUFBRSxDQUFDO29CQUNoQyxPQUFPLFVBQVUsSUFBWTt3QkFDM0IsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDOUMsSUFBSSxPQUFPLEdBQVEsVUFBVSxDQUFDO3dCQUU5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDOzRCQUN0QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3RCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dDQUNsQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0NBQ2xDLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7b0NBQzFDLE1BQU0sSUFBSSxLQUFLLENBQ2IsRUFBRSxDQUNBLHlCQUF5QixDQUFDLDZCQUE2QixFQUN2RCxDQUFDLEdBQUcsQ0FBQyxFQUNMLElBQUksQ0FDTCxDQUNGLENBQUM7Z0NBQ0osQ0FBQztnQ0FDRCxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsNkNBQTZDO2dDQUMvRCxTQUFTOzRCQUNYLENBQUM7NEJBRUQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7NEJBQ2xDLElBQUksQ0FBQyxlQUFlLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVztnQ0FDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYixFQUFFLENBQUMseUJBQXlCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUMzRCxDQUFDOzRCQUVKLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxLQUFLLElBQUk7Z0NBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsRUFBRSxDQUFDLHlCQUF5QixDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDM0QsQ0FBQzt3QkFDTixDQUFDO3dCQUVELE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsNkNBQTZDO1FBQzdDLGdEQUFnRDtRQUNoRCx1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixNQUFNO1FBRU4sT0FBTyxLQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUNuQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTVBBUklTT05fRVJST1JfTUVTU0FHRVMsIFZBTElEQVRJT05fUEFSRU5UX0tFWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHNmIH0gZnJvbSBcIi4vc3RyaW5nc1wiO1xuXG5jb25zdCBmYWxsYmFja0dldFBhcmVudCA9ICh0YXJnZXQ6IGFueSkgPT4ge1xuICByZXR1cm4gdGFyZ2V0W1ZBTElEQVRJT05fUEFSRU5UX0tFWV07XG59O1xuXG5jb25zdCBmYWxsYmFja0dldFZhbHVlID0gKHRhcmdldDogYW55LCBwcm9wOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBwcm9wKSlcbiAgICB0aHJvdyBuZXcgRXJyb3Ioc2YoQ09NUEFSSVNPTl9FUlJPUl9NRVNTQUdFUy5QUk9QRVJUWV9OT1RfRVhJU1QsIHByb3ApKTtcbiAgcmV0dXJuIHRhcmdldFtwcm9wXTtcbn07XG5cbi8qKlxuICogUHJveHkgb2JqZWN0IHRoYXQgcHJvdmlkZXMgcGF0aC1iYXNlZCBhY2Nlc3MgdG8gbmVzdGVkIHByb3BlcnRpZXNcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHRhcmdldCBvYmplY3QgYmVpbmcgcHJveGllZFxuICovXG5leHBvcnQgdHlwZSBQYXRoUHJveHk8VD4gPSBUICYge1xuICAvLyBbUFJPWFlfUFJPUF06IGJvb2xlYW47XG4gIGdldFZhbHVlRnJvbVBhdGg6IChwYXRoOiBzdHJpbmcsIGZhbGxiYWNrPzogYW55KSA9PiBhbnk7XG59O1xuXG4vKipcbiAqIFN0YW5kYXJkIHBhdGggcmVzb2x1dGlvbiB1dGlsaXR5IGZvciBhY2Nlc3NpbmcgbmVzdGVkIG9iamVjdCBwcm9wZXJ0aWVzLlxuICogUHJvdmlkZXMgY29uc2lzdGVudCBkb3Qtbm90YXRpb24gYWNjZXNzIHRvIGJvdGggcGFyZW50IGFuZCBjaGlsZCBwcm9wZXJ0aWVzXG4gKiBhY3Jvc3MgY29tcGxleCBvYmplY3Qgc3RydWN0dXJlcy5cbiAqXG4gKiAtIERvdC1ub3RhdGlvbiBwYXRoIHJlc29sdXRpb24gKCdvYmplY3QuY2hpbGQucHJvcGVydHknKVxuICogLSBQYXJlbnQgdHJhdmVyc2FsIHVzaW5nICcuLi8nIG5vdGF0aW9uXG4gKiAtIENvbmZpZ3VyYWJsZSBwcm9wZXJ0eSBhY2Nlc3MgYmVoYXZpb3JcbiAqIC0gTnVsbC91bmRlZmluZWQgc2FmZXR5IGNoZWNrc1xuICovXG5leHBvcnQgY2xhc3MgUGF0aFByb3h5RW5naW5lIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwYXRoLWF3YXJlIHByb3h5IGZvciB0aGUgdGFyZ2V0IG9iamVjdFxuICAgKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSB0YXJnZXQgb2JqZWN0XG4gICAqIEBwYXJhbSB7VH0gcm9vdFRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0IHRvIHByb3h5XG4gICAqIEBwYXJhbSBvcHRzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSBvcHRzLmdldFZhbHVlIC0gQ3VzdG9tIGZ1bmN0aW9uIHRvIGdldCBwcm9wZXJ0eSB2YWx1ZVxuICAgKiBAcGFyYW0gb3B0cy5nZXRQYXJlbnQgLSBDdXN0b20gZnVuY3Rpb24gdG8gZ2V0IHBhcmVudCBvYmplY3RcbiAgICogQHBhcmFtIG9wdHMuaWdub3JlVW5kZWZpbmVkIC0gV2hldGhlciB0byBpZ25vcmUgdW5kZWZpbmVkIHZhbHVlcyBpbiBwYXRoc1xuICAgKiBAcGFyYW0gb3B0cy5pZ25vcmVOdWxsIC0gV2hldGhlciB0byBpZ25vcmUgbnVsbCB2YWx1ZXMgaW4gcGF0aHNcbiAgICogQHJldHVybnMgQSBwcm94eSBvYmplY3Qgd2l0aCBwYXRoIGFjY2VzcyBjYXBhYmlsaXRpZXNcbiAgICovXG4gIHN0YXRpYyBjcmVhdGU8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgcm9vdFRhcmdldDogVCxcbiAgICBvcHRzPzoge1xuICAgICAgZ2V0VmFsdWU/OiAodGFyZ2V0OiBULCBwcm9wOiBzdHJpbmcpID0+IGFueTtcbiAgICAgIGdldFBhcmVudD86ICh0YXJnZXQ6IFQpID0+IGFueTtcbiAgICAgIGlnbm9yZVVuZGVmaW5lZDogYm9vbGVhbjtcbiAgICAgIGlnbm9yZU51bGw6IGJvb2xlYW47XG4gICAgfVxuICApOiBQYXRoUHJveHk8VD4ge1xuICAgIGNvbnN0IHsgZ2V0VmFsdWUsIGdldFBhcmVudCwgaWdub3JlVW5kZWZpbmVkLCBpZ25vcmVOdWxsIH0gPSB7XG4gICAgICBnZXRQYXJlbnQ6IGZhbGxiYWNrR2V0UGFyZW50LFxuICAgICAgZ2V0VmFsdWU6IGZhbGxiYWNrR2V0VmFsdWUsXG4gICAgICBpZ25vcmVOdWxsOiBmYWxzZSxcbiAgICAgIGlnbm9yZVVuZGVmaW5lZDogZmFsc2UsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG5cbiAgICBjb25zdCBwcm94eSA9IG5ldyBQcm94eSh7fSBhcyBhbnksIHtcbiAgICAgIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgaWYgKHByb3AgPT09IFwiZ2V0VmFsdWVGcm9tUGF0aFwiKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXRoOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBQYXRoUHJveHlFbmdpbmUucGFyc2VQYXRoKHBhdGgpO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnQ6IGFueSA9IHJvb3RUYXJnZXQ7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgY29uc3QgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgICAgICAgICBpZiAocGFydCA9PT0gXCIuLlwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gZ2V0UGFyZW50KGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGlmICghcGFyZW50IHx8IHR5cGVvZiBwYXJlbnQgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgc2YoXG4gICAgICAgICAgICAgICAgICAgICAgQ09NUEFSSVNPTl9FUlJPUl9NRVNTQUdFUy5DT05URVhUX05PVF9PQkpFQ1RfQ09NUEFSSVNPTixcbiAgICAgICAgICAgICAgICAgICAgICBpICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBwYXJlbnQ7IC8vUGF0aFByb3h5RW5naW5lLmNyZWF0ZShwYXJlbnRUYXJnZXQsIG9wdHMpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY3VycmVudCA9IGdldFZhbHVlKGN1cnJlbnQsIHBhcnQpO1xuICAgICAgICAgICAgICBpZiAoIWlnbm9yZVVuZGVmaW5lZCAmJiB0eXBlb2YgY3VycmVudCA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBzZihDT01QQVJJU09OX0VSUk9SX01FU1NBR0VTLlBST1BFUlRZX0lOVkFMSUQsIHBhdGgsIHBhcnQpXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBpZiAoIWlnbm9yZU51bGwgJiYgY3VycmVudCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBzZihDT01QQVJJU09OX0VSUk9SX01FU1NBR0VTLlBST1BFUlRZX0lOVkFMSUQsIHBhdGgsIHBhcnQpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YXJnZXRbcHJvcF07XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3h5LCBQUk9YWV9QUk9QLCB7XG4gICAgLy8gICB2YWx1ZTogdHJ1ZSwgLy8gb3ZlcndyaXRlIGJ5IHByb3h5IGJlaGF2aW9yXG4gICAgLy8gICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAvLyAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgLy8gICB3cml0YWJsZTogZmFsc2UsXG4gICAgLy8gfSk7XG5cbiAgICByZXR1cm4gcHJveHkgYXMgUGF0aFByb3h5PFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBhIHBhdGggc3RyaW5nIGludG8gaW5kaXZpZHVhbCBjb21wb25lbnRzXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggc3RyaW5nIHRvIHBhcnNlIChlLmcuLCBcInVzZXIuYWRkcmVzcy5jaXR5XCIpXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhdGggY29tcG9uZW50c1xuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBwYXRoIGlzIGludmFsaWRcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHBhcnNlUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiIHx8ICFwYXRoLnRyaW0oKSlcbiAgICAgIHRocm93IG5ldyBFcnJvcihzZihDT01QQVJJU09OX0VSUk9SX01FU1NBR0VTLklOVkFMSURfUEFUSCwgcGF0aCkpO1xuICAgIHJldHVybiBwYXRoLm1hdGNoKC8oXFwuXFwufFteLy5dKykvZykgfHwgW107XG4gIH1cbn1cbiJdfQ==
|
package/lib/esm/utils/index.d.ts
CHANGED
package/lib/esm/utils/index.js
CHANGED
|
@@ -3,8 +3,9 @@ export * from "./dates";
|
|
|
3
3
|
export * from "./Decoration";
|
|
4
4
|
export * from "./decorators";
|
|
5
5
|
export * from "./hashing";
|
|
6
|
+
export * from "./PathProxy";
|
|
6
7
|
export * from "./registry";
|
|
7
8
|
export * from "./serialization";
|
|
8
9
|
export * from "./strings";
|
|
9
10
|
export * from "./types";
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0ZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0RlY29yYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hhc2hpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1BhdGhQcm94eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVnaXN0cnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcmlhbGl6YXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0cmluZ3NcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
2
|
import { DiffValidatorOptions } from "../types";
|
|
3
|
+
import type { PathProxy } from "../../utils";
|
|
3
4
|
/**
|
|
4
5
|
* @summary Diff Validator
|
|
5
6
|
*
|
|
@@ -16,12 +17,13 @@ export declare class DiffValidator extends Validator<DiffValidatorOptions> {
|
|
|
16
17
|
* @summary Validates a model
|
|
17
18
|
*
|
|
18
19
|
* @param {string} value
|
|
19
|
-
* @param {
|
|
20
|
+
* @param {DiffValidatorOptions} options
|
|
21
|
+
* @param {PathProxy<any>} accessor - Proxy-like object used to resolve values from nested structures via path strings.
|
|
20
22
|
*
|
|
21
23
|
* @return {string | undefined}
|
|
22
24
|
*
|
|
23
25
|
* @override
|
|
24
26
|
* @see Validator#hasErrors
|
|
25
27
|
*/
|
|
26
|
-
hasErrors(value: any, options: DiffValidatorOptions,
|
|
28
|
+
hasErrors(value: any, options: DiffValidatorOptions, accessor: PathProxy<any>): string | undefined;
|
|
27
29
|
}
|
|
@@ -11,7 +11,6 @@ import { Validator } from "./Validator";
|
|
|
11
11
|
import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
|
|
12
12
|
import { validator } from "./decorators";
|
|
13
13
|
import { isEqual } from "@decaf-ts/reflection";
|
|
14
|
-
import { getValueByPath } from "./utils";
|
|
15
14
|
/**
|
|
16
15
|
* @summary Diff Validator
|
|
17
16
|
*
|
|
@@ -30,17 +29,18 @@ let DiffValidator = class DiffValidator extends Validator {
|
|
|
30
29
|
* @summary Validates a model
|
|
31
30
|
*
|
|
32
31
|
* @param {string} value
|
|
33
|
-
* @param {
|
|
32
|
+
* @param {DiffValidatorOptions} options
|
|
33
|
+
* @param {PathProxy<any>} accessor - Proxy-like object used to resolve values from nested structures via path strings.
|
|
34
34
|
*
|
|
35
35
|
* @return {string | undefined}
|
|
36
36
|
*
|
|
37
37
|
* @override
|
|
38
38
|
* @see Validator#hasErrors
|
|
39
39
|
*/
|
|
40
|
-
hasErrors(value, options,
|
|
40
|
+
hasErrors(value, options, accessor) {
|
|
41
41
|
let comparisonPropertyValue;
|
|
42
42
|
try {
|
|
43
|
-
comparisonPropertyValue =
|
|
43
|
+
comparisonPropertyValue = accessor.getValueFromPath(options[ValidationKeys.DIFF]);
|
|
44
44
|
}
|
|
45
45
|
catch (e) {
|
|
46
46
|
return this.getMessage(e.message || this.message);
|
|
@@ -55,4 +55,4 @@ DiffValidator = __decorate([
|
|
|
55
55
|
__metadata("design:paramtypes", [String])
|
|
56
56
|
], DiffValidator);
|
|
57
57
|
export { DiffValidator };
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlmZlZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvRGlmZlZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHL0M7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYyxTQUFRLFNBQStCO0lBQ2hFLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsSUFBSTtRQUN2RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUE2QixFQUM3QixRQUF3QjtRQUV4QixJQUFJLHVCQUE0QixDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDakQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDO1lBQzVDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUNiLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFDL0IsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FDN0I7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBdENZLGFBQWE7SUFEekIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7O0dBQ2xCLGFBQWEsQ0FzQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRGlmZlZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB0eXBlIHsgUGF0aFByb3h5IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgRGlmZiBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI0RpZmZWYWxpZGF0b3J9XG4gKlxuICogQGNsYXNzIERpZmZWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuRElGRilcbmV4cG9ydCBjbGFzcyBEaWZmVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPERpZmZWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuRElGRikge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge0RpZmZWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqIEBwYXJhbSB7UGF0aFByb3h5PGFueT59IGFjY2Vzc29yIC0gUHJveHktbGlrZSBvYmplY3QgdXNlZCB0byByZXNvbHZlIHZhbHVlcyBmcm9tIG5lc3RlZCBzdHJ1Y3R1cmVzIHZpYSBwYXRoIHN0cmluZ3MuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IERpZmZWYWxpZGF0b3JPcHRpb25zLFxuICAgIGFjY2Vzc29yOiBQYXRoUHJveHk8YW55PlxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZTogYW55O1xuICAgIHRyeSB7XG4gICAgICBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSA9IGFjY2Vzc29yLmdldFZhbHVlRnJvbVBhdGgoXG4gICAgICAgIG9wdGlvbnNbVmFsaWRhdGlvbktleXMuRElGRl1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBpc0VxdWFsKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSlcbiAgICAgID8gdGhpcy5nZXRNZXNzYWdlKFxuICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsXG4gICAgICAgICAgb3B0aW9uc1tWYWxpZGF0aW9uS2V5cy5ESUZGXVxuICAgICAgICApXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
@@ -71,6 +71,7 @@ let EmailValidator = class EmailValidator extends PatternValidator {
|
|
|
71
71
|
hasErrors(value, options = {}) {
|
|
72
72
|
return super.hasErrors(value, {
|
|
73
73
|
...options,
|
|
74
|
+
message: options.message || this.message,
|
|
74
75
|
pattern: options?.pattern || DEFAULT_PATTERNS.EMAIL,
|
|
75
76
|
});
|
|
76
77
|
}
|
|
@@ -80,4 +81,4 @@ EmailValidator = __decorate([
|
|
|
80
81
|
__metadata("design:paramtypes", [String])
|
|
81
82
|
], EmailValidator);
|
|
82
83
|
export { EmailValidator };
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxWYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL0VtYWlsVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLGNBQWMsR0FDZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUVJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWUsU0FBUSxnQkFBZ0I7SUFDbEQsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxLQUFLO1FBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDYSxTQUFTLENBQ3ZCLEtBQWEsRUFDYixVQUFtQyxFQUFFO1FBRXJDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU87WUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSztTQUNwRCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTtBQTlCWSxjQUFjO0lBRDFCLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDOztHQUNuQixjQUFjLENBOEIxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERFRkFVTFRfRVJST1JfTUVTU0FHRVMsXG4gIERFRkFVTFRfUEFUVEVSTlMsXG4gIFZhbGlkYXRpb25LZXlzLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tIFwiLi9QYXR0ZXJuVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgZm9yIGNoZWNraW5nIGlmIGEgc3RyaW5nIGlzIGEgdmFsaWQgZW1haWwgYWRkcmVzc1xuICogQHN1bW1hcnkgVGhlIEVtYWlsVmFsaWRhdG9yIGNoZWNrcyBpZiBhIHN0cmluZyBtYXRjaGVzIGEgc3RhbmRhcmQgZW1haWwgYWRkcmVzcyBwYXR0ZXJuLlxuICogSXQgZXh0ZW5kcyB0aGUgUGF0dGVyblZhbGlkYXRvciBhbmQgdXNlcyBhIHByZWRlZmluZWQgZW1haWwgcmVnZXggcGF0dGVybiB0byB2YWxpZGF0ZSBlbWFpbCBhZGRyZXNzZXMuXG4gKiBUaGlzIHZhbGlkYXRvciBpcyB0eXBpY2FsbHkgdXNlZCB3aXRoIHRoZSBAZW1haWwgZGVjb3JhdG9yLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gLSBDdXN0b20gZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gdmFsaWRhdGlvbiBmYWlscywgZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjRU1BSUx9XG4gKlxuICogQGNsYXNzIEVtYWlsVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBQYXR0ZXJuVmFsaWRhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhbiBlbWFpbCB2YWxpZGF0b3Igd2l0aCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIGNvbnN0IGVtYWlsVmFsaWRhdG9yID0gbmV3IEVtYWlsVmFsaWRhdG9yKCk7XG4gKlxuICogLy8gQ3JlYXRlIGFuIGVtYWlsIHZhbGlkYXRvciB3aXRoIGN1c3RvbSBlcnJvciBtZXNzYWdlXG4gKiBjb25zdCBjdXN0b21FbWFpbFZhbGlkYXRvciA9IG5ldyBFbWFpbFZhbGlkYXRvcihcIlBsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3NcIik7XG4gKlxuICogLy8gVmFsaWRhdGUgYW4gZW1haWxcbiAqIGNvbnN0IHJlc3VsdCA9IGVtYWlsVmFsaWRhdG9yLmhhc0Vycm9ycyhcInVzZXJAZXhhbXBsZS5jb21cIik7IC8vIHVuZGVmaW5lZCAodmFsaWQpXG4gKiBjb25zdCBpbnZhbGlkUmVzdWx0ID0gZW1haWxWYWxpZGF0b3IuaGFzRXJyb3JzKFwiaW52YWxpZC1lbWFpbFwiKTsgLy8gUmV0dXJucyBlcnJvciBtZXNzYWdlIChpbnZhbGlkKVxuICogYGBgXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENsaWVudFxuICogICBwYXJ0aWNpcGFudCBFIGFzIEVtYWlsVmFsaWRhdG9yXG4gKiAgIHBhcnRpY2lwYW50IFAgYXMgUGF0dGVyblZhbGlkYXRvclxuICpcbiAqICAgQy0+PkU6IG5ldyBFbWFpbFZhbGlkYXRvcihtZXNzYWdlKVxuICogICBFLT4+UDogc3VwZXIobWVzc2FnZSlcbiAqICAgQy0+PkU6IGhhc0Vycm9ycyh2YWx1ZSwgb3B0aW9ucylcbiAqICAgRS0+PlA6IHN1cGVyLmhhc0Vycm9ycyh2YWx1ZSwgb3B0aW9ucyB3aXRoIEVNQUlMIHBhdHRlcm4pXG4gKiAgIFAtLT4+RTogdmFsaWRhdGlvbiByZXN1bHRcbiAqICAgRS0tPj5DOiB2YWxpZGF0aW9uIHJlc3VsdFxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuRU1BSUwpXG5leHBvcnQgY2xhc3MgRW1haWxWYWxpZGF0b3IgZXh0ZW5kcyBQYXR0ZXJuVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5FTUFJTCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCBlbWFpbCBhZGRyZXNzXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyB0aGF0IHRoZSBwcm92aWRlZCBzdHJpbmcgbWF0Y2hlcyB0aGUgZW1haWwgcGF0dGVybi5cbiAgICogVGhpcyBtZXRob2QgZXh0ZW5kcyB0aGUgUGF0dGVyblZhbGlkYXRvcidzIGhhc0Vycm9ycyBtZXRob2QgYnkgZW5zdXJpbmdcbiAgICogdGhlIGVtYWlsIHBhdHRlcm4gaXMgdXNlZCwgZXZlbiBpZiBub3QgZXhwbGljaXRseSBwcm92aWRlZCBpbiB0aGUgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVGhlIHN0cmluZyB0byB2YWxpZGF0ZSBhcyBhbiBlbWFpbCBhZGRyZXNzXG4gICAqIEBwYXJhbSB7UGF0dGVyblZhbGlkYXRvck9wdGlvbnN9IFtvcHRpb25zPXt9XSAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9IEVycm9yIG1lc3NhZ2UgaWYgdmFsaWRhdGlvbiBmYWlscywgdW5kZWZpbmVkIGlmIHZhbGlkYXRpb24gcGFzc2VzXG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFBhdHRlcm5WYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcnModmFsdWUsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtZXNzYWdlOiBvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLFxuICAgICAgcGF0dGVybjogb3B0aW9ucz8ucGF0dGVybiB8fCBERUZBVUxUX1BBVFRFUk5TLkVNQUlMLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
2
|
import { EqualsValidatorOptions } from "../types";
|
|
3
|
+
import type { PathProxy } from "../../utils";
|
|
3
4
|
/**
|
|
4
5
|
* @summary Equals Validator
|
|
5
6
|
*
|
|
@@ -16,12 +17,13 @@ export declare class EqualsValidator extends Validator<EqualsValidatorOptions> {
|
|
|
16
17
|
* @summary Validates a model
|
|
17
18
|
*
|
|
18
19
|
* @param {string} value
|
|
19
|
-
* @param {
|
|
20
|
+
* @param {EqualsValidatorOptions} options
|
|
21
|
+
* @param {PathProxy<any>} accessor - Proxy-like object used to resolve values from nested structures via path strings.
|
|
20
22
|
*
|
|
21
23
|
* @return {string | undefined}
|
|
22
24
|
*
|
|
23
25
|
* @override
|
|
24
26
|
* @see Validator#hasErrors
|
|
25
27
|
*/
|
|
26
|
-
hasErrors(value: any, options: EqualsValidatorOptions,
|
|
28
|
+
hasErrors(value: any, options: EqualsValidatorOptions, accessor: PathProxy<any>): string | undefined;
|
|
27
29
|
}
|
|
@@ -11,7 +11,6 @@ import { Validator } from "./Validator";
|
|
|
11
11
|
import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
|
|
12
12
|
import { validator } from "./decorators";
|
|
13
13
|
import { isEqual } from "@decaf-ts/reflection";
|
|
14
|
-
import { getValueByPath } from "./utils";
|
|
15
14
|
/**
|
|
16
15
|
* @summary Equals Validator
|
|
17
16
|
*
|
|
@@ -30,17 +29,18 @@ let EqualsValidator = class EqualsValidator extends Validator {
|
|
|
30
29
|
* @summary Validates a model
|
|
31
30
|
*
|
|
32
31
|
* @param {string} value
|
|
33
|
-
* @param {
|
|
32
|
+
* @param {EqualsValidatorOptions} options
|
|
33
|
+
* @param {PathProxy<any>} accessor - Proxy-like object used to resolve values from nested structures via path strings.
|
|
34
34
|
*
|
|
35
35
|
* @return {string | undefined}
|
|
36
36
|
*
|
|
37
37
|
* @override
|
|
38
38
|
* @see Validator#hasErrors
|
|
39
39
|
*/
|
|
40
|
-
hasErrors(value, options,
|
|
40
|
+
hasErrors(value, options, accessor) {
|
|
41
41
|
let comparisonPropertyValue;
|
|
42
42
|
try {
|
|
43
|
-
comparisonPropertyValue =
|
|
43
|
+
comparisonPropertyValue = accessor.getValueFromPath(options[ValidationKeys.EQUALS]);
|
|
44
44
|
}
|
|
45
45
|
catch (e) {
|
|
46
46
|
return this.getMessage(e.message || this.message);
|
|
@@ -60,4 +60,4 @@ export { EqualsValidator };
|
|
|
60
60
|
// validationKey: ValidationKeys.EQUALS,
|
|
61
61
|
// save: false,
|
|
62
62
|
// } as ValidatorDefinition);
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXF1YWxzVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9FcXVhbHNWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRy9DOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWdCLFNBQVEsU0FBaUM7SUFDcEUsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxNQUFNO1FBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxTQUFTLENBQ2QsS0FBVSxFQUNWLE9BQStCLEVBQy9CLFFBQXdCO1FBRXhCLElBQUksdUJBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUNqRCxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUMvQixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUM7WUFDNUMsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FDYixPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQy9CLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQy9CLENBQUM7SUFDUixDQUFDO0NBQ0YsQ0FBQTtBQXRDWSxlQUFlO0lBRDNCLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDOztHQUNwQixlQUFlLENBc0MzQjs7QUFFRCx3QkFBd0I7QUFDeEIsZ0NBQWdDO0FBQ2hDLDBDQUEwQztBQUMxQyxpQkFBaUI7QUFDakIsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRXF1YWxzVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBQYXRoUHJveHkgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBFcXVhbHMgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNFUVVBTFN9XG4gKlxuICogQGNsYXNzIEVxdWFsc1ZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5FUVVBTFMpXG5leHBvcnQgY2xhc3MgRXF1YWxzVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPEVxdWFsc1ZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5FUVVBTFMpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtFcXVhbHNWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqIEBwYXJhbSB7UGF0aFByb3h5PGFueT59IGFjY2Vzc29yIC0gUHJveHktbGlrZSBvYmplY3QgdXNlZCB0byByZXNvbHZlIHZhbHVlcyBmcm9tIG5lc3RlZCBzdHJ1Y3R1cmVzIHZpYSBwYXRoIHN0cmluZ3MuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IEVxdWFsc1ZhbGlkYXRvck9wdGlvbnMsXG4gICAgYWNjZXNzb3I6IFBhdGhQcm94eTxhbnk+XG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlOiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlID0gYWNjZXNzb3IuZ2V0VmFsdWVGcm9tUGF0aChcbiAgICAgICAgb3B0aW9uc1tWYWxpZGF0aW9uS2V5cy5FUVVBTFNdXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShlLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNFcXVhbCh2YWx1ZSwgY29tcGFyaXNvblByb3BlcnR5VmFsdWUpXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiB0aGlzLmdldE1lc3NhZ2UoXG4gICAgICAgICAgb3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSxcbiAgICAgICAgICBvcHRpb25zW1ZhbGlkYXRpb25LZXlzLkVRVUFMU11cbiAgICAgICAgKTtcbiAgfVxufVxuXG4vLyBWYWxpZGF0aW9uLnJlZ2lzdGVyKHtcbi8vICAgdmFsaWRhdG9yOiBFcXVhbHNWYWxpZGF0b3IsXG4vLyAgIHZhbGlkYXRpb25LZXk6IFZhbGlkYXRpb25LZXlzLkVRVUFMUyxcbi8vICAgc2F2ZTogZmFsc2UsXG4vLyB9IGFzIFZhbGlkYXRvckRlZmluaXRpb24pO1xuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
2
|
import { GreaterThanOrEqualValidatorOptions } from "../types";
|
|
3
|
+
import type { PathProxy } from "../../utils/PathProxy";
|
|
3
4
|
/**
|
|
4
5
|
* @summary Greater Than or Equal Validator
|
|
5
6
|
*
|
|
@@ -16,12 +17,13 @@ export declare class GreaterThanOrEqualValidator extends Validator<GreaterThanOr
|
|
|
16
17
|
* @summary Validates a model
|
|
17
18
|
*
|
|
18
19
|
* @param {string} value
|
|
19
|
-
* @param {
|
|
20
|
+
* @param {GreaterThanOrEqualValidatorOptions} options
|
|
21
|
+
* @param {PathProxy<any>} accessor - Proxy-like object used to resolve values from nested structures via path strings.
|
|
20
22
|
*
|
|
21
23
|
* @return {string | undefined}
|
|
22
24
|
*
|
|
23
25
|
* @override
|
|
24
26
|
* @see Validator#hasErrors
|
|
25
27
|
*/
|
|
26
|
-
hasErrors(value: any, options: GreaterThanOrEqualValidatorOptions,
|
|
28
|
+
hasErrors(value: any, options: GreaterThanOrEqualValidatorOptions, accessor: PathProxy<any>): string | undefined;
|
|
27
29
|
}
|