@starfish-codes/hellgate 3.4.0 → 3.5.1

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.
package/README.md CHANGED
@@ -7,6 +7,6 @@
7
7
 
8
8
  - **Hellgate:** https://hellgate.io/
9
9
 
10
- - **Developer Documentation:** https://developer.hellgate.io/sdks/web-sdk
10
+ - **Developer Documentation:** https://developer.hellgate.io/resources/sdks/WebSDK/web-sdk
11
11
 
12
12
  - **API Reference:** https://api-reference.hellgate.io/
@@ -1,20 +1,20 @@
1
1
  import { BasisTheory as IBasisTheory } from '@basis-theory/basis-theory-js/types/sdk';
2
2
  import { CompleteActionResult, HellgateSession } from '../session';
3
- import { CreateCardFieldsOptions, CreateCardFormOptions, PaymentAdditionalData, TokenizeCardConfig, TokenizedData } from './typings';
3
+ import { CreateCardFieldsOptions, CreateCardFormOptions, PaymentAdditionalData, RefreshSecurityCodeSessionStateDTO, TokenizeCardSessionStateDTO, TokenizedData } from './typings';
4
4
  import { CardElement, CardExpirationDateElement, CardNumberElement, CardVerificationCodeElement, TextElement } from './ui/elements';
5
5
  import { ChangeEvent, ElementBaseOptions } from './ui/typings';
6
6
  export type FormFieldState = Omit<ChangeEvent<never>['data'], 'type'>;
7
+ export type CardHandlerSessionInitState = TokenizeCardSessionStateDTO | RefreshSecurityCodeSessionStateDTO;
7
8
  export declare class HellgateCardHandler {
8
- session: HellgateSession;
9
- private tokenizeConfig;
9
+ session: HellgateSession<CardHandlerSessionInitState>;
10
10
  private bt?;
11
- private cardAdditionalData?;
12
11
  state: FormFieldState;
13
12
  private cardElements;
14
13
  private textElements;
15
14
  private stateChangeHandlers;
16
- static init(session: HellgateSession, tokenizeConfig: TokenizeCardConfig): Promise<HellgateCardHandler>;
17
- constructor(session: HellgateSession, tokenizeConfig: TokenizeCardConfig, bt?: IBasisTheory | undefined, cardAdditionalData?: PaymentAdditionalData<string> | undefined);
15
+ readonly cvcOnlyEnabled: boolean;
16
+ static init(session: HellgateSession<CardHandlerSessionInitState>): Promise<HellgateCardHandler>;
17
+ constructor(session: HellgateSession<CardHandlerSessionInitState>, bt?: IBasisTheory | undefined);
18
18
  createForm: (options?: CreateCardFormOptions) => CardElement;
19
19
  createFormFields: (options?: CreateCardFieldsOptions) => {
20
20
  cardNumber: CardNumberElement;
@@ -22,14 +22,14 @@ export declare class HellgateCardHandler {
22
22
  securityCode: CardVerificationCodeElement;
23
23
  };
24
24
  createTextField: (options?: ElementBaseOptions) => TextElement;
25
- tokenize: () => Promise<TokenizedData | {
26
- token_id: string;
27
- } | null>;
25
+ tokenize: (additionalData: PaymentAdditionalData) => Promise<TokenizedData | null>;
28
26
  onStateChange: (fn: (state: FormFieldState) => void) => void;
29
27
  clear: () => void;
30
28
  reset: () => void;
31
29
  dispose: () => void;
32
30
  process: (additionalData?: PaymentAdditionalData) => Promise<CompleteActionResult>;
31
+ private refreshSecurityCode;
32
+ private getFormValue;
33
33
  private hasFormElements;
34
34
  private disableFormElements;
35
35
  private extractAdditionalData;
@@ -37,4 +37,5 @@ export declare class HellgateCardHandler {
37
37
  private addElementStateListener;
38
38
  updateFormState(): void;
39
39
  private createFieldDefaultState;
40
+ private getCardDataValidationError;
40
41
  }
@@ -35,12 +35,11 @@ export type TokenizedData = {
35
35
  enc_payload: string;
36
36
  } | {
37
37
  token_id: string;
38
+ additional_data?: PaymentAdditionalData;
38
39
  };
39
40
  export type TokenizeCardActionDTO = {
40
41
  action: 'tokenize_card';
41
- result: TokenizedData & {
42
- additional_data?: PaymentAdditionalData;
43
- };
42
+ result: TokenizedData;
44
43
  };
45
44
  export type TokenizeCardConfig = {
46
45
  provider: 'guardian';
@@ -61,4 +60,24 @@ export type CardTokenizeData = {
61
60
  expiry_year: number;
62
61
  security_code: string;
63
62
  cardholder_name?: string;
63
+ additional_data: PaymentAdditionalData<string>;
64
+ };
65
+ export type TokenizedCardMaskedData = {
66
+ account_number_last_four: string;
67
+ account_number_length: number;
68
+ issuer_identification_number: string;
69
+ expiry_month: number;
70
+ expiry_year: number;
71
+ scheme: CardSchema;
72
+ jwk: JWK;
73
+ };
74
+ export type RefreshSecurityCodeSessionStateDTO = {
75
+ next_action: 'refresh_security_code';
76
+ data: TokenizedCardMaskedData;
77
+ };
78
+ export type RefreshSecurityCodeActionDTO = {
79
+ action: 'refresh_security_code';
80
+ result: {
81
+ enc_payload: string;
82
+ };
64
83
  };
@@ -9,4 +9,5 @@ export declare class IframeCardNumber extends IframeCardElementBase implements I
9
9
  update(options: ElementBaseOptions): Promise<void>;
10
10
  protected validate(masked: Masked): ElementMetadata & CardNumberAdditionalData;
11
11
  protected renderHTML(): string;
12
+ private getCardType;
12
13
  }
@@ -60,6 +60,7 @@ export type ElementBaseOptions<Value = unknown> = {
60
60
  style?: ElementStyle;
61
61
  height?: string;
62
62
  disabled?: boolean;
63
+ cvcOnly?: boolean;
63
64
  autocomplete?: 'on' | 'off';
64
65
  placeholder?: string;
65
66
  ariaLabel?: string;
@@ -0,0 +1,2 @@
1
+ import { TokenizedCardMaskedData } from '../typings';
2
+ export declare function getMaskedCardNumber(data: TokenizedCardMaskedData): string;