@corsa-labs/sdk 1.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.
- package/README.md +282 -0
- package/dist/ComplianceClient.d.ts +22 -0
- package/dist/ComplianceClient.js +43 -0
- package/dist/ComplianceClient.js.map +1 -0
- package/dist/core/ApiError.d.ts +11 -0
- package/dist/core/ApiError.js +23 -0
- package/dist/core/ApiError.js.map +1 -0
- package/dist/core/ApiRequestOptions.d.ts +13 -0
- package/dist/core/ApiRequestOptions.js +3 -0
- package/dist/core/ApiRequestOptions.js.map +1 -0
- package/dist/core/ApiResult.d.ts +7 -0
- package/dist/core/ApiResult.js +3 -0
- package/dist/core/ApiResult.js.map +1 -0
- package/dist/core/BaseHttpRequest.d.ts +8 -0
- package/dist/core/BaseHttpRequest.js +11 -0
- package/dist/core/BaseHttpRequest.js.map +1 -0
- package/dist/core/CancelablePromise.d.ts +20 -0
- package/dist/core/CancelablePromise.js +105 -0
- package/dist/core/CancelablePromise.js.map +1 -0
- package/dist/core/FetchHttpRequest.d.ts +14 -0
- package/dist/core/FetchHttpRequest.js +21 -0
- package/dist/core/FetchHttpRequest.js.map +1 -0
- package/dist/core/OpenAPI.d.ts +16 -0
- package/dist/core/OpenAPI.js +15 -0
- package/dist/core/OpenAPI.js.map +1 -0
- package/dist/core/request.d.ts +30 -0
- package/dist/core/request.js +300 -0
- package/dist/core/request.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +19 -0
- package/dist/main.js.map +1 -0
- package/dist/models/AdverseMediaDto.d.ts +6 -0
- package/dist/models/AdverseMediaDto.js +3 -0
- package/dist/models/AdverseMediaDto.js.map +1 -0
- package/dist/models/AlertAssociationResponseDto.d.ts +16 -0
- package/dist/models/AlertAssociationResponseDto.js +3 -0
- package/dist/models/AlertAssociationResponseDto.js.map +1 -0
- package/dist/models/AlertCustomFieldDataDto.d.ts +10 -0
- package/dist/models/AlertCustomFieldDataDto.js +3 -0
- package/dist/models/AlertCustomFieldDataDto.js.map +1 -0
- package/dist/models/AlertDto.d.ts +100 -0
- package/dist/models/AlertDto.js +41 -0
- package/dist/models/AlertDto.js.map +1 -0
- package/dist/models/AlertSourceDto.d.ts +18 -0
- package/dist/models/AlertSourceDto.js +3 -0
- package/dist/models/AlertSourceDto.js.map +1 -0
- package/dist/models/AlertStatusData.d.ts +25 -0
- package/dist/models/AlertStatusData.js +17 -0
- package/dist/models/AlertStatusData.js.map +1 -0
- package/dist/models/AssociatedClientDto.d.ts +10 -0
- package/dist/models/AssociatedClientDto.js +3 -0
- package/dist/models/AssociatedClientDto.js.map +1 -0
- package/dist/models/AssociatedTransactionDto.d.ts +10 -0
- package/dist/models/AssociatedTransactionDto.js +3 -0
- package/dist/models/AssociatedTransactionDto.js.map +1 -0
- package/dist/models/ClientRiskDto.d.ts +28 -0
- package/dist/models/ClientRiskDto.js +16 -0
- package/dist/models/ClientRiskDto.js.map +1 -0
- package/dist/models/CorporateClientAddressDto.d.ts +11 -0
- package/dist/models/CorporateClientAddressDto.js +3 -0
- package/dist/models/CorporateClientAddressDto.js.map +1 -0
- package/dist/models/CorporateClientAddressLineDto.d.ts +22 -0
- package/dist/models/CorporateClientAddressLineDto.js +3 -0
- package/dist/models/CorporateClientAddressLineDto.js.map +1 -0
- package/dist/models/CorporateClientApplicationDto.d.ts +14 -0
- package/dist/models/CorporateClientApplicationDto.js +3 -0
- package/dist/models/CorporateClientApplicationDto.js.map +1 -0
- package/dist/models/CorporateClientBusinessDto.d.ts +10 -0
- package/dist/models/CorporateClientBusinessDto.js +3 -0
- package/dist/models/CorporateClientBusinessDto.js.map +1 -0
- package/dist/models/CorporateClientCustomFieldDataDto.d.ts +26 -0
- package/dist/models/CorporateClientCustomFieldDataDto.js +18 -0
- package/dist/models/CorporateClientCustomFieldDataDto.js.map +1 -0
- package/dist/models/CorporateClientDto.d.ts +101 -0
- package/dist/models/CorporateClientDto.js +29 -0
- package/dist/models/CorporateClientDto.js.map +1 -0
- package/dist/models/CorporateClientGeneralDto.d.ts +14 -0
- package/dist/models/CorporateClientGeneralDto.js +3 -0
- package/dist/models/CorporateClientGeneralDto.js.map +1 -0
- package/dist/models/CreateAlertDto.d.ts +81 -0
- package/dist/models/CreateAlertDto.js +41 -0
- package/dist/models/CreateAlertDto.js.map +1 -0
- package/dist/models/CreateCorporateClientDto.d.ts +74 -0
- package/dist/models/CreateCorporateClientDto.js +29 -0
- package/dist/models/CreateCorporateClientDto.js.map +1 -0
- package/dist/models/CreateDepositOperationDto.d.ts +19 -0
- package/dist/models/CreateDepositOperationDto.js +3 -0
- package/dist/models/CreateDepositOperationDto.js.map +1 -0
- package/dist/models/CreateIndividualClientDto.d.ts +99 -0
- package/dist/models/CreateIndividualClientDto.js +29 -0
- package/dist/models/CreateIndividualClientDto.js.map +1 -0
- package/dist/models/CreateIndividualClientResponseDto.d.ts +60 -0
- package/dist/models/CreateIndividualClientResponseDto.js +27 -0
- package/dist/models/CreateIndividualClientResponseDto.js.map +1 -0
- package/dist/models/CreateOrUpdateRiskDto.d.ts +24 -0
- package/dist/models/CreateOrUpdateRiskDto.js +16 -0
- package/dist/models/CreateOrUpdateRiskDto.js.map +1 -0
- package/dist/models/CreateTradeOperationDto.d.ts +48 -0
- package/dist/models/CreateTradeOperationDto.js +15 -0
- package/dist/models/CreateTradeOperationDto.js.map +1 -0
- package/dist/models/CreateTransactionDto.d.ts +50 -0
- package/dist/models/CreateTransactionDto.js +3 -0
- package/dist/models/CreateTransactionDto.js.map +1 -0
- package/dist/models/CreateTransactionSourceOrDestinationClientDto.d.ts +10 -0
- package/dist/models/CreateTransactionSourceOrDestinationClientDto.js +3 -0
- package/dist/models/CreateTransactionSourceOrDestinationClientDto.js.map +1 -0
- package/dist/models/CreateWithdrawalOperationDto.d.ts +19 -0
- package/dist/models/CreateWithdrawalOperationDto.js +3 -0
- package/dist/models/CreateWithdrawalOperationDto.js.map +1 -0
- package/dist/models/DepositOperationDto.d.ts +32 -0
- package/dist/models/DepositOperationDto.js +3 -0
- package/dist/models/DepositOperationDto.js.map +1 -0
- package/dist/models/IndividualClientAddressDto.d.ts +22 -0
- package/dist/models/IndividualClientAddressDto.js +3 -0
- package/dist/models/IndividualClientAddressDto.js.map +1 -0
- package/dist/models/IndividualClientApplicationInformationDto.d.ts +14 -0
- package/dist/models/IndividualClientApplicationInformationDto.js +3 -0
- package/dist/models/IndividualClientApplicationInformationDto.js.map +1 -0
- package/dist/models/IndividualClientContactInformationDto.d.ts +10 -0
- package/dist/models/IndividualClientContactInformationDto.js +3 -0
- package/dist/models/IndividualClientContactInformationDto.js.map +1 -0
- package/dist/models/IndividualClientCustomFieldDataDto.d.ts +27 -0
- package/dist/models/IndividualClientCustomFieldDataDto.js +19 -0
- package/dist/models/IndividualClientCustomFieldDataDto.js.map +1 -0
- package/dist/models/IndividualClientDto.d.ts +127 -0
- package/dist/models/IndividualClientDto.js +29 -0
- package/dist/models/IndividualClientDto.js.map +1 -0
- package/dist/models/IndividualClientFinancialInformationDto.d.ts +6 -0
- package/dist/models/IndividualClientFinancialInformationDto.js +3 -0
- package/dist/models/IndividualClientFinancialInformationDto.js.map +1 -0
- package/dist/models/IndividualClientGeneralInformationDto.d.ts +39 -0
- package/dist/models/IndividualClientGeneralInformationDto.js +15 -0
- package/dist/models/IndividualClientGeneralInformationDto.js.map +1 -0
- package/dist/models/IndividualClientWorkInformationDto.d.ts +6 -0
- package/dist/models/IndividualClientWorkInformationDto.js +3 -0
- package/dist/models/IndividualClientWorkInformationDto.js.map +1 -0
- package/dist/models/OperationInitiatorDto.d.ts +10 -0
- package/dist/models/OperationInitiatorDto.js +3 -0
- package/dist/models/OperationInitiatorDto.js.map +1 -0
- package/dist/models/PoliticalExposureDto.d.ts +6 -0
- package/dist/models/PoliticalExposureDto.js +3 -0
- package/dist/models/PoliticalExposureDto.js.map +1 -0
- package/dist/models/SanctionsDto.d.ts +6 -0
- package/dist/models/SanctionsDto.js +3 -0
- package/dist/models/SanctionsDto.js.map +1 -0
- package/dist/models/TradeOperationDto.d.ts +61 -0
- package/dist/models/TradeOperationDto.js +15 -0
- package/dist/models/TradeOperationDto.js.map +1 -0
- package/dist/models/TransactionAmountDto.d.ts +14 -0
- package/dist/models/TransactionAmountDto.js +3 -0
- package/dist/models/TransactionAmountDto.js.map +1 -0
- package/dist/models/TransactionCustomFieldDto.d.ts +14 -0
- package/dist/models/TransactionCustomFieldDto.js +3 -0
- package/dist/models/TransactionCustomFieldDto.js.map +1 -0
- package/dist/models/TransactionDto.d.ts +82 -0
- package/dist/models/TransactionDto.js +24 -0
- package/dist/models/TransactionDto.js.map +1 -0
- package/dist/models/TransactionSourceOrDestinationClientDto.d.ts +10 -0
- package/dist/models/TransactionSourceOrDestinationClientDto.js +3 -0
- package/dist/models/TransactionSourceOrDestinationClientDto.js.map +1 -0
- package/dist/models/TransactionSourceOrDestinationDto.d.ts +11 -0
- package/dist/models/TransactionSourceOrDestinationDto.js +3 -0
- package/dist/models/TransactionSourceOrDestinationDto.js.map +1 -0
- package/dist/models/TransactionStatusDto.d.ts +29 -0
- package/dist/models/TransactionStatusDto.js +17 -0
- package/dist/models/TransactionStatusDto.js.map +1 -0
- package/dist/models/UpdateAlertDto.d.ts +60 -0
- package/dist/models/UpdateAlertDto.js +41 -0
- package/dist/models/UpdateAlertDto.js.map +1 -0
- package/dist/models/UpdateCorporateClientDto.d.ts +82 -0
- package/dist/models/UpdateCorporateClientDto.js +29 -0
- package/dist/models/UpdateCorporateClientDto.js.map +1 -0
- package/dist/models/UpdateIndividualClientDto.d.ts +107 -0
- package/dist/models/UpdateIndividualClientDto.js +29 -0
- package/dist/models/UpdateIndividualClientDto.js.map +1 -0
- package/dist/models/WithdrawalOperationDto.d.ts +33 -0
- package/dist/models/WithdrawalOperationDto.js +3 -0
- package/dist/models/WithdrawalOperationDto.js.map +1 -0
- package/dist/services/AlertsService.d.ts +48 -0
- package/dist/services/AlertsService.js +94 -0
- package/dist/services/AlertsService.js.map +1 -0
- package/dist/services/ClientsService.d.ts +56 -0
- package/dist/services/ClientsService.js +105 -0
- package/dist/services/ClientsService.js.map +1 -0
- package/dist/services/DepositsService.d.ts +22 -0
- package/dist/services/DepositsService.js +40 -0
- package/dist/services/DepositsService.js.map +1 -0
- package/dist/services/HealthService.d.ts +13 -0
- package/dist/services/HealthService.js +23 -0
- package/dist/services/HealthService.js.map +1 -0
- package/dist/services/TradesService.d.ts +32 -0
- package/dist/services/TradesService.js +62 -0
- package/dist/services/TradesService.js.map +1 -0
- package/dist/services/TransactionsService.d.ts +14 -0
- package/dist/services/TransactionsService.js +28 -0
- package/dist/services/TransactionsService.js.map +1 -0
- package/dist/services/WithdrawalsService.d.ts +22 -0
- package/dist/services/WithdrawalsService.js +40 -0
- package/dist/services/WithdrawalsService.js.map +1 -0
- package/dist/webhooks/index.d.ts +2 -0
- package/dist/webhooks/index.js +19 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/types.d.ts +56 -0
- package/dist/webhooks/types.js +30 -0
- package/dist/webhooks/types.js.map +1 -0
- package/dist/webhooks/verify-signature.d.ts +15 -0
- package/dist/webhooks/verify-signature.js +49 -0
- package/dist/webhooks/verify-signature.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { CreateIndividualClientResponseDto as IndividualClientDto } from "../models/CreateIndividualClientResponseDto";
|
|
2
|
+
import { CorporateClientDto } from "../models/CorporateClientDto";
|
|
3
|
+
import { AlertDto } from "../models/AlertDto";
|
|
4
|
+
export declare enum WebhookEventType {
|
|
5
|
+
INDIVIDUAL_CLIENT_CREATED = "individual_client.created",
|
|
6
|
+
INDIVIDUAL_CLIENT_UPDATED = "individual_client.updated",
|
|
7
|
+
CORPORATE_CLIENT_CREATED = "corporate_client.created",
|
|
8
|
+
CORPORATE_CLIENT_UPDATED = "corporate_client.updated",
|
|
9
|
+
ALERT_CREATED = "alert.created",
|
|
10
|
+
ALERT_UPDATED = "alert.updated",
|
|
11
|
+
CASE_CREATED = "case.created",
|
|
12
|
+
CASE_UPDATED = "case.updated"
|
|
13
|
+
}
|
|
14
|
+
export interface EntityCreatedPayload<T> {
|
|
15
|
+
id: string;
|
|
16
|
+
referenceId?: string;
|
|
17
|
+
entity: T;
|
|
18
|
+
}
|
|
19
|
+
export interface EntityUpdatedPayload<T> {
|
|
20
|
+
id: string;
|
|
21
|
+
referenceId?: string;
|
|
22
|
+
updated: Partial<T>;
|
|
23
|
+
}
|
|
24
|
+
export interface WebhookEvent<M, T extends EntityCreatedPayload<M> | EntityUpdatedPayload<M>> {
|
|
25
|
+
data: T;
|
|
26
|
+
type: WebhookEventType;
|
|
27
|
+
timestamp: string;
|
|
28
|
+
}
|
|
29
|
+
/** todo export case dto from openapi schema */
|
|
30
|
+
export declare enum CaseStatus {
|
|
31
|
+
NEW = "NEW",
|
|
32
|
+
UNDER_INVESTIGATION = "UNDER_INVESTIGATION",
|
|
33
|
+
PENDING_EDD = "PENDING_EDD",
|
|
34
|
+
PENDING_RFI = "PENDING_RFI",
|
|
35
|
+
PENDING_REVIEW = "PENDING_REVIEW",
|
|
36
|
+
CLOSED_DISMISSED = "CLOSED_DISMISSED",
|
|
37
|
+
CLOSED_ESCALATION_TO_SAR = "CLOSED_ESCALATION_TO_SAR"
|
|
38
|
+
}
|
|
39
|
+
export interface CaseDto {
|
|
40
|
+
id: string;
|
|
41
|
+
status: CaseStatus;
|
|
42
|
+
assigneeId?: string | null;
|
|
43
|
+
reviewersIds: string[];
|
|
44
|
+
}
|
|
45
|
+
export type IndividualClientCreatedEvent = WebhookEvent<IndividualClientDto, EntityCreatedPayload<IndividualClientDto>>;
|
|
46
|
+
export type IndividualClientUpdatedEvent = WebhookEvent<IndividualClientDto, EntityUpdatedPayload<IndividualClientDto>>;
|
|
47
|
+
export type CorporateClientCreatedEvent = WebhookEvent<CorporateClientDto, EntityCreatedPayload<CorporateClientDto>>;
|
|
48
|
+
export type CorporateClientUpdatedEvent = WebhookEvent<CorporateClientDto, EntityUpdatedPayload<CorporateClientDto>>;
|
|
49
|
+
export type AlertCreatedEvent = WebhookEvent<AlertDto, EntityCreatedPayload<AlertDto>>;
|
|
50
|
+
export type AlertUpdatedEvent = WebhookEvent<AlertDto, EntityUpdatedPayload<AlertDto>>;
|
|
51
|
+
export type CaseCreatedEvent = WebhookEvent<CaseDto, EntityCreatedPayload<CaseDto>>;
|
|
52
|
+
export type CaseUpdatedEvent = WebhookEvent<CaseDto, EntityUpdatedPayload<CaseDto>>;
|
|
53
|
+
export declare const WebhookSignatureHeader = "x-hub-signature-256";
|
|
54
|
+
export declare const WebhookIdHeader = "x-tweed-hook-id";
|
|
55
|
+
export declare const WebhookDeliveryIdHeader = "x-tweed-delivery";
|
|
56
|
+
export declare const WebhookEventTypeHeader = "x-tweed-event";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebhookEventTypeHeader = exports.WebhookDeliveryIdHeader = exports.WebhookIdHeader = exports.WebhookSignatureHeader = exports.CaseStatus = exports.WebhookEventType = void 0;
|
|
4
|
+
var WebhookEventType;
|
|
5
|
+
(function (WebhookEventType) {
|
|
6
|
+
WebhookEventType["INDIVIDUAL_CLIENT_CREATED"] = "individual_client.created";
|
|
7
|
+
WebhookEventType["INDIVIDUAL_CLIENT_UPDATED"] = "individual_client.updated";
|
|
8
|
+
WebhookEventType["CORPORATE_CLIENT_CREATED"] = "corporate_client.created";
|
|
9
|
+
WebhookEventType["CORPORATE_CLIENT_UPDATED"] = "corporate_client.updated";
|
|
10
|
+
WebhookEventType["ALERT_CREATED"] = "alert.created";
|
|
11
|
+
WebhookEventType["ALERT_UPDATED"] = "alert.updated";
|
|
12
|
+
WebhookEventType["CASE_CREATED"] = "case.created";
|
|
13
|
+
WebhookEventType["CASE_UPDATED"] = "case.updated";
|
|
14
|
+
})(WebhookEventType || (exports.WebhookEventType = WebhookEventType = {}));
|
|
15
|
+
/** todo export case dto from openapi schema */
|
|
16
|
+
var CaseStatus;
|
|
17
|
+
(function (CaseStatus) {
|
|
18
|
+
CaseStatus["NEW"] = "NEW";
|
|
19
|
+
CaseStatus["UNDER_INVESTIGATION"] = "UNDER_INVESTIGATION";
|
|
20
|
+
CaseStatus["PENDING_EDD"] = "PENDING_EDD";
|
|
21
|
+
CaseStatus["PENDING_RFI"] = "PENDING_RFI";
|
|
22
|
+
CaseStatus["PENDING_REVIEW"] = "PENDING_REVIEW";
|
|
23
|
+
CaseStatus["CLOSED_DISMISSED"] = "CLOSED_DISMISSED";
|
|
24
|
+
CaseStatus["CLOSED_ESCALATION_TO_SAR"] = "CLOSED_ESCALATION_TO_SAR";
|
|
25
|
+
})(CaseStatus || (exports.CaseStatus = CaseStatus = {}));
|
|
26
|
+
exports.WebhookSignatureHeader = 'x-hub-signature-256';
|
|
27
|
+
exports.WebhookIdHeader = 'x-tweed-hook-id';
|
|
28
|
+
exports.WebhookDeliveryIdHeader = 'x-tweed-delivery';
|
|
29
|
+
exports.WebhookEventTypeHeader = 'x-tweed-event';
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../webhooks/types.ts"],"names":[],"mappings":";;;AAIA,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,2EAAuD,CAAA;IACvD,2EAAuD,CAAA;IACvD,yEAAqD,CAAA;IACrD,yEAAqD,CAAA;IACrD,mDAA+B,CAAA;IAC/B,mDAA+B,CAAA;IAC/B,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;AAC/B,CAAC,EATW,gBAAgB,gCAAhB,gBAAgB,QAS3B;AAoBD,+CAA+C;AAC/C,IAAY,UAQX;AARD,WAAY,UAAU;IAClB,yBAAW,CAAA;IACX,yDAA2C,CAAA;IAC3C,yCAA2B,CAAA;IAC3B,yCAA2B,CAAA;IAC3B,+CAAiC,CAAA;IACjC,mDAAqC,CAAA;IACrC,mEAAqD,CAAA;AACzD,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAkBY,QAAA,sBAAsB,GAAG,qBAAqB,CAAC;AAC/C,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAC7C,QAAA,sBAAsB,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Signs a payload with a secret - this is the function we use to sign the payload before sending it to the webhook
|
|
3
|
+
* @param secret The secret to sign the payload with
|
|
4
|
+
* @param payload The payload to sign
|
|
5
|
+
* @returns The signature
|
|
6
|
+
*/
|
|
7
|
+
export declare function signWebhookPayload(secret: string, payload: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Verifies a signature against a secret
|
|
10
|
+
* @param secret The secret to verify the signature against
|
|
11
|
+
* @param eventPayload The payload to verify the signature against
|
|
12
|
+
* @param signature The signature to verify
|
|
13
|
+
* @returns True if the signature is valid, false otherwise
|
|
14
|
+
*/
|
|
15
|
+
export declare function verifyWebhookSignature(secret: string, eventPayload: string, signature: string): boolean;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.signWebhookPayload = signWebhookPayload;
|
|
4
|
+
exports.verifyWebhookSignature = verifyWebhookSignature;
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
// This is a clone of the verify function from the @octokit/webhooks-methods package
|
|
7
|
+
/**
|
|
8
|
+
* Signs a payload with a secret - this is the function we use to sign the payload before sending it to the webhook
|
|
9
|
+
* @param secret The secret to sign the payload with
|
|
10
|
+
* @param payload The payload to sign
|
|
11
|
+
* @returns The signature
|
|
12
|
+
*/
|
|
13
|
+
function signWebhookPayload(secret, payload) {
|
|
14
|
+
if (!secret || !payload) {
|
|
15
|
+
throw new TypeError('[@paytweed/compliance-sdk] secret & payload required for sign()');
|
|
16
|
+
}
|
|
17
|
+
if (typeof payload !== 'string') {
|
|
18
|
+
throw new TypeError('[@paytweed/compliance-sdk] payload must be a string');
|
|
19
|
+
}
|
|
20
|
+
const algorithm = 'sha256';
|
|
21
|
+
return `${algorithm}=${(0, node_crypto_1.createHmac)(algorithm, secret)
|
|
22
|
+
.update(payload)
|
|
23
|
+
.digest('hex')}`;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Verifies a signature against a secret
|
|
27
|
+
* @param secret The secret to verify the signature against
|
|
28
|
+
* @param eventPayload The payload to verify the signature against
|
|
29
|
+
* @param signature The signature to verify
|
|
30
|
+
* @returns True if the signature is valid, false otherwise
|
|
31
|
+
*/
|
|
32
|
+
function verifyWebhookSignature(secret, eventPayload, signature) {
|
|
33
|
+
if (!secret || !eventPayload || !signature) {
|
|
34
|
+
throw new TypeError('[@paytweed/compliance-sdk] secret, eventPayload & signature required');
|
|
35
|
+
}
|
|
36
|
+
if (typeof eventPayload !== 'string') {
|
|
37
|
+
throw new TypeError('[@paytweed/compliance-sdk] eventPayload must be a string');
|
|
38
|
+
}
|
|
39
|
+
const signatureBuffer = Buffer.from(signature);
|
|
40
|
+
const verificationBuffer = Buffer.from(signWebhookPayload(secret, eventPayload));
|
|
41
|
+
if (signatureBuffer.length !== verificationBuffer.length) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
// constant time comparison to prevent timing attacks
|
|
45
|
+
// https://stackoverflow.com/a/31096242/206879
|
|
46
|
+
// https://en.wikipedia.org/wiki/Timing_attack
|
|
47
|
+
return (0, node_crypto_1.timingSafeEqual)(signatureBuffer, verificationBuffer);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=verify-signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-signature.js","sourceRoot":"","sources":["../../webhooks/verify-signature.ts"],"names":[],"mappings":";;AAUA,gDAgBC;AASD,wDA6BC;AAhED,6CAA0D;AAE1D,oFAAoF;AAEpF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,OAAe;IAChE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,SAAS,CACjB,iEAAiE,CAClE,CAAA;IACH,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAA;IAE1B,OAAO,GAAG,SAAS,IAAI,IAAA,wBAAU,EAAC,SAAS,EAAE,MAAM,CAAC;SACjD,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AACpB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,MAAc,EACd,YAAoB,EACpB,SAAiB;IAEjB,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,SAAS,CACjB,sEAAsE,CACvE,CAAA;IACH,CAAC;IAED,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,SAAS,CACjB,0DAA0D,CAC3D,CAAA;IACH,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAE9C,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAEhF,IAAI,eAAe,CAAC,MAAM,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACzD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,qDAAqD;IACrD,8CAA8C;IAC9C,8CAA8C;IAC9C,OAAO,IAAA,6BAAe,EAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;AAC7D,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@corsa-labs/sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "SDK for Corsa API",
|
|
5
|
+
"main": "dist/main.js",
|
|
6
|
+
"types": "dist/main.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"prebuild": "rimraf dist",
|
|
12
|
+
"build": "rimraf dist && tsc",
|
|
13
|
+
"prepublishOnly": "npm run build",
|
|
14
|
+
"test": "jest --coverage --passWithNoTests --runInBand --detectOpenHandles --forceExit",
|
|
15
|
+
"semantic-release": "semantic-release --debug"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"axios": "^0.21.1",
|
|
20
|
+
"uuid": "^11.1.0"
|
|
21
|
+
},
|
|
22
|
+
"peerDependencies": {},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@semantic-release/npm": "^12.0.1",
|
|
25
|
+
"@types/node": "^22.15.2",
|
|
26
|
+
"rimraf": "^6.0.1",
|
|
27
|
+
"semantic-release": "^24.1.1"
|
|
28
|
+
},
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"registry": "https://registry.npmjs.org/",
|
|
31
|
+
"access": "public"
|
|
32
|
+
},
|
|
33
|
+
"release": {
|
|
34
|
+
"branches": [
|
|
35
|
+
"main"
|
|
36
|
+
],
|
|
37
|
+
"plugins": [
|
|
38
|
+
"@semantic-release/npm",
|
|
39
|
+
"@semantic-release/github"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
}
|