@decaf-ts/db-decorators 0.1.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 (151) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +160 -0
  3. package/dist/db-decorators.bundle.min.js +2 -0
  4. package/dist/db-decorators.bundle.min.js.LICENSE.txt +14 -0
  5. package/dist/esm/db-decorators.bundle.min.esm.js +2 -0
  6. package/dist/esm/db-decorators.bundle.min.esm.js.LICENSE.txt +14 -0
  7. package/lib/esm/identity/decorators.d.ts +1 -0
  8. package/lib/esm/identity/decorators.js +1 -0
  9. package/lib/esm/identity/index.d.ts +2 -0
  10. package/lib/esm/identity/index.js +1 -0
  11. package/lib/esm/identity/utils.d.ts +36 -0
  12. package/lib/esm/identity/utils.js +1 -0
  13. package/lib/esm/index.d.ts +33 -0
  14. package/lib/esm/index.js +1 -0
  15. package/lib/esm/interfaces/CrudOperator.d.ts +42 -0
  16. package/lib/esm/interfaces/CrudOperator.js +0 -0
  17. package/lib/esm/interfaces/IRepository.d.ts +13 -0
  18. package/lib/esm/interfaces/IRepository.js +0 -0
  19. package/lib/esm/interfaces/index.d.ts +2 -0
  20. package/lib/esm/interfaces/index.js +1 -0
  21. package/lib/esm/model/DBModel.d.ts +25 -0
  22. package/lib/esm/model/DBModel.js +1 -0
  23. package/lib/esm/model/constants.d.ts +36 -0
  24. package/lib/esm/model/constants.js +1 -0
  25. package/lib/esm/model/decorators.d.ts +25 -0
  26. package/lib/esm/model/decorators.js +1 -0
  27. package/lib/esm/model/index.d.ts +3 -0
  28. package/lib/esm/model/index.js +1 -0
  29. package/lib/esm/model/validation.d.ts +15 -0
  30. package/lib/esm/model/validation.js +1 -0
  31. package/lib/esm/operations/Operations.d.ts +19 -0
  32. package/lib/esm/operations/Operations.js +1 -0
  33. package/lib/esm/operations/OperationsRegistry.d.ts +34 -0
  34. package/lib/esm/operations/OperationsRegistry.js +1 -0
  35. package/lib/esm/operations/constants.d.ts +23 -0
  36. package/lib/esm/operations/constants.js +1 -0
  37. package/lib/esm/operations/decorators.d.ts +166 -0
  38. package/lib/esm/operations/decorators.js +1 -0
  39. package/lib/esm/operations/index.d.ts +5 -0
  40. package/lib/esm/operations/index.js +1 -0
  41. package/lib/esm/operations/types.d.ts +28 -0
  42. package/lib/esm/operations/types.js +0 -0
  43. package/lib/esm/repository/BaseRepository.d.ts +24 -0
  44. package/lib/esm/repository/BaseRepository.js +1 -0
  45. package/lib/esm/repository/DataCache.d.ts +8 -0
  46. package/lib/esm/repository/DataCache.js +1 -0
  47. package/lib/esm/repository/Repository.d.ts +12 -0
  48. package/lib/esm/repository/Repository.js +1 -0
  49. package/lib/esm/repository/constants.d.ts +6 -0
  50. package/lib/esm/repository/constants.js +1 -0
  51. package/lib/esm/repository/decorators.d.ts +3 -0
  52. package/lib/esm/repository/decorators.js +1 -0
  53. package/lib/esm/repository/errors.d.ts +69 -0
  54. package/lib/esm/repository/errors.js +1 -0
  55. package/lib/esm/repository/index.d.ts +9 -0
  56. package/lib/esm/repository/index.js +1 -0
  57. package/lib/esm/repository/types.d.ts +13 -0
  58. package/lib/esm/repository/types.js +0 -0
  59. package/lib/esm/repository/utils.d.ts +57 -0
  60. package/lib/esm/repository/utils.js +1 -0
  61. package/lib/esm/repository/wrappers.d.ts +38 -0
  62. package/lib/esm/repository/wrappers.js +1 -0
  63. package/lib/esm/validation/comparison.d.ts +1 -0
  64. package/lib/esm/validation/comparison.js +1 -0
  65. package/lib/esm/validation/constants.d.ts +49 -0
  66. package/lib/esm/validation/constants.js +1 -0
  67. package/lib/esm/validation/decorators.d.ts +70 -0
  68. package/lib/esm/validation/decorators.js +1 -0
  69. package/lib/esm/validation/index.d.ts +3 -0
  70. package/lib/esm/validation/index.js +1 -0
  71. package/lib/esm/validation/validators/ReadOnlyValidator.d.ts +23 -0
  72. package/lib/esm/validation/validators/ReadOnlyValidator.js +1 -0
  73. package/lib/esm/validation/validators/TimestampValidator.d.ts +14 -0
  74. package/lib/esm/validation/validators/TimestampValidator.js +1 -0
  75. package/lib/esm/validation/validators/UpdateValidator.d.ts +23 -0
  76. package/lib/esm/validation/validators/UpdateValidator.js +1 -0
  77. package/lib/esm/validation/validators/index.d.ts +3 -0
  78. package/lib/esm/validation/validators/index.js +1 -0
  79. package/lib/identity/decorators.cjs +1 -0
  80. package/lib/identity/decorators.d.ts +1 -0
  81. package/lib/identity/index.cjs +1 -0
  82. package/lib/identity/index.d.ts +2 -0
  83. package/lib/identity/utils.cjs +1 -0
  84. package/lib/identity/utils.d.ts +36 -0
  85. package/lib/index.cjs +1 -0
  86. package/lib/index.d.ts +33 -0
  87. package/lib/interfaces/CrudOperator.cjs +1 -0
  88. package/lib/interfaces/CrudOperator.d.ts +42 -0
  89. package/lib/interfaces/IRepository.cjs +1 -0
  90. package/lib/interfaces/IRepository.d.ts +13 -0
  91. package/lib/interfaces/index.cjs +1 -0
  92. package/lib/interfaces/index.d.ts +2 -0
  93. package/lib/model/DBModel.cjs +1 -0
  94. package/lib/model/DBModel.d.ts +25 -0
  95. package/lib/model/constants.cjs +1 -0
  96. package/lib/model/constants.d.ts +36 -0
  97. package/lib/model/decorators.cjs +1 -0
  98. package/lib/model/decorators.d.ts +25 -0
  99. package/lib/model/index.cjs +1 -0
  100. package/lib/model/index.d.ts +3 -0
  101. package/lib/model/validation.cjs +1 -0
  102. package/lib/model/validation.d.ts +15 -0
  103. package/lib/operations/Operations.cjs +1 -0
  104. package/lib/operations/Operations.d.ts +19 -0
  105. package/lib/operations/OperationsRegistry.cjs +1 -0
  106. package/lib/operations/OperationsRegistry.d.ts +34 -0
  107. package/lib/operations/constants.cjs +1 -0
  108. package/lib/operations/constants.d.ts +23 -0
  109. package/lib/operations/decorators.cjs +1 -0
  110. package/lib/operations/decorators.d.ts +166 -0
  111. package/lib/operations/index.cjs +1 -0
  112. package/lib/operations/index.d.ts +5 -0
  113. package/lib/operations/types.cjs +1 -0
  114. package/lib/operations/types.d.ts +28 -0
  115. package/lib/repository/BaseRepository.cjs +1 -0
  116. package/lib/repository/BaseRepository.d.ts +24 -0
  117. package/lib/repository/DataCache.cjs +1 -0
  118. package/lib/repository/DataCache.d.ts +8 -0
  119. package/lib/repository/Repository.cjs +1 -0
  120. package/lib/repository/Repository.d.ts +12 -0
  121. package/lib/repository/constants.cjs +1 -0
  122. package/lib/repository/constants.d.ts +6 -0
  123. package/lib/repository/decorators.cjs +1 -0
  124. package/lib/repository/decorators.d.ts +3 -0
  125. package/lib/repository/errors.cjs +1 -0
  126. package/lib/repository/errors.d.ts +69 -0
  127. package/lib/repository/index.cjs +1 -0
  128. package/lib/repository/index.d.ts +9 -0
  129. package/lib/repository/types.cjs +1 -0
  130. package/lib/repository/types.d.ts +13 -0
  131. package/lib/repository/utils.cjs +1 -0
  132. package/lib/repository/utils.d.ts +57 -0
  133. package/lib/repository/wrappers.cjs +1 -0
  134. package/lib/repository/wrappers.d.ts +38 -0
  135. package/lib/validation/comparison.cjs +1 -0
  136. package/lib/validation/comparison.d.ts +1 -0
  137. package/lib/validation/constants.cjs +1 -0
  138. package/lib/validation/constants.d.ts +49 -0
  139. package/lib/validation/decorators.cjs +1 -0
  140. package/lib/validation/decorators.d.ts +70 -0
  141. package/lib/validation/index.cjs +1 -0
  142. package/lib/validation/index.d.ts +3 -0
  143. package/lib/validation/validators/ReadOnlyValidator.cjs +1 -0
  144. package/lib/validation/validators/ReadOnlyValidator.d.ts +23 -0
  145. package/lib/validation/validators/TimestampValidator.cjs +1 -0
  146. package/lib/validation/validators/TimestampValidator.d.ts +14 -0
  147. package/lib/validation/validators/UpdateValidator.cjs +1 -0
  148. package/lib/validation/validators/UpdateValidator.d.ts +23 -0
  149. package/lib/validation/validators/index.cjs +1 -0
  150. package/lib/validation/validators/index.d.ts +3 -0
  151. package/package.json +107 -0
@@ -0,0 +1,70 @@
1
+ import { OperationKeys } from "../operations/constants";
2
+ import { IRepository } from "../interfaces/IRepository";
3
+ import { DBModel } from "../model/DBModel";
4
+ import { CustomDecorator } from "@decaf-ts/reflection";
5
+ export declare function getDBUpdateKey(str: string): string;
6
+ /**
7
+ * Marks the property as readonly.
8
+ *
9
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES.READONLY.INVALID}
10
+ *
11
+ * @decorator readonly
12
+ *
13
+ * @category Decorators
14
+ */
15
+ export declare function readonly(message?: string): CustomDecorator<V>;
16
+ export declare function timestampHandler<T extends DBModel, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T): void;
17
+ /**
18
+ * Marks the property as timestamp.
19
+ * Makes it {@link required}
20
+ * Makes it a {@link date}
21
+ *
22
+ * Date Format:
23
+ *
24
+ * <pre>
25
+ * Using similar formatting as Moment.js, Class DateTimeFormatter (Java), and Class SimpleDateFormat (Java),
26
+ * I implemented a comprehensive solution formatDate(date, patternStr) where the code is easy to read and modify.
27
+ * You can display date, time, AM/PM, etc.
28
+ *
29
+ * Date and Time Patterns
30
+ * yy = 2-digit year; yyyy = full year
31
+ * M = digit month; MM = 2-digit month; MMM = short month name; MMMM = full month name
32
+ * EEEE = full weekday name; EEE = short weekday name
33
+ * d = digit day; dd = 2-digit day
34
+ * h = hours am/pm; hh = 2-digit hours am/pm; H = hours; HH = 2-digit hours
35
+ * m = minutes; mm = 2-digit minutes; aaa = AM/PM
36
+ * s = seconds; ss = 2-digit seconds
37
+ * S = miliseconds
38
+ * </pre>
39
+ *
40
+ * @param {string[]} operation The {@link DBOperations} to act on. Defaults to {@link DBOperations.CREATE_UPDATE}
41
+ * @param {string} [format] The TimeStamp format. defaults to {@link DEFAULT_TIMESTAMP_FORMAT}
42
+ * @param {{new: UpdateValidator}} [validator] defaults to {@link TimestampValidator}
43
+ *
44
+ * @decorator timestamp
45
+ *
46
+ * @category Decorators
47
+ */
48
+ export declare function timestamp(operation?: OperationKeys[], format?: string): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
49
+ export declare function uniqueOnCreateUpdate<T extends DBModel, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T): Promise<void>;
50
+ /**
51
+ * @summary Unique Decorator
52
+ * @description Tags a property as unique.
53
+ * No other elements in that table can have the same property value
54
+ *
55
+ * @function unique
56
+ *
57
+ * @memberOf module:wallet-db.Decorators
58
+ */
59
+ export declare function unique(): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
60
+ export declare function serializeOnCreateUpdate<T extends DBModel, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T, oldModel: T): Promise<void>;
61
+ export declare function serializeAfterAll<T extends DBModel, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T): Promise<void>;
62
+ /**
63
+ * @summary Serialize Decorator
64
+ * @description properties decorated will the serialized before stored in the db
65
+ *
66
+ * @function serialize
67
+ *
68
+ * @memberOf module:wallet-db.Decorators
69
+ */
70
+ export declare function serialize(): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -0,0 +1 @@
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&("get"in i?t.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,i)}:function(e,t,r,o){e[o=void 0===o?r:o]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./validators/index.cjs"),exports),__exportStar(require("./constants.cjs"),exports),__exportStar(require("./decorators.cjs"),exports);
@@ -0,0 +1,3 @@
1
+ export * from "./validators";
2
+ export * from "./constants";
3
+ export * from "./decorators";
@@ -0,0 +1 @@
1
+ "use strict";var __decorate=this&&this.__decorate||function(e,t,a,r){var o,d=arguments.length,i=d<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,a):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,a,r);else for(var n=e.length-1;0<=n;n--)(o=e[n])&&(i=(d<3?o(i):3<d?o(t,a,i):o(t,a))||i);return 3<d&&i&&Object.defineProperty(t,a,i),i},__metadata=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ReadOnlyValidator=void 0;const decorator_validation_1=require("@decaf-ts/decorator-validation"),constants_1=require("../constants.cjs"),reflection_1=require("@decaf-ts/reflection");let ReadOnlyValidator=class extends decorator_validation_1.Validator{constructor(){super(constants_1.DEFAULT_ERROR_MESSAGES.READONLY.INVALID)}hasErrors(e){}updateHasErrors(e,t,a){return void 0===e||(0,reflection_1.isEqual)(e,t)?void 0:this.getMessage(a||this.message)}};exports.ReadOnlyValidator=ReadOnlyValidator,exports.ReadOnlyValidator=ReadOnlyValidator=__decorate([(0,decorator_validation_1.validator)(constants_1.UpdateValidationKeys.READONLY),__metadata("design:paramtypes",[])],ReadOnlyValidator);
@@ -0,0 +1,23 @@
1
+ import { Validator } from "@decaf-ts/decorator-validation";
2
+ /**
3
+ * @summary Validator for the {@link readonly} decorator
4
+ *
5
+ * @class ReadOnlyValidator
6
+ * @extends Validator
7
+ *
8
+ * @category Validators
9
+ */
10
+ export declare class ReadOnlyValidator extends Validator {
11
+ constructor();
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ hasErrors(value: any, ...args: any[]): string | undefined;
16
+ /**
17
+ * @summary Validates a value has not changed
18
+ * @param {any} value
19
+ * @param {any} oldValue
20
+ * @param {string} [message] the error message override
21
+ */
22
+ updateHasErrors(value: any, oldValue: any, message?: string): string | undefined;
23
+ }
@@ -0,0 +1 @@
1
+ "use strict";var __decorate=this&&this.__decorate||function(t,e,a,r){var o,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,a):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,r);else for(var d=t.length-1;0<=d;d--)(o=t[d])&&(s=(i<3?o(s):3<i?o(e,a,s):o(e,a))||s);return 3<i&&s&&Object.defineProperty(e,a,s),s},__metadata=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.TimestampValidator=void 0;const decorator_validation_1=require("@decaf-ts/decorator-validation"),constants_1=require("../constants.cjs");let TimestampValidator=class extends decorator_validation_1.Validator{constructor(){super(constants_1.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID)}hasErrors(t){}updateHasErrors(t,e,a){if(void 0!==t){a=a||this.getMessage(a||this.message);try{t=new Date(t),e=new Date(e)}catch(t){return a}return t<=e?a:void 0}}};exports.TimestampValidator=TimestampValidator,exports.TimestampValidator=TimestampValidator=__decorate([(0,decorator_validation_1.validator)(constants_1.UpdateValidationKeys.TIMESTAMP),__metadata("design:paramtypes",[])],TimestampValidator);
@@ -0,0 +1,14 @@
1
+ import { Validator } from "@decaf-ts/decorator-validation";
2
+ /**
3
+ * @summary Validates the update of a timestamp
4
+ *
5
+ * @class TimestampValidator
6
+ * @extends Validator
7
+ *
8
+ * @category Validators
9
+ */
10
+ export declare class TimestampValidator extends Validator {
11
+ constructor();
12
+ hasErrors(value: any, ...args: any[]): string | undefined;
13
+ updateHasErrors(value: Date | string | number, oldValue: Date | string | number, message?: string): string | undefined;
14
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateValidator=void 0;const decorator_validation_1=require("@decaf-ts/decorator-validation");class UpdateValidator extends decorator_validation_1.Validator{constructor(a=decorator_validation_1.DEFAULT_ERROR_MESSAGES.DEFAULT,...t){super(a,...t)}}exports.UpdateValidator=UpdateValidator;
@@ -0,0 +1,23 @@
1
+ import { Validator } from "@decaf-ts/decorator-validation";
2
+ /**
3
+ * @summary Base class for an Update validator
4
+ *
5
+ * @param {string} [message] error message. defaults to {@link DecoratorMessages#DEFAULT}
6
+ * @param {string[]} [acceptedTypes] the accepted value types by the decorator
7
+ *
8
+ * @class UpdateValidator
9
+ * @abstract
10
+ * @extends Validator
11
+ *
12
+ * @category Validators
13
+ */
14
+ export declare abstract class UpdateValidator extends Validator {
15
+ protected constructor(message?: string, ...acceptedTypes: string[]);
16
+ /**
17
+ * @summary validates a value by comparing to its old version
18
+ * @param {any} value
19
+ * @param {any} oldValue
20
+ * @param {any[]} args
21
+ */
22
+ abstract updateHasErrors(value: any, oldValue: any, ...args: any[]): string | undefined;
23
+ }
@@ -0,0 +1 @@
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&("get"in o?t.__esModule:!o.writable&&!o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){e[i=void 0===i?r:i]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./ReadOnlyValidator.cjs"),exports),__exportStar(require("./TimestampValidator.cjs"),exports),__exportStar(require("./UpdateValidator.cjs"),exports);
@@ -0,0 +1,3 @@
1
+ export * from "./ReadOnlyValidator";
2
+ export * from "./TimestampValidator";
3
+ export * from "./UpdateValidator";
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "@decaf-ts/db-decorators",
3
+ "version": "0.1.0",
4
+ "description": "Agnostic database decorators and repository",
5
+ "type": "module",
6
+ "exports": {
7
+ "require": "./lib/index.cjs",
8
+ "import": "./lib/esm/index.js"
9
+ },
10
+ "types": "lib/index.d.ts",
11
+ "scripts": {
12
+ "do-install": "TOKEN=$(cat .token) npm install",
13
+ "update-dependencies": "rimraf node_modules/@decaf-ts package-lock.json && npm run do-install",
14
+ "flash-forward": "npx npm-check-updates -u && npm run do-install",
15
+ "reset": "rm -rf * && git checkout . && git pull && npm run do-install",
16
+ "build": "rimraf ./lib && rimraf ./dist && gulp dev",
17
+ "build:prod": "rimraf ./lib && rimraf ./dist && gulp prod",
18
+ "test": "jest --coverage --testPathPattern=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
19
+ "test:integration": "jest --coverage --testPathPattern=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles",
20
+ "test:all": "jest --coverage --testPathPattern=\"/tests/(unit|integration)\" --passWithNoTests --detectOpenHandles",
21
+ "lint": "eslint .",
22
+ "lint-fix": "eslint . && eslint --fix ./src/*",
23
+ "test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
24
+ "prepare-release": "npm run lint-fix && npm run build:prod && npm run test && npm run docs",
25
+ "release": "./bin/tag-release.sh",
26
+ "clean-publish": "npx clean-publish",
27
+ "coverage": "npm run test:all && jest-coverage-badges --input \"./workdocs/coverage/coverage-summary.json\" --output \"./workdocs/badges\"",
28
+ "docs": "npx rimraf ./docs && mkdir docs && npm run do-install -- better-docs taffydb && gulp docs; npm remove better-docs taffydb"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/decaf-ts/db-decorators.git"
33
+ },
34
+ "engines": {
35
+ "node": ">=20.0.0",
36
+ "npm": ">=10.0.0"
37
+ },
38
+ "files": [
39
+ "lib",
40
+ "dist"
41
+ ],
42
+ "keywords": [
43
+ "CRUD",
44
+ "hooks",
45
+ "create",
46
+ "read",
47
+ "update",
48
+ "delete",
49
+ "database",
50
+ "decorator",
51
+ "validation",
52
+ "model",
53
+ "orm",
54
+ "custom",
55
+ "extensible",
56
+ "lightweight",
57
+ "decaf-ts",
58
+ "javascript",
59
+ "typescript",
60
+ "ts"
61
+ ],
62
+ "author": "Tiago Venceslau",
63
+ "license": "MIT",
64
+ "bugs": {
65
+ "url": "https://github.com/decaf-ts/db-decorators/issues"
66
+ },
67
+ "homepage": "https://github.com/decaf-ts/db-decorators#readme",
68
+ "devDependencies": {
69
+ "@types/jest": "^29.5.12",
70
+ "@typescript-eslint/eslint-plugin": "^7.1.1",
71
+ "clean-publish": "^4.3.0",
72
+ "eslint": "^8.57.0",
73
+ "eslint-config-prettier": "^9.1.0",
74
+ "eslint-plugin-prettier": "^5.1.3",
75
+ "gulp": "^4.0.2",
76
+ "gulp-if": "^3.0.0",
77
+ "gulp-rename": "^2.0.0",
78
+ "gulp-replace": "^1.1.4",
79
+ "gulp-run-command": "^0.0.10",
80
+ "gulp-sourcemaps": "^3.0.0",
81
+ "gulp-typescript": "^6.0.0-alpha.1",
82
+ "gulp-uglify": "^3.0.2",
83
+ "jest": "^29.7.0",
84
+ "jest-coverage-badges": "^1.1.2",
85
+ "jest-junit": "^16.0.0",
86
+ "jsdoc": "^4.0.2",
87
+ "jsdoc-mermaid": "^1.0.0",
88
+ "markdown-include": "^0.4.3",
89
+ "merge-stream": "^2.0.0",
90
+ "nodemon": "^3.1.0",
91
+ "npm-check-updates": "^16.14.15",
92
+ "prettier": "^3.2.5",
93
+ "rimraf": "^5.0.5",
94
+ "ts-jest": "^29.1.2",
95
+ "ts-loader": "^9.5.1",
96
+ "ts-node": "^10.9.2",
97
+ "typescript": "^5.4.2",
98
+ "vinyl-named": "^1.1.0",
99
+ "webpack-stream": "^7.0.0"
100
+ },
101
+ "peerDependencies": {
102
+ "@decaf-ts/decorator-validation": "latest",
103
+ "@decaf-ts/injectable-decorators": "latest",
104
+ "@decaf-ts/reflection": "latest",
105
+ "reflect-metadata": "^0.2.1"
106
+ }
107
+ }