@uql/core 0.4.95 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +4 -1
  2. package/dialect/abstractSqlDialect.js +4 -1
  3. package/dialect/index.d.ts +4 -4
  4. package/dialect/index.js +19 -6
  5. package/dialect/mysqlDialect.d.ts +2 -2
  6. package/dialect/mysqlDialect.js +5 -5
  7. package/dialect/postgresDialect.d.ts +1 -1
  8. package/dialect/postgresDialect.js +3 -3
  9. package/dialect/sqliteDialect.d.ts +1 -1
  10. package/dialect/sqliteDialect.js +3 -3
  11. package/entity/decorator/entity.js +3 -3
  12. package/entity/decorator/field.js +3 -3
  13. package/entity/decorator/id.js +3 -3
  14. package/entity/decorator/index.d.ts +5 -5
  15. package/entity/decorator/index.js +22 -9
  16. package/entity/decorator/relation.js +3 -3
  17. package/entity/index.d.ts +1 -1
  18. package/entity/index.js +16 -3
  19. package/index.d.ts +1 -1
  20. package/index.js +16 -3
  21. package/package.json +6 -5
  22. package/querier/abstractSqlQuerier.d.ts +1 -1
  23. package/querier/abstractSqlQuerier.js +6 -5
  24. package/querier/decorator/index.js +17 -4
  25. package/querier/decorator/transactional.js +3 -3
  26. package/querier/index.js +18 -5
  27. package/repository/genericRepository.js +3 -1
  28. package/repository/index.js +16 -3
  29. package/type/entity.d.ts +2 -2
  30. package/type/entity.js +1 -1
  31. package/type/index.d.ts +7 -7
  32. package/type/index.js +22 -9
  33. package/type/querier.d.ts +5 -5
  34. package/type/querier.js +1 -1
  35. package/type/querierPool.d.ts +1 -1
  36. package/type/querierPool.js +1 -1
  37. package/type/query.d.ts +2 -2
  38. package/type/query.js +3 -1
  39. package/type/repository.d.ts +3 -3
  40. package/type/repository.js +1 -1
  41. package/type/universalQuerier.d.ts +4 -4
  42. package/type/universalQuerier.js +1 -1
  43. package/util/index.d.ts +5 -5
  44. package/util/index.js +20 -7
  45. package/util/sql.util.js +5 -5
package/util/index.js CHANGED
@@ -1,9 +1,22 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./string.util"), exports);
5
- tslib_1.__exportStar(require("./object.util"), exports);
6
- tslib_1.__exportStar(require("./dialect.util"), exports);
7
- tslib_1.__exportStar(require("./sql.util"), exports);
8
- tslib_1.__exportStar(require("./raw"), exports);
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3REFBOEI7QUFDOUIsd0RBQThCO0FBQzlCLHlEQUErQjtBQUMvQixxREFBMkI7QUFDM0IsZ0RBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdHJpbmcudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZGlhbGVjdC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vc3FsLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXcnO1xuIl19
17
+ __exportStar(require("./string.util.js"), exports);
18
+ __exportStar(require("./object.util.js"), exports);
19
+ __exportStar(require("./dialect.util.js"), exports);
20
+ __exportStar(require("./sql.util.js"), exports);
21
+ __exportStar(require("./raw.js"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLG1EQUFpQztBQUNqQyxvREFBa0M7QUFDbEMsZ0RBQThCO0FBQzlCLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLnV0aWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QudXRpbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxlY3QudXRpbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NxbC51dGlsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmF3LmpzJztcbiJdfQ==
package/util/sql.util.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.unflatObjects = exports.flatObject = void 0;
4
- const object_util_1 = require("./object.util");
4
+ const object_util_js_1 = require("./object.util.js");
5
5
  function flatObject(obj, pre) {
6
- return (0, object_util_1.getKeys)(obj).reduce((acc, key) => flatObjectEntry(acc, key, obj[key], typeof obj[key] === 'object' ? '' : pre), {});
6
+ return (0, object_util_js_1.getKeys)(obj).reduce((acc, key) => flatObjectEntry(acc, key, obj[key], typeof obj[key] === 'object' ? '' : pre), {});
7
7
  }
8
8
  exports.flatObject = flatObject;
9
9
  function flatObjectEntry(map, key, val, pre) {
@@ -17,7 +17,7 @@ function unflatObjects(objects) {
17
17
  return objects;
18
18
  }
19
19
  const attrsPaths = obtainAttrsPaths(objects[0]);
20
- if (!(0, object_util_1.hasKeys)(attrsPaths)) {
20
+ if (!(0, object_util_js_1.hasKeys)(attrsPaths)) {
21
21
  return objects;
22
22
  }
23
23
  return objects.map((row) => {
@@ -45,11 +45,11 @@ function unflatObjects(objects) {
45
45
  }
46
46
  exports.unflatObjects = unflatObjects;
47
47
  function obtainAttrsPaths(row) {
48
- return (0, object_util_1.getKeys)(row).reduce((acc, col) => {
48
+ return (0, object_util_js_1.getKeys)(row).reduce((acc, col) => {
49
49
  if (col.includes('.')) {
50
50
  acc[col] = col.split('.');
51
51
  }
52
52
  return acc;
53
53
  }, {});
54
54
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zcWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBaUQ7QUFFakQsU0FBZ0IsVUFBVSxDQUFJLEdBQU0sRUFBRSxHQUFZO0lBQ2hELE9BQU8sSUFBQSxxQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBTyxDQUFDLENBQUM7QUFDbEksQ0FBQztBQUZELGdDQUVDO0FBRUQsU0FBUyxlQUFlLENBQUksR0FBTSxFQUFFLEdBQVcsRUFBRSxHQUFRLEVBQUUsR0FBWTtJQUNyRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDM0MsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDNUYsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLE9BQVk7SUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQzlDLE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLElBQUEscUJBQU8sRUFBQyxVQUFVLENBQUMsRUFBRTtRQUN4QixPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEVBQU8sQ0FBQztRQUVwQixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNyQixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3JCLFNBQVM7YUFDVjtZQUNELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxJQUFJLFFBQVEsRUFBRTtnQkFDWixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7d0JBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7cUJBQ2Y7b0JBQ0QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDUixNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQjtTQUNGO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFsQ0Qsc0NBa0NDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBSSxHQUFNO0lBQ2pDLE9BQU8sSUFBQSxxQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN0QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUErQixDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc0tleXMsIGdldEtleXMgfSBmcm9tICcuL29iamVjdC51dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRPYmplY3Q8RT4ob2JqOiBFLCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgcmV0dXJuIGdldEtleXMob2JqKS5yZWR1Y2UoKGFjYywga2V5KSA9PiBmbGF0T2JqZWN0RW50cnkoYWNjLCBrZXksIG9ialtrZXldLCB0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnID8gJycgOiBwcmUpLCB7fSBhcyBFKTtcbn1cblxuZnVuY3Rpb24gZmxhdE9iamVjdEVudHJ5PEU+KG1hcDogRSwga2V5OiBzdHJpbmcsIHZhbDogYW55LCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgY29uc3QgcHJlZml4ID0gcHJlID8gYCR7cHJlfS4ke2tleX1gIDoga2V5O1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ29iamVjdCdcbiAgICA/IE9iamVjdC5rZXlzKHZhbCkucmVkdWNlKChhY2MsIHByb3ApID0+IGZsYXRPYmplY3RFbnRyeShhY2MsIHByb3AsIHZhbFtwcm9wXSwgcHJlZml4KSwgbWFwKVxuICAgIDogeyAuLi5tYXAsIFtwcmVmaXhdOiB2YWwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZmxhdE9iamVjdHM8VD4ob2JqZWN0czogVFtdKTogVFtdIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG9iamVjdHMpIHx8ICFvYmplY3RzLmxlbmd0aCkge1xuICAgIHJldHVybiBvYmplY3RzO1xuICB9XG5cbiAgY29uc3QgYXR0cnNQYXRocyA9IG9idGFpbkF0dHJzUGF0aHMob2JqZWN0c1swXSk7XG5cbiAgaWYgKCFoYXNLZXlzKGF0dHJzUGF0aHMpKSB7XG4gICAgcmV0dXJuIG9iamVjdHM7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0cy5tYXAoKHJvdykgPT4ge1xuICAgIGNvbnN0IGR0byA9IHt9IGFzIFQ7XG5cbiAgICBmb3IgKGNvbnN0IGNvbCBpbiByb3cpIHtcbiAgICAgIGlmIChyb3dbY29sXSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dHJQYXRoID0gYXR0cnNQYXRoc1tjb2xdO1xuICAgICAgaWYgKGF0dHJQYXRoKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGF0dHJQYXRoLnNsaWNlKDAsIC0xKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhY2Nba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGFjY1trZXldID0ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2Nba2V5XTtcbiAgICAgICAgfSwgZHRvKTtcbiAgICAgICAgdGFyZ2V0W2F0dHJQYXRoW2F0dHJQYXRoLmxlbmd0aCAtIDFdXSA9IHJvd1tjb2xdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHRvW2NvbF0gPSByb3dbY29sXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZHRvO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb2J0YWluQXR0cnNQYXRoczxUPihyb3c6IFQpIHtcbiAgcmV0dXJuIGdldEtleXMocm93KS5yZWR1Y2UoKGFjYywgY29sKSA9PiB7XG4gICAgaWYgKGNvbC5pbmNsdWRlcygnLicpKSB7XG4gICAgICBhY2NbY29sXSA9IGNvbC5zcGxpdCgnLicpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyB7IFtrOiBzdHJpbmddOiBzdHJpbmdbXSB9KTtcbn1cbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zcWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBb0Q7QUFFcEQsU0FBZ0IsVUFBVSxDQUFJLEdBQU0sRUFBRSxHQUFZO0lBQ2hELE9BQU8sSUFBQSx3QkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBTyxDQUFDLENBQUM7QUFDbEksQ0FBQztBQUZELGdDQUVDO0FBRUQsU0FBUyxlQUFlLENBQUksR0FBTSxFQUFFLEdBQVcsRUFBRSxHQUFRLEVBQUUsR0FBWTtJQUNyRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDM0MsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDNUYsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLE9BQVk7SUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQzlDLE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLElBQUEsd0JBQU8sRUFBQyxVQUFVLENBQUMsRUFBRTtRQUN4QixPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEVBQU8sQ0FBQztRQUVwQixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNyQixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3JCLFNBQVM7YUFDVjtZQUNELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxJQUFJLFFBQVEsRUFBRTtnQkFDWixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7d0JBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7cUJBQ2Y7b0JBQ0QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDUixNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQjtTQUNGO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFsQ0Qsc0NBa0NDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBSSxHQUFNO0lBQ2pDLE9BQU8sSUFBQSx3QkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN0QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUErQixDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc0tleXMsIGdldEtleXMgfSBmcm9tICcuL29iamVjdC51dGlsLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRPYmplY3Q8RT4ob2JqOiBFLCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgcmV0dXJuIGdldEtleXMob2JqKS5yZWR1Y2UoKGFjYywga2V5KSA9PiBmbGF0T2JqZWN0RW50cnkoYWNjLCBrZXksIG9ialtrZXldLCB0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnID8gJycgOiBwcmUpLCB7fSBhcyBFKTtcbn1cblxuZnVuY3Rpb24gZmxhdE9iamVjdEVudHJ5PEU+KG1hcDogRSwga2V5OiBzdHJpbmcsIHZhbDogYW55LCBwcmU/OiBzdHJpbmcpOiBFIHtcbiAgY29uc3QgcHJlZml4ID0gcHJlID8gYCR7cHJlfS4ke2tleX1gIDoga2V5O1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ29iamVjdCdcbiAgICA/IE9iamVjdC5rZXlzKHZhbCkucmVkdWNlKChhY2MsIHByb3ApID0+IGZsYXRPYmplY3RFbnRyeShhY2MsIHByb3AsIHZhbFtwcm9wXSwgcHJlZml4KSwgbWFwKVxuICAgIDogeyAuLi5tYXAsIFtwcmVmaXhdOiB2YWwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZmxhdE9iamVjdHM8VD4ob2JqZWN0czogVFtdKTogVFtdIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG9iamVjdHMpIHx8ICFvYmplY3RzLmxlbmd0aCkge1xuICAgIHJldHVybiBvYmplY3RzO1xuICB9XG5cbiAgY29uc3QgYXR0cnNQYXRocyA9IG9idGFpbkF0dHJzUGF0aHMob2JqZWN0c1swXSk7XG5cbiAgaWYgKCFoYXNLZXlzKGF0dHJzUGF0aHMpKSB7XG4gICAgcmV0dXJuIG9iamVjdHM7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0cy5tYXAoKHJvdykgPT4ge1xuICAgIGNvbnN0IGR0byA9IHt9IGFzIFQ7XG5cbiAgICBmb3IgKGNvbnN0IGNvbCBpbiByb3cpIHtcbiAgICAgIGlmIChyb3dbY29sXSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dHJQYXRoID0gYXR0cnNQYXRoc1tjb2xdO1xuICAgICAgaWYgKGF0dHJQYXRoKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGF0dHJQYXRoLnNsaWNlKDAsIC0xKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhY2Nba2V5XSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGFjY1trZXldID0ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2Nba2V5XTtcbiAgICAgICAgfSwgZHRvKTtcbiAgICAgICAgdGFyZ2V0W2F0dHJQYXRoW2F0dHJQYXRoLmxlbmd0aCAtIDFdXSA9IHJvd1tjb2xdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHRvW2NvbF0gPSByb3dbY29sXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZHRvO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb2J0YWluQXR0cnNQYXRoczxUPihyb3c6IFQpIHtcbiAgcmV0dXJuIGdldEtleXMocm93KS5yZWR1Y2UoKGFjYywgY29sKSA9PiB7XG4gICAgaWYgKGNvbC5pbmNsdWRlcygnLicpKSB7XG4gICAgICBhY2NbY29sXSA9IGNvbC5zcGxpdCgnLicpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyB7IFtrOiBzdHJpbmddOiBzdHJpbmdbXSB9KTtcbn1cbiJdfQ==