@uql/core 0.4.80 → 0.4.83

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 (57) hide show
  1. package/README.md +11 -11
  2. package/dialect/abstractSqlDialect-spec.d.ts +49 -0
  3. package/dialect/abstractSqlDialect-spec.js +765 -0
  4. package/dialect/abstractSqlDialect.js +11 -17
  5. package/dialect/mysqlDialect.js +2 -2
  6. package/dialect/mysqlDialect.spec.d.ts +6 -0
  7. package/dialect/mysqlDialect.spec.js +33 -0
  8. package/dialect/postgresDialect.js +2 -2
  9. package/dialect/postgresDialect.spec.d.ts +1 -0
  10. package/dialect/postgresDialect.spec.js +139 -0
  11. package/dialect/sqliteDialect.spec.d.ts +1 -0
  12. package/dialect/sqliteDialect.spec.js +12 -0
  13. package/entity/decorator/definition.js +22 -24
  14. package/entity/decorator/definition.spec.d.ts +1 -0
  15. package/entity/decorator/definition.spec.js +725 -0
  16. package/entity/decorator/relation.spec.d.ts +1 -0
  17. package/entity/decorator/relation.spec.js +55 -0
  18. package/options.js +2 -2
  19. package/options.spec.d.ts +1 -0
  20. package/options.spec.js +50 -0
  21. package/package.json +3 -3
  22. package/querier/abstractQuerier-it.d.ts +41 -0
  23. package/querier/abstractQuerier-it.js +410 -0
  24. package/querier/abstractSqlQuerier-it.d.ts +9 -0
  25. package/querier/abstractSqlQuerier-it.js +19 -0
  26. package/querier/abstractSqlQuerier-spec.d.ts +53 -0
  27. package/querier/abstractSqlQuerier-spec.js +607 -0
  28. package/querier/abstractSqlQuerier.js +2 -3
  29. package/querier/decorator/injectQuerier.js +2 -3
  30. package/querier/decorator/injectQuerier.spec.d.ts +1 -0
  31. package/querier/decorator/injectQuerier.spec.js +108 -0
  32. package/querier/decorator/transactional.js +2 -2
  33. package/querier/decorator/transactional.spec.d.ts +1 -0
  34. package/querier/decorator/transactional.spec.js +241 -0
  35. package/repository/genericRepository.spec.d.ts +1 -0
  36. package/repository/genericRepository.spec.js +86 -0
  37. package/test/entityMock.d.ts +180 -0
  38. package/test/entityMock.js +451 -0
  39. package/test/index.d.ts +3 -0
  40. package/test/index.js +7 -0
  41. package/test/it.util.d.ts +4 -0
  42. package/test/it.util.js +60 -0
  43. package/test/spec.util.d.ts +13 -0
  44. package/test/spec.util.js +54 -0
  45. package/type/entity.d.ts +12 -17
  46. package/type/entity.js +1 -1
  47. package/type/utility.d.ts +3 -2
  48. package/type/utility.js +1 -1
  49. package/util/dialect.util.js +2 -3
  50. package/util/dialect.util.spec.d.ts +1 -0
  51. package/util/dialect.util.spec.js +23 -0
  52. package/util/object.util.spec.d.ts +1 -0
  53. package/util/object.util.spec.js +26 -0
  54. package/util/sql.util.spec.d.ts +1 -0
  55. package/util/sql.util.spec.js +164 -0
  56. package/util/string.util.spec.d.ts +1 -0
  57. package/util/string.util.spec.js +26 -0
@@ -28,8 +28,7 @@ class AbstractSqlQuerier extends abstractQuerier_1.AbstractQuerier {
28
28
  const meta = (0, entity_1.getMeta)(entity);
29
29
  const ids = payload.map((it, index) => {
30
30
  var _a;
31
- var _b;
32
- (_a = it[_b = meta.id]) !== null && _a !== void 0 ? _a : (it[_b] = firstId + index);
31
+ it[_a = meta.id] ?? (it[_a] = firstId + index);
33
32
  return it[meta.id];
34
33
  });
35
34
  await this.insertRelations(entity, payload);
@@ -85,4 +84,4 @@ class AbstractSqlQuerier extends abstractQuerier_1.AbstractQuerier {
85
84
  }
86
85
  }
87
86
  exports.AbstractSqlQuerier = AbstractSqlQuerier;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyQztBQUUzQyx5Q0FBc0Q7QUFHdEQsdURBQW9EO0FBRXBELE1BQXNCLGtCQUFtQixTQUFRLGlDQUFlO0lBRzlELFlBQXFCLE9BQTJCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFFaEQsQ0FBQztJQWNRLEtBQUssQ0FBQyxLQUFLLENBQUksTUFBZSxFQUFFLEVBQXFCO1FBQzVELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFRLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBSSxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVRLEtBQUssQ0FBQyxRQUFRLENBQUksTUFBZSxFQUFFLEVBQVk7UUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBSSxLQUFLLENBQUMsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFhLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVRLEtBQUssQ0FBQyxVQUFVLENB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UyxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPO1FBQ1Asd0JBQXdCO1FBQ3hCLHlFQUF5RTtRQUN6RSxJQUFJO1FBQ0osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFUSxLQUFLLENBQUMsaUJBQWlCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxLQUFLLENBQUMsbUJBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7Q0FDRjtBQW5HRCxnREFtR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnQHVxbC9jb3JlL2VudGl0eSc7XG5pbXBvcnQgeyBRdWVyeSwgVHlwZSwgUXVlcnlDcml0ZXJpYSwgUXVlcnlPcHRpb25zLCBRdWVyeVVwZGF0ZVJlc3VsdCB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IHVuZmxhdE9iamVjdHMsIGNsb25lIH0gZnJvbSAnQHVxbC9jb3JlL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnQHVxbC9jb3JlL2RpYWxlY3QnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFF1ZXJpZXIgfSBmcm9tICcuL2Fic3RyYWN0UXVlcmllcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNxbFF1ZXJpZXIgZXh0ZW5kcyBBYnN0cmFjdFF1ZXJpZXIge1xuICBwcml2YXRlIGhhc1BlbmRpbmdUcmFuc2FjdGlvbj86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGlhbGVjdDogQWJzdHJhY3RTcWxEaWFsZWN0KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZWFkIHF1ZXJ5LlxuICAgKiBAcGFyYW0gcXVlcnkgdGhlIHF1ZXJ5XG4gICAqL1xuICBhYnN0cmFjdCBhbGw8VD4ocXVlcnk6IHN0cmluZyk6IFByb21pc2U8VFtdPjtcblxuICAvKipcbiAgICogaW5zZXJ0L3VwZGF0ZS9kZWxldGUvZGRsIHF1ZXJ5LlxuICAgKiBAcGFyYW0gcXVlcnkgdGhlIHF1ZXJ5XG4gICAqL1xuICBhYnN0cmFjdCBydW4ocXVlcnk6IHN0cmluZyk6IFByb21pc2U8UXVlcnlVcGRhdGVSZXN1bHQ+O1xuXG4gIG92ZXJyaWRlIGFzeW5jIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcW0/OiBRdWVyeUNyaXRlcmlhPEU+KSB7XG4gICAgY29uc3QgcXVlcnkgPSBhd2FpdCB0aGlzLmRpYWxlY3QuY291bnQoZW50aXR5LCBxbSk7XG4gICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB0aGlzLmFsbDxFPihxdWVyeSk7XG4gICAgcmV0dXJuIE51bWJlcihyZXNbMF0uY291bnQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnk8RT4pIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgcW0pO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuYWxsPEU+KHF1ZXJ5KTtcbiAgICBjb25zdCBmb3VuZHMgPSB1bmZsYXRPYmplY3RzKHJlcyk7XG4gICAgYXdhaXQgdGhpcy5maW5kVG9NYW55UmVsYXRpb25zKGVudGl0eSwgZm91bmRzLCBxbS4kcHJvamVjdCk7XG4gICAgcmV0dXJuIGZvdW5kcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pIHtcbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuaW5zZXJ0KGVudGl0eSwgcGF5bG9hZCk7XG4gICAgY29uc3QgeyBmaXJzdElkIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBpZHMgPSBwYXlsb2FkLm1hcCgoaXQsIGluZGV4KSA9PiB7XG4gICAgICBpdFttZXRhLmlkIGFzIHN0cmluZ10gPz89IGZpcnN0SWQgKyBpbmRleDtcbiAgICAgIHJldHVybiBpdFttZXRhLmlkXTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmluc2VydFJlbGF0aW9ucyhlbnRpdHksIHBheWxvYWQpO1xuICAgIHJldHVybiBpZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QudXBkYXRlKGVudGl0eSwgcW0sIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgY2hhbmdlcyB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGF3YWl0IHRoaXMudXBkYXRlUmVsYXRpb25zKGVudGl0eSwgcW0sIHBheWxvYWQpO1xuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeUNyaXRlcmlhPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBmaW5kUXVlcnkgPSBhd2FpdCB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHsgLi4ucW0sICRwcm9qZWN0OiBbbWV0YS5pZF0gfSk7XG4gICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5hbGw8RT4oZmluZFF1ZXJ5KTtcbiAgICBpZiAoIWZvdW5kcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCBpZHMgPSBmb3VuZHMubWFwKChpdCkgPT4gaXRbbWV0YS5pZF0pO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LmRlbGV0ZShlbnRpdHksIHsgJGZpbHRlcjogaWRzIH0sIG9wdHMpO1xuICAgIGNvbnN0IHsgY2hhbmdlcyB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlUmVsYXRpb25zKGVudGl0eSwgaWRzLCBvcHRzKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBoYXNPcGVuVHJhbnNhY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYmVnaW5UcmFuc2FjdGlvbigvKmlzb2xhdGlvbkxldmVsPzogSXNvbGF0aW9uTGV2ZWwqLykge1xuICAgIGlmICh0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIC8vIFRPRE9cbiAgICAvLyBpZiAoaXNvbGF0aW9uTGV2ZWwpIHtcbiAgICAvLyAgIGF3YWl0IHRoaXMucnVuKGBTRVQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMICR7aXNvbGF0aW9uTGV2ZWx9YCk7XG4gICAgLy8gfVxuICAgIGF3YWl0IHRoaXMucnVuKHRoaXMuZGlhbGVjdC5iZWdpblRyYW5zYWN0aW9uQ29tbWFuZCk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB0cnVlO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY29tbWl0VHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucnVuKCdDT01NSVQnKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJvbGxiYWNrVHJhbnNhY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdub3QgYSBwZW5kaW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucnVuKCdST0xMQkFDSycpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyQztBQUUzQyx5Q0FBc0Q7QUFHdEQsdURBQW9EO0FBRXBELE1BQXNCLGtCQUFtQixTQUFRLGlDQUFlO0lBRzlELFlBQXFCLE9BQTJCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFFaEQsQ0FBQztJQWNRLEtBQUssQ0FBQyxLQUFLLENBQUksTUFBZSxFQUFFLEVBQXFCO1FBQzVELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFRLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBSSxLQUFLLENBQUMsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVRLEtBQUssQ0FBQyxRQUFRLENBQUksTUFBZSxFQUFFLEVBQVk7UUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBSSxLQUFLLENBQUMsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFhLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVRLEtBQUssQ0FBQyxVQUFVLENBQUksTUFBZSxFQUFFLE9BQVk7UUFDeEQsT0FBTyxHQUFHLElBQUEsWUFBSyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUEsZ0JBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFOztZQUNwQyxFQUFFLE1BQUMsSUFBSSxDQUFDLEVBQVksTUFBcEIsRUFBRSxPQUF3QixPQUFPLEdBQUcsS0FBSyxFQUFDO1lBQzFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRVEsS0FBSyxDQUFDLFVBQVUsQ0FBSSxNQUFlLEVBQUUsRUFBb0IsRUFBRSxPQUFVO1FBQzVFLE9BQU8sR0FBRyxJQUFBLFlBQUssRUFBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVRLEtBQUssQ0FBQyxVQUFVLENBQUksTUFBZSxFQUFFLEVBQW9CLEVBQUUsSUFBbUI7UUFDckYsTUFBTSxJQUFJLEdBQUcsSUFBQSxnQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUksU0FBUyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDbEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBYSxrQkFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxnQkFBZ0IsRUFBQyxtQ0FBbUM7UUFDakUsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU87UUFDUCx3QkFBd0I7UUFDeEIseUVBQXlFO1FBQ3pFLElBQUk7UUFDSixNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxpQkFBaUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVRLEtBQUssQ0FBQyxtQkFBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBbkdELGdEQW1HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldE1ldGEgfSBmcm9tICdAdXFsL2NvcmUvZW50aXR5JztcbmltcG9ydCB7IFF1ZXJ5LCBUeXBlLCBRdWVyeUNyaXRlcmlhLCBRdWVyeU9wdGlvbnMsIFF1ZXJ5VXBkYXRlUmVzdWx0IH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgdW5mbGF0T2JqZWN0cywgY2xvbmUgfSBmcm9tICdAdXFsL2NvcmUvdXRpbCc7XG5pbXBvcnQgeyBBYnN0cmFjdFNxbERpYWxlY3QgfSBmcm9tICdAdXFsL2NvcmUvZGlhbGVjdCc7XG5cbmltcG9ydCB7IEFic3RyYWN0UXVlcmllciB9IGZyb20gJy4vYWJzdHJhY3RRdWVyaWVyJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3FsUXVlcmllciBleHRlbmRzIEFic3RyYWN0UXVlcmllciB7XG4gIHByaXZhdGUgaGFzUGVuZGluZ1RyYW5zYWN0aW9uPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkaWFsZWN0OiBBYnN0cmFjdFNxbERpYWxlY3QpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlYWQgcXVlcnkuXG4gICAqIEBwYXJhbSBxdWVyeSB0aGUgcXVlcnlcbiAgICovXG4gIGFic3RyYWN0IGFsbDxUPihxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxUW10+O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQvdXBkYXRlL2RlbGV0ZS9kZGwgcXVlcnkuXG4gICAqIEBwYXJhbSBxdWVyeSB0aGUgcXVlcnlcbiAgICovXG4gIGFic3RyYWN0IHJ1bihxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxRdWVyeVVwZGF0ZVJlc3VsdD47XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxbT86IFF1ZXJ5Q3JpdGVyaWE8RT4pIHtcbiAgICBjb25zdCBxdWVyeSA9IGF3YWl0IHRoaXMuZGlhbGVjdC5jb3VudChlbnRpdHksIHFtKTtcbiAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHRoaXMuYWxsPEU+KHF1ZXJ5KTtcbiAgICByZXR1cm4gTnVtYmVyKHJlc1swXS5jb3VudCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHFtOiBRdWVyeTxFPikge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LmZpbmQoZW50aXR5LCBxbSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5hbGw8RT4ocXVlcnkpO1xuICAgIGNvbnN0IGZvdW5kcyA9IHVuZmxhdE9iamVjdHMocmVzKTtcbiAgICBhd2FpdCB0aGlzLmZpbmRUb01hbnlSZWxhdGlvbnMoZW50aXR5LCBmb3VuZHMsIHFtLiRwcm9qZWN0KTtcbiAgICByZXR1cm4gZm91bmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5pbnNlcnQoZW50aXR5LCBwYXlsb2FkKTtcbiAgICBjb25zdCB7IGZpcnN0SWQgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGlkcyA9IHBheWxvYWQubWFwKChpdCwgaW5kZXgpID0+IHtcbiAgICAgIGl0W21ldGEuaWQgYXMgc3RyaW5nXSA/Pz0gZmlyc3RJZCArIGluZGV4O1xuICAgICAgcmV0dXJuIGl0W21ldGEuaWRdO1xuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuaW5zZXJ0UmVsYXRpb25zKGVudGl0eSwgcGF5bG9hZCk7XG4gICAgcmV0dXJuIGlkcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxbTogUXVlcnlDcml0ZXJpYTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHBheWxvYWQgPSBjbG9uZShwYXlsb2FkKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC51cGRhdGUoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG4gICAgY29uc3QgeyBjaGFuZ2VzIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxbSwgcGF5bG9hZCk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcW06IFF1ZXJ5Q3JpdGVyaWE8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGZpbmRRdWVyeSA9IGF3YWl0IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgeyAuLi5xbSwgJHByb2plY3Q6IFttZXRhLmlkXSB9KTtcbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmFsbDxFPihmaW5kUXVlcnkpO1xuICAgIGlmICghZm91bmRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNvbnN0IGlkcyA9IGZvdW5kcy5tYXAoKGl0KSA9PiBpdFttZXRhLmlkXSk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuZGVsZXRlKGVudGl0eSwgeyAkZmlsdGVyOiBpZHMgfSwgb3B0cyk7XG4gICAgY29uc3QgeyBjaGFuZ2VzIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVSZWxhdGlvbnMoZW50aXR5LCBpZHMsIG9wdHMpO1xuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IGhhc09wZW5UcmFuc2FjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb247XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBiZWdpblRyYW5zYWN0aW9uKC8qaXNvbGF0aW9uTGV2ZWw/OiBJc29sYXRpb25MZXZlbCovKSB7XG4gICAgaWYgKHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgLy8gVE9ET1xuICAgIC8vIGlmIChpc29sYXRpb25MZXZlbCkge1xuICAgIC8vICAgYXdhaXQgdGhpcy5ydW4oYFNFVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgJHtpc29sYXRpb25MZXZlbH1gKTtcbiAgICAvLyB9XG4gICAgYXdhaXQgdGhpcy5ydW4odGhpcy5kaWFsZWN0LmJlZ2luVHJhbnNhY3Rpb25Db21tYW5kKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHRydWU7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb21taXRUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ydW4oJ0NPTU1JVCcpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcm9sbGJhY2tUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ydW4oJ1JPTExCQUNLJyk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -21,10 +21,9 @@ function InjectQuerier() {
21
21
  }
22
22
  exports.InjectQuerier = InjectQuerier;
23
23
  function getInjectedQuerierIndex(service, key) {
24
- var _a;
25
24
  let proto = service.prototype;
26
25
  while (proto.constructor !== Object) {
27
- const meta = (_a = proto[metadataKey]) === null || _a === void 0 ? void 0 : _a.get(proto.constructor);
26
+ const meta = proto[metadataKey]?.get(proto.constructor);
28
27
  if (meta && key in meta) {
29
28
  return meta[key];
30
29
  }
@@ -37,4 +36,4 @@ function getInjectedQuerierIndex(service, key) {
37
36
  }
38
37
  }
39
38
  exports.getInjectedQuerierIndex = getInjectedQuerierIndex;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9pbmplY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxTQUFnQixhQUFhO0lBQzNCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQ25ELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFFdEMsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixNQUFNLElBQUksU0FBUyxDQUFDLDhDQUE4QyxXQUFXLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDaEc7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFyQkQsc0NBcUJDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUksT0FBZ0IsRUFBRSxHQUFXOztJQUN0RSxJQUFJLEtBQUssR0FBd0IsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUVuRCxPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1FBQ25DLE1BQU0sSUFBSSxHQUFHLE1BQUEsS0FBSyxDQUFDLFdBQVcsQ0FBQywwQ0FBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhELElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEI7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFhLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU87U0FDUjtRQUVELEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0FBQ0gsQ0FBQztBQW5CRCwwREFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXksIFR5cGUgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5cbmNvbnN0IG1ldGFkYXRhS2V5ID0gU3ltYm9sKCdJbmplY3RRdWVyaWVyJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBJbmplY3RRdWVyaWVyKCkge1xuICByZXR1cm4gKHByb3RvOiBvYmplY3QsIGtleTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgeyBjb25zdHJ1Y3RvciB9ID0gcHJvdG87XG5cbiAgICBpZiAoIXByb3RvW21ldGFkYXRhS2V5XSkge1xuICAgICAgcHJvdG9bbWV0YWRhdGFLZXldID0gbmV3IFdlYWtNYXAoKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3RvW21ldGFkYXRhS2V5XS5oYXMoY29uc3RydWN0b3IpKSB7XG4gICAgICBwcm90b1ttZXRhZGF0YUtleV0uc2V0KGNvbnN0cnVjdG9yLCB7fSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YSA9IHByb3RvW21ldGFkYXRhS2V5XS5nZXQoY29uc3RydWN0b3IpO1xuICAgIGNvbnN0IGlzQWxyZWFkeUluamVjdGVkID0ga2V5IGluIG1ldGE7XG5cbiAgICBpZiAoaXNBbHJlYWR5SW5qZWN0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEBJbmplY3RRdWVyaWVyKCkgY2FuIG9ubHkgYXBwZWFycyBvbmNlIGluICcke2NvbnN0cnVjdG9yLm5hbWV9LiR7a2V5fSd9YCk7XG4gICAgfVxuXG4gICAgbWV0YVtrZXldID0gaW5kZXg7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleDxTPihzZXJ2aWNlOiBUeXBlPFM+LCBrZXk6IEtleTxTPikge1xuICBsZXQgcHJvdG86IEZ1bmN0aW9uQ29uc3RydWN0b3IgPSBzZXJ2aWNlLnByb3RvdHlwZTtcblxuICB3aGlsZSAocHJvdG8uY29uc3RydWN0b3IgIT09IE9iamVjdCkge1xuICAgIGNvbnN0IG1ldGEgPSBwcm90b1ttZXRhZGF0YUtleV0/LmdldChwcm90by5jb25zdHJ1Y3Rvcik7XG5cbiAgICBpZiAobWV0YSAmJiBrZXkgaW4gbWV0YSkge1xuICAgICAgcmV0dXJuIG1ldGFba2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvdG8pIGFzIEtleTxTPltdO1xuICAgIGNvbnN0IGlzT3duS2V5ID0ga2V5cy5pbmNsdWRlcyhrZXkpO1xuXG4gICAgaWYgKGlzT3duS2V5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9pbmplY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxTQUFnQixhQUFhO0lBQzNCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQ25ELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFFdEMsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixNQUFNLElBQUksU0FBUyxDQUFDLDhDQUE4QyxXQUFXLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDaEc7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFyQkQsc0NBcUJDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUksT0FBZ0IsRUFBRSxHQUFXO0lBQ3RFLElBQUksS0FBSyxHQUF3QixPQUFPLENBQUMsU0FBUyxDQUFDO0lBRW5ELE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEQsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQWEsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTztTQUNSO1FBRUQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7QUFDSCxDQUFDO0FBbkJELDBEQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleSwgVHlwZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcblxuY29uc3QgbWV0YWRhdGFLZXkgPSBTeW1ib2woJ0luamVjdFF1ZXJpZXInKTtcblxuZXhwb3J0IGZ1bmN0aW9uIEluamVjdFF1ZXJpZXIoKSB7XG4gIHJldHVybiAocHJvdG86IG9iamVjdCwga2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB7IGNvbnN0cnVjdG9yIH0gPSBwcm90bztcblxuICAgIGlmICghcHJvdG9bbWV0YWRhdGFLZXldKSB7XG4gICAgICBwcm90b1ttZXRhZGF0YUtleV0gPSBuZXcgV2Vha01hcCgpO1xuICAgIH1cblxuICAgIGlmICghcHJvdG9bbWV0YWRhdGFLZXldLmhhcyhjb25zdHJ1Y3RvcikpIHtcbiAgICAgIHByb3RvW21ldGFkYXRhS2V5XS5zZXQoY29uc3RydWN0b3IsIHt9KTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhID0gcHJvdG9bbWV0YWRhdGFLZXldLmdldChjb25zdHJ1Y3Rvcik7XG4gICAgY29uc3QgaXNBbHJlYWR5SW5qZWN0ZWQgPSBrZXkgaW4gbWV0YTtcblxuICAgIGlmIChpc0FscmVhZHlJbmplY3RlZCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgQEluamVjdFF1ZXJpZXIoKSBjYW4gb25seSBhcHBlYXJzIG9uY2UgaW4gJyR7Y29uc3RydWN0b3IubmFtZX0uJHtrZXl9J31gKTtcbiAgICB9XG5cbiAgICBtZXRhW2tleV0gPSBpbmRleDtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEluamVjdGVkUXVlcmllckluZGV4PFM+KHNlcnZpY2U6IFR5cGU8Uz4sIGtleTogS2V5PFM+KSB7XG4gIGxldCBwcm90bzogRnVuY3Rpb25Db25zdHJ1Y3RvciA9IHNlcnZpY2UucHJvdG90eXBlO1xuXG4gIHdoaWxlIChwcm90by5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KSB7XG4gICAgY29uc3QgbWV0YSA9IHByb3RvW21ldGFkYXRhS2V5XT8uZ2V0KHByb3RvLmNvbnN0cnVjdG9yKTtcblxuICAgIGlmIChtZXRhICYmIGtleSBpbiBtZXRhKSB7XG4gICAgICByZXR1cm4gbWV0YVtrZXldO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwcm90bykgYXMgS2V5PFM+W107XG4gICAgY29uc3QgaXNPd25LZXkgPSBrZXlzLmluY2x1ZGVzKGtleSk7XG5cbiAgICBpZiAoaXNPd25LZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const injectQuerier_1 = require("./injectQuerier");
5
+ describe('injectQuerier', () => {
6
+ it('no inject', () => {
7
+ class ServiceA {
8
+ save() { }
9
+ hello(param1, someQuerier) { }
10
+ }
11
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceA, 'save')).toBe(undefined);
12
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceA, 'hello')).toBe(undefined);
13
+ });
14
+ it('one', () => {
15
+ class ServiceA {
16
+ save(someQuerier) { }
17
+ update(param1, someQuerier) { }
18
+ }
19
+ tslib_1.__decorate([
20
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
21
+ tslib_1.__metadata("design:type", Function),
22
+ tslib_1.__metadata("design:paramtypes", [Object]),
23
+ tslib_1.__metadata("design:returntype", void 0)
24
+ ], ServiceA.prototype, "save", null);
25
+ tslib_1.__decorate([
26
+ tslib_1.__param(1, (0, injectQuerier_1.InjectQuerier)()),
27
+ tslib_1.__metadata("design:type", Function),
28
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
29
+ tslib_1.__metadata("design:returntype", void 0)
30
+ ], ServiceA.prototype, "update", null);
31
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceA, 'save')).toBe(0);
32
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceA, 'update')).toBe(1);
33
+ });
34
+ it('inheritance', () => {
35
+ class ServiceA {
36
+ save(someQuerier) { }
37
+ }
38
+ tslib_1.__decorate([
39
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
40
+ tslib_1.__metadata("design:type", Function),
41
+ tslib_1.__metadata("design:paramtypes", [Object]),
42
+ tslib_1.__metadata("design:returntype", void 0)
43
+ ], ServiceA.prototype, "save", null);
44
+ class ServiceB extends ServiceA {
45
+ }
46
+ class ServiceC extends ServiceB {
47
+ hello(someQuerier) { }
48
+ }
49
+ tslib_1.__decorate([
50
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
51
+ tslib_1.__metadata("design:type", Function),
52
+ tslib_1.__metadata("design:paramtypes", [Object]),
53
+ tslib_1.__metadata("design:returntype", void 0)
54
+ ], ServiceC.prototype, "hello", null);
55
+ class ServiceD extends ServiceC {
56
+ }
57
+ class ServiceE extends ServiceB {
58
+ }
59
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceA, 'save')).toBe(0);
60
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceB, 'save')).toBe(0);
61
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceC, 'save')).toBe(0);
62
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceC, 'hello')).toBe(0);
63
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceD, 'save')).toBe(0);
64
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceC, 'hello')).toBe(0);
65
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceE, 'save')).toBe(0);
66
+ });
67
+ it('inheritance - overridden', () => {
68
+ class ServiceA {
69
+ save(someQuerier) { }
70
+ }
71
+ tslib_1.__decorate([
72
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
73
+ tslib_1.__metadata("design:type", Function),
74
+ tslib_1.__metadata("design:paramtypes", [Object]),
75
+ tslib_1.__metadata("design:returntype", void 0)
76
+ ], ServiceA.prototype, "save", null);
77
+ class ServiceB extends ServiceA {
78
+ save(someQuerier) { }
79
+ }
80
+ class ServiceC extends ServiceA {
81
+ save(someQuerier) { }
82
+ }
83
+ tslib_1.__decorate([
84
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
85
+ tslib_1.__metadata("design:type", Function),
86
+ tslib_1.__metadata("design:paramtypes", [Object]),
87
+ tslib_1.__metadata("design:returntype", void 0)
88
+ ], ServiceC.prototype, "save", null);
89
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceA, 'save')).toBe(0);
90
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceB, 'save')).toBe(undefined);
91
+ expect((0, injectQuerier_1.getInjectedQuerierIndex)(ServiceC, 'save')).toBe(0);
92
+ });
93
+ it('prevent duplicated injection', () => {
94
+ expect(() => {
95
+ class ServiceA {
96
+ save(someQuerier, anotherQuerier) { }
97
+ }
98
+ tslib_1.__decorate([
99
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
100
+ tslib_1.__param(1, (0, injectQuerier_1.InjectQuerier)()),
101
+ tslib_1.__metadata("design:type", Function),
102
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
103
+ tslib_1.__metadata("design:returntype", void 0)
104
+ ], ServiceA.prototype, "save", null);
105
+ }).toThrow("@InjectQuerier() can only appears once in 'ServiceA.save'");
106
+ });
107
+ });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJpZXIvZGVjb3JhdG9yL2luamVjdFF1ZXJpZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBeUU7QUFFekUsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDbkIsTUFBTSxRQUFRO1lBQ1osSUFBSSxLQUFJLENBQUM7WUFFVCxLQUFLLENBQUMsTUFBYyxFQUFFLFdBQXFCLElBQUcsQ0FBQztTQUNoRDtRQUVELE1BQU0sQ0FBQyxJQUFBLHVDQUF1QixFQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRSxNQUFNLENBQUMsSUFBQSx1Q0FBdUIsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUNiLE1BQU0sUUFBUTtZQUNaLElBQUksQ0FBa0IsV0FBcUIsSUFBRyxDQUFDO1lBRS9DLE1BQU0sQ0FBQyxNQUFjLEVBQW1CLFdBQXFCLElBQUcsQ0FBQztTQUNsRTtRQUhDO1lBQU0sbUJBQUEsSUFBQSw2QkFBYSxHQUFFLENBQUE7Ozs7NENBQTBCO1FBRS9DO1lBQXdCLG1CQUFBLElBQUEsNkJBQWEsR0FBRSxDQUFBOzs7OzhDQUEwQjtRQUduRSxNQUFNLENBQUMsSUFBQSx1Q0FBdUIsRUFBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLElBQUEsdUNBQXVCLEVBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxD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LDZCQUFhLEdBQUUsQ0FBQTs7OztnREFBNkI7UUFFOUYsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJpZXIgfSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5pbXBvcnQgeyBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCwgSW5qZWN0UXVlcmllciB9IGZyb20gJy4vaW5qZWN0UXVlcmllcic7XG5cbmRlc2NyaWJlKCdpbmplY3RRdWVyaWVyJywgKCkgPT4ge1xuICBpdCgnbm8gaW5qZWN0JywgKCkgPT4ge1xuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIHNhdmUoKSB7fVxuXG4gICAgICBoZWxsbyhwYXJhbTE6IHN0cmluZywgc29tZVF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGV4cGVjdChnZXRJbmplY3RlZFF1ZXJpZXJJbmRleChTZXJ2aWNlQSwgJ3NhdmUnKSkudG9CZSh1bmRlZmluZWQpO1xuICAgIGV4cGVjdChnZXRJbmplY3RlZFF1ZXJpZXJJbmRleChTZXJ2aWNlQSwgJ2hlbGxvJykpLnRvQmUodW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoJ29uZScsICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBzYXZlKEBJbmplY3RRdWVyaWVyKCkgc29tZVF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuXG4gICAgICB1cGRhdGUocGFyYW0xOiBzdHJpbmcsIEBJbmplY3RRdWVyaWVyKCkgc29tZVF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGV4cGVjdChnZXRJbmplY3RlZFF1ZXJpZXJJbmRleChTZXJ2aWNlQSwgJ3NhdmUnKSkudG9CZSgwKTtcbiAgICBleHBlY3QoZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXgoU2VydmljZUEsICd1cGRhdGUnKSkudG9CZSgxKTtcbiAgfSk7XG5cbiAgaXQoJ2luaGVyaXRhbmNlJywgKCkgPT4ge1xuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIHNhdmUoQEluamVjdFF1ZXJpZXIoKSBzb21lUXVlcmllcj86IFF1ZXJpZXIpIHt9XG4gICAgfVxuICAgIGNsYXNzIFNlcnZpY2VCIGV4dGVuZHMgU2VydmljZUEge31cbiAgICBjbGFzcyBTZXJ2aWNlQyBleHRlbmRzIFNlcnZpY2VCIHtcbiAgICAgIGhlbGxvKEBJbmplY3RRdWVyaWVyKCkgc29tZVF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGNsYXNzIFNlcnZpY2VEIGV4dGVuZHMgU2VydmljZUMge31cblxuICAgIGNsYXNzIFNlcnZpY2VFIGV4dGVuZHMgU2VydmljZUIge31cblxuICAgIGV4cGVjdChnZXRJbmplY3RlZFF1ZXJpZXJJbmRleChTZXJ2aWNlQSwgJ3NhdmUnKSkudG9CZSgwKTtcbiAgICBleHBlY3QoZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXgoU2VydmljZUIsICdzYXZlJykpLnRvQmUoMCk7XG4gICAgZXhwZWN0KGdldEluamVjdGVkUXVlcmllckluZGV4KFNlcnZpY2VDLCAnc2F2ZScpKS50b0JlKDApO1xuICAgIGV4cGVjdChnZXRJbmplY3RlZFF1ZXJpZXJJbmRleChTZXJ2aWNlQywgJ2hlbGxvJykpLnRvQmUoMCk7XG4gICAgZXhwZWN0KGdldEluamVjdGVkUXVlcmllckluZGV4KFNlcnZpY2VELCAnc2F2ZScpKS50b0JlKDApO1xuICAgIGV4cGVjdChnZXRJbmplY3RlZFF1ZXJpZXJJbmRleChTZXJ2aWNlQywgJ2hlbGxvJykpLnRvQmUoMCk7XG4gICAgZXhwZWN0KGdldEluamVjdGVkUXVlcmllckluZGV4KFNlcnZpY2VFLCAnc2F2ZScpKS50b0JlKDApO1xuICB9KTtcblxuICBpdCgnaW5oZXJpdGFuY2UgLSBvdmVycmlkZGVuJywgKCkgPT4ge1xuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIHNhdmUoQEluamVjdFF1ZXJpZXIoKSBzb21lUXVlcmllcj86IFF1ZXJpZXIpIHt9XG4gICAgfVxuICAgIGNsYXNzIFNlcnZpY2VCIGV4dGVuZHMgU2VydmljZUEge1xuICAgICAgb3ZlcnJpZGUgc2F2ZShzb21lUXVlcmllcj86IFF1ZXJpZXIpIHt9XG4gICAgfVxuXG4gICAgY2xhc3MgU2VydmljZUMgZXh0ZW5kcyBTZXJ2aWNlQSB7XG4gICAgICBvdmVycmlkZSBzYXZlKEBJbmplY3RRdWVyaWVyKCkgc29tZVF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGV4cGVjdChnZXRJbmplY3RlZFF1ZXJpZXJJbmRleChTZXJ2aWNlQSwgJ3NhdmUnKSkudG9CZSgwKTtcbiAgICBleHBlY3QoZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXgoU2VydmljZUIsICdzYXZlJykpLnRvQmUodW5kZWZpbmVkKTtcbiAgICBleHBlY3QoZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXgoU2VydmljZUMsICdzYXZlJykpLnRvQmUoMCk7XG4gIH0pO1xuXG4gIGl0KCdwcmV2ZW50IGR1cGxpY2F0ZWQgaW5qZWN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICAgIHNhdmUoQEluamVjdFF1ZXJpZXIoKSBzb21lUXVlcmllcj86IFF1ZXJpZXIsIEBJbmplY3RRdWVyaWVyKCkgYW5vdGhlclF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgICAgfVxuICAgIH0pLnRvVGhyb3coXCJASW5qZWN0UXVlcmllcigpIGNhbiBvbmx5IGFwcGVhcnMgb25jZSBpbiAnU2VydmljZUEuc2F2ZSdcIik7XG4gIH0pO1xufSk7XG4iXX0=
@@ -20,7 +20,7 @@ function Transactional({ propagation = 'required', querierPool, } = {}) {
20
20
  }
21
21
  else {
22
22
  isOwnTransaction = true;
23
- const pool = querierPool !== null && querierPool !== void 0 ? querierPool : (0, options_1.getQuerierPool)();
23
+ const pool = querierPool ?? (0, options_1.getQuerierPool)();
24
24
  querier = await pool.getQuerier();
25
25
  params[injectedQuerierIndex] = querier;
26
26
  }
@@ -49,4 +49,4 @@ function Transactional({ propagation = 'required', querierPool, } = {}) {
49
49
  };
50
50
  }
51
51
  exports.Transactional = Transactional;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUFtRDtBQUVuRCxtREFBMEQ7QUFFMUQsU0FBZ0IsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLHVDQUF1QixFQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRSxJQUFJLG9CQUFvQixLQUFLLFNBQVMsRUFBRTtZQUN0QyxNQUFNLFNBQVMsQ0FBQywwQ0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztTQUM5RjtRQUVELGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxVQUFVLElBQUksQ0FBZSxHQUFHLElBQVc7WUFDckUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksZ0JBQXlCLENBQUM7WUFDOUIsSUFBSSxPQUFnQixDQUFDO1lBRXJCLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxHQUFHLFdBQVcsYUFBWCxXQUFXLGNBQVgsV0FBVyxHQUFJLElBQUEsd0JBQWMsR0FBRSxDQUFDO2dCQUM3QyxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQzthQUN4QztZQUVELElBQUk7Z0JBQ0YsSUFBSSxXQUFXLEtBQUssVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFO29CQUM3RCxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUNsQztnQkFDRCxNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDbEQsTUFBTSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO29CQUNsRCxNQUFNLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2lCQUNyQztnQkFDRCxNQUFNLEdBQUcsQ0FBQzthQUNYO29CQUFTO2dCQUNSLElBQUksZ0JBQWdCLEVBQUU7b0JBQ3BCLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUN6QjthQUNGO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQW5ERCxzQ0FtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRRdWVyaWVyUG9vbCB9IGZyb20gJ0B1cWwvY29yZS9vcHRpb25zJztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBUeXBlIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXggfSBmcm9tICcuL2luamVjdFF1ZXJpZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gVHJhbnNhY3Rpb25hbCh7XG4gIHByb3BhZ2F0aW9uID0gJ3JlcXVpcmVkJyxcbiAgcXVlcmllclBvb2wsXG59OiB7XG4gIHJlYWRvbmx5IHByb3BhZ2F0aW9uPzogJ3N1cHBvcnRlZCcgfCAncmVxdWlyZWQnO1xuICByZWFkb25seSBxdWVyaWVyUG9vbD86IFF1ZXJpZXJQb29sO1xufSA9IHt9KSB7XG4gIHJldHVybiAodGFyZ2V0OiBvYmplY3QsIGtleTogc3RyaW5nLCBwcm9wRGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGhlQ2xhc3MgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxhbnk+O1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gcHJvcERlc2NyaXB0b3IudmFsdWU7XG4gICAgY29uc3QgaW5qZWN0ZWRRdWVyaWVySW5kZXggPSBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCh0aGVDbGFzcywga2V5KTtcblxuICAgIGlmIChpbmplY3RlZFF1ZXJpZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYG1pc3NpbmcgZGVjb3JhdG9yIEBJbmplY3RRdWVyaWVyKCkgaW4gJyR7dGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWV9LiR7a2V5fSdgKTtcbiAgICB9XG5cbiAgICBwcm9wRGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIGZ1bmModGhpczogb2JqZWN0LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgY29uc3QgcGFyYW1zID0gWy4uLmFyZ3NdO1xuICAgICAgbGV0IGlzT3duVHJhbnNhY3Rpb246IGJvb2xlYW47XG4gICAgICBsZXQgcXVlcmllcjogUXVlcmllcjtcblxuICAgICAgaWYgKHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF0pIHtcbiAgICAgICAgcXVlcmllciA9IHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc093blRyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcG9vbCA9IHF1ZXJpZXJQb29sID8/IGdldFF1ZXJpZXJQb29sKCk7XG4gICAgICAgIHF1ZXJpZXIgPSBhd2FpdCBwb29sLmdldFF1ZXJpZXIoKTtcbiAgICAgICAgcGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XSA9IHF1ZXJpZXI7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChwcm9wYWdhdGlvbiA9PT0gJ3JlcXVpcmVkJyAmJiAhcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwID0gYXdhaXQgb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgcGFyYW1zKTtcbiAgICAgICAgaWYgKGlzT3duVHJhbnNhY3Rpb24gJiYgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3A7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzT3duVHJhbnNhY3Rpb24gJiYgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUFtRDtBQUVuRCxtREFBMEQ7QUFFMUQsU0FBZ0IsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLHVDQUF1QixFQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRSxJQUFJLG9CQUFvQixLQUFLLFNBQVMsRUFBRTtZQUN0QyxNQUFNLFNBQVMsQ0FBQywwQ0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztTQUM5RjtRQUVELGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxVQUFVLElBQUksQ0FBZSxHQUFHLElBQVc7WUFDckUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksZ0JBQXlCLENBQUM7WUFDOUIsSUFBSSxPQUFnQixDQUFDO1lBRXJCLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxHQUFHLFdBQVcsSUFBSSxJQUFBLHdCQUFjLEdBQUUsQ0FBQztnQkFDN0MsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUM7YUFDeEM7WUFFRCxJQUFJO2dCQUNGLElBQUksV0FBVyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDN0QsTUFBTSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztpQkFDbEM7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQ2xELE1BQU0sT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7aUJBQ25DO2dCQUNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixJQUFJLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtvQkFDbEQsTUFBTSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztpQkFDckM7Z0JBQ0QsTUFBTSxHQUFHLENBQUM7YUFDWDtvQkFBUztnQkFDUixJQUFJLGdCQUFnQixFQUFFO29CQUNwQixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDekI7YUFDRjtRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFuREQsc0NBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0UXVlcmllclBvb2wgfSBmcm9tICdAdXFsL2NvcmUvb3B0aW9ucyc7XG5pbXBvcnQgeyBRdWVyaWVyLCBRdWVyaWVyUG9vbCwgVHlwZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IGdldEluamVjdGVkUXVlcmllckluZGV4IH0gZnJvbSAnLi9pbmplY3RRdWVyaWVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIFRyYW5zYWN0aW9uYWwoe1xuICBwcm9wYWdhdGlvbiA9ICdyZXF1aXJlZCcsXG4gIHF1ZXJpZXJQb29sLFxufToge1xuICByZWFkb25seSBwcm9wYWdhdGlvbj86ICdzdXBwb3J0ZWQnIHwgJ3JlcXVpcmVkJztcbiAgcmVhZG9ubHkgcXVlcmllclBvb2w/OiBRdWVyaWVyUG9vbDtcbn0gPSB7fSkge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZywgcHJvcERlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRoZUNsYXNzID0gdGFyZ2V0LmNvbnN0cnVjdG9yIGFzIFR5cGU8YW55PjtcbiAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IHByb3BEZXNjcmlwdG9yLnZhbHVlO1xuICAgIGNvbnN0IGluamVjdGVkUXVlcmllckluZGV4ID0gZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXgodGhlQ2xhc3MsIGtleSk7XG5cbiAgICBpZiAoaW5qZWN0ZWRRdWVyaWVySW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGBtaXNzaW5nIGRlY29yYXRvciBASW5qZWN0UXVlcmllcigpIGluICcke3RhcmdldC5jb25zdHJ1Y3Rvci5uYW1lfS4ke2tleX0nYCk7XG4gICAgfVxuXG4gICAgcHJvcERlc2NyaXB0b3IudmFsdWUgPSBhc3luYyBmdW5jdGlvbiBmdW5jKHRoaXM6IG9iamVjdCwgLi4uYXJnczogYW55W10pIHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IFsuLi5hcmdzXTtcbiAgICAgIGxldCBpc093blRyYW5zYWN0aW9uOiBib29sZWFuO1xuICAgICAgbGV0IHF1ZXJpZXI6IFF1ZXJpZXI7XG5cbiAgICAgIGlmIChwYXJhbXNbaW5qZWN0ZWRRdWVyaWVySW5kZXhdKSB7XG4gICAgICAgIHF1ZXJpZXIgPSBwYXJhbXNbaW5qZWN0ZWRRdWVyaWVySW5kZXhdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXNPd25UcmFuc2FjdGlvbiA9IHRydWU7XG4gICAgICAgIGNvbnN0IHBvb2wgPSBxdWVyaWVyUG9vbCA/PyBnZXRRdWVyaWVyUG9vbCgpO1xuICAgICAgICBxdWVyaWVyID0gYXdhaXQgcG9vbC5nZXRRdWVyaWVyKCk7XG4gICAgICAgIHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF0gPSBxdWVyaWVyO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAocHJvcGFnYXRpb24gPT09ICdyZXF1aXJlZCcgJiYgIXF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5iZWdpblRyYW5zYWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIHBhcmFtcyk7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uICYmIHF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uICYmIHF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGlzT3duVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLnJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH07XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const options_1 = require("@uql/core/options");
5
+ const injectQuerier_1 = require("./injectQuerier");
6
+ const transactional_1 = require("./transactional");
7
+ describe('transactional', () => {
8
+ let anotherQuerierPool;
9
+ beforeEach(() => {
10
+ const defaultQuerierSingleton = buildQuerierMock();
11
+ const anotherQuerierSingleton = buildQuerierMock();
12
+ (0, options_1.setOptions)({
13
+ querierPool: {
14
+ getQuerier: async () => defaultQuerierSingleton,
15
+ end: async () => undefined,
16
+ },
17
+ });
18
+ anotherQuerierPool = {
19
+ getQuerier: async () => anotherQuerierSingleton,
20
+ end: async () => undefined,
21
+ };
22
+ });
23
+ it('injectQuerier', async () => {
24
+ class ServiceA {
25
+ async save(querier) { }
26
+ }
27
+ tslib_1.__decorate([
28
+ (0, transactional_1.Transactional)(),
29
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
30
+ tslib_1.__metadata("design:type", Function),
31
+ tslib_1.__metadata("design:paramtypes", [Object]),
32
+ tslib_1.__metadata("design:returntype", Promise)
33
+ ], ServiceA.prototype, "save", null);
34
+ const serviceA = new ServiceA();
35
+ await serviceA.save();
36
+ const defaultQuerier = await (0, options_1.getQuerier)();
37
+ expect(defaultQuerier.beginTransaction).toBeCalledTimes(1);
38
+ expect(defaultQuerier.commitTransaction).toBeCalledTimes(1);
39
+ expect(defaultQuerier.rollbackTransaction).toBeCalledTimes(0);
40
+ expect(defaultQuerier.release).toBeCalledTimes(1);
41
+ const anotherQuerier = await anotherQuerierPool.getQuerier();
42
+ expect(anotherQuerier.beginTransaction).toBeCalledTimes(0);
43
+ expect(anotherQuerier.commitTransaction).toBeCalledTimes(0);
44
+ expect(anotherQuerier.rollbackTransaction).toBeCalledTimes(0);
45
+ expect(anotherQuerier.release).toBeCalledTimes(0);
46
+ });
47
+ it('injectQuerier - querier and repositories', async () => {
48
+ class ServiceA {
49
+ async save(querier) { }
50
+ }
51
+ tslib_1.__decorate([
52
+ (0, transactional_1.Transactional)(),
53
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
54
+ tslib_1.__metadata("design:type", Function),
55
+ tslib_1.__metadata("design:paramtypes", [Object]),
56
+ tslib_1.__metadata("design:returntype", Promise)
57
+ ], ServiceA.prototype, "save", null);
58
+ const serviceA = new ServiceA();
59
+ await serviceA.save();
60
+ const defaultQuerier = await (0, options_1.getQuerier)();
61
+ expect(defaultQuerier.beginTransaction).toBeCalledTimes(1);
62
+ expect(defaultQuerier.commitTransaction).toBeCalledTimes(1);
63
+ expect(defaultQuerier.rollbackTransaction).toBeCalledTimes(0);
64
+ expect(defaultQuerier.release).toBeCalledTimes(1);
65
+ const anotherQuerier = await anotherQuerierPool.getQuerier();
66
+ expect(anotherQuerier.beginTransaction).toBeCalledTimes(0);
67
+ expect(anotherQuerier.commitTransaction).toBeCalledTimes(0);
68
+ expect(anotherQuerier.rollbackTransaction).toBeCalledTimes(0);
69
+ expect(anotherQuerier.release).toBeCalledTimes(0);
70
+ });
71
+ it('injectQuerier propagation: supported', async () => {
72
+ class ServiceA {
73
+ async find(querier) { }
74
+ }
75
+ tslib_1.__decorate([
76
+ (0, transactional_1.Transactional)({ propagation: 'supported' }),
77
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
78
+ tslib_1.__metadata("design:type", Function),
79
+ tslib_1.__metadata("design:paramtypes", [Object]),
80
+ tslib_1.__metadata("design:returntype", Promise)
81
+ ], ServiceA.prototype, "find", null);
82
+ const serviceA = new ServiceA();
83
+ await serviceA.find();
84
+ const defaultQuerier = await (0, options_1.getQuerier)();
85
+ expect(defaultQuerier.beginTransaction).toBeCalledTimes(0);
86
+ expect(defaultQuerier.commitTransaction).toBeCalledTimes(0);
87
+ expect(defaultQuerier.rollbackTransaction).toBeCalledTimes(0);
88
+ expect(defaultQuerier.release).toBeCalledTimes(1);
89
+ const anotherQuerier = await anotherQuerierPool.getQuerier();
90
+ expect(anotherQuerier.beginTransaction).toBeCalledTimes(0);
91
+ expect(anotherQuerier.commitTransaction).toBeCalledTimes(0);
92
+ expect(anotherQuerier.rollbackTransaction).toBeCalledTimes(0);
93
+ expect(anotherQuerier.release).toBeCalledTimes(0);
94
+ });
95
+ it('injectQuerier another querierPool', async () => {
96
+ class ServiceA {
97
+ async save(querier) { }
98
+ }
99
+ tslib_1.__decorate([
100
+ (0, transactional_1.Transactional)({ querierPool: anotherQuerierPool }),
101
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
102
+ tslib_1.__metadata("design:type", Function),
103
+ tslib_1.__metadata("design:paramtypes", [Object]),
104
+ tslib_1.__metadata("design:returntype", Promise)
105
+ ], ServiceA.prototype, "save", null);
106
+ const serviceA = new ServiceA();
107
+ await serviceA.save();
108
+ const anotherQuerier = await anotherQuerierPool.getQuerier();
109
+ expect(anotherQuerier.beginTransaction).toBeCalledTimes(1);
110
+ expect(anotherQuerier.commitTransaction).toBeCalledTimes(1);
111
+ expect(anotherQuerier.rollbackTransaction).toBeCalledTimes(0);
112
+ expect(anotherQuerier.release).toBeCalledTimes(1);
113
+ const defaultQuerier = await (0, options_1.getQuerier)();
114
+ expect(defaultQuerier.beginTransaction).toBeCalledTimes(0);
115
+ expect(defaultQuerier.commitTransaction).toBeCalledTimes(0);
116
+ expect(defaultQuerier.rollbackTransaction).toBeCalledTimes(0);
117
+ expect(defaultQuerier.release).toBeCalledTimes(0);
118
+ });
119
+ it('injectQuerier and call super', async () => {
120
+ const deleteStub = jest.fn((id, querier) => { });
121
+ class ServiceA {
122
+ async delete(id, querier) {
123
+ deleteStub(id, querier);
124
+ }
125
+ }
126
+ tslib_1.__decorate([
127
+ (0, transactional_1.Transactional)(),
128
+ tslib_1.__param(1, (0, injectQuerier_1.InjectQuerier)()),
129
+ tslib_1.__metadata("design:type", Function),
130
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
131
+ tslib_1.__metadata("design:returntype", Promise)
132
+ ], ServiceA.prototype, "delete", null);
133
+ class ServiceB extends ServiceA {
134
+ async delete(id, querier) {
135
+ return super.delete(id, querier);
136
+ }
137
+ }
138
+ tslib_1.__decorate([
139
+ (0, transactional_1.Transactional)({ querierPool: anotherQuerierPool }),
140
+ tslib_1.__param(1, (0, injectQuerier_1.InjectQuerier)()),
141
+ tslib_1.__metadata("design:type", Function),
142
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
143
+ tslib_1.__metadata("design:returntype", Promise)
144
+ ], ServiceB.prototype, "delete", null);
145
+ const serviceB = new ServiceB();
146
+ await serviceB.delete('123');
147
+ const defaultQuerier = await (0, options_1.getQuerier)();
148
+ expect(deleteStub).toBeCalledTimes(1);
149
+ const anotherQuerier = await anotherQuerierPool.getQuerier();
150
+ expect(deleteStub).toHaveBeenCalledWith('123', anotherQuerier);
151
+ expect(anotherQuerier.beginTransaction).toBeCalledTimes(1);
152
+ expect(anotherQuerier.commitTransaction).toBeCalledTimes(1);
153
+ expect(anotherQuerier.rollbackTransaction).toBeCalledTimes(0);
154
+ expect(anotherQuerier.release).toBeCalledTimes(1);
155
+ expect(defaultQuerier.beginTransaction).toBeCalledTimes(0);
156
+ expect(defaultQuerier.commitTransaction).toBeCalledTimes(0);
157
+ expect(defaultQuerier.rollbackTransaction).toBeCalledTimes(0);
158
+ expect(defaultQuerier.release).toBeCalledTimes(0);
159
+ });
160
+ it('throw', async () => {
161
+ class ServiceA {
162
+ async save(querier) {
163
+ throw new Error('Some Error');
164
+ }
165
+ }
166
+ tslib_1.__decorate([
167
+ (0, transactional_1.Transactional)({ propagation: 'supported' }),
168
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
169
+ tslib_1.__metadata("design:type", Function),
170
+ tslib_1.__metadata("design:paramtypes", [Object]),
171
+ tslib_1.__metadata("design:returntype", Promise)
172
+ ], ServiceA.prototype, "save", null);
173
+ const serviceA = new ServiceA();
174
+ await expect(serviceA.save()).rejects.toThrow('Some Error');
175
+ const defaultQuerier = await (0, options_1.getQuerier)();
176
+ expect(defaultQuerier.beginTransaction).toBeCalledTimes(0);
177
+ expect(defaultQuerier.commitTransaction).toBeCalledTimes(0);
178
+ expect(defaultQuerier.rollbackTransaction).toBeCalledTimes(0);
179
+ expect(defaultQuerier.release).toBeCalledTimes(1);
180
+ const anotherQuerier = await anotherQuerierPool.getQuerier();
181
+ expect(anotherQuerier.beginTransaction).toBeCalledTimes(0);
182
+ expect(anotherQuerier.commitTransaction).toBeCalledTimes(0);
183
+ expect(anotherQuerier.rollbackTransaction).toBeCalledTimes(0);
184
+ expect(anotherQuerier.release).toBeCalledTimes(0);
185
+ });
186
+ it('throw inside transaction', async () => {
187
+ class ServiceA {
188
+ async save(querier) {
189
+ throw new Error('Some Error');
190
+ }
191
+ }
192
+ tslib_1.__decorate([
193
+ (0, transactional_1.Transactional)(),
194
+ tslib_1.__param(0, (0, injectQuerier_1.InjectQuerier)()),
195
+ tslib_1.__metadata("design:type", Function),
196
+ tslib_1.__metadata("design:paramtypes", [Object]),
197
+ tslib_1.__metadata("design:returntype", Promise)
198
+ ], ServiceA.prototype, "save", null);
199
+ const serviceA = new ServiceA();
200
+ await expect(serviceA.save()).rejects.toThrow('Some Error');
201
+ const defaultQuerier = await (0, options_1.getQuerier)();
202
+ expect(defaultQuerier.beginTransaction).toBeCalledTimes(1);
203
+ expect(defaultQuerier.commitTransaction).toBeCalledTimes(0);
204
+ expect(defaultQuerier.rollbackTransaction).toBeCalledTimes(1);
205
+ expect(defaultQuerier.release).toBeCalledTimes(1);
206
+ const anotherQuerier = await anotherQuerierPool.getQuerier();
207
+ expect(anotherQuerier.beginTransaction).toBeCalledTimes(0);
208
+ expect(anotherQuerier.commitTransaction).toBeCalledTimes(0);
209
+ expect(anotherQuerier.rollbackTransaction).toBeCalledTimes(0);
210
+ expect(anotherQuerier.release).toBeCalledTimes(0);
211
+ });
212
+ it('missing injectQuerier', () => {
213
+ expect(() => {
214
+ class ServiceA {
215
+ async find() { }
216
+ }
217
+ tslib_1.__decorate([
218
+ (0, transactional_1.Transactional)(),
219
+ tslib_1.__metadata("design:type", Function),
220
+ tslib_1.__metadata("design:paramtypes", []),
221
+ tslib_1.__metadata("design:returntype", Promise)
222
+ ], ServiceA.prototype, "find", null);
223
+ }).toThrow("missing decorator @InjectQuerier() in 'ServiceA.find'");
224
+ });
225
+ });
226
+ function buildQuerierMock() {
227
+ const querier = {
228
+ beginTransaction: jest.fn(async () => {
229
+ querier.hasOpenTransaction = true;
230
+ }),
231
+ commitTransaction: jest.fn(async () => {
232
+ querier.hasOpenTransaction = undefined;
233
+ }),
234
+ rollbackTransaction: jest.fn(async () => {
235
+ querier.hasOpenTransaction = undefined;
236
+ }),
237
+ release: jest.fn(async () => { }),
238
+ };
239
+ return querier;
240
+ }
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJpZXIvZGVjb3JhdG9yL3RyYW5zYWN0aW9uYWwuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBMkQ7QUFFM0QsbURBQWdEO0FBQ2hELG1EQUFnRDtBQUVoRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixJQUFJLGtCQUErQixDQUFDO0lBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDbkQsTUFBTSx1QkFBdUIsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRW5ELElBQUEsb0JBQVUsRUFBQztZQUNULFdBQVcsRUFBRTtnQkFDWCxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyx1QkFBdUI7Z0JBQy9DLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFNBQVM7YUFDM0I7U0FDRixDQUFDLENBQUM7UUFFSCxrQkFBa0IsR0FBRztZQUNuQixVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyx1QkFBdUI7WUFDL0MsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsU0FBUztTQUMzQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzdCLE1BQU0sUUFBUTtZQUVaLEtBQUssQ0FBQyxJQUFJLENBQWtCLE9BQWlCLElBQUcsQ0FBQztTQUNsRDtRQURDO1lBREMsSUFBQSw2QkFBYSxHQUFFO1lBQ0osbUJBQUEsSUFBQSw2QkFBYSxHQUFFLENBQUE7Ozs7NENBQXNCO1FBR25ELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdEIsTUFBTSxjQUFjLEdBQUcs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LElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDLENBQUM7UUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7UUFDekMsQ0FBQyxDQUFDO1FBQ0YsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLENBQUMsQ0FBQztRQUNGLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQ1EsQ0FBQztJQUMzQyxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0UXVlcmllciwgc2V0T3B0aW9ucyB9IGZyb20gJ0B1cWwvY29yZS9vcHRpb25zJztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBXcml0YWJsZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IEluamVjdFF1ZXJpZXIgfSBmcm9tICcuL2luamVjdFF1ZXJpZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25hbCB9IGZyb20gJy4vdHJhbnNhY3Rpb25hbCc7XG5cbmRlc2NyaWJlKCd0cmFuc2FjdGlvbmFsJywgKCkgPT4ge1xuICBsZXQgYW5vdGhlclF1ZXJpZXJQb29sOiBRdWVyaWVyUG9vbDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0UXVlcmllclNpbmdsZXRvbiA9IGJ1aWxkUXVlcmllck1vY2soKTtcbiAgICBjb25zdCBhbm90aGVyUXVlcmllclNpbmdsZXRvbiA9IGJ1aWxkUXVlcmllck1vY2soKTtcblxuICAgIHNldE9wdGlvbnMoe1xuICAgICAgcXVlcmllclBvb2w6IHtcbiAgICAgICAgZ2V0UXVlcmllcjogYXN5bmMgKCkgPT4gZGVmYXVsdFF1ZXJpZXJTaW5nbGV0b24sXG4gICAgICAgIGVuZDogYXN5bmMgKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGFub3RoZXJRdWVyaWVyUG9vbCA9IHtcbiAgICAgIGdldFF1ZXJpZXI6IGFzeW5jICgpID0+IGFub3RoZXJRdWVyaWVyU2luZ2xldG9uLFxuICAgICAgZW5kOiBhc3luYyAoKSA9PiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdFF1ZXJpZXInLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgU2VydmljZUEge1xuICAgICAgQFRyYW5zYWN0aW9uYWwoKVxuICAgICAgYXN5bmMgc2F2ZShASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZpY2VBID0gbmV3IFNlcnZpY2VBKCk7XG4gICAgYXdhaXQgc2VydmljZUEuc2F2ZSgpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDApO1xuICB9KTtcblxuICBpdCgnaW5qZWN0UXVlcmllciAtIHF1ZXJpZXIgYW5kIHJlcG9zaXRvcmllcycsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCgpXG4gICAgICBhc3luYyBzYXZlKEBJbmplY3RRdWVyaWVyKCkgcXVlcmllcj86IFF1ZXJpZXIpIHt9XG4gICAgfVxuXG4gICAgY29uc3Qgc2VydmljZUEgPSBuZXcgU2VydmljZUEoKTtcbiAgICBhd2FpdCBzZXJ2aWNlQS5zYXZlKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgY29uc3QgYW5vdGhlclF1ZXJpZXIgPSBhd2FpdCBhbm90aGVyUXVlcmllclBvb2wuZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gIH0pO1xuXG4gIGl0KCdpbmplY3RRdWVyaWVyIHByb3BhZ2F0aW9uOiBzdXBwb3J0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgU2VydmljZUEge1xuICAgICAgQFRyYW5zYWN0aW9uYWwoeyBwcm9wYWdhdGlvbjogJ3N1cHBvcnRlZCcgfSlcbiAgICAgIGFzeW5jIGZpbmQoQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge31cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQSA9IG5ldyBTZXJ2aWNlQSgpO1xuICAgIGF3YWl0IHNlcnZpY2VBLmZpbmQoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRRdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBhbm90aGVyUXVlcmllciA9IGF3YWl0IGFub3RoZXJRdWVyaWVyUG9vbC5nZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdFF1ZXJpZXIgYW5vdGhlciBxdWVyaWVyUG9vbCcsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCh7IHF1ZXJpZXJQb29sOiBhbm90aGVyUXVlcmllclBvb2wgfSlcbiAgICAgIGFzeW5jIHNhdmUoQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge31cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQSA9IG5ldyBTZXJ2aWNlQSgpO1xuICAgIGF3YWl0IHNlcnZpY2VBLnNhdmUoKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdFF1ZXJpZXIgYW5kIGNhbGwgc3VwZXInLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGVsZXRlU3R1YiA9IGplc3QuZm4oKGlkOiBzdHJpbmcsIHF1ZXJpZXI6IFF1ZXJpZXIpID0+IHt9KTtcblxuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIEBUcmFuc2FjdGlvbmFsKClcbiAgICAgIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nLCBASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7XG4gICAgICAgIGRlbGV0ZVN0dWIoaWQsIHF1ZXJpZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNsYXNzIFNlcnZpY2VCIGV4dGVuZHMgU2VydmljZUEge1xuICAgICAgQFRyYW5zYWN0aW9uYWwoeyBxdWVyaWVyUG9vbDogYW5vdGhlclF1ZXJpZXJQb29sIH0pXG4gICAgICBvdmVycmlkZSBhc3luYyBkZWxldGUoaWQ6IHN0cmluZywgQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge1xuICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKGlkLCBxdWVyaWVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQiA9IG5ldyBTZXJ2aWNlQigpO1xuICAgIGF3YWl0IHNlcnZpY2VCLmRlbGV0ZSgnMTIzJyk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWxldGVTdHViKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBhbm90aGVyUXVlcmllciA9IGF3YWl0IGFub3RoZXJRdWVyaWVyUG9vbC5nZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVsZXRlU3R1YikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJzEyMycsIGFub3RoZXJRdWVyaWVyKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gIH0pO1xuXG4gIGl0KCd0aHJvdycsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCh7IHByb3BhZ2F0aW9uOiAnc3VwcG9ydGVkJyB9KVxuICAgICAgYXN5bmMgc2F2ZShASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU29tZSBFcnJvcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZpY2VBID0gbmV3IFNlcnZpY2VBKCk7XG5cbiAgICBhd2FpdCBleHBlY3Qoc2VydmljZUEuc2F2ZSgpKS5yZWplY3RzLnRvVGhyb3coJ1NvbWUgRXJyb3InKTtcblxuICAgIGNvbnN0IGRlZmF1bHRRdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBhbm90aGVyUXVlcmllciA9IGF3YWl0IGFub3RoZXJRdWVyaWVyUG9vbC5nZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ3Rocm93IGluc2lkZSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCgpXG4gICAgICBhc3luYyBzYXZlKEBJbmplY3RRdWVyaWVyKCkgcXVlcmllcj86IFF1ZXJpZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTb21lIEVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2VydmljZUEgPSBuZXcgU2VydmljZUEoKTtcblxuICAgIGF3YWl0IGV4cGVjdChzZXJ2aWNlQS5zYXZlKCkpLnJlamVjdHMudG9UaHJvdygnU29tZSBFcnJvcicpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDApO1xuICB9KTtcblxuICBpdCgnbWlzc2luZyBpbmplY3RRdWVyaWVyJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICAgIEBUcmFuc2FjdGlvbmFsKClcbiAgICAgICAgYXN5bmMgZmluZCgpIHt9XG4gICAgICB9XG4gICAgfSkudG9UaHJvdyhcIm1pc3NpbmcgZGVjb3JhdG9yIEBJbmplY3RRdWVyaWVyKCkgaW4gJ1NlcnZpY2VBLmZpbmQnXCIpO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiBidWlsZFF1ZXJpZXJNb2NrKCk6IFF1ZXJpZXIge1xuICBjb25zdCBxdWVyaWVyID0ge1xuICAgIGJlZ2luVHJhbnNhY3Rpb246IGplc3QuZm4oYXN5bmMgKCkgPT4ge1xuICAgICAgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24gPSB0cnVlO1xuICAgIH0pLFxuICAgIGNvbW1pdFRyYW5zYWN0aW9uOiBqZXN0LmZuKGFzeW5jICgpID0+IHtcbiAgICAgIHF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIH0pLFxuICAgIHJvbGxiYWNrVHJhbnNhY3Rpb246IGplc3QuZm4oYXN5bmMgKCkgPT4ge1xuICAgICAgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgfSksXG4gICAgcmVsZWFzZTogamVzdC5mbihhc3luYyAoKSA9PiB7fSksXG4gIH0gYXMgUGFydGlhbDxRdWVyaWVyPiBhcyBXcml0YWJsZTxRdWVyaWVyPjtcbiAgcmV0dXJuIHF1ZXJpZXI7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};