@decaf-ts/core 0.1.2 → 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.
- package/README.md +4 -4
- package/dist/core.bundle.min.js +1 -1
- package/dist/esm/core.bundle.min.esm.js +1 -1
- package/lib/esm/identity/decorators.d.ts +4 -10
- package/lib/esm/identity/decorators.js +57 -1
- package/lib/esm/identity/index.js +3 -1
- package/lib/esm/identity/utils.d.ts +2 -0
- package/lib/esm/identity/utils.js +6 -0
- package/lib/esm/index.d.ts +3 -1
- package/lib/esm/index.js +30 -1
- package/lib/esm/interfaces/Builder.js +3 -0
- package/lib/esm/interfaces/Executor.d.ts +3 -1
- package/lib/esm/interfaces/Executor.js +3 -0
- package/lib/esm/interfaces/Observable.js +3 -0
- package/lib/esm/interfaces/Observer.js +3 -0
- package/lib/esm/interfaces/Queriable.d.ts +6 -0
- package/lib/esm/interfaces/Queriable.js +3 -0
- package/lib/esm/interfaces/RawExecutor.d.ts +4 -3
- package/lib/esm/interfaces/RawExecutor.js +3 -0
- package/lib/esm/interfaces/Sequence.d.ts +3 -2
- package/lib/esm/interfaces/Sequence.js +10 -0
- package/lib/esm/interfaces/SequenceOptions.d.ts +9 -1
- package/lib/esm/interfaces/SequenceOptions.js +20 -0
- package/lib/esm/interfaces/index.d.ts +1 -0
- package/lib/esm/interfaces/index.js +10 -1
- package/lib/esm/model/BaseModel.d.ts +2 -3
- package/lib/esm/model/BaseModel.js +28 -1
- package/lib/esm/model/decorators.d.ts +6 -5
- package/lib/esm/model/decorators.js +55 -1
- package/lib/esm/model/index.js +4 -1
- package/lib/esm/persistence/Adapter.d.ts +43 -14
- package/lib/esm/persistence/Adapter.js +153 -1
- package/lib/esm/persistence/constants.d.ts +11 -1
- package/lib/esm/persistence/constants.js +14 -1
- package/lib/esm/persistence/decorators.d.ts +1 -2
- package/lib/esm/persistence/decorators.js +10 -1
- package/lib/esm/persistence/errors.d.ts +4 -0
- package/lib/esm/persistence/errors.js +8 -0
- package/lib/esm/persistence/index.d.ts +1 -0
- package/lib/esm/persistence/index.js +7 -1
- package/lib/esm/persistence/utils.d.ts +2 -2
- package/lib/esm/persistence/utils.js +12 -1
- package/lib/esm/query/Clause.d.ts +43 -0
- package/lib/esm/query/Clause.js +76 -0
- package/lib/esm/query/ClauseFactory.d.ts +71 -0
- package/lib/esm/query/ClauseFactory.js +7 -0
- package/lib/esm/query/Condition.d.ts +75 -0
- package/lib/esm/query/Condition.js +248 -0
- package/lib/esm/query/Query.d.ts +43 -0
- package/lib/esm/query/Query.js +55 -0
- package/lib/esm/query/Statement.d.ts +49 -0
- package/lib/esm/query/Statement.js +163 -0
- package/lib/esm/query/clauses/FromClause.d.ts +45 -0
- package/lib/esm/query/clauses/FromClause.js +60 -0
- package/lib/esm/query/clauses/GroupByClause.d.ts +21 -0
- package/lib/esm/query/clauses/GroupByClause.js +20 -0
- package/lib/esm/query/clauses/InsertClause.d.ts +37 -0
- package/lib/esm/query/clauses/InsertClause.js +56 -0
- package/lib/esm/query/clauses/LimitClause.d.ts +29 -0
- package/lib/esm/query/clauses/LimitClause.js +28 -0
- package/lib/esm/query/clauses/OffsetClause.d.ts +21 -0
- package/lib/esm/query/clauses/OffsetClause.js +20 -0
- package/lib/esm/query/clauses/OrderByClause.d.ts +37 -0
- package/lib/esm/query/clauses/OrderByClause.js +40 -0
- package/lib/esm/query/clauses/SelectClause.d.ts +47 -0
- package/lib/esm/query/clauses/SelectClause.js +63 -0
- package/lib/esm/query/clauses/SelectorBasedClause.d.ts +25 -0
- package/lib/esm/query/clauses/SelectorBasedClause.js +45 -0
- package/lib/esm/query/clauses/ValuesClause.d.ts +21 -0
- package/lib/esm/query/clauses/ValuesClause.js +37 -0
- package/lib/esm/query/clauses/WhereClause.d.ts +46 -0
- package/lib/esm/query/clauses/WhereClause.js +72 -0
- package/lib/esm/query/clauses/index.d.ts +10 -0
- package/lib/esm/query/clauses/index.js +12 -0
- package/lib/esm/query/constants.d.ts +79 -0
- package/lib/esm/query/constants.js +88 -0
- package/lib/esm/query/errors.d.ts +4 -0
- package/lib/esm/query/errors.js +8 -0
- package/lib/esm/query/index.d.ts +11 -0
- package/lib/esm/query/index.js +13 -0
- package/lib/esm/query/options.d.ts +371 -0
- package/lib/esm/query/options.js +3 -0
- package/lib/esm/query/selectors.d.ts +38 -0
- package/lib/esm/query/selectors.js +3 -0
- package/lib/esm/query/types.d.ts +2 -0
- package/lib/esm/query/types.js +3 -0
- package/lib/esm/repository/Repository.d.ts +27 -11
- package/lib/esm/repository/Repository.js +246 -1
- package/lib/esm/repository/constants.js +31 -1
- package/lib/esm/repository/decorators.d.ts +2 -3
- package/lib/esm/repository/decorators.js +27 -1
- package/lib/esm/repository/errors.js +16 -1
- package/lib/esm/repository/index.d.ts +1 -0
- package/lib/esm/repository/index.js +9 -1
- package/lib/esm/repository/injectables.d.ts +5 -0
- package/lib/esm/repository/injectables.js +32 -0
- package/lib/esm/repository/types.js +3 -0
- package/lib/esm/repository/utils.d.ts +4 -3
- package/lib/esm/repository/utils.js +45 -1
- package/lib/esm/validators/ClauseSequenceValidator.d.ts +28 -0
- package/lib/esm/validators/ClauseSequenceValidator.js +95 -0
- package/lib/esm/validators/decorators.d.ts +10 -0
- package/lib/esm/validators/decorators.js +25 -0
- package/lib/esm/validators/index.d.ts +2 -0
- package/lib/esm/validators/index.js +4 -0
- package/lib/identity/decorators.cjs +61 -1
- package/lib/identity/decorators.d.ts +4 -10
- package/lib/identity/index.cjs +19 -1
- package/lib/identity/utils.cjs +9 -0
- package/lib/identity/utils.d.ts +2 -0
- package/lib/index.cjs +47 -1
- package/lib/index.d.ts +3 -1
- package/lib/interfaces/Builder.cjs +4 -1
- package/lib/interfaces/Executor.cjs +4 -1
- package/lib/interfaces/Executor.d.ts +3 -1
- package/lib/interfaces/Observable.cjs +4 -1
- package/lib/interfaces/Observer.cjs +4 -1
- package/lib/interfaces/Queriable.cjs +4 -0
- package/lib/interfaces/Queriable.d.ts +6 -0
- package/lib/interfaces/RawExecutor.cjs +4 -1
- package/lib/interfaces/RawExecutor.d.ts +4 -3
- package/lib/interfaces/Sequence.cjs +11 -1
- package/lib/interfaces/Sequence.d.ts +3 -2
- package/lib/interfaces/SequenceOptions.cjs +23 -1
- package/lib/interfaces/SequenceOptions.d.ts +9 -1
- package/lib/interfaces/index.cjs +26 -1
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/model/BaseModel.cjs +32 -1
- package/lib/model/BaseModel.d.ts +2 -3
- package/lib/model/decorators.cjs +62 -1
- package/lib/model/decorators.d.ts +6 -5
- package/lib/model/index.cjs +20 -1
- package/lib/persistence/Adapter.cjs +157 -1
- package/lib/persistence/Adapter.d.ts +43 -14
- package/lib/persistence/constants.cjs +17 -1
- package/lib/persistence/constants.d.ts +11 -1
- package/lib/persistence/decorators.cjs +13 -1
- package/lib/persistence/decorators.d.ts +1 -2
- package/lib/persistence/errors.cjs +12 -0
- package/lib/persistence/errors.d.ts +4 -0
- package/lib/persistence/index.cjs +23 -1
- package/lib/persistence/index.d.ts +1 -0
- package/lib/persistence/utils.cjs +16 -1
- package/lib/persistence/utils.d.ts +2 -2
- package/lib/query/Clause.cjs +80 -0
- package/lib/query/Clause.d.ts +43 -0
- package/lib/query/ClauseFactory.cjs +11 -0
- package/lib/query/ClauseFactory.d.ts +71 -0
- package/lib/query/Condition.cjs +252 -0
- package/lib/query/Condition.d.ts +75 -0
- package/lib/query/Query.cjs +59 -0
- package/lib/query/Query.d.ts +43 -0
- package/lib/query/Statement.cjs +167 -0
- package/lib/query/Statement.d.ts +49 -0
- package/lib/query/clauses/FromClause.cjs +64 -0
- package/lib/query/clauses/FromClause.d.ts +45 -0
- package/lib/query/clauses/GroupByClause.cjs +24 -0
- package/lib/query/clauses/GroupByClause.d.ts +21 -0
- package/lib/query/clauses/InsertClause.cjs +60 -0
- package/lib/query/clauses/InsertClause.d.ts +37 -0
- package/lib/query/clauses/LimitClause.cjs +32 -0
- package/lib/query/clauses/LimitClause.d.ts +29 -0
- package/lib/query/clauses/OffsetClause.cjs +24 -0
- package/lib/query/clauses/OffsetClause.d.ts +21 -0
- package/lib/query/clauses/OrderByClause.cjs +44 -0
- package/lib/query/clauses/OrderByClause.d.ts +37 -0
- package/lib/query/clauses/SelectClause.cjs +67 -0
- package/lib/query/clauses/SelectClause.d.ts +47 -0
- package/lib/query/clauses/SelectorBasedClause.cjs +49 -0
- package/lib/query/clauses/SelectorBasedClause.d.ts +25 -0
- package/lib/query/clauses/ValuesClause.cjs +41 -0
- package/lib/query/clauses/ValuesClause.d.ts +21 -0
- package/lib/query/clauses/WhereClause.cjs +76 -0
- package/lib/query/clauses/WhereClause.d.ts +46 -0
- package/lib/query/clauses/index.cjs +28 -0
- package/lib/query/clauses/index.d.ts +10 -0
- package/lib/query/constants.cjs +91 -0
- package/lib/query/constants.d.ts +79 -0
- package/lib/query/errors.cjs +12 -0
- package/lib/query/errors.d.ts +4 -0
- package/lib/query/index.cjs +29 -0
- package/lib/query/index.d.ts +11 -0
- package/lib/query/options.cjs +4 -0
- package/lib/query/options.d.ts +371 -0
- package/lib/query/selectors.cjs +4 -0
- package/lib/query/selectors.d.ts +38 -0
- package/lib/query/types.cjs +4 -0
- package/lib/query/types.d.ts +2 -0
- package/lib/repository/Repository.cjs +250 -1
- package/lib/repository/Repository.d.ts +27 -11
- package/lib/repository/constants.cjs +34 -1
- package/lib/repository/decorators.cjs +30 -1
- package/lib/repository/decorators.d.ts +2 -3
- package/lib/repository/errors.cjs +20 -1
- package/lib/repository/index.cjs +25 -1
- package/lib/repository/index.d.ts +1 -0
- package/lib/repository/injectables.cjs +36 -0
- package/lib/repository/injectables.d.ts +5 -0
- package/lib/repository/types.cjs +4 -1
- package/lib/repository/utils.cjs +50 -1
- package/lib/repository/utils.d.ts +6 -0
- package/lib/validators/ClauseSequenceValidator.cjs +98 -0
- package/lib/validators/ClauseSequenceValidator.d.ts +28 -0
- package/lib/validators/decorators.cjs +28 -0
- package/lib/validators/decorators.d.ts +10 -0
- package/lib/validators/index.cjs +20 -0
- package/lib/validators/index.d.ts +2 -0
- package/package.json +14 -11
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Priority } from "../constants";
|
|
2
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
3
|
+
import { QueryError } from "../errors";
|
|
4
|
+
import { Model, stringFormat, } from "@decaf-ts/decorator-validation";
|
|
5
|
+
/**
|
|
6
|
+
* @summary The FROM clause
|
|
7
|
+
*
|
|
8
|
+
* @param {ModelArg} [clause]
|
|
9
|
+
*
|
|
10
|
+
* @class FromClause
|
|
11
|
+
* @extends SelectorBasedClause
|
|
12
|
+
* @implements WhereOption
|
|
13
|
+
*
|
|
14
|
+
* @category Query
|
|
15
|
+
* @subcategory Clauses
|
|
16
|
+
*/
|
|
17
|
+
export class FromClause extends SelectorBasedClause {
|
|
18
|
+
constructor(clause) {
|
|
19
|
+
super(Object.assign({}, clause, { priority: Priority.FROM }));
|
|
20
|
+
this.selector =
|
|
21
|
+
typeof this.selector === "string"
|
|
22
|
+
? Model.get(this.selector)
|
|
23
|
+
: this.selector;
|
|
24
|
+
if (!this.selector)
|
|
25
|
+
throw new QueryError(stringFormat("Could not find selector model: {0}"));
|
|
26
|
+
this.statement.setTarget(this.selector);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @inheritDoc
|
|
30
|
+
*/
|
|
31
|
+
where(condition) {
|
|
32
|
+
return this.Clauses.where(this.statement, condition);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
orderBy(...selector) {
|
|
38
|
+
return this.Clauses.orderBy(this.statement, selector);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @inheritDoc
|
|
42
|
+
*/
|
|
43
|
+
groupBy(selector) {
|
|
44
|
+
return this.Clauses.groupBy(this.statement, selector);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @inheritDoc
|
|
48
|
+
*/
|
|
49
|
+
limit(selector) {
|
|
50
|
+
return this.Clauses.limit(this.statement, selector);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @inheritDoc
|
|
54
|
+
*/
|
|
55
|
+
offset(selector) {
|
|
56
|
+
return this.Clauses.offset(this.statement, selector);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL0Zyb21DbGF1c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQWN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXZDLE9BQU8sRUFFTCxLQUFLLEVBRUwsWUFBWSxHQUNiLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEM7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLE9BQWdCLFVBQ3BCLFNBQVEsbUJBQXVDO0lBRy9DLFlBQXNCLE1BQW1DO1FBQ3ZELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsUUFBUTtZQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRO2dCQUMvQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDaEIsTUFBTSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUEwQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQU9EOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFNBQW9CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxPQUFPLENBQUMsR0FBRyxRQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFFBQXlCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLLENBQUMsUUFBdUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxRQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwiZmlsZSI6InF1ZXJ5L2NsYXVzZXMvRnJvbUNsYXVzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByaW9yaXR5IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgRnJvbVNlbGVjdG9yLFxuICBHcm91cEJ5U2VsZWN0b3IsXG4gIExpbWl0U2VsZWN0b3IsXG4gIE9mZnNldFNlbGVjdG9yLFxuICBPcmRlckJ5U2VsZWN0b3IsXG59IGZyb20gXCIuLi9zZWxlY3RvcnNcIjtcbmltcG9ydCB7XG4gIExpbWl0T3B0aW9uLFxuICBPZmZzZXRPcHRpb24sXG4gIE9yZGVyQW5kR3JvdXBPcHRpb24sXG4gIFdoZXJlT3B0aW9uLFxufSBmcm9tIFwiLi4vb3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VsZWN0b3JCYXNlZENsYXVzZSB9IGZyb20gXCIuL1NlbGVjdG9yQmFzZWRDbGF1c2VcIjtcbmltcG9ydCB7IEV4ZWN1dG9yIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi4vQ29uZGl0aW9uXCI7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3RvcixcbiAgTW9kZWwsXG4gIE1vZGVsQXJnLFxuICBzdHJpbmdGb3JtYXQsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgRlJPTSBjbGF1c2VcbiAqXG4gKiBAcGFyYW0ge01vZGVsQXJnfSBbY2xhdXNlXVxuICpcbiAqIEBjbGFzcyBGcm9tQ2xhdXNlXG4gKiBAZXh0ZW5kcyBTZWxlY3RvckJhc2VkQ2xhdXNlXG4gKiBAaW1wbGVtZW50cyBXaGVyZU9wdGlvblxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IENsYXVzZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZyb21DbGF1c2U8USwgTSBleHRlbmRzIE1vZGVsPlxuICBleHRlbmRzIFNlbGVjdG9yQmFzZWRDbGF1c2U8USwgRnJvbVNlbGVjdG9yPE0+PlxuICBpbXBsZW1lbnRzIFdoZXJlT3B0aW9uXG57XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF1c2U/OiBNb2RlbEFyZzxGcm9tQ2xhdXNlPFEsIE0+Pikge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIGNsYXVzZSwgeyBwcmlvcml0eTogUHJpb3JpdHkuRlJPTSB9KSk7XG4gICAgdGhpcy5zZWxlY3RvciA9XG4gICAgICB0eXBlb2YgdGhpcy5zZWxlY3RvciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IE1vZGVsLmdldCh0aGlzLnNlbGVjdG9yKVxuICAgICAgICA6IHRoaXMuc2VsZWN0b3I7XG4gICAgaWYgKCF0aGlzLnNlbGVjdG9yKVxuICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3Ioc3RyaW5nRm9ybWF0KFwiQ291bGQgbm90IGZpbmQgc2VsZWN0b3IgbW9kZWw6IHswfVwiKSk7XG4gICAgdGhpcy5zdGF0ZW1lbnQuc2V0VGFyZ2V0KHRoaXMuc2VsZWN0b3IgYXMgQ29uc3RydWN0b3I8TT4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBhYnN0cmFjdCBidWlsZChxdWVyeTogUSk6IFE7XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICB3aGVyZShjb25kaXRpb246IENvbmRpdGlvbik6IE9yZGVyQW5kR3JvdXBPcHRpb24ge1xuICAgIHJldHVybiB0aGlzLkNsYXVzZXMud2hlcmUodGhpcy5zdGF0ZW1lbnQsIGNvbmRpdGlvbik7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBvcmRlckJ5KC4uLnNlbGVjdG9yOiBPcmRlckJ5U2VsZWN0b3JbXSk6IExpbWl0T3B0aW9uICYgT2Zmc2V0T3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLm9yZGVyQnkodGhpcy5zdGF0ZW1lbnQsIHNlbGVjdG9yKTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGdyb3VwQnkoc2VsZWN0b3I6IEdyb3VwQnlTZWxlY3Rvcik6IEV4ZWN1dG9yIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLmdyb3VwQnkodGhpcy5zdGF0ZW1lbnQsIHNlbGVjdG9yKTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGxpbWl0KHNlbGVjdG9yOiBMaW1pdFNlbGVjdG9yKTogT2Zmc2V0T3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLmxpbWl0KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBvZmZzZXQoc2VsZWN0b3I6IE9mZnNldFNlbGVjdG9yKTogRXhlY3V0b3Ige1xuICAgIHJldHVybiB0aGlzLkNsYXVzZXMub2Zmc2V0KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { GroupBySelector } from "../selectors";
|
|
3
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
4
|
+
/**
|
|
5
|
+
* @summary The GROUP BY clause
|
|
6
|
+
*
|
|
7
|
+
* @param {ClauseArg} [clause]
|
|
8
|
+
*
|
|
9
|
+
* @class GroupByClause
|
|
10
|
+
* @extends SelectorBasedClause
|
|
11
|
+
*
|
|
12
|
+
* @category Query
|
|
13
|
+
* @subcategory Clauses
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class GroupByClause<Q> extends SelectorBasedClause<Q, GroupBySelector> {
|
|
16
|
+
protected constructor(clause?: ModelArg<GroupByClause<Q>>);
|
|
17
|
+
/**
|
|
18
|
+
* @inheritDoc
|
|
19
|
+
*/
|
|
20
|
+
abstract build(query: Q): Q;
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Priority } from "../constants";
|
|
2
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
3
|
+
/**
|
|
4
|
+
* @summary The GROUP BY clause
|
|
5
|
+
*
|
|
6
|
+
* @param {ClauseArg} [clause]
|
|
7
|
+
*
|
|
8
|
+
* @class GroupByClause
|
|
9
|
+
* @extends SelectorBasedClause
|
|
10
|
+
*
|
|
11
|
+
* @category Query
|
|
12
|
+
* @subcategory Clauses
|
|
13
|
+
*/
|
|
14
|
+
export class GroupByClause extends SelectorBasedClause {
|
|
15
|
+
constructor(clause) {
|
|
16
|
+
super(Object.assign({}, clause, { priority: Priority.GROUP_BY }));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL0dyb3VwQnlDbGF1c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFnQixhQUFpQixTQUFRLG1CQUc5QztJQUNDLFlBQXNCLE1BQW1DO1FBQ3ZELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0NBS0YiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9Hcm91cEJ5Q2xhdXNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBHcm91cEJ5U2VsZWN0b3IgfSBmcm9tIFwiLi4vc2VsZWN0b3JzXCI7XG5pbXBvcnQgeyBQcmlvcml0eSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFNlbGVjdG9yQmFzZWRDbGF1c2UgfSBmcm9tIFwiLi9TZWxlY3RvckJhc2VkQ2xhdXNlXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVGhlIEdST1VQIEJZIGNsYXVzZVxuICpcbiAqIEBwYXJhbSB7Q2xhdXNlQXJnfSBbY2xhdXNlXVxuICpcbiAqIEBjbGFzcyBHcm91cEJ5Q2xhdXNlXG4gKiBAZXh0ZW5kcyBTZWxlY3RvckJhc2VkQ2xhdXNlXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgQ2xhdXNlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR3JvdXBCeUNsYXVzZTxRPiBleHRlbmRzIFNlbGVjdG9yQmFzZWRDbGF1c2U8XG4gIFEsXG4gIEdyb3VwQnlTZWxlY3RvclxuPiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF1c2U/OiBNb2RlbEFyZzxHcm91cEJ5Q2xhdXNlPFE+Pikge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIGNsYXVzZSwgeyBwcmlvcml0eTogUHJpb3JpdHkuR1JPVVBfQlkgfSkpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQocXVlcnk6IFEpOiBRO1xufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Condition } from "../Condition";
|
|
2
|
+
import { InsertOption, IntoOption, OrderAndGroupOption } from "../options";
|
|
3
|
+
import { Clause } from "../Clause";
|
|
4
|
+
import { Constructor, Model, ModelArg } from "@decaf-ts/decorator-validation";
|
|
5
|
+
import { Executor } from "../../interfaces";
|
|
6
|
+
/**
|
|
7
|
+
* @summary The INSERT/INTO clause
|
|
8
|
+
*
|
|
9
|
+
* @param {ClauseArg} [clause]
|
|
10
|
+
*
|
|
11
|
+
* @class FromClause
|
|
12
|
+
* @extends Clause
|
|
13
|
+
* @implements IntoOption
|
|
14
|
+
*
|
|
15
|
+
* @category Query
|
|
16
|
+
* @subcategory Clauses
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class InsertClause<Q, M extends Model> extends Clause<Q> implements InsertOption<M>, IntoOption<M> {
|
|
19
|
+
protected table?: string;
|
|
20
|
+
protected constructor(clause?: ModelArg<InsertClause<Q, M>>);
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
abstract build(query: Q): Q;
|
|
25
|
+
/**
|
|
26
|
+
* @inheritDoc
|
|
27
|
+
*/
|
|
28
|
+
into(table: Constructor<M>): IntoOption<M>;
|
|
29
|
+
/**
|
|
30
|
+
* @inheritDoc
|
|
31
|
+
*/
|
|
32
|
+
values(...models: M[]): Executor;
|
|
33
|
+
/**
|
|
34
|
+
* @inheritDoc
|
|
35
|
+
*/
|
|
36
|
+
where(condition: Condition): OrderAndGroupOption;
|
|
37
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Priority } from "../constants";
|
|
11
|
+
import { Clause } from "../Clause";
|
|
12
|
+
import { required, } from "@decaf-ts/decorator-validation";
|
|
13
|
+
/**
|
|
14
|
+
* @summary The INSERT/INTO clause
|
|
15
|
+
*
|
|
16
|
+
* @param {ClauseArg} [clause]
|
|
17
|
+
*
|
|
18
|
+
* @class FromClause
|
|
19
|
+
* @extends Clause
|
|
20
|
+
* @implements IntoOption
|
|
21
|
+
*
|
|
22
|
+
* @category Query
|
|
23
|
+
* @subcategory Clauses
|
|
24
|
+
*/
|
|
25
|
+
export class InsertClause extends Clause {
|
|
26
|
+
constructor(clause) {
|
|
27
|
+
super(Object.assign({}, clause, { priority: Priority.SELECT }));
|
|
28
|
+
this.table = undefined;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @inheritDoc
|
|
32
|
+
*/
|
|
33
|
+
into(table) {
|
|
34
|
+
this.table = table.name; // TODO get mapped name
|
|
35
|
+
this.statement.setTarget(table);
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @inheritDoc
|
|
40
|
+
*/
|
|
41
|
+
values(...models) {
|
|
42
|
+
return this.Clauses.values(this.statement, models);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @inheritDoc
|
|
46
|
+
*/
|
|
47
|
+
where(condition) {
|
|
48
|
+
return this.Clauses.where(this.statement, condition);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
__decorate([
|
|
52
|
+
required(),
|
|
53
|
+
__metadata("design:type", String)
|
|
54
|
+
], InsertClause.prototype, "table", void 0);
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL0luc2VydENsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUlMLFFBQVEsR0FDVCxNQUFNLGdDQUFnQyxDQUFDO0FBR3hDOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFnQixZQUNwQixTQUFRLE1BQVM7SUFNakIsWUFBc0IsTUFBcUM7UUFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBSHhELFVBQUssR0FBWSxTQUFTLENBQUM7SUFJckMsQ0FBQztJQU1EOztPQUVHO0lBQ0gsSUFBSSxDQUFDLEtBQXFCO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLHVCQUF1QjtRQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxHQUFHLE1BQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRDs7T0FFRztJQUNILEtBQUssQ0FBQyxTQUFvQjtRQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBOUJXO0lBRFQsUUFBUSxFQUFFOzsyQ0FDMEIiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9JbnNlcnRDbGF1c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi4vQ29uZGl0aW9uXCI7XG5pbXBvcnQgeyBJbnNlcnRPcHRpb24sIEludG9PcHRpb24sIE9yZGVyQW5kR3JvdXBPcHRpb24gfSBmcm9tIFwiLi4vb3B0aW9uc1wiO1xuaW1wb3J0IHsgUHJpb3JpdHkgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBDbGF1c2UgfSBmcm9tIFwiLi4vQ2xhdXNlXCI7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3RvcixcbiAgTW9kZWwsXG4gIE1vZGVsQXJnLFxuICByZXF1aXJlZCxcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRXhlY3V0b3IgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFRoZSBJTlNFUlQvSU5UTyBjbGF1c2VcbiAqXG4gKiBAcGFyYW0ge0NsYXVzZUFyZ30gW2NsYXVzZV1cbiAqXG4gKiBAY2xhc3MgRnJvbUNsYXVzZVxuICogQGV4dGVuZHMgQ2xhdXNlXG4gKiBAaW1wbGVtZW50cyBJbnRvT3B0aW9uXG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgQ2xhdXNlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW5zZXJ0Q2xhdXNlPFEsIE0gZXh0ZW5kcyBNb2RlbD5cbiAgZXh0ZW5kcyBDbGF1c2U8UT5cbiAgaW1wbGVtZW50cyBJbnNlcnRPcHRpb248TT4sIEludG9PcHRpb248TT5cbntcbiAgQHJlcXVpcmVkKClcbiAgcHJvdGVjdGVkIHRhYmxlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF1c2U/OiBNb2RlbEFyZzxJbnNlcnRDbGF1c2U8USwgTT4+KSB7XG4gICAgc3VwZXIoT2JqZWN0LmFzc2lnbih7fSwgY2xhdXNlLCB7IHByaW9yaXR5OiBQcmlvcml0eS5TRUxFQ1QgfSkpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQocXVlcnk6IFEpOiBRO1xuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgaW50byh0YWJsZTogQ29uc3RydWN0b3I8TT4pOiBJbnRvT3B0aW9uPE0+IHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGUubmFtZTsgLy8gVE9ETyBnZXQgbWFwcGVkIG5hbWVcbiAgICB0aGlzLnN0YXRlbWVudC5zZXRUYXJnZXQodGFibGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgdmFsdWVzKC4uLm1vZGVsczogTVtdKTogRXhlY3V0b3Ige1xuICAgIHJldHVybiB0aGlzLkNsYXVzZXMudmFsdWVzKHRoaXMuc3RhdGVtZW50LCBtb2RlbHMpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgd2hlcmUoY29uZGl0aW9uOiBDb25kaXRpb24pOiBPcmRlckFuZEdyb3VwT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLndoZXJlKHRoaXMuc3RhdGVtZW50LCBjb25kaXRpb24pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
2
|
+
import { OffsetOption } from "../options";
|
|
3
|
+
import { Executor } from "../../interfaces";
|
|
4
|
+
import { LimitSelector, OffsetSelector } from "../selectors";
|
|
5
|
+
import { ModelArg } from "@decaf-ts/decorator-validation";
|
|
6
|
+
/**
|
|
7
|
+
* @summary Limit Clause
|
|
8
|
+
* @description Limits the results
|
|
9
|
+
*
|
|
10
|
+
* @param {ClauseArg} [clause]
|
|
11
|
+
*
|
|
12
|
+
* @class LimitClause
|
|
13
|
+
* @extends SelectorBasedClause<T>
|
|
14
|
+
* @implements OffsetOption<T>
|
|
15
|
+
*
|
|
16
|
+
* @category Query
|
|
17
|
+
* @subcategory Clauses
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class LimitClause<Q> extends SelectorBasedClause<Q, LimitSelector> implements OffsetOption {
|
|
20
|
+
protected constructor(clause?: ModelArg<LimitClause<Q>>);
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
abstract build(query: Q): Q;
|
|
25
|
+
/**
|
|
26
|
+
* @inheritDoc
|
|
27
|
+
*/
|
|
28
|
+
offset(selector: OffsetSelector): Executor;
|
|
29
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
2
|
+
import { Priority } from "../constants";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Limit Clause
|
|
5
|
+
* @description Limits the results
|
|
6
|
+
*
|
|
7
|
+
* @param {ClauseArg} [clause]
|
|
8
|
+
*
|
|
9
|
+
* @class LimitClause
|
|
10
|
+
* @extends SelectorBasedClause<T>
|
|
11
|
+
* @implements OffsetOption<T>
|
|
12
|
+
*
|
|
13
|
+
* @category Query
|
|
14
|
+
* @subcategory Clauses
|
|
15
|
+
*/
|
|
16
|
+
export class LimitClause extends SelectorBasedClause {
|
|
17
|
+
constructor(clause) {
|
|
18
|
+
super(Object.assign({}, clause, { priority: Priority.GROUP_BY }));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @inheritDoc
|
|
22
|
+
*/
|
|
23
|
+
offset(selector) {
|
|
24
|
+
return this.Clauses.offset(this.statement, selector);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL0xpbWl0Q2xhdXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHeEM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFnQixXQUNwQixTQUFRLG1CQUFxQztJQUc3QyxZQUFzQixNQUFpQztRQUNyRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUtEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9MaW1pdENsYXVzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdG9yQmFzZWRDbGF1c2UgfSBmcm9tIFwiLi9TZWxlY3RvckJhc2VkQ2xhdXNlXCI7XG5pbXBvcnQgeyBPZmZzZXRPcHRpb24gfSBmcm9tIFwiLi4vb3B0aW9uc1wiO1xuaW1wb3J0IHsgRXhlY3V0b3IgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgTGltaXRTZWxlY3RvciwgT2Zmc2V0U2VsZWN0b3IgfSBmcm9tIFwiLi4vc2VsZWN0b3JzXCI7XG5pbXBvcnQgeyBQcmlvcml0eSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IExpbWl0IENsYXVzZVxuICogQGRlc2NyaXB0aW9uIExpbWl0cyB0aGUgcmVzdWx0c1xuICpcbiAqIEBwYXJhbSB7Q2xhdXNlQXJnfSBbY2xhdXNlXVxuICpcbiAqIEBjbGFzcyBMaW1pdENsYXVzZVxuICogQGV4dGVuZHMgU2VsZWN0b3JCYXNlZENsYXVzZTxUPlxuICogQGltcGxlbWVudHMgT2Zmc2V0T3B0aW9uPFQ+XG4gKlxuICogQGNhdGVnb3J5IFF1ZXJ5XG4gKiBAc3ViY2F0ZWdvcnkgQ2xhdXNlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGltaXRDbGF1c2U8UT5cbiAgZXh0ZW5kcyBTZWxlY3RvckJhc2VkQ2xhdXNlPFEsIExpbWl0U2VsZWN0b3I+XG4gIGltcGxlbWVudHMgT2Zmc2V0T3B0aW9uXG57XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF1c2U/OiBNb2RlbEFyZzxMaW1pdENsYXVzZTxRPj4pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHt9LCBjbGF1c2UsIHsgcHJpb3JpdHk6IFByaW9yaXR5LkdST1VQX0JZIH0pKTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGFic3RyYWN0IGJ1aWxkKHF1ZXJ5OiBRKTogUTtcbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBvZmZzZXQoc2VsZWN0b3I6IE9mZnNldFNlbGVjdG9yKTogRXhlY3V0b3Ige1xuICAgIHJldHVybiB0aGlzLkNsYXVzZXMub2Zmc2V0KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
2
|
+
import { OffsetSelector } from "../selectors";
|
|
3
|
+
import { ModelArg } from "@decaf-ts/decorator-validation";
|
|
4
|
+
/**
|
|
5
|
+
* @summary The OFFSET clause
|
|
6
|
+
*
|
|
7
|
+
* @param {ClauseArg} [clause]
|
|
8
|
+
*
|
|
9
|
+
* @class FromClause
|
|
10
|
+
* @extends SelectorBasedClause
|
|
11
|
+
*
|
|
12
|
+
* @category Query
|
|
13
|
+
* @subcategory Clauses
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class OffsetClause<Q> extends SelectorBasedClause<Q, OffsetSelector> {
|
|
16
|
+
protected constructor(clause?: ModelArg<OffsetClause<Q>>);
|
|
17
|
+
/**
|
|
18
|
+
* @inheritDoc
|
|
19
|
+
*/
|
|
20
|
+
abstract build(query: Q): Q;
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
2
|
+
import { Priority } from "../constants";
|
|
3
|
+
/**
|
|
4
|
+
* @summary The OFFSET clause
|
|
5
|
+
*
|
|
6
|
+
* @param {ClauseArg} [clause]
|
|
7
|
+
*
|
|
8
|
+
* @class FromClause
|
|
9
|
+
* @extends SelectorBasedClause
|
|
10
|
+
*
|
|
11
|
+
* @category Query
|
|
12
|
+
* @subcategory Clauses
|
|
13
|
+
*/
|
|
14
|
+
export class OffsetClause extends SelectorBasedClause {
|
|
15
|
+
constructor(clause) {
|
|
16
|
+
super(Object.assign({}, clause, { priority: Priority.GROUP_BY }));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL09mZnNldENsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3hDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQWdCLFlBQWdCLFNBQVEsbUJBRzdDO0lBQ0MsWUFBc0IsTUFBa0M7UUFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FLRiIsImZpbGUiOiJxdWVyeS9jbGF1c2VzL09mZnNldENsYXVzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdG9yQmFzZWRDbGF1c2UgfSBmcm9tIFwiLi9TZWxlY3RvckJhc2VkQ2xhdXNlXCI7XG5pbXBvcnQgeyBPZmZzZXRTZWxlY3RvciB9IGZyb20gXCIuLi9zZWxlY3RvcnNcIjtcbmltcG9ydCB7IFByaW9yaXR5IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTW9kZWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVGhlIE9GRlNFVCBjbGF1c2VcbiAqXG4gKiBAcGFyYW0ge0NsYXVzZUFyZ30gW2NsYXVzZV1cbiAqXG4gKiBAY2xhc3MgRnJvbUNsYXVzZVxuICogQGV4dGVuZHMgU2VsZWN0b3JCYXNlZENsYXVzZVxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IENsYXVzZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9mZnNldENsYXVzZTxRPiBleHRlbmRzIFNlbGVjdG9yQmFzZWRDbGF1c2U8XG4gIFEsXG4gIE9mZnNldFNlbGVjdG9yXG4+IHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNsYXVzZT86IE1vZGVsQXJnPE9mZnNldENsYXVzZTxRPj4pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHt9LCBjbGF1c2UsIHsgcHJpb3JpdHk6IFByaW9yaXR5LkdST1VQX0JZIH0pKTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGFic3RyYWN0IGJ1aWxkKHF1ZXJ5OiBRKTogUTtcbn1cbiJdfQ==
|
|
@@ -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,40 @@
|
|
|
1
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
2
|
+
import { Priority } from "../constants";
|
|
3
|
+
/**
|
|
4
|
+
* @summary The ORDER BY clause
|
|
5
|
+
*
|
|
6
|
+
* @param {ClauseArg} [clause]
|
|
7
|
+
*
|
|
8
|
+
* @class OrderByClause
|
|
9
|
+
* @extends SelectorBasedClause
|
|
10
|
+
* @implements LimitOption
|
|
11
|
+
* @implements OffsetOption
|
|
12
|
+
*
|
|
13
|
+
* @category Query
|
|
14
|
+
* @subcategory Clauses
|
|
15
|
+
*/
|
|
16
|
+
export class OrderByClause extends SelectorBasedClause {
|
|
17
|
+
constructor(clause) {
|
|
18
|
+
super(Object.assign({}, clause, { priority: Priority.ORDER_BY }));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @inheritDoc
|
|
22
|
+
*/
|
|
23
|
+
groupBy(selector) {
|
|
24
|
+
return this.Clauses.groupBy(this.statement, selector);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @inheritDoc
|
|
28
|
+
*/
|
|
29
|
+
limit(selector) {
|
|
30
|
+
return this.Clauses.limit(this.statement, selector);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @inheritDoc
|
|
34
|
+
*/
|
|
35
|
+
offset(selector) {
|
|
36
|
+
return this.Clauses.offset(this.statement, selector);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL09yZGVyQnlDbGF1c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVV4Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLE9BQWdCLGFBQ3BCLFNBQVEsbUJBQXlDO0lBR2pELFlBQXNCLE1BQW1DO1FBQ3ZELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBS0Q7O09BRUc7SUFDSCxPQUFPLENBQUMsUUFBeUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRDs7T0FFRztJQUNILEtBQUssQ0FBQyxRQUF1QjtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9PcmRlckJ5Q2xhdXNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0b3JCYXNlZENsYXVzZSB9IGZyb20gXCIuL1NlbGVjdG9yQmFzZWRDbGF1c2VcIjtcbmltcG9ydCB7IFByaW9yaXR5IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgR3JvdXBCeVNlbGVjdG9yLFxuICBMaW1pdFNlbGVjdG9yLFxuICBPZmZzZXRTZWxlY3RvcixcbiAgT3JkZXJCeVNlbGVjdG9yLFxufSBmcm9tIFwiLi4vc2VsZWN0b3JzXCI7XG5pbXBvcnQgeyBMaW1pdE9wdGlvbiwgT2Zmc2V0T3B0aW9uIH0gZnJvbSBcIi4uL29wdGlvbnNcIjtcbmltcG9ydCB7IEV4ZWN1dG9yIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuLyoqXG4gKiBAc3VtbWFyeSBUaGUgT1JERVIgQlkgY2xhdXNlXG4gKlxuICogQHBhcmFtIHtDbGF1c2VBcmd9IFtjbGF1c2VdXG4gKlxuICogQGNsYXNzIE9yZGVyQnlDbGF1c2VcbiAqIEBleHRlbmRzIFNlbGVjdG9yQmFzZWRDbGF1c2VcbiAqIEBpbXBsZW1lbnRzIExpbWl0T3B0aW9uXG4gKiBAaW1wbGVtZW50cyBPZmZzZXRPcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBDbGF1c2VzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcmRlckJ5Q2xhdXNlPFE+XG4gIGV4dGVuZHMgU2VsZWN0b3JCYXNlZENsYXVzZTxRLCBPcmRlckJ5U2VsZWN0b3JbXT5cbiAgaW1wbGVtZW50cyBMaW1pdE9wdGlvbiwgT2Zmc2V0T3B0aW9uXG57XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF1c2U/OiBNb2RlbEFyZzxPcmRlckJ5Q2xhdXNlPFE+Pikge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIGNsYXVzZSwgeyBwcmlvcml0eTogUHJpb3JpdHkuT1JERVJfQlkgfSkpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQocXVlcnk6IFEpOiBRO1xuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGdyb3VwQnkoc2VsZWN0b3I6IEdyb3VwQnlTZWxlY3Rvcik6IEV4ZWN1dG9yIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLmdyb3VwQnkodGhpcy5zdGF0ZW1lbnQsIHNlbGVjdG9yKTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGxpbWl0KHNlbGVjdG9yOiBMaW1pdFNlbGVjdG9yKTogT2Zmc2V0T3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5DbGF1c2VzLmxpbWl0KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBvZmZzZXQoc2VsZWN0b3I6IE9mZnNldFNlbGVjdG9yKTogRXhlY3V0b3Ige1xuICAgIHJldHVybiB0aGlzLkNsYXVzZXMub2Zmc2V0KHRoaXMuc3RhdGVtZW50LCBzZWxlY3Rvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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,63 @@
|
|
|
1
|
+
import { SelectorBasedClause } from "./SelectorBasedClause";
|
|
2
|
+
import { Const, Priority, StatementType } from "../constants";
|
|
3
|
+
/**
|
|
4
|
+
* @summary The SELECT clause
|
|
5
|
+
*
|
|
6
|
+
* @param {ClauseArg} [clause]
|
|
7
|
+
*
|
|
8
|
+
* @class SelectClause
|
|
9
|
+
* @extends SelectorBasedClause
|
|
10
|
+
* @implements SelectOption
|
|
11
|
+
*
|
|
12
|
+
* @category Query
|
|
13
|
+
* @subcategory Clauses
|
|
14
|
+
*/
|
|
15
|
+
export class SelectClause extends SelectorBasedClause {
|
|
16
|
+
constructor(clause) {
|
|
17
|
+
super(Object.assign({}, clause, { priority: Priority.SELECT }));
|
|
18
|
+
this.isDistinct = false;
|
|
19
|
+
this.isCount = false;
|
|
20
|
+
this.isMax = false;
|
|
21
|
+
this.isMin = false;
|
|
22
|
+
if (this.selector === Const.FULL_RECORD)
|
|
23
|
+
this.statement.setFullRecord();
|
|
24
|
+
this.statement.setMode(StatementType.QUERY);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @inheritDoc
|
|
28
|
+
*/
|
|
29
|
+
distinct(selector) {
|
|
30
|
+
this.isDistinct = true;
|
|
31
|
+
this.selector = selector;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
count(selector) {
|
|
38
|
+
this.selector = selector;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @inheritDoc
|
|
43
|
+
*/
|
|
44
|
+
min(selector) {
|
|
45
|
+
this.selector = selector;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @inheritDoc
|
|
50
|
+
*/
|
|
51
|
+
max(selector) {
|
|
52
|
+
this.selector = selector;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @inheritDoc
|
|
57
|
+
*/
|
|
58
|
+
from(tableName) {
|
|
59
|
+
return this.Clauses.from(this.statement, tableName);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL1NlbGVjdENsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVM1RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJOUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLE9BQWdCLFlBQ3BCLFNBQVEsbUJBQXNDO0lBUTlDLFlBQXNCLE1BQXFDO1FBQ3pELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQU4xRCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFVBQUssR0FBRyxLQUFLLENBQUM7UUFJcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4RSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUtEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFFBQXdCO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFFBQXdCO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLFFBQXdCO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLFFBQXdCO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFBSSxDQUFDLFNBQXlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJmaWxlIjoicXVlcnkvY2xhdXNlcy9TZWxlY3RDbGF1c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RvckJhc2VkQ2xhdXNlIH0gZnJvbSBcIi4vU2VsZWN0b3JCYXNlZENsYXVzZVwiO1xuaW1wb3J0IHtcbiAgQ291bnRPcHRpb24sXG4gIERpc3RpbmN0T3B0aW9uLFxuICBNYXhPcHRpb24sXG4gIE1pbk9wdGlvbixcbiAgU2VsZWN0T3B0aW9uLFxuICBXaGVyZU9wdGlvbixcbn0gZnJvbSBcIi4uL29wdGlvbnNcIjtcbmltcG9ydCB7IENvbnN0LCBQcmlvcml0eSwgU3RhdGVtZW50VHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNb2RlbEFyZywgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBTZWxlY3RTZWxlY3RvciB9IGZyb20gXCIuLi9zZWxlY3RvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgU0VMRUNUIGNsYXVzZVxuICpcbiAqIEBwYXJhbSB7Q2xhdXNlQXJnfSBbY2xhdXNlXVxuICpcbiAqIEBjbGFzcyBTZWxlY3RDbGF1c2VcbiAqIEBleHRlbmRzIFNlbGVjdG9yQmFzZWRDbGF1c2VcbiAqIEBpbXBsZW1lbnRzIFNlbGVjdE9wdGlvblxuICpcbiAqIEBjYXRlZ29yeSBRdWVyeVxuICogQHN1YmNhdGVnb3J5IENsYXVzZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlbGVjdENsYXVzZTxRLCBNIGV4dGVuZHMgTW9kZWw+XG4gIGV4dGVuZHMgU2VsZWN0b3JCYXNlZENsYXVzZTxRLCBTZWxlY3RTZWxlY3Rvcj5cbiAgaW1wbGVtZW50cyBTZWxlY3RPcHRpb248TT5cbntcbiAgcHJpdmF0ZSBpc0Rpc3RpbmN0OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaXNDb3VudCA9IGZhbHNlO1xuICBwcml2YXRlIGlzTWF4ID0gZmFsc2U7XG4gIHByaXZhdGUgaXNNaW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY2xhdXNlPzogTW9kZWxBcmc8U2VsZWN0Q2xhdXNlPFEsIE0+Pikge1xuICAgIHN1cGVyKE9iamVjdC5hc3NpZ24oe30sIGNsYXVzZSwgeyBwcmlvcml0eTogUHJpb3JpdHkuU0VMRUNUIH0pKTtcbiAgICBpZiAodGhpcy5zZWxlY3RvciA9PT0gQ29uc3QuRlVMTF9SRUNPUkQpIHRoaXMuc3RhdGVtZW50LnNldEZ1bGxSZWNvcmQoKTtcbiAgICB0aGlzLnN0YXRlbWVudC5zZXRNb2RlKFN0YXRlbWVudFR5cGUuUVVFUlkpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYWJzdHJhY3QgYnVpbGQocXVlcnk6IFEpOiBRO1xuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGRpc3RpbmN0KHNlbGVjdG9yOiBTZWxlY3RTZWxlY3Rvcik6IERpc3RpbmN0T3B0aW9uPE0+IHtcbiAgICB0aGlzLmlzRGlzdGluY3QgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGNvdW50KHNlbGVjdG9yOiBTZWxlY3RTZWxlY3Rvcik6IENvdW50T3B0aW9uPE0+IHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBtaW4oc2VsZWN0b3I6IFNlbGVjdFNlbGVjdG9yKTogTWluT3B0aW9uPE0+IHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBtYXgoc2VsZWN0b3I6IFNlbGVjdFNlbGVjdG9yKTogTWF4T3B0aW9uPE0+IHtcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBmcm9tKHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4pOiBXaGVyZU9wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuQ2xhdXNlcy5mcm9tKHRoaXMuc3RhdGVtZW50LCB0YWJsZU5hbWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -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,45 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Clause } from "../Clause";
|
|
11
|
+
import { required } from "@decaf-ts/decorator-validation";
|
|
12
|
+
/**
|
|
13
|
+
* @summary The base Selector based clause
|
|
14
|
+
*
|
|
15
|
+
* @param {ClauseArg} [clause]
|
|
16
|
+
*
|
|
17
|
+
* @class SelectorBasedClause
|
|
18
|
+
* @extends Clause
|
|
19
|
+
* @abstract
|
|
20
|
+
*
|
|
21
|
+
* @category Query
|
|
22
|
+
* @subcategory Clauses
|
|
23
|
+
*/
|
|
24
|
+
export class SelectorBasedClause extends Clause {
|
|
25
|
+
constructor(clause) {
|
|
26
|
+
super(clause);
|
|
27
|
+
/**
|
|
28
|
+
* @summary Stores the selector
|
|
29
|
+
*
|
|
30
|
+
* @prop selector
|
|
31
|
+
* @protected
|
|
32
|
+
*/
|
|
33
|
+
this.selector = undefined;
|
|
34
|
+
this.selector = clause.selector;
|
|
35
|
+
}
|
|
36
|
+
toString() {
|
|
37
|
+
return this.constructor.name + `[${this.selector}]`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
__decorate([
|
|
41
|
+
required(),
|
|
42
|
+
__metadata("design:type", Object)
|
|
43
|
+
], SelectorBasedClause.prototype, "selector", void 0);
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL1NlbGVjdG9yQmFzZWRDbGF1c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQVksUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEU7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLE9BQWdCLG1CQUEwQixTQUFRLE1BQVM7SUFVL0QsWUFBc0IsTUFBNEM7UUFDaEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBVmhCOzs7OztXQUtHO1FBRU8sYUFBUSxHQUFPLFNBQVMsQ0FBQztRQUlqQyxJQUFJLENBQUMsUUFBUSxHQUFJLE1BQTBCLENBQUMsUUFBUSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQztJQUN0RCxDQUFDO0NBQ0Y7QUFWVztJQURULFFBQVEsRUFBRTs7cURBQ3dCIiwiZmlsZSI6InF1ZXJ5L2NsYXVzZXMvU2VsZWN0b3JCYXNlZENsYXVzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXVzZSB9IGZyb20gXCIuLi9DbGF1c2VcIjtcbmltcG9ydCB7IE1vZGVsQXJnLCByZXF1aXJlZCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgYmFzZSBTZWxlY3RvciBiYXNlZCBjbGF1c2VcbiAqXG4gKiBAcGFyYW0ge0NsYXVzZUFyZ30gW2NsYXVzZV1cbiAqXG4gKiBAY2xhc3MgU2VsZWN0b3JCYXNlZENsYXVzZVxuICogQGV4dGVuZHMgQ2xhdXNlXG4gKiBAYWJzdHJhY3RcbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBDbGF1c2VzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZWxlY3RvckJhc2VkQ2xhdXNlPFEsIFM+IGV4dGVuZHMgQ2xhdXNlPFE+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgc2VsZWN0b3JcbiAgICpcbiAgICogQHByb3Agc2VsZWN0b3JcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgQHJlcXVpcmVkKClcbiAgcHJvdGVjdGVkIHNlbGVjdG9yPzogUyA9IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY2xhdXNlPzogTW9kZWxBcmc8U2VsZWN0b3JCYXNlZENsYXVzZTxRLCBTPj4pIHtcbiAgICBzdXBlcihjbGF1c2UpO1xuICAgIHRoaXMuc2VsZWN0b3IgPSAoY2xhdXNlIGFzIHsgc2VsZWN0b3I6IFMgfSkuc2VsZWN0b3I7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgYFske3RoaXMuc2VsZWN0b3J9XWA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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,37 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Clause } from "../Clause";
|
|
11
|
+
import { Priority } from "../constants";
|
|
12
|
+
import { required, type } from "@decaf-ts/decorator-validation";
|
|
13
|
+
/**
|
|
14
|
+
* @summary The VALUES clause
|
|
15
|
+
*
|
|
16
|
+
* @param {ClauseArg} [clause]
|
|
17
|
+
*
|
|
18
|
+
* @class ValuesClause
|
|
19
|
+
* @extends Clause
|
|
20
|
+
*
|
|
21
|
+
* @category Query
|
|
22
|
+
* @subcategory Clauses
|
|
23
|
+
*/
|
|
24
|
+
export class ValuesClause extends Clause {
|
|
25
|
+
constructor(clause) {
|
|
26
|
+
super(Object.assign({}, clause, { priority: Priority.FROM }));
|
|
27
|
+
this.models = undefined;
|
|
28
|
+
this.models = clause?.models;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
__decorate([
|
|
32
|
+
required(),
|
|
33
|
+
type(Array.name),
|
|
34
|
+
__metadata("design:type", Array)
|
|
35
|
+
], ValuesClause.prototype, "models", void 0);
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9xdWVyeS9jbGF1c2VzL1ZhbHVlc0NsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFZLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUxRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFnQixZQUFtQixTQUFRLE1BQVM7SUFLeEQsWUFBc0IsTUFBcUM7UUFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBSGhFLFdBQU0sR0FBUyxTQUFTLENBQUM7UUFJdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQy9CLENBQUM7Q0FLRjtBQVZDO0lBRkMsUUFBUSxFQUFFO0lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7OzRDQUNRIiwiZmlsZSI6InF1ZXJ5L2NsYXVzZXMvVmFsdWVzQ2xhdXNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xhdXNlIH0gZnJvbSBcIi4uL0NsYXVzZVwiO1xuaW1wb3J0IHsgUHJpb3JpdHkgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBNb2RlbEFyZywgcmVxdWlyZWQsIHR5cGUgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVGhlIFZBTFVFUyBjbGF1c2VcbiAqXG4gKiBAcGFyYW0ge0NsYXVzZUFyZ30gW2NsYXVzZV1cbiAqXG4gKiBAY2xhc3MgVmFsdWVzQ2xhdXNlXG4gKiBAZXh0ZW5kcyBDbGF1c2VcbiAqXG4gKiBAY2F0ZWdvcnkgUXVlcnlcbiAqIEBzdWJjYXRlZ29yeSBDbGF1c2VzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWx1ZXNDbGF1c2U8USwgTT4gZXh0ZW5kcyBDbGF1c2U8UT4ge1xuICBAcmVxdWlyZWQoKVxuICBAdHlwZShBcnJheS5uYW1lKVxuICBtb2RlbHM/OiBNW10gPSB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNsYXVzZT86IE1vZGVsQXJnPFZhbHVlc0NsYXVzZTxRLCBNPj4pIHtcbiAgICBzdXBlcihPYmplY3QuYXNzaWduKHt9LCBjbGF1c2UsIHsgcHJpb3JpdHk6IFByaW9yaXR5LkZST00gfSkpO1xuICAgIHRoaXMubW9kZWxzID0gY2xhdXNlPy5tb2RlbHM7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBhYnN0cmFjdCBidWlsZChxdWVyeTogUSk6IFE7XG59XG4iXX0=
|