@fin.cx/skr 1.3.0 → 2.0.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 (94) hide show
  1. package/.smartconfig.json +33 -6
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/core/core.accountpolicy.d.ts +67 -0
  4. package/dist_ts/core/core.accountpolicy.js +91 -0
  5. package/dist_ts/core/core.bukeys.d.ts +38 -0
  6. package/dist_ts/core/core.bukeys.js +117 -0
  7. package/dist_ts/core/core.datev.captions.d.ts +7 -0
  8. package/dist_ts/core/core.datev.captions.js +134 -0
  9. package/dist_ts/core/core.datev.d.ts +47 -0
  10. package/dist_ts/core/core.datev.js +129 -0
  11. package/dist_ts/core/core.hash.d.ts +27 -0
  12. package/dist_ts/core/core.hash.js +72 -0
  13. package/dist_ts/core/core.plugins.d.ts +3 -0
  14. package/dist_ts/core/core.plugins.js +9 -0
  15. package/dist_ts/core/core.recipes.d.ts +118 -0
  16. package/dist_ts/core/core.recipes.js +504 -0
  17. package/dist_ts/core/core.taxscenario.d.ts +27 -0
  18. package/dist_ts/core/core.taxscenario.js +85 -0
  19. package/dist_ts/core/core.types.d.ts +48 -0
  20. package/dist_ts/core/core.types.js +2 -0
  21. package/dist_ts/core/core.validate.d.ts +17 -0
  22. package/dist_ts/core/core.validate.js +89 -0
  23. package/dist_ts/core/index.d.ts +15 -0
  24. package/dist_ts/core/index.js +16 -0
  25. package/dist_ts/index.d.ts +15 -0
  26. package/dist_ts/index.js +10 -1
  27. package/dist_ts/plugins.d.ts +2 -1
  28. package/dist_ts/plugins.js +4 -2
  29. package/dist_ts/skr.api.d.ts +91 -22
  30. package/dist_ts/skr.api.js +357 -42
  31. package/dist_ts/skr.balances.d.ts +28 -0
  32. package/dist_ts/skr.balances.js +96 -0
  33. package/dist_ts/skr.classes.journalentry.d.ts +19 -3
  34. package/dist_ts/skr.classes.journalentry.js +67 -4
  35. package/dist_ts/skr.classes.reports.js +49 -102
  36. package/dist_ts/skr.database.d.ts +2 -0
  37. package/dist_ts/skr.database.js +1 -1
  38. package/dist_ts/skr.errors.d.ts +18 -0
  39. package/dist_ts/skr.errors.js +34 -0
  40. package/dist_ts/skr.export.js +4 -7
  41. package/dist_ts/skr.invoice.adapter.d.ts +15 -1
  42. package/dist_ts/skr.invoice.adapter.js +253 -41
  43. package/dist_ts/skr.invoice.booking.js +14 -28
  44. package/dist_ts/skr.migrate.d.ts +20 -0
  45. package/dist_ts/skr.migrate.js +223 -0
  46. package/dist_ts/skr.period.d.ts +47 -0
  47. package/dist_ts/skr.period.js +95 -0
  48. package/dist_ts/skr.posting.d.ts +74 -0
  49. package/dist_ts/skr.posting.js +209 -0
  50. package/dist_ts/skr.security.d.ts +6 -9
  51. package/dist_ts/skr.security.js +16 -89
  52. package/dist_ts/skr.sequence.d.ts +32 -0
  53. package/dist_ts/skr.sequence.js +51 -0
  54. package/dist_ts/skr.txview.d.ts +46 -0
  55. package/dist_ts/skr.txview.js +235 -0
  56. package/dist_ts/skr.types.d.ts +35 -1
  57. package/dist_ts/skr.verify.d.ts +13 -0
  58. package/dist_ts/skr.verify.js +84 -0
  59. package/package.json +21 -24
  60. package/readme.hints.md +37 -0
  61. package/readme.md +94 -1
  62. package/readme.plan.md +180 -243
  63. package/ts/00_commitinfo_data.ts +1 -1
  64. package/ts/core/core.accountpolicy.ts +154 -0
  65. package/ts/core/core.bukeys.ts +146 -0
  66. package/ts/core/core.datev.captions.ts +133 -0
  67. package/ts/core/core.datev.ts +174 -0
  68. package/ts/core/core.hash.ts +76 -0
  69. package/ts/core/core.plugins.ts +9 -0
  70. package/ts/core/core.recipes.ts +659 -0
  71. package/ts/core/core.taxscenario.ts +156 -0
  72. package/ts/core/core.types.ts +74 -0
  73. package/ts/core/core.validate.ts +119 -0
  74. package/ts/core/index.ts +15 -0
  75. package/ts/index.ts +31 -0
  76. package/ts/plugins.ts +4 -0
  77. package/ts/skr.api.ts +432 -46
  78. package/ts/skr.balances.ts +127 -0
  79. package/ts/skr.classes.journalentry.ts +54 -5
  80. package/ts/skr.classes.reports.ts +54 -126
  81. package/ts/skr.database.ts +3 -0
  82. package/ts/skr.errors.ts +44 -0
  83. package/ts/skr.export.ts +3 -6
  84. package/ts/skr.invoice.adapter.ts +291 -45
  85. package/ts/skr.invoice.booking.ts +22 -34
  86. package/ts/skr.migrate.ts +268 -0
  87. package/ts/skr.period.ts +139 -0
  88. package/ts/skr.posting.ts +273 -0
  89. package/ts/skr.security.ts +18 -93
  90. package/ts/skr.sequence.ts +89 -0
  91. package/ts/skr.txview.ts +268 -0
  92. package/ts/skr.types.ts +37 -1
  93. package/ts/skr.verify.ts +99 -0
  94. /package/{license.md → license} +0 -0
@@ -41,11 +41,11 @@ export class InvoiceAdapter {
41
41
  einvoice = await EInvoice.fromXml(xmlString);
42
42
  }
43
43
  // Get detected format
44
- const format = this.mapEInvoiceFormat(einvoice.format || 'xrechnung');
44
+ const format = this.mapEInvoiceFormat(this.getDetectedFormat(einvoice));
45
45
  // Validate the invoice (takes ~2.2ms)
46
46
  const validationResult = await this.validateInvoice(einvoice);
47
47
  // Extract invoice data
48
- const invoiceData = einvoice.toObject();
48
+ const invoiceData = this.mapEInvoiceToBusinessTerms(einvoice);
49
49
  // Map to internal invoice model
50
50
  const invoice = await this.mapToInternalModel(invoiceData, format, direction, validationResult);
51
51
  // Store original XML content
@@ -66,29 +66,9 @@ export class InvoiceAdapter {
66
66
  * Validate an invoice using multi-level validation
67
67
  */
68
68
  async validateInvoice(einvoice) {
69
- // Perform multi-level validation
70
- const validationResult = await einvoice.validate();
71
- // Parse validation results into our structure
72
- const syntaxResult = {
73
- isValid: validationResult.syntax?.valid !== false,
74
- errors: validationResult.syntax?.errors || [],
75
- warnings: validationResult.syntax?.warnings || []
76
- };
77
- const semanticResult = {
78
- isValid: validationResult.semantic?.valid !== false,
79
- errors: validationResult.semantic?.errors || [],
80
- warnings: validationResult.semantic?.warnings || []
81
- };
82
- const businessResult = {
83
- isValid: validationResult.business?.valid !== false,
84
- errors: validationResult.business?.errors || [],
85
- warnings: validationResult.business?.warnings || []
86
- };
87
- const countryResult = {
88
- isValid: validationResult.country?.valid !== false,
89
- errors: validationResult.country?.errors || [],
90
- warnings: validationResult.country?.warnings || []
91
- };
69
+ const syntaxResult = await this.validateInvoiceLevel(einvoice, 'syntax');
70
+ const semanticResult = await this.validateInvoiceLevel(einvoice, 'semantic');
71
+ const businessResult = await this.validateInvoiceLevel(einvoice, 'business');
92
72
  return {
93
73
  isValid: syntaxResult.isValid && semanticResult.isValid && businessResult.isValid,
94
74
  syntax: {
@@ -107,14 +87,184 @@ export class InvoiceAdapter {
107
87
  warnings: businessResult.warnings || []
108
88
  },
109
89
  countrySpecific: {
110
- valid: countryResult.isValid,
111
- errors: countryResult.errors || [],
112
- warnings: countryResult.warnings || []
90
+ valid: true,
91
+ errors: [],
92
+ warnings: []
113
93
  },
114
94
  validatedAt: new Date(),
115
- validatorVersion: '5.1.4'
95
+ validatorVersion: '6.0.0'
96
+ };
97
+ }
98
+ async validateInvoiceLevel(einvoice, level) {
99
+ const validationResult = await einvoice.validate(level);
100
+ return {
101
+ isValid: validationResult.valid !== false,
102
+ errors: this.formatValidationMessages(validationResult.errors),
103
+ warnings: this.formatValidationMessages(validationResult.warnings),
104
+ };
105
+ }
106
+ formatValidationMessages(messages = []) {
107
+ return messages.map((message) => {
108
+ if (typeof message === 'string') {
109
+ return message;
110
+ }
111
+ return [message.code, message.message, message.location]
112
+ .filter(Boolean)
113
+ .join(': ');
114
+ });
115
+ }
116
+ getDetectedFormat(einvoice) {
117
+ if (typeof einvoice.getFormat === 'function') {
118
+ return einvoice.getFormat();
119
+ }
120
+ return einvoice.format || 'xrechnung';
121
+ }
122
+ mapEInvoiceToBusinessTerms(einvoice) {
123
+ const issueDate = new Date(einvoice.date || Date.now());
124
+ const invoiceLines = this.mapEInvoiceLinesToBusinessTerms(einvoice.items || [], Boolean(einvoice.reverseCharge));
125
+ const vatBreakdown = this.buildVatBreakdown(invoiceLines);
126
+ const lineNetAmount = invoiceLines.reduce((sum, line) => sum + line.BT131_LineNetAmount, 0);
127
+ const totalVATAmount = vatBreakdown.reduce((sum, vat) => sum + vat.BT117_TaxAmount, 0);
128
+ const taxInclusiveAmount = lineNetAmount + totalVATAmount;
129
+ return {
130
+ BT1_InvoiceNumber: einvoice.accountingDocId || einvoice.id || einvoice.invoiceId || '',
131
+ BT2_IssueDate: issueDate.toISOString(),
132
+ BT3_InvoiceTypeCode: einvoice.accountingDocType === 'creditnote' ? '381' : '380',
133
+ BT5_CurrencyCode: einvoice.currency || 'EUR',
134
+ BT7_TaxPointDate: einvoice.deliveryDate ? new Date(einvoice.deliveryDate).toISOString() : undefined,
135
+ BT9_PaymentDueDate: this.getDueDate(issueDate, einvoice.dueInDays)?.toISOString(),
136
+ BT10_BuyerReference: einvoice.buyerReference,
137
+ BT22_InvoiceNote: Array.isArray(einvoice.notes) ? einvoice.notes.join('\n') : undefined,
138
+ BG4_Seller: this.mapEInvoiceContactToBusinessTerms(einvoice.from, 'seller', einvoice.paymentOptions),
139
+ BG7_Buyer: this.mapEInvoiceContactToBusinessTerms(einvoice.to, 'buyer'),
140
+ BG25_InvoiceLines: invoiceLines,
141
+ BG20_DocumentAllowances: [],
142
+ BG21_DocumentCharges: [],
143
+ BT106_SumOfLineNetAmounts: lineNetAmount,
144
+ BT107_AllowanceTotalAmount: 0,
145
+ BT108_ChargeTotalAmount: 0,
146
+ BT109_TaxExclusiveAmount: lineNetAmount,
147
+ BT110_TotalVATAmount: totalVATAmount,
148
+ BT112_TaxInclusiveAmount: taxInclusiveAmount,
149
+ BT113_PrepaidAmount: 0,
150
+ BT115_PayableAmount: taxInclusiveAmount,
151
+ BG23_VATBreakdown: vatBreakdown,
152
+ BG16_PaymentInstructions: this.mapPaymentOptionsToBusinessTerms(einvoice.paymentOptions),
153
+ };
154
+ }
155
+ mapEInvoiceLinesToBusinessTerms(items, reverseCharge) {
156
+ return items.map((item, index) => {
157
+ const quantity = Number(item.unitQuantity || 0);
158
+ const unitPrice = Number(item.unitNetPrice || 0);
159
+ const vatRate = Number(item.vatPercentage || 0);
160
+ const netAmount = quantity * unitPrice;
161
+ const vatAmount = reverseCharge ? 0 : netAmount * vatRate / 100;
162
+ return {
163
+ BT154_ItemDescription: item.name || '',
164
+ BT129_Quantity: quantity,
165
+ BT146_NetPrice: unitPrice,
166
+ BT131_LineNetAmount: netAmount,
167
+ BT151_ItemVATCategory: this.getVatCategoryCode(vatRate, reverseCharge),
168
+ BT152_ItemVATRate: vatRate,
169
+ BT155_ItemSellerID: item.articleNumber,
170
+ lineVATAmount: vatAmount,
171
+ };
172
+ });
173
+ }
174
+ buildVatBreakdown(invoiceLines) {
175
+ const vatBreakdownMap = new Map();
176
+ for (const line of invoiceLines) {
177
+ const categoryCode = line.BT151_ItemVATCategory || 'S';
178
+ const rate = Number(line.BT152_ItemVATRate || 0);
179
+ const key = `${categoryCode}:${rate}`;
180
+ const existingBreakdown = vatBreakdownMap.get(key) || {
181
+ categoryCode,
182
+ rate,
183
+ taxableAmount: 0,
184
+ taxAmount: 0,
185
+ };
186
+ existingBreakdown.taxableAmount += Number(line.BT131_LineNetAmount || 0);
187
+ existingBreakdown.taxAmount += Number(line.lineVATAmount || 0);
188
+ vatBreakdownMap.set(key, existingBreakdown);
189
+ }
190
+ return Array.from(vatBreakdownMap.values()).map((vatBreakdown) => ({
191
+ BT118_VATCategory: vatBreakdown.categoryCode,
192
+ BT119_VATRate: vatBreakdown.rate,
193
+ BT116_TaxableAmount: vatBreakdown.taxableAmount,
194
+ BT117_TaxAmount: vatBreakdown.taxAmount,
195
+ }));
196
+ }
197
+ mapEInvoiceContactToBusinessTerms(contact, role, paymentOptions) {
198
+ const address = contact?.address || {};
199
+ const registrationDetails = contact?.registrationDetails || {};
200
+ const countryCode = this.normalizeCountryCode(address.countryCode || address.country);
201
+ if (role === 'seller') {
202
+ return {
203
+ BT27_SellerName: contact?.name || '',
204
+ BT29_SellerID: registrationDetails.registrationId,
205
+ BT31_SellerVATID: registrationDetails.vatId,
206
+ BT32_SellerTaxID: registrationDetails.registrationId,
207
+ BT33_SellerPhone: contact?.phone,
208
+ BT34_SellerEmail: contact?.email,
209
+ BT35_SellerStreet: this.formatStreet(address),
210
+ BT37_SellerCity: address.city,
211
+ BT38_SellerPostalCode: address.postalCode,
212
+ BT40_SellerCountryCode: countryCode,
213
+ BT84_PaymentAccountID: paymentOptions?.sepaConnection?.iban,
214
+ BT85_PaymentAccountName: contact?.name,
215
+ BT86_PaymentServiceProviderID: paymentOptions?.sepaConnection?.bic,
216
+ };
217
+ }
218
+ return {
219
+ BT44_BuyerName: contact?.name || '',
220
+ BT46_BuyerID: registrationDetails.registrationId,
221
+ BT47_BuyerTaxID: registrationDetails.registrationId,
222
+ BT48_BuyerVATID: registrationDetails.vatId,
223
+ BT49_BuyerEmail: contact?.email,
224
+ BT50_BuyerStreet: this.formatStreet(address),
225
+ BT52_BuyerCity: address.city,
226
+ BT53_BuyerPostalCode: address.postalCode,
227
+ BT55_BuyerCountryCode: countryCode,
228
+ };
229
+ }
230
+ mapPaymentOptionsToBusinessTerms(paymentOptions) {
231
+ if (!paymentOptions?.sepaConnection?.iban) {
232
+ return undefined;
233
+ }
234
+ return {
235
+ BT81_PaymentMeansCode: '30',
236
+ BT84_PaymentAccountID: paymentOptions.sepaConnection.iban,
237
+ BT85_PaymentAccountName: paymentOptions.description,
238
+ BT86_PaymentServiceProviderID: paymentOptions.sepaConnection.bic,
116
239
  };
117
240
  }
241
+ getDueDate(issueDate, dueInDays) {
242
+ if (typeof dueInDays !== 'number') {
243
+ return undefined;
244
+ }
245
+ return new Date(issueDate.getTime() + dueInDays * 24 * 60 * 60 * 1000);
246
+ }
247
+ getVatCategoryCode(vatRate, reverseCharge) {
248
+ if (reverseCharge) {
249
+ return 'AE';
250
+ }
251
+ return vatRate === 0 ? 'Z' : 'S';
252
+ }
253
+ normalizeCountryCode(country) {
254
+ if (!country) {
255
+ return 'DE';
256
+ }
257
+ const countryMap = {
258
+ Germany: 'DE',
259
+ Deutschland: 'DE',
260
+ };
261
+ return countryMap[country] || country;
262
+ }
263
+ formatStreet(address) {
264
+ return [address.streetName, address.houseNumber]
265
+ .filter(Boolean)
266
+ .join(' ');
267
+ }
118
268
  /**
119
269
  * Map EN16931 Business Terms to internal invoice model
120
270
  */
@@ -449,8 +599,8 @@ export class InvoiceAdapter {
449
599
  const EInvoice = await this.getEInvoiceClass();
450
600
  const einvoice = new EInvoice();
451
601
  // Set invoice data
452
- const businessTerms = this.mapToBusinessTerms(invoiceData);
453
- Object.assign(einvoice, businessTerms);
602
+ const einvoiceData = this.mapToEInvoiceData(invoiceData);
603
+ Object.assign(einvoice, einvoiceData);
454
604
  // Generate XML in requested format
455
605
  const xml = await einvoice.exportXml(format);
456
606
  // Generate PDF if ZUGFeRD or Factur-X
@@ -472,17 +622,79 @@ export class InvoiceAdapter {
472
622
  /**
473
623
  * Map internal invoice to EN16931 Business Terms
474
624
  */
475
- mapToBusinessTerms(invoice) {
625
+ mapToEInvoiceData(invoice) {
626
+ const issueDate = invoice.issueDate || new Date();
627
+ return {
628
+ id: invoice.invoiceNumber || '',
629
+ accountingDocId: invoice.invoiceNumber || '',
630
+ accountingDocType: invoice.invoiceTypeCode === '381' ? 'creditnote' : 'invoice',
631
+ date: issueDate.getTime(),
632
+ currency: invoice.currencyCode || 'EUR',
633
+ buyerReference: invoice.buyerReference,
634
+ deliveryDate: invoice.taxPointDate?.getTime(),
635
+ dueInDays: this.calculateDueInDays(issueDate, invoice.paymentDueDate),
636
+ notes: invoice.invoiceNote ? [invoice.invoiceNote] : [],
637
+ from: this.mapInvoicePartyToEInvoiceContact(invoice.supplier),
638
+ to: this.mapInvoicePartyToEInvoiceContact(invoice.customer),
639
+ items: (invoice.lines || []).map((line) => ({
640
+ position: line.lineNumber,
641
+ name: line.description,
642
+ articleNumber: line.productCode,
643
+ unitType: 'EA',
644
+ unitQuantity: line.quantity,
645
+ unitNetPrice: line.unitPrice,
646
+ vatPercentage: line.vatCategory.rate,
647
+ })),
648
+ paymentOptions: invoice.paymentMeans?.account ? {
649
+ description: invoice.paymentMeans.account.accountHolder,
650
+ sepaConnection: {
651
+ iban: invoice.paymentMeans.account.iban,
652
+ bic: invoice.paymentMeans.account.bic || '',
653
+ },
654
+ payPal: {
655
+ email: '',
656
+ },
657
+ } : undefined,
658
+ };
659
+ }
660
+ mapInvoicePartyToEInvoiceContact(party) {
661
+ const countryCode = this.normalizeCountryCode(party?.address?.countryCode);
476
662
  return {
477
- BT1_InvoiceNumber: invoice.invoiceNumber,
478
- BT2_IssueDate: invoice.issueDate?.toISOString(),
479
- BT3_InvoiceTypeCode: invoice.invoiceTypeCode || '380',
480
- BT5_CurrencyCode: invoice.currencyCode || 'EUR',
481
- BT7_TaxPointDate: invoice.taxPointDate?.toISOString(),
482
- BT9_PaymentDueDate: invoice.paymentDueDate?.toISOString(),
483
- // Map other Business Terms...
484
- // This would be a comprehensive mapping in production
663
+ type: 'company',
664
+ name: party?.name || '',
665
+ description: '',
666
+ address: {
667
+ streetName: party?.address?.street || '',
668
+ houseNumber: '',
669
+ city: party?.address?.city || '',
670
+ postalCode: party?.address?.postalCode || '',
671
+ country: countryCode,
672
+ countryCode,
673
+ },
674
+ registrationDetails: {
675
+ vatId: party?.vatId || '',
676
+ registrationId: party?.id || party?.taxId || '',
677
+ registrationName: party?.name || '',
678
+ },
679
+ status: 'active',
680
+ foundedDate: {
681
+ year: new Date().getFullYear(),
682
+ month: new Date().getMonth() + 1,
683
+ day: new Date().getDate(),
684
+ },
685
+ email: party?.email,
686
+ phone: party?.phone,
687
+ sepaConnection: party?.bankAccount ? {
688
+ iban: party.bankAccount.iban,
689
+ bic: party.bankAccount.bic || '',
690
+ } : undefined,
485
691
  };
486
692
  }
693
+ calculateDueInDays(issueDate, paymentDueDate) {
694
+ if (!paymentDueDate) {
695
+ return 30;
696
+ }
697
+ return Math.max(0, Math.round((paymentDueDate.getTime() - issueDate.getTime()) / (24 * 60 * 60 * 1000)));
698
+ }
487
699
  }
488
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tyLmludm9pY2UuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Nrci5pbnZvaWNlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFjeEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDakIsTUFBTSxDQUE4QjtJQUMzQixrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztJQUV6RDtRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCO1FBSTVCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUsxRCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVnQixZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxXQUFXO0lBQzVDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7SUFFN0Q7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWSxDQUN2QixJQUFxQixFQUNyQixTQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxzQkFBc0I7WUFDdEIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksQ0FBQyxNQUFNLGVBQWUsSUFBSSxDQUFDLFlBQVksU0FBUyxDQUFDLENBQUM7Z0JBQ25HLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFB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
700
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tyLmludm9pY2UuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Nrci5pbnZvaWNlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFjeEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDakIsTUFBTSxDQUE4QjtJQUMzQixrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztJQUV6RDtRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCO1FBSTVCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUsxRCxDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVnQixZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxXQUFXO0lBQzVDLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7SUFFN0Q7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWSxDQUN2QixJQUFxQixFQUNyQixTQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxzQkFBc0I7WUFDdEIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksQ0FBQyxNQUFNLGVBQWUsSUFBSSxDQUFDLFlBQVksU0FBUyxDQUFDLENBQUM7Z0JBQ25HLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFB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