@decaf-ts/decorator-validation 1.7.17 → 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 +142 -88
- package/dist/decorator-validation.esm.cjs +139 -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/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/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,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;
|
package/lib/model/decorators.cjs
CHANGED
|
@@ -9,7 +9,7 @@ const construction_1 = require("./construction.cjs");
|
|
|
9
9
|
const constants_1 = require("./../utils/constants.cjs");
|
|
10
10
|
const Model_1 = require("./Model.cjs");
|
|
11
11
|
const reflection_1 = require("@decaf-ts/reflection");
|
|
12
|
-
const
|
|
12
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
13
13
|
function modelBaseDecorator(original) {
|
|
14
14
|
// the new constructor behaviour
|
|
15
15
|
const newConstructor = function (...args) {
|
|
@@ -50,6 +50,7 @@ function modelBaseDecorator(original) {
|
|
|
50
50
|
configurable: false,
|
|
51
51
|
value: original,
|
|
52
52
|
});
|
|
53
|
+
decoration_1.Metadata.set(newConstructor, decoration_1.DecorationKeys.CONSTRUCTOR, original);
|
|
53
54
|
//
|
|
54
55
|
// // anchors the new constructor for future reference
|
|
55
56
|
// Object.defineProperty(original, ModelKeys.ANCHOR, {
|
|
@@ -76,7 +77,7 @@ function modelBaseDecorator(original) {
|
|
|
76
77
|
*/
|
|
77
78
|
function model() {
|
|
78
79
|
const key = Model_1.Model.key(constants_1.ModelKeys.MODEL);
|
|
79
|
-
return
|
|
80
|
+
return decoration_1.Decoration.for(key).define(modelBaseDecorator).apply();
|
|
80
81
|
}
|
|
81
82
|
/**
|
|
82
83
|
* @summary Defines the hashing algorithm to use on the model
|
|
@@ -125,4 +126,4 @@ function serializedBy(serializer, ...args) {
|
|
|
125
126
|
function description(description) {
|
|
126
127
|
return (0, reflection_1.metadata)(Model_1.Model.key(constants_1.ModelKeys.DESCRIPTION), description);
|
|
127
128
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsZ0RBaUVDO0FBY0Qsc0JBR0M7QUFnQkQsNEJBS0M7QUFXRCxvQ0FLQztBQVdELGtDQUVDO0FBMUlELHFEQUErRDtBQUMvRCx3REFBK0M7QUFDL0MsdUNBQWdDO0FBQ2hDLHFEQUFnRDtBQUNoRCxxREFBNEU7QUFFNUUsU0FBZ0Isa0JBQWtCLENBQUMsUUFBYTtJQUM5QyxnQ0FBZ0M7SUFDaEMsTUFBTSxjQUFjLEdBQVEsVUFBVSxHQUFHLElBQVc7UUFDbEQsTUFBTSxRQUFRLEdBQWdDLElBQUEsd0JBQVMsRUFBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMzRSxJQUFBLGlDQUFrQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdCLGdDQUFnQztRQUNoQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUU7WUFDN0MsUUFBUSxFQUFFLEtBQUs7WUFDZixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCwyRUFBMkU7UUFDM0UsTUFBTSxPQUFPLEdBQUcsYUFBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25DLElBQUksT0FBTztZQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRSxJQUFBLHFCQUFRLEVBQUMsYUFBSyxDQUFDLEdBQUcsQ0FBQyxxQkFBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUUsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsb0RBQW9EO0lBQ3BELGNBQWMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUU5QyxJQUFBLHFCQUFRLEVBQUMsYUFBSyxDQUFDLEdBQUcsQ0FBQyxxQkFBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5RCxPQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2hELE9BQU8sQ0FBQyxjQUFjLENBQ3BCLEdBQUcsRUFDSCxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFDbEMsY0FBYyxDQUNmLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILHlEQUF5RDtJQUN6RCxNQUFNLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUU7UUFDNUMsUUFBUSxFQUFFLEtBQUs7UUFDZixVQUFVLEVBQUUsSUFBSTtRQUNoQixZQUFZLEVBQUUsS0FBSztRQUNuQixLQUFLLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSTtLQUMzQyxDQUFDLENBQUM7SUFDSCxFQUFFO0lBQ0Ysd0RBQXdEO0lBQ3hELE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLHFCQUFTLENBQUMsTUFBTSxFQUFFO1FBQ3RELFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLEtBQUs7UUFDakIsWUFBWSxFQUFFLEtBQUs7UUFDbkIsS0FBSyxFQUFFLFFBQVE7S0FDaEIsQ0FBQyxDQUFDO0lBRUgscUJBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLDJCQUFjLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25FLEVBQUU7SUFDRixzREFBc0Q7SUFDdEQsc0RBQXNEO0lBQ3RELHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLDJCQUEyQjtJQUMzQixNQUFNO0lBRU4sYUFBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLGtEQUFrRDtJQUNsRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixLQUFLO0lBQ25CLE1BQU0sR0FBRyxHQUFHLGFBQUssQ0FBQyxHQUFHLENBQUMscUJBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxPQUFPLHVCQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2hFLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLFNBQWlCLEVBQUUsR0FBRyxJQUFXO0lBQ3hELE9BQU8sSUFBQSxxQkFBUSxFQUFDLGFBQUssQ0FBQyxHQUFHLENBQUMscUJBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM1QyxTQUFTLEVBQUUsU0FBUztRQUNwQixJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLFlBQVksQ0FBQyxVQUFrQixFQUFFLEdBQUcsSUFBVztJQUM3RCxPQUFPLElBQUEscUJBQVEsRUFBQyxhQUFLLENBQUMsR0FBRyxDQUFDLHFCQUFTLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDbEQsVUFBVSxFQUFFLFVBQVU7UUFDdEIsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixXQUFXLENBQUMsV0FBbUI7SUFDN0MsT0FBTyxJQUFBLHFCQUFRLEVBQUMsYUFBSyxDQUFDLEdBQUcsQ0FBQyxxQkFBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiaW5kTW9kZWxQcm90b3R5cGUsIGNvbnN0cnVjdCB9IGZyb20gXCIuL2NvbnN0cnVjdGlvblwiO1xuaW1wb3J0IHsgTW9kZWxLZXlzIH0gZnJvbSBcIi4uL3V0aWxzL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiLi9Nb2RlbFwiO1xuaW1wb3J0IHsgbWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IERlY29yYXRpb24sIERlY29yYXRpb25LZXlzLCBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxCYXNlRGVjb3JhdG9yKG9yaWdpbmFsOiBhbnkpIHtcbiAgLy8gdGhlIG5ldyBjb25zdHJ1Y3RvciBiZWhhdmlvdXJcbiAgY29uc3QgbmV3Q29uc3RydWN0b3I6IGFueSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGluc3RhbmNlOiBSZXR1cm5UeXBlPHR5cGVvZiBvcmlnaW5hbD4gPSBjb25zdHJ1Y3Qob3JpZ2luYWwsIC4uLmFyZ3MpO1xuICAgIGJpbmRNb2RlbFByb3RvdHlwZShpbnN0YW5jZSk7XG5cbiAgICAvLyByZS1hcHBseSBvcmlnaW5hbCBjb25zdHJ1Y3RvclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnN0YW5jZSwgXCJjb25zdHJ1Y3RvclwiLCB7XG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICB2YWx1ZTogb3JpZ2luYWwsXG4gICAgfSk7XG5cbiAgICAvLyBydW4gYSBidWlsZGVyIGZ1bmN0aW9uIGlmIGRlZmluZWQgd2l0aCB0aGUgZmlyc3QgYXJndW1lbnQgKFRoZSBNb2RlbEFyZylcbiAgICBjb25zdCBidWlsZGVyID0gTW9kZWwuZ2V0QnVpbGRlcigpO1xuICAgIGlmIChidWlsZGVyKSBidWlsZGVyKGluc3RhbmNlLCBhcmdzLmxlbmd0aCA/IGFyZ3NbMF0gOiB1bmRlZmluZWQpO1xuXG4gICAgbWV0YWRhdGEoTW9kZWwua2V5KE1vZGVsS2V5cy5NT0RFTCksIG9yaWdpbmFsLm5hbWUpKGluc3RhbmNlLmNvbnN0cnVjdG9yKTtcblxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcblxuICAvLyBjb3B5IHByb3RvdHlwZSBzbyBpbnN0YW5jZW9mIG9wZXJhdG9yIHN0aWxsIHdvcmtzXG4gIG5ld0NvbnN0cnVjdG9yLnByb3RvdHlwZSA9IG9yaWdpbmFsLnByb3RvdHlwZTtcblxuICBtZXRhZGF0YShNb2RlbC5rZXkoTW9kZWxLZXlzLk1PREVMKSwgb3JpZ2luYWwubmFtZSkob3JpZ2luYWwpO1xuXG4gIFJlZmxlY3QuZ2V0TWV0YWRhdGFLZXlzKG9yaWdpbmFsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAga2V5LFxuICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YShrZXksIG9yaWdpbmFsKSxcbiAgICAgIG5ld0NvbnN0cnVjdG9yXG4gICAgKTtcbiAgfSk7XG4gIC8vIFNldHMgdGhlIHByb3BlciBjb25zdHJ1Y3RvciBuYW1lIGZvciB0eXBlIHZlcmlmaWNhdGlvblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3Q29uc3RydWN0b3IsIFwibmFtZVwiLCB7XG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogb3JpZ2luYWwucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWUsXG4gIH0pO1xuICAvL1xuICAvLyBhbmNob3JzIHRoZSBvcmlnaW5hbCBjb25zdHJ1Y3RvciBmb3IgZnV0dXJlIHJlZmVyZW5jZVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3Q29uc3RydWN0b3IsIE1vZGVsS2V5cy5BTkNIT1IsIHtcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogb3JpZ2luYWwsXG4gIH0pO1xuXG4gIE1ldGFkYXRhLnNldChuZXdDb25zdHJ1Y3RvciwgRGVjb3JhdGlvbktleXMuQ09OU1RSVUNUT1IsIG9yaWdpbmFsKTtcbiAgLy9cbiAgLy8gLy8gYW5jaG9ycyB0aGUgbmV3IGNvbnN0cnVjdG9yIGZvciBmdXR1cmUgcmVmZXJlbmNlXG4gIC8vIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvcmlnaW5hbCwgTW9kZWxLZXlzLkFOQ0hPUiwge1xuICAvLyAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgLy8gICBlbnVtZXJhYmxlOiB0cnVlLFxuICAvLyAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIC8vICAgdmFsdWU6IG5ld0NvbnN0cnVjdG9yLFxuICAvLyB9KTtcblxuICBNb2RlbC5yZWdpc3RlcihuZXdDb25zdHJ1Y3Rvciwgb3JpZ2luYWwubmFtZSk7XG5cbiAgLy8gcmV0dXJuIG5ldyBjb25zdHJ1Y3RvciAod2lsbCBvdmVycmlkZSBvcmlnaW5hbClcbiAgcmV0dXJuIG5ld0NvbnN0cnVjdG9yO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IERlZmluZXMgYSBjbGFzcyBhcyBhIE1vZGVsIGNsYXNzXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiAtIFJlZ2lzdGVycyB0aGUgY2xhc3MgdW5kZXIgdGhlIG1vZGVsIHJlZ2lzdHJ5IHNvIGl0IGNhbiBiZSBlYXNpbHkgcmVidWlsdDtcbiAqIC0gT3ZlcnJpZGVzIHRoZSBjbGFzcyBjb25zdHJ1Y3RvcjtcbiAqIC0gUnVucyB0aGUgZ2xvYmFsIHtAbGluayBNb2RlbEJ1aWxkZXJGdW5jdGlvbn0gaWYgZGVmaW5lZDtcbiAqXG4gKiBAZnVuY3Rpb24gbW9kZWxcbiAqXG4gKiBAY2F0ZWdvcnkgQ2xhc3MgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWwoKSB7XG4gIGNvbnN0IGtleSA9IE1vZGVsLmtleShNb2RlbEtleXMuTU9ERUwpO1xuICByZXR1cm4gRGVjb3JhdGlvbi5mb3Ioa2V5KS5kZWZpbmUobW9kZWxCYXNlRGVjb3JhdG9yKS5hcHBseSgpO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGhhc2hpbmcgYWxnb3JpdGhtIHRvIHVzZSBvbiB0aGUgbW9kZWxcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIC0gUmVnaXN0ZXJzIHRoZSBjbGFzcyB1bmRlciB0aGUgbW9kZWwgcmVnaXN0cnkgc28gaXQgY2FuIGJlIGVhc2lseSByZWJ1aWx0O1xuICogLSBPdmVycmlkZXMgdGhlIGNsYXNzIGNvbnN0cnVjdG9yO1xuICogLSBSdW5zIHRoZSBnbG9iYWwge0BsaW5rIE1vZGVsQnVpbGRlckZ1bmN0aW9ufSBpZiBkZWZpbmVkO1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbGdvcml0aG0gdGhlIGFsZ29yaXRobSB0byB1c2VcbiAqXG4gKiBAZnVuY3Rpb24gaGFzaGVkQnlcbiAqXG4gKiBAY2F0ZWdvcnkgQ2xhc3MgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaGVkQnkoYWxnb3JpdGhtOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gIHJldHVybiBtZXRhZGF0YShNb2RlbC5rZXkoTW9kZWxLZXlzLkhBU0hJTkcpLCB7XG4gICAgYWxnb3JpdGhtOiBhbGdvcml0aG0sXG4gICAgYXJnczogYXJncyxcbiAgfSk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc2VyaWFsaXphdGlvbiBhbGdvcml0aG0gdG8gdXNlIG9uIHRoZSBtb2RlbFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXJpYWxpemVyIHRoZSBhbGdvcml0aG0gdG8gdXNlXG4gKlxuICogQGZ1bmN0aW9uIHNlcmlhbGl6ZWRCeVxuICpcbiAqIEBjYXRlZ29yeSBDbGFzcyBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVkQnkoc2VyaWFsaXplcjogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICByZXR1cm4gbWV0YWRhdGEoTW9kZWwua2V5KE1vZGVsS2V5cy5TRVJJQUxJWkFUSU9OKSwge1xuICAgIHNlcmlhbGl6ZXI6IHNlcmlhbGl6ZXIsXG4gICAgYXJnczogYXJncyxcbiAgfSk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgQXBwbGllcyBkZXNjcmlwdGl2ZSBtZXRhZGF0YSB0byBhIGNsYXNzLCBwcm9wZXJ0eSBvciBtZXRob2RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb24gdGhlIGRlc2NyaXB0aW9uIHRvIGFwcGx5XG4gKlxuICogQGZ1bmN0aW9uIGRlc2NyaXB0aW9uXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG1ldGFkYXRhKE1vZGVsLmtleShNb2RlbEtleXMuREVTQ1JJUFRJT04pLCBkZXNjcmlwdGlvbik7XG59XG4iXX0=
|
package/lib/utils/constants.cjs
CHANGED
|
@@ -18,8 +18,8 @@ exports.DefaultFlavour = exports.ModelKeys = void 0;
|
|
|
18
18
|
* @property {string} HASHING - Key for storing hashing configuration
|
|
19
19
|
* @property {string} SERIALIZATION - Key for storing serialization configuration
|
|
20
20
|
*
|
|
21
|
-
* @readonly
|
|
22
21
|
* @enum {string}
|
|
22
|
+
* @readonly
|
|
23
23
|
* @memberOf module:decorator-validation
|
|
24
24
|
* @category Model
|
|
25
25
|
*/
|
|
@@ -47,4 +47,4 @@ var ModelKeys;
|
|
|
47
47
|
* @category Model
|
|
48
48
|
*/
|
|
49
49
|
exports.DefaultFlavour = "decaf";
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsSUFBWSxTQVlYO0FBWkQsV0FBWSxTQUFTO0lBQ25CLHFDQUF3QixDQUFBO0lBQ3hCLCtDQUFrQyxDQUFBO0lBQ2xDLGlDQUFvQixDQUFBO0lBQ3BCLHlDQUE0QixDQUFBO0lBQzVCLHlDQUE0QixDQUFBO0lBQzVCLDRCQUFlLENBQUE7SUFDZiwrQkFBa0IsQ0FBQTtJQUNsQiw0Q0FBK0IsQ0FBQTtJQUMvQix1Q0FBMEIsQ0FBQTtJQUMxQixnQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBWlcsU0FBUyx5QkFBVCxTQUFTLFFBWXBCO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDVSxRQUFBLGNBQWMsR0FBRyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBFbnVtIGNvbnRhaW5pbmcgbWV0YWRhdGEga2V5cyB1c2VkIGZvciByZWZsZWN0aW9uIGluIHRoZSBtb2RlbCBzeXN0ZW1cbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHZhcmlvdXMgTW9kZWwga2V5cyB1c2VkIGZvciByZWZsZWN0aW9uIGFuZCBtZXRhZGF0YSBzdG9yYWdlLlxuICogVGhlc2Uga2V5cyBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5IHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YSBhYm91dCBtb2RlbHMsXG4gKiB0aGVpciBwcm9wZXJ0aWVzLCBhbmQgdGhlaXIgYmVoYXZpb3IuXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFRkxFQ1QgLSBQcmVmaXggdG8gYWxsIG90aGVyIGtleXMsIHVzZWQgYXMgYSBuYW1lc3BhY2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBUWVBFIC0gS2V5IGZvciBzdG9yaW5nIGRlc2lnbiB0eXBlIGluZm9ybWF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFSQU1TIC0gS2V5IGZvciBzdG9yaW5nIG1ldGhvZCBwYXJhbWV0ZXIgdHlwZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVRVUk4gLSBLZXkgZm9yIHN0b3JpbmcgbWV0aG9kIHJldHVybiB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTU9ERUwgLSBLZXkgZm9yIGlkZW50aWZ5aW5nIG1vZGVsIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQU5DSE9SIC0gQW5jaG9yIGtleSB0aGF0IHNlcnZlcyBhcyBhIGdob3N0IHByb3BlcnR5IGluIHRoZSBtb2RlbFxuICogQHByb3BlcnR5IHtzdHJpbmd9IENPTlNUUlVDVElPTiAtIEtleSBmb3Igc3RvcmluZyBjb25zdHJ1Y3Rpb24gaW5mb3JtYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBBVFRSSUJVVEUgLSBLZXkgZm9yIHN0b3JpbmcgYXR0cmlidXRlIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSEFTSElORyAtIEtleSBmb3Igc3RvcmluZyBoYXNoaW5nIGNvbmZpZ3VyYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTRVJJQUxJWkFUSU9OIC0gS2V5IGZvciBzdG9yaW5nIHNlcmlhbGl6YXRpb24gY29uZmlndXJhdGlvblxuICpcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBNb2RlbFxuICovXG5leHBvcnQgZW51bSBNb2RlbEtleXMge1xuICBSRUZMRUNUID0gXCJkZWNhZi5tb2RlbC5cIixcbiAgREVTQ1JJUFRJT04gPSBcImRlY2FmLmRlc2NyaXB0aW9uLlwiLFxuICBUWVBFID0gXCJkZXNpZ246dHlwZVwiLFxuICBQQVJBTVMgPSBcImRlc2lnbjpwYXJhbXR5cGVzXCIsXG4gIFJFVFVSTiA9IFwiZGVzaWduOnJldHVybnR5cGVcIixcbiAgTU9ERUwgPSBcIm1vZGVsXCIsXG4gIEFOQ0hPUiA9IFwiX19tb2RlbFwiLFxuICBDT05TVFJVQ1RJT04gPSBcImNvbnN0cnVjdGVkLWJ5XCIsXG4gIEFUVFJJQlVURSA9IFwiX19hdHRyaWJ1dGVzXCIsXG4gIEhBU0hJTkcgPSBcImhhc2hpbmdcIixcbiAgU0VSSUFMSVpBVElPTiA9IFwic2VyaWFsaXphdGlvblwiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IGZsYXZvdXIgaWRlbnRpZmllciBmb3IgdGhlIGRlY29yYXRvciBzeXN0ZW1cbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGRlZmF1bHQgZmxhdm91ciB1c2VkIGJ5IHRoZSBEZWNvcmF0aW9uIGNsYXNzIHdoZW4gbm8gc3BlY2lmaWMgZmxhdm91ciBpcyBwcm92aWRlZC5cbiAqIFRoaXMgY29uc3RhbnQgaXMgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5IGFzIHRoZSBmYWxsYmFjayBmbGF2b3VyIGZvciBkZWNvcmF0b3JzLlxuICpcbiAqIEBjb25zdCB7c3RyaW5nfVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IE1vZGVsXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0Rmxhdm91ciA9IFwiZGVjYWZcIjtcbiJdfQ==
|
package/lib/utils/constants.d.ts
CHANGED
|
@@ -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
|
*/
|
|
@@ -3,18 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DEFAULT_PATTERNS = exports.DEFAULT_ERROR_MESSAGES = exports.DAYS_OF_WEEK_NAMES = exports.MONTH_NAMES = exports.ValidationKeys = exports.ComparisonValidationKeys = void 0;
|
|
4
4
|
const constants_1 = require("./../../utils/constants.cjs");
|
|
5
5
|
/**
|
|
6
|
-
* @
|
|
7
|
-
*
|
|
8
|
-
* @
|
|
9
|
-
* @property {
|
|
10
|
-
* @property {
|
|
11
|
-
* @property {
|
|
12
|
-
* @property {
|
|
13
|
-
* @property {
|
|
14
|
-
*
|
|
15
|
-
* @
|
|
16
|
-
|
|
6
|
+
* @description Object-like set of keys used for comparison-based validations.
|
|
7
|
+
* @summary Provides canonical names for validators that compare two values (equality and ordering checks).
|
|
8
|
+
* @typedef {Object} ComparisonValidationKeysDef
|
|
9
|
+
* @property {"equals"} EQUALS Validates if two values are equal.
|
|
10
|
+
* @property {"different"} DIFF Validates if two values are different.
|
|
11
|
+
* @property {"lessThan"} LESS_THAN Validates if a value is less than another.
|
|
12
|
+
* @property {"lessThanOrEqual"} LESS_THAN_OR_EQUAL Validates if a value is less than or equal to another.
|
|
13
|
+
* @property {"greaterThan"} GREATER_THAN Validates if a value is greater than another.
|
|
14
|
+
* @property {"greaterThanOrEqual"} GREATER_THAN_OR_EQUAL Validates if a value is greater than or equal to another.
|
|
15
|
+
* @memberOf module:decorator-validation.Validation
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* @description Keys used for comparison-based validations.
|
|
19
|
+
* @summary Canonical key names for comparison validators.
|
|
20
|
+
* @const ComparisonValidationKeys
|
|
21
|
+
* @memberOf module:decorator-validation.Validation
|
|
17
22
|
* @category Validation
|
|
23
|
+
* @type {ComparisonValidationKeysDef}
|
|
18
24
|
*/
|
|
19
25
|
exports.ComparisonValidationKeys = {
|
|
20
26
|
EQUALS: "equals",
|
|
@@ -25,26 +31,34 @@ exports.ComparisonValidationKeys = {
|
|
|
25
31
|
GREATER_THAN_OR_EQUAL: "greaterThanOrEqual",
|
|
26
32
|
};
|
|
27
33
|
/**
|
|
28
|
-
* @
|
|
29
|
-
*
|
|
30
|
-
* @
|
|
31
|
-
* @property {string}
|
|
32
|
-
* @property {
|
|
33
|
-
* @property {
|
|
34
|
-
* @property {
|
|
35
|
-
* @property {
|
|
36
|
-
* @property {
|
|
37
|
-
* @property {
|
|
38
|
-
* @property {
|
|
39
|
-
* @property {
|
|
40
|
-
* @property {
|
|
41
|
-
* @property {
|
|
42
|
-
* @property {
|
|
43
|
-
* @property {
|
|
44
|
-
*
|
|
45
|
-
* @
|
|
34
|
+
* @description Object-like set of keys used across all validators in the system.
|
|
35
|
+
* @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.
|
|
36
|
+
* @typedef {Object} ValidationKeysDef
|
|
37
|
+
* @property {string} REFLECT prefixes others (namespace prefix)
|
|
38
|
+
* @property {"required"} REQUIRED sets as required
|
|
39
|
+
* @property {"min"} MIN defines min value
|
|
40
|
+
* @property {"max"} MAX defines max value
|
|
41
|
+
* @property {"step"} STEP defines step
|
|
42
|
+
* @property {"minlength"} MIN_LENGTH defines min length
|
|
43
|
+
* @property {"maxlength"} MAX_LENGTH defines max length
|
|
44
|
+
* @property {"pattern"} PATTERN defines pattern
|
|
45
|
+
* @property {"email"} EMAIL defines email
|
|
46
|
+
* @property {"url"} URL defines url
|
|
47
|
+
* @property {"date"} DATE defines date
|
|
48
|
+
* @property {"type"} TYPE defines type
|
|
49
|
+
* @property {"password"} PASSWORD defines password
|
|
50
|
+
* @property {"list"} LIST defines list
|
|
51
|
+
* @property {"unique"} UNIQUE flags uniqueness
|
|
52
|
+
* @property {"validator"} VALIDATOR custom validator id
|
|
53
|
+
* @memberOf module:decorator-validation.Validation
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* @description The keys used for validation.
|
|
57
|
+
* @summary A namespaced collection of validation key strings used throughout the library.
|
|
58
|
+
* @const ValidationKeys
|
|
46
59
|
* @memberOf module:decorator-validation.Validation
|
|
47
60
|
* @category Validation
|
|
61
|
+
* @type {ValidationKeysDef}
|
|
48
62
|
*/
|
|
49
63
|
exports.ValidationKeys = {
|
|
50
64
|
REFLECT: `${constants_1.ModelKeys.REFLECT}validation.`,
|
|
@@ -67,10 +81,9 @@ exports.ValidationKeys = {
|
|
|
67
81
|
...exports.ComparisonValidationKeys,
|
|
68
82
|
};
|
|
69
83
|
/**
|
|
70
|
-
* @
|
|
71
|
-
* @
|
|
72
|
-
*
|
|
73
|
-
* @constant MONTH_NAMES
|
|
84
|
+
* @description list of month names
|
|
85
|
+
* @summary Stores month names. Can be changed for localization purposes
|
|
86
|
+
* @const MONTH_NAMES
|
|
74
87
|
* @memberOf module:decorator-validation.Validation
|
|
75
88
|
* @category Validation
|
|
76
89
|
*/
|
|
@@ -89,10 +102,9 @@ exports.MONTH_NAMES = [
|
|
|
89
102
|
"December",
|
|
90
103
|
];
|
|
91
104
|
/**
|
|
92
|
-
* @
|
|
93
|
-
* @
|
|
94
|
-
*
|
|
95
|
-
* @constant DAYS_OF_WEEK_NAMES
|
|
105
|
+
* @description list of names of days of the week
|
|
106
|
+
* @summary Stores names for days of the week. Can be changed for localization purposes
|
|
107
|
+
* @const DAYS_OF_WEEK_NAMES
|
|
96
108
|
* @memberOf module:decorator-validation.Validation
|
|
97
109
|
* @category Validation
|
|
98
110
|
*/
|
|
@@ -106,8 +118,9 @@ exports.DAYS_OF_WEEK_NAMES = [
|
|
|
106
118
|
"Saturday",
|
|
107
119
|
];
|
|
108
120
|
/**
|
|
109
|
-
* @
|
|
110
|
-
*
|
|
121
|
+
* @description Type definition for default error message strings keyed by validation type.
|
|
122
|
+
* @summary Enumerates the supported error message keys with their intended meaning; used to localize or override default messages.
|
|
123
|
+
* @typedef {Object} DefaultErrorMessages
|
|
111
124
|
* @property {string} REQUIRED default error message
|
|
112
125
|
* @property {string} MIN default error message
|
|
113
126
|
* @property {string} MAX default error message
|
|
@@ -124,10 +137,15 @@ exports.DAYS_OF_WEEK_NAMES = [
|
|
|
124
137
|
* @property {string} LIST default error message
|
|
125
138
|
* @property {string} LIST_INSIDE default error message
|
|
126
139
|
* @property {string} MODEL_NOT_FOUND default error message
|
|
127
|
-
*
|
|
128
|
-
|
|
140
|
+
* @memberOf module:decorator-validation.Validation
|
|
141
|
+
*/
|
|
142
|
+
/**
|
|
143
|
+
* @description Defines the default error messages
|
|
144
|
+
* @summary Mapping between validation keys and their default human-readable error messages.
|
|
145
|
+
* @const DEFAULT_ERROR_MESSAGES
|
|
129
146
|
* @memberOf module:decorator-validation.Validation
|
|
130
147
|
* @category Validation
|
|
148
|
+
* @type {DefaultErrorMessages}
|
|
131
149
|
*/
|
|
132
150
|
exports.DEFAULT_ERROR_MESSAGES = {
|
|
133
151
|
REQUIRED: "This field is required",
|
|
@@ -154,11 +172,22 @@ exports.DEFAULT_ERROR_MESSAGES = {
|
|
|
154
172
|
UNIQUE: "Duplicate found, this field must be unique.",
|
|
155
173
|
};
|
|
156
174
|
/**
|
|
157
|
-
* @
|
|
158
|
-
*
|
|
159
|
-
* @
|
|
175
|
+
* @description Type definition for default regular expression patterns used in validation.
|
|
176
|
+
* @summary Captures common regex patterns for email, URL, and password policies, including nested grouping for password-related rules.
|
|
177
|
+
* @typedef {Object} DefaultPatterns
|
|
178
|
+
* @property {RegExp} EMAIL Email address validation pattern
|
|
179
|
+
* @property {RegExp} URL URL validation pattern
|
|
180
|
+
* @property {Object} PASSWORD Password-related regex patterns
|
|
181
|
+
* @property {RegExp} PASSWORD.CHAR8_ONE_OF_EACH At least 8 chars with lower, upper, number, and special char
|
|
182
|
+
* @memberOf module:decorator-validation.Validation
|
|
183
|
+
*/
|
|
184
|
+
/**
|
|
185
|
+
* @description Defines the various default regexp patterns used
|
|
186
|
+
* @summary Collection of frequently used validation patterns grouped under semantic keys.
|
|
187
|
+
* @const DEFAULT_PATTERNS
|
|
160
188
|
* @memberOf module:decorator-validation.Validation
|
|
161
189
|
* @category Validation
|
|
190
|
+
* @type {DefaultPatterns}
|
|
162
191
|
*/
|
|
163
192
|
exports.DEFAULT_PATTERNS = {
|
|
164
193
|
EMAIL: /[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?/,
|
|
@@ -167,4 +196,4 @@ exports.DEFAULT_PATTERNS = {
|
|
|
167
196
|
CHAR8_ONE_OF_EACH: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&_\-.,])[A-Za-z\d@$!%*?&_\-.,]{8,}$/g,
|
|
168
197
|
},
|
|
169
198
|
};
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQWtEO0FBRWxEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDVSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLGtCQUFrQixFQUFFLGlCQUFpQjtJQUNyQyxZQUFZLEVBQUUsYUFBYTtJQUMzQixxQkFBcUIsRUFBRSxvQkFBb0I7Q0FDbkMsQ0FBQztBQUVYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDVSxRQUFBLGNBQWMsR0FBRztJQUM1QixPQUFPLEVBQUUsR0FBRyxxQkFBUyxDQUFDLE9BQU8sYUFBYTtJQUMxQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsVUFBVSxFQUFFLFdBQVc7SUFDdkIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsU0FBUyxFQUFFLFdBQVc7SUFDdEIsR0FBRyxnQ0FBd0I7Q0FDbkIsQ0FBQztBQUVYOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLFdBQVcsR0FBRztJQUN6QixTQUFTO0lBQ1QsVUFBVTtJQUNWLE9BQU87SUFDUCxPQUFPO0lBQ1AsS0FBSztJQUNMLE1BQU07SUFDTixNQUFNO0lBQ04sUUFBUTtJQUNSLFdBQVc7SUFDWCxTQUFTO0lBQ1QsVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNVLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsUUFBUTtJQUNSLFFBQVE7SUFDUixTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixRQUFRO0lBQ1IsVUFBVTtDQUNYLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDVSxRQUFBLHNCQUFzQixHQUEyQjtJQUM1RCxRQUFRLEVBQUUsd0JBQXdCO0lBQ2xDLEdBQUcsRUFBRSwwQkFBMEI7SUFDL0IsR0FBRyxFQUFFLDBCQUEwQjtJQUMvQixVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsT0FBTyxFQUFFLHNDQUFzQztJQUMvQyxLQUFLLEVBQUUsZ0NBQWdDO0lBQ3ZDLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkMsSUFBSSxFQUFFLDBDQUEwQztJQUNoRCxJQUFJLEVBQUUsa0NBQWtDO0lBQ3hDLElBQUksRUFBRSxpQ0FBaUM7SUFDdkMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixRQUFRLEVBQ04sNEhBQTRIO0lBQzlILElBQUksRUFBRSxxQkFBcUI7SUFDM0IsZUFBZSxFQUFFLCtCQUErQjtJQUNoRCxNQUFNLEVBQUUsdUNBQXVDO0lBQy9DLElBQUksRUFBRSw2Q0FBNkM7SUFDbkQsU0FBUyxFQUFFLHdDQUF3QztJQUNuRCxrQkFBa0IsRUFBRSxvREFBb0Q7SUFDeEUsWUFBWSxFQUFFLDJDQUEyQztJQUN6RCxxQkFBcUIsRUFDbkIsdURBQXVEO0lBQ3pELE1BQU0sRUFBRSw2Q0FBNkM7Q0FDdEQsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsS0FBSyxFQUNILDRKQUE0SjtJQUM5SixHQUFHLEVBQUUseWFBQXlhO0lBQzlhLFFBQVEsRUFBRTtRQUNSLGlCQUFpQixFQUNmLGlGQUFpRjtLQUNwRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEtleXMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgS2V5cyB1c2VkIGZvciBjb21wYXJpc29uLWJhc2VkIHZhbGlkYXRpb25zLlxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFUVVBTFMgLSBWYWxpZGF0ZXMgaWYgdHdvIHZhbHVlcyBhcmUgZXF1YWwuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRElGRiAtIFZhbGlkYXRlcyBpZiB0d28gdmFsdWVzIGFyZSBkaWZmZXJlbnQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTEVTU19USEFOIC0gVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgbGVzcyB0aGFuIGFub3RoZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTEVTU19USEFOX09SX0VRVUFMIC0gVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGFub3RoZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gR1JFQVRFUl9USEFOIC0gVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIGFub3RoZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gR1JFQVRFUl9USEFOX09SX0VRVUFMIC0gVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGFub3RoZXIuXG4gKlxuICogQGNvbnN0YW50IENvbXBhcmlzb25WYWxpZGF0aW9uS2V5c1xuICogQG1lbWJlcm9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgQ29tcGFyaXNvblZhbGlkYXRpb25LZXlzID0ge1xuICBFUVVBTFM6IFwiZXF1YWxzXCIsXG4gIERJRkY6IFwiZGlmZmVyZW50XCIsXG4gIExFU1NfVEhBTjogXCJsZXNzVGhhblwiLFxuICBMRVNTX1RIQU5fT1JfRVFVQUw6IFwibGVzc1RoYW5PckVxdWFsXCIsXG4gIEdSRUFURVJfVEhBTjogXCJncmVhdGVyVGhhblwiLFxuICBHUkVBVEVSX1RIQU5fT1JfRVFVQUw6IFwiZ3JlYXRlclRoYW5PckVxdWFsXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEBzdW1tYXJ5IFRoZSBrZXlzIHVzZWQgZm9yIHZhbGlkYXRpb25cbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVGTEVDVCBwcmVmaXhlcyBvdGhlcnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVFVSVJFRCBzZXRzIGFzIHJlcXVpcmVkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOIGRlZmluZXMgbWluIHZhbHVlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYIGRlZmluZXMgbWF4IHZhbHVlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU1RFUCBkZWZpbmVzIHN0ZXBcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNSU5fTEVOR1RIIGRlZmluZXMgbWluIGxlbmd0aFxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWF9MRU5HVEggZGVmaW5lcyBtYXggbGVuZ3RoXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFUVEVSTiBkZWZpbmVzIHBhdHRlcm5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFTUFJTCBkZWZpbmVzIGVtYWlsXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVVJMIGRlZmluZXMgdXJsXG4gKiBAcHJvcGVydHkge3N0cmluZ30gREFURSBkZWZpbmVzIGRhdGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBUWVBFIGRlZmluZXMgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIGRlZmluZXMgcGFzc3dvcmRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBMSVNUIGRlZmluZXMgbGlzdFxuICpcbiAqIEBjb25zdGFudCBWYWxpZGF0aW9uS2V5c1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgVmFsaWRhdGlvbktleXMgPSB7XG4gIFJFRkxFQ1Q6IGAke01vZGVsS2V5cy5SRUZMRUNUfXZhbGlkYXRpb24uYCxcbiAgREFURTogXCJkYXRlXCIsXG4gIEVNQUlMOiBcImVtYWlsXCIsXG4gIEZPUk1BVDogXCJmb3JtYXRcIixcbiAgTElTVDogXCJsaXN0XCIsXG4gIE1BWDogXCJtYXhcIixcbiAgTUFYX0xFTkdUSDogXCJtYXhsZW5ndGhcIixcbiAgTUlOOiBcIm1pblwiLFxuICBNSU5fTEVOR1RIOiBcIm1pbmxlbmd0aFwiLFxuICBQQVNTV09SRDogXCJwYXNzd29yZFwiLFxuICBQQVRURVJOOiBcInBhdHRlcm5cIixcbiAgUkVRVUlSRUQ6IFwicmVxdWlyZWRcIixcbiAgU1RFUDogXCJzdGVwXCIsXG4gIFRZUEU6IFwidHlwZVwiLFxuICBVTklRVUU6IFwidW5pcXVlXCIsXG4gIFVSTDogXCJ1cmxcIixcbiAgVkFMSURBVE9SOiBcInZhbGlkYXRvclwiLFxuICAuLi5Db21wYXJpc29uVmFsaWRhdGlvbktleXMsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEBzdW1tYXJ5IGxpc3Qgb2YgbW9udGggbmFtZXNcbiAqIEBkZXNjcmlwdGlvbiBTdG9yZXMgbW9udGggbmFtZXMuIENhbiBiZSBjaGFuZ2VkIGZvciBsb2NhbGl6YXRpb24gcHVycG9zZXNcbiAqXG4gKiBAY29uc3RhbnQgTU9OVEhfTkFNRVNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IE1PTlRIX05BTUVTID0gW1xuICBcIkphbnVhcnlcIixcbiAgXCJGZWJydWFyeVwiLFxuICBcIk1hcmNoXCIsXG4gIFwiQXByaWxcIixcbiAgXCJNYXlcIixcbiAgXCJKdW5lXCIsXG4gIFwiSnVseVwiLFxuICBcIkF1Z3VzdFwiLFxuICBcIlNlcHRlbWJlclwiLFxuICBcIk9jdG9iZXJcIixcbiAgXCJOb3ZlbWJlclwiLFxuICBcIkRlY2VtYmVyXCIsXG5dO1xuXG4vKipcbiAqIEBzdW1tYXJ5IGxpc3Qgb2YgbmFtZXMgb2YgZGF5cyBvZiB0aGUgd2Vla1xuICogQGRlc2NyaXB0aW9uIFN0b3JlcyBuYW1lcyBmb3IgZGF5cyBvZiB0aGUgd2Vlay4gQ2FuIGJlIGNoYW5nZWQgZm9yIGxvY2FsaXphdGlvbiBwdXJwb3Nlc1xuICpcbiAqIEBjb25zdGFudCBEQVlTX09GX1dFRUtfTkFNRVNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IERBWVNfT0ZfV0VFS19OQU1FUyA9IFtcbiAgXCJTdW5kYXlcIixcbiAgXCJNb25kYXlcIixcbiAgXCJUdWVzZGF5XCIsXG4gIFwiV2VkbmVzZGF5XCIsXG4gIFwiVGh1cnNkYXlcIixcbiAgXCJGcmlkYXlcIixcbiAgXCJTYXR1cmRheVwiLFxuXTtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VzXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFUVVJUkVEIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTiBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVggZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOX0xFTkdUSCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVhfTEVOR1RIIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBVFRFUk4gZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRU1BSUwgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVVJMIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRZUEUgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU1RFUCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IERFRkFVTFQgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFTU1dPUkQgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElTVCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBMSVNUX0lOU0lERSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNT0RFTF9OT1RfRk9VTkQgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNvbnN0YW50IERFRkFVTFRfRVJST1JfTUVTU0FHRVNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVJST1JfTUVTU0FHRVM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIFJFUVVJUkVEOiBcIlRoaXMgZmllbGQgaXMgcmVxdWlyZWRcIixcbiAgTUlOOiBcIlRoZSBtaW5pbXVtIHZhbHVlIGlzIHswfVwiLFxuICBNQVg6IFwiVGhlIG1heGltdW0gdmFsdWUgaXMgezB9XCIsXG4gIE1JTl9MRU5HVEg6IFwiVGhlIG1pbmltdW0gbGVuZ3RoIGlzIHswfVwiLFxuICBNQVhfTEVOR1RIOiBcIlRoZSBtYXhpbXVtIGxlbmd0aCBpcyB7MH1cIixcbiAgUEFUVEVSTjogXCJUaGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlIHBhdHRlcm5cIixcbiAgRU1BSUw6IFwiVGhlIHZhbHVlIGlzIG5vdCBhIHZhbGlkIGVtYWlsXCIsXG4gIFVSTDogXCJUaGUgdmFsdWUgaXMgbm90IGEgdmFsaWQgVVJMXCIsXG4gIFRZUEU6IFwiSW52YWxpZCB0eXBlLiBFeHBlY3RlZCB7MH0sIHJlY2VpdmVkIHsxfVwiLFxuICBTVEVQOiBcIkludmFsaWQgdmFsdWUuIE5vdCBhIHN0ZXAgb2YgezB9XCIsXG4gIERBVEU6IFwiSW52YWxpZCB2YWx1ZS4gbm90IGEgdmFsaWQgRGF0ZVwiLFxuICBERUZBVUxUOiBcIlRoZXJlIGlzIGFuIEVycm9yXCIsXG4gIFBBU1NXT1JEOlxuICAgIFwiTXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgYW5kIGNvbnRhaW4gb25lIG9mIG51bWJlciwgbG93ZXIgYW5kIHVwcGVyIGNhc2UgbGV0dGVycywgYW5kIHNwZWNpYWwgY2hhcmFjdGVyIChAJCElKj8mXy0uLClcIixcbiAgTElTVDogXCJJbnZhbGlkIGxpc3Qgb2YgezB9XCIsXG4gIE1PREVMX05PVF9GT1VORDogXCJObyBtb2RlbCByZWdpc3RlcmVkIHVuZGVyIHswfVwiLFxuICBFUVVBTFM6IFwiVGhpcyBmaWVsZCBtdXN0IGJlIGVxdWFsIHRvIGZpZWxkIHswfVwiLFxuICBESUZGOiBcIlRoaXMgZmllbGQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSBmaWVsZCB7MH1cIixcbiAgTEVTU19USEFOOiBcIlRoaXMgZmllbGQgbXVzdCBiZSBsZXNzIHRoYW4gZmllbGQgezB9XCIsXG4gIExFU1NfVEhBTl9PUl9FUVVBTDogXCJUaGlzIGZpZWxkIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGZpZWxkIHswfVwiLFxuICBHUkVBVEVSX1RIQU46IFwiVGhpcyBmaWVsZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBmaWVsZCB7MH1cIixcbiAgR1JFQVRFUl9USEFOX09SX0VRVUFMOlxuICAgIFwiVGhpcyBmaWVsZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBmaWVsZCB7MH1cIixcbiAgVU5JUVVFOiBcIkR1cGxpY2F0ZSBmb3VuZCwgdGhpcyBmaWVsZCBtdXN0IGJlIHVuaXF1ZS5cIixcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgdmFyaW91cyBkZWZhdWx0IHJlZ2V4cCBwYXR0ZXJucyB1c2VkXG4gKlxuICogQGVudW0gREVGQVVMVF9QQVRURVJOU1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQVRURVJOUyA9IHtcbiAgRU1BSUw6XG4gICAgL1thLXpBLVowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcXC5bYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAKD86W2EtekEtWjAtOV0oPzpbYS16MC05LV0qW2EtekEtWjAtOV0pP1xcLikrW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV0qW2EtekEtWjAtOV0pPy8sXG4gIFVSTDogL14oPzooPzooPzpodHRwcz98ZnRwKTopP1xcL1xcLykoPzpcXFMrKD86OlxcUyopP0ApPyg/Oig/ISg/OjEwfDEyNykoPzpcXC5cXGR7MSwzfSl7M30pKD8hKD86MTY5XFwuMjU0fDE5MlxcLjE2OCkoPzpcXC5cXGR7MSwzfSl7Mn0pKD8hMTcyXFwuKD86MVs2LTldfDJcXGR8M1swLTFdKSg/OlxcLlxcZHsxLDN9KXsyfSkoPzpbMS05XVxcZD98MVxcZFxcZHwyWzAxXVxcZHwyMlswLTNdKSg/OlxcLig/OjE/XFxkezEsMn18MlswLTRdXFxkfDI1WzAtNV0pKXsyfSg/OlxcLig/OlsxLTldXFxkP3wxXFxkXFxkfDJbMC00XVxcZHwyNVswLTRdKSl8KD86KD86W2EtejAtOVxcdTAwYTEtXFx1ZmZmZl1bYS16MC05XFx1MDBhMS1cXHVmZmZmXy1dezAsNjJ9KT9bYS16MC05XFx1MDBhMS1cXHVmZmZmXVxcLikrKD86W2EtelxcdTAwYTEtXFx1ZmZmZl17Mix9XFwuPykpKD86OlxcZHsyLDV9KT8oPzpbLz8jXVxcUyopPyQvaSxcbiAgUEFTU1dPUkQ6IHtcbiAgICBDSEFSOF9PTkVfT0ZfRUFDSDpcbiAgICAgIC9eKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qXFxkKSg/PS4qW0AkISUqPyZfXFwtLixdKVtBLVphLXpcXGRAJCElKj8mX1xcLS4sXXs4LH0kL2csXG4gIH0sXG59O1xuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQWtEO0FBRWxEOzs7Ozs7Ozs7OztHQVdHO0FBRUg7Ozs7Ozs7R0FPRztBQUNVLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEMsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLFdBQVc7SUFDakIsU0FBUyxFQUFFLFVBQVU7SUFDckIsa0JBQWtCLEVBQUUsaUJBQWlCO0lBQ3JDLFlBQVksRUFBRSxhQUFhO0lBQzNCLHFCQUFxQixFQUFFLG9CQUFvQjtDQUNuQyxDQUFDO0FBRVg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUVIOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLGNBQWMsR0FBRztJQUM1QixPQUFPLEVBQUUsR0FBRyxxQkFBUyxDQUFDLE9BQU8sYUFBYTtJQUMxQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsVUFBVSxFQUFFLFdBQVc7SUFDdkIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsU0FBUyxFQUFFLFdBQVc7SUFDdEIsR0FBRyxnQ0FBd0I7Q0FDbkIsQ0FBQztBQUVYOzs7Ozs7R0FNRztBQUNVLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLFNBQVM7SUFDVCxVQUFVO0lBQ1YsT0FBTztJQUNQLE9BQU87SUFDUCxLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixRQUFRO0lBQ1IsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtDQUNYLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLFFBQVE7SUFDUixRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxVQUFVO0lBQ1YsUUFBUTtJQUNSLFVBQVU7Q0FDWCxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUVIOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLHNCQUFzQixHQUEyQjtJQUM1RCxRQUFRLEVBQUUsd0JBQXdCO0lBQ2xDLEdBQUcsRUFBRSwwQkFBMEI7SUFDL0IsR0FBRyxFQUFFLDBCQUEwQjtJQUMvQixVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsT0FBTyxFQUFFLHNDQUFzQztJQUMvQyxLQUFLLEVBQUUsZ0NBQWdDO0lBQ3ZDLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkMsSUFBSSxFQUFFLDBDQUEwQztJQUNoRCxJQUFJLEVBQUUsa0NBQWtDO0lBQ3hDLElBQUksRUFBRSxpQ0FBaUM7SUFDdkMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixRQUFRLEVBQ04sNEhBQTRIO0lBQzlILElBQUksRUFBRSxxQkFBcUI7SUFDM0IsZUFBZSxFQUFFLCtCQUErQjtJQUNoRCxNQUFNLEVBQUUsdUNBQXVDO0lBQy9DLElBQUksRUFBRSw2Q0FBNkM7SUFDbkQsU0FBUyxFQUFFLHdDQUF3QztJQUNuRCxrQkFBa0IsRUFBRSxvREFBb0Q7SUFDeEUsWUFBWSxFQUFFLDJDQUEyQztJQUN6RCxxQkFBcUIsRUFDbkIsdURBQXVEO0lBQ3pELE1BQU0sRUFBRSw2Q0FBNkM7Q0FDdEQsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUVIOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLEtBQUssRUFDSCw0SkFBNEo7SUFDOUosR0FBRyxFQUFFLHlhQUF5YTtJQUM5YSxRQUFRLEVBQUU7UUFDUixpQkFBaUIsRUFDZixpRkFBaUY7S0FDcEY7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxLZXlzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPYmplY3QtbGlrZSBzZXQgb2Yga2V5cyB1c2VkIGZvciBjb21wYXJpc29uLWJhc2VkIHZhbGlkYXRpb25zLlxuICogQHN1bW1hcnkgUHJvdmlkZXMgY2Fub25pY2FsIG5hbWVzIGZvciB2YWxpZGF0b3JzIHRoYXQgY29tcGFyZSB0d28gdmFsdWVzIChlcXVhbGl0eSBhbmQgb3JkZXJpbmcgY2hlY2tzKS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IENvbXBhcmlzb25WYWxpZGF0aW9uS2V5c0RlZlxuICogQHByb3BlcnR5IHtcImVxdWFsc1wifSBFUVVBTFMgVmFsaWRhdGVzIGlmIHR3byB2YWx1ZXMgYXJlIGVxdWFsLlxuICogQHByb3BlcnR5IHtcImRpZmZlcmVudFwifSBESUZGIFZhbGlkYXRlcyBpZiB0d28gdmFsdWVzIGFyZSBkaWZmZXJlbnQuXG4gKiBAcHJvcGVydHkge1wibGVzc1RoYW5cIn0gTEVTU19USEFOIFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGxlc3MgdGhhbiBhbm90aGVyLlxuICogQHByb3BlcnR5IHtcImxlc3NUaGFuT3JFcXVhbFwifSBMRVNTX1RIQU5fT1JfRVFVQUwgVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGFub3RoZXIuXG4gKiBAcHJvcGVydHkge1wiZ3JlYXRlclRoYW5cIn0gR1JFQVRFUl9USEFOIFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBhbm90aGVyLlxuICogQHByb3BlcnR5IHtcImdyZWF0ZXJUaGFuT3JFcXVhbFwifSBHUkVBVEVSX1RIQU5fT1JfRVFVQUwgVmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGFub3RoZXIuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqL1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBLZXlzIHVzZWQgZm9yIGNvbXBhcmlzb24tYmFzZWQgdmFsaWRhdGlvbnMuXG4gKiBAc3VtbWFyeSBDYW5vbmljYWwga2V5IG5hbWVzIGZvciBjb21wYXJpc29uIHZhbGlkYXRvcnMuXG4gKiBAY29uc3QgQ29tcGFyaXNvblZhbGlkYXRpb25LZXlzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKiBAdHlwZSB7Q29tcGFyaXNvblZhbGlkYXRpb25LZXlzRGVmfVxuICovXG5leHBvcnQgY29uc3QgQ29tcGFyaXNvblZhbGlkYXRpb25LZXlzID0ge1xuICBFUVVBTFM6IFwiZXF1YWxzXCIsXG4gIERJRkY6IFwiZGlmZmVyZW50XCIsXG4gIExFU1NfVEhBTjogXCJsZXNzVGhhblwiLFxuICBMRVNTX1RIQU5fT1JfRVFVQUw6IFwibGVzc1RoYW5PckVxdWFsXCIsXG4gIEdSRUFURVJfVEhBTjogXCJncmVhdGVyVGhhblwiLFxuICBHUkVBVEVSX1RIQU5fT1JfRVFVQUw6IFwiZ3JlYXRlclRoYW5PckVxdWFsXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPYmplY3QtbGlrZSBzZXQgb2Yga2V5cyB1c2VkIGFjcm9zcyBhbGwgdmFsaWRhdG9ycyBpbiB0aGUgc3lzdGVtLlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgY2Fub25pY2FsIG5hbWVzcGFjZWQga2V5IHByZWZpeCBhbmQgdGhlIGluZGl2aWR1YWwgdmFsaWRhdGlvbiBmbGFncyBmb3IgcnVsZXMgc3VjaCBhcyByZXF1aXJlZCwgbWluL21heCwgbGVuZ3RoLCBwYXR0ZXJucywgdHlwZXMsIGxpc3RzIGFuZCBtb3JlLlxuICogQHR5cGVkZWYge09iamVjdH0gVmFsaWRhdGlvbktleXNEZWZcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRUZMRUNUIHByZWZpeGVzIG90aGVycyAobmFtZXNwYWNlIHByZWZpeClcbiAqIEBwcm9wZXJ0eSB7XCJyZXF1aXJlZFwifSBSRVFVSVJFRCBzZXRzIGFzIHJlcXVpcmVkXG4gKiBAcHJvcGVydHkge1wibWluXCJ9IE1JTiBkZWZpbmVzIG1pbiB2YWx1ZVxuICogQHByb3BlcnR5IHtcIm1heFwifSBNQVggZGVmaW5lcyBtYXggdmFsdWVcbiAqIEBwcm9wZXJ0eSB7XCJzdGVwXCJ9IFNURVAgZGVmaW5lcyBzdGVwXG4gKiBAcHJvcGVydHkge1wibWlubGVuZ3RoXCJ9IE1JTl9MRU5HVEggZGVmaW5lcyBtaW4gbGVuZ3RoXG4gKiBAcHJvcGVydHkge1wibWF4bGVuZ3RoXCJ9IE1BWF9MRU5HVEggZGVmaW5lcyBtYXggbGVuZ3RoXG4gKiBAcHJvcGVydHkge1wicGF0dGVyblwifSBQQVRURVJOIGRlZmluZXMgcGF0dGVyblxuICogQHByb3BlcnR5IHtcImVtYWlsXCJ9IEVNQUlMIGRlZmluZXMgZW1haWxcbiAqIEBwcm9wZXJ0eSB7XCJ1cmxcIn0gVVJMIGRlZmluZXMgdXJsXG4gKiBAcHJvcGVydHkge1wiZGF0ZVwifSBEQVRFIGRlZmluZXMgZGF0ZVxuICogQHByb3BlcnR5IHtcInR5cGVcIn0gVFlQRSBkZWZpbmVzIHR5cGVcbiAqIEBwcm9wZXJ0eSB7XCJwYXNzd29yZFwifSBQQVNTV09SRCBkZWZpbmVzIHBhc3N3b3JkXG4gKiBAcHJvcGVydHkge1wibGlzdFwifSBMSVNUIGRlZmluZXMgbGlzdFxuICogQHByb3BlcnR5IHtcInVuaXF1ZVwifSBVTklRVUUgZmxhZ3MgdW5pcXVlbmVzc1xuICogQHByb3BlcnR5IHtcInZhbGlkYXRvclwifSBWQUxJREFUT1IgY3VzdG9tIHZhbGlkYXRvciBpZFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKi9cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlIGtleXMgdXNlZCBmb3IgdmFsaWRhdGlvbi5cbiAqIEBzdW1tYXJ5IEEgbmFtZXNwYWNlZCBjb2xsZWN0aW9uIG9mIHZhbGlkYXRpb24ga2V5IHN0cmluZ3MgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5LlxuICogQGNvbnN0IFZhbGlkYXRpb25LZXlzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKiBAdHlwZSB7VmFsaWRhdGlvbktleXNEZWZ9XG4gKi9cbmV4cG9ydCBjb25zdCBWYWxpZGF0aW9uS2V5cyA9IHtcbiAgUkVGTEVDVDogYCR7TW9kZWxLZXlzLlJFRkxFQ1R9dmFsaWRhdGlvbi5gLFxuICBEQVRFOiBcImRhdGVcIixcbiAgRU1BSUw6IFwiZW1haWxcIixcbiAgRk9STUFUOiBcImZvcm1hdFwiLFxuICBMSVNUOiBcImxpc3RcIixcbiAgTUFYOiBcIm1heFwiLFxuICBNQVhfTEVOR1RIOiBcIm1heGxlbmd0aFwiLFxuICBNSU46IFwibWluXCIsXG4gIE1JTl9MRU5HVEg6IFwibWlubGVuZ3RoXCIsXG4gIFBBU1NXT1JEOiBcInBhc3N3b3JkXCIsXG4gIFBBVFRFUk46IFwicGF0dGVyblwiLFxuICBSRVFVSVJFRDogXCJyZXF1aXJlZFwiLFxuICBTVEVQOiBcInN0ZXBcIixcbiAgVFlQRTogXCJ0eXBlXCIsXG4gIFVOSVFVRTogXCJ1bmlxdWVcIixcbiAgVVJMOiBcInVybFwiLFxuICBWQUxJREFUT1I6IFwidmFsaWRhdG9yXCIsXG4gIC4uLkNvbXBhcmlzb25WYWxpZGF0aW9uS2V5cyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIGxpc3Qgb2YgbW9udGggbmFtZXNcbiAqIEBzdW1tYXJ5IFN0b3JlcyBtb250aCBuYW1lcy4gQ2FuIGJlIGNoYW5nZWQgZm9yIGxvY2FsaXphdGlvbiBwdXJwb3Nlc1xuICogQGNvbnN0IE1PTlRIX05BTUVTXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBNT05USF9OQU1FUyA9IFtcbiAgXCJKYW51YXJ5XCIsXG4gIFwiRmVicnVhcnlcIixcbiAgXCJNYXJjaFwiLFxuICBcIkFwcmlsXCIsXG4gIFwiTWF5XCIsXG4gIFwiSnVuZVwiLFxuICBcIkp1bHlcIixcbiAgXCJBdWd1c3RcIixcbiAgXCJTZXB0ZW1iZXJcIixcbiAgXCJPY3RvYmVyXCIsXG4gIFwiTm92ZW1iZXJcIixcbiAgXCJEZWNlbWJlclwiLFxuXTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gbGlzdCBvZiBuYW1lcyBvZiBkYXlzIG9mIHRoZSB3ZWVrXG4gKiBAc3VtbWFyeSBTdG9yZXMgbmFtZXMgZm9yIGRheXMgb2YgdGhlIHdlZWsuIENhbiBiZSBjaGFuZ2VkIGZvciBsb2NhbGl6YXRpb24gcHVycG9zZXNcbiAqIEBjb25zdCBEQVlTX09GX1dFRUtfTkFNRVNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IERBWVNfT0ZfV0VFS19OQU1FUyA9IFtcbiAgXCJTdW5kYXlcIixcbiAgXCJNb25kYXlcIixcbiAgXCJUdWVzZGF5XCIsXG4gIFwiV2VkbmVzZGF5XCIsXG4gIFwiVGh1cnNkYXlcIixcbiAgXCJGcmlkYXlcIixcbiAgXCJTYXR1cmRheVwiLFxuXTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSBkZWZpbml0aW9uIGZvciBkZWZhdWx0IGVycm9yIG1lc3NhZ2Ugc3RyaW5ncyBrZXllZCBieSB2YWxpZGF0aW9uIHR5cGUuXG4gKiBAc3VtbWFyeSBFbnVtZXJhdGVzIHRoZSBzdXBwb3J0ZWQgZXJyb3IgbWVzc2FnZSBrZXlzIHdpdGggdGhlaXIgaW50ZW5kZWQgbWVhbmluZzsgdXNlZCB0byBsb2NhbGl6ZSBvciBvdmVycmlkZSBkZWZhdWx0IG1lc3NhZ2VzLlxuICogQHR5cGVkZWYge09iamVjdH0gRGVmYXVsdEVycm9yTWVzc2FnZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVFVSVJFRCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNSU4gZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTl9MRU5HVEggZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYX0xFTkdUSCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBQQVRURVJOIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEVNQUlMIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBUWVBFIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNURVAgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gREFURSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBERUZBVUxUIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IExJU1QgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElTVF9JTlNJREUgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTU9ERUxfTk9UX0ZPVU5EIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKi9cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgZGVmYXVsdCBlcnJvciBtZXNzYWdlc1xuICogQHN1bW1hcnkgTWFwcGluZyBiZXR3ZWVuIHZhbGlkYXRpb24ga2V5cyBhbmQgdGhlaXIgZGVmYXVsdCBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlcy5cbiAqIEBjb25zdCBERUZBVUxUX0VSUk9SX01FU1NBR0VTXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKiBAdHlwZSB7RGVmYXVsdEVycm9yTWVzc2FnZXN9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VSUk9SX01FU1NBR0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBSRVFVSVJFRDogXCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkXCIsXG4gIE1JTjogXCJUaGUgbWluaW11bSB2YWx1ZSBpcyB7MH1cIixcbiAgTUFYOiBcIlRoZSBtYXhpbXVtIHZhbHVlIGlzIHswfVwiLFxuICBNSU5fTEVOR1RIOiBcIlRoZSBtaW5pbXVtIGxlbmd0aCBpcyB7MH1cIixcbiAgTUFYX0xFTkdUSDogXCJUaGUgbWF4aW11bSBsZW5ndGggaXMgezB9XCIsXG4gIFBBVFRFUk46IFwiVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuXCIsXG4gIEVNQUlMOiBcIlRoZSB2YWx1ZSBpcyBub3QgYSB2YWxpZCBlbWFpbFwiLFxuICBVUkw6IFwiVGhlIHZhbHVlIGlzIG5vdCBhIHZhbGlkIFVSTFwiLFxuICBUWVBFOiBcIkludmFsaWQgdHlwZS4gRXhwZWN0ZWQgezB9LCByZWNlaXZlZCB7MX1cIixcbiAgU1RFUDogXCJJbnZhbGlkIHZhbHVlLiBOb3QgYSBzdGVwIG9mIHswfVwiLFxuICBEQVRFOiBcIkludmFsaWQgdmFsdWUuIG5vdCBhIHZhbGlkIERhdGVcIixcbiAgREVGQVVMVDogXCJUaGVyZSBpcyBhbiBFcnJvclwiLFxuICBQQVNTV09SRDpcbiAgICBcIk11c3QgYmUgYXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGFuZCBjb250YWluIG9uZSBvZiBudW1iZXIsIGxvd2VyIGFuZCB1cHBlciBjYXNlIGxldHRlcnMsIGFuZCBzcGVjaWFsIGNoYXJhY3RlciAoQCQhJSo/Jl8tLiwpXCIsXG4gIExJU1Q6IFwiSW52YWxpZCBsaXN0IG9mIHswfVwiLFxuICBNT0RFTF9OT1RfRk9VTkQ6IFwiTm8gbW9kZWwgcmVnaXN0ZXJlZCB1bmRlciB7MH1cIixcbiAgRVFVQUxTOiBcIlRoaXMgZmllbGQgbXVzdCBiZSBlcXVhbCB0byBmaWVsZCB7MH1cIixcbiAgRElGRjogXCJUaGlzIGZpZWxkIG11c3QgYmUgZGlmZmVyZW50IGZyb20gZmllbGQgezB9XCIsXG4gIExFU1NfVEhBTjogXCJUaGlzIGZpZWxkIG11c3QgYmUgbGVzcyB0aGFuIGZpZWxkIHswfVwiLFxuICBMRVNTX1RIQU5fT1JfRVFVQUw6IFwiVGhpcyBmaWVsZCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBmaWVsZCB7MH1cIixcbiAgR1JFQVRFUl9USEFOOiBcIlRoaXMgZmllbGQgbXVzdCBiZSBncmVhdGVyIHRoYW4gZmllbGQgezB9XCIsXG4gIEdSRUFURVJfVEhBTl9PUl9FUVVBTDpcbiAgICBcIlRoaXMgZmllbGQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gZmllbGQgezB9XCIsXG4gIFVOSVFVRTogXCJEdXBsaWNhdGUgZm91bmQsIHRoaXMgZmllbGQgbXVzdCBiZSB1bmlxdWUuXCIsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIGRlZmluaXRpb24gZm9yIGRlZmF1bHQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5zIHVzZWQgaW4gdmFsaWRhdGlvbi5cbiAqIEBzdW1tYXJ5IENhcHR1cmVzIGNvbW1vbiByZWdleCBwYXR0ZXJucyBmb3IgZW1haWwsIFVSTCwgYW5kIHBhc3N3b3JkIHBvbGljaWVzLCBpbmNsdWRpbmcgbmVzdGVkIGdyb3VwaW5nIGZvciBwYXNzd29yZC1yZWxhdGVkIHJ1bGVzLlxuICogQHR5cGVkZWYge09iamVjdH0gRGVmYXVsdFBhdHRlcm5zXG4gKiBAcHJvcGVydHkge1JlZ0V4cH0gRU1BSUwgRW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIHBhdHRlcm5cbiAqIEBwcm9wZXJ0eSB7UmVnRXhwfSBVUkwgVVJMIHZhbGlkYXRpb24gcGF0dGVyblxuICogQHByb3BlcnR5IHtPYmplY3R9IFBBU1NXT1JEIFBhc3N3b3JkLXJlbGF0ZWQgcmVnZXggcGF0dGVybnNcbiAqIEBwcm9wZXJ0eSB7UmVnRXhwfSBQQVNTV09SRC5DSEFSOF9PTkVfT0ZfRUFDSCBBdCBsZWFzdCA4IGNoYXJzIHdpdGggbG93ZXIsIHVwcGVyLCBudW1iZXIsIGFuZCBzcGVjaWFsIGNoYXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIHZhcmlvdXMgZGVmYXVsdCByZWdleHAgcGF0dGVybnMgdXNlZFxuICogQHN1bW1hcnkgQ29sbGVjdGlvbiBvZiBmcmVxdWVudGx5IHVzZWQgdmFsaWRhdGlvbiBwYXR0ZXJucyBncm91cGVkIHVuZGVyIHNlbWFudGljIGtleXMuXG4gKiBAY29uc3QgREVGQVVMVF9QQVRURVJOU1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICogQHR5cGUge0RlZmF1bHRQYXR0ZXJuc31cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFUVEVSTlMgPSB7XG4gIEVNQUlMOlxuICAgIC9bYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFwuW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqQCg/OlthLXpBLVowLTldKD86W2EtejAtOS1dKlthLXpBLVowLTldKT9cXC4pK1thLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT8vLFxuICBVUkw6IC9eKD86KD86KD86aHR0cHM/fGZ0cCk6KT9cXC9cXC8pKD86XFxTKyg/OjpcXFMqKT9AKT8oPzooPyEoPzoxMHwxMjcpKD86XFwuXFxkezEsM30pezN9KSg/ISg/OjE2OVxcLjI1NHwxOTJcXC4xNjgpKD86XFwuXFxkezEsM30pezJ9KSg/ITE3MlxcLig/OjFbNi05XXwyXFxkfDNbMC0xXSkoPzpcXC5cXGR7MSwzfSl7Mn0pKD86WzEtOV1cXGQ/fDFcXGRcXGR8MlswMV1cXGR8MjJbMC0zXSkoPzpcXC4oPzoxP1xcZHsxLDJ9fDJbMC00XVxcZHwyNVswLTVdKSl7Mn0oPzpcXC4oPzpbMS05XVxcZD98MVxcZFxcZHwyWzAtNF1cXGR8MjVbMC00XSkpfCg/Oig/OlthLXowLTlcXHUwMGExLVxcdWZmZmZdW2EtejAtOVxcdTAwYTEtXFx1ZmZmZl8tXXswLDYyfSk/W2EtejAtOVxcdTAwYTEtXFx1ZmZmZl1cXC4pKyg/OlthLXpcXHUwMGExLVxcdWZmZmZdezIsfVxcLj8pKSg/OjpcXGR7Miw1fSk/KD86Wy8/I11cXFMqKT8kL2ksXG4gIFBBU1NXT1JEOiB7XG4gICAgQ0hBUjhfT05FX09GX0VBQ0g6XG4gICAgICAvXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlxcZCkoPz0uKltAJCElKj8mX1xcLS4sXSlbQS1aYS16XFxkQCQhJSo/Jl9cXC0uLF17OCx9JC9nLFxuICB9LFxufTtcbiJdfQ==
|
|
@@ -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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/decorator-validation",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.18",
|
|
4
4
|
"description": "simple decorator based validation engine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.ts",
|
|
35
35
|
"lint": "eslint .",
|
|
36
36
|
"lint-fix": "eslint --fix .",
|
|
37
|
+
"prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
37
38
|
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
38
39
|
"release": "./bin/tag-release.sh",
|
|
39
40
|
"clean-publish": "npx clean-publish",
|
|
@@ -110,6 +111,7 @@
|
|
|
110
111
|
"typescript-eslint": "^8.31.0"
|
|
111
112
|
},
|
|
112
113
|
"peerDependencies": {
|
|
114
|
+
"@decaf-ts/decoration": "^0.0.7",
|
|
113
115
|
"@decaf-ts/reflection": "latest",
|
|
114
116
|
"reflect-metadata": "^0.2.1",
|
|
115
117
|
"typed-object-accumulator": "^0.1.5"
|