@decaf-ts/db-decorators 0.7.12 → 0.8.0

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.
Files changed (50) hide show
  1. package/README.md +1 -1
  2. package/dist/db-decorators.cjs +1 -1
  3. package/dist/db-decorators.cjs.map +1 -1
  4. package/dist/db-decorators.js +1 -1
  5. package/dist/db-decorators.js.map +1 -1
  6. package/lib/esm/index.d.ts +1 -1
  7. package/lib/esm/index.js +1 -1
  8. package/lib/esm/overrides/Metadata.d.ts +1 -0
  9. package/lib/esm/overrides/Metadata.js +1 -1
  10. package/lib/esm/overrides/Metadata.js.map +1 -1
  11. package/lib/esm/repository/Repository.d.ts +303 -48
  12. package/lib/esm/repository/Repository.js +370 -61
  13. package/lib/esm/repository/Repository.js.map +1 -1
  14. package/lib/esm/repository/constants.js +3 -0
  15. package/lib/esm/repository/constants.js.map +1 -1
  16. package/lib/esm/repository/index.d.ts +1 -2
  17. package/lib/esm/repository/index.js +1 -2
  18. package/lib/esm/repository/index.js.map +1 -1
  19. package/lib/esm/repository/types.d.ts +3 -0
  20. package/lib/esm/repository/utils.js +3 -3
  21. package/lib/esm/repository/utils.js.map +1 -1
  22. package/lib/esm/repository/wrappers.d.ts +1 -0
  23. package/lib/esm/repository/wrappers.js +28 -0
  24. package/lib/esm/repository/wrappers.js.map +1 -1
  25. package/lib/index.cjs +1 -1
  26. package/lib/index.d.ts +1 -1
  27. package/lib/overrides/Metadata.cjs +1 -0
  28. package/lib/overrides/Metadata.d.ts +1 -0
  29. package/lib/overrides/Metadata.js.map +1 -1
  30. package/lib/repository/Repository.cjs +370 -61
  31. package/lib/repository/Repository.d.ts +303 -48
  32. package/lib/repository/Repository.js.map +1 -1
  33. package/lib/repository/constants.cjs +3 -0
  34. package/lib/repository/constants.js.map +1 -1
  35. package/lib/repository/index.cjs +1 -2
  36. package/lib/repository/index.d.ts +1 -2
  37. package/lib/repository/index.js.map +1 -1
  38. package/lib/repository/types.d.ts +3 -0
  39. package/lib/repository/utils.cjs +2 -2
  40. package/lib/repository/utils.js.map +1 -1
  41. package/lib/repository/wrappers.cjs +29 -0
  42. package/lib/repository/wrappers.d.ts +1 -0
  43. package/lib/repository/wrappers.js.map +1 -1
  44. package/package.json +1 -1
  45. package/lib/esm/repository/BaseRepository.d.ts +0 -352
  46. package/lib/esm/repository/BaseRepository.js +0 -423
  47. package/lib/esm/repository/BaseRepository.js.map +0 -1
  48. package/lib/repository/BaseRepository.cjs +0 -427
  49. package/lib/repository/BaseRepository.d.ts +0 -352
  50. package/lib/repository/BaseRepository.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"db-decorators.js","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/BaseRepository.ts","../src/repository/Repository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","onRead","onDelete","onAny","op","ON","afterCreateUpdate","after","afterUpdate","afterCreate","afterRead","afterDelete","afterAny","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","readonly","meta","description","async","for","define","decorator","innerValidationDecorator","timestampHandler","context","timestamp","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","serialize","type","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","oldModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","Model","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","isArray","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","join","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","suffix","separator","filterEmpty","hashResult","composed","arg","composedFrom","property","composedFromKeys","versionCreateUpdate","version","Number","transient","attribute","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","DefaultContextFactory","Context","accumulate","logger","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","BaseRepository","_class","self","create","read","update","delete","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","Repository","ignoreValidate","ids","oldModels","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"db-decorators.js","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/operations/decorators.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/repository/utils.ts","../src/overrides/overrides.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/repository/Repository.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","MODEL","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","ModelOperations","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","owner","resolveOwner","name","resolveTargetName","handlers","selectHandlers","length","unshift","Object","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","flavour","resolveFlavour","Decoration","defaultFlavour","Metadata","flavourOf","byOperation","bucket","firstBucket","values","keys","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","DefaultGroupSort","priority","getHandlerArgs","dec","prop","m","props","getHandlersDecorators","model","decorators","prefix","decs","handlerArgs","argsEntry","data","push","groupDecorators","grouped","reduce","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","forEach","combined","map","d","i","sort","a","b","groupPriority","c","sortDecorators","onCreateUpdate","groupsort","on","onUpdate","onCreate","onRead","onDelete","onAny","op","ON","afterCreateUpdate","after","afterUpdate","afterCreate","afterRead","afterDelete","afterAny","AFTER","baseOp","dataToAdd","propertyKey","compoundKey","readOperation","handlerKey","mergeData","filter","handle","propMetadata","OPERATIONS","apply","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","readonly","meta","description","async","for","define","decorator","innerValidationDecorator","timestampHandler","context","timestamp","format","decorationKey","updateValidationKey","date","required","indexOf","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","serialize","type","String","id","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","call","validationFor","validateDecorator","newModel","oldModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","decoratorKey","validationErrors","ValidationKeys","LIST","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","class","clazz","customTypes","flat","t","toLowerCase","errs","childValue","Model","pk","oldListModel","find","el","isModel","Promise","all","then","every","r","allEmpty","promises","resolvedValues","res","val","validateCompare","ValidatableUpdateProps","nestedErrors","propValue","designTypes","designType","getPropDesignTypes","some","TYPE","isArray","propErrors","isConstr","isPropertyModel","instance","Constr","entries","error","ModelErrorDefinition","merged","allSettled","results","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","join","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","suffix","separator","filterEmpty","hashResult","composed","arg","composedFrom","property","composedFromKeys","versionCreateUpdate","version","Number","transient","attribute","reduceErrorsToPrint","errors","enforceDBDecorators","repo","getDbDecorators","sortedDecorators","UPDATE_ALL","logger","extraPrefix","replace","obj","isTransient","previousVersion","exclusions","isAsync","validate","resolve","resolvedErrs","segregate","validatableProperties","transientProps","build","keyValue","constr","idProp","bind","pkProps","merge","extract","assign","saveOperation","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","ignoreValidation","ignoreHandlers","ignoreDevSafeGuards","mergeForUpdate","applyUpdateValidation","DefaultContextFactory","Context","accumulate","Logging","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","afterName","Proxy","thisArg","argArray","suffixMethod","before","beforeName","wrapMethodWithContext","method","methodName","transformedArgs","wrapMethodWithContextForUpdate","o","Repository","_class","self","create","read","delete","update","createAll","models","createPrefix","contextArgs","createSuffix","createAllPrefix","ignoreValidate","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","ids","oldModels","modelsValidation","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -16,5 +16,5 @@ export * from "./validation";
16
16
  * @const VERSION
17
17
  * @memberOf module:db-decorators
18
18
  */
19
- export declare const VERSION = "0.7.11";
19
+ export declare const VERSION = "0.7.13";
20
20
  export declare const PACKAGE_NAME = "@decaf-ts/db-decorators";
package/lib/esm/index.js CHANGED
@@ -17,7 +17,7 @@ export * from "./validation/index.js";
17
17
  * @const VERSION
18
18
  * @memberOf module:db-decorators
19
19
  */
20
- export const VERSION = "0.7.11";
20
+ export const VERSION = "0.7.13";
21
21
  export const PACKAGE_NAME = "@decaf-ts/db-decorators";
22
22
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
23
23
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,4 @@
1
+ import "@decaf-ts/decoration";
1
2
  import type { Constructor } from "@decaf-ts/decoration";
2
3
  import type { Model } from "@decaf-ts/decorator-validation";
3
4
  declare module "@decaf-ts/decoration" {
@@ -1,2 +1,2 @@
1
- export {};
1
+ import "@decaf-ts/decoration";
2
2
  //# sourceMappingURL=Metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/overrides/Metadata.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/overrides/Metadata.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC"}
@@ -1,16 +1,18 @@
1
- import { BaseRepository } from "./BaseRepository";
1
+ import "../overrides";
2
+ import { IRepository } from "../interfaces/IRepository";
2
3
  import { Model } from "@decaf-ts/decorator-validation";
3
4
  import { Context } from "./Context";
4
5
  import { PrimaryKeyType, RepositoryFlags } from "./types";
5
6
  import { Constructor } from "@decaf-ts/decoration";
6
7
  /**
7
- * @description Concrete repository implementation with validation support.
8
- * @summary The Repository class extends BaseRepository to provide additional validation
9
- * functionality. It overrides prefix methods to perform model validation before database
10
- * operations and throws ValidationError when validation fails.
8
+ * @description Base repository implementation providing CRUD operations for models.
9
+ * @summary The BaseRepository class serves as a foundation for repository implementations, providing
10
+ * abstract and concrete methods for creating, reading, updating, and deleting model instances.
11
+ * It handles operation lifecycles including prefix and suffix operations, and enforces decorators.
11
12
  * @template M - The model type extending Model
12
13
  * @template F - The repository flags type, defaults to RepositoryFlags
13
14
  * @template C - The context type, defaults to Context<F>
15
+ * @param {Constructor<M>} clazz - The constructor for the model class
14
16
  * @class Repository
15
17
  * @example
16
18
  * class UserModel extends Model {
@@ -18,80 +20,333 @@ import { Constructor } from "@decaf-ts/decoration";
18
20
  * id: string;
19
21
  *
20
22
  * @required()
21
- * @minLength(3)
22
23
  * name: string;
23
24
  * }
24
25
  *
25
- * class UserRepository extends Repository<UserModel> {
26
+ * class UserRepository extends BaseRepository<UserModel> {
26
27
  * constructor() {
27
28
  * super(UserModel);
28
29
  * }
29
30
  *
30
31
  * async create(model: UserModel): Promise<UserModel> {
31
- * // Implementation with automatic validation
32
+ * // Implementation
32
33
  * return model;
33
34
  * }
34
- * }
35
35
  *
36
- * // Using the repository
37
- * const repo = new UserRepository();
38
- * try {
39
- * const user = await repo.create({ name: 'Jo' }); // Will throw ValidationError
40
- * } catch (error) {
41
- * console.error(error); // ValidationError: name must be at least 3 characters
36
+ * async read(key: string): Promise<UserModel> {
37
+ * // Implementation
38
+ * return new UserModel({ id: key, name: 'User' });
39
+ * }
40
+ *
41
+ * async update(model: UserModel): Promise<UserModel> {
42
+ * // Implementation
43
+ * return model;
44
+ * }
45
+ *
46
+ * async delete(key: string): Promise<UserModel> {
47
+ * // Implementation
48
+ * const model = await this.read(key);
49
+ * return model;
50
+ * }
42
51
  * }
52
+ *
53
+ * @mermaid
54
+ * sequenceDiagram
55
+ * participant C as Client
56
+ * participant R as Repository
57
+ * participant P as Prefix Methods
58
+ * participant D as Database
59
+ * participant S as Suffix Methods
60
+ * participant V as Validators/Decorators
61
+ *
62
+ * Note over C,V: Create Operation
63
+ * C->>R: create(model)
64
+ * R->>P: createPrefix(model)
65
+ * P->>V: enforceDBDecorators(ON)
66
+ * P->>D: Database operation
67
+ * D->>S: createSuffix(model)
68
+ * S->>V: enforceDBDecorators(AFTER)
69
+ * S->>C: Return model
70
+ *
71
+ * Note over C,V: Read Operation
72
+ * C->>R: read(key)
73
+ * R->>P: readPrefix(key)
74
+ * P->>V: enforceDBDecorators(ON)
75
+ * P->>D: Database operation
76
+ * D->>S: readSuffix(model)
77
+ * S->>V: enforceDBDecorators(AFTER)
78
+ * S->>C: Return model
79
+ *
80
+ * Note over C,V: Update Operation
81
+ * C->>R: update(model)
82
+ * R->>P: updatePrefix(model)
83
+ * P->>V: enforceDBDecorators(ON)
84
+ * P->>D: Database operation
85
+ * D->>S: updateSuffix(model)
86
+ * S->>V: enforceDBDecorators(AFTER)
87
+ * S->>C: Return model
88
+ *
89
+ * Note over C,V: Delete Operation
90
+ * C->>R: delete(key)
91
+ * R->>P: deletePrefix(key)
92
+ * P->>V: enforceDBDecorators(ON)
93
+ * P->>D: Database operation
94
+ * D->>S: deleteSuffix(model)
95
+ * S->>V: enforceDBDecorators(AFTER)
96
+ * S->>C: Return model
43
97
  */
44
- export declare abstract class Repository<M extends Model<boolean>, C extends Context<any> = Context<RepositoryFlags>> extends BaseRepository<M, C> {
98
+ export declare abstract class Repository<M extends Model<boolean>, C extends Context<RepositoryFlags>> implements IRepository<M, C> {
99
+ private readonly _class;
100
+ /**
101
+ * @description Gets the model class constructor.
102
+ * @summary Retrieves the constructor for the model class associated with this repository.
103
+ * Throws an error if no class definition is found.
104
+ * @return {Constructor<M>} The constructor for the model class
105
+ */
106
+ get class(): Constructor<M>;
107
+ /**
108
+ * @description Gets the primary key property name of the model.
109
+ * @summary Retrieves the name of the property that serves as the primary key for the model.
110
+ * If not already determined, it finds the primary key using the model's decorators.
111
+ * @return The name of the primary key property
112
+ */
113
+ protected get pk(): keyof M;
114
+ /**
115
+ * @description Gets the primary key properties.
116
+ * @summary Retrieves the properties associated with the primary key of the model.
117
+ * If not already determined, it triggers the pk getter to find the primary key properties.
118
+ * @return {any} The properties of the primary key
119
+ */
120
+ protected get pkProps(): any;
45
121
  protected constructor(clazz?: Constructor<M>);
46
122
  /**
47
- * @description Prepares a model for creation with validation.
48
- * @summary Overrides the base createPrefix method to add validation checks.
49
- * Creates a context, instantiates a new model, enforces decorators, and validates
50
- * the model before allowing creation to proceed.
123
+ * @description Creates a new model instance in the repository.
124
+ * @summary Persists a new model instance to the underlying data store.
125
+ * This method must be implemented by concrete repository classes.
126
+ * @param {M} model - The model instance to create
127
+ * @param {any[]} args - Additional arguments for the create operation
128
+ * @return {Promise<M>} A promise that resolves to the created model instance
129
+ */
130
+ abstract create(model: M, ...args: any[]): Promise<M>;
131
+ /**
132
+ * @description Creates multiple model instances in the repository.
133
+ * @summary Persists multiple model instances to the underlying data store by calling
134
+ * the create method for each model in the array.
135
+ * @param {M[]} models - The array of model instances to create
136
+ * @param {any[]} args - Additional arguments for the create operation
137
+ * @return {Promise<M[]>} A promise that resolves to an array of created model instances
138
+ */
139
+ createAll(models: M[], ...args: any[]): Promise<M[]>;
140
+ /**
141
+ * @description Prepares a model for creation and executes pre-creation operations.
142
+ * @summary Processes a model before it is created in the data store. This includes
143
+ * creating a context, instantiating a new model instance, and enforcing any decorators
144
+ * that should be applied before creation.
51
145
  * @param {M} model - The model instance to prepare for creation
52
146
  * @param {any[]} args - Additional arguments for the create operation
53
- * @return A promise that resolves to an array containing the validated model and context arguments
54
- * @throws {ValidationError} If the model fails validation
147
+ * @return A promise that resolves to an array containing the prepared model and context arguments
55
148
  */
56
149
  protected createPrefix(model: M, ...args: any[]): Promise<[M, ...any[], C]>;
57
150
  /**
58
- * @description Prepares multiple models for creation with validation.
59
- * @summary Overrides the base createAllPrefix method to add validation checks for multiple models.
60
- * Creates a context, instantiates new models, enforces decorators, and validates
61
- * each model before allowing creation to proceed. Collects validation errors from all models.
151
+ * @description Processes a model after creation and executes post-creation operations.
152
+ * @summary Finalizes a model after it has been created in the data store. This includes
153
+ * enforcing any decorators that should be applied after creation.
154
+ * @param {M} model - The model instance that was created
155
+ * @param {C} context - The context for the operation
156
+ * @return {Promise<M>} A promise that resolves to the processed model instance
157
+ */
158
+ protected createSuffix(model: M, context: C): Promise<M>;
159
+ /**
160
+ * @description Prepares multiple models for creation and executes pre-creation operations.
161
+ * @summary Processes multiple models before they are created in the data store. This includes
162
+ * creating a context, instantiating new model instances, and enforcing any decorators
163
+ * that should be applied before creation for each model.
62
164
  * @param {M[]} models - The array of model instances to prepare for creation
63
165
  * @param {any[]} args - Additional arguments for the create operation
64
- * @return {Promise<any[]>} A promise that resolves to an array containing the validated models and context arguments
65
- * @throws {ValidationError} If any model fails validation, with details about which models failed
166
+ * @return A promise that resolves to an array containing the prepared models and context arguments
66
167
  */
67
168
  protected createAllPrefix(models: M[], ...args: any[]): Promise<[M[], ...any[], C]>;
68
169
  /**
69
- * @description Prepares a model for update with validation.
70
- * @summary Overrides the base updatePrefix method to add validation checks.
71
- * Creates a context, validates the primary key, retrieves the existing model,
72
- * merges the old and new models, enforces decorators, and validates the model
73
- * before allowing the update to proceed.
170
+ * @description Processes multiple models after creation and executes post-creation operations.
171
+ * @summary Finalizes multiple models after they have been created in the data store. This includes
172
+ * enforcing any decorators that should be applied after creation for each model.
173
+ * @param {M[]} models - The array of model instances that were created
174
+ * @param {C} context - The context for the operation
175
+ * @return {Promise<M[]>} A promise that resolves to the array of processed model instances
176
+ */
177
+ protected createAllSuffix(models: M[], context: C): Promise<M[]>;
178
+ /**
179
+ * @description Retrieves a model instance from the repository by its primary key.
180
+ * @summary Fetches a model instance from the underlying data store using its primary key.
181
+ * This method must be implemented by concrete repository classes.
182
+ * @param {PrimaryKeyType} key - The primary key of the model to retrieve
183
+ * @param {any[]} args - Additional arguments for the read operation
184
+ * @return {Promise<M>} A promise that resolves to the retrieved model instance
185
+ */
186
+ abstract read(key: PrimaryKeyType, ...args: any[]): Promise<M>;
187
+ /**
188
+ * @description Retrieves multiple model instances from the repository by their primary keys.
189
+ * @summary Fetches multiple model instances from the underlying data store using their primary keys
190
+ * by calling the read method for each key in the array.
191
+ * @param {string[] | number[]} keys - The array of primary keys of the models to retrieve
192
+ * @param {any[]} args - Additional arguments for the read operation
193
+ * @return {Promise<M[]>} A promise that resolves to an array of retrieved model instances
194
+ */
195
+ readAll(keys: PrimaryKeyType[], ...args: any[]): Promise<M[]>;
196
+ /**
197
+ * @description Processes a model after retrieval and executes post-read operations.
198
+ * @summary Finalizes a model after it has been retrieved from the data store. This includes
199
+ * enforcing any decorators that should be applied after reading.
200
+ * @param {M} model - The model instance that was retrieved
201
+ * @param {C} context - The context for the operation
202
+ * @return {Promise<M>} A promise that resolves to the processed model instance
203
+ */
204
+ protected readSuffix(model: M, context: C): Promise<M>;
205
+ /**
206
+ * @description Prepares for reading a model and executes pre-read operations.
207
+ * @summary Processes a key before a model is read from the data store. This includes
208
+ * creating a context, instantiating a new model instance with the key, and enforcing any decorators
209
+ * that should be applied before reading.
210
+ * @param {string} key - The primary key of the model to read
211
+ * @param {any[]} args - Additional arguments for the read operation
212
+ * @return A promise that resolves to an array containing the key and context arguments
213
+ */
214
+ protected readPrefix(key: PrimaryKeyType, ...args: any[]): Promise<[PrimaryKeyType, ...any[], C]>;
215
+ /**
216
+ * @description Prepares for reading multiple models and executes pre-read operations.
217
+ * @summary Processes multiple keys before models are read from the data store. This includes
218
+ * creating a context, instantiating new model instances with the keys, and enforcing any decorators
219
+ * that should be applied before reading for each key.
220
+ * @param {string[] | number[]} keys - The array of primary keys of the models to read
221
+ * @param {any[]} args - Additional arguments for the read operation
222
+ * @return A promise that resolves to an array containing the keys and context arguments
223
+ */
224
+ protected readAllPrefix(keys: PrimaryKeyType[], ...args: any[]): Promise<[PrimaryKeyType[], ...any[], C]>;
225
+ /**
226
+ * @description Processes multiple models after retrieval and executes post-read operations.
227
+ * @summary Finalizes multiple models after they have been retrieved from the data store. This includes
228
+ * enforcing any decorators that should be applied after reading for each model.
229
+ * @param {M[]} models - The array of model instances that were retrieved
230
+ * @param {C} context - The context for the operation
231
+ * @return {Promise<M[]>} A promise that resolves to the array of processed model instances
232
+ */
233
+ protected readAllSuffix(models: M[], context: C): Promise<M[]>;
234
+ /**
235
+ * @description Updates an existing model instance in the repository.
236
+ * @summary Updates an existing model instance in the underlying data store.
237
+ * This method must be implemented by concrete repository classes.
238
+ * @param {M} model - The model instance to update
239
+ * @param {any[]} args - Additional arguments for the update operation
240
+ * @return {Promise<M>} A promise that resolves to the updated model instance
241
+ */
242
+ abstract update(model: M, ...args: any[]): Promise<M>;
243
+ /**
244
+ * @description Updates multiple model instances in the repository.
245
+ * @summary Updates multiple model instances in the underlying data store by calling
246
+ * the update method for each model in the array.
247
+ * @param {M[]} models - The array of model instances to update
248
+ * @param {any[]} args - Additional arguments for the update operation
249
+ * @return {Promise<M[]>} A promise that resolves to an array of updated model instances
250
+ */
251
+ updateAll(models: M[], ...args: any): Promise<M[]>;
252
+ /**
253
+ * @description Processes a model after update and executes post-update operations.
254
+ * @summary Finalizes a model after it has been updated in the data store. This includes
255
+ * enforcing any decorators that should be applied after updating.
256
+ * @param {M} model - The model instance that was updated
257
+ * @param {C} context - The context for the operation
258
+ * @return {Promise<M>} A promise that resolves to the processed model instance
259
+ */
260
+ protected updateSuffix(model: M, oldModel: M, context: C): Promise<M>;
261
+ /**
262
+ * @description Prepares a model for update and executes pre-update operations.
263
+ * @summary Processes a model before it is updated in the data store. This includes
264
+ * creating a context, validating the primary key, retrieving the existing model,
265
+ * and enforcing any decorators that should be applied before updating.
74
266
  * @param {M} model - The model instance to prepare for update
75
267
  * @param {any[]} args - Additional arguments for the update operation
76
- * @return A promise that resolves to an array containing the validated model and context arguments
77
- * @throws {InternalError} If the model doesn't have a primary key value
78
- * @throws {ValidationError} If the model fails validation
268
+ * @return A promise that resolves to an array containing the prepared model and context arguments
79
269
  */
80
- protected updatePrefix(model: M, ...args: any[]): Promise<[M, ...args: any[], C]>;
270
+ protected updatePrefix(model: M, ...args: any[]): Promise<[M, ...args: any[], C, M | undefined]>;
81
271
  /**
82
- * @description Prepares multiple models for update with validation.
83
- * @summary Overrides the base updateAllPrefix method to add validation checks for multiple models.
84
- * Creates a context, validates primary keys, retrieves existing models, merges old and new models,
85
- * enforces decorators, and validates each model before allowing updates to proceed.
86
- * Collects validation errors from all models.
272
+ * @description Prepares multiple models for update and executes pre-update operations.
273
+ * @summary Processes multiple models before they are updated in the data store. This includes
274
+ * creating a context, instantiating new model instances, and enforcing any decorators
275
+ * that should be applied before updating for each model.
87
276
  * @param {M[]} models - The array of model instances to prepare for update
88
277
  * @param {any[]} args - Additional arguments for the update operation
89
- * @return A promise that resolves to an array containing the validated models and context arguments
90
- * @throws {InternalError} If any model doesn't have a primary key value
91
- * @throws {ValidationError} If any model fails validation, with details about which models failed
278
+ * @return A promise that resolves to an array containing the prepared models and context arguments
279
+ */
280
+ protected updateAllPrefix(models: M[], ...args: any[]): Promise<[M[], ...any[], C, M[] | undefined]>;
281
+ /**
282
+ * @description Processes multiple models after update and executes post-update operations.
283
+ * @summary Finalizes multiple models after they have been updated in the data store. This includes
284
+ * enforcing any decorators that should be applied after updating for each model.
285
+ * @param {M[]} models - The array of model instances that were updated
286
+ * @param {C} context - The context for the operation
287
+ * @return {Promise<M[]>} A promise that resolves to the array of processed model instances
288
+ */
289
+ protected updateAllSuffix(models: M[], oldModels: M[] | undefined, context: C): Promise<M[]>;
290
+ /**
291
+ * @description Deletes a model instance from the repository by its primary key.
292
+ * @summary Removes a model instance from the underlying data store using its primary key.
293
+ * This method must be implemented by concrete repository classes.
294
+ * @param {string | number} key - The primary key of the model to delete
295
+ * @param {any[]} args - Additional arguments for the delete operation
296
+ * @return {Promise<M>} A promise that resolves to the deleted model instance
297
+ */
298
+ abstract delete(key: PrimaryKeyType, ...args: any[]): Promise<M>;
299
+ /**
300
+ * @description Deletes multiple model instances from the repository by their primary keys.
301
+ * @summary Removes multiple model instances from the underlying data store using their primary keys
302
+ * by calling the delete method for each key in the array.
303
+ * @param {string[] | number[]} keys - The array of primary keys of the models to delete
304
+ * @param {any[]} args - Additional arguments for the delete operation
305
+ * @return {Promise<M[]>} A promise that resolves to an array of deleted model instances
306
+ */
307
+ deleteAll(keys: PrimaryKeyType[], ...args: any[]): Promise<M[]>;
308
+ /**
309
+ * @description Processes a model after deletion and executes post-delete operations.
310
+ * @summary Finalizes a model after it has been deleted from the data store. This includes
311
+ * enforcing any decorators that should be applied after deletion.
312
+ * @param {M} model - The model instance that was deleted
313
+ * @param {C} context - The context for the operation
314
+ * @return {Promise<M>} A promise that resolves to the processed model instance
315
+ */
316
+ protected deleteSuffix(model: M, context: C): Promise<M>;
317
+ /**
318
+ * @description Prepares for deleting a model and executes pre-delete operations.
319
+ * @summary Processes a key before a model is deleted from the data store. This includes
320
+ * creating a context, retrieving the model to be deleted, and enforcing any decorators
321
+ * that should be applied before deletion.
322
+ * @param {any} key - The primary key of the model to delete
323
+ * @param {any[]} args - Additional arguments for the delete operation
324
+ * @return A promise that resolves to an array containing the key and context arguments
325
+ */
326
+ protected deletePrefix(key: PrimaryKeyType, ...args: any[]): Promise<[PrimaryKeyType, ...any[], C]>;
327
+ /**
328
+ * @description Prepares for deleting multiple models and executes pre-delete operations.
329
+ * @summary Processes multiple keys before models are deleted from the data store. This includes
330
+ * creating a context, retrieving the models to be deleted, and enforcing any decorators
331
+ * that should be applied before deletion for each model.
332
+ * @param {string[] | number[]} keys - The array of primary keys of the models to delete
333
+ * @param {any[]} args - Additional arguments for the delete operation
334
+ * @return A promise that resolves to an array containing the keys and context arguments
92
335
  */
93
- protected updateAllPrefix(models: M[], ...args: any[]): Promise<[M[], ...any[], C]>;
94
- protected readPrefix(key: PrimaryKeyType, ...args: any[]): Promise<[PrimaryKeyType, ...any[], C]>;
95
- protected readAllPrefix(keys: PrimaryKeyType[], ...args: any[]): Promise<[PrimaryKeyType[], ...any[], C]>;
96
336
  protected deleteAllPrefix(keys: PrimaryKeyType[], ...args: any[]): Promise<[PrimaryKeyType[], ...any[], C]>;
337
+ /**
338
+ * @description Processes multiple models after deletion and executes post-delete operations.
339
+ * @summary Finalizes multiple models after they have been deleted from the data store. This includes
340
+ * enforcing any decorators that should be applied after deletion for each model.
341
+ * @param {M[]} models - The array of model instances that were deleted
342
+ * @param {C} context - The context for the operation
343
+ * @return {Promise<M[]>} A promise that resolves to the array of processed model instances
344
+ */
345
+ protected deleteAllSuffix(models: M[], context: C): Promise<M[]>;
346
+ /**
347
+ * @description Returns a string representation of the repository.
348
+ * @summary Creates a string that identifies this repository by the name of its model class.
349
+ * @return {string} A string representation of the repository
350
+ */
351
+ toString(): string;
97
352
  }