@rosen-bridge/watcher-data-extractor 5.1.0 → 5.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 (38) hide show
  1. package/dist/actions/EventTriggerDB.d.ts +33 -0
  2. package/dist/actions/EventTriggerDB.d.ts.map +1 -0
  3. package/dist/actions/EventTriggerDB.js +145 -0
  4. package/dist/actions/commitmentDB.d.ts +32 -0
  5. package/dist/actions/commitmentDB.d.ts.map +1 -0
  6. package/dist/actions/commitmentDB.js +129 -0
  7. package/dist/actions/permitDB.d.ts +39 -0
  8. package/dist/actions/permitDB.d.ts.map +1 -0
  9. package/dist/actions/permitDB.js +166 -0
  10. package/dist/extractor/permitExtractor.d.ts +2 -0
  11. package/dist/extractor/permitExtractor.d.ts.map +1 -1
  12. package/dist/migrations/index.d.ts +4 -4
  13. package/dist/migrations/index.d.ts.map +1 -1
  14. package/dist/network/ergoNetworkApi.d.ts +15 -0
  15. package/dist/network/ergoNetworkApi.d.ts.map +1 -0
  16. package/dist/network/ergoNetworkApi.js +27 -0
  17. package/dist/network/parser.d.ts +8 -0
  18. package/dist/network/parser.d.ts.map +1 -0
  19. package/dist/network/parser.js +5 -0
  20. package/package.json +4 -4
  21. package/dist/migrations/postgres/1703509820315-migration.d.ts +0 -7
  22. package/dist/migrations/postgres/1703509820315-migration.d.ts.map +0 -1
  23. package/dist/migrations/postgres/1703509820315-migration.js +0 -66
  24. package/dist/migrations/postgres/1708189757400-migration.d.ts +0 -7
  25. package/dist/migrations/postgres/1708189757400-migration.d.ts.map +0 -1
  26. package/dist/migrations/postgres/1708189757400-migration.js +0 -28
  27. package/dist/migrations/sqlite/1703509480176-migration.d.ts +0 -7
  28. package/dist/migrations/sqlite/1703509480176-migration.d.ts.map +0 -1
  29. package/dist/migrations/sqlite/1703509480176-migration.js +0 -421
  30. package/dist/migrations/sqlite/1708175020320-migration.d.ts +0 -7
  31. package/dist/migrations/sqlite/1708175020320-migration.d.ts.map +0 -1
  32. package/dist/migrations/sqlite/1708175020320-migration.js +0 -27
  33. package/dist/migrations/sqlite/migration1706610773176-migration.d.ts +0 -7
  34. package/dist/migrations/sqlite/migration1706610773176-migration.d.ts.map +0 -1
  35. package/dist/migrations/sqlite/migration1706610773176-migration.js +0 -419
  36. package/dist/transformers.d.ts +0 -17
  37. package/dist/transformers.d.ts.map +0 -1
  38. package/dist/transformers.js +0 -21
@@ -1,419 +0,0 @@
1
- import { getWidInfo } from '../../utils';
2
- export class migration1706610773176 {
3
- name = 'migration1706610773176';
4
- async up(queryRunner) {
5
- // get all events before removing WIDs column
6
- const events = await queryRunner.query(`
7
- SELECT "id", "WIDs" from "event_trigger_entity"
8
- `);
9
- await queryRunner.query(`
10
- CREATE TABLE "temporary_event_trigger_entity" (
11
- "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
12
- "eventId" varchar NOT NULL DEFAULT ('Not-set'),
13
- "txId" varchar NOT NULL,
14
- "extractor" varchar NOT NULL,
15
- "boxId" varchar NOT NULL,
16
- "boxSerialized" varchar NOT NULL,
17
- "block" varchar NOT NULL,
18
- "height" integer NOT NULL,
19
- "fromChain" varchar NOT NULL,
20
- "toChain" varchar NOT NULL,
21
- "fromAddress" varchar NOT NULL,
22
- "toAddress" varchar NOT NULL,
23
- "amount" varchar NOT NULL,
24
- "bridgeFee" varchar NOT NULL,
25
- "networkFee" varchar NOT NULL,
26
- "sourceChainTokenId" varchar NOT NULL,
27
- "sourceChainHeight" integer NOT NULL,
28
- "targetChainTokenId" varchar NOT NULL,
29
- "sourceTxId" varchar NOT NULL,
30
- "sourceBlockId" varchar NOT NULL,
31
- "spendBlock" text,
32
- "spendHeight" integer,
33
- "spendTxId" text,
34
- "result" text,
35
- "paymentTxId" text,
36
- "WIDsCount" integer NOT NULL,
37
- "WIDsHash" varchar NOT NULL,
38
- CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
39
- )
40
- `);
41
- await queryRunner.query(`
42
- INSERT INTO "temporary_event_trigger_entity"(
43
- "id",
44
- "eventId",
45
- "txId",
46
- "extractor",
47
- "boxId",
48
- "boxSerialized",
49
- "block",
50
- "height",
51
- "fromChain",
52
- "toChain",
53
- "fromAddress",
54
- "toAddress",
55
- "amount",
56
- "bridgeFee",
57
- "networkFee",
58
- "sourceChainTokenId",
59
- "sourceChainHeight",
60
- "targetChainTokenId",
61
- "sourceTxId",
62
- "sourceBlockId",
63
- "spendBlock",
64
- "spendHeight",
65
- "spendTxId",
66
- "result",
67
- "paymentTxId",
68
- "WIDsCount",
69
- "WIDsHash"
70
- )
71
- SELECT "id",
72
- "eventId",
73
- "txId",
74
- "extractor",
75
- "boxId",
76
- "boxSerialized",
77
- "block",
78
- "height",
79
- "fromChain",
80
- "toChain",
81
- "fromAddress",
82
- "toAddress",
83
- "amount",
84
- "bridgeFee",
85
- "networkFee",
86
- "sourceChainTokenId",
87
- "sourceChainHeight",
88
- "targetChainTokenId",
89
- "sourceTxId",
90
- "sourceBlockId",
91
- "spendBlock",
92
- "spendHeight",
93
- "spendTxId",
94
- "result",
95
- "paymentTxId",
96
- 0,
97
- ''
98
- FROM "event_trigger_entity"
99
- `);
100
- await queryRunner.query(`
101
- DROP TABLE "event_trigger_entity"
102
- `);
103
- await queryRunner.query(`
104
- ALTER TABLE "temporary_event_trigger_entity"
105
- RENAME TO "event_trigger_entity"
106
- `);
107
- // calculate `WIDsCount` and `WIDsHash` columns in `event_trigger_entity`
108
- for (const event of events) {
109
- const { WIDsHash, WIDsCount } = getWidInfo(event.WIDs);
110
- await queryRunner.query(`
111
- UPDATE "event_trigger_entity"
112
- SET "WIDsHash" = '${WIDsHash}', "WIDsCount" = '${WIDsCount}'
113
- WHERE "id" = ${event.id}
114
- `);
115
- }
116
- await queryRunner.query(`
117
- CREATE TABLE "temporary_commitment_entity" (
118
- "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
119
- "txId" varchar NOT NULL,
120
- "extractor" varchar NOT NULL,
121
- "eventId" varchar NOT NULL,
122
- "commitment" varchar NOT NULL,
123
- "WID" varchar NOT NULL,
124
- "boxId" varchar NOT NULL,
125
- "block" varchar NOT NULL,
126
- "height" integer NOT NULL,
127
- "boxSerialized" varchar NOT NULL,
128
- "spendBlock" text,
129
- "spendHeight" integer,
130
- "rwtCount" varchar,
131
- "spendTxId" text,
132
- "spendIndex" integer,
133
- CONSTRAINT "UQ_cc294fc304a66f8f194840f1ece" UNIQUE ("boxId", "extractor")
134
- )
135
- `);
136
- await queryRunner.query(`
137
- INSERT INTO "temporary_commitment_entity"(
138
- "id",
139
- "txId",
140
- "extractor",
141
- "eventId",
142
- "commitment",
143
- "WID",
144
- "boxId",
145
- "block",
146
- "height",
147
- "boxSerialized",
148
- "spendBlock",
149
- "spendHeight",
150
- "rwtCount"
151
- )
152
- SELECT "id",
153
- "txId",
154
- "extractor",
155
- "eventId",
156
- "commitment",
157
- "WID",
158
- "boxId",
159
- "block",
160
- "height",
161
- "boxSerialized",
162
- "spendBlock",
163
- "spendHeight",
164
- "rwtCount"
165
- FROM "commitment_entity"
166
- `);
167
- await queryRunner.query(`
168
- DROP TABLE "commitment_entity"
169
- `);
170
- await queryRunner.query(`
171
- ALTER TABLE "temporary_commitment_entity"
172
- RENAME TO "commitment_entity"
173
- `);
174
- }
175
- async down(queryRunner) {
176
- await queryRunner.query(`
177
- ALTER TABLE "commitment_entity"
178
- RENAME TO "temporary_commitment_entity"
179
- `);
180
- await queryRunner.query(`
181
- CREATE TABLE "commitment_entity" (
182
- "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
183
- "txId" varchar NOT NULL,
184
- "extractor" varchar NOT NULL,
185
- "eventId" varchar NOT NULL,
186
- "commitment" varchar NOT NULL,
187
- "WID" varchar NOT NULL,
188
- "boxId" varchar NOT NULL,
189
- "block" varchar NOT NULL,
190
- "height" integer NOT NULL,
191
- "boxSerialized" varchar NOT NULL,
192
- "spendBlock" text,
193
- "spendHeight" integer,
194
- "rwtCount" varchar,
195
- CONSTRAINT "UQ_cc294fc304a66f8f194840f1ece" UNIQUE ("boxId", "extractor")
196
- )
197
- `);
198
- await queryRunner.query(`
199
- INSERT INTO "commitment_entity"(
200
- "id",
201
- "txId",
202
- "extractor",
203
- "eventId",
204
- "commitment",
205
- "WID",
206
- "boxId",
207
- "block",
208
- "height",
209
- "boxSerialized",
210
- "spendBlock",
211
- "spendHeight",
212
- "rwtCount"
213
- )
214
- SELECT "id",
215
- "txId",
216
- "extractor",
217
- "eventId",
218
- "commitment",
219
- "WID",
220
- "boxId",
221
- "block",
222
- "height",
223
- "boxSerialized",
224
- "spendBlock",
225
- "spendHeight",
226
- "rwtCount"
227
- FROM "temporary_commitment_entity"
228
- `);
229
- await queryRunner.query(`
230
- DROP TABLE "temporary_commitment_entity"
231
- `);
232
- await queryRunner.query(`
233
- ALTER TABLE "event_trigger_entity"
234
- RENAME TO "temporary_event_trigger_entity"
235
- `);
236
- await queryRunner.query(`
237
- CREATE TABLE "event_trigger_entity" (
238
- "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
239
- "eventId" varchar NOT NULL DEFAULT ('Not-set'),
240
- "txId" varchar NOT NULL,
241
- "extractor" varchar NOT NULL,
242
- "boxId" varchar NOT NULL,
243
- "boxSerialized" varchar NOT NULL,
244
- "block" varchar NOT NULL,
245
- "height" integer NOT NULL,
246
- "fromChain" varchar NOT NULL,
247
- "toChain" varchar NOT NULL,
248
- "fromAddress" varchar NOT NULL,
249
- "toAddress" varchar NOT NULL,
250
- "amount" varchar NOT NULL,
251
- "bridgeFee" varchar NOT NULL,
252
- "networkFee" varchar NOT NULL,
253
- "sourceChainTokenId" varchar NOT NULL,
254
- "sourceChainHeight" integer NOT NULL,
255
- "targetChainTokenId" varchar NOT NULL,
256
- "sourceTxId" varchar NOT NULL,
257
- "sourceBlockId" varchar NOT NULL,
258
- "spendBlock" text,
259
- "spendHeight" integer,
260
- "spendTxId" text,
261
- "result" text,
262
- "paymentTxId" text,
263
- CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
264
- )
265
- `);
266
- await queryRunner.query(`
267
- INSERT INTO "event_trigger_entity"(
268
- "id",
269
- "eventId",
270
- "txId",
271
- "extractor",
272
- "boxId",
273
- "boxSerialized",
274
- "block",
275
- "height",
276
- "fromChain",
277
- "toChain",
278
- "fromAddress",
279
- "toAddress",
280
- "amount",
281
- "bridgeFee",
282
- "networkFee",
283
- "sourceChainTokenId",
284
- "sourceChainHeight",
285
- "targetChainTokenId",
286
- "sourceTxId",
287
- "sourceBlockId",
288
- "spendBlock",
289
- "spendHeight",
290
- "spendTxId",
291
- "result",
292
- "paymentTxId"
293
- )
294
- SELECT "id",
295
- "eventId",
296
- "txId",
297
- "extractor",
298
- "boxId",
299
- "boxSerialized",
300
- "block",
301
- "height",
302
- "fromChain",
303
- "toChain",
304
- "fromAddress",
305
- "toAddress",
306
- "amount",
307
- "bridgeFee",
308
- "networkFee",
309
- "sourceChainTokenId",
310
- "sourceChainHeight",
311
- "targetChainTokenId",
312
- "sourceTxId",
313
- "sourceBlockId",
314
- "spendBlock",
315
- "spendHeight",
316
- "spendTxId",
317
- "result",
318
- "paymentTxId"
319
- FROM "temporary_event_trigger_entity"
320
- `);
321
- await queryRunner.query(`
322
- DROP TABLE "temporary_event_trigger_entity"
323
- `);
324
- await queryRunner.query(`
325
- ALTER TABLE "event_trigger_entity"
326
- RENAME TO "temporary_event_trigger_entity"
327
- `);
328
- await queryRunner.query(`
329
- CREATE TABLE "event_trigger_entity" (
330
- "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
331
- "eventId" varchar NOT NULL DEFAULT ('Not-set'),
332
- "txId" varchar NOT NULL,
333
- "extractor" varchar NOT NULL,
334
- "boxId" varchar NOT NULL,
335
- "boxSerialized" varchar NOT NULL,
336
- "block" varchar NOT NULL,
337
- "height" integer NOT NULL,
338
- "fromChain" varchar NOT NULL,
339
- "toChain" varchar NOT NULL,
340
- "fromAddress" varchar NOT NULL,
341
- "toAddress" varchar NOT NULL,
342
- "amount" varchar NOT NULL,
343
- "bridgeFee" varchar NOT NULL,
344
- "networkFee" varchar NOT NULL,
345
- "sourceChainTokenId" varchar NOT NULL,
346
- "sourceChainHeight" integer NOT NULL,
347
- "targetChainTokenId" varchar NOT NULL,
348
- "sourceTxId" varchar NOT NULL,
349
- "sourceBlockId" varchar NOT NULL,
350
- "WIDs" varchar NOT NULL,
351
- "spendBlock" text,
352
- "spendHeight" integer,
353
- "spendTxId" text,
354
- "result" text,
355
- "paymentTxId" text,
356
- CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
357
- )
358
- `);
359
- await queryRunner.query(`
360
- INSERT INTO "event_trigger_entity"(
361
- "id",
362
- "eventId",
363
- "txId",
364
- "extractor",
365
- "boxId",
366
- "boxSerialized",
367
- "block",
368
- "height",
369
- "fromChain",
370
- "toChain",
371
- "fromAddress",
372
- "toAddress",
373
- "amount",
374
- "bridgeFee",
375
- "networkFee",
376
- "sourceChainTokenId",
377
- "sourceChainHeight",
378
- "targetChainTokenId",
379
- "sourceTxId",
380
- "sourceBlockId",
381
- "spendBlock",
382
- "spendHeight",
383
- "spendTxId",
384
- "result",
385
- "paymentTxId"
386
- )
387
- SELECT "id",
388
- "eventId",
389
- "txId",
390
- "extractor",
391
- "boxId",
392
- "boxSerialized",
393
- "block",
394
- "height",
395
- "fromChain",
396
- "toChain",
397
- "fromAddress",
398
- "toAddress",
399
- "amount",
400
- "bridgeFee",
401
- "networkFee",
402
- "sourceChainTokenId",
403
- "sourceChainHeight",
404
- "targetChainTokenId",
405
- "sourceTxId",
406
- "sourceBlockId",
407
- "spendBlock",
408
- "spendHeight",
409
- "spendTxId",
410
- "result",
411
- "paymentTxId"
412
- FROM "temporary_event_trigger_entity"
413
- `);
414
- await queryRunner.query(`
415
- DROP TABLE "temporary_event_trigger_entity"
416
- `);
417
- }
418
- }
419
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uMTcwNjYxMDc3MzE3Ni1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9zcWxpdGUvbWlncmF0aW9uMTcwNjYxMDc3MzE3Ni1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6QyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLDZDQUE2QztRQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRWxDLENBQUMsQ0FBQztRQUVQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQStCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBMERuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztRQUVQLHlFQUF5RTtRQUN6RSxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUMxQixNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBRSxLQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEUsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztrQ0FFSSxRQUFRLHFCQUFxQixTQUFTOzZCQUMzQyxLQUFLLENBQUMsRUFBRTtXQUMxQixDQUFDLENBQUM7U0FDUjtRQUVELE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQW1CbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E4Qm5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDeEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztTQWlCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E4Qm5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQTZCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FzRG5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E4Qm5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBc0RuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCBFdmVudFRyaWdnZXJFbnRpdHkgZnJvbSAnLi4vLi4vZW50aXRpZXMvRXZlbnRUcmlnZ2VyRW50aXR5JztcbmltcG9ydCB7IGdldFdpZEluZm8gfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBtaWdyYXRpb24xNzA2NjEwNzczMTc2IGltcGxlbWVudHMgTWlncmF0aW9uSW50ZXJmYWNlIHtcbiAgbmFtZSA9ICdtaWdyYXRpb24xNzA2NjEwNzczMTc2JztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZ2V0IGFsbCBldmVudHMgYmVmb3JlIHJlbW92aW5nIFdJRHMgY29sdW1uXG4gICAgY29uc3QgZXZlbnRzID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgU0VMRUNUIFwiaWRcIiwgXCJXSURzXCIgZnJvbSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG5cbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMIERFRkFVTFQgKCdOb3Qtc2V0JyksXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJsb2NrXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidG9DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYW1vdW50XCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlVHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIiBpbnRlZ2VyLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInJlc3VsdFwiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJwYXltZW50VHhJZFwiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJXSURzQ291bnRcIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiV0lEc0hhc2hcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgXCJVUV9jOTA1ZjIyMWExYjYyNzFjYTQ0MDVkYmJlNWZcIiBVTklRVUUgKFwiYm94SWRcIiwgXCJleHRyYWN0b3JcIilcbiAgICAgICAgICAgIClcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgSU5TRVJUIElOVE8gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEc0NvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEc0hhc2hcIlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIFNFTEVDVCBcImlkXCIsXG4gICAgICAgICAgICAgICAgXCJldmVudElkXCIsXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgXCJleHRyYWN0b3JcIixcbiAgICAgICAgICAgICAgICBcImJveElkXCIsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICBcInRvQ2hhaW5cIixcbiAgICAgICAgICAgICAgICBcImZyb21BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICBcImFtb3VudFwiLFxuICAgICAgICAgICAgICAgIFwiYnJpZGdlRmVlXCIsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICBcInNvdXJjZVR4SWRcIixcbiAgICAgICAgICAgICAgICBcInNvdXJjZUJsb2NrSWRcIixcbiAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICBcInNwZW5kSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIixcbiAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgIFwicGF5bWVudFR4SWRcIixcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICBGUk9NIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInRlbXBvcmFyeV9ldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcblxuICAgIC8vIGNhbGN1bGF0ZSBgV0lEc0NvdW50YCBhbmQgYFdJRHNIYXNoYCBjb2x1bW5zIGluIGBldmVudF90cmlnZ2VyX2VudGl0eWBcbiAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgY29uc3QgeyBXSURzSGFzaCwgV0lEc0NvdW50IH0gPSBnZXRXaWRJbmZvKChldmVudCBhcyBhbnkpLldJRHMpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgICBVUERBVEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICAgIFNFVCBcIldJRHNIYXNoXCIgPSAnJHtXSURzSGFzaH0nLCBcIldJRHNDb3VudFwiID0gJyR7V0lEc0NvdW50fSdcbiAgICAgICAgICAgICAgV0hFUkUgXCJpZFwiID0gJHtldmVudC5pZH1cbiAgICAgICAgICBgKTtcbiAgICB9XG5cbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJ0ZW1wb3JhcnlfY29tbWl0bWVudF9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJXSURcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwic3BlbmRJbmRleFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlVRX2NjMjk0ZmMzMDRhNjZmOGYxOTQ4NDBmMWVjZVwiIFVOSVFVRSAoXCJib3hJZFwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBJTlNFUlQgSU5UTyBcInRlbXBvcmFyeV9jb21taXRtZW50X2VudGl0eVwiKFxuICAgICAgICAgICAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjb21taXRtZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgU0VMRUNUIFwiaWRcIixcbiAgICAgICAgICAgICAgICBcInR4SWRcIixcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiLFxuICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICBcInJ3dENvdW50XCJcbiAgICAgICAgICAgIEZST00gXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwidGVtcG9yYXJ5X2NvbW1pdG1lbnRfZW50aXR5XCJcbiAgICAgICAgICAgICAgICBSRU5BTUUgVE8gXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwidGVtcG9yYXJ5X2NvbW1pdG1lbnRfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwiY29tbWl0bWVudF9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJXSURcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlVRX2NjMjk0ZmMzMDRhNjZmOGYxOTQ4NDBmMWVjZVwiIFVOSVFVRSAoXCJib3hJZFwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBJTlNFUlQgSU5UTyBcImNvbW1pdG1lbnRfZW50aXR5XCIoXG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImNvbW1pdG1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJXSURcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJ3dENvdW50XCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJldmVudElkXCIsXG4gICAgICAgICAgICAgICAgXCJjb21taXRtZW50XCIsXG4gICAgICAgICAgICAgICAgXCJXSURcIixcbiAgICAgICAgICAgICAgICBcImJveElkXCIsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwicnd0Q291bnRcIlxuICAgICAgICAgICAgRlJPTSBcInRlbXBvcmFyeV9jb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJ0ZW1wb3JhcnlfY29tbWl0bWVudF9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgICAgICAgICBSRU5BTUUgVE8gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcImlkXCIgaW50ZWdlciBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5UIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiIHZhcmNoYXIgTk9UIE5VTEwgREVGQVVMVCAoJ05vdC1zZXQnKSxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZyb21DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZyb21BZGRyZXNzXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInRvQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYnJpZGdlRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIm5ldHdvcmtGZWVcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluSGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInRhcmdldENoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUJsb2NrSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwicmVzdWx0XCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYzkwNWYyMjFhMWI2MjcxY2E0NDA1ZGJiZTVmXCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgIEZST00gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMIERFRkFVTFQgKCdOb3Qtc2V0JyksXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJsb2NrXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidG9DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYW1vdW50XCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlVHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIldJRHNcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwicmVzdWx0XCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYzkwNWYyMjFhMWI2MjcxY2E0NDA1ZGJiZTVmXCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgIEZST00gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,17 +0,0 @@
1
- export declare const bigintTransformer: {
2
- /**
3
- * converts data from string in database to bigint in code
4
- *
5
- * @param {string} value
6
- * @return {bigint}
7
- */
8
- from(value: string): bigint;
9
- /**
10
- * converts data from bigint in code to string in database
11
- *
12
- * @param {bigint} value
13
- * @return {string}
14
- */
15
- to(value: bigint): string;
16
- };
17
- //# sourceMappingURL=transformers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../lib/transformers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;IAC5B;;;;;OAKG;gBACS,MAAM;IAGlB;;;;;OAKG;cACO,MAAM;CAGjB,CAAC"}
@@ -1,21 +0,0 @@
1
- export const bigintTransformer = {
2
- /**
3
- * converts data from string in database to bigint in code
4
- *
5
- * @param {string} value
6
- * @return {bigint}
7
- */
8
- from(value) {
9
- return BigInt(value);
10
- },
11
- /**
12
- * converts data from bigint in code to string in database
13
- *
14
- * @param {bigint} value
15
- * @return {string}
16
- */
17
- to(value) {
18
- return value.toString();
19
- },
20
- };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL3RyYW5zZm9ybWVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQjs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxLQUFhO1FBQ2hCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILEVBQUUsQ0FBQyxLQUFhO1FBQ2QsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYmlnaW50VHJhbnNmb3JtZXIgPSB7XG4gIC8qKlxuICAgKiBjb252ZXJ0cyBkYXRhIGZyb20gc3RyaW5nIGluIGRhdGFiYXNlIHRvIGJpZ2ludCBpbiBjb2RlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcmV0dXJuIHtiaWdpbnR9XG4gICAqL1xuICBmcm9tKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gQmlnSW50KHZhbHVlKTtcbiAgfSxcbiAgLyoqXG4gICAqIGNvbnZlcnRzIGRhdGEgZnJvbSBiaWdpbnQgaW4gY29kZSB0byBzdHJpbmcgaW4gZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIHtiaWdpbnR9IHZhbHVlXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvKHZhbHVlOiBiaWdpbnQpIHtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgfSxcbn07XG4iXX0=