@decaf-ts/core 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/README.md +4 -4
  2. package/dist/core.bundle.min.js +1 -1
  3. package/dist/esm/core.bundle.min.esm.js +1 -1
  4. package/lib/esm/identity/decorators.d.ts +4 -10
  5. package/lib/esm/identity/decorators.js +57 -1
  6. package/lib/esm/identity/index.js +3 -1
  7. package/lib/esm/identity/utils.d.ts +2 -0
  8. package/lib/esm/identity/utils.js +6 -0
  9. package/lib/esm/index.d.ts +3 -1
  10. package/lib/esm/index.js +30 -1
  11. package/lib/esm/interfaces/Builder.js +3 -0
  12. package/lib/esm/interfaces/Executor.d.ts +3 -1
  13. package/lib/esm/interfaces/Executor.js +3 -0
  14. package/lib/esm/interfaces/Observable.js +3 -0
  15. package/lib/esm/interfaces/Observer.js +3 -0
  16. package/lib/esm/interfaces/Queriable.d.ts +6 -0
  17. package/lib/esm/interfaces/Queriable.js +3 -0
  18. package/lib/esm/interfaces/RawExecutor.d.ts +4 -3
  19. package/lib/esm/interfaces/RawExecutor.js +3 -0
  20. package/lib/esm/interfaces/Sequence.d.ts +3 -2
  21. package/lib/esm/interfaces/Sequence.js +10 -0
  22. package/lib/esm/interfaces/SequenceOptions.d.ts +9 -1
  23. package/lib/esm/interfaces/SequenceOptions.js +20 -0
  24. package/lib/esm/interfaces/index.d.ts +1 -0
  25. package/lib/esm/interfaces/index.js +10 -1
  26. package/lib/esm/model/BaseModel.d.ts +2 -3
  27. package/lib/esm/model/BaseModel.js +28 -1
  28. package/lib/esm/model/decorators.d.ts +6 -5
  29. package/lib/esm/model/decorators.js +55 -1
  30. package/lib/esm/model/index.js +4 -1
  31. package/lib/esm/persistence/Adapter.d.ts +43 -14
  32. package/lib/esm/persistence/Adapter.js +153 -1
  33. package/lib/esm/persistence/constants.d.ts +11 -1
  34. package/lib/esm/persistence/constants.js +14 -1
  35. package/lib/esm/persistence/decorators.d.ts +1 -2
  36. package/lib/esm/persistence/decorators.js +10 -1
  37. package/lib/esm/persistence/errors.d.ts +4 -0
  38. package/lib/esm/persistence/errors.js +8 -0
  39. package/lib/esm/persistence/index.d.ts +1 -0
  40. package/lib/esm/persistence/index.js +7 -1
  41. package/lib/esm/persistence/utils.d.ts +2 -2
  42. package/lib/esm/persistence/utils.js +12 -1
  43. package/lib/esm/query/Clause.d.ts +43 -0
  44. package/lib/esm/query/Clause.js +76 -0
  45. package/lib/esm/query/ClauseFactory.d.ts +71 -0
  46. package/lib/esm/query/ClauseFactory.js +7 -0
  47. package/lib/esm/query/Condition.d.ts +75 -0
  48. package/lib/esm/query/Condition.js +248 -0
  49. package/lib/esm/query/Query.d.ts +43 -0
  50. package/lib/esm/query/Query.js +55 -0
  51. package/lib/esm/query/Statement.d.ts +49 -0
  52. package/lib/esm/query/Statement.js +163 -0
  53. package/lib/esm/query/clauses/FromClause.d.ts +45 -0
  54. package/lib/esm/query/clauses/FromClause.js +60 -0
  55. package/lib/esm/query/clauses/GroupByClause.d.ts +21 -0
  56. package/lib/esm/query/clauses/GroupByClause.js +20 -0
  57. package/lib/esm/query/clauses/InsertClause.d.ts +37 -0
  58. package/lib/esm/query/clauses/InsertClause.js +56 -0
  59. package/lib/esm/query/clauses/LimitClause.d.ts +29 -0
  60. package/lib/esm/query/clauses/LimitClause.js +28 -0
  61. package/lib/esm/query/clauses/OffsetClause.d.ts +21 -0
  62. package/lib/esm/query/clauses/OffsetClause.js +20 -0
  63. package/lib/esm/query/clauses/OrderByClause.d.ts +37 -0
  64. package/lib/esm/query/clauses/OrderByClause.js +40 -0
  65. package/lib/esm/query/clauses/SelectClause.d.ts +47 -0
  66. package/lib/esm/query/clauses/SelectClause.js +63 -0
  67. package/lib/esm/query/clauses/SelectorBasedClause.d.ts +25 -0
  68. package/lib/esm/query/clauses/SelectorBasedClause.js +45 -0
  69. package/lib/esm/query/clauses/ValuesClause.d.ts +21 -0
  70. package/lib/esm/query/clauses/ValuesClause.js +37 -0
  71. package/lib/esm/query/clauses/WhereClause.d.ts +46 -0
  72. package/lib/esm/query/clauses/WhereClause.js +72 -0
  73. package/lib/esm/query/clauses/index.d.ts +10 -0
  74. package/lib/esm/query/clauses/index.js +12 -0
  75. package/lib/esm/query/constants.d.ts +79 -0
  76. package/lib/esm/query/constants.js +88 -0
  77. package/lib/esm/query/errors.d.ts +4 -0
  78. package/lib/esm/query/errors.js +8 -0
  79. package/lib/esm/query/index.d.ts +11 -0
  80. package/lib/esm/query/index.js +13 -0
  81. package/lib/esm/query/options.d.ts +371 -0
  82. package/lib/esm/query/options.js +3 -0
  83. package/lib/esm/query/selectors.d.ts +38 -0
  84. package/lib/esm/query/selectors.js +3 -0
  85. package/lib/esm/query/types.d.ts +2 -0
  86. package/lib/esm/query/types.js +3 -0
  87. package/lib/esm/repository/Repository.d.ts +27 -11
  88. package/lib/esm/repository/Repository.js +246 -1
  89. package/lib/esm/repository/constants.js +31 -1
  90. package/lib/esm/repository/decorators.d.ts +2 -3
  91. package/lib/esm/repository/decorators.js +27 -1
  92. package/lib/esm/repository/errors.js +16 -1
  93. package/lib/esm/repository/index.d.ts +1 -0
  94. package/lib/esm/repository/index.js +9 -1
  95. package/lib/esm/repository/injectables.d.ts +5 -0
  96. package/lib/esm/repository/injectables.js +32 -0
  97. package/lib/esm/repository/types.js +3 -0
  98. package/lib/esm/repository/utils.d.ts +4 -3
  99. package/lib/esm/repository/utils.js +45 -1
  100. package/lib/esm/validators/ClauseSequenceValidator.d.ts +28 -0
  101. package/lib/esm/validators/ClauseSequenceValidator.js +95 -0
  102. package/lib/esm/validators/decorators.d.ts +10 -0
  103. package/lib/esm/validators/decorators.js +25 -0
  104. package/lib/esm/validators/index.d.ts +2 -0
  105. package/lib/esm/validators/index.js +4 -0
  106. package/lib/identity/decorators.cjs +61 -1
  107. package/lib/identity/decorators.d.ts +4 -10
  108. package/lib/identity/index.cjs +19 -1
  109. package/lib/identity/utils.cjs +9 -0
  110. package/lib/identity/utils.d.ts +2 -0
  111. package/lib/index.cjs +47 -1
  112. package/lib/index.d.ts +3 -1
  113. package/lib/interfaces/Builder.cjs +4 -1
  114. package/lib/interfaces/Executor.cjs +4 -1
  115. package/lib/interfaces/Executor.d.ts +3 -1
  116. package/lib/interfaces/Observable.cjs +4 -1
  117. package/lib/interfaces/Observer.cjs +4 -1
  118. package/lib/interfaces/Queriable.cjs +4 -0
  119. package/lib/interfaces/Queriable.d.ts +6 -0
  120. package/lib/interfaces/RawExecutor.cjs +4 -1
  121. package/lib/interfaces/RawExecutor.d.ts +4 -3
  122. package/lib/interfaces/Sequence.cjs +11 -1
  123. package/lib/interfaces/Sequence.d.ts +3 -2
  124. package/lib/interfaces/SequenceOptions.cjs +23 -1
  125. package/lib/interfaces/SequenceOptions.d.ts +9 -1
  126. package/lib/interfaces/index.cjs +26 -1
  127. package/lib/interfaces/index.d.ts +1 -0
  128. package/lib/model/BaseModel.cjs +32 -1
  129. package/lib/model/BaseModel.d.ts +2 -3
  130. package/lib/model/decorators.cjs +62 -1
  131. package/lib/model/decorators.d.ts +6 -5
  132. package/lib/model/index.cjs +20 -1
  133. package/lib/persistence/Adapter.cjs +157 -1
  134. package/lib/persistence/Adapter.d.ts +43 -14
  135. package/lib/persistence/constants.cjs +17 -1
  136. package/lib/persistence/constants.d.ts +11 -1
  137. package/lib/persistence/decorators.cjs +13 -1
  138. package/lib/persistence/decorators.d.ts +1 -2
  139. package/lib/persistence/errors.cjs +12 -0
  140. package/lib/persistence/errors.d.ts +4 -0
  141. package/lib/persistence/index.cjs +23 -1
  142. package/lib/persistence/index.d.ts +1 -0
  143. package/lib/persistence/utils.cjs +16 -1
  144. package/lib/persistence/utils.d.ts +2 -2
  145. package/lib/query/Clause.cjs +80 -0
  146. package/lib/query/Clause.d.ts +43 -0
  147. package/lib/query/ClauseFactory.cjs +11 -0
  148. package/lib/query/ClauseFactory.d.ts +71 -0
  149. package/lib/query/Condition.cjs +252 -0
  150. package/lib/query/Condition.d.ts +75 -0
  151. package/lib/query/Query.cjs +59 -0
  152. package/lib/query/Query.d.ts +43 -0
  153. package/lib/query/Statement.cjs +167 -0
  154. package/lib/query/Statement.d.ts +49 -0
  155. package/lib/query/clauses/FromClause.cjs +64 -0
  156. package/lib/query/clauses/FromClause.d.ts +45 -0
  157. package/lib/query/clauses/GroupByClause.cjs +24 -0
  158. package/lib/query/clauses/GroupByClause.d.ts +21 -0
  159. package/lib/query/clauses/InsertClause.cjs +60 -0
  160. package/lib/query/clauses/InsertClause.d.ts +37 -0
  161. package/lib/query/clauses/LimitClause.cjs +32 -0
  162. package/lib/query/clauses/LimitClause.d.ts +29 -0
  163. package/lib/query/clauses/OffsetClause.cjs +24 -0
  164. package/lib/query/clauses/OffsetClause.d.ts +21 -0
  165. package/lib/query/clauses/OrderByClause.cjs +44 -0
  166. package/lib/query/clauses/OrderByClause.d.ts +37 -0
  167. package/lib/query/clauses/SelectClause.cjs +67 -0
  168. package/lib/query/clauses/SelectClause.d.ts +47 -0
  169. package/lib/query/clauses/SelectorBasedClause.cjs +49 -0
  170. package/lib/query/clauses/SelectorBasedClause.d.ts +25 -0
  171. package/lib/query/clauses/ValuesClause.cjs +41 -0
  172. package/lib/query/clauses/ValuesClause.d.ts +21 -0
  173. package/lib/query/clauses/WhereClause.cjs +76 -0
  174. package/lib/query/clauses/WhereClause.d.ts +46 -0
  175. package/lib/query/clauses/index.cjs +28 -0
  176. package/lib/query/clauses/index.d.ts +10 -0
  177. package/lib/query/constants.cjs +91 -0
  178. package/lib/query/constants.d.ts +79 -0
  179. package/lib/query/errors.cjs +12 -0
  180. package/lib/query/errors.d.ts +4 -0
  181. package/lib/query/index.cjs +29 -0
  182. package/lib/query/index.d.ts +11 -0
  183. package/lib/query/options.cjs +4 -0
  184. package/lib/query/options.d.ts +371 -0
  185. package/lib/query/selectors.cjs +4 -0
  186. package/lib/query/selectors.d.ts +38 -0
  187. package/lib/query/types.cjs +4 -0
  188. package/lib/query/types.d.ts +2 -0
  189. package/lib/repository/Repository.cjs +250 -1
  190. package/lib/repository/Repository.d.ts +27 -11
  191. package/lib/repository/constants.cjs +34 -1
  192. package/lib/repository/decorators.cjs +30 -1
  193. package/lib/repository/decorators.d.ts +2 -3
  194. package/lib/repository/errors.cjs +20 -1
  195. package/lib/repository/index.cjs +25 -1
  196. package/lib/repository/index.d.ts +1 -0
  197. package/lib/repository/injectables.cjs +36 -0
  198. package/lib/repository/injectables.d.ts +5 -0
  199. package/lib/repository/types.cjs +4 -1
  200. package/lib/repository/utils.cjs +50 -1
  201. package/lib/repository/utils.d.ts +6 -0
  202. package/lib/validators/ClauseSequenceValidator.cjs +98 -0
  203. package/lib/validators/ClauseSequenceValidator.d.ts +28 -0
  204. package/lib/validators/decorators.cjs +28 -0
  205. package/lib/validators/decorators.d.ts +10 -0
  206. package/lib/validators/index.cjs +20 -0
  207. package/lib/validators/index.d.ts +2 -0
  208. package/package.json +14 -11
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderByClause = void 0;
4
+ const SelectorBasedClause_1 = require("./SelectorBasedClause.cjs");
5
+ const constants_1 = require("../constants.cjs");
6
+ /**
7
+ * @summary The ORDER BY clause
8
+ *
9
+ * @param {ClauseArg} [clause]
10
+ *
11
+ * @class OrderByClause
12
+ * @extends SelectorBasedClause
13
+ * @implements LimitOption
14
+ * @implements OffsetOption
15
+ *
16
+ * @category Query
17
+ * @subcategory Clauses
18
+ */
19
+ class OrderByClause extends SelectorBasedClause_1.SelectorBasedClause {
20
+ constructor(clause) {
21
+ super(Object.assign({}, clause, { priority: constants_1.Priority.ORDER_BY }));
22
+ }
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ groupBy(selector) {
27
+ return this.Clauses.groupBy(this.statement, selector);
28
+ }
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ limit(selector) {
33
+ return this.Clauses.limit(this.statement, selector);
34
+ }
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ offset(selector) {
39
+ return this.Clauses.offset(this.statement, selector);
40
+ }
41
+ }
42
+ exports.OrderByClause = OrderByClause;
43
+
44
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL09yZGVyQnlDbGF1c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTREO0FBQzVELDRDQUF3QztBQVV4Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFzQixhQUNwQixTQUFRLHlDQUF5QztJQUdqRCxZQUFzQixNQUFtQztRQUN2RCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLG9CQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFLRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxRQUF5QjtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFFBQXVCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBd0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQTdCRCxzQ0E2QkMiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9PcmRlckJ5Q2xhdXNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0b3JCYXNlZENsYXVzZSB9IGZyb20gXCIuL1NlbGVjdG9yQmFzZWRDbGF1c2VcIjtcbmltcG9ydCB7IFByaW9yaXR5IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgR3JvdXBCeVNlbGVjdG9yLFxuICBMaW1pdFNlbGVjdG9yLFxuICBPZmZzZXRTZWxlY3RvcixcbiAgT3JkZXJCeVNlbGVjdG9yLFxufSBmcm9tIFwiLi4vc2VsZWN0b3JzXCI7XG5pbXBvcnQgeyBMaW1pdE9wdGlvbiwgT2Zmc2V0T3B0aW9uIH0gZnJvbSBcIi4uL29wdGlvbnNcIjtcbmltcG9ydCB7IEV4ZWN1dG9yIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuLyoqXG4gKiBAc3VtbWFyeSBUaGUgT1JERVIgQlkgY2xhdXNlXG4gKlxuICogQHBhcmFtIHtDbGF1c2VBcmd9IFtjbGF1c2VdXG4gKlxuICogQGNsYXNzIE9yZGVyQnlDbGF1c2VcbiAqIEBleHRlbmRzIFNlbGVjdG9yQmFzZWRDbGF1c2VcbiAqIEBpbXBsZW1lbnRzIExpbWl0T3B0aW9uXG4gKiBAaW1wbGVtZW50cyBPZmZzZXRPcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBDbGF1c2VzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcmRlckJ5Q2xhdXNlPFE+XG4gIGV4dGVuZHMgU2VsZWN0b3JCYXNlZENsYXVzZTxRLCBPcmRlckJ5U2VsZWN0b3JbXT5cbiAgaW1wbGVtZW50cyBMaW1pdE9wdGlvbiwgT2Zmc2V0T3B0aW9uXG57XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF1c2U/OiBNb2RlbEFyZzxPcmRlckJ5Q2xhdXNlPFE+Pikge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIGNsYXVzZSwgeyBwcmlvcml0eTogUHJpb3JpdHkuT1JERVJfQlkgfSkpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQocXVlcnk6IFEpOiBRO1xuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGdyb3VwQnkoc2VsZWN0b3I6IEdyb3VwQnlTZWxlY3Rvcik6IEV4ZWN1dG9yIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLmdyb3VwQnkodGhpcy5zdGF0ZW1lbnQsIHNlbGVjdG9yKTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGxpbWl0KHNlbGVjdG9yOiBMaW1pdFNlbGVjdG9yKTogT2Zmc2V0T3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLmxpbWl0KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBvZmZzZXQoc2VsZWN0b3I6IE9mZnNldFNlbGVjdG9yKTogRXhlY3V0b3Ige1xuICAgIHJldHVybiB0aGlzLkNsYXVzZXMub2Zmc2V0KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { SelectorBasedClause } from "./SelectorBasedClause";
2
+ import { GroupBySelector, LimitSelector, OffsetSelector, OrderBySelector } from "../selectors";
3
+ import { LimitOption, OffsetOption } from "../options";
4
+ import { Executor } from "../../interfaces";
5
+ import { ModelArg } from "@decaf-ts/decorator-validation";
6
+ /**
7
+ * @summary The ORDER BY clause
8
+ *
9
+ * @param {ClauseArg} [clause]
10
+ *
11
+ * @class OrderByClause
12
+ * @extends SelectorBasedClause
13
+ * @implements LimitOption
14
+ * @implements OffsetOption
15
+ *
16
+ * @category Query
17
+ * @subcategory Clauses
18
+ */
19
+ export declare abstract class OrderByClause<Q> extends SelectorBasedClause<Q, OrderBySelector[]> implements LimitOption, OffsetOption {
20
+ protected constructor(clause?: ModelArg<OrderByClause<Q>>);
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ abstract build(query: Q): Q;
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ groupBy(selector: GroupBySelector): Executor;
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ limit(selector: LimitSelector): OffsetOption;
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ offset(selector: OffsetSelector): Executor;
37
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectClause = void 0;
4
+ const SelectorBasedClause_1 = require("./SelectorBasedClause.cjs");
5
+ const constants_1 = require("../constants.cjs");
6
+ /**
7
+ * @summary The SELECT clause
8
+ *
9
+ * @param {ClauseArg} [clause]
10
+ *
11
+ * @class SelectClause
12
+ * @extends SelectorBasedClause
13
+ * @implements SelectOption
14
+ *
15
+ * @category Query
16
+ * @subcategory Clauses
17
+ */
18
+ class SelectClause extends SelectorBasedClause_1.SelectorBasedClause {
19
+ constructor(clause) {
20
+ super(Object.assign({}, clause, { priority: constants_1.Priority.SELECT }));
21
+ this.isDistinct = false;
22
+ this.isCount = false;
23
+ this.isMax = false;
24
+ this.isMin = false;
25
+ if (this.selector === constants_1.Const.FULL_RECORD)
26
+ this.statement.setFullRecord();
27
+ this.statement.setMode(constants_1.StatementType.QUERY);
28
+ }
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ distinct(selector) {
33
+ this.isDistinct = true;
34
+ this.selector = selector;
35
+ return this;
36
+ }
37
+ /**
38
+ * @inheritDoc
39
+ */
40
+ count(selector) {
41
+ this.selector = selector;
42
+ return this;
43
+ }
44
+ /**
45
+ * @inheritDoc
46
+ */
47
+ min(selector) {
48
+ this.selector = selector;
49
+ return this;
50
+ }
51
+ /**
52
+ * @inheritDoc
53
+ */
54
+ max(selector) {
55
+ this.selector = selector;
56
+ return this;
57
+ }
58
+ /**
59
+ * @inheritDoc
60
+ */
61
+ from(tableName) {
62
+ return this.Clauses.from(this.statement, tableName);
63
+ }
64
+ }
65
+ exports.SelectClause = SelectClause;
66
+
67
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL1NlbGVjdENsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBNEQ7QUFTNUQsNENBQThEO0FBSTlEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBc0IsWUFDcEIsU0FBUSx5Q0FBc0M7SUFROUMsWUFBc0IsTUFBcUM7UUFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxvQkFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQU4xRCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFVBQUssR0FBRyxLQUFLLENBQUM7UUFJcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGlCQUFLLENBQUMsV0FBVztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMseUJBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBS0Q7O09BRUc7SUFDSCxRQUFRLENBQUMsUUFBd0I7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLLENBQUMsUUFBd0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxHQUFHLENBQUMsUUFBd0I7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxHQUFHLENBQUMsUUFBd0I7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUFJLENBQUMsU0FBeUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQXJERCxvQ0FxREMiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9TZWxlY3RDbGF1c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RvckJhc2VkQ2xhdXNlIH0gZnJvbSBcIi4vU2VsZWN0b3JCYXNlZENsYXVzZVwiO1xuaW1wb3J0IHtcbiAgQ291bnRPcHRpb24sXG4gIERpc3RpbmN0T3B0aW9uLFxuICBNYXhPcHRpb24sXG4gIE1pbk9wdGlvbixcbiAgU2VsZWN0T3B0aW9uLFxuICBXaGVyZU9wdGlvbixcbn0gZnJvbSBcIi4uL29wdGlvbnNcIjtcbmltcG9ydCB7IENvbnN0LCBQcmlvcml0eSwgU3RhdGVtZW50VHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbEFyZywgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBTZWxlY3RTZWxlY3RvciB9IGZyb20gXCIuLi9zZWxlY3RvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgU0VMRUNUIGNsYXVzZVxuICpcbiAqIEBwYXJhbSB7Q2xhdXNlQXJnfSBbY2xhdXNlXVxuICpcbiAqIEBjbGFzcyBTZWxlY3RDbGF1c2VcbiAqIEBleHRlbmRzIFNlbGVjdG9yQmFzZWRDbGF1c2VcbiAqIEBpbXBsZW1lbnRzIFNlbGVjdE9wdGlvblxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IENsYXVzZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlbGVjdENsYXVzZTxRLCBNIGV4dGVuZHMgTW9kZWw+XG4gIGV4dGVuZHMgU2VsZWN0b3JCYXNlZENsYXVzZTxRLCBTZWxlY3RTZWxlY3Rvcj5cbiAgaW1wbGVtZW50cyBTZWxlY3RPcHRpb248TT5cbntcbiAgcHJpdmF0ZSBpc0Rpc3RpbmN0OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaXNDb3VudCA9IGZhbHNlO1xuICBwcml2YXRlIGlzTWF4ID0gZmFsc2U7XG4gIHByaXZhdGUgaXNNaW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY2xhdXNlPzogTW9kZWxBcmc8U2VsZWN0Q2xhdXNlPFEsIE0+Pikge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIGNsYXVzZSwgeyBwcmlvcml0eTogUHJpb3JpdHkuU0VMRUNUIH0pKTtcbiAgICBpZiAodGhpcy5zZWxlY3RvciA9PT0gQ29uc3QuRlVMTF9SRUNPUkQpIHRoaXMuc3RhdGVtZW50LnNldEZ1bGxSZWNvcmQoKTtcbiAgICB0aGlzLnN0YXRlbWVudC5zZXRNb2RlKFN0YXRlbWVudFR5cGUuUVVFUlkpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQocXVlcnk6IFEpOiBRO1xuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGRpc3RpbmN0KHNlbGVjdG9yOiBTZWxlY3RTZWxlY3Rvcik6IERpc3RpbmN0T3B0aW9uPE0+IHtcbiAgICB0aGlzLmlzRGlzdGluY3QgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGNvdW50KHNlbGVjdG9yOiBTZWxlY3RTZWxlY3Rvcik6IENvdW50T3B0aW9uPE0+IHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBtaW4oc2VsZWN0b3I6IFNlbGVjdFNlbGVjdG9yKTogTWluT3B0aW9uPE0+IHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBtYXgoc2VsZWN0b3I6IFNlbGVjdFNlbGVjdG9yKTogTWF4T3B0aW9uPE0+IHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBmcm9tKHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4pOiBXaGVyZU9wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuQ2xhdXNlcy5mcm9tKHRoaXMuc3RhdGVtZW50LCB0YWJsZU5hbWUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { SelectorBasedClause } from "./SelectorBasedClause";
2
+ import { CountOption, DistinctOption, MaxOption, MinOption, SelectOption, WhereOption } from "../options";
3
+ import { Constructor, ModelArg, Model } from "@decaf-ts/decorator-validation";
4
+ import { SelectSelector } from "../selectors";
5
+ /**
6
+ * @summary The SELECT clause
7
+ *
8
+ * @param {ClauseArg} [clause]
9
+ *
10
+ * @class SelectClause
11
+ * @extends SelectorBasedClause
12
+ * @implements SelectOption
13
+ *
14
+ * @category Query
15
+ * @subcategory Clauses
16
+ */
17
+ export declare abstract class SelectClause<Q, M extends Model> extends SelectorBasedClause<Q, SelectSelector> implements SelectOption<M> {
18
+ private isDistinct;
19
+ private isCount;
20
+ private isMax;
21
+ private isMin;
22
+ protected constructor(clause?: ModelArg<SelectClause<Q, M>>);
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ abstract build(query: Q): Q;
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ distinct(selector: SelectSelector): DistinctOption<M>;
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ count(selector: SelectSelector): CountOption<M>;
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ min(selector: SelectSelector): MinOption<M>;
39
+ /**
40
+ * @inheritDoc
41
+ */
42
+ max(selector: SelectSelector): MaxOption<M>;
43
+ /**
44
+ * @inheritDoc
45
+ */
46
+ from(tableName: Constructor<M>): WhereOption;
47
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SelectorBasedClause = void 0;
13
+ const Clause_1 = require("../Clause.cjs");
14
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
15
+ /**
16
+ * @summary The base Selector based clause
17
+ *
18
+ * @param {ClauseArg} [clause]
19
+ *
20
+ * @class SelectorBasedClause
21
+ * @extends Clause
22
+ * @abstract
23
+ *
24
+ * @category Query
25
+ * @subcategory Clauses
26
+ */
27
+ class SelectorBasedClause extends Clause_1.Clause {
28
+ constructor(clause) {
29
+ super(clause);
30
+ /**
31
+ * @summary Stores the selector
32
+ *
33
+ * @prop selector
34
+ * @protected
35
+ */
36
+ this.selector = undefined;
37
+ this.selector = clause.selector;
38
+ }
39
+ toString() {
40
+ return this.constructor.name + `[${this.selector}]`;
41
+ }
42
+ }
43
+ exports.SelectorBasedClause = SelectorBasedClause;
44
+ __decorate([
45
+ (0, decorator_validation_1.required)(),
46
+ __metadata("design:type", Object)
47
+ ], SelectorBasedClause.prototype, "selector", void 0);
48
+
49
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL1NlbGVjdG9yQmFzZWRDbGF1c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQW1DO0FBQ25DLHlFQUFvRTtBQUVwRTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQXNCLG1CQUEwQixTQUFRLGVBQVM7SUFVL0QsWUFBc0IsTUFBNEM7UUFDaEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBVmhCOzs7OztXQUtHO1FBRU8sYUFBUSxHQUFPLFNBQVMsQ0FBQztRQUlqQyxJQUFJLENBQUMsUUFBUSxHQUFJLE1BQTBCLENBQUMsUUFBUSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQztJQUN0RCxDQUFDO0NBQ0Y7QUFsQkQsa0RBa0JDO0FBVlc7SUFEVCxJQUFBLCtCQUFRLEdBQUU7O3FEQUN3QiIsImZpbGUiOiJxdWVyeS9jbGF1c2VzL1NlbGVjdG9yQmFzZWRDbGF1c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGF1c2UgfSBmcm9tIFwiLi4vQ2xhdXNlXCI7XG5pbXBvcnQgeyBNb2RlbEFyZywgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVGhlIGJhc2UgU2VsZWN0b3IgYmFzZWQgY2xhdXNlXG4gKlxuICogQHBhcmFtIHtDbGF1c2VBcmd9IFtjbGF1c2VdXG4gKlxuICogQGNsYXNzIFNlbGVjdG9yQmFzZWRDbGF1c2VcbiAqIEBleHRlbmRzIENsYXVzZVxuICogQGFic3RyYWN0XG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgQ2xhdXNlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2VsZWN0b3JCYXNlZENsYXVzZTxRLCBTPiBleHRlbmRzIENsYXVzZTxRPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBTdG9yZXMgdGhlIHNlbGVjdG9yXG4gICAqXG4gICAqIEBwcm9wIHNlbGVjdG9yXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIEByZXF1aXJlZCgpXG4gIHByb3RlY3RlZCBzZWxlY3Rvcj86IFMgPSB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNsYXVzZT86IE1vZGVsQXJnPFNlbGVjdG9yQmFzZWRDbGF1c2U8USwgUz4+KSB7XG4gICAgc3VwZXIoY2xhdXNlKTtcbiAgICB0aGlzLnNlbGVjdG9yID0gKGNsYXVzZSBhcyB7IHNlbGVjdG9yOiBTIH0pLnNlbGVjdG9yO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZSArIGBbJHt0aGlzLnNlbGVjdG9yfV1gO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { Clause } from "../Clause";
2
+ import { ModelArg } from "@decaf-ts/decorator-validation";
3
+ /**
4
+ * @summary The base Selector based clause
5
+ *
6
+ * @param {ClauseArg} [clause]
7
+ *
8
+ * @class SelectorBasedClause
9
+ * @extends Clause
10
+ * @abstract
11
+ *
12
+ * @category Query
13
+ * @subcategory Clauses
14
+ */
15
+ export declare abstract class SelectorBasedClause<Q, S> extends Clause<Q> {
16
+ /**
17
+ * @summary Stores the selector
18
+ *
19
+ * @prop selector
20
+ * @protected
21
+ */
22
+ protected selector?: S;
23
+ protected constructor(clause?: ModelArg<SelectorBasedClause<Q, S>>);
24
+ toString(): string;
25
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ValuesClause = void 0;
13
+ const Clause_1 = require("../Clause.cjs");
14
+ const constants_1 = require("../constants.cjs");
15
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
16
+ /**
17
+ * @summary The VALUES clause
18
+ *
19
+ * @param {ClauseArg} [clause]
20
+ *
21
+ * @class ValuesClause
22
+ * @extends Clause
23
+ *
24
+ * @category Query
25
+ * @subcategory Clauses
26
+ */
27
+ class ValuesClause extends Clause_1.Clause {
28
+ constructor(clause) {
29
+ super(Object.assign({}, clause, { priority: constants_1.Priority.FROM }));
30
+ this.models = undefined;
31
+ this.models = clause?.models;
32
+ }
33
+ }
34
+ exports.ValuesClause = ValuesClause;
35
+ __decorate([
36
+ (0, decorator_validation_1.required)(),
37
+ (0, decorator_validation_1.type)(Array.name),
38
+ __metadata("design:type", Array)
39
+ ], ValuesClause.prototype, "models", void 0);
40
+
41
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL1ZhbHVlc0NsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzQ0FBbUM7QUFDbkMsNENBQXdDO0FBQ3hDLHlFQUEwRTtBQUUxRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBc0IsWUFBbUIsU0FBUSxlQUFTO0lBS3hELFlBQXNCLE1BQXFDO1FBQ3pELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsb0JBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFIaEUsV0FBTSxHQUFTLFNBQVMsQ0FBQztRQUl2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDL0IsQ0FBQztDQUtGO0FBYkQsb0NBYUM7QUFWQztJQUZDLElBQUEsK0JBQVEsR0FBRTtJQUNWLElBQUEsMkJBQUksRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzs0Q0FDUSIsImZpbGUiOiJxdWVyeS9jbGF1c2VzL1ZhbHVlc0NsYXVzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXVzZSB9IGZyb20gXCIuLi9DbGF1c2VcIjtcbmltcG9ydCB7IFByaW9yaXR5IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTW9kZWxBcmcsIHJlcXVpcmVkLCB0eXBlIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFRoZSBWQUxVRVMgY2xhdXNlXG4gKlxuICogQHBhcmFtIHtDbGF1c2VBcmd9IFtjbGF1c2VdXG4gKlxuICogQGNsYXNzIFZhbHVlc0NsYXVzZVxuICogQGV4dGVuZHMgQ2xhdXNlXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgQ2xhdXNlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmFsdWVzQ2xhdXNlPFEsIE0+IGV4dGVuZHMgQ2xhdXNlPFE+IHtcbiAgQHJlcXVpcmVkKClcbiAgQHR5cGUoQXJyYXkubmFtZSlcbiAgbW9kZWxzPzogTVtdID0gdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF1c2U/OiBNb2RlbEFyZzxWYWx1ZXNDbGF1c2U8USwgTT4+KSB7XG4gICAgc3VwZXIoT2JqZWN0LmFzc2lnbih7fSwgY2xhdXNlLCB7IHByaW9yaXR5OiBQcmlvcml0eS5GUk9NIH0pKTtcbiAgICB0aGlzLm1vZGVscyA9IGNsYXVzZT8ubW9kZWxzO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQocXVlcnk6IFEpOiBRO1xufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Clause } from "../Clause";
2
+ import { ModelArg } from "@decaf-ts/decorator-validation";
3
+ /**
4
+ * @summary The VALUES clause
5
+ *
6
+ * @param {ClauseArg} [clause]
7
+ *
8
+ * @class ValuesClause
9
+ * @extends Clause
10
+ *
11
+ * @category Query
12
+ * @subcategory Clauses
13
+ */
14
+ export declare abstract class ValuesClause<Q, M> extends Clause<Q> {
15
+ models?: M[];
16
+ protected constructor(clause?: ModelArg<ValuesClause<Q, M>>);
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ abstract build(query: Q): Q;
21
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.WhereClause = void 0;
13
+ const Clause_1 = require("../Clause.cjs");
14
+ const Condition_1 = require("../Condition.cjs");
15
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
16
+ const constants_1 = require("../constants.cjs");
17
+ /**
18
+ * @summary The WHERE clause
19
+ *
20
+ * @param {ClauseArg} [clause]
21
+ *
22
+ * @class WhereClause
23
+ * @extends Clause
24
+ * @implements OrderAndGroupOption
25
+ *
26
+ * @category Query
27
+ * @subcategory Clauses
28
+ */
29
+ class WhereClause extends Clause_1.Clause {
30
+ constructor(clause) {
31
+ super(Object.assign({}, clause, { priority: constants_1.Priority.WHERE }));
32
+ this.condition = undefined;
33
+ this.condition = clause?.condition;
34
+ }
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ orderBy(...selector) {
39
+ return this.Clauses.orderBy(this.statement, selector);
40
+ }
41
+ /**
42
+ * @inheritDoc
43
+ */
44
+ groupBy(selector) {
45
+ return this.Clauses.groupBy(this.statement, selector);
46
+ }
47
+ /**
48
+ * @inheritDoc
49
+ */
50
+ limit(selector) {
51
+ return this.Clauses.limit(this.statement, selector);
52
+ }
53
+ /**
54
+ * @inheritDoc
55
+ */
56
+ offset(selector) {
57
+ return this.Clauses.offset(this.statement, selector);
58
+ }
59
+ /**
60
+ * @inheritDoc
61
+ */
62
+ hasErrors(...exceptions) {
63
+ const errors = super.hasErrors(...exceptions);
64
+ if (errors)
65
+ return errors;
66
+ return this.condition.hasErrors();
67
+ }
68
+ }
69
+ exports.WhereClause = WhereClause;
70
+ __decorate([
71
+ (0, decorator_validation_1.required)(),
72
+ (0, decorator_validation_1.type)("Condition"),
73
+ __metadata("design:type", Condition_1.Condition)
74
+ ], WhereClause.prototype, "condition", void 0);
75
+
76
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL1doZXJlQ2xhdXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNDQUFtQztBQUNuQyw0Q0FBeUM7QUFDekMseUVBS3dDO0FBRXhDLDRDQUF3QztBQVF4Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQXNCLFdBQ3BCLFNBQVEsZUFBUztJQU9qQixZQUFzQixNQUFpQztRQUNyRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLG9CQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBSGpFLGNBQVMsR0FBZSxTQUFTLENBQUM7UUFJaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLEVBQUUsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFLRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxHQUFHLFFBQTJCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxPQUFPLENBQUMsUUFBeUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRDs7T0FFRztJQUNILEtBQUssQ0FBQyxRQUF1QjtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsR0FBRyxVQUFvQjtRQUMvQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDOUMsSUFBSSxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQWpERCxrQ0FpREM7QUEzQ0M7SUFGQyxJQUFBLCtCQUFRLEdBQUU7SUFDVixJQUFBLDJCQUFJLEVBQUMsV0FBVyxDQUFDOzhCQUNOLHFCQUFTOzhDQUFhIiwiZmlsZSI6InF1ZXJ5L2NsYXVzZXMvV2hlcmVDbGF1c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGF1c2UgfSBmcm9tIFwiLi4vQ2xhdXNlXCI7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi4vQ29uZGl0aW9uXCI7XG5pbXBvcnQge1xuICBNb2RlbEFyZyxcbiAgTW9kZWxFcnJvckRlZmluaXRpb24sXG4gIHJlcXVpcmVkLFxuICB0eXBlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBMaW1pdE9wdGlvbiwgT2Zmc2V0T3B0aW9uLCBPcmRlckFuZEdyb3VwT3B0aW9uIH0gZnJvbSBcIi4uL29wdGlvbnNcIjtcbmltcG9ydCB7IFByaW9yaXR5IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgR3JvdXBCeVNlbGVjdG9yLFxuICBMaW1pdFNlbGVjdG9yLFxuICBPZmZzZXRTZWxlY3RvcixcbiAgT3JkZXJCeVNlbGVjdG9yLFxufSBmcm9tIFwiLi4vc2VsZWN0b3JzXCI7XG5pbXBvcnQgeyBFeGVjdXRvciB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XG4vKipcbiAqIEBzdW1tYXJ5IFRoZSBXSEVSRSBjbGF1c2VcbiAqXG4gKiBAcGFyYW0ge0NsYXVzZUFyZ30gW2NsYXVzZV1cbiAqXG4gKiBAY2xhc3MgV2hlcmVDbGF1c2VcbiAqIEBleHRlbmRzIENsYXVzZVxuICogQGltcGxlbWVudHMgT3JkZXJBbmRHcm91cE9wdGlvblxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IENsYXVzZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdoZXJlQ2xhdXNlPFE+XG4gIGV4dGVuZHMgQ2xhdXNlPFE+XG4gIGltcGxlbWVudHMgT3JkZXJBbmRHcm91cE9wdGlvblxue1xuICBAcmVxdWlyZWQoKVxuICBAdHlwZShcIkNvbmRpdGlvblwiKVxuICBjb25kaXRpb24/OiBDb25kaXRpb24gPSB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNsYXVzZT86IE1vZGVsQXJnPFdoZXJlQ2xhdXNlPFE+Pikge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIGNsYXVzZSwgeyBwcmlvcml0eTogUHJpb3JpdHkuV0hFUkUgfSkpO1xuICAgIHRoaXMuY29uZGl0aW9uID0gY2xhdXNlPy5jb25kaXRpb247XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBhYnN0cmFjdCBidWlsZChxdWVyeTogUSk6IFE7XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgb3JkZXJCeSguLi5zZWxlY3RvcjogT3JkZXJCeVNlbGVjdG9yW10pOiBMaW1pdE9wdGlvbiAmIE9mZnNldE9wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuQ2xhdXNlcy5vcmRlckJ5KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBncm91cEJ5KHNlbGVjdG9yOiBHcm91cEJ5U2VsZWN0b3IpOiBFeGVjdXRvciB7XG4gICAgcmV0dXJuIHRoaXMuQ2xhdXNlcy5ncm91cEJ5KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBsaW1pdChzZWxlY3RvcjogTGltaXRTZWxlY3Rvcik6IE9mZnNldE9wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuQ2xhdXNlcy5saW1pdCh0aGlzLnN0YXRlbWVudCwgc2VsZWN0b3IpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgb2Zmc2V0KHNlbGVjdG9yOiBPZmZzZXRTZWxlY3Rvcik6IEV4ZWN1dG9yIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLm9mZnNldCh0aGlzLnN0YXRlbWVudCwgc2VsZWN0b3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBoYXNFcnJvcnMoLi4uZXhjZXB0aW9uczogc3RyaW5nW10pOiBNb2RlbEVycm9yRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZXJyb3JzID0gc3VwZXIuaGFzRXJyb3JzKC4uLmV4Y2VwdGlvbnMpO1xuICAgIGlmIChlcnJvcnMpIHJldHVybiBlcnJvcnM7XG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uIS5oYXNFcnJvcnMoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,46 @@
1
+ import { Clause } from "../Clause";
2
+ import { Condition } from "../Condition";
3
+ import { ModelArg, ModelErrorDefinition } from "@decaf-ts/decorator-validation";
4
+ import { LimitOption, OffsetOption, OrderAndGroupOption } from "../options";
5
+ import { GroupBySelector, LimitSelector, OffsetSelector, OrderBySelector } from "../selectors";
6
+ import { Executor } from "../../interfaces";
7
+ /**
8
+ * @summary The WHERE clause
9
+ *
10
+ * @param {ClauseArg} [clause]
11
+ *
12
+ * @class WhereClause
13
+ * @extends Clause
14
+ * @implements OrderAndGroupOption
15
+ *
16
+ * @category Query
17
+ * @subcategory Clauses
18
+ */
19
+ export declare abstract class WhereClause<Q> extends Clause<Q> implements OrderAndGroupOption {
20
+ condition?: Condition;
21
+ protected constructor(clause?: ModelArg<WhereClause<Q>>);
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ abstract build(query: Q): Q;
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ orderBy(...selector: OrderBySelector[]): LimitOption & OffsetOption;
30
+ /**
31
+ * @inheritDoc
32
+ */
33
+ groupBy(selector: GroupBySelector): Executor;
34
+ /**
35
+ * @inheritDoc
36
+ */
37
+ limit(selector: LimitSelector): OffsetOption;
38
+ /**
39
+ * @inheritDoc
40
+ */
41
+ offset(selector: OffsetSelector): Executor;
42
+ /**
43
+ * @inheritDoc
44
+ */
45
+ hasErrors(...exceptions: string[]): ModelErrorDefinition | undefined;
46
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./FromClause.cjs"), exports);
18
+ __exportStar(require("./GroupByClause.cjs"), exports);
19
+ __exportStar(require("./InsertClause.cjs"), exports);
20
+ __exportStar(require("./LimitClause.cjs"), exports);
21
+ __exportStar(require("./OffsetClause.cjs"), exports);
22
+ __exportStar(require("./OrderByClause.cjs"), exports);
23
+ __exportStar(require("./SelectClause.cjs"), exports);
24
+ __exportStar(require("./SelectorBasedClause.cjs"), exports);
25
+ __exportStar(require("./ValuesClause.cjs"), exports);
26
+ __exportStar(require("./WhereClause.cjs"), exports);
27
+
28
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkI7QUFDN0Isa0RBQWdDO0FBQ2hDLGlEQUErQjtBQUMvQixnREFBOEI7QUFDOUIsaURBQStCO0FBQy9CLGtEQUFnQztBQUNoQyxpREFBK0I7QUFDL0Isd0RBQXNDO0FBQ3RDLGlEQUErQjtBQUMvQixnREFBOEIiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0Zyb21DbGF1c2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyb3VwQnlDbGF1c2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luc2VydENsYXVzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTGltaXRDbGF1c2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL09mZnNldENsYXVzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vT3JkZXJCeUNsYXVzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU2VsZWN0Q2xhdXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TZWxlY3RvckJhc2VkQ2xhdXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9WYWx1ZXNDbGF1c2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1doZXJlQ2xhdXNlXCI7XG4iXX0=
@@ -0,0 +1,10 @@
1
+ export * from "./FromClause";
2
+ export * from "./GroupByClause";
3
+ export * from "./InsertClause";
4
+ export * from "./LimitClause";
5
+ export * from "./OffsetClause";
6
+ export * from "./OrderByClause";
7
+ export * from "./SelectClause";
8
+ export * from "./SelectorBasedClause";
9
+ export * from "./ValuesClause";
10
+ export * from "./WhereClause";
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatementType = exports.MandatoryPriorities = exports.Priority = exports.Const = exports.GroupOperator = exports.Operator = void 0;
4
+ var Operator;
5
+ (function (Operator) {
6
+ Operator["EQUAL"] = "EQUAL";
7
+ Operator["DIFFERENT"] = "DIFFERENT";
8
+ Operator["BIGGER"] = "BIGGER";
9
+ Operator["BIGGER_EQ"] = "BIGGER_EQ";
10
+ Operator["SMALLER"] = "SMALLER";
11
+ Operator["SMALLER_EQ"] = "SMALLER_EQ";
12
+ // BETWEEN = "BETWEEN",
13
+ Operator["NOT"] = "NOT";
14
+ Operator["IN"] = "IN";
15
+ // IS = "IS",
16
+ Operator["REGEXP"] = "REGEXP";
17
+ })(Operator || (exports.Operator = Operator = {}));
18
+ var GroupOperator;
19
+ (function (GroupOperator) {
20
+ GroupOperator["AND"] = "AND";
21
+ GroupOperator["OR"] = "OR";
22
+ })(GroupOperator || (exports.GroupOperator = GroupOperator = {}));
23
+ var Const;
24
+ (function (Const) {
25
+ Const["NULL"] = "NULL";
26
+ Const["FULL_RECORD"] = "*";
27
+ })(Const || (exports.Const = Const = {}));
28
+ /**
29
+ * @summary Defines execution order of Clauses in statements as defined in SQL.
30
+ *
31
+ * @description sub priorities where defined to better organize clauses within statements, eg From and Join Clauses
32
+ *
33
+ * @const Priority
34
+ *
35
+ * @category Clauses
36
+ * @subcategory Constants
37
+ */
38
+ var Priority;
39
+ (function (Priority) {
40
+ /**
41
+ * @summary Defines the priority for the FROM Clause
42
+ * @description From Clause in SELECT Statements.
43
+ * Values Clause in INSERT Statements
44
+ *
45
+ * @prop FROM
46
+ */
47
+ Priority[Priority["FROM"] = 1] = "FROM";
48
+ /**
49
+ * @summary Defines the priority for the JOIN Clause
50
+ *
51
+ * @property {number} JOIN
52
+ */
53
+ Priority[Priority["JOIN"] = 1.1] = "JOIN";
54
+ /**
55
+ * Where Clause
56
+ */
57
+ Priority[Priority["WHERE"] = 2] = "WHERE";
58
+ /**
59
+ * Group By Clause
60
+ */
61
+ Priority[Priority["GROUP_BY"] = 3] = "GROUP_BY";
62
+ /**
63
+ * Having Clause
64
+ */
65
+ Priority[Priority["HAVING"] = 4] = "HAVING";
66
+ /**
67
+ * Select Clause in SELECT Statements
68
+ * Insert Clause in INSERT Statements
69
+ */
70
+ Priority[Priority["SELECT"] = 5] = "SELECT";
71
+ /**
72
+ * Order By Clause
73
+ */
74
+ Priority[Priority["ORDER_BY"] = 6] = "ORDER_BY";
75
+ /**
76
+ * Limit Clause
77
+ */
78
+ Priority[Priority["LIMIT"] = 7] = "LIMIT";
79
+ /**
80
+ * Offset Clause
81
+ */
82
+ Priority[Priority["OFFSET"] = 7.1] = "OFFSET";
83
+ })(Priority || (exports.Priority = Priority = {}));
84
+ exports.MandatoryPriorities = [Priority.FROM, Priority.SELECT];
85
+ var StatementType;
86
+ (function (StatementType) {
87
+ StatementType["QUERY"] = "query";
88
+ StatementType["TRANSACTION"] = "transaction";
89
+ })(StatementType || (exports.StatementType = StatementType = {}));
90
+
91
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxRQVlYO0FBWkQsV0FBWSxRQUFRO0lBQ2xCLDJCQUFlLENBQUE7SUFDZixtQ0FBdUIsQ0FBQTtJQUN2Qiw2QkFBaUIsQ0FBQTtJQUNqQixtQ0FBdUIsQ0FBQTtJQUN2QiwrQkFBbUIsQ0FBQTtJQUNuQixxQ0FBeUIsQ0FBQTtJQUN6Qix1QkFBdUI7SUFDdkIsdUJBQVcsQ0FBQTtJQUNYLHFCQUFTLENBQUE7SUFDVCxhQUFhO0lBQ2IsNkJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVpXLFFBQVEsd0JBQVIsUUFBUSxRQVluQjtBQUVELElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw0QkFBVyxDQUFBO0lBQ1gsMEJBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxhQUFhLDZCQUFiLGFBQWEsUUFHeEI7QUFFRCxJQUFZLEtBR1g7QUFIRCxXQUFZLEtBQUs7SUFDZixzQkFBYSxDQUFBO0lBQ2IsMEJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLEtBQUsscUJBQUwsS0FBSyxRQUdoQjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILElBQVksUUE0Q1g7QUE1Q0QsV0FBWSxRQUFRO0lBQ2xCOzs7Ozs7T0FNRztJQUNILHVDQUFRLENBQUE7SUFDUjs7OztPQUlHO0lBQ0gseUNBQVUsQ0FBQTtJQUNWOztPQUVHO0lBQ0gseUNBQVMsQ0FBQTtJQUNUOztPQUVHO0lBQ0gsK0NBQVksQ0FBQTtJQUNaOztPQUVHO0lBQ0gsMkNBQVUsQ0FBQTtJQUNWOzs7T0FHRztJQUNILDJDQUFVLENBQUE7SUFDVjs7T0FFRztJQUNILCtDQUFZLENBQUE7SUFDWjs7T0FFRztJQUNILHlDQUFTLENBQUE7SUFDVDs7T0FFRztJQUNILDZDQUFZLENBQUE7QUFDZCxDQUFDLEVBNUNXLFFBQVEsd0JBQVIsUUFBUSxRQTRDbkI7QUFFWSxRQUFBLG1CQUFtQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFcEUsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLGdDQUFlLENBQUE7SUFDZiw0Q0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsYUFBYSw2QkFBYixhQUFhLFFBR3hCIiwiZmlsZSI6InF1ZXJ5L2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE9wZXJhdG9yIHtcbiAgRVFVQUwgPSBcIkVRVUFMXCIsXG4gIERJRkZFUkVOVCA9IFwiRElGRkVSRU5UXCIsXG4gIEJJR0dFUiA9IFwiQklHR0VSXCIsXG4gIEJJR0dFUl9FUSA9IFwiQklHR0VSX0VRXCIsXG4gIFNNQUxMRVIgPSBcIlNNQUxMRVJcIixcbiAgU01BTExFUl9FUSA9IFwiU01BTExFUl9FUVwiLFxuICAvLyBCRVRXRUVOID0gXCJCRVRXRUVOXCIsXG4gIE5PVCA9IFwiTk9UXCIsXG4gIElOID0gXCJJTlwiLFxuICAvLyBJUyA9IFwiSVNcIixcbiAgUkVHRVhQID0gXCJSRUdFWFBcIixcbn1cblxuZXhwb3J0IGVudW0gR3JvdXBPcGVyYXRvciB7XG4gIEFORCA9IFwiQU5EXCIsXG4gIE9SID0gXCJPUlwiLFxufVxuXG5leHBvcnQgZW51bSBDb25zdCB7XG4gIE5VTEwgPSBcIk5VTExcIixcbiAgRlVMTF9SRUNPUkQgPSBcIipcIixcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGV4ZWN1dGlvbiBvcmRlciBvZiBDbGF1c2VzIGluIHN0YXRlbWVudHMgYXMgZGVmaW5lZCBpbiBTUUwuXG4gKlxuICogQGRlc2NyaXB0aW9uIHN1YiBwcmlvcml0aWVzIHdoZXJlIGRlZmluZWQgdG8gYmV0dGVyIG9yZ2FuaXplIGNsYXVzZXMgd2l0aGluIHN0YXRlbWVudHMsIGVnIEZyb20gYW5kIEpvaW4gQ2xhdXNlc1xuICpcbiAqIEBjb25zdCBQcmlvcml0eVxuICpcbiAqIEBjYXRlZ29yeSBDbGF1c2VzXG4gKiBAc3ViY2F0ZWdvcnkgQ29uc3RhbnRzXG4gKi9cbmV4cG9ydCBlbnVtIFByaW9yaXR5IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHByaW9yaXR5IGZvciB0aGUgRlJPTSBDbGF1c2VcbiAgICogQGRlc2NyaXB0aW9uIEZyb20gQ2xhdXNlIGluIFNFTEVDVCBTdGF0ZW1lbnRzLlxuICAgKiBWYWx1ZXMgQ2xhdXNlIGluIElOU0VSVCBTdGF0ZW1lbnRzXG4gICAqXG4gICAqIEBwcm9wIEZST01cbiAgICovXG4gIEZST00gPSAxLFxuICAvKipcbiAgICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgcHJpb3JpdHkgZm9yIHRoZSBKT0lOIENsYXVzZVxuICAgKlxuICAgKiBAcHJvcGVydHkge251bWJlcn0gSk9JTlxuICAgKi9cbiAgSk9JTiA9IDEuMSxcbiAgLyoqXG4gICAqIFdoZXJlIENsYXVzZVxuICAgKi9cbiAgV0hFUkUgPSAyLFxuICAvKipcbiAgICogR3JvdXAgQnkgQ2xhdXNlXG4gICAqL1xuICBHUk9VUF9CWSA9IDMsXG4gIC8qKlxuICAgKiBIYXZpbmcgQ2xhdXNlXG4gICAqL1xuICBIQVZJTkcgPSA0LFxuICAvKipcbiAgICogU2VsZWN0IENsYXVzZSBpbiBTRUxFQ1QgU3RhdGVtZW50c1xuICAgKiBJbnNlcnQgQ2xhdXNlIGluIElOU0VSVCBTdGF0ZW1lbnRzXG4gICAqL1xuICBTRUxFQ1QgPSA1LFxuICAvKipcbiAgICogT3JkZXIgQnkgQ2xhdXNlXG4gICAqL1xuICBPUkRFUl9CWSA9IDYsXG4gIC8qKlxuICAgKiBMaW1pdCBDbGF1c2VcbiAgICovXG4gIExJTUlUID0gNyxcbiAgLyoqXG4gICAqIE9mZnNldCBDbGF1c2VcbiAgICovXG4gIE9GRlNFVCA9IDcuMSxcbn1cblxuZXhwb3J0IGNvbnN0IE1hbmRhdG9yeVByaW9yaXRpZXMgPSBbUHJpb3JpdHkuRlJPTSwgUHJpb3JpdHkuU0VMRUNUXTtcblxuZXhwb3J0IGVudW0gU3RhdGVtZW50VHlwZSB7XG4gIFFVRVJZID0gXCJxdWVyeVwiLFxuICBUUkFOU0FDVElPTiA9IFwidHJhbnNhY3Rpb25cIixcbn1cbiJdfQ==