merchi_checkout 0.0.0-a

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 (54) hide show
  1. package/README.md +69 -0
  2. package/lib/actions/confirm.js +83 -0
  3. package/lib/actions/customer.js +59 -0
  4. package/lib/actions/domain.js +69 -0
  5. package/lib/actions/files.js +38 -0
  6. package/lib/actions/helpers.js +125 -0
  7. package/lib/actions/invoice.js +120 -0
  8. package/lib/actions/shipping.js +33 -0
  9. package/lib/actions/user.js +64 -0
  10. package/lib/components/Alerts.js +89 -0
  11. package/lib/components/Collapse.js +34 -0
  12. package/lib/components/DraftImageUploaded.js +54 -0
  13. package/lib/components/FooterButtons.js +25 -0
  14. package/lib/components/InvoiceInfo.js +34 -0
  15. package/lib/components/JobInfoContent.js +276 -0
  16. package/lib/components/MerchiCheckout.js +29 -0
  17. package/lib/components/MerchiCheckoutProvider.js +357 -0
  18. package/lib/components/MerchiCheckoutTabs.js +50 -0
  19. package/lib/components/TabPane.js +21 -0
  20. package/lib/components/TabPaneAddress.js +28 -0
  21. package/lib/components/TabPaneConfirm.js +281 -0
  22. package/lib/components/TabPaneContainer.js +13 -0
  23. package/lib/components/TabPaneCustomer.js +102 -0
  24. package/lib/components/TabPaneDrafting.js +117 -0
  25. package/lib/components/TabPaneNewDomain.js +39 -0
  26. package/lib/components/TabPanePayment.js +41 -0
  27. package/lib/components/TabPaneSubmitted.js +79 -0
  28. package/lib/components/TitleStep.js +23 -0
  29. package/lib/components/buttons/ButtonInvoiceDownload.js +92 -0
  30. package/lib/components/buttons/ButtonNext.js +40 -0
  31. package/lib/components/buttons/ButtonPrevious.js +31 -0
  32. package/lib/components/buttons/index.js +4 -0
  33. package/lib/components/currency.js +223 -0
  34. package/lib/components/forms/CheckboxBillingAddressSameAsShippingAddress.js +23 -0
  35. package/lib/components/forms/FormAddresses.js +200 -0
  36. package/lib/components/forms/FormCustomerNew.js +197 -0
  37. package/lib/components/forms/FormCustomerReturning.js +144 -0
  38. package/lib/components/forms/FormDomainNew.js +146 -0
  39. package/lib/components/forms/InputAcceptUserTermsAndConditions.js +39 -0
  40. package/lib/components/forms/InputCheckStoreName.js +168 -0
  41. package/lib/components/forms/InputError.js +18 -0
  42. package/lib/components/forms/InputFileUpload.js +191 -0
  43. package/lib/components/forms/InputSelect.js +52 -0
  44. package/lib/components/forms/InputText.js +60 -0
  45. package/lib/components/forms/InputsAddress.js +227 -0
  46. package/lib/components/forms/index.js +5 -0
  47. package/lib/components/lists/ListShipmentQuoteOptions.js +139 -0
  48. package/lib/components/lists/index.js +3 -0
  49. package/lib/index.js +6 -0
  50. package/lib/styles/globals.scss +2236 -0
  51. package/lib/tabs_utils.js +126 -0
  52. package/lib/types.js +39 -0
  53. package/lib/utils.js +462 -0
  54. package/package.json +83 -0
package/lib/utils.js ADDED
@@ -0,0 +1,462 @@
1
+ import { ProductType, Role } from './types';
2
+ export var isoCountries = {
3
+ AF: "Afghanistan",
4
+ AX: "Aland Islands",
5
+ AL: "Albania",
6
+ DZ: "Algeria",
7
+ AS: "American Samoa",
8
+ AD: "Andorra",
9
+ AO: "Angola",
10
+ AI: "Anguilla",
11
+ AQ: "Antarctica",
12
+ AG: "Antigua And Barbuda",
13
+ AR: "Argentina",
14
+ AM: "Armenia",
15
+ AW: "Aruba",
16
+ AU: "Australia",
17
+ AT: "Austria",
18
+ AZ: "Azerbaijan",
19
+ BS: "Bahamas",
20
+ BH: "Bahrain",
21
+ BD: "Bangladesh",
22
+ BB: "Barbados",
23
+ BY: "Belarus",
24
+ BE: "Belgium",
25
+ BZ: "Belize",
26
+ BJ: "Benin",
27
+ BM: "Bermuda",
28
+ BT: "Bhutan",
29
+ BO: "Bolivia",
30
+ BA: "Bosnia And Herzegovina",
31
+ BW: "Botswana",
32
+ BV: "Bouvet Island",
33
+ BR: "Brazil",
34
+ IO: "British Indian Ocean Territory",
35
+ BN: "Brunei Darussalam",
36
+ BG: "Bulgaria",
37
+ BF: "Burkina Faso",
38
+ BI: "Burundi",
39
+ KH: "Cambodia",
40
+ CM: "Cameroon",
41
+ CA: "Canada",
42
+ CV: "Cape Verde",
43
+ KY: "Cayman Islands",
44
+ CF: "Central African Republic",
45
+ TD: "Chad",
46
+ CL: "Chile",
47
+ CN: "China",
48
+ CX: "Christmas Island",
49
+ CC: "Cocos (Keeling) Islands",
50
+ CO: "Colombia",
51
+ KM: "Comoros",
52
+ CG: "Congo",
53
+ CD: "Congo, Democratic Republic",
54
+ CK: "Cook Islands",
55
+ CR: "Costa Rica",
56
+ CI: "Cote D'Ivoire",
57
+ HR: "Croatia",
58
+ CU: "Cuba",
59
+ CY: "Cyprus",
60
+ CZ: "Czech Republic",
61
+ DK: "Denmark",
62
+ DJ: "Djibouti",
63
+ DM: "Dominica",
64
+ DO: "Dominican Republic",
65
+ EC: "Ecuador",
66
+ EG: "Egypt",
67
+ SV: "El Salvador",
68
+ GQ: "Equatorial Guinea",
69
+ ER: "Eritrea",
70
+ EE: "Estonia",
71
+ ET: "Ethiopia",
72
+ FK: "Falkland Islands (Malvinas)",
73
+ FO: "Faroe Islands",
74
+ FJ: "Fiji",
75
+ FI: "Finland",
76
+ FR: "France",
77
+ GF: "French Guiana",
78
+ PF: "French Polynesia",
79
+ TF: "French Southern Territories",
80
+ GA: "Gabon",
81
+ GM: "Gambia",
82
+ GE: "Georgia",
83
+ DE: "Germany",
84
+ GH: "Ghana",
85
+ GI: "Gibraltar",
86
+ GR: "Greece",
87
+ GL: "Greenland",
88
+ GD: "Grenada",
89
+ GP: "Guadeloupe",
90
+ GU: "Guam",
91
+ GT: "Guatemala",
92
+ GG: "Guernsey",
93
+ GN: "Guinea",
94
+ GW: "Guinea-Bissau",
95
+ GY: "Guyana",
96
+ HT: "Haiti",
97
+ HM: "Heard Island & Mcdonald Islands",
98
+ VA: "Holy See (Vatican City State)",
99
+ HN: "Honduras",
100
+ HK: "Hong Kong",
101
+ HU: "Hungary",
102
+ IS: "Iceland",
103
+ IN: "India",
104
+ ID: "Indonesia",
105
+ IR: "Iran, Islamic Republic Of",
106
+ IQ: "Iraq",
107
+ IE: "Ireland",
108
+ IM: "Isle Of Man",
109
+ IL: "Israel",
110
+ IT: "Italy",
111
+ JM: "Jamaica",
112
+ JP: "Japan",
113
+ JE: "Jersey",
114
+ JO: "Jordan",
115
+ KZ: "Kazakhstan",
116
+ KE: "Kenya",
117
+ KI: "Kiribati",
118
+ KR: "Korea",
119
+ KW: "Kuwait",
120
+ KG: "Kyrgyzstan",
121
+ LA: "Lao People's Democratic Republic",
122
+ LV: "Latvia",
123
+ LB: "Lebanon",
124
+ LS: "Lesotho",
125
+ LR: "Liberia",
126
+ LY: "Libyan Arab Jamahiriya",
127
+ LI: "Liechtenstein",
128
+ LT: "Lithuania",
129
+ LU: "Luxembourg",
130
+ MO: "Macao",
131
+ MK: "Macedonia",
132
+ MG: "Madagascar",
133
+ MW: "Malawi",
134
+ MY: "Malaysia",
135
+ MV: "Maldives",
136
+ ML: "Mali",
137
+ MT: "Malta",
138
+ MH: "Marshall Islands",
139
+ MQ: "Martinique",
140
+ MR: "Mauritania",
141
+ MU: "Mauritius",
142
+ YT: "Mayotte",
143
+ MX: "Mexico",
144
+ FM: "Micronesia, Federated States Of",
145
+ MD: "Moldova",
146
+ MC: "Monaco",
147
+ MN: "Mongolia",
148
+ ME: "Montenegro",
149
+ MS: "Montserrat",
150
+ MA: "Morocco",
151
+ MZ: "Mozambique",
152
+ MM: "Myanmar",
153
+ NA: "Namibia",
154
+ NR: "Nauru",
155
+ NP: "Nepal",
156
+ NL: "Netherlands",
157
+ AN: "Netherlands Antilles",
158
+ NC: "New Caledonia",
159
+ NZ: "New Zealand",
160
+ NI: "Nicaragua",
161
+ NE: "Niger",
162
+ NG: "Nigeria",
163
+ NU: "Niue",
164
+ NF: "Norfolk Island",
165
+ MP: "Northern Mariana Islands",
166
+ NO: "Norway",
167
+ OM: "Oman",
168
+ PK: "Pakistan",
169
+ PW: "Palau",
170
+ PS: "Palestinian Territory, Occupied",
171
+ PA: "Panama",
172
+ PG: "Papua New Guinea",
173
+ PY: "Paraguay",
174
+ PE: "Peru",
175
+ PH: "Philippines",
176
+ PN: "Pitcairn",
177
+ PL: "Poland",
178
+ PT: "Portugal",
179
+ PR: "Puerto Rico",
180
+ QA: "Qatar",
181
+ RE: "Reunion",
182
+ RO: "Romania",
183
+ RU: "Russian Federation",
184
+ RW: "Rwanda",
185
+ BL: "Saint Barthelemy",
186
+ SH: "Saint Helena",
187
+ KN: "Saint Kitts And Nevis",
188
+ LC: "Saint Lucia",
189
+ MF: "Saint Martin",
190
+ PM: "Saint Pierre And Miquelon",
191
+ VC: "Saint Vincent And Grenadines",
192
+ WS: "Samoa",
193
+ SM: "San Marino",
194
+ ST: "Sao Tome And Principe",
195
+ SA: "Saudi Arabia",
196
+ SN: "Senegal",
197
+ RS: "Serbia",
198
+ SC: "Seychelles",
199
+ SL: "Sierra Leone",
200
+ SG: "Singapore",
201
+ SK: "Slovakia",
202
+ SI: "Slovenia",
203
+ SB: "Solomon Islands",
204
+ SO: "Somalia",
205
+ ZA: "South Africa",
206
+ GS: "South Georgia And Sandwich Isl.",
207
+ ES: "Spain",
208
+ LK: "Sri Lanka",
209
+ SD: "Sudan",
210
+ SR: "Suriname",
211
+ SJ: "Svalbard And Jan Mayen",
212
+ SZ: "Swaziland",
213
+ SE: "Sweden",
214
+ CH: "Switzerland",
215
+ SY: "Syrian Arab Republic",
216
+ TW: "Taiwan",
217
+ TJ: "Tajikistan",
218
+ TZ: "Tanzania",
219
+ TH: "Thailand",
220
+ TL: "Timor-Leste",
221
+ TG: "Togo",
222
+ TK: "Tokelau",
223
+ TO: "Tonga",
224
+ TT: "Trinidad And Tobago",
225
+ TN: "Tunisia",
226
+ TR: "Turkey",
227
+ TM: "Turkmenistan",
228
+ TC: "Turks And Caicos Islands",
229
+ TV: "Tuvalu",
230
+ UG: "Uganda",
231
+ UA: "Ukraine",
232
+ AE: "United Arab Emirates",
233
+ GB: "United Kingdom",
234
+ US: "United States",
235
+ UM: "United States Outlying Islands",
236
+ UY: "Uruguay",
237
+ UZ: "Uzbekistan",
238
+ VU: "Vanuatu",
239
+ VE: "Venezuela",
240
+ VN: "Viet Nam",
241
+ VG: "Virgin Islands, British",
242
+ VI: "Virgin Islands, U.S.",
243
+ WF: "Wallis And Futuna",
244
+ EH: "Western Sahara",
245
+ YE: "Yemen",
246
+ ZM: "Zambia",
247
+ ZW: "Zimbabwe"
248
+ };
249
+ export function userDomainsByRoles(user, roles) {
250
+ var eD = user && user.enrolledDomains ? user.enrolledDomains : [];
251
+ var domains = [];
252
+ var i = 0;
253
+ for (i; i < eD.length; i++) {
254
+ var e = eD[i];
255
+ if (roles.includes(e.role)) {
256
+ domains.push(e.domain);
257
+ }
258
+ }
259
+ return domains;
260
+ }
261
+ export function userAdminDomains(user) {
262
+ return userDomainsByRoles(user, [Role.ADMIN, Role.MANAGER]);
263
+ }
264
+ export function isProductSupplierMOD(product) {
265
+ var productType = product && product.productType;
266
+ return product && [String(ProductType.SUPPLIER_MOD), String(ProductType.SUPPLIER_RESELL_MOD)].includes(String(productType));
267
+ }
268
+ export function isUserRegistered(user) {
269
+ var id = user ? user.id : null;
270
+ return id !== undefined && id !== null && id > 0;
271
+ }
272
+ export function isRegisteredAndHasStore(user) {
273
+ var id = user ? user.id : null;
274
+ return id !== undefined && id !== null && id > 0 && user.hasStore;
275
+ }
276
+ var supportedNumbers = {
277
+ AU: 'Australia (+61)',
278
+ AE: 'United Arab Emirates (+971)',
279
+ BH: 'Bahrain (+973)',
280
+ CN: 'China (+86)',
281
+ DK: 'Denmark (+45)',
282
+ ES: 'Spain (+34)',
283
+ FR: 'France (+33)',
284
+ GB: 'United Kingdom (+44)',
285
+ HK: 'Hong Kong (+852)',
286
+ ID: 'Indonesia (+62)',
287
+ IN: 'India (+91)',
288
+ IT: 'Italy (+39)',
289
+ KR: 'South Korea (+82)',
290
+ NC: 'New Caledonia (+687)',
291
+ NZ: 'New Zealand (+64)',
292
+ OM: 'Oman (+968)',
293
+ PH: 'Philippines (+63)',
294
+ PT: 'Portugal (+351)',
295
+ QA: 'Qatar (+974)',
296
+ SE: 'Sweden (+46)',
297
+ SG: 'Singapore (+65)',
298
+ TH: 'Thailand (+66)',
299
+ US: 'United States (+1)',
300
+ ZA: 'South Africa (+27)'
301
+ };
302
+ export var phoneOptions = Object.keys(supportedNumbers).map(function (key) {
303
+ return {
304
+ value: key,
305
+ label: supportedNumbers[key]
306
+ };
307
+ });
308
+ export var addressComponentsSettings = {
309
+ administrative_area_level_1: 'short_name',
310
+ administrative_area_level_2: 'short_name',
311
+ country: 'short_name',
312
+ establishment: 'long_name',
313
+ floor: 'short_name',
314
+ locality: 'long_name',
315
+ postal_code: 'short_name',
316
+ premise: 'short_name',
317
+ room: 'long_name',
318
+ route: 'short_name',
319
+ street_number: 'short_name',
320
+ sublocality: 'long_name',
321
+ subpremise: 'short_name'
322
+ };
323
+ export function geoSuggestResultAsNewAddress(resp) {
324
+ var addressComponents = resp && resp.gmaps ? resp.gmaps.address_components : null;
325
+ var name = resp && resp.gmaps && resp.gmaps.name;
326
+ var address = {
327
+ city: '',
328
+ country: '',
329
+ lineOne: name ? name : '',
330
+ lineTwo: '',
331
+ postcode: '',
332
+ state: ''
333
+ };
334
+ var i;
335
+ if (addressComponents) {
336
+ for (i = 0; i < addressComponents.length; i++) {
337
+ var addrComponent = addressComponents[i];
338
+ var addrTypes = addrComponent.types;
339
+ var addrType = addrTypes.length > 0 ? addrTypes[0] : null;
340
+ var componentSetting = addrType ? addressComponentsSettings[addrType] : null;
341
+ if (componentSetting) {
342
+ var addressVal = addrComponent[componentSetting];
343
+ switch (addrType) {
344
+ case 'establishment':
345
+ case 'room':
346
+ case 'floor':
347
+ case 'street_number':
348
+ case 'premise':
349
+ case 'subpremise':
350
+ case 'route':
351
+ var oldLineOne = address.lineOne;
352
+ address.lineOne = oldLineOne.includes(addressVal) ? oldLineOne : "".concat(oldLineOne, " ").concat(addressVal);
353
+ break;
354
+ case 'locality':
355
+ case 'sublocality':
356
+ var oldCity = address.city ? "".concat(address.city, " ") : '';
357
+ address.city = oldCity + addressVal;
358
+ break;
359
+ case 'administrative_area_level_1':
360
+ address.state = addressVal;
361
+ break;
362
+ case 'administrative_area_level_2':
363
+ break;
364
+ case 'country':
365
+ address.country = addressVal;
366
+ break;
367
+ case 'postal_code':
368
+ address.postcode = addressVal;
369
+ break;
370
+ default:
371
+ break;
372
+ }
373
+ }
374
+ }
375
+ return address;
376
+ }
377
+ return null;
378
+ }
379
+ export function addressInOneLine(address) {
380
+ var a = address ? address : {};
381
+ var city = a.city,
382
+ country = a.country,
383
+ lineOne = a.lineOne,
384
+ lineTwo = a.lineTwo,
385
+ postcode = a.postcode,
386
+ state = a.state;
387
+ var l1 = lineOne ? "".concat(lineOne, " ") : '';
388
+ var l2 = lineTwo ? "".concat(lineTwo, " ") : '';
389
+ var c = city ? "".concat(city, " ") : '';
390
+ var s = state ? "".concat(state, " ") : '';
391
+ var p = postcode ? "".concat(postcode, " ") : '';
392
+ var countryFull = country ? isoCountries[country] : '';
393
+ return l1 + l2 + c + s + p + countryFull;
394
+ }
395
+ export var FieldType = /*#__PURE__*/function (FieldType) {
396
+ FieldType[FieldType["TEXT_INPUT"] = 1] = "TEXT_INPUT";
397
+ FieldType[FieldType["SELECT"] = 2] = "SELECT";
398
+ FieldType[FieldType["FILE_UPLOAD"] = 3] = "FILE_UPLOAD";
399
+ FieldType[FieldType["TEXT_AREA"] = 4] = "TEXT_AREA";
400
+ FieldType[FieldType["NUMBER_INPUT"] = 5] = "NUMBER_INPUT";
401
+ FieldType[FieldType["CHECKBOX"] = 6] = "CHECKBOX";
402
+ FieldType[FieldType["RADIO"] = 7] = "RADIO";
403
+ FieldType[FieldType["FIELD_INSTRUCTIONS"] = 8] = "FIELD_INSTRUCTIONS";
404
+ FieldType[FieldType["IMAGE_SELECT"] = 9] = "IMAGE_SELECT";
405
+ FieldType[FieldType["COLOUR_PICKER"] = 10] = "COLOUR_PICKER";
406
+ FieldType[FieldType["COLOUR_SELECT"] = 11] = "COLOUR_SELECT";
407
+ return FieldType;
408
+ }({});
409
+ export function isSelectable(fieldType) {
410
+ return [FieldType.SELECT, FieldType.CHECKBOX, FieldType.RADIO, FieldType.IMAGE_SELECT, FieldType.COLOUR_SELECT].includes(fieldType);
411
+ }
412
+ export function isInstructionsType(fieldType) {
413
+ return String(FieldType.FIELD_INSTRUCTIONS) === String(fieldType);
414
+ }
415
+ export var countryDefaultDict = function countryDefaultDict(currency) {
416
+ return {
417
+ currency: currency
418
+ };
419
+ };
420
+ export var supportedCountryDefaults = {
421
+ AE: countryDefaultDict('USD'),
422
+ AU: countryDefaultDict('AUD'),
423
+ BH: countryDefaultDict('USD'),
424
+ CH: countryDefaultDict('CNY'),
425
+ DK: countryDefaultDict('EUR'),
426
+ ES: countryDefaultDict('EUR'),
427
+ FR: countryDefaultDict('EUR'),
428
+ GB: countryDefaultDict('GBP'),
429
+ HK: countryDefaultDict('HKD'),
430
+ ID: countryDefaultDict('USD'),
431
+ IN: countryDefaultDict('INR'),
432
+ IT: countryDefaultDict('EUR'),
433
+ KR: countryDefaultDict('USD'),
434
+ NC: countryDefaultDict('USD'),
435
+ NZ: countryDefaultDict('NZD'),
436
+ OM: countryDefaultDict('USD'),
437
+ PH: countryDefaultDict('USD'),
438
+ PT: countryDefaultDict('EUR'),
439
+ QA: countryDefaultDict('USD'),
440
+ SE: countryDefaultDict('USD'),
441
+ SG: countryDefaultDict('SGD'),
442
+ TH: countryDefaultDict('USD'),
443
+ US: countryDefaultDict('USD'),
444
+ ZA: countryDefaultDict('USD')
445
+ };
446
+ export var supportedCountryDefaultsWithDefault = function supportedCountryDefaultsWithDefault(countryCode) {
447
+ var defaultCountryValues = supportedCountryDefaults[countryCode];
448
+ return defaultCountryValues ? defaultCountryValues : supportedCountryDefaults.AU;
449
+ };
450
+ export function cleanClientFiles(clientFiles) {
451
+ return clientFiles.map(function (clientFile) {
452
+ return clientFile.file;
453
+ });
454
+ }
455
+ export function appendClientToOwnDraft(job) {
456
+ var ownDrafts = job.ownDrafts;
457
+ if (job.ownDrafts && job.ownDrafts.length) {
458
+ job.ownDrafts[0].designer = job.client;
459
+ }
460
+ return job;
461
+ }
462
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcm9kdWN0VHlwZSIsIlJvbGUiLCJpc29Db3VudHJpZXMiLCJBRiIsIkFYIiwiQUwiLCJEWiIsIkFTIiwiQUQiLCJBTyIsIkFJIiwiQVEiLCJBRyIsIkFSIiwiQU0iLCJBVyIsIkFVIiwiQVQiLCJBWiIsIkJTIiwiQkgiLCJCRCIsIkJCIiwiQlkiLCJCRSIsIkJaIiwiQkoiLCJCTSIsIkJUIiwiQk8iLCJCQSIsIkJXIiwiQlYiLCJCUiIsIklPIiwiQk4iLCJCRyIsIkJGIiwiQkkiLCJLSCIsIkNNIiwiQ0EiLCJDViIsIktZIiwiQ0YiLCJURCIsIkNMIiwiQ04iLCJDWCIsIkNDIiwiQ08iLCJLTSIsIkNHIiwiQ0QiLCJDSyIsIkNSIiwiQ0kiLCJIUiIsIkNVIiwiQ1kiLCJDWiIsIkRLIiwiREoiLCJETSIsIkRPIiwiRUMiLCJFRyIsIlNWIiwiR1EiLCJFUiIsIkVFIiwiRVQiLCJGSyIsIkZPIiwiRkoiLCJGSSIsIkZSIiwiR0YiLCJQRiIsIlRGIiwiR0EiLCJHTSIsIkdFIiwiREUiLCJHSCIsIkdJIiwiR1IiLCJHTCIsIkdEIiwiR1AiLCJHVSIsIkdUIiwiR0ciLCJHTiIsIkdXIiwiR1kiLCJIVCIsIkhNIiwiVkEiLCJITiIsIkhLIiwiSFUiLCJJUyIsIklOIiwiSUQiLCJJUiIsIklRIiwiSUUiLCJJTSIsIklMIiwiSVQiLCJKTSIsIkpQIiwiSkUiLCJKTyIsIktaIiwiS0UiLCJLSSIsIktSIiwiS1ciLCJLRyIsIkxBIiwiTFYiLCJMQiIsIkxTIiwiTFIiLCJMWSIsIkxJIiwiTFQiLCJMVSIsIk1PIiwiTUsiLCJNRyIsIk1XIiwiTVkiLCJNViIsIk1MIiwiTVQiLCJNSCIsIk1RIiwiTVIiLCJNVSIsIllUIiwiTVgiLCJGTSIsIk1EIiwiTUMiLCJNTiIsIk1FIiwiTVMiLCJNQSIsIk1aIiwiTU0iLCJOQSIsIk5SIiwiTlAiLCJOTCIsIkFOIiwiTkMiLCJOWiIsIk5JIiwiTkUiLCJORyIsIk5VIiwiTkYiLCJNUCIsIk5PIiwiT00iLCJQSyIsIlBXIiwiUFMiLCJQQSIsIlBHIiwiUFkiLCJQRSIsIlBIIiwiUE4iLCJQTCIsIlBUIiwiUFIiLCJRQSIsIlJFIiwiUk8iLCJSVSIsIlJXIiwiQkwiLCJTSCIsIktOIiwiTEMiLCJNRiIsIlBNIiwiVkMiLCJXUyIsIlNNIiwiU1QiLCJTQSIsIlNOIiwiUlMiLCJTQyIsIlNMIiwiU0ciLCJTSyIsIlNJIiwiU0IiLCJTTyIsIlpBIiwiR1MiLCJFUyIsIkxLIiwiU0QiLCJTUiIsIlNKIiwiU1oiLCJTRSIsIkNIIiwiU1kiLCJUVyIsIlRKIiwiVFoiLCJUSCIsIlRMIiwiVEciLCJUSyIsIlRPIiwiVFQiLCJUTiIsIlRSIiwiVE0iLCJUQyIsIlRWIiwiVUciLCJVQSIsIkFFIiwiR0IiLCJVUyIsIlVNIiwiVVkiLCJVWiIsIlZVIiwiVkUiLCJWTiIsIlZHIiwiVkkiLCJXRiIsIkVIIiwiWUUiLCJaTSIsIlpXIiwidXNlckRvbWFpbnNCeVJvbGVzIiwidXNlciIsInJvbGVzIiwiZUQiLCJlbnJvbGxlZERvbWFpbnMiLCJkb21haW5zIiwiaSIsImxlbmd0aCIsImUiLCJpbmNsdWRlcyIsInJvbGUiLCJwdXNoIiwiZG9tYWluIiwidXNlckFkbWluRG9tYWlucyIsIkFETUlOIiwiTUFOQUdFUiIsImlzUHJvZHVjdFN1cHBsaWVyTU9EIiwicHJvZHVjdCIsInByb2R1Y3RUeXBlIiwiU3RyaW5nIiwiU1VQUExJRVJfTU9EIiwiU1VQUExJRVJfUkVTRUxMX01PRCIsImlzVXNlclJlZ2lzdGVyZWQiLCJpZCIsInVuZGVmaW5lZCIsImlzUmVnaXN0ZXJlZEFuZEhhc1N0b3JlIiwiaGFzU3RvcmUiLCJzdXBwb3J0ZWROdW1iZXJzIiwicGhvbmVPcHRpb25zIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsInZhbHVlIiwibGFiZWwiLCJhZGRyZXNzQ29tcG9uZW50c1NldHRpbmdzIiwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xIiwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8yIiwiY291bnRyeSIsImVzdGFibGlzaG1lbnQiLCJmbG9vciIsImxvY2FsaXR5IiwicG9zdGFsX2NvZGUiLCJwcmVtaXNlIiwicm9vbSIsInJvdXRlIiwic3RyZWV0X251bWJlciIsInN1YmxvY2FsaXR5Iiwic3VicHJlbWlzZSIsImdlb1N1Z2dlc3RSZXN1bHRBc05ld0FkZHJlc3MiLCJyZXNwIiwiYWRkcmVzc0NvbXBvbmVudHMiLCJnbWFwcyIsImFkZHJlc3NfY29tcG9uZW50cyIsIm5hbWUiLCJhZGRyZXNzIiwiY2l0eSIsImxpbmVPbmUiLCJsaW5lVHdvIiwicG9zdGNvZGUiLCJzdGF0ZSIsImFkZHJDb21wb25lbnQiLCJhZGRyVHlwZXMiLCJ0eXBlcyIsImFkZHJUeXBlIiwiY29tcG9uZW50U2V0dGluZyIsImFkZHJlc3NWYWwiLCJvbGRMaW5lT25lIiwiY29uY2F0Iiwib2xkQ2l0eSIsImFkZHJlc3NJbk9uZUxpbmUiLCJhIiwibDEiLCJsMiIsImMiLCJzIiwicCIsImNvdW50cnlGdWxsIiwiRmllbGRUeXBlIiwiaXNTZWxlY3RhYmxlIiwiZmllbGRUeXBlIiwiU0VMRUNUIiwiQ0hFQ0tCT1giLCJSQURJTyIsIklNQUdFX1NFTEVDVCIsIkNPTE9VUl9TRUxFQ1QiLCJpc0luc3RydWN0aW9uc1R5cGUiLCJGSUVMRF9JTlNUUlVDVElPTlMiLCJjb3VudHJ5RGVmYXVsdERpY3QiLCJjdXJyZW5jeSIsInN1cHBvcnRlZENvdW50cnlEZWZhdWx0cyIsInN1cHBvcnRlZENvdW50cnlEZWZhdWx0c1dpdGhEZWZhdWx0IiwiY291bnRyeUNvZGUiLCJkZWZhdWx0Q291bnRyeVZhbHVlcyIsImNsZWFuQ2xpZW50RmlsZXMiLCJjbGllbnRGaWxlcyIsImNsaWVudEZpbGUiLCJmaWxlIiwiYXBwZW5kQ2xpZW50VG9Pd25EcmFmdCIsImpvYiIsIm93bkRyYWZ0cyIsImRlc2lnbmVyIiwiY2xpZW50Il0sInNvdXJjZXMiOlsiLi4vc3JjL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RUeXBlLCBSb2xlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc29Db3VudHJpZXM6IGFueSA9IHtcbiAgQUY6IFwiQWZnaGFuaXN0YW5cIixcbiAgQVg6IFwiQWxhbmQgSXNsYW5kc1wiLFxuICBBTDogXCJBbGJhbmlhXCIsXG4gIERaOiBcIkFsZ2VyaWFcIixcbiAgQVM6IFwiQW1lcmljYW4gU2Ftb2FcIixcbiAgQUQ6IFwiQW5kb3JyYVwiLFxuICBBTzogXCJBbmdvbGFcIixcbiAgQUk6IFwiQW5ndWlsbGFcIixcbiAgQVE6IFwiQW50YXJjdGljYVwiLFxuICBBRzogXCJBbnRpZ3VhIEFuZCBCYXJidWRhXCIsXG4gIEFSOiBcIkFyZ2VudGluYVwiLFxuICBBTTogXCJBcm1lbmlhXCIsXG4gIEFXOiBcIkFydWJhXCIsXG4gIEFVOiBcIkF1c3RyYWxpYVwiLFxuICBBVDogXCJBdXN0cmlhXCIsXG4gIEFaOiBcIkF6ZXJiYWlqYW5cIixcbiAgQlM6IFwiQmFoYW1hc1wiLFxuICBCSDogXCJCYWhyYWluXCIsXG4gIEJEOiBcIkJhbmdsYWRlc2hcIixcbiAgQkI6IFwiQmFyYmFkb3NcIixcbiAgQlk6IFwiQmVsYXJ1c1wiLFxuICBCRTogXCJCZWxnaXVtXCIsXG4gIEJaOiBcIkJlbGl6ZVwiLFxuICBCSjogXCJCZW5pblwiLFxuICBCTTogXCJCZXJtdWRhXCIsXG4gIEJUOiBcIkJodXRhblwiLFxuICBCTzogXCJCb2xpdmlhXCIsXG4gIEJBOiBcIkJvc25pYSBBbmQgSGVyemVnb3ZpbmFcIixcbiAgQlc6IFwiQm90c3dhbmFcIixcbiAgQlY6IFwiQm91dmV0IElzbGFuZFwiLFxuICBCUjogXCJCcmF6aWxcIixcbiAgSU86IFwiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5XCIsXG4gIEJOOiBcIkJydW5laSBEYXJ1c3NhbGFtXCIsXG4gIEJHOiBcIkJ1bGdhcmlhXCIsXG4gIEJGOiBcIkJ1cmtpbmEgRmFzb1wiLFxuICBCSTogXCJCdXJ1bmRpXCIsXG4gIEtIOiBcIkNhbWJvZGlhXCIsXG4gIENNOiBcIkNhbWVyb29uXCIsXG4gIENBOiBcIkNhbmFkYVwiLFxuICBDVjogXCJDYXBlIFZlcmRlXCIsXG4gIEtZOiBcIkNheW1hbiBJc2xhbmRzXCIsXG4gIENGOiBcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY1wiLFxuICBURDogXCJDaGFkXCIsXG4gIENMOiBcIkNoaWxlXCIsXG4gIENOOiBcIkNoaW5hXCIsXG4gIENYOiBcIkNocmlzdG1hcyBJc2xhbmRcIixcbiAgQ0M6IFwiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHNcIixcbiAgQ086IFwiQ29sb21iaWFcIixcbiAgS006IFwiQ29tb3Jvc1wiLFxuICBDRzogXCJDb25nb1wiLFxuICBDRDogXCJDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpY1wiLFxuICBDSzogXCJDb29rIElzbGFuZHNcIixcbiAgQ1I6IFwiQ29zdGEgUmljYVwiLFxuICBDSTogXCJDb3RlIEQnSXZvaXJlXCIsXG4gIEhSOiBcIkNyb2F0aWFcIixcbiAgQ1U6IFwiQ3ViYVwiLFxuICBDWTogXCJDeXBydXNcIixcbiAgQ1o6IFwiQ3plY2ggUmVwdWJsaWNcIixcbiAgREs6IFwiRGVubWFya1wiLFxuICBESjogXCJEamlib3V0aVwiLFxuICBETTogXCJEb21pbmljYVwiLFxuICBETzogXCJEb21pbmljYW4gUmVwdWJsaWNcIixcbiAgRUM6IFwiRWN1YWRvclwiLFxuICBFRzogXCJFZ3lwdFwiLFxuICBTVjogXCJFbCBTYWx2YWRvclwiLFxuICBHUTogXCJFcXVhdG9yaWFsIEd1aW5lYVwiLFxuICBFUjogXCJFcml0cmVhXCIsXG4gIEVFOiBcIkVzdG9uaWFcIixcbiAgRVQ6IFwiRXRoaW9waWFcIixcbiAgRks6IFwiRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpXCIsXG4gIEZPOiBcIkZhcm9lIElzbGFuZHNcIixcbiAgRko6IFwiRmlqaVwiLFxuICBGSTogXCJGaW5sYW5kXCIsXG4gIEZSOiBcIkZyYW5jZVwiLFxuICBHRjogXCJGcmVuY2ggR3VpYW5hXCIsXG4gIFBGOiBcIkZyZW5jaCBQb2x5bmVzaWFcIixcbiAgVEY6IFwiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzXCIsXG4gIEdBOiBcIkdhYm9uXCIsXG4gIEdNOiBcIkdhbWJpYVwiLFxuICBHRTogXCJHZW9yZ2lhXCIsXG4gIERFOiBcIkdlcm1hbnlcIixcbiAgR0g6IFwiR2hhbmFcIixcbiAgR0k6IFwiR2licmFsdGFyXCIsXG4gIEdSOiBcIkdyZWVjZVwiLFxuICBHTDogXCJHcmVlbmxhbmRcIixcbiAgR0Q6IFwiR3JlbmFkYVwiLFxuICBHUDogXCJHdWFkZWxvdXBlXCIsXG4gIEdVOiBcIkd1YW1cIixcbiAgR1Q6IFwiR3VhdGVtYWxhXCIsXG4gIEdHOiBcIkd1ZXJuc2V5XCIsXG4gIEdOOiBcIkd1aW5lYVwiLFxuICBHVzogXCJHdWluZWEtQmlzc2F1XCIsXG4gIEdZOiBcIkd1eWFuYVwiLFxuICBIVDogXCJIYWl0aVwiLFxuICBITTogXCJIZWFyZCBJc2xhbmQgJiBNY2RvbmFsZCBJc2xhbmRzXCIsXG4gIFZBOiBcIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpXCIsXG4gIEhOOiBcIkhvbmR1cmFzXCIsXG4gIEhLOiBcIkhvbmcgS29uZ1wiLFxuICBIVTogXCJIdW5nYXJ5XCIsXG4gIElTOiBcIkljZWxhbmRcIixcbiAgSU46IFwiSW5kaWFcIixcbiAgSUQ6IFwiSW5kb25lc2lhXCIsXG4gIElSOiBcIklyYW4sIElzbGFtaWMgUmVwdWJsaWMgT2ZcIixcbiAgSVE6IFwiSXJhcVwiLFxuICBJRTogXCJJcmVsYW5kXCIsXG4gIElNOiBcIklzbGUgT2YgTWFuXCIsXG4gIElMOiBcIklzcmFlbFwiLFxuICBJVDogXCJJdGFseVwiLFxuICBKTTogXCJKYW1haWNhXCIsXG4gIEpQOiBcIkphcGFuXCIsXG4gIEpFOiBcIkplcnNleVwiLFxuICBKTzogXCJKb3JkYW5cIixcbiAgS1o6IFwiS2F6YWtoc3RhblwiLFxuICBLRTogXCJLZW55YVwiLFxuICBLSTogXCJLaXJpYmF0aVwiLFxuICBLUjogXCJLb3JlYVwiLFxuICBLVzogXCJLdXdhaXRcIixcbiAgS0c6IFwiS3lyZ3l6c3RhblwiLFxuICBMQTogXCJMYW8gUGVvcGxlJ3MgRGVtb2NyYXRpYyBSZXB1YmxpY1wiLFxuICBMVjogXCJMYXR2aWFcIixcbiAgTEI6IFwiTGViYW5vblwiLFxuICBMUzogXCJMZXNvdGhvXCIsXG4gIExSOiBcIkxpYmVyaWFcIixcbiAgTFk6IFwiTGlieWFuIEFyYWIgSmFtYWhpcml5YVwiLFxuICBMSTogXCJMaWVjaHRlbnN0ZWluXCIsXG4gIExUOiBcIkxpdGh1YW5pYVwiLFxuICBMVTogXCJMdXhlbWJvdXJnXCIsXG4gIE1POiBcIk1hY2FvXCIsXG4gIE1LOiBcIk1hY2Vkb25pYVwiLFxuICBNRzogXCJNYWRhZ2FzY2FyXCIsXG4gIE1XOiBcIk1hbGF3aVwiLFxuICBNWTogXCJNYWxheXNpYVwiLFxuICBNVjogXCJNYWxkaXZlc1wiLFxuICBNTDogXCJNYWxpXCIsXG4gIE1UOiBcIk1hbHRhXCIsXG4gIE1IOiBcIk1hcnNoYWxsIElzbGFuZHNcIixcbiAgTVE6IFwiTWFydGluaXF1ZVwiLFxuICBNUjogXCJNYXVyaXRhbmlhXCIsXG4gIE1VOiBcIk1hdXJpdGl1c1wiLFxuICBZVDogXCJNYXlvdHRlXCIsXG4gIE1YOiBcIk1leGljb1wiLFxuICBGTTogXCJNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIE9mXCIsXG4gIE1EOiBcIk1vbGRvdmFcIixcbiAgTUM6IFwiTW9uYWNvXCIsXG4gIE1OOiBcIk1vbmdvbGlhXCIsXG4gIE1FOiBcIk1vbnRlbmVncm9cIixcbiAgTVM6IFwiTW9udHNlcnJhdFwiLFxuICBNQTogXCJNb3JvY2NvXCIsXG4gIE1aOiBcIk1vemFtYmlxdWVcIixcbiAgTU06IFwiTXlhbm1hclwiLFxuICBOQTogXCJOYW1pYmlhXCIsXG4gIE5SOiBcIk5hdXJ1XCIsXG4gIE5QOiBcIk5lcGFsXCIsXG4gIE5MOiBcIk5ldGhlcmxhbmRzXCIsXG4gIEFOOiBcIk5ldGhlcmxhbmRzIEFudGlsbGVzXCIsXG4gIE5DOiBcIk5ldyBDYWxlZG9uaWFcIixcbiAgTlo6IFwiTmV3IFplYWxhbmRcIixcbiAgTkk6IFwiTmljYXJhZ3VhXCIsXG4gIE5FOiBcIk5pZ2VyXCIsXG4gIE5HOiBcIk5pZ2VyaWFcIixcbiAgTlU6IFwiTml1ZVwiLFxuICBORjogXCJOb3Jmb2xrIElzbGFuZFwiLFxuICBNUDogXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcbiAgTk86IFwiTm9yd2F5XCIsXG4gIE9NOiBcIk9tYW5cIixcbiAgUEs6IFwiUGFraXN0YW5cIixcbiAgUFc6IFwiUGFsYXVcIixcbiAgUFM6IFwiUGFsZXN0aW5pYW4gVGVycml0b3J5LCBPY2N1cGllZFwiLFxuICBQQTogXCJQYW5hbWFcIixcbiAgUEc6IFwiUGFwdWEgTmV3IEd1aW5lYVwiLFxuICBQWTogXCJQYXJhZ3VheVwiLFxuICBQRTogXCJQZXJ1XCIsXG4gIFBIOiBcIlBoaWxpcHBpbmVzXCIsXG4gIFBOOiBcIlBpdGNhaXJuXCIsXG4gIFBMOiBcIlBvbGFuZFwiLFxuICBQVDogXCJQb3J0dWdhbFwiLFxuICBQUjogXCJQdWVydG8gUmljb1wiLFxuICBRQTogXCJRYXRhclwiLFxuICBSRTogXCJSZXVuaW9uXCIsXG4gIFJPOiBcIlJvbWFuaWFcIixcbiAgUlU6IFwiUnVzc2lhbiBGZWRlcmF0aW9uXCIsXG4gIFJXOiBcIlJ3YW5kYVwiLFxuICBCTDogXCJTYWludCBCYXJ0aGVsZW15XCIsXG4gIFNIOiBcIlNhaW50IEhlbGVuYVwiLFxuICBLTjogXCJTYWludCBLaXR0cyBBbmQgTmV2aXNcIixcbiAgTEM6IFwiU2FpbnQgTHVjaWFcIixcbiAgTUY6IFwiU2FpbnQgTWFydGluXCIsXG4gIFBNOiBcIlNhaW50IFBpZXJyZSBBbmQgTWlxdWVsb25cIixcbiAgVkM6IFwiU2FpbnQgVmluY2VudCBBbmQgR3JlbmFkaW5lc1wiLFxuICBXUzogXCJTYW1vYVwiLFxuICBTTTogXCJTYW4gTWFyaW5vXCIsXG4gIFNUOiBcIlNhbyBUb21lIEFuZCBQcmluY2lwZVwiLFxuICBTQTogXCJTYXVkaSBBcmFiaWFcIixcbiAgU046IFwiU2VuZWdhbFwiLFxuICBSUzogXCJTZXJiaWFcIixcbiAgU0M6IFwiU2V5Y2hlbGxlc1wiLFxuICBTTDogXCJTaWVycmEgTGVvbmVcIixcbiAgU0c6IFwiU2luZ2Fwb3JlXCIsXG4gIFNLOiBcIlNsb3Zha2lhXCIsXG4gIFNJOiBcIlNsb3ZlbmlhXCIsXG4gIFNCOiBcIlNvbG9tb24gSXNsYW5kc1wiLFxuICBTTzogXCJTb21hbGlhXCIsXG4gIFpBOiBcIlNvdXRoIEFmcmljYVwiLFxuICBHUzogXCJTb3V0aCBHZW9yZ2lhIEFuZCBTYW5kd2ljaCBJc2wuXCIsXG4gIEVTOiBcIlNwYWluXCIsXG4gIExLOiBcIlNyaSBMYW5rYVwiLFxuICBTRDogXCJTdWRhblwiLFxuICBTUjogXCJTdXJpbmFtZVwiLFxuICBTSjogXCJTdmFsYmFyZCBBbmQgSmFuIE1heWVuXCIsXG4gIFNaOiBcIlN3YXppbGFuZFwiLFxuICBTRTogXCJTd2VkZW5cIixcbiAgQ0g6IFwiU3dpdHplcmxhbmRcIixcbiAgU1k6IFwiU3lyaWFuIEFyYWIgUmVwdWJsaWNcIixcbiAgVFc6IFwiVGFpd2FuXCIsXG4gIFRKOiBcIlRhamlraXN0YW5cIixcbiAgVFo6IFwiVGFuemFuaWFcIixcbiAgVEg6IFwiVGhhaWxhbmRcIixcbiAgVEw6IFwiVGltb3ItTGVzdGVcIixcbiAgVEc6IFwiVG9nb1wiLFxuICBUSzogXCJUb2tlbGF1XCIsXG4gIFRPOiBcIlRvbmdhXCIsXG4gIFRUOiBcIlRyaW5pZGFkIEFuZCBUb2JhZ29cIixcbiAgVE46IFwiVHVuaXNpYVwiLFxuICBUUjogXCJUdXJrZXlcIixcbiAgVE06IFwiVHVya21lbmlzdGFuXCIsXG4gIFRDOiBcIlR1cmtzIEFuZCBDYWljb3MgSXNsYW5kc1wiLFxuICBUVjogXCJUdXZhbHVcIixcbiAgVUc6IFwiVWdhbmRhXCIsXG4gIFVBOiBcIlVrcmFpbmVcIixcbiAgQUU6IFwiVW5pdGVkIEFyYWIgRW1pcmF0ZXNcIixcbiAgR0I6IFwiVW5pdGVkIEtpbmdkb21cIixcbiAgVVM6IFwiVW5pdGVkIFN0YXRlc1wiLFxuICBVTTogXCJVbml0ZWQgU3RhdGVzIE91dGx5aW5nIElzbGFuZHNcIixcbiAgVVk6IFwiVXJ1Z3VheVwiLFxuICBVWjogXCJVemJla2lzdGFuXCIsXG4gIFZVOiBcIlZhbnVhdHVcIixcbiAgVkU6IFwiVmVuZXp1ZWxhXCIsXG4gIFZOOiBcIlZpZXQgTmFtXCIsXG4gIFZHOiBcIlZpcmdpbiBJc2xhbmRzLCBCcml0aXNoXCIsXG4gIFZJOiBcIlZpcmdpbiBJc2xhbmRzLCBVLlMuXCIsXG4gIFdGOiBcIldhbGxpcyBBbmQgRnV0dW5hXCIsXG4gIEVIOiBcIldlc3Rlcm4gU2FoYXJhXCIsXG4gIFlFOiBcIlllbWVuXCIsXG4gIFpNOiBcIlphbWJpYVwiLFxuICBaVzogXCJaaW1iYWJ3ZVwiXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlckRvbWFpbnNCeVJvbGVzKHVzZXI6IGFueSwgcm9sZXM6IEFycmF5PG51bWJlcj4pIHtcbiAgY29uc3QgZUQgPSB1c2VyICYmIHVzZXIuZW5yb2xsZWREb21haW5zID8gdXNlci5lbnJvbGxlZERvbWFpbnMgOiBbXTtcbiAgY29uc3QgZG9tYWlucyA9IFtdO1xuICBsZXQgaSA9IDA7XG4gIGZvciAoaTsgaSA8IGVELmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgZSA9IGVEW2ldO1xuICAgIGlmIChyb2xlcy5pbmNsdWRlcyhlLnJvbGUpKSB7XG4gICAgICBkb21haW5zLnB1c2goZS5kb21haW4pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZG9tYWlucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZXJBZG1pbkRvbWFpbnModXNlcjogYW55KSB7XG4gIHJldHVybiB1c2VyRG9tYWluc0J5Um9sZXModXNlciwgW1JvbGUuQURNSU4sIFJvbGUuTUFOQUdFUl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9kdWN0U3VwcGxpZXJNT0QocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHByb2R1Y3RUeXBlID0gcHJvZHVjdCAmJiBwcm9kdWN0LnByb2R1Y3RUeXBlXG4gIHJldHVybiBwcm9kdWN0ICYmIFtcbiAgICBTdHJpbmcoUHJvZHVjdFR5cGUuU1VQUExJRVJfTU9EKSxcbiAgICBTdHJpbmcoUHJvZHVjdFR5cGUuU1VQUExJRVJfUkVTRUxMX01PRClcbiAgXS5pbmNsdWRlcyhTdHJpbmcocHJvZHVjdFR5cGUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVXNlclJlZ2lzdGVyZWQodXNlcjogYW55KSB7XG4gIGNvbnN0IGlkID0gdXNlciA/IHVzZXIuaWQgOiBudWxsO1xuICByZXR1cm4gaWQgIT09IHVuZGVmaW5lZCAmJiBpZCAhPT0gbnVsbCAmJiBpZCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZ2lzdGVyZWRBbmRIYXNTdG9yZSh1c2VyOiBhbnkpIHtcbiAgY29uc3QgaWQgPSB1c2VyID8gdXNlci5pZCA6IG51bGw7XG4gIHJldHVybiBpZCAhPT0gdW5kZWZpbmVkICYmIGlkICE9PSBudWxsICYmIGlkID4gMCAmJiB1c2VyLmhhc1N0b3JlO1xufVxuXG5jb25zdCBzdXBwb3J0ZWROdW1iZXJzOiBhbnkgPSB7XG4gIEFVOiAnQXVzdHJhbGlhICgrNjEpJyxcbiAgQUU6ICdVbml0ZWQgQXJhYiBFbWlyYXRlcyAoKzk3MSknLFxuICBCSDogJ0JhaHJhaW4gKCs5NzMpJyxcbiAgQ046ICdDaGluYSAoKzg2KScsXG4gIERLOiAnRGVubWFyayAoKzQ1KScsXG4gIEVTOiAnU3BhaW4gKCszNCknLFxuICBGUjogJ0ZyYW5jZSAoKzMzKScsXG4gIEdCOiAnVW5pdGVkIEtpbmdkb20gKCs0NCknLFxuICBISzogJ0hvbmcgS29uZyAoKzg1MiknLFxuICBJRDogJ0luZG9uZXNpYSAoKzYyKScsXG4gIElOOiAnSW5kaWEgKCs5MSknLFxuICBJVDogJ0l0YWx5ICgrMzkpJyxcbiAgS1I6ICdTb3V0aCBLb3JlYSAoKzgyKScsXG4gIE5DOiAnTmV3IENhbGVkb25pYSAoKzY4NyknLFxuICBOWjogJ05ldyBaZWFsYW5kICgrNjQpJyxcbiAgT006ICdPbWFuICgrOTY4KScsXG4gIFBIOiAnUGhpbGlwcGluZXMgKCs2MyknLFxuICBQVDogJ1BvcnR1Z2FsICgrMzUxKScsXG4gIFFBOiAnUWF0YXIgKCs5NzQpJyxcbiAgU0U6ICdTd2VkZW4gKCs0NiknLFxuICBTRzogJ1NpbmdhcG9yZSAoKzY1KScsXG4gIFRIOiAnVGhhaWxhbmQgKCs2NiknLFxuICBVUzogJ1VuaXRlZCBTdGF0ZXMgKCsxKScsXG4gIFpBOiAnU291dGggQWZyaWNhICgrMjcpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBwaG9uZU9wdGlvbnMgPSBPYmplY3Qua2V5cyhzdXBwb3J0ZWROdW1iZXJzKS5tYXAoKGtleSkgPT4gKHtcbiAgdmFsdWU6IGtleSxcbiAgbGFiZWw6IHN1cHBvcnRlZE51bWJlcnNba2V5XSxcbn0pKTtcblxuZXhwb3J0IGNvbnN0IGFkZHJlc3NDb21wb25lbnRzU2V0dGluZ3M6IGFueSA9IHtcbiAgYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xOiAnc2hvcnRfbmFtZScsXG4gIGFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMjogJ3Nob3J0X25hbWUnLFxuICBjb3VudHJ5OiAnc2hvcnRfbmFtZScsXG4gIGVzdGFibGlzaG1lbnQ6ICdsb25nX25hbWUnLFxuICBmbG9vcjogJ3Nob3J0X25hbWUnLFxuICBsb2NhbGl0eTogJ2xvbmdfbmFtZScsXG4gIHBvc3RhbF9jb2RlOiAnc2hvcnRfbmFtZScsXG4gIHByZW1pc2U6ICdzaG9ydF9uYW1lJyxcbiAgcm9vbTogJ2xvbmdfbmFtZScsXG4gIHJvdXRlOiAnc2hvcnRfbmFtZScsXG4gIHN0cmVldF9udW1iZXI6ICdzaG9ydF9uYW1lJyxcbiAgc3VibG9jYWxpdHk6ICdsb25nX25hbWUnLFxuICBzdWJwcmVtaXNlOiAnc2hvcnRfbmFtZScsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VvU3VnZ2VzdFJlc3VsdEFzTmV3QWRkcmVzcyhyZXNwOiBhbnkpIHtcbiAgY29uc3QgYWRkcmVzc0NvbXBvbmVudHMgPSByZXNwICYmIHJlc3AuZ21hcHMgP1xuICAgIHJlc3AuZ21hcHMuYWRkcmVzc19jb21wb25lbnRzIDogbnVsbDtcbiAgY29uc3QgbmFtZSA9IHJlc3AgJiYgcmVzcC5nbWFwcyAmJiByZXNwLmdtYXBzLm5hbWU7XG4gIGNvbnN0IGFkZHJlc3MgPSB7XG4gICAgY2l0eTogJycsXG4gICAgY291bnRyeTogJycsXG4gICAgbGluZU9uZTogbmFtZSA/IG5hbWUgOiAnJyxcbiAgICBsaW5lVHdvOiAnJyxcbiAgICBwb3N0Y29kZTogJycsXG4gICAgc3RhdGU6ICcnLFxuICB9O1xuICBsZXQgaTtcbiAgaWYgKGFkZHJlc3NDb21wb25lbnRzKSB7XG4gICAgZm9yIChpID0gMDsgaSA8IGFkZHJlc3NDb21wb25lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhZGRyQ29tcG9uZW50ID0gYWRkcmVzc0NvbXBvbmVudHNbaV07XG4gICAgICBjb25zdCBhZGRyVHlwZXMgPSBhZGRyQ29tcG9uZW50LnR5cGVzO1xuICAgICAgY29uc3QgYWRkclR5cGUgPSBhZGRyVHlwZXMubGVuZ3RoID4gMCA/IGFkZHJUeXBlc1swXSA6IG51bGw7XG4gICAgICBjb25zdCBjb21wb25lbnRTZXR0aW5nID0gYWRkclR5cGUgP1xuICAgICAgICBhZGRyZXNzQ29tcG9uZW50c1NldHRpbmdzW2FkZHJUeXBlXSA6IG51bGw7XG4gICAgICBpZiAoY29tcG9uZW50U2V0dGluZykge1xuICAgICAgICBjb25zdCBhZGRyZXNzVmFsID0gYWRkckNvbXBvbmVudFtjb21wb25lbnRTZXR0aW5nXTtcbiAgICAgICAgc3dpdGNoIChhZGRyVHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2VzdGFibGlzaG1lbnQnOlxuICAgICAgICAgIGNhc2UgJ3Jvb20nOlxuICAgICAgICAgIGNhc2UgJ2Zsb29yJzpcbiAgICAgICAgICBjYXNlICdzdHJlZXRfbnVtYmVyJzpcbiAgICAgICAgICBjYXNlICdwcmVtaXNlJzpcbiAgICAgICAgICBjYXNlICdzdWJwcmVtaXNlJzpcbiAgICAgICAgICBjYXNlICdyb3V0ZSc6XG4gICAgICAgICAgICBjb25zdCBvbGRMaW5lT25lID0gYWRkcmVzcy5saW5lT25lO1xuICAgICAgICAgICAgYWRkcmVzcy5saW5lT25lID0gb2xkTGluZU9uZS5pbmNsdWRlcyhhZGRyZXNzVmFsKSA/XG4gICAgICAgICAgICAgIG9sZExpbmVPbmUgOiBgJHtvbGRMaW5lT25lfSAke2FkZHJlc3NWYWx9YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2xvY2FsaXR5JzpcbiAgICAgICAgICBjYXNlICdzdWJsb2NhbGl0eSc6XG4gICAgICAgICAgICBjb25zdCBvbGRDaXR5ID0gYWRkcmVzcy5jaXR5ID8gYCR7YWRkcmVzcy5jaXR5fSBgIDogJydcbiAgICAgICAgICAgIGFkZHJlc3MuY2l0eSA9IG9sZENpdHkgKyBhZGRyZXNzVmFsO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xJzpcbiAgICAgICAgICAgIGFkZHJlc3Muc3RhdGUgPSBhZGRyZXNzVmFsO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8yJzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2NvdW50cnknOlxuICAgICAgICAgICAgYWRkcmVzcy5jb3VudHJ5ID0gYWRkcmVzc1ZhbDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Bvc3RhbF9jb2RlJzpcbiAgICAgICAgICAgIGFkZHJlc3MucG9zdGNvZGUgPSBhZGRyZXNzVmFsO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhZGRyZXNzO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkcmVzc0luT25lTGluZShhZGRyZXNzOiBhbnkpIHtcbiAgY29uc3QgYSA9IGFkZHJlc3MgPyBhZGRyZXNzIDoge307XG4gIGNvbnN0IHtcbiAgICBjaXR5LFxuICAgIGNvdW50cnksXG4gICAgbGluZU9uZSxcbiAgICBsaW5lVHdvLFxuICAgIHBvc3Rjb2RlLFxuICAgIHN0YXRlXG4gIH0gPSBhO1xuICBjb25zdCBsMSA9IGxpbmVPbmUgPyBgJHtsaW5lT25lfSBgIDogJyc7XG4gIGNvbnN0IGwyID0gbGluZVR3byA/IGAke2xpbmVUd299IGAgOiAnJztcbiAgY29uc3QgYyA9IGNpdHkgPyBgJHtjaXR5fSBgIDogJyc7XG4gIGNvbnN0IHMgPSBzdGF0ZSA/IGAke3N0YXRlfSBgIDogJyc7XG4gIGNvbnN0IHAgPSBwb3N0Y29kZSA/IGAke3Bvc3Rjb2RlfSBgIDogJyc7XG4gIGNvbnN0IGNvdW50cnlGdWxsID0gY291bnRyeSA/IGlzb0NvdW50cmllc1tjb3VudHJ5XSA6ICcnO1xuICByZXR1cm4gbDEgKyBsMiArIGMgKyBzICsgcCArIGNvdW50cnlGdWxsO1xufVxuXG5leHBvcnQgZW51bSBGaWVsZFR5cGUge1xuICBURVhUX0lOUFVUID0gMSxcbiAgU0VMRUNUID0gMixcbiAgRklMRV9VUExPQUQgPSAzLFxuICBURVhUX0FSRUEgPSA0LFxuICBOVU1CRVJfSU5QVVQgPSA1LFxuICBDSEVDS0JPWCA9IDYsXG4gIFJBRElPID0gNyxcbiAgRklFTERfSU5TVFJVQ1RJT05TID0gOCxcbiAgSU1BR0VfU0VMRUNUID0gOSxcbiAgQ09MT1VSX1BJQ0tFUiA9IDEwLFxuICBDT0xPVVJfU0VMRUNUID0gMTEsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlbGVjdGFibGUoZmllbGRUeXBlOiBudW1iZXIpIHtcbiAgcmV0dXJuIFtcbiAgICBGaWVsZFR5cGUuU0VMRUNULFxuICAgIEZpZWxkVHlwZS5DSEVDS0JPWCxcbiAgICBGaWVsZFR5cGUuUkFESU8sXG4gICAgRmllbGRUeXBlLklNQUdFX1NFTEVDVCxcbiAgICBGaWVsZFR5cGUuQ09MT1VSX1NFTEVDVFxuICBdLmluY2x1ZGVzKGZpZWxkVHlwZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luc3RydWN0aW9uc1R5cGUoZmllbGRUeXBlOiBudW1iZXIpIHtcbiAgcmV0dXJuIFN0cmluZyhGaWVsZFR5cGUuRklFTERfSU5TVFJVQ1RJT05TKSA9PT0gU3RyaW5nKGZpZWxkVHlwZSk7XG59XG5cbmV4cG9ydCBjb25zdCBjb3VudHJ5RGVmYXVsdERpY3QgPSAoY3VycmVuY3k6IHN0cmluZykgPT4ge1xuICByZXR1cm4ge2N1cnJlbmN5OiBjdXJyZW5jeX07XG59O1xuICBcbmV4cG9ydCBjb25zdCBzdXBwb3J0ZWRDb3VudHJ5RGVmYXVsdHM6IGFueSA9IHtcbiAgQUU6IGNvdW50cnlEZWZhdWx0RGljdCgnVVNEJyksXG4gIEFVOiBjb3VudHJ5RGVmYXVsdERpY3QoJ0FVRCcpLFxuICBCSDogY291bnRyeURlZmF1bHREaWN0KCdVU0QnKSxcbiAgQ0g6IGNvdW50cnlEZWZhdWx0RGljdCgnQ05ZJyksXG4gIERLOiBjb3VudHJ5RGVmYXVsdERpY3QoJ0VVUicpLFxuICBFUzogY291bnRyeURlZmF1bHREaWN0KCdFVVInKSxcbiAgRlI6IGNvdW50cnlEZWZhdWx0RGljdCgnRVVSJyksXG4gIEdCOiBjb3VudHJ5RGVmYXVsdERpY3QoJ0dCUCcpLFxuICBISzogY291bnRyeURlZmF1bHREaWN0KCdIS0QnKSxcbiAgSUQ6IGNvdW50cnlEZWZhdWx0RGljdCgnVVNEJyksXG4gIElOOiBjb3VudHJ5RGVmYXVsdERpY3QoJ0lOUicpLFxuICBJVDogY291bnRyeURlZmF1bHREaWN0KCdFVVInKSxcbiAgS1I6IGNvdW50cnlEZWZhdWx0RGljdCgnVVNEJyksXG4gIE5DOiBjb3VudHJ5RGVmYXVsdERpY3QoJ1VTRCcpLFxuICBOWjogY291bnRyeURlZmF1bHREaWN0KCdOWkQnKSxcbiAgT006IGNvdW50cnlEZWZhdWx0RGljdCgnVVNEJyksXG4gIFBIOiBjb3VudHJ5RGVmYXVsdERpY3QoJ1VTRCcpLFxuICBQVDogY291bnRyeURlZmF1bHREaWN0KCdFVVInKSxcbiAgUUE6IGNvdW50cnlEZWZhdWx0RGljdCgnVVNEJyksXG4gIFNFOiBjb3VudHJ5RGVmYXVsdERpY3QoJ1VTRCcpLFxuICBTRzogY291bnRyeURlZmF1bHREaWN0KCdTR0QnKSxcbiAgVEg6IGNvdW50cnlEZWZhdWx0RGljdCgnVVNEJyksXG4gIFVTOiBjb3VudHJ5RGVmYXVsdERpY3QoJ1VTRCcpLFxuICBaQTogY291bnRyeURlZmF1bHREaWN0KCdVU0QnKSxcbn07XG4gIFxuZXhwb3J0IGNvbnN0IHN1cHBvcnRlZENvdW50cnlEZWZhdWx0c1dpdGhEZWZhdWx0ID0gKGNvdW50cnlDb2RlOiBhbnkpID0+IHtcbiAgY29uc3QgZGVmYXVsdENvdW50cnlWYWx1ZXMgPSBzdXBwb3J0ZWRDb3VudHJ5RGVmYXVsdHNbY291bnRyeUNvZGVdO1xuICByZXR1cm4gZGVmYXVsdENvdW50cnlWYWx1ZXMgPyBkZWZhdWx0Q291bnRyeVZhbHVlcyA6IHN1cHBvcnRlZENvdW50cnlEZWZhdWx0cy5BVTtcbn07XG5cbmludGVyZmFjZSBDbGllbnRGaWxlQW5kT2JqZWN0SWQge1xuICBmaWxlOiBhbnk7XG4gIG9iamVjdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkNsaWVudEZpbGVzKGNsaWVudEZpbGVzOiBDbGllbnRGaWxlQW5kT2JqZWN0SWRbXSkge1xuICByZXR1cm4gY2xpZW50RmlsZXMubWFwKChjbGllbnRGaWxlOiBDbGllbnRGaWxlQW5kT2JqZWN0SWQpID0+IGNsaWVudEZpbGUuZmlsZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDbGllbnRUb093bkRyYWZ0KGpvYjogYW55KSB7XG4gIGNvbnN0IHsgb3duRHJhZnRzIH0gPSBqb2I7XG4gIGlmIChqb2Iub3duRHJhZnRzICYmIGpvYi5vd25EcmFmdHMubGVuZ3RoKSB7XG4gICAgam9iLm93bkRyYWZ0c1swXS5kZXNpZ25lciA9IGpvYi5jbGllbnQ7XG4gIH1cbiAgcmV0dXJuIGpvYjtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxFQUFFQyxJQUFJLFFBQVEsU0FBUztBQUUzQyxPQUFPLElBQU1DLFlBQWlCLEdBQUc7RUFDL0JDLEVBQUUsRUFBRSxhQUFhO0VBQ2pCQyxFQUFFLEVBQUUsZUFBZTtFQUNuQkMsRUFBRSxFQUFFLFNBQVM7RUFDYkMsRUFBRSxFQUFFLFNBQVM7RUFDYkMsRUFBRSxFQUFFLGdCQUFnQjtFQUNwQkMsRUFBRSxFQUFFLFNBQVM7RUFDYkMsRUFBRSxFQUFFLFFBQVE7RUFDWkMsRUFBRSxFQUFFLFVBQVU7RUFDZEMsRUFBRSxFQUFFLFlBQVk7RUFDaEJDLEVBQUUsRUFBRSxxQkFBcUI7RUFDekJDLEVBQUUsRUFBRSxXQUFXO0VBQ2ZDLEVBQUUsRUFBRSxTQUFTO0VBQ2JDLEVBQUUsRUFBRSxPQUFPO0VBQ1hDLEVBQUUsRUFBRSxXQUFXO0VBQ2ZDLEVBQUUsRUFBRSxTQUFTO0VBQ2JDLEVBQUUsRUFBRSxZQUFZO0VBQ2hCQyxFQUFFLEVBQUUsU0FBUztFQUNiQyxFQUFFLEVBQUUsU0FBUztFQUNiQyxFQUFFLEVBQUUsWUFBWTtFQUNoQkMsRUFBRSxFQUFFLFVBQVU7RUFDZEMsRUFBRSxFQUFFLFNBQVM7RUFDYkMsRUFBRSxFQUFFLFNBQVM7RUFDYkMsRUFBRSxFQUFFLFFBQVE7RUFDWkMsRUFBRSxFQUFFLE9BQU87RUFDWEMsRUFBRSxFQUFFLFNBQVM7RUFDYkMsRUFBRSxFQUFFLFFBQVE7RUFDWkMsRUFBRSxFQUFFLFNBQVM7RUFDYkMsRUFBRSxFQUFFLHdCQUF3QjtFQUM1QkMsRUFBRSxFQUFFLFVBQVU7RUFDZEMsRUFBRSxFQUFFLGVBQWU7RUFDbkJDLEVBQUUsRUFBRSxRQUFRO0VBQ1pDLEVBQUUsRUFBRSxnQ0FBZ0M7RUFDcENDLEVBQUUsRUFBRSxtQkFBbUI7RUFDdkJDLEVBQUUsRUFBRSxVQUFVO0VBQ2RDLEVBQUUsRUFBRSxj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
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "merchi_checkout",
3
+ "version": "0.0.0a",
4
+ "description": "Merchi's custom checkout step form",
5
+ "main": "'src/index.js'",
6
+ "module": "src/index.tsx",
7
+ "types": "lib/index.d.ts",
8
+ "scripts": {
9
+ "build": "babel src --out-dir lib --extensions .ts,.tsx --source-maps inline --verbose --copy-files && yarn copy-assets",
10
+ "copy-assets": "copyfiles -u 1 src/**/*.png lib",
11
+ "start": "react-scripts start",
12
+ "test": "react-scripts test",
13
+ "eject": "react-scripts eject"
14
+ },
15
+ "repository": "git+https://github.com/merchisdk/merchi_checkout.git",
16
+ "keywords": [
17
+ "react",
18
+ "merchi",
19
+ "component",
20
+ "merch",
21
+ "merchandise",
22
+ "library",
23
+ "stripe"
24
+ ],
25
+ "author": "Merchi SDK <james@merchi.co>",
26
+ "license": "MIT",
27
+ "bugs": {
28
+ "url": "https://github.com/merchisdk/merchi_checkout/issues"
29
+ },
30
+ "homepage": "https://github.com/merchisdk/merchi_checkout#readme",
31
+ "files": [
32
+ "lib"
33
+ ],
34
+ "peerDependencies": {
35
+ "react": "^18.0.0",
36
+ "react-dom": "^18.0.0"
37
+ },
38
+ "devDependencies": {
39
+ "@babel/cli": "^7.23.0",
40
+ "@babel/core": "^7.23.0",
41
+ "@babel/plugin-transform-react-jsx": "^7.22.15",
42
+ "@babel/plugin-transform-runtime": "^7.23.3",
43
+ "@babel/preset-env": "^7.23.3",
44
+ "@babel/preset-react": "^7.23.3",
45
+ "@babel/preset-typescript": "^7.23.3",
46
+ "@types/lodash": "^4.14.199",
47
+ "@types/node": "20.5.0",
48
+ "@types/react": "18.2.20",
49
+ "@types/react-dom": "18.2.7",
50
+ "@types/uuid": "^9.0.5",
51
+ "copyfiles": "^2.4.1",
52
+ "eslint": "8.47.0",
53
+ "eslint-config-next": "13.4.16",
54
+ "typescript": "^5.1.6"
55
+
56
+ },
57
+ "dependencies": {
58
+ "@babel/cli": "^7.23.4",
59
+ "@babel/core": "^7.23.7",
60
+ "@babel/plugin-transform-react-jsx": "^7.23.4",
61
+ "@babel/preset-env": "^7.23.7",
62
+ "@babel/preset-react": "^7.23.3",
63
+ "@babel/preset-typescript": "^7.23.3",
64
+ "@pqina/pintura": "^8.71.1",
65
+ "@pqina/react-pintura": "^9.0.3",
66
+ "@types/node": "20.5.0",
67
+ "@types/react": "18.2.20",
68
+ "@types/react-dom": "18.2.7",
69
+ "eslint": "8.47.0",
70
+ "eslint-config-next": "13.4.16",
71
+ "lodash": "^4.17.21",
72
+ "react": "18.2.0",
73
+ "react-addons-css-transition-group": "^15.6.2",
74
+ "react-country-region-selector": "^3.6.1",
75
+ "react-dom": "18.2.0",
76
+ "react-dropzone": "^14.2.3",
77
+ "react-geosuggest": "^2.14.1",
78
+ "react-icons": "^4.10.1",
79
+ "react-medium-image-zoom": "^5.1.8",
80
+ "typescript": "5.1.6",
81
+ "uuid": "^9.0.0"
82
+ }
83
+ }