@decaf-ts/decorator-validation 1.10.5 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/decorator-validation.cjs +1 -1
- package/dist/decorator-validation.cjs.map +1 -1
- package/dist/decorator-validation.js +1 -1
- package/dist/decorator-validation.js.map +1 -1
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +2 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/model/Builder.d.ts +84 -0
- package/lib/esm/model/Builder.js +395 -129
- package/lib/esm/model/Builder.js.map +1 -1
- package/lib/esm/model/Model.d.ts +21 -19
- package/lib/esm/model/Model.js +112 -105
- package/lib/esm/model/Model.js.map +1 -1
- package/lib/esm/model/constants.d.ts +8 -8
- package/lib/esm/model/constants.js +8 -9
- package/lib/esm/model/constants.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +2 -12
- package/lib/esm/model/decorators.js +5 -39
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +1 -0
- package/lib/esm/model/index.js.map +1 -1
- package/lib/esm/model/types.d.ts +9 -12
- package/lib/esm/model/utils.d.ts +0 -3
- package/lib/esm/model/utils.js +0 -10
- package/lib/esm/model/utils.js.map +1 -1
- package/lib/esm/model/validation.d.ts +4 -37
- package/lib/esm/model/validation.js +30 -106
- package/lib/esm/model/validation.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +128 -0
- package/lib/esm/overrides/Metadata.js +2 -0
- package/lib/esm/overrides/Metadata.js.map +1 -0
- package/lib/esm/overrides/index.d.ts +3 -0
- package/lib/esm/overrides/index.js +4 -0
- package/lib/esm/overrides/index.js.map +1 -0
- package/lib/esm/overrides/overrides.d.ts +1 -0
- package/lib/esm/overrides/overrides.js +79 -0
- package/lib/esm/overrides/overrides.js.map +1 -0
- package/lib/esm/overrides/types.d.ts +9 -0
- package/lib/esm/overrides/types.js +2 -0
- package/lib/esm/overrides/types.js.map +1 -0
- package/lib/esm/types/validation.d.ts +4 -2
- package/lib/esm/utils/constants.d.ts +4 -18
- package/lib/esm/utils/constants.js +4 -17
- package/lib/esm/utils/constants.js.map +1 -1
- package/lib/esm/utils/dates.d.ts +0 -1
- package/lib/esm/utils/dates.js +0 -1
- package/lib/esm/utils/dates.js.map +1 -1
- package/lib/esm/utils/equality.d.ts +56 -0
- package/lib/esm/utils/equality.js +160 -0
- package/lib/esm/utils/equality.js.map +1 -0
- package/lib/esm/utils/index.d.ts +1 -2
- package/lib/esm/utils/index.js +1 -2
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/registry.d.ts +1 -1
- package/lib/esm/utils/serialization.d.ts +2 -2
- package/lib/esm/utils/serialization.js +10 -2
- package/lib/esm/utils/serialization.js.map +1 -1
- package/lib/esm/utils/types.d.ts +0 -102
- package/lib/esm/validation/Validation.d.ts +2 -3
- package/lib/esm/validation/Validation.js +11 -6
- package/lib/esm/validation/Validation.js.map +1 -1
- package/lib/esm/validation/Validators/BaseValidator.js +7 -3
- package/lib/esm/validation/Validators/BaseValidator.js.map +1 -1
- package/lib/esm/validation/Validators/DiffValidator.js +1 -1
- package/lib/esm/validation/Validators/DiffValidator.js.map +1 -1
- package/lib/esm/validation/Validators/EqualsValidator.js +1 -1
- package/lib/esm/validation/Validators/EqualsValidator.js.map +1 -1
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +1 -1
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +1 -1
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
- package/lib/esm/validation/Validators/ListValidator.js +4 -4
- package/lib/esm/validation/Validators/ListValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MaxLengthValidator.js +3 -2
- package/lib/esm/validation/Validators/MaxLengthValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MaxValidator.js +1 -1
- package/lib/esm/validation/Validators/MaxValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MinLengthValidator.js +3 -2
- package/lib/esm/validation/Validators/MinLengthValidator.js.map +1 -1
- package/lib/esm/validation/Validators/MinValidator.js +1 -1
- package/lib/esm/validation/Validators/MinValidator.js.map +1 -1
- package/lib/esm/validation/Validators/OptionValidator.d.ts +29 -0
- package/lib/esm/validation/Validators/OptionValidator.js +61 -0
- package/lib/esm/validation/Validators/OptionValidator.js.map +1 -0
- package/lib/esm/validation/Validators/TypeValidator.js +2 -2
- package/lib/esm/validation/Validators/TypeValidator.js.map +1 -1
- package/lib/esm/validation/Validators/constants.d.ts +2 -1
- package/lib/esm/validation/Validators/constants.js +3 -2
- package/lib/esm/validation/Validators/constants.js.map +1 -1
- package/lib/esm/validation/Validators/decorators.d.ts +1 -1
- package/lib/esm/validation/Validators/decorators.js +2 -2
- package/lib/esm/validation/Validators/decorators.js.map +1 -1
- package/lib/esm/validation/Validators/index.d.ts +1 -0
- package/lib/esm/validation/Validators/index.js +1 -0
- package/lib/esm/validation/Validators/index.js.map +1 -1
- package/lib/esm/validation/Validators/utils.d.ts +33 -0
- package/lib/esm/validation/Validators/utils.js +62 -0
- package/lib/esm/validation/Validators/utils.js.map +1 -1
- package/lib/esm/validation/decorators.d.ts +28 -17
- package/lib/esm/validation/decorators.js +138 -55
- package/lib/esm/validation/decorators.js.map +1 -1
- package/lib/esm/validation/types.d.ts +15 -5
- package/lib/esm/validation/types.js.map +1 -1
- package/lib/index.cjs +2 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js.map +1 -1
- package/lib/model/Builder.cjs +399 -128
- package/lib/model/Builder.d.ts +84 -0
- package/lib/model/Builder.js.map +1 -1
- package/lib/model/Model.cjs +114 -107
- package/lib/model/Model.d.ts +21 -19
- package/lib/model/Model.js.map +1 -1
- package/lib/model/constants.cjs +8 -9
- package/lib/model/constants.d.ts +8 -8
- package/lib/model/constants.js.map +1 -1
- package/lib/model/decorators.cjs +4 -39
- package/lib/model/decorators.d.ts +2 -12
- package/lib/model/decorators.js.map +1 -1
- package/lib/model/index.cjs +1 -0
- package/lib/model/index.d.ts +1 -0
- package/lib/model/index.js.map +1 -1
- package/lib/model/types.d.ts +9 -12
- package/lib/model/utils.cjs +0 -12
- package/lib/model/utils.d.ts +0 -3
- package/lib/model/utils.js.map +1 -1
- package/lib/model/validation.cjs +30 -108
- package/lib/model/validation.d.ts +4 -37
- package/lib/model/validation.js.map +1 -1
- package/lib/overrides/Metadata.cjs +3 -0
- package/lib/overrides/Metadata.d.ts +128 -0
- package/lib/overrides/Metadata.js.map +1 -0
- package/lib/overrides/index.cjs +20 -0
- package/lib/overrides/index.d.ts +3 -0
- package/lib/overrides/index.js.map +1 -0
- package/lib/overrides/overrides.cjs +81 -0
- package/lib/overrides/overrides.d.ts +1 -0
- package/lib/overrides/overrides.js.map +1 -0
- package/lib/overrides/types.cjs +3 -0
- package/lib/overrides/types.d.ts +9 -0
- package/lib/overrides/types.js.map +1 -0
- package/lib/types/validation.d.ts +4 -2
- package/lib/utils/constants.cjs +5 -18
- package/lib/utils/constants.d.ts +4 -18
- package/lib/utils/constants.js.map +1 -1
- package/lib/utils/dates.cjs +0 -1
- package/lib/utils/dates.d.ts +0 -1
- package/lib/utils/dates.js.map +1 -1
- package/lib/utils/equality.cjs +163 -0
- package/lib/utils/equality.d.ts +56 -0
- package/lib/utils/equality.js.map +1 -0
- package/lib/utils/index.cjs +1 -2
- package/lib/utils/index.d.ts +1 -2
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/registry.d.ts +1 -1
- package/lib/utils/serialization.cjs +10 -2
- package/lib/utils/serialization.d.ts +2 -2
- package/lib/utils/serialization.js.map +1 -1
- package/lib/utils/types.d.ts +0 -102
- package/lib/validation/Validation.cjs +11 -6
- package/lib/validation/Validation.d.ts +2 -3
- package/lib/validation/Validation.js.map +1 -1
- package/lib/validation/Validators/BaseValidator.cjs +7 -3
- package/lib/validation/Validators/BaseValidator.js.map +1 -1
- package/lib/validation/Validators/DiffValidator.cjs +2 -2
- package/lib/validation/Validators/DiffValidator.js.map +1 -1
- package/lib/validation/Validators/EqualsValidator.cjs +2 -2
- package/lib/validation/Validators/EqualsValidator.js.map +1 -1
- package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +2 -2
- package/lib/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
- package/lib/validation/Validators/LessThanOrEqualValidator.cjs +2 -2
- package/lib/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
- package/lib/validation/Validators/ListValidator.cjs +4 -4
- package/lib/validation/Validators/ListValidator.js.map +1 -1
- package/lib/validation/Validators/MaxLengthValidator.cjs +3 -2
- package/lib/validation/Validators/MaxLengthValidator.js.map +1 -1
- package/lib/validation/Validators/MaxValidator.cjs +1 -1
- package/lib/validation/Validators/MaxValidator.js.map +1 -1
- package/lib/validation/Validators/MinLengthValidator.cjs +3 -2
- package/lib/validation/Validators/MinLengthValidator.js.map +1 -1
- package/lib/validation/Validators/MinValidator.cjs +1 -1
- package/lib/validation/Validators/MinValidator.js.map +1 -1
- package/lib/validation/Validators/OptionValidator.cjs +64 -0
- package/lib/validation/Validators/OptionValidator.d.ts +29 -0
- package/lib/validation/Validators/OptionValidator.js.map +1 -0
- package/lib/validation/Validators/TypeValidator.cjs +2 -2
- package/lib/validation/Validators/TypeValidator.js.map +1 -1
- package/lib/validation/Validators/constants.cjs +5 -4
- package/lib/validation/Validators/constants.d.ts +2 -1
- package/lib/validation/Validators/constants.js.map +1 -1
- package/lib/validation/Validators/decorators.cjs +3 -3
- package/lib/validation/Validators/decorators.d.ts +1 -1
- package/lib/validation/Validators/decorators.js.map +1 -1
- package/lib/validation/Validators/index.cjs +1 -0
- package/lib/validation/Validators/index.d.ts +1 -0
- package/lib/validation/Validators/index.js.map +1 -1
- package/lib/validation/Validators/utils.cjs +66 -0
- package/lib/validation/Validators/utils.d.ts +33 -0
- package/lib/validation/Validators/utils.js.map +1 -1
- package/lib/validation/decorators.cjs +154 -69
- package/lib/validation/decorators.d.ts +28 -17
- package/lib/validation/decorators.js.map +1 -1
- package/lib/validation/types.d.ts +15 -5
- package/lib/validation/types.js.map +1 -1
- package/package.json +2 -3
- package/lib/esm/utils/Decoration.d.ts +0 -135
- package/lib/esm/utils/Decoration.js +0 -227
- package/lib/esm/utils/Decoration.js.map +0 -1
- package/lib/esm/utils/decorators.d.ts +0 -38
- package/lib/esm/utils/decorators.js +0 -64
- package/lib/esm/utils/decorators.js.map +0 -1
- package/lib/utils/Decoration.cjs +0 -231
- package/lib/utils/Decoration.d.ts +0 -135
- package/lib/utils/Decoration.js.map +0 -1
- package/lib/utils/decorators.cjs +0 -68
- package/lib/utils/decorators.d.ts +0 -38
- package/lib/utils/decorators.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BasicMetadata } from "@decaf-ts/decoration";
|
|
2
|
+
import { ValidatorOptions } from "../validation/index";
|
|
3
|
+
export type ExtendedMetadata<M> = BasicMetadata<M> & {
|
|
4
|
+
validation: Record<keyof M, ValidatorOptions>;
|
|
5
|
+
};
|
|
6
|
+
export type designTypeReturn = {
|
|
7
|
+
designTypes: any[];
|
|
8
|
+
designType: any;
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/overrides/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DecoratorMetadata } from "@decaf-ts/reflection";
|
|
2
1
|
import { Model } from "../model/Model";
|
|
3
2
|
import { ModelErrorDefinition } from "../model/ModelErrorDefinition";
|
|
4
3
|
/**
|
|
@@ -20,7 +19,10 @@ import { ModelErrorDefinition } from "../model/ModelErrorDefinition";
|
|
|
20
19
|
* @memberOf module:decorator-validation
|
|
21
20
|
*/
|
|
22
21
|
export type ConditionalAsync<Async extends boolean, T> = Async extends true ? Promise<T> : T;
|
|
23
|
-
export type DecoratorMetadataAsync =
|
|
22
|
+
export type DecoratorMetadataAsync = {
|
|
24
23
|
async?: boolean;
|
|
25
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated
|
|
27
|
+
*/
|
|
26
28
|
export type ModelConditionalAsync<M> = M extends Model<true> ? Promise<ModelErrorDefinition | undefined> : ModelErrorDefinition | undefined;
|
|
@@ -4,10 +4,7 @@
|
|
|
4
4
|
* These keys are used throughout the library to store and retrieve metadata about models,
|
|
5
5
|
* their properties, and their behavior.
|
|
6
6
|
*
|
|
7
|
-
* @property {string} REFLECT - Prefix to all other keys, used as a namespace
|
|
8
7
|
* @property {string} TYPE - Key for storing design type information
|
|
9
|
-
* @property {string} PARAMS - Key for storing method parameter types
|
|
10
|
-
* @property {string} RETURN - Key for storing method return type
|
|
11
8
|
* @property {string} MODEL - Key for identifying model metadata
|
|
12
9
|
* @property {string} ANCHOR - Anchor key that serves as a ghost property in the model
|
|
13
10
|
* @property {string} CONSTRUCTION - Key for storing construction information
|
|
@@ -21,25 +18,14 @@
|
|
|
21
18
|
* @category Model
|
|
22
19
|
*/
|
|
23
20
|
export declare enum ModelKeys {
|
|
24
|
-
|
|
25
|
-
DESCRIPTION = "decaf.description.",
|
|
21
|
+
DESCRIPTION = "description",
|
|
26
22
|
TYPE = "design:type",
|
|
27
|
-
PARAMS = "design:paramtypes",
|
|
28
|
-
RETURN = "design:returntype",
|
|
29
23
|
MODEL = "model",
|
|
30
24
|
ANCHOR = "__model",
|
|
31
25
|
CONSTRUCTION = "constructed-by",
|
|
32
26
|
ATTRIBUTE = "__attributes",
|
|
33
27
|
HASHING = "hashing",
|
|
34
|
-
SERIALIZATION = "serialization"
|
|
28
|
+
SERIALIZATION = "serialization",
|
|
29
|
+
DECORATORS = "decorators",
|
|
30
|
+
CONSTRUCTOR = "__original"
|
|
35
31
|
}
|
|
36
|
-
/**
|
|
37
|
-
* @description Default flavour identifier for the decorator system
|
|
38
|
-
* @summary Defines the default flavour used by the Decoration class when no specific flavour is provided.
|
|
39
|
-
* This constant is used throughout the library as the fallback flavour for decorators.
|
|
40
|
-
*
|
|
41
|
-
* @const {string}
|
|
42
|
-
* @memberOf module:decorator-validation
|
|
43
|
-
* @category Model
|
|
44
|
-
*/
|
|
45
|
-
export declare const DefaultFlavour = "decaf";
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
+
import { DecorationKeys } from "@decaf-ts/decoration";
|
|
1
2
|
/**
|
|
2
3
|
* @description Enum containing metadata keys used for reflection in the model system
|
|
3
4
|
* @summary Defines the various Model keys used for reflection and metadata storage.
|
|
4
5
|
* These keys are used throughout the library to store and retrieve metadata about models,
|
|
5
6
|
* their properties, and their behavior.
|
|
6
7
|
*
|
|
7
|
-
* @property {string} REFLECT - Prefix to all other keys, used as a namespace
|
|
8
8
|
* @property {string} TYPE - Key for storing design type information
|
|
9
|
-
* @property {string} PARAMS - Key for storing method parameter types
|
|
10
|
-
* @property {string} RETURN - Key for storing method return type
|
|
11
9
|
* @property {string} MODEL - Key for identifying model metadata
|
|
12
10
|
* @property {string} ANCHOR - Anchor key that serves as a ghost property in the model
|
|
13
11
|
* @property {string} CONSTRUCTION - Key for storing construction information
|
|
@@ -22,26 +20,15 @@
|
|
|
22
20
|
*/
|
|
23
21
|
export var ModelKeys;
|
|
24
22
|
(function (ModelKeys) {
|
|
25
|
-
ModelKeys["
|
|
26
|
-
ModelKeys["DESCRIPTION"] = "decaf.description.";
|
|
23
|
+
ModelKeys["DESCRIPTION"] = "description";
|
|
27
24
|
ModelKeys["TYPE"] = "design:type";
|
|
28
|
-
ModelKeys["PARAMS"] = "design:paramtypes";
|
|
29
|
-
ModelKeys["RETURN"] = "design:returntype";
|
|
30
25
|
ModelKeys["MODEL"] = "model";
|
|
31
26
|
ModelKeys["ANCHOR"] = "__model";
|
|
32
27
|
ModelKeys["CONSTRUCTION"] = "constructed-by";
|
|
33
28
|
ModelKeys["ATTRIBUTE"] = "__attributes";
|
|
34
29
|
ModelKeys["HASHING"] = "hashing";
|
|
35
30
|
ModelKeys["SERIALIZATION"] = "serialization";
|
|
31
|
+
ModelKeys["DECORATORS"] = "decorators";
|
|
32
|
+
ModelKeys["CONSTRUCTOR"] = "__original";
|
|
36
33
|
})(ModelKeys || (ModelKeys = {}));
|
|
37
|
-
/**
|
|
38
|
-
* @description Default flavour identifier for the decorator system
|
|
39
|
-
* @summary Defines the default flavour used by the Decoration class when no specific flavour is provided.
|
|
40
|
-
* This constant is used throughout the library as the fallback flavour for decorators.
|
|
41
|
-
*
|
|
42
|
-
* @const {string}
|
|
43
|
-
* @memberOf module:decorator-validation
|
|
44
|
-
* @category Model
|
|
45
|
-
*/
|
|
46
|
-
export const DefaultFlavour = "decaf";
|
|
47
34
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,wCAA6C,CAAA;IAC7C,iCAAsC,CAAA;IACtC,4BAAe,CAAA;IACf,+BAAkB,CAAA;IAClB,4CAA+B,CAAA;IAC/B,uCAA0B,CAAA;IAC1B,gCAAmB,CAAA;IACnB,4CAA+B,CAAA;IAC/B,sCAAyB,CAAA;IACzB,uCAA6C,CAAA;AAC/C,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB"}
|
package/lib/esm/utils/dates.d.ts
CHANGED
package/lib/esm/utils/dates.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dates.js","sourceRoot":"","sources":["../../../src/utils/dates.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dates.js","sourceRoot":"","sources":["../../../src/utils/dates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Enhanced algorithm for deep comparison of any two values with optional ignored properties
|
|
3
|
+
* @summary Performs a deep equality check between two values, handling various types including primitives, objects, arrays, dates, and more
|
|
4
|
+
* @param {unknown} a - First value to compare
|
|
5
|
+
* @param {unknown} b - Second value to compare
|
|
6
|
+
* @param {string[]} propsToIgnore - A list of property names to ignore during comparison
|
|
7
|
+
* @return {boolean} Returns true if the values are deeply equal, false otherwise
|
|
8
|
+
* @function isEqual
|
|
9
|
+
* @mermaid
|
|
10
|
+
* sequenceDiagram
|
|
11
|
+
* participant Caller
|
|
12
|
+
* participant isEqual
|
|
13
|
+
* participant Recursion
|
|
14
|
+
*
|
|
15
|
+
* Caller->>isEqual: isEqual(a, b, propsToIgnore)
|
|
16
|
+
* Note over isEqual: Check simple cases (identity, null, primitives)
|
|
17
|
+
*
|
|
18
|
+
* alt a === b
|
|
19
|
+
* isEqual-->>Caller: true (with special case for +0/-0)
|
|
20
|
+
* else a or b is null
|
|
21
|
+
* isEqual-->>Caller: a === b
|
|
22
|
+
* else different types
|
|
23
|
+
* isEqual-->>Caller: false
|
|
24
|
+
* else both NaN
|
|
25
|
+
* isEqual-->>Caller: true
|
|
26
|
+
* else primitive types
|
|
27
|
+
* isEqual-->>Caller: a === b
|
|
28
|
+
* else both Date objects
|
|
29
|
+
* isEqual-->>Caller: Compare timestamps
|
|
30
|
+
* else both RegExp objects
|
|
31
|
+
* isEqual-->>Caller: Compare string representations
|
|
32
|
+
* else both Error objects
|
|
33
|
+
* isEqual-->>Caller: Compare name and message
|
|
34
|
+
* else both Arrays
|
|
35
|
+
* Note over isEqual: Check length
|
|
36
|
+
* loop For each element
|
|
37
|
+
* isEqual->>Recursion: isEqual(a[i], b[i], propsToIgnore)
|
|
38
|
+
* end
|
|
39
|
+
* else both Maps or Sets
|
|
40
|
+
* Note over isEqual: Compare size and entries
|
|
41
|
+
* else both TypedArrays
|
|
42
|
+
* Note over isEqual: Compare byte by byte
|
|
43
|
+
* else both Objects
|
|
44
|
+
* Note over isEqual: Filter keys by propsToIgnore
|
|
45
|
+
* Note over isEqual: Compare key counts
|
|
46
|
+
* loop For each key
|
|
47
|
+
* isEqual->>Recursion: isEqual(a[key], b[key], propsToIgnore)
|
|
48
|
+
* end
|
|
49
|
+
* Note over isEqual: Check Symbol properties
|
|
50
|
+
* Note over isEqual: Compare prototypes
|
|
51
|
+
* end
|
|
52
|
+
*
|
|
53
|
+
* isEqual-->>Caller: Comparison result
|
|
54
|
+
* @memberOf module:decorator-validation
|
|
55
|
+
*/
|
|
56
|
+
export declare function isEqual(a: unknown, b: unknown, ...propsToIgnore: string[]): boolean;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Enhanced algorithm for deep comparison of any two values with optional ignored properties
|
|
3
|
+
* @summary Performs a deep equality check between two values, handling various types including primitives, objects, arrays, dates, and more
|
|
4
|
+
* @param {unknown} a - First value to compare
|
|
5
|
+
* @param {unknown} b - Second value to compare
|
|
6
|
+
* @param {string[]} propsToIgnore - A list of property names to ignore during comparison
|
|
7
|
+
* @return {boolean} Returns true if the values are deeply equal, false otherwise
|
|
8
|
+
* @function isEqual
|
|
9
|
+
* @mermaid
|
|
10
|
+
* sequenceDiagram
|
|
11
|
+
* participant Caller
|
|
12
|
+
* participant isEqual
|
|
13
|
+
* participant Recursion
|
|
14
|
+
*
|
|
15
|
+
* Caller->>isEqual: isEqual(a, b, propsToIgnore)
|
|
16
|
+
* Note over isEqual: Check simple cases (identity, null, primitives)
|
|
17
|
+
*
|
|
18
|
+
* alt a === b
|
|
19
|
+
* isEqual-->>Caller: true (with special case for +0/-0)
|
|
20
|
+
* else a or b is null
|
|
21
|
+
* isEqual-->>Caller: a === b
|
|
22
|
+
* else different types
|
|
23
|
+
* isEqual-->>Caller: false
|
|
24
|
+
* else both NaN
|
|
25
|
+
* isEqual-->>Caller: true
|
|
26
|
+
* else primitive types
|
|
27
|
+
* isEqual-->>Caller: a === b
|
|
28
|
+
* else both Date objects
|
|
29
|
+
* isEqual-->>Caller: Compare timestamps
|
|
30
|
+
* else both RegExp objects
|
|
31
|
+
* isEqual-->>Caller: Compare string representations
|
|
32
|
+
* else both Error objects
|
|
33
|
+
* isEqual-->>Caller: Compare name and message
|
|
34
|
+
* else both Arrays
|
|
35
|
+
* Note over isEqual: Check length
|
|
36
|
+
* loop For each element
|
|
37
|
+
* isEqual->>Recursion: isEqual(a[i], b[i], propsToIgnore)
|
|
38
|
+
* end
|
|
39
|
+
* else both Maps or Sets
|
|
40
|
+
* Note over isEqual: Compare size and entries
|
|
41
|
+
* else both TypedArrays
|
|
42
|
+
* Note over isEqual: Compare byte by byte
|
|
43
|
+
* else both Objects
|
|
44
|
+
* Note over isEqual: Filter keys by propsToIgnore
|
|
45
|
+
* Note over isEqual: Compare key counts
|
|
46
|
+
* loop For each key
|
|
47
|
+
* isEqual->>Recursion: isEqual(a[key], b[key], propsToIgnore)
|
|
48
|
+
* end
|
|
49
|
+
* Note over isEqual: Check Symbol properties
|
|
50
|
+
* Note over isEqual: Compare prototypes
|
|
51
|
+
* end
|
|
52
|
+
*
|
|
53
|
+
* isEqual-->>Caller: Comparison result
|
|
54
|
+
* @memberOf module:decorator-validation
|
|
55
|
+
*/
|
|
56
|
+
export function isEqual(a, b, ...propsToIgnore) {
|
|
57
|
+
// Handle simple cases
|
|
58
|
+
if (a === b) {
|
|
59
|
+
// Special case for +0 and -0
|
|
60
|
+
return a !== 0 || 1 / a === 1 / b;
|
|
61
|
+
}
|
|
62
|
+
if (a == null || b == null)
|
|
63
|
+
return a === b;
|
|
64
|
+
if (typeof a !== typeof b)
|
|
65
|
+
return false;
|
|
66
|
+
// Handle NaN
|
|
67
|
+
if (Number.isNaN(a) && Number.isNaN(b))
|
|
68
|
+
return true;
|
|
69
|
+
// Handle primitive types
|
|
70
|
+
if (typeof a !== "object")
|
|
71
|
+
return a === b;
|
|
72
|
+
// Handle Date objects
|
|
73
|
+
if (a instanceof Date && b instanceof Date) {
|
|
74
|
+
// Check if both dates are invalid
|
|
75
|
+
if (isNaN(a.getTime()) && isNaN(b.getTime()))
|
|
76
|
+
return true;
|
|
77
|
+
return a.getTime() === b.getTime();
|
|
78
|
+
}
|
|
79
|
+
// Handle RegExp objects
|
|
80
|
+
if (a instanceof RegExp && b instanceof RegExp)
|
|
81
|
+
return a.toString() === b.toString();
|
|
82
|
+
// Handle Error objects
|
|
83
|
+
if (a instanceof Error && b instanceof Error) {
|
|
84
|
+
return a.name === b.name && a.message === b.message;
|
|
85
|
+
}
|
|
86
|
+
// Handle Array objects
|
|
87
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
88
|
+
if (a.length !== b.length)
|
|
89
|
+
return false;
|
|
90
|
+
for (let i = 0; i < a.length; i++) {
|
|
91
|
+
if (!isEqual(a[i], b[i], ...propsToIgnore))
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
// Handle Map objects
|
|
97
|
+
if (a instanceof Map && b instanceof Map) {
|
|
98
|
+
if (a.size !== b.size)
|
|
99
|
+
return false;
|
|
100
|
+
for (const [key, value] of a) {
|
|
101
|
+
if (!b.has(key) || !isEqual(value, b.get(key), ...propsToIgnore))
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
// Handle Set objects
|
|
107
|
+
if (a instanceof Set && b instanceof Set) {
|
|
108
|
+
if (a.size !== b.size)
|
|
109
|
+
return false;
|
|
110
|
+
for (const item of a) {
|
|
111
|
+
if (!b.has(item))
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
// Handle TypedArray objects
|
|
117
|
+
if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
|
|
118
|
+
if (a.byteLength !== b.byteLength)
|
|
119
|
+
return false;
|
|
120
|
+
if (a.byteOffset !== b.byteOffset)
|
|
121
|
+
return false;
|
|
122
|
+
if (a.buffer.byteLength !== b.buffer.byteLength)
|
|
123
|
+
return false;
|
|
124
|
+
const uint8A = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
|
|
125
|
+
const uint8B = new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
|
|
126
|
+
for (let i = 0; i < uint8A.length; i++) {
|
|
127
|
+
if (uint8A[i] !== uint8B[i])
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
// Handle other objects
|
|
133
|
+
const aKeys = Object.keys(a).filter((k) => !propsToIgnore.includes(k));
|
|
134
|
+
const bKeys = Object.keys(b).filter((k) => !propsToIgnore.includes(k));
|
|
135
|
+
if (aKeys.length !== bKeys.length)
|
|
136
|
+
return false;
|
|
137
|
+
for (const key of aKeys) {
|
|
138
|
+
if (!bKeys.includes(key))
|
|
139
|
+
return false;
|
|
140
|
+
if (!isEqual(a[key], b[key], ...propsToIgnore))
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
// Handle Symbol properties
|
|
144
|
+
const aSymbols = Object.getOwnPropertySymbols(a).filter((s) => !propsToIgnore.includes(s.toString()));
|
|
145
|
+
const bSymbols = Object.getOwnPropertySymbols(b).filter((s) => !propsToIgnore.includes(s.toString()));
|
|
146
|
+
if (aSymbols.length !== bSymbols.length)
|
|
147
|
+
return false;
|
|
148
|
+
for (const sym of aSymbols) {
|
|
149
|
+
if (!bSymbols.includes(sym))
|
|
150
|
+
return false;
|
|
151
|
+
if (!isEqual(a[sym], b[sym], ...propsToIgnore))
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
// Add this check right before the final return statement
|
|
155
|
+
if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=equality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equality.js","sourceRoot":"","sources":["../../../src/utils/equality.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils/index.d.ts
CHANGED
package/lib/esm/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,2BAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,2BAAwB;AACxB,8BAA2B;AAC3B,6BAA0B;AAC1B,+BAA4B;AAC5B,8BAA2B;AAC3B,mCAAgC;AAChC,6BAA0B;AAC1B,2BAAwB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Constructor } from "
|
|
1
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
2
2
|
import { Serializer } from "./types";
|
|
3
3
|
import { Model } from "../model/Model";
|
|
4
4
|
export declare const DefaultSerializationMethod = "json";
|
|
@@ -15,7 +15,7 @@ export declare const DefaultSerializationMethod = "json";
|
|
|
15
15
|
*
|
|
16
16
|
* @category Model
|
|
17
17
|
*/
|
|
18
|
-
export declare class JSONSerializer<T extends Model
|
|
18
|
+
export declare class JSONSerializer<T extends Model<boolean>> implements Serializer<T> {
|
|
19
19
|
constructor();
|
|
20
20
|
/**
|
|
21
21
|
* @summary prepares the model for serialization
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
1
2
|
import { Model } from "./../model/Model.js";
|
|
2
3
|
import { ModelKeys } from "./constants.js";
|
|
3
|
-
import { getMetadata } from "./../model/utils.js";
|
|
4
4
|
export const DefaultSerializationMethod = "json";
|
|
5
5
|
/**
|
|
6
6
|
* @summary Concrete implementation of a {@link Serializer} in JSON format
|
|
@@ -27,8 +27,16 @@ export class JSONSerializer {
|
|
|
27
27
|
*/
|
|
28
28
|
preSerialize(model) {
|
|
29
29
|
// TODO: nested preserialization (so increase performance when deserializing)
|
|
30
|
+
// TODO: Verify why there is no metadata
|
|
30
31
|
const toSerialize = Object.assign({}, model);
|
|
31
|
-
|
|
32
|
+
let metadata;
|
|
33
|
+
try {
|
|
34
|
+
metadata = Metadata.modelName(model.constructor);
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
metadata = undefined;
|
|
39
|
+
}
|
|
32
40
|
toSerialize[ModelKeys.ANCHOR] = metadata || model.constructor.name;
|
|
33
41
|
return toSerialize;
|
|
34
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils/types.d.ts
CHANGED
|
@@ -1,106 +1,4 @@
|
|
|
1
1
|
import { Model } from "../model";
|
|
2
|
-
import { DecoratorData } from "./Decoration";
|
|
3
|
-
/**
|
|
4
|
-
* @description Interface for the final stage of the decoration builder pattern
|
|
5
|
-
* @summary Represents the build stage of the decoration builder, providing the ability to apply
|
|
6
|
-
* the configured decorator to a target. This is the final stage in the builder chain.
|
|
7
|
-
*
|
|
8
|
-
* @interface DecorationBuilderBuild
|
|
9
|
-
* @memberOf module:decorator-validation
|
|
10
|
-
* @category Model
|
|
11
|
-
*/
|
|
12
|
-
export interface DecorationBuilderBuild {
|
|
13
|
-
/**
|
|
14
|
-
* @description Creates and returns the decorator function
|
|
15
|
-
* @summary Finalizes the builder process and returns a decorator function that can be applied to a class,
|
|
16
|
-
* property, or method.
|
|
17
|
-
*
|
|
18
|
-
* @returns {function} A decorator function that can be applied to a target
|
|
19
|
-
*/
|
|
20
|
-
apply(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* @description Interface for the extension stage of the decoration builder pattern
|
|
24
|
-
* @summary Represents the extension stage of the decoration builder, providing the ability to add
|
|
25
|
-
* additional decorators to the existing configuration.
|
|
26
|
-
*
|
|
27
|
-
* @interface DecorationBuilderEnd
|
|
28
|
-
* @memberOf module:decorator-validation
|
|
29
|
-
* @category Model
|
|
30
|
-
*/
|
|
31
|
-
export interface DecorationBuilderEnd {
|
|
32
|
-
/**
|
|
33
|
-
* @description Adds additional decorators to the existing configuration
|
|
34
|
-
* @summary Extends the current decorator configuration with additional decorators.
|
|
35
|
-
* This is useful for adding behavior to existing decorators.
|
|
36
|
-
*
|
|
37
|
-
* @param {...(ClassDecorator|PropertyDecorator|MethodDecorator)} decorators - Additional decorators to add
|
|
38
|
-
* @returns {DecorationBuilderBuild} The build stage of the builder pattern
|
|
39
|
-
*/
|
|
40
|
-
extend(...decorators: DecoratorData[]): DecorationBuilderBuild;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @description Interface for the middle stage of the decoration builder pattern
|
|
44
|
-
* @summary Represents the middle stage of the decoration builder, extending the end stage
|
|
45
|
-
* and providing the ability to define the primary decorators for the configuration.
|
|
46
|
-
*
|
|
47
|
-
* @interface DecorationBuilderMid
|
|
48
|
-
* @memberOf module:decorator-validation
|
|
49
|
-
* @category Model
|
|
50
|
-
*/
|
|
51
|
-
export interface DecorationBuilderMid extends DecorationBuilderEnd {
|
|
52
|
-
/**
|
|
53
|
-
* @description Defines the primary decorators for the configuration
|
|
54
|
-
* @summary Sets the main decorators for the current context. This is typically
|
|
55
|
-
* called after specifying the key with the 'for' method.
|
|
56
|
-
*/
|
|
57
|
-
define(...decorators: DecoratorData[]): DecorationBuilderEnd & DecorationBuilderBuild;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* @description Interface for the starting stage of the decoration builder pattern
|
|
61
|
-
* @summary Represents the initial stage of the decoration builder, providing the entry point
|
|
62
|
-
* for the builder pattern by specifying the key for the decorator.
|
|
63
|
-
*
|
|
64
|
-
* @interface DecorationBuilderStart
|
|
65
|
-
* @memberOf module:decorator-validation
|
|
66
|
-
* @category Model
|
|
67
|
-
*/
|
|
68
|
-
export interface DecorationBuilderStart {
|
|
69
|
-
/**
|
|
70
|
-
* @description Specifies the key for the decorator
|
|
71
|
-
* @summary Sets the identifier for the decorator, which is used to register and retrieve
|
|
72
|
-
* the decorator in the decoration registry.
|
|
73
|
-
*
|
|
74
|
-
* @param {string} id - The identifier for the decorator
|
|
75
|
-
* @return {DecorationBuilderMid} The middle stage of the builder pattern
|
|
76
|
-
*/
|
|
77
|
-
for(id: string): DecorationBuilderMid;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* @description Comprehensive interface for the complete decoration builder pattern
|
|
81
|
-
* @summary A unified interface that combines all stages of the decoration builder pattern,
|
|
82
|
-
* providing a complete API for creating, configuring, and applying decorators.
|
|
83
|
-
* This interface is implemented by the Decoration class.
|
|
84
|
-
*
|
|
85
|
-
* @interface IDecorationBuilder
|
|
86
|
-
* @memberOf module:decorator-validation
|
|
87
|
-
* @category Model
|
|
88
|
-
*/
|
|
89
|
-
export interface IDecorationBuilder extends DecorationBuilderStart, DecorationBuilderMid, DecorationBuilderEnd, DecorationBuilderBuild {
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* @description Type definition for a function that resolves the flavour for a target
|
|
93
|
-
* @summary Defines a function type that determines the appropriate flavour for a given target object.
|
|
94
|
-
* This is used by the Decoration class to resolve which flavour of decorator to apply based on the target.
|
|
95
|
-
*
|
|
96
|
-
* @typedef {function(object): string} FlavourResolver
|
|
97
|
-
*
|
|
98
|
-
* @param {object} target - The target object to resolve the flavour for
|
|
99
|
-
* @return {string} The resolved flavour identifier
|
|
100
|
-
* @memberOf module:decorator-validation
|
|
101
|
-
* @category Model
|
|
102
|
-
*/
|
|
103
|
-
export type FlavourResolver = (target: object) => string;
|
|
104
2
|
/**
|
|
105
3
|
* @description Interface for serializing and deserializing model objects
|
|
106
4
|
* @summary Defines the contract for classes that can convert model objects to and from string representations.
|
|
@@ -10,7 +10,6 @@ import { IValidatorRegistry, ValidatorDefinition } from "./types";
|
|
|
10
10
|
*/
|
|
11
11
|
export declare class Validation {
|
|
12
12
|
private static actingValidatorRegistry?;
|
|
13
|
-
private static loadedDecorators;
|
|
14
13
|
private constructor();
|
|
15
14
|
/**
|
|
16
15
|
* @summary Defines the acting ValidatorRegistry
|
|
@@ -49,6 +48,6 @@ export declare class Validation {
|
|
|
49
48
|
* @summary Returns all registered validation keys
|
|
50
49
|
*/
|
|
51
50
|
static keys(): string[];
|
|
52
|
-
static registerDecorator(key: string, decorator: PropertyDecorator): void;
|
|
53
|
-
static decoratorFromKey(key: string):
|
|
51
|
+
static registerDecorator(key: string, decorator: (...args: any[]) => PropertyDecorator): void;
|
|
52
|
+
static decoratorFromKey(key: string): any;
|
|
54
53
|
}
|