Skip to content

Commit

Permalink
feat!: remove challengeContainerOptions, add containerId to startChal…
Browse files Browse the repository at this point in the history
…lenge (#11)

BREAKING CHANGE: `challengeContainerOptions` is removed in favor of `containerId` in `startChallenge`
  • Loading branch information
lcschy authored Feb 12, 2025
1 parent a66ab3e commit 6b14cb1
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 13 deletions.
11 changes: 8 additions & 3 deletions src/challenge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ type ThreeDSChallengeRequest = {
* @deprecated This property is deprecated and will be removed in the next major version
*/
mode?: AcsMode;
containerId?: string;
};
interface AcsThreeDSChallengeRequest {
messageType: 'CReq'; // Must always be set to "CReq"
Expand Down Expand Up @@ -64,9 +65,10 @@ function isAcsThreeDSChallengeRequest(
const submitChallengeRequest = (
acsURL: string,
creq: AcsThreeDSChallengeRequest,
containerId?: string
) => {
const container = document.getElementById(
CHALLENGE_REQUEST.FRAME_CONTAINER_ID
containerId ?? CHALLENGE_REQUEST.FRAME_CONTAINER_ID
);

const windowSize = getWindowSizeById(creq.challengeWindowSize);
Expand Down Expand Up @@ -146,6 +148,7 @@ const makeChallengeRequest = ({
threeDSVersion,
windowSize,
mode,
containerId,
}: ThreeDSChallengeRequest): Promise<ThreeDSSession | Error> => {
if (!sessionId) {
throw new Error('Session ID is required');
Expand All @@ -163,7 +166,7 @@ const makeChallengeRequest = ({
if (mode === ACS_MODE.REDIRECT) {
submitChallengeRequestRedirect(acsChallengeUrl, creq);
} else {
submitChallengeRequest(acsChallengeUrl, creq);
submitChallengeRequest(acsChallengeUrl, creq, containerId);
}
} else {
const err = `Invalid challenge request payload for session: ${sessionId}`;
Expand All @@ -184,14 +187,16 @@ export const startChallenge = async ({
windowSize,
mode = 'iframe',
timeout = 60000,
containerId,
}: ThreeDSChallengeRequest) => {
await makeChallengeRequest({
sessionId,
acsTransactionId,
acsChallengeUrl,
threeDSVersion,
windowSize,
mode
mode,
containerId
}).catch((error) => {
return Promise.reject((error as Error).message);
});
Expand Down
11 changes: 1 addition & 10 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,6 @@ type ConfigOptions = {
* Disables telemetry
*/
disableTelemetry?: boolean;
challengeContainerOptions?: {
/**
* Overrides default ID of iframe container
*/
id?: string;
};
};

const BasisTheory3ds = (() => {
Expand All @@ -45,10 +39,7 @@ const BasisTheory3ds = (() => {
disableTelemetry: configOptions?.disableTelemetry ?? false,
});
createIframeContainer(METHOD_REQUEST.FRAME_CONTAINER_ID, true);
createIframeContainer(
configOptions?.challengeContainerOptions?.id ??
CHALLENGE_REQUEST.FRAME_CONTAINER_ID
);
createIframeContainer(CHALLENGE_REQUEST.FRAME_CONTAINER_ID);
} catch (error) {
logger.log.error('Unable to create iframe container', error as Error);
}
Expand Down

0 comments on commit 6b14cb1

Please sign in to comment.