@decaf-ts/core 0.5.0 → 0.5.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.
Files changed (330) hide show
  1. package/LICENSE.md +21 -157
  2. package/README.md +652 -15
  3. package/dist/core.cjs +2638 -1085
  4. package/dist/core.esm.cjs +2636 -1070
  5. package/lib/esm/identity/decorators.d.ts +52 -14
  6. package/lib/esm/identity/decorators.js +54 -16
  7. package/lib/esm/identity/utils.d.ts +20 -1
  8. package/lib/esm/identity/utils.js +22 -2
  9. package/lib/esm/index.d.ts +11 -15
  10. package/lib/esm/index.js +17 -19
  11. package/lib/esm/interfaces/ErrorParser.d.ts +12 -0
  12. package/lib/esm/interfaces/ErrorParser.js +1 -1
  13. package/lib/esm/interfaces/Executor.d.ts +10 -13
  14. package/lib/esm/interfaces/Executor.js +1 -1
  15. package/lib/esm/interfaces/Observable.d.ts +20 -18
  16. package/lib/esm/interfaces/Observable.js +1 -1
  17. package/lib/esm/interfaces/Observer.d.ts +7 -8
  18. package/lib/esm/interfaces/Observer.js +1 -1
  19. package/lib/esm/interfaces/Paginatable.d.ts +18 -2
  20. package/lib/esm/interfaces/Paginatable.js +1 -1
  21. package/lib/esm/interfaces/Queriable.d.ts +44 -3
  22. package/lib/esm/interfaces/Queriable.js +1 -1
  23. package/lib/esm/interfaces/RawExecutor.d.ts +10 -13
  24. package/lib/esm/interfaces/RawExecutor.js +1 -1
  25. package/lib/esm/interfaces/SequenceOptions.d.ts +50 -5
  26. package/lib/esm/interfaces/SequenceOptions.js +19 -1
  27. package/lib/esm/interfaces/index.d.ts +0 -1
  28. package/lib/esm/interfaces/index.js +1 -2
  29. package/lib/esm/model/BaseModel.d.ts +31 -0
  30. package/lib/esm/model/BaseModel.js +24 -1
  31. package/lib/esm/model/construction.d.ts +442 -9
  32. package/lib/esm/model/construction.js +441 -2
  33. package/lib/esm/model/decorators.d.ts +166 -42
  34. package/lib/esm/model/decorators.js +161 -37
  35. package/lib/esm/model/index.js +1 -2
  36. package/lib/esm/model/types.d.ts +9 -0
  37. package/lib/esm/model/types.js +1 -1
  38. package/lib/esm/persistence/Adapter.d.ts +384 -40
  39. package/lib/esm/persistence/Adapter.js +415 -59
  40. package/lib/esm/persistence/Dispatch.d.ts +131 -0
  41. package/lib/esm/persistence/Dispatch.js +187 -0
  42. package/lib/esm/persistence/ObserverHandler.d.ts +109 -0
  43. package/lib/esm/persistence/ObserverHandler.js +137 -0
  44. package/lib/esm/persistence/Sequence.d.ts +89 -8
  45. package/lib/esm/persistence/Sequence.js +91 -1
  46. package/lib/esm/persistence/constants.d.ts +22 -5
  47. package/lib/esm/persistence/constants.js +23 -7
  48. package/lib/esm/persistence/decorators.d.ts +10 -0
  49. package/lib/esm/persistence/decorators.js +11 -1
  50. package/lib/esm/persistence/errors.d.ts +23 -3
  51. package/lib/esm/persistence/errors.js +25 -7
  52. package/lib/esm/persistence/index.d.ts +3 -0
  53. package/lib/esm/persistence/index.js +4 -1
  54. package/lib/esm/persistence/types.d.ts +21 -0
  55. package/lib/esm/persistence/types.js +2 -0
  56. package/lib/esm/query/Condition.d.ts +88 -44
  57. package/lib/esm/query/Condition.js +144 -62
  58. package/lib/esm/query/Paginator.d.ts +67 -10
  59. package/lib/esm/query/Paginator.js +64 -10
  60. package/lib/esm/query/Statement.d.ts +82 -47
  61. package/lib/esm/query/Statement.js +175 -122
  62. package/lib/esm/query/constants.d.ts +25 -64
  63. package/lib/esm/query/constants.js +26 -68
  64. package/lib/esm/query/errors.d.ts +14 -0
  65. package/lib/esm/query/errors.js +15 -1
  66. package/lib/esm/query/index.d.ts +0 -5
  67. package/lib/esm/query/index.js +1 -6
  68. package/lib/esm/query/options.d.ts +69 -178
  69. package/lib/esm/query/options.js +1 -1
  70. package/lib/esm/query/selectors.d.ts +20 -24
  71. package/lib/esm/query/selectors.js +1 -1
  72. package/lib/esm/ram/RamAdapter.d.ts +322 -20
  73. package/lib/esm/ram/RamAdapter.js +360 -140
  74. package/lib/esm/ram/RamContext.d.ts +16 -1
  75. package/lib/esm/ram/RamContext.js +18 -3
  76. package/lib/esm/ram/RamPaginator.d.ts +51 -6
  77. package/lib/esm/ram/RamPaginator.js +58 -6
  78. package/lib/esm/ram/RamSequence.d.ts +49 -24
  79. package/lib/esm/ram/RamSequence.js +52 -40
  80. package/lib/esm/ram/RamStatement.d.ts +84 -6
  81. package/lib/esm/ram/RamStatement.js +175 -6
  82. package/lib/esm/ram/constants.d.ts +9 -0
  83. package/lib/esm/ram/constants.js +10 -0
  84. package/lib/esm/ram/handlers.d.ts +25 -0
  85. package/lib/esm/ram/handlers.js +27 -0
  86. package/lib/esm/ram/index.d.ts +4 -4
  87. package/lib/esm/ram/index.js +9 -5
  88. package/lib/esm/ram/model/RamSequence.d.ts +21 -9
  89. package/lib/esm/ram/model/RamSequence.js +19 -1
  90. package/lib/esm/ram/types.d.ts +47 -5
  91. package/lib/esm/ram/types.js +1 -1
  92. package/lib/esm/repository/Repository.d.ts +381 -22
  93. package/lib/esm/repository/Repository.js +446 -43
  94. package/lib/esm/repository/constants.d.ts +23 -13
  95. package/lib/esm/repository/constants.js +24 -14
  96. package/lib/esm/repository/decorators.d.ts +27 -0
  97. package/lib/esm/repository/decorators.js +28 -1
  98. package/lib/esm/repository/errors.d.ts +12 -11
  99. package/lib/esm/repository/errors.js +13 -16
  100. package/lib/esm/repository/injectables.d.ts +18 -0
  101. package/lib/esm/repository/injectables.js +19 -1
  102. package/lib/esm/repository/types.d.ts +13 -1
  103. package/lib/esm/repository/types.js +1 -1
  104. package/lib/esm/repository/utils.d.ts +11 -0
  105. package/lib/esm/repository/utils.js +12 -1
  106. package/lib/esm/utils/decorators.d.ts +9 -0
  107. package/lib/esm/utils/decorators.js +19 -0
  108. package/lib/esm/utils/errors.d.ts +56 -0
  109. package/lib/esm/utils/errors.js +63 -0
  110. package/lib/esm/utils/index.d.ts +2 -0
  111. package/lib/esm/utils/index.js +3 -0
  112. package/lib/identity/decorators.cjs +54 -16
  113. package/lib/identity/decorators.d.ts +52 -14
  114. package/lib/identity/utils.cjs +22 -2
  115. package/lib/identity/utils.d.ts +20 -1
  116. package/lib/index.cjs +17 -19
  117. package/lib/index.d.ts +11 -15
  118. package/lib/interfaces/ErrorParser.cjs +1 -1
  119. package/lib/interfaces/ErrorParser.d.ts +12 -0
  120. package/lib/interfaces/Executor.cjs +1 -1
  121. package/lib/interfaces/Executor.d.ts +10 -13
  122. package/lib/interfaces/Observable.cjs +1 -1
  123. package/lib/interfaces/Observable.d.ts +20 -18
  124. package/lib/interfaces/Observer.cjs +1 -1
  125. package/lib/interfaces/Observer.d.ts +7 -8
  126. package/lib/interfaces/Paginatable.cjs +1 -1
  127. package/lib/interfaces/Paginatable.d.ts +18 -2
  128. package/lib/interfaces/Queriable.cjs +1 -1
  129. package/lib/interfaces/Queriable.d.ts +44 -3
  130. package/lib/interfaces/RawExecutor.cjs +1 -1
  131. package/lib/interfaces/RawExecutor.d.ts +10 -13
  132. package/lib/interfaces/SequenceOptions.cjs +19 -1
  133. package/lib/interfaces/SequenceOptions.d.ts +50 -5
  134. package/lib/interfaces/index.cjs +1 -2
  135. package/lib/interfaces/index.d.ts +0 -1
  136. package/lib/model/BaseModel.cjs +24 -1
  137. package/lib/model/BaseModel.d.ts +31 -0
  138. package/lib/model/construction.cjs +441 -2
  139. package/lib/model/construction.d.ts +442 -9
  140. package/lib/model/decorators.cjs +161 -37
  141. package/lib/model/decorators.d.ts +166 -42
  142. package/lib/model/index.cjs +1 -2
  143. package/lib/model/types.cjs +1 -1
  144. package/lib/model/types.d.ts +9 -0
  145. package/lib/persistence/Adapter.cjs +414 -58
  146. package/lib/persistence/Adapter.d.ts +384 -40
  147. package/lib/persistence/Dispatch.cjs +191 -0
  148. package/lib/persistence/Dispatch.d.ts +131 -0
  149. package/lib/persistence/ObserverHandler.cjs +141 -0
  150. package/lib/persistence/ObserverHandler.d.ts +109 -0
  151. package/lib/persistence/Sequence.cjs +91 -1
  152. package/lib/persistence/Sequence.d.ts +89 -8
  153. package/lib/persistence/constants.cjs +24 -8
  154. package/lib/persistence/constants.d.ts +22 -5
  155. package/lib/persistence/decorators.cjs +11 -1
  156. package/lib/persistence/decorators.d.ts +10 -0
  157. package/lib/persistence/errors.cjs +26 -9
  158. package/lib/persistence/errors.d.ts +23 -3
  159. package/lib/persistence/index.cjs +4 -1
  160. package/lib/persistence/index.d.ts +3 -0
  161. package/lib/persistence/types.cjs +3 -0
  162. package/lib/persistence/types.d.ts +21 -0
  163. package/lib/query/Condition.cjs +143 -61
  164. package/lib/query/Condition.d.ts +88 -44
  165. package/lib/query/Paginator.cjs +64 -10
  166. package/lib/query/Paginator.d.ts +67 -10
  167. package/lib/query/Statement.cjs +174 -121
  168. package/lib/query/Statement.d.ts +82 -47
  169. package/lib/query/constants.cjs +27 -69
  170. package/lib/query/constants.d.ts +25 -64
  171. package/lib/query/errors.cjs +15 -1
  172. package/lib/query/errors.d.ts +14 -0
  173. package/lib/query/index.cjs +1 -6
  174. package/lib/query/index.d.ts +0 -5
  175. package/lib/query/options.cjs +1 -1
  176. package/lib/query/options.d.ts +69 -178
  177. package/lib/query/selectors.cjs +1 -1
  178. package/lib/query/selectors.d.ts +20 -24
  179. package/lib/ram/RamAdapter.cjs +358 -172
  180. package/lib/ram/RamAdapter.d.ts +322 -20
  181. package/lib/ram/RamContext.cjs +18 -3
  182. package/lib/ram/RamContext.d.ts +16 -1
  183. package/lib/ram/RamPaginator.cjs +58 -6
  184. package/lib/ram/RamPaginator.d.ts +51 -6
  185. package/lib/ram/RamSequence.cjs +52 -41
  186. package/lib/ram/RamSequence.d.ts +49 -24
  187. package/lib/ram/RamStatement.cjs +175 -6
  188. package/lib/ram/RamStatement.d.ts +84 -6
  189. package/lib/ram/constants.cjs +13 -0
  190. package/lib/ram/constants.d.ts +9 -0
  191. package/lib/ram/handlers.cjs +30 -0
  192. package/lib/ram/handlers.d.ts +25 -0
  193. package/lib/ram/index.cjs +9 -5
  194. package/lib/ram/index.d.ts +4 -4
  195. package/lib/ram/model/RamSequence.cjs +19 -1
  196. package/lib/ram/model/RamSequence.d.ts +21 -9
  197. package/lib/ram/types.cjs +1 -1
  198. package/lib/ram/types.d.ts +47 -5
  199. package/lib/repository/Repository.cjs +445 -42
  200. package/lib/repository/Repository.d.ts +381 -22
  201. package/lib/repository/constants.cjs +24 -14
  202. package/lib/repository/constants.d.ts +23 -13
  203. package/lib/repository/decorators.cjs +28 -1
  204. package/lib/repository/decorators.d.ts +27 -0
  205. package/lib/repository/errors.cjs +14 -19
  206. package/lib/repository/errors.d.ts +12 -11
  207. package/lib/repository/injectables.cjs +19 -1
  208. package/lib/repository/injectables.d.ts +18 -0
  209. package/lib/repository/types.cjs +1 -1
  210. package/lib/repository/types.d.ts +13 -1
  211. package/lib/repository/utils.cjs +12 -1
  212. package/lib/repository/utils.d.ts +11 -0
  213. package/lib/utils/decorators.cjs +22 -0
  214. package/lib/utils/decorators.d.ts +9 -0
  215. package/lib/utils/errors.cjs +69 -0
  216. package/lib/utils/errors.d.ts +56 -0
  217. package/lib/{validators → utils}/index.cjs +2 -2
  218. package/lib/utils/index.d.ts +2 -0
  219. package/package.json +5 -5
  220. package/lib/esm/interfaces/Builder.d.ts +0 -16
  221. package/lib/esm/interfaces/Builder.js +0 -2
  222. package/lib/esm/model/IdentifiedBaseModel.d.ts +0 -7
  223. package/lib/esm/model/IdentifiedBaseModel.js +0 -25
  224. package/lib/esm/query/Clause.d.ts +0 -50
  225. package/lib/esm/query/Clause.js +0 -82
  226. package/lib/esm/query/ClauseFactory.d.ts +0 -71
  227. package/lib/esm/query/ClauseFactory.js +0 -6
  228. package/lib/esm/query/Query.d.ts +0 -43
  229. package/lib/esm/query/Query.js +0 -54
  230. package/lib/esm/query/clauses/FromClause.d.ts +0 -45
  231. package/lib/esm/query/clauses/FromClause.js +0 -59
  232. package/lib/esm/query/clauses/GroupByClause.d.ts +0 -21
  233. package/lib/esm/query/clauses/GroupByClause.js +0 -19
  234. package/lib/esm/query/clauses/InsertClause.d.ts +0 -37
  235. package/lib/esm/query/clauses/InsertClause.js +0 -55
  236. package/lib/esm/query/clauses/LimitClause.d.ts +0 -29
  237. package/lib/esm/query/clauses/LimitClause.js +0 -27
  238. package/lib/esm/query/clauses/OffsetClause.d.ts +0 -21
  239. package/lib/esm/query/clauses/OffsetClause.js +0 -19
  240. package/lib/esm/query/clauses/OrderByClause.d.ts +0 -37
  241. package/lib/esm/query/clauses/OrderByClause.js +0 -39
  242. package/lib/esm/query/clauses/SelectClause.d.ts +0 -47
  243. package/lib/esm/query/clauses/SelectClause.js +0 -62
  244. package/lib/esm/query/clauses/SelectorBasedClause.d.ts +0 -25
  245. package/lib/esm/query/clauses/SelectorBasedClause.js +0 -44
  246. package/lib/esm/query/clauses/ValuesClause.d.ts +0 -21
  247. package/lib/esm/query/clauses/ValuesClause.js +0 -36
  248. package/lib/esm/query/clauses/WhereClause.d.ts +0 -46
  249. package/lib/esm/query/clauses/WhereClause.js +0 -71
  250. package/lib/esm/query/clauses/index.d.ts +0 -10
  251. package/lib/esm/query/clauses/index.js +0 -11
  252. package/lib/esm/query/types.d.ts +0 -2
  253. package/lib/esm/query/types.js +0 -2
  254. package/lib/esm/ram/RamClauseFactory.d.ts +0 -17
  255. package/lib/esm/ram/RamClauseFactory.js +0 -92
  256. package/lib/esm/ram/clauses/FromClause.d.ts +0 -7
  257. package/lib/esm/ram/clauses/FromClause.js +0 -11
  258. package/lib/esm/ram/clauses/InsertClause.d.ts +0 -7
  259. package/lib/esm/ram/clauses/InsertClause.js +0 -13
  260. package/lib/esm/ram/clauses/OrderByClause.d.ts +0 -7
  261. package/lib/esm/ram/clauses/OrderByClause.js +0 -39
  262. package/lib/esm/ram/clauses/SelectClause.d.ts +0 -7
  263. package/lib/esm/ram/clauses/SelectClause.js +0 -16
  264. package/lib/esm/ram/clauses/ValuesClause.d.ts +0 -7
  265. package/lib/esm/ram/clauses/ValuesClause.js +0 -12
  266. package/lib/esm/ram/clauses/WhereClause.d.ts +0 -7
  267. package/lib/esm/ram/clauses/WhereClause.js +0 -11
  268. package/lib/esm/ram/clauses/index.d.ts +0 -6
  269. package/lib/esm/ram/clauses/index.js +0 -7
  270. package/lib/esm/validators/ClauseSequenceValidator.d.ts +0 -28
  271. package/lib/esm/validators/ClauseSequenceValidator.js +0 -95
  272. package/lib/esm/validators/decorators.d.ts +0 -10
  273. package/lib/esm/validators/decorators.js +0 -24
  274. package/lib/esm/validators/index.d.ts +0 -2
  275. package/lib/esm/validators/index.js +0 -3
  276. package/lib/interfaces/Builder.cjs +0 -3
  277. package/lib/interfaces/Builder.d.ts +0 -16
  278. package/lib/model/IdentifiedBaseModel.cjs +0 -29
  279. package/lib/model/IdentifiedBaseModel.d.ts +0 -7
  280. package/lib/query/Clause.cjs +0 -86
  281. package/lib/query/Clause.d.ts +0 -50
  282. package/lib/query/ClauseFactory.cjs +0 -10
  283. package/lib/query/ClauseFactory.d.ts +0 -71
  284. package/lib/query/Query.cjs +0 -58
  285. package/lib/query/Query.d.ts +0 -43
  286. package/lib/query/clauses/FromClause.cjs +0 -63
  287. package/lib/query/clauses/FromClause.d.ts +0 -45
  288. package/lib/query/clauses/GroupByClause.cjs +0 -23
  289. package/lib/query/clauses/GroupByClause.d.ts +0 -21
  290. package/lib/query/clauses/InsertClause.cjs +0 -59
  291. package/lib/query/clauses/InsertClause.d.ts +0 -37
  292. package/lib/query/clauses/LimitClause.cjs +0 -31
  293. package/lib/query/clauses/LimitClause.d.ts +0 -29
  294. package/lib/query/clauses/OffsetClause.cjs +0 -23
  295. package/lib/query/clauses/OffsetClause.d.ts +0 -21
  296. package/lib/query/clauses/OrderByClause.cjs +0 -43
  297. package/lib/query/clauses/OrderByClause.d.ts +0 -37
  298. package/lib/query/clauses/SelectClause.cjs +0 -66
  299. package/lib/query/clauses/SelectClause.d.ts +0 -47
  300. package/lib/query/clauses/SelectorBasedClause.cjs +0 -48
  301. package/lib/query/clauses/SelectorBasedClause.d.ts +0 -25
  302. package/lib/query/clauses/ValuesClause.cjs +0 -40
  303. package/lib/query/clauses/ValuesClause.d.ts +0 -21
  304. package/lib/query/clauses/WhereClause.cjs +0 -75
  305. package/lib/query/clauses/WhereClause.d.ts +0 -46
  306. package/lib/query/clauses/index.cjs +0 -27
  307. package/lib/query/clauses/index.d.ts +0 -10
  308. package/lib/query/types.cjs +0 -3
  309. package/lib/query/types.d.ts +0 -2
  310. package/lib/ram/RamClauseFactory.cjs +0 -96
  311. package/lib/ram/RamClauseFactory.d.ts +0 -17
  312. package/lib/ram/clauses/FromClause.cjs +0 -15
  313. package/lib/ram/clauses/FromClause.d.ts +0 -7
  314. package/lib/ram/clauses/InsertClause.cjs +0 -17
  315. package/lib/ram/clauses/InsertClause.d.ts +0 -7
  316. package/lib/ram/clauses/OrderByClause.cjs +0 -43
  317. package/lib/ram/clauses/OrderByClause.d.ts +0 -7
  318. package/lib/ram/clauses/SelectClause.cjs +0 -20
  319. package/lib/ram/clauses/SelectClause.d.ts +0 -7
  320. package/lib/ram/clauses/ValuesClause.cjs +0 -16
  321. package/lib/ram/clauses/ValuesClause.d.ts +0 -7
  322. package/lib/ram/clauses/WhereClause.cjs +0 -15
  323. package/lib/ram/clauses/WhereClause.d.ts +0 -7
  324. package/lib/ram/clauses/index.cjs +0 -23
  325. package/lib/ram/clauses/index.d.ts +0 -6
  326. package/lib/validators/ClauseSequenceValidator.cjs +0 -98
  327. package/lib/validators/ClauseSequenceValidator.d.ts +0 -28
  328. package/lib/validators/decorators.cjs +0 -27
  329. package/lib/validators/decorators.d.ts +0 -10
  330. package/lib/validators/index.d.ts +0 -2
@@ -1,14 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ForbiddenError = exports.AuthorizationError = exports.ObserverError = void 0;
3
+ exports.ObserverError = void 0;
4
4
  const db_decorators_1 = require("@decaf-ts/db-decorators");
5
5
  /**
6
- * @summary Represents a failure in observer communication
7
- *
8
- * @param {string} msg the error message
9
- *
6
+ * @description Error thrown when observer communication fails.
7
+ * @summary Represents a failure in observer communication between repositories.
8
+ * @param {string|Error} msg - The error message or Error object.
10
9
  * @class ObserverError
11
- * @extends BaseError
10
+ * @category Errors
11
+ * @example
12
+ * try {
13
+ * // Some repository observer operation
14
+ * } catch (error) {
15
+ * if (error instanceof ObserverError) {
16
+ * console.error('Observer communication failed:', error.message);
17
+ * }
18
+ * }
12
19
  */
13
20
  class ObserverError extends db_decorators_1.BaseError {
14
21
  constructor(msg) {
@@ -16,16 +23,4 @@ class ObserverError extends db_decorators_1.BaseError {
16
23
  }
17
24
  }
18
25
  exports.ObserverError = ObserverError;
19
- class AuthorizationError extends db_decorators_1.BaseError {
20
- constructor(msg) {
21
- super(AuthorizationError.name, msg, 401);
22
- }
23
- }
24
- exports.AuthorizationError = AuthorizationError;
25
- class ForbiddenError extends db_decorators_1.BaseError {
26
- constructor(msg) {
27
- super(ForbiddenError.name, msg, 403);
28
- }
29
- }
30
- exports.ForbiddenError = ForbiddenError;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcG9zaXRvcnkvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUFvRDtBQUVwRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxhQUFjLFNBQVEseUJBQVM7SUFDMUMsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBSkQsc0NBSUM7QUFFRCxNQUFhLGtCQUFtQixTQUFRLHlCQUFTO0lBQy9DLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBSkQsZ0RBSUM7QUFFRCxNQUFhLGNBQWUsU0FBUSx5QkFBUztJQUMzQyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFKRCx3Q0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBmYWlsdXJlIGluIG9ic2VydmVyIGNvbW11bmljYXRpb25cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIE9ic2VydmVyRXJyb3JcbiAqIEBleHRlbmRzIEJhc2VFcnJvclxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZXJFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihPYnNlcnZlckVycm9yLm5hbWUsIG1zZywgNTAwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXV0aG9yaXphdGlvbkVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKEF1dGhvcml6YXRpb25FcnJvci5uYW1lLCBtc2csIDQwMSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcmJpZGRlbkVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKEZvcmJpZGRlbkVycm9yLm5hbWUsIG1zZywgNDAzKTtcbiAgfVxufVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcG9zaXRvcnkvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUFvRDtBQUVwRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEsYUFBYyxTQUFRLHlCQUFTO0lBQzFDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQUpELHNDQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVycm9yIHRocm93biB3aGVuIG9ic2VydmVyIGNvbW11bmljYXRpb24gZmFpbHMuXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgZmFpbHVyZSBpbiBvYnNlcnZlciBjb21tdW5pY2F0aW9uIGJldHdlZW4gcmVwb3NpdG9yaWVzLlxuICogQHBhcmFtIHtzdHJpbmd8RXJyb3J9IG1zZyAtIFRoZSBlcnJvciBtZXNzYWdlIG9yIEVycm9yIG9iamVjdC5cbiAqIEBjbGFzcyBPYnNlcnZlckVycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKiBAZXhhbXBsZVxuICogdHJ5IHtcbiAqICAgLy8gU29tZSByZXBvc2l0b3J5IG9ic2VydmVyIG9wZXJhdGlvblxuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgaWYgKGVycm9yIGluc3RhbmNlb2YgT2JzZXJ2ZXJFcnJvcikge1xuICogICAgIGNvbnNvbGUuZXJyb3IoJ09ic2VydmVyIGNvbW11bmljYXRpb24gZmFpbGVkOicsIGVycm9yLm1lc3NhZ2UpO1xuICogICB9XG4gKiB9XG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZlckVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKE9ic2VydmVyRXJyb3IubmFtZSwgbXNnLCA1MDApO1xuICB9XG59XG4iXX0=
@@ -1,18 +1,19 @@
1
1
  import { BaseError } from "@decaf-ts/db-decorators";
2
2
  /**
3
- * @summary Represents a failure in observer communication
4
- *
5
- * @param {string} msg the error message
6
- *
3
+ * @description Error thrown when observer communication fails.
4
+ * @summary Represents a failure in observer communication between repositories.
5
+ * @param {string|Error} msg - The error message or Error object.
7
6
  * @class ObserverError
8
- * @extends BaseError
7
+ * @category Errors
8
+ * @example
9
+ * try {
10
+ * // Some repository observer operation
11
+ * } catch (error) {
12
+ * if (error instanceof ObserverError) {
13
+ * console.error('Observer communication failed:', error.message);
14
+ * }
15
+ * }
9
16
  */
10
17
  export declare class ObserverError extends BaseError {
11
18
  constructor(msg: string | Error);
12
19
  }
13
- export declare class AuthorizationError extends BaseError {
14
- constructor(msg: string | Error);
15
- }
16
- export declare class ForbiddenError extends BaseError {
17
- constructor(msg: string | Error);
18
- }
@@ -7,10 +7,28 @@ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
7
7
  const utils_1 = require("./utils.cjs");
8
8
  const constants_1 = require("./../persistence/constants.cjs");
9
9
  const Adapter_1 = require("./../persistence/Adapter.cjs");
10
+ /**
11
+ * @description Registry for injectable repositories.
12
+ * @summary Extends the base injectable registry to provide automatic repository resolution for models.
13
+ * @param {void} - No constructor parameters required.
14
+ * @class InjectablesRegistry
15
+ * @example
16
+ * const registry = new InjectablesRegistry();
17
+ * const userRepo = registry.get<UserRepository>('User');
18
+ * // If UserRepository exists, it will be returned
19
+ * // If not, but User model exists, a repository will be created for it
20
+ */
10
21
  class InjectablesRegistry extends injectable_decorators_1.InjectableRegistryImp {
11
22
  constructor() {
12
23
  super();
13
24
  }
25
+ /**
26
+ * @description Gets an injectable by name with repository auto-resolution.
27
+ * @summary Extends the base get method to automatically resolve repositories for models when not found directly.
28
+ * @template T - The type of injectable to return.
29
+ * @param {string} name - The name of the injectable to retrieve.
30
+ * @return {T | undefined} - The injectable instance or undefined if not found.
31
+ */
14
32
  get(name) {
15
33
  let injectable = super.get(name);
16
34
  if (!injectable)
@@ -34,4 +52,4 @@ class InjectablesRegistry extends injectable_decorators_1.InjectableRegistryImp
34
52
  }
35
53
  }
36
54
  exports.InjectablesRegistry = InjectablesRegistry;
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9pbmplY3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyRUFHeUM7QUFDekMsaURBQTBDO0FBQzFDLHlFQUF5RTtBQUN6RSx1Q0FBOEQ7QUFDOUQsOERBQTJEO0FBQzNELDBEQUFpRDtBQUVqRCxNQUFhLG1CQUFvQixTQUFRLDZDQUFxQjtJQUM1RDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELEdBQUcsQ0FBSSxJQUFZO1FBQ2pCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVU7WUFDYixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLEdBQUcsNEJBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQztvQkFBRSxVQUFVLEdBQUcsdUJBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsSUFBSSxVQUFVLFlBQVksdUJBQVU7d0JBQUUsT0FBTyxVQUFlLENBQUM7b0JBQzdELE1BQU0sT0FBTyxHQUNYLE9BQU8sQ0FBQyxXQUFXLENBQ2pCLGlCQUFPLENBQUMsR0FBRyxDQUFDLDJCQUFlLENBQUMsT0FBTyxDQUFDLEVBQ3BDLFVBQVUsQ0FBQyxXQUFXLENBQ3ZCO3dCQUNELE9BQU8sQ0FBQyxXQUFXLENBQ2pCLGlCQUFPLENBQUMsR0FBRyxDQUFDLDJCQUFlLENBQUMsT0FBTyxDQUFDLEVBQ3BDLENBQTBCLENBQzNCLENBQUM7b0JBQ0osbUNBQVcsQ0FBQyxRQUFRLENBQ2xCLFVBQVUsRUFDVixJQUFBLDJDQUFtQyxFQUNqQyxDQUEwQixFQUMxQixPQUFPLENBQ1IsQ0FDRixDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsNkRBQTZEO1lBQy9ELENBQUM7WUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO2dCQUNoQixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsT0FBTyxVQUEyQixDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQXBDRCxrREFvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlUmVnaXN0cnlJbXAsXG4gIEluamVjdGFibGVzLFxufSBmcm9tIFwiQGRlY2FmLXRzL2luamVjdGFibGUtZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuL1JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IE1vZGVsLCBNb2RlbENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbmplY3RhYmxlTmFtZUZvclJlcG9zaXRvcnkgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgUGVyc2lzdGVuY2VLZXlzIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9BZGFwdGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBJbmplY3RhYmxlc1JlZ2lzdHJ5IGV4dGVuZHMgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldDxUPihuYW1lOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgaW5qZWN0YWJsZSA9IHN1cGVyLmdldChuYW1lKTtcbiAgICBpZiAoIWluamVjdGFibGUpXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBtID0gTW9kZWwuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAobSkgaW5qZWN0YWJsZSA9IFJlcG9zaXRvcnkuZm9yTW9kZWwobSk7XG4gICAgICAgIGlmIChpbmplY3RhYmxlKSB7XG4gICAgICAgICAgaWYgKGluamVjdGFibGUgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KSByZXR1cm4gaW5qZWN0YWJsZSBhcyBUO1xuICAgICAgICAgIGNvbnN0IGZsYXZvdXIgPVxuICAgICAgICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgICAgICAgICAgQWRhcHRlci5rZXkoUGVyc2lzdGVuY2VLZXlzLkFEQVBURVIpLFxuICAgICAgICAgICAgICBpbmplY3RhYmxlLmNvbnN0cnVjdG9yXG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgICAgICAgICBBZGFwdGVyLmtleShQZXJzaXN0ZW5jZUtleXMuQURBUFRFUiksXG4gICAgICAgICAgICAgIG0gYXMgTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIEluamVjdGFibGVzLnJlZ2lzdGVyKFxuICAgICAgICAgICAgaW5qZWN0YWJsZSxcbiAgICAgICAgICAgIGdlbmVyYXRlSW5qZWN0YWJsZU5hbWVGb3JSZXBvc2l0b3J5KFxuICAgICAgICAgICAgICBtIGFzIE1vZGVsQ29uc3RydWN0b3I8YW55PixcbiAgICAgICAgICAgICAgZmxhdm91clxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgcmV0dXJuIGluamVjdGFibGUgYXMgVCB8IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9pbmplY3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyRUFHeUM7QUFDekMsaURBQTBDO0FBQzFDLHlFQUF5RTtBQUN6RSx1Q0FBOEQ7QUFDOUQsOERBQTJEO0FBQzNELDBEQUFpRDtBQUVqRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSw2Q0FBcUI7SUFDNUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTSxHQUFHLENBQUksSUFBWTtRQUMxQixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVO1lBQ2IsSUFBSSxDQUFDO2dCQUNILE1BQU0sQ0FBQyxHQUFHLDRCQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUM7b0JBQUUsVUFBVSxHQUFHLHVCQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNmLElBQUksVUFBVSxZQUFZLHVCQUFVO3dCQUFFLE9BQU8sVUFBZSxDQUFDO29CQUM3RCxNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsV0FBVyxDQUNqQixpQkFBTyxDQUFDLEdBQUcsQ0FBQywyQkFBZSxDQUFDLE9BQU8sQ0FBQyxFQUNwQyxVQUFVLENBQUMsV0FBVyxDQUN2Qjt3QkFDRCxPQUFPLENBQUMsV0FBVyxDQUNqQixpQkFBTyxDQUFDLEdBQUcsQ0FBQywyQkFBZSxDQUFDLE9BQU8sQ0FBQyxFQUNwQyxDQUEwQixDQUMzQixDQUFDO29CQUNKLG1DQUFXLENBQUMsUUFBUSxDQUNsQixVQUFVLEVBQ1YsSUFBQSwyQ0FBbUMsRUFDakMsQ0FBMEIsRUFDMUIsT0FBTyxDQUNSLENBQ0YsQ0FBQztnQkFDSixDQUFDO2dCQUNELDZEQUE2RDtZQUMvRCxDQUFDO1lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILE9BQU8sVUFBMkIsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUEzQ0Qsa0RBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wLFxuICBJbmplY3RhYmxlcyxcbn0gZnJvbSBcIkBkZWNhZi10cy9pbmplY3RhYmxlLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9SZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBNb2RlbCwgTW9kZWxDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGdlbmVyYXRlSW5qZWN0YWJsZU5hbWVGb3JSZXBvc2l0b3J5IH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IFBlcnNpc3RlbmNlS2V5cyB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvQWRhcHRlclwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RyeSBmb3IgaW5qZWN0YWJsZSByZXBvc2l0b3JpZXMuXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBiYXNlIGluamVjdGFibGUgcmVnaXN0cnkgdG8gcHJvdmlkZSBhdXRvbWF0aWMgcmVwb3NpdG9yeSByZXNvbHV0aW9uIGZvciBtb2RlbHMuXG4gKiBAcGFyYW0ge3ZvaWR9IC0gTm8gY29uc3RydWN0b3IgcGFyYW1ldGVycyByZXF1aXJlZC5cbiAqIEBjbGFzcyBJbmplY3RhYmxlc1JlZ2lzdHJ5XG4gKiBAZXhhbXBsZVxuICogY29uc3QgcmVnaXN0cnkgPSBuZXcgSW5qZWN0YWJsZXNSZWdpc3RyeSgpO1xuICogY29uc3QgdXNlclJlcG8gPSByZWdpc3RyeS5nZXQ8VXNlclJlcG9zaXRvcnk+KCdVc2VyJyk7XG4gKiAvLyBJZiBVc2VyUmVwb3NpdG9yeSBleGlzdHMsIGl0IHdpbGwgYmUgcmV0dXJuZWRcbiAqIC8vIElmIG5vdCwgYnV0IFVzZXIgbW9kZWwgZXhpc3RzLCBhIHJlcG9zaXRvcnkgd2lsbCBiZSBjcmVhdGVkIGZvciBpdFxuICovXG5leHBvcnQgY2xhc3MgSW5qZWN0YWJsZXNSZWdpc3RyeSBleHRlbmRzIEluamVjdGFibGVSZWdpc3RyeUltcCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYW4gaW5qZWN0YWJsZSBieSBuYW1lIHdpdGggcmVwb3NpdG9yeSBhdXRvLXJlc29sdXRpb24uXG4gICAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIGJhc2UgZ2V0IG1ldGhvZCB0byBhdXRvbWF0aWNhbGx5IHJlc29sdmUgcmVwb3NpdG9yaWVzIGZvciBtb2RlbHMgd2hlbiBub3QgZm91bmQgZGlyZWN0bHkuXG4gICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgaW5qZWN0YWJsZSB0byByZXR1cm4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGluamVjdGFibGUgdG8gcmV0cmlldmUuXG4gICAqIEByZXR1cm4ge1QgfCB1bmRlZmluZWR9IC0gVGhlIGluamVjdGFibGUgaW5zdGFuY2Ugb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZC5cbiAgICovXG4gIG92ZXJyaWRlIGdldDxUPihuYW1lOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgaW5qZWN0YWJsZSA9IHN1cGVyLmdldChuYW1lKTtcbiAgICBpZiAoIWluamVjdGFibGUpXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBtID0gTW9kZWwuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAobSkgaW5qZWN0YWJsZSA9IFJlcG9zaXRvcnkuZm9yTW9kZWwobSk7XG4gICAgICAgIGlmIChpbmplY3RhYmxlKSB7XG4gICAgICAgICAgaWYgKGluamVjdGFibGUgaW5zdGFuY2VvZiBSZXBvc2l0b3J5KSByZXR1cm4gaW5qZWN0YWJsZSBhcyBUO1xuICAgICAgICAgIGNvbnN0IGZsYXZvdXIgPVxuICAgICAgICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgICAgICAgICAgQWRhcHRlci5rZXkoUGVyc2lzdGVuY2VLZXlzLkFEQVBURVIpLFxuICAgICAgICAgICAgICBpbmplY3RhYmxlLmNvbnN0cnVjdG9yXG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgICAgICAgICBBZGFwdGVyLmtleShQZXJzaXN0ZW5jZUtleXMuQURBUFRFUiksXG4gICAgICAgICAgICAgIG0gYXMgTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIEluamVjdGFibGVzLnJlZ2lzdGVyKFxuICAgICAgICAgICAgaW5qZWN0YWJsZSxcbiAgICAgICAgICAgIGdlbmVyYXRlSW5qZWN0YWJsZU5hbWVGb3JSZXBvc2l0b3J5KFxuICAgICAgICAgICAgICBtIGFzIE1vZGVsQ29uc3RydWN0b3I8YW55PixcbiAgICAgICAgICAgICAgZmxhdm91clxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgcmV0dXJuIGluamVjdGFibGUgYXMgVCB8IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -1,5 +1,23 @@
1
1
  import { InjectableRegistryImp } from "@decaf-ts/injectable-decorators";
2
+ /**
3
+ * @description Registry for injectable repositories.
4
+ * @summary Extends the base injectable registry to provide automatic repository resolution for models.
5
+ * @param {void} - No constructor parameters required.
6
+ * @class InjectablesRegistry
7
+ * @example
8
+ * const registry = new InjectablesRegistry();
9
+ * const userRepo = registry.get<UserRepository>('User');
10
+ * // If UserRepository exists, it will be returned
11
+ * // If not, but User model exists, a repository will be created for it
12
+ */
2
13
  export declare class InjectablesRegistry extends InjectableRegistryImp {
3
14
  constructor();
15
+ /**
16
+ * @description Gets an injectable by name with repository auto-resolution.
17
+ * @summary Extends the base get method to automatically resolve repositories for models when not found directly.
18
+ * @template T - The type of injectable to return.
19
+ * @param {string} name - The name of the injectable to retrieve.
20
+ * @return {T | undefined} - The injectable instance or undefined if not found.
21
+ */
4
22
  get<T>(name: string): T | undefined;
5
23
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FzY2FkZSwgT3JkZXJEaXJlY3Rpb24gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBkZWZpbmVzIHRoZSBjYXNjYWRpbmcgYmVoYXZpb3VyXG4gKi9cbmV4cG9ydCB0eXBlIENhc2NhZGVNZXRhZGF0YSA9IHtcbiAgdXBkYXRlOiBDYXNjYWRlO1xuICBkZWxldGU6IENhc2NhZGU7XG59O1xuXG5leHBvcnQgdHlwZSBJbmRleE1ldGFkYXRhID0ge1xuICBkaXJlY3Rpb25zPzogT3JkZXJEaXJlY3Rpb25bMl07XG4gIGNvbXBvc2l0aW9ucz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgTmFtZWRJbmRleE1ldGFkYXRhID0gSW5kZXhNZXRhZGF0YSAmIHtcbiAgc3VmZml4OiBzdHJpbmc7XG59O1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FzY2FkZSwgT3JkZXJEaXJlY3Rpb24gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWV0YWRhdGEgZm9yIGNhc2NhZGUgb3BlcmF0aW9ucyBvbiByZWxhdGVkIGVudGl0aWVzLlxuICogQHN1bW1hcnkgRGVmaW5lcyBob3cgdXBkYXRlIGFuZCBkZWxldGUgb3BlcmF0aW9ucyBzaG91bGQgY2FzY2FkZSB0byByZWxhdGVkIGVudGl0aWVzLlxuICogQHR5cGVkZWYgQ2FzY2FkZU1ldGFkYXRhXG4gKiBAcHJvcGVydHkge0Nhc2NhZGV9IHVwZGF0ZSAtIERldGVybWluZXMgY2FzY2FkZSBiZWhhdmlvciBmb3IgdXBkYXRlIG9wZXJhdGlvbnMuXG4gKiBAcHJvcGVydHkge0Nhc2NhZGV9IGRlbGV0ZSAtIERldGVybWluZXMgY2FzY2FkZSBiZWhhdmlvciBmb3IgZGVsZXRlIG9wZXJhdGlvbnMuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IHR5cGUgQ2FzY2FkZU1ldGFkYXRhID0ge1xuICB1cGRhdGU6IENhc2NhZGU7XG4gIGRlbGV0ZTogQ2FzY2FkZTtcbn07XG5cbmV4cG9ydCB0eXBlIEluZGV4TWV0YWRhdGEgPSB7XG4gIGRpcmVjdGlvbnM/OiBPcmRlckRpcmVjdGlvblsyXTtcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW107XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRhZGF0YSBmb3IgYSBuYW1lZCBpbmRleCB0aGF0IGV4dGVuZHMgSW5kZXhNZXRhZGF0YS5cbiAqIEBzdW1tYXJ5IEV4dGVuZHMgSW5kZXhNZXRhZGF0YSB3aXRoIGEgc3VmZml4IHRvIGlkZW50aWZ5IHRoZSBpbmRleC5cbiAqIEB0eXBlZGVmIE5hbWVkSW5kZXhNZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHN1ZmZpeCAtIFRoZSBzdWZmaXggdG8gYXBwZW5kIHRvIHRoZSBpbmRleCBuYW1lLlxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCB0eXBlIE5hbWVkSW5kZXhNZXRhZGF0YSA9IEluZGV4TWV0YWRhdGEgJiB7XG4gIHN1ZmZpeDogc3RyaW5nO1xufTtcbiJdfQ==
@@ -1,6 +1,11 @@
1
1
  import { Cascade, OrderDirection } from "./constants";
2
2
  /**
3
- * @summary defines the cascading behaviour
3
+ * @description Metadata for cascade operations on related entities.
4
+ * @summary Defines how update and delete operations should cascade to related entities.
5
+ * @typedef CascadeMetadata
6
+ * @property {Cascade} update - Determines cascade behavior for update operations.
7
+ * @property {Cascade} delete - Determines cascade behavior for delete operations.
8
+ * @memberOf module:core
4
9
  */
5
10
  export type CascadeMetadata = {
6
11
  update: Cascade;
@@ -10,6 +15,13 @@ export type IndexMetadata = {
10
15
  directions?: OrderDirection[2];
11
16
  compositions?: string[];
12
17
  };
18
+ /**
19
+ * @description Metadata for a named index that extends IndexMetadata.
20
+ * @summary Extends IndexMetadata with a suffix to identify the index.
21
+ * @typedef NamedIndexMetadata
22
+ * @property {string} suffix - The suffix to append to the index name.
23
+ * @memberOf module:core
24
+ */
13
25
  export type NamedIndexMetadata = IndexMetadata & {
14
26
  suffix: string;
15
27
  };
@@ -7,6 +7,17 @@ const Adapter_1 = require("./../persistence/Adapter.cjs");
7
7
  const constants_1 = require("./../persistence/constants.cjs");
8
8
  const decorator_validation_2 = require("@decaf-ts/decorator-validation");
9
9
  const Repository_1 = require("./Repository.cjs");
10
+ /**
11
+ * @description Generates a unique injectable name for a repository.
12
+ * @summary Creates a standardized name for repository injectables based on model and adapter flavour.
13
+ * @template T - The model type that extends Model.
14
+ * @param {Constructor<T> | T} model - The model constructor or instance.
15
+ * @param {string} [flavour] - Optional adapter flavour. If not provided, it will be retrieved from the model metadata.
16
+ * @return {string} The generated injectable name.
17
+ * @throws {InternalError} If no flavour is provided and none can be retrieved from the model.
18
+ * @function generateInjectableNameForRepository
19
+ * @memberOf module:core
20
+ */
10
21
  function generateInjectableNameForRepository(model, flavour) {
11
22
  if (!flavour) {
12
23
  const key = Adapter_1.Adapter.key(constants_1.PersistenceKeys.ADAPTER);
@@ -16,4 +27,4 @@ function generateInjectableNameForRepository(model, flavour) {
16
27
  }
17
28
  return (0, decorator_validation_1.sf)(constants_1.PersistenceKeys.INJECTABLE, flavour, Repository_1.Repository.table(model));
18
29
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLGtGQWdCQztBQXZCRCwyREFBd0Q7QUFDeEQseUVBQWlFO0FBQ2pFLDBEQUFpRDtBQUNqRCw4REFBMkQ7QUFDM0QseUVBQXVEO0FBQ3ZELGlEQUEwQztBQUUxQyxTQUFnQixtQ0FBbUMsQ0FDakQsS0FBeUIsRUFDekIsT0FBZ0I7SUFFaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxHQUFHLEdBQUcsaUJBQU8sQ0FBQyxHQUFHLENBQUMsMkJBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FDM0IsR0FBRyxFQUNILEtBQUssWUFBWSw0QkFBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsT0FBTztZQUNWLE1BQU0sSUFBSSw2QkFBYSxDQUNyQix5Q0FBeUMsS0FBSyxZQUFZLDRCQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQ3hHLENBQUM7SUFDTixDQUFDO0lBQ0QsT0FBTyxJQUFBLHlCQUFFLEVBQUMsMkJBQWUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLHVCQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBzZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvQWRhcHRlclwiO1xuaW1wb3J0IHsgUGVyc2lzdGVuY2VLZXlzIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4vUmVwb3NpdG9yeVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmplY3RhYmxlTmFtZUZvclJlcG9zaXRvcnk8VCBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPFQ+IHwgVCxcbiAgZmxhdm91cj86IHN0cmluZ1xuKSB7XG4gIGlmICghZmxhdm91cikge1xuICAgIGNvbnN0IGtleSA9IEFkYXB0ZXIua2V5KFBlcnNpc3RlbmNlS2V5cy5BREFQVEVSKTtcbiAgICBmbGF2b3VyID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgIGtleSxcbiAgICAgIG1vZGVsIGluc3RhbmNlb2YgTW9kZWwgPyBtb2RlbC5jb25zdHJ1Y3RvciA6IG1vZGVsXG4gICAgKTtcbiAgICBpZiAoIWZsYXZvdXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCByZXRyaWV2ZSBmbGF2b3VyIGZyb20gbW9kZWwgJHttb2RlbCBpbnN0YW5jZW9mIE1vZGVsID8gbW9kZWwuY29uc3RydWN0b3IubmFtZSA6IG1vZGVsLm5hbWV9YFxuICAgICAgKTtcbiAgfVxuICByZXR1cm4gc2YoUGVyc2lzdGVuY2VLZXlzLklOSkVDVEFCTEUsIGZsYXZvdXIsIFJlcG9zaXRvcnkudGFibGUobW9kZWwpKTtcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxrRkFnQkM7QUFsQ0QsMkRBQXdEO0FBQ3hELHlFQUFpRTtBQUNqRSwwREFBaUQ7QUFDakQsOERBQTJEO0FBQzNELHlFQUF1RDtBQUN2RCxpREFBMEM7QUFFMUM7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLG1DQUFtQyxDQUNqRCxLQUF5QixFQUN6QixPQUFnQjtJQUVoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLEdBQUcsR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQywyQkFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUMzQixHQUFHLEVBQ0gsS0FBSyxZQUFZLDRCQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDbkQsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPO1lBQ1YsTUFBTSxJQUFJLDZCQUFhLENBQ3JCLHlDQUF5QyxLQUFLLFlBQVksNEJBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FDeEcsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLElBQUEseUJBQUUsRUFBQywyQkFBZSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsdUJBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIHNmIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9BZGFwdGVyXCI7XG5pbXBvcnQgeyBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9SZXBvc2l0b3J5XCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyBhIHVuaXF1ZSBpbmplY3RhYmxlIG5hbWUgZm9yIGEgcmVwb3NpdG9yeS5cbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBzdGFuZGFyZGl6ZWQgbmFtZSBmb3IgcmVwb3NpdG9yeSBpbmplY3RhYmxlcyBiYXNlZCBvbiBtb2RlbCBhbmQgYWRhcHRlciBmbGF2b3VyLlxuICogQHRlbXBsYXRlIFQgLSBUaGUgbW9kZWwgdHlwZSB0aGF0IGV4dGVuZHMgTW9kZWwuXG4gKiBAcGFyYW0ge0NvbnN0cnVjdG9yPFQ+IHwgVH0gbW9kZWwgLSBUaGUgbW9kZWwgY29uc3RydWN0b3Igb3IgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZsYXZvdXJdIC0gT3B0aW9uYWwgYWRhcHRlciBmbGF2b3VyLiBJZiBub3QgcHJvdmlkZWQsIGl0IHdpbGwgYmUgcmV0cmlldmVkIGZyb20gdGhlIG1vZGVsIG1ldGFkYXRhLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgZ2VuZXJhdGVkIGluamVjdGFibGUgbmFtZS5cbiAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIG5vIGZsYXZvdXIgaXMgcHJvdmlkZWQgYW5kIG5vbmUgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBtb2RlbC5cbiAqIEBmdW5jdGlvbiBnZW5lcmF0ZUluamVjdGFibGVOYW1lRm9yUmVwb3NpdG9yeVxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUluamVjdGFibGVOYW1lRm9yUmVwb3NpdG9yeTxUIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogQ29uc3RydWN0b3I8VD4gfCBULFxuICBmbGF2b3VyPzogc3RyaW5nXG4pOiBzdHJpbmcge1xuICBpZiAoIWZsYXZvdXIpIHtcbiAgICBjb25zdCBrZXkgPSBBZGFwdGVyLmtleShQZXJzaXN0ZW5jZUtleXMuQURBUFRFUik7XG4gICAgZmxhdm91ciA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXG4gICAgICBrZXksXG4gICAgICBtb2RlbCBpbnN0YW5jZW9mIE1vZGVsID8gbW9kZWwuY29uc3RydWN0b3IgOiBtb2RlbFxuICAgICk7XG4gICAgaWYgKCFmbGF2b3VyKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBDb3VsZCBub3QgcmV0cmlldmUgZmxhdm91ciBmcm9tIG1vZGVsICR7bW9kZWwgaW5zdGFuY2VvZiBNb2RlbCA/IG1vZGVsLmNvbnN0cnVjdG9yLm5hbWUgOiBtb2RlbC5uYW1lfWBcbiAgICAgICk7XG4gIH1cbiAgcmV0dXJuIHNmKFBlcnNpc3RlbmNlS2V5cy5JTkpFQ1RBQkxFLCBmbGF2b3VyLCBSZXBvc2l0b3J5LnRhYmxlKG1vZGVsKSk7XG59XG4iXX0=
@@ -1,3 +1,14 @@
1
1
  import { Constructor } from "@decaf-ts/decorator-validation";
2
2
  import { Model } from "@decaf-ts/decorator-validation";
3
+ /**
4
+ * @description Generates a unique injectable name for a repository.
5
+ * @summary Creates a standardized name for repository injectables based on model and adapter flavour.
6
+ * @template T - The model type that extends Model.
7
+ * @param {Constructor<T> | T} model - The model constructor or instance.
8
+ * @param {string} [flavour] - Optional adapter flavour. If not provided, it will be retrieved from the model metadata.
9
+ * @return {string} The generated injectable name.
10
+ * @throws {InternalError} If no flavour is provided and none can be retrieved from the model.
11
+ * @function generateInjectableNameForRepository
12
+ * @memberOf module:core
13
+ */
3
14
  export declare function generateInjectableNameForRepository<T extends Model>(model: Constructor<T> | T, flavour?: string): string;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.final = final;
4
+ /**
5
+ * @description Creates a decorator that makes a method non-configurable
6
+ * @summary This decorator prevents a method from being overridden by making it non-configurable.
7
+ * It throws an error if used on anything other than a method.
8
+ * @return {Function} A decorator function that can be applied to methods
9
+ * @function final
10
+ * @category Method Decorators
11
+ */
12
+ function final() {
13
+ return (target, propertyKey, descriptor) => {
14
+ if (!descriptor)
15
+ throw new Error("final decorator can only be used on methods");
16
+ if (descriptor?.configurable) {
17
+ descriptor.configurable = false;
18
+ }
19
+ return descriptor;
20
+ };
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsc0JBYUM7QUFyQkQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLEtBQUs7SUFDbkIsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUFpQixFQUNqQixVQUErQixFQUMvQixFQUFFO1FBQ0YsSUFBSSxDQUFDLFVBQVU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDakUsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsVUFBVSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgbWFrZXMgYSBtZXRob2Qgbm9uLWNvbmZpZ3VyYWJsZVxuICogQHN1bW1hcnkgVGhpcyBkZWNvcmF0b3IgcHJldmVudHMgYSBtZXRob2QgZnJvbSBiZWluZyBvdmVycmlkZGVuIGJ5IG1ha2luZyBpdCBub24tY29uZmlndXJhYmxlLlxuICogSXQgdGhyb3dzIGFuIGVycm9yIGlmIHVzZWQgb24gYW55dGhpbmcgb3RoZXIgdGhhbiBhIG1ldGhvZC5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIG1ldGhvZHNcbiAqIEBmdW5jdGlvbiBmaW5hbFxuICogQGNhdGVnb3J5IE1ldGhvZCBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5hbCgpIHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IG9iamVjdCxcbiAgICBwcm9wZXJ0eUtleT86IGFueSxcbiAgICBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yXG4gICkgPT4ge1xuICAgIGlmICghZGVzY3JpcHRvcilcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbmFsIGRlY29yYXRvciBjYW4gb25seSBiZSB1c2VkIG9uIG1ldGhvZHNcIik7XG4gICAgaWYgKGRlc2NyaXB0b3I/LmNvbmZpZ3VyYWJsZSkge1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description Creates a decorator that makes a method non-configurable
3
+ * @summary This decorator prevents a method from being overridden by making it non-configurable.
4
+ * It throws an error if used on anything other than a method.
5
+ * @return {Function} A decorator function that can be applied to methods
6
+ * @function final
7
+ * @category Method Decorators
8
+ */
9
+ export declare function final(): (target: object, propertyKey?: any, descriptor?: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectionError = exports.ForbiddenError = exports.AuthorizationError = void 0;
4
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
5
+ /**
6
+ * @description Error thrown when a user is not authorized to perform an action
7
+ * @summary This error is thrown when a user attempts to access a resource or perform an action without proper authentication
8
+ * @param {string|Error} msg - The error message or Error object
9
+ * @class AuthorizationError
10
+ * @category Errors
11
+ * @example
12
+ * ```typescript
13
+ * // Example of throwing an AuthorizationError
14
+ * if (!user.isAuthenticated()) {
15
+ * throw new AuthorizationError('User not authenticated');
16
+ * }
17
+ * ```
18
+ */
19
+ class AuthorizationError extends db_decorators_1.BaseError {
20
+ constructor(msg) {
21
+ super(AuthorizationError.name, msg, 401);
22
+ }
23
+ }
24
+ exports.AuthorizationError = AuthorizationError;
25
+ /**
26
+ * @description Error thrown when a user is forbidden from accessing a resource
27
+ * @summary This error is thrown when an authenticated user attempts to access a resource or perform an action they don't have permission for
28
+ * @param {string|Error} msg - The error message or Error object
29
+ * @return {void}
30
+ * @class ForbiddenError
31
+ * @category Errors
32
+ * @example
33
+ * ```typescript
34
+ * // Example of throwing a ForbiddenError
35
+ * if (!user.hasPermission('admin')) {
36
+ * throw new ForbiddenError('User does not have admin permissions');
37
+ * }
38
+ * ```
39
+ */
40
+ class ForbiddenError extends db_decorators_1.BaseError {
41
+ constructor(msg) {
42
+ super(ForbiddenError.name, msg, 403);
43
+ }
44
+ }
45
+ exports.ForbiddenError = ForbiddenError;
46
+ /**
47
+ * @description Error thrown when a connection to a service fails
48
+ * @summary This error is thrown when the application fails to establish a connection to a required service or resource
49
+ * @param {string|Error} msg - The error message or Error object
50
+ * @return {void}
51
+ * @class ConnectionError
52
+ * @category Errors
53
+ * @example
54
+ * ```typescript
55
+ * // Example of throwing a ConnectionError
56
+ * try {
57
+ * await database.connect();
58
+ * } catch (error) {
59
+ * throw new ConnectionError('Failed to connect to database');
60
+ * }
61
+ * ```
62
+ */
63
+ class ConnectionError extends db_decorators_1.BaseError {
64
+ constructor(msg) {
65
+ super(ConnectionError.name, msg, 503);
66
+ }
67
+ }
68
+ exports.ConnectionError = ConnectionError;
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBb0Q7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsa0JBQW1CLFNBQVEseUJBQVM7SUFDL0MsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFKRCxnREFJQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBYSxjQUFlLFNBQVEseUJBQVM7SUFDM0MsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBSkQsd0NBSUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSx5QkFBUztJQUM1QyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFKRCwwQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFcnJvciB0aHJvd24gd2hlbiBhIHVzZXIgaXMgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSBhbiBhY3Rpb25cbiAqIEBzdW1tYXJ5IFRoaXMgZXJyb3IgaXMgdGhyb3duIHdoZW4gYSB1c2VyIGF0dGVtcHRzIHRvIGFjY2VzcyBhIHJlc291cmNlIG9yIHBlcmZvcm0gYW4gYWN0aW9uIHdpdGhvdXQgcHJvcGVyIGF1dGhlbnRpY2F0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ3xFcnJvcn0gbXNnIC0gVGhlIGVycm9yIG1lc3NhZ2Ugb3IgRXJyb3Igb2JqZWN0XG4gKiBAY2xhc3MgQXV0aG9yaXphdGlvbkVycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRXhhbXBsZSBvZiB0aHJvd2luZyBhbiBBdXRob3JpemF0aW9uRXJyb3JcbiAqIGlmICghdXNlci5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICogICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKCdVc2VyIG5vdCBhdXRoZW50aWNhdGVkJyk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25FcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihBdXRob3JpemF0aW9uRXJyb3IubmFtZSwgbXNnLCA0MDEpO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVycm9yIHRocm93biB3aGVuIGEgdXNlciBpcyBmb3JiaWRkZW4gZnJvbSBhY2Nlc3NpbmcgYSByZXNvdXJjZVxuICogQHN1bW1hcnkgVGhpcyBlcnJvciBpcyB0aHJvd24gd2hlbiBhbiBhdXRoZW50aWNhdGVkIHVzZXIgYXR0ZW1wdHMgdG8gYWNjZXNzIGEgcmVzb3VyY2Ugb3IgcGVyZm9ybSBhbiBhY3Rpb24gdGhleSBkb24ndCBoYXZlIHBlcm1pc3Npb24gZm9yXG4gKiBAcGFyYW0ge3N0cmluZ3xFcnJvcn0gbXNnIC0gVGhlIGVycm9yIG1lc3NhZ2Ugb3IgRXJyb3Igb2JqZWN0XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZvcmJpZGRlbkVycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRXhhbXBsZSBvZiB0aHJvd2luZyBhIEZvcmJpZGRlbkVycm9yXG4gKiBpZiAoIXVzZXIuaGFzUGVybWlzc2lvbignYWRtaW4nKSkge1xuICogICB0aHJvdyBuZXcgRm9yYmlkZGVuRXJyb3IoJ1VzZXIgZG9lcyBub3QgaGF2ZSBhZG1pbiBwZXJtaXNzaW9ucycpO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3JiaWRkZW5FcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihGb3JiaWRkZW5FcnJvci5uYW1lLCBtc2csIDQwMyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXJyb3IgdGhyb3duIHdoZW4gYSBjb25uZWN0aW9uIHRvIGEgc2VydmljZSBmYWlsc1xuICogQHN1bW1hcnkgVGhpcyBlcnJvciBpcyB0aHJvd24gd2hlbiB0aGUgYXBwbGljYXRpb24gZmFpbHMgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byBhIHJlcXVpcmVkIHNlcnZpY2Ugb3IgcmVzb3VyY2VcbiAqIEBwYXJhbSB7c3RyaW5nfEVycm9yfSBtc2cgLSBUaGUgZXJyb3IgbWVzc2FnZSBvciBFcnJvciBvYmplY3RcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAY2xhc3MgQ29ubmVjdGlvbkVycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRXhhbXBsZSBvZiB0aHJvd2luZyBhIENvbm5lY3Rpb25FcnJvclxuICogdHJ5IHtcbiAqICAgYXdhaXQgZGF0YWJhc2UuY29ubmVjdCgpO1xuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgdGhyb3cgbmV3IENvbm5lY3Rpb25FcnJvcignRmFpbGVkIHRvIGNvbm5lY3QgdG8gZGF0YWJhc2UnKTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKENvbm5lY3Rpb25FcnJvci5uYW1lLCBtc2csIDUwMyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,56 @@
1
+ import { BaseError } from "@decaf-ts/db-decorators";
2
+ /**
3
+ * @description Error thrown when a user is not authorized to perform an action
4
+ * @summary This error is thrown when a user attempts to access a resource or perform an action without proper authentication
5
+ * @param {string|Error} msg - The error message or Error object
6
+ * @class AuthorizationError
7
+ * @category Errors
8
+ * @example
9
+ * ```typescript
10
+ * // Example of throwing an AuthorizationError
11
+ * if (!user.isAuthenticated()) {
12
+ * throw new AuthorizationError('User not authenticated');
13
+ * }
14
+ * ```
15
+ */
16
+ export declare class AuthorizationError extends BaseError {
17
+ constructor(msg: string | Error);
18
+ }
19
+ /**
20
+ * @description Error thrown when a user is forbidden from accessing a resource
21
+ * @summary This error is thrown when an authenticated user attempts to access a resource or perform an action they don't have permission for
22
+ * @param {string|Error} msg - The error message or Error object
23
+ * @return {void}
24
+ * @class ForbiddenError
25
+ * @category Errors
26
+ * @example
27
+ * ```typescript
28
+ * // Example of throwing a ForbiddenError
29
+ * if (!user.hasPermission('admin')) {
30
+ * throw new ForbiddenError('User does not have admin permissions');
31
+ * }
32
+ * ```
33
+ */
34
+ export declare class ForbiddenError extends BaseError {
35
+ constructor(msg: string | Error);
36
+ }
37
+ /**
38
+ * @description Error thrown when a connection to a service fails
39
+ * @summary This error is thrown when the application fails to establish a connection to a required service or resource
40
+ * @param {string|Error} msg - The error message or Error object
41
+ * @return {void}
42
+ * @class ConnectionError
43
+ * @category Errors
44
+ * @example
45
+ * ```typescript
46
+ * // Example of throwing a ConnectionError
47
+ * try {
48
+ * await database.connect();
49
+ * } catch (error) {
50
+ * throw new ConnectionError('Failed to connect to database');
51
+ * }
52
+ * ```
53
+ */
54
+ export declare class ConnectionError extends BaseError {
55
+ constructor(msg: string | Error);
56
+ }
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./decorators.cjs"), exports);
18
- __exportStar(require("./ClauseSequenceValidator.cjs"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQTRCO0FBQzVCLGdFQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQ2xhdXNlU2VxdWVuY2VWYWxpZGF0b3JcIiJdfQ==
18
+ __exportStar(require("./errors.cjs"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUE2QjtBQUM3QiwrQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnNcIjtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from "./decorators";
2
+ export * from "./errors";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/core",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Core persistence module for the decaf framework",
5
5
  "type": "module",
6
6
  "exports": {
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "repository": {
44
44
  "type": "git",
45
- "url": "git+https://github.com/decaf-ts/ts-workspace.git"
45
+ "url": "git+https://github.com/decaf-ts/core.git"
46
46
  },
47
47
  "engines": {
48
48
  "node": ">=20.0.0",
@@ -71,11 +71,11 @@
71
71
  "ts"
72
72
  ],
73
73
  "author": "Tiago Venceslau",
74
- "license": "LGPL-3.0-or-later",
74
+ "license": "MIT",
75
75
  "bugs": {
76
- "url": "https://github.com/decaf-ts/ts-workspace/issues"
76
+ "url": "https://github.com/decaf-ts/core/issues"
77
77
  },
78
- "homepage": "https://github.com/decaf-ts/ts-workspace#readme",
78
+ "homepage": "https://github.com/decaf-ts/core#readme",
79
79
  "devDependencies": {
80
80
  "@decaf-ts/utils": "latest",
81
81
  "@eslint/js": "^9.25.1",
@@ -1,16 +0,0 @@
1
- /**
2
- * @summary Standard Builder APi for the Builder design pattern
3
- * @description Expose the build method
4
- *
5
- * @interface Builder
6
- *
7
- * @category Construction
8
- */
9
- export interface Builder<T> {
10
- /**
11
- * @summary Build the Object
12
- *
13
- * @method
14
- */
15
- build(...args: any[]): T;
16
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcmZhY2VzL0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgU3RhbmRhcmQgQnVpbGRlciBBUGkgZm9yIHRoZSBCdWlsZGVyIGRlc2lnbiBwYXR0ZXJuXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlIHRoZSBidWlsZCBtZXRob2RcbiAqXG4gKiBAaW50ZXJmYWNlIEJ1aWxkZXJcbiAqXG4gKiBAY2F0ZWdvcnkgQ29uc3RydWN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRlcjxUPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBCdWlsZCB0aGUgT2JqZWN0XG4gICAqXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGJ1aWxkKC4uLmFyZ3M6IGFueVtdKTogVDtcbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- import { ModelArg } from "@decaf-ts/decorator-validation";
2
- import { BaseModel } from "./BaseModel";
3
- export declare abstract class IdentifiedBaseModel extends BaseModel {
4
- createdBy: string;
5
- updatedBy: string;
6
- protected constructor(arg?: ModelArg<IdentifiedBaseModel>);
7
- }
@@ -1,25 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { createdBy, updatedBy } from "./decorators";
11
- import { BaseModel } from "./BaseModel";
12
- export class IdentifiedBaseModel extends BaseModel {
13
- constructor(arg) {
14
- super(arg);
15
- }
16
- }
17
- __decorate([
18
- createdBy(),
19
- __metadata("design:type", String)
20
- ], IdentifiedBaseModel.prototype, "createdBy", void 0);
21
- __decorate([
22
- updatedBy(),
23
- __metadata("design:type", String)
24
- ], IdentifiedBaseModel.prototype, "updatedBy", void 0);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWRlbnRpZmllZEJhc2VNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9JZGVudGlmaWVkQmFzZU1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsTUFBTSxPQUFnQixtQkFBb0IsU0FBUSxTQUFTO0lBTXpELFlBQXNCLEdBQW1DO1FBQ3ZELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDRjtBQVBDO0lBREMsU0FBUyxFQUFFOztzREFDTztBQUVuQjtJQURDLFNBQVMsRUFBRTs7c0RBQ08iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGNyZWF0ZWRCeSwgdXBkYXRlZEJ5IH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSBcIi4vQmFzZU1vZGVsXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJZGVudGlmaWVkQmFzZU1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQGNyZWF0ZWRCeSgpXG4gIGNyZWF0ZWRCeSE6IHN0cmluZztcbiAgQHVwZGF0ZWRCeSgpXG4gIHVwZGF0ZWRCeSE6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYXJnPzogTW9kZWxBcmc8SWRlbnRpZmllZEJhc2VNb2RlbD4pIHtcbiAgICBzdXBlcihhcmcpO1xuICB9XG59XG4iXX0=
@@ -1,50 +0,0 @@
1
- import { Executor } from "../interfaces";
2
- import { Model, ModelArg } from "@decaf-ts/decorator-validation";
3
- import { QueryBuilder } from "./options";
4
- import { Priority } from "./constants";
5
- import { Statement } from "./Statement";
6
- import { Paginatable } from "../interfaces/Paginatable";
7
- import { Paginator } from "./Paginator";
8
- /**
9
- */
10
- /**
11
- * @summary Clause Class
12
- * @description Represents a Clause in a {@link Statement}
13
- *
14
- * @typedef Q Represents que query object the persistence adapter uses
15
- *
16
- * @param {ModelArg<Clause<Q>>} [clause]
17
- *
18
- * @class Clause
19
- * @extends Model
20
- * @implements Executor
21
- * @implements QueryBuilder
22
- * @abstract
23
- *
24
- * @category Query
25
- * @subcategory Clauses
26
- */
27
- export declare abstract class Clause<Q> extends Model implements Executor, Paginatable, QueryBuilder<Q> {
28
- readonly priority: Priority;
29
- readonly statement: Statement<Q>;
30
- protected constructor(clause?: ModelArg<Clause<Q>>);
31
- protected get adapter(): import("..").Adapter<any, Q, any, any>;
32
- protected get Clauses(): import("./ClauseFactory").ClauseFactory<any, Q, import("..").Adapter<any, Q, any, any>>;
33
- /**
34
- * @summary return the priority of the clause
35
- * @see Priority
36
- */
37
- getPriority(): number;
38
- abstract build(previous: Q): Q;
39
- /**
40
- * @inheritDoc
41
- * @abstract
42
- */
43
- execute<R>(): Promise<R>;
44
- /**
45
- * @inheritDoc
46
- * @abstract
47
- */
48
- paginate<R>(size: number): Promise<Paginator<R, Q>>;
49
- toString(): string;
50
- }