@decaf-ts/decorator-validation 1.7.16 → 1.7.18
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/README.md +2 -2
- package/dist/decorator-validation.cjs +148 -88
- package/dist/decorator-validation.esm.cjs +145 -84
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/mcp/ModelContextProtocol.d.ts +100 -0
- package/lib/esm/mcp/ModelContextProtocol.js +110 -1
- package/lib/esm/model/Model.js +7 -1
- package/lib/esm/model/constants.d.ts +31 -22
- package/lib/esm/model/constants.js +32 -23
- package/lib/esm/model/construction.d.ts +29 -14
- package/lib/esm/model/construction.js +30 -15
- package/lib/esm/model/decorators.js +3 -2
- package/lib/esm/utils/constants.d.ts +1 -1
- package/lib/esm/utils/constants.js +2 -2
- package/lib/esm/validation/Validators/constants.d.ts +73 -44
- package/lib/esm/validation/Validators/constants.js +74 -45
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/mcp/ModelContextProtocol.cjs +110 -1
- package/lib/mcp/ModelContextProtocol.d.ts +100 -0
- package/lib/model/Model.cjs +7 -1
- package/lib/model/constants.cjs +32 -23
- package/lib/model/constants.d.ts +31 -22
- package/lib/model/construction.cjs +30 -15
- package/lib/model/construction.d.ts +29 -14
- package/lib/model/decorators.cjs +4 -3
- package/lib/utils/constants.cjs +2 -2
- package/lib/utils/constants.d.ts +1 -1
- package/lib/validation/Validators/constants.cjs +74 -45
- package/lib/validation/Validators/constants.d.ts +73 -44
- package/package.json +3 -1
|
@@ -1,56 +1,65 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
*
|
|
2
|
+
* @description Enumeration of JavaScript primitive type identifiers used by the model system.
|
|
3
|
+
* @summary References the relevant JS primitives and standardizes their string representations across the library.
|
|
4
4
|
* @property {string} STRING references the string primitive
|
|
5
5
|
* @property {string} NUMBER references the number primitive
|
|
6
6
|
* @property {string} BOOLEAN references the boolean primitive
|
|
7
7
|
* @property {string} BIGINT references the bigint primitive
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
8
|
+
* @enum Primitives
|
|
9
|
+
* @readonly
|
|
10
10
|
* @memberOf module:decorator-validation
|
|
11
11
|
*/
|
|
12
12
|
export declare enum Primitives {
|
|
13
|
+
/** references the string primitive */
|
|
13
14
|
STRING = "string",
|
|
15
|
+
/** references the number primitive */
|
|
14
16
|
NUMBER = "number",
|
|
17
|
+
/** references the boolean primitive */
|
|
15
18
|
BOOLEAN = "boolean",
|
|
19
|
+
/** references the bigint primitive */
|
|
16
20
|
BIGINT = "bigint"
|
|
17
21
|
}
|
|
18
22
|
/**
|
|
19
|
-
* @
|
|
20
|
-
*
|
|
23
|
+
* @description Reserved model names which are excluded from model rebuilding.
|
|
24
|
+
* @summary References the Reserved model names to ignore during Model rebuilding to avoid interfering with native types and special cases.
|
|
21
25
|
* @property {string} STRING
|
|
22
26
|
* @property {string} OBJECT
|
|
23
27
|
* @property {string} NUMBER
|
|
24
28
|
* @property {string} BOOLEAN
|
|
25
29
|
* @property {string} BIGINT
|
|
26
30
|
* @property {string} DATE
|
|
27
|
-
*
|
|
28
|
-
* @
|
|
31
|
+
* @enum ReservedModels
|
|
32
|
+
* @readonly
|
|
29
33
|
* @memberOf module:decorator-validation
|
|
30
34
|
*/
|
|
31
35
|
export declare enum ReservedModels {
|
|
36
|
+
/** reserved name for string */
|
|
32
37
|
STRING = "string",
|
|
38
|
+
/** reserved name for object */
|
|
33
39
|
OBJECT = "object",
|
|
40
|
+
/** reserved name for number */
|
|
34
41
|
NUMBER = "number",
|
|
42
|
+
/** reserved name for boolean */
|
|
35
43
|
BOOLEAN = "boolean",
|
|
44
|
+
/** reserved name for bigint */
|
|
36
45
|
BIGINT = "bigint",
|
|
46
|
+
/** reserved name for Date */
|
|
37
47
|
DATE = "date"
|
|
38
48
|
}
|
|
39
49
|
/**
|
|
40
|
-
* @
|
|
41
|
-
*
|
|
42
|
-
* @
|
|
43
|
-
* @property {string}
|
|
44
|
-
* @property {
|
|
45
|
-
* @property {
|
|
46
|
-
* @property {
|
|
47
|
-
* @property {
|
|
48
|
-
* @property {
|
|
49
|
-
* @property {
|
|
50
|
-
* @property {
|
|
51
|
-
* @property {
|
|
52
|
-
*
|
|
53
|
-
* @constant jsTypes
|
|
50
|
+
* @description Basic supported JavaScript types used by the validation system.
|
|
51
|
+
* @summary References the basic supported JS types as strings that can be used for type checking and metadata.
|
|
52
|
+
* @typedef {Object} JsTypes
|
|
53
|
+
* @property {"string"} string String primitive identifier
|
|
54
|
+
* @property {"array"} array Array type identifier
|
|
55
|
+
* @property {"number"} number Number primitive identifier
|
|
56
|
+
* @property {"boolean"} boolean Boolean primitive identifier
|
|
57
|
+
* @property {"symbol"} symbol Symbol primitive identifier
|
|
58
|
+
* @property {"function"} function Function type identifier
|
|
59
|
+
* @property {"object"} object Object type identifier
|
|
60
|
+
* @property {"undefined"} undefined Undefined type identifier
|
|
61
|
+
* @property {"null"} null Null value identifier
|
|
62
|
+
* @property {"bigint"} BIGINT BigInt primitive identifier
|
|
54
63
|
* @memberOf module:decorator-validation
|
|
55
64
|
*/
|
|
56
65
|
export declare const jsTypes: string[];
|
|
@@ -1,58 +1,67 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
*
|
|
2
|
+
* @description Enumeration of JavaScript primitive type identifiers used by the model system.
|
|
3
|
+
* @summary References the relevant JS primitives and standardizes their string representations across the library.
|
|
4
4
|
* @property {string} STRING references the string primitive
|
|
5
5
|
* @property {string} NUMBER references the number primitive
|
|
6
6
|
* @property {string} BOOLEAN references the boolean primitive
|
|
7
7
|
* @property {string} BIGINT references the bigint primitive
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
8
|
+
* @enum Primitives
|
|
9
|
+
* @readonly
|
|
10
10
|
* @memberOf module:decorator-validation
|
|
11
11
|
*/
|
|
12
12
|
export var Primitives;
|
|
13
13
|
(function (Primitives) {
|
|
14
|
+
/** references the string primitive */
|
|
14
15
|
Primitives["STRING"] = "string";
|
|
16
|
+
/** references the number primitive */
|
|
15
17
|
Primitives["NUMBER"] = "number";
|
|
18
|
+
/** references the boolean primitive */
|
|
16
19
|
Primitives["BOOLEAN"] = "boolean";
|
|
20
|
+
/** references the bigint primitive */
|
|
17
21
|
Primitives["BIGINT"] = "bigint";
|
|
18
22
|
})(Primitives || (Primitives = {}));
|
|
19
23
|
/**
|
|
20
|
-
* @
|
|
21
|
-
*
|
|
24
|
+
* @description Reserved model names which are excluded from model rebuilding.
|
|
25
|
+
* @summary References the Reserved model names to ignore during Model rebuilding to avoid interfering with native types and special cases.
|
|
22
26
|
* @property {string} STRING
|
|
23
27
|
* @property {string} OBJECT
|
|
24
28
|
* @property {string} NUMBER
|
|
25
29
|
* @property {string} BOOLEAN
|
|
26
30
|
* @property {string} BIGINT
|
|
27
31
|
* @property {string} DATE
|
|
28
|
-
*
|
|
29
|
-
* @
|
|
32
|
+
* @enum ReservedModels
|
|
33
|
+
* @readonly
|
|
30
34
|
* @memberOf module:decorator-validation
|
|
31
35
|
*/
|
|
32
36
|
export var ReservedModels;
|
|
33
37
|
(function (ReservedModels) {
|
|
38
|
+
/** reserved name for string */
|
|
34
39
|
ReservedModels["STRING"] = "string";
|
|
40
|
+
/** reserved name for object */
|
|
35
41
|
ReservedModels["OBJECT"] = "object";
|
|
42
|
+
/** reserved name for number */
|
|
36
43
|
ReservedModels["NUMBER"] = "number";
|
|
44
|
+
/** reserved name for boolean */
|
|
37
45
|
ReservedModels["BOOLEAN"] = "boolean";
|
|
46
|
+
/** reserved name for bigint */
|
|
38
47
|
ReservedModels["BIGINT"] = "bigint";
|
|
48
|
+
/** reserved name for Date */
|
|
39
49
|
ReservedModels["DATE"] = "date";
|
|
40
50
|
})(ReservedModels || (ReservedModels = {}));
|
|
41
51
|
/**
|
|
42
|
-
* @
|
|
43
|
-
*
|
|
44
|
-
* @
|
|
45
|
-
* @property {string}
|
|
46
|
-
* @property {
|
|
47
|
-
* @property {
|
|
48
|
-
* @property {
|
|
49
|
-
* @property {
|
|
50
|
-
* @property {
|
|
51
|
-
* @property {
|
|
52
|
-
* @property {
|
|
53
|
-
* @property {
|
|
54
|
-
*
|
|
55
|
-
* @constant jsTypes
|
|
52
|
+
* @description Basic supported JavaScript types used by the validation system.
|
|
53
|
+
* @summary References the basic supported JS types as strings that can be used for type checking and metadata.
|
|
54
|
+
* @typedef {Object} JsTypes
|
|
55
|
+
* @property {"string"} string String primitive identifier
|
|
56
|
+
* @property {"array"} array Array type identifier
|
|
57
|
+
* @property {"number"} number Number primitive identifier
|
|
58
|
+
* @property {"boolean"} boolean Boolean primitive identifier
|
|
59
|
+
* @property {"symbol"} symbol Symbol primitive identifier
|
|
60
|
+
* @property {"function"} function Function type identifier
|
|
61
|
+
* @property {"object"} object Object type identifier
|
|
62
|
+
* @property {"undefined"} undefined Undefined type identifier
|
|
63
|
+
* @property {"null"} null Null value identifier
|
|
64
|
+
* @property {"bigint"} BIGINT BigInt primitive identifier
|
|
56
65
|
* @memberOf module:decorator-validation
|
|
57
66
|
*/
|
|
58
67
|
export const jsTypes = [
|
|
@@ -67,4 +76,4 @@ export const jsTypes = [
|
|
|
67
76
|
"null",
|
|
68
77
|
"bigint",
|
|
69
78
|
];
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFOLElBQVksVUFTWDtBQVRELFdBQVksVUFBVTtJQUNwQixzQ0FBc0M7SUFDdEMsK0JBQWlCLENBQUE7SUFDakIsc0NBQXNDO0lBQ3RDLCtCQUFpQixDQUFBO0lBQ2pCLHVDQUF1QztJQUN2QyxpQ0FBbUIsQ0FBQTtJQUNuQixzQ0FBc0M7SUFDdEMsK0JBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVRXLFVBQVUsS0FBVixVQUFVLFFBU3JCO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FhWDtBQWJELFdBQVksY0FBYztJQUN4QiwrQkFBK0I7SUFDL0IsbUNBQWlCLENBQUE7SUFDakIsK0JBQStCO0lBQy9CLG1DQUFpQixDQUFBO0lBQ2pCLCtCQUErQjtJQUMvQixtQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBZ0M7SUFDaEMscUNBQW1CLENBQUE7SUFDbkIsK0JBQStCO0lBQy9CLG1DQUFpQixDQUFBO0lBQ2pCLDZCQUE2QjtJQUM3QiwrQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQWJXLGNBQWMsS0FBZCxjQUFjLFFBYXpCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLFFBQVE7SUFDUixPQUFPO0lBQ1AsUUFBUTtJQUNSLFNBQVM7SUFDVCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFFBQVE7SUFDUixXQUFXO0lBQ1gsTUFBTTtJQUNOLFFBQVE7Q0FDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gRW51bWVyYXRpb24gb2YgSmF2YVNjcmlwdCBwcmltaXRpdmUgdHlwZSBpZGVudGlmaWVycyB1c2VkIGJ5IHRoZSBtb2RlbCBzeXN0ZW0uXG4gKiBAc3VtbWFyeSBSZWZlcmVuY2VzIHRoZSByZWxldmFudCBKUyBwcmltaXRpdmVzIGFuZCBzdGFuZGFyZGl6ZXMgdGhlaXIgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBhY3Jvc3MgdGhlIGxpYnJhcnkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU1RSSU5HIHJlZmVyZW5jZXMgdGhlIHN0cmluZyBwcmltaXRpdmVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOVU1CRVIgcmVmZXJlbmNlcyB0aGUgbnVtYmVyIHByaW1pdGl2ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEJPT0xFQU4gcmVmZXJlbmNlcyB0aGUgYm9vbGVhbiBwcmltaXRpdmVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBCSUdJTlQgcmVmZXJlbmNlcyB0aGUgYmlnaW50IHByaW1pdGl2ZVxuICogQGVudW0gUHJpbWl0aXZlc1xuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIFByaW1pdGl2ZXMge1xuICAvKiogcmVmZXJlbmNlcyB0aGUgc3RyaW5nIHByaW1pdGl2ZSAqL1xuICBTVFJJTkcgPSBcInN0cmluZ1wiLFxuICAvKiogcmVmZXJlbmNlcyB0aGUgbnVtYmVyIHByaW1pdGl2ZSAqL1xuICBOVU1CRVIgPSBcIm51bWJlclwiLFxuICAvKiogcmVmZXJlbmNlcyB0aGUgYm9vbGVhbiBwcmltaXRpdmUgKi9cbiAgQk9PTEVBTiA9IFwiYm9vbGVhblwiLFxuICAvKiogcmVmZXJlbmNlcyB0aGUgYmlnaW50IHByaW1pdGl2ZSAqL1xuICBCSUdJTlQgPSBcImJpZ2ludFwiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZXNlcnZlZCBtb2RlbCBuYW1lcyB3aGljaCBhcmUgZXhjbHVkZWQgZnJvbSBtb2RlbCByZWJ1aWxkaW5nLlxuICogQHN1bW1hcnkgUmVmZXJlbmNlcyB0aGUgUmVzZXJ2ZWQgbW9kZWwgbmFtZXMgdG8gaWdub3JlIGR1cmluZyBNb2RlbCByZWJ1aWxkaW5nIHRvIGF2b2lkIGludGVyZmVyaW5nIHdpdGggbmF0aXZlIHR5cGVzIGFuZCBzcGVjaWFsIGNhc2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNUUklOR1xuICogQHByb3BlcnR5IHtzdHJpbmd9IE9CSkVDVFxuICogQHByb3BlcnR5IHtzdHJpbmd9IE5VTUJFUlxuICogQHByb3BlcnR5IHtzdHJpbmd9IEJPT0xFQU5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBCSUdJTlRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFXG4gKiBAZW51bSBSZXNlcnZlZE1vZGVsc1xuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIFJlc2VydmVkTW9kZWxzIHtcbiAgLyoqIHJlc2VydmVkIG5hbWUgZm9yIHN0cmluZyAqL1xuICBTVFJJTkcgPSBcInN0cmluZ1wiLFxuICAvKiogcmVzZXJ2ZWQgbmFtZSBmb3Igb2JqZWN0ICovXG4gIE9CSkVDVCA9IFwib2JqZWN0XCIsXG4gIC8qKiByZXNlcnZlZCBuYW1lIGZvciBudW1iZXIgKi9cbiAgTlVNQkVSID0gXCJudW1iZXJcIixcbiAgLyoqIHJlc2VydmVkIG5hbWUgZm9yIGJvb2xlYW4gKi9cbiAgQk9PTEVBTiA9IFwiYm9vbGVhblwiLFxuICAvKiogcmVzZXJ2ZWQgbmFtZSBmb3IgYmlnaW50ICovXG4gIEJJR0lOVCA9IFwiYmlnaW50XCIsXG4gIC8qKiByZXNlcnZlZCBuYW1lIGZvciBEYXRlICovXG4gIERBVEUgPSBcImRhdGVcIixcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzaWMgc3VwcG9ydGVkIEphdmFTY3JpcHQgdHlwZXMgdXNlZCBieSB0aGUgdmFsaWRhdGlvbiBzeXN0ZW0uXG4gKiBAc3VtbWFyeSBSZWZlcmVuY2VzIHRoZSBiYXNpYyBzdXBwb3J0ZWQgSlMgdHlwZXMgYXMgc3RyaW5ncyB0aGF0IGNhbiBiZSB1c2VkIGZvciB0eXBlIGNoZWNraW5nIGFuZCBtZXRhZGF0YS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEpzVHlwZXNcbiAqIEBwcm9wZXJ0eSB7XCJzdHJpbmdcIn0gc3RyaW5nIFN0cmluZyBwcmltaXRpdmUgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHtcImFycmF5XCJ9IGFycmF5IEFycmF5IHR5cGUgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHtcIm51bWJlclwifSBudW1iZXIgTnVtYmVyIHByaW1pdGl2ZSBpZGVudGlmaWVyXG4gKiBAcHJvcGVydHkge1wiYm9vbGVhblwifSBib29sZWFuIEJvb2xlYW4gcHJpbWl0aXZlIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7XCJzeW1ib2xcIn0gc3ltYm9sIFN5bWJvbCBwcmltaXRpdmUgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHtcImZ1bmN0aW9uXCJ9IGZ1bmN0aW9uIEZ1bmN0aW9uIHR5cGUgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHtcIm9iamVjdFwifSBvYmplY3QgT2JqZWN0IHR5cGUgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHtcInVuZGVmaW5lZFwifSB1bmRlZmluZWQgVW5kZWZpbmVkIHR5cGUgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHtcIm51bGxcIn0gbnVsbCBOdWxsIHZhbHVlIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7XCJiaWdpbnRcIn0gQklHSU5UIEJpZ0ludCBwcmltaXRpdmUgaWRlbnRpZmllclxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QganNUeXBlcyA9IFtcbiAgXCJzdHJpbmdcIixcbiAgXCJhcnJheVwiLFxuICBcIm51bWJlclwiLFxuICBcImJvb2xlYW5cIixcbiAgXCJzeW1ib2xcIixcbiAgXCJmdW5jdGlvblwiLFxuICBcIm9iamVjdFwiLFxuICBcInVuZGVmaW5lZFwiLFxuICBcIm51bGxcIixcbiAgXCJiaWdpbnRcIixcbl07XG4iXX0=
|
|
@@ -1,31 +1,46 @@
|
|
|
1
1
|
import { Model } from "./Model";
|
|
2
2
|
/**
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
3
|
+
* @description Helper function to create an instance by invoking a constructor with dynamic arguments.
|
|
4
|
+
* @summary Overrides standard construction patterns by wrapping the given constructor to allow spread argument invocation while preserving the prototype chain.
|
|
5
5
|
* @template M the model instance type
|
|
6
|
-
*
|
|
7
|
-
* @param {
|
|
8
|
-
* @
|
|
9
|
-
* @return {M} the new instance
|
|
10
|
-
*
|
|
6
|
+
* @param {any} constructor The constructor function to invoke.
|
|
7
|
+
* @param {...any[]} args Optional arguments to pass to the constructor.
|
|
8
|
+
* @return {M} The newly constructed instance.
|
|
11
9
|
* @function construct
|
|
12
10
|
* @memberOf module:decorator-validation
|
|
13
11
|
*/
|
|
14
12
|
export declare function construct<M extends Model>(constructor: any, ...args: any[]): M;
|
|
15
13
|
/**
|
|
16
|
-
* @
|
|
17
|
-
* @
|
|
18
|
-
*
|
|
14
|
+
* @description Recursively finds the last prototype in the chain before reaching Object.prototype.
|
|
15
|
+
* @summary Walks up the prototype chain to locate the most derived prototype that still precedes the base Object prototype.
|
|
16
|
+
* @param {object} obj The object whose prototype chain will be inspected.
|
|
17
|
+
* @return {object} The last prototype before Object.prototype, or the input object if its prototype is Object.prototype.
|
|
19
18
|
* @function findLastProtoBeforeObject
|
|
20
19
|
* @memberOf module:decorator-validation
|
|
21
20
|
*/
|
|
22
21
|
export declare function findLastProtoBeforeObject(obj: object): object;
|
|
23
22
|
/**
|
|
24
|
-
* @
|
|
25
|
-
*
|
|
26
|
-
* @param {unknown} obj
|
|
27
|
-
*
|
|
23
|
+
* @description Binds the Model class as the root prototype of the provided instance when not already a Model.
|
|
24
|
+
* @summary Ensures objects created outside of the Model inheritance chain gain Model as their ultimate prototype to access model utilities.
|
|
25
|
+
* @param {unknown} obj The object to bind to the Model prototype chain.
|
|
26
|
+
* @return {void}
|
|
28
27
|
* @function bindModelPrototype
|
|
28
|
+
* @mermaid
|
|
29
|
+
* sequenceDiagram
|
|
30
|
+
* participant Caller
|
|
31
|
+
* participant Fn as bindModelPrototype
|
|
32
|
+
* participant M as Model.prototype
|
|
33
|
+
* Caller->>Fn: obj
|
|
34
|
+
* alt obj instanceof Model
|
|
35
|
+
* Fn-->>Caller: return
|
|
36
|
+
* else obj chain ends at Object.prototype
|
|
37
|
+
* Fn->>Fn: setPrototypeOf(obj, M)
|
|
38
|
+
* Fn-->>Caller: return
|
|
39
|
+
* else deep prototype chain
|
|
40
|
+
* Fn->>Fn: walk prototypes
|
|
41
|
+
* Fn->>Fn: setPrototypeOf(last, M)
|
|
42
|
+
* Fn-->>Caller: return
|
|
43
|
+
* end
|
|
29
44
|
* @memberOf module:decorator-validation
|
|
30
45
|
*/
|
|
31
46
|
export declare function bindModelPrototype(obj: unknown): void;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Model } from "./Model.js";
|
|
2
2
|
/**
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
3
|
+
* @description Helper function to create an instance by invoking a constructor with dynamic arguments.
|
|
4
|
+
* @summary Overrides standard construction patterns by wrapping the given constructor to allow spread argument invocation while preserving the prototype chain.
|
|
5
5
|
* @template M the model instance type
|
|
6
|
-
*
|
|
7
|
-
* @param {
|
|
8
|
-
* @
|
|
9
|
-
* @return {M} the new instance
|
|
10
|
-
*
|
|
6
|
+
* @param {any} constructor The constructor function to invoke.
|
|
7
|
+
* @param {...any[]} args Optional arguments to pass to the constructor.
|
|
8
|
+
* @return {M} The newly constructed instance.
|
|
11
9
|
* @function construct
|
|
12
10
|
* @memberOf module:decorator-validation
|
|
13
11
|
*/
|
|
@@ -17,9 +15,10 @@ export function construct(constructor, ...args) {
|
|
|
17
15
|
return _constr(...args);
|
|
18
16
|
}
|
|
19
17
|
/**
|
|
20
|
-
* @
|
|
21
|
-
* @
|
|
22
|
-
*
|
|
18
|
+
* @description Recursively finds the last prototype in the chain before reaching Object.prototype.
|
|
19
|
+
* @summary Walks up the prototype chain to locate the most derived prototype that still precedes the base Object prototype.
|
|
20
|
+
* @param {object} obj The object whose prototype chain will be inspected.
|
|
21
|
+
* @return {object} The last prototype before Object.prototype, or the input object if its prototype is Object.prototype.
|
|
23
22
|
* @function findLastProtoBeforeObject
|
|
24
23
|
* @memberOf module:decorator-validation
|
|
25
24
|
*/
|
|
@@ -37,11 +36,27 @@ export function findLastProtoBeforeObject(obj) {
|
|
|
37
36
|
throw new Error("Could not find proper prototype");
|
|
38
37
|
}
|
|
39
38
|
/**
|
|
40
|
-
* @
|
|
41
|
-
*
|
|
42
|
-
* @param {unknown} obj
|
|
43
|
-
*
|
|
39
|
+
* @description Binds the Model class as the root prototype of the provided instance when not already a Model.
|
|
40
|
+
* @summary Ensures objects created outside of the Model inheritance chain gain Model as their ultimate prototype to access model utilities.
|
|
41
|
+
* @param {unknown} obj The object to bind to the Model prototype chain.
|
|
42
|
+
* @return {void}
|
|
44
43
|
* @function bindModelPrototype
|
|
44
|
+
* @mermaid
|
|
45
|
+
* sequenceDiagram
|
|
46
|
+
* participant Caller
|
|
47
|
+
* participant Fn as bindModelPrototype
|
|
48
|
+
* participant M as Model.prototype
|
|
49
|
+
* Caller->>Fn: obj
|
|
50
|
+
* alt obj instanceof Model
|
|
51
|
+
* Fn-->>Caller: return
|
|
52
|
+
* else obj chain ends at Object.prototype
|
|
53
|
+
* Fn->>Fn: setPrototypeOf(obj, M)
|
|
54
|
+
* Fn-->>Caller: return
|
|
55
|
+
* else deep prototype chain
|
|
56
|
+
* Fn->>Fn: walk prototypes
|
|
57
|
+
* Fn->>Fn: setPrototypeOf(last, M)
|
|
58
|
+
* Fn-->>Caller: return
|
|
59
|
+
* end
|
|
45
60
|
* @memberOf module:decorator-validation
|
|
46
61
|
*/
|
|
47
62
|
export function bindModelPrototype(obj) {
|
|
@@ -63,4 +78,4 @@ export function bindModelPrototype(obj) {
|
|
|
63
78
|
}
|
|
64
79
|
throw new Error("Could not find proper prototype to bind");
|
|
65
80
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL2NvbnN0cnVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLG1CQUFnQjtBQUVoQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixXQUFnQixFQUNoQixHQUFHLElBQVc7SUFFZCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztJQUMxQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEdBQVc7SUFDbkQsSUFBSSxTQUFTLEdBQVEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQy9DLE9BQU8sU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QyxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ3JELElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxNQUFNLENBQUMsU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzlFLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFZO0lBQzdDLElBQUksR0FBRyxZQUFZLEtBQUs7UUFBRSxPQUFPO0lBRWpDLFNBQVMsYUFBYSxDQUFDLGFBQXNCLEVBQUUsU0FBaUI7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFRLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsSUFBSSxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELE9BQU8sU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLElBQ0UsSUFBSSxLQUFLLE1BQU0sQ0FBQyxTQUFTO1lBQ3pCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFDaEQsQ0FBQztZQUNELE9BQU8sYUFBYSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIi4vTW9kZWxcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBieSBpbnZva2luZyBhIGNvbnN0cnVjdG9yIHdpdGggZHluYW1pYyBhcmd1bWVudHMuXG4gKiBAc3VtbWFyeSBPdmVycmlkZXMgc3RhbmRhcmQgY29uc3RydWN0aW9uIHBhdHRlcm5zIGJ5IHdyYXBwaW5nIHRoZSBnaXZlbiBjb25zdHJ1Y3RvciB0byBhbGxvdyBzcHJlYWQgYXJndW1lbnQgaW52b2NhdGlvbiB3aGlsZSBwcmVzZXJ2aW5nIHRoZSBwcm90b3R5cGUgY2hhaW4uXG4gKiBAdGVtcGxhdGUgTSB0aGUgbW9kZWwgaW5zdGFuY2UgdHlwZVxuICogQHBhcmFtIHthbnl9IGNvbnN0cnVjdG9yIFRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiB0byBpbnZva2UuXG4gKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIE9wdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjb25zdHJ1Y3Rvci5cbiAqIEByZXR1cm4ge019IFRoZSBuZXdseSBjb25zdHJ1Y3RlZCBpbnN0YW5jZS5cbiAqIEBmdW5jdGlvbiBjb25zdHJ1Y3RcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdDxNIGV4dGVuZHMgTW9kZWw+KFxuICBjb25zdHJ1Y3RvcjogYW55LFxuICAuLi5hcmdzOiBhbnlbXVxuKTogTSB7XG4gIGNvbnN0IF9jb25zdHIgPSAoLi4uYXJnejogYW55W10pID0+IG5ldyBjb25zdHJ1Y3RvciguLi5hcmd6KTtcbiAgX2NvbnN0ci5wcm90b3R5cGUgPSBjb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIHJldHVybiBfY29uc3RyKC4uLmFyZ3MpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZWN1cnNpdmVseSBmaW5kcyB0aGUgbGFzdCBwcm90b3R5cGUgaW4gdGhlIGNoYWluIGJlZm9yZSByZWFjaGluZyBPYmplY3QucHJvdG90eXBlLlxuICogQHN1bW1hcnkgV2Fsa3MgdXAgdGhlIHByb3RvdHlwZSBjaGFpbiB0byBsb2NhdGUgdGhlIG1vc3QgZGVyaXZlZCBwcm90b3R5cGUgdGhhdCBzdGlsbCBwcmVjZWRlcyB0aGUgYmFzZSBPYmplY3QgcHJvdG90eXBlLlxuICogQHBhcmFtIHtvYmplY3R9IG9iaiBUaGUgb2JqZWN0IHdob3NlIHByb3RvdHlwZSBjaGFpbiB3aWxsIGJlIGluc3BlY3RlZC5cbiAqIEByZXR1cm4ge29iamVjdH0gVGhlIGxhc3QgcHJvdG90eXBlIGJlZm9yZSBPYmplY3QucHJvdG90eXBlLCBvciB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0cyBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZS5cbiAqIEBmdW5jdGlvbiBmaW5kTGFzdFByb3RvQmVmb3JlT2JqZWN0XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTGFzdFByb3RvQmVmb3JlT2JqZWN0KG9iajogb2JqZWN0KTogb2JqZWN0IHtcbiAgbGV0IHByb3RvdHlwZTogYW55ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaik7XG4gIGlmIChwcm90b3R5cGUgPT09IE9iamVjdC5wcm90b3R5cGUpIHJldHVybiBvYmo7XG4gIHdoaWxlIChwcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG90eXBlKTtcbiAgICBpZiAocHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlKSByZXR1cm4gcHJvdG90eXBlO1xuICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG90eXBlKSA9PT0gT2JqZWN0LnByb3RvdHlwZSkgcmV0dXJuIHByb3RvdHlwZTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBwcm9wZXIgcHJvdG90eXBlXCIpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCaW5kcyB0aGUgTW9kZWwgY2xhc3MgYXMgdGhlIHJvb3QgcHJvdG90eXBlIG9mIHRoZSBwcm92aWRlZCBpbnN0YW5jZSB3aGVuIG5vdCBhbHJlYWR5IGEgTW9kZWwuXG4gKiBAc3VtbWFyeSBFbnN1cmVzIG9iamVjdHMgY3JlYXRlZCBvdXRzaWRlIG9mIHRoZSBNb2RlbCBpbmhlcml0YW5jZSBjaGFpbiBnYWluIE1vZGVsIGFzIHRoZWlyIHVsdGltYXRlIHByb3RvdHlwZSB0byBhY2Nlc3MgbW9kZWwgdXRpbGl0aWVzLlxuICogQHBhcmFtIHt1bmtub3dufSBvYmogVGhlIG9iamVjdCB0byBiaW5kIHRvIHRoZSBNb2RlbCBwcm90b3R5cGUgY2hhaW4uXG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGZ1bmN0aW9uIGJpbmRNb2RlbFByb3RvdHlwZVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgRm4gYXMgYmluZE1vZGVsUHJvdG90eXBlXG4gKiAgIHBhcnRpY2lwYW50IE0gYXMgTW9kZWwucHJvdG90eXBlXG4gKiAgIENhbGxlci0+PkZuOiBvYmpcbiAqICAgYWx0IG9iaiBpbnN0YW5jZW9mIE1vZGVsXG4gKiAgICAgRm4tLT4+Q2FsbGVyOiByZXR1cm5cbiAqICAgZWxzZSBvYmogY2hhaW4gZW5kcyBhdCBPYmplY3QucHJvdG90eXBlXG4gKiAgICAgRm4tPj5Gbjogc2V0UHJvdG90eXBlT2Yob2JqLCBNKVxuICogICAgIEZuLS0+PkNhbGxlcjogcmV0dXJuXG4gKiAgIGVsc2UgZGVlcCBwcm90b3R5cGUgY2hhaW5cbiAqICAgICBGbi0+PkZuOiB3YWxrIHByb3RvdHlwZXNcbiAqICAgICBGbi0+PkZuOiBzZXRQcm90b3R5cGVPZihsYXN0LCBNKVxuICogICAgIEZuLS0+PkNhbGxlcjogcmV0dXJuXG4gKiAgIGVuZFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gYmluZE1vZGVsUHJvdG90eXBlKG9iajogdW5rbm93bikge1xuICBpZiAob2JqIGluc3RhbmNlb2YgTW9kZWwpIHJldHVybjtcblxuICBmdW5jdGlvbiBiaW5kUHJvdG90eXBlKG9ialRvT3ZlcnJpZGU6IHVua25vd24sIHByb3RvdHlwZTogb2JqZWN0KSB7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKG9ialRvT3ZlcnJpZGUsIHByb3RvdHlwZSk7XG4gIH1cblxuICBjb25zdCBwcm90b3R5cGU6IGFueSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopO1xuICBpZiAocHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlKSB7XG4gICAgcmV0dXJuIGJpbmRQcm90b3R5cGUob2JqLCBNb2RlbC5wcm90b3R5cGUpO1xuICB9XG4gIHdoaWxlIChwcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICBjb25zdCBwcm90ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvdHlwZSk7XG4gICAgaWYgKFxuICAgICAgcHJvdCA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fFxuICAgICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3QpID09PSBPYmplY3QucHJvdG90eXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gYmluZFByb3RvdHlwZShwcm90b3R5cGUsIE1vZGVsLnByb3RvdHlwZSk7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIHByb3BlciBwcm90b3R5cGUgdG8gYmluZFwiKTtcbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { bindModelPrototype, construct } from "./construction.js";
|
|
|
2
2
|
import { ModelKeys } from "./../utils/constants.js";
|
|
3
3
|
import { Model } from "./Model.js";
|
|
4
4
|
import { metadata } from "@decaf-ts/reflection";
|
|
5
|
-
import { Decoration } from "
|
|
5
|
+
import { Decoration, DecorationKeys, Metadata } from "@decaf-ts/decoration";
|
|
6
6
|
export function modelBaseDecorator(original) {
|
|
7
7
|
// the new constructor behaviour
|
|
8
8
|
const newConstructor = function (...args) {
|
|
@@ -43,6 +43,7 @@ export function modelBaseDecorator(original) {
|
|
|
43
43
|
configurable: false,
|
|
44
44
|
value: original,
|
|
45
45
|
});
|
|
46
|
+
Metadata.set(newConstructor, DecorationKeys.CONSTRUCTOR, original);
|
|
46
47
|
//
|
|
47
48
|
// // anchors the new constructor for future reference
|
|
48
49
|
// Object.defineProperty(original, ModelKeys.ANCHOR, {
|
|
@@ -118,4 +119,4 @@ export function serializedBy(serializer, ...args) {
|
|
|
118
119
|
export function description(description) {
|
|
119
120
|
return metadata(Model.key(ModelKeys.DESCRIPTION), description);
|
|
120
121
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsMEJBQXVCO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0NBQTJCO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsbUJBQWdCO0FBQ2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsUUFBYTtJQUM5QyxnQ0FBZ0M7SUFDaEMsTUFBTSxjQUFjLEdBQVEsVUFBVSxHQUFHLElBQVc7UUFDbEQsTUFBTSxRQUFRLEdBQWdDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMzRSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QixnQ0FBZ0M7UUFDaEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFO1lBQzdDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsS0FBSyxFQUFFLFFBQVE7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsMkVBQTJFO1FBQzNFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxJQUFJLE9BQU87WUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEUsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUUsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsb0RBQW9EO0lBQ3BELGNBQWMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUU5QyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTlELE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDaEQsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsR0FBRyxFQUNILE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUNsQyxjQUFjLENBQ2YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gseURBQXlEO0lBQ3pELE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRTtRQUM1QyxRQUFRLEVBQUUsS0FBSztRQUNmLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFlBQVksRUFBRSxLQUFLO1FBQ25CLEtBQUssRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJO0tBQzNDLENBQUMsQ0FBQztJQUNILEVBQUU7SUFDRix3REFBd0Q7SUFDeEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRTtRQUN0RCxRQUFRLEVBQUUsS0FBSztRQUNmLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLFlBQVksRUFBRSxLQUFLO1FBQ25CLEtBQUssRUFBRSxRQUFRO0tBQ2hCLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkUsRUFBRTtJQUNGLHNEQUFzRDtJQUN0RCxzREFBc0Q7SUFDdEQscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0Qix5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLE1BQU07SUFFTixLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFOUMsa0RBQWtEO0lBQ2xELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxLQUFLO0lBQ25CLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsU0FBaUIsRUFBRSxHQUFHLElBQVc7SUFDeEQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDNUMsU0FBUyxFQUFFLFNBQVM7UUFDcEIsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQWtCLEVBQUUsR0FBRyxJQUFXO0lBQzdELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ2xELFVBQVUsRUFBRSxVQUFVO1FBQ3RCLElBQUksRUFBRSxJQUFJO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFtQjtJQUM3QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmluZE1vZGVsUHJvdG90eXBlLCBjb25zdHJ1Y3QgfSBmcm9tIFwiLi9jb25zdHJ1Y3Rpb25cIjtcbmltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuLi91dGlscy9jb25zdGFudHNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIi4vTW9kZWxcIjtcbmltcG9ydCB7IG1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBEZWNvcmF0aW9uLCBEZWNvcmF0aW9uS2V5cywgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsQmFzZURlY29yYXRvcihvcmlnaW5hbDogYW55KSB7XG4gIC8vIHRoZSBuZXcgY29uc3RydWN0b3IgYmVoYXZpb3VyXG4gIGNvbnN0IG5ld0NvbnN0cnVjdG9yOiBhbnkgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCBpbnN0YW5jZTogUmV0dXJuVHlwZTx0eXBlb2Ygb3JpZ2luYWw+ID0gY29uc3RydWN0KG9yaWdpbmFsLCAuLi5hcmdzKTtcbiAgICBiaW5kTW9kZWxQcm90b3R5cGUoaW5zdGFuY2UpO1xuXG4gICAgLy8gcmUtYXBwbHkgb3JpZ2luYWwgY29uc3RydWN0b3JcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaW5zdGFuY2UsIFwiY29uc3RydWN0b3JcIiwge1xuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IG9yaWdpbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gcnVuIGEgYnVpbGRlciBmdW5jdGlvbiBpZiBkZWZpbmVkIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50IChUaGUgTW9kZWxBcmcpXG4gICAgY29uc3QgYnVpbGRlciA9IE1vZGVsLmdldEJ1aWxkZXIoKTtcbiAgICBpZiAoYnVpbGRlcikgYnVpbGRlcihpbnN0YW5jZSwgYXJncy5sZW5ndGggPyBhcmdzWzBdIDogdW5kZWZpbmVkKTtcblxuICAgIG1ldGFkYXRhKE1vZGVsLmtleShNb2RlbEtleXMuTU9ERUwpLCBvcmlnaW5hbC5uYW1lKShpbnN0YW5jZS5jb25zdHJ1Y3Rvcik7XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG5cbiAgLy8gY29weSBwcm90b3R5cGUgc28gaW5zdGFuY2VvZiBvcGVyYXRvciBzdGlsbCB3b3Jrc1xuICBuZXdDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBvcmlnaW5hbC5wcm90b3R5cGU7XG5cbiAgbWV0YWRhdGEoTW9kZWwua2V5KE1vZGVsS2V5cy5NT0RFTCksIG9yaWdpbmFsLm5hbWUpKG9yaWdpbmFsKTtcblxuICBSZWZsZWN0LmdldE1ldGFkYXRhS2V5cyhvcmlnaW5hbCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIGtleSxcbiAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoa2V5LCBvcmlnaW5hbCksXG4gICAgICBuZXdDb25zdHJ1Y3RvclxuICAgICk7XG4gIH0pO1xuICAvLyBTZXRzIHRoZSBwcm9wZXIgY29uc3RydWN0b3IgbmFtZSBmb3IgdHlwZSB2ZXJpZmljYXRpb25cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld0NvbnN0cnVjdG9yLCBcIm5hbWVcIiwge1xuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IG9yaWdpbmFsLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lLFxuICB9KTtcbiAgLy9cbiAgLy8gYW5jaG9ycyB0aGUgb3JpZ2luYWwgY29uc3RydWN0b3IgZm9yIGZ1dHVyZSByZWZlcmVuY2VcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld0NvbnN0cnVjdG9yLCBNb2RlbEtleXMuQU5DSE9SLCB7XG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IG9yaWdpbmFsLFxuICB9KTtcblxuICBNZXRhZGF0YS5zZXQobmV3Q29uc3RydWN0b3IsIERlY29yYXRpb25LZXlzLkNPTlNUUlVDVE9SLCBvcmlnaW5hbCk7XG4gIC8vXG4gIC8vIC8vIGFuY2hvcnMgdGhlIG5ldyBjb25zdHJ1Y3RvciBmb3IgZnV0dXJlIHJlZmVyZW5jZVxuICAvLyBPYmplY3QuZGVmaW5lUHJvcGVydHkob3JpZ2luYWwsIE1vZGVsS2V5cy5BTkNIT1IsIHtcbiAgLy8gICB3cml0YWJsZTogZmFsc2UsXG4gIC8vICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgLy8gICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAvLyAgIHZhbHVlOiBuZXdDb25zdHJ1Y3RvcixcbiAgLy8gfSk7XG5cbiAgTW9kZWwucmVnaXN0ZXIobmV3Q29uc3RydWN0b3IsIG9yaWdpbmFsLm5hbWUpO1xuXG4gIC8vIHJldHVybiBuZXcgY29uc3RydWN0b3IgKHdpbGwgb3ZlcnJpZGUgb3JpZ2luYWwpXG4gIHJldHVybiBuZXdDb25zdHJ1Y3Rvcjtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgY2xhc3MgYXMgYSBNb2RlbCBjbGFzc1xuICogQGRlc2NyaXB0aW9uXG4gKlxuICogLSBSZWdpc3RlcnMgdGhlIGNsYXNzIHVuZGVyIHRoZSBtb2RlbCByZWdpc3RyeSBzbyBpdCBjYW4gYmUgZWFzaWx5IHJlYnVpbHQ7XG4gKiAtIE92ZXJyaWRlcyB0aGUgY2xhc3MgY29uc3RydWN0b3I7XG4gKiAtIFJ1bnMgdGhlIGdsb2JhbCB7QGxpbmsgTW9kZWxCdWlsZGVyRnVuY3Rpb259IGlmIGRlZmluZWQ7XG4gKlxuICogQGZ1bmN0aW9uIG1vZGVsXG4gKlxuICogQGNhdGVnb3J5IENsYXNzIERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsKCkge1xuICBjb25zdCBrZXkgPSBNb2RlbC5rZXkoTW9kZWxLZXlzLk1PREVMKTtcbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKGtleSkuZGVmaW5lKG1vZGVsQmFzZURlY29yYXRvcikuYXBwbHkoKTtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBoYXNoaW5nIGFsZ29yaXRobSB0byB1c2Ugb24gdGhlIG1vZGVsXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiAtIFJlZ2lzdGVycyB0aGUgY2xhc3MgdW5kZXIgdGhlIG1vZGVsIHJlZ2lzdHJ5IHNvIGl0IGNhbiBiZSBlYXNpbHkgcmVidWlsdDtcbiAqIC0gT3ZlcnJpZGVzIHRoZSBjbGFzcyBjb25zdHJ1Y3RvcjtcbiAqIC0gUnVucyB0aGUgZ2xvYmFsIHtAbGluayBNb2RlbEJ1aWxkZXJGdW5jdGlvbn0gaWYgZGVmaW5lZDtcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWxnb3JpdGhtIHRoZSBhbGdvcml0aG0gdG8gdXNlXG4gKlxuICogQGZ1bmN0aW9uIGhhc2hlZEJ5XG4gKlxuICogQGNhdGVnb3J5IENsYXNzIERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hlZEJ5KGFsZ29yaXRobTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICByZXR1cm4gbWV0YWRhdGEoTW9kZWwua2V5KE1vZGVsS2V5cy5IQVNISU5HKSwge1xuICAgIGFsZ29yaXRobTogYWxnb3JpdGhtLFxuICAgIGFyZ3M6IGFyZ3MsXG4gIH0pO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHNlcmlhbGl6YXRpb24gYWxnb3JpdGhtIHRvIHVzZSBvbiB0aGUgbW9kZWxcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VyaWFsaXplciB0aGUgYWxnb3JpdGhtIHRvIHVzZVxuICpcbiAqIEBmdW5jdGlvbiBzZXJpYWxpemVkQnlcbiAqXG4gKiBAY2F0ZWdvcnkgQ2xhc3MgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplZEJ5KHNlcmlhbGl6ZXI6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgcmV0dXJuIG1ldGFkYXRhKE1vZGVsLmtleShNb2RlbEtleXMuU0VSSUFMSVpBVElPTiksIHtcbiAgICBzZXJpYWxpemVyOiBzZXJpYWxpemVyLFxuICAgIGFyZ3M6IGFyZ3MsXG4gIH0pO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEFwcGxpZXMgZGVzY3JpcHRpdmUgbWV0YWRhdGEgdG8gYSBjbGFzcywgcHJvcGVydHkgb3IgbWV0aG9kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGRlc2NyaXB0aW9uIHRoZSBkZXNjcmlwdGlvbiB0byBhcHBseVxuICpcbiAqIEBmdW5jdGlvbiBkZXNjcmlwdGlvblxuICpcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gIHJldHVybiBtZXRhZGF0YShNb2RlbC5rZXkoTW9kZWxLZXlzLkRFU0NSSVBUSU9OKSwgZGVzY3JpcHRpb24pO1xufVxuIl19
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* @property {string} HASHING - Key for storing hashing configuration
|
|
16
16
|
* @property {string} SERIALIZATION - Key for storing serialization configuration
|
|
17
17
|
*
|
|
18
|
-
* @readonly
|
|
19
18
|
* @enum {string}
|
|
19
|
+
* @readonly
|
|
20
20
|
* @memberOf module:decorator-validation
|
|
21
21
|
* @category Model
|
|
22
22
|
*/
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* @property {string} HASHING - Key for storing hashing configuration
|
|
16
16
|
* @property {string} SERIALIZATION - Key for storing serialization configuration
|
|
17
17
|
*
|
|
18
|
-
* @readonly
|
|
19
18
|
* @enum {string}
|
|
19
|
+
* @readonly
|
|
20
20
|
* @memberOf module:decorator-validation
|
|
21
21
|
* @category Model
|
|
22
22
|
*/
|
|
@@ -44,4 +44,4 @@ export var ModelKeys;
|
|
|
44
44
|
* @category Model
|
|
45
45
|
*/
|
|
46
46
|
export const DefaultFlavour = "decaf";
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxDQUFOLElBQVksU0FZWDtBQVpELFdBQVksU0FBUztJQUNuQixxQ0FBd0IsQ0FBQTtJQUN4QiwrQ0FBa0MsQ0FBQTtJQUNsQyxpQ0FBb0IsQ0FBQTtJQUNwQix5Q0FBNEIsQ0FBQTtJQUM1Qix5Q0FBNEIsQ0FBQTtJQUM1Qiw0QkFBZSxDQUFBO0lBQ2YsK0JBQWtCLENBQUE7SUFDbEIsNENBQStCLENBQUE7SUFDL0IsdUNBQTBCLENBQUE7SUFDMUIsZ0NBQW1CLENBQUE7SUFDbkIsNENBQStCLENBQUE7QUFDakMsQ0FBQyxFQVpXLFNBQVMsS0FBVCxTQUFTLFFBWXBCO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gRW51bSBjb250YWluaW5nIG1ldGFkYXRhIGtleXMgdXNlZCBmb3IgcmVmbGVjdGlvbiBpbiB0aGUgbW9kZWwgc3lzdGVtXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSB2YXJpb3VzIE1vZGVsIGtleXMgdXNlZCBmb3IgcmVmbGVjdGlvbiBhbmQgbWV0YWRhdGEgc3RvcmFnZS5cbiAqIFRoZXNlIGtleXMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgbGlicmFyeSB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEgYWJvdXQgbW9kZWxzLFxuICogdGhlaXIgcHJvcGVydGllcywgYW5kIHRoZWlyIGJlaGF2aW9yLlxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRUZMRUNUIC0gUHJlZml4IHRvIGFsbCBvdGhlciBrZXlzLCB1c2VkIGFzIGEgbmFtZXNwYWNlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVFlQRSAtIEtleSBmb3Igc3RvcmluZyBkZXNpZ24gdHlwZSBpbmZvcm1hdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBUkFNUyAtIEtleSBmb3Igc3RvcmluZyBtZXRob2QgcGFyYW1ldGVyIHR5cGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVUVVJOIC0gS2V5IGZvciBzdG9yaW5nIG1ldGhvZCByZXR1cm4gdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1PREVMIC0gS2V5IGZvciBpZGVudGlmeWluZyBtb2RlbCBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEFOQ0hPUiAtIEFuY2hvciBrZXkgdGhhdCBzZXJ2ZXMgYXMgYSBnaG9zdCBwcm9wZXJ0eSBpbiB0aGUgbW9kZWxcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDT05TVFJVQ1RJT04gLSBLZXkgZm9yIHN0b3JpbmcgY29uc3RydWN0aW9uIGluZm9ybWF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQVRUUklCVVRFIC0gS2V5IGZvciBzdG9yaW5nIGF0dHJpYnV0ZSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEhBU0hJTkcgLSBLZXkgZm9yIHN0b3JpbmcgaGFzaGluZyBjb25maWd1cmF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU0VSSUFMSVpBVElPTiAtIEtleSBmb3Igc3RvcmluZyBzZXJpYWxpemF0aW9uIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAZW51bSB7c3RyaW5nfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgTW9kZWxcbiAqL1xuZXhwb3J0IGVudW0gTW9kZWxLZXlzIHtcbiAgUkVGTEVDVCA9IFwiZGVjYWYubW9kZWwuXCIsXG4gIERFU0NSSVBUSU9OID0gXCJkZWNhZi5kZXNjcmlwdGlvbi5cIixcbiAgVFlQRSA9IFwiZGVzaWduOnR5cGVcIixcbiAgUEFSQU1TID0gXCJkZXNpZ246cGFyYW10eXBlc1wiLFxuICBSRVRVUk4gPSBcImRlc2lnbjpyZXR1cm50eXBlXCIsXG4gIE1PREVMID0gXCJtb2RlbFwiLFxuICBBTkNIT1IgPSBcIl9fbW9kZWxcIixcbiAgQ09OU1RSVUNUSU9OID0gXCJjb25zdHJ1Y3RlZC1ieVwiLFxuICBBVFRSSUJVVEUgPSBcIl9fYXR0cmlidXRlc1wiLFxuICBIQVNISU5HID0gXCJoYXNoaW5nXCIsXG4gIFNFUklBTElaQVRJT04gPSBcInNlcmlhbGl6YXRpb25cIixcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVmYXVsdCBmbGF2b3VyIGlkZW50aWZpZXIgZm9yIHRoZSBkZWNvcmF0b3Igc3lzdGVtXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBkZWZhdWx0IGZsYXZvdXIgdXNlZCBieSB0aGUgRGVjb3JhdGlvbiBjbGFzcyB3aGVuIG5vIHNwZWNpZmljIGZsYXZvdXIgaXMgcHJvdmlkZWQuXG4gKiBUaGlzIGNvbnN0YW50IGlzIHVzZWQgdGhyb3VnaG91dCB0aGUgbGlicmFyeSBhcyB0aGUgZmFsbGJhY2sgZmxhdm91ciBmb3IgZGVjb3JhdG9ycy5cbiAqXG4gKiBAY29uc3Qge3N0cmluZ31cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBNb2RlbFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEZsYXZvdXIgPSBcImRlY2FmXCI7XG4iXX0=
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
5
|
-
* @property {
|
|
6
|
-
* @property {
|
|
7
|
-
* @property {
|
|
8
|
-
* @property {
|
|
9
|
-
* @property {
|
|
10
|
-
*
|
|
11
|
-
* @
|
|
12
|
-
|
|
2
|
+
* @description Object-like set of keys used for comparison-based validations.
|
|
3
|
+
* @summary Provides canonical names for validators that compare two values (equality and ordering checks).
|
|
4
|
+
* @typedef {Object} ComparisonValidationKeysDef
|
|
5
|
+
* @property {"equals"} EQUALS Validates if two values are equal.
|
|
6
|
+
* @property {"different"} DIFF Validates if two values are different.
|
|
7
|
+
* @property {"lessThan"} LESS_THAN Validates if a value is less than another.
|
|
8
|
+
* @property {"lessThanOrEqual"} LESS_THAN_OR_EQUAL Validates if a value is less than or equal to another.
|
|
9
|
+
* @property {"greaterThan"} GREATER_THAN Validates if a value is greater than another.
|
|
10
|
+
* @property {"greaterThanOrEqual"} GREATER_THAN_OR_EQUAL Validates if a value is greater than or equal to another.
|
|
11
|
+
* @memberOf module:decorator-validation.Validation
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* @description Keys used for comparison-based validations.
|
|
15
|
+
* @summary Canonical key names for comparison validators.
|
|
16
|
+
* @const ComparisonValidationKeys
|
|
17
|
+
* @memberOf module:decorator-validation.Validation
|
|
13
18
|
* @category Validation
|
|
19
|
+
* @type {ComparisonValidationKeysDef}
|
|
14
20
|
*/
|
|
15
21
|
export declare const ComparisonValidationKeys: {
|
|
16
22
|
readonly EQUALS: "equals";
|
|
@@ -21,26 +27,34 @@ export declare const ComparisonValidationKeys: {
|
|
|
21
27
|
readonly GREATER_THAN_OR_EQUAL: "greaterThanOrEqual";
|
|
22
28
|
};
|
|
23
29
|
/**
|
|
24
|
-
* @
|
|
25
|
-
*
|
|
26
|
-
* @
|
|
27
|
-
* @property {string}
|
|
28
|
-
* @property {
|
|
29
|
-
* @property {
|
|
30
|
-
* @property {
|
|
31
|
-
* @property {
|
|
32
|
-
* @property {
|
|
33
|
-
* @property {
|
|
34
|
-
* @property {
|
|
35
|
-
* @property {
|
|
36
|
-
* @property {
|
|
37
|
-
* @property {
|
|
38
|
-
* @property {
|
|
39
|
-
* @property {
|
|
40
|
-
*
|
|
41
|
-
* @
|
|
30
|
+
* @description Object-like set of keys used across all validators in the system.
|
|
31
|
+
* @summary Defines the canonical namespaced key prefix and the individual validation flags for rules such as required, min/max, length, patterns, types, lists and more.
|
|
32
|
+
* @typedef {Object} ValidationKeysDef
|
|
33
|
+
* @property {string} REFLECT prefixes others (namespace prefix)
|
|
34
|
+
* @property {"required"} REQUIRED sets as required
|
|
35
|
+
* @property {"min"} MIN defines min value
|
|
36
|
+
* @property {"max"} MAX defines max value
|
|
37
|
+
* @property {"step"} STEP defines step
|
|
38
|
+
* @property {"minlength"} MIN_LENGTH defines min length
|
|
39
|
+
* @property {"maxlength"} MAX_LENGTH defines max length
|
|
40
|
+
* @property {"pattern"} PATTERN defines pattern
|
|
41
|
+
* @property {"email"} EMAIL defines email
|
|
42
|
+
* @property {"url"} URL defines url
|
|
43
|
+
* @property {"date"} DATE defines date
|
|
44
|
+
* @property {"type"} TYPE defines type
|
|
45
|
+
* @property {"password"} PASSWORD defines password
|
|
46
|
+
* @property {"list"} LIST defines list
|
|
47
|
+
* @property {"unique"} UNIQUE flags uniqueness
|
|
48
|
+
* @property {"validator"} VALIDATOR custom validator id
|
|
49
|
+
* @memberOf module:decorator-validation.Validation
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* @description The keys used for validation.
|
|
53
|
+
* @summary A namespaced collection of validation key strings used throughout the library.
|
|
54
|
+
* @const ValidationKeys
|
|
42
55
|
* @memberOf module:decorator-validation.Validation
|
|
43
56
|
* @category Validation
|
|
57
|
+
* @type {ValidationKeysDef}
|
|
44
58
|
*/
|
|
45
59
|
export declare const ValidationKeys: {
|
|
46
60
|
readonly EQUALS: "equals";
|
|
@@ -68,26 +82,25 @@ export declare const ValidationKeys: {
|
|
|
68
82
|
readonly VALIDATOR: "validator";
|
|
69
83
|
};
|
|
70
84
|
/**
|
|
71
|
-
* @
|
|
72
|
-
* @
|
|
73
|
-
*
|
|
74
|
-
* @constant MONTH_NAMES
|
|
85
|
+
* @description list of month names
|
|
86
|
+
* @summary Stores month names. Can be changed for localization purposes
|
|
87
|
+
* @const MONTH_NAMES
|
|
75
88
|
* @memberOf module:decorator-validation.Validation
|
|
76
89
|
* @category Validation
|
|
77
90
|
*/
|
|
78
91
|
export declare const MONTH_NAMES: string[];
|
|
79
92
|
/**
|
|
80
|
-
* @
|
|
81
|
-
* @
|
|
82
|
-
*
|
|
83
|
-
* @constant DAYS_OF_WEEK_NAMES
|
|
93
|
+
* @description list of names of days of the week
|
|
94
|
+
* @summary Stores names for days of the week. Can be changed for localization purposes
|
|
95
|
+
* @const DAYS_OF_WEEK_NAMES
|
|
84
96
|
* @memberOf module:decorator-validation.Validation
|
|
85
97
|
* @category Validation
|
|
86
98
|
*/
|
|
87
99
|
export declare const DAYS_OF_WEEK_NAMES: string[];
|
|
88
100
|
/**
|
|
89
|
-
* @
|
|
90
|
-
*
|
|
101
|
+
* @description Type definition for default error message strings keyed by validation type.
|
|
102
|
+
* @summary Enumerates the supported error message keys with their intended meaning; used to localize or override default messages.
|
|
103
|
+
* @typedef {Object} DefaultErrorMessages
|
|
91
104
|
* @property {string} REQUIRED default error message
|
|
92
105
|
* @property {string} MIN default error message
|
|
93
106
|
* @property {string} MAX default error message
|
|
@@ -104,18 +117,34 @@ export declare const DAYS_OF_WEEK_NAMES: string[];
|
|
|
104
117
|
* @property {string} LIST default error message
|
|
105
118
|
* @property {string} LIST_INSIDE default error message
|
|
106
119
|
* @property {string} MODEL_NOT_FOUND default error message
|
|
107
|
-
*
|
|
108
|
-
|
|
120
|
+
* @memberOf module:decorator-validation.Validation
|
|
121
|
+
*/
|
|
122
|
+
/**
|
|
123
|
+
* @description Defines the default error messages
|
|
124
|
+
* @summary Mapping between validation keys and their default human-readable error messages.
|
|
125
|
+
* @const DEFAULT_ERROR_MESSAGES
|
|
109
126
|
* @memberOf module:decorator-validation.Validation
|
|
110
127
|
* @category Validation
|
|
128
|
+
* @type {DefaultErrorMessages}
|
|
111
129
|
*/
|
|
112
130
|
export declare const DEFAULT_ERROR_MESSAGES: Record<string, string>;
|
|
113
131
|
/**
|
|
114
|
-
* @
|
|
115
|
-
*
|
|
116
|
-
* @
|
|
132
|
+
* @description Type definition for default regular expression patterns used in validation.
|
|
133
|
+
* @summary Captures common regex patterns for email, URL, and password policies, including nested grouping for password-related rules.
|
|
134
|
+
* @typedef {Object} DefaultPatterns
|
|
135
|
+
* @property {RegExp} EMAIL Email address validation pattern
|
|
136
|
+
* @property {RegExp} URL URL validation pattern
|
|
137
|
+
* @property {Object} PASSWORD Password-related regex patterns
|
|
138
|
+
* @property {RegExp} PASSWORD.CHAR8_ONE_OF_EACH At least 8 chars with lower, upper, number, and special char
|
|
139
|
+
* @memberOf module:decorator-validation.Validation
|
|
140
|
+
*/
|
|
141
|
+
/**
|
|
142
|
+
* @description Defines the various default regexp patterns used
|
|
143
|
+
* @summary Collection of frequently used validation patterns grouped under semantic keys.
|
|
144
|
+
* @const DEFAULT_PATTERNS
|
|
117
145
|
* @memberOf module:decorator-validation.Validation
|
|
118
146
|
* @category Validation
|
|
147
|
+
* @type {DefaultPatterns}
|
|
119
148
|
*/
|
|
120
149
|
export declare const DEFAULT_PATTERNS: {
|
|
121
150
|
EMAIL: RegExp;
|