@decaf-ts/core 0.5.30 → 0.5.32
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/LICENSE.md +17 -13
- package/dist/core.cjs +6 -8
- package/dist/core.esm.cjs +6 -8
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/query/MethodQueryBuilder.d.ts +7 -5
- package/lib/esm/query/MethodQueryBuilder.js +2 -6
- package/lib/esm/query/decorators.d.ts +1 -1
- package/lib/esm/query/decorators.js +1 -1
- package/lib/esm/query/utils.js +4 -2
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/query/MethodQueryBuilder.cjs +2 -6
- package/lib/query/MethodQueryBuilder.d.ts +7 -5
- package/lib/query/decorators.cjs +1 -1
- package/lib/query/decorators.d.ts +1 -1
- package/lib/query/utils.cjs +4 -2
- package/package.json +12 -5
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
@@ -25,5 +25,5 @@ export * from "./persistence/index.js";
|
|
25
25
|
* @const VERSION
|
26
26
|
* @memberOf module:core
|
27
27
|
*/
|
28
|
-
export const VERSION = "0.5.
|
28
|
+
export const VERSION = "0.5.31";
|
29
29
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9DQUFpQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsa0ZBQWtGO0FBQ2xGLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFFbkQsNEJBQTRCO0FBQzVCLHNDQUE2QjtBQUU3QixvQ0FBMkI7QUFDM0Isc0NBQTZCO0FBQzdCLGlDQUF3QjtBQUN4QixpQ0FBd0I7QUFDeEIsaUNBQXdCO0FBQ3hCLG9DQUFpQztBQUNqQyx5QkFBeUI7QUFDekIsdUNBQThCO0FBRTlCOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBjb3JlXG4gKiBAZGVzY3JpcHRpb24gQ29yZSBtb2R1bGUgZm9yIHRoZSBEZWNhZiBUeXBlU2NyaXB0IGZyYW1ld29ya1xuICogQHN1bW1hcnkgVGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGZvdW5kYXRpb25hbCBjb21wb25lbnRzIG9mIHRoZSBEZWNhZiBmcmFtZXdvcmssIGluY2x1ZGluZyBpZGVudGl0eSBtYW5hZ2VtZW50LFxuICogbW9kZWwgZGVmaW5pdGlvbnMsIHJlcG9zaXRvcnkgcGF0dGVybnMsIHBlcnNpc3RlbmNlIGxheWVyLCBxdWVyeSBidWlsZGluZywgYW5kIHV0aWxpdHkgZnVuY3Rpb25zLlxuICogSXQgZXhwb3J0cyBmdW5jdGlvbmFsaXR5IGZyb20gdmFyaW91cyBzdWJtb2R1bGVzIGFuZCBzZXRzIHVwIHRoZSBpbmplY3RhYmxlIHJlZ2lzdHJ5IGZvciByZXBvc2l0b3J5IGRlY29yYXRvcnMuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZXNSZWdpc3RyeSB9IGZyb20gXCIuL3JlcG9zaXRvcnkvaW5qZWN0YWJsZXNcIjtcbmltcG9ydCB7IEluamVjdGFibGVzIH0gZnJvbSBcIkBkZWNhZi10cy9pbmplY3RhYmxlLWRlY29yYXRvcnNcIjtcblxuLy8gb3ZlcnJpZGVzIHRoZSBwcmV2aW91cyBJbmplY3RhYmxlcyByZWdpc3RyeSB0byBlbmFibGUgdGhlIEByZXBvc2l0b3J5IGRlY29yYXRvclxuSW5qZWN0YWJsZXMuc2V0UmVnaXN0cnkobmV3IEluamVjdGFibGVzUmVnaXN0cnkoKSk7XG5cbi8vIGltcG9ydGVkIGZpcnN0IG9uIHB1cnBvc2VcbmV4cG9ydCAqIGZyb20gXCIuL3JlcG9zaXRvcnlcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vaWRlbnRpdHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JhbS9SYW1BZGFwdGVyXCI7XG4vL2xlZnQgdG8gbGFzdCBvbiBwdXJwb3NlXG5leHBvcnQgKiBmcm9tIFwiLi9wZXJzaXN0ZW5jZVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uXG4gKiBAc3VtbWFyeSBBIGNvbnN0YW50IHJlcHJlc2VudGluZyB0aGUgdmVyc2lvbiBvZiB0aGUgY29yZSBwYWNrYWdlXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl19
|
@@ -1,4 +1,10 @@
|
|
1
|
+
import { OrderBySelector } from "../query";
|
1
2
|
import { QueryAssist } from "./types";
|
3
|
+
export type OrderLimitOffsetExtract = {
|
4
|
+
orderBy?: OrderBySelector<any>[];
|
5
|
+
limit?: number;
|
6
|
+
offset?: number;
|
7
|
+
};
|
2
8
|
/**
|
3
9
|
* @description
|
4
10
|
* Utility class to build query objects from repository method names.
|
@@ -145,11 +151,7 @@ export declare class MethodQueryBuilder {
|
|
145
151
|
* @param core {string} - The extracted core string from the method name.
|
146
152
|
* @param values {any[]} - The values corresponding to method arguments, including conditions and extras.
|
147
153
|
*
|
148
|
-
* @return {
|
149
|
-
* orderBy?: OrderBySelector<any>[];
|
150
|
-
* limit?: number;
|
151
|
-
* offset?: number;
|
152
|
-
* }} An object containing orderBy, limit, and offset values if present.
|
154
|
+
* @return {OrderLimitOffsetExtract} An object containing orderBy, limit, and offset values if present.
|
153
155
|
*/
|
154
156
|
private static extractOrderLimitOffset;
|
155
157
|
}
|
@@ -248,11 +248,7 @@ export class MethodQueryBuilder {
|
|
248
248
|
* @param core {string} - The extracted core string from the method name.
|
249
249
|
* @param values {any[]} - The values corresponding to method arguments, including conditions and extras.
|
250
250
|
*
|
251
|
-
* @return {
|
252
|
-
* orderBy?: OrderBySelector<any>[];
|
253
|
-
* limit?: number;
|
254
|
-
* offset?: number;
|
255
|
-
* }} An object containing orderBy, limit, and offset values if present.
|
251
|
+
* @return {OrderLimitOffsetExtract} An object containing orderBy, limit, and offset values if present.
|
256
252
|
*/
|
257
253
|
static extractOrderLimitOffset(core, values) {
|
258
254
|
const conditionCount = core.split(/And|Or/).length;
|
@@ -269,4 +265,4 @@ export class MethodQueryBuilder {
|
|
269
265
|
return { orderBy, limit, offset };
|
270
266
|
}
|
271
267
|
}
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0aG9kUXVlcnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L01ldGhvZFF1ZXJ5QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWlDLFdBQVcsRUFBRSxtQkFBZ0I7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBZ0I7QUFFdkMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUN6QyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELG1EQUFtRDtRQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQzdELElBQUksRUFDSixNQUFNLENBQ1AsQ0FBQztRQUVGLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSztZQUNMLE9BQU87WUFDUCxPQUFPO1lBQ1AsS0FBSztZQUNMLE1BQU07U0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ssTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFrQjtRQUMzQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsTUFBTSxLQUFLLEdBQUcsMENBQTBDLENBQUM7UUFDekQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ssTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFrQjtRQUM3QyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUV6QyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUN0QyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ3hDLENBQUM7UUFFRiw0Q0FBNEM7UUFDNUMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sVUFBVSxHQUFHLEtBQUs7WUFDdEIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDdkMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUVoQixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ssTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFrQjtRQUM5QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxDQUNoQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQzNDLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxPQUFPLFdBQVc7YUFDZixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUMxQixHQUFHLENBQUMsVUFBVSxDQUFDO2FBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsdUJBQXVCO0lBQ3ZCLDBDQUEwQztJQUMxQyxtRUFBbUU7SUFDbkUsK0NBQStDO0lBQy9DLEVBQUU7SUFDRix3Q0FBd0M7SUFDeEMsaURBQWlEO0lBQ2pELE9BQU87SUFDUCw4Q0FBOEM7SUFDOUMsRUFBRTtJQUNGLHNDQUFzQztJQUN0Qyx3REFBd0Q7SUFDeEQsb0VBQW9FO0lBQ3BFLG9DQUFvQztJQUNwQyxlQUFlO0lBQ2YsMkJBQTJCO0lBQzNCLG9DQUFvQztJQUNwQywrQkFBK0I7SUFDL0IsbURBQW1EO0lBQ25ELFNBQVM7SUFDVCxRQUFRO0lBQ1IsSUFBSTtJQUVKOzs7Ozs7Ozs7Ozs7T0FZRztJQUNLLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWSxFQUFFLE1BQWE7UUFDbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTlDLElBQUksS0FBaUMsQ0FBQztRQUV0QyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxNQUFNO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFakUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksT0FBTyxjQUFjLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDaEQsS0FBSztnQkFDSCxHQUFHLEtBQUssQ0FBQztvQkFDUCxDQUFDLENBQUMsU0FBUztvQkFDWCxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsR0FBRzt3QkFDdEMsQ0FBQyxDQUFDLEtBQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO3dCQUN2QixDQUFDLENBQUMsS0FBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ssTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQVc7UUFDOUMsS0FBSyxNQUFNLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ssTUFBTSxDQUFDLHVCQUF1QixDQUNwQyxJQUFZLEVBQ1osTUFBYTtRQUViLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0MsSUFBSSxPQUEyQyxDQUFDO1FBQ2hELElBQUksS0FBeUIsQ0FBQztRQUM5QixJQUFJLE1BQTBCLENBQUM7UUFFL0IsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBMkIsQ0FBQztRQUVuRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7WUFDM0QsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2QixJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7WUFDM0QsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb24sIE9yZGVyQnlTZWxlY3RvciB9IGZyb20gXCIuLi9xdWVyeVwiO1xuaW1wb3J0IHsgRmlsdGVyRGVzY3JpcHRvciwgUXVlcnlBc3Npc3QsIFF1ZXJ5Q2xhdXNlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE9wZXJhdG9yc01hcCB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmNvbnN0IGxvd2VyRmlyc3QgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgc3RyLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVXRpbGl0eSBjbGFzcyB0byBidWlsZCBxdWVyeSBvYmplY3RzIGZyb20gcmVwb3NpdG9yeSBtZXRob2QgbmFtZXMuXG4gKlxuICogQHN1bW1hcnlcbiAqIFRoZSBgTWV0aG9kUXVlcnlCdWlsZGVyYCBjbGFzcyBwYXJzZXMgbWV0aG9kIG5hbWVzIHRoYXQgZm9sbG93IGEgc3BlY2lmaWMgbmFtaW5nIGNvbnZlbnRpb25cbiAqIChlLmcuLCBgZmluZEJ5TmFtZUFuZEFnZU9yZGVyQnlDb3VudHJ5QXNjYCkgYW5kIGNvbnZlcnRzIHRoZW0gaW50byBzdHJ1Y3R1cmVkIHF1ZXJ5IG9iamVjdHNcbiAqIChgUXVlcnlBc3Npc3RgKS4gSXQgZXh0cmFjdHMgY2xhdXNlcyBzdWNoIGFzIGBzZWxlY3RgLCBgd2hlcmVgLCBgZ3JvdXBCeWAsIGBvcmRlckJ5YCwgYGxpbWl0YCxcbiAqIGFuZCBgb2Zmc2V0YCwgZW5zdXJpbmcgdGhhdCBkZXZlbG9wZXJzIGNhbiBkZWNsYXJlIHJlcG9zaXRvcnkgcXVlcmllcyB1c2luZyBleHByZXNzaXZlIG1ldGhvZCBuYW1lcy5cbiAqXG4gKiBAcGFyYW0gbWV0aG9kTmFtZSB7c3RyaW5nfSAtIFRoZSByZXBvc2l0b3J5IG1ldGhvZCBuYW1lIHRvIHBhcnNlIGFuZCBjb252ZXJ0IGludG8gYSBxdWVyeS5cbiAqIEBwYXJhbSB2YWx1ZXMge2FueVtdfSAtIFRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byBtZXRob2QgcGFyYW1ldGVycyB1c2VkIGZvciBxdWVyeSBjb25kaXRpb25zLlxuICpcbiAqIEByZXR1cm4ge1F1ZXJ5QXNzaXN0fSBBIHN0cnVjdHVyZWQgcXVlcnkgb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHBhcnNlZCBhY3Rpb24sIHNlbGVjdCwgd2hlcmUsXG4gKiBncm91cEJ5LCBvcmRlckJ5LCBsaW1pdCwgYW5kIG9mZnNldCBjbGF1c2VzLlxuICpcbiAqIEBjbGFzc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgcXVlcnkgPSBNZXRob2RRdWVyeUJ1aWxkZXIuYnVpbGQoXG4gKiAgIFwiZmluZEJ5TmFtZUFuZEFnZU9yZGVyQnlDb3VudHJ5QXNjXCIsXG4gKiAgIFwiSm9oblwiLFxuICogICAyNSxcbiAqICAgW1tcImNvdW50cnlcIiwgXCJBU0NcIl1dXG4gKiApO1xuICpcbiAqIGNvbnNvbGUubG9nKHF1ZXJ5KTtcbiAqIC8vIHtcbiAqIC8vICAgYWN0aW9uOiBcImZpbmRcIixcbiAqIC8vICAgc2VsZWN0OiB1bmRlZmluZWQsXG4gKiAvLyAgIHdoZXJlOiB7IC4uLiB9LFxuICogLy8gICBncm91cEJ5OiB1bmRlZmluZWQsXG4gKiAvLyAgIG9yZGVyQnk6IFtbXCJjb3VudHJ5XCIsIFwiQVNDXCJdXSxcbiAqIC8vICAgbGltaXQ6IHVuZGVmaW5lZCxcbiAqIC8vICAgb2Zmc2V0OiB1bmRlZmluZWRcbiAqIC8vIH1cbiAqIGBgYFxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgUmVwbyBhcyBSZXBvc2l0b3J5IE1ldGhvZFxuICogICBwYXJ0aWNpcGFudCBNUUIgYXMgTWV0aG9kUXVlcnlCdWlsZGVyXG4gKiAgIHBhcnRpY2lwYW50IFF1ZXJ5IGFzIFF1ZXJ5QXNzaXN0XG4gKlxuICogICBSZXBvLT4+TVFCOiBidWlsZChtZXRob2ROYW1lLCAuLi52YWx1ZXMpXG4gKiAgIE1RQi0+Pk1RQjogZXh0cmFjdENvcmUobWV0aG9kTmFtZSlcbiAqICAgTVFCLT4+TVFCOiBleHRyYWN0U2VsZWN0KG1ldGhvZE5hbWUpXG4gKiAgIE1RQi0+Pk1RQjogZXh0cmFjdEdyb3VwQnkobWV0aG9kTmFtZSlcbiAqICAgTVFCLT4+TVFCOiBidWlsZFdoZXJlKGNvcmUsIHZhbHVlcylcbiAqICAgTVFCLT4+TVFCOiBleHRyYWN0T3JkZXJMaW1pdE9mZnNldChjb3JlLCB2YWx1ZXMpXG4gKiAgIE1RQi0+PlF1ZXJ5OiByZXR1cm4gc3RydWN0dXJlZCBRdWVyeUFzc2lzdCBvYmplY3RcbiAqL1xuZXhwb3J0IGNsYXNzIE1ldGhvZFF1ZXJ5QnVpbGRlciB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQnVpbGRzIGEgYFF1ZXJ5QXNzaXN0YCBvYmplY3QgYnkgcGFyc2luZyBhIHJlcG9zaXRvcnkgbWV0aG9kIG5hbWUgYW5kIHZhbHVlcy5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogVGhlIG1ldGhvZCB2YWxpZGF0ZXMgdGhlIG1ldGhvZCBuYW1lLCBleHRyYWN0cyBjbGF1c2VzIChjb3JlLCBzZWxlY3QsIGdyb3VwQnksIHdoZXJlLFxuICAgKiBvcmRlckJ5LCBsaW1pdCwgYW5kIG9mZnNldCksIGFuZCBhc3NlbWJsZXMgdGhlbSBpbnRvIGEgc3RydWN0dXJlZCBxdWVyeSBvYmplY3RcbiAgICogdGhhdCBjYW4gYmUgZXhlY3V0ZWQgYWdhaW5zdCBhIGRhdGEgc291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0aG9kTmFtZSB7c3RyaW5nfSAtIFRoZSByZXBvc2l0b3J5IG1ldGhvZCBuYW1lIHRoYXQgZW5jb2RlcyBxdWVyeSBpbmZvcm1hdGlvbi5cbiAgICogQHBhcmFtIHZhbHVlcyB7YW55W119IC0gVGhlIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIGNvbmRpdGlvbnMgYW5kIGV4dHJhIGNsYXVzZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge1F1ZXJ5QXNzaXN0fSBBIHN0cnVjdHVyZWQgcXVlcnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgcGFyc2VkIHF1ZXJ5LlxuICAgKi9cbiAgc3RhdGljIGJ1aWxkKG1ldGhvZE5hbWU6IHN0cmluZywgLi4udmFsdWVzOiBhbnlbXSk6IFF1ZXJ5QXNzaXN0IHtcbiAgICBpZiAoIW1ldGhvZE5hbWUuc3RhcnRzV2l0aChRdWVyeUNsYXVzZS5GSU5EX0JZKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBtZXRob2QgJHttZXRob2ROYW1lfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvcmUgPSB0aGlzLmV4dHJhY3RDb3JlKG1ldGhvZE5hbWUpO1xuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMuZXh0cmFjdFNlbGVjdChtZXRob2ROYW1lKTtcbiAgICBjb25zdCBncm91cEJ5ID0gdGhpcy5leHRyYWN0R3JvdXBCeShtZXRob2ROYW1lKTtcbiAgICAvLyBjb25zdCBvcmRlckJ5ID0gdGhpcy5leHRyYWN0T3JkZXJCeShtZXRob2ROYW1lKTtcbiAgICBjb25zdCB3aGVyZSA9IHRoaXMuYnVpbGRXaGVyZShjb3JlLCB2YWx1ZXMpO1xuICAgIGNvbnN0IHsgb3JkZXJCeSwgbGltaXQsIG9mZnNldCB9ID0gdGhpcy5leHRyYWN0T3JkZXJMaW1pdE9mZnNldChcbiAgICAgIGNvcmUsXG4gICAgICB2YWx1ZXNcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGlvbjogXCJmaW5kXCIsXG4gICAgICBzZWxlY3Q6IHNlbGVjdCxcbiAgICAgIHdoZXJlLFxuICAgICAgZ3JvdXBCeSxcbiAgICAgIG9yZGVyQnksXG4gICAgICBsaW1pdCxcbiAgICAgIG9mZnNldCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeHRyYWN0cyB0aGUgY29yZSBwYXJ0IG9mIHRoZSBtZXRob2QgbmFtZSBhZnRlciBgZmluZEJ5YCBhbmQgYmVmb3JlIGFueSBzcGVjaWFsIGNsYXVzZXMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIFJlbW92ZXMgcHJlZml4ZXMgYW5kIGRldGVjdHMgZGVsaW1pdGVycyAoYFRoZW5gLCBgT3JkZXJCeWAsIGBHcm91cEJ5YCwgYExpbWl0YCwgYE9mZnNldGApXG4gICAqIHRvIGlzb2xhdGUgdGhlIG1haW4gY29uZGl0aW9uYWwgcGFydCBvZiB0aGUgcXVlcnkuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2ROYW1lIHtzdHJpbmd9IC0gVGhlIG1ldGhvZCBuYW1lIHRvIHBhcnNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBleHRyYWN0ZWQgY29yZSBzdHJpbmcgdXNlZCBmb3IgYnVpbGRpbmcgY29uZGl0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGV4dHJhY3RDb3JlKG1ldGhvZE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYWZ0ZXJGaW5kQnkgPSBtZXRob2ROYW1lLnN1YnN0cmluZyhRdWVyeUNsYXVzZS5GSU5EX0JZLmxlbmd0aCk7XG4gICAgY29uc3QgcmVnZXggPSAvKFRoZW5bQS1aXXxPcmRlckJ5fEdyb3VwQnl8TGltaXR8T2Zmc2V0KS87XG4gICAgY29uc3QgbWF0Y2ggPSBhZnRlckZpbmRCeS5tYXRjaChyZWdleCk7XG4gICAgcmV0dXJuIG1hdGNoID8gYWZ0ZXJGaW5kQnkuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KSA6IGFmdGVyRmluZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeHRyYWN0cyB0aGUgc2VsZWN0IGNsYXVzZSBmcm9tIGEgbWV0aG9kIG5hbWUuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIERldGVjdHMgdGhlIGBTZWxlY3RgIGtleXdvcmQgaW4gdGhlIG1ldGhvZCBuYW1lLCBpc29sYXRlcyB0aGUgZmllbGRzIGZvbGxvd2luZyBpdCxcbiAgICogYW5kIHJldHVybnMgdGhlbSBhcyBhbiBhcnJheSBvZiBsb3dlcmNhc2UtZmlyc3Qgc3RyaW5ncy5cbiAgICpcbiAgICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgbWV0aG9kIG5hbWUgdG8gcGFyc2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdIHwgdW5kZWZpbmVkfSBBbiBhcnJheSBvZiBzZWxlY3RlZCBmaWVsZHMgb3IgYHVuZGVmaW5lZGAgaWYgbm8gc2VsZWN0IGNsYXVzZSBleGlzdHMuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0U2VsZWN0KG1ldGhvZE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzZWxlY3RJbmRleCA9IG1ldGhvZE5hbWUuaW5kZXhPZihRdWVyeUNsYXVzZS5TRUxFQ1QpO1xuICAgIGlmIChzZWxlY3RJbmRleCA9PT0gLTEpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBhZnRlclNlbGVjdCA9IG1ldGhvZE5hbWUuc3Vic3RyaW5nKFxuICAgICAgc2VsZWN0SW5kZXggKyBRdWVyeUNsYXVzZS5TRUxFQ1QubGVuZ3RoXG4gICAgKTtcblxuICAgIC8vIFNlYXJjaCBmb3IgbmV4dCBUaGVuLCBHcm91cEJ5LCBPcmRlckJ5Li4uXG4gICAgY29uc3QgbWF0Y2ggPSBhZnRlclNlbGVjdC5tYXRjaCgvKFRoZW5bQS1aXXxPcmRlckJ5fEdyb3VwQnl8TGltaXR8T2Zmc2V0KS8pO1xuXG4gICAgY29uc3Qgc2VsZWN0UGFydCA9IG1hdGNoXG4gICAgICA/IGFmdGVyU2VsZWN0LnN1YnN0cmluZygwLCBtYXRjaC5pbmRleClcbiAgICAgIDogYWZ0ZXJTZWxlY3Q7XG5cbiAgICByZXR1cm4gc2VsZWN0UGFydC5zcGxpdChRdWVyeUNsYXVzZS5BTkQpLm1hcChsb3dlckZpcnN0KS5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV4dHJhY3RzIHRoZSBncm91cCBieSBjbGF1c2UgZnJvbSBhIG1ldGhvZCBuYW1lLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBEZXRlY3RzIHRoZSBgR3JvdXBCeWAga2V5d29yZCBpbiB0aGUgbWV0aG9kIG5hbWUsIGlzb2xhdGVzIHRoZSBmaWVsZHMgZm9sbG93aW5nIGl0LFxuICAgKiBhbmQgcmV0dXJucyB0aGVtIGFzIGFuIGFycmF5IG9mIGxvd2VyY2FzZS1maXJzdCBzdHJpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0aG9kTmFtZSB7c3RyaW5nfSAtIFRoZSBtZXRob2QgbmFtZSB0byBwYXJzZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nW10gfCB1bmRlZmluZWR9IEFuIGFycmF5IG9mIGdyb3VwIGJ5IGZpZWxkcyBvciBgdW5kZWZpbmVkYCBpZiBubyBncm91cCBieSBjbGF1c2UgZXhpc3RzLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdEdyb3VwQnkobWV0aG9kTmFtZTogc3RyaW5nKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGdyb3VwQnlJbmRleCA9IG1ldGhvZE5hbWUuaW5kZXhPZihRdWVyeUNsYXVzZS5HUk9VUF9CWSk7XG4gICAgaWYgKGdyb3VwQnlJbmRleCA9PT0gLTEpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBhZnRlciA9IG1ldGhvZE5hbWUuc3Vic3RyaW5nKFxuICAgICAgZ3JvdXBCeUluZGV4ICsgUXVlcnlDbGF1c2UuR1JPVVBfQlkubGVuZ3RoXG4gICAgKTtcbiAgICBjb25zdCBncm91cEJ5UGFydCA9IGFmdGVyLnNwbGl0KFF1ZXJ5Q2xhdXNlLk9SREVSX0JZKVswXTtcbiAgICByZXR1cm4gZ3JvdXBCeVBhcnRcbiAgICAgIC5zcGxpdChRdWVyeUNsYXVzZS5USEVOX0JZKVxuICAgICAgLm1hcChsb3dlckZpcnN0KVxuICAgICAgLmZpbHRlcihCb29sZWFuKTtcbiAgfVxuXG4gIC8vIHByaXZhdGUgc3RhdGljIGV4dHJhY3RPcmRlckJ5KFxuICAvLyAgIG1ldGhvZE5hbWU6IHN0cmluZ1xuICAvLyApOiBPcmRlckJ5U2VsZWN0b3I8YW55PltdIHwgdW5kZWZpbmVkIHtcbiAgLy8gICBjb25zdCBvcmRlckJ5SW5kZXggPSBtZXRob2ROYW1lLmluZGV4T2YoUXVlcnlDbGF1c2UuT1JERVJfQlkpO1xuICAvLyAgIGlmIChvcmRlckJ5SW5kZXggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuICAvL1xuICAvLyAgIGNvbnN0IGFmdGVyID0gbWV0aG9kTmFtZS5zdWJzdHJpbmcoXG4gIC8vICAgICBvcmRlckJ5SW5kZXggKyBRdWVyeUNsYXVzZS5PUkRFUl9CWS5sZW5ndGhcbiAgLy8gICApO1xuICAvLyAgIGNvbnN0IG9yZGVyUGFydHMgPSBhZnRlci5zcGxpdChcIlRoZW5CeVwiKTtcbiAgLy9cbiAgLy8gICByZXR1cm4gb3JkZXJQYXJ0cy5tYXAoKHBhcnQpID0+IHtcbiAgLy8gICAgIGNvbnN0IG1hdGNoID0gcGFydC5tYXRjaCgvKC4qPykoQXNjfERlc2N8RHNjKSQvKTtcbiAgLy8gICAgIGlmICghbWF0Y2gpIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBPcmRlckJ5IHBhcnQ6ICR7cGFydH1gKTtcbiAgLy8gICAgIGNvbnN0IFssIGZpZWxkLCBkaXJdID0gbWF0Y2g7XG4gIC8vICAgICByZXR1cm4gW1xuICAvLyAgICAgICBsb3dlckZpcnN0KGZpZWxkKSxcbiAgLy8gICAgICAgZGlyLnRvTG93ZXJDYXNlKCkgPT09IFwiZHNjXCJcbiAgLy8gICAgICAgICA/IE9yZGVyRGlyZWN0aW9uLkRTQ1xuICAvLyAgICAgICAgIDogKGRpci50b0xvd2VyQ2FzZSgpIGFzIE9yZGVyRGlyZWN0aW9uKSxcbiAgLy8gICAgIF07XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJ1aWxkcyB0aGUgYHdoZXJlYCBjb25kaXRpb24gb2JqZWN0IGJhc2VkIG9uIHRoZSBwYXJzZWQgY29yZSBzdHJpbmcgYW5kIHBhcmFtZXRlciB2YWx1ZXMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIFNwbGl0cyB0aGUgY29yZSBzdHJpbmcgYnkgbG9naWNhbCBvcGVyYXRvcnMgKGBBbmRgLCBgT3JgKSwgcGFyc2VzIGVhY2ggdG9rZW4gaW50byBhIGZpZWxkXG4gICAqIGFuZCBvcGVyYXRvciwgYW5kIGNvbWJpbmVzIHRoZW0gaW50byBhIGBDb25kaXRpb25gIG9iamVjdCB1c2luZyB0aGUgcHJvdmlkZWQgdmFsdWVzLlxuICAgKlxuICAgKiBAcGFyYW0gY29yZSB7c3RyaW5nfSAtIFRoZSBleHRyYWN0ZWQgY29yZSBzdHJpbmcgZnJvbSB0aGUgbWV0aG9kIG5hbWUuXG4gICAqIEBwYXJhbSB2YWx1ZXMge2FueVtdfSAtIFRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgY29uZGl0aW9ucy5cbiAgICpcbiAgICogQHJldHVybiB7Q29uZGl0aW9uPGFueT59IEEgc3RydWN0dXJlZCBjb25kaXRpb24gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgcXVlcnkncyB3aGVyZSBjbGF1c2UuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBidWlsZFdoZXJlKGNvcmU6IHN0cmluZywgdmFsdWVzOiBhbnlbXSk6IENvbmRpdGlvbjxhbnk+IHtcbiAgICBjb25zdCBwYXJ0cyA9IGNvcmUuc3BsaXQoL09yZGVyQnl8R3JvdXBCeS8pWzBdIHx8IFwiXCI7XG4gICAgY29uc3QgY29uZGl0aW9ucyA9IHBhcnRzLnNwbGl0KC9BbmR8T3IvKTtcblxuICAgIGNvbnN0IG9wZXJhdG9ycyA9IGNvcmUubWF0Y2goL0FuZHxPci9nKSB8fCBbXTtcblxuICAgIGxldCB3aGVyZTogQ29uZGl0aW9uPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25kaXRpb25zLmZvckVhY2goKHRva2VuLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9wZXJhdG9yIH0gPSB0aGlzLnBhcnNlRmllbGRBbmRPcGVyYXRvcih0b2tlbik7XG4gICAgICBjb25zdCBwYXJzZXIgPSBvcGVyYXRvciA/IE9wZXJhdG9yc01hcFtvcGVyYXRvcl0gOiBPcGVyYXRvcnNNYXAuRXF1YWxzO1xuICAgICAgaWYgKCFwYXJzZXIpIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgb3BlcmF0b3IgJHtvcGVyYXRvcn1gKTtcblxuICAgICAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB2YWx1ZXNbaWR4XTtcbiAgICAgIGlmICh0eXBlb2YgY29uZGl0aW9uVmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbHVlIGZvciBmaWVsZCAke2ZpZWxkfWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb25kaXRpb24gPSBwYXJzZXIoZmllbGQsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIHdoZXJlID1cbiAgICAgICAgaWR4ID09PSAwXG4gICAgICAgICAgPyBjb25kaXRpb25cbiAgICAgICAgICA6IG9wZXJhdG9yc1tpZHggLSAxXSA9PT0gUXVlcnlDbGF1c2UuQU5EXG4gICAgICAgICAgICA/IHdoZXJlIS5hbmQoY29uZGl0aW9uKVxuICAgICAgICAgICAgOiB3aGVyZSEub3IoY29uZGl0aW9uKTtcbiAgICB9KTtcblxuICAgIGlmICghd2hlcmUpIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbmRpdGlvbnMgZm91bmQgaW4gbWV0aG9kIG5hbWVcIik7XG4gICAgcmV0dXJuIHdoZXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQYXJzZXMgYSBmaWVsZCBuYW1lIGFuZCBvcGVyYXRvciBmcm9tIGEgc3RyaW5nIHRva2VuLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBJZGVudGlmaWVzIHRoZSBvcGVyYXRvciBzdWZmaXggKGlmIHByZXNlbnQpIGFuZCByZXR1cm5zIGEgZGVzY3JpcHRvciBjb250YWluaW5nIHRoZSBmaWVsZFxuICAgKiBuYW1lIGluIGxvd2VyY2FzZS1maXJzdCBmb3JtYXQgYWxvbmcgd2l0aCB0aGUgb3BlcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBzdHIge3N0cmluZ30gLSBUaGUgdG9rZW4gc3RyaW5nIHRvIHBhcnNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtGaWx0ZXJEZXNjcmlwdG9yfSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZmllbGQgbmFtZSBhbmQgb3BlcmF0b3IuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBwYXJzZUZpZWxkQW5kT3BlcmF0b3Ioc3RyOiBzdHJpbmcpOiBGaWx0ZXJEZXNjcmlwdG9yIHtcbiAgICBmb3IgKGNvbnN0IG9wZXJhdG9yIG9mIE9iamVjdC5rZXlzKE9wZXJhdG9yc01hcCkpIHtcbiAgICAgIGlmIChzdHIuZW5kc1dpdGgob3BlcmF0b3IpKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gc3RyLnNsaWNlKDAsIC1vcGVyYXRvci5sZW5ndGgpO1xuICAgICAgICByZXR1cm4geyBmaWVsZDogbG93ZXJGaXJzdChmaWVsZCksIG9wZXJhdG9yIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGZpZWxkOiBsb3dlckZpcnN0KHN0cikgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXh0cmFjdHMgYG9yZGVyQnlgLCBgbGltaXRgLCBhbmQgYG9mZnNldGAgY2xhdXNlcyBmcm9tIG1ldGhvZCBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIERldGVybWluZXMgdGhlIG51bWJlciBvZiBjb25kaXRpb24gYXJndW1lbnRzLCB0aGVuIGNoZWNrcyB0aGUgcmVtYWluaW5nIGFyZ3VtZW50c1xuICAgKiB0byByZXNvbHZlIHNvcnRpbmcsIGxpbWl0aW5nLCBhbmQgcGFnaW5hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGNvcmUge3N0cmluZ30gLSBUaGUgZXh0cmFjdGVkIGNvcmUgc3RyaW5nIGZyb20gdGhlIG1ldGhvZCBuYW1lLlxuICAgKiBAcGFyYW0gdmFsdWVzIHthbnlbXX0gLSBUaGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gbWV0aG9kIGFyZ3VtZW50cywgaW5jbHVkaW5nIGNvbmRpdGlvbnMgYW5kIGV4dHJhcy5cbiAgICpcbiAgICogQHJldHVybiB7e1xuICAgKiAgIG9yZGVyQnk/OiBPcmRlckJ5U2VsZWN0b3I8YW55PltdO1xuICAgKiAgIGxpbWl0PzogbnVtYmVyO1xuICAgKiAgIG9mZnNldD86IG51bWJlcjtcbiAgICogfX0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgb3JkZXJCeSwgbGltaXQsIGFuZCBvZmZzZXQgdmFsdWVzIGlmIHByZXNlbnQuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0T3JkZXJMaW1pdE9mZnNldChcbiAgICBjb3JlOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBhbnlbXVxuICApOiB7IG9yZGVyQnk/OiBPcmRlckJ5U2VsZWN0b3I8YW55PltdOyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0ge1xuICAgIGNvbnN0IGNvbmRpdGlvbkNvdW50ID0gY29yZS5zcGxpdCgvQW5kfE9yLykubGVuZ3RoO1xuICAgIGNvbnN0IGV4dHJhQXJncyA9IHZhbHVlcy5zbGljZShjb25kaXRpb25Db3VudCk7XG5cbiAgICBsZXQgb3JkZXJCeTogT3JkZXJCeVNlbGVjdG9yPGFueT5bXSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgbGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBsZXQgb2Zmc2V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZXh0cmFBcmdzLmxlbmd0aCA+PSAxICYmIEFycmF5LmlzQXJyYXkoZXh0cmFBcmdzWzBdKSlcbiAgICAgIG9yZGVyQnkgPSBleHRyYUFyZ3NbMF0gYXMgT3JkZXJCeVNlbGVjdG9yPGFueT5bXTtcblxuICAgIGlmIChleHRyYUFyZ3MubGVuZ3RoID49IDIgJiYgdHlwZW9mIGV4dHJhQXJnc1sxXSA9PT0gXCJudW1iZXJcIilcbiAgICAgIGxpbWl0ID0gZXh0cmFBcmdzWzFdO1xuXG4gICAgaWYgKGV4dHJhQXJncy5sZW5ndGggPj0gMyAmJiB0eXBlb2YgZXh0cmFBcmdzWzJdID09PSBcIm51bWJlclwiKVxuICAgICAgb2Zmc2V0ID0gZXh0cmFBcmdzWzJdO1xuXG4gICAgcmV0dXJuIHsgb3JkZXJCeSwgbGltaXQsIG9mZnNldCB9O1xuICB9XG59XG4iXX0=
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0aG9kUXVlcnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L01ldGhvZFF1ZXJ5QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWlDLFdBQVcsRUFBRSxtQkFBZ0I7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBZ0I7QUFFdkMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUN6QyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQWtCLEVBQUUsR0FBRyxNQUFhO1FBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELG1EQUFtRDtRQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFB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RS9CLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQTJCLENBQUM7UUFFbkQsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1lBQzNELEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1lBQzNELE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZGl0aW9uLCBPcmRlckJ5U2VsZWN0b3IgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB7IEZpbHRlckRlc2NyaXB0b3IsIFF1ZXJ5QXNzaXN0LCBRdWVyeUNsYXVzZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBPcGVyYXRvcnNNYXAgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5jb25zdCBsb3dlckZpcnN0ID0gKHN0cjogc3RyaW5nKTogc3RyaW5nID0+XG4gIHN0ci5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcblxuZXhwb3J0IHR5cGUgT3JkZXJMaW1pdE9mZnNldEV4dHJhY3QgPSB7XG4gIG9yZGVyQnk/OiBPcmRlckJ5U2VsZWN0b3I8YW55PltdO1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFV0aWxpdHkgY2xhc3MgdG8gYnVpbGQgcXVlcnkgb2JqZWN0cyBmcm9tIHJlcG9zaXRvcnkgbWV0aG9kIG5hbWVzLlxuICpcbiAqIEBzdW1tYXJ5XG4gKiBUaGUgYE1ldGhvZFF1ZXJ5QnVpbGRlcmAgY2xhc3MgcGFyc2VzIG1ldGhvZCBuYW1lcyB0aGF0IGZvbGxvdyBhIHNwZWNpZmljIG5hbWluZyBjb252ZW50aW9uXG4gKiAoZS5nLiwgYGZpbmRCeU5hbWVBbmRBZ2VPcmRlckJ5Q291bnRyeUFzY2ApIGFuZCBjb252ZXJ0cyB0aGVtIGludG8gc3RydWN0dXJlZCBxdWVyeSBvYmplY3RzXG4gKiAoYFF1ZXJ5QXNzaXN0YCkuIEl0IGV4dHJhY3RzIGNsYXVzZXMgc3VjaCBhcyBgc2VsZWN0YCwgYHdoZXJlYCwgYGdyb3VwQnlgLCBgb3JkZXJCeWAsIGBsaW1pdGAsXG4gKiBhbmQgYG9mZnNldGAsIGVuc3VyaW5nIHRoYXQgZGV2ZWxvcGVycyBjYW4gZGVjbGFyZSByZXBvc2l0b3J5IHF1ZXJpZXMgdXNpbmcgZXhwcmVzc2l2ZSBtZXRob2QgbmFtZXMuXG4gKlxuICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgcmVwb3NpdG9yeSBtZXRob2QgbmFtZSB0byBwYXJzZSBhbmQgY29udmVydCBpbnRvIGEgcXVlcnkuXG4gKiBAcGFyYW0gdmFsdWVzIHthbnlbXX0gLSBUaGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gbWV0aG9kIHBhcmFtZXRlcnMgdXNlZCBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqXG4gKiBAcmV0dXJuIHtRdWVyeUFzc2lzdH0gQSBzdHJ1Y3R1cmVkIHF1ZXJ5IG9iamVjdCBkZXNjcmliaW5nIHRoZSBwYXJzZWQgYWN0aW9uLCBzZWxlY3QsIHdoZXJlLFxuICogZ3JvdXBCeSwgb3JkZXJCeSwgbGltaXQsIGFuZCBvZmZzZXQgY2xhdXNlcy5cbiAqXG4gKiBAY2xhc3NcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IHF1ZXJ5ID0gTWV0aG9kUXVlcnlCdWlsZGVyLmJ1aWxkKFxuICogICBcImZpbmRCeU5hbWVBbmRBZ2VPcmRlckJ5Q291bnRyeUFzY1wiLFxuICogICBcIkpvaG5cIixcbiAqICAgMjUsXG4gKiAgIFtbXCJjb3VudHJ5XCIsIFwiQVNDXCJdXVxuICogKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhxdWVyeSk7XG4gKiAvLyB7XG4gKiAvLyAgIGFjdGlvbjogXCJmaW5kXCIsXG4gKiAvLyAgIHNlbGVjdDogdW5kZWZpbmVkLFxuICogLy8gICB3aGVyZTogeyAuLi4gfSxcbiAqIC8vICAgZ3JvdXBCeTogdW5kZWZpbmVkLFxuICogLy8gICBvcmRlckJ5OiBbW1wiY291bnRyeVwiLCBcIkFTQ1wiXV0sXG4gKiAvLyAgIGxpbWl0OiB1bmRlZmluZWQsXG4gKiAvLyAgIG9mZnNldDogdW5kZWZpbmVkXG4gKiAvLyB9XG4gKiBgYGBcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFJlcG8gYXMgUmVwb3NpdG9yeSBNZXRob2RcbiAqICAgcGFydGljaXBhbnQgTVFCIGFzIE1ldGhvZFF1ZXJ5QnVpbGRlclxuICogICBwYXJ0aWNpcGFudCBRdWVyeSBhcyBRdWVyeUFzc2lzdFxuICpcbiAqICAgUmVwby0+Pk1RQjogYnVpbGQobWV0aG9kTmFtZSwgLi4udmFsdWVzKVxuICogICBNUUItPj5NUUI6IGV4dHJhY3RDb3JlKG1ldGhvZE5hbWUpXG4gKiAgIE1RQi0+Pk1RQjogZXh0cmFjdFNlbGVjdChtZXRob2ROYW1lKVxuICogICBNUUItPj5NUUI6IGV4dHJhY3RHcm91cEJ5KG1ldGhvZE5hbWUpXG4gKiAgIE1RQi0+Pk1RQjogYnVpbGRXaGVyZShjb3JlLCB2YWx1ZXMpXG4gKiAgIE1RQi0+Pk1RQjogZXh0cmFjdE9yZGVyTGltaXRPZmZzZXQoY29yZSwgdmFsdWVzKVxuICogICBNUUItPj5RdWVyeTogcmV0dXJuIHN0cnVjdHVyZWQgUXVlcnlBc3Npc3Qgb2JqZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRob2RRdWVyeUJ1aWxkZXIge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJ1aWxkcyBhIGBRdWVyeUFzc2lzdGAgb2JqZWN0IGJ5IHBhcnNpbmcgYSByZXBvc2l0b3J5IG1ldGhvZCBuYW1lIGFuZCB2YWx1ZXMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIFRoZSBtZXRob2QgdmFsaWRhdGVzIHRoZSBtZXRob2QgbmFtZSwgZXh0cmFjdHMgY2xhdXNlcyAoY29yZSwgc2VsZWN0LCBncm91cEJ5LCB3aGVyZSxcbiAgICogb3JkZXJCeSwgbGltaXQsIGFuZCBvZmZzZXQpLCBhbmQgYXNzZW1ibGVzIHRoZW0gaW50byBhIHN0cnVjdHVyZWQgcXVlcnkgb2JqZWN0XG4gICAqIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIGFnYWluc3QgYSBkYXRhIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgcmVwb3NpdG9yeSBtZXRob2QgbmFtZSB0aGF0IGVuY29kZXMgcXVlcnkgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZXMge2FueVtdfSAtIFRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byBjb25kaXRpb25zIGFuZCBleHRyYSBjbGF1c2VzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtRdWVyeUFzc2lzdH0gQSBzdHJ1Y3R1cmVkIHF1ZXJ5IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBxdWVyeS5cbiAgICovXG4gIHN0YXRpYyBidWlsZChtZXRob2ROYW1lOiBzdHJpbmcsIC4uLnZhbHVlczogYW55W10pOiBRdWVyeUFzc2lzdCB7XG4gICAgaWYgKCFtZXRob2ROYW1lLnN0YXJ0c1dpdGgoUXVlcnlDbGF1c2UuRklORF9CWSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbWV0aG9kICR7bWV0aG9kTmFtZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb3JlID0gdGhpcy5leHRyYWN0Q29yZShtZXRob2ROYW1lKTtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLmV4dHJhY3RTZWxlY3QobWV0aG9kTmFtZSk7XG4gICAgY29uc3QgZ3JvdXBCeSA9IHRoaXMuZXh0cmFjdEdyb3VwQnkobWV0aG9kTmFtZSk7XG4gICAgLy8gY29uc3Qgb3JkZXJCeSA9IHRoaXMuZXh0cmFjdE9yZGVyQnkobWV0aG9kTmFtZSk7XG4gICAgY29uc3Qgd2hlcmUgPSB0aGlzLmJ1aWxkV2hlcmUoY29yZSwgdmFsdWVzKTtcbiAgICBjb25zdCB7IG9yZGVyQnksIGxpbWl0LCBvZmZzZXQgfSA9IHRoaXMuZXh0cmFjdE9yZGVyTGltaXRPZmZzZXQoXG4gICAgICBjb3JlLFxuICAgICAgdmFsdWVzXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY3Rpb246IFwiZmluZFwiLFxuICAgICAgc2VsZWN0OiBzZWxlY3QsXG4gICAgICB3aGVyZSxcbiAgICAgIGdyb3VwQnksXG4gICAgICBvcmRlckJ5LFxuICAgICAgbGltaXQsXG4gICAgICBvZmZzZXQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXh0cmFjdHMgdGhlIGNvcmUgcGFydCBvZiB0aGUgbWV0aG9kIG5hbWUgYWZ0ZXIgYGZpbmRCeWAgYW5kIGJlZm9yZSBhbnkgc3BlY2lhbCBjbGF1c2VzLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBSZW1vdmVzIHByZWZpeGVzIGFuZCBkZXRlY3RzIGRlbGltaXRlcnMgKGBUaGVuYCwgYE9yZGVyQnlgLCBgR3JvdXBCeWAsIGBMaW1pdGAsIGBPZmZzZXRgKVxuICAgKiB0byBpc29sYXRlIHRoZSBtYWluIGNvbmRpdGlvbmFsIHBhcnQgb2YgdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBAcGFyYW0gbWV0aG9kTmFtZSB7c3RyaW5nfSAtIFRoZSBtZXRob2QgbmFtZSB0byBwYXJzZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZXh0cmFjdGVkIGNvcmUgc3RyaW5nIHVzZWQgZm9yIGJ1aWxkaW5nIGNvbmRpdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0Q29yZShtZXRob2ROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFmdGVyRmluZEJ5ID0gbWV0aG9kTmFtZS5zdWJzdHJpbmcoUXVlcnlDbGF1c2UuRklORF9CWS5sZW5ndGgpO1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhUaGVuW0EtWl18T3JkZXJCeXxHcm91cEJ5fExpbWl0fE9mZnNldCkvO1xuICAgIGNvbnN0IG1hdGNoID0gYWZ0ZXJGaW5kQnkubWF0Y2gocmVnZXgpO1xuICAgIHJldHVybiBtYXRjaCA/IGFmdGVyRmluZEJ5LnN1YnN0cmluZygwLCBtYXRjaC5pbmRleCkgOiBhZnRlckZpbmRCeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXh0cmFjdHMgdGhlIHNlbGVjdCBjbGF1c2UgZnJvbSBhIG1ldGhvZCBuYW1lLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBEZXRlY3RzIHRoZSBgU2VsZWN0YCBrZXl3b3JkIGluIHRoZSBtZXRob2QgbmFtZSwgaXNvbGF0ZXMgdGhlIGZpZWxkcyBmb2xsb3dpbmcgaXQsXG4gICAqIGFuZCByZXR1cm5zIHRoZW0gYXMgYW4gYXJyYXkgb2YgbG93ZXJjYXNlLWZpcnN0IHN0cmluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2ROYW1lIHtzdHJpbmd9IC0gVGhlIG1ldGhvZCBuYW1lIHRvIHBhcnNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmdbXSB8IHVuZGVmaW5lZH0gQW4gYXJyYXkgb2Ygc2VsZWN0ZWQgZmllbGRzIG9yIGB1bmRlZmluZWRgIGlmIG5vIHNlbGVjdCBjbGF1c2UgZXhpc3RzLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdFNlbGVjdChtZXRob2ROYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc2VsZWN0SW5kZXggPSBtZXRob2ROYW1lLmluZGV4T2YoUXVlcnlDbGF1c2UuU0VMRUNUKTtcbiAgICBpZiAoc2VsZWN0SW5kZXggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYWZ0ZXJTZWxlY3QgPSBtZXRob2ROYW1lLnN1YnN0cmluZyhcbiAgICAgIHNlbGVjdEluZGV4ICsgUXVlcnlDbGF1c2UuU0VMRUNULmxlbmd0aFxuICAgICk7XG5cbiAgICAvLyBTZWFyY2ggZm9yIG5leHQgVGhlbiwgR3JvdXBCeSwgT3JkZXJCeS4uLlxuICAgIGNvbnN0IG1hdGNoID0gYWZ0ZXJTZWxlY3QubWF0Y2goLyhUaGVuW0EtWl18T3JkZXJCeXxHcm91cEJ5fExpbWl0fE9mZnNldCkvKTtcblxuICAgIGNvbnN0IHNlbGVjdFBhcnQgPSBtYXRjaFxuICAgICAgPyBhZnRlclNlbGVjdC5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpXG4gICAgICA6IGFmdGVyU2VsZWN0O1xuXG4gICAgcmV0dXJuIHNlbGVjdFBhcnQuc3BsaXQoUXVlcnlDbGF1c2UuQU5EKS5tYXAobG93ZXJGaXJzdCkuZmlsdGVyKEJvb2xlYW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeHRyYWN0cyB0aGUgZ3JvdXAgYnkgY2xhdXNlIGZyb20gYSBtZXRob2QgbmFtZS5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRGV0ZWN0cyB0aGUgYEdyb3VwQnlgIGtleXdvcmQgaW4gdGhlIG1ldGhvZCBuYW1lLCBpc29sYXRlcyB0aGUgZmllbGRzIGZvbGxvd2luZyBpdCxcbiAgICogYW5kIHJldHVybnMgdGhlbSBhcyBhbiBhcnJheSBvZiBsb3dlcmNhc2UtZmlyc3Qgc3RyaW5ncy5cbiAgICpcbiAgICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgbWV0aG9kIG5hbWUgdG8gcGFyc2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdIHwgdW5kZWZpbmVkfSBBbiBhcnJheSBvZiBncm91cCBieSBmaWVsZHMgb3IgYHVuZGVmaW5lZGAgaWYgbm8gZ3JvdXAgYnkgY2xhdXNlIGV4aXN0cy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGV4dHJhY3RHcm91cEJ5KG1ldGhvZE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBncm91cEJ5SW5kZXggPSBtZXRob2ROYW1lLmluZGV4T2YoUXVlcnlDbGF1c2UuR1JPVVBfQlkpO1xuICAgIGlmIChncm91cEJ5SW5kZXggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYWZ0ZXIgPSBtZXRob2ROYW1lLnN1YnN0cmluZyhcbiAgICAgIGdyb3VwQnlJbmRleCArIFF1ZXJ5Q2xhdXNlLkdST1VQX0JZLmxlbmd0aFxuICAgICk7XG4gICAgY29uc3QgZ3JvdXBCeVBhcnQgPSBhZnRlci5zcGxpdChRdWVyeUNsYXVzZS5PUkRFUl9CWSlbMF07XG4gICAgcmV0dXJuIGdyb3VwQnlQYXJ0XG4gICAgICAuc3BsaXQoUXVlcnlDbGF1c2UuVEhFTl9CWSlcbiAgICAgIC5tYXAobG93ZXJGaXJzdClcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICAvLyBwcml2YXRlIHN0YXRpYyBleHRyYWN0T3JkZXJCeShcbiAgLy8gICBtZXRob2ROYW1lOiBzdHJpbmdcbiAgLy8gKTogT3JkZXJCeVNlbGVjdG9yPGFueT5bXSB8IHVuZGVmaW5lZCB7XG4gIC8vICAgY29uc3Qgb3JkZXJCeUluZGV4ID0gbWV0aG9kTmFtZS5pbmRleE9mKFF1ZXJ5Q2xhdXNlLk9SREVSX0JZKTtcbiAgLy8gICBpZiAob3JkZXJCeUluZGV4ID09PSAtMSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgLy9cbiAgLy8gICBjb25zdCBhZnRlciA9IG1ldGhvZE5hbWUuc3Vic3RyaW5nKFxuICAvLyAgICAgb3JkZXJCeUluZGV4ICsgUXVlcnlDbGF1c2UuT1JERVJfQlkubGVuZ3RoXG4gIC8vICAgKTtcbiAgLy8gICBjb25zdCBvcmRlclBhcnRzID0gYWZ0ZXIuc3BsaXQoXCJUaGVuQnlcIik7XG4gIC8vXG4gIC8vICAgcmV0dXJuIG9yZGVyUGFydHMubWFwKChwYXJ0KSA9PiB7XG4gIC8vICAgICBjb25zdCBtYXRjaCA9IHBhcnQubWF0Y2goLyguKj8pKEFzY3xEZXNjfERzYykkLyk7XG4gIC8vICAgICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgT3JkZXJCeSBwYXJ0OiAke3BhcnR9YCk7XG4gIC8vICAgICBjb25zdCBbLCBmaWVsZCwgZGlyXSA9IG1hdGNoO1xuICAvLyAgICAgcmV0dXJuIFtcbiAgLy8gICAgICAgbG93ZXJGaXJzdChmaWVsZCksXG4gIC8vICAgICAgIGRpci50b0xvd2VyQ2FzZSgpID09PSBcImRzY1wiXG4gIC8vICAgICAgICAgPyBPcmRlckRpcmVjdGlvbi5EU0NcbiAgLy8gICAgICAgICA6IChkaXIudG9Mb3dlckNhc2UoKSBhcyBPcmRlckRpcmVjdGlvbiksXG4gIC8vICAgICBdO1xuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCdWlsZHMgdGhlIGB3aGVyZWAgY29uZGl0aW9uIG9iamVjdCBiYXNlZCBvbiB0aGUgcGFyc2VkIGNvcmUgc3RyaW5nIGFuZCBwYXJhbWV0ZXIgdmFsdWVzLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBTcGxpdHMgdGhlIGNvcmUgc3RyaW5nIGJ5IGxvZ2ljYWwgb3BlcmF0b3JzIChgQW5kYCwgYE9yYCksIHBhcnNlcyBlYWNoIHRva2VuIGludG8gYSBmaWVsZFxuICAgKiBhbmQgb3BlcmF0b3IsIGFuZCBjb21iaW5lcyB0aGVtIGludG8gYSBgQ29uZGl0aW9uYCBvYmplY3QgdXNpbmcgdGhlIHByb3ZpZGVkIHZhbHVlcy5cbiAgICpcbiAgICogQHBhcmFtIGNvcmUge3N0cmluZ30gLSBUaGUgZXh0cmFjdGVkIGNvcmUgc3RyaW5nIGZyb20gdGhlIG1ldGhvZCBuYW1lLlxuICAgKiBAcGFyYW0gdmFsdWVzIHthbnlbXX0gLSBUaGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNvbmRpdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm4ge0NvbmRpdGlvbjxhbnk+fSBBIHN0cnVjdHVyZWQgY29uZGl0aW9uIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5J3Mgd2hlcmUgY2xhdXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRXaGVyZShjb3JlOiBzdHJpbmcsIHZhbHVlczogYW55W10pOiBDb25kaXRpb248YW55PiB7XG4gICAgY29uc3QgcGFydHMgPSBjb3JlLnNwbGl0KC9PcmRlckJ5fEdyb3VwQnkvKVswXSB8fCBcIlwiO1xuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBwYXJ0cy5zcGxpdCgvQW5kfE9yLyk7XG5cbiAgICBjb25zdCBvcGVyYXRvcnMgPSBjb3JlLm1hdGNoKC9BbmR8T3IvZykgfHwgW107XG5cbiAgICBsZXQgd2hlcmU6IENvbmRpdGlvbjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uZGl0aW9ucy5mb3JFYWNoKCh0b2tlbiwgaWR4KSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvcGVyYXRvciB9ID0gdGhpcy5wYXJzZUZpZWxkQW5kT3BlcmF0b3IodG9rZW4pO1xuICAgICAgY29uc3QgcGFyc2VyID0gb3BlcmF0b3IgPyBPcGVyYXRvcnNNYXBbb3BlcmF0b3JdIDogT3BlcmF0b3JzTWFwLkVxdWFscztcbiAgICAgIGlmICghcGFyc2VyKSB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIG9wZXJhdG9yICR7b3BlcmF0b3J9YCk7XG5cbiAgICAgIGNvbnN0IGNvbmRpdGlvblZhbHVlID0gdmFsdWVzW2lkeF07XG4gICAgICBpZiAodHlwZW9mIGNvbmRpdGlvblZhbHVlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBmb3IgZmllbGQgJHtmaWVsZH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29uZGl0aW9uID0gcGFyc2VyKGZpZWxkLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB3aGVyZSA9XG4gICAgICAgIGlkeCA9PT0gMFxuICAgICAgICAgID8gY29uZGl0aW9uXG4gICAgICAgICAgOiBvcGVyYXRvcnNbaWR4IC0gMV0gPT09IFF1ZXJ5Q2xhdXNlLkFORFxuICAgICAgICAgICAgPyB3aGVyZSEuYW5kKGNvbmRpdGlvbilcbiAgICAgICAgICAgIDogd2hlcmUhLm9yKGNvbmRpdGlvbik7XG4gICAgfSk7XG5cbiAgICBpZiAoIXdoZXJlKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb25kaXRpb25zIGZvdW5kIGluIG1ldGhvZCBuYW1lXCIpO1xuICAgIHJldHVybiB3aGVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUGFyc2VzIGEgZmllbGQgbmFtZSBhbmQgb3BlcmF0b3IgZnJvbSBhIHN0cmluZyB0b2tlbi5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogSWRlbnRpZmllcyB0aGUgb3BlcmF0b3Igc3VmZml4IChpZiBwcmVzZW50KSBhbmQgcmV0dXJucyBhIGRlc2NyaXB0b3IgY29udGFpbmluZyB0aGUgZmllbGRcbiAgICogbmFtZSBpbiBsb3dlcmNhc2UtZmlyc3QgZm9ybWF0IGFsb25nIHdpdGggdGhlIG9wZXJhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gc3RyIHtzdHJpbmd9IC0gVGhlIHRva2VuIHN0cmluZyB0byBwYXJzZS5cbiAgICpcbiAgICogQHJldHVybiB7RmlsdGVyRGVzY3JpcHRvcn0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpZWxkIG5hbWUgYW5kIG9wZXJhdG9yLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VGaWVsZEFuZE9wZXJhdG9yKHN0cjogc3RyaW5nKTogRmlsdGVyRGVzY3JpcHRvciB7XG4gICAgZm9yIChjb25zdCBvcGVyYXRvciBvZiBPYmplY3Qua2V5cyhPcGVyYXRvcnNNYXApKSB7XG4gICAgICBpZiAoc3RyLmVuZHNXaXRoKG9wZXJhdG9yKSkge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHN0ci5zbGljZSgwLCAtb3BlcmF0b3IubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHsgZmllbGQ6IGxvd2VyRmlyc3QoZmllbGQpLCBvcGVyYXRvciB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmaWVsZDogbG93ZXJGaXJzdChzdHIpIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV4dHJhY3RzIGBvcmRlckJ5YCwgYGxpbWl0YCwgYW5kIGBvZmZzZXRgIGNsYXVzZXMgZnJvbSBtZXRob2QgYXJndW1lbnRzLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgY29uZGl0aW9uIGFyZ3VtZW50cywgdGhlbiBjaGVja3MgdGhlIHJlbWFpbmluZyBhcmd1bWVudHNcbiAgICogdG8gcmVzb2x2ZSBzb3J0aW5nLCBsaW1pdGluZywgYW5kIHBhZ2luYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBjb3JlIHtzdHJpbmd9IC0gVGhlIGV4dHJhY3RlZCBjb3JlIHN0cmluZyBmcm9tIHRoZSBtZXRob2QgbmFtZS5cbiAgICogQHBhcmFtIHZhbHVlcyB7YW55W119IC0gVGhlIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIG1ldGhvZCBhcmd1bWVudHMsIGluY2x1ZGluZyBjb25kaXRpb25zIGFuZCBleHRyYXMuXG4gICAqXG4gICAqIEByZXR1cm4ge09yZGVyTGltaXRPZmZzZXRFeHRyYWN0fSBBbiBvYmplY3QgY29udGFpbmluZyBvcmRlckJ5LCBsaW1pdCwgYW5kIG9mZnNldCB2YWx1ZXMgaWYgcHJlc2VudC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGV4dHJhY3RPcmRlckxpbWl0T2Zmc2V0KFxuICAgIGNvcmU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IGFueVtdXG4gICk6IE9yZGVyTGltaXRPZmZzZXRFeHRyYWN0IHtcbiAgICBjb25zdCBjb25kaXRpb25Db3VudCA9IGNvcmUuc3BsaXQoL0FuZHxPci8pLmxlbmd0aDtcbiAgICBjb25zdCBleHRyYUFyZ3MgPSB2YWx1ZXMuc2xpY2UoY29uZGl0aW9uQ291bnQpO1xuXG4gICAgbGV0IG9yZGVyQnk6IE9yZGVyQnlTZWxlY3Rvcjxhbnk+W10gfCB1bmRlZmluZWQ7XG4gICAgbGV0IGxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbGV0IG9mZnNldDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGV4dHJhQXJncy5sZW5ndGggPj0gMSAmJiBBcnJheS5pc0FycmF5KGV4dHJhQXJnc1swXSkpXG4gICAgICBvcmRlckJ5ID0gZXh0cmFBcmdzWzBdIGFzIE9yZGVyQnlTZWxlY3Rvcjxhbnk+W107XG5cbiAgICBpZiAoZXh0cmFBcmdzLmxlbmd0aCA+PSAyICYmIHR5cGVvZiBleHRyYUFyZ3NbMV0gPT09IFwibnVtYmVyXCIpXG4gICAgICBsaW1pdCA9IGV4dHJhQXJnc1sxXTtcblxuICAgIGlmIChleHRyYUFyZ3MubGVuZ3RoID49IDMgJiYgdHlwZW9mIGV4dHJhQXJnc1syXSA9PT0gXCJudW1iZXJcIilcbiAgICAgIG9mZnNldCA9IGV4dHJhQXJnc1syXTtcblxuICAgIHJldHVybiB7IG9yZGVyQnksIGxpbWl0LCBvZmZzZXQgfTtcbiAgfVxufVxuIl19
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { QueryOptions } from "./types";
|
2
|
-
export declare function query(options?: QueryOptions): (target: object, propertyKey
|
2
|
+
export declare function query(options?: QueryOptions): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
@@ -42,4 +42,4 @@ export function query(options = {}) {
|
|
42
42
|
};
|
43
43
|
};
|
44
44
|
}
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyeS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQ0FBNkI7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBaUI7QUFFdEMsTUFBTSxVQUFVLEtBQUssQ0FBQyxVQUF3QixFQUFFO0lBQzlDLE9BQU8sQ0FDTCxNQUFjLEVBQ2QsV0FBaUIsRUFDakIsVUFBeUMsRUFDcEMsRUFBRTtRQUNQLDJDQUEyQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsVUFBMkMsQ0FBQyxLQUFLLEdBQUcsVUFDbkQsR0FBRyxJQUFXO1lBRWQsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQ3RELGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUVoRCxJQUFJLElBQUksR0FBSSxJQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBUSxDQUFDO1lBQy9DLElBQUksS0FBSztnQkFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxnREFBZ0Q7WUFDaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWiwrQkFBK0I7Z0JBQy9CLG1DQUFtQztZQUNyQyxDQUFDO1lBRUQsb0NBQW9DO1lBQ3BDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRztnQkFDeEQsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJO2dCQUNsQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osR0FBRyxPQUFPO2FBQ0ssQ0FBQztZQUVsQixNQUFNLE1BQU0sR0FBRztnQkFDYixpREFBaUQ7Z0JBQ2pELEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLHFDQUFxQztnQkFDM0csRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtnQkFDbkQsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTthQUN2RCxDQUFDO1lBRUYsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQzt3QkFDN0IsTUFBTSxJQUFJLFVBQVUsQ0FDbEIsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FDbkYsQ0FBQztvQkFDSixDQUFDO3lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUN6QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RDLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE1ldGhvZFF1ZXJ5QnVpbGRlciB9IGZyb20gXCIuL01ldGhvZFF1ZXJ5QnVpbGRlclwiO1xuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnkob3B0aW9uczogUXVlcnlPcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IG9iamVjdCxcbiAgICBwcm9wZXJ0eUtleT86IGFueSxcbiAgICBkZXNjcmlwdG9yPzogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55PlxuICApOiBhbnkgPT4ge1xuICAgIC8vIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gcHJvcGVydHlLZXkudG9TdHJpbmcoKTtcbiAgICAoZGVzY3JpcHRvciBhcyBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+KS52YWx1ZSA9IGZ1bmN0aW9uIChcbiAgICAgIC4uLmFyZ3M6IGFueVtdXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHNlbGVjdCwgd2hlcmUsIGdyb3VwQnksIG9yZGVyQnksIGxpbWl0LCBvZmZzZXQgfSA9XG4gICAgICAgIE1ldGhvZFF1ZXJ5QnVpbGRlci5idWlsZChtZXRob2ROYW1lLCAuLi5hcmdzKTtcblxuICAgICAgbGV0IHN0bXQgPSAodGhpcyBhcyBhbnkpLnNlbGVjdChzZWxlY3QpIGFzIGFueTtcbiAgICAgIGlmICh3aGVyZSkgc3RtdCA9IHN0bXQud2hlcmUod2hlcmUpO1xuICAgICAgLy8gaWYgKG9yZGVyQnkpIHN0bXQgPSBzdG10Lm9yZGVyQnkob3JkZXJCeVswXSk7XG4gICAgICBpZiAoZ3JvdXBCeSkge1xuICAgICAgICAvLyBncm91cCBieSBub3QgaW1wbGVtZW50ZWQgeWV0XG4gICAgICAgIC8qIHN0bXQgPSBzdG10Lmdyb3VwQnkoZ3JvdXBCeSk7ICovXG4gICAgICB9XG5cbiAgICAgIC8vIGFsbG93IGxpbWl0IGFuZCBvZmZzZXQgYnkgZGVmYXVsdFxuICAgICAgY29uc3QgeyBhbGxvd0xpbWl0LCBhbGxvd09mZnNldCwgYWxsb3dPcmRlckJ5LCB0aHJvd3MgfSA9IHtcbiAgICAgICAgYWxsb3dMaW1pdDogdHJ1ZSxcbiAgICAgICAgYWxsb3dPcmRlckJ5OiB0cnVlLFxuICAgICAgICBhbGxvd09mZnNldDogdHJ1ZSxcbiAgICAgICAgdGhyb3dzOiB0cnVlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfSBhcyBRdWVyeU9wdGlvbnM7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IFtcbiAgICAgICAgLy8ga2VlcCB0aGUgb3JkZXIgdG8gZW5zdXJlIHRoZSBleHBlY3RlZCBiZWhhdmlvclxuICAgICAgICB7IGtleTogXCJvcmRlckJ5XCIsIHZhbHVlOiAob3JkZXJCeSB8fCBbXSlbMF0sIGFsbG93ZWQ6IGFsbG93T3JkZXJCeSB9LCAvLyBvcmRlckJ5IG9ubHkgc3VwcG9ydHMgb25lIHNlbnRlbmNlXG4gICAgICAgIHsga2V5OiBcImxpbWl0XCIsIHZhbHVlOiBsaW1pdCwgYWxsb3dlZDogYWxsb3dMaW1pdCB9LFxuICAgICAgICB7IGtleTogXCJvZmZzZXRcIiwgdmFsdWU6IG9mZnNldCwgYWxsb3dlZDogYWxsb3dPZmZzZXQgfSxcbiAgICAgIF07XG5cbiAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgcGFyYW1zKSB7XG4gICAgICAgIGlmIChwYXJhbS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKCFwYXJhbS5hbGxvd2VkICYmIHRocm93cykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICAgICAgICAgIGAke3BhcmFtLmtleVswXS50b1VwcGVyQ2FzZSgpICsgcGFyYW0ua2V5LnNsaWNlKDEpfSBpcyBub3QgYWxsb3dlZCBmb3IgdGhpcyBxdWVyeWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXJhbS5hbGxvd2VkKSB7XG4gICAgICAgICAgICBzdG10ID0gc3RtdFtwYXJhbS5rZXldKHBhcmFtLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN0bXQuZXhlY3V0ZSgpO1xuICAgIH07XG4gIH07XG59XG4iXX0=
|
package/lib/esm/query/utils.js
CHANGED
@@ -44,8 +44,10 @@ export const OperatorsMap = {
|
|
44
44
|
LessThanEqual: (f, v) => Condition.attribute(f).lte(v),
|
45
45
|
GreaterThan: (f, v) => Condition.attribute(f).gt(v),
|
46
46
|
GreaterThanEqual: (f, v) => Condition.attribute(f).gte(v),
|
47
|
-
Between: (f, v1, v2) => Condition.attribute(f)
|
47
|
+
Between: (f, v1, v2) => Condition.attribute(f)
|
48
|
+
.gte(v1)
|
49
|
+
.and(Condition.attribute(f).lte(v2)),
|
48
50
|
In: (f, v) => Condition.attribute(f).in(v),
|
49
51
|
Matches: (f, v) => Condition.attribute(f).regexp(v),
|
50
52
|
};
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcnkvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBb0I7QUFHeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQW1DO0lBQzFELE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUNyQixTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQztTQUMxQixHQUFHLENBQUMsRUFBRSxDQUFDO1NBQ1AsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Q0FDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gXCIuL0NvbmRpdGlvblwiO1xuaW1wb3J0IHsgT3BlcmF0b3JQYXJzZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTWFwIG9mIHN1cHBvcnRlZCBvcGVyYXRvcnMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBwYXJzZXIgZnVuY3Rpb25zLlxuICpcbiAqIEBzdW1tYXJ5XG4gKiBUaGUgYE9wZXJhdG9yc01hcGAgZGVmaW5lcyBhIGNvbGxlY3Rpb24gb2Ygb3BlcmF0b3IgbmFtZXMgYXMga2V5c1xuICogKHN1Y2ggYXMgYEVxdWFsc2AsIGBMZXNzVGhhbmAsIGBCZXR3ZWVuYCwgZXRjLiksIGVhY2ggbWFwcGVkIHRvIGFcbiAqIGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyBhIGBDb25kaXRpb25gIG9iamVjdCBmb3IgdGhhdCBvcGVyYXRvci5cbiAqIFRoZXNlIGZ1bmN0aW9ucyB0cmFuc2xhdGUgcXVlcnkgY2xhdXNlcyBpbnRvIGNvbmNyZXRlIGNvbmRpdGlvblxuICogYnVpbGRlcnMsIGVuYWJsaW5nIGR5bmFtaWMgcXVlcnkgY29uc3RydWN0aW9uIGZyb20gbWV0aG9kIG5hbWVzLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIHRoZSBmaWVsZCB2YWx1ZXMgdXNlZCBpbiBjb25kaXRpb25zLlxuICpcbiAqIEBwYXJhbSBmIHtzdHJpbmd9IC0gVGhlIGZpZWxkIG5hbWUgdGhlIGNvbmRpdGlvbiBhcHBsaWVzIHRvLlxuICogQHBhcmFtIHYxIHthbnl9IC0gVGhlIHZhbHVlIHRvIGNvbXBhcmUgdGhlIGZpZWxkIGFnYWluc3Qgb3IgdGhlIGxvd2VyIGJvdW5kIHZhbHVlIGZvciByYW5nZS1iYXNlZCBvcGVyYXRvcnMuXG4gKiBAcGFyYW0gdjIge2FueX0gLSBUaGUgdXBwZXIgYm91bmQgdmFsdWUgZm9yIHJhbmdlLWJhc2VkIG9wZXJhdG9ycy5cbiAqXG4gKiBAcmV0dXJuIHtDb25kaXRpb248YW55Pn0gQSBjb25kaXRpb24gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgb3BlcmF0b3IgYXBwbGllZCB0byB0aGUgZmllbGQuXG4gKlxuICogQGZ1bmN0aW9uIE9wZXJhdG9yc01hcFxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50IGFzIENhbGxlclxuICogICBwYXJ0aWNpcGFudCBNYXAgYXMgT3BlcmF0b3JzTWFwXG4gKiAgIHBhcnRpY2lwYW50IFBhcnNlciBhcyBPcGVyYXRvclBhcnNlclxuICogICBwYXJ0aWNpcGFudCBDb25kIGFzIENvbmRpdGlvblxuICpcbiAqICAgQ2xpZW50LT4+TWFwOiBSZXF1ZXN0IG9wZXJhdG9yIHBhcnNlciAoXCJCZXR3ZWVuXCIsIGZpZWxkLCB2MSwgdjIpXG4gKiAgIE1hcC0+PlBhcnNlcjogQ2FsbCBjb3JyZXNwb25kaW5nIG9wZXJhdG9yIGZ1bmN0aW9uXG4gKiAgIFBhcnNlci0+PkNvbmQ6IENvbmRpdGlvbi5hdHRyaWJ1dGUoZmllbGQpXG4gKiAgIENvbmQtLT4+UGFyc2VyOiBDb25kaXRpb24gaW5zdGFuY2VcbiAqICAgUGFyc2VyLT4+Q29uZDogQXBwbHkgZ3RlKHYxKVxuICogICBQYXJzZXItPj5Db25kOiBBcHBseSBhbmQobHRlKHYyKSlcbiAqICAgUGFyc2VyLS0+PkNsaWVudDogUmV0dXJuIGJ1aWx0IENvbmRpdGlvblxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6cXVlcnlcbiAqL1xuZXhwb3J0IGNvbnN0IE9wZXJhdG9yc01hcDogUmVjb3JkPHN0cmluZywgT3BlcmF0b3JQYXJzZXI+ID0ge1xuICBFcXVhbHM6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5lcSh2KSxcbiAgRGlmZjogKGYsIHYpID0+IENvbmRpdGlvbi5hdHRyaWJ1dGUoZiBhcyBhbnkpLmRpZih2KSxcbiAgTGVzc1RoYW46IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5sdCh2KSxcbiAgTGVzc1RoYW5FcXVhbDogKGYsIHYpID0+IENvbmRpdGlvbi5hdHRyaWJ1dGUoZiBhcyBhbnkpLmx0ZSh2KSxcbiAgR3JlYXRlclRoYW46IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5ndCh2KSxcbiAgR3JlYXRlclRoYW5FcXVhbDogKGYsIHYpID0+IENvbmRpdGlvbi5hdHRyaWJ1dGUoZiBhcyBhbnkpLmd0ZSh2KSxcbiAgQmV0d2VlbjogKGYsIHYxLCB2MikgPT5cbiAgICBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KVxuICAgICAgLmd0ZSh2MSlcbiAgICAgIC5hbmQoQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkubHRlKHYyKSksXG4gIEluOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkuaW4odiksXG4gIE1hdGNoZXM6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5yZWdleHAodiksXG59O1xuIl19
|
package/lib/index.cjs
CHANGED
@@ -42,5 +42,5 @@ __exportStar(require("./persistence/index.cjs"), exports);
|
|
42
42
|
* @const VERSION
|
43
43
|
* @memberOf module:core
|
44
44
|
*/
|
45
|
-
exports.VERSION = "0.5.
|
45
|
+
exports.VERSION = "0.5.31";
|
46
46
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCw4REFBK0Q7QUFDL0QsMkVBQThEO0FBRTlELGtGQUFrRjtBQUNsRixtQ0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLGlDQUFtQixFQUFFLENBQUMsQ0FBQztBQUVuRCw0QkFBNEI7QUFDNUIseURBQTZCO0FBRTdCLHVEQUEyQjtBQUMzQix5REFBNkI7QUFDN0Isb0RBQXdCO0FBQ3hCLG9EQUF3QjtBQUN4QixvREFBd0I7QUFDeEIsdURBQWlDO0FBQ2pDLHlCQUF5QjtBQUN6QiwwREFBOEI7QUFFOUI7Ozs7O0dBS0c7QUFDVSxRQUFBLE9BQU8sR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgY29yZVxuICogQGRlc2NyaXB0aW9uIENvcmUgbW9kdWxlIGZvciB0aGUgRGVjYWYgVHlwZVNjcmlwdCBmcmFtZXdvcmtcbiAqIEBzdW1tYXJ5IFRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBmb3VuZGF0aW9uYWwgY29tcG9uZW50cyBvZiB0aGUgRGVjYWYgZnJhbWV3b3JrLCBpbmNsdWRpbmcgaWRlbnRpdHkgbWFuYWdlbWVudCxcbiAqIG1vZGVsIGRlZmluaXRpb25zLCByZXBvc2l0b3J5IHBhdHRlcm5zLCBwZXJzaXN0ZW5jZSBsYXllciwgcXVlcnkgYnVpbGRpbmcsIGFuZCB1dGlsaXR5IGZ1bmN0aW9ucy5cbiAqIEl0IGV4cG9ydHMgZnVuY3Rpb25hbGl0eSBmcm9tIHZhcmlvdXMgc3VibW9kdWxlcyBhbmQgc2V0cyB1cCB0aGUgaW5qZWN0YWJsZSByZWdpc3RyeSBmb3IgcmVwb3NpdG9yeSBkZWNvcmF0b3JzLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGVzUmVnaXN0cnkgfSBmcm9tIFwiLi9yZXBvc2l0b3J5L2luamVjdGFibGVzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlcyB9IGZyb20gXCJAZGVjYWYtdHMvaW5qZWN0YWJsZS1kZWNvcmF0b3JzXCI7XG5cbi8vIG92ZXJyaWRlcyB0aGUgcHJldmlvdXMgSW5qZWN0YWJsZXMgcmVnaXN0cnkgdG8gZW5hYmxlIHRoZSBAcmVwb3NpdG9yeSBkZWNvcmF0b3JcbkluamVjdGFibGVzLnNldFJlZ2lzdHJ5KG5ldyBJbmplY3RhYmxlc1JlZ2lzdHJ5KCkpO1xuXG4vLyBpbXBvcnRlZCBmaXJzdCBvbiBwdXJwb3NlXG5leHBvcnQgKiBmcm9tIFwiLi9yZXBvc2l0b3J5XCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2lkZW50aXR5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVlcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yYW0vUmFtQWRhcHRlclwiO1xuLy9sZWZ0IHRvIGxhc3Qgb24gcHVycG9zZVxuZXhwb3J0ICogZnJvbSBcIi4vcGVyc2lzdGVuY2VcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RvcmVzIHRoZSBjdXJyZW50IHBhY2thZ2UgdmVyc2lvblxuICogQHN1bW1hcnkgQSBjb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHZlcnNpb24gb2YgdGhlIGNvcmUgcGFja2FnZVxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdfQ==
|
package/lib/index.d.ts
CHANGED
@@ -251,11 +251,7 @@ class MethodQueryBuilder {
|
|
251
251
|
* @param core {string} - The extracted core string from the method name.
|
252
252
|
* @param values {any[]} - The values corresponding to method arguments, including conditions and extras.
|
253
253
|
*
|
254
|
-
* @return {
|
255
|
-
* orderBy?: OrderBySelector<any>[];
|
256
|
-
* limit?: number;
|
257
|
-
* offset?: number;
|
258
|
-
* }} An object containing orderBy, limit, and offset values if present.
|
254
|
+
* @return {OrderLimitOffsetExtract} An object containing orderBy, limit, and offset values if present.
|
259
255
|
*/
|
260
256
|
static extractOrderLimitOffset(core, values) {
|
261
257
|
const conditionCount = core.split(/And|Or/).length;
|
@@ -273,4 +269,4 @@ class MethodQueryBuilder {
|
|
273
269
|
}
|
274
270
|
}
|
275
271
|
exports.MethodQueryBuilder = MethodQueryBuilder;
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0aG9kUXVlcnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L01ldGhvZFF1ZXJ5QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1Q0FBcUU7QUFDckUsdUNBQXVDO0FBRXZDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFVLEVBQUUsQ0FDekMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBYSxrQkFBa0I7SUFDN0I7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBa0IsRUFBRSxHQUFHLE1BQWE7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsbUJBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELG1EQUFtRDtRQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQzdELElBQUks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LENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBMkIsQ0FBQztRQUVuRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7WUFDM0QsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2QixJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7WUFDM0QsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFyUEQsZ0RBcVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZGl0aW9uLCBPcmRlckJ5U2VsZWN0b3IgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB7IEZpbHRlckRlc2NyaXB0b3IsIFF1ZXJ5QXNzaXN0LCBRdWVyeUNsYXVzZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBPcGVyYXRvcnNNYXAgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5jb25zdCBsb3dlckZpcnN0ID0gKHN0cjogc3RyaW5nKTogc3RyaW5nID0+XG4gIHN0ci5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFV0aWxpdHkgY2xhc3MgdG8gYnVpbGQgcXVlcnkgb2JqZWN0cyBmcm9tIHJlcG9zaXRvcnkgbWV0aG9kIG5hbWVzLlxuICpcbiAqIEBzdW1tYXJ5XG4gKiBUaGUgYE1ldGhvZFF1ZXJ5QnVpbGRlcmAgY2xhc3MgcGFyc2VzIG1ldGhvZCBuYW1lcyB0aGF0IGZvbGxvdyBhIHNwZWNpZmljIG5hbWluZyBjb252ZW50aW9uXG4gKiAoZS5nLiwgYGZpbmRCeU5hbWVBbmRBZ2VPcmRlckJ5Q291bnRyeUFzY2ApIGFuZCBjb252ZXJ0cyB0aGVtIGludG8gc3RydWN0dXJlZCBxdWVyeSBvYmplY3RzXG4gKiAoYFF1ZXJ5QXNzaXN0YCkuIEl0IGV4dHJhY3RzIGNsYXVzZXMgc3VjaCBhcyBgc2VsZWN0YCwgYHdoZXJlYCwgYGdyb3VwQnlgLCBgb3JkZXJCeWAsIGBsaW1pdGAsXG4gKiBhbmQgYG9mZnNldGAsIGVuc3VyaW5nIHRoYXQgZGV2ZWxvcGVycyBjYW4gZGVjbGFyZSByZXBvc2l0b3J5IHF1ZXJpZXMgdXNpbmcgZXhwcmVzc2l2ZSBtZXRob2QgbmFtZXMuXG4gKlxuICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgcmVwb3NpdG9yeSBtZXRob2QgbmFtZSB0byBwYXJzZSBhbmQgY29udmVydCBpbnRvIGEgcXVlcnkuXG4gKiBAcGFyYW0gdmFsdWVzIHthbnlbXX0gLSBUaGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gbWV0aG9kIHBhcmFtZXRlcnMgdXNlZCBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqXG4gKiBAcmV0dXJuIHtRdWVyeUFzc2lzdH0gQSBzdHJ1Y3R1cmVkIHF1ZXJ5IG9iamVjdCBkZXNjcmliaW5nIHRoZSBwYXJzZWQgYWN0aW9uLCBzZWxlY3QsIHdoZXJlLFxuICogZ3JvdXBCeSwgb3JkZXJCeSwgbGltaXQsIGFuZCBvZmZzZXQgY2xhdXNlcy5cbiAqXG4gKiBAY2xhc3NcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IHF1ZXJ5ID0gTWV0aG9kUXVlcnlCdWlsZGVyLmJ1aWxkKFxuICogICBcImZpbmRCeU5hbWVBbmRBZ2VPcmRlckJ5Q291bnRyeUFzY1wiLFxuICogICBcIkpvaG5cIixcbiAqICAgMjUsXG4gKiAgIFtbXCJjb3VudHJ5XCIsIFwiQVNDXCJdXVxuICogKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhxdWVyeSk7XG4gKiAvLyB7XG4gKiAvLyAgIGFjdGlvbjogXCJmaW5kXCIsXG4gKiAvLyAgIHNlbGVjdDogdW5kZWZpbmVkLFxuICogLy8gICB3aGVyZTogeyAuLi4gfSxcbiAqIC8vICAgZ3JvdXBCeTogdW5kZWZpbmVkLFxuICogLy8gICBvcmRlckJ5OiBbW1wiY291bnRyeVwiLCBcIkFTQ1wiXV0sXG4gKiAvLyAgIGxpbWl0OiB1bmRlZmluZWQsXG4gKiAvLyAgIG9mZnNldDogdW5kZWZpbmVkXG4gKiAvLyB9XG4gKiBgYGBcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFJlcG8gYXMgUmVwb3NpdG9yeSBNZXRob2RcbiAqICAgcGFydGljaXBhbnQgTVFCIGFzIE1ldGhvZFF1ZXJ5QnVpbGRlclxuICogICBwYXJ0aWNpcGFudCBRdWVyeSBhcyBRdWVyeUFzc2lzdFxuICpcbiAqICAgUmVwby0+Pk1RQjogYnVpbGQobWV0aG9kTmFtZSwgLi4udmFsdWVzKVxuICogICBNUUItPj5NUUI6IGV4dHJhY3RDb3JlKG1ldGhvZE5hbWUpXG4gKiAgIE1RQi0+Pk1RQjogZXh0cmFjdFNlbGVjdChtZXRob2ROYW1lKVxuICogICBNUUItPj5NUUI6IGV4dHJhY3RHcm91cEJ5KG1ldGhvZE5hbWUpXG4gKiAgIE1RQi0+Pk1RQjogYnVpbGRXaGVyZShjb3JlLCB2YWx1ZXMpXG4gKiAgIE1RQi0+Pk1RQjogZXh0cmFjdE9yZGVyTGltaXRPZmZzZXQoY29yZSwgdmFsdWVzKVxuICogICBNUUItPj5RdWVyeTogcmV0dXJuIHN0cnVjdHVyZWQgUXVlcnlBc3Npc3Qgb2JqZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRob2RRdWVyeUJ1aWxkZXIge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEJ1aWxkcyBhIGBRdWVyeUFzc2lzdGAgb2JqZWN0IGJ5IHBhcnNpbmcgYSByZXBvc2l0b3J5IG1ldGhvZCBuYW1lIGFuZCB2YWx1ZXMuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIFRoZSBtZXRob2QgdmFsaWRhdGVzIHRoZSBtZXRob2QgbmFtZSwgZXh0cmFjdHMgY2xhdXNlcyAoY29yZSwgc2VsZWN0LCBncm91cEJ5LCB3aGVyZSxcbiAgICogb3JkZXJCeSwgbGltaXQsIGFuZCBvZmZzZXQpLCBhbmQgYXNzZW1ibGVzIHRoZW0gaW50byBhIHN0cnVjdHVyZWQgcXVlcnkgb2JqZWN0XG4gICAqIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIGFnYWluc3QgYSBkYXRhIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgcmVwb3NpdG9yeSBtZXRob2QgbmFtZSB0aGF0IGVuY29kZXMgcXVlcnkgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB2YWx1ZXMge2FueVtdfSAtIFRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byBjb25kaXRpb25zIGFuZCBleHRyYSBjbGF1c2VzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtRdWVyeUFzc2lzdH0gQSBzdHJ1Y3R1cmVkIHF1ZXJ5IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBxdWVyeS5cbiAgICovXG4gIHN0YXRpYyBidWlsZChtZXRob2ROYW1lOiBzdHJpbmcsIC4uLnZhbHVlczogYW55W10pOiBRdWVyeUFzc2lzdCB7XG4gICAgaWYgKCFtZXRob2ROYW1lLnN0YXJ0c1dpdGgoUXVlcnlDbGF1c2UuRklORF9CWSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbWV0aG9kICR7bWV0aG9kTmFtZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb3JlID0gdGhpcy5leHRyYWN0Q29yZShtZXRob2ROYW1lKTtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLmV4dHJhY3RTZWxlY3QobWV0aG9kTmFtZSk7XG4gICAgY29uc3QgZ3JvdXBCeSA9IHRoaXMuZXh0cmFjdEdyb3VwQnkobWV0aG9kTmFtZSk7XG4gICAgLy8gY29uc3Qgb3JkZXJCeSA9IHRoaXMuZXh0cmFjdE9yZGVyQnkobWV0aG9kTmFtZSk7XG4gICAgY29uc3Qgd2hlcmUgPSB0aGlzLmJ1aWxkV2hlcmUoY29yZSwgdmFsdWVzKTtcbiAgICBjb25zdCB7IG9yZGVyQnksIGxpbWl0LCBvZmZzZXQgfSA9IHRoaXMuZXh0cmFjdE9yZGVyTGltaXRPZmZzZXQoXG4gICAgICBjb3JlLFxuICAgICAgdmFsdWVzXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY3Rpb246IFwiZmluZFwiLFxuICAgICAgc2VsZWN0OiBzZWxlY3QsXG4gICAgICB3aGVyZSxcbiAgICAgIGdyb3VwQnksXG4gICAgICBvcmRlckJ5LFxuICAgICAgbGltaXQsXG4gICAgICBvZmZzZXQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXh0cmFjdHMgdGhlIGNvcmUgcGFydCBvZiB0aGUgbWV0aG9kIG5hbWUgYWZ0ZXIgYGZpbmRCeWAgYW5kIGJlZm9yZSBhbnkgc3BlY2lhbCBjbGF1c2VzLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBSZW1vdmVzIHByZWZpeGVzIGFuZCBkZXRlY3RzIGRlbGltaXRlcnMgKGBUaGVuYCwgYE9yZGVyQnlgLCBgR3JvdXBCeWAsIGBMaW1pdGAsIGBPZmZzZXRgKVxuICAgKiB0byBpc29sYXRlIHRoZSBtYWluIGNvbmRpdGlvbmFsIHBhcnQgb2YgdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBAcGFyYW0gbWV0aG9kTmFtZSB7c3RyaW5nfSAtIFRoZSBtZXRob2QgbmFtZSB0byBwYXJzZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZXh0cmFjdGVkIGNvcmUgc3RyaW5nIHVzZWQgZm9yIGJ1aWxkaW5nIGNvbmRpdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0Q29yZShtZXRob2ROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFmdGVyRmluZEJ5ID0gbWV0aG9kTmFtZS5zdWJzdHJpbmcoUXVlcnlDbGF1c2UuRklORF9CWS5sZW5ndGgpO1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhUaGVuW0EtWl18T3JkZXJCeXxHcm91cEJ5fExpbWl0fE9mZnNldCkvO1xuICAgIGNvbnN0IG1hdGNoID0gYWZ0ZXJGaW5kQnkubWF0Y2gocmVnZXgpO1xuICAgIHJldHVybiBtYXRjaCA/IGFmdGVyRmluZEJ5LnN1YnN0cmluZygwLCBtYXRjaC5pbmRleCkgOiBhZnRlckZpbmRCeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXh0cmFjdHMgdGhlIHNlbGVjdCBjbGF1c2UgZnJvbSBhIG1ldGhvZCBuYW1lLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBEZXRlY3RzIHRoZSBgU2VsZWN0YCBrZXl3b3JkIGluIHRoZSBtZXRob2QgbmFtZSwgaXNvbGF0ZXMgdGhlIGZpZWxkcyBmb2xsb3dpbmcgaXQsXG4gICAqIGFuZCByZXR1cm5zIHRoZW0gYXMgYW4gYXJyYXkgb2YgbG93ZXJjYXNlLWZpcnN0IHN0cmluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2ROYW1lIHtzdHJpbmd9IC0gVGhlIG1ldGhvZCBuYW1lIHRvIHBhcnNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmdbXSB8IHVuZGVmaW5lZH0gQW4gYXJyYXkgb2Ygc2VsZWN0ZWQgZmllbGRzIG9yIGB1bmRlZmluZWRgIGlmIG5vIHNlbGVjdCBjbGF1c2UgZXhpc3RzLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdFNlbGVjdChtZXRob2ROYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc2VsZWN0SW5kZXggPSBtZXRob2ROYW1lLmluZGV4T2YoUXVlcnlDbGF1c2UuU0VMRUNUKTtcbiAgICBpZiAoc2VsZWN0SW5kZXggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYWZ0ZXJTZWxlY3QgPSBtZXRob2ROYW1lLnN1YnN0cmluZyhcbiAgICAgIHNlbGVjdEluZGV4ICsgUXVlcnlDbGF1c2UuU0VMRUNULmxlbmd0aFxuICAgICk7XG5cbiAgICAvLyBTZWFyY2ggZm9yIG5leHQgVGhlbiwgR3JvdXBCeSwgT3JkZXJCeS4uLlxuICAgIGNvbnN0IG1hdGNoID0gYWZ0ZXJTZWxlY3QubWF0Y2goLyhUaGVuW0EtWl18T3JkZXJCeXxHcm91cEJ5fExpbWl0fE9mZnNldCkvKTtcblxuICAgIGNvbnN0IHNlbGVjdFBhcnQgPSBtYXRjaFxuICAgICAgPyBhZnRlclNlbGVjdC5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpXG4gICAgICA6IGFmdGVyU2VsZWN0O1xuXG4gICAgcmV0dXJuIHNlbGVjdFBhcnQuc3BsaXQoUXVlcnlDbGF1c2UuQU5EKS5tYXAobG93ZXJGaXJzdCkuZmlsdGVyKEJvb2xlYW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeHRyYWN0cyB0aGUgZ3JvdXAgYnkgY2xhdXNlIGZyb20gYSBtZXRob2QgbmFtZS5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRGV0ZWN0cyB0aGUgYEdyb3VwQnlgIGtleXdvcmQgaW4gdGhlIG1ldGhvZCBuYW1lLCBpc29sYXRlcyB0aGUgZmllbGRzIGZvbGxvd2luZyBpdCxcbiAgICogYW5kIHJldHVybnMgdGhlbSBhcyBhbiBhcnJheSBvZiBsb3dlcmNhc2UtZmlyc3Qgc3RyaW5ncy5cbiAgICpcbiAgICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgbWV0aG9kIG5hbWUgdG8gcGFyc2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdIHwgdW5kZWZpbmVkfSBBbiBhcnJheSBvZiBncm91cCBieSBmaWVsZHMgb3IgYHVuZGVmaW5lZGAgaWYgbm8gZ3JvdXAgYnkgY2xhdXNlIGV4aXN0cy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGV4dHJhY3RHcm91cEJ5KG1ldGhvZE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBncm91cEJ5SW5kZXggPSBtZXRob2ROYW1lLmluZGV4T2YoUXVlcnlDbGF1c2UuR1JPVVBfQlkpO1xuICAgIGlmIChncm91cEJ5SW5kZXggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYWZ0ZXIgPSBtZXRob2ROYW1lLnN1YnN0cmluZyhcbiAgICAgIGdyb3VwQnlJbmRleCArIFF1ZXJ5Q2xhdXNlLkdST1VQX0JZLmxlbmd0aFxuICAgICk7XG4gICAgY29uc3QgZ3JvdXBCeVBhcnQgPSBhZnRlci5zcGxpdChRdWVyeUNsYXVzZS5PUkRFUl9CWSlbMF07XG4gICAgcmV0dXJuIGdyb3VwQnlQYXJ0XG4gICAgICAuc3BsaXQoUXVlcnlDbGF1c2UuVEhFTl9CWSlcbiAgICAgIC5tYXAobG93ZXJGaXJzdClcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICAvLyBwcml2YXRlIHN0YXRpYyBleHRyYWN0T3JkZXJCeShcbiAgLy8gICBtZXRob2ROYW1lOiBzdHJpbmdcbiAgLy8gKTogT3JkZXJCeVNlbGVjdG9yPGFueT5bXSB8IHVuZGVmaW5lZCB7XG4gIC8vICAgY29uc3Qgb3JkZXJCeUluZGV4ID0gbWV0aG9kTmFtZS5pbmRleE9mKFF1ZXJ5Q2xhdXNlLk9SREVSX0JZKTtcbiAgLy8gICBpZiAob3JkZXJCeUluZGV4ID09PSAtMSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgLy9cbiAgLy8gICBjb25zdCBhZnRlciA9IG1ldGhvZE5hbWUuc3Vic3RyaW5nKFxuICAvLyAgICAgb3JkZXJCeUluZGV4ICsgUXVlcnlDbGF1c2UuT1JERVJfQlkubGVuZ3RoXG4gIC8vICAgKTtcbiAgLy8gICBjb25zdCBvcmRlclBhcnRzID0gYWZ0ZXIuc3BsaXQoXCJUaGVuQnlcIik7XG4gIC8vXG4gIC8vICAgcmV0dXJuIG9yZGVyUGFydHMubWFwKChwYXJ0KSA9PiB7XG4gIC8vICAgICBjb25zdCBtYXRjaCA9IHBhcnQubWF0Y2goLyguKj8pKEFzY3xEZXNjfERzYykkLyk7XG4gIC8vICAgICBpZiAoIW1hdGNoKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgT3JkZXJCeSBwYXJ0OiAke3BhcnR9YCk7XG4gIC8vICAgICBjb25zdCBbLCBmaWVsZCwgZGlyXSA9IG1hdGNoO1xuICAvLyAgICAgcmV0dXJuIFtcbiAgLy8gICAgICAgbG93ZXJGaXJzdChmaWVsZCksXG4gIC8vICAgICAgIGRpci50b0xvd2VyQ2FzZSgpID09PSBcImRzY1wiXG4gIC8vICAgICAgICAgPyBPcmRlckRpcmVjdGlvbi5EU0NcbiAgLy8gICAgICAgICA6IChkaXIudG9Mb3dlckNhc2UoKSBhcyBPcmRlckRpcmVjdGlvbiksXG4gIC8vICAgICBdO1xuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCdWlsZHMgdGhlIGB3aGVyZWAgY29uZGl0aW9uIG9iamVjdCBiYXNlZCBvbiB0aGUgcGFyc2VkIGNvcmUgc3RyaW5nIGFuZCBwYXJhbWV0ZXIgdmFsdWVzLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBTcGxpdHMgdGhlIGNvcmUgc3RyaW5nIGJ5IGxvZ2ljYWwgb3BlcmF0b3JzIChgQW5kYCwgYE9yYCksIHBhcnNlcyBlYWNoIHRva2VuIGludG8gYSBmaWVsZFxuICAgKiBhbmQgb3BlcmF0b3IsIGFuZCBjb21iaW5lcyB0aGVtIGludG8gYSBgQ29uZGl0aW9uYCBvYmplY3QgdXNpbmcgdGhlIHByb3ZpZGVkIHZhbHVlcy5cbiAgICpcbiAgICogQHBhcmFtIGNvcmUge3N0cmluZ30gLSBUaGUgZXh0cmFjdGVkIGNvcmUgc3RyaW5nIGZyb20gdGhlIG1ldGhvZCBuYW1lLlxuICAgKiBAcGFyYW0gdmFsdWVzIHthbnlbXX0gLSBUaGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNvbmRpdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm4ge0NvbmRpdGlvbjxhbnk+fSBBIHN0cnVjdHVyZWQgY29uZGl0aW9uIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5J3Mgd2hlcmUgY2xhdXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRXaGVyZShjb3JlOiBzdHJpbmcsIHZhbHVlczogYW55W10pOiBDb25kaXRpb248YW55PiB7XG4gICAgY29uc3QgcGFydHMgPSBjb3JlLnNwbGl0KC9PcmRlckJ5fEdyb3VwQnkvKVswXSB8fCBcIlwiO1xuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBwYXJ0cy5zcGxpdCgvQW5kfE9yLyk7XG5cbiAgICBjb25zdCBvcGVyYXRvcnMgPSBjb3JlLm1hdGNoKC9BbmR8T3IvZykgfHwgW107XG5cbiAgICBsZXQgd2hlcmU6IENvbmRpdGlvbjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uZGl0aW9ucy5mb3JFYWNoKCh0b2tlbiwgaWR4KSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvcGVyYXRvciB9ID0gdGhpcy5wYXJzZUZpZWxkQW5kT3BlcmF0b3IodG9rZW4pO1xuICAgICAgY29uc3QgcGFyc2VyID0gb3BlcmF0b3IgPyBPcGVyYXRvcnNNYXBbb3BlcmF0b3JdIDogT3BlcmF0b3JzTWFwLkVxdWFscztcbiAgICAgIGlmICghcGFyc2VyKSB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIG9wZXJhdG9yICR7b3BlcmF0b3J9YCk7XG5cbiAgICAgIGNvbnN0IGNvbmRpdGlvblZhbHVlID0gdmFsdWVzW2lkeF07XG4gICAgICBpZiAodHlwZW9mIGNvbmRpdGlvblZhbHVlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBmb3IgZmllbGQgJHtmaWVsZH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29uZGl0aW9uID0gcGFyc2VyKGZpZWxkLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB3aGVyZSA9XG4gICAgICAgIGlkeCA9PT0gMFxuICAgICAgICAgID8gY29uZGl0aW9uXG4gICAgICAgICAgOiBvcGVyYXRvcnNbaWR4IC0gMV0gPT09IFF1ZXJ5Q2xhdXNlLkFORFxuICAgICAgICAgICAgPyB3aGVyZSEuYW5kKGNvbmRpdGlvbilcbiAgICAgICAgICAgIDogd2hlcmUhLm9yKGNvbmRpdGlvbik7XG4gICAgfSk7XG5cbiAgICBpZiAoIXdoZXJlKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb25kaXRpb25zIGZvdW5kIGluIG1ldGhvZCBuYW1lXCIpO1xuICAgIHJldHVybiB3aGVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUGFyc2VzIGEgZmllbGQgbmFtZSBhbmQgb3BlcmF0b3IgZnJvbSBhIHN0cmluZyB0b2tlbi5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogSWRlbnRpZmllcyB0aGUgb3BlcmF0b3Igc3VmZml4IChpZiBwcmVzZW50KSBhbmQgcmV0dXJucyBhIGRlc2NyaXB0b3IgY29udGFpbmluZyB0aGUgZmllbGRcbiAgICogbmFtZSBpbiBsb3dlcmNhc2UtZmlyc3QgZm9ybWF0IGFsb25nIHdpdGggdGhlIG9wZXJhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gc3RyIHtzdHJpbmd9IC0gVGhlIHRva2VuIHN0cmluZyB0byBwYXJzZS5cbiAgICpcbiAgICogQHJldHVybiB7RmlsdGVyRGVzY3JpcHRvcn0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpZWxkIG5hbWUgYW5kIG9wZXJhdG9yLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VGaWVsZEFuZE9wZXJhdG9yKHN0cjogc3RyaW5nKTogRmlsdGVyRGVzY3JpcHRvciB7XG4gICAgZm9yIChjb25zdCBvcGVyYXRvciBvZiBPYmplY3Qua2V5cyhPcGVyYXRvcnNNYXApKSB7XG4gICAgICBpZiAoc3RyLmVuZHNXaXRoKG9wZXJhdG9yKSkge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHN0ci5zbGljZSgwLCAtb3BlcmF0b3IubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHsgZmllbGQ6IGxvd2VyRmlyc3QoZmllbGQpLCBvcGVyYXRvciB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmaWVsZDogbG93ZXJGaXJzdChzdHIpIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV4dHJhY3RzIGBvcmRlckJ5YCwgYGxpbWl0YCwgYW5kIGBvZmZzZXRgIGNsYXVzZXMgZnJvbSBtZXRob2QgYXJndW1lbnRzLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgY29uZGl0aW9uIGFyZ3VtZW50cywgdGhlbiBjaGVja3MgdGhlIHJlbWFpbmluZyBhcmd1bWVudHNcbiAgICogdG8gcmVzb2x2ZSBzb3J0aW5nLCBsaW1pdGluZywgYW5kIHBhZ2luYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBjb3JlIHtzdHJpbmd9IC0gVGhlIGV4dHJhY3RlZCBjb3JlIHN0cmluZyBmcm9tIHRoZSBtZXRob2QgbmFtZS5cbiAgICogQHBhcmFtIHZhbHVlcyB7YW55W119IC0gVGhlIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIG1ldGhvZCBhcmd1bWVudHMsIGluY2x1ZGluZyBjb25kaXRpb25zIGFuZCBleHRyYXMuXG4gICAqXG4gICAqIEByZXR1cm4ge3tcbiAgICogICBvcmRlckJ5PzogT3JkZXJCeVNlbGVjdG9yPGFueT5bXTtcbiAgICogICBsaW1pdD86IG51bWJlcjtcbiAgICogICBvZmZzZXQ/OiBudW1iZXI7XG4gICAqIH19IEFuIG9iamVjdCBjb250YWluaW5nIG9yZGVyQnksIGxpbWl0LCBhbmQgb2Zmc2V0IHZhbHVlcyBpZiBwcmVzZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdE9yZGVyTGltaXRPZmZzZXQoXG4gICAgY29yZTogc3RyaW5nLFxuICAgIHZhbHVlczogYW55W11cbiAgKTogeyBvcmRlckJ5PzogT3JkZXJCeVNlbGVjdG9yPGFueT5bXTsgbGltaXQ/OiBudW1iZXI7IG9mZnNldD86IG51bWJlciB9IHtcbiAgICBjb25zdCBjb25kaXRpb25Db3VudCA9IGNvcmUuc3BsaXQoL0FuZHxPci8pLmxlbmd0aDtcbiAgICBjb25zdCBleHRyYUFyZ3MgPSB2YWx1ZXMuc2xpY2UoY29uZGl0aW9uQ291bnQpO1xuXG4gICAgbGV0IG9yZGVyQnk6IE9yZGVyQnlTZWxlY3Rvcjxhbnk+W10gfCB1bmRlZmluZWQ7XG4gICAgbGV0IGxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbGV0IG9mZnNldDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGV4dHJhQXJncy5sZW5ndGggPj0gMSAmJiBBcnJheS5pc0FycmF5KGV4dHJhQXJnc1swXSkpXG4gICAgICBvcmRlckJ5ID0gZXh0cmFBcmdzWzBdIGFzIE9yZGVyQnlTZWxlY3Rvcjxhbnk+W107XG5cbiAgICBpZiAoZXh0cmFBcmdzLmxlbmd0aCA+PSAyICYmIHR5cGVvZiBleHRyYUFyZ3NbMV0gPT09IFwibnVtYmVyXCIpXG4gICAgICBsaW1pdCA9IGV4dHJhQXJnc1sxXTtcblxuICAgIGlmIChleHRyYUFyZ3MubGVuZ3RoID49IDMgJiYgdHlwZW9mIGV4dHJhQXJnc1syXSA9PT0gXCJudW1iZXJcIilcbiAgICAgIG9mZnNldCA9IGV4dHJhQXJnc1syXTtcblxuICAgIHJldHVybiB7IG9yZGVyQnksIGxpbWl0LCBvZmZzZXQgfTtcbiAgfVxufVxuIl19
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0aG9kUXVlcnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L01ldGhvZFF1ZXJ5QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1Q0FBcUU7QUFDckUsdUNBQXVDO0FBRXZDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFVLEVBQUUsQ0FDekMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBUTdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBYSxrQkFBa0I7SUFDN0I7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBa0IsRUFBRSxHQUFHLE1BQWE7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsbUJBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELG1EQUFtRDtRQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQzdELElBQUks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LElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQTJCLENBQUM7UUFFbkQsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1lBQzNELEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1lBQzNELE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBalBELGdEQWlQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmRpdGlvbiwgT3JkZXJCeVNlbGVjdG9yIH0gZnJvbSBcIi4uL3F1ZXJ5XCI7XG5pbXBvcnQgeyBGaWx0ZXJEZXNjcmlwdG9yLCBRdWVyeUFzc2lzdCwgUXVlcnlDbGF1c2UgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgT3BlcmF0b3JzTWFwIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuY29uc3QgbG93ZXJGaXJzdCA9IChzdHI6IHN0cmluZyk6IHN0cmluZyA9PlxuICBzdHIuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG5cbmV4cG9ydCB0eXBlIE9yZGVyTGltaXRPZmZzZXRFeHRyYWN0ID0ge1xuICBvcmRlckJ5PzogT3JkZXJCeVNlbGVjdG9yPGFueT5bXTtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBVdGlsaXR5IGNsYXNzIHRvIGJ1aWxkIHF1ZXJ5IG9iamVjdHMgZnJvbSByZXBvc2l0b3J5IG1ldGhvZCBuYW1lcy5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBNZXRob2RRdWVyeUJ1aWxkZXJgIGNsYXNzIHBhcnNlcyBtZXRob2QgbmFtZXMgdGhhdCBmb2xsb3cgYSBzcGVjaWZpYyBuYW1pbmcgY29udmVudGlvblxuICogKGUuZy4sIGBmaW5kQnlOYW1lQW5kQWdlT3JkZXJCeUNvdW50cnlBc2NgKSBhbmQgY29udmVydHMgdGhlbSBpbnRvIHN0cnVjdHVyZWQgcXVlcnkgb2JqZWN0c1xuICogKGBRdWVyeUFzc2lzdGApLiBJdCBleHRyYWN0cyBjbGF1c2VzIHN1Y2ggYXMgYHNlbGVjdGAsIGB3aGVyZWAsIGBncm91cEJ5YCwgYG9yZGVyQnlgLCBgbGltaXRgLFxuICogYW5kIGBvZmZzZXRgLCBlbnN1cmluZyB0aGF0IGRldmVsb3BlcnMgY2FuIGRlY2xhcmUgcmVwb3NpdG9yeSBxdWVyaWVzIHVzaW5nIGV4cHJlc3NpdmUgbWV0aG9kIG5hbWVzLlxuICpcbiAqIEBwYXJhbSBtZXRob2ROYW1lIHtzdHJpbmd9IC0gVGhlIHJlcG9zaXRvcnkgbWV0aG9kIG5hbWUgdG8gcGFyc2UgYW5kIGNvbnZlcnQgaW50byBhIHF1ZXJ5LlxuICogQHBhcmFtIHZhbHVlcyB7YW55W119IC0gVGhlIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIG1ldGhvZCBwYXJhbWV0ZXJzIHVzZWQgZm9yIHF1ZXJ5IGNvbmRpdGlvbnMuXG4gKlxuICogQHJldHVybiB7UXVlcnlBc3Npc3R9IEEgc3RydWN0dXJlZCBxdWVyeSBvYmplY3QgZGVzY3JpYmluZyB0aGUgcGFyc2VkIGFjdGlvbiwgc2VsZWN0LCB3aGVyZSxcbiAqIGdyb3VwQnksIG9yZGVyQnksIGxpbWl0LCBhbmQgb2Zmc2V0IGNsYXVzZXMuXG4gKlxuICogQGNsYXNzXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBxdWVyeSA9IE1ldGhvZFF1ZXJ5QnVpbGRlci5idWlsZChcbiAqICAgXCJmaW5kQnlOYW1lQW5kQWdlT3JkZXJCeUNvdW50cnlBc2NcIixcbiAqICAgXCJKb2huXCIsXG4gKiAgIDI1LFxuICogICBbW1wiY291bnRyeVwiLCBcIkFTQ1wiXV1cbiAqICk7XG4gKlxuICogY29uc29sZS5sb2cocXVlcnkpO1xuICogLy8ge1xuICogLy8gICBhY3Rpb246IFwiZmluZFwiLFxuICogLy8gICBzZWxlY3Q6IHVuZGVmaW5lZCxcbiAqIC8vICAgd2hlcmU6IHsgLi4uIH0sXG4gKiAvLyAgIGdyb3VwQnk6IHVuZGVmaW5lZCxcbiAqIC8vICAgb3JkZXJCeTogW1tcImNvdW50cnlcIiwgXCJBU0NcIl1dLFxuICogLy8gICBsaW1pdDogdW5kZWZpbmVkLFxuICogLy8gICBvZmZzZXQ6IHVuZGVmaW5lZFxuICogLy8gfVxuICogYGBgXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBSZXBvIGFzIFJlcG9zaXRvcnkgTWV0aG9kXG4gKiAgIHBhcnRpY2lwYW50IE1RQiBhcyBNZXRob2RRdWVyeUJ1aWxkZXJcbiAqICAgcGFydGljaXBhbnQgUXVlcnkgYXMgUXVlcnlBc3Npc3RcbiAqXG4gKiAgIFJlcG8tPj5NUUI6IGJ1aWxkKG1ldGhvZE5hbWUsIC4uLnZhbHVlcylcbiAqICAgTVFCLT4+TVFCOiBleHRyYWN0Q29yZShtZXRob2ROYW1lKVxuICogICBNUUItPj5NUUI6IGV4dHJhY3RTZWxlY3QobWV0aG9kTmFtZSlcbiAqICAgTVFCLT4+TVFCOiBleHRyYWN0R3JvdXBCeShtZXRob2ROYW1lKVxuICogICBNUUItPj5NUUI6IGJ1aWxkV2hlcmUoY29yZSwgdmFsdWVzKVxuICogICBNUUItPj5NUUI6IGV4dHJhY3RPcmRlckxpbWl0T2Zmc2V0KGNvcmUsIHZhbHVlcylcbiAqICAgTVFCLT4+UXVlcnk6IHJldHVybiBzdHJ1Y3R1cmVkIFF1ZXJ5QXNzaXN0IG9iamVjdFxuICovXG5leHBvcnQgY2xhc3MgTWV0aG9kUXVlcnlCdWlsZGVyIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBCdWlsZHMgYSBgUXVlcnlBc3Npc3RgIG9iamVjdCBieSBwYXJzaW5nIGEgcmVwb3NpdG9yeSBtZXRob2QgbmFtZSBhbmQgdmFsdWVzLlxuICAgKlxuICAgKiBAc3VtbWFyeVxuICAgKiBUaGUgbWV0aG9kIHZhbGlkYXRlcyB0aGUgbWV0aG9kIG5hbWUsIGV4dHJhY3RzIGNsYXVzZXMgKGNvcmUsIHNlbGVjdCwgZ3JvdXBCeSwgd2hlcmUsXG4gICAqIG9yZGVyQnksIGxpbWl0LCBhbmQgb2Zmc2V0KSwgYW5kIGFzc2VtYmxlcyB0aGVtIGludG8gYSBzdHJ1Y3R1cmVkIHF1ZXJ5IG9iamVjdFxuICAgKiB0aGF0IGNhbiBiZSBleGVjdXRlZCBhZ2FpbnN0IGEgZGF0YSBzb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2ROYW1lIHtzdHJpbmd9IC0gVGhlIHJlcG9zaXRvcnkgbWV0aG9kIG5hbWUgdGhhdCBlbmNvZGVzIHF1ZXJ5IGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0gdmFsdWVzIHthbnlbXX0gLSBUaGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gY29uZGl0aW9ucyBhbmQgZXh0cmEgY2xhdXNlcy5cbiAgICpcbiAgICogQHJldHVybiB7UXVlcnlBc3Npc3R9IEEgc3RydWN0dXJlZCBxdWVyeSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBwYXJzZWQgcXVlcnkuXG4gICAqL1xuICBzdGF0aWMgYnVpbGQobWV0aG9kTmFtZTogc3RyaW5nLCAuLi52YWx1ZXM6IGFueVtdKTogUXVlcnlBc3Npc3Qge1xuICAgIGlmICghbWV0aG9kTmFtZS5zdGFydHNXaXRoKFF1ZXJ5Q2xhdXNlLkZJTkRfQlkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIG1ldGhvZCAke21ldGhvZE5hbWV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29yZSA9IHRoaXMuZXh0cmFjdENvcmUobWV0aG9kTmFtZSk7XG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy5leHRyYWN0U2VsZWN0KG1ldGhvZE5hbWUpO1xuICAgIGNvbnN0IGdyb3VwQnkgPSB0aGlzLmV4dHJhY3RHcm91cEJ5KG1ldGhvZE5hbWUpO1xuICAgIC8vIGNvbnN0IG9yZGVyQnkgPSB0aGlzLmV4dHJhY3RPcmRlckJ5KG1ldGhvZE5hbWUpO1xuICAgIGNvbnN0IHdoZXJlID0gdGhpcy5idWlsZFdoZXJlKGNvcmUsIHZhbHVlcyk7XG4gICAgY29uc3QgeyBvcmRlckJ5LCBsaW1pdCwgb2Zmc2V0IH0gPSB0aGlzLmV4dHJhY3RPcmRlckxpbWl0T2Zmc2V0KFxuICAgICAgY29yZSxcbiAgICAgIHZhbHVlc1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWN0aW9uOiBcImZpbmRcIixcbiAgICAgIHNlbGVjdDogc2VsZWN0LFxuICAgICAgd2hlcmUsXG4gICAgICBncm91cEJ5LFxuICAgICAgb3JkZXJCeSxcbiAgICAgIGxpbWl0LFxuICAgICAgb2Zmc2V0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV4dHJhY3RzIHRoZSBjb3JlIHBhcnQgb2YgdGhlIG1ldGhvZCBuYW1lIGFmdGVyIGBmaW5kQnlgIGFuZCBiZWZvcmUgYW55IHNwZWNpYWwgY2xhdXNlcy5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogUmVtb3ZlcyBwcmVmaXhlcyBhbmQgZGV0ZWN0cyBkZWxpbWl0ZXJzIChgVGhlbmAsIGBPcmRlckJ5YCwgYEdyb3VwQnlgLCBgTGltaXRgLCBgT2Zmc2V0YClcbiAgICogdG8gaXNvbGF0ZSB0aGUgbWFpbiBjb25kaXRpb25hbCBwYXJ0IG9mIHRoZSBxdWVyeS5cbiAgICpcbiAgICogQHBhcmFtIG1ldGhvZE5hbWUge3N0cmluZ30gLSBUaGUgbWV0aG9kIG5hbWUgdG8gcGFyc2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGV4dHJhY3RlZCBjb3JlIHN0cmluZyB1c2VkIGZvciBidWlsZGluZyBjb25kaXRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdENvcmUobWV0aG9kTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhZnRlckZpbmRCeSA9IG1ldGhvZE5hbWUuc3Vic3RyaW5nKFF1ZXJ5Q2xhdXNlLkZJTkRfQlkubGVuZ3RoKTtcbiAgICBjb25zdCByZWdleCA9IC8oVGhlbltBLVpdfE9yZGVyQnl8R3JvdXBCeXxMaW1pdHxPZmZzZXQpLztcbiAgICBjb25zdCBtYXRjaCA9IGFmdGVyRmluZEJ5Lm1hdGNoKHJlZ2V4KTtcbiAgICByZXR1cm4gbWF0Y2ggPyBhZnRlckZpbmRCeS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpIDogYWZ0ZXJGaW5kQnk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV4dHJhY3RzIHRoZSBzZWxlY3QgY2xhdXNlIGZyb20gYSBtZXRob2QgbmFtZS5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRGV0ZWN0cyB0aGUgYFNlbGVjdGAga2V5d29yZCBpbiB0aGUgbWV0aG9kIG5hbWUsIGlzb2xhdGVzIHRoZSBmaWVsZHMgZm9sbG93aW5nIGl0LFxuICAgKiBhbmQgcmV0dXJucyB0aGVtIGFzIGFuIGFycmF5IG9mIGxvd2VyY2FzZS1maXJzdCBzdHJpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0aG9kTmFtZSB7c3RyaW5nfSAtIFRoZSBtZXRob2QgbmFtZSB0byBwYXJzZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nW10gfCB1bmRlZmluZWR9IEFuIGFycmF5IG9mIHNlbGVjdGVkIGZpZWxkcyBvciBgdW5kZWZpbmVkYCBpZiBubyBzZWxlY3QgY2xhdXNlIGV4aXN0cy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGV4dHJhY3RTZWxlY3QobWV0aG9kTmFtZTogc3RyaW5nKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHNlbGVjdEluZGV4ID0gbWV0aG9kTmFtZS5pbmRleE9mKFF1ZXJ5Q2xhdXNlLlNFTEVDVCk7XG4gICAgaWYgKHNlbGVjdEluZGV4ID09PSAtMSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGFmdGVyU2VsZWN0ID0gbWV0aG9kTmFtZS5zdWJzdHJpbmcoXG4gICAgICBzZWxlY3RJbmRleCArIFF1ZXJ5Q2xhdXNlLlNFTEVDVC5sZW5ndGhcbiAgICApO1xuXG4gICAgLy8gU2VhcmNoIGZvciBuZXh0IFRoZW4sIEdyb3VwQnksIE9yZGVyQnkuLi5cbiAgICBjb25zdCBtYXRjaCA9IGFmdGVyU2VsZWN0Lm1hdGNoKC8oVGhlbltBLVpdfE9yZGVyQnl8R3JvdXBCeXxMaW1pdHxPZmZzZXQpLyk7XG5cbiAgICBjb25zdCBzZWxlY3RQYXJ0ID0gbWF0Y2hcbiAgICAgID8gYWZ0ZXJTZWxlY3Quc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KVxuICAgICAgOiBhZnRlclNlbGVjdDtcblxuICAgIHJldHVybiBzZWxlY3RQYXJ0LnNwbGl0KFF1ZXJ5Q2xhdXNlLkFORCkubWFwKGxvd2VyRmlyc3QpLmZpbHRlcihCb29sZWFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXh0cmFjdHMgdGhlIGdyb3VwIGJ5IGNsYXVzZSBmcm9tIGEgbWV0aG9kIG5hbWUuXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIERldGVjdHMgdGhlIGBHcm91cEJ5YCBrZXl3b3JkIGluIHRoZSBtZXRob2QgbmFtZSwgaXNvbGF0ZXMgdGhlIGZpZWxkcyBmb2xsb3dpbmcgaXQsXG4gICAqIGFuZCByZXR1cm5zIHRoZW0gYXMgYW4gYXJyYXkgb2YgbG93ZXJjYXNlLWZpcnN0IHN0cmluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2ROYW1lIHtzdHJpbmd9IC0gVGhlIG1ldGhvZCBuYW1lIHRvIHBhcnNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmdbXSB8IHVuZGVmaW5lZH0gQW4gYXJyYXkgb2YgZ3JvdXAgYnkgZmllbGRzIG9yIGB1bmRlZmluZWRgIGlmIG5vIGdyb3VwIGJ5IGNsYXVzZSBleGlzdHMuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0R3JvdXBCeShtZXRob2ROYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZ3JvdXBCeUluZGV4ID0gbWV0aG9kTmFtZS5pbmRleE9mKFF1ZXJ5Q2xhdXNlLkdST1VQX0JZKTtcbiAgICBpZiAoZ3JvdXBCeUluZGV4ID09PSAtMSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGFmdGVyID0gbWV0aG9kTmFtZS5zdWJzdHJpbmcoXG4gICAgICBncm91cEJ5SW5kZXggKyBRdWVyeUNsYXVzZS5HUk9VUF9CWS5sZW5ndGhcbiAgICApO1xuICAgIGNvbnN0IGdyb3VwQnlQYXJ0ID0gYWZ0ZXIuc3BsaXQoUXVlcnlDbGF1c2UuT1JERVJfQlkpWzBdO1xuICAgIHJldHVybiBncm91cEJ5UGFydFxuICAgICAgLnNwbGl0KFF1ZXJ5Q2xhdXNlLlRIRU5fQlkpXG4gICAgICAubWFwKGxvd2VyRmlyc3QpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICB9XG5cbiAgLy8gcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdE9yZGVyQnkoXG4gIC8vICAgbWV0aG9kTmFtZTogc3RyaW5nXG4gIC8vICk6IE9yZGVyQnlTZWxlY3Rvcjxhbnk+W10gfCB1bmRlZmluZWQge1xuICAvLyAgIGNvbnN0IG9yZGVyQnlJbmRleCA9IG1ldGhvZE5hbWUuaW5kZXhPZihRdWVyeUNsYXVzZS5PUkRFUl9CWSk7XG4gIC8vICAgaWYgKG9yZGVyQnlJbmRleCA9PT0gLTEpIHJldHVybiB1bmRlZmluZWQ7XG4gIC8vXG4gIC8vICAgY29uc3QgYWZ0ZXIgPSBtZXRob2ROYW1lLnN1YnN0cmluZyhcbiAgLy8gICAgIG9yZGVyQnlJbmRleCArIFF1ZXJ5Q2xhdXNlLk9SREVSX0JZLmxlbmd0aFxuICAvLyAgICk7XG4gIC8vICAgY29uc3Qgb3JkZXJQYXJ0cyA9IGFmdGVyLnNwbGl0KFwiVGhlbkJ5XCIpO1xuICAvL1xuICAvLyAgIHJldHVybiBvcmRlclBhcnRzLm1hcCgocGFydCkgPT4ge1xuICAvLyAgICAgY29uc3QgbWF0Y2ggPSBwYXJ0Lm1hdGNoKC8oLio/KShBc2N8RGVzY3xEc2MpJC8pO1xuICAvLyAgICAgaWYgKCFtYXRjaCkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIE9yZGVyQnkgcGFydDogJHtwYXJ0fWApO1xuICAvLyAgICAgY29uc3QgWywgZmllbGQsIGRpcl0gPSBtYXRjaDtcbiAgLy8gICAgIHJldHVybiBbXG4gIC8vICAgICAgIGxvd2VyRmlyc3QoZmllbGQpLFxuICAvLyAgICAgICBkaXIudG9Mb3dlckNhc2UoKSA9PT0gXCJkc2NcIlxuICAvLyAgICAgICAgID8gT3JkZXJEaXJlY3Rpb24uRFNDXG4gIC8vICAgICAgICAgOiAoZGlyLnRvTG93ZXJDYXNlKCkgYXMgT3JkZXJEaXJlY3Rpb24pLFxuICAvLyAgICAgXTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQnVpbGRzIHRoZSBgd2hlcmVgIGNvbmRpdGlvbiBvYmplY3QgYmFzZWQgb24gdGhlIHBhcnNlZCBjb3JlIHN0cmluZyBhbmQgcGFyYW1ldGVyIHZhbHVlcy5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogU3BsaXRzIHRoZSBjb3JlIHN0cmluZyBieSBsb2dpY2FsIG9wZXJhdG9ycyAoYEFuZGAsIGBPcmApLCBwYXJzZXMgZWFjaCB0b2tlbiBpbnRvIGEgZmllbGRcbiAgICogYW5kIG9wZXJhdG9yLCBhbmQgY29tYmluZXMgdGhlbSBpbnRvIGEgYENvbmRpdGlvbmAgb2JqZWN0IHVzaW5nIHRoZSBwcm92aWRlZCB2YWx1ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBjb3JlIHtzdHJpbmd9IC0gVGhlIGV4dHJhY3RlZCBjb3JlIHN0cmluZyBmcm9tIHRoZSBtZXRob2QgbmFtZS5cbiAgICogQHBhcmFtIHZhbHVlcyB7YW55W119IC0gVGhlIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb25kaXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJuIHtDb25kaXRpb248YW55Pn0gQSBzdHJ1Y3R1cmVkIGNvbmRpdGlvbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSdzIHdoZXJlIGNsYXVzZS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkV2hlcmUoY29yZTogc3RyaW5nLCB2YWx1ZXM6IGFueVtdKTogQ29uZGl0aW9uPGFueT4ge1xuICAgIGNvbnN0IHBhcnRzID0gY29yZS5zcGxpdCgvT3JkZXJCeXxHcm91cEJ5LylbMF0gfHwgXCJcIjtcbiAgICBjb25zdCBjb25kaXRpb25zID0gcGFydHMuc3BsaXQoL0FuZHxPci8pO1xuXG4gICAgY29uc3Qgb3BlcmF0b3JzID0gY29yZS5tYXRjaCgvQW5kfE9yL2cpIHx8IFtdO1xuXG4gICAgbGV0IHdoZXJlOiBDb25kaXRpb248YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbmRpdGlvbnMuZm9yRWFjaCgodG9rZW4sIGlkeCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb3BlcmF0b3IgfSA9IHRoaXMucGFyc2VGaWVsZEFuZE9wZXJhdG9yKHRva2VuKTtcbiAgICAgIGNvbnN0IHBhcnNlciA9IG9wZXJhdG9yID8gT3BlcmF0b3JzTWFwW29wZXJhdG9yXSA6IE9wZXJhdG9yc01hcC5FcXVhbHM7XG4gICAgICBpZiAoIXBhcnNlcikgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBvcGVyYXRvciAke29wZXJhdG9yfWApO1xuXG4gICAgICBjb25zdCBjb25kaXRpb25WYWx1ZSA9IHZhbHVlc1tpZHhdO1xuICAgICAgaWYgKHR5cGVvZiBjb25kaXRpb25WYWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmFsdWUgZm9yIGZpZWxkICR7ZmllbGR9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHBhcnNlcihmaWVsZCwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgd2hlcmUgPVxuICAgICAgICBpZHggPT09IDBcbiAgICAgICAgICA/IGNvbmRpdGlvblxuICAgICAgICAgIDogb3BlcmF0b3JzW2lkeCAtIDFdID09PSBRdWVyeUNsYXVzZS5BTkRcbiAgICAgICAgICAgID8gd2hlcmUhLmFuZChjb25kaXRpb24pXG4gICAgICAgICAgICA6IHdoZXJlIS5vcihjb25kaXRpb24pO1xuICAgIH0pO1xuXG4gICAgaWYgKCF3aGVyZSkgdGhyb3cgbmV3IEVycm9yKFwiTm8gY29uZGl0aW9ucyBmb3VuZCBpbiBtZXRob2QgbmFtZVwiKTtcbiAgICByZXR1cm4gd2hlcmU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBhcnNlcyBhIGZpZWxkIG5hbWUgYW5kIG9wZXJhdG9yIGZyb20gYSBzdHJpbmcgdG9rZW4uXG4gICAqXG4gICAqIEBzdW1tYXJ5XG4gICAqIElkZW50aWZpZXMgdGhlIG9wZXJhdG9yIHN1ZmZpeCAoaWYgcHJlc2VudCkgYW5kIHJldHVybnMgYSBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIGZpZWxkXG4gICAqIG5hbWUgaW4gbG93ZXJjYXNlLWZpcnN0IGZvcm1hdCBhbG9uZyB3aXRoIHRoZSBvcGVyYXRvci5cbiAgICpcbiAgICogQHBhcmFtIHN0ciB7c3RyaW5nfSAtIFRoZSB0b2tlbiBzdHJpbmcgdG8gcGFyc2UuXG4gICAqXG4gICAqIEByZXR1cm4ge0ZpbHRlckRlc2NyaXB0b3J9IEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmaWVsZCBuYW1lIGFuZCBvcGVyYXRvci5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHBhcnNlRmllbGRBbmRPcGVyYXRvcihzdHI6IHN0cmluZyk6IEZpbHRlckRlc2NyaXB0b3Ige1xuICAgIGZvciAoY29uc3Qgb3BlcmF0b3Igb2YgT2JqZWN0LmtleXMoT3BlcmF0b3JzTWFwKSkge1xuICAgICAgaWYgKHN0ci5lbmRzV2l0aChvcGVyYXRvcikpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBzdHIuc2xpY2UoMCwgLW9wZXJhdG9yLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiB7IGZpZWxkOiBsb3dlckZpcnN0KGZpZWxkKSwgb3BlcmF0b3IgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZmllbGQ6IGxvd2VyRmlyc3Qoc3RyKSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeHRyYWN0cyBgb3JkZXJCeWAsIGBsaW1pdGAsIGFuZCBgb2Zmc2V0YCBjbGF1c2VzIGZyb20gbWV0aG9kIGFyZ3VtZW50cy5cbiAgICpcbiAgICogQHN1bW1hcnlcbiAgICogRGV0ZXJtaW5lcyB0aGUgbnVtYmVyIG9mIGNvbmRpdGlvbiBhcmd1bWVudHMsIHRoZW4gY2hlY2tzIHRoZSByZW1haW5pbmcgYXJndW1lbnRzXG4gICAqIHRvIHJlc29sdmUgc29ydGluZywgbGltaXRpbmcsIGFuZCBwYWdpbmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gY29yZSB7c3RyaW5nfSAtIFRoZSBleHRyYWN0ZWQgY29yZSBzdHJpbmcgZnJvbSB0aGUgbWV0aG9kIG5hbWUuXG4gICAqIEBwYXJhbSB2YWx1ZXMge2FueVtdfSAtIFRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byBtZXRob2QgYXJndW1lbnRzLCBpbmNsdWRpbmcgY29uZGl0aW9ucyBhbmQgZXh0cmFzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtPcmRlckxpbWl0T2Zmc2V0RXh0cmFjdH0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgb3JkZXJCeSwgbGltaXQsIGFuZCBvZmZzZXQgdmFsdWVzIGlmIHByZXNlbnQuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0T3JkZXJMaW1pdE9mZnNldChcbiAgICBjb3JlOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBhbnlbXVxuICApOiBPcmRlckxpbWl0T2Zmc2V0RXh0cmFjdCB7XG4gICAgY29uc3QgY29uZGl0aW9uQ291bnQgPSBjb3JlLnNwbGl0KC9BbmR8T3IvKS5sZW5ndGg7XG4gICAgY29uc3QgZXh0cmFBcmdzID0gdmFsdWVzLnNsaWNlKGNvbmRpdGlvbkNvdW50KTtcblxuICAgIGxldCBvcmRlckJ5OiBPcmRlckJ5U2VsZWN0b3I8YW55PltdIHwgdW5kZWZpbmVkO1xuICAgIGxldCBsaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGxldCBvZmZzZXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChleHRyYUFyZ3MubGVuZ3RoID49IDEgJiYgQXJyYXkuaXNBcnJheShleHRyYUFyZ3NbMF0pKVxuICAgICAgb3JkZXJCeSA9IGV4dHJhQXJnc1swXSBhcyBPcmRlckJ5U2VsZWN0b3I8YW55PltdO1xuXG4gICAgaWYgKGV4dHJhQXJncy5sZW5ndGggPj0gMiAmJiB0eXBlb2YgZXh0cmFBcmdzWzFdID09PSBcIm51bWJlclwiKVxuICAgICAgbGltaXQgPSBleHRyYUFyZ3NbMV07XG5cbiAgICBpZiAoZXh0cmFBcmdzLmxlbmd0aCA+PSAzICYmIHR5cGVvZiBleHRyYUFyZ3NbMl0gPT09IFwibnVtYmVyXCIpXG4gICAgICBvZmZzZXQgPSBleHRyYUFyZ3NbMl07XG5cbiAgICByZXR1cm4geyBvcmRlckJ5LCBsaW1pdCwgb2Zmc2V0IH07XG4gIH1cbn1cbiJdfQ==
|
@@ -1,4 +1,10 @@
|
|
1
|
+
import { OrderBySelector } from "../query";
|
1
2
|
import { QueryAssist } from "./types";
|
3
|
+
export type OrderLimitOffsetExtract = {
|
4
|
+
orderBy?: OrderBySelector<any>[];
|
5
|
+
limit?: number;
|
6
|
+
offset?: number;
|
7
|
+
};
|
2
8
|
/**
|
3
9
|
* @description
|
4
10
|
* Utility class to build query objects from repository method names.
|
@@ -145,11 +151,7 @@ export declare class MethodQueryBuilder {
|
|
145
151
|
* @param core {string} - The extracted core string from the method name.
|
146
152
|
* @param values {any[]} - The values corresponding to method arguments, including conditions and extras.
|
147
153
|
*
|
148
|
-
* @return {
|
149
|
-
* orderBy?: OrderBySelector<any>[];
|
150
|
-
* limit?: number;
|
151
|
-
* offset?: number;
|
152
|
-
* }} An object containing orderBy, limit, and offset values if present.
|
154
|
+
* @return {OrderLimitOffsetExtract} An object containing orderBy, limit, and offset values if present.
|
153
155
|
*/
|
154
156
|
private static extractOrderLimitOffset;
|
155
157
|
}
|
package/lib/query/decorators.cjs
CHANGED
@@ -45,4 +45,4 @@ function query(options = {}) {
|
|
45
45
|
};
|
46
46
|
};
|
47
47
|
}
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyeS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsc0JBcURDO0FBeERELGlFQUEwRDtBQUMxRCx5Q0FBc0M7QUFFdEMsU0FBZ0IsS0FBSyxDQUFDLFVBQXdCLEVBQUU7SUFDOUMsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUFpQixFQUNqQixVQUF5QyxFQUNwQyxFQUFFO1FBQ1AsMkNBQTJDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxVQUEyQyxDQUFDLEtBQUssR0FBRyxVQUNuRCxHQUFHLElBQVc7WUFFZCxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FDdEQsdUNBQWtCLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRWhELElBQUksSUFBSSxHQUFJLElBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFRLENBQUM7WUFDL0MsSUFBSSxLQUFLO2dCQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLGdEQUFnRDtZQUNoRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLCtCQUErQjtnQkFDL0IsbUNBQW1DO1lBQ3JDLENBQUM7WUFFRCxvQ0FBb0M7WUFDcEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHO2dCQUN4RCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixNQUFNLEVBQUUsSUFBSTtnQkFDWixHQUFHLE9BQU87YUFDSyxDQUFDO1lBRWxCLE1BQU0sTUFBTSxHQUFHO2dCQUNiLGlEQUFpRDtnQkFDakQsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUscUNBQXFDO2dCQUMzRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO2dCQUNuRCxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO2FBQ3ZELENBQUM7WUFFRixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUMzQixJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUM3QixNQUFNLElBQUksbUJBQVUsQ0FDbEIsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FDbkYsQ0FBQztvQkFDSixDQUFDO3lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUN6QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RDLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE1ldGhvZFF1ZXJ5QnVpbGRlciB9IGZyb20gXCIuL01ldGhvZFF1ZXJ5QnVpbGRlclwiO1xuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnkob3B0aW9uczogUXVlcnlPcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IG9iamVjdCxcbiAgICBwcm9wZXJ0eUtleT86IGFueSxcbiAgICBkZXNjcmlwdG9yPzogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55PlxuICApOiBhbnkgPT4ge1xuICAgIC8vIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gcHJvcGVydHlLZXkudG9TdHJpbmcoKTtcbiAgICAoZGVzY3JpcHRvciBhcyBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+KS52YWx1ZSA9IGZ1bmN0aW9uIChcbiAgICAgIC4uLmFyZ3M6IGFueVtdXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHNlbGVjdCwgd2hlcmUsIGdyb3VwQnksIG9yZGVyQnksIGxpbWl0LCBvZmZzZXQgfSA9XG4gICAgICAgIE1ldGhvZFF1ZXJ5QnVpbGRlci5idWlsZChtZXRob2ROYW1lLCAuLi5hcmdzKTtcblxuICAgICAgbGV0IHN0bXQgPSAodGhpcyBhcyBhbnkpLnNlbGVjdChzZWxlY3QpIGFzIGFueTtcbiAgICAgIGlmICh3aGVyZSkgc3RtdCA9IHN0bXQud2hlcmUod2hlcmUpO1xuICAgICAgLy8gaWYgKG9yZGVyQnkpIHN0bXQgPSBzdG10Lm9yZGVyQnkob3JkZXJCeVswXSk7XG4gICAgICBpZiAoZ3JvdXBCeSkge1xuICAgICAgICAvLyBncm91cCBieSBub3QgaW1wbGVtZW50ZWQgeWV0XG4gICAgICAgIC8qIHN0bXQgPSBzdG10Lmdyb3VwQnkoZ3JvdXBCeSk7ICovXG4gICAgICB9XG5cbiAgICAgIC8vIGFsbG93IGxpbWl0IGFuZCBvZmZzZXQgYnkgZGVmYXVsdFxuICAgICAgY29uc3QgeyBhbGxvd0xpbWl0LCBhbGxvd09mZnNldCwgYWxsb3dPcmRlckJ5LCB0aHJvd3MgfSA9IHtcbiAgICAgICAgYWxsb3dMaW1pdDogdHJ1ZSxcbiAgICAgICAgYWxsb3dPcmRlckJ5OiB0cnVlLFxuICAgICAgICBhbGxvd09mZnNldDogdHJ1ZSxcbiAgICAgICAgdGhyb3dzOiB0cnVlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfSBhcyBRdWVyeU9wdGlvbnM7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IFtcbiAgICAgICAgLy8ga2VlcCB0aGUgb3JkZXIgdG8gZW5zdXJlIHRoZSBleHBlY3RlZCBiZWhhdmlvclxuICAgICAgICB7IGtleTogXCJvcmRlckJ5XCIsIHZhbHVlOiAob3JkZXJCeSB8fCBbXSlbMF0sIGFsbG93ZWQ6IGFsbG93T3JkZXJCeSB9LCAvLyBvcmRlckJ5IG9ubHkgc3VwcG9ydHMgb25lIHNlbnRlbmNlXG4gICAgICAgIHsga2V5OiBcImxpbWl0XCIsIHZhbHVlOiBsaW1pdCwgYWxsb3dlZDogYWxsb3dMaW1pdCB9LFxuICAgICAgICB7IGtleTogXCJvZmZzZXRcIiwgdmFsdWU6IG9mZnNldCwgYWxsb3dlZDogYWxsb3dPZmZzZXQgfSxcbiAgICAgIF07XG5cbiAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgcGFyYW1zKSB7XG4gICAgICAgIGlmIChwYXJhbS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKCFwYXJhbS5hbGxvd2VkICYmIHRocm93cykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICAgICAgICAgIGAke3BhcmFtLmtleVswXS50b1VwcGVyQ2FzZSgpICsgcGFyYW0ua2V5LnNsaWNlKDEpfSBpcyBub3QgYWxsb3dlZCBmb3IgdGhpcyBxdWVyeWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXJhbS5hbGxvd2VkKSB7XG4gICAgICAgICAgICBzdG10ID0gc3RtdFtwYXJhbS5rZXldKHBhcmFtLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN0bXQuZXhlY3V0ZSgpO1xuICAgIH07XG4gIH07XG59XG4iXX0=
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { QueryOptions } from "./types";
|
2
|
-
export declare function query(options?: QueryOptions): (target: object, propertyKey
|
2
|
+
export declare function query(options?: QueryOptions): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
package/lib/query/utils.cjs
CHANGED
@@ -47,8 +47,10 @@ exports.OperatorsMap = {
|
|
47
47
|
LessThanEqual: (f, v) => Condition_1.Condition.attribute(f).lte(v),
|
48
48
|
GreaterThan: (f, v) => Condition_1.Condition.attribute(f).gt(v),
|
49
49
|
GreaterThanEqual: (f, v) => Condition_1.Condition.attribute(f).gte(v),
|
50
|
-
Between: (f, v1, v2) => Condition_1.Condition.attribute(f)
|
50
|
+
Between: (f, v1, v2) => Condition_1.Condition.attribute(f)
|
51
|
+
.gte(v1)
|
52
|
+
.and(Condition_1.Condition.attribute(f).lte(v2)),
|
51
53
|
In: (f, v) => Condition_1.Condition.attribute(f).in(v),
|
52
54
|
Matches: (f, v) => Condition_1.Condition.attribute(f).regexp(v),
|
53
55
|
};
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcnkvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQXdDO0FBR3hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBQ1UsUUFBQSxZQUFZLEdBQW1DO0lBQzFELE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLHFCQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBUyxDQUFDLFNBQVMsQ0FBQyxDQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLHFCQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLHFCQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUNyQixxQkFBUyxDQUFDLFNBQVMsQ0FBQyxDQUFRLENBQUM7U0FDMUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUNQLEdBQUcsQ0FBQyxxQkFBUyxDQUFDLFNBQVMsQ0FBQyxDQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBUyxDQUFDLFNBQVMsQ0FBQyxDQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0NBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi9Db25kaXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdG9yUGFyc2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE1hcCBvZiBzdXBwb3J0ZWQgb3BlcmF0b3JzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgcGFyc2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBPcGVyYXRvcnNNYXBgIGRlZmluZXMgYSBjb2xsZWN0aW9uIG9mIG9wZXJhdG9yIG5hbWVzIGFzIGtleXNcbiAqIChzdWNoIGFzIGBFcXVhbHNgLCBgTGVzc1RoYW5gLCBgQmV0d2VlbmAsIGV0Yy4pLCBlYWNoIG1hcHBlZCB0byBhXG4gKiBmdW5jdGlvbiB0aGF0IGNvbnN0cnVjdHMgYSBgQ29uZGl0aW9uYCBvYmplY3QgZm9yIHRoYXQgb3BlcmF0b3IuXG4gKiBUaGVzZSBmdW5jdGlvbnMgdHJhbnNsYXRlIHF1ZXJ5IGNsYXVzZXMgaW50byBjb25jcmV0ZSBjb25kaXRpb25cbiAqIGJ1aWxkZXJzLCBlbmFibGluZyBkeW5hbWljIHF1ZXJ5IGNvbnN0cnVjdGlvbiBmcm9tIG1ldGhvZCBuYW1lcy5cbiAqXG4gKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgZmllbGQgdmFsdWVzIHVzZWQgaW4gY29uZGl0aW9ucy5cbiAqXG4gKiBAcGFyYW0gZiB7c3RyaW5nfSAtIFRoZSBmaWVsZCBuYW1lIHRoZSBjb25kaXRpb24gYXBwbGllcyB0by5cbiAqIEBwYXJhbSB2MSB7YW55fSAtIFRoZSB2YWx1ZSB0byBjb21wYXJlIHRoZSBmaWVsZCBhZ2FpbnN0IG9yIHRoZSBsb3dlciBib3VuZCB2YWx1ZSBmb3IgcmFuZ2UtYmFzZWQgb3BlcmF0b3JzLlxuICogQHBhcmFtIHYyIHthbnl9IC0gVGhlIHVwcGVyIGJvdW5kIHZhbHVlIGZvciByYW5nZS1iYXNlZCBvcGVyYXRvcnMuXG4gKlxuICogQHJldHVybiB7Q29uZGl0aW9uPGFueT59IEEgY29uZGl0aW9uIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG9wZXJhdG9yIGFwcGxpZWQgdG8gdGhlIGZpZWxkLlxuICpcbiAqIEBmdW5jdGlvbiBPcGVyYXRvcnNNYXBcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudCBhcyBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgTWFwIGFzIE9wZXJhdG9yc01hcFxuICogICBwYXJ0aWNpcGFudCBQYXJzZXIgYXMgT3BlcmF0b3JQYXJzZXJcbiAqICAgcGFydGljaXBhbnQgQ29uZCBhcyBDb25kaXRpb25cbiAqXG4gKiAgIENsaWVudC0+Pk1hcDogUmVxdWVzdCBvcGVyYXRvciBwYXJzZXIgKFwiQmV0d2VlblwiLCBmaWVsZCwgdjEsIHYyKVxuICogICBNYXAtPj5QYXJzZXI6IENhbGwgY29ycmVzcG9uZGluZyBvcGVyYXRvciBmdW5jdGlvblxuICogICBQYXJzZXItPj5Db25kOiBDb25kaXRpb24uYXR0cmlidXRlKGZpZWxkKVxuICogICBDb25kLS0+PlBhcnNlcjogQ29uZGl0aW9uIGluc3RhbmNlXG4gKiAgIFBhcnNlci0+PkNvbmQ6IEFwcGx5IGd0ZSh2MSlcbiAqICAgUGFyc2VyLT4+Q29uZDogQXBwbHkgYW5kKGx0ZSh2MikpXG4gKiAgIFBhcnNlci0tPj5DbGllbnQ6IFJldHVybiBidWlsdCBDb25kaXRpb25cbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnF1ZXJ5XG4gKi9cbmV4cG9ydCBjb25zdCBPcGVyYXRvcnNNYXA6IFJlY29yZDxzdHJpbmcsIE9wZXJhdG9yUGFyc2VyPiA9IHtcbiAgRXF1YWxzOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkuZXEodiksXG4gIERpZmY6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5kaWYodiksXG4gIExlc3NUaGFuOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkubHQodiksXG4gIExlc3NUaGFuRXF1YWw6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5sdGUodiksXG4gIEdyZWF0ZXJUaGFuOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkuZ3QodiksXG4gIEdyZWF0ZXJUaGFuRXF1YWw6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5ndGUodiksXG4gIEJldHdlZW46IChmLCB2MSwgdjIpID0+XG4gICAgQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSlcbiAgICAgIC5ndGUodjEpXG4gICAgICAuYW5kKENvbmRpdGlvbi5hdHRyaWJ1dGUoZiBhcyBhbnkpLmx0ZSh2MikpLFxuICBJbjogKGYsIHYpID0+IENvbmRpdGlvbi5hdHRyaWJ1dGUoZiBhcyBhbnkpLmluKHYpLFxuICBNYXRjaGVzOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkucmVnZXhwKHYpLFxufTtcbiJdfQ==
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@decaf-ts/core",
|
3
|
-
"version": "0.5.
|
3
|
+
"version": "0.5.32",
|
4
4
|
"description": "Core persistence module for the decaf framework",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -32,14 +32,21 @@
|
|
32
32
|
"coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.ts",
|
33
33
|
"lint": "eslint .",
|
34
34
|
"lint-fix": "eslint --fix .",
|
35
|
-
"prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
35
|
+
"prepare-pr": "npm run repo:pr && npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
36
36
|
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
37
37
|
"release": "./bin/tag-release.sh",
|
38
38
|
"clean-publish": "npx clean-publish",
|
39
39
|
"drawings": "for FILE in workdocs/drawings/*.drawio; do echo \"converting $FILE to image...\" && docker run --rm -v $(pwd):/data rlespinasse/drawio-export --format png $FILE; done && cp -rf workdocs/drawings/export/* workdocs/resources/",
|
40
40
|
"uml": "cd workdocs/uml && for FILE in ./*.puml; do docker run --rm -v $(pwd):/work -w /work miy4/plantuml -DPLANTUML_LIMIT_SIZE=8192 -tpng $FILE; done && cd ../.. && cp -fr workdocs/uml/*.png workdocs/resources/",
|
41
41
|
"docs": "npx rimraf ./docs && mkdir docs && npx build-scripts --docs",
|
42
|
-
"publish-docs": "docker run -it --rm --user $(id -u):$(id -g) -v \"$(pwd)/workdocs/confluence:/content\" -e ATLASSIAN_API_TOKEN=$(cat .confluence-token) ghcr.io/markdown-confluence/publish:latest"
|
42
|
+
"publish-docs": "docker run -it --rm --user $(id -u):$(id -g) -v \"$(pwd)/workdocs/confluence:/content\" -e ATLASSIAN_API_TOKEN=$(cat .confluence-token) ghcr.io/markdown-confluence/publish:latest",
|
43
|
+
"repo:init": "codex exec \"$(cat ./.codex/prompts/repo-setup.md)\nbase_path is `./`, initialize the repository\"",
|
44
|
+
"repo:setup": "codex exec \"$(cat ./.codex/prompts/repo-setup.md)\nbase_path is ./\"",
|
45
|
+
"repo:doc": "codex exec \"$(cat ./.codex/prompts/doc.md) $(cat ./.codex/prompts/bulk-docs.md)\nbase_path is ./\"",
|
46
|
+
"repo:tests": "codex exec \"$(cat ./.codex/prompts/bulk-tests.md)\nbase_path is ./ and coverage is 95%\" -s workspace-write",
|
47
|
+
"repo:readme": "codex exec \"$(cat ./.codex/prompts/update-readme.md)\nbase_path is ./\"",
|
48
|
+
"repo:pr": "npm run repo:doc && npm run repo:tests && npm run repo:readme",
|
49
|
+
"sync-codex": "./bin/sync-codex.sh"
|
43
50
|
},
|
44
51
|
"repository": {
|
45
52
|
"type": "git",
|
@@ -71,8 +78,8 @@
|
|
71
78
|
"typescript",
|
72
79
|
"ts"
|
73
80
|
],
|
74
|
-
"author": "Tiago Venceslau",
|
75
|
-
"license": "
|
81
|
+
"author": "Tiago Venceslau and Contributors",
|
82
|
+
"license": "MIT",
|
76
83
|
"bugs": {
|
77
84
|
"url": "https://github.com/decaf-ts/core/issues"
|
78
85
|
},
|