@xsolla/payment-client-core 0.2.14 → 0.2.16

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 (36) hide show
  1. package/esm2020/lib/core/countries-api/countries-api.service.mjs +38 -0
  2. package/esm2020/lib/core/countries-api/country-response.interface.mjs +2 -0
  3. package/esm2020/lib/core/countries-api/country.interface.mjs +2 -0
  4. package/esm2020/lib/core/payment/form/controls/search-select/select-control.config.mjs +8 -0
  5. package/esm2020/lib/core/payment/form/converters/cvv/cvv.converter.mjs +3 -3
  6. package/esm2020/lib/core/payment/form/converters/pricepoint/pricepoint.converter.mjs +2 -2
  7. package/esm2020/lib/core/payment/form/converters/select/select.converter.mjs +4 -3
  8. package/esm2020/lib/core/payment/form/converters/zip/zip.converter.mjs +2 -5
  9. package/esm2020/lib/core/payment/form/form.service.mjs +4 -1
  10. package/esm2020/lib/core/payment/payment.interface.mjs +1 -1
  11. package/esm2020/lib/core/payment/payment.service.mjs +4 -1
  12. package/esm2020/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +3 -7
  13. package/esm2020/lib/core-library.service.mjs +10 -9
  14. package/esm2020/public-api.mjs +3 -1
  15. package/fesm2015/xsolla-payment-client-core.mjs +60 -29
  16. package/fesm2015/xsolla-payment-client-core.mjs.map +1 -1
  17. package/fesm2020/xsolla-payment-client-core.mjs +55 -29
  18. package/fesm2020/xsolla-payment-client-core.mjs.map +1 -1
  19. package/lib/core/countries-api/countries-api.service.d.ts +15 -0
  20. package/lib/core/countries-api/country-response.interface.d.ts +4 -0
  21. package/lib/core/countries-api/country.interface.d.ts +5 -0
  22. package/lib/core/payment/form/controls/search-select/{search-select-control.config.d.ts → select-control.config.d.ts} +2 -2
  23. package/lib/core/payment/form/converters/select/select.converter.d.ts +2 -2
  24. package/lib/core/payment/form/form.service.d.ts +2 -0
  25. package/lib/core/payment/payment.interface.d.ts +1 -0
  26. package/lib/core/payment/payment.service.d.ts +1 -0
  27. package/lib/core-library.service.d.ts +5 -3
  28. package/package.json +1 -1
  29. package/public-api.d.ts +2 -0
  30. package/xsolla-payment-client-core-0.2.16.tgz +0 -0
  31. package/esm2020/lib/core/payment/form/controls/search-select/search-select-control.config.mjs +0 -8
  32. package/esm2020/lib/core/payment/form/mask-config.interface.mjs +0 -2
  33. package/esm2020/lib/core/payment/form/masks-functions.map.mjs +0 -7
  34. package/lib/core/payment/form/mask-config.interface.d.ts +0 -6
  35. package/lib/core/payment/form/masks-functions.map.d.ts +0 -3
  36. package/xsolla-payment-client-core-0.2.14.tgz +0 -0
@@ -9,13 +9,6 @@ import { filter, map as map$1, tap, debounce, catchError } from 'rxjs/operators'
9
9
  import * as i1$1 from '@angular/router';
10
10
  import { CommonModule } from '@angular/common';
11
11
 
12
- const masksFunctionsMap = {
13
- zip: () => {
14
- const zipLength = 5;
15
- return new Array(zipLength).fill('9').join('');
16
- },
17
- };
18
-
19
12
  class AppError extends Error {
20
13
  constructor(message) {
21
14
  super(message);
@@ -3169,14 +3162,12 @@ class ZipConverter extends Converter {
3169
3162
  config.icon = 'location';
3170
3163
  if (this.isUsCountry) {
3171
3164
  config.maskConfig = {
3165
+ mask: new Array(this.usCountryLength).fill('9').join(''),
3172
3166
  guide: false,
3173
3167
  unmaskModelValue: true,
3174
3168
  showMask: true,
3175
3169
  };
3176
3170
  config.inputMode = 'numeric';
3177
- if (masksFunctionsMap['zip']) {
3178
- config.maskConfig.mask = masksFunctionsMap['zip'];
3179
- }
3180
3171
  }
3181
3172
  else {
3182
3173
  config.maxLength = this.maxLength;
@@ -3416,7 +3407,7 @@ class CvvConverter extends Converter {
3416
3407
  createControlConfig(field, formState) {
3417
3408
  const config = this.createDefaultControlConfig(TextControlConfig, field);
3418
3409
  config.maskConfig = {
3419
- mask: () => new Array(this.maxFieldLength).fill('9').join(''),
3410
+ mask: new Array(this.maxFieldLength).fill('9').join(''),
3420
3411
  unmaskModelValue: false,
3421
3412
  guide: false,
3422
3413
  };
@@ -3436,7 +3427,7 @@ class CvvConverter extends Converter {
3436
3427
  return 'cc-csc';
3437
3428
  }
3438
3429
  getDataType() {
3439
- return 'password';
3430
+ return 'text';
3440
3431
  }
3441
3432
  shouldHideUserInput() {
3442
3433
  return true;
@@ -3656,7 +3647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3656
3647
  type: Injectable
3657
3648
  }], ctorParameters: function () { return [{ type: SyncService }]; } });
3658
3649
 
3659
- class SearchSelectControlConfig extends ControlConfig {
3650
+ class SelectControlConfig extends ControlConfig {
3660
3651
  constructor() {
3661
3652
  super(...arguments);
3662
3653
  this.controlType = 'search-select';
@@ -3668,8 +3659,9 @@ class SelectConverter extends Converter {
3668
3659
  super(syncService);
3669
3660
  }
3670
3661
  createControlConfig(field) {
3671
- const config = this.createDefaultControlConfig(SearchSelectControlConfig, field);
3662
+ const config = this.createDefaultControlConfig(SelectControlConfig, field);
3672
3663
  config.options = field.options;
3664
+ config.initValue = field.value;
3673
3665
  return config;
3674
3666
  }
3675
3667
  }
@@ -3729,7 +3721,7 @@ class PricepointConverter extends Converter {
3729
3721
  createControlConfig(field) {
3730
3722
  const config = this.createDefaultControlConfig(TextControlConfig, field);
3731
3723
  config.maskConfig = {
3732
- mask: () => new Array(this.maxFieldLength).fill('9').join(``),
3724
+ mask: new Array(this.maxFieldLength).fill('9').join(``),
3733
3725
  unmaskModelValue: false,
3734
3726
  guide: false,
3735
3727
  };
@@ -3972,6 +3964,9 @@ class FormService {
3972
3964
  }, {});
3973
3965
  return new UntypedFormGroup(controls);
3974
3966
  }
3967
+ getFieldFormState(fieldName) {
3968
+ return this.fieldFormStates[fieldName] ?? null;
3969
+ }
3975
3970
  updateFieldFormState(form, fields, fieldName, formState) {
3976
3971
  const field = fields.find((fieldItem) => fieldItem.name === fieldName);
3977
3972
  if (!field) {
@@ -6452,6 +6447,9 @@ class PaymentService {
6452
6447
  this.formService.updateFieldFormState(this.form, this.fields, fieldName, formState);
6453
6448
  }
6454
6449
  }
6450
+ getFieldFormState(fieldName) {
6451
+ return this.formService.getFieldFormState(fieldName);
6452
+ }
6455
6453
  async getStatus() {
6456
6454
  if (!isSubmitResponse(this.data)) {
6457
6455
  throw new Error('Should submit form first');
@@ -7004,8 +7002,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
7004
7002
  }]
7005
7003
  }], ctorParameters: function () { return [{ type: PaymentMethodsService }, { type: SavedMethodsService }]; } });
7006
7004
 
7005
+ class CountriesApiService {
7006
+ constructor(secureApi, settingsService) {
7007
+ this.secureApi = secureApi;
7008
+ this.settingsService = settingsService;
7009
+ this.countries$ = new BehaviorSubject(null);
7010
+ this.apiRoute = 'country';
7011
+ }
7012
+ async request() {
7013
+ const token = this.settingsService.token;
7014
+ return lastValueFrom(this.secureApi
7015
+ .post(this.apiRoute, { access_token: token }, {
7016
+ headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'),
7017
+ responseType: 'json',
7018
+ })
7019
+ .pipe(map$1((response) => {
7020
+ return response.countryList;
7021
+ }), tap((value) => {
7022
+ this.countries$.next(value);
7023
+ return value;
7024
+ })));
7025
+ }
7026
+ }
7027
+ CountriesApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CountriesApiService, deps: [{ token: SecureApiClient }, { token: SettingsService }], target: i0.ɵɵFactoryTarget.Injectable });
7028
+ CountriesApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CountriesApiService, providedIn: 'root' });
7029
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CountriesApiService, decorators: [{
7030
+ type: Injectable,
7031
+ args: [{
7032
+ providedIn: 'root',
7033
+ }]
7034
+ }], ctorParameters: function () { return [{ type: SecureApiClient }, { type: SettingsService }]; } });
7035
+
7007
7036
  class CoreLibraryService {
7008
- constructor(settingsService, countryService, paymentMethodsService, savedMethodsService, userBalanceService, paymentConfigService, paymentService, deviceFingerPrintService, financeDetailsService, legalService, statusService, nextActionService, creditCardService, creditCardStateService, formMessagesService, editSavedMethodsService, userBehaviourAnalyticsService, performanceService, combinedPaymentMethodsService) {
7037
+ constructor(settingsService, countryService, paymentMethodsService, savedMethodsService, userBalanceService, paymentConfigService, paymentService, deviceFingerPrintService, financeDetailsService, legalService, statusService, nextActionService, creditCardService, creditCardStateService, formMessagesService, editSavedMethodsService, userBehaviourAnalyticsService, performanceService, combinedPaymentMethodsService, countriesApiService) {
7009
7038
  this.settingsService = settingsService;
7010
7039
  this.countryService = countryService;
7011
7040
  this.paymentMethodsService = paymentMethodsService;
@@ -7025,6 +7054,7 @@ class CoreLibraryService {
7025
7054
  this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
7026
7055
  this.performanceService = performanceService;
7027
7056
  this.combinedPaymentMethodsService = combinedPaymentMethodsService;
7057
+ this.countriesApiService = countriesApiService;
7028
7058
  this.paymentMethods = {
7029
7059
  getList: async (isSaveMethodMode) => this.paymentMethodsService.getList(isSaveMethodMode),
7030
7060
  getQuickMethods: async () => this.paymentMethodsService.getQuickMethods(),
@@ -7055,6 +7085,9 @@ class CoreLibraryService {
7055
7085
  pid: this.paymentService.getPid(),
7056
7086
  };
7057
7087
  }
7088
+ async getCountries() {
7089
+ return this.countriesApiService.request();
7090
+ }
7058
7091
  setCountry(country) {
7059
7092
  this.countryService.setCountry(country);
7060
7093
  }
@@ -7080,6 +7113,7 @@ class CoreLibraryService {
7080
7113
  changeFieldValue: (name, value) => this.paymentService.changeFieldValue(name, value),
7081
7114
  changeFieldState: (name, state) => this.paymentService.changeFieldState(name, state),
7082
7115
  updateFieldFormState: (fieldName, formState) => this.paymentService.updateFieldFormState(fieldName, formState),
7116
+ getFieldFormState: (fieldName) => this.paymentService.getFieldFormState(fieldName),
7083
7117
  formMessages$: this.formMessagesService.data$,
7084
7118
  getFormStatus: () => this.paymentService.form?.status,
7085
7119
  getControlStatus: (name) => this.paymentService.getControlStatus(name),
@@ -7106,10 +7140,6 @@ class CoreLibraryService {
7106
7140
  getLegalComponentConfig() {
7107
7141
  return this.legalService.getLegalComponentConfig();
7108
7142
  }
7109
- getFieldMask(field) {
7110
- const sanitizedName = field.name.replace(/^fix_/i, '');
7111
- return masksFunctionsMap[sanitizedName];
7112
- }
7113
7143
  getUserBalanceValue() {
7114
7144
  return this.userBalanceService.getUserBalanceValue();
7115
7145
  }
@@ -7123,14 +7153,14 @@ class CoreLibraryService {
7123
7153
  return this.paymentService.formResponseValue;
7124
7154
  }
7125
7155
  }
7126
- CoreLibraryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, deps: [{ token: SettingsService }, { token: CountryService }, { token: PaymentMethodsService }, { token: SavedMethodsService }, { token: UserBalanceService }, { token: PaymentConfigService }, { token: PaymentService }, { token: DeviceFingerPrintService }, { token: FinanceDetailsService }, { token: LegalService }, { token: StatusService }, { token: NextActionService }, { token: CreditCardService }, { token: CreditCardStateService }, { token: FormMessagesService }, { token: EditSavedMethodsService }, { token: UserBehaviourAnalyticsService }, { token: PerformanceService }, { token: CombinedPaymentMethodsService }], target: i0.ɵɵFactoryTarget.Injectable });
7156
+ CoreLibraryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, deps: [{ token: SettingsService }, { token: CountryService }, { token: PaymentMethodsService }, { token: SavedMethodsService }, { token: UserBalanceService }, { token: PaymentConfigService }, { token: PaymentService }, { token: DeviceFingerPrintService }, { token: FinanceDetailsService }, { token: LegalService }, { token: StatusService }, { token: NextActionService }, { token: CreditCardService }, { token: CreditCardStateService }, { token: FormMessagesService }, { token: EditSavedMethodsService }, { token: UserBehaviourAnalyticsService }, { token: PerformanceService }, { token: CombinedPaymentMethodsService }, { token: CountriesApiService }], target: i0.ɵɵFactoryTarget.Injectable });
7127
7157
  CoreLibraryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, providedIn: 'root' });
7128
7158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, decorators: [{
7129
7159
  type: Injectable,
7130
7160
  args: [{
7131
7161
  providedIn: 'root',
7132
7162
  }]
7133
- }], ctorParameters: function () { return [{ type: SettingsService }, { type: CountryService }, { type: PaymentMethodsService }, { type: SavedMethodsService }, { type: UserBalanceService }, { type: PaymentConfigService }, { type: PaymentService }, { type: DeviceFingerPrintService }, { type: FinanceDetailsService }, { type: LegalService }, { type: StatusService }, { type: NextActionService }, { type: CreditCardService }, { type: CreditCardStateService }, { type: FormMessagesService }, { type: EditSavedMethodsService }, { type: UserBehaviourAnalyticsService }, { type: PerformanceService }, { type: CombinedPaymentMethodsService }]; } });
7163
+ }], ctorParameters: function () { return [{ type: SettingsService }, { type: CountryService }, { type: PaymentMethodsService }, { type: SavedMethodsService }, { type: UserBalanceService }, { type: PaymentConfigService }, { type: PaymentService }, { type: DeviceFingerPrintService }, { type: FinanceDetailsService }, { type: LegalService }, { type: StatusService }, { type: NextActionService }, { type: CreditCardService }, { type: CreditCardStateService }, { type: FormMessagesService }, { type: EditSavedMethodsService }, { type: UserBehaviourAnalyticsService }, { type: PerformanceService }, { type: CombinedPaymentMethodsService }, { type: CountriesApiService }]; } });
7134
7164
 
7135
7165
  class HttpError extends AppError {
7136
7166
  constructor(error, req) {
@@ -7693,8 +7723,7 @@ class ApplePayService {
7693
7723
  console.error('apple pay: initialize failed', error);
7694
7724
  }
7695
7725
  this.emitIntegrationType();
7696
- if (!this.paymentClient ||
7697
- (!this.isDeviceCapable() && !this.userAgentService.isSafari)) {
7726
+ if (!this.paymentClient || !this.isDeviceCapable()) {
7698
7727
  this.emitError(ApplePayErrors.deviceIsNotCapableError);
7699
7728
  }
7700
7729
  }
@@ -7854,10 +7883,7 @@ class ApplePayService {
7854
7883
  }
7855
7884
  emitIntegrationType() {
7856
7885
  let integrationType;
7857
- if (this.paymentClient && this.isDeviceCapable() && this.canUseSdk()) {
7858
- integrationType = 'sdk';
7859
- }
7860
- else if (this.userAgentService.isSafari) {
7886
+ if (this.paymentClient && this.isDeviceCapable()) {
7861
7887
  integrationType = 'redirect';
7862
7888
  }
7863
7889
  else {
@@ -7890,5 +7916,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
7890
7916
  * Generated bundle index. Do not edit.
7891
7917
  */
7892
7918
 
7893
- export { ApplePayService, CoreLibraryModule, CoreLibraryService, FieldNames, GooglePayService, PaymentSystemProcessingService, userBehaviourEventTypes };
7919
+ export { ApplePayService, CoreLibraryModule, CoreLibraryService, CreditCardTypes, FieldNames, GooglePayService, PaymentSystemProcessingService, userBehaviourEventTypes };
7894
7920
  //# sourceMappingURL=xsolla-payment-client-core.mjs.map