taxtank-core 0.32.39 → 0.32.41

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 (27) hide show
  1. package/esm2022/lib/collections/bank-transaction.collection.mjs +19 -4
  2. package/esm2022/lib/collections/sole/sole-invoice-item.collection.mjs +3 -3
  3. package/esm2022/lib/collections/sole/sole-invoice.collection.mjs +22 -1
  4. package/esm2022/lib/collections/transaction/transaction-allocation.collection.mjs +8 -1
  5. package/esm2022/lib/collections/transaction/transaction.collection.mjs +8 -1
  6. package/esm2022/lib/db/Json/chart-accounts/chart-accounts-value.json +287 -287
  7. package/esm2022/lib/db/Models/transaction/transaction-base.mjs +3 -2
  8. package/esm2022/lib/models/bank/bank-transaction.mjs +2 -2
  9. package/esm2022/lib/models/endpoint/endpoints.const.mjs +5 -4
  10. package/esm2022/lib/models/sole/sole-invoice.mjs +3 -4
  11. package/esm2022/lib/models/transaction/transaction.mjs +2 -2
  12. package/esm2022/lib/services/bank/bank-account-calculation.service.mjs +7 -11
  13. package/esm2022/lib/services/bank/index.mjs +1 -2
  14. package/esm2022/lib/services/transaction/transaction-calculation.service.mjs +2 -55
  15. package/fesm2022/taxtank-core.mjs +438 -419
  16. package/fesm2022/taxtank-core.mjs.map +1 -1
  17. package/lib/collections/bank-transaction.collection.d.ts +9 -2
  18. package/lib/collections/sole/sole-invoice-item.collection.d.ts +1 -1
  19. package/lib/collections/sole/sole-invoice.collection.d.ts +5 -1
  20. package/lib/collections/transaction/transaction-allocation.collection.d.ts +3 -1
  21. package/lib/collections/transaction/transaction.collection.d.ts +2 -0
  22. package/lib/services/bank/bank-account-calculation.service.d.ts +2 -7
  23. package/lib/services/bank/index.d.ts +0 -1
  24. package/lib/services/transaction/transaction-calculation.service.d.ts +1 -25
  25. package/package.json +1 -1
  26. package/esm2022/lib/services/bank/bank-transaction-calculation.service.mjs +0 -61
  27. package/lib/services/bank/bank-transaction-calculation.service.d.ts +0 -41
@@ -1,60 +1,10 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { TransactionAllocationCollection, TransactionCollection } from '../../collections';
3
- import { Dictionary } from '../../models/dictionary/dictionary';
2
+ import { TransactionAllocationCollection } from '../../collections';
4
3
  import * as i0 from "@angular/core";
5
4
  /**
6
5
  * @TODO Alex: refactor, move methods to collections and models, remove this service
7
6
  */
8
7
  export class TransactionCalculationService {
9
- /**
10
- * Sum of allocations for passed transactions
11
- */
12
- getAllocatedAmount(transactions, allocations) {
13
- return allocations.getByTransactionsIds(transactions.getIds()).amount;
14
- }
15
- /**
16
- * Check if transaction is allocated
17
- */
18
- isAllocated(transaction, allocations) {
19
- return transaction.isAllocated(allocations);
20
- }
21
- /**
22
- * Get collection of allocated transactions
23
- * @TODO Alex: consider to move to collection
24
- */
25
- getAllocatedTransactions(transactions, allocations) {
26
- return new TransactionCollection(transactions.items.filter((transaction) => transaction.isAllocated(allocations)));
27
- }
28
- getUnallocatedInvoices(invoices, allocations) {
29
- return invoices.filter((invoice) => {
30
- const invoiceAllocatedAmount = allocations.filterBy('transaction.id', invoice.getTransactionsIds()).sumBy('amount');
31
- return invoice.grossPrice > invoiceAllocatedAmount;
32
- });
33
- }
34
- /**
35
- * Get invoices paid amounts grouped by invoice id
36
- */
37
- getInvoicePaidAmountById(allocations, invoices) {
38
- const allocationsByTransactionId = allocations.groupBy('transaction.id');
39
- const dictionary = new Dictionary([]);
40
- invoices.toArray().forEach((invoice) => {
41
- // fully paid if user marked invoice as paid with cash
42
- const amount = invoice.isPaidCash() ? invoice.grossPrice
43
- : allocationsByTransactionId.merge(invoice.itemsCollection.mapBy('transaction.id')).amount || 0;
44
- dictionary.add(invoice.id, amount);
45
- });
46
- return dictionary;
47
- }
48
- getInvoicesUnallocatedAmount(invoices, allocations) {
49
- return invoices.sumBy('grossPrice') - allocations.filterBy('transaction.id', invoices.getTransactionsIds()).sumBy('amount');
50
- }
51
- getTransactionsByInvoices(invoices, transactions) {
52
- const transactionsByInvoices = new TransactionCollection([]).groupBy();
53
- invoices.toArray().forEach((invoice) => {
54
- transactionsByInvoices.add(invoice.id, transactions.filterBy('id', invoice.getTransactionsIds()));
55
- });
56
- return transactionsByInvoices;
57
- }
58
8
  getAllocationsByInvoices(invoices, allocations) {
59
9
  const allocationsByInvoices = new TransactionAllocationCollection([]).groupBy();
60
10
  invoices.toArray().forEach((invoice) => {
@@ -62,9 +12,6 @@ export class TransactionCalculationService {
62
12
  });
63
13
  return allocationsByInvoices;
64
14
  }
65
- getBankTransactionsUnallocatedAmount(bankTransactions, allocations) {
66
- return bankTransactions.sumBy('amount') - allocations.getByBankTransactionsIds(bankTransactions.getIds()).sumBy('amount');
67
- }
68
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TransactionCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
69
16
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TransactionCalculationService, providedIn: 'root' }); }
70
17
  }
@@ -74,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
74
21
  providedIn: 'root'
75
22
  }]
76
23
  }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF5QiwrQkFBK0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFNaEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3hDOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsWUFBbUMsRUFBRSxXQUE0QztRQUNsRyxPQUFPLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLFdBQXdCLEVBQUUsV0FBNEM7UUFDaEYsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0IsQ0FBQyxZQUFtQyxFQUFFLFdBQTRDO1FBQ3hHLE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUF3QixFQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQ3ZHLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCLENBQUMsUUFBK0IsRUFBRSxXQUE0QztRQUNsRyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUU7WUFDOUMsTUFBTSxz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Q1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29sZUludm9pY2VDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uLCBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RpY3Rpb25hcnkvZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZSwgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgQmFua1RyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2JhbmstdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5cblxuLyoqXG4gKiBAVE9ETyBBbGV4OiByZWZhY3RvciwgbW92ZSBtZXRob2RzIHRvIGNvbGxlY3Rpb25zIGFuZCBtb2RlbHMsIHJlbW92ZSB0aGlzIHNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25DYWxjdWxhdGlvblNlcnZpY2Uge1xuICAvKipcbiAgICogU3VtIG9mIGFsbG9jYXRpb25zIGZvciBwYXNzZWQgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXRBbGxvY2F0ZWRBbW91bnQodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWxsb2NhdGlvbnMuZ2V0QnlUcmFuc2FjdGlvbnNJZHModHJhbnNhY3Rpb25zLmdldElkcygpKS5hbW91bnQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gaXMgYWxsb2NhdGVkXG4gICAqL1xuICBpc0FsbG9jYXRlZCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlzQWxsb2NhdGVkKGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiBhbGxvY2F0ZWQgdHJhbnNhY3Rpb25zXG4gICAqIEBUT0RPIEFsZXg6IGNvbnNpZGVyIHRvIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0QWxsb2NhdGVkVHJhbnNhY3Rpb25zKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0cmFuc2FjdGlvbnMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzQWxsb2NhdGVkKGFsbG9jYXRpb25zKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0VW5hbGxvY2F0ZWRJbnZvaWNlcyhpbnZvaWNlczogU29sZUludm9pY2VDb2xsZWN0aW9uLCBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFNvbGVJbnZvaWNlQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIGludm9pY2VzLmZpbHRlcigoaW52b2ljZTogU29sZUludm9pY2UpID0+IHtcbiAgICAgIGNvbnN0IGludm9pY2VBbGxvY2F0ZWRBbW91bnQ6IG51bWJlciA9IGFsbG9jYXRpb25zLmZpbHRlckJ5KCd0cmFuc2FjdGlvbi5pZCcsIGludm9pY2UuZ2V0VHJhbnNhY3Rpb25zSWRzKCkpLnN1bUJ5KCdhbW91bnQnKTtcbiAgICAgIHJldHVybiBpbnZvaWNlLmdyb3NzUHJpY2UgPiBpbnZvaWNlQWxsb2NhdGVkQW1vdW50O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbnZvaWNlcyBwYWlkIGFtb3VudHMgZ3JvdXBlZCBieSBpbnZvaWNlIGlkXG4gICAqL1xuICBnZXRJbnZvaWNlUGFpZEFtb3VudEJ5SWQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24sIGludm9pY2VzOiBTb2xlSW52b2ljZUNvbGxlY3Rpb24pOiBEaWN0aW9uYXJ5PG51bWJlcj4ge1xuICAgIGNvbnN0IGFsbG9jYXRpb25zQnlUcmFuc2FjdGlvbklkID0gYWxsb2NhdGlvbnMuZ3JvdXBCeSgndHJhbnNhY3Rpb24uaWQnKTtcbiAgICBjb25zdCBkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5PG51bWJlcj4gPSBuZXcgRGljdGlvbmFyeShbXSk7XG5cbiAgICBpbnZvaWNlcy50b0FycmF5KCkuZm9yRWFjaCgoaW52b2ljZTogU29sZUludm9pY2UpID0+IHtcbiAgICAgIC8vIGZ1bGx5IHBhaWQgaWYgdXNlciBtYXJrZWQgaW52b2ljZSBhcyBwYWlkIHdpdGggY2FzaFxuICAgICAgY29uc3QgYW1vdW50ID0gaW52b2ljZS5pc1BhaWRDYXNoKCkgPyBpbnZvaWNlLmdyb3NzUHJpY2VcbiAgICAgICAgOiBhbGxvY2F0aW9uc0J5VHJhbnNhY3Rpb25JZC5tZXJnZShpbnZvaWNlLml0ZW1zQ29sbGVjdGlvbi5tYXBCeSgndHJhbnNhY3Rpb24uaWQnKSkuYW1vdW50IHx8IDA7XG4gICAgICBkaWN0aW9uYXJ5LmFkZChpbnZvaWNlLmlkLCBhbW91bnQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpY3Rpb25hcnk7XG4gIH1cblxuICBnZXRJbnZvaWNlc1VuYWxsb2NhdGVkQW1vdW50KGludm9pY2VzOiBTb2xlSW52b2ljZUNvbGxlY3Rpb24sIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW52b2ljZXMuc3VtQnkoJ2dyb3NzUHJpY2UnKSAtIGFsbG9jYXRpb25zLmZpbHRlckJ5KCd0cmFuc2FjdGlvbi5pZCcsIGludm9pY2VzLmdldFRyYW5zYWN0aW9uc0lkcygpKS5zdW1CeSgnYW1vdW50Jyk7XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbnNCeUludm9pY2VzKGludm9pY2VzOiBTb2xlSW52b2ljZUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPiB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25zQnlJbnZvaWNlcyA9IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oW10pLmdyb3VwQnkoKTtcblxuICAgIGludm9pY2VzLnRvQXJyYXkoKS5mb3JFYWNoKChpbnZvaWNlOiBTb2xlSW52b2ljZSkgPT4ge1xuICAgICAgdHJhbnNhY3Rpb25zQnlJbnZvaWNlcy5hZGQoaW52b2ljZS5pZCwgdHJhbnNhY3Rpb25zLmZpbHRlckJ5KCdpZCcsIGludm9pY2UuZ2V0VHJhbnNhY3Rpb25zSWRzKCkpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0cmFuc2FjdGlvbnNCeUludm9pY2VzO1xuICB9XG5cbiAgZ2V0QWxsb2NhdGlvbnNCeUludm9pY2VzKGludm9pY2VzOiBTb2xlSW52b2ljZUNvbGxlY3Rpb24sIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8VHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbj4ge1xuICAgIGNvbnN0IGFsbG9jYXRpb25zQnlJbnZvaWNlcyA9IG5ldyBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKFtdKS5ncm91cEJ5KCk7XG5cbiAgICBpbnZvaWNlcy50b0FycmF5KCkuZm9yRWFjaCgoaW52b2ljZTogU29sZUludm9pY2UpID0+IHtcbiAgICAgIGFsbG9jYXRpb25zQnlJbnZvaWNlcy5hZGQoaW52b2ljZS5pZCwgYWxsb2NhdGlvbnMuZmlsdGVyQnkoJ3RyYW5zYWN0aW9uLmlkJywgaW52b2ljZS5nZXRUcmFuc2FjdGlvbnNJZHMoKSkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFsbG9jYXRpb25zQnlJbnZvaWNlcztcbiAgfVxuXG4gIGdldEJhbmtUcmFuc2FjdGlvbnNVbmFsbG9jYXRlZEFtb3VudChiYW5rVHJhbnNhY3Rpb25zOiBCYW5rVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIGJhbmtUcmFuc2FjdGlvbnMuc3VtQnkoJ2Ftb3VudCcpIC0gYWxsb2NhdGlvbnMuZ2V0QnlCYW5rVHJhbnNhY3Rpb25zSWRzKGJhbmtUcmFuc2FjdGlvbnMuZ2V0SWRzKCkpLnN1bUJ5KCdhbW91bnQnKTtcbiAgfVxufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF5QiwrQkFBK0IsRUFBeUIsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPbEg7O0dBRUc7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3hDLHdCQUF3QixDQUFDLFFBQStCLEVBQUUsV0FBNEM7UUFDcEcsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLCtCQUErQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhGLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUU7WUFDbEQscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7K0dBVFUsNkJBQTZCO21IQUE3Qiw2QkFBNkIsY0FGNUIsTUFBTTs7NEZBRVAsNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlQ29sbGVjdGlvbiwgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbiwgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL21vZGVscy9kaWN0aW9uYXJ5L2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgU29sZUludm9pY2UsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IENvbGxlY3Rpb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9iYW5rLXRyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuXG5cbi8qKlxuICogQFRPRE8gQWxleDogcmVmYWN0b3IsIG1vdmUgbWV0aG9kcyB0byBjb2xsZWN0aW9ucyBhbmQgbW9kZWxzLCByZW1vdmUgdGhpcyBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ2FsY3VsYXRpb25TZXJ2aWNlIHtcbiAgZ2V0QWxsb2NhdGlvbnNCeUludm9pY2VzKGludm9pY2VzOiBTb2xlSW52b2ljZUNvbGxlY3Rpb24sIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8VHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbj4ge1xuICAgIGNvbnN0IGFsbG9jYXRpb25zQnlJbnZvaWNlcyA9IG5ldyBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKFtdKS5ncm91cEJ5KCk7XG5cbiAgICBpbnZvaWNlcy50b0FycmF5KCkuZm9yRWFjaCgoaW52b2ljZTogU29sZUludm9pY2UpID0+IHtcbiAgICAgIGFsbG9jYXRpb25zQnlJbnZvaWNlcy5hZGQoaW52b2ljZS5pZCwgYWxsb2NhdGlvbnMuZmlsdGVyQnkoJ3RyYW5zYWN0aW9uLmlkJywgaW52b2ljZS5nZXRUcmFuc2FjdGlvbnNJZHMoKSkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFsbG9jYXRpb25zQnlJbnZvaWNlcztcbiAgfVxufVxuIl19