israeli-bank-scrapers 3.4.1 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +42 -0
  2. package/lib/definitions.d.ts +6 -1
  3. package/lib/definitions.js +6 -1
  4. package/lib/helpers/fetch.d.ts +2 -1
  5. package/lib/helpers/fetch.js +26 -9
  6. package/lib/helpers/storage.d.ts +2 -0
  7. package/lib/helpers/storage.js +17 -0
  8. package/lib/index.d.ts +2 -1
  9. package/lib/index.js +47 -3
  10. package/lib/scrapers/amex.d.ts +1 -1
  11. package/lib/scrapers/amex.js +1 -1
  12. package/lib/scrapers/amex.test.js +3 -2
  13. package/lib/scrapers/base-beinleumi-group.d.ts +7 -4
  14. package/lib/scrapers/base-beinleumi-group.js +1 -1
  15. package/lib/scrapers/base-isracard-amex.d.ts +8 -3
  16. package/lib/scrapers/base-isracard-amex.js +13 -11
  17. package/lib/scrapers/base-scraper-with-browser.d.ts +6 -3
  18. package/lib/scrapers/base-scraper-with-browser.js +14 -11
  19. package/lib/scrapers/base-scraper.d.ts +9 -119
  20. package/lib/scrapers/base-scraper.js +34 -50
  21. package/lib/scrapers/beyahad-bishvilha.d.ts +6 -3
  22. package/lib/scrapers/beyahad-bishvilha.js +1 -1
  23. package/lib/scrapers/discount.d.ts +9 -4
  24. package/lib/scrapers/discount.js +4 -4
  25. package/lib/scrapers/discount.test.js +4 -3
  26. package/lib/scrapers/errors.d.ts +16 -0
  27. package/lib/scrapers/errors.js +37 -0
  28. package/lib/scrapers/factory.d.ts +2 -16
  29. package/lib/scrapers/factory.js +6 -1
  30. package/lib/scrapers/hapoalim.d.ts +6 -3
  31. package/lib/scrapers/hapoalim.js +1 -1
  32. package/lib/scrapers/hapoalim.test.js +2 -2
  33. package/lib/scrapers/interface.d.ts +146 -0
  34. package/lib/scrapers/interface.js +2 -0
  35. package/lib/scrapers/isracard.d.ts +1 -1
  36. package/lib/scrapers/isracard.js +1 -1
  37. package/lib/scrapers/isracard.test.js +4 -3
  38. package/lib/scrapers/leumi.d.ts +8 -4
  39. package/lib/scrapers/leumi.js +1 -1
  40. package/lib/scrapers/max.d.ts +6 -3
  41. package/lib/scrapers/max.js +1 -1
  42. package/lib/scrapers/mizrahi.d.ts +7 -3
  43. package/lib/scrapers/mizrahi.js +11 -9
  44. package/lib/scrapers/one-zero-queries.d.ts +2 -0
  45. package/lib/scrapers/one-zero-queries.js +562 -0
  46. package/lib/scrapers/one-zero.d.ts +36 -0
  47. package/lib/scrapers/one-zero.js +304 -0
  48. package/lib/scrapers/one-zero.test.d.ts +1 -0
  49. package/lib/scrapers/one-zero.test.js +67 -0
  50. package/lib/scrapers/otsar-hahayal.d.ts +6 -3
  51. package/lib/scrapers/otsar-hahayal.js +1 -1
  52. package/lib/scrapers/union-bank.d.ts +6 -3
  53. package/lib/scrapers/union-bank.js +1 -1
  54. package/lib/scrapers/visa-cal.d.ts +103 -15
  55. package/lib/scrapers/visa-cal.js +154 -265
  56. package/lib/scrapers/yahav.d.ts +7 -3
  57. package/lib/scrapers/yahav.js +1 -1
  58. package/package.json +2 -2
@@ -0,0 +1,562 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GET_MOVEMENTS = exports.GET_CUSTOMER = void 0;
7
+ const GET_CUSTOMER = `
8
+ query GetCustomer {
9
+ customer {
10
+ __typename
11
+ customerId
12
+ userId
13
+ idType
14
+ idNumber
15
+ hebrewFirstName
16
+ hebrewLastName
17
+ latinFirstName
18
+ latinLastName
19
+ dateOfBirth
20
+ lastLoginDate
21
+ userEmail
22
+ gender
23
+ portfolioRelations {
24
+ __typename
25
+ customerId
26
+ customerRole
27
+ portfolioId
28
+ initiator
29
+ relationToInitiator
30
+ status
31
+ }
32
+ portfolios {
33
+ __typename
34
+ ...Portfolio
35
+ }
36
+ status
37
+ }
38
+ }
39
+ fragment Portfolio on Portfolio {
40
+ __typename
41
+ accounts {
42
+ __typename
43
+ accountId
44
+ accountType
45
+ closingDate
46
+ currency
47
+ openingDate
48
+ status
49
+ subType
50
+ }
51
+ activationDate
52
+ bank
53
+ baseCurrency
54
+ branch
55
+ club
56
+ clubDescription
57
+ iban
58
+ imageURL
59
+ isJointAccount
60
+ partnerName {
61
+ __typename
62
+ partnerFirstName
63
+ partnerLastName
64
+ }
65
+ portfolioId
66
+ portfolioNum
67
+ portfolioType
68
+ status
69
+ subType
70
+ onboardingCompleted
71
+ }
72
+ `;
73
+ exports.GET_CUSTOMER = GET_CUSTOMER;
74
+ const GET_MOVEMENTS = `query GetMovements(
75
+ $portfolioId: String!
76
+ $accountId: String!
77
+ $pagination: PaginationInput!
78
+ $language: BffLanguage!
79
+ ) {
80
+ movements(
81
+ portfolioId: $portfolioId
82
+ accountId: $accountId
83
+ pagination: $pagination
84
+ language: $language
85
+ ) {
86
+ __typename
87
+ ...MovementsFragment
88
+ }
89
+ }
90
+ fragment TransactionInstrumentAmountFragment on TransactionInstrumentAmount {
91
+ __typename
92
+ instrumentAmount
93
+ instrumentSymbol
94
+ instrumentType
95
+ }
96
+ fragment CounterPartyReferenceFragment on CounterPartyReference {
97
+ __typename
98
+ bankId
99
+ bic
100
+ branchCode
101
+ id
102
+ name
103
+ type
104
+ }
105
+ fragment BaseTransactionFragment on BaseTransaction {
106
+ __typename
107
+ accountId
108
+ betweenOwnAccounts
109
+ bookDate
110
+ calculatedStatus
111
+ chargeAmount {
112
+ __typename
113
+ ...TransactionInstrumentAmountFragment
114
+ }
115
+ clearingSystem
116
+ counterParty {
117
+ __typename
118
+ ...CounterPartyReferenceFragment
119
+ }
120
+ currentPaymentNumber
121
+ direction
122
+ domainType
123
+ isReversal
124
+ method
125
+ originalAmount {
126
+ __typename
127
+ ...TransactionInstrumentAmountFragment
128
+ }
129
+ portfolioId
130
+ totalPaymentsCount
131
+ transactionId
132
+ transactionType
133
+ valueDate
134
+ }
135
+ fragment CategoryFragment on Category {
136
+ __typename
137
+ categoryId
138
+ dataSource
139
+ subCategoryId
140
+ }
141
+ fragment RecurrenceFragment on Recurrence {
142
+ __typename
143
+ dataSource
144
+ isRecurrent
145
+ }
146
+ fragment TransactionEnrichmentFragment on TransactionEnrichment {
147
+ __typename
148
+ categories {
149
+ __typename
150
+ ...CategoryFragment
151
+ }
152
+ recurrences {
153
+ __typename
154
+ ...RecurrenceFragment
155
+ }
156
+ }
157
+ fragment TransactionEventMetadataFragment on TransactionEventMetadata {
158
+ __typename
159
+ correlationId
160
+ processingOrder
161
+ }
162
+ fragment CounterPartyTransferData on CounterPartyTransfer {
163
+ __typename
164
+ accountId
165
+ bank_id
166
+ branch_code
167
+ counter_party_name
168
+ }
169
+ fragment BankTransferDetailsData on BankTransferDetails {
170
+ __typename
171
+ ... on CashBlockTransfer {
172
+ counterParty {
173
+ __typename
174
+ ...CounterPartyTransferData
175
+ }
176
+ transferDescriptionKey
177
+ }
178
+ ... on RTGSReturnTransfer {
179
+ transferDescriptionKey
180
+ }
181
+ ... on RTGSTransfer {
182
+ transferDescriptionKey
183
+ }
184
+ ... on SwiftReturnTransfer {
185
+ transferConversionRate
186
+ transferDescriptionKey
187
+ }
188
+ ... on SwiftTransfer {
189
+ transferConversionRate
190
+ transferDescriptionKey
191
+ }
192
+ ... on Transfer {
193
+ counterParty {
194
+ __typename
195
+ ...CounterPartyTransferData
196
+ }
197
+ transferDescriptionKey
198
+ }
199
+ }
200
+ fragment CategoryData on Category {
201
+ __typename
202
+ categoryId
203
+ dataSource
204
+ subCategoryId
205
+ }
206
+ fragment RecurrenceData on Recurrence {
207
+ __typename
208
+ dataSource
209
+ isRecurrent
210
+ }
211
+ fragment CardDetailsData on CardDetails {
212
+ __typename
213
+ ... on CardCharge {
214
+ book_date
215
+ cardDescriptionKey
216
+ }
217
+ ... on CardChargeFCY {
218
+ book_date
219
+ cardConversionRate
220
+ cardDescriptionKey
221
+ cardFCYAmount
222
+ cardFCYCurrency
223
+ }
224
+ ... on CardMonthlySettlement {
225
+ cardDescriptionKey
226
+ }
227
+ ... on CardRefund {
228
+ cardDescriptionKey
229
+ }
230
+ ... on CashBlockCardCharge {
231
+ cardDescriptionKey
232
+ }
233
+ }
234
+ fragment CashDetailsData on CashDetails {
235
+ __typename
236
+ ... on CashWithdrawal {
237
+ cashDescriptionKey
238
+ }
239
+ ... on CashWithdrawalFCY {
240
+ FCYAmount
241
+ FCYCurrency
242
+ cashDescriptionKey
243
+ conversionRate
244
+ }
245
+ }
246
+ fragment ChequesDetailsData on ChequesDetails {
247
+ __typename
248
+ ... on CashBlockChequeDeposit {
249
+ bookDate
250
+ chequesDescriptionKey
251
+ }
252
+ ... on ChequeDeposit {
253
+ bookDate
254
+ chequesDescriptionKey
255
+ }
256
+ ... on ChequeReturn {
257
+ bookDate
258
+ chequeReturnReason
259
+ chequesDescriptionKey
260
+ }
261
+ ... on ChequeWithdrawal {
262
+ chequesDescriptionKey
263
+ }
264
+ }
265
+ fragment DefaultDetailsData on DefaultDetails {
266
+ __typename
267
+ ... on DefaultWithTransaction {
268
+ defaultDescriptionKey
269
+ }
270
+ ... on DefaultWithoutTransaction {
271
+ categories {
272
+ __typename
273
+ ...CategoryData
274
+ }
275
+ defaultDescriptionKey
276
+ }
277
+ }
278
+ fragment FeeDetailsData on FeeDetails {
279
+ __typename
280
+ ... on GeneralFee {
281
+ feeDescriptionKey
282
+ }
283
+ }
284
+ fragment LoanDetailsData on LoanDetails {
285
+ __typename
286
+ ... on FullPrePayment {
287
+ loanDescriptionKey
288
+ }
289
+ ... on Initiate {
290
+ loanDescriptionKey
291
+ }
292
+ ... on MonthlyPayment {
293
+ loanDescriptionKey
294
+ loanPaymentNumber
295
+ loanTotalPaymentsCount
296
+ }
297
+ ... on PartialPrePayment {
298
+ loanDescriptionKey
299
+ }
300
+ }
301
+ fragment MandateDetailsData on MandateDetails {
302
+ __typename
303
+ ... on MandatePayment {
304
+ mandateDescriptionKey
305
+ }
306
+ ... on MandateReturnPayment {
307
+ mandateDescriptionKey
308
+ }
309
+ }
310
+ fragment SavingsDetailsData on SavingsDetails {
311
+ __typename
312
+ ... on FullSavingsWithdrawal {
313
+ savingsDescriptionKey
314
+ }
315
+ ... on MonthlySavingsDeposit {
316
+ savingsDepositNumber
317
+ savingsDescriptionKey
318
+ savingsTotalDepositCount
319
+ }
320
+ ... on PartialSavingsWithdrawal {
321
+ savingsDescriptionKey
322
+ }
323
+ ... on SavingsClosing {
324
+ savingsDescriptionKey
325
+ }
326
+ ... on SavingsDeposit {
327
+ savingsDescriptionKey
328
+ }
329
+ ... on SavingsInterest {
330
+ savingsDescriptionKey
331
+ }
332
+ ... on SavingsPenalty {
333
+ savingsDescriptionKey
334
+ }
335
+ ... on SavingsTax {
336
+ savingsDescriptionKey
337
+ }
338
+ }
339
+ fragment SubscriptionDetailsData on SubscriptionDetails {
340
+ __typename
341
+ ... on SubscriptionPayment {
342
+ subscriptionDescriptionKey
343
+ }
344
+ ... on SubscriptionReturnPayment {
345
+ subscriptionDescriptionKey
346
+ }
347
+ }
348
+ fragment TransactionsDetailsData on TransactionDetails {
349
+ __typename
350
+ ... on BankTransfer {
351
+ bank_transfer_details {
352
+ __typename
353
+ ...BankTransferDetailsData
354
+ }
355
+ book_date
356
+ categories {
357
+ __typename
358
+ ...CategoryData
359
+ }
360
+ recurrences {
361
+ __typename
362
+ ...RecurrenceData
363
+ }
364
+ value_date
365
+ }
366
+ ... on Card {
367
+ card_details {
368
+ __typename
369
+ ...CardDetailsData
370
+ }
371
+ categories {
372
+ __typename
373
+ ...CategoryData
374
+ }
375
+ recurrences {
376
+ __typename
377
+ ...RecurrenceData
378
+ }
379
+ value_date
380
+ }
381
+ ... on Cash {
382
+ cash_details {
383
+ __typename
384
+ ...CashDetailsData
385
+ }
386
+ categories {
387
+ __typename
388
+ ...CategoryData
389
+ }
390
+ recurrences {
391
+ __typename
392
+ ...RecurrenceData
393
+ }
394
+ value_date
395
+ }
396
+ ... on Cheques {
397
+ categories {
398
+ __typename
399
+ ...CategoryData
400
+ }
401
+ chequesDetails {
402
+ __typename
403
+ ...ChequesDetailsData
404
+ }
405
+ recurrences {
406
+ __typename
407
+ ...RecurrenceData
408
+ }
409
+ valueDate
410
+ referenceNumber
411
+ frontImageUrl
412
+ backImageUrl
413
+ }
414
+ ... on Default {
415
+ default_details {
416
+ __typename
417
+ ...DefaultDetailsData
418
+ }
419
+ recurrences {
420
+ __typename
421
+ ...RecurrenceData
422
+ }
423
+ value_date
424
+ }
425
+ ... on Fee {
426
+ categories {
427
+ __typename
428
+ ...CategoryData
429
+ }
430
+ fee_details {
431
+ __typename
432
+ ...FeeDetailsData
433
+ }
434
+ value_date
435
+ }
436
+ ... on Loans {
437
+ categories {
438
+ __typename
439
+ ...CategoryData
440
+ }
441
+ loan_details {
442
+ __typename
443
+ ...LoanDetailsData
444
+ }
445
+ recurrences {
446
+ __typename
447
+ ...RecurrenceData
448
+ }
449
+ value_date
450
+ }
451
+ ... on Mandate {
452
+ categories {
453
+ __typename
454
+ ...CategoryData
455
+ }
456
+ mandate_details {
457
+ __typename
458
+ ...MandateDetailsData
459
+ }
460
+ recurrences {
461
+ __typename
462
+ ...RecurrenceData
463
+ }
464
+ value_date
465
+ }
466
+ ... on Savings {
467
+ categories {
468
+ __typename
469
+ ...CategoryData
470
+ }
471
+ recurrences {
472
+ __typename
473
+ ...RecurrenceData
474
+ }
475
+ savings_details {
476
+ __typename
477
+ ...SavingsDetailsData
478
+ }
479
+ value_date
480
+ }
481
+ ... on SubscriptionTransaction {
482
+ categories {
483
+ __typename
484
+ ...CategoryData
485
+ }
486
+ recurrences {
487
+ __typename
488
+ ...RecurrenceData
489
+ }
490
+ subscription_details {
491
+ __typename
492
+ ...SubscriptionDetailsData
493
+ }
494
+ value_date
495
+ }
496
+ }
497
+ fragment TransactionFragment on Transaction {
498
+ __typename
499
+ baseTransaction {
500
+ __typename
501
+ ...BaseTransactionFragment
502
+ }
503
+ enrichment {
504
+ __typename
505
+ ...TransactionEnrichmentFragment
506
+ }
507
+ metadata {
508
+ __typename
509
+ ...TransactionEventMetadataFragment
510
+ }
511
+ referenceNumber
512
+ transactionDetails {
513
+ __typename
514
+ ...TransactionsDetailsData
515
+ }
516
+ }
517
+ fragment MovementFragment on Movement {
518
+ __typename
519
+ accountId
520
+ bankCurrencyAmount
521
+ bookingDate
522
+ conversionRate
523
+ creditDebit
524
+ description
525
+ isReversed
526
+ linkTransaction {
527
+ __typename
528
+ ...TransactionFragment
529
+ }
530
+ movementAmount
531
+ movementCurrency
532
+ movementId
533
+ movementReversedId
534
+ movementTimestamp
535
+ movementType
536
+ portfolioId
537
+ runningBalance
538
+ transaction {
539
+ __typename
540
+ ...TransactionFragment
541
+ }
542
+ valueDate
543
+ }
544
+ fragment PaginationFragment on Pagination {
545
+ __typename
546
+ cursor
547
+ hasMore
548
+ }
549
+ fragment MovementsFragment on Movements {
550
+ __typename
551
+ isRunningBalanceInSync
552
+ movements {
553
+ __typename
554
+ ...MovementFragment
555
+ }
556
+ pagination {
557
+ __typename
558
+ ...PaginationFragment
559
+ }
560
+ }`;
561
+ exports.GET_MOVEMENTS = GET_MOVEMENTS;
562
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9vbmUtemVyby1xdWVyaWVzLnRzIl0sIm5hbWVzIjpbIkdFVF9DVVNUT01FUiIsIkdFVF9NT1ZFTUVOVFMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLFlBQVksR0FBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FBdEI7O0FBbUVBLE1BQU1DLGFBQWEsR0FBSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQXZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEdFVF9DVVNUT01FUiA9IGBcbnF1ZXJ5IEdldEN1c3RvbWVyIHtcbiAgY3VzdG9tZXIge1xuICAgIF9fdHlwZW5hbWVcbiAgICBjdXN0b21lcklkXG4gICAgdXNlcklkXG4gICAgaWRUeXBlXG4gICAgaWROdW1iZXJcbiAgICBoZWJyZXdGaXJzdE5hbWVcbiAgICBoZWJyZXdMYXN0TmFtZVxuICAgIGxhdGluRmlyc3ROYW1lXG4gICAgbGF0aW5MYXN0TmFtZVxuICAgIGRhdGVPZkJpcnRoXG4gICAgbGFzdExvZ2luRGF0ZVxuICAgIHVzZXJFbWFpbFxuICAgIGdlbmRlclxuICAgIHBvcnRmb2xpb1JlbGF0aW9ucyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICBjdXN0b21lcklkXG4gICAgICBjdXN0b21lclJvbGVcbiAgICAgIHBvcnRmb2xpb0lkXG4gICAgICBpbml0aWF0b3JcbiAgICAgIHJlbGF0aW9uVG9Jbml0aWF0b3JcbiAgICAgIHN0YXR1c1xuICAgIH1cbiAgICBwb3J0Zm9saW9zIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLlBvcnRmb2xpb1xuICAgIH1cbiAgICBzdGF0dXNcbiAgfVxufVxuZnJhZ21lbnQgUG9ydGZvbGlvIG9uIFBvcnRmb2xpbyB7XG4gIF9fdHlwZW5hbWVcbiAgYWNjb3VudHMge1xuICAgIF9fdHlwZW5hbWVcbiAgICBhY2NvdW50SWRcbiAgICBhY2NvdW50VHlwZVxuICAgIGNsb3NpbmdEYXRlXG4gICAgY3VycmVuY3lcbiAgICBvcGVuaW5nRGF0ZVxuICAgIHN0YXR1c1xuICAgIHN1YlR5cGVcbiAgfVxuICBhY3RpdmF0aW9uRGF0ZVxuICBiYW5rXG4gIGJhc2VDdXJyZW5jeVxuICBicmFuY2hcbiAgY2x1YlxuICBjbHViRGVzY3JpcHRpb25cbiAgaWJhblxuICBpbWFnZVVSTFxuICBpc0pvaW50QWNjb3VudFxuICBwYXJ0bmVyTmFtZSB7XG4gICAgX190eXBlbmFtZVxuICAgIHBhcnRuZXJGaXJzdE5hbWVcbiAgICBwYXJ0bmVyTGFzdE5hbWVcbiAgfVxuICBwb3J0Zm9saW9JZFxuICBwb3J0Zm9saW9OdW1cbiAgcG9ydGZvbGlvVHlwZVxuICBzdGF0dXNcbiAgc3ViVHlwZVxuICBvbmJvYXJkaW5nQ29tcGxldGVkXG59XG5gO1xuXG5leHBvcnQgY29uc3QgR0VUX01PVkVNRU5UUyA9IGBxdWVyeSBHZXRNb3ZlbWVudHMoXG4gICRwb3J0Zm9saW9JZDogU3RyaW5nIVxuICAkYWNjb3VudElkOiBTdHJpbmchXG4gICRwYWdpbmF0aW9uOiBQYWdpbmF0aW9uSW5wdXQhXG4gICRsYW5ndWFnZTogQmZmTGFuZ3VhZ2UhXG4pIHtcbiAgbW92ZW1lbnRzKFxuICAgIHBvcnRmb2xpb0lkOiAkcG9ydGZvbGlvSWRcbiAgICBhY2NvdW50SWQ6ICRhY2NvdW50SWRcbiAgICBwYWdpbmF0aW9uOiAkcGFnaW5hdGlvblxuICAgIGxhbmd1YWdlOiAkbGFuZ3VhZ2VcbiAgKSB7XG4gICAgX190eXBlbmFtZVxuICAgIC4uLk1vdmVtZW50c0ZyYWdtZW50XG4gIH1cbn1cbmZyYWdtZW50IFRyYW5zYWN0aW9uSW5zdHJ1bWVudEFtb3VudEZyYWdtZW50IG9uIFRyYW5zYWN0aW9uSW5zdHJ1bWVudEFtb3VudCB7XG4gIF9fdHlwZW5hbWVcbiAgaW5zdHJ1bWVudEFtb3VudFxuICBpbnN0cnVtZW50U3ltYm9sXG4gIGluc3RydW1lbnRUeXBlXG59XG5mcmFnbWVudCBDb3VudGVyUGFydHlSZWZlcmVuY2VGcmFnbWVudCBvbiBDb3VudGVyUGFydHlSZWZlcmVuY2Uge1xuICBfX3R5cGVuYW1lXG4gIGJhbmtJZFxuICBiaWNcbiAgYnJhbmNoQ29kZVxuICBpZFxuICBuYW1lXG4gIHR5cGVcbn1cbmZyYWdtZW50IEJhc2VUcmFuc2FjdGlvbkZyYWdtZW50IG9uIEJhc2VUcmFuc2FjdGlvbiB7XG4gIF9fdHlwZW5hbWVcbiAgYWNjb3VudElkXG4gIGJldHdlZW5Pd25BY2NvdW50c1xuICBib29rRGF0ZVxuICBjYWxjdWxhdGVkU3RhdHVzXG4gIGNoYXJnZUFtb3VudCB7XG4gICAgX190eXBlbmFtZVxuICAgIC4uLlRyYW5zYWN0aW9uSW5zdHJ1bWVudEFtb3VudEZyYWdtZW50XG4gIH1cbiAgY2xlYXJpbmdTeXN0ZW1cbiAgY291bnRlclBhcnR5IHtcbiAgICBfX3R5cGVuYW1lXG4gICAgLi4uQ291bnRlclBhcnR5UmVmZXJlbmNlRnJhZ21lbnRcbiAgfVxuICBjdXJyZW50UGF5bWVudE51bWJlclxuICBkaXJlY3Rpb25cbiAgZG9tYWluVHlwZVxuICBpc1JldmVyc2FsXG4gIG1ldGhvZFxuICBvcmlnaW5hbEFtb3VudCB7XG4gICAgX190eXBlbmFtZVxuICAgIC4uLlRyYW5zYWN0aW9uSW5zdHJ1bWVudEFtb3VudEZyYWdtZW50XG4gIH1cbiAgcG9ydGZvbGlvSWRcbiAgdG90YWxQYXltZW50c0NvdW50XG4gIHRyYW5zYWN0aW9uSWRcbiAgdHJhbnNhY3Rpb25UeXBlXG4gIHZhbHVlRGF0ZVxufVxuZnJhZ21lbnQgQ2F0ZWdvcnlGcmFnbWVudCBvbiBDYXRlZ29yeSB7XG4gIF9fdHlwZW5hbWVcbiAgY2F0ZWdvcnlJZFxuICBkYXRhU291cmNlXG4gIHN1YkNhdGVnb3J5SWRcbn1cbmZyYWdtZW50IFJlY3VycmVuY2VGcmFnbWVudCBvbiBSZWN1cnJlbmNlIHtcbiAgX190eXBlbmFtZVxuICBkYXRhU291cmNlXG4gIGlzUmVjdXJyZW50XG59XG5mcmFnbWVudCBUcmFuc2FjdGlvbkVucmljaG1lbnRGcmFnbWVudCBvbiBUcmFuc2FjdGlvbkVucmljaG1lbnQge1xuICBfX3R5cGVuYW1lXG4gIGNhdGVnb3JpZXMge1xuICAgIF9fdHlwZW5hbWVcbiAgICAuLi5DYXRlZ29yeUZyYWdtZW50XG4gIH1cbiAgcmVjdXJyZW5jZXMge1xuICAgIF9fdHlwZW5hbWVcbiAgICAuLi5SZWN1cnJlbmNlRnJhZ21lbnRcbiAgfVxufVxuZnJhZ21lbnQgVHJhbnNhY3Rpb25FdmVudE1ldGFkYXRhRnJhZ21lbnQgb24gVHJhbnNhY3Rpb25FdmVudE1ldGFkYXRhIHtcbiAgX190eXBlbmFtZVxuICBjb3JyZWxhdGlvbklkXG4gIHByb2Nlc3NpbmdPcmRlclxufVxuZnJhZ21lbnQgQ291bnRlclBhcnR5VHJhbnNmZXJEYXRhIG9uIENvdW50ZXJQYXJ0eVRyYW5zZmVyIHtcbiAgX190eXBlbmFtZVxuICBhY2NvdW50SWRcbiAgYmFua19pZFxuICBicmFuY2hfY29kZVxuICBjb3VudGVyX3BhcnR5X25hbWVcbn1cbmZyYWdtZW50IEJhbmtUcmFuc2ZlckRldGFpbHNEYXRhIG9uIEJhbmtUcmFuc2ZlckRldGFpbHMge1xuICBfX3R5cGVuYW1lXG4gIC4uLiBvbiBDYXNoQmxvY2tUcmFuc2ZlciB7XG4gICAgY291bnRlclBhcnR5IHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLkNvdW50ZXJQYXJ0eVRyYW5zZmVyRGF0YVxuICAgIH1cbiAgICB0cmFuc2ZlckRlc2NyaXB0aW9uS2V5XG4gIH1cbiAgLi4uIG9uIFJUR1NSZXR1cm5UcmFuc2ZlciB7XG4gICAgdHJhbnNmZXJEZXNjcmlwdGlvbktleVxuICB9XG4gIC4uLiBvbiBSVEdTVHJhbnNmZXIge1xuICAgIHRyYW5zZmVyRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gU3dpZnRSZXR1cm5UcmFuc2ZlciB7XG4gICAgdHJhbnNmZXJDb252ZXJzaW9uUmF0ZVxuICAgIHRyYW5zZmVyRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gU3dpZnRUcmFuc2ZlciB7XG4gICAgdHJhbnNmZXJDb252ZXJzaW9uUmF0ZVxuICAgIHRyYW5zZmVyRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gVHJhbnNmZXIge1xuICAgIGNvdW50ZXJQYXJ0eSB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5Db3VudGVyUGFydHlUcmFuc2ZlckRhdGFcbiAgICB9XG4gICAgdHJhbnNmZXJEZXNjcmlwdGlvbktleVxuICB9XG59XG5mcmFnbWVudCBDYXRlZ29yeURhdGEgb24gQ2F0ZWdvcnkge1xuICBfX3R5cGVuYW1lXG4gIGNhdGVnb3J5SWRcbiAgZGF0YVNvdXJjZVxuICBzdWJDYXRlZ29yeUlkXG59XG5mcmFnbWVudCBSZWN1cnJlbmNlRGF0YSBvbiBSZWN1cnJlbmNlIHtcbiAgX190eXBlbmFtZVxuICBkYXRhU291cmNlXG4gIGlzUmVjdXJyZW50XG59XG5mcmFnbWVudCBDYXJkRGV0YWlsc0RhdGEgb24gQ2FyZERldGFpbHMge1xuICBfX3R5cGVuYW1lXG4gIC4uLiBvbiBDYXJkQ2hhcmdlIHtcbiAgICBib29rX2RhdGVcbiAgICBjYXJkRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gQ2FyZENoYXJnZUZDWSB7XG4gICAgYm9va19kYXRlXG4gICAgY2FyZENvbnZlcnNpb25SYXRlXG4gICAgY2FyZERlc2NyaXB0aW9uS2V5XG4gICAgY2FyZEZDWUFtb3VudFxuICAgIGNhcmRGQ1lDdXJyZW5jeVxuICB9XG4gIC4uLiBvbiBDYXJkTW9udGhseVNldHRsZW1lbnQge1xuICAgIGNhcmREZXNjcmlwdGlvbktleVxuICB9XG4gIC4uLiBvbiBDYXJkUmVmdW5kIHtcbiAgICBjYXJkRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gQ2FzaEJsb2NrQ2FyZENoYXJnZSB7XG4gICAgY2FyZERlc2NyaXB0aW9uS2V5XG4gIH1cbn1cbmZyYWdtZW50IENhc2hEZXRhaWxzRGF0YSBvbiBDYXNoRGV0YWlscyB7XG4gIF9fdHlwZW5hbWVcbiAgLi4uIG9uIENhc2hXaXRoZHJhd2FsIHtcbiAgICBjYXNoRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gQ2FzaFdpdGhkcmF3YWxGQ1kge1xuICAgIEZDWUFtb3VudFxuICAgIEZDWUN1cnJlbmN5XG4gICAgY2FzaERlc2NyaXB0aW9uS2V5XG4gICAgY29udmVyc2lvblJhdGVcbiAgfVxufVxuZnJhZ21lbnQgQ2hlcXVlc0RldGFpbHNEYXRhIG9uIENoZXF1ZXNEZXRhaWxzIHtcbiAgX190eXBlbmFtZVxuICAuLi4gb24gQ2FzaEJsb2NrQ2hlcXVlRGVwb3NpdCB7XG4gICAgYm9va0RhdGVcbiAgICBjaGVxdWVzRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gQ2hlcXVlRGVwb3NpdCB7XG4gICAgYm9va0RhdGVcbiAgICBjaGVxdWVzRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gQ2hlcXVlUmV0dXJuIHtcbiAgICBib29rRGF0ZVxuICAgIGNoZXF1ZVJldHVyblJlYXNvblxuICAgIGNoZXF1ZXNEZXNjcmlwdGlvbktleVxuICB9XG4gIC4uLiBvbiBDaGVxdWVXaXRoZHJhd2FsIHtcbiAgICBjaGVxdWVzRGVzY3JpcHRpb25LZXlcbiAgfVxufVxuZnJhZ21lbnQgRGVmYXVsdERldGFpbHNEYXRhIG9uIERlZmF1bHREZXRhaWxzIHtcbiAgX190eXBlbmFtZVxuICAuLi4gb24gRGVmYXVsdFdpdGhUcmFuc2FjdGlvbiB7XG4gICAgZGVmYXVsdERlc2NyaXB0aW9uS2V5XG4gIH1cbiAgLi4uIG9uIERlZmF1bHRXaXRob3V0VHJhbnNhY3Rpb24ge1xuICAgIGNhdGVnb3JpZXMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uQ2F0ZWdvcnlEYXRhXG4gICAgfVxuICAgIGRlZmF1bHREZXNjcmlwdGlvbktleVxuICB9XG59XG5mcmFnbWVudCBGZWVEZXRhaWxzRGF0YSBvbiBGZWVEZXRhaWxzIHtcbiAgX190eXBlbmFtZVxuICAuLi4gb24gR2VuZXJhbEZlZSB7XG4gICAgZmVlRGVzY3JpcHRpb25LZXlcbiAgfVxufVxuZnJhZ21lbnQgTG9hbkRldGFpbHNEYXRhIG9uIExvYW5EZXRhaWxzIHtcbiAgX190eXBlbmFtZVxuICAuLi4gb24gRnVsbFByZVBheW1lbnQge1xuICAgIGxvYW5EZXNjcmlwdGlvbktleVxuICB9XG4gIC4uLiBvbiBJbml0aWF0ZSB7XG4gICAgbG9hbkRlc2NyaXB0aW9uS2V5XG4gIH1cbiAgLi4uIG9uIE1vbnRobHlQYXltZW50IHtcbiAgICBsb2FuRGVzY3JpcHRpb25LZXlcbiAgICBsb2FuUGF5bWVudE51bWJlclxuICAgIGxvYW5Ub3RhbFBheW1lbnRzQ291bnRcbiAgfVxuICAuLi4gb24gUGFydGlhbFByZVBheW1lbnQge1xuICAgIGxvYW5EZXNjcmlwdGlvbktleVxuICB9XG59XG5mcmFnbWVudCBNYW5kYXRlRGV0YWlsc0RhdGEgb24gTWFuZGF0ZURldGFpbHMge1xuICBfX3R5cGVuYW1lXG4gIC4uLiBvbiBNYW5kYXRlUGF5bWVudCB7XG4gICAgbWFuZGF0ZURlc2NyaXB0aW9uS2V5XG4gIH1cbiAgLi4uIG9uIE1hbmRhdGVSZXR1cm5QYXltZW50IHtcbiAgICBtYW5kYXRlRGVzY3JpcHRpb25LZXlcbiAgfVxufVxuZnJhZ21lbnQgU2F2aW5nc0RldGFpbHNEYXRhIG9uIFNhdmluZ3NEZXRhaWxzIHtcbiAgX190eXBlbmFtZVxuICAuLi4gb24gRnVsbFNhdmluZ3NXaXRoZHJhd2FsIHtcbiAgICBzYXZpbmdzRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gTW9udGhseVNhdmluZ3NEZXBvc2l0IHtcbiAgICBzYXZpbmdzRGVwb3NpdE51bWJlclxuICAgIHNhdmluZ3NEZXNjcmlwdGlvbktleVxuICAgIHNhdmluZ3NUb3RhbERlcG9zaXRDb3VudFxuICB9XG4gIC4uLiBvbiBQYXJ0aWFsU2F2aW5nc1dpdGhkcmF3YWwge1xuICAgIHNhdmluZ3NEZXNjcmlwdGlvbktleVxuICB9XG4gIC4uLiBvbiBTYXZpbmdzQ2xvc2luZyB7XG4gICAgc2F2aW5nc0Rlc2NyaXB0aW9uS2V5XG4gIH1cbiAgLi4uIG9uIFNhdmluZ3NEZXBvc2l0IHtcbiAgICBzYXZpbmdzRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gU2F2aW5nc0ludGVyZXN0IHtcbiAgICBzYXZpbmdzRGVzY3JpcHRpb25LZXlcbiAgfVxuICAuLi4gb24gU2F2aW5nc1BlbmFsdHkge1xuICAgIHNhdmluZ3NEZXNjcmlwdGlvbktleVxuICB9XG4gIC4uLiBvbiBTYXZpbmdzVGF4IHtcbiAgICBzYXZpbmdzRGVzY3JpcHRpb25LZXlcbiAgfVxufVxuZnJhZ21lbnQgU3Vic2NyaXB0aW9uRGV0YWlsc0RhdGEgb24gU3Vic2NyaXB0aW9uRGV0YWlscyB7XG4gIF9fdHlwZW5hbWVcbiAgLi4uIG9uIFN1YnNjcmlwdGlvblBheW1lbnQge1xuICAgIHN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uS2V5XG4gIH1cbiAgLi4uIG9uIFN1YnNjcmlwdGlvblJldHVyblBheW1lbnQge1xuICAgIHN1YnNjcmlwdGlvbkRlc2NyaXB0aW9uS2V5XG4gIH1cbn1cbmZyYWdtZW50IFRyYW5zYWN0aW9uc0RldGFpbHNEYXRhIG9uIFRyYW5zYWN0aW9uRGV0YWlscyB7XG4gIF9fdHlwZW5hbWVcbiAgLi4uIG9uIEJhbmtUcmFuc2ZlciB7XG4gICAgYmFua190cmFuc2Zlcl9kZXRhaWxzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLkJhbmtUcmFuc2ZlckRldGFpbHNEYXRhXG4gICAgfVxuICAgIGJvb2tfZGF0ZVxuICAgIGNhdGVnb3JpZXMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uQ2F0ZWdvcnlEYXRhXG4gICAgfVxuICAgIHJlY3VycmVuY2VzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLlJlY3VycmVuY2VEYXRhXG4gICAgfVxuICAgIHZhbHVlX2RhdGVcbiAgfVxuICAuLi4gb24gQ2FyZCB7XG4gICAgY2FyZF9kZXRhaWxzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLkNhcmREZXRhaWxzRGF0YVxuICAgIH1cbiAgICBjYXRlZ29yaWVzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLkNhdGVnb3J5RGF0YVxuICAgIH1cbiAgICByZWN1cnJlbmNlcyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5SZWN1cnJlbmNlRGF0YVxuICAgIH1cbiAgICB2YWx1ZV9kYXRlXG4gIH1cbiAgLi4uIG9uIENhc2gge1xuICAgIGNhc2hfZGV0YWlscyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5DYXNoRGV0YWlsc0RhdGFcbiAgICB9XG4gICAgY2F0ZWdvcmllcyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5DYXRlZ29yeURhdGFcbiAgICB9XG4gICAgcmVjdXJyZW5jZXMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uUmVjdXJyZW5jZURhdGFcbiAgICB9XG4gICAgdmFsdWVfZGF0ZVxuICB9XG4gIC4uLiBvbiBDaGVxdWVzIHtcbiAgICBjYXRlZ29yaWVzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLkNhdGVnb3J5RGF0YVxuICAgIH1cbiAgICBjaGVxdWVzRGV0YWlscyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5DaGVxdWVzRGV0YWlsc0RhdGFcbiAgICB9XG4gICAgcmVjdXJyZW5jZXMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uUmVjdXJyZW5jZURhdGFcbiAgICB9XG4gICAgdmFsdWVEYXRlXG4gICAgcmVmZXJlbmNlTnVtYmVyXG4gICAgZnJvbnRJbWFnZVVybFxuICAgIGJhY2tJbWFnZVVybFxuICB9XG4gIC4uLiBvbiBEZWZhdWx0IHtcbiAgICBkZWZhdWx0X2RldGFpbHMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uRGVmYXVsdERldGFpbHNEYXRhXG4gICAgfVxuICAgIHJlY3VycmVuY2VzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLlJlY3VycmVuY2VEYXRhXG4gICAgfVxuICAgIHZhbHVlX2RhdGVcbiAgfVxuICAuLi4gb24gRmVlIHtcbiAgICBjYXRlZ29yaWVzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLkNhdGVnb3J5RGF0YVxuICAgIH1cbiAgICBmZWVfZGV0YWlscyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5GZWVEZXRhaWxzRGF0YVxuICAgIH1cbiAgICB2YWx1ZV9kYXRlXG4gIH1cbiAgLi4uIG9uIExvYW5zIHtcbiAgICBjYXRlZ29yaWVzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLkNhdGVnb3J5RGF0YVxuICAgIH1cbiAgICBsb2FuX2RldGFpbHMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uTG9hbkRldGFpbHNEYXRhXG4gICAgfVxuICAgIHJlY3VycmVuY2VzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLlJlY3VycmVuY2VEYXRhXG4gICAgfVxuICAgIHZhbHVlX2RhdGVcbiAgfVxuICAuLi4gb24gTWFuZGF0ZSB7XG4gICAgY2F0ZWdvcmllcyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5DYXRlZ29yeURhdGFcbiAgICB9XG4gICAgbWFuZGF0ZV9kZXRhaWxzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLk1hbmRhdGVEZXRhaWxzRGF0YVxuICAgIH1cbiAgICByZWN1cnJlbmNlcyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5SZWN1cnJlbmNlRGF0YVxuICAgIH1cbiAgICB2YWx1ZV9kYXRlXG4gIH1cbiAgLi4uIG9uIFNhdmluZ3Mge1xuICAgIGNhdGVnb3JpZXMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uQ2F0ZWdvcnlEYXRhXG4gICAgfVxuICAgIHJlY3VycmVuY2VzIHtcbiAgICAgIF9fdHlwZW5hbWVcbiAgICAgIC4uLlJlY3VycmVuY2VEYXRhXG4gICAgfVxuICAgIHNhdmluZ3NfZGV0YWlscyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5TYXZpbmdzRGV0YWlsc0RhdGFcbiAgICB9XG4gICAgdmFsdWVfZGF0ZVxuICB9XG4gIC4uLiBvbiBTdWJzY3JpcHRpb25UcmFuc2FjdGlvbiB7XG4gICAgY2F0ZWdvcmllcyB7XG4gICAgICBfX3R5cGVuYW1lXG4gICAgICAuLi5DYXRlZ29yeURhdGFcbiAgICB9XG4gICAgcmVjdXJyZW5jZXMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uUmVjdXJyZW5jZURhdGFcbiAgICB9XG4gICAgc3Vic2NyaXB0aW9uX2RldGFpbHMge1xuICAgICAgX190eXBlbmFtZVxuICAgICAgLi4uU3Vic2NyaXB0aW9uRGV0YWlsc0RhdGFcbiAgICB9XG4gICAgdmFsdWVfZGF0ZVxuICB9XG59XG5mcmFnbWVudCBUcmFuc2FjdGlvbkZyYWdtZW50IG9uIFRyYW5zYWN0aW9uIHtcbiAgX190eXBlbmFtZVxuICBiYXNlVHJhbnNhY3Rpb24ge1xuICAgIF9fdHlwZW5hbWVcbiAgICAuLi5CYXNlVHJhbnNhY3Rpb25GcmFnbWVudFxuICB9XG4gIGVucmljaG1lbnQge1xuICAgIF9fdHlwZW5hbWVcbiAgICAuLi5UcmFuc2FjdGlvbkVucmljaG1lbnRGcmFnbWVudFxuICB9XG4gIG1ldGFkYXRhIHtcbiAgICBfX3R5cGVuYW1lXG4gICAgLi4uVHJhbnNhY3Rpb25FdmVudE1ldGFkYXRhRnJhZ21lbnRcbiAgfVxuICByZWZlcmVuY2VOdW1iZXJcbiAgdHJhbnNhY3Rpb25EZXRhaWxzIHtcbiAgICBfX3R5cGVuYW1lXG4gICAgLi4uVHJhbnNhY3Rpb25zRGV0YWlsc0RhdGFcbiAgfVxufVxuZnJhZ21lbnQgTW92ZW1lbnRGcmFnbWVudCBvbiBNb3ZlbWVudCB7XG4gIF9fdHlwZW5hbWVcbiAgYWNjb3VudElkXG4gIGJhbmtDdXJyZW5jeUFtb3VudFxuICBib29raW5nRGF0ZVxuICBjb252ZXJzaW9uUmF0ZVxuICBjcmVkaXREZWJpdFxuICBkZXNjcmlwdGlvblxuICBpc1JldmVyc2VkXG4gIGxpbmtUcmFuc2FjdGlvbiB7XG4gICAgX190eXBlbmFtZVxuICAgIC4uLlRyYW5zYWN0aW9uRnJhZ21lbnRcbiAgfVxuICBtb3ZlbWVudEFtb3VudFxuICBtb3ZlbWVudEN1cnJlbmN5XG4gIG1vdmVtZW50SWRcbiAgbW92ZW1lbnRSZXZlcnNlZElkXG4gIG1vdmVtZW50VGltZXN0YW1wXG4gIG1vdmVtZW50VHlwZVxuICBwb3J0Zm9saW9JZFxuICBydW5uaW5nQmFsYW5jZVxuICB0cmFuc2FjdGlvbiB7XG4gICAgX190eXBlbmFtZVxuICAgIC4uLlRyYW5zYWN0aW9uRnJhZ21lbnRcbiAgfVxuICB2YWx1ZURhdGVcbn1cbmZyYWdtZW50IFBhZ2luYXRpb25GcmFnbWVudCBvbiBQYWdpbmF0aW9uIHtcbiAgX190eXBlbmFtZVxuICBjdXJzb3JcbiAgaGFzTW9yZVxufVxuZnJhZ21lbnQgTW92ZW1lbnRzRnJhZ21lbnQgb24gTW92ZW1lbnRzIHtcbiAgX190eXBlbmFtZVxuICBpc1J1bm5pbmdCYWxhbmNlSW5TeW5jXG4gIG1vdmVtZW50cyB7XG4gICAgX190eXBlbmFtZVxuICAgIC4uLk1vdmVtZW50RnJhZ21lbnRcbiAgfVxuICBwYWdpbmF0aW9uIHtcbiAgICBfX3R5cGVuYW1lXG4gICAgLi4uUGFnaW5hdGlvbkZyYWdtZW50XG4gIH1cbn1gO1xuIl19
@@ -0,0 +1,36 @@
1
+ import { ScraperGetLongTermTwoFactorTokenResult, ScraperLoginResult, ScraperScrapingResult, ScraperTwoFactorAuthTriggerResult } from './interface';
2
+ import { BaseScraper } from './base-scraper';
3
+ export declare type Category = {
4
+ categoryId: number;
5
+ dataSource: string;
6
+ subCategoryId?: number | null;
7
+ };
8
+ export declare type Recurrence = {
9
+ dataSource: string;
10
+ isRecurrent: boolean;
11
+ };
12
+ declare type ScraperSpecificCredentials = {
13
+ email: string;
14
+ password: string;
15
+ } & ({
16
+ otpCodeRetriever: () => Promise<string>;
17
+ phoneNumber: string;
18
+ } | {
19
+ otpLongTermToken: string;
20
+ });
21
+ export default class OneZeroScraper extends BaseScraper<ScraperSpecificCredentials> {
22
+ private otpContext?;
23
+ private accessToken?;
24
+ triggerTwoFactorAuth(phoneNumber: string): Promise<ScraperTwoFactorAuthTriggerResult>;
25
+ getLongTermTwoFactorToken(otpCode: string): Promise<ScraperGetLongTermTwoFactorTokenResult>;
26
+ private resolveOtpToken;
27
+ login(credentials: ScraperSpecificCredentials): Promise<ScraperLoginResult>;
28
+ private fetchPortfolioMovements;
29
+ /**
30
+ * one zero hebrew strings are reversed with a unicode control character that forces display in LTR order
31
+ * We need to remove the unicode control character, and then reverse hebrew substrings inside the string
32
+ */
33
+ private sanitizeHebrew;
34
+ fetchData(): Promise<ScraperScrapingResult>;
35
+ }
36
+ export {};