@decaf-ts/db-decorators 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -157
- package/README.md +571 -10
- package/dist/db-decorators.cjs +1352 -322
- package/dist/db-decorators.esm.cjs +1352 -323
- package/lib/esm/identity/decorators.d.ts +7 -0
- package/lib/esm/identity/decorators.js +11 -4
- package/lib/esm/identity/index.js +3 -3
- package/lib/esm/identity/utils.d.ts +36 -23
- package/lib/esm/identity/utils.js +38 -25
- package/lib/esm/index.d.ts +12 -27
- package/lib/esm/index.js +13 -28
- package/lib/esm/interfaces/BulkCrudOperator.d.ts +39 -0
- package/lib/esm/interfaces/BulkCrudOperator.js +1 -1
- package/lib/esm/interfaces/Contextual.d.ts +17 -0
- package/lib/esm/interfaces/Contextual.js +1 -1
- package/lib/esm/interfaces/CrudOperator.d.ts +26 -23
- package/lib/esm/interfaces/CrudOperator.js +1 -1
- package/lib/esm/interfaces/IRepository.d.ts +10 -2
- package/lib/esm/interfaces/IRepository.js +1 -1
- package/lib/esm/interfaces/index.js +5 -5
- package/lib/esm/model/constants.d.ts +11 -13
- package/lib/esm/model/constants.js +12 -14
- package/lib/esm/model/decorators.d.ts +112 -23
- package/lib/esm/model/decorators.js +119 -29
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +7 -6
- package/lib/esm/model/model.d.ts +2 -141
- package/lib/esm/model/model.js +2 -13
- package/lib/esm/model/overrides.d.ts +1 -0
- package/lib/esm/model/overrides.js +23 -0
- package/lib/esm/model/utils.d.ts +39 -0
- package/lib/esm/model/utils.js +42 -3
- package/lib/esm/model/validation.d.ts +26 -8
- package/lib/esm/model/validation.js +29 -11
- package/lib/esm/operations/Operations.d.ts +65 -3
- package/lib/esm/operations/Operations.js +68 -6
- package/lib/esm/operations/OperationsRegistry.d.ts +44 -16
- package/lib/esm/operations/OperationsRegistry.js +46 -18
- package/lib/esm/operations/constants.d.ts +27 -8
- package/lib/esm/operations/constants.js +16 -9
- package/lib/esm/operations/decorators.d.ts +140 -134
- package/lib/esm/operations/decorators.js +152 -137
- package/lib/esm/operations/index.js +6 -6
- package/lib/esm/operations/types.d.ts +10 -0
- package/lib/esm/operations/types.js +1 -1
- package/lib/esm/repository/BaseRepository.d.ts +322 -0
- package/lib/esm/repository/BaseRepository.js +297 -7
- package/lib/esm/repository/Context.d.ts +153 -2
- package/lib/esm/repository/Context.js +154 -6
- package/lib/esm/repository/Repository.d.ts +89 -0
- package/lib/esm/repository/Repository.js +96 -7
- package/lib/esm/repository/constants.d.ts +7 -0
- package/lib/esm/repository/constants.js +8 -1
- package/lib/esm/repository/errors.d.ts +61 -34
- package/lib/esm/repository/errors.js +62 -35
- package/lib/esm/repository/index.js +9 -9
- package/lib/esm/repository/types.d.ts +25 -0
- package/lib/esm/repository/types.js +1 -1
- package/lib/esm/repository/utils.d.ts +11 -0
- package/lib/esm/repository/utils.js +4 -4
- package/lib/esm/repository/wrappers.d.ts +2 -2
- package/lib/esm/repository/wrappers.js +5 -5
- package/lib/esm/validation/constants.d.ts +20 -5
- package/lib/esm/validation/constants.js +22 -7
- package/lib/esm/validation/decorators.d.ts +101 -19
- package/lib/esm/validation/decorators.js +109 -27
- package/lib/esm/validation/index.js +5 -5
- package/lib/esm/validation/validation.js +10 -2
- package/lib/esm/validation/validators/ReadOnlyValidator.d.ts +32 -8
- package/lib/esm/validation/validators/ReadOnlyValidator.js +34 -10
- package/lib/esm/validation/validators/TimestampValidator.d.ts +37 -3
- package/lib/esm/validation/validators/TimestampValidator.js +39 -5
- package/lib/esm/validation/validators/UpdateValidator.d.ts +28 -11
- package/lib/esm/validation/validators/UpdateValidator.js +23 -8
- package/lib/esm/validation/validators/index.js +4 -4
- package/lib/identity/decorators.cjs +8 -1
- package/lib/identity/decorators.d.ts +7 -0
- package/lib/identity/utils.cjs +35 -22
- package/lib/identity/utils.d.ts +36 -23
- package/lib/index.cjs +14 -28
- package/lib/index.d.ts +12 -27
- package/lib/interfaces/BulkCrudOperator.cjs +1 -1
- package/lib/interfaces/BulkCrudOperator.d.ts +39 -0
- package/lib/interfaces/Contextual.cjs +1 -1
- package/lib/interfaces/Contextual.d.ts +17 -0
- package/lib/interfaces/CrudOperator.cjs +1 -1
- package/lib/interfaces/CrudOperator.d.ts +26 -23
- package/lib/interfaces/IRepository.cjs +1 -1
- package/lib/interfaces/IRepository.d.ts +10 -2
- package/lib/model/constants.cjs +12 -14
- package/lib/model/constants.d.ts +11 -13
- package/lib/model/decorators.cjs +114 -24
- package/lib/model/decorators.d.ts +112 -23
- package/lib/model/index.cjs +2 -1
- package/lib/model/index.d.ts +1 -0
- package/lib/model/model.cjs +1 -13
- package/lib/model/model.d.ts +2 -141
- package/lib/model/overrides.cjs +25 -0
- package/lib/model/overrides.d.ts +1 -0
- package/lib/model/utils.cjs +40 -1
- package/lib/model/utils.d.ts +39 -0
- package/lib/model/validation.cjs +27 -9
- package/lib/model/validation.d.ts +26 -8
- package/lib/operations/Operations.cjs +66 -4
- package/lib/operations/Operations.d.ts +65 -3
- package/lib/operations/OperationsRegistry.cjs +45 -17
- package/lib/operations/OperationsRegistry.d.ts +44 -16
- package/lib/operations/constants.cjs +16 -9
- package/lib/operations/constants.d.ts +27 -8
- package/lib/operations/decorators.cjs +150 -135
- package/lib/operations/decorators.d.ts +140 -134
- package/lib/operations/types.cjs +1 -1
- package/lib/operations/types.d.ts +10 -0
- package/lib/repository/BaseRepository.cjs +291 -1
- package/lib/repository/BaseRepository.d.ts +322 -0
- package/lib/repository/Context.cjs +153 -5
- package/lib/repository/Context.d.ts +153 -2
- package/lib/repository/Repository.cjs +90 -1
- package/lib/repository/Repository.d.ts +89 -0
- package/lib/repository/constants.cjs +8 -1
- package/lib/repository/constants.d.ts +7 -0
- package/lib/repository/errors.cjs +62 -35
- package/lib/repository/errors.d.ts +61 -34
- package/lib/repository/types.cjs +1 -1
- package/lib/repository/types.d.ts +25 -0
- package/lib/repository/utils.cjs +1 -1
- package/lib/repository/utils.d.ts +11 -0
- package/lib/repository/wrappers.cjs +3 -3
- package/lib/repository/wrappers.d.ts +2 -2
- package/lib/validation/constants.cjs +21 -6
- package/lib/validation/constants.d.ts +20 -5
- package/lib/validation/decorators.cjs +102 -20
- package/lib/validation/decorators.d.ts +101 -19
- package/lib/validation/validation.cjs +9 -1
- package/lib/validation/validators/ReadOnlyValidator.cjs +33 -9
- package/lib/validation/validators/ReadOnlyValidator.d.ts +32 -8
- package/lib/validation/validators/TimestampValidator.cjs +38 -4
- package/lib/validation/validators/TimestampValidator.d.ts +37 -3
- package/lib/validation/validators/UpdateValidator.cjs +23 -8
- package/lib/validation/validators/UpdateValidator.d.ts +28 -11
- package/package.json +2 -2
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Decorator that marks a property as an ID field
|
|
3
|
+
* @summary Creates a composite decorator that marks a property as required, readonly, and as the ID field for database operations
|
|
4
|
+
* @return {PropertyDecorator} A decorator that can be applied to class properties
|
|
5
|
+
* @function id
|
|
6
|
+
* @category Property Decorators
|
|
7
|
+
*/
|
|
1
8
|
export declare function id(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { propMetadata, required } from "@decaf-ts/decorator-validation";
|
|
2
|
-
import { readonly } from "
|
|
3
|
-
import { DBKeys } from "
|
|
4
|
-
import { Repository } from "
|
|
2
|
+
import { readonly } from "./../validation/index.js";
|
|
3
|
+
import { DBKeys } from "./../model/constants.js";
|
|
4
|
+
import { Repository } from "./../repository/index.js";
|
|
5
5
|
import { apply } from "@decaf-ts/reflection";
|
|
6
|
+
/**
|
|
7
|
+
* @description Decorator that marks a property as an ID field
|
|
8
|
+
* @summary Creates a composite decorator that marks a property as required, readonly, and as the ID field for database operations
|
|
9
|
+
* @return {PropertyDecorator} A decorator that can be applied to class properties
|
|
10
|
+
* @function id
|
|
11
|
+
* @category Property Decorators
|
|
12
|
+
*/
|
|
6
13
|
export function id() {
|
|
7
14
|
return apply(required(), readonly(), propMetadata(Repository.key(DBKeys.ID), {}));
|
|
8
15
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZGVudGl0eS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQ0FBc0I7QUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQ0FBMkI7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQ0FBc0I7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxFQUFFO0lBQ2hCLE9BQU8sS0FBSyxDQUNWLFFBQVEsRUFBRSxFQUNWLFFBQVEsRUFBRSxFQUNWLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDNUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9wTWV0YWRhdGEsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgcmVhZG9ubHkgfSBmcm9tIFwiLi4vdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgREJLZXlzIH0gZnJvbSBcIi4uL21vZGVsL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBhcHBseSB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXJrcyBhIHByb3BlcnR5IGFzIGFuIElEIGZpZWxkXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgY29tcG9zaXRlIGRlY29yYXRvciB0aGF0IG1hcmtzIGEgcHJvcGVydHkgYXMgcmVxdWlyZWQsIHJlYWRvbmx5LCBhbmQgYXMgdGhlIElEIGZpZWxkIGZvciBkYXRhYmFzZSBvcGVyYXRpb25zXG4gKiBAcmV0dXJuIHtQcm9wZXJ0eURlY29yYXRvcn0gQSBkZWNvcmF0b3IgdGhhdCBjYW4gYmUgYXBwbGllZCB0byBjbGFzcyBwcm9wZXJ0aWVzXG4gKiBAZnVuY3Rpb24gaWRcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZCgpIHtcbiAgcmV0dXJuIGFwcGx5KFxuICAgIHJlcXVpcmVkKCksXG4gICAgcmVhZG9ubHkoKSxcbiAgICBwcm9wTWV0YWRhdGEoUmVwb3NpdG9yeS5rZXkoREJLZXlzLklEKSwge30pXG4gICk7XG59XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from "./decorators";
|
|
2
|
-
export * from "./utils";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from "./decorators.js";
|
|
2
|
+
export * from "./utils.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0NBQTZCO0FBQzdCLDJCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG4iXX0=
|
|
@@ -1,34 +1,47 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
/**
|
|
3
|
-
* @
|
|
4
|
-
* @
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
7
|
-
*
|
|
8
|
-
* @throws {InternalError} if no property or more than one properties are {@link id} decorated
|
|
9
|
-
* or no value is set in that property
|
|
10
|
-
*
|
|
3
|
+
* @description Finds the primary key attribute for a model
|
|
4
|
+
* @summary Searches in all the properties in the object for an {@link id} decorated property and returns the property key and metadata
|
|
5
|
+
* @param {Model} model - The model object to search for primary key
|
|
6
|
+
* @return {Object} An object containing the id property name and its metadata
|
|
11
7
|
* @function findPrimaryKey
|
|
12
|
-
*
|
|
13
|
-
*
|
|
8
|
+
* @mermaid
|
|
9
|
+
* sequenceDiagram
|
|
10
|
+
* participant Caller
|
|
11
|
+
* participant findPrimaryKey
|
|
12
|
+
* participant getAllPropertyDecoratorsRecursive
|
|
13
|
+
*
|
|
14
|
+
* Caller->>findPrimaryKey: model
|
|
15
|
+
* findPrimaryKey->>getAllPropertyDecoratorsRecursive: get decorators
|
|
16
|
+
* getAllPropertyDecoratorsRecursive-->>findPrimaryKey: decorators
|
|
17
|
+
* findPrimaryKey->>findPrimaryKey: filter ID decorators
|
|
18
|
+
* findPrimaryKey->>findPrimaryKey: validate single ID property
|
|
19
|
+
* findPrimaryKey-->>Caller: {id, props}
|
|
20
|
+
* @memberOf module:db-decorators
|
|
14
21
|
*/
|
|
15
22
|
export declare function findPrimaryKey<M extends Model>(model: M): {
|
|
16
23
|
id: keyof M;
|
|
17
24
|
props: any;
|
|
18
25
|
};
|
|
19
26
|
/**
|
|
20
|
-
* @
|
|
21
|
-
* @
|
|
22
|
-
*
|
|
23
|
-
* @param {
|
|
24
|
-
* @
|
|
25
|
-
* @
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
27
|
+
* @description Retrieves the primary key value from a model
|
|
28
|
+
* @summary Searches for the ID-decorated property in the model and returns its value
|
|
29
|
+
* @param {Model} model - The model object to extract the ID from
|
|
30
|
+
* @param {boolean} [returnEmpty=false] - Whether to return undefined if no ID value is found
|
|
31
|
+
* @return {string | number | bigint} The primary key value
|
|
32
|
+
* @function findModelId
|
|
33
|
+
* @mermaid
|
|
34
|
+
* sequenceDiagram
|
|
35
|
+
* participant Caller
|
|
36
|
+
* participant findModelId
|
|
37
|
+
* participant findPrimaryKey
|
|
38
|
+
*
|
|
39
|
+
* Caller->>findModelId: model, returnEmpty
|
|
40
|
+
* findModelId->>findPrimaryKey: model
|
|
41
|
+
* findPrimaryKey-->>findModelId: {id, props}
|
|
42
|
+
* findModelId->>findModelId: extract model[id]
|
|
43
|
+
* findModelId->>findModelId: validate ID exists if required
|
|
44
|
+
* findModelId-->>Caller: ID value
|
|
45
|
+
* @memberOf module:db-decorators
|
|
33
46
|
*/
|
|
34
47
|
export declare function findModelId<M extends Model>(model: M, returnEmpty?: boolean): string | number | bigint;
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
import { DBKeys } from "
|
|
2
|
-
import { getAllPropertyDecoratorsRecursive } from "
|
|
1
|
+
import { DBKeys } from "./../model/constants.js";
|
|
2
|
+
import { getAllPropertyDecoratorsRecursive } from "./../repository/utils.js";
|
|
3
3
|
import { ModelKeys, sf } from "@decaf-ts/decorator-validation";
|
|
4
|
-
import { InternalError } from "
|
|
4
|
+
import { InternalError } from "./../repository/errors.js";
|
|
5
5
|
/**
|
|
6
|
-
* @
|
|
7
|
-
* @
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
10
|
-
*
|
|
11
|
-
* @throws {InternalError} if no property or more than one properties are {@link id} decorated
|
|
12
|
-
* or no value is set in that property
|
|
13
|
-
*
|
|
6
|
+
* @description Finds the primary key attribute for a model
|
|
7
|
+
* @summary Searches in all the properties in the object for an {@link id} decorated property and returns the property key and metadata
|
|
8
|
+
* @param {Model} model - The model object to search for primary key
|
|
9
|
+
* @return {Object} An object containing the id property name and its metadata
|
|
14
10
|
* @function findPrimaryKey
|
|
11
|
+
* @mermaid
|
|
12
|
+
* sequenceDiagram
|
|
13
|
+
* participant Caller
|
|
14
|
+
* participant findPrimaryKey
|
|
15
|
+
* participant getAllPropertyDecoratorsRecursive
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
+
* Caller->>findPrimaryKey: model
|
|
18
|
+
* findPrimaryKey->>getAllPropertyDecoratorsRecursive: get decorators
|
|
19
|
+
* getAllPropertyDecoratorsRecursive-->>findPrimaryKey: decorators
|
|
20
|
+
* findPrimaryKey->>findPrimaryKey: filter ID decorators
|
|
21
|
+
* findPrimaryKey->>findPrimaryKey: validate single ID property
|
|
22
|
+
* findPrimaryKey-->>Caller: {id, props}
|
|
23
|
+
* @memberOf module:db-decorators
|
|
17
24
|
*/
|
|
18
25
|
export function findPrimaryKey(model) {
|
|
19
26
|
const decorators = getAllPropertyDecoratorsRecursive(model, undefined, DBKeys.REFLECT + DBKeys.ID);
|
|
@@ -38,19 +45,25 @@ export function findPrimaryKey(model) {
|
|
|
38
45
|
};
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
|
-
* @
|
|
42
|
-
* @
|
|
43
|
-
*
|
|
44
|
-
* @param {
|
|
45
|
-
* @
|
|
46
|
-
* @
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
48
|
+
* @description Retrieves the primary key value from a model
|
|
49
|
+
* @summary Searches for the ID-decorated property in the model and returns its value
|
|
50
|
+
* @param {Model} model - The model object to extract the ID from
|
|
51
|
+
* @param {boolean} [returnEmpty=false] - Whether to return undefined if no ID value is found
|
|
52
|
+
* @return {string | number | bigint} The primary key value
|
|
53
|
+
* @function findModelId
|
|
54
|
+
* @mermaid
|
|
55
|
+
* sequenceDiagram
|
|
56
|
+
* participant Caller
|
|
57
|
+
* participant findModelId
|
|
58
|
+
* participant findPrimaryKey
|
|
52
59
|
*
|
|
53
|
-
*
|
|
60
|
+
* Caller->>findModelId: model, returnEmpty
|
|
61
|
+
* findModelId->>findPrimaryKey: model
|
|
62
|
+
* findPrimaryKey-->>findModelId: {id, props}
|
|
63
|
+
* findModelId->>findModelId: extract model[id]
|
|
64
|
+
* findModelId->>findModelId: validate ID exists if required
|
|
65
|
+
* findModelId-->>Caller: ID value
|
|
66
|
+
* @memberOf module:db-decorators
|
|
54
67
|
*/
|
|
55
68
|
export function findModelId(model, returnEmpty = false) {
|
|
56
69
|
const idProp = findPrimaryKey(model).id;
|
|
@@ -59,4 +72,4 @@ export function findModelId(model, returnEmpty = false) {
|
|
|
59
72
|
throw new InternalError(`No value for the Id is defined under the property ${idProp}`);
|
|
60
73
|
return modelId;
|
|
61
74
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQ0FBMkI7QUFDNUMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLGlDQUE0QjtBQUN4RSxPQUFPLEVBQVMsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0NBQTZCO0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBa0IsS0FBUTtJQUN0RCxNQUFNLFVBQVUsR0FBRyxpQ0FBaUMsQ0FDbEQsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQzNCLENBQUM7SUFDRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQW9CLENBQUMsQ0FBQyxNQUFNLENBQzlELENBQUMsS0FBbUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQ3BELE1BQU0sUUFBUSxHQUFJLElBQTBCLENBQUMsTUFBTSxDQUNqRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUNoQyxDQUFDO1FBQ0YsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7SUFFRixJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNO1FBQ3BELE1BQU0sSUFBSSxhQUFhLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUNsRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDdEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLE1BQU07UUFBRSxNQUFNLElBQUksYUFBYSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDN0UsT0FBTztRQUNMLEVBQUUsRUFBRSxNQUFpQjtRQUNyQixLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7S0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixLQUFRLEVBQ1IsV0FBVyxHQUFHLEtBQUs7SUFFbkIsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksQ0FBQyxXQUFXO1FBQ2hELE1BQU0sSUFBSSxhQUFhLENBQ3JCLHFEQUFxRCxNQUFnQixFQUFFLENBQ3hFLENBQUM7SUFDSixPQUFPLE9BQW1DLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERCS2V5cyB9IGZyb20gXCIuLi9tb2RlbC9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L3V0aWxzXCI7XG5pbXBvcnQgeyBNb2RlbCwgTW9kZWxLZXlzLCBzZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9lcnJvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRmluZHMgdGhlIHByaW1hcnkga2V5IGF0dHJpYnV0ZSBmb3IgYSBtb2RlbFxuICogQHN1bW1hcnkgU2VhcmNoZXMgaW4gYWxsIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBvYmplY3QgZm9yIGFuIHtAbGluayBpZH0gZGVjb3JhdGVkIHByb3BlcnR5IGFuZCByZXR1cm5zIHRoZSBwcm9wZXJ0eSBrZXkgYW5kIG1ldGFkYXRhXG4gKiBAcGFyYW0ge01vZGVsfSBtb2RlbCAtIFRoZSBtb2RlbCBvYmplY3QgdG8gc2VhcmNoIGZvciBwcmltYXJ5IGtleVxuICogQHJldHVybiB7T2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgaWQgcHJvcGVydHkgbmFtZSBhbmQgaXRzIG1ldGFkYXRhXG4gKiBAZnVuY3Rpb24gZmluZFByaW1hcnlLZXlcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IGZpbmRQcmltYXJ5S2V5XG4gKiAgIHBhcnRpY2lwYW50IGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZVxuICpcbiAqICAgQ2FsbGVyLT4+ZmluZFByaW1hcnlLZXk6IG1vZGVsXG4gKiAgIGZpbmRQcmltYXJ5S2V5LT4+Z2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlOiBnZXQgZGVjb3JhdG9yc1xuICogICBnZXRBbGxQcm9wZXJ0eURlY29yYXRvcnNSZWN1cnNpdmUtLT4+ZmluZFByaW1hcnlLZXk6IGRlY29yYXRvcnNcbiAqICAgZmluZFByaW1hcnlLZXktPj5maW5kUHJpbWFyeUtleTogZmlsdGVyIElEIGRlY29yYXRvcnNcbiAqICAgZmluZFByaW1hcnlLZXktPj5maW5kUHJpbWFyeUtleTogdmFsaWRhdGUgc2luZ2xlIElEIHByb3BlcnR5XG4gKiAgIGZpbmRQcmltYXJ5S2V5LS0+PkNhbGxlcjoge2lkLCBwcm9wc31cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFByaW1hcnlLZXk8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogTSkge1xuICBjb25zdCBkZWNvcmF0b3JzID0gZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlKFxuICAgIG1vZGVsLFxuICAgIHVuZGVmaW5lZCxcbiAgICBEQktleXMuUkVGTEVDVCArIERCS2V5cy5JRFxuICApO1xuICBjb25zdCBpZERlY29yYXRvcnMgPSBPYmplY3QuZW50cmllcyhkZWNvcmF0b3JzIGFzIG9iamVjdCkucmVkdWNlKFxuICAgIChhY2N1bTogeyBbaW5kZXhlcjogc3RyaW5nXTogYW55W10gfSwgW3Byb3AsIGRlY3NdKSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJlZCA9IChkZWNzIGFzIHsga2V5OiBzdHJpbmcgfVtdKS5maWx0ZXIoXG4gICAgICAgIChkKSA9PiBkLmtleSAhPT0gTW9kZWxLZXlzLlRZUEVcbiAgICAgICk7XG4gICAgICBpZiAoZmlsdGVyZWQgJiYgZmlsdGVyZWQubGVuZ3RoKSB7XG4gICAgICAgIGFjY3VtW3Byb3BdID0gYWNjdW1bcHJvcF0gfHwgW107XG4gICAgICAgIGFjY3VtW3Byb3BdLnB1c2goLi4uZmlsdGVyZWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sXG4gICAge31cbiAgKTtcblxuICBpZiAoIWlkRGVjb3JhdG9ycyB8fCAhT2JqZWN0LmtleXMoaWREZWNvcmF0b3JzKS5sZW5ndGgpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJDb3VsZCBub3QgZmluZCBJRCBkZWNvcmF0ZWQgUHJvcGVydHlcIik7XG4gIGlmIChPYmplY3Qua2V5cyhpZERlY29yYXRvcnMpLmxlbmd0aCA+IDEpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3Ioc2YoT2JqZWN0LmtleXMoaWREZWNvcmF0b3JzKS5qb2luKFwiLCBcIikpKTtcbiAgY29uc3QgaWRQcm9wID0gT2JqZWN0LmtleXMoaWREZWNvcmF0b3JzKVswXTtcbiAgaWYgKCFpZFByb3ApIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiQ291bGQgbm90IGZpbmQgSUQgZGVjb3JhdGVkIFByb3BlcnR5XCIpO1xuICByZXR1cm4ge1xuICAgIGlkOiBpZFByb3AgYXMga2V5b2YgTSxcbiAgICBwcm9wczogaWREZWNvcmF0b3JzW2lkUHJvcF1bMF0ucHJvcHMsXG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgcHJpbWFyeSBrZXkgdmFsdWUgZnJvbSBhIG1vZGVsXG4gKiBAc3VtbWFyeSBTZWFyY2hlcyBmb3IgdGhlIElELWRlY29yYXRlZCBwcm9wZXJ0eSBpbiB0aGUgbW9kZWwgYW5kIHJldHVybnMgaXRzIHZhbHVlXG4gKiBAcGFyYW0ge01vZGVsfSBtb2RlbCAtIFRoZSBtb2RlbCBvYmplY3QgdG8gZXh0cmFjdCB0aGUgSUQgZnJvbVxuICogQHBhcmFtIHtib29sZWFufSBbcmV0dXJuRW1wdHk9ZmFsc2VdIC0gV2hldGhlciB0byByZXR1cm4gdW5kZWZpbmVkIGlmIG5vIElEIHZhbHVlIGlzIGZvdW5kXG4gKiBAcmV0dXJuIHtzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnR9IFRoZSBwcmltYXJ5IGtleSB2YWx1ZVxuICogQGZ1bmN0aW9uIGZpbmRNb2RlbElkXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBmaW5kTW9kZWxJZFxuICogICBwYXJ0aWNpcGFudCBmaW5kUHJpbWFyeUtleVxuICpcbiAqICAgQ2FsbGVyLT4+ZmluZE1vZGVsSWQ6IG1vZGVsLCByZXR1cm5FbXB0eVxuICogICBmaW5kTW9kZWxJZC0+PmZpbmRQcmltYXJ5S2V5OiBtb2RlbFxuICogICBmaW5kUHJpbWFyeUtleS0tPj5maW5kTW9kZWxJZDoge2lkLCBwcm9wc31cbiAqICAgZmluZE1vZGVsSWQtPj5maW5kTW9kZWxJZDogZXh0cmFjdCBtb2RlbFtpZF1cbiAqICAgZmluZE1vZGVsSWQtPj5maW5kTW9kZWxJZDogdmFsaWRhdGUgSUQgZXhpc3RzIGlmIHJlcXVpcmVkXG4gKiAgIGZpbmRNb2RlbElkLS0+PkNhbGxlcjogSUQgdmFsdWVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE1vZGVsSWQ8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0sXG4gIHJldHVybkVtcHR5ID0gZmFsc2Vcbik6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCB7XG4gIGNvbnN0IGlkUHJvcCA9IGZpbmRQcmltYXJ5S2V5KG1vZGVsKS5pZDtcbiAgY29uc3QgbW9kZWxJZCA9IG1vZGVsW2lkUHJvcF07XG4gIGlmICh0eXBlb2YgbW9kZWxJZCA9PT0gXCJ1bmRlZmluZWRcIiAmJiAhcmV0dXJuRW1wdHkpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTm8gdmFsdWUgZm9yIHRoZSBJZCBpcyBkZWZpbmVkIHVuZGVyIHRoZSBwcm9wZXJ0eSAke2lkUHJvcCBhcyBzdHJpbmd9YFxuICAgICk7XG4gIHJldHVybiBtb2RlbElkIGFzIHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbn1cbiJdfQ==
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,33 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module db-decorators
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* @namespace Model
|
|
6
|
-
* @memberOf module:db-decorators
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* @namespace Operations
|
|
10
|
-
* @memberOf module:db-decorators
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @namespace Repository
|
|
14
|
-
* @memberOf module:db-decorators
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* @namespace Validation
|
|
18
|
-
* @memberOf module:db-decorators
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* @namespace Validators
|
|
22
|
-
* @memberOf module:db-decorators.Validation
|
|
23
|
-
*/
|
|
24
|
-
/**
|
|
25
|
-
* @namespace Utils
|
|
26
|
-
* @memberOf module:db-decorators
|
|
27
|
-
*/
|
|
28
1
|
export * from "./identity";
|
|
29
2
|
export * from "./interfaces";
|
|
30
3
|
export * from "./model";
|
|
31
4
|
export * from "./operations";
|
|
32
5
|
export * from "./repository";
|
|
33
6
|
export * from "./validation";
|
|
7
|
+
/**
|
|
8
|
+
* @description Database decorators for TypeScript applications
|
|
9
|
+
* @summary A comprehensive library providing decorators and utilities for database operations, model definitions, validation, and repository patterns in TypeScript applications
|
|
10
|
+
* @module db-decorators
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @description Current version of the reflection package
|
|
14
|
+
* @summary Stores the semantic version number of the package
|
|
15
|
+
* @const VERSION
|
|
16
|
+
* @memberOf module:db-decorators
|
|
17
|
+
*/
|
|
18
|
+
export declare const VERSION = "0.6.2";
|
package/lib/esm/index.js
CHANGED
|
@@ -1,34 +1,19 @@
|
|
|
1
|
+
export * from "./identity/index.js";
|
|
2
|
+
export * from "./interfaces/index.js";
|
|
3
|
+
export * from "./model/index.js";
|
|
4
|
+
export * from "./operations/index.js";
|
|
5
|
+
export * from "./repository/index.js";
|
|
6
|
+
export * from "./validation/index.js";
|
|
1
7
|
/**
|
|
8
|
+
* @description Database decorators for TypeScript applications
|
|
9
|
+
* @summary A comprehensive library providing decorators and utilities for database operations, model definitions, validation, and repository patterns in TypeScript applications
|
|
2
10
|
* @module db-decorators
|
|
3
11
|
*/
|
|
4
12
|
/**
|
|
5
|
-
* @
|
|
13
|
+
* @description Current version of the reflection package
|
|
14
|
+
* @summary Stores the semantic version number of the package
|
|
15
|
+
* @const VERSION
|
|
6
16
|
* @memberOf module:db-decorators
|
|
7
17
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* @memberOf module:db-decorators
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* @namespace Repository
|
|
14
|
-
* @memberOf module:db-decorators
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* @namespace Validation
|
|
18
|
-
* @memberOf module:db-decorators
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* @namespace Validators
|
|
22
|
-
* @memberOf module:db-decorators.Validation
|
|
23
|
-
*/
|
|
24
|
-
/**
|
|
25
|
-
* @namespace Utils
|
|
26
|
-
* @memberOf module:db-decorators
|
|
27
|
-
*/
|
|
28
|
-
export * from "./identity";
|
|
29
|
-
export * from "./interfaces";
|
|
30
|
-
export * from "./model";
|
|
31
|
-
export * from "./operations";
|
|
32
|
-
export * from "./repository";
|
|
33
|
-
export * from "./validation";
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSDs7O0dBR0c7QUFFSDs7O0dBR0c7QUFFSDs7O0dBR0c7QUFFSDs7O0dBR0c7QUFFSDs7O0dBR0c7QUFFSDs7O0dBR0c7QUFDSCxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBkYi1kZWNvcmF0b3JzXG4gKi9cblxuLyoqXG4gKiBAbmFtZXNwYWNlIE1vZGVsXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnNcbiAqL1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgT3BlcmF0aW9uc1xuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzXG4gKi9cblxuLyoqXG4gKiBAbmFtZXNwYWNlIFJlcG9zaXRvcnlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9yc1xuICovXG5cbi8qKlxuICogQG5hbWVzcGFjZSBWYWxpZGF0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnNcbiAqL1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgVmFsaWRhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzLlZhbGlkYXRpb25cbiAqL1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgVXRpbHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9yc1xuICovXG5leHBvcnQgKiBmcm9tIFwiLi9pZGVudGl0eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL29wZXJhdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlcG9zaXRvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb25cIjtcbiJdfQ==
|
|
18
|
+
export const VERSION = "0.6.2";
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQTJCO0FBQzNCLHNDQUE2QjtBQUM3QixpQ0FBd0I7QUFDeEIsc0NBQTZCO0FBQzdCLHNDQUE2QjtBQUM3QixzQ0FBNkI7QUFFN0I7Ozs7R0FJRztBQUdIOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2lkZW50aXR5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3BlcmF0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEYXRhYmFzZSBkZWNvcmF0b3JzIGZvciBUeXBlU2NyaXB0IGFwcGxpY2F0aW9uc1xuICogQHN1bW1hcnkgQSBjb21wcmVoZW5zaXZlIGxpYnJhcnkgcHJvdmlkaW5nIGRlY29yYXRvcnMgYW5kIHV0aWxpdGllcyBmb3IgZGF0YWJhc2Ugb3BlcmF0aW9ucywgbW9kZWwgZGVmaW5pdGlvbnMsIHZhbGlkYXRpb24sIGFuZCByZXBvc2l0b3J5IHBhdHRlcm5zIGluIFR5cGVTY3JpcHQgYXBwbGljYXRpb25zXG4gKiBAbW9kdWxlIGRiLWRlY29yYXRvcnNcbiAqL1xuXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgcmVmbGVjdGlvbiBwYWNrYWdlXG4gKiBAc3VtbWFyeSBTdG9yZXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBwYWNrYWdlXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl19
|
|
@@ -1,7 +1,46 @@
|
|
|
1
1
|
import { CrudOperator } from "./CrudOperator";
|
|
2
|
+
/**
|
|
3
|
+
* @description Interface for bulk CRUD operations
|
|
4
|
+
* @summary Extends the basic CRUD operations to support bulk operations on multiple models at once
|
|
5
|
+
* @template M - The model type
|
|
6
|
+
* @interface BulkCrudOperator
|
|
7
|
+
* @memberOf module:db-decorators
|
|
8
|
+
*/
|
|
2
9
|
export interface BulkCrudOperator<M> extends CrudOperator<M> {
|
|
10
|
+
/**
|
|
11
|
+
* @description Creates multiple model instances in the database
|
|
12
|
+
* @summary Bulk operation to create multiple models at once
|
|
13
|
+
* @template M - The model type
|
|
14
|
+
* @param {M[]} models - Array of model instances to create
|
|
15
|
+
* @param {...any[]} args - Additional arguments
|
|
16
|
+
* @return {Promise<M[]>} Promise resolving to the created model instances
|
|
17
|
+
*/
|
|
3
18
|
createAll(models: M[], ...args: any[]): Promise<M[]>;
|
|
19
|
+
/**
|
|
20
|
+
* @description Retrieves multiple model instances from the database by their keys
|
|
21
|
+
* @summary Bulk operation to read multiple models at once
|
|
22
|
+
* @template M - The model type
|
|
23
|
+
* @param {(string[]|number[])} keys - Array of primary keys to retrieve
|
|
24
|
+
* @param {...any[]} args - Additional arguments
|
|
25
|
+
* @return {Promise<M[]>} Promise resolving to the retrieved model instances
|
|
26
|
+
*/
|
|
4
27
|
readAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
|
|
28
|
+
/**
|
|
29
|
+
* @description Updates multiple model instances in the database
|
|
30
|
+
* @summary Bulk operation to update multiple models at once
|
|
31
|
+
* @template M - The model type
|
|
32
|
+
* @param {M[]} models - Array of model instances to update
|
|
33
|
+
* @param {...any[]} args - Additional arguments
|
|
34
|
+
* @return {Promise<M[]>} Promise resolving to the updated model instances
|
|
35
|
+
*/
|
|
5
36
|
updateAll(models: M[], ...args: any[]): Promise<M[]>;
|
|
37
|
+
/**
|
|
38
|
+
* @description Deletes multiple model instances from the database by their keys
|
|
39
|
+
* @summary Bulk operation to delete multiple models at once
|
|
40
|
+
* @template M - The model type
|
|
41
|
+
* @param {(string[]|number[])} keys - Array of primary keys to delete
|
|
42
|
+
* @param {...any[]} args - Additional arguments
|
|
43
|
+
* @return {Promise<M[]>} Promise resolving to the deleted model instances
|
|
44
|
+
*/
|
|
6
45
|
deleteAll(keys: string[] | number[], ...args: any[]): Promise<M[]>;
|
|
7
46
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVsa0NydWRPcGVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcmZhY2VzL0J1bGtDcnVkT3BlcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENydWRPcGVyYXRvciB9IGZyb20gXCIuL0NydWRPcGVyYXRvclwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGJ1bGsgQ1JVRCBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBiYXNpYyBDUlVEIG9wZXJhdGlvbnMgdG8gc3VwcG9ydCBidWxrIG9wZXJhdGlvbnMgb24gbXVsdGlwbGUgbW9kZWxzIGF0IG9uY2VcbiAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAqIEBpbnRlcmZhY2UgQnVsa0NydWRPcGVyYXRvclxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVsa0NydWRPcGVyYXRvcjxNPiBleHRlbmRzIENydWRPcGVyYXRvcjxNPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBtdWx0aXBsZSBtb2RlbCBpbnN0YW5jZXMgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IEJ1bGsgb3BlcmF0aW9uIHRvIGNyZWF0ZSBtdWx0aXBsZSBtb2RlbHMgYXQgb25jZVxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEBwYXJhbSB7TVtdfSBtb2RlbHMgLSBBcnJheSBvZiBtb2RlbCBpbnN0YW5jZXMgdG8gY3JlYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIG1vZGVsIGluc3RhbmNlc1xuICAgKi9cbiAgY3JlYXRlQWxsKG1vZGVsczogTVtdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBtdWx0aXBsZSBtb2RlbCBpbnN0YW5jZXMgZnJvbSB0aGUgZGF0YWJhc2UgYnkgdGhlaXIga2V5c1xuICAgKiBAc3VtbWFyeSBCdWxrIG9wZXJhdGlvbiB0byByZWFkIG11bHRpcGxlIG1vZGVscyBhdCBvbmNlXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICogQHBhcmFtIHsoc3RyaW5nW118bnVtYmVyW10pfSBrZXlzIC0gQXJyYXkgb2YgcHJpbWFyeSBrZXlzIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgbW9kZWwgaW5zdGFuY2VzXG4gICAqL1xuICByZWFkQWxsKGtleXM6IHN0cmluZ1tdIHwgbnVtYmVyW10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSBtb2RlbCBpbnN0YW5jZXMgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IEJ1bGsgb3BlcmF0aW9uIHRvIHVwZGF0ZSBtdWx0aXBsZSBtb2RlbHMgYXQgb25jZVxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEBwYXJhbSB7TVtdfSBtb2RlbHMgLSBBcnJheSBvZiBtb2RlbCBpbnN0YW5jZXMgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIG1vZGVsIGluc3RhbmNlc1xuICAgKi9cbiAgdXBkYXRlQWxsKG1vZGVsczogTVtdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgbXVsdGlwbGUgbW9kZWwgaW5zdGFuY2VzIGZyb20gdGhlIGRhdGFiYXNlIGJ5IHRoZWlyIGtleXNcbiAgICogQHN1bW1hcnkgQnVsayBvcGVyYXRpb24gdG8gZGVsZXRlIG11bHRpcGxlIG1vZGVscyBhdCBvbmNlXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICogQHBhcmFtIHsoc3RyaW5nW118bnVtYmVyW10pfSBrZXlzIC0gQXJyYXkgb2YgcHJpbWFyeSBrZXlzIHRvIGRlbGV0ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCBtb2RlbCBpbnN0YW5jZXNcbiAgICovXG4gIGRlbGV0ZUFsbChrZXlzOiBzdHJpbmdbXSB8IG51bWJlcltdLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TVtdPjtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { OperationKeys } from "../operations";
|
|
2
2
|
import { Context } from "../repository";
|
|
3
3
|
import { RepositoryFlags } from "../repository/types";
|
|
4
|
+
/**
|
|
5
|
+
* @description Interface for context-aware operations
|
|
6
|
+
* @summary Provides context management for database operations
|
|
7
|
+
* @template F - Type extending RepositoryFlags, defaults to RepositoryFlags
|
|
8
|
+
* @template C - Type extending Context<F>, defaults to Context<F>
|
|
9
|
+
* @interface Contextual
|
|
10
|
+
* @memberOf module:db-decorators
|
|
11
|
+
*/
|
|
4
12
|
export interface Contextual<F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> {
|
|
13
|
+
/**
|
|
14
|
+
* @description Creates a context for a specific operation
|
|
15
|
+
* @summary Generates an operation-specific context with custom flags
|
|
16
|
+
* @param {(OperationKeys.CREATE|OperationKeys.READ|OperationKeys.UPDATE|OperationKeys.DELETE)} operation - The operation type
|
|
17
|
+
* @template F - Type extending RepositoryFlags, defaults to RepositoryFlags
|
|
18
|
+
* @param {Partial<F>} overrides - Custom flag overrides for this context
|
|
19
|
+
* @param {...any[]} args - Additional arguments
|
|
20
|
+
* @return {Promise<C>} Promise resolving to the created context
|
|
21
|
+
*/
|
|
5
22
|
context(operation: OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE, overrides: Partial<F>, ...args: any[]): Promise<C>;
|
|
6
23
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dHVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcmZhY2VzL0NvbnRleHR1YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9uc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuLi9yZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5RmxhZ3MgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGNvbnRleHQtYXdhcmUgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgUHJvdmlkZXMgY29udGV4dCBtYW5hZ2VtZW50IGZvciBkYXRhYmFzZSBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgRiAtIFR5cGUgZXh0ZW5kaW5nIFJlcG9zaXRvcnlGbGFncywgZGVmYXVsdHMgdG8gUmVwb3NpdG9yeUZsYWdzXG4gKiBAdGVtcGxhdGUgQyAtIFR5cGUgZXh0ZW5kaW5nIENvbnRleHQ8Rj4sIGRlZmF1bHRzIHRvIENvbnRleHQ8Rj5cbiAqIEBpbnRlcmZhY2UgQ29udGV4dHVhbFxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dHVhbDxcbiAgRiBleHRlbmRzIFJlcG9zaXRvcnlGbGFncyA9IFJlcG9zaXRvcnlGbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8Rj4gPSBDb250ZXh0PEY+LFxuPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGNvbnRleHQgZm9yIGEgc3BlY2lmaWMgb3BlcmF0aW9uXG4gICAqIEBzdW1tYXJ5IEdlbmVyYXRlcyBhbiBvcGVyYXRpb24tc3BlY2lmaWMgY29udGV4dCB3aXRoIGN1c3RvbSBmbGFnc1xuICAgKiBAcGFyYW0geyhPcGVyYXRpb25LZXlzLkNSRUFURXxPcGVyYXRpb25LZXlzLlJFQUR8T3BlcmF0aW9uS2V5cy5VUERBVEV8T3BlcmF0aW9uS2V5cy5ERUxFVEUpfSBvcGVyYXRpb24gLSBUaGUgb3BlcmF0aW9uIHR5cGVcbiAgICogQHRlbXBsYXRlIEYgLSBUeXBlIGV4dGVuZGluZyBSZXBvc2l0b3J5RmxhZ3MsIGRlZmF1bHRzIHRvIFJlcG9zaXRvcnlGbGFnc1xuICAgKiBAcGFyYW0ge1BhcnRpYWw8Rj59IG92ZXJyaWRlcyAtIEN1c3RvbSBmbGFnIG92ZXJyaWRlcyBmb3IgdGhpcyBjb250ZXh0XG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPEM+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBjb250ZXh0XG4gICAqL1xuICBjb250ZXh0KFxuICAgIG9wZXJhdGlvbjpcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5DUkVBVEVcbiAgICAgIHwgT3BlcmF0aW9uS2V5cy5SRUFEXG4gICAgICB8IE9wZXJhdGlvbktleXMuVVBEQVRFXG4gICAgICB8IE9wZXJhdGlvbktleXMuREVMRVRFLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxGPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEM+O1xufVxuIl19
|
|
@@ -1,42 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
* @
|
|
4
|
-
*
|
|
2
|
+
* @description Basic CRUD operations interface
|
|
3
|
+
* @summary Exposes a standard Create, Read, Update, Delete API for database operations
|
|
4
|
+
* @template M - The model type
|
|
5
5
|
* @interface CrudOperator
|
|
6
|
-
*
|
|
7
|
-
* @category Managers
|
|
6
|
+
* @memberOf module:db-decorators
|
|
8
7
|
*/
|
|
9
8
|
export interface CrudOperator<M> {
|
|
10
9
|
/**
|
|
10
|
+
* @description Creates a new model instance in the database
|
|
11
11
|
* @summary Create a new model
|
|
12
|
-
* @
|
|
13
|
-
* @param {
|
|
14
|
-
*
|
|
15
|
-
* @
|
|
12
|
+
* @template M - The model type
|
|
13
|
+
* @param {M} model - The model instance to create
|
|
14
|
+
* @param {...any[]} args - Additional arguments
|
|
15
|
+
* @return {Promise<M>} Promise resolving to the created model instance
|
|
16
16
|
*/
|
|
17
17
|
create(model: M, ...args: any[]): Promise<M>;
|
|
18
18
|
/**
|
|
19
|
+
* @description Retrieves a model instance from the database by its key
|
|
19
20
|
* @summary Read a model
|
|
20
|
-
* @
|
|
21
|
-
* @param {
|
|
22
|
-
*
|
|
23
|
-
* @
|
|
21
|
+
* @template M - The model type
|
|
22
|
+
* @param {(string|number)} key - The primary key of the model to retrieve
|
|
23
|
+
* @param {...any[]} args - Additional arguments
|
|
24
|
+
* @return {Promise<M>} Promise resolving to the retrieved model instance
|
|
24
25
|
*/
|
|
25
26
|
read(key: string | number, ...args: any[]): Promise<M>;
|
|
26
27
|
/**
|
|
27
|
-
* @
|
|
28
|
-
* @
|
|
29
|
-
* @
|
|
30
|
-
*
|
|
31
|
-
* @
|
|
28
|
+
* @description Updates a model instance in the database
|
|
29
|
+
* @summary Update a model
|
|
30
|
+
* @template M - The model type
|
|
31
|
+
* @param {M} model - The model instance to update
|
|
32
|
+
* @param {...any[]} args - Additional arguments
|
|
33
|
+
* @return {Promise<M>} Promise resolving to the updated model instance
|
|
32
34
|
*/
|
|
33
35
|
update(model: M, ...args: any[]): Promise<M>;
|
|
34
36
|
/**
|
|
35
|
-
* @
|
|
36
|
-
* @
|
|
37
|
-
* @
|
|
38
|
-
*
|
|
39
|
-
* @
|
|
37
|
+
* @description Deletes a model instance from the database by its key
|
|
38
|
+
* @summary Delete a model
|
|
39
|
+
* @template M - The model type
|
|
40
|
+
* @param {(string|number)} key - The primary key of the model to delete
|
|
41
|
+
* @param {...any[]} args - Additional arguments
|
|
42
|
+
* @return {Promise<M>} Promise resolving to the deleted model instance
|
|
40
43
|
*/
|
|
41
44
|
delete(key: string | number, ...args: any[]): Promise<M>;
|
|
42
45
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J1ZE9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvQ3J1ZE9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNpYyBDUlVEIG9wZXJhdGlvbnMgaW50ZXJmYWNlXG4gKiBAc3VtbWFyeSBFeHBvc2VzIGEgc3RhbmRhcmQgQ3JlYXRlLCBSZWFkLCBVcGRhdGUsIERlbGV0ZSBBUEkgZm9yIGRhdGFiYXNlIG9wZXJhdGlvbnNcbiAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAqIEBpbnRlcmZhY2UgQ3J1ZE9wZXJhdG9yXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcnVkT3BlcmF0b3I8TT4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgbW9kZWwgaW5zdGFuY2UgaW4gdGhlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IENyZWF0ZSBhIG5ldyBtb2RlbFxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlXG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2UgdG8gY3JlYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgY3JlYXRlKG1vZGVsOiBNLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT47XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgbW9kZWwgaW5zdGFuY2UgZnJvbSB0aGUgZGF0YWJhc2UgYnkgaXRzIGtleVxuICAgKiBAc3VtbWFyeSBSZWFkIGEgbW9kZWxcbiAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgKiBAcGFyYW0geyhzdHJpbmd8bnVtYmVyKX0ga2V5IC0gVGhlIHByaW1hcnkga2V5IG9mIHRoZSBtb2RlbCB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgcmVhZChrZXk6IHN0cmluZyB8IG51bWJlciwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+O1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgYSBtb2RlbCBpbnN0YW5jZSBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgVXBkYXRlIGEgbW9kZWxcbiAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgbW9kZWwgaW5zdGFuY2VcbiAgICovXG4gIHVwZGF0ZShtb2RlbDogTSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+O1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSBtb2RlbCBpbnN0YW5jZSBmcm9tIHRoZSBkYXRhYmFzZSBieSBpdHMga2V5XG4gICAqIEBzdW1tYXJ5IERlbGV0ZSBhIG1vZGVsXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICogQHBhcmFtIHsoc3RyaW5nfG51bWJlcil9IGtleSAtIFRoZSBwcmltYXJ5IGtleSBvZiB0aGUgbW9kZWwgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgZGVsZXRlKGtleTogc3RyaW5nIHwgbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT47XG59XG4iXX0=
|
|
@@ -3,11 +3,19 @@ import { BulkCrudOperator } from "./BulkCrudOperator";
|
|
|
3
3
|
import { RepositoryFlags } from "../repository/types";
|
|
4
4
|
import { Context } from "../repository";
|
|
5
5
|
/**
|
|
6
|
-
* @
|
|
7
|
-
* @
|
|
6
|
+
* @description Repository interface for database operations
|
|
7
|
+
* @summary Interface holding basic CRUD APIs for database models, providing standard operations and metadata
|
|
8
|
+
* @template M - Type extending Model
|
|
9
|
+
* @template F - Type extending RepositoryFlags, defaults to RepositoryFlags
|
|
10
|
+
* @template C - Type extending Context<F>, defaults to Context<F>
|
|
8
11
|
* @interface IRepository
|
|
12
|
+
* @memberOf module:db-decorators
|
|
9
13
|
*/
|
|
10
14
|
export interface IRepository<M extends Model, F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> extends BulkCrudOperator<M> {
|
|
15
|
+
/**
|
|
16
|
+
* @description The constructor of the model class
|
|
17
|
+
* @summary Reference to the model class constructor used to create new instances
|
|
18
|
+
*/
|
|
11
19
|
readonly class: ModelConstructor<M>;
|
|
12
20
|
readonly pk: keyof M;
|
|
13
21
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9JUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwsIE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdG9yIH0gZnJvbSBcIi4vQnVsa0NydWRPcGVyYXRvclwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeUZsYWdzIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvdHlwZXNcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZXBvc2l0b3J5IGludGVyZmFjZSBmb3IgZGF0YWJhc2Ugb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgSW50ZXJmYWNlIGhvbGRpbmcgYmFzaWMgQ1JVRCBBUElzIGZvciBkYXRhYmFzZSBtb2RlbHMsIHByb3ZpZGluZyBzdGFuZGFyZCBvcGVyYXRpb25zIGFuZCBtZXRhZGF0YVxuICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICogQHRlbXBsYXRlIEYgLSBUeXBlIGV4dGVuZGluZyBSZXBvc2l0b3J5RmxhZ3MsIGRlZmF1bHRzIHRvIFJlcG9zaXRvcnlGbGFnc1xuICogQHRlbXBsYXRlIEMgLSBUeXBlIGV4dGVuZGluZyBDb250ZXh0PEY+LCBkZWZhdWx0cyB0byBDb250ZXh0PEY+XG4gKiBAaW50ZXJmYWNlIElSZXBvc2l0b3J5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVwb3NpdG9yeTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBGIGV4dGVuZHMgUmVwb3NpdG9yeUZsYWdzID0gUmVwb3NpdG9yeUZsYWdzLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIEMgZXh0ZW5kcyBDb250ZXh0PEY+ID0gQ29udGV4dDxGPixcbj4gZXh0ZW5kcyBCdWxrQ3J1ZE9wZXJhdG9yPE0+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY29uc3RydWN0b3Igb2YgdGhlIG1vZGVsIGNsYXNzXG4gICAqIEBzdW1tYXJ5IFJlZmVyZW5jZSB0byB0aGUgbW9kZWwgY2xhc3MgY29uc3RydWN0b3IgdXNlZCB0byBjcmVhdGUgbmV3IGluc3RhbmNlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2xhc3M6IE1vZGVsQ29uc3RydWN0b3I8TT47XG5cbiAgcmVhZG9ubHkgcGs6IGtleW9mIE07XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from "./BulkCrudOperator";
|
|
2
|
-
export * from "./Contextual";
|
|
3
|
-
export * from "./CrudOperator";
|
|
4
|
-
export * from "./IRepository";
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from "./BulkCrudOperator.js";
|
|
2
|
+
export * from "./Contextual.js";
|
|
3
|
+
export * from "./CrudOperator.js";
|
|
4
|
+
export * from "./IRepository.js";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQ0FBbUM7QUFDbkMsZ0NBQTZCO0FBQzdCLGtDQUErQjtBQUMvQixpQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9CdWxrQ3J1ZE9wZXJhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Db250ZXh0dWFsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9DcnVkT3BlcmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0lSZXBvc2l0b3J5XCI7XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
2
|
+
* @description Database reflection keys
|
|
3
|
+
* @summary Collection of keys used for reflection metadata in database operations
|
|
3
4
|
* @const DBKeys
|
|
4
|
-
*
|
|
5
|
-
* @memberOf module:db-decorators.Model
|
|
5
|
+
* @memberOf module:db-decorators
|
|
6
6
|
*/
|
|
7
7
|
export declare const DBKeys: {
|
|
8
8
|
REFLECT: string;
|
|
@@ -21,18 +21,16 @@ export declare const DBKeys: {
|
|
|
21
21
|
ORIGINAL: string;
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
|
-
* @
|
|
25
|
-
*
|
|
26
|
-
* @const
|
|
27
|
-
*
|
|
28
|
-
* @category Managers
|
|
29
|
-
* @subcategory Constants
|
|
24
|
+
* @description Default separator character for composite indexes
|
|
25
|
+
* @summary The default separator character used when concatenating multiple fields into a single index
|
|
26
|
+
* @const DefaultSeparator
|
|
27
|
+
* @memberOf module:db-decorators
|
|
30
28
|
*/
|
|
31
29
|
export declare const DefaultSeparator = "_";
|
|
32
30
|
/**
|
|
33
|
-
* @
|
|
34
|
-
* @
|
|
35
|
-
*
|
|
36
|
-
* @memberOf module:db-decorators
|
|
31
|
+
* @description Default format for timestamp fields
|
|
32
|
+
* @summary Standard date format string used for timestamp fields in database models
|
|
33
|
+
* @const DEFAULT_TIMESTAMP_FORMAT
|
|
34
|
+
* @memberOf module:db-decorators
|
|
37
35
|
*/
|
|
38
36
|
export declare const DEFAULT_TIMESTAMP_FORMAT = "dd/MM/yyyy HH:mm:ss:S";
|