@rosen-bridge/watcher-data-extractor 2.0.0 → 2.1.2

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 (55) hide show
  1. package/dist/actions/{EventTriggerDB.d.ts → EventTriggerAction.d.ts} +7 -5
  2. package/dist/actions/EventTriggerAction.d.ts.map +1 -0
  3. package/dist/actions/EventTriggerAction.js +123 -0
  4. package/dist/actions/{commitmentDB.d.ts → commitmentAction.d.ts} +8 -7
  5. package/dist/actions/commitmentAction.d.ts.map +1 -0
  6. package/dist/actions/commitmentAction.js +111 -0
  7. package/dist/actions/permitAction.d.ts +64 -0
  8. package/dist/actions/permitAction.d.ts.map +1 -0
  9. package/dist/actions/permitAction.js +171 -0
  10. package/dist/constants.d.ts +2 -1
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +3 -2
  13. package/dist/entities/CommitmentEntity.d.ts +1 -1
  14. package/dist/entities/CommitmentEntity.d.ts.map +1 -1
  15. package/dist/entities/CommitmentEntity.js +3 -3
  16. package/dist/entities/EventTriggerEntity.d.ts +1 -1
  17. package/dist/entities/EventTriggerEntity.d.ts.map +1 -1
  18. package/dist/entities/EventTriggerEntity.js +3 -3
  19. package/dist/entities/PermitEntity.d.ts +1 -1
  20. package/dist/entities/PermitEntity.d.ts.map +1 -1
  21. package/dist/entities/PermitEntity.js +3 -3
  22. package/dist/extractor/EventTriggerExtractor.d.ts.map +1 -1
  23. package/dist/extractor/EventTriggerExtractor.js +5 -5
  24. package/dist/extractor/commitmentExtractor.d.ts.map +1 -1
  25. package/dist/extractor/commitmentExtractor.js +5 -5
  26. package/dist/extractor/permitExtractor.d.ts +114 -5
  27. package/dist/extractor/permitExtractor.d.ts.map +1 -1
  28. package/dist/extractor/permitExtractor.js +129 -33
  29. package/dist/interfaces/extractedPermit.d.ts +2 -0
  30. package/dist/interfaces/extractedPermit.d.ts.map +1 -1
  31. package/dist/interfaces/extractedPermit.js +1 -1
  32. package/dist/migrations/index.d.ts.map +1 -1
  33. package/dist/migrations/index.js +5 -3
  34. package/dist/migrations/postgres/1689175974257-migration.d.ts +7 -0
  35. package/dist/migrations/postgres/1689175974257-migration.d.ts.map +1 -0
  36. package/dist/migrations/postgres/1689175974257-migration.js +50 -0
  37. package/dist/migrations/sqlite/1689175103163-migration.d.ts +7 -0
  38. package/dist/migrations/sqlite/1689175103163-migration.d.ts.map +1 -0
  39. package/dist/migrations/sqlite/1689175103163-migration.js +392 -0
  40. package/dist/{network/parser.d.ts → utils.d.ts} +3 -2
  41. package/dist/utils.d.ts.map +1 -0
  42. package/dist/utils.js +6 -0
  43. package/package.json +3 -2
  44. package/dist/actions/EventTriggerDB.d.ts.map +0 -1
  45. package/dist/actions/EventTriggerDB.js +0 -145
  46. package/dist/actions/commitmentDB.d.ts.map +0 -1
  47. package/dist/actions/commitmentDB.js +0 -129
  48. package/dist/actions/permitDB.d.ts +0 -39
  49. package/dist/actions/permitDB.d.ts.map +0 -1
  50. package/dist/actions/permitDB.js +0 -166
  51. package/dist/network/ergoNetworkApi.d.ts +0 -15
  52. package/dist/network/ergoNetworkApi.d.ts.map +0 -1
  53. package/dist/network/ergoNetworkApi.js +0 -27
  54. package/dist/network/parser.d.ts.map +0 -1
  55. package/dist/network/parser.js +0 -5
@@ -1,11 +1,13 @@
1
1
  import * as wasm from 'ergo-lib-wasm-nodejs';
2
- import PermitEntityAction from '../actions/permitDB';
2
+ import { Buffer } from 'buffer';
3
+ import { difference } from 'lodash-es';
4
+ import * as ergoLib from 'ergo-lib-wasm-nodejs';
3
5
  import { AbstractExtractor, } from '@rosen-bridge/scanner';
4
6
  import { DummyLogger } from '@rosen-bridge/logger-interface';
5
- import * as ergoLib from 'ergo-lib-wasm-nodejs';
6
- import { Buffer } from 'buffer';
7
- import { ExplorerApi } from '../network/ergoNetworkApi';
8
- import { JsonBI } from '../network/parser';
7
+ import ergoExplorerClientFactory from '@rosen-clients/ergo-explorer';
8
+ import { DefaultApiLimit } from '../constants';
9
+ import { JsonBI } from '../utils';
10
+ import PermitAction from '../actions/permitAction';
9
11
  class PermitExtractor extends AbstractExtractor {
10
12
  logger;
11
13
  id;
@@ -14,7 +16,7 @@ class PermitExtractor extends AbstractExtractor {
14
16
  permitErgoTree;
15
17
  RWT;
16
18
  explorerApi;
17
- constructor(id, dataSource, address, RWT, explorerUrl, logger, timeout) {
19
+ constructor(id, dataSource, address, RWT, explorerUrl, logger) {
18
20
  super();
19
21
  this.id = id;
20
22
  this.dataSource = dataSource;
@@ -23,8 +25,8 @@ class PermitExtractor extends AbstractExtractor {
23
25
  .to_base16_bytes();
24
26
  this.RWT = RWT;
25
27
  this.logger = logger ? logger : new DummyLogger();
26
- this.actions = new PermitEntityAction(dataSource, this.logger);
27
- this.explorerApi = new ExplorerApi(explorerUrl, timeout);
28
+ this.actions = new PermitAction(dataSource, this.logger);
29
+ this.explorerApi = ergoExplorerClientFactory(explorerUrl);
28
30
  }
29
31
  getId = () => this.id;
30
32
  /**
@@ -98,34 +100,128 @@ class PermitExtractor extends AbstractExtractor {
98
100
  * Initializes the database with older permits related to the address
99
101
  */
100
102
  initializeBoxes = async (initialHeight) => {
101
- const extractedBoxes = [];
102
- let offset = 0, total = 100;
103
+ let allStoredBoxIds = await this.actions.getAllPermitBoxIds(this.getId());
104
+ // Extract unspent permits
105
+ const unspentPermits = await this.getAllUnspentPermits(initialHeight);
106
+ const unspentBoxIds = unspentPermits.map((box) => box.boxId);
107
+ // Storing extracted permits
108
+ for (const permit of unspentPermits) {
109
+ if (allStoredBoxIds.includes(permit.boxId)) {
110
+ await this.actions.updatePermit(permit, this.getId());
111
+ this.logger.info(`Updated the existing unspent permit with boxId, [${permit.boxId}]`);
112
+ this.logger.debug(`Updated permit [${JSON.stringify(permit)}]`);
113
+ }
114
+ else {
115
+ await this.actions.insertPermit(permit, this.getId());
116
+ this.logger.info(`Inserted new unspent permit with boxId, [${permit.boxId}]`);
117
+ this.logger.debug(`Inserted permit [${JSON.stringify(permit)}]`);
118
+ }
119
+ }
120
+ // Remove updated permits from existing permits in database
121
+ allStoredBoxIds = difference(allStoredBoxIds, unspentBoxIds);
122
+ // Validating remained permits
123
+ await this.validateOldStoredPermits(allStoredBoxIds, initialHeight);
124
+ };
125
+ /**
126
+ * Validate all remaining permits in the database
127
+ * update the correct ones and remove the invalid ones
128
+ * @param unchangedStoredBoxIds
129
+ * @param initialHeight
130
+ */
131
+ validateOldStoredPermits = async (unchangedStoredBoxIds, initialHeight) => {
132
+ for (const boxId of unchangedStoredBoxIds) {
133
+ const permit = await this.getPermitWithBoxId(boxId);
134
+ if (permit && permit.spendBlock && permit.spendHeight) {
135
+ if (permit.spendHeight < initialHeight)
136
+ await this.actions.updateSpendBlock(boxId, this.getId(), permit.spendBlock, permit.spendHeight);
137
+ }
138
+ else {
139
+ await this.actions.removePermit(boxId, this.getId());
140
+ this.logger.info(`Removed invalid box [${boxId}] in initialization validation`);
141
+ }
142
+ }
143
+ };
144
+ /**
145
+ * Return extracted permit from a box
146
+ * @param boxId
147
+ */
148
+ getPermitWithBoxId = async (boxId) => {
149
+ try {
150
+ const box = await this.explorerApi.v1.getApiV1BoxesP1(boxId);
151
+ return (await this.extractPermitData([box]))[0];
152
+ }
153
+ catch {
154
+ this.logger.warn(`Permit with boxId ${boxId} does not exist`);
155
+ return undefined;
156
+ }
157
+ };
158
+ /**
159
+ * Return all unspent permits
160
+ * @param initialHeight
161
+ * @returns
162
+ */
163
+ getAllUnspentPermits = async (initialHeight) => {
164
+ let extractedBoxes = [];
165
+ let offset = 0, total = DefaultApiLimit;
103
166
  while (offset < total) {
104
- const boxes = await this.explorerApi.getBoxesForAddress(this.permitErgoTree, offset);
105
- boxes.items.forEach((boxJson) => {
106
- if (boxJson.settlementHeight < initialHeight &&
107
- boxJson.assets.length > 0 &&
108
- boxJson.assets[0].tokenId == this.RWT) {
109
- const box = ergoLib.ErgoBox.from_json(JsonBI.stringify(boxJson));
110
- const r4 = box.register_value(4);
111
- if (r4) {
112
- const R4Serialized = r4.to_coll_coll_byte();
113
- extractedBoxes.push({
114
- boxId: box.box_id().to_str(),
115
- boxSerialized: Buffer.from(box.sigma_serialize_bytes()).toString('base64'),
116
- block: boxJson.blockId,
117
- height: boxJson.settlementHeight,
118
- WID: Buffer.from(R4Serialized[0]).toString('hex'),
119
- txId: box.tx_id().to_str(),
120
- });
121
- }
122
- }
123
- });
167
+ const boxes = await this.explorerApi.v1.getApiV1BoxesUnspentByergotreeP1(this.permitErgoTree, { offset: offset, limit: DefaultApiLimit });
168
+ if (!boxes.items) {
169
+ this.logger.warn('Explorer api output items should not be undefined.');
170
+ throw new Error('Incorrect explorer api output');
171
+ }
172
+ const filteredBoxes = await this.extractPermitData(boxes.items.filter((box) => box.creationHeight && box.creationHeight < initialHeight));
173
+ extractedBoxes = [...extractedBoxes, ...filteredBoxes];
124
174
  total = boxes.total;
125
- offset += 100;
175
+ offset += DefaultApiLimit;
176
+ }
177
+ return extractedBoxes;
178
+ };
179
+ /**
180
+ * Returns block information of tx
181
+ * @param txId
182
+ */
183
+ getTxBlock = async (txId) => {
184
+ const tx = await this.explorerApi.v1.getApiV1TransactionsP1(txId);
185
+ return {
186
+ id: tx.blockId,
187
+ height: tx.inclusionHeight,
188
+ };
189
+ };
190
+ /**
191
+ * Extract permit data from json boxes
192
+ * and filter to fit in a specified height range
193
+ * @param boxes
194
+ * @param toHeight
195
+ * @param heightDifference
196
+ * @returns extracted permit
197
+ */
198
+ extractPermitData = async (boxes) => {
199
+ const extractedBoxes = [];
200
+ for (const boxJson of boxes) {
201
+ const box = ergoLib.ErgoBox.from_json(JsonBI.stringify(boxJson));
202
+ const r4 = box.register_value(4);
203
+ if (r4) {
204
+ const R4Serialized = r4.to_coll_coll_byte();
205
+ let spendBlock, spendHeight;
206
+ if (boxJson.spentTransactionId) {
207
+ const block = await this.getTxBlock(boxJson.spentTransactionId);
208
+ spendBlock = block.id;
209
+ spendHeight = block.height;
210
+ }
211
+ extractedBoxes.push({
212
+ boxId: box.box_id().to_str(),
213
+ boxSerialized: Buffer.from(box.sigma_serialize_bytes()).toString('base64'),
214
+ block: boxJson.blockId,
215
+ height: boxJson.settlementHeight,
216
+ WID: Buffer.from(R4Serialized[0]).toString('hex'),
217
+ txId: box.tx_id().to_str(),
218
+ spendBlock: spendBlock,
219
+ spendHeight: spendHeight,
220
+ });
221
+ }
126
222
  }
127
- await this.actions.storeInitialPermits(extractedBoxes, initialHeight, this.getId());
223
+ return extractedBoxes;
128
224
  };
129
225
  }
130
226
  export default PermitExtractor;
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLGtCQUFrQixNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFDTCxpQkFBaUIsR0FHbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE1BQU0sZUFBZ0IsU0FBUSxpQkFBOEI7SUFDakQsTUFBTSxDQUFpQjtJQUNoQyxFQUFFLENBQVM7SUFDTSxVQUFVLENBQWE7SUFDL0IsT0FBTyxDQUFxQjtJQUNwQixjQUFjLENBQVM7SUFDdkIsR0FBRyxDQUFTO0lBQ3BCLFdBQVcsQ0FBYztJQUVsQyxZQUNFLEVBQVUsRUFDVixVQUFzQixFQUN0QixPQUFlLEVBQ2YsR0FBVyxFQUNYLFdBQW1CLEVBQ25CLE1BQXVCLEVBQ3ZCLE9BQWdCO1FBRWhCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUNwRCxZQUFZLEVBQUU7YUFDZCxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxH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QUFhLEVBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUNiLENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSDtBQUVELGVBQWUsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0ICogYXMgd2FzbSBmcm9tICdlcmdvLWxpYi13YXNtLW5vZGVqcyc7XG5pbXBvcnQgUGVybWl0RW50aXR5QWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvcGVybWl0REInO1xuaW1wb3J0IHsgRXh0cmFjdGVkUGVybWl0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHRyYWN0ZWRQZXJtaXQnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RFeHRyYWN0b3IsXG4gIEJsb2NrRW50aXR5LFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvbG9nZ2VyLWludGVyZmFjZSc7XG5pbXBvcnQgKiBhcyBlcmdvTGliIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBFeHBsb3JlckFwaSB9IGZyb20gJy4uL25ldHdvcmsvZXJnb05ldHdvcmtBcGknO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vbmV0d29yay9wYXJzZXInO1xuXG5jbGFzcyBQZXJtaXRFeHRyYWN0b3IgZXh0ZW5kcyBBYnN0cmFjdEV4dHJhY3RvcjxUcmFuc2FjdGlvbj4ge1xuICByZWFkb25seSBsb2dnZXI6IEFic3RyYWN0TG9nZ2VyO1xuICBpZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHJlYWRvbmx5IGFjdGlvbnM6IFBlcm1pdEVudGl0eUFjdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXRFcmdvVHJlZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IFJXVDogc3RyaW5nO1xuICByZWFkb25seSBleHBsb3JlckFwaTogRXhwbG9yZXJBcGk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBkYXRhU291cmNlOiBEYXRhU291cmNlLFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBSV1Q6IHN0cmluZyxcbiAgICBleHBsb3JlclVybDogc3RyaW5nLFxuICAgIGxvZ2dlcj86IEFic3RyYWN0TG9nZ2VyLFxuICAgIHRpbWVvdXQ/OiBudW1iZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB0aGlzLnBlcm1pdEVyZ29UcmVlID0gd2FzbS5BZGRyZXNzLmZyb21fYmFzZTU4KGFkZHJlc3MpXG4gICAgICAudG9fZXJnb190cmVlKClcbiAgICAgIC50b19iYXNlMTZfYnl0ZXMoKTtcbiAgICB0aGlzLlJXVCA9IFJXVDtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/IGxvZ2dlciA6IG5ldyBEdW1teUxvZ2dlcigpO1xuICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBQZXJtaXRFbnRpdHlBY3Rpb24oZGF0YVNvdXJjZSwgdGhpcy5sb2dnZXIpO1xuICAgIHRoaXMuZXhwbG9yZXJBcGkgPSBuZXcgRXhwbG9yZXJBcGkoZXhwbG9yZXJVcmwsIHRpbWVvdXQpO1xuICB9XG5cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5XG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgICAgICBjb25zdCBzcGVuZElkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycy5SNCAmJlxuICAgICAgICAgICAgICAgIG91dHB1dC5hc3NldHMgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUICYmXG4gICAgICAgICAgICAgICAgb3V0cHV0LmVyZ29UcmVlID09PSB0aGlzLnBlcm1pdEVyZ29UcmVlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJveE91dHB1dCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oXG4gICAgICAgICAgICAgICAgICBKc29uQkkuc3RyaW5naWZ5KG91dHB1dClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHI0ID0gYm94T3V0cHV0LnJlZ2lzdGVyX3ZhbHVlKFxuICAgICAgICAgICAgICAgICAgd2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAocjQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoUjRTZXJpYWxpemVkLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJveGVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hPdXRwdXQuc2lnbWFfc2VyaWFsaXplX2J5dGVzKClcbiAgICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgICAgICAgICBXSUQ6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFswXSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgICAgICAgICAgICAgIHR4SWQ6IG91dHB1dC50cmFuc2FjdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAvLyBlbXB0eVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBwcm9jZXNzIGlucHV0c1xuICAgICAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdHJhbnNhY3Rpb24uaW5wdXRzKSB7XG4gICAgICAgICAgICBzcGVuZElkcy5wdXNoKGlucHV0LmJveElkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgIC5zdG9yZVBlcm1pdHMoYm94ZXMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgICAgIC5zcGVuZFBlcm1pdHMoc3BlbmRJZHMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9OiAke2V9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYGJsb2NrICR7YmxvY2t9IGRvZXNuJ3Qgc2F2ZSBpbiB0aGUgZGF0YWJhc2Ugd2l0aCBlcnJvcjogJHtlfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgcGVybWl0cyByZWxhdGVkIHRvIHRoZSBhZGRyZXNzXG4gICAqL1xuICBpbml0aWFsaXplQm94ZXMgPSBhc3luYyAoaW5pdGlhbEhlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgZXh0cmFjdGVkQm94ZXM6IEFycmF5PEV4dHJhY3RlZFBlcm1pdD4gPSBbXTtcbiAgICBsZXQgb2Zmc2V0ID0gMCxcbiAgICAgIHRvdGFsID0gMTAwO1xuICAgIHdoaWxlIChvZmZzZXQgPCB0b3RhbCkge1xuICAgICAgY29uc3QgYm94ZXMgPSBhd2FpdCB0aGlzLmV4cGxvcmVyQXBpLmdldEJveGVzRm9yQWRkcmVzcyhcbiAgICAgICAgdGhpcy5wZXJtaXRFcmdvVHJlZSxcbiAgICAgICAgb2Zmc2V0XG4gICAgICApO1xuICAgICAgYm94ZXMuaXRlbXMuZm9yRWFjaCgoYm94SnNvbikgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYm94SnNvbi5zZXR0bGVtZW50SGVpZ2h0IDwgaW5pdGlhbEhlaWdodCAmJlxuICAgICAgICAgIGJveEpzb24uYXNzZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICBib3hKc29uLmFzc2V0c1swXS50b2tlbklkID09IHRoaXMuUldUXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGJveCA9IGVyZ29MaWIuRXJnb0JveC5mcm9tX2pzb24oSnNvbkJJLnN0cmluZ2lmeShib3hKc29uKSk7XG4gICAgICAgICAgY29uc3QgcjQgPSBib3gucmVnaXN0ZXJfdmFsdWUoNCk7XG4gICAgICAgICAgaWYgKHI0KSB7XG4gICAgICAgICAgICBjb25zdCBSNFNlcmlhbGl6ZWQgPSByNC50b19jb2xsX2NvbGxfYnl0ZSgpO1xuICAgICAgICAgICAgZXh0cmFjdGVkQm94ZXMucHVzaCh7XG4gICAgICAgICAgICAgIGJveElkOiBib3guYm94X2lkKCkudG9fc3RyKCksXG4gICAgICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKGJveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSkudG9TdHJpbmcoXG4gICAgICAgICAgICAgICAgJ2Jhc2U2NCdcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgYmxvY2s6IGJveEpzb24uYmxvY2tJZCxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBib3hKc29uLnNldHRsZW1lbnRIZWlnaHQsXG4gICAgICAgICAgICAgIFdJRDogQnVmZmVyLmZyb20oUjRTZXJpYWxpemVkWzBdKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgICAgIHR4SWQ6IGJveC50eF9pZCgpLnRvX3N0cigpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRvdGFsID0gYm94ZXMudG90YWw7XG4gICAgICBvZmZzZXQgKz0gMTAwO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuc3RvcmVJbml0aWFsUGVybWl0cyhcbiAgICAgIGV4dHJhY3RlZEJveGVzLFxuICAgICAgaW5pdGlhbEhlaWdodCxcbiAgICAgIHRoaXMuZ2V0SWQoKVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBlcm1pdEV4dHJhY3RvcjtcbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWl0RXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2V4dHJhY3Rvci9wZXJtaXRFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsaUJBQWlCLEdBR2xCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RSxPQUFPLHlCQUF5QixNQUFNLDhCQUE4QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLFlBQVksTUFBTSx5QkFBeUIsQ0FBQztBQUduRCxNQUFNLGVBQWdCLFNBQVEsaUJBQThCO0lBQ2pELE1BQU0sQ0FBaUI7SUFDaEMsRUFBRSxDQUFTO0lBQ00sVUFBVSxDQUFhO0lBQy9CLE9BQU8sQ0FBZTtJQUNkLGNBQWMsQ0FBUztJQUN2QixHQUFHLENBQVM7SUFDcEIsV0FBVyxDQUFDO0lBRXJCLFlBQ0UsRUFBVSxFQUNWLFVBQXNCLEVBQ3RCLE9BQWUsRUFDZixHQUFXLEVBQ1gsV0FBbUIsRUFDbkIsTUFBdUI7UUFFdkIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2FBQ3BELFlBQVksRUFBRTthQUNkLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdEI7Ozs7O09BS0c7SUFDSCxtQkFBbUIsR0FBRyxDQUNwQixHQUF1QixFQUN2QixLQUFrQixFQUNBLEVBQUU7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJO2dCQUNGLE1BQU0sS0FBSyxHQUEyQixFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sUUFBUSxHQUFrQixFQUFFLENBQUM7Z0JBQ25DLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDMUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO3dCQUN4QyxJQUFJOzRCQUNGLElBQ0UsTUFBTSxDQUFDLG1CQUFtQjtnQ0FDMUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0NBQzdCLE1BQU0sQ0FBQyxNQUFNO2dDQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7Z0NBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxHQUFHO2dDQUNyQyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQ3ZDO2dDQUNBLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUN0QyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUN6QixDQUFDO2dDQUNGLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQy9CLENBQUM7Z0NBQ0YsSUFBSSxFQUFFLEVBQUU7b0NBQ04sTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0NBQzVDLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7d0NBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUM7NENBQ1QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLOzRDQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQ2xDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQzs0Q0FDcEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzs0Q0FDakQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxhQUFhO3lDQUMzQixDQUFDLENBQUM7cUNBQ0o7aUNBQ0Y7NkJBQ0Y7eUJBQ0Y7d0JBQUMsTUFBTTs0QkFDTixRQUFRO3lCQUNUO3FCQUNGO29CQUNELGlCQUFpQjtvQkFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO3dCQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDNUI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLE9BQU87cUJBQ1QsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3FCQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNULElBQUksQ0FBQyxPQUFPO3lCQUNULFlBQVksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzt5QkFDM0MsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZix5Q0FBeUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUN2RCxDQUFDO29CQUNGLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWixDQUFDLENBQUMsQ0FBQzthQUNOO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2YsU0FBUyxLQUFLLDZDQUE2QyxDQUFDLEVBQUUsQ0FDL0QsQ0FBQztnQkFDRixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsU0FBUyxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUNqQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILGVBQWUsR0FBRyxLQUFLLEVBQUUsYUFBcUIsRUFBRSxFQUFFO1FBQ2hELElBQUksZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxRSwwQkFBMEI7UUFDMUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELDRCQUE0QjtRQUM1QixLQUFLLE1BQU0sTUFBTSxJQUFJLGNBQWMsRUFBRTtZQUNuQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Qsb0RBQW9ELE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FDcEUsQ0FBQztnQkFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakU7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLDRDQUE0QyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQzVELENBQUM7Z0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xFO1NBQ0Y7UUFDRCwyREFBMkQ7UUFDM0QsZUFBZSxHQUFHLFVBQVUsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDN0QsOEJBQThCO1FBQzlCLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RSxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILHdCQUF3QixHQUFHLEtBQUssRUFDOUIscUJBQW9DLEVBQ3BDLGFBQXFCLEVBQ3JCLEVBQUU7UUFDRixLQUFLLE1BQU0sS0FBSyxJQUFJLHFCQUFxQixFQUFFO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDckQsSUFBSSxNQUFNLENBQUMsV0FBVyxHQUFHLGFBQWE7b0JBQ3BDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FDakMsS0FBSyxFQUNMLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFDWixNQUFNLENBQUMsVUFBVSxFQUNqQixNQUFNLENBQUMsV0FBVyxDQUNuQixDQUFDO2FBQ0w7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLHdCQUF3QixLQUFLLGdDQUFnQyxDQUM5RCxDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGtCQUFrQixHQUFHLEtBQUssRUFDeEIsS0FBYSxFQUN5QixFQUFFO1FBQ3hDLElBQUk7WUFDRixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3RCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakQ7UUFBQyxNQUFNO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssaUJBQWlCLENBQUMsQ0FBQztZQUM5RCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxvQkFBb0IsR0FBRyxLQUFLLEVBQzFCLGFBQXFCLEVBQ1ksRUFBRTtRQUNuQyxJQUFJLGNBQWMsR0FBMkIsRUFBRSxDQUFDO1FBQ2hELElBQUksTUFBTSxHQUFHLENBQUMsRUFDWixLQUFLLEdBQUcsZUFBZSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxHQUFHLEtBQUssRUFBRTtZQUNyQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGdDQUFnQyxDQUN0RSxJQUFJLENBQUMsY0FBYyxFQUNuQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUMzQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7Z0JBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQzthQUNsRDtZQUNELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUNoRCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksR0FBRyxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQ2xFLENBQ0YsQ0FBQztZQUNGLGNBQWMsR0FBRyxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7WUFDdkQsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDcEIsTUFBTSxJQUFJLGVBQWUsQ0FBQztTQUMzQjtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7UUFDbEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxPQUFPO1lBQ0wsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ2QsTUFBTSxFQUFFLEVBQUUsQ0FBQyxlQUFlO1NBQzNCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7Ozs7OztPQU9HO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUFFLEtBQXdCLEVBQUUsRUFBRTtRQUNyRCxNQUFNLGNBQWMsR0FBMkIsRUFBRSxDQUFDO1FBQ2xELEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxFQUFFO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNqRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksRUFBRSxFQUFFO2dCQUNOLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLFVBQVUsRUFBRSxXQUFXLENBQUM7Z0JBQzVCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO29CQUM5QixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ2hFLFVBQVUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN0QixXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztpQkFDNUI7Z0JBQ0QsY0FBYyxDQUFDLElBQUksQ0FBQztvQkFDbEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUU7b0JBQzVCLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUM5RCxRQUFRLENBQ1Q7b0JBQ0QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxPQUFPO29CQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtvQkFDaEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDakQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUU7b0JBQzFCLFVBQVUsRUFBRSxVQUFVO29CQUN0QixXQUFXLEVBQUUsV0FBVztpQkFDekIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztDQUNIO0FBRUQsZUFBZSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgKiBhcyB3YXNtIGZyb20gJ2VyZ28tbGliLXdhc20tbm9kZWpzJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBkaWZmZXJlbmNlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCAqIGFzIGVyZ29MaWIgZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RFeHRyYWN0b3IsXG4gIEJsb2NrRW50aXR5LFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyJztcbmltcG9ydCB7IEFic3RyYWN0TG9nZ2VyLCBEdW1teUxvZ2dlciB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvbG9nZ2VyLWludGVyZmFjZSc7XG5pbXBvcnQgeyBPdXRwdXRJbmZvIH0gZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1leHBsb3Jlci9kaXN0L3NyYy92MS90eXBlcy9vdXRwdXRJbmZvJztcbmltcG9ydCBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuXG5pbXBvcnQgeyBEZWZhdWx0QXBpTGltaXQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSnNvbkJJIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IFBlcm1pdEFjdGlvbiBmcm9tICcuLi9hY3Rpb25zL3Blcm1pdEFjdGlvbic7XG5pbXBvcnQgeyBFeHRyYWN0ZWRQZXJtaXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dHJhY3RlZFBlcm1pdCc7XG5cbmNsYXNzIFBlcm1pdEV4dHJhY3RvciBleHRlbmRzIEFic3RyYWN0RXh0cmFjdG9yPFRyYW5zYWN0aW9uPiB7XG4gIHJlYWRvbmx5IGxvZ2dlcjogQWJzdHJhY3RMb2dnZXI7XG4gIGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgcmVhZG9ubHkgYWN0aW9uczogUGVybWl0QWN0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pdEVyZ29UcmVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgUldUOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4cGxvcmVyQXBpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZGF0YVNvdXJjZTogRGF0YVNvdXJjZSxcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgUldUOiBzdHJpbmcsXG4gICAgZXhwbG9yZXJVcmw6IHN0cmluZyxcbiAgICBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMucGVybWl0RXJnb1RyZWUgPSB3YXNtLkFkZHJlc3MuZnJvbV9iYXNlNTgoYWRkcmVzcylcbiAgICAgIC50b19lcmdvX3RyZWUoKVxuICAgICAgLnRvX2Jhc2UxNl9ieXRlcygpO1xuICAgIHRoaXMuUldUID0gUldUO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8gbG9nZ2VyIDogbmV3IER1bW15TG9nZ2VyKCk7XG4gICAgdGhpcy5hY3Rpb25zID0gbmV3IFBlcm1pdEFjdGlvbihkYXRhU291cmNlLCB0aGlzLmxvZ2dlcik7XG4gICAgdGhpcy5leHBsb3JlckFwaSA9IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkoZXhwbG9yZXJVcmwpO1xuICB9XG5cbiAgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIC8qKlxuICAgKiBnZXRzIGJsb2NrIGlkIGFuZCB0cmFuc2FjdGlvbnMgY29ycmVzcG9uZGluZyB0byB0aGUgYmxvY2sgYW5kIHNhdmVzIGlmIHRoZXkgYXJlIHZhbGlkIHJvc2VuXG4gICAqICB0cmFuc2FjdGlvbnMgYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyByZXR1cm4gdHJ1ZSBhbmQgaW4gY2FzZSBvZiBmYWlsdXJlIHJldHVybnMgZmFsc2VcbiAgICogQHBhcmFtIGJsb2NrXG4gICAqIEBwYXJhbSB0eHNcbiAgICovXG4gIHByb2Nlc3NUcmFuc2FjdGlvbnMgPSAoXG4gICAgdHhzOiBBcnJheTxUcmFuc2FjdGlvbj4sXG4gICAgYmxvY2s6IEJsb2NrRW50aXR5XG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBib3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgICAgICBjb25zdCBzcGVuZElkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICB0eHMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0cmFuc2FjdGlvbi5vdXRwdXRzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWRkaXRpb25hbFJlZ2lzdGVycy5SNCAmJlxuICAgICAgICAgICAgICAgIG91dHB1dC5hc3NldHMgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICBvdXRwdXQuYXNzZXRzWzBdLnRva2VuSWQgPT09IHRoaXMuUldUICYmXG4gICAgICAgICAgICAgICAgb3V0cHV0LmVyZ29UcmVlID09PSB0aGlzLnBlcm1pdEVyZ29UcmVlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJveE91dHB1dCA9IHdhc20uRXJnb0JveC5mcm9tX2pzb24oXG4gICAgICAgICAgICAgICAgICBKc29uQkkuc3RyaW5naWZ5KG91dHB1dClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHI0ID0gYm94T3V0cHV0LnJlZ2lzdGVyX3ZhbHVlKFxuICAgICAgICAgICAgICAgICAgd2FzbS5Ob25NYW5kYXRvcnlSZWdpc3RlcklkLlI0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAocjQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoUjRTZXJpYWxpemVkLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGJveGVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIGJveElkOiBvdXRwdXQuYm94SWQsXG4gICAgICAgICAgICAgICAgICAgICAgYm94U2VyaWFsaXplZDogQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hPdXRwdXQuc2lnbWFfc2VyaWFsaXplX2J5dGVzKClcbiAgICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgICAgICAgICBXSUQ6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFswXSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgICAgICAgICAgICAgIHR4SWQ6IG91dHB1dC50cmFuc2FjdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAvLyBlbXB0eVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBwcm9jZXNzIGlucHV0c1xuICAgICAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdHJhbnNhY3Rpb24uaW5wdXRzKSB7XG4gICAgICAgICAgICBzcGVuZElkcy5wdXNoKGlucHV0LmJveElkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWN0aW9uc1xuICAgICAgICAgIC5zdG9yZVBlcm1pdHMoYm94ZXMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgICAgICAgIC5zcGVuZFBlcm1pdHMoc3BlbmRJZHMsIGJsb2NrLCB0aGlzLmdldElkKCkpXG4gICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgIGBFcnJvciBpbiBzdG9yaW5nIHBlcm1pdHMgb2YgdGhlIGJsb2NrICR7YmxvY2t9OiAke2V9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYGJsb2NrICR7YmxvY2t9IGRvZXNuJ3Qgc2F2ZSBpbiB0aGUgZGF0YWJhc2Ugd2l0aCBlcnJvcjogJHtlfWBcbiAgICAgICAgKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGZvcmtCbG9jayA9IGFzeW5jIChoYXNoOiBzdHJpbmcpID0+IHtcbiAgICBhd2FpdCB0aGlzLmFjdGlvbnMuZGVsZXRlQmxvY2soaGFzaCwgdGhpcy5nZXRJZCgpKTtcbiAgfTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGFiYXNlIHdpdGggb2xkZXIgcGVybWl0cyByZWxhdGVkIHRvIHRoZSBhZGRyZXNzXG4gICAqL1xuICBpbml0aWFsaXplQm94ZXMgPSBhc3luYyAoaW5pdGlhbEhlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgbGV0IGFsbFN0b3JlZEJveElkcyA9IGF3YWl0IHRoaXMuYWN0aW9ucy5nZXRBbGxQZXJtaXRCb3hJZHModGhpcy5nZXRJZCgpKTtcbiAgICAvLyBFeHRyYWN0IHVuc3BlbnQgcGVybWl0c1xuICAgIGNvbnN0IHVuc3BlbnRQZXJtaXRzID0gYXdhaXQgdGhpcy5nZXRBbGxVbnNwZW50UGVybWl0cyhpbml0aWFsSGVpZ2h0KTtcbiAgICBjb25zdCB1bnNwZW50Qm94SWRzID0gdW5zcGVudFBlcm1pdHMubWFwKChib3gpID0+IGJveC5ib3hJZCk7XG4gICAgLy8gU3RvcmluZyBleHRyYWN0ZWQgcGVybWl0c1xuICAgIGZvciAoY29uc3QgcGVybWl0IG9mIHVuc3BlbnRQZXJtaXRzKSB7XG4gICAgICBpZiAoYWxsU3RvcmVkQm94SWRzLmluY2x1ZGVzKHBlcm1pdC5ib3hJZCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnVwZGF0ZVBlcm1pdChwZXJtaXQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYFVwZGF0ZWQgdGhlIGV4aXN0aW5nIHVuc3BlbnQgcGVybWl0IHdpdGggYm94SWQsIFske3Blcm1pdC5ib3hJZH1dYFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgVXBkYXRlZCBwZXJtaXQgWyR7SlNPTi5zdHJpbmdpZnkocGVybWl0KX1dYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmFjdGlvbnMuaW5zZXJ0UGVybWl0KHBlcm1pdCwgdGhpcy5nZXRJZCgpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICBgSW5zZXJ0ZWQgbmV3IHVuc3BlbnQgcGVybWl0IHdpdGggYm94SWQsIFske3Blcm1pdC5ib3hJZH1dYFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgSW5zZXJ0ZWQgcGVybWl0IFske0pTT04uc3RyaW5naWZ5KHBlcm1pdCl9XWApO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBSZW1vdmUgdXBkYXRlZCBwZXJtaXRzIGZyb20gZXhpc3RpbmcgcGVybWl0cyBpbiBkYXRhYmFzZVxuICAgIGFsbFN0b3JlZEJveElkcyA9IGRpZmZlcmVuY2UoYWxsU3RvcmVkQm94SWRzLCB1bnNwZW50Qm94SWRzKTtcbiAgICAvLyBWYWxpZGF0aW5nIHJlbWFpbmVkIHBlcm1pdHNcbiAgICBhd2FpdCB0aGlzLnZhbGlkYXRlT2xkU3RvcmVkUGVybWl0cyhhbGxTdG9yZWRCb3hJZHMsIGluaXRpYWxIZWlnaHQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBhbGwgcmVtYWluaW5nIHBlcm1pdHMgaW4gdGhlIGRhdGFiYXNlXG4gICAqIHVwZGF0ZSB0aGUgY29ycmVjdCBvbmVzIGFuZCByZW1vdmUgdGhlIGludmFsaWQgb25lc1xuICAgKiBAcGFyYW0gdW5jaGFuZ2VkU3RvcmVkQm94SWRzXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqL1xuICB2YWxpZGF0ZU9sZFN0b3JlZFBlcm1pdHMgPSBhc3luYyAoXG4gICAgdW5jaGFuZ2VkU3RvcmVkQm94SWRzOiBBcnJheTxzdHJpbmc+LFxuICAgIGluaXRpYWxIZWlnaHQ6IG51bWJlclxuICApID0+IHtcbiAgICBmb3IgKGNvbnN0IGJveElkIG9mIHVuY2hhbmdlZFN0b3JlZEJveElkcykge1xuICAgICAgY29uc3QgcGVybWl0ID0gYXdhaXQgdGhpcy5nZXRQZXJtaXRXaXRoQm94SWQoYm94SWQpO1xuICAgICAgaWYgKHBlcm1pdCAmJiBwZXJtaXQuc3BlbmRCbG9jayAmJiBwZXJtaXQuc3BlbmRIZWlnaHQpIHtcbiAgICAgICAgaWYgKHBlcm1pdC5zcGVuZEhlaWdodCA8IGluaXRpYWxIZWlnaHQpXG4gICAgICAgICAgYXdhaXQgdGhpcy5hY3Rpb25zLnVwZGF0ZVNwZW5kQmxvY2soXG4gICAgICAgICAgICBib3hJZCxcbiAgICAgICAgICAgIHRoaXMuZ2V0SWQoKSxcbiAgICAgICAgICAgIHBlcm1pdC5zcGVuZEJsb2NrLFxuICAgICAgICAgICAgcGVybWl0LnNwZW5kSGVpZ2h0XG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5yZW1vdmVQZXJtaXQoYm94SWQsIHRoaXMuZ2V0SWQoKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXG4gICAgICAgICAgYFJlbW92ZWQgaW52YWxpZCBib3ggWyR7Ym94SWR9XSBpbiBpbml0aWFsaXphdGlvbiB2YWxpZGF0aW9uYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJuIGV4dHJhY3RlZCBwZXJtaXQgZnJvbSBhIGJveFxuICAgKiBAcGFyYW0gYm94SWRcbiAgICovXG4gIGdldFBlcm1pdFdpdGhCb3hJZCA9IGFzeW5jIChcbiAgICBib3hJZDogc3RyaW5nXG4gICk6IFByb21pc2U8RXh0cmFjdGVkUGVybWl0IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJveCA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFCb3hlc1AxKGJveElkKTtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5leHRyYWN0UGVybWl0RGF0YShbYm94XSkpWzBdO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgUGVybWl0IHdpdGggYm94SWQgJHtib3hJZH0gZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHVuc3BlbnQgcGVybWl0c1xuICAgKiBAcGFyYW0gaW5pdGlhbEhlaWdodFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0QWxsVW5zcGVudFBlcm1pdHMgPSBhc3luYyAoXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyXG4gICk6IFByb21pc2U8QXJyYXk8RXh0cmFjdGVkUGVybWl0Pj4gPT4ge1xuICAgIGxldCBleHRyYWN0ZWRCb3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwLFxuICAgICAgdG90YWwgPSBEZWZhdWx0QXBpTGltaXQ7XG4gICAgd2hpbGUgKG9mZnNldCA8IHRvdGFsKSB7XG4gICAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFCb3hlc1Vuc3BlbnRCeWVyZ290cmVlUDEoXG4gICAgICAgIHRoaXMucGVybWl0RXJnb1RyZWUsXG4gICAgICAgIHsgb2Zmc2V0OiBvZmZzZXQsIGxpbWl0OiBEZWZhdWx0QXBpTGltaXQgfVxuICAgICAgKTtcbiAgICAgIGlmICghYm94ZXMuaXRlbXMpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignRXhwbG9yZXIgYXBpIG91dHB1dCBpdGVtcyBzaG91bGQgbm90IGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgZXhwbG9yZXIgYXBpIG91dHB1dCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlsdGVyZWRCb3hlcyA9IGF3YWl0IHRoaXMuZXh0cmFjdFBlcm1pdERhdGEoXG4gICAgICAgIGJveGVzLml0ZW1zLmZpbHRlcihcbiAgICAgICAgICAoYm94KSA9PiBib3guY3JlYXRpb25IZWlnaHQgJiYgYm94LmNyZWF0aW9uSGVpZ2h0IDwgaW5pdGlhbEhlaWdodFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgZXh0cmFjdGVkQm94ZXMgPSBbLi4uZXh0cmFjdGVkQm94ZXMsIC4uLmZpbHRlcmVkQm94ZXNdO1xuICAgICAgdG90YWwgPSBib3hlcy50b3RhbDtcbiAgICAgIG9mZnNldCArPSBEZWZhdWx0QXBpTGltaXQ7XG4gICAgfVxuICAgIHJldHVybiBleHRyYWN0ZWRCb3hlcztcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyBibG9jayBpbmZvcm1hdGlvbiBvZiB0eFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgZ2V0VHhCbG9jayA9IGFzeW5jICh0eElkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRoaXMuZXhwbG9yZXJBcGkudjEuZ2V0QXBpVjFUcmFuc2FjdGlvbnNQMSh0eElkKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHR4LmJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IHBlcm1pdCBkYXRhIGZyb20ganNvbiBib3hlc1xuICAgKiBhbmQgZmlsdGVyIHRvIGZpdCBpbiBhIHNwZWNpZmllZCBoZWlnaHQgcmFuZ2VcbiAgICogQHBhcmFtIGJveGVzXG4gICAqIEBwYXJhbSB0b0hlaWdodFxuICAgKiBAcGFyYW0gaGVpZ2h0RGlmZmVyZW5jZVxuICAgKiBAcmV0dXJucyBleHRyYWN0ZWQgcGVybWl0XG4gICAqL1xuICBleHRyYWN0UGVybWl0RGF0YSA9IGFzeW5jIChib3hlczogQXJyYXk8T3V0cHV0SW5mbz4pID0+IHtcbiAgICBjb25zdCBleHRyYWN0ZWRCb3hlczogQXJyYXk8RXh0cmFjdGVkUGVybWl0PiA9IFtdO1xuICAgIGZvciAoY29uc3QgYm94SnNvbiBvZiBib3hlcykge1xuICAgICAgY29uc3QgYm94ID0gZXJnb0xpYi5FcmdvQm94LmZyb21fanNvbihKc29uQkkuc3RyaW5naWZ5KGJveEpzb24pKTtcbiAgICAgIGNvbnN0IHI0ID0gYm94LnJlZ2lzdGVyX3ZhbHVlKDQpO1xuICAgICAgaWYgKHI0KSB7XG4gICAgICAgIGNvbnN0IFI0U2VyaWFsaXplZCA9IHI0LnRvX2NvbGxfY29sbF9ieXRlKCk7XG4gICAgICAgIGxldCBzcGVuZEJsb2NrLCBzcGVuZEhlaWdodDtcbiAgICAgICAgaWYgKGJveEpzb24uc3BlbnRUcmFuc2FjdGlvbklkKSB7XG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBhd2FpdCB0aGlzLmdldFR4QmxvY2soYm94SnNvbi5zcGVudFRyYW5zYWN0aW9uSWQpO1xuICAgICAgICAgIHNwZW5kQmxvY2sgPSBibG9jay5pZDtcbiAgICAgICAgICBzcGVuZEhlaWdodCA9IGJsb2NrLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBleHRyYWN0ZWRCb3hlcy5wdXNoKHtcbiAgICAgICAgICBib3hJZDogYm94LmJveF9pZCgpLnRvX3N0cigpLFxuICAgICAgICAgIGJveFNlcmlhbGl6ZWQ6IEJ1ZmZlci5mcm9tKGJveC5zaWdtYV9zZXJpYWxpemVfYnl0ZXMoKSkudG9TdHJpbmcoXG4gICAgICAgICAgICAnYmFzZTY0J1xuICAgICAgICAgICksXG4gICAgICAgICAgYmxvY2s6IGJveEpzb24uYmxvY2tJZCxcbiAgICAgICAgICBoZWlnaHQ6IGJveEpzb24uc2V0dGxlbWVudEhlaWdodCxcbiAgICAgICAgICBXSUQ6IEJ1ZmZlci5mcm9tKFI0U2VyaWFsaXplZFswXSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgIHR4SWQ6IGJveC50eF9pZCgpLnRvX3N0cigpLFxuICAgICAgICAgIHNwZW5kQmxvY2s6IHNwZW5kQmxvY2ssXG4gICAgICAgICAgc3BlbmRIZWlnaHQ6IHNwZW5kSGVpZ2h0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4dHJhY3RlZEJveGVzO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBQZXJtaXRFeHRyYWN0b3I7XG4iXX0=
@@ -5,6 +5,8 @@ interface ExtractedPermit {
5
5
  txId: string;
6
6
  block?: string;
7
7
  height?: number;
8
+ spendBlock?: string;
9
+ spendHeight?: number;
8
10
  }
9
11
  export { ExtractedPermit };
10
12
  //# sourceMappingURL=extractedPermit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractedPermit.d.ts","sourceRoot":"","sources":["../../lib/interfaces/extractedPermit.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"extractedPermit.d.ts","sourceRoot":"","sources":["../../lib/interfaces/extractedPermit.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGVkUGVybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRXh0cmFjdGVkUGVybWl0IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgYm94U2VyaWFsaXplZDogc3RyaW5nO1xuICBXSUQ6IHN0cmluZztcbiAgdHhJZDogc3RyaW5nO1xuICBibG9jaz86IHN0cmluZztcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgeyBFeHRyYWN0ZWRQZXJtaXQgfTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGVkUGVybWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2ludGVyZmFjZXMvZXh0cmFjdGVkUGVybWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRXh0cmFjdGVkUGVybWl0IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgYm94U2VyaWFsaXplZDogc3RyaW5nO1xuICBXSUQ6IHN0cmluZztcbiAgdHhJZDogc3RyaW5nO1xuICBibG9jaz86IHN0cmluZztcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBzcGVuZEJsb2NrPzogc3RyaW5nO1xuICBzcGVuZEhlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IHsgRXh0cmFjdGVkUGVybWl0IH07XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,eAAO,MAAM,UAAU;;;CAGtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,eAAO,MAAM,UAAU;;;CAGtB,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { migration1688554842087 } from './postgres/1688554842087-migration';
2
+ import { migration1689175974257 } from './postgres/1689175974257-migration';
2
3
  import { migration1688555766601 } from './sqlite/1688555766601-migration';
4
+ import { migration1689175103163 } from './sqlite/1689175103163-migration';
3
5
  export const migrations = {
4
- sqlite: [migration1688555766601],
5
- postgres: [migration1688554842087],
6
+ sqlite: [migration1688555766601, migration1689175103163],
7
+ postgres: [migration1688554842087, migration1689175974257],
6
8
  };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDaEMsUUFBUSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTQ4NDIwODcgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODg1NTQ4NDIwODctbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTU3NjY2MDEgfSBmcm9tICcuL3NxbGl0ZS8xNjg4NTU1NzY2NjAxLW1pZ3JhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRpb25zID0ge1xuICBzcWxpdGU6IFttaWdyYXRpb24xNjg4NTU1NzY2NjAxXSxcbiAgcG9zdGdyZXM6IFttaWdyYXRpb24xNjg4NTU0ODQyMDg3XSxcbn07XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDeEQsUUFBUSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7Q0FDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTQ4NDIwODcgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODg1NTQ4NDIwODctbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODkxNzU5NzQyNTcgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODkxNzU5NzQyNTctbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTU3NjY2MDEgfSBmcm9tICcuL3NxbGl0ZS8xNjg4NTU1NzY2NjAxLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjg5MTc1MTAzMTYzIH0gZnJvbSAnLi9zcWxpdGUvMTY4OTE3NTEwMzE2My1taWdyYXRpb24nO1xuXG5leHBvcnQgY29uc3QgbWlncmF0aW9ucyA9IHtcbiAgc3FsaXRlOiBbbWlncmF0aW9uMTY4ODU1NTc2NjYwMSwgbWlncmF0aW9uMTY4OTE3NTEwMzE2M10sXG4gIHBvc3RncmVzOiBbbWlncmF0aW9uMTY4ODU1NDg0MjA4NywgbWlncmF0aW9uMTY4OTE3NTk3NDI1N10sXG59O1xuIl19
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class migration1689175974257 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1689175974257-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1689175974257-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/postgres/1689175974257-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAuB3D"}
@@ -0,0 +1,50 @@
1
+ export class migration1689175974257 {
2
+ name = 'migration1689175974257';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`
5
+ ALTER TABLE "event_trigger_entity" DROP COLUMN "spendBlock"
6
+ `);
7
+ await queryRunner.query(`
8
+ ALTER TABLE "event_trigger_entity"
9
+ ADD "spendBlock" text
10
+ `);
11
+ await queryRunner.query(`
12
+ ALTER TABLE "commitment_entity" DROP COLUMN "spendBlock"
13
+ `);
14
+ await queryRunner.query(`
15
+ ALTER TABLE "commitment_entity"
16
+ ADD "spendBlock" text
17
+ `);
18
+ await queryRunner.query(`
19
+ ALTER TABLE "permit_entity" DROP COLUMN "spendBlock"
20
+ `);
21
+ await queryRunner.query(`
22
+ ALTER TABLE "permit_entity"
23
+ ADD "spendBlock" text
24
+ `);
25
+ }
26
+ async down(queryRunner) {
27
+ await queryRunner.query(`
28
+ ALTER TABLE "permit_entity" DROP COLUMN "spendBlock"
29
+ `);
30
+ await queryRunner.query(`
31
+ ALTER TABLE "permit_entity"
32
+ ADD "spendBlock" character varying
33
+ `);
34
+ await queryRunner.query(`
35
+ ALTER TABLE "commitment_entity" DROP COLUMN "spendBlock"
36
+ `);
37
+ await queryRunner.query(`
38
+ ALTER TABLE "commitment_entity"
39
+ ADD "spendBlock" character varying
40
+ `);
41
+ await queryRunner.query(`
42
+ ALTER TABLE "event_trigger_entity" DROP COLUMN "spendBlock"
43
+ `);
44
+ await queryRunner.query(`
45
+ ALTER TABLE "event_trigger_entity"
46
+ ADD "spendBlock" character varying
47
+ `);
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY4OTE3NTk3NDI1Ny1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNjg5MTc1OTc0MjU3LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ3hDLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICd0eXBlb3JtJztcblxuZXhwb3J0IGNsYXNzIG1pZ3JhdGlvbjE2ODkxNzU5NzQyNTcgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICBuYW1lID0gJ21pZ3JhdGlvbjE2ODkxNzU5NzQyNTcnO1xuXG4gIHB1YmxpYyBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCIgRFJPUCBDT0xVTU4gXCJzcGVuZEJsb2NrXCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJzcGVuZEJsb2NrXCIgdGV4dFxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImNvbW1pdG1lbnRfZW50aXR5XCIgRFJPUCBDT0xVTU4gXCJzcGVuZEJsb2NrXCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJzcGVuZEJsb2NrXCIgdGV4dFxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIiBEUk9QIENPTFVNTiBcInNwZW5kQmxvY2tcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIlxuICAgICAgICAgICAgQUREIFwic3BlbmRCbG9ja1wiIHRleHRcbiAgICAgICAgYCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIiBEUk9QIENPTFVNTiBcInNwZW5kQmxvY2tcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInBlcm1pdF9lbnRpdHlcIlxuICAgICAgICAgICAgQUREIFwic3BlbmRCbG9ja1wiIGNoYXJhY3RlciB2YXJ5aW5nXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwiY29tbWl0bWVudF9lbnRpdHlcIiBEUk9QIENPTFVNTiBcInNwZW5kQmxvY2tcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImNvbW1pdG1lbnRfZW50aXR5XCJcbiAgICAgICAgICAgIEFERCBcInNwZW5kQmxvY2tcIiBjaGFyYWN0ZXIgdmFyeWluZ1xuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCIgRFJPUCBDT0xVTU4gXCJzcGVuZEJsb2NrXCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJzcGVuZEJsb2NrXCIgY2hhcmFjdGVyIHZhcnlpbmdcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class migration1689175103163 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1689175103163-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1689175103163-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/sqlite/1689175103163-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmM3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAkM3D"}