@decaf-ts/core 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/dist/core.cjs +688 -1102
  2. package/dist/core.esm.cjs +663 -1075
  3. package/lib/esm/identity/decorators.d.ts +3 -9
  4. package/lib/esm/identity/decorators.js +18 -23
  5. package/lib/esm/identity/utils.d.ts +1 -1
  6. package/lib/esm/identity/utils.js +3 -2
  7. package/lib/esm/index.d.ts +4 -15
  8. package/lib/esm/index.js +8 -17
  9. package/lib/esm/interfaces/ErrorParser.d.ts +4 -0
  10. package/lib/esm/interfaces/ErrorParser.js +2 -0
  11. package/lib/esm/interfaces/Executor.d.ts +2 -18
  12. package/lib/esm/interfaces/Executor.js +1 -1
  13. package/lib/esm/interfaces/Observable.d.ts +2 -27
  14. package/lib/esm/interfaces/Observable.js +1 -1
  15. package/lib/esm/interfaces/Observer.d.ts +0 -13
  16. package/lib/esm/interfaces/Observer.js +1 -1
  17. package/lib/esm/interfaces/Paginatable.d.ts +3 -2
  18. package/lib/esm/interfaces/Paginatable.js +1 -1
  19. package/lib/esm/interfaces/Queriable.d.ts +19 -3
  20. package/lib/esm/interfaces/Queriable.js +1 -1
  21. package/lib/esm/interfaces/RawExecutor.d.ts +1 -18
  22. package/lib/esm/interfaces/RawExecutor.js +1 -1
  23. package/lib/esm/interfaces/SequenceOptions.d.ts +0 -7
  24. package/lib/esm/interfaces/SequenceOptions.js +1 -1
  25. package/lib/esm/interfaces/index.d.ts +1 -1
  26. package/lib/esm/interfaces/index.js +2 -2
  27. package/lib/esm/model/construction.d.ts +13 -10
  28. package/lib/esm/model/construction.js +8 -3
  29. package/lib/esm/model/decorators.d.ts +12 -17
  30. package/lib/esm/model/decorators.js +38 -24
  31. package/lib/esm/model/index.d.ts +1 -1
  32. package/lib/esm/model/index.js +2 -2
  33. package/lib/esm/persistence/Adapter.d.ts +38 -34
  34. package/lib/esm/persistence/Adapter.js +160 -61
  35. package/lib/esm/persistence/Dispatch.d.ts +18 -0
  36. package/lib/esm/persistence/Dispatch.js +89 -0
  37. package/lib/esm/persistence/ObserverHandler.d.ts +14 -0
  38. package/lib/esm/persistence/ObserverHandler.js +42 -0
  39. package/lib/esm/persistence/Sequence.d.ts +4 -12
  40. package/lib/esm/persistence/Sequence.js +22 -1
  41. package/lib/esm/persistence/constants.d.ts +0 -5
  42. package/lib/esm/persistence/constants.js +1 -7
  43. package/lib/esm/persistence/errors.d.ts +0 -3
  44. package/lib/esm/persistence/errors.js +2 -7
  45. package/lib/esm/persistence/index.d.ts +3 -0
  46. package/lib/esm/persistence/index.js +4 -1
  47. package/lib/esm/persistence/types.d.ts +3 -0
  48. package/lib/esm/persistence/types.js +2 -0
  49. package/lib/esm/query/Condition.d.ts +10 -13
  50. package/lib/esm/query/Condition.js +13 -10
  51. package/lib/esm/query/Paginator.d.ts +12 -11
  52. package/lib/esm/query/Paginator.js +10 -11
  53. package/lib/esm/query/Statement.d.ts +38 -54
  54. package/lib/esm/query/Statement.js +130 -128
  55. package/lib/esm/query/constants.d.ts +0 -64
  56. package/lib/esm/query/constants.js +1 -68
  57. package/lib/esm/query/errors.js +3 -3
  58. package/lib/esm/query/index.d.ts +0 -5
  59. package/lib/esm/query/index.js +1 -6
  60. package/lib/esm/query/options.d.ts +48 -175
  61. package/lib/esm/query/options.js +1 -1
  62. package/lib/esm/query/selectors.d.ts +3 -33
  63. package/lib/esm/query/selectors.js +1 -1
  64. package/lib/esm/ram/RamAdapter.d.ts +32 -0
  65. package/lib/esm/ram/RamAdapter.js +139 -0
  66. package/lib/esm/ram/RamContext.d.ts +5 -0
  67. package/lib/esm/ram/RamContext.js +7 -0
  68. package/lib/esm/ram/RamPaginator.d.ts +9 -0
  69. package/lib/esm/ram/RamPaginator.js +20 -0
  70. package/lib/esm/ram/RamSequence.d.ts +14 -0
  71. package/lib/esm/ram/RamSequence.js +81 -0
  72. package/lib/esm/ram/RamStatement.d.ts +12 -0
  73. package/lib/esm/ram/RamStatement.js +113 -0
  74. package/lib/esm/ram/constants.d.ts +1 -0
  75. package/lib/esm/ram/constants.js +2 -0
  76. package/lib/esm/ram/handlers.d.ts +6 -0
  77. package/lib/esm/ram/handlers.js +8 -0
  78. package/lib/esm/ram/index.d.ts +9 -0
  79. package/lib/esm/ram/index.js +14 -0
  80. package/lib/esm/ram/model/RamSequence.d.ts +7 -0
  81. package/lib/esm/ram/model/RamSequence.js +33 -0
  82. package/lib/esm/ram/model/index.d.ts +1 -0
  83. package/lib/esm/ram/model/index.js +2 -0
  84. package/lib/esm/ram/types.d.ts +17 -0
  85. package/lib/esm/ram/types.js +2 -0
  86. package/lib/esm/repository/Repository.d.ts +24 -17
  87. package/lib/esm/repository/Repository.js +115 -45
  88. package/lib/esm/repository/constants.d.ts +0 -15
  89. package/lib/esm/repository/constants.js +1 -16
  90. package/lib/esm/repository/errors.js +2 -2
  91. package/lib/esm/repository/index.d.ts +0 -1
  92. package/lib/esm/repository/index.js +1 -2
  93. package/lib/esm/repository/injectables.js +1 -1
  94. package/lib/esm/repository/types.d.ts +0 -3
  95. package/lib/esm/repository/types.js +1 -1
  96. package/lib/esm/utils/decorators.d.ts +1 -0
  97. package/lib/esm/utils/decorators.js +11 -0
  98. package/lib/esm/utils/errors.d.ts +10 -0
  99. package/lib/esm/utils/errors.js +17 -0
  100. package/lib/esm/utils/index.d.ts +2 -0
  101. package/lib/esm/utils/index.js +3 -0
  102. package/lib/identity/decorators.cjs +21 -26
  103. package/lib/identity/decorators.d.ts +3 -9
  104. package/lib/identity/index.cjs +1 -1
  105. package/lib/identity/utils.cjs +5 -4
  106. package/lib/identity/utils.d.ts +1 -1
  107. package/lib/index.cjs +8 -17
  108. package/lib/index.d.ts +4 -15
  109. package/lib/interfaces/ErrorParser.cjs +3 -0
  110. package/lib/interfaces/ErrorParser.d.ts +4 -0
  111. package/lib/interfaces/Executor.cjs +1 -1
  112. package/lib/interfaces/Executor.d.ts +2 -18
  113. package/lib/interfaces/Observable.cjs +1 -1
  114. package/lib/interfaces/Observable.d.ts +2 -27
  115. package/lib/interfaces/Observer.cjs +1 -1
  116. package/lib/interfaces/Observer.d.ts +0 -13
  117. package/lib/interfaces/Paginatable.cjs +1 -1
  118. package/lib/interfaces/Paginatable.d.ts +3 -2
  119. package/lib/interfaces/Queriable.cjs +1 -1
  120. package/lib/interfaces/Queriable.d.ts +19 -3
  121. package/lib/interfaces/RawExecutor.cjs +1 -1
  122. package/lib/interfaces/RawExecutor.d.ts +1 -18
  123. package/lib/interfaces/SequenceOptions.cjs +1 -1
  124. package/lib/interfaces/SequenceOptions.d.ts +0 -7
  125. package/lib/interfaces/index.cjs +2 -2
  126. package/lib/interfaces/index.d.ts +1 -1
  127. package/lib/model/construction.cjs +11 -6
  128. package/lib/model/construction.d.ts +13 -10
  129. package/lib/model/decorators.cjs +42 -28
  130. package/lib/model/decorators.d.ts +12 -17
  131. package/lib/model/index.cjs +2 -2
  132. package/lib/model/index.d.ts +1 -1
  133. package/lib/persistence/Adapter.cjs +159 -60
  134. package/lib/persistence/Adapter.d.ts +38 -34
  135. package/lib/persistence/Dispatch.cjs +93 -0
  136. package/lib/persistence/Dispatch.d.ts +18 -0
  137. package/lib/persistence/ObserverHandler.cjs +46 -0
  138. package/lib/persistence/ObserverHandler.d.ts +14 -0
  139. package/lib/persistence/Sequence.cjs +23 -2
  140. package/lib/persistence/Sequence.d.ts +4 -12
  141. package/lib/persistence/constants.cjs +2 -8
  142. package/lib/persistence/constants.d.ts +0 -5
  143. package/lib/persistence/decorators.cjs +1 -1
  144. package/lib/persistence/errors.cjs +3 -9
  145. package/lib/persistence/errors.d.ts +0 -3
  146. package/lib/persistence/index.cjs +4 -1
  147. package/lib/persistence/index.d.ts +3 -0
  148. package/lib/persistence/types.cjs +3 -0
  149. package/lib/persistence/types.d.ts +3 -0
  150. package/lib/query/Condition.cjs +12 -9
  151. package/lib/query/Condition.d.ts +10 -13
  152. package/lib/query/Paginator.cjs +10 -11
  153. package/lib/query/Paginator.d.ts +12 -11
  154. package/lib/query/Statement.cjs +129 -127
  155. package/lib/query/Statement.d.ts +38 -54
  156. package/lib/query/constants.cjs +2 -69
  157. package/lib/query/constants.d.ts +0 -64
  158. package/lib/query/errors.cjs +3 -3
  159. package/lib/query/index.cjs +1 -6
  160. package/lib/query/index.d.ts +0 -5
  161. package/lib/query/options.cjs +1 -1
  162. package/lib/query/options.d.ts +48 -175
  163. package/lib/query/selectors.cjs +1 -1
  164. package/lib/query/selectors.d.ts +3 -33
  165. package/lib/ram/RamAdapter.cjs +143 -0
  166. package/lib/ram/RamAdapter.d.ts +32 -0
  167. package/lib/ram/RamContext.cjs +11 -0
  168. package/lib/ram/RamContext.d.ts +5 -0
  169. package/lib/ram/RamPaginator.cjs +24 -0
  170. package/lib/ram/RamPaginator.d.ts +9 -0
  171. package/lib/ram/RamSequence.cjs +85 -0
  172. package/lib/ram/RamSequence.d.ts +14 -0
  173. package/lib/ram/RamStatement.cjs +117 -0
  174. package/lib/ram/RamStatement.d.ts +12 -0
  175. package/lib/ram/constants.cjs +5 -0
  176. package/lib/ram/constants.d.ts +1 -0
  177. package/lib/ram/handlers.cjs +11 -0
  178. package/lib/ram/handlers.d.ts +6 -0
  179. package/lib/ram/index.cjs +30 -0
  180. package/lib/ram/index.d.ts +9 -0
  181. package/lib/ram/model/RamSequence.cjs +36 -0
  182. package/lib/ram/model/RamSequence.d.ts +7 -0
  183. package/lib/ram/model/index.cjs +18 -0
  184. package/lib/ram/model/index.d.ts +1 -0
  185. package/lib/ram/types.cjs +3 -0
  186. package/lib/ram/types.d.ts +17 -0
  187. package/lib/repository/Repository.cjs +119 -49
  188. package/lib/repository/Repository.d.ts +24 -17
  189. package/lib/repository/constants.cjs +1 -16
  190. package/lib/repository/constants.d.ts +0 -15
  191. package/lib/repository/decorators.cjs +1 -1
  192. package/lib/repository/errors.cjs +2 -2
  193. package/lib/repository/index.cjs +1 -2
  194. package/lib/repository/index.d.ts +0 -1
  195. package/lib/repository/injectables.cjs +3 -3
  196. package/lib/repository/types.cjs +1 -1
  197. package/lib/repository/types.d.ts +0 -3
  198. package/lib/repository/utils.cjs +3 -3
  199. package/lib/utils/decorators.cjs +14 -0
  200. package/lib/utils/decorators.d.ts +1 -0
  201. package/lib/utils/errors.cjs +23 -0
  202. package/lib/utils/errors.d.ts +10 -0
  203. package/lib/{validators → utils}/index.cjs +2 -2
  204. package/lib/utils/index.d.ts +2 -0
  205. package/package.json +10 -3
  206. package/lib/esm/interfaces/Builder.d.ts +0 -16
  207. package/lib/esm/interfaces/Builder.js +0 -2
  208. package/lib/esm/model/IdentifiedBaseModel.d.ts +0 -7
  209. package/lib/esm/model/IdentifiedBaseModel.js +0 -25
  210. package/lib/esm/model/User.d.ts +0 -9
  211. package/lib/esm/model/User.js +0 -34
  212. package/lib/esm/query/Clause.d.ts +0 -50
  213. package/lib/esm/query/Clause.js +0 -82
  214. package/lib/esm/query/ClauseFactory.d.ts +0 -71
  215. package/lib/esm/query/ClauseFactory.js +0 -6
  216. package/lib/esm/query/Query.d.ts +0 -43
  217. package/lib/esm/query/Query.js +0 -54
  218. package/lib/esm/query/clauses/FromClause.d.ts +0 -45
  219. package/lib/esm/query/clauses/FromClause.js +0 -59
  220. package/lib/esm/query/clauses/GroupByClause.d.ts +0 -21
  221. package/lib/esm/query/clauses/GroupByClause.js +0 -19
  222. package/lib/esm/query/clauses/InsertClause.d.ts +0 -37
  223. package/lib/esm/query/clauses/InsertClause.js +0 -55
  224. package/lib/esm/query/clauses/LimitClause.d.ts +0 -29
  225. package/lib/esm/query/clauses/LimitClause.js +0 -27
  226. package/lib/esm/query/clauses/OffsetClause.d.ts +0 -21
  227. package/lib/esm/query/clauses/OffsetClause.js +0 -19
  228. package/lib/esm/query/clauses/OrderByClause.d.ts +0 -37
  229. package/lib/esm/query/clauses/OrderByClause.js +0 -39
  230. package/lib/esm/query/clauses/SelectClause.d.ts +0 -47
  231. package/lib/esm/query/clauses/SelectClause.js +0 -62
  232. package/lib/esm/query/clauses/SelectorBasedClause.d.ts +0 -25
  233. package/lib/esm/query/clauses/SelectorBasedClause.js +0 -44
  234. package/lib/esm/query/clauses/ValuesClause.d.ts +0 -21
  235. package/lib/esm/query/clauses/ValuesClause.js +0 -36
  236. package/lib/esm/query/clauses/WhereClause.d.ts +0 -46
  237. package/lib/esm/query/clauses/WhereClause.js +0 -71
  238. package/lib/esm/query/clauses/index.d.ts +0 -10
  239. package/lib/esm/query/clauses/index.js +0 -11
  240. package/lib/esm/query/types.d.ts +0 -2
  241. package/lib/esm/query/types.js +0 -2
  242. package/lib/esm/repository/Context.d.ts +0 -10
  243. package/lib/esm/repository/Context.js +0 -12
  244. package/lib/esm/validators/ClauseSequenceValidator.d.ts +0 -28
  245. package/lib/esm/validators/ClauseSequenceValidator.js +0 -95
  246. package/lib/esm/validators/decorators.d.ts +0 -10
  247. package/lib/esm/validators/decorators.js +0 -24
  248. package/lib/esm/validators/index.d.ts +0 -2
  249. package/lib/esm/validators/index.js +0 -3
  250. package/lib/interfaces/Builder.cjs +0 -3
  251. package/lib/interfaces/Builder.d.ts +0 -16
  252. package/lib/model/IdentifiedBaseModel.cjs +0 -29
  253. package/lib/model/IdentifiedBaseModel.d.ts +0 -7
  254. package/lib/model/User.cjs +0 -37
  255. package/lib/model/User.d.ts +0 -9
  256. package/lib/query/Clause.cjs +0 -86
  257. package/lib/query/Clause.d.ts +0 -50
  258. package/lib/query/ClauseFactory.cjs +0 -10
  259. package/lib/query/ClauseFactory.d.ts +0 -71
  260. package/lib/query/Query.cjs +0 -58
  261. package/lib/query/Query.d.ts +0 -43
  262. package/lib/query/clauses/FromClause.cjs +0 -63
  263. package/lib/query/clauses/FromClause.d.ts +0 -45
  264. package/lib/query/clauses/GroupByClause.cjs +0 -23
  265. package/lib/query/clauses/GroupByClause.d.ts +0 -21
  266. package/lib/query/clauses/InsertClause.cjs +0 -59
  267. package/lib/query/clauses/InsertClause.d.ts +0 -37
  268. package/lib/query/clauses/LimitClause.cjs +0 -31
  269. package/lib/query/clauses/LimitClause.d.ts +0 -29
  270. package/lib/query/clauses/OffsetClause.cjs +0 -23
  271. package/lib/query/clauses/OffsetClause.d.ts +0 -21
  272. package/lib/query/clauses/OrderByClause.cjs +0 -43
  273. package/lib/query/clauses/OrderByClause.d.ts +0 -37
  274. package/lib/query/clauses/SelectClause.cjs +0 -66
  275. package/lib/query/clauses/SelectClause.d.ts +0 -47
  276. package/lib/query/clauses/SelectorBasedClause.cjs +0 -48
  277. package/lib/query/clauses/SelectorBasedClause.d.ts +0 -25
  278. package/lib/query/clauses/ValuesClause.cjs +0 -40
  279. package/lib/query/clauses/ValuesClause.d.ts +0 -21
  280. package/lib/query/clauses/WhereClause.cjs +0 -75
  281. package/lib/query/clauses/WhereClause.d.ts +0 -46
  282. package/lib/query/clauses/index.cjs +0 -27
  283. package/lib/query/clauses/index.d.ts +0 -10
  284. package/lib/query/types.cjs +0 -3
  285. package/lib/query/types.d.ts +0 -2
  286. package/lib/repository/Context.cjs +0 -16
  287. package/lib/repository/Context.d.ts +0 -10
  288. package/lib/validators/ClauseSequenceValidator.cjs +0 -98
  289. package/lib/validators/ClauseSequenceValidator.d.ts +0 -28
  290. package/lib/validators/decorators.cjs +0 -27
  291. package/lib/validators/decorators.d.ts +0 -10
  292. package/lib/validators/index.d.ts +0 -2
@@ -3,101 +3,50 @@ import { Executor } from "../interfaces";
3
3
  import { Constructor, Model } from "@decaf-ts/decorator-validation";
4
4
  import { Condition } from "./Condition";
5
5
  import { Paginatable } from "../interfaces/Paginatable";
6
- /**
7
- * @summary Statement Builder interface
8
- * @description Exposes the final method to build the statement
9
- *
10
- * @typedef Q The query object type to build
11
- * @interface QueryBuilder
12
- *
13
- * @category Query
14
- * @subcategory Options
15
- *
16
- */
17
- export interface QueryBuilder<Q> extends Executor {
18
- /**
19
- * Method to build and validate the prepared statement before the execution;
20
- *
21
- * @throws {QueryError} for invalid statements
22
- * @method
23
- */
24
- build(previous: Q): Q;
25
- }
26
6
  /**
27
7
  * @summary GroupBy Option interface
28
8
  * @description Exposes the GROUP BY method and remaining options
29
9
  *
30
10
  * @interface GroupByOption
31
- * @extends QueryBuilder
32
- *
33
- * @category Query
34
- * @subcategory Options
35
11
  */
36
- export interface GroupByOption extends Executor {
37
- /**
38
- * @summary Groups records by an attribute
39
- *
40
- * @param {GroupBySelector} selector
41
- * @method
42
- */
43
- groupBy(selector: GroupBySelector): Executor;
12
+ export interface GroupByOption<M extends Model, R> extends Executor<R> {
13
+ groupBy(selector: GroupBySelector<M>): Executor<R>;
44
14
  }
45
15
  /**
46
16
  * @summary Offset Option interface
47
17
  * @description Exposes the OFFSET method and remaining options
48
18
  *
49
19
  * @interface GroupByOption
50
- * @extends QueryBuilder
51
- *
52
- * @category Query
53
- * @subcategory Options
54
20
  */
55
- export interface OffsetOption extends Executor {
56
- /**
57
- * @summary Offsets the results by the provided selector
58
- *
59
- * @param {OffsetSelector} selector
60
- * @method
61
- */
62
- offset(selector: OffsetSelector): Executor;
21
+ export interface OffsetOption<R> extends Executor<R> {
22
+ offset(selector: OffsetSelector): Executor<R>;
63
23
  }
64
24
  /**
65
25
  * @summary Limit Option interface
66
26
  * @description Exposes the LIMIT method and remaining options
67
27
  *
68
28
  * @interface LimitOption
69
- * @extends QueryBuilder
70
- *
71
- * @category Query
72
- * @subcategory Options
73
29
  */
74
- export interface LimitOption extends Executor, Paginatable {
75
- /**
76
- * @summary Limits the results to the provided number
77
- *
78
- * @param {LimitSelector} selector
79
- * @method
80
- */
81
- limit(selector: LimitSelector): OffsetOption;
30
+ export interface LimitOption<M extends Model, R> extends Executor<R>, Paginatable<M, R, any> {
31
+ limit(selector: LimitSelector): OffsetOption<R>;
82
32
  }
83
33
  /**
84
- * @summary OrderpBy Option interface
34
+ * @summary OrderBy Option interface
85
35
  * @description Exposes the ORDER BY method and remaining options
86
36
  *
87
37
  * @interface OrderByOption
88
- * @extends QueryBuilder
38
+ */
39
+ export interface OrderByOption<M extends Model, R> extends Executor<R>, Paginatable<M, R, any> {
40
+ orderBy(selector: OrderBySelector<M>): LimitOption<M, R> & OffsetOption<R>;
41
+ }
42
+ /**
43
+ * @summary OrderBy Option interface
44
+ * @description Exposes the ORDER BY method and remaining options
89
45
  *
90
- * @category Query
91
- * @subcategory Options
46
+ * @interface ThenByOption
92
47
  */
93
- export interface OrderByOption extends Executor, Paginatable {
94
- /**
95
- * @summary Orders the results by the provided attribute and according to the provided direction
96
- *
97
- * @param {OrderBySelector} selector
98
- * @method
99
- */
100
- orderBy(...selector: OrderBySelector[]): LimitOption & OffsetOption;
48
+ export interface ThenByOption<M extends Model, R> extends LimitOption<M, R>, OffsetOption<R>, Executor<R>, Paginatable<M, R, any> {
49
+ thenBy(selector: OrderBySelector<M>): ThenByOption<M, R>;
101
50
  }
102
51
  /**
103
52
  * @summary Groups several order and grouping options
@@ -107,11 +56,8 @@ export interface OrderByOption extends Executor, Paginatable {
107
56
  * @extends GroupByOption
108
57
  * @extends LimitOption
109
58
  * @extends OffsetOption
110
- *
111
- * @category Query
112
- * @subcategory Options
113
59
  */
114
- export interface OrderAndGroupOption extends OrderByOption, GroupByOption, LimitOption, OffsetOption {
60
+ export interface OrderAndGroupOption<M extends Model, R> extends OrderByOption<M, R>, Executor<R>, GroupByOption<M, R>, LimitOption<M, R>, OffsetOption<R> {
115
61
  }
116
62
  /**
117
63
  * @summary Where Option interface
@@ -119,36 +65,30 @@ export interface OrderAndGroupOption extends OrderByOption, GroupByOption, Limit
119
65
  *
120
66
  * @interface WhereOption
121
67
  * @extends OrderAndGroupOption
122
- *
123
- * @category Query
124
- * @subcategory Options
125
68
  */
126
- export interface WhereOption extends OrderAndGroupOption {
69
+ export interface WhereOption<M extends Model, R> extends OrderAndGroupOption<M, R> {
127
70
  /**
128
71
  * @summary filter the records by a condition
129
72
  *
130
73
  * @param {Condition} condition
131
74
  * @method
132
75
  */
133
- where(condition: Condition): OrderAndGroupOption;
76
+ where(condition: Condition<M>): OrderAndGroupOption<M, R>;
134
77
  }
135
78
  /**
136
79
  * @summary From Option Interface
137
80
  * @description Exposes the FROM method and remaining options
138
81
  *
139
82
  * @interface FromOption
140
- *
141
- * @category Query
142
- * @subcategory Options
143
83
  */
144
- export interface FromOption<M extends Model> {
84
+ export interface FromOption<M extends Model, R> {
145
85
  /**
146
86
  * @summary selects records from a table
147
87
  *
148
88
  * @param {Constructor} tableName
149
89
  * @method
150
90
  */
151
- from(tableName: Constructor<M> | string): WhereOption;
91
+ from(tableName: Constructor<M> | string): WhereOption<M, R>;
152
92
  }
153
93
  /**
154
94
  * @summary Distinct Option Interface
@@ -156,11 +96,8 @@ export interface FromOption<M extends Model> {
156
96
  *
157
97
  * @interface DistinctOption
158
98
  * @extends FromOption
159
- *
160
- * @category Query
161
- * @subcategory Options
162
99
  */
163
- export interface DistinctOption<M extends Model> extends FromOption<M> {
100
+ export interface DistinctOption<M extends Model, R> extends FromOption<M, R> {
164
101
  }
165
102
  /**
166
103
  * @summary Max Option Interface
@@ -168,11 +105,8 @@ export interface DistinctOption<M extends Model> extends FromOption<M> {
168
105
  *
169
106
  * @interface MaxOption
170
107
  * @extends FromOption
171
- *
172
- * @category Query
173
- * @subcategory Options
174
108
  */
175
- export interface MaxOption<M extends Model> extends FromOption<M> {
109
+ export interface MaxOption<M extends Model, R> extends FromOption<M, R> {
176
110
  }
177
111
  /**
178
112
  * @summary Min Option Interface
@@ -180,11 +114,8 @@ export interface MaxOption<M extends Model> extends FromOption<M> {
180
114
  *
181
115
  * @interface MinOption
182
116
  * @extends FromOption
183
- *
184
- * @category Query
185
- * @subcategory Options
186
117
  */
187
- export interface MinOption<M extends Model> extends FromOption<M> {
118
+ export interface MinOption<M extends Model, R> extends FromOption<M, R> {
188
119
  }
189
120
  /**
190
121
  * @summary Count Option Interface
@@ -192,11 +123,8 @@ export interface MinOption<M extends Model> extends FromOption<M> {
192
123
  *
193
124
  * @interface CountOption
194
125
  * @extends FromOption
195
- *
196
- * @category Query
197
- * @subcategory Options
198
126
  */
199
- export interface CountOption<M extends Model> extends FromOption<M> {
127
+ export interface CountOption<M extends Model, R> extends FromOption<M, R> {
200
128
  }
201
129
  /**
202
130
  * @summary Select Option Interface
@@ -204,169 +132,114 @@ export interface CountOption<M extends Model> extends FromOption<M> {
204
132
  *
205
133
  * @interface SelectOption
206
134
  * @extends FromOption
207
- *
208
- * @category Query
209
- * @subcategory Options
210
135
  */
211
- export interface SelectOption<M extends Model> extends FromOption<M> {
212
- /**
213
- * @summary selects distinct values
214
- *
215
- * @param {SelectSelector} selector
216
- * @method
217
- */
218
- distinct(selector: SelectSelector): DistinctOption<M>;
219
- /**
220
- * @summary the maximum value
221
- *
222
- * @param {SelectSelector} selector
223
- * @method
224
- */
225
- max(selector: SelectSelector): MaxOption<M>;
226
- /**
227
- * @summary selects the minimum value
228
- *
229
- * @param {SelectSelector} selector
230
- * @method
231
- */
232
- min(selector: SelectSelector): MinOption<M>;
233
- /**
234
- * @summary counts the records
235
- *
236
- * @param {SelectSelector} selector
237
- * @method
238
- */
239
- count(selector?: SelectSelector): CountOption<M>;
136
+ export interface SelectOption<M extends Model, R> extends FromOption<M, R> {
137
+ distinct<S extends SelectSelector<M>>(selector: S): DistinctOption<M, M[S][]>;
138
+ max<S extends SelectSelector<M>>(selector: S): MaxOption<M, M[S]>;
139
+ min<S extends SelectSelector<M>>(selector: S): MinOption<M, M[S]>;
140
+ count<S extends SelectSelector<M>>(selector?: S): CountOption<M, number>;
240
141
  }
241
142
  /**
242
143
  * @summary Into Option Interface
243
144
  * @description Exposes the remaining options after an INTO
244
145
  *
245
146
  * @interface IntoOption
246
- *
247
- * @category Query
248
- * @subcategory Options
249
147
  */
250
- export interface IntoOption<M extends Model> {
251
- /**
252
- * @summary sets the models to insert
253
- *
254
- * @param {T[]} models
255
- * @method
256
- */
257
- values(...models: M[]): Executor;
258
- /**
259
- * @summary filter records to insert
260
- *
261
- * @param {Condition} condition
262
- * @method
263
- */
264
- where(condition: Condition): Executor;
148
+ export interface IntoOption<M extends Model, R> {
149
+ values(...models: M[]): Executor<R>;
150
+ where(condition: Condition<M>): Executor<R>;
265
151
  }
266
152
  /**
267
153
  * @summary Valuest Option Interface
268
154
  * @description Exposes the remaining options after a VALUES
269
155
  *
270
156
  * @interface ValuesOption
271
- * @extends QueryBuilder
272
- *
273
- * @category Query
274
- * @subcategory Options
275
157
  */
276
- export interface ValuesOption extends Executor {
158
+ export interface ValuesOption<M extends Model> extends Executor<M> {
277
159
  }
278
160
  /**
279
161
  * @summary Insert Option Interface
280
162
  * @description Exposes the remaining options after an INSERT
281
163
  *
282
164
  * @interface InsertOption
283
- *
284
- * @category Query
285
- * @subcategory Options
286
165
  */
287
- export interface InsertOption<M extends Model> {
166
+ export interface InsertOption<M extends Model, R = void> {
288
167
  /**
289
168
  * @summary selects the table to insert records into
290
169
  *
291
170
  * @param {string | Constructor} table
292
171
  * @method
293
172
  */
294
- into(table: Constructor<M>): IntoOption<M>;
173
+ into(table: Constructor<M>): IntoOption<M, R>;
295
174
  }
296
175
  /**
297
176
  * @summary {@link Operator} Option Interface
298
177
  * @description Exposes the available operators for a {@link Condition}
299
178
  *
300
179
  * @interface AttributeOption
301
- *
302
- * @category Query
303
- * @subcategory Conditions
304
180
  */
305
- export interface AttributeOption {
181
+ export interface AttributeOption<M extends Model> {
306
182
  /**
307
183
  * @summary Test equality
308
184
  *
309
185
  * @param {any} val the value to test
310
186
  * @method
311
187
  */
312
- eq(val: any): Condition;
188
+ eq(val: any): Condition<M>;
313
189
  /**
314
190
  * @summary Test difference
315
191
  *
316
192
  * @param {any} val the value to test
317
193
  * @method
318
194
  */
319
- dif(val: any): Condition;
195
+ dif(val: any): Condition<M>;
320
196
  /**
321
197
  * @summary Test greater than
322
198
  *
323
199
  * @param {any} val the value to test
324
200
  * @method
325
201
  */
326
- gt(val: any): Condition;
202
+ gt(val: any): Condition<M>;
327
203
  /**
328
204
  * @summary Test lower than
329
205
  *
330
206
  * @param {any} val the value to test
331
207
  * @method
332
208
  */
333
- lt(val: any): Condition;
209
+ lt(val: any): Condition<M>;
334
210
  /**
335
211
  * @summary Test greater or equal to
336
212
  *
337
213
  * @param {any} val the value to test
338
214
  * @method
339
215
  */
340
- gte(val: any): Condition;
216
+ gte(val: any): Condition<M>;
341
217
  /**
342
218
  * @summary Test lower or equal to
343
219
  *
344
220
  * @param {any} val the value to test
345
221
  * @method
346
222
  */
347
- lte(val: any): Condition;
223
+ lte(val: any): Condition<M>;
348
224
  /**
349
225
  * @summary Test value in a range of values
350
226
  * @param {any[]} val
351
227
  */
352
- in(val: any[]): Condition;
228
+ in(val: any[]): Condition<M>;
353
229
  /**
354
230
  * @summary Test matches {@link RegExp}
355
231
  *
356
232
  * @param {any} val the value to test
357
233
  * @method
358
234
  */
359
- regexp(val: string | RegExp): Condition;
235
+ regexp(val: string | RegExp): Condition<M>;
360
236
  }
361
237
  /**
362
238
  * @summary The starting point for creating Conditions
363
239
  * @description Exposes the available operations for a {@link Condition}
364
240
  *
365
241
  * @interface ConditionBuilderOption
366
- *
367
- * @category Query
368
- * @subcategory Conditions
369
242
  */
370
- export interface ConditionBuilderOption {
371
- attribute(attr: string): AttributeOption;
243
+ export interface ConditionBuilderOption<M extends Model> {
244
+ attribute(attr: keyof M): AttributeOption<M>;
372
245
  }
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyeS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGUgKi9cbmltcG9ydCB7XG4gIEdyb3VwQnlTZWxlY3RvcixcbiAgTGltaXRTZWxlY3RvcixcbiAgT2Zmc2V0U2VsZWN0b3IsXG4gIE9yZGVyQnlTZWxlY3RvcixcbiAgU2VsZWN0U2VsZWN0b3IsXG59IGZyb20gXCIuL3NlbGVjdG9yc1wiO1xuaW1wb3J0IHsgRXhlY3V0b3IgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSBcIi4vQ29uZGl0aW9uXCI7XG5pbXBvcnQgeyBQYWdpbmF0YWJsZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL1BhZ2luYXRhYmxlXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgU3RhdGVtZW50IEJ1aWxkZXIgaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgZmluYWwgbWV0aG9kIHRvIGJ1aWxkIHRoZSBzdGF0ZW1lbnRcbiAqXG4gKiBAdHlwZWRlZiBRIFRoZSBxdWVyeSBvYmplY3QgdHlwZSB0byBidWlsZFxuICogQGludGVyZmFjZSBRdWVyeUJ1aWxkZXJcbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBPcHRpb25zXG4gKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5QnVpbGRlcjxRPiBleHRlbmRzIEV4ZWN1dG9yIHtcbiAgLyoqXG4gICAqIE1ldGhvZCB0byBidWlsZCBhbmQgdmFsaWRhdGUgdGhlIHByZXBhcmVkIHN0YXRlbWVudCBiZWZvcmUgdGhlIGV4ZWN1dGlvbjtcbiAgICpcbiAgICogQHRocm93cyB7UXVlcnlFcnJvcn0gIGZvciBpbnZhbGlkIHN0YXRlbWVudHNcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgYnVpbGQocHJldmlvdXM6IFEpOiBRO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEdyb3VwQnkgT3B0aW9uIGludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIEdST1VQIEJZIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIEdyb3VwQnlPcHRpb25cbiAqIEBleHRlbmRzIFF1ZXJ5QnVpbGRlclxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91cEJ5T3B0aW9uIGV4dGVuZHMgRXhlY3V0b3Ige1xuICAvKipcbiAgICogQHN1bW1hcnkgR3JvdXBzIHJlY29yZHMgYnkgYW4gYXR0cmlidXRlXG4gICAqXG4gICAqIEBwYXJhbSB7R3JvdXBCeVNlbGVjdG9yfSBzZWxlY3RvclxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBncm91cEJ5KHNlbGVjdG9yOiBHcm91cEJ5U2VsZWN0b3IpOiBFeGVjdXRvcjtcbn1cbi8qKlxuICogQHN1bW1hcnkgT2Zmc2V0IE9wdGlvbiBpbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSBPRkZTRVQgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgR3JvdXBCeU9wdGlvblxuICogQGV4dGVuZHMgUXVlcnlCdWlsZGVyXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE9mZnNldE9wdGlvbiBleHRlbmRzIEV4ZWN1dG9yIHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IE9mZnNldHMgdGhlIHJlc3VsdHMgYnkgdGhlIHByb3ZpZGVkIHNlbGVjdG9yXG4gICAqXG4gICAqIEBwYXJhbSB7T2Zmc2V0U2VsZWN0b3J9IHNlbGVjdG9yXG4gICAqIEBtZXRob2RcbiAgICovXG4gIG9mZnNldChzZWxlY3RvcjogT2Zmc2V0U2VsZWN0b3IpOiBFeGVjdXRvcjtcbn1cbi8qKlxuICogQHN1bW1hcnkgTGltaXQgT3B0aW9uIGludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIExJTUlUIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIExpbWl0T3B0aW9uXG4gKiBAZXh0ZW5kcyBRdWVyeUJ1aWxkZXJcbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGltaXRPcHRpb24gZXh0ZW5kcyBFeGVjdXRvciwgUGFnaW5hdGFibGUge1xuICAvKipcbiAgICogQHN1bW1hcnkgTGltaXRzIHRoZSByZXN1bHRzIHRvIHRoZSBwcm92aWRlZCBudW1iZXJcbiAgICpcbiAgICogQHBhcmFtIHtMaW1pdFNlbGVjdG9yfSBzZWxlY3RvclxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBsaW1pdChzZWxlY3RvcjogTGltaXRTZWxlY3Rvcik6IE9mZnNldE9wdGlvbjtcbn1cbi8qKlxuICogQHN1bW1hcnkgT3JkZXJwQnkgT3B0aW9uIGludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIE9SREVSIEJZIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIE9yZGVyQnlPcHRpb25cbiAqIEBleHRlbmRzIFF1ZXJ5QnVpbGRlclxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmRlckJ5T3B0aW9uIGV4dGVuZHMgRXhlY3V0b3IsIFBhZ2luYXRhYmxlIHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IE9yZGVycyB0aGUgcmVzdWx0cyBieSB0aGUgcHJvdmlkZWQgYXR0cmlidXRlIGFuZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkIGRpcmVjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge09yZGVyQnlTZWxlY3Rvcn0gc2VsZWN0b3JcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgb3JkZXJCeSguLi5zZWxlY3RvcjogT3JkZXJCeVNlbGVjdG9yW10pOiBMaW1pdE9wdGlvbiAmIE9mZnNldE9wdGlvbjtcbn1cbi8qKlxuICogQHN1bW1hcnkgR3JvdXBzIHNldmVyYWwgb3JkZXIgYW5kIGdyb3VwaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIE9yZGVyQW5kR3JvdXBPcHRpb25cbiAqIEBleHRlbmRzIE9yZGVyQnlPcHRpb25cbiAqIEBleHRlbmRzIEdyb3VwQnlPcHRpb25cbiAqIEBleHRlbmRzIExpbWl0T3B0aW9uXG4gKiBAZXh0ZW5kcyBPZmZzZXRPcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJBbmRHcm91cE9wdGlvblxuICBleHRlbmRzIE9yZGVyQnlPcHRpb24sXG4gICAgR3JvdXBCeU9wdGlvbixcbiAgICBMaW1pdE9wdGlvbixcbiAgICBPZmZzZXRPcHRpb24ge31cbi8qKlxuICogQHN1bW1hcnkgV2hlcmUgT3B0aW9uIGludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIFdIRVJFIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIFdoZXJlT3B0aW9uXG4gKiBAZXh0ZW5kcyBPcmRlckFuZEdyb3VwT3B0aW9uXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdoZXJlT3B0aW9uIGV4dGVuZHMgT3JkZXJBbmRHcm91cE9wdGlvbiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBmaWx0ZXIgdGhlIHJlY29yZHMgYnkgYSBjb25kaXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtDb25kaXRpb259IGNvbmRpdGlvblxuICAgKiBAbWV0aG9kXG4gICAqL1xuICB3aGVyZShjb25kaXRpb246IENvbmRpdGlvbik6IE9yZGVyQW5kR3JvdXBPcHRpb247XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRnJvbSBPcHRpb24gSW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgRlJPTSBtZXRob2QgYW5kIHJlbWFpbmluZyBvcHRpb25zXG4gKlxuICogQGludGVyZmFjZSBGcm9tT3B0aW9uXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyb21PcHRpb248TSBleHRlbmRzIE1vZGVsPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBzZWxlY3RzIHJlY29yZHMgZnJvbSBhIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3J9IHRhYmxlTmFtZVxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBmcm9tKHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcpOiBXaGVyZU9wdGlvbjtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEaXN0aW5jdCBPcHRpb24gSW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgcmVtYWluaW5nIG9wdGlvbnMgYWZ0ZXIgYSBESVNUSU5DVFxuICpcbiAqIEBpbnRlcmZhY2UgRGlzdGluY3RPcHRpb25cbiAqIEBleHRlbmRzIEZyb21PcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdGluY3RPcHRpb248TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIEZyb21PcHRpb248TT4ge31cblxuLyoqXG4gKiBAc3VtbWFyeSBNYXggT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGEgTUFYXG4gKlxuICogQGludGVyZmFjZSBNYXhPcHRpb25cbiAqIEBleHRlbmRzIEZyb21PcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF4T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbD4gZXh0ZW5kcyBGcm9tT3B0aW9uPE0+IHt9XG5cbi8qKlxuICogQHN1bW1hcnkgTWluIE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIE1JTlxuICpcbiAqIEBpbnRlcmZhY2UgTWluT3B0aW9uXG4gKiBAZXh0ZW5kcyBGcm9tT3B0aW9uXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pbk9wdGlvbjxNIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgRnJvbU9wdGlvbjxNPiB7fVxuXG4vKipcbiAqIEBzdW1tYXJ5IENvdW50IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIENPVU5UXG4gKlxuICogQGludGVyZmFjZSBDb3VudE9wdGlvblxuICogQGV4dGVuZHMgRnJvbU9wdGlvblxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3VudE9wdGlvbjxNIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgRnJvbU9wdGlvbjxNPiB7fVxuXG4vKipcbiAqIEBzdW1tYXJ5IFNlbGVjdCBPcHRpb24gSW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgcmVtYWluaW5nIG9wdGlvbnMgYWZ0ZXIgYSBTRUxFQ1RcbiAqXG4gKiBAaW50ZXJmYWNlIFNlbGVjdE9wdGlvblxuICogQGV4dGVuZHMgRnJvbU9wdGlvblxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RPcHRpb248TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIEZyb21PcHRpb248TT4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgc2VsZWN0cyBkaXN0aW5jdCB2YWx1ZXNcbiAgICpcbiAgICogQHBhcmFtIHtTZWxlY3RTZWxlY3Rvcn0gc2VsZWN0b3JcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZGlzdGluY3Qoc2VsZWN0b3I6IFNlbGVjdFNlbGVjdG9yKTogRGlzdGluY3RPcHRpb248TT47XG4gIC8qKlxuICAgKiBAc3VtbWFyeSB0aGUgbWF4aW11bSB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0ge1NlbGVjdFNlbGVjdG9yfSBzZWxlY3RvclxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBtYXgoc2VsZWN0b3I6IFNlbGVjdFNlbGVjdG9yKTogTWF4T3B0aW9uPE0+O1xuICAvKipcbiAgICogQHN1bW1hcnkgc2VsZWN0cyB0aGUgbWluaW11bSB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0ge1NlbGVjdFNlbGVjdG9yfSBzZWxlY3RvclxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBtaW4oc2VsZWN0b3I6IFNlbGVjdFNlbGVjdG9yKTogTWluT3B0aW9uPE0+O1xuICAvKipcbiAgICogQHN1bW1hcnkgY291bnRzIHRoZSByZWNvcmRzXG4gICAqXG4gICAqIEBwYXJhbSB7U2VsZWN0U2VsZWN0b3J9IHNlbGVjdG9yXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGNvdW50KHNlbGVjdG9yPzogU2VsZWN0U2VsZWN0b3IpOiBDb3VudE9wdGlvbjxNPjtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBJbnRvIE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhbiBJTlRPXG4gKlxuICogQGludGVyZmFjZSBJbnRvT3B0aW9uXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEludG9PcHRpb248TSBleHRlbmRzIE1vZGVsPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBzZXRzIHRoZSBtb2RlbHMgdG8gaW5zZXJ0XG4gICAqXG4gICAqIEBwYXJhbSB7VFtdfSBtb2RlbHNcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgdmFsdWVzKC4uLm1vZGVsczogTVtdKTogRXhlY3V0b3I7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBmaWx0ZXIgcmVjb3JkcyB0byBpbnNlcnRcbiAgICpcbiAgICogQHBhcmFtIHtDb25kaXRpb259IGNvbmRpdGlvblxuICAgKiBAbWV0aG9kXG4gICAqL1xuICB3aGVyZShjb25kaXRpb246IENvbmRpdGlvbik6IEV4ZWN1dG9yO1xufVxuLyoqXG4gKiBAc3VtbWFyeSBWYWx1ZXN0IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIFZBTFVFU1xuICpcbiAqIEBpbnRlcmZhY2UgVmFsdWVzT3B0aW9uXG4gKiBAZXh0ZW5kcyBRdWVyeUJ1aWxkZXJcbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVzT3B0aW9uIGV4dGVuZHMgRXhlY3V0b3Ige31cbi8qKlxuICogQHN1bW1hcnkgSW5zZXJ0IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhbiBJTlNFUlRcbiAqXG4gKiBAaW50ZXJmYWNlIEluc2VydE9wdGlvblxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnNlcnRPcHRpb248TSBleHRlbmRzIE1vZGVsPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBzZWxlY3RzIHRoZSB0YWJsZSB0byBpbnNlcnQgcmVjb3JkcyBpbnRvXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgQ29uc3RydWN0b3J9IHRhYmxlXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGludG8odGFibGU6IENvbnN0cnVjdG9yPE0+KTogSW50b09wdGlvbjxNPjtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSB7QGxpbmsgT3BlcmF0b3J9IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSBhdmFpbGFibGUgb3BlcmF0b3JzIGZvciBhIHtAbGluayBDb25kaXRpb259XG4gKlxuICogQGludGVyZmFjZSBBdHRyaWJ1dGVPcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBDb25kaXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlT3B0aW9uIHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZXF1YWxpdHlcbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbCB0aGUgdmFsdWUgdG8gdGVzdFxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBlcSh2YWw6IGFueSk6IENvbmRpdGlvbjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZGlmZmVyZW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIGRpZih2YWw6IGFueSk6IENvbmRpdGlvbjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZ3JlYXRlciB0aGFuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSB2YWwgdGhlIHZhbHVlIHRvIHRlc3RcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZ3QodmFsOiBhbnkpOiBDb25kaXRpb247XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBUZXN0IGxvd2VyIHRoYW5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbCB0aGUgdmFsdWUgdG8gdGVzdFxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBsdCh2YWw6IGFueSk6IENvbmRpdGlvbjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZ3JlYXRlciBvciBlcXVhbCB0b1xuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIGd0ZSh2YWw6IGFueSk6IENvbmRpdGlvbjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgbG93ZXIgb3IgZXF1YWwgdG9cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbCB0aGUgdmFsdWUgdG8gdGVzdFxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBsdGUodmFsOiBhbnkpOiBDb25kaXRpb247XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBUZXN0IHZhbHVlIGluIGEgcmFuZ2Ugb2YgdmFsdWVzXG4gICAqIEBwYXJhbSB7YW55W119IHZhbFxuICAgKi9cbiAgaW4odmFsOiBhbnlbXSk6IENvbmRpdGlvbjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgbWF0Y2hlcyB7QGxpbmsgUmVnRXhwfVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIHJlZ2V4cCh2YWw6IHN0cmluZyB8IFJlZ0V4cCk6IENvbmRpdGlvbjtcbn1cbi8qKlxuICogQHN1bW1hcnkgVGhlIHN0YXJ0aW5nIHBvaW50IGZvciBjcmVhdGluZyBDb25kaXRpb25zXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgYXZhaWxhYmxlIG9wZXJhdGlvbnMgZm9yIGEge0BsaW5rIENvbmRpdGlvbn1cbiAqXG4gKiBAaW50ZXJmYWNlIENvbmRpdGlvbkJ1aWxkZXJPcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBDb25kaXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uQnVpbGRlck9wdGlvbiB7XG4gIGF0dHJpYnV0ZShhdHRyOiBzdHJpbmcpOiBBdHRyaWJ1dGVPcHRpb247XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyeS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGUgKi9cbmltcG9ydCB7XG4gIEdyb3VwQnlTZWxlY3RvcixcbiAgTGltaXRTZWxlY3RvcixcbiAgT2Zmc2V0U2VsZWN0b3IsXG4gIE9yZGVyQnlTZWxlY3RvcixcbiAgU2VsZWN0U2VsZWN0b3IsXG59IGZyb20gXCIuL3NlbGVjdG9yc1wiO1xuaW1wb3J0IHsgRXhlY3V0b3IgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSBcIi4vQ29uZGl0aW9uXCI7XG5pbXBvcnQgeyBQYWdpbmF0YWJsZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL1BhZ2luYXRhYmxlXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgR3JvdXBCeSBPcHRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgR1JPVVAgQlkgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgR3JvdXBCeU9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwQnlPcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPiBleHRlbmRzIEV4ZWN1dG9yPFI+IHtcbiAgZ3JvdXBCeShzZWxlY3RvcjogR3JvdXBCeVNlbGVjdG9yPE0+KTogRXhlY3V0b3I8Uj47XG59XG4vKipcbiAqIEBzdW1tYXJ5IE9mZnNldCBPcHRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgT0ZGU0VUIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIEdyb3VwQnlPcHRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZmZzZXRPcHRpb248Uj4gZXh0ZW5kcyBFeGVjdXRvcjxSPiB7XG4gIG9mZnNldChzZWxlY3RvcjogT2Zmc2V0U2VsZWN0b3IpOiBFeGVjdXRvcjxSPjtcbn1cbi8qKlxuICogQHN1bW1hcnkgTGltaXQgT3B0aW9uIGludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIExJTUlUIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIExpbWl0T3B0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGltaXRPcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPlxuICBleHRlbmRzIEV4ZWN1dG9yPFI+LFxuICAgIFBhZ2luYXRhYmxlPE0sIFIsIGFueT4ge1xuICBsaW1pdChzZWxlY3RvcjogTGltaXRTZWxlY3Rvcik6IE9mZnNldE9wdGlvbjxSPjtcbn1cbi8qKlxuICogQHN1bW1hcnkgT3JkZXJCeSBPcHRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgT1JERVIgQlkgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgT3JkZXJCeU9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyQnlPcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPlxuICBleHRlbmRzIEV4ZWN1dG9yPFI+LFxuICAgIFBhZ2luYXRhYmxlPE0sIFIsIGFueT4ge1xuICBvcmRlckJ5KHNlbGVjdG9yOiBPcmRlckJ5U2VsZWN0b3I8TT4pOiBMaW1pdE9wdGlvbjxNLCBSPiAmIE9mZnNldE9wdGlvbjxSPjtcbn1cbi8qKlxuICogQHN1bW1hcnkgT3JkZXJCeSBPcHRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgT1JERVIgQlkgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgVGhlbkJ5T3B0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGhlbkJ5T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj5cbiAgZXh0ZW5kcyBMaW1pdE9wdGlvbjxNLCBSPixcbiAgICBPZmZzZXRPcHRpb248Uj4sXG4gICAgRXhlY3V0b3I8Uj4sXG4gICAgUGFnaW5hdGFibGU8TSwgUiwgYW55PiB7XG4gIHRoZW5CeShzZWxlY3RvcjogT3JkZXJCeVNlbGVjdG9yPE0+KTogVGhlbkJ5T3B0aW9uPE0sIFI+O1xufVxuLyoqXG4gKiBAc3VtbWFyeSBHcm91cHMgc2V2ZXJhbCBvcmRlciBhbmQgZ3JvdXBpbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgT3JkZXJBbmRHcm91cE9wdGlvblxuICogQGV4dGVuZHMgT3JkZXJCeU9wdGlvblxuICogQGV4dGVuZHMgR3JvdXBCeU9wdGlvblxuICogQGV4dGVuZHMgTGltaXRPcHRpb25cbiAqIEBleHRlbmRzIE9mZnNldE9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyQW5kR3JvdXBPcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPlxuICBleHRlbmRzIE9yZGVyQnlPcHRpb248TSwgUj4sXG4gICAgRXhlY3V0b3I8Uj4sXG4gICAgR3JvdXBCeU9wdGlvbjxNLCBSPixcbiAgICBMaW1pdE9wdGlvbjxNLCBSPixcbiAgICBPZmZzZXRPcHRpb248Uj4ge31cbi8qKlxuICogQHN1bW1hcnkgV2hlcmUgT3B0aW9uIGludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIFdIRVJFIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIFdoZXJlT3B0aW9uXG4gKiBAZXh0ZW5kcyBPcmRlckFuZEdyb3VwT3B0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2hlcmVPcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPlxuICBleHRlbmRzIE9yZGVyQW5kR3JvdXBPcHRpb248TSwgUj4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgZmlsdGVyIHRoZSByZWNvcmRzIGJ5IGEgY29uZGl0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uZGl0aW9ufSBjb25kaXRpb25cbiAgICogQG1ldGhvZFxuICAgKi9cbiAgd2hlcmUoY29uZGl0aW9uOiBDb25kaXRpb248TT4pOiBPcmRlckFuZEdyb3VwT3B0aW9uPE0sIFI+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEZyb20gT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIEZST00gbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgRnJvbU9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyb21PcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBzZWxlY3RzIHJlY29yZHMgZnJvbSBhIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3J9IHRhYmxlTmFtZVxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBmcm9tKHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcpOiBXaGVyZU9wdGlvbjxNLCBSPjtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEaXN0aW5jdCBPcHRpb24gSW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgcmVtYWluaW5nIG9wdGlvbnMgYWZ0ZXIgYSBESVNUSU5DVFxuICpcbiAqIEBpbnRlcmZhY2UgRGlzdGluY3RPcHRpb25cbiAqIEBleHRlbmRzIEZyb21PcHRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXN0aW5jdE9wdGlvbjxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgRnJvbU9wdGlvbjxNLCBSPiB7fVxuXG4vKipcbiAqIEBzdW1tYXJ5IE1heCBPcHRpb24gSW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgcmVtYWluaW5nIG9wdGlvbnMgYWZ0ZXIgYSBNQVhcbiAqXG4gKiBAaW50ZXJmYWNlIE1heE9wdGlvblxuICogQGV4dGVuZHMgRnJvbU9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1heE9wdGlvbjxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgRnJvbU9wdGlvbjxNLCBSPiB7fVxuXG4vKipcbiAqIEBzdW1tYXJ5IE1pbiBPcHRpb24gSW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgcmVtYWluaW5nIG9wdGlvbnMgYWZ0ZXIgYSBNSU5cbiAqXG4gKiBAaW50ZXJmYWNlIE1pbk9wdGlvblxuICogQGV4dGVuZHMgRnJvbU9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pbk9wdGlvbjxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgRnJvbU9wdGlvbjxNLCBSPiB7fVxuXG4vKipcbiAqIEBzdW1tYXJ5IENvdW50IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIENPVU5UXG4gKlxuICogQGludGVyZmFjZSBDb3VudE9wdGlvblxuICogQGV4dGVuZHMgRnJvbU9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvdW50T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj4gZXh0ZW5kcyBGcm9tT3B0aW9uPE0sIFI+IHt9XG5cbi8qKlxuICogQHN1bW1hcnkgU2VsZWN0IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIFNFTEVDVFxuICpcbiAqIEBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uXG4gKiBAZXh0ZW5kcyBGcm9tT3B0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj4gZXh0ZW5kcyBGcm9tT3B0aW9uPE0sIFI+IHtcbiAgZGlzdGluY3Q8UyBleHRlbmRzIFNlbGVjdFNlbGVjdG9yPE0+PihzZWxlY3RvcjogUyk6IERpc3RpbmN0T3B0aW9uPE0sIE1bU11bXT47XG5cbiAgbWF4PFMgZXh0ZW5kcyBTZWxlY3RTZWxlY3RvcjxNPj4oc2VsZWN0b3I6IFMpOiBNYXhPcHRpb248TSwgTVtTXT47XG5cbiAgbWluPFMgZXh0ZW5kcyBTZWxlY3RTZWxlY3RvcjxNPj4oc2VsZWN0b3I6IFMpOiBNaW5PcHRpb248TSwgTVtTXT47XG5cbiAgY291bnQ8UyBleHRlbmRzIFNlbGVjdFNlbGVjdG9yPE0+PihzZWxlY3Rvcj86IFMpOiBDb3VudE9wdGlvbjxNLCBudW1iZXI+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEludG8gT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGFuIElOVE9cbiAqXG4gKiBAaW50ZXJmYWNlIEludG9PcHRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRvT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj4ge1xuICB2YWx1ZXMoLi4ubW9kZWxzOiBNW10pOiBFeGVjdXRvcjxSPjtcblxuICB3aGVyZShjb25kaXRpb246IENvbmRpdGlvbjxNPik6IEV4ZWN1dG9yPFI+O1xufVxuLyoqXG4gKiBAc3VtbWFyeSBWYWx1ZXN0IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIFZBTFVFU1xuICpcbiAqIEBpbnRlcmZhY2UgVmFsdWVzT3B0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVzT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbD4gZXh0ZW5kcyBFeGVjdXRvcjxNPiB7fVxuLyoqXG4gKiBAc3VtbWFyeSBJbnNlcnQgT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGFuIElOU0VSVFxuICpcbiAqIEBpbnRlcmZhY2UgSW5zZXJ0T3B0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zZXJ0T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUiA9IHZvaWQ+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHNlbGVjdHMgdGhlIHRhYmxlIHRvIGluc2VydCByZWNvcmRzIGludG9cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBDb25zdHJ1Y3Rvcn0gdGFibGVcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgaW50byh0YWJsZTogQ29uc3RydWN0b3I8TT4pOiBJbnRvT3B0aW9uPE0sIFI+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IHtAbGluayBPcGVyYXRvcn0gT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIGF2YWlsYWJsZSBvcGVyYXRvcnMgZm9yIGEge0BsaW5rIENvbmRpdGlvbn1cbiAqXG4gKiBAaW50ZXJmYWNlIEF0dHJpYnV0ZU9wdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZU9wdGlvbjxNIGV4dGVuZHMgTW9kZWw+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZXF1YWxpdHlcbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbCB0aGUgdmFsdWUgdG8gdGVzdFxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBlcSh2YWw6IGFueSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZGlmZmVyZW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIGRpZih2YWw6IGFueSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZ3JlYXRlciB0aGFuXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSB2YWwgdGhlIHZhbHVlIHRvIHRlc3RcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZ3QodmFsOiBhbnkpOiBDb25kaXRpb248TT47XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBUZXN0IGxvd2VyIHRoYW5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbCB0aGUgdmFsdWUgdG8gdGVzdFxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBsdCh2YWw6IGFueSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgZ3JlYXRlciBvciBlcXVhbCB0b1xuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIGd0ZSh2YWw6IGFueSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgbG93ZXIgb3IgZXF1YWwgdG9cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbCB0aGUgdmFsdWUgdG8gdGVzdFxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBsdGUodmFsOiBhbnkpOiBDb25kaXRpb248TT47XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBUZXN0IHZhbHVlIGluIGEgcmFuZ2Ugb2YgdmFsdWVzXG4gICAqIEBwYXJhbSB7YW55W119IHZhbFxuICAgKi9cbiAgaW4odmFsOiBhbnlbXSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgbWF0Y2hlcyB7QGxpbmsgUmVnRXhwfVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIHJlZ2V4cCh2YWw6IHN0cmluZyB8IFJlZ0V4cCk6IENvbmRpdGlvbjxNPjtcbn1cbi8qKlxuICogQHN1bW1hcnkgVGhlIHN0YXJ0aW5nIHBvaW50IGZvciBjcmVhdGluZyBDb25kaXRpb25zXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgYXZhaWxhYmxlIG9wZXJhdGlvbnMgZm9yIGEge0BsaW5rIENvbmRpdGlvbn1cbiAqXG4gKiBAaW50ZXJmYWNlIENvbmRpdGlvbkJ1aWxkZXJPcHRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25CdWlsZGVyT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbD4ge1xuICBhdHRyaWJ1dGUoYXR0cjoga2V5b2YgTSk6IEF0dHJpYnV0ZU9wdGlvbjxNPjtcbn1cbiJdfQ==
@@ -1,38 +1,8 @@
1
1
  import { OrderDirection } from "../repository";
2
2
  import { Constructor, Model } from "@decaf-ts/decorator-validation";
3
- /**
4
- * @typedef FromSelector
5
- *
6
- * @category Clauses
7
- */
8
3
  export type FromSelector<M extends Model> = Constructor<M> | string;
9
- /**
10
- * @typedef GroupBySelector
11
- *
12
- * @category Clauses
13
- */
14
- export type GroupBySelector = string;
15
- /**
16
- * @typedef OrderBySelector
17
- *
18
- * @category Clauses
19
- */
20
- export type OrderBySelector = [string, OrderDirection];
21
- /**
22
- * @typedef LimitSelector
23
- *
24
- * @category Clauses
25
- */
4
+ export type GroupBySelector<M extends Model> = keyof M;
5
+ export type OrderBySelector<M extends Model> = [keyof M, OrderDirection];
26
6
  export type LimitSelector = number;
27
- /**
28
- * @typedef OffsetSelector
29
- *
30
- * @category Clauses
31
- */
32
7
  export type OffsetSelector = number;
33
- /**
34
- * @typedef SelectSelector
35
- *
36
- * @category Clauses
37
- */
38
- export type SelectSelector = string | string[];
8
+ export type SelectSelector<M extends Model> = keyof M;
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24gfSBmcm9tIFwiLi4vcmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEB0eXBlZGVmIEZyb21TZWxlY3RvclxuICpcbiAqIEBjYXRlZ29yeSBDbGF1c2VzXG4gKi9cbmV4cG9ydCB0eXBlIEZyb21TZWxlY3RvcjxNIGV4dGVuZHMgTW9kZWw+ID0gQ29uc3RydWN0b3I8TT4gfCBzdHJpbmc7XG4vKipcbiAqIEB0eXBlZGVmIEdyb3VwQnlTZWxlY3RvclxuICpcbiAqIEBjYXRlZ29yeSBDbGF1c2VzXG4gKi9cbmV4cG9ydCB0eXBlIEdyb3VwQnlTZWxlY3RvciA9IHN0cmluZztcbi8qKlxuICogQHR5cGVkZWYgT3JkZXJCeVNlbGVjdG9yXG4gKlxuICogQGNhdGVnb3J5IENsYXVzZXNcbiAqL1xuZXhwb3J0IHR5cGUgT3JkZXJCeVNlbGVjdG9yID0gW3N0cmluZywgT3JkZXJEaXJlY3Rpb25dO1xuLyoqXG4gKiBAdHlwZWRlZiBMaW1pdFNlbGVjdG9yXG4gKlxuICogQGNhdGVnb3J5IENsYXVzZXNcbiAqL1xuZXhwb3J0IHR5cGUgTGltaXRTZWxlY3RvciA9IG51bWJlcjtcbi8qKlxuICogQHR5cGVkZWYgT2Zmc2V0U2VsZWN0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgQ2xhdXNlc1xuICovXG5leHBvcnQgdHlwZSBPZmZzZXRTZWxlY3RvciA9IG51bWJlcjtcblxuLy8gZXhwb3J0IHR5cGUgU2VsZWN0RnVuY3Rpb248VCA9IGFueT4gPSAob2JqOiBUKSA9PiBUIHwgYW55O1xuLyoqXG4gKiBAdHlwZWRlZiBTZWxlY3RTZWxlY3RvclxuICpcbiAqIEBjYXRlZ29yeSBDbGF1c2VzXG4gKi9cbmV4cG9ydCB0eXBlIFNlbGVjdFNlbGVjdG9yID0gc3RyaW5nIHwgc3RyaW5nW107XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24gfSBmcm9tIFwiLi4vcmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgdHlwZSBGcm9tU2VsZWN0b3I8TSBleHRlbmRzIE1vZGVsPiA9IENvbnN0cnVjdG9yPE0+IHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBHcm91cEJ5U2VsZWN0b3I8TSBleHRlbmRzIE1vZGVsPiA9IGtleW9mIE07XG5cbmV4cG9ydCB0eXBlIE9yZGVyQnlTZWxlY3RvcjxNIGV4dGVuZHMgTW9kZWw+ID0gW2tleW9mIE0sIE9yZGVyRGlyZWN0aW9uXTtcblxuZXhwb3J0IHR5cGUgTGltaXRTZWxlY3RvciA9IG51bWJlcjtcblxuZXhwb3J0IHR5cGUgT2Zmc2V0U2VsZWN0b3IgPSBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdFNlbGVjdG9yPE0gZXh0ZW5kcyBNb2RlbD4gPSBrZXlvZiBNO1xuIl19
@@ -0,0 +1,32 @@
1
+ import { RamFlags, RawRamQuery, RamStorage, RamRepository } from "./types";
2
+ import { RamStatement } from "./RamStatement";
3
+ import { RamContext } from "./RamContext";
4
+ import { Adapter, Sequence } from "../persistence";
5
+ import { SequenceOptions } from "../interfaces";
6
+ import { Constructor, Model } from "@decaf-ts/decorator-validation";
7
+ import { BaseError, OperationKeys } from "@decaf-ts/db-decorators";
8
+ export declare class RamAdapter extends Adapter<RamStorage, RawRamQuery<any>, RamFlags, RamContext> {
9
+ constructor(alias?: string);
10
+ repository<M extends Model>(): Constructor<RamRepository<M>>;
11
+ flags<M extends Model>(operation: OperationKeys, model: Constructor<M>, flags: Partial<RamFlags>): RamFlags;
12
+ Context: typeof RamContext;
13
+ private indexes;
14
+ private lock;
15
+ initialize(...args: any[]): Promise<void>;
16
+ index(...models: Record<string, any>[]): Promise<any>;
17
+ prepare<M extends Model>(model: M, pk: keyof M): {
18
+ record: Record<string, any>;
19
+ id: string;
20
+ };
21
+ revert<M extends Model>(obj: Record<string, any>, clazz: string | Constructor<M>, pk: keyof M, id: string | number): M;
22
+ create(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
23
+ read(tableName: string, id: string | number): Promise<Record<string, any>>;
24
+ update(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
25
+ delete(tableName: string, id: string | number): Promise<Record<string, any>>;
26
+ protected tableFor<M extends Model>(from: string | Constructor<M>): Map<string | number, any> | undefined;
27
+ raw<R>(rawInput: RawRamQuery<any>): Promise<R>;
28
+ parseError<V extends BaseError>(err: Error): V;
29
+ Statement<M extends Model>(): RamStatement<M, any>;
30
+ Sequence(options: SequenceOptions): Promise<Sequence>;
31
+ static decoration(): void;
32
+ }