New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@datadome/fraud-sdk-node

Package Overview
Dependencies
Maintainers
12
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@datadome/fraud-sdk-node - npm Package Compare versions

Comparing version
2.0.1
to
2.1.0
+81
dist-cjs/utils.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.truncationSize = truncationSize;
exports.truncateValue = truncateValue;
function truncationSize(fieldName) {
switch (fieldName) {
case 'SecCHDeviceMemory':
case 'SecCHUAMobile':
return 8;
case 'SecCHUAArch':
return 16;
case 'SecCHUAPlatform':
return 32;
case 'AcceptCharset':
case 'AcceptEncoding':
case 'ClientID':
case 'Connection':
case 'ContentType':
case 'From':
case 'SecCHUA':
case 'SecCHUAModel':
case 'XRealIp':
return 128;
case 'AcceptLanguage':
case 'SecCHUAFullVersionList':
return 256;
case 'Accept':
case 'Origin':
case 'ServerHostname':
case 'Host':
return 512;
case 'UserAgent':
return 768;
case 'Referer':
return 1024;
case 'Request':
return 2048;
case 'XForwardedForIp':
return -512;
case 'AddressCountryCode':
return 2;
case 'UserExternalUrl':
case 'UserPictureUrl':
return 10;
case 'AddressRegionCode':
case 'AddressZipCode':
return 15;
case 'UserPhone':
return 16;
case 'UserFirstName':
case 'UserLastName':
case 'AddressName':
return 50;
case 'UserDisplayName':
return 100;
case 'AddressLine1':
case 'AddressLine2':
case 'AddressCity':
case 'SessionId':
return 255;
case 'Account':
case 'UserId':
case 'UserEmail':
case 'UserDescription':
return 320;
case 'UserUrlItem':
return 2048;
default:
return 0;
}
}
function truncateValue(value, maxLength) {
if (value === undefined) {
return '';
}
if (maxLength == null || maxLength === 0) {
return value;
}
return maxLength < 0 ? value.slice(maxLength) : value.slice(0, maxLength);
}
//# sourceMappingURL=utils.js.map
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AA8CA,wCAmFC;AAED,sCAQC;AA7FD,SAAgB,cAAc,CAAC,SAA6C;IACxE,QAAQ,SAAS,EAAE,CAAC;QAEhB,KAAK,mBAAmB,CAAC;QACzB,KAAK,eAAe;YAChB,OAAO,CAAC,CAAC;QACb,KAAK,aAAa;YACd,OAAO,EAAE,CAAC;QACd,KAAK,iBAAiB;YAClB,OAAO,EAAE,CAAC;QACd,KAAK,eAAe,CAAC;QACrB,KAAK,gBAAgB,CAAC;QACtB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,aAAa,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS;YACV,OAAO,GAAG,CAAC;QAEf,KAAK,gBAAgB,CAAC;QACtB,KAAK,wBAAwB;YACzB,OAAO,GAAG,CAAC;QAEf,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,GAAG,CAAC;QAEf,KAAK,WAAW;YACZ,OAAO,GAAG,CAAC;QAEf,KAAK,SAAS;YACV,OAAO,IAAI,CAAC;QAEhB,KAAK,SAAS;YACV,OAAO,IAAI,CAAC;QAEhB,KAAK,iBAAiB;YAClB,OAAO,CAAC,GAAG,CAAC;QAGhB,KAAK,oBAAoB;YACrB,OAAO,CAAC,CAAC;QAEb,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB;YACjB,OAAO,EAAE,CAAC;QAEd,KAAK,mBAAmB,CAAC;QACzB,KAAK,gBAAgB;YACjB,OAAO,EAAE,CAAC;QAEd,KAAK,WAAW;YACZ,OAAO,EAAE,CAAC;QAEd,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa;YACd,OAAO,EAAE,CAAC;QAEd,KAAK,iBAAiB;YAClB,OAAO,GAAG,CAAC;QAEf,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa,CAAC;QACnB,KAAK,WAAW;YACZ,OAAO,GAAG,CAAC;QAEf,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,iBAAiB;YAClB,OAAO,GAAG,CAAC;QAEf,KAAK,aAAa;YACd,OAAO,IAAI,CAAC;QAChB;YACI,OAAO,CAAC,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc,EAAE,SAAkB;IAC5D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC9E,CAAC","sourcesContent":["export type HeaderFieldName =\n | 'Accept'\n | 'AcceptCharset'\n | 'AcceptEncoding'\n | 'AcceptLanguage'\n | 'ClientID'\n | 'Connection'\n | 'ContentType'\n | 'From'\n | 'Host'\n | 'Origin'\n | 'Referer'\n | 'Request'\n | 'SecCHDeviceMemory'\n | 'SecCHUA'\n | 'SecCHUAArch'\n | 'SecCHUAFullVersionList'\n | 'SecCHUAMobile'\n | 'SecCHUAModel'\n | 'SecCHUAPlatform'\n | 'ServerHostname'\n | 'UserAgent'\n | 'XForwardedForIp'\n | 'XRealIp';\n\nexport type PayloadFieldName =\n | 'Account'\n | 'AddressCity'\n | 'AddressCountryCode'\n | 'AddressLine1'\n | 'AddressLine2'\n | 'AddressName'\n | 'AddressRegionCode'\n | 'AddressZipCode'\n | 'UserDescription'\n | 'UserDisplayName'\n | 'UserEmail'\n | 'UserExternalUrl'\n | 'UserFirstName'\n | 'UserId'\n | 'UserLastName'\n | 'UserPhone'\n | 'UserPictureUrl'\n | 'UserUrlItem'\n | 'SessionId';\n\nexport function truncationSize(fieldName: HeaderFieldName | PayloadFieldName): number {\n switch (fieldName) {\n // Header field limits\n case 'SecCHDeviceMemory':\n case 'SecCHUAMobile':\n return 8;\n case 'SecCHUAArch':\n return 16;\n case 'SecCHUAPlatform':\n return 32;\n case 'AcceptCharset':\n case 'AcceptEncoding':\n case 'ClientID':\n case 'Connection':\n case 'ContentType':\n case 'From':\n case 'SecCHUA':\n case 'SecCHUAModel':\n case 'XRealIp':\n return 128;\n\n case 'AcceptLanguage':\n case 'SecCHUAFullVersionList':\n return 256;\n\n case 'Accept':\n case 'Origin':\n case 'ServerHostname':\n case 'Host':\n return 512;\n\n case 'UserAgent':\n return 768;\n\n case 'Referer':\n return 1024;\n\n case 'Request':\n return 2048;\n\n case 'XForwardedForIp':\n return -512;\n\n // Payload field limits\n case 'AddressCountryCode':\n return 2;\n\n case 'UserExternalUrl':\n case 'UserPictureUrl':\n return 10;\n\n case 'AddressRegionCode':\n case 'AddressZipCode':\n return 15;\n\n case 'UserPhone':\n return 16;\n\n case 'UserFirstName':\n case 'UserLastName':\n case 'AddressName':\n return 50;\n\n case 'UserDisplayName':\n return 100;\n\n case 'AddressLine1':\n case 'AddressLine2':\n case 'AddressCity':\n case 'SessionId':\n return 255;\n\n case 'Account':\n case 'UserId':\n case 'UserEmail':\n case 'UserDescription':\n return 320;\n\n case 'UserUrlItem':\n return 2048;\n default:\n return 0;\n }\n}\n\nexport function truncateValue(value?: string, maxLength?: number) {\n if (value === undefined) {\n return '';\n }\n if (maxLength == null || maxLength === 0) {\n return value;\n }\n return maxLength < 0 ? value.slice(maxLength) : value.slice(0, maxLength);\n}\n"]}
export function truncationSize(fieldName) {
switch (fieldName) {
case 'SecCHDeviceMemory':
case 'SecCHUAMobile':
return 8;
case 'SecCHUAArch':
return 16;
case 'SecCHUAPlatform':
return 32;
case 'AcceptCharset':
case 'AcceptEncoding':
case 'ClientID':
case 'Connection':
case 'ContentType':
case 'From':
case 'SecCHUA':
case 'SecCHUAModel':
case 'XRealIp':
return 128;
case 'AcceptLanguage':
case 'SecCHUAFullVersionList':
return 256;
case 'Accept':
case 'Origin':
case 'ServerHostname':
case 'Host':
return 512;
case 'UserAgent':
return 768;
case 'Referer':
return 1024;
case 'Request':
return 2048;
case 'XForwardedForIp':
return -512;
case 'AddressCountryCode':
return 2;
case 'UserExternalUrl':
case 'UserPictureUrl':
return 10;
case 'AddressRegionCode':
case 'AddressZipCode':
return 15;
case 'UserPhone':
return 16;
case 'UserFirstName':
case 'UserLastName':
case 'AddressName':
return 50;
case 'UserDisplayName':
return 100;
case 'AddressLine1':
case 'AddressLine2':
case 'AddressCity':
case 'SessionId':
return 255;
case 'Account':
case 'UserId':
case 'UserEmail':
case 'UserDescription':
return 320;
case 'UserUrlItem':
return 2048;
default:
return 0;
}
}
export function truncateValue(value, maxLength) {
if (value === undefined) {
return '';
}
if (maxLength == null || maxLength === 0) {
return value;
}
return maxLength < 0 ? value.slice(maxLength) : value.slice(0, maxLength);
}
//# sourceMappingURL=utils.js.map
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AA8CA,MAAM,UAAU,cAAc,CAAC,SAA6C;IACxE,QAAQ,SAAS,EAAE,CAAC;QAEhB,KAAK,mBAAmB,CAAC;QACzB,KAAK,eAAe;YAChB,OAAO,CAAC,CAAC;QACb,KAAK,aAAa;YACd,OAAO,EAAE,CAAC;QACd,KAAK,iBAAiB;YAClB,OAAO,EAAE,CAAC;QACd,KAAK,eAAe,CAAC;QACrB,KAAK,gBAAgB,CAAC;QACtB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,aAAa,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS;YACV,OAAO,GAAG,CAAC;QAEf,KAAK,gBAAgB,CAAC;QACtB,KAAK,wBAAwB;YACzB,OAAO,GAAG,CAAC;QAEf,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,gBAAgB,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,GAAG,CAAC;QAEf,KAAK,WAAW;YACZ,OAAO,GAAG,CAAC;QAEf,KAAK,SAAS;YACV,OAAO,IAAI,CAAC;QAEhB,KAAK,SAAS;YACV,OAAO,IAAI,CAAC;QAEhB,KAAK,iBAAiB;YAClB,OAAO,CAAC,GAAG,CAAC;QAGhB,KAAK,oBAAoB;YACrB,OAAO,CAAC,CAAC;QAEb,KAAK,iBAAiB,CAAC;QACvB,KAAK,gBAAgB;YACjB,OAAO,EAAE,CAAC;QAEd,KAAK,mBAAmB,CAAC;QACzB,KAAK,gBAAgB;YACjB,OAAO,EAAE,CAAC;QAEd,KAAK,WAAW;YACZ,OAAO,EAAE,CAAC;QAEd,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa;YACd,OAAO,EAAE,CAAC;QAEd,KAAK,iBAAiB;YAClB,OAAO,GAAG,CAAC;QAEf,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa,CAAC;QACnB,KAAK,WAAW;YACZ,OAAO,GAAG,CAAC;QAEf,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,iBAAiB;YAClB,OAAO,GAAG,CAAC;QAEf,KAAK,aAAa;YACd,OAAO,IAAI,CAAC;QAChB;YACI,OAAO,CAAC,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,SAAkB;IAC5D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC9E,CAAC","sourcesContent":["export type HeaderFieldName =\n | 'Accept'\n | 'AcceptCharset'\n | 'AcceptEncoding'\n | 'AcceptLanguage'\n | 'ClientID'\n | 'Connection'\n | 'ContentType'\n | 'From'\n | 'Host'\n | 'Origin'\n | 'Referer'\n | 'Request'\n | 'SecCHDeviceMemory'\n | 'SecCHUA'\n | 'SecCHUAArch'\n | 'SecCHUAFullVersionList'\n | 'SecCHUAMobile'\n | 'SecCHUAModel'\n | 'SecCHUAPlatform'\n | 'ServerHostname'\n | 'UserAgent'\n | 'XForwardedForIp'\n | 'XRealIp';\n\nexport type PayloadFieldName =\n | 'Account'\n | 'AddressCity'\n | 'AddressCountryCode'\n | 'AddressLine1'\n | 'AddressLine2'\n | 'AddressName'\n | 'AddressRegionCode'\n | 'AddressZipCode'\n | 'UserDescription'\n | 'UserDisplayName'\n | 'UserEmail'\n | 'UserExternalUrl'\n | 'UserFirstName'\n | 'UserId'\n | 'UserLastName'\n | 'UserPhone'\n | 'UserPictureUrl'\n | 'UserUrlItem'\n | 'SessionId';\n\nexport function truncationSize(fieldName: HeaderFieldName | PayloadFieldName): number {\n switch (fieldName) {\n // Header field limits\n case 'SecCHDeviceMemory':\n case 'SecCHUAMobile':\n return 8;\n case 'SecCHUAArch':\n return 16;\n case 'SecCHUAPlatform':\n return 32;\n case 'AcceptCharset':\n case 'AcceptEncoding':\n case 'ClientID':\n case 'Connection':\n case 'ContentType':\n case 'From':\n case 'SecCHUA':\n case 'SecCHUAModel':\n case 'XRealIp':\n return 128;\n\n case 'AcceptLanguage':\n case 'SecCHUAFullVersionList':\n return 256;\n\n case 'Accept':\n case 'Origin':\n case 'ServerHostname':\n case 'Host':\n return 512;\n\n case 'UserAgent':\n return 768;\n\n case 'Referer':\n return 1024;\n\n case 'Request':\n return 2048;\n\n case 'XForwardedForIp':\n return -512;\n\n // Payload field limits\n case 'AddressCountryCode':\n return 2;\n\n case 'UserExternalUrl':\n case 'UserPictureUrl':\n return 10;\n\n case 'AddressRegionCode':\n case 'AddressZipCode':\n return 15;\n\n case 'UserPhone':\n return 16;\n\n case 'UserFirstName':\n case 'UserLastName':\n case 'AddressName':\n return 50;\n\n case 'UserDisplayName':\n return 100;\n\n case 'AddressLine1':\n case 'AddressLine2':\n case 'AddressCity':\n case 'SessionId':\n return 255;\n\n case 'Account':\n case 'UserId':\n case 'UserEmail':\n case 'UserDescription':\n return 320;\n\n case 'UserUrlItem':\n return 2048;\n default:\n return 0;\n }\n}\n\nexport function truncateValue(value?: string, maxLength?: number) {\n if (value === undefined) {\n return '';\n }\n if (maxLength == null || maxLength === 0) {\n return value;\n }\n return maxLength < 0 ? value.slice(maxLength) : value.slice(0, maxLength);\n}\n"]}
export type HeaderFieldName = 'Accept' | 'AcceptCharset' | 'AcceptEncoding' | 'AcceptLanguage' | 'ClientID' | 'Connection' | 'ContentType' | 'From' | 'Host' | 'Origin' | 'Referer' | 'Request' | 'SecCHDeviceMemory' | 'SecCHUA' | 'SecCHUAArch' | 'SecCHUAFullVersionList' | 'SecCHUAMobile' | 'SecCHUAModel' | 'SecCHUAPlatform' | 'ServerHostname' | 'UserAgent' | 'XForwardedForIp' | 'XRealIp';
export type PayloadFieldName = 'Account' | 'AddressCity' | 'AddressCountryCode' | 'AddressLine1' | 'AddressLine2' | 'AddressName' | 'AddressRegionCode' | 'AddressZipCode' | 'UserDescription' | 'UserDisplayName' | 'UserEmail' | 'UserExternalUrl' | 'UserFirstName' | 'UserId' | 'UserLastName' | 'UserPhone' | 'UserPictureUrl' | 'UserUrlItem' | 'SessionId';
export declare function truncationSize(fieldName: HeaderFieldName | PayloadFieldName): number;
export declare function truncateValue(value?: string, maxLength?: number): string;
//# sourceMappingURL=utils.d.ts.map
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GACrB,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,UAAU,GACV,YAAY,GACZ,aAAa,GACb,MAAM,GACN,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,GACT,mBAAmB,GACnB,SAAS,GACT,aAAa,GACb,wBAAwB,GACxB,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,iBAAiB,GACjB,SAAS,CAAC;AAEhB,MAAM,MAAM,gBAAgB,GACtB,SAAS,GACT,aAAa,GACb,oBAAoB,GACpB,cAAc,GACd,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,QAAQ,GACR,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,WAAW,CAAC;AAElB,wBAAgB,cAAc,CAAC,SAAS,EAAE,eAAe,GAAG,gBAAgB,GAAG,MAAM,CAmFpF;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,UAQ/D"}
+1
-1

@@ -6,4 +6,4 @@ "use strict";

exports.DATADOME_TIMEOUT = 1500;
exports.SDK_VERSION = '2.0.1';
exports.SDK_VERSION = '2.1.0';
exports.SDK_NAME = 'Fraud SDK Node.js';
//# sourceMappingURL=constants.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,iCAAiC,CAAC;AACtD,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,WAAW,GAAG,OAAO,CAAC;AACtB,QAAA,QAAQ,GAAG,mBAAmB,CAAC"}
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,iCAAiC,CAAC;AACtD,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,WAAW,GAAG,OAAO,CAAC;AACtB,QAAA,QAAQ,GAAG,mBAAmB,CAAC","sourcesContent":["export const DATADOME_ENDPOINT = 'https://account-api.datadome.co';\nexport const DATADOME_TIMEOUT = 1500;\nexport const SDK_VERSION = '2.1.0';\nexport const SDK_NAME = 'Fraud SDK Node.js';\n"]}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataDome = exports.Operation = void 0;
const tslib_1 = require("tslib");
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
const https_1 = require("https");
const url_1 = require("url");

@@ -31,3 +28,3 @@ const model_1 = require("./model");

this.requestOptions = {
agent: new https_1.Agent({ keepAlive: true }),
keepalive: true,
headers: {

@@ -50,75 +47,76 @@ Accept: 'application/json',

}
sendRequest(_a) {
return tslib_1.__awaiter(this, arguments, void 0, function* ({ operation, request, requestMetadata, event, args, }) {
const endpoint = this.endpoint.endsWith('/') ? this.endpoint.slice(0, -1) : this.endpoint;
const url = new url_1.URL(endpoint + '/v1/' + operation + '/' + event.action);
const payload = this.buildPayload(request, event, requestMetadata);
this.logger.debug(`url: ${url}`);
this.logger.debug(`body: ${JSON.stringify(payload)}`);
const requestConfig = Object.assign(Object.assign({}, this.requestOptions), { body: JSON.stringify(payload), signal: args === null || args === void 0 ? void 0 : args.controller.signal });
return (0, node_fetch_1.default)(url.toString(), requestConfig);
});
async sendRequest({ operation, request, requestMetadata, event, args, }) {
const endpoint = this.endpoint.endsWith('/') ? this.endpoint.slice(0, -1) : this.endpoint;
const url = new url_1.URL(endpoint + '/v1/' + operation + '/' + event.action);
const payload = this.buildPayload(request, event, requestMetadata);
this.logger.debug(`url: ${url}`);
this.logger.debug(`body: ${JSON.stringify(payload)}`);
const requestConfig = {
...this.requestOptions,
body: JSON.stringify(payload),
signal: args === null || args === void 0 ? void 0 : args.controller.signal,
};
return fetch(url.toString(), requestConfig);
}
validate(request, event, requestMetadata) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort('DataDome Fraud API timeout'), this.timeout);
try {
const response = yield this.sendRequest({
operation: Operation.VALIDATE,
request,
requestMetadata,
event,
args: {
controller,
},
});
const result = yield (response === null || response === void 0 ? void 0 : response.json());
if (response === null || response === void 0 ? void 0 : response.ok) {
result.status = model_1.ResponseStatus.OK;
}
else {
result.status = model_1.ResponseStatus.FAILURE;
result.action = model_1.ResponseAction.ALLOW;
this.logger.error(`Error on API response: ${JSON.stringify(result)}`);
}
return result;
}
catch (error) {
if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError' && controller.signal.aborted) {
return {
action: model_1.ResponseAction.ALLOW,
status: model_1.ResponseStatus.TIMEOUT,
message: `Request timed out after ${this.timeout} milliseconds`,
};
}
else {
return {
action: model_1.ResponseAction.ALLOW,
status: model_1.ResponseStatus.FAILURE,
message: `Request failed :${error}`,
};
}
}
finally {
clearTimeout(timeoutId);
}
});
}
collect(request, event, requestMetadata) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const response = yield this.sendRequest({
operation: Operation.COLLECT,
async validate(request, event, requestMetadata) {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort('DataDome Fraud API timeout'), this.timeout);
try {
const response = await this.sendRequest({
operation: Operation.VALIDATE,
request,
requestMetadata,
event,
args: {
controller,
},
});
if (response.ok) {
return { status: model_1.ResponseStatus.OK };
const result = await (response === null || response === void 0 ? void 0 : response.json());
if (response === null || response === void 0 ? void 0 : response.ok) {
result.status = model_1.ResponseStatus.OK;
}
else {
const json = yield response.json();
return Object.assign({ status: model_1.ResponseStatus.FAILURE }, json);
result.status = model_1.ResponseStatus.FAILURE;
result.action = model_1.ResponseAction.ALLOW;
this.logger.error(`Error on API response: ${JSON.stringify(result)}`);
}
return result;
}
catch (error) {
const isAbortError = (error === null || error === void 0 ? void 0 : error.name) === 'AbortError' ||
(error === null || error === void 0 ? void 0 : error.name) === 'TimeoutError' ||
controller.signal.aborted;
if (isAbortError) {
return {
action: model_1.ResponseAction.ALLOW,
status: model_1.ResponseStatus.TIMEOUT,
message: `Request timed out after ${this.timeout} milliseconds`,
};
}
else {
return {
action: model_1.ResponseAction.ALLOW,
status: model_1.ResponseStatus.FAILURE,
message: `Request failed :${error}`,
};
}
}
finally {
clearTimeout(timeoutId);
}
}
async collect(request, event, requestMetadata) {
const response = await this.sendRequest({
operation: Operation.COLLECT,
request,
requestMetadata,
event,
});
if (response.ok) {
return { status: model_1.ResponseStatus.OK };
}
else {
const json = await response.json();
return { status: model_1.ResponseStatus.FAILURE, ...json };
}
}

@@ -125,0 +123,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"datadome.js","sourceRoot":"","sources":["../src/datadome.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"datadome.js","sourceRoot":"","sources":["../src/datadome.ts"],"names":[],"mappings":"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","sourcesContent":["import { IncomingMessage } from 'http';\nimport { URL } from 'url';\n\nimport {\n DataDomeEvent,\n DataDomeRequest,\n Response,\n ResponseError,\n ResponseAction,\n ResponseStatus,\n RequestMetadata,\n} from './model';\nimport { DATADOME_ENDPOINT, DATADOME_TIMEOUT } from './constants';\n\nexport interface LogInterface {\n debug(primaryMessage: string, ...supportingData: unknown[]): void;\n warn(primaryMessage: string, ...supportingData: unknown[]): void;\n error(primaryMessage: string, ...supportingData: unknown[]): void;\n info(primaryMessage: string, ...supportingData: unknown[]): void;\n}\n\nexport interface DataDomeOptions {\n logger?: LogInterface;\n timeout?: number;\n endpoint?: string;\n}\n\nfunction getDefaultOptions(): Required<DataDomeOptions> {\n return {\n logger: console,\n timeout: DATADOME_TIMEOUT,\n endpoint: DATADOME_ENDPOINT,\n };\n}\n\nexport enum Operation {\n VALIDATE = 'validate',\n COLLECT = 'collect',\n}\n\n/**\n * Class to instantiate a DataDome client\n */\nexport class DataDome {\n private endpoint: string;\n private logger: LogInterface;\n private timeout: number;\n private requestOptions: RequestInit;\n constructor(key: string, options: DataDomeOptions = {}) {\n const defaultOptions = getDefaultOptions();\n const finalParameters = Object.assign({}, defaultOptions, options);\n const { endpoint, logger, timeout } = finalParameters;\n\n this.endpoint = endpoint;\n this.timeout = timeout;\n this.logger = logger;\n\n this.requestOptions = {\n keepalive: true,\n headers: {\n Accept: 'application/json',\n Connection: 'keep-alive',\n 'Content-Type': 'application/json',\n 'x-api-key': key,\n },\n method: 'POST',\n };\n\n if (\n !this.endpoint.toLowerCase().startsWith('https://') &&\n !this.endpoint.toLowerCase().startsWith('http://')\n ) {\n this.logger.warn(\n `Endpoint ${this.endpoint} is not a valid URL. Defaulting to ${defaultOptions.endpoint}`\n );\n this.endpoint = defaultOptions.endpoint;\n }\n }\n\n private buildPayload(\n request: IncomingMessage,\n event: DataDomeEvent,\n requestMetadata?: RequestMetadata\n ): DataDomeRequest {\n return event.mergeWith(new DataDomeRequest(request, requestMetadata));\n }\n\n /**\n * Perform the request to the Protect API\n */\n private async sendRequest({\n operation,\n request,\n requestMetadata,\n event,\n args,\n }: {\n operation: Operation;\n request: IncomingMessage;\n requestMetadata?: RequestMetadata;\n event: DataDomeEvent;\n args?: { controller: AbortController };\n }) {\n // Ensure this.endpoint does not have a trailing slash\n const endpoint = this.endpoint.endsWith('/') ? this.endpoint.slice(0, -1) : this.endpoint;\n const url = new URL(endpoint + '/v1/' + operation + '/' + event.action);\n const payload = this.buildPayload(request, event, requestMetadata);\n\n this.logger.debug(`url: ${url}`);\n this.logger.debug(`body: ${JSON.stringify(payload)}`);\n\n const requestConfig: RequestInit = {\n ...this.requestOptions,\n body: JSON.stringify(payload),\n signal: args?.controller.signal,\n };\n return fetch(url.toString(), requestConfig);\n }\n\n /**\n * Validate request\n */\n async validate(\n request: IncomingMessage,\n event: DataDomeEvent,\n requestMetadata?: RequestMetadata\n ): Promise<Response | ResponseError> {\n const controller = new AbortController();\n const timeoutId = setTimeout(\n () => controller.abort('DataDome Fraud API timeout'),\n this.timeout\n );\n try {\n const response = await this.sendRequest({\n operation: Operation.VALIDATE,\n request,\n requestMetadata,\n event,\n args: {\n controller,\n },\n });\n const result = await response?.json();\n if (response?.ok) {\n result.status = ResponseStatus.OK;\n } else {\n result.status = ResponseStatus.FAILURE;\n result.action = ResponseAction.ALLOW;\n this.logger.error(`Error on API response: ${JSON.stringify(result)}`);\n }\n return result;\n } catch (error) {\n const isAbortError =\n (error as Error)?.name === 'AbortError' ||\n (error as Error)?.name === 'TimeoutError' ||\n controller.signal.aborted;\n\n if (isAbortError) {\n return {\n action: ResponseAction.ALLOW,\n status: ResponseStatus.TIMEOUT,\n message: `Request timed out after ${this.timeout} milliseconds`,\n } as ResponseError;\n } else {\n return {\n action: ResponseAction.ALLOW,\n status: ResponseStatus.FAILURE,\n message: `Request failed :${error}`,\n } as ResponseError;\n }\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n /**\n * Collect request\n */\n async collect(\n request: IncomingMessage,\n event: DataDomeEvent,\n requestMetadata?: RequestMetadata\n ): Promise<Response | ResponseError> {\n const response = await this.sendRequest({\n operation: Operation.COLLECT,\n request,\n requestMetadata,\n event,\n });\n if (response.ok) {\n return { status: ResponseStatus.OK } as Response;\n } else {\n const json = await response.json();\n return { status: ResponseStatus.FAILURE, ...json } as ResponseError;\n }\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,qDAA2B;AAC3B,kDAAwB"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,qDAA2B;AAC3B,kDAAwB","sourcesContent":["export * from './constants';\nexport * from './datadome';\nexport * from './model';\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/model/address.ts"],"names":[],"mappings":""}
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/model/address.ts"],"names":[],"mappings":"","sourcesContent":["export interface Address {\n name?: string;\n line1?: string;\n line2?: string;\n city?: string;\n countryCode?: string;\n regionCode?: string;\n zipCode?: string;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/api/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/api/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B","sourcesContent":["export * from './request';\nexport * from './response';\n"]}

@@ -5,2 +5,3 @@ "use strict";

const constants_1 = require("../../constants");
const utils_1 = require("../../utils");
class DataDomeModule {

@@ -45,73 +46,74 @@ constructor() {

this.protocol = (_f = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.protocol) !== null && _f !== void 0 ? _f : this.getProtocol(request);
this.contentType = this.truncateValue((_g = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.contentType) !== null && _g !== void 0 ? _g : request.headers['content-type'], 64);
this.accept = this.truncateValue((_h = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.accept) !== null && _h !== void 0 ? _h : request.headers['accept'], 512);
this.acceptLanguage = this.truncateValue((_j = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptLanguage) !== null && _j !== void 0 ? _j : request.headers['accept-language'], 256);
this.host = this.truncateValue((_k = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.host) !== null && _k !== void 0 ? _k : request.headers['host'], 512);
this.userAgent = this.truncateValue((_l = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.userAgent) !== null && _l !== void 0 ? _l : request.headers['user-agent'], 768);
this.referer = this.truncateValue((_m = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.referer) !== null && _m !== void 0 ? _m : request.headers['referer'], 1024);
this.xRealIp = this.truncateValue((_o = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xRealIp) !== null && _o !== void 0 ? _o : request.headers['x-real-ip'], 128);
this.xForwardedForIp = this.truncateValue((_p = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xForwardedForIp) !== null && _p !== void 0 ? _p : request.headers['x-forwarded-for'], -512);
this.acceptEncoding = this.truncateValue((_q = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptEncoding) !== null && _q !== void 0 ? _q : request.headers['accept-encoding'], 128);
this.serverHostname = this.truncateValue((_r = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.serverHostname) !== null && _r !== void 0 ? _r : request.headers['host'], 512);
this.from = this.truncateValue((_s = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.from) !== null && _s !== void 0 ? _s : request.headers['from'], 128);
this.origin = this.truncateValue((_t = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.origin) !== null && _t !== void 0 ? _t : request.headers['origin'], 512);
this.connection = this.truncateValue((_u = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.connection) !== null && _u !== void 0 ? _u : request.headers['connection'], 128);
this.acceptCharset = this.truncateValue((_v = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptCharset) !== null && _v !== void 0 ? _v : request.headers['accept-charset'], 128);
this.contentType = (0, utils_1.truncateValue)((_g = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.contentType) !== null && _g !== void 0 ? _g : request.headers['content-type'], (0, utils_1.truncationSize)('ContentType'));
this.accept = (0, utils_1.truncateValue)((_h = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.accept) !== null && _h !== void 0 ? _h : request.headers['accept'], (0, utils_1.truncationSize)('Accept'));
this.acceptLanguage = (0, utils_1.truncateValue)((_j = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptLanguage) !== null && _j !== void 0 ? _j : request.headers['accept-language'], (0, utils_1.truncationSize)('AcceptLanguage'));
this.host = (0, utils_1.truncateValue)((_k = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.host) !== null && _k !== void 0 ? _k : request.headers['host'], (0, utils_1.truncationSize)('Host'));
this.userAgent = (0, utils_1.truncateValue)((_l = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.userAgent) !== null && _l !== void 0 ? _l : request.headers['user-agent'], (0, utils_1.truncationSize)('UserAgent'));
this.referer = (0, utils_1.truncateValue)((_m = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.referer) !== null && _m !== void 0 ? _m : request.headers['referer'], (0, utils_1.truncationSize)('Referer'));
this.xRealIp = (0, utils_1.truncateValue)((_o = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xRealIp) !== null && _o !== void 0 ? _o : request.headers['x-real-ip'], (0, utils_1.truncationSize)('XRealIp'));
this.xForwardedForIp = (0, utils_1.truncateValue)((_p = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xForwardedForIp) !== null && _p !== void 0 ? _p : request.headers['x-forwarded-for'], (0, utils_1.truncationSize)('XForwardedForIp'));
this.acceptEncoding = (0, utils_1.truncateValue)((_q = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptEncoding) !== null && _q !== void 0 ? _q : request.headers['accept-encoding'], (0, utils_1.truncationSize)('AcceptEncoding'));
this.serverHostname = (0, utils_1.truncateValue)((_r = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.serverHostname) !== null && _r !== void 0 ? _r : request.headers['host'], (0, utils_1.truncationSize)('ServerHostname'));
this.from = (0, utils_1.truncateValue)((_s = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.from) !== null && _s !== void 0 ? _s : request.headers['from'], (0, utils_1.truncationSize)('From'));
this.origin = (0, utils_1.truncateValue)((_t = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.origin) !== null && _t !== void 0 ? _t : request.headers['origin'], (0, utils_1.truncationSize)('Origin'));
this.connection = (0, utils_1.truncateValue)((_u = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.connection) !== null && _u !== void 0 ? _u : request.headers['connection'], (0, utils_1.truncationSize)('Connection'));
this.acceptCharset = (0, utils_1.truncateValue)((_v = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptCharset) !== null && _v !== void 0 ? _v : request.headers['accept-charset'], (0, utils_1.truncationSize)('AcceptCharset'));
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA) {
this.secCHUA = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA, 128);
this.secCHUA = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA, (0, utils_1.truncationSize)('SecCHUA'));
}
else if (request.headers['sec-ch-ua']) {
this.secCHUA = this.truncateValue(request.headers['sec-ch-ua'], 128);
this.secCHUA = (0, utils_1.truncateValue)(request.headers['sec-ch-ua'], (0, utils_1.truncationSize)('SecCHUA'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile) {
this.secCHUAMobile = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile, 8);
this.secCHUAMobile = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile, (0, utils_1.truncationSize)('SecCHUAMobile'));
}
else if (request.headers['sec-ch-ua-mobile']) {
this.secCHUAMobile = this.truncateValue(request.headers['sec-ch-ua-mobile'], 8);
this.secCHUAMobile = (0, utils_1.truncateValue)(request.headers['sec-ch-ua-mobile'], (0, utils_1.truncationSize)('SecCHUAMobile'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform) {
this.secCHUAPlatform = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform, 32);
this.secCHUAPlatform = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform, (0, utils_1.truncationSize)('SecCHUAPlatform'));
}
else if (request.headers['sec-ch-ua-platform']) {
this.secCHUAPlatform = this.truncateValue(request.headers['sec-ch-ua-platform'], 32);
this.secCHUAPlatform = (0, utils_1.truncateValue)(request.headers['sec-ch-ua-platform'], (0, utils_1.truncationSize)('SecCHUAPlatform'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch) {
this.secCHUAArch = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch, 16);
this.secCHUAArch = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch, (0, utils_1.truncationSize)('SecCHUAArch'));
}
else if (request.headers['sec-ch-ua-arch']) {
this.secCHUAArch = this.truncateValue(request.headers['sec-ch-ua-arch'], 16);
this.secCHUAArch = (0, utils_1.truncateValue)(request.headers['sec-ch-ua-arch'], (0, utils_1.truncationSize)('SecCHUAArch'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList) {
this.secCHUAFullVersionList = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList, 256);
this.secCHUAFullVersionList = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList, (0, utils_1.truncationSize)('SecCHUAFullVersionList'));
}
else if (request.headers['sec-ch-ua-full-version-list']) {
this.secCHUAFullVersionList = this.truncateValue(request.headers['sec-ch-ua-full-version-list'], 256);
this.secCHUAFullVersionList = (0, utils_1.truncateValue)(request.headers['sec-ch-ua-full-version-list'], (0, utils_1.truncationSize)('SecCHUAFullVersionList'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel) {
this.secCHUAModel = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel, 128);
this.secCHUAModel = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel, (0, utils_1.truncationSize)('SecCHUAModel'));
}
else if (request.headers['sec-ch-ua-model']) {
this.secCHUAModel = this.truncateValue(request.headers['sec-ch-ua-model'], 128);
this.secCHUAModel = (0, utils_1.truncateValue)(request.headers['sec-ch-ua-model'], (0, utils_1.truncationSize)('SecCHUAModel'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory) {
this.secCHDeviceMemory = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory, 8);
this.secCHDeviceMemory = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory, (0, utils_1.truncationSize)('SecCHDeviceMemory'));
}
else if (request.headers['sec-ch-device-memory']) {
this.secCHDeviceMemory = this.truncateValue(request.headers['sec-ch-device-memory'], 8);
this.secCHDeviceMemory = (0, utils_1.truncateValue)(request.headers['sec-ch-device-memory'], (0, utils_1.truncationSize)('SecCHDeviceMemory'));
}
this.request = (_y = (_w = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.request) !== null && _w !== void 0 ? _w : (_x = request.url) === null || _x === void 0 ? void 0 : _x.slice(0, 2048)) !== null && _y !== void 0 ? _y : '/';
this.request =
(_y = (_w = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.request) !== null && _w !== void 0 ? _w : (_x = request.url) === null || _x === void 0 ? void 0 : _x.slice(0, (0, utils_1.truncationSize)('Request'))) !== null && _y !== void 0 ? _y : '/';
const sessionByHeaderClientId = request.headers['x-datadome-clientid'];
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID) {
this.clientID = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID, 128);
this.clientID = (0, utils_1.truncateValue)(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID, (0, utils_1.truncationSize)('ClientID'));
}
else if (sessionByHeaderClientId !== undefined && sessionByHeaderClientId != '') {
this.clientID = this.truncateValue(sessionByHeaderClientId, 128);
this.clientID = (0, utils_1.truncateValue)(sessionByHeaderClientId, (0, utils_1.truncationSize)('ClientID'));
}
else {
this.clientID = this.truncateValue(this.getClientId(request), 128);
this.clientID = (0, utils_1.truncateValue)(this.getClientId(request), (0, utils_1.truncationSize)('ClientID'));
}
}
getProtocol(request) {
let protocol = 'http';
const forwardedProto = request.headers['X-Forwarded-Proto'];
let protocol = request.socket.encrypted ? 'https' : 'http';
const forwardedProto = request.headers['x-forwarded-proto'];
if (forwardedProto !== '' &&

@@ -121,8 +123,2 @@ ((forwardedProto === null || forwardedProto === void 0 ? void 0 : forwardedProto.toLowerCase()) === 'http' || (forwardedProto === null || forwardedProto === void 0 ? void 0 : forwardedProto.toLowerCase()) === 'https')) {

}
else if (this.port === 80) {
protocol = 'http';
}
else if (this.port === 443) {
protocol = 'https';
}
return protocol;

@@ -145,11 +141,2 @@ }

}
truncateValue(value, maxLength) {
if (value === undefined) {
return '';
}
if (maxLength == null) {
return value;
}
return maxLength < 0 ? value.slice(maxLength) : value.slice(0, maxLength);
}
getClientId(request) {

@@ -156,0 +143,0 @@ const cookies = request.headers['cookie'];

@@ -1,1 +0,1 @@

{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/model/api/request.ts"],"names":[],"mappings":";;;AACA,+CAAwD;AAExD,MAAM,cAAc;IAIhB;QACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,oBAAQ,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,uBAAW,CAAC;IAC/B,CAAC;CACJ;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,IAAI,CAAC;QACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAErC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAE1B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAEpE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACnB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACnB,CAAC;AAgCD,MAAM,eAAe;IA6BjB,YAAY,OAAwB,EAAE,eAAiC;;QACnE,IAAI,CAAC,IAAI,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,OAAO,CAAC,MAAM,CAAC,aAAa,mCAAI,WAAW,CAAC;QACjF,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,mCAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CACjC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,mCAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAC/D,EAAE,CACL,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CACpC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,mCAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EACrE,GAAG,CACN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAC/B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,mCAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAC3D,GAAG,CACN,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAC7B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,mCAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EACtD,IAAI,CACP,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAC7B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,mCAAK,OAAO,CAAC,OAAO,CAAC,WAAW,CAAY,EACpE,GAAG,CACN,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CACrC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,mCAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAY,EAClF,CAAC,GAAG,CACP,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CACpC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,mCAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAY,EACjF,GAAG,CACN,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CACpC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,mCAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAC1D,GAAG,CACN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAChC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,mCAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAC5D,GAAG,CACN,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CACnC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,mCAAK,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAY,EAC/E,GAAG,CACN,CAAC;QACF,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAW,EAAE,GAAG,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CACnC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAW,EAC7C,CAAC,CACJ,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CACrC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAW,EAC/C,EAAE,CACL,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAW,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,sBAAsB,EAAE,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAC5C,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,sBAAsB,EACvC,GAAG,CACN,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAC5C,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAW,EACxD,GAAG,CACN,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAClC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAW,EAC5C,GAAG,CACN,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACvF,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CACvC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAW,EACjD,CAAC,CACJ,CAAC;QACN,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,mCAAI,MAAA,OAAO,CAAC,GAAG,0CAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,mCAAI,GAAG,CAAC;QAE9E,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvE,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,uBAAuB,KAAK,SAAS,IAAI,uBAAuB,IAAI,EAAE,EAAE,CAAC;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAiC,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,OAAwB;QACxC,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAW,CAAC;QACtE,IACI,cAAc,KAAK,EAAE;YACrB,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,EAAE,MAAK,MAAM,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,EAAE,MAAK,OAAO,CAAC,EACzF,CAAC;YACC,QAAQ,GAAG,cAAc,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAC1B,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC3B,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAOO,OAAO,CAAC,OAAwB;;QAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAW,CAAC;QACpE,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QACpC,CAAC;QACD,OAAO,MAAA,OAAO,CAAC,MAAM,CAAC,UAAU,mCAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,aAAa,CAAC,KAAc,EAAE,SAAkB;QACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9E,CAAC;IAEO,WAAW,CAAC,OAAwB;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5C,QAAQ,GAAG,KAAK,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAED,MAAa,eAAe;IAIxB,YAAY,OAAwB,EAAE,eAAiC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;CACJ;AARD,0CAQC"}
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/model/api/request.ts"],"names":[],"mappings":";;;AAEA,+CAAwD;AACxD,uCAA4D;AAE5D,MAAM,cAAc;IAIhB;QACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,oBAAQ,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,uBAAW,CAAC;IAC/B,CAAC;CACJ;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,IAAI,CAAC;QACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAErC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAE1B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAEpE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACnB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACnB,CAAC;AAgCD,MAAM,eAAe;IA6BjB,YAAY,OAAwB,EAAE,eAAiC;;QACnE,IAAI,CAAC,IAAI,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,OAAO,CAAC,MAAM,CAAC,aAAa,mCAAI,WAAW,CAAC;QACjF,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,mCAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,IAAA,qBAAa,EAC5B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,mCAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAC/D,IAAA,sBAAc,EAAC,aAAa,CAAC,CAChC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAA,qBAAa,EACvB,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpD,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAA,qBAAa,EAC/B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,mCAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EACrE,IAAA,sBAAc,EAAC,gBAAgB,CAAC,CACnC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAA,qBAAa,EACrB,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAChD,IAAA,sBAAc,EAAC,MAAM,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,IAAA,qBAAa,EAC1B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,mCAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAC3D,IAAA,sBAAc,EAAC,WAAW,CAAC,CAC9B,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAa,EACxB,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,mCAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EACtD,IAAA,sBAAc,EAAC,SAAS,CAAC,CAC5B,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAa,EACxB,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,mCAAK,OAAO,CAAC,OAAO,CAAC,WAAW,CAAY,EACpE,IAAA,sBAAc,EAAC,SAAS,CAAC,CAC5B,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAA,qBAAa,EAChC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,mCAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAY,EAClF,IAAA,sBAAc,EAAC,iBAAiB,CAAC,CACpC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAA,qBAAa,EAC/B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,mCAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAY,EACjF,IAAA,sBAAc,EAAC,gBAAgB,CAAC,CACnC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAA,qBAAa,EAC/B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,cAAc,mCAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAC1D,IAAA,sBAAc,EAAC,gBAAgB,CAAC,CACnC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAA,qBAAa,EACrB,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,mCAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAChD,IAAA,sBAAc,EAAC,MAAM,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAA,qBAAa,EACvB,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EACpD,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAA,qBAAa,EAC3B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,mCAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAC5D,IAAA,sBAAc,EAAC,YAAY,CAAC,CAC/B,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAA,qBAAa,EAC9B,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,mCAAK,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAY,EAC/E,IAAA,sBAAc,EAAC,eAAe,CAAC,CAClC,CAAC;QACF,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAa,EAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAa,EACxB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAW,EACtC,IAAA,sBAAc,EAAC,SAAS,CAAC,CAC5B,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,IAAA,qBAAa,EAC9B,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,EAC9B,IAAA,sBAAc,EAAC,eAAe,CAAC,CAClC,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,GAAG,IAAA,qBAAa,EAC9B,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAW,EAC7C,IAAA,sBAAc,EAAC,eAAe,CAAC,CAClC,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAA,qBAAa,EAChC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,EAChC,IAAA,sBAAc,EAAC,iBAAiB,CAAC,CACpC,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe,GAAG,IAAA,qBAAa,EAChC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAW,EAC/C,IAAA,sBAAc,EAAC,iBAAiB,CAAC,CACpC,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAA,qBAAa,EAC5B,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,EAC5B,IAAA,sBAAc,EAAC,aAAa,CAAC,CAChC,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAA,qBAAa,EAC5B,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAW,EAC3C,IAAA,sBAAc,EAAC,aAAa,CAAC,CAChC,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,sBAAsB,EAAE,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,IAAA,qBAAa,EACvC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,sBAAsB,EACvC,IAAA,sBAAc,EAAC,wBAAwB,CAAC,CAC3C,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAA,qBAAa,EACvC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAW,EACxD,IAAA,sBAAc,EAAC,wBAAwB,CAAC,CAC3C,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAA,qBAAa,EAC7B,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,EAC7B,IAAA,sBAAc,EAAC,cAAc,CAAC,CACjC,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,IAAA,qBAAa,EAC7B,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAW,EAC5C,IAAA,sBAAc,EAAC,cAAc,CAAC,CACjC,CAAC;QACN,CAAC;QACD,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAA,qBAAa,EAClC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,EAClC,IAAA,sBAAc,EAAC,mBAAmB,CAAC,CACtC,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,GAAG,IAAA,qBAAa,EAClC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAW,EACjD,IAAA,sBAAc,EAAC,mBAAmB,CAAC,CACtC,CAAC;QACN,CAAC;QACD,IAAI,CAAC,OAAO;YACR,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,mCAAI,MAAA,OAAO,CAAC,GAAG,0CAAE,KAAK,CAAC,CAAC,EAAE,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC,mCAAI,GAAG,CAAC;QAExF,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACvE,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAA,qBAAa,EAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAE,IAAA,sBAAc,EAAC,UAAU,CAAC,CAAC,CAAC;QACzF,CAAC;aAAM,IAAI,uBAAuB,KAAK,SAAS,IAAI,uBAAuB,IAAI,EAAE,EAAE,CAAC;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAA,qBAAa,EACzB,uBAAiC,EACjC,IAAA,sBAAc,EAAC,UAAU,CAAC,CAC7B,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAA,sBAAc,EAAC,UAAU,CAAC,CAAC,CAAC;QACzF,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,OAAwB;QACxC,IAAI,QAAQ,GAAI,OAAO,CAAC,MAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1E,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAW,CAAC;QACtE,IACI,cAAc,KAAK,EAAE;YACrB,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,EAAE,MAAK,MAAM,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,EAAE,MAAK,OAAO,CAAC,EACzF,CAAC;YACC,QAAQ,GAAG,cAAc,CAAC;QAC9B,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAOO,OAAO,CAAC,OAAwB;;QAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAW,CAAC;QACpE,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QACpC,CAAC;QACD,OAAO,MAAA,OAAO,CAAC,MAAM,CAAC,UAAU,mCAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,WAAW,CAAC,OAAwB;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5C,QAAQ,GAAG,KAAK,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAED,MAAa,eAAe;IAIxB,YAAY,OAAwB,EAAE,eAAiC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;CACJ;AARD,0CAQC","sourcesContent":["import type { IncomingMessage } from 'http';\nimport type { TLSSocket } from 'tls';\nimport { SDK_NAME, SDK_VERSION } from '../../constants';\nimport { truncateValue, truncationSize } from '../../utils';\n\nclass DataDomeModule {\n requestTimeMicros: number;\n name: string;\n version: string;\n constructor() {\n this.requestTimeMicros = Date.now() * 1000;\n this.name = SDK_NAME;\n this.version = SDK_VERSION;\n }\n}\n\nfunction tryDecode(input: string): string {\n try {\n return decodeURIComponent(input);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return input;\n }\n}\n\nfunction parseCookieString(input: string): Map<string, string> {\n const cookies = new Map();\n\n input.split(/; */).forEach((pair: string) => {\n let eqIndex = pair.indexOf('=');\n\n if (eqIndex > 0) {\n const key = pair.substring(0, eqIndex).trim();\n let value = pair.substring(++eqIndex, eqIndex + pair.length).trim();\n\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n\n if (!cookies.has(key)) {\n cookies.set(key, tryDecode(value));\n }\n }\n });\n\n return cookies;\n}\n\nexport interface RequestMetadata {\n addr?: string;\n accept?: string;\n acceptLanguage?: string;\n contentType?: string;\n method?: string;\n host?: string;\n port?: number;\n protocol?: string;\n userAgent?: string;\n referer?: string;\n xRealIp?: string;\n xForwardedForIp?: string;\n acceptEncoding?: string;\n serverHostname?: string;\n from?: string;\n request?: string;\n origin?: string;\n connection?: string;\n acceptCharset?: string;\n clientID?: string;\n secCHUA?: string;\n secCHUAMobile?: string;\n secCHUAPlatform?: string;\n secCHUAArch?: string;\n secCHUAFullVersionList?: string;\n secCHUAModel?: string;\n secCHDeviceMemory?: string;\n}\n\nclass DataDomeHeaders {\n addr: string;\n accept: string;\n acceptLanguage: string;\n contentType: string;\n method: string;\n host: string;\n port: number;\n protocol: string;\n userAgent: string;\n referer: string;\n xRealIp: string;\n xForwardedForIp: string;\n acceptEncoding: string;\n serverHostname: string;\n from: string;\n request: string;\n origin: string;\n connection: string;\n acceptCharset: string;\n clientID: string;\n secCHUA?: string;\n secCHUAMobile?: string;\n secCHUAPlatform?: string;\n secCHUAArch?: string;\n secCHUAFullVersionList?: string;\n secCHUAModel?: string;\n secCHDeviceMemory?: string;\n\n constructor(request: IncomingMessage, requestMetadata?: RequestMetadata) {\n this.addr = requestMetadata?.addr ?? request.socket.remoteAddress ?? '127.0.0.1';\n this.method = requestMetadata?.method ?? request.method ?? '';\n this.port = requestMetadata?.port ?? this.getPort(request);\n this.protocol = requestMetadata?.protocol ?? this.getProtocol(request);\n this.contentType = truncateValue(\n requestMetadata?.contentType ?? request.headers['content-type'],\n truncationSize('ContentType')\n );\n this.accept = truncateValue(\n requestMetadata?.accept ?? request.headers['accept'],\n truncationSize('Accept')\n );\n this.acceptLanguage = truncateValue(\n requestMetadata?.acceptLanguage ?? request.headers['accept-language'],\n truncationSize('AcceptLanguage')\n );\n this.host = truncateValue(\n requestMetadata?.host ?? request.headers['host'],\n truncationSize('Host')\n );\n this.userAgent = truncateValue(\n requestMetadata?.userAgent ?? request.headers['user-agent'],\n truncationSize('UserAgent')\n );\n this.referer = truncateValue(\n requestMetadata?.referer ?? request.headers['referer'],\n truncationSize('Referer')\n );\n this.xRealIp = truncateValue(\n requestMetadata?.xRealIp ?? (request.headers['x-real-ip'] as string),\n truncationSize('XRealIp')\n );\n this.xForwardedForIp = truncateValue(\n requestMetadata?.xForwardedForIp ?? (request.headers['x-forwarded-for'] as string),\n truncationSize('XForwardedForIp')\n );\n this.acceptEncoding = truncateValue(\n requestMetadata?.acceptEncoding ?? (request.headers['accept-encoding'] as string),\n truncationSize('AcceptEncoding')\n );\n this.serverHostname = truncateValue(\n requestMetadata?.serverHostname ?? request.headers['host'],\n truncationSize('ServerHostname')\n );\n this.from = truncateValue(\n requestMetadata?.from ?? request.headers['from'],\n truncationSize('From')\n );\n this.origin = truncateValue(\n requestMetadata?.origin ?? request.headers['origin'],\n truncationSize('Origin')\n );\n this.connection = truncateValue(\n requestMetadata?.connection ?? request.headers['connection'],\n truncationSize('Connection')\n );\n this.acceptCharset = truncateValue(\n requestMetadata?.acceptCharset ?? (request.headers['accept-charset'] as string),\n truncationSize('AcceptCharset')\n );\n if (requestMetadata?.secCHUA) {\n this.secCHUA = truncateValue(requestMetadata?.secCHUA, truncationSize('SecCHUA'));\n } else if (request.headers['sec-ch-ua']) {\n this.secCHUA = truncateValue(\n request.headers['sec-ch-ua'] as string,\n truncationSize('SecCHUA')\n );\n }\n if (requestMetadata?.secCHUAMobile) {\n this.secCHUAMobile = truncateValue(\n requestMetadata?.secCHUAMobile,\n truncationSize('SecCHUAMobile')\n );\n } else if (request.headers['sec-ch-ua-mobile']) {\n this.secCHUAMobile = truncateValue(\n request.headers['sec-ch-ua-mobile'] as string,\n truncationSize('SecCHUAMobile')\n );\n }\n if (requestMetadata?.secCHUAPlatform) {\n this.secCHUAPlatform = truncateValue(\n requestMetadata?.secCHUAPlatform,\n truncationSize('SecCHUAPlatform')\n );\n } else if (request.headers['sec-ch-ua-platform']) {\n this.secCHUAPlatform = truncateValue(\n request.headers['sec-ch-ua-platform'] as string,\n truncationSize('SecCHUAPlatform')\n );\n }\n if (requestMetadata?.secCHUAArch) {\n this.secCHUAArch = truncateValue(\n requestMetadata?.secCHUAArch,\n truncationSize('SecCHUAArch')\n );\n } else if (request.headers['sec-ch-ua-arch']) {\n this.secCHUAArch = truncateValue(\n request.headers['sec-ch-ua-arch'] as string,\n truncationSize('SecCHUAArch')\n );\n }\n if (requestMetadata?.secCHUAFullVersionList) {\n this.secCHUAFullVersionList = truncateValue(\n requestMetadata?.secCHUAFullVersionList,\n truncationSize('SecCHUAFullVersionList')\n );\n } else if (request.headers['sec-ch-ua-full-version-list']) {\n this.secCHUAFullVersionList = truncateValue(\n request.headers['sec-ch-ua-full-version-list'] as string,\n truncationSize('SecCHUAFullVersionList')\n );\n }\n if (requestMetadata?.secCHUAModel) {\n this.secCHUAModel = truncateValue(\n requestMetadata?.secCHUAModel,\n truncationSize('SecCHUAModel')\n );\n } else if (request.headers['sec-ch-ua-model']) {\n this.secCHUAModel = truncateValue(\n request.headers['sec-ch-ua-model'] as string,\n truncationSize('SecCHUAModel')\n );\n }\n if (requestMetadata?.secCHDeviceMemory) {\n this.secCHDeviceMemory = truncateValue(\n requestMetadata?.secCHDeviceMemory,\n truncationSize('SecCHDeviceMemory')\n );\n } else if (request.headers['sec-ch-device-memory']) {\n this.secCHDeviceMemory = truncateValue(\n request.headers['sec-ch-device-memory'] as string,\n truncationSize('SecCHDeviceMemory')\n );\n }\n this.request =\n requestMetadata?.request ?? request.url?.slice(0, truncationSize('Request')) ?? '/';\n\n const sessionByHeaderClientId = request.headers['x-datadome-clientid'];\n if (requestMetadata?.clientID) {\n this.clientID = truncateValue(requestMetadata?.clientID, truncationSize('ClientID'));\n } else if (sessionByHeaderClientId !== undefined && sessionByHeaderClientId != '') {\n this.clientID = truncateValue(\n sessionByHeaderClientId as string,\n truncationSize('ClientID')\n );\n } else {\n this.clientID = truncateValue(this.getClientId(request), truncationSize('ClientID'));\n }\n }\n\n private getProtocol(request: IncomingMessage): string {\n let protocol = (request.socket as TLSSocket).encrypted ? 'https' : 'http';\n const forwardedProto = request.headers['x-forwarded-proto'] as string;\n if (\n forwardedProto !== '' &&\n (forwardedProto?.toLowerCase() === 'http' || forwardedProto?.toLowerCase() === 'https')\n ) {\n protocol = forwardedProto;\n }\n return protocol;\n }\n\n /**\n * Use the Host header or X-Forwarded-Port if available, otherwise fallback to socket.remotePort\n * @param request\n * @returns The port number\n */\n private getPort(request: IncomingMessage): number {\n // Use the Host header or X-Forwarded-Port if available, otherwise fallback to socket.remotePort\n const hostHeader = request.headers['host'];\n const forwardedPort = request.headers['x-forwarded-port'] as string;\n if (forwardedPort) {\n return parseInt(forwardedPort, 10);\n } else if (hostHeader && hostHeader.includes(':')) {\n return parseInt(hostHeader.split(':')[1], 10);\n } else if (request.socket.localPort) {\n return request.socket.localPort;\n }\n return request.socket.remotePort ?? 0;\n }\n\n private getClientId(request: IncomingMessage): string {\n const cookies = request.headers['cookie'];\n let clientId = '';\n if (cookies !== undefined) {\n const parsedCookies = parseCookieString(cookies);\n for (const [key, value] of parsedCookies.entries()) {\n if (value !== undefined && key === 'datadome') {\n clientId = value;\n }\n }\n }\n return clientId;\n }\n}\n\nexport class DataDomeRequest {\n module: DataDomeModule;\n header: DataDomeHeaders;\n [key: string]: unknown;\n constructor(request: IncomingMessage, requestMetadata?: RequestMetadata) {\n this.module = new DataDomeModule();\n this.header = new DataDomeHeaders(request, requestMetadata);\n }\n}\n"]}

@@ -8,2 +8,4 @@ "use strict";

ResponseAction["DENY"] = "deny";
ResponseAction["CHALLENGE"] = "challenge";
ResponseAction["REVIEW"] = "review";
})(ResponseAction || (exports.ResponseAction = ResponseAction = {}));

@@ -10,0 +12,0 @@ var ResponseStatus;

@@ -1,1 +0,1 @@

{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/model/api/response.ts"],"names":[],"mappings":";;;AASA,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAUD,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB"}
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/model/api/response.ts"],"names":[],"mappings":";;;AAWA,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACrB,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB;AAUD,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB","sourcesContent":["import { Address } from '../address';\n\n/**\n * Enum representing possible actions in response to a request.\n *\n * @enum\n * @property {string} ALLOW - Indicates that the request is permitted and should proceed.\n * @property {string} DENY - Indicates that the request is blocked and should not proceed.\n * @property {string} CHALLENGE - Indicates that the request needs to be challenged and should not proceed.\n * @property {string} REVIEW - Indicates that the request needs to be reviewed and should not proceed.\n */\nexport enum ResponseAction {\n ALLOW = 'allow',\n DENY = 'deny',\n CHALLENGE = 'challenge',\n REVIEW = 'review',\n}\n\n/**\n * Represents the possible statuses of an API response.\n *\n * @enum\n * @property {string} OK - The request was successful.\n * @property {string} FAILURE - Something went wrong, but the action should continue.\n * @property {string} TIMEOUT - The request timed out.\n */\nexport enum ResponseStatus {\n OK = 'ok',\n FAILURE = 'failure',\n TIMEOUT = 'timeout',\n}\n\n/**\n * Represents an error in the API response.\n *\n * @property {string} field - The field that caused the error.\n * @property {string} error - The error message.\n */\nexport interface Error {\n field: string;\n error: string;\n}\n\n/**\n * Response of the Account Protect API\n * @property action - Action answered to Customer endpoint\n * @property eventId - Event identifier associated to this validate event\n * @property status - Status of the call the API\n * @property reasons - Reasons of the action response\n * @property score - Score of the request (a positive integer)\n * @property ip - User IP\n * @property location - User location\n */\nexport interface Response {\n action: ResponseAction;\n eventId: string;\n status: ResponseStatus;\n reasons?: string[];\n score?: number;\n ip?: string;\n location?: Address;\n}\n\n/**\n * Error response of the Account Protect API\n * @property message - Message of the error\n * @property errors - Errors of the API\n */\nexport interface ResponseError extends Response {\n message: string;\n errors: Error[];\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/model/authentication.ts"],"names":[],"mappings":""}
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/model/authentication.ts"],"names":[],"mappings":"","sourcesContent":["export type AuthenticationSocialProvider =\n | 'other'\n | 'amazon'\n | 'apple'\n | 'facebook'\n | 'google'\n | 'linkedin'\n | 'microsoft'\n | 'twitter'\n | 'github'\n | 'yahoo';\n\nexport type AuthenticationType = 'other' | 'local' | 'social';\n\nexport type AuthenticationMode = 'other' | 'biometric' | 'mail' | 'mfa' | 'otp' | 'password';\n\nexport interface Authentication {\n socialProvider?: AuthenticationSocialProvider;\n type?: AuthenticationType;\n mode?: AuthenticationMode;\n}\n"]}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AccountUpdateEvent = void 0;
const utils_1 = require("../../utils");
const event_1 = require("./event");
class AccountUpdateEvent extends event_1.DataDomeEvent {
constructor({ account, authentication, session, user }) {
var _a, _b;
super({
action: event_1.ActionType.ACCOUNT_UPDATE,
account,
authentication,
session,
});
this.authentication = authentication;
this.session = session;
this.user = user;
if (user) {
this.user = {
id: (0, utils_1.truncateValue)(user.id, (0, utils_1.truncationSize)('UserId')),
title: user.title,
firstName: (0, utils_1.truncateValue)(user.firstName, (0, utils_1.truncationSize)('UserFirstName')),
lastName: (0, utils_1.truncateValue)(user.lastName, (0, utils_1.truncationSize)('UserLastName')),
createdAt: user.createdAt,
phone: (0, utils_1.truncateValue)(user.phone, (0, utils_1.truncationSize)('UserPhone')),
email: (0, utils_1.truncateValue)(user.email, (0, utils_1.truncationSize)('UserEmail')),
displayName: (0, utils_1.truncateValue)(user.displayName, (0, utils_1.truncationSize)('UserDisplayName')),
description: (0, utils_1.truncateValue)(user.description, (0, utils_1.truncationSize)('UserDescription')),
externalUrls: (_a = user.externalUrls) === null || _a === void 0 ? void 0 : _a.slice(0, (0, utils_1.truncationSize)('UserExternalUrl')).map((url) => (0, utils_1.truncateValue)(url, (0, utils_1.truncationSize)('UserUrlItem'))),
pictureUrls: (_b = user.pictureUrls) === null || _b === void 0 ? void 0 : _b.slice(0, (0, utils_1.truncationSize)('UserPictureUrl')).map((url) => (0, utils_1.truncateValue)(url, (0, utils_1.truncationSize)('UserUrlItem'))),
paymentMethodUpdated: user.paymentMethodUpdated,
};
if (user.address) {
this.user.address = {
name: (0, utils_1.truncateValue)(user.address.name, (0, utils_1.truncationSize)('AddressName')),
line1: (0, utils_1.truncateValue)(user.address.line1, (0, utils_1.truncationSize)('AddressLine1')),
line2: (0, utils_1.truncateValue)(user.address.line2, (0, utils_1.truncationSize)('AddressLine2')),
city: (0, utils_1.truncateValue)(user.address.city, (0, utils_1.truncationSize)('AddressCity')),
countryCode: (0, utils_1.truncateValue)(user.address.countryCode, (0, utils_1.truncationSize)('AddressCountryCode')),
regionCode: (0, utils_1.truncateValue)(user.address.regionCode, (0, utils_1.truncationSize)('AddressRegionCode')),
zipCode: (0, utils_1.truncateValue)(user.address.zipCode, (0, utils_1.truncationSize)('AddressZipCode')),
};
}
}
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.user = this.user;

@@ -20,0 +46,0 @@ return requestData;

@@ -1,1 +0,1 @@

{"version":3,"file":"accountUpdate.js","sourceRoot":"","sources":["../../../src/model/events/accountUpdate.ts"],"names":[],"mappings":";;;AAIA,mCAAoD;AAepD,MAAa,kBAAmB,SAAQ,qBAAa;IAIjD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA4B;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,cAAc;YACjC,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AArBD,gDAqBC"}
{"version":3,"file":"accountUpdate.js","sourceRoot":"","sources":["../../../src/model/events/accountUpdate.ts"],"names":[],"mappings":"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","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { User } from '../user';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\n\n/**\n * This interface defines the parameters for the account update event.\n */\nexport interface AccountUpdateEventParams extends Omit<EventParams, 'action'> {\n user?: User & { paymentMethodUpdated?: boolean };\n}\n\n/**\n * This class is used to define the account update event.\n */\nexport class AccountUpdateEvent extends DataDomeEvent {\n user?: User & { paymentMethodUpdated?: boolean };\n constructor({ account, authentication, session, user }: AccountUpdateEventParams) {\n super({\n action: ActionType.ACCOUNT_UPDATE,\n account,\n authentication,\n session,\n });\n if (user) {\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n title: user.title,\n firstName: truncateValue(user.firstName, truncationSize('UserFirstName')),\n lastName: truncateValue(user.lastName, truncationSize('UserLastName')),\n createdAt: user.createdAt,\n phone: truncateValue(user.phone, truncationSize('UserPhone')),\n email: truncateValue(user.email, truncationSize('UserEmail')),\n displayName: truncateValue(user.displayName, truncationSize('UserDisplayName')),\n description: truncateValue(user.description, truncationSize('UserDescription')),\n externalUrls: user.externalUrls\n ?.slice(0, truncationSize('UserExternalUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n pictureUrls: user.pictureUrls\n ?.slice(0, truncationSize('UserPictureUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n paymentMethodUpdated: user.paymentMethodUpdated,\n };\n if (user.address) {\n this.user.address = {\n name: truncateValue(user.address.name, truncationSize('AddressName')),\n line1: truncateValue(user.address.line1, truncationSize('AddressLine1')),\n line2: truncateValue(user.address.line2, truncationSize('AddressLine2')),\n city: truncateValue(user.address.city, truncationSize('AddressCity')),\n countryCode: truncateValue(\n user.address.countryCode,\n truncationSize('AddressCountryCode')\n ),\n regionCode: truncateValue(\n user.address.regionCode,\n truncationSize('AddressRegionCode')\n ),\n zipCode: truncateValue(user.address.zipCode, truncationSize('AddressZipCode')),\n };\n }\n }\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataDomeEvent = exports.ActionType = void 0;
const utils_1 = require("../../utils");
var ActionType;

@@ -13,5 +14,12 @@ (function (ActionType) {

class DataDomeEvent {
constructor({ action, account }) {
constructor({ action, account, authentication, session }) {
this.action = action;
this.account = account;
this.authentication = authentication;
if (session) {
this.session = {
id: (0, utils_1.truncateValue)(session.id, (0, utils_1.truncationSize)('SessionId')),
createdAt: session.createdAt,
};
}
}

@@ -21,2 +29,4 @@ mergeWith(requestData) {

requestData.account = this.account;
requestData.authentication = this.authentication;
requestData.session = this.session;
return requestData;

@@ -23,0 +33,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/model/events/event.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,uCAAyB,CAAA;IACzB,iDAAmC,CAAA;IACnC,+CAAiC,CAAA;IACjC,iCAAmB,CAAA;AACvB,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AASD,MAAa,aAAa;IAItB,YAAY,EAAE,MAAM,EAAE,OAAO,EAA2C;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,WAA4B;QAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAdD,sCAcC"}
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/model/events/event.ts"],"names":[],"mappings":";;;AAAA,uCAA4D;AAK5D,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,uCAAyB,CAAA;IACzB,iDAAmC,CAAA;IACnC,+CAAiC,CAAA;IACjC,iCAAmB,CAAA;AACvB,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAgBD,MAAa,aAAa;IAMtB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAe;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,GAAG;gBACX,EAAE,EAAE,IAAA,qBAAa,EAAC,OAAO,CAAC,EAAE,EAAE,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC;gBAC1D,SAAS,EAAE,OAAO,CAAC,SAAS;aAC/B,CAAC;QACN,CAAC;IACL,CAAC;IAED,SAAS,CAAC,WAA4B;QAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAzBD,sCAyBC","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { Authentication } from '../authentication';\nimport { Session } from '../session';\n\nexport enum ActionType {\n LOGIN = 'login',\n REGISTER = 'registration',\n PASSWORD_UPDATE = 'password/update',\n ACCOUNT_UPDATE = 'account/update',\n PAYMENT = 'payment',\n}\n\nexport interface EventParams {\n action: ActionType;\n account: string;\n authentication?: Authentication;\n session?: Session;\n}\n\n/**\n * This class is used to define the common fields for all Events.\n *\n * @property {ActionType} action - The action associated with the event.\n * @property {StatusType} status - The status of the event. Defaults to `StatusType.UNDEFINED` if not provided.\n * @property {string} account - The account identifier related to the event.\n */\nexport class DataDomeEvent {\n action: ActionType;\n account: string;\n authentication?: Authentication;\n session?: Session;\n\n constructor({ action, account, authentication, session }: EventParams) {\n this.action = action;\n this.account = account;\n this.authentication = authentication;\n if (session) {\n this.session = {\n id: truncateValue(session.id, truncationSize('SessionId')),\n createdAt: session.createdAt,\n };\n }\n }\n\n mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n requestData.event = this.action;\n requestData.account = this.account;\n requestData.authentication = this.authentication;\n requestData.session = this.session;\n return requestData;\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/events/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,kDAAwB;AACxB,kDAAwB;AACxB,2DAAiC;AACjC,yDAA+B"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/events/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,kDAAwB;AACxB,kDAAwB;AACxB,2DAAiC;AACjC,yDAA+B","sourcesContent":["export * from './accountUpdate';\nexport * from './event';\nexport * from './login';\nexport * from './passwordUpdate';\nexport * from './registration';\n"]}

@@ -5,2 +5,3 @@ "use strict";

const event_1 = require("./event");
const utils_1 = require("../../utils");
class LoginEvent extends event_1.DataDomeEvent {

@@ -11,12 +12,14 @@ constructor({ account, status, user, session, authentication }) {

account,
authentication,
session,
});
this.status = status;
this.session = session;
this.user = user;
this.authentication = authentication;
if (user) {
this.user = {
id: (0, utils_1.truncateValue)(user.id, (0, utils_1.truncationSize)('UserId')),
};
}
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.status = this.status;

@@ -23,0 +26,0 @@ requestData.user = this.user;

@@ -1,1 +0,1 @@

{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/model/events/login.ts"],"names":[],"mappings":";;;AAIA,mCAAoD;AAqBpD,MAAa,UAAW,SAAQ,qBAAa;IAKzC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAoB;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,KAAK;YACxB,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAxBD,gCAwBC"}
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/model/events/login.ts"],"names":[],"mappings":";;;AAEA,mCAAiE;AACjE,uCAA4D;AAkB5D,MAAa,UAAW,SAAQ,qBAAa;IAGzC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAoB;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,KAAK;YACxB,OAAO;YACP,cAAc;YACd,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,IAAI,GAAG;gBACR,EAAE,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAAC;aACvD,CAAC;QACN,CAAC;IACL,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAxBD,gCAwBC","sourcesContent":["import { User } from '../user';\nimport { DataDomeRequest } from '../api';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\nimport { truncateValue, truncationSize } from '../../utils';\n\n/**\n * Status of the login event.\n */\nexport type LoginStatus = 'succeeded' | 'failed';\n\n/**\n * This interface defines the parameters for the login event.\n */\nexport interface LoginEventParams extends Omit<EventParams, 'action'> {\n status: LoginStatus;\n user?: Pick<User, 'id'>;\n}\n\n/**\n * This class is used to define the login event.\n */\nexport class LoginEvent extends DataDomeEvent {\n user?: Pick<User, 'id'>;\n status: LoginStatus;\n constructor({ account, status, user, session, authentication }: LoginEventParams) {\n super({\n action: ActionType.LOGIN,\n account,\n authentication,\n session,\n });\n this.status = status;\n if (user) {\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n };\n }\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.status = this.status;\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PasswordUpdateEvent = void 0;
const utils_1 = require("../../utils");
const event_1 = require("./event");
class PasswordUpdateEvent extends event_1.DataDomeEvent {
constructor({ account, reason, session, status, user }) {
constructor({ account, authentication, reason, session, status, user, }) {
super({
action: event_1.ActionType.PASSWORD_UPDATE,
account,
authentication,
session,
});
this.reason = reason;
this.session = session;
this.status = status;
this.user = user;
this.user = {
id: (0, utils_1.truncateValue)(user.id, (0, utils_1.truncationSize)('UserId')),
};
}

@@ -19,3 +23,2 @@ mergeWith(requestData) {

requestData.reason = this.reason;
requestData.session = this.session;
requestData.status = this.status;

@@ -22,0 +25,0 @@ requestData.user = this.user;

@@ -1,1 +0,1 @@

{"version":3,"file":"passwordUpdate.js","sourceRoot":"","sources":["../../../src/model/events/passwordUpdate.ts"],"names":[],"mappings":";;;AAGA,mCAAoD;AA0BpD,MAAa,mBAAoB,SAAQ,qBAAa;IAKlD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAA6B;QAC7E,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,eAAe;YAClC,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAxBD,kDAwBC"}
{"version":3,"file":"passwordUpdate.js","sourceRoot":"","sources":["../../../src/model/events/passwordUpdate.ts"],"names":[],"mappings":";;;AAAA,uCAA4D;AAG5D,mCAAiE;AAwBjE,MAAa,mBAAoB,SAAQ,qBAAa;IAIlD,YAAY,EACR,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,GACoB;QACxB,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,eAAe;YAClC,OAAO;YACP,cAAc;YACd,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG;YACR,EAAE,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,IAAA,sBAAc,EAAC,QAAQ,CAAC,CAAC;SACvD,CAAC;IACN,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAhCD,kDAgCC","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { User } from '../user';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\n\n/**\n * Status of the password update event.\n */\nexport type PasswordUpdateStatus = 'attempted' | 'failed' | 'succeeded' | 'linkExpired';\n\n/**\n * Reason for the password update event.\n */\nexport type PasswordUpdateReason = 'forcedReset' | 'forgotPassword' | 'userUpdate';\n\n/**\n * This interface defines the parameters for the password update event.\n */\nexport interface PasswordUpdateEventParams extends Omit<EventParams, 'action'> {\n reason: PasswordUpdateReason;\n status: PasswordUpdateStatus;\n user: Pick<User, 'id'>;\n}\n\n/**\n * This class is used to define the password update event.\n */\nexport class PasswordUpdateEvent extends DataDomeEvent {\n reason: PasswordUpdateReason;\n status: PasswordUpdateStatus;\n user: Pick<User, 'id'>;\n constructor({\n account,\n authentication,\n reason,\n session,\n status,\n user,\n }: PasswordUpdateEventParams) {\n super({\n action: ActionType.PASSWORD_UPDATE,\n account,\n authentication,\n session,\n });\n this.reason = reason;\n this.status = status;\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n };\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.reason = this.reason;\n requestData.status = this.status;\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RegistrationEvent = void 0;
const utils_1 = require("../../utils");
const event_1 = require("./event");
class RegistrationEvent extends event_1.DataDomeEvent {
constructor({ account, authentication, session, user }) {
super({ action: event_1.ActionType.REGISTER, account });
this.authentication = authentication;
this.session = session;
this.user = user;
var _a, _b;
super({ action: event_1.ActionType.REGISTER, account, authentication, session });
this.user = {
id: (0, utils_1.truncateValue)(user.id, (0, utils_1.truncationSize)('UserId')),
title: user.title,
firstName: (0, utils_1.truncateValue)(user.firstName, (0, utils_1.truncationSize)('UserFirstName')),
lastName: (0, utils_1.truncateValue)(user.lastName, (0, utils_1.truncationSize)('UserLastName')),
createdAt: user.createdAt,
phone: (0, utils_1.truncateValue)(user.phone, (0, utils_1.truncationSize)('UserPhone')),
email: (0, utils_1.truncateValue)(user.email, (0, utils_1.truncationSize)('UserEmail')),
displayName: (0, utils_1.truncateValue)(user.displayName, (0, utils_1.truncationSize)('UserDisplayName')),
description: (0, utils_1.truncateValue)(user.description, (0, utils_1.truncationSize)('UserDescription')),
externalUrls: (_a = user.externalUrls) === null || _a === void 0 ? void 0 : _a.slice(0, (0, utils_1.truncationSize)('UserExternalUrl')).map((url) => (0, utils_1.truncateValue)(url, (0, utils_1.truncationSize)('UserUrlItem'))),
pictureUrls: (_b = user.pictureUrls) === null || _b === void 0 ? void 0 : _b.slice(0, (0, utils_1.truncationSize)('UserPictureUrl')).map((url) => (0, utils_1.truncateValue)(url, (0, utils_1.truncationSize)('UserUrlItem'))),
};
if (user.address) {
this.user.address = {
name: (0, utils_1.truncateValue)(user.address.name, (0, utils_1.truncationSize)('AddressName')),
line1: (0, utils_1.truncateValue)(user.address.line1, (0, utils_1.truncationSize)('AddressLine1')),
line2: (0, utils_1.truncateValue)(user.address.line2, (0, utils_1.truncationSize)('AddressLine2')),
city: (0, utils_1.truncateValue)(user.address.city, (0, utils_1.truncationSize)('AddressCity')),
countryCode: (0, utils_1.truncateValue)(user.address.countryCode, (0, utils_1.truncationSize)('AddressCountryCode')),
regionCode: (0, utils_1.truncateValue)(user.address.regionCode, (0, utils_1.truncationSize)('AddressRegionCode')),
zipCode: (0, utils_1.truncateValue)(user.address.zipCode, (0, utils_1.truncationSize)('AddressZipCode')),
};
}
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.user = this.user;

@@ -17,0 +38,0 @@ return requestData;

@@ -1,1 +0,1 @@

{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/model/events/registration.ts"],"names":[],"mappings":";;;AAIA,mCAAoD;AAepD,MAAa,iBAAkB,SAAQ,qBAAa;IAIhD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA2B;QAC3E,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAlBD,8CAkBC"}
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/model/events/registration.ts"],"names":[],"mappings":"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","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { User } from '../user';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\n\n/**\n * This interface defines the parameters for the registration event.\n */\ninterface RegistrationEventParams extends Omit<EventParams, 'action'> {\n user: User;\n}\n\n/**\n * This class is used to define the registration event.\n */\nexport class RegistrationEvent extends DataDomeEvent {\n user: User;\n constructor({ account, authentication, session, user }: RegistrationEventParams) {\n super({ action: ActionType.REGISTER, account, authentication, session });\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n title: user.title,\n firstName: truncateValue(user.firstName, truncationSize('UserFirstName')),\n lastName: truncateValue(user.lastName, truncationSize('UserLastName')),\n createdAt: user.createdAt,\n phone: truncateValue(user.phone, truncationSize('UserPhone')),\n email: truncateValue(user.email, truncationSize('UserEmail')),\n displayName: truncateValue(user.displayName, truncationSize('UserDisplayName')),\n description: truncateValue(user.description, truncationSize('UserDescription')),\n externalUrls: user.externalUrls\n ?.slice(0, truncationSize('UserExternalUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n pictureUrls: user.pictureUrls\n ?.slice(0, truncationSize('UserPictureUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n };\n if (user.address) {\n this.user.address = {\n name: truncateValue(user.address.name, truncationSize('AddressName')),\n line1: truncateValue(user.address.line1, truncationSize('AddressLine1')),\n line2: truncateValue(user.address.line2, truncationSize('AddressLine2')),\n city: truncateValue(user.address.city, truncationSize('AddressCity')),\n countryCode: truncateValue(\n user.address.countryCode,\n truncationSize('AddressCountryCode')\n ),\n regionCode: truncateValue(\n user.address.regionCode,\n truncationSize('AddressRegionCode')\n ),\n zipCode: truncateValue(user.address.zipCode, truncationSize('AddressZipCode')),\n };\n }\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,2DAAiC;AACjC,gDAAsB;AACtB,iDAAuB;AACvB,oDAA0B;AAC1B,mDAAyB"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,2DAAiC;AACjC,gDAAsB;AACtB,iDAAuB;AACvB,oDAA0B;AAC1B,mDAAyB","sourcesContent":["export * from './address';\nexport * from './authentication';\nexport * from './api';\nexport * from './user';\nexport * from './session';\nexport * from './events';\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/model/session.ts"],"names":[],"mappings":""}
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/model/session.ts"],"names":[],"mappings":"","sourcesContent":["export interface Session {\n id: string;\n createdAt: Date;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/model/user.ts"],"names":[],"mappings":""}
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/model/user.ts"],"names":[],"mappings":"","sourcesContent":["import { Address } from './address';\n\ntype Title = 'mr' | 'ms' | 'mx';\n\nexport interface User {\n id: string;\n title?: Title;\n firstName?: string;\n lastName?: string;\n createdAt?: Date;\n phone?: string;\n email?: string;\n address?: Address;\n displayName?: string;\n description?: string;\n externalUrls?: string[];\n pictureUrls?: string[];\n}\n"]}
export const DATADOME_ENDPOINT = 'https://account-api.datadome.co';
export const DATADOME_TIMEOUT = 1500;
export const SDK_VERSION = '2.0.1';
export const SDK_VERSION = '2.1.0';
export const SDK_NAME = 'Fraud SDK Node.js';
//# sourceMappingURL=constants.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG,mBAAmB,CAAC"}
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,QAAQ,GAAG,mBAAmB,CAAC","sourcesContent":["export const DATADOME_ENDPOINT = 'https://account-api.datadome.co';\nexport const DATADOME_TIMEOUT = 1500;\nexport const SDK_VERSION = '2.1.0';\nexport const SDK_NAME = 'Fraud SDK Node.js';\n"]}

@@ -1,4 +0,1 @@

import { __awaiter } from "tslib";
import fetch from 'node-fetch';
import { Agent } from 'https';
import { URL } from 'url';

@@ -28,3 +25,3 @@ import { DataDomeRequest, ResponseAction, ResponseStatus, } from './model';

this.requestOptions = {
agent: new Agent({ keepAlive: true }),
keepalive: true,
headers: {

@@ -47,77 +44,78 @@ Accept: 'application/json',

}
sendRequest(_a) {
return __awaiter(this, arguments, void 0, function* ({ operation, request, requestMetadata, event, args, }) {
const endpoint = this.endpoint.endsWith('/') ? this.endpoint.slice(0, -1) : this.endpoint;
const url = new URL(endpoint + '/v1/' + operation + '/' + event.action);
const payload = this.buildPayload(request, event, requestMetadata);
this.logger.debug(`url: ${url}`);
this.logger.debug(`body: ${JSON.stringify(payload)}`);
const requestConfig = Object.assign(Object.assign({}, this.requestOptions), { body: JSON.stringify(payload), signal: args === null || args === void 0 ? void 0 : args.controller.signal });
return fetch(url.toString(), requestConfig);
});
async sendRequest({ operation, request, requestMetadata, event, args, }) {
const endpoint = this.endpoint.endsWith('/') ? this.endpoint.slice(0, -1) : this.endpoint;
const url = new URL(endpoint + '/v1/' + operation + '/' + event.action);
const payload = this.buildPayload(request, event, requestMetadata);
this.logger.debug(`url: ${url}`);
this.logger.debug(`body: ${JSON.stringify(payload)}`);
const requestConfig = {
...this.requestOptions,
body: JSON.stringify(payload),
signal: args === null || args === void 0 ? void 0 : args.controller.signal,
};
return fetch(url.toString(), requestConfig);
}
validate(request, event, requestMetadata) {
return __awaiter(this, void 0, void 0, function* () {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort('DataDome Fraud API timeout'), this.timeout);
try {
const response = yield this.sendRequest({
operation: Operation.VALIDATE,
request,
requestMetadata,
event,
args: {
controller,
},
});
const result = yield (response === null || response === void 0 ? void 0 : response.json());
if (response === null || response === void 0 ? void 0 : response.ok) {
result.status = ResponseStatus.OK;
}
else {
result.status = ResponseStatus.FAILURE;
result.action = ResponseAction.ALLOW;
this.logger.error(`Error on API response: ${JSON.stringify(result)}`);
}
return result;
}
catch (error) {
if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError' && controller.signal.aborted) {
return {
action: ResponseAction.ALLOW,
status: ResponseStatus.TIMEOUT,
message: `Request timed out after ${this.timeout} milliseconds`,
};
}
else {
return {
action: ResponseAction.ALLOW,
status: ResponseStatus.FAILURE,
message: `Request failed :${error}`,
};
}
}
finally {
clearTimeout(timeoutId);
}
});
}
collect(request, event, requestMetadata) {
return __awaiter(this, void 0, void 0, function* () {
const response = yield this.sendRequest({
operation: Operation.COLLECT,
async validate(request, event, requestMetadata) {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort('DataDome Fraud API timeout'), this.timeout);
try {
const response = await this.sendRequest({
operation: Operation.VALIDATE,
request,
requestMetadata,
event,
args: {
controller,
},
});
if (response.ok) {
return { status: ResponseStatus.OK };
const result = await (response === null || response === void 0 ? void 0 : response.json());
if (response === null || response === void 0 ? void 0 : response.ok) {
result.status = ResponseStatus.OK;
}
else {
const json = yield response.json();
return Object.assign({ status: ResponseStatus.FAILURE }, json);
result.status = ResponseStatus.FAILURE;
result.action = ResponseAction.ALLOW;
this.logger.error(`Error on API response: ${JSON.stringify(result)}`);
}
return result;
}
catch (error) {
const isAbortError = (error === null || error === void 0 ? void 0 : error.name) === 'AbortError' ||
(error === null || error === void 0 ? void 0 : error.name) === 'TimeoutError' ||
controller.signal.aborted;
if (isAbortError) {
return {
action: ResponseAction.ALLOW,
status: ResponseStatus.TIMEOUT,
message: `Request timed out after ${this.timeout} milliseconds`,
};
}
else {
return {
action: ResponseAction.ALLOW,
status: ResponseStatus.FAILURE,
message: `Request failed :${error}`,
};
}
}
finally {
clearTimeout(timeoutId);
}
}
async collect(request, event, requestMetadata) {
const response = await this.sendRequest({
operation: Operation.COLLECT,
request,
requestMetadata,
event,
});
if (response.ok) {
return { status: ResponseStatus.OK };
}
else {
const json = await response.json();
return { status: ResponseStatus.FAILURE, ...json };
}
}
}
//# sourceMappingURL=datadome.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"datadome.js","sourceRoot":"","sources":["../src/datadome.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"datadome.js","sourceRoot":"","sources":["../src/datadome.ts"],"names":[],"mappings":"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","sourcesContent":["import { IncomingMessage } from 'http';\nimport { URL } from 'url';\n\nimport {\n DataDomeEvent,\n DataDomeRequest,\n Response,\n ResponseError,\n ResponseAction,\n ResponseStatus,\n RequestMetadata,\n} from './model';\nimport { DATADOME_ENDPOINT, DATADOME_TIMEOUT } from './constants';\n\nexport interface LogInterface {\n debug(primaryMessage: string, ...supportingData: unknown[]): void;\n warn(primaryMessage: string, ...supportingData: unknown[]): void;\n error(primaryMessage: string, ...supportingData: unknown[]): void;\n info(primaryMessage: string, ...supportingData: unknown[]): void;\n}\n\nexport interface DataDomeOptions {\n logger?: LogInterface;\n timeout?: number;\n endpoint?: string;\n}\n\nfunction getDefaultOptions(): Required<DataDomeOptions> {\n return {\n logger: console,\n timeout: DATADOME_TIMEOUT,\n endpoint: DATADOME_ENDPOINT,\n };\n}\n\nexport enum Operation {\n VALIDATE = 'validate',\n COLLECT = 'collect',\n}\n\n/**\n * Class to instantiate a DataDome client\n */\nexport class DataDome {\n private endpoint: string;\n private logger: LogInterface;\n private timeout: number;\n private requestOptions: RequestInit;\n constructor(key: string, options: DataDomeOptions = {}) {\n const defaultOptions = getDefaultOptions();\n const finalParameters = Object.assign({}, defaultOptions, options);\n const { endpoint, logger, timeout } = finalParameters;\n\n this.endpoint = endpoint;\n this.timeout = timeout;\n this.logger = logger;\n\n this.requestOptions = {\n keepalive: true,\n headers: {\n Accept: 'application/json',\n Connection: 'keep-alive',\n 'Content-Type': 'application/json',\n 'x-api-key': key,\n },\n method: 'POST',\n };\n\n if (\n !this.endpoint.toLowerCase().startsWith('https://') &&\n !this.endpoint.toLowerCase().startsWith('http://')\n ) {\n this.logger.warn(\n `Endpoint ${this.endpoint} is not a valid URL. Defaulting to ${defaultOptions.endpoint}`\n );\n this.endpoint = defaultOptions.endpoint;\n }\n }\n\n private buildPayload(\n request: IncomingMessage,\n event: DataDomeEvent,\n requestMetadata?: RequestMetadata\n ): DataDomeRequest {\n return event.mergeWith(new DataDomeRequest(request, requestMetadata));\n }\n\n /**\n * Perform the request to the Protect API\n */\n private async sendRequest({\n operation,\n request,\n requestMetadata,\n event,\n args,\n }: {\n operation: Operation;\n request: IncomingMessage;\n requestMetadata?: RequestMetadata;\n event: DataDomeEvent;\n args?: { controller: AbortController };\n }) {\n // Ensure this.endpoint does not have a trailing slash\n const endpoint = this.endpoint.endsWith('/') ? this.endpoint.slice(0, -1) : this.endpoint;\n const url = new URL(endpoint + '/v1/' + operation + '/' + event.action);\n const payload = this.buildPayload(request, event, requestMetadata);\n\n this.logger.debug(`url: ${url}`);\n this.logger.debug(`body: ${JSON.stringify(payload)}`);\n\n const requestConfig: RequestInit = {\n ...this.requestOptions,\n body: JSON.stringify(payload),\n signal: args?.controller.signal,\n };\n return fetch(url.toString(), requestConfig);\n }\n\n /**\n * Validate request\n */\n async validate(\n request: IncomingMessage,\n event: DataDomeEvent,\n requestMetadata?: RequestMetadata\n ): Promise<Response | ResponseError> {\n const controller = new AbortController();\n const timeoutId = setTimeout(\n () => controller.abort('DataDome Fraud API timeout'),\n this.timeout\n );\n try {\n const response = await this.sendRequest({\n operation: Operation.VALIDATE,\n request,\n requestMetadata,\n event,\n args: {\n controller,\n },\n });\n const result = await response?.json();\n if (response?.ok) {\n result.status = ResponseStatus.OK;\n } else {\n result.status = ResponseStatus.FAILURE;\n result.action = ResponseAction.ALLOW;\n this.logger.error(`Error on API response: ${JSON.stringify(result)}`);\n }\n return result;\n } catch (error) {\n const isAbortError =\n (error as Error)?.name === 'AbortError' ||\n (error as Error)?.name === 'TimeoutError' ||\n controller.signal.aborted;\n\n if (isAbortError) {\n return {\n action: ResponseAction.ALLOW,\n status: ResponseStatus.TIMEOUT,\n message: `Request timed out after ${this.timeout} milliseconds`,\n } as ResponseError;\n } else {\n return {\n action: ResponseAction.ALLOW,\n status: ResponseStatus.FAILURE,\n message: `Request failed :${error}`,\n } as ResponseError;\n }\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n /**\n * Collect request\n */\n async collect(\n request: IncomingMessage,\n event: DataDomeEvent,\n requestMetadata?: RequestMetadata\n ): Promise<Response | ResponseError> {\n const response = await this.sendRequest({\n operation: Operation.COLLECT,\n request,\n requestMetadata,\n event,\n });\n if (response.ok) {\n return { status: ResponseStatus.OK } as Response;\n } else {\n const json = await response.json();\n return { status: ResponseStatus.FAILURE, ...json } as ResponseError;\n }\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC","sourcesContent":["export * from './constants';\nexport * from './datadome';\nexport * from './model';\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/model/address.ts"],"names":[],"mappings":""}
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/model/address.ts"],"names":[],"mappings":"","sourcesContent":["export interface Address {\n name?: string;\n line1?: string;\n line2?: string;\n city?: string;\n countryCode?: string;\n regionCode?: string;\n zipCode?: string;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC","sourcesContent":["export * from './request';\nexport * from './response';\n"]}
import { SDK_NAME, SDK_VERSION } from '../../constants';
import { truncateValue, truncationSize } from '../../utils';
class DataDomeModule {

@@ -41,73 +42,74 @@ constructor() {

this.protocol = (_f = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.protocol) !== null && _f !== void 0 ? _f : this.getProtocol(request);
this.contentType = this.truncateValue((_g = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.contentType) !== null && _g !== void 0 ? _g : request.headers['content-type'], 64);
this.accept = this.truncateValue((_h = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.accept) !== null && _h !== void 0 ? _h : request.headers['accept'], 512);
this.acceptLanguage = this.truncateValue((_j = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptLanguage) !== null && _j !== void 0 ? _j : request.headers['accept-language'], 256);
this.host = this.truncateValue((_k = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.host) !== null && _k !== void 0 ? _k : request.headers['host'], 512);
this.userAgent = this.truncateValue((_l = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.userAgent) !== null && _l !== void 0 ? _l : request.headers['user-agent'], 768);
this.referer = this.truncateValue((_m = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.referer) !== null && _m !== void 0 ? _m : request.headers['referer'], 1024);
this.xRealIp = this.truncateValue((_o = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xRealIp) !== null && _o !== void 0 ? _o : request.headers['x-real-ip'], 128);
this.xForwardedForIp = this.truncateValue((_p = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xForwardedForIp) !== null && _p !== void 0 ? _p : request.headers['x-forwarded-for'], -512);
this.acceptEncoding = this.truncateValue((_q = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptEncoding) !== null && _q !== void 0 ? _q : request.headers['accept-encoding'], 128);
this.serverHostname = this.truncateValue((_r = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.serverHostname) !== null && _r !== void 0 ? _r : request.headers['host'], 512);
this.from = this.truncateValue((_s = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.from) !== null && _s !== void 0 ? _s : request.headers['from'], 128);
this.origin = this.truncateValue((_t = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.origin) !== null && _t !== void 0 ? _t : request.headers['origin'], 512);
this.connection = this.truncateValue((_u = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.connection) !== null && _u !== void 0 ? _u : request.headers['connection'], 128);
this.acceptCharset = this.truncateValue((_v = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptCharset) !== null && _v !== void 0 ? _v : request.headers['accept-charset'], 128);
this.contentType = truncateValue((_g = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.contentType) !== null && _g !== void 0 ? _g : request.headers['content-type'], truncationSize('ContentType'));
this.accept = truncateValue((_h = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.accept) !== null && _h !== void 0 ? _h : request.headers['accept'], truncationSize('Accept'));
this.acceptLanguage = truncateValue((_j = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptLanguage) !== null && _j !== void 0 ? _j : request.headers['accept-language'], truncationSize('AcceptLanguage'));
this.host = truncateValue((_k = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.host) !== null && _k !== void 0 ? _k : request.headers['host'], truncationSize('Host'));
this.userAgent = truncateValue((_l = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.userAgent) !== null && _l !== void 0 ? _l : request.headers['user-agent'], truncationSize('UserAgent'));
this.referer = truncateValue((_m = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.referer) !== null && _m !== void 0 ? _m : request.headers['referer'], truncationSize('Referer'));
this.xRealIp = truncateValue((_o = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xRealIp) !== null && _o !== void 0 ? _o : request.headers['x-real-ip'], truncationSize('XRealIp'));
this.xForwardedForIp = truncateValue((_p = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xForwardedForIp) !== null && _p !== void 0 ? _p : request.headers['x-forwarded-for'], truncationSize('XForwardedForIp'));
this.acceptEncoding = truncateValue((_q = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptEncoding) !== null && _q !== void 0 ? _q : request.headers['accept-encoding'], truncationSize('AcceptEncoding'));
this.serverHostname = truncateValue((_r = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.serverHostname) !== null && _r !== void 0 ? _r : request.headers['host'], truncationSize('ServerHostname'));
this.from = truncateValue((_s = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.from) !== null && _s !== void 0 ? _s : request.headers['from'], truncationSize('From'));
this.origin = truncateValue((_t = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.origin) !== null && _t !== void 0 ? _t : request.headers['origin'], truncationSize('Origin'));
this.connection = truncateValue((_u = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.connection) !== null && _u !== void 0 ? _u : request.headers['connection'], truncationSize('Connection'));
this.acceptCharset = truncateValue((_v = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptCharset) !== null && _v !== void 0 ? _v : request.headers['accept-charset'], truncationSize('AcceptCharset'));
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA) {
this.secCHUA = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA, 128);
this.secCHUA = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA, truncationSize('SecCHUA'));
}
else if (request.headers['sec-ch-ua']) {
this.secCHUA = this.truncateValue(request.headers['sec-ch-ua'], 128);
this.secCHUA = truncateValue(request.headers['sec-ch-ua'], truncationSize('SecCHUA'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile) {
this.secCHUAMobile = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile, 8);
this.secCHUAMobile = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile, truncationSize('SecCHUAMobile'));
}
else if (request.headers['sec-ch-ua-mobile']) {
this.secCHUAMobile = this.truncateValue(request.headers['sec-ch-ua-mobile'], 8);
this.secCHUAMobile = truncateValue(request.headers['sec-ch-ua-mobile'], truncationSize('SecCHUAMobile'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform) {
this.secCHUAPlatform = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform, 32);
this.secCHUAPlatform = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform, truncationSize('SecCHUAPlatform'));
}
else if (request.headers['sec-ch-ua-platform']) {
this.secCHUAPlatform = this.truncateValue(request.headers['sec-ch-ua-platform'], 32);
this.secCHUAPlatform = truncateValue(request.headers['sec-ch-ua-platform'], truncationSize('SecCHUAPlatform'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch) {
this.secCHUAArch = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch, 16);
this.secCHUAArch = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch, truncationSize('SecCHUAArch'));
}
else if (request.headers['sec-ch-ua-arch']) {
this.secCHUAArch = this.truncateValue(request.headers['sec-ch-ua-arch'], 16);
this.secCHUAArch = truncateValue(request.headers['sec-ch-ua-arch'], truncationSize('SecCHUAArch'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList) {
this.secCHUAFullVersionList = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList, 256);
this.secCHUAFullVersionList = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList, truncationSize('SecCHUAFullVersionList'));
}
else if (request.headers['sec-ch-ua-full-version-list']) {
this.secCHUAFullVersionList = this.truncateValue(request.headers['sec-ch-ua-full-version-list'], 256);
this.secCHUAFullVersionList = truncateValue(request.headers['sec-ch-ua-full-version-list'], truncationSize('SecCHUAFullVersionList'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel) {
this.secCHUAModel = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel, 128);
this.secCHUAModel = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel, truncationSize('SecCHUAModel'));
}
else if (request.headers['sec-ch-ua-model']) {
this.secCHUAModel = this.truncateValue(request.headers['sec-ch-ua-model'], 128);
this.secCHUAModel = truncateValue(request.headers['sec-ch-ua-model'], truncationSize('SecCHUAModel'));
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory) {
this.secCHDeviceMemory = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory, 8);
this.secCHDeviceMemory = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory, truncationSize('SecCHDeviceMemory'));
}
else if (request.headers['sec-ch-device-memory']) {
this.secCHDeviceMemory = this.truncateValue(request.headers['sec-ch-device-memory'], 8);
this.secCHDeviceMemory = truncateValue(request.headers['sec-ch-device-memory'], truncationSize('SecCHDeviceMemory'));
}
this.request = (_y = (_w = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.request) !== null && _w !== void 0 ? _w : (_x = request.url) === null || _x === void 0 ? void 0 : _x.slice(0, 2048)) !== null && _y !== void 0 ? _y : '/';
this.request =
(_y = (_w = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.request) !== null && _w !== void 0 ? _w : (_x = request.url) === null || _x === void 0 ? void 0 : _x.slice(0, truncationSize('Request'))) !== null && _y !== void 0 ? _y : '/';
const sessionByHeaderClientId = request.headers['x-datadome-clientid'];
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID) {
this.clientID = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID, 128);
this.clientID = truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID, truncationSize('ClientID'));
}
else if (sessionByHeaderClientId !== undefined && sessionByHeaderClientId != '') {
this.clientID = this.truncateValue(sessionByHeaderClientId, 128);
this.clientID = truncateValue(sessionByHeaderClientId, truncationSize('ClientID'));
}
else {
this.clientID = this.truncateValue(this.getClientId(request), 128);
this.clientID = truncateValue(this.getClientId(request), truncationSize('ClientID'));
}
}
getProtocol(request) {
let protocol = 'http';
const forwardedProto = request.headers['X-Forwarded-Proto'];
let protocol = request.socket.encrypted ? 'https' : 'http';
const forwardedProto = request.headers['x-forwarded-proto'];
if (forwardedProto !== '' &&

@@ -117,8 +119,2 @@ ((forwardedProto === null || forwardedProto === void 0 ? void 0 : forwardedProto.toLowerCase()) === 'http' || (forwardedProto === null || forwardedProto === void 0 ? void 0 : forwardedProto.toLowerCase()) === 'https')) {

}
else if (this.port === 80) {
protocol = 'http';
}
else if (this.port === 443) {
protocol = 'https';
}
return protocol;

@@ -141,11 +137,2 @@ }

}
truncateValue(value, maxLength) {
if (value === undefined) {
return '';
}
if (maxLength == null) {
return value;
}
return maxLength < 0 ? value.slice(maxLength) : value.slice(0, maxLength);
}
getClientId(request) {

@@ -152,0 +139,0 @@ const cookies = request.headers['cookie'];

@@ -1,1 +0,1 @@

{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/model/api/request.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/model/api/request.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage } from 'http';\nimport type { TLSSocket } from 'tls';\nimport { SDK_NAME, SDK_VERSION } from '../../constants';\nimport { truncateValue, truncationSize } from '../../utils';\n\nclass DataDomeModule {\n requestTimeMicros: number;\n name: string;\n version: string;\n constructor() {\n this.requestTimeMicros = Date.now() * 1000;\n this.name = SDK_NAME;\n this.version = SDK_VERSION;\n }\n}\n\nfunction tryDecode(input: string): string {\n try {\n return decodeURIComponent(input);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return input;\n }\n}\n\nfunction parseCookieString(input: string): Map<string, string> {\n const cookies = new Map();\n\n input.split(/; */).forEach((pair: string) => {\n let eqIndex = pair.indexOf('=');\n\n if (eqIndex > 0) {\n const key = pair.substring(0, eqIndex).trim();\n let value = pair.substring(++eqIndex, eqIndex + pair.length).trim();\n\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n\n if (!cookies.has(key)) {\n cookies.set(key, tryDecode(value));\n }\n }\n });\n\n return cookies;\n}\n\nexport interface RequestMetadata {\n addr?: string;\n accept?: string;\n acceptLanguage?: string;\n contentType?: string;\n method?: string;\n host?: string;\n port?: number;\n protocol?: string;\n userAgent?: string;\n referer?: string;\n xRealIp?: string;\n xForwardedForIp?: string;\n acceptEncoding?: string;\n serverHostname?: string;\n from?: string;\n request?: string;\n origin?: string;\n connection?: string;\n acceptCharset?: string;\n clientID?: string;\n secCHUA?: string;\n secCHUAMobile?: string;\n secCHUAPlatform?: string;\n secCHUAArch?: string;\n secCHUAFullVersionList?: string;\n secCHUAModel?: string;\n secCHDeviceMemory?: string;\n}\n\nclass DataDomeHeaders {\n addr: string;\n accept: string;\n acceptLanguage: string;\n contentType: string;\n method: string;\n host: string;\n port: number;\n protocol: string;\n userAgent: string;\n referer: string;\n xRealIp: string;\n xForwardedForIp: string;\n acceptEncoding: string;\n serverHostname: string;\n from: string;\n request: string;\n origin: string;\n connection: string;\n acceptCharset: string;\n clientID: string;\n secCHUA?: string;\n secCHUAMobile?: string;\n secCHUAPlatform?: string;\n secCHUAArch?: string;\n secCHUAFullVersionList?: string;\n secCHUAModel?: string;\n secCHDeviceMemory?: string;\n\n constructor(request: IncomingMessage, requestMetadata?: RequestMetadata) {\n this.addr = requestMetadata?.addr ?? request.socket.remoteAddress ?? '127.0.0.1';\n this.method = requestMetadata?.method ?? request.method ?? '';\n this.port = requestMetadata?.port ?? this.getPort(request);\n this.protocol = requestMetadata?.protocol ?? this.getProtocol(request);\n this.contentType = truncateValue(\n requestMetadata?.contentType ?? request.headers['content-type'],\n truncationSize('ContentType')\n );\n this.accept = truncateValue(\n requestMetadata?.accept ?? request.headers['accept'],\n truncationSize('Accept')\n );\n this.acceptLanguage = truncateValue(\n requestMetadata?.acceptLanguage ?? request.headers['accept-language'],\n truncationSize('AcceptLanguage')\n );\n this.host = truncateValue(\n requestMetadata?.host ?? request.headers['host'],\n truncationSize('Host')\n );\n this.userAgent = truncateValue(\n requestMetadata?.userAgent ?? request.headers['user-agent'],\n truncationSize('UserAgent')\n );\n this.referer = truncateValue(\n requestMetadata?.referer ?? request.headers['referer'],\n truncationSize('Referer')\n );\n this.xRealIp = truncateValue(\n requestMetadata?.xRealIp ?? (request.headers['x-real-ip'] as string),\n truncationSize('XRealIp')\n );\n this.xForwardedForIp = truncateValue(\n requestMetadata?.xForwardedForIp ?? (request.headers['x-forwarded-for'] as string),\n truncationSize('XForwardedForIp')\n );\n this.acceptEncoding = truncateValue(\n requestMetadata?.acceptEncoding ?? (request.headers['accept-encoding'] as string),\n truncationSize('AcceptEncoding')\n );\n this.serverHostname = truncateValue(\n requestMetadata?.serverHostname ?? request.headers['host'],\n truncationSize('ServerHostname')\n );\n this.from = truncateValue(\n requestMetadata?.from ?? request.headers['from'],\n truncationSize('From')\n );\n this.origin = truncateValue(\n requestMetadata?.origin ?? request.headers['origin'],\n truncationSize('Origin')\n );\n this.connection = truncateValue(\n requestMetadata?.connection ?? request.headers['connection'],\n truncationSize('Connection')\n );\n this.acceptCharset = truncateValue(\n requestMetadata?.acceptCharset ?? (request.headers['accept-charset'] as string),\n truncationSize('AcceptCharset')\n );\n if (requestMetadata?.secCHUA) {\n this.secCHUA = truncateValue(requestMetadata?.secCHUA, truncationSize('SecCHUA'));\n } else if (request.headers['sec-ch-ua']) {\n this.secCHUA = truncateValue(\n request.headers['sec-ch-ua'] as string,\n truncationSize('SecCHUA')\n );\n }\n if (requestMetadata?.secCHUAMobile) {\n this.secCHUAMobile = truncateValue(\n requestMetadata?.secCHUAMobile,\n truncationSize('SecCHUAMobile')\n );\n } else if (request.headers['sec-ch-ua-mobile']) {\n this.secCHUAMobile = truncateValue(\n request.headers['sec-ch-ua-mobile'] as string,\n truncationSize('SecCHUAMobile')\n );\n }\n if (requestMetadata?.secCHUAPlatform) {\n this.secCHUAPlatform = truncateValue(\n requestMetadata?.secCHUAPlatform,\n truncationSize('SecCHUAPlatform')\n );\n } else if (request.headers['sec-ch-ua-platform']) {\n this.secCHUAPlatform = truncateValue(\n request.headers['sec-ch-ua-platform'] as string,\n truncationSize('SecCHUAPlatform')\n );\n }\n if (requestMetadata?.secCHUAArch) {\n this.secCHUAArch = truncateValue(\n requestMetadata?.secCHUAArch,\n truncationSize('SecCHUAArch')\n );\n } else if (request.headers['sec-ch-ua-arch']) {\n this.secCHUAArch = truncateValue(\n request.headers['sec-ch-ua-arch'] as string,\n truncationSize('SecCHUAArch')\n );\n }\n if (requestMetadata?.secCHUAFullVersionList) {\n this.secCHUAFullVersionList = truncateValue(\n requestMetadata?.secCHUAFullVersionList,\n truncationSize('SecCHUAFullVersionList')\n );\n } else if (request.headers['sec-ch-ua-full-version-list']) {\n this.secCHUAFullVersionList = truncateValue(\n request.headers['sec-ch-ua-full-version-list'] as string,\n truncationSize('SecCHUAFullVersionList')\n );\n }\n if (requestMetadata?.secCHUAModel) {\n this.secCHUAModel = truncateValue(\n requestMetadata?.secCHUAModel,\n truncationSize('SecCHUAModel')\n );\n } else if (request.headers['sec-ch-ua-model']) {\n this.secCHUAModel = truncateValue(\n request.headers['sec-ch-ua-model'] as string,\n truncationSize('SecCHUAModel')\n );\n }\n if (requestMetadata?.secCHDeviceMemory) {\n this.secCHDeviceMemory = truncateValue(\n requestMetadata?.secCHDeviceMemory,\n truncationSize('SecCHDeviceMemory')\n );\n } else if (request.headers['sec-ch-device-memory']) {\n this.secCHDeviceMemory = truncateValue(\n request.headers['sec-ch-device-memory'] as string,\n truncationSize('SecCHDeviceMemory')\n );\n }\n this.request =\n requestMetadata?.request ?? request.url?.slice(0, truncationSize('Request')) ?? '/';\n\n const sessionByHeaderClientId = request.headers['x-datadome-clientid'];\n if (requestMetadata?.clientID) {\n this.clientID = truncateValue(requestMetadata?.clientID, truncationSize('ClientID'));\n } else if (sessionByHeaderClientId !== undefined && sessionByHeaderClientId != '') {\n this.clientID = truncateValue(\n sessionByHeaderClientId as string,\n truncationSize('ClientID')\n );\n } else {\n this.clientID = truncateValue(this.getClientId(request), truncationSize('ClientID'));\n }\n }\n\n private getProtocol(request: IncomingMessage): string {\n let protocol = (request.socket as TLSSocket).encrypted ? 'https' : 'http';\n const forwardedProto = request.headers['x-forwarded-proto'] as string;\n if (\n forwardedProto !== '' &&\n (forwardedProto?.toLowerCase() === 'http' || forwardedProto?.toLowerCase() === 'https')\n ) {\n protocol = forwardedProto;\n }\n return protocol;\n }\n\n /**\n * Use the Host header or X-Forwarded-Port if available, otherwise fallback to socket.remotePort\n * @param request\n * @returns The port number\n */\n private getPort(request: IncomingMessage): number {\n // Use the Host header or X-Forwarded-Port if available, otherwise fallback to socket.remotePort\n const hostHeader = request.headers['host'];\n const forwardedPort = request.headers['x-forwarded-port'] as string;\n if (forwardedPort) {\n return parseInt(forwardedPort, 10);\n } else if (hostHeader && hostHeader.includes(':')) {\n return parseInt(hostHeader.split(':')[1], 10);\n } else if (request.socket.localPort) {\n return request.socket.localPort;\n }\n return request.socket.remotePort ?? 0;\n }\n\n private getClientId(request: IncomingMessage): string {\n const cookies = request.headers['cookie'];\n let clientId = '';\n if (cookies !== undefined) {\n const parsedCookies = parseCookieString(cookies);\n for (const [key, value] of parsedCookies.entries()) {\n if (value !== undefined && key === 'datadome') {\n clientId = value;\n }\n }\n }\n return clientId;\n }\n}\n\nexport class DataDomeRequest {\n module: DataDomeModule;\n header: DataDomeHeaders;\n [key: string]: unknown;\n constructor(request: IncomingMessage, requestMetadata?: RequestMetadata) {\n this.module = new DataDomeModule();\n this.header = new DataDomeHeaders(request, requestMetadata);\n }\n}\n"]}

@@ -5,2 +5,4 @@ export var ResponseAction;

ResponseAction["DENY"] = "deny";
ResponseAction["CHALLENGE"] = "challenge";
ResponseAction["REVIEW"] = "review";
})(ResponseAction || (ResponseAction = {}));

@@ -7,0 +9,0 @@ export var ResponseStatus;

@@ -1,1 +0,1 @@

{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/model/api/response.ts"],"names":[],"mappings":"AASA,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAUD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/model/api/response.ts"],"names":[],"mappings":"AAWA,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACrB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAUD,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB","sourcesContent":["import { Address } from '../address';\n\n/**\n * Enum representing possible actions in response to a request.\n *\n * @enum\n * @property {string} ALLOW - Indicates that the request is permitted and should proceed.\n * @property {string} DENY - Indicates that the request is blocked and should not proceed.\n * @property {string} CHALLENGE - Indicates that the request needs to be challenged and should not proceed.\n * @property {string} REVIEW - Indicates that the request needs to be reviewed and should not proceed.\n */\nexport enum ResponseAction {\n ALLOW = 'allow',\n DENY = 'deny',\n CHALLENGE = 'challenge',\n REVIEW = 'review',\n}\n\n/**\n * Represents the possible statuses of an API response.\n *\n * @enum\n * @property {string} OK - The request was successful.\n * @property {string} FAILURE - Something went wrong, but the action should continue.\n * @property {string} TIMEOUT - The request timed out.\n */\nexport enum ResponseStatus {\n OK = 'ok',\n FAILURE = 'failure',\n TIMEOUT = 'timeout',\n}\n\n/**\n * Represents an error in the API response.\n *\n * @property {string} field - The field that caused the error.\n * @property {string} error - The error message.\n */\nexport interface Error {\n field: string;\n error: string;\n}\n\n/**\n * Response of the Account Protect API\n * @property action - Action answered to Customer endpoint\n * @property eventId - Event identifier associated to this validate event\n * @property status - Status of the call the API\n * @property reasons - Reasons of the action response\n * @property score - Score of the request (a positive integer)\n * @property ip - User IP\n * @property location - User location\n */\nexport interface Response {\n action: ResponseAction;\n eventId: string;\n status: ResponseStatus;\n reasons?: string[];\n score?: number;\n ip?: string;\n location?: Address;\n}\n\n/**\n * Error response of the Account Protect API\n * @property message - Message of the error\n * @property errors - Errors of the API\n */\nexport interface ResponseError extends Response {\n message: string;\n errors: Error[];\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/model/authentication.ts"],"names":[],"mappings":""}
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/model/authentication.ts"],"names":[],"mappings":"","sourcesContent":["export type AuthenticationSocialProvider =\n | 'other'\n | 'amazon'\n | 'apple'\n | 'facebook'\n | 'google'\n | 'linkedin'\n | 'microsoft'\n | 'twitter'\n | 'github'\n | 'yahoo';\n\nexport type AuthenticationType = 'other' | 'local' | 'social';\n\nexport type AuthenticationMode = 'other' | 'biometric' | 'mail' | 'mfa' | 'otp' | 'password';\n\nexport interface Authentication {\n socialProvider?: AuthenticationSocialProvider;\n type?: AuthenticationType;\n mode?: AuthenticationMode;\n}\n"]}

@@ -0,16 +1,42 @@

import { truncateValue, truncationSize } from '../../utils';
import { ActionType, DataDomeEvent } from './event';
export class AccountUpdateEvent extends DataDomeEvent {
constructor({ account, authentication, session, user }) {
var _a, _b;
super({
action: ActionType.ACCOUNT_UPDATE,
account,
authentication,
session,
});
this.authentication = authentication;
this.session = session;
this.user = user;
if (user) {
this.user = {
id: truncateValue(user.id, truncationSize('UserId')),
title: user.title,
firstName: truncateValue(user.firstName, truncationSize('UserFirstName')),
lastName: truncateValue(user.lastName, truncationSize('UserLastName')),
createdAt: user.createdAt,
phone: truncateValue(user.phone, truncationSize('UserPhone')),
email: truncateValue(user.email, truncationSize('UserEmail')),
displayName: truncateValue(user.displayName, truncationSize('UserDisplayName')),
description: truncateValue(user.description, truncationSize('UserDescription')),
externalUrls: (_a = user.externalUrls) === null || _a === void 0 ? void 0 : _a.slice(0, truncationSize('UserExternalUrl')).map((url) => truncateValue(url, truncationSize('UserUrlItem'))),
pictureUrls: (_b = user.pictureUrls) === null || _b === void 0 ? void 0 : _b.slice(0, truncationSize('UserPictureUrl')).map((url) => truncateValue(url, truncationSize('UserUrlItem'))),
paymentMethodUpdated: user.paymentMethodUpdated,
};
if (user.address) {
this.user.address = {
name: truncateValue(user.address.name, truncationSize('AddressName')),
line1: truncateValue(user.address.line1, truncationSize('AddressLine1')),
line2: truncateValue(user.address.line2, truncationSize('AddressLine2')),
city: truncateValue(user.address.city, truncationSize('AddressCity')),
countryCode: truncateValue(user.address.countryCode, truncationSize('AddressCountryCode')),
regionCode: truncateValue(user.address.regionCode, truncationSize('AddressRegionCode')),
zipCode: truncateValue(user.address.zipCode, truncationSize('AddressZipCode')),
};
}
}
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.user = this.user;

@@ -17,0 +43,0 @@ return requestData;

@@ -1,1 +0,1 @@

{"version":3,"file":"accountUpdate.js","sourceRoot":"","sources":["../../../src/model/events/accountUpdate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAepD,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAIjD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA4B;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,cAAc;YACjC,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ"}
{"version":3,"file":"accountUpdate.js","sourceRoot":"","sources":["../../../src/model/events/accountUpdate.ts"],"names":[],"mappings":"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","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { User } from '../user';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\n\n/**\n * This interface defines the parameters for the account update event.\n */\nexport interface AccountUpdateEventParams extends Omit<EventParams, 'action'> {\n user?: User & { paymentMethodUpdated?: boolean };\n}\n\n/**\n * This class is used to define the account update event.\n */\nexport class AccountUpdateEvent extends DataDomeEvent {\n user?: User & { paymentMethodUpdated?: boolean };\n constructor({ account, authentication, session, user }: AccountUpdateEventParams) {\n super({\n action: ActionType.ACCOUNT_UPDATE,\n account,\n authentication,\n session,\n });\n if (user) {\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n title: user.title,\n firstName: truncateValue(user.firstName, truncationSize('UserFirstName')),\n lastName: truncateValue(user.lastName, truncationSize('UserLastName')),\n createdAt: user.createdAt,\n phone: truncateValue(user.phone, truncationSize('UserPhone')),\n email: truncateValue(user.email, truncationSize('UserEmail')),\n displayName: truncateValue(user.displayName, truncationSize('UserDisplayName')),\n description: truncateValue(user.description, truncationSize('UserDescription')),\n externalUrls: user.externalUrls\n ?.slice(0, truncationSize('UserExternalUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n pictureUrls: user.pictureUrls\n ?.slice(0, truncationSize('UserPictureUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n paymentMethodUpdated: user.paymentMethodUpdated,\n };\n if (user.address) {\n this.user.address = {\n name: truncateValue(user.address.name, truncationSize('AddressName')),\n line1: truncateValue(user.address.line1, truncationSize('AddressLine1')),\n line2: truncateValue(user.address.line2, truncationSize('AddressLine2')),\n city: truncateValue(user.address.city, truncationSize('AddressCity')),\n countryCode: truncateValue(\n user.address.countryCode,\n truncationSize('AddressCountryCode')\n ),\n regionCode: truncateValue(\n user.address.regionCode,\n truncationSize('AddressRegionCode')\n ),\n zipCode: truncateValue(user.address.zipCode, truncationSize('AddressZipCode')),\n };\n }\n }\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}

@@ -0,1 +1,2 @@

import { truncateValue, truncationSize } from '../../utils';
export var ActionType;

@@ -10,5 +11,12 @@ (function (ActionType) {

export class DataDomeEvent {
constructor({ action, account }) {
constructor({ action, account, authentication, session }) {
this.action = action;
this.account = account;
this.authentication = authentication;
if (session) {
this.session = {
id: truncateValue(session.id, truncationSize('SessionId')),
createdAt: session.createdAt,
};
}
}

@@ -18,2 +26,4 @@ mergeWith(requestData) {

requestData.account = this.account;
requestData.authentication = this.authentication;
requestData.session = this.session;
return requestData;

@@ -20,0 +30,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/model/events/event.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,uCAAyB,CAAA;IACzB,iDAAmC,CAAA;IACnC,+CAAiC,CAAA;IACjC,iCAAmB,CAAA;AACvB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AASD,MAAM,OAAO,aAAa;IAItB,YAAY,EAAE,MAAM,EAAE,OAAO,EAA2C;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,WAA4B;QAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ"}
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/model/events/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK5D,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,uCAAyB,CAAA;IACzB,iDAAmC,CAAA;IACnC,+CAAiC,CAAA;IACjC,iCAAmB,CAAA;AACvB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAgBD,MAAM,OAAO,aAAa;IAMtB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAe;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,GAAG;gBACX,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC1D,SAAS,EAAE,OAAO,CAAC,SAAS;aAC/B,CAAC;QACN,CAAC;IACL,CAAC;IAED,SAAS,CAAC,WAA4B;QAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { Authentication } from '../authentication';\nimport { Session } from '../session';\n\nexport enum ActionType {\n LOGIN = 'login',\n REGISTER = 'registration',\n PASSWORD_UPDATE = 'password/update',\n ACCOUNT_UPDATE = 'account/update',\n PAYMENT = 'payment',\n}\n\nexport interface EventParams {\n action: ActionType;\n account: string;\n authentication?: Authentication;\n session?: Session;\n}\n\n/**\n * This class is used to define the common fields for all Events.\n *\n * @property {ActionType} action - The action associated with the event.\n * @property {StatusType} status - The status of the event. Defaults to `StatusType.UNDEFINED` if not provided.\n * @property {string} account - The account identifier related to the event.\n */\nexport class DataDomeEvent {\n action: ActionType;\n account: string;\n authentication?: Authentication;\n session?: Session;\n\n constructor({ action, account, authentication, session }: EventParams) {\n this.action = action;\n this.account = account;\n this.authentication = authentication;\n if (session) {\n this.session = {\n id: truncateValue(session.id, truncationSize('SessionId')),\n createdAt: session.createdAt,\n };\n }\n }\n\n mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n requestData.event = this.action;\n requestData.account = this.account;\n requestData.authentication = this.authentication;\n requestData.session = this.session;\n return requestData;\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './accountUpdate';\nexport * from './event';\nexport * from './login';\nexport * from './passwordUpdate';\nexport * from './registration';\n"]}
import { ActionType, DataDomeEvent } from './event';
import { truncateValue, truncationSize } from '../../utils';
export class LoginEvent extends DataDomeEvent {

@@ -7,12 +8,14 @@ constructor({ account, status, user, session, authentication }) {

account,
authentication,
session,
});
this.status = status;
this.session = session;
this.user = user;
this.authentication = authentication;
if (user) {
this.user = {
id: truncateValue(user.id, truncationSize('UserId')),
};
}
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.status = this.status;

@@ -19,0 +22,0 @@ requestData.user = this.user;

@@ -1,1 +0,1 @@

{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/model/events/login.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAqBpD,MAAM,OAAO,UAAW,SAAQ,aAAa;IAKzC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAoB;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,KAAK;YACxB,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ"}
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/model/events/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAe,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkB5D,MAAM,OAAO,UAAW,SAAQ,aAAa;IAGzC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAoB;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,KAAK;YACxB,OAAO;YACP,cAAc;YACd,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,IAAI,GAAG;gBACR,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;aACvD,CAAC;QACN,CAAC;IACL,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ","sourcesContent":["import { User } from '../user';\nimport { DataDomeRequest } from '../api';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\nimport { truncateValue, truncationSize } from '../../utils';\n\n/**\n * Status of the login event.\n */\nexport type LoginStatus = 'succeeded' | 'failed';\n\n/**\n * This interface defines the parameters for the login event.\n */\nexport interface LoginEventParams extends Omit<EventParams, 'action'> {\n status: LoginStatus;\n user?: Pick<User, 'id'>;\n}\n\n/**\n * This class is used to define the login event.\n */\nexport class LoginEvent extends DataDomeEvent {\n user?: Pick<User, 'id'>;\n status: LoginStatus;\n constructor({ account, status, user, session, authentication }: LoginEventParams) {\n super({\n action: ActionType.LOGIN,\n account,\n authentication,\n session,\n });\n this.status = status;\n if (user) {\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n };\n }\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.status = this.status;\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}

@@ -0,12 +1,16 @@

import { truncateValue, truncationSize } from '../../utils';
import { ActionType, DataDomeEvent } from './event';
export class PasswordUpdateEvent extends DataDomeEvent {
constructor({ account, reason, session, status, user }) {
constructor({ account, authentication, reason, session, status, user, }) {
super({
action: ActionType.PASSWORD_UPDATE,
account,
authentication,
session,
});
this.reason = reason;
this.session = session;
this.status = status;
this.user = user;
this.user = {
id: truncateValue(user.id, truncationSize('UserId')),
};
}

@@ -16,3 +20,2 @@ mergeWith(requestData) {

requestData.reason = this.reason;
requestData.session = this.session;
requestData.status = this.status;

@@ -19,0 +22,0 @@ requestData.user = this.user;

@@ -1,1 +0,1 @@

{"version":3,"file":"passwordUpdate.js","sourceRoot":"","sources":["../../../src/model/events/passwordUpdate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA0BpD,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAKlD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAA6B;QAC7E,KAAK,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,eAAe;YAClC,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ"}
{"version":3,"file":"passwordUpdate.js","sourceRoot":"","sources":["../../../src/model/events/passwordUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAe,MAAM,SAAS,CAAC;AAwBjE,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAIlD,YAAY,EACR,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,GACoB;QACxB,KAAK,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,eAAe;YAClC,OAAO;YACP,cAAc;YACd,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG;YACR,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;SACvD,CAAC;IACN,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { User } from '../user';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\n\n/**\n * Status of the password update event.\n */\nexport type PasswordUpdateStatus = 'attempted' | 'failed' | 'succeeded' | 'linkExpired';\n\n/**\n * Reason for the password update event.\n */\nexport type PasswordUpdateReason = 'forcedReset' | 'forgotPassword' | 'userUpdate';\n\n/**\n * This interface defines the parameters for the password update event.\n */\nexport interface PasswordUpdateEventParams extends Omit<EventParams, 'action'> {\n reason: PasswordUpdateReason;\n status: PasswordUpdateStatus;\n user: Pick<User, 'id'>;\n}\n\n/**\n * This class is used to define the password update event.\n */\nexport class PasswordUpdateEvent extends DataDomeEvent {\n reason: PasswordUpdateReason;\n status: PasswordUpdateStatus;\n user: Pick<User, 'id'>;\n constructor({\n account,\n authentication,\n reason,\n session,\n status,\n user,\n }: PasswordUpdateEventParams) {\n super({\n action: ActionType.PASSWORD_UPDATE,\n account,\n authentication,\n session,\n });\n this.reason = reason;\n this.status = status;\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n };\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.reason = this.reason;\n requestData.status = this.status;\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}

@@ -0,13 +1,34 @@

import { truncateValue, truncationSize } from '../../utils';
import { ActionType, DataDomeEvent } from './event';
export class RegistrationEvent extends DataDomeEvent {
constructor({ account, authentication, session, user }) {
super({ action: ActionType.REGISTER, account });
this.authentication = authentication;
this.session = session;
this.user = user;
var _a, _b;
super({ action: ActionType.REGISTER, account, authentication, session });
this.user = {
id: truncateValue(user.id, truncationSize('UserId')),
title: user.title,
firstName: truncateValue(user.firstName, truncationSize('UserFirstName')),
lastName: truncateValue(user.lastName, truncationSize('UserLastName')),
createdAt: user.createdAt,
phone: truncateValue(user.phone, truncationSize('UserPhone')),
email: truncateValue(user.email, truncationSize('UserEmail')),
displayName: truncateValue(user.displayName, truncationSize('UserDisplayName')),
description: truncateValue(user.description, truncationSize('UserDescription')),
externalUrls: (_a = user.externalUrls) === null || _a === void 0 ? void 0 : _a.slice(0, truncationSize('UserExternalUrl')).map((url) => truncateValue(url, truncationSize('UserUrlItem'))),
pictureUrls: (_b = user.pictureUrls) === null || _b === void 0 ? void 0 : _b.slice(0, truncationSize('UserPictureUrl')).map((url) => truncateValue(url, truncationSize('UserUrlItem'))),
};
if (user.address) {
this.user.address = {
name: truncateValue(user.address.name, truncationSize('AddressName')),
line1: truncateValue(user.address.line1, truncationSize('AddressLine1')),
line2: truncateValue(user.address.line2, truncationSize('AddressLine2')),
city: truncateValue(user.address.city, truncationSize('AddressCity')),
countryCode: truncateValue(user.address.countryCode, truncationSize('AddressCountryCode')),
regionCode: truncateValue(user.address.regionCode, truncationSize('AddressRegionCode')),
zipCode: truncateValue(user.address.zipCode, truncationSize('AddressZipCode')),
};
}
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.user = this.user;

@@ -14,0 +35,0 @@ return requestData;

@@ -1,1 +0,1 @@

{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/model/events/registration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAepD,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAIhD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA2B;QAC3E,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ"}
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/model/events/registration.ts"],"names":[],"mappings":"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","sourcesContent":["import { truncateValue, truncationSize } from '../../utils';\nimport { DataDomeRequest } from '../api';\nimport { User } from '../user';\nimport { ActionType, DataDomeEvent, EventParams } from './event';\n\n/**\n * This interface defines the parameters for the registration event.\n */\ninterface RegistrationEventParams extends Omit<EventParams, 'action'> {\n user: User;\n}\n\n/**\n * This class is used to define the registration event.\n */\nexport class RegistrationEvent extends DataDomeEvent {\n user: User;\n constructor({ account, authentication, session, user }: RegistrationEventParams) {\n super({ action: ActionType.REGISTER, account, authentication, session });\n this.user = {\n id: truncateValue(user.id, truncationSize('UserId')),\n title: user.title,\n firstName: truncateValue(user.firstName, truncationSize('UserFirstName')),\n lastName: truncateValue(user.lastName, truncationSize('UserLastName')),\n createdAt: user.createdAt,\n phone: truncateValue(user.phone, truncationSize('UserPhone')),\n email: truncateValue(user.email, truncationSize('UserEmail')),\n displayName: truncateValue(user.displayName, truncationSize('UserDisplayName')),\n description: truncateValue(user.description, truncationSize('UserDescription')),\n externalUrls: user.externalUrls\n ?.slice(0, truncationSize('UserExternalUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n pictureUrls: user.pictureUrls\n ?.slice(0, truncationSize('UserPictureUrl'))\n .map((url) => truncateValue(url, truncationSize('UserUrlItem'))),\n };\n if (user.address) {\n this.user.address = {\n name: truncateValue(user.address.name, truncationSize('AddressName')),\n line1: truncateValue(user.address.line1, truncationSize('AddressLine1')),\n line2: truncateValue(user.address.line2, truncationSize('AddressLine2')),\n city: truncateValue(user.address.city, truncationSize('AddressCity')),\n countryCode: truncateValue(\n user.address.countryCode,\n truncationSize('AddressCountryCode')\n ),\n regionCode: truncateValue(\n user.address.regionCode,\n truncationSize('AddressRegionCode')\n ),\n zipCode: truncateValue(user.address.zipCode, truncationSize('AddressZipCode')),\n };\n }\n }\n\n override mergeWith(requestData: DataDomeRequest): DataDomeRequest {\n super.mergeWith(requestData);\n requestData.user = this.user;\n return requestData;\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC","sourcesContent":["export * from './address';\nexport * from './authentication';\nexport * from './api';\nexport * from './user';\nexport * from './session';\nexport * from './events';\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/model/session.ts"],"names":[],"mappings":""}
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/model/session.ts"],"names":[],"mappings":"","sourcesContent":["export interface Session {\n id: string;\n createdAt: Date;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/model/user.ts"],"names":[],"mappings":""}
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/model/user.ts"],"names":[],"mappings":"","sourcesContent":["import { Address } from './address';\n\ntype Title = 'mr' | 'ms' | 'mx';\n\nexport interface User {\n id: string;\n title?: Title;\n firstName?: string;\n lastName?: string;\n createdAt?: Date;\n phone?: string;\n email?: string;\n address?: Address;\n displayName?: string;\n description?: string;\n externalUrls?: string[];\n pictureUrls?: string[];\n}\n"]}
export declare const DATADOME_ENDPOINT = "https://account-api.datadome.co";
export declare const DATADOME_TIMEOUT = 1500;
export declare const SDK_VERSION = "2.0.1";
export declare const SDK_VERSION = "2.1.0";
export declare const SDK_NAME = "Fraud SDK Node.js";
//# sourceMappingURL=constants.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"datadome.d.ts","sourceRoot":"","sources":["../src/datadome.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,EACH,aAAa,EAEb,QAAQ,EACR,aAAa,EAGb,eAAe,EAClB,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAUD,oBAAY,SAAS;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACtB;AAED;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAc;gBACxB,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IA+BtD,OAAO,CAAC,YAAY;IAQpB;;OAEG;YACW,WAAW;IA6BzB;;OAEG;IACG,QAAQ,CACV,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,aAAa,EACpB,eAAe,CAAC,EAAE,eAAe,GAClC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC;IA4CpC;;OAEG;IACG,OAAO,CACT,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,aAAa,EACpB,eAAe,CAAC,EAAE,eAAe,GAClC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC;CAcvC"}
{"version":3,"file":"datadome.d.ts","sourceRoot":"","sources":["../src/datadome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,EACH,aAAa,EAEb,QAAQ,EACR,aAAa,EAGb,eAAe,EAClB,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAUD,oBAAY,SAAS;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACtB;AAED;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAc;gBACxB,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IA+BtD,OAAO,CAAC,YAAY;IAQpB;;OAEG;YACW,WAAW;IA6BzB;;OAEG;IACG,QAAQ,CACV,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,aAAa,EACpB,eAAe,CAAC,EAAE,eAAe,GAClC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC;IAiDpC;;OAEG;IACG,OAAO,CACT,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,aAAa,EACpB,eAAe,CAAC,EAAE,eAAe,GAClC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC;CAcvC"}

@@ -7,3 +7,2 @@ export interface Address {

countryCode?: string;
country?: string;
regionCode?: string;

@@ -10,0 +9,0 @@ zipCode?: string;

@@ -1,1 +0,1 @@

{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/model/address.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/model/address.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}

@@ -73,3 +73,2 @@ import type { IncomingMessage } from 'http';

private getPort;
private truncateValue;
private getClientId;

@@ -76,0 +75,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/model/api/request.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/model/api/request.ts"],"names":[],"mappings":"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"}

@@ -8,6 +8,10 @@ import { Address } from '../address';

* @property {string} DENY - Indicates that the request is blocked and should not proceed.
* @property {string} CHALLENGE - Indicates that the request needs to be challenged and should not proceed.
* @property {string} REVIEW - Indicates that the request needs to be reviewed and should not proceed.
*/
export declare enum ResponseAction {
ALLOW = "allow",
DENY = "deny"
DENY = "deny",
CHALLENGE = "challenge",
REVIEW = "review"
}

@@ -14,0 +18,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/model/api/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;GAMG;AACH,oBAAY,cAAc;IACtB,KAAK,UAAU;IACf,IAAI,SAAS;CAChB;AAED;;;;;;;GAOG;AACH,oBAAY,cAAc;IACtB,EAAE,OAAO;IACT,OAAO,YAAY;IACnB,OAAO,YAAY;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;CACnB"}
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/model/api/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;GAQG;AACH,oBAAY,cAAc;IACtB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;CACpB;AAED;;;;;;;GAOG;AACH,oBAAY,cAAc;IACtB,EAAE,OAAO;IACT,OAAO,YAAY;IACnB,OAAO,YAAY;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;CACnB"}
import { DataDomeRequest } from '../api';
import { Authentication } from '../authentication';
import { Session } from '../session';
import { User } from '../user';
import { DataDomeEvent } from './event';
import { DataDomeEvent, EventParams } from './event';
/**
* This interface defines the parameters for the account update event.
*/
export interface AccountUpdateEventParams {
account: string;
authentication?: Authentication;
session?: Session;
export interface AccountUpdateEventParams extends Omit<EventParams, 'action'> {
user?: User & {

@@ -21,4 +16,2 @@ paymentMethodUpdated?: boolean;

export declare class AccountUpdateEvent extends DataDomeEvent {
authentication?: Authentication;
session?: Session;
user?: User & {

@@ -25,0 +18,0 @@ paymentMethodUpdated?: boolean;

@@ -1,1 +0,1 @@

{"version":3,"file":"accountUpdate.d.ts","sourceRoot":"","sources":["../../../src/model/events/accountUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACjD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;gBACrC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,wBAAwB;IAUvE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAOpE"}
{"version":3,"file":"accountUpdate.d.ts","sourceRoot":"","sources":["../../../src/model/events/accountUpdate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAc,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IACzE,IAAI,CAAC,EAAE,IAAI,GAAG;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACjD,IAAI,CAAC,EAAE,IAAI,GAAG;QAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;gBACrC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,wBAAwB;IA8CvE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAKpE"}
import { DataDomeRequest } from '../api';
import { Authentication } from '../authentication';
import { Session } from '../session';
export declare enum ActionType {

@@ -9,2 +11,8 @@ LOGIN = "login",

}
export interface EventParams {
action: ActionType;
account: string;
authentication?: Authentication;
session?: Session;
}
/**

@@ -20,8 +28,7 @@ * This class is used to define the common fields for all Events.

account: string;
constructor({ action, account }: {
action: ActionType;
account: string;
});
authentication?: Authentication;
session?: Session;
constructor({ action, account, authentication, session }: EventParams);
mergeWith(requestData: DataDomeRequest): DataDomeRequest;
}
//# sourceMappingURL=event.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/model/events/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,oBAAY,UAAU;IAClB,KAAK,UAAU;IACf,QAAQ,iBAAiB;IACzB,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,OAAO,YAAY;CACtB;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;gBAEJ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAKxE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAK3D"}
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/model/events/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,oBAAY,UAAU;IAClB,KAAK,UAAU;IACf,QAAQ,iBAAiB;IACzB,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,OAAO,YAAY;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEN,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,WAAW;IAYrE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAO3D"}

@@ -1,6 +0,4 @@

import { Session } from '../session';
import { Authentication } from '../authentication';
import { User } from '../user';
import { DataDomeRequest } from '../api';
import { DataDomeEvent } from './event';
import { DataDomeEvent, EventParams } from './event';
/**

@@ -13,6 +11,3 @@ * Status of the login event.

*/
export interface LoginEventParams {
account: string;
authentication?: Authentication;
session?: Session;
export interface LoginEventParams extends Omit<EventParams, 'action'> {
status: LoginStatus;

@@ -25,5 +20,3 @@ user?: Pick<User, 'id'>;

export declare class LoginEvent extends DataDomeEvent {
authentication?: Authentication;
user?: Pick<User, 'id'>;
session?: Session;
status: LoginStatus;

@@ -30,0 +23,0 @@ constructor({ account, status, user, session, authentication }: LoginEventParams);

@@ -1,1 +0,1 @@

{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/model/events/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,aAAa;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;gBACR,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,gBAAgB;IAWvE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAQpE"}
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/model/events/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAc,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IACjE,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,aAAa;IACzC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;gBACR,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,gBAAgB;IAevE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAMpE"}
import { DataDomeRequest } from '../api';
import { Session } from '../session';
import { User } from '../user';
import { DataDomeEvent } from './event';
import { DataDomeEvent, EventParams } from './event';
/**

@@ -16,6 +15,4 @@ * Status of the password update event.

*/
export interface PasswordUpdateEventParams {
account: string;
export interface PasswordUpdateEventParams extends Omit<EventParams, 'action'> {
reason: PasswordUpdateReason;
session?: Session;
status: PasswordUpdateStatus;

@@ -29,8 +26,7 @@ user: Pick<User, 'id'>;

reason: PasswordUpdateReason;
session?: Session;
status: PasswordUpdateStatus;
user: Pick<User, 'id'>;
constructor({ account, reason, session, status, user }: PasswordUpdateEventParams);
constructor({ account, authentication, reason, session, status, user, }: PasswordUpdateEventParams);
mergeWith(requestData: DataDomeRequest): DataDomeRequest;
}
//# sourceMappingURL=passwordUpdate.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"passwordUpdate.d.ts","sourceRoot":"","sources":["../../../src/model/events/passwordUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAClD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACX,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,yBAAyB;IAWxE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAQpE"}
{"version":3,"file":"passwordUpdate.d.ts","sourceRoot":"","sources":["../../../src/model/events/passwordUpdate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAc,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC1E,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IAClD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACX,EACR,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,GACP,EAAE,yBAAyB;IAcnB,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAOpE"}
import { DataDomeRequest } from '../api';
import { Authentication } from '../authentication';
import { Session } from '../session';
import { User } from '../user';
import { DataDomeEvent } from './event';
import { DataDomeEvent, EventParams } from './event';
/**
* This interface defines the parameters for the registration event.
*/
interface RegistrationEventParams {
account: string;
authentication?: Authentication;
session?: Session;
interface RegistrationEventParams extends Omit<EventParams, 'action'> {
user: User;

@@ -19,5 +14,3 @@ }

export declare class RegistrationEvent extends DataDomeEvent {
authentication?: Authentication;
user: User;
session?: Session;
constructor({ account, authentication, session, user }: RegistrationEventParams);

@@ -24,0 +17,0 @@ mergeWith(requestData: DataDomeRequest): DataDomeRequest;

@@ -1,1 +0,1 @@

{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../src/model/events/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,UAAU,uBAAuB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;gBACN,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,uBAAuB;IAOtE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAOpE"}
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../../src/model/events/registration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAc,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,UAAU,uBAAwB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IACjE,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAChD,IAAI,EAAE,IAAI,CAAC;gBACC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,uBAAuB;IAsCtE,SAAS,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe;CAKpE"}
import { Address } from './address';
type Title = 'mr' | 'ms' | 'mx';
export interface User {
id: string;
title?: string;
title?: Title;
firstName?: string;

@@ -16,2 +17,3 @@ lastName?: string;

}
export {};
//# sourceMappingURL=user.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/model/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,IAAI;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B"}
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/model/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhC,MAAM,WAAW,IAAI;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B"}
{
"name": "@datadome/fraud-sdk-node",
"version": "2.0.1",
"version": "2.1.0",
"description": "Fraud Protection - Node.js SDK",

@@ -8,2 +8,7 @@ "main": "dist-cjs/index.js",

"types": "dist-types/index.d.ts",
"files": [
"dist-cjs/",
"dist-es/",
"dist-types/"
],
"scripts": {

@@ -40,13 +45,12 @@ "test": "npm run build:test && ava",

"engines": {
"node": ">=18"
"node": ">=20"
},
"devDependencies": {
"@eslint/js": "^9.22.0",
"@types/node": "^18.15.11",
"@types/node-fetch": "^2.6.12",
"ava": "^6.2.0",
"c8": "^7.13.0",
"@eslint/js": "^10.0.1",
"@types/node": "^20.0.0",
"ava": "^5.3.1",
"c8": "^11.0.0",
"concurrently": "^8.2.2",
"eslint": "^9.24.0",
"nock": "^13.3.0",
"eslint": "^10.0.1",
"nock": "^14.0.10",
"prettier": "^2.8.7",

@@ -58,4 +62,4 @@ "rimraf": "^6.0.0",

"dependencies": {
"node-fetch": "^2.6.9"
"tslib": "^2.8.1"
}
}
# DataDome Fraud SDK Node.js
## 2.0.1 (2025-06-23)
- Fix the case of the `XRealIp` in the JSON payload to the Account Protect API
## 2.0.0 (2025-06-11)
### Breaking changes
- Update signature of `LoginEvent` and `RegistrationEvent` to accept a single configuration object instead of individual parameters
### Enhancements
- Add support for [account update](https://docs.datadome.co/docs/account-protect-account-update) events
- Add support for [password update](https://docs.datadome.co/docs/account-protect-password-update) events
- Add optional `session`, `user`, and `authentication` fields for login events
- Add optional `authentication` field for registration events
- Add `displayName`, `description`, `externalUrls`, and `pictureUrls` fields to the `User` interface
- Add the `score` and `eventId` fields on successful responses from the `Validate` method
- Add optional `requestMetadata` parameter for `collect` and `validate` methods to allow overriding the initial request's metadata
## 1.1.3 (2025-03-26)
- Update optional fields in `User` and `Address` interfaces to match validate and collect APIs for registration
- Clean TypeScript exports and interface declarations
## 1.1.2 (2023-11-08)
- Add `accept-language` field in payload to Account Protect API
## 1.1.1 (2023-10-31)
- Add `status` failure when the Account Protect API response is invalid
## 1.1.0 (2023-06-20)
- Rename package to `fraud-sdk-node`
## 1.0.0
- Initial release
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SDK_NAME = exports.SDK_VERSION = exports.DATADOME_TIMEOUT = exports.DATADOME_ENDPOINT = void 0;
exports.DATADOME_ENDPOINT = 'https://account-api.datadome.co';
exports.DATADOME_TIMEOUT = 1500;
exports.SDK_VERSION = '2.0.1';
exports.SDK_NAME = 'Fraud SDK Node.js';
//# sourceMappingURL=constants.js.map
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,iCAAiC,CAAC;AACtD,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,WAAW,GAAG,OAAO,CAAC;AACtB,QAAA,QAAQ,GAAG,mBAAmB,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataDome = exports.Operation = void 0;
const tslib_1 = require("tslib");
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
const https_1 = require("https");
const url_1 = require("url");
const model_1 = require("./model");
const constants_1 = require("./constants");
function getDefaultOptions() {
return {
logger: console,
timeout: constants_1.DATADOME_TIMEOUT,
endpoint: constants_1.DATADOME_ENDPOINT,
};
}
var Operation;
(function (Operation) {
Operation["VALIDATE"] = "validate";
Operation["COLLECT"] = "collect";
})(Operation || (exports.Operation = Operation = {}));
class DataDome {
constructor(key, options = {}) {
const defaultOptions = getDefaultOptions();
const finalParameters = Object.assign({}, defaultOptions, options);
const { endpoint, logger, timeout } = finalParameters;
this.endpoint = endpoint;
this.timeout = timeout;
this.logger = logger;
this.requestOptions = {
agent: new https_1.Agent({ keepAlive: true }),
headers: {
Accept: 'application/json',
Connection: 'keep-alive',
'Content-Type': 'application/json',
'x-api-key': key,
},
method: 'POST',
};
if (!this.endpoint.toLowerCase().startsWith('https://') &&
!this.endpoint.toLowerCase().startsWith('http://')) {
this.logger.warn(`Endpoint ${this.endpoint} is not a valid URL. Defaulting to ${defaultOptions.endpoint}`);
this.endpoint = defaultOptions.endpoint;
}
}
buildPayload(request, event, requestMetadata) {
return event.mergeWith(new model_1.DataDomeRequest(request, requestMetadata));
}
sendRequest(_a) {
return tslib_1.__awaiter(this, arguments, void 0, function* ({ operation, request, requestMetadata, event, args, }) {
const endpoint = this.endpoint.endsWith('/') ? this.endpoint.slice(0, -1) : this.endpoint;
const url = new url_1.URL(endpoint + '/v1/' + operation + '/' + event.action);
const payload = this.buildPayload(request, event, requestMetadata);
this.logger.debug(`url: ${url}`);
this.logger.debug(`body: ${JSON.stringify(payload)}`);
const requestConfig = Object.assign(Object.assign({}, this.requestOptions), { body: JSON.stringify(payload), signal: args === null || args === void 0 ? void 0 : args.controller.signal });
return (0, node_fetch_1.default)(url.toString(), requestConfig);
});
}
validate(request, event, requestMetadata) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort('DataDome Fraud API timeout'), this.timeout);
try {
const response = yield this.sendRequest({
operation: Operation.VALIDATE,
request,
requestMetadata,
event,
args: {
controller,
},
});
const result = yield (response === null || response === void 0 ? void 0 : response.json());
if (response === null || response === void 0 ? void 0 : response.ok) {
result.status = model_1.ResponseStatus.OK;
}
else {
result.status = model_1.ResponseStatus.FAILURE;
result.action = model_1.ResponseAction.ALLOW;
this.logger.error(`Error on API response: ${JSON.stringify(result)}`);
}
return result;
}
catch (error) {
if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError' && controller.signal.aborted) {
return {
action: model_1.ResponseAction.ALLOW,
status: model_1.ResponseStatus.TIMEOUT,
message: `Request timed out after ${this.timeout} milliseconds`,
};
}
else {
return {
action: model_1.ResponseAction.ALLOW,
status: model_1.ResponseStatus.FAILURE,
message: `Request failed :${error}`,
};
}
}
finally {
clearTimeout(timeoutId);
}
});
}
collect(request, event, requestMetadata) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const response = yield this.sendRequest({
operation: Operation.COLLECT,
request,
requestMetadata,
event,
});
if (response.ok) {
return { status: model_1.ResponseStatus.OK };
}
else {
const json = yield response.json();
return Object.assign({ status: model_1.ResponseStatus.FAILURE }, json);
}
});
}
}
exports.DataDome = DataDome;
//# sourceMappingURL=datadome.js.map
{"version":3,"file":"datadome.js","sourceRoot":"","sources":["../src/datadome.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const ava_1 = tslib_1.__importDefault(require("ava"));
const nock_1 = tslib_1.__importDefault(require("nock"));
const index_1 = require("./index");
const ENDPOINT_HOST = 'account-api.datadome.co';
const ENDPOINT_URL = `https://${ENDPOINT_HOST}/v1/`;
ava_1.default.afterEach((t) => {
nock_1.default.abortPendingRequests();
nock_1.default.cleanAll();
});
ava_1.default.serial('Return an allow response after the API times out', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/login')
.reply((uri, requestBody, cb) => {
setTimeout(() => cb(null, [
200,
{
action: 'allow',
ip: '::1',
reasons: [],
location: 'Lyon',
},
]), 1000);
});
const datadomeClient = new index_1.DataDome('key', { timeout: 100 });
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'timeout', status: 'succeeded' }));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.TIMEOUT);
t.true('message' in result);
t.regex(result.message, /timed out/);
}));
ava_1.default.serial('Return an allow response when using an invalid key', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/login')
.reply(403, {
message: 'Invalid header',
errors: [
{
field: 'x-api-key',
error: 'Invalid or blocked API key',
},
],
});
const datadomeClient = new index_1.DataDome('key', { logger: console });
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'accountName', status: 'succeeded' }));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.FAILURE);
t.assert(result.errors.length > 0);
t.is(result.errors[0].field, 'x-api-key');
t.is(result.errors[0].error, 'Invalid or blocked API key');
t.true(scope.isDone());
}));
(0, ava_1.default)('Do not fail to instantiate the DataDome class if the timeout is negative', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const datadomeClient = new index_1.DataDome('key', { timeout: -2, logger: console });
t.pass();
}));
(0, ava_1.default)('Do not fail to instantiate the DataDome class if the endpoint URL is invalid', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const datadomeClient = new index_1.DataDome('key', { endpoint: 'invalid-url' });
t.pass();
}));
ava_1.default.serial('Properly handle timeout with manually triggered abort', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/login')
.delay(500)
.reply(200, { action: 'allow' });
const datadomeClient = new index_1.DataDome('key', { timeout: 50 });
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'abort-timeout', status: 'succeeded' }));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.TIMEOUT);
t.true('message' in result);
t.is(result.message, 'Request timed out after 50 milliseconds');
}));
ava_1.default.serial('Return an allow response on validating login [Happy path]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/login')
.reply(200, {
action: 'allow',
ip: '192.168.1.1',
reasons: [],
location: { countryCode: 'FR', country: 'France', city: 'Lyon' },
});
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.validate(mockCompleteRequest(), new index_1.LoginEvent({ account: 'happy', status: 'succeeded' }));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.OK);
t.pass();
}));
ava_1.default.serial('Return an allow response on validating registration', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/validate/registration').reply(200, {
action: 'allow',
reasons: [],
});
const datadomeClient = new index_1.DataDome('key', { timeout: 1000, logger: console });
const result = yield datadomeClient.validate(mockRequest(), new index_1.RegistrationEvent({
account: 'happy',
authentication: { type: 'other', mode: 'password' },
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.OK);
t.pass();
}));
ava_1.default.serial('Return a failure on validating registration [500]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/registration')
.reply(500, 'Internal Server Error');
const datadomeClient = new index_1.DataDome('key', { timeout: 1000, logger: console });
const result = yield datadomeClient.validate(mockRequest(), new index_1.RegistrationEvent({
account: '500-internal-server-error',
authentication: { type: 'other', mode: 'password' },
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.FAILURE);
t.pass();
}));
ava_1.default.serial('Return status ok on collect login [Happy path]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/collect/login').reply(201);
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.collect(mockRequest(), new index_1.LoginEvent({ account: 'collect', status: 'succeeded' }));
t.is(result.status, index_1.ResponseStatus.OK);
}));
ava_1.default.serial('Return status ok on collect failed login', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/collect/login').reply(201);
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.collect(mockRequest(), new index_1.LoginEvent({ account: 'collect', status: 'failed' }));
t.is(result.status, index_1.ResponseStatus.OK);
}));
ava_1.default.serial('Return status ok on collect registration [Happy path]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/collect/registration').reply(201);
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.collect(mockRequest(), new index_1.RegistrationEvent({
account: 'collect',
authentication: { type: 'other', mode: 'password' },
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.status, index_1.ResponseStatus.OK);
}));
ava_1.default.serial('Return an allow response on validating account update [Happy path]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/account/update')
.reply(200, {
action: 'allow',
ip: '192.168.1.1',
reasons: [],
location: { countryCode: 'FR', country: 'France', city: 'Lyon' },
});
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.validate(mockCompleteRequest(), new index_1.AccountUpdateEvent({
account: 'happy',
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.OK);
t.pass();
}));
ava_1.default.serial('Return status ok on collect account update [Happy path]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/collect/account/update').reply(201);
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.collect(mockRequest(), new index_1.AccountUpdateEvent({
account: 'collect',
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.status, index_1.ResponseStatus.OK);
}));
ava_1.default.serial('Return an allow response on validating password update [Happy path]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/password/update')
.reply(200, {
action: 'allow',
ip: '192.168.1.1',
reasons: [],
location: { countryCode: 'FR', country: 'France', city: 'Lyon' },
});
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.validate(mockCompleteRequest(), new index_1.PasswordUpdateEvent({
account: 'happy',
reason: 'userUpdate',
status: 'succeeded',
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.OK);
t.pass();
}));
ava_1.default.serial('Return status ok on collect password update [Happy path]', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/collect/password/update').reply(201);
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.collect(mockRequest(), new index_1.PasswordUpdateEvent({
account: 'collect',
reason: 'forgotPassword',
status: 'succeeded',
user: { id: 'userId' },
}));
t.is(result.status, index_1.ResponseStatus.OK);
}));
ava_1.default.serial('Return status ok on collect failed password update', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/collect/password/update').reply(201);
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.collect(mockRequest(), new index_1.PasswordUpdateEvent({
account: 'collect',
reason: 'forcedReset',
status: 'failed',
user: { id: 'userId' },
}));
t.is(result.status, index_1.ResponseStatus.OK);
}));
ava_1.default.serial('Return status fail on collect registration with invalid key', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/collect/registration')
.reply(403, {
message: 'Invalid header',
errors: [
{
field: 'x-api-key',
error: 'Invalid or blocked API key',
},
],
});
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.collect(mockRequest(), new index_1.RegistrationEvent({
account: 'collect',
authentication: { type: 'other', mode: 'password' },
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.status, index_1.ResponseStatus.FAILURE);
t.assert(result.errors.length > 0);
t.is(result.errors[0].field, 'x-api-key');
t.is(result.errors[0].error, 'Invalid or blocked API key');
}));
ava_1.default.serial('Ignore result on collect registration with invalid key', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/collect/registration')
.reply(403, {
message: 'Invalid header',
errors: [
{
field: 'x-api-key',
error: 'Invalid or blocked API key',
},
],
});
const datadomeClient = new index_1.DataDome('key');
const result = datadomeClient.collect(mockRequest(), new index_1.RegistrationEvent({
account: 'collect',
authentication: { type: 'other', mode: 'password' },
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
return result
.then((r) => {
t.pass();
})
.catch((ex) => t.fail());
}));
ava_1.default.serial('Return a deny response on validate login', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/login')
.reply(200, {
action: 'deny',
reasons: ['brute_force'],
ip: '192.167.1.1',
location: {
countryCode: 'IT',
country: 'Italy',
city: 'Chieti',
},
});
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'deny', status: 'succeeded' }));
t.is(result.status, index_1.ResponseStatus.OK);
t.is(result.action, index_1.ResponseAction.DENY);
t.assert(result.reasons !== undefined);
t.assert(result.reasons.length > 0);
t.assert(result.location);
t.assert(result.reasons[0], 'brute_force');
}));
ava_1.default.serial('Return a deny response on validate registration', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/registration')
.reply(200, {
action: 'deny',
reasons: ['brute_force'],
});
const datadomeClient = new index_1.DataDome('key');
const result = yield datadomeClient.validate(mockRequest(), new index_1.RegistrationEvent({
account: 'deny',
authentication: { type: 'other', mode: 'password' },
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
t.is(result.status, index_1.ResponseStatus.OK);
t.is(result.action, index_1.ResponseAction.DENY);
t.assert(result.reasons !== undefined);
t.assert(result.reasons.length > 0);
t.assert(result.reasons[0], 'brute_force');
}));
ava_1.default.serial('Force Https on endpoint configuration', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/validate/login').reply(200, {
action: 'allow',
reason: [],
});
let options = {
endpoint: 'account-api.datadome.co',
};
const datadomeClient = new index_1.DataDome('key', options);
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'deny', status: 'failed' }));
t.is(result.status, index_1.ResponseStatus.OK);
t.is(result.action, index_1.ResponseAction.ALLOW);
}));
ava_1.default.serial('Allow http on endpoint configuration', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)('http://account-api.datadome.co/v1').post('/validate/login').reply(200, {
action: 'allow',
reason: [],
});
let options = {
endpoint: 'http://account-api.datadome.co',
};
const datadomeClient = new index_1.DataDome('key', options);
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'deny', status: 'failed' }));
t.is(result.status, index_1.ResponseStatus.OK);
t.is(result.action, index_1.ResponseAction.ALLOW);
}));
ava_1.default.serial('Allow https on endpoint configuration', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL).post('/validate/login').reply(200, {
action: 'allow',
reason: [],
});
let options = {
endpoint: 'https://account-api.datadome.co',
};
const datadomeClient = new index_1.DataDome('key', options);
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'deny', status: 'failed' }));
t.is(result.status, index_1.ResponseStatus.OK);
t.is(result.action, index_1.ResponseAction.ALLOW);
}));
ava_1.default.serial('Confirms headers are set', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/registration')
.reply((uri, requestBody) => {
t.is(requestBody.header.acceptLanguage, 'en-US,en;q=0.9');
t.is(requestBody.header.secCHUA, 'ua');
t.is(requestBody.header.secCHUAMobile, 'mobile');
t.is(requestBody.header.secCHUAArch, 'arch');
t.is(requestBody.header.secCHUAModel, 'model');
t.is(requestBody.header.secCHUAFullVersionList, 'fullVersionList');
t.is(requestBody.header.secCHDeviceMemory, 'deviceMe');
t.is(requestBody.header.secCHUAPlatform, 'platform');
t.is(requestBody.header.clientID, 'blablablaClientId%1=blabla=');
return [
200,
{
action: 'allow',
ip: '192.168.1.1',
reasons: [],
location: { countryCode: 'FR', country: 'France', city: 'Lyon' },
},
];
});
const datadomeClient = new index_1.DataDome('key', { timeout: 100 });
const result = yield datadomeClient.validate(mockCompleteRequest(), new index_1.RegistrationEvent({
account: 'accept-language',
authentication: { type: 'other', mode: 'password' },
session: { id: 'sessionId', createdAt: new Date() },
user: { id: 'userId' },
}));
}));
ava_1.default.serial('Use requestMetadata parameter in validate method', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/validate/login')
.reply((uri, requestBody) => {
t.is(requestBody.header.addr, '8.8.8.8');
t.is(requestBody.header.secCHUAPlatform, 'macOS');
t.is(requestBody.header.contentType, 'application/special');
t.is(requestBody.header.secCHUAArch, 'arm64');
t.is(requestBody.header.secCHUAModel, 'MacBook Pro');
t.is(requestBody.header.secCHUAFullVersionList, 'Chrome;v="91"');
t.is(requestBody.header.secCHDeviceMemory, '8GB');
t.is(requestBody.header.secCHUA, 'Chrome');
t.is(requestBody.header.secCHUAMobile, '?0');
t.is(requestBody.header.protocol, 'https');
t.is(requestBody.header.port, 8443);
t.is(requestBody.header.method, 'PUT');
t.is(requestBody.header.xRealIp, '10.0.0.1');
t.is(requestBody.header.xForwardedForIp, '10.0.0.2, 10.0.0.3');
t.is(requestBody.header.acceptEncoding, 'gzip, deflate');
t.is(requestBody.header.serverHostname, 'api.example.com');
t.is(requestBody.header.from, 'user@example.com');
t.is(requestBody.header.acceptCharset, 'utf-8, iso-8859-1');
t.is(requestBody.header.clientID, 'custom-client-id');
t.is(requestBody.header.request, '/custom-path');
return [
200,
{
action: 'allow',
ip: '8.8.8.8',
reasons: [],
location: {
countryCode: 'US',
country: 'United States',
city: 'Mountain View',
},
},
];
});
const datadomeClient = new index_1.DataDome('key');
const customMetadata = {
addr: '8.8.8.8',
contentType: 'application/special',
protocol: 'https',
port: 8443,
method: 'PUT',
secCHUAPlatform: 'macOS',
secCHUAArch: 'arm64',
secCHUAModel: 'MacBook Pro',
secCHUAFullVersionList: 'Chrome;v="91"',
secCHDeviceMemory: '8GB',
secCHUA: 'Chrome',
secCHUAMobile: '?0',
xRealIp: '10.0.0.1',
xForwardedForIp: '10.0.0.2, 10.0.0.3',
acceptEncoding: 'gzip, deflate',
serverHostname: 'api.example.com',
from: 'user@example.com',
acceptCharset: 'utf-8, iso-8859-1',
clientID: 'custom-client-id',
request: '/custom-path',
};
const result = yield datadomeClient.validate(mockRequest(), new index_1.LoginEvent({ account: 'metadata-test', status: 'succeeded' }), customMetadata);
t.is(result.action, index_1.ResponseAction.ALLOW);
t.is(result.status, index_1.ResponseStatus.OK);
t.pass();
}));
ava_1.default.serial('Use requestMetadata parameter in collect method', (t) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const scope = (0, nock_1.default)(ENDPOINT_URL)
.post('/collect/registration')
.reply((uri, requestBody) => {
t.is(requestBody.header.host, 'custom.host.com');
t.is(requestBody.header.origin, 'https://app.custom.com');
t.is(requestBody.header.userAgent, 'Custom User Agent');
t.is(requestBody.header.referer, 'https://app.custom.com/login');
t.is(requestBody.header.accept, 'application/custom+json');
t.is(requestBody.header.acceptLanguage, 'fr-FR,fr;q=0.9');
t.is(requestBody.header.connection, 'close');
return [201];
});
const datadomeClient = new index_1.DataDome('key');
const customMetadata = {
host: 'custom.host.com',
origin: 'https://app.custom.com',
userAgent: 'Custom User Agent',
referer: 'https://app.custom.com/login',
accept: 'application/custom+json',
acceptLanguage: 'fr-FR,fr;q=0.9',
connection: 'close',
};
const result = yield datadomeClient.collect(mockRequest(), new index_1.RegistrationEvent({
account: 'metadata-collect-test',
session: { id: 'customSessionId', createdAt: new Date() },
user: { id: 'customUserId' },
}), customMetadata);
t.is(result.status, index_1.ResponseStatus.OK);
t.pass();
}));
const http_1 = require("http");
function mockRequest() {
const req = Object.create(http_1.IncomingMessage.prototype);
req.socket = { localAddress: '::1' };
req.headers = {};
req.method = 'POST';
req.url = '';
return req;
}
function mockCompleteRequest() {
const req = Object.create(http_1.IncomingMessage.prototype);
req.socket = {
localAddress: '192.168.1.5',
localPort: 443,
};
req.headers = {
accept: 'application/json',
'accept-language': 'en-US,en;q=0.9',
host: 'datashield.co',
referer: 'datashield.co',
'x-real-ip': '192.168.1.10',
'x-forwarded-for': '192.168.1.11',
'accept-encoding': 'application/json',
'accept-charset': 'utf8',
from: 'datashield',
'user-agent': 'Mozilla',
connection: 'keep-alive',
origin: 'datashield.co',
cookie: 'datadome=blablablaClientId%1=blabla=;other="bla"',
'sec-ch-ua': 'ua',
'sec-ch-ua-arch': 'arch',
'sec-ch-ua-mobile': 'mobile',
'sec-ch-ua-model': 'model',
'sec-ch-ua-full-version-list': 'fullVersionList',
'sec-ch-device-memory': 'deviceMemory',
'sec-ch-ua-platform': 'platform',
};
req.method = 'POST';
req.url = '/login';
req.protocol = 'https';
return req;
}
//# sourceMappingURL=datadome.test.js.map
{"version":3,"file":"datadome.test.js","sourceRoot":"","sources":["../src/datadome.test.ts"],"names":[],"mappings":";;;AAAA,sDAAuB;AACvB,wDAAwB;AACxB,mCASiB;AAEjB,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAChD,MAAM,YAAY,GAAG,WAAW,aAAa,MAAM,CAAC;AAEpD,aAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;IACjB,cAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,cAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAGH,aAAI,CAAC,MAAM,CAAC,kDAAkD,EAAE,CAAO,CAAC,EAAE,EAAE;IACxE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE;QAC5B,UAAU,CACN,GAAG,EAAE,CACD,EAAE,CAAC,IAAI,EAAE;YACL,GAAG;YACH;gBACI,MAAM,EAAE,OAAO;gBACf,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,MAAM;aACnB;SACJ,CAAC,EACN,IAAI,CACP,CAAC;IACN,CAAC,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC9D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,KAAK,CAAE,MAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC5D,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,oDAAoD,EAAE,CAAO,CAAC,EAAE,EAAE;IAC1E,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,GAAG,EAAE;QACR,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE;YACJ;gBACI,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,4BAA4B;aACtC;SACJ;KACJ,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAClE,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,MAAM,CAAE,MAAwB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,EAAE,CAAE,MAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC,EAAE,CAAE,MAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;IAC9E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAA,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,0EAA0E,EAAE,CAAO,CAAC,EAAE,EAAE;IACzF,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,8EAA8E,EAAE,CAAO,CAAC,EAAE,EAAE;IAC7F,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,uDAAuD,EAAE,CAAO,CAAC,EAAE,EAAE;IAC7E,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAErC,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CACpE,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,EAAE,CAAE,MAAwB,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;AACvF,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,2DAA2D,EAAE,CAAO,CAAC,EAAE,EAAE;IACjF,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,EAAE,OAAO;QACf,EAAE,EAAE,aAAa;QACjB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;KACnE,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,mBAAmB,EAAE,EACrB,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC5D,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,qDAAqD,EAAE,CAAO,CAAC,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACvE,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE;KACd,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,mDAAmD,EAAE,CAAO,CAAC,EAAE,EAAE;IACzE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,wBAAwB,CAAC;SAC9B,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAEzC,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,2BAA2B;QACpC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,gDAAgD,EAAE,CAAO,CAAC,EAAE,EAAE;IACtE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC9D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,0CAA0C,EAAE,CAAO,CAAC,EAAE,EAAE;IAChE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAC3D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,uDAAuD,EAAE,CAAO,CAAC,EAAE,EAAE;IAC7E,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,oEAAoE,EAAE,CAAO,CAAC,EAAE,EAAE;IAC1F,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,0BAA0B,CAAC;SAChC,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,EAAE,OAAO;QACf,EAAE,EAAE,aAAa;QACjB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;KACnE,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,mBAAmB,EAAE,EACrB,IAAI,0BAAkB,CAAC;QACnB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,yDAAyD,EAAE,CAAO,CAAC,EAAE,EAAE;IAC/E,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,0BAAkB,CAAC;QACnB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAA,CAAC,CAAC;AAGH,aAAI,CAAC,MAAM,CAAC,qEAAqE,EAAE,CAAO,CAAC,EAAE,EAAE;IAC3F,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,2BAA2B,CAAC;SACjC,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,EAAE,OAAO;QACf,EAAE,EAAE,aAAa;QACjB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;KACnE,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,mBAAmB,EAAE,EACrB,IAAI,2BAAmB,CAAC;QACpB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,0DAA0D,EAAE,CAAO,CAAC,EAAE,EAAE;IAChF,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,2BAAmB,CAAC;QACpB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,oDAAoD,EAAE,CAAO,CAAC,EAAE,EAAE;IAC1E,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,2BAAmB,CAAC;QACpB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,6DAA6D,EAAE,CAAO,CAAC,EAAE,EAAE;IACnF,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,uBAAuB,CAAC;SAC7B,KAAK,CAAC,GAAG,EAAE;QACR,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE;YACJ;gBACI,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,4BAA4B;aACtC;SACJ;KACJ,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,MAAM,CAAE,MAAwB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,EAAE,CAAE,MAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC,EAAE,CAAE,MAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;AAClF,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,wDAAwD,EAAE,CAAO,CAAC,EAAE,EAAE;IAC9E,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,uBAAuB,CAAC;SAC7B,KAAK,CAAC,GAAG,EAAE;QACR,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE;YACJ;gBACI,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,4BAA4B;aACtC;SACJ;KACJ,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CACjC,WAAW,EAAE,EACb,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IAEF,OAAO,MAAM;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAER,CAAC,CAAC,IAAI,EAAE,CAAC;IACb,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,0CAA0C,EAAE,CAAO,CAAC,EAAE,EAAE;IAChE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,EAAE,EAAE,aAAa;QACjB,QAAQ,EAAE;YACN,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;SACjB;KACJ,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC3D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC,CAAC,MAAM,CAAE,MAAM,CAAC,OAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,iDAAiD,EAAE,CAAO,CAAC,EAAE,EAAE;IACvE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,wBAAwB,CAAC;SAC9B,KAAK,CAAC,GAAG,EAAE;QACR,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,CAAC,aAAa,CAAC;KAC3B,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,MAAM,CAAE,MAAM,CAAC,OAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,uCAAuC,EAAE,CAAO,CAAC,EAAE,EAAE;IAE7D,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAChE,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG;QACV,QAAQ,EAAE,yBAAyB;KACtC,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CACxD,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAA,CAAC,CAAC;AACH,aAAI,CAAC,MAAM,CAAC,sCAAsC,EAAE,CAAO,CAAC,EAAE,EAAE;IAE5D,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,mCAAmC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACvF,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG;QACV,QAAQ,EAAE,gCAAgC;KAC7C,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CACxD,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAA,CAAC,CAAC;AACH,aAAI,CAAC,MAAM,CAAC,uCAAuC,EAAE,CAAO,CAAC,EAAE,EAAE;IAE7D,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAChE,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG;QACV,QAAQ,EAAE,iCAAiC;KAC9C,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CACxD,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAO,CAAC,EAAE,EAAE;IAChD,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,wBAAwB,CAAC;SAC9B,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QACxB,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QACnF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC,CAAC,EAAE,CACC,WAAmC,CAAC,MAAM,CAAC,sBAAsB,EAClE,iBAAiB,CACpB,CAAC;QACF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAChF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC9E,CAAC,CAAC,EAAE,CACC,WAAmC,CAAC,MAAM,CAAC,QAAQ,EACpD,6BAA6B,CAChC,CAAC;QACF,OAAO;YACH,GAAG;YACH;gBACI,MAAM,EAAE,OAAO;gBACf,EAAE,EAAE,aAAa;gBACjB,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;aACnE;SACJ,CAAC;IACN,CAAC,CAAC,CAAC;IACP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,mBAAmB,EAAE,EACrB,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,iBAAiB;QAC1B,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnD,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACnD,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;KACzB,CAAC,CACL,CAAC;AACN,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,kDAAkD,EAAE,CAAO,CAAC,EAAE,EAAE;IACxE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QAExB,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QACrF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACvE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC9E,CAAC,CAAC,EAAE,CACC,WAAmC,CAAC,MAAM,CAAC,sBAAsB,EAClE,eAAe,CAClB,CAAC;QACF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACtE,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QACxF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QAClF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACpF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC3E,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;QACrF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC/E,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE1E,OAAO;YACH,GAAG;YACH;gBACI,MAAM,EAAE,OAAO;gBACf,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE;oBACN,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,eAAe;oBACxB,IAAI,EAAE,eAAe;iBACxB;aACJ;SACJ,CAAC;IACN,CAAC,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,aAAa;QAC3B,sBAAsB,EAAE,eAAe;QACvC,iBAAiB,EAAE,KAAK;QACxB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,UAAU;QACnB,eAAe,EAAE,oBAAoB;QACrC,cAAc,EAAE,eAAe;QAC/B,cAAc,EAAE,iBAAiB;QACjC,IAAI,EAAE,kBAAkB;QACxB,aAAa,EAAE,mBAAmB;QAClC,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,cAAc;KAC1B,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CACxC,WAAW,EAAE,EACb,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EACjE,cAAc,CACjB,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAEH,aAAI,CAAC,MAAM,CAAC,iDAAiD,EAAE,CAAO,CAAC,EAAE,EAAE;IACvE,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC;SAC3B,IAAI,CAAC,uBAAuB,CAAC;SAC7B,KAAK,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QAExB,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC1E,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QACnF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACjF,CAAC,CAAC,EAAE,CACC,WAAmC,CAAC,MAAM,CAAC,OAAO,EACnD,8BAA8B,CACjC,CAAC;QACF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QACpF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QACnF,CAAC,CAAC,EAAE,CAAE,WAAmC,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEtE,OAAO,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG;QACnB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,wBAAwB;QAChC,SAAS,EAAE,mBAAmB;QAC9B,OAAO,EAAE,8BAA8B;QACvC,MAAM,EAAE,yBAAyB;QACjC,cAAc,EAAE,gBAAgB;QAChC,UAAU,EAAE,OAAO;KACtB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CACvC,WAAW,EAAE,EACb,IAAI,yBAAiB,CAAC;QAClB,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;QACzD,IAAI,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;KAC/B,CAAC,EACF,cAAc,CACjB,CAAC;IAEF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAc,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,EAAE,CAAC;AACb,CAAC,CAAA,CAAC,CAAC;AAGH,+BAAuC;AAGvC,SAAS,WAAW;IAChB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAe,CAAC,SAAS,CAAoB,CAAC;IACxE,GAAG,CAAC,MAAM,GAAG,EAAE,YAAY,EAAE,KAAK,EAAS,CAAC;IAC5C,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACjB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;IACb,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAe,CAAC,SAAS,CAAoB,CAAC;IACxE,GAAG,CAAC,MAAM,GAAG;QACT,YAAY,EAAE,aAAa;QAC3B,SAAS,EAAE,GAAG;KACV,CAAC;IACT,GAAG,CAAC,OAAO,GAAG;QACV,MAAM,EAAE,kBAAkB;QAC1B,iBAAiB,EAAE,gBAAgB;QACnC,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,cAAc;QAC3B,iBAAiB,EAAE,cAAc;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,gBAAgB,EAAE,MAAM;QACxB,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,kDAAkD;QAC1D,WAAW,EAAE,IAAI;QACjB,gBAAgB,EAAE,MAAM;QACxB,kBAAkB,EAAE,QAAQ;QAC5B,iBAAiB,EAAE,OAAO;QAC1B,6BAA6B,EAAE,iBAAiB;QAChD,sBAAsB,EAAE,cAAc;QACtC,oBAAoB,EAAE,UAAU;KACnC,CAAC;IACF,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC;IAClB,GAAW,CAAC,QAAQ,GAAG,OAAO,CAAC;IAChC,OAAO,GAAG,CAAC;AACf,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./constants"), exports);
tslib_1.__exportStar(require("./datadome"), exports);
tslib_1.__exportStar(require("./model"), exports);
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,qDAA2B;AAC3B,kDAAwB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=address.js.map
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/model/address.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./request"), exports);
tslib_1.__exportStar(require("./response"), exports);
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/api/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataDomeRequest = void 0;
const constants_1 = require("../../constants");
class DataDomeModule {
constructor() {
this.requestTimeMicros = Date.now() * 1000;
this.name = constants_1.SDK_NAME;
this.version = constants_1.SDK_VERSION;
}
}
function tryDecode(input) {
try {
return decodeURIComponent(input);
}
catch (e) {
return input;
}
}
function parseCookieString(input) {
const cookies = new Map();
input.split(/; */).forEach((pair) => {
let eqIndex = pair.indexOf('=');
if (eqIndex > 0) {
const key = pair.substring(0, eqIndex).trim();
let value = pair.substring(++eqIndex, eqIndex + pair.length).trim();
if (value[0] === '"') {
value = value.slice(1, -1);
}
if (!cookies.has(key)) {
cookies.set(key, tryDecode(value));
}
}
});
return cookies;
}
class DataDomeHeaders {
constructor(request, requestMetadata) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
this.addr = (_b = (_a = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.addr) !== null && _a !== void 0 ? _a : request.socket.remoteAddress) !== null && _b !== void 0 ? _b : '127.0.0.1';
this.method = (_d = (_c = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.method) !== null && _c !== void 0 ? _c : request.method) !== null && _d !== void 0 ? _d : '';
this.port = (_e = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.port) !== null && _e !== void 0 ? _e : this.getPort(request);
this.protocol = (_f = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.protocol) !== null && _f !== void 0 ? _f : this.getProtocol(request);
this.contentType = this.truncateValue((_g = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.contentType) !== null && _g !== void 0 ? _g : request.headers['content-type'], 64);
this.accept = this.truncateValue((_h = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.accept) !== null && _h !== void 0 ? _h : request.headers['accept'], 512);
this.acceptLanguage = this.truncateValue((_j = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptLanguage) !== null && _j !== void 0 ? _j : request.headers['accept-language'], 256);
this.host = this.truncateValue((_k = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.host) !== null && _k !== void 0 ? _k : request.headers['host'], 512);
this.userAgent = this.truncateValue((_l = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.userAgent) !== null && _l !== void 0 ? _l : request.headers['user-agent'], 768);
this.referer = this.truncateValue((_m = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.referer) !== null && _m !== void 0 ? _m : request.headers['referer'], 1024);
this.xRealIp = this.truncateValue((_o = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xRealIp) !== null && _o !== void 0 ? _o : request.headers['x-real-ip'], 128);
this.xForwardedForIp = this.truncateValue((_p = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.xForwardedForIp) !== null && _p !== void 0 ? _p : request.headers['x-forwarded-for'], -512);
this.acceptEncoding = this.truncateValue((_q = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptEncoding) !== null && _q !== void 0 ? _q : request.headers['accept-encoding'], 128);
this.serverHostname = this.truncateValue((_r = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.serverHostname) !== null && _r !== void 0 ? _r : request.headers['host'], 512);
this.from = this.truncateValue((_s = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.from) !== null && _s !== void 0 ? _s : request.headers['from'], 128);
this.origin = this.truncateValue((_t = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.origin) !== null && _t !== void 0 ? _t : request.headers['origin'], 512);
this.connection = this.truncateValue((_u = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.connection) !== null && _u !== void 0 ? _u : request.headers['connection'], 128);
this.acceptCharset = this.truncateValue((_v = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.acceptCharset) !== null && _v !== void 0 ? _v : request.headers['accept-charset'], 128);
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA) {
this.secCHUA = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUA, 128);
}
else if (request.headers['sec-ch-ua']) {
this.secCHUA = this.truncateValue(request.headers['sec-ch-ua'], 128);
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile) {
this.secCHUAMobile = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAMobile, 8);
}
else if (request.headers['sec-ch-ua-mobile']) {
this.secCHUAMobile = this.truncateValue(request.headers['sec-ch-ua-mobile'], 8);
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform) {
this.secCHUAPlatform = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAPlatform, 32);
}
else if (request.headers['sec-ch-ua-platform']) {
this.secCHUAPlatform = this.truncateValue(request.headers['sec-ch-ua-platform'], 32);
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch) {
this.secCHUAArch = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAArch, 16);
}
else if (request.headers['sec-ch-ua-arch']) {
this.secCHUAArch = this.truncateValue(request.headers['sec-ch-ua-arch'], 16);
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList) {
this.secCHUAFullVersionList = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAFullVersionList, 256);
}
else if (request.headers['sec-ch-ua-full-version-list']) {
this.secCHUAFullVersionList = this.truncateValue(request.headers['sec-ch-ua-full-version-list'], 256);
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel) {
this.secCHUAModel = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHUAModel, 128);
}
else if (request.headers['sec-ch-ua-model']) {
this.secCHUAModel = this.truncateValue(request.headers['sec-ch-ua-model'], 128);
}
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory) {
this.secCHDeviceMemory = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.secCHDeviceMemory, 8);
}
else if (request.headers['sec-ch-device-memory']) {
this.secCHDeviceMemory = this.truncateValue(request.headers['sec-ch-device-memory'], 8);
}
this.request = (_y = (_w = requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.request) !== null && _w !== void 0 ? _w : (_x = request.url) === null || _x === void 0 ? void 0 : _x.slice(0, 2048)) !== null && _y !== void 0 ? _y : '/';
const sessionByHeaderClientId = request.headers['x-datadome-clientid'];
if (requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID) {
this.clientID = this.truncateValue(requestMetadata === null || requestMetadata === void 0 ? void 0 : requestMetadata.clientID, 128);
}
else if (sessionByHeaderClientId !== undefined && sessionByHeaderClientId != '') {
this.clientID = this.truncateValue(sessionByHeaderClientId, 128);
}
else {
this.clientID = this.truncateValue(this.getClientId(request), 128);
}
}
getProtocol(request) {
let protocol = 'http';
const forwardedProto = request.headers['X-Forwarded-Proto'];
if (forwardedProto !== '' &&
((forwardedProto === null || forwardedProto === void 0 ? void 0 : forwardedProto.toLowerCase()) === 'http' || (forwardedProto === null || forwardedProto === void 0 ? void 0 : forwardedProto.toLowerCase()) === 'https')) {
protocol = forwardedProto;
}
else if (this.port === 80) {
protocol = 'http';
}
else if (this.port === 443) {
protocol = 'https';
}
return protocol;
}
getPort(request) {
var _a;
const hostHeader = request.headers['host'];
const forwardedPort = request.headers['x-forwarded-port'];
if (forwardedPort) {
return parseInt(forwardedPort, 10);
}
else if (hostHeader && hostHeader.includes(':')) {
return parseInt(hostHeader.split(':')[1], 10);
}
else if (request.socket.localPort) {
return request.socket.localPort;
}
return (_a = request.socket.remotePort) !== null && _a !== void 0 ? _a : 0;
}
truncateValue(value, maxLength) {
if (value === undefined) {
return '';
}
if (maxLength == null) {
return value;
}
return maxLength < 0 ? value.slice(maxLength) : value.slice(0, maxLength);
}
getClientId(request) {
const cookies = request.headers['cookie'];
let clientId = '';
if (cookies !== undefined) {
const parsedCookies = parseCookieString(cookies);
for (const [key, value] of parsedCookies.entries()) {
if (value !== undefined && key === 'datadome') {
clientId = value;
}
}
}
return clientId;
}
}
class DataDomeRequest {
constructor(request, requestMetadata) {
this.module = new DataDomeModule();
this.header = new DataDomeHeaders(request, requestMetadata);
}
}
exports.DataDomeRequest = DataDomeRequest;
//# sourceMappingURL=request.js.map
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/model/api/request.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseStatus = exports.ResponseAction = void 0;
var ResponseAction;
(function (ResponseAction) {
ResponseAction["ALLOW"] = "allow";
ResponseAction["DENY"] = "deny";
})(ResponseAction || (exports.ResponseAction = ResponseAction = {}));
var ResponseStatus;
(function (ResponseStatus) {
ResponseStatus["OK"] = "ok";
ResponseStatus["FAILURE"] = "failure";
ResponseStatus["TIMEOUT"] = "timeout";
})(ResponseStatus || (exports.ResponseStatus = ResponseStatus = {}));
//# sourceMappingURL=response.js.map
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/model/api/response.ts"],"names":[],"mappings":";;;AASA,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAUD,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=authentication.js.map
{"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/model/authentication.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AccountUpdateEvent = void 0;
const event_1 = require("./event");
class AccountUpdateEvent extends event_1.DataDomeEvent {
constructor({ account, authentication, session, user }) {
super({
action: event_1.ActionType.ACCOUNT_UPDATE,
account,
});
this.authentication = authentication;
this.session = session;
this.user = user;
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.user = this.user;
return requestData;
}
}
exports.AccountUpdateEvent = AccountUpdateEvent;
//# sourceMappingURL=accountUpdate.js.map
{"version":3,"file":"accountUpdate.js","sourceRoot":"","sources":["../../../src/model/events/accountUpdate.ts"],"names":[],"mappings":";;;AAIA,mCAAoD;AAepD,MAAa,kBAAmB,SAAQ,qBAAa;IAIjD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA4B;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,cAAc;YACjC,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AArBD,gDAqBC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataDomeEvent = exports.ActionType = void 0;
var ActionType;
(function (ActionType) {
ActionType["LOGIN"] = "login";
ActionType["REGISTER"] = "registration";
ActionType["PASSWORD_UPDATE"] = "password/update";
ActionType["ACCOUNT_UPDATE"] = "account/update";
ActionType["PAYMENT"] = "payment";
})(ActionType || (exports.ActionType = ActionType = {}));
class DataDomeEvent {
constructor({ action, account }) {
this.action = action;
this.account = account;
}
mergeWith(requestData) {
requestData.event = this.action;
requestData.account = this.account;
return requestData;
}
}
exports.DataDomeEvent = DataDomeEvent;
//# sourceMappingURL=event.js.map
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/model/events/event.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,uCAAyB,CAAA;IACzB,iDAAmC,CAAA;IACnC,+CAAiC,CAAA;IACjC,iCAAmB,CAAA;AACvB,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AASD,MAAa,aAAa;IAItB,YAAY,EAAE,MAAM,EAAE,OAAO,EAA2C;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,WAA4B;QAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAdD,sCAcC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./accountUpdate"), exports);
tslib_1.__exportStar(require("./event"), exports);
tslib_1.__exportStar(require("./login"), exports);
tslib_1.__exportStar(require("./passwordUpdate"), exports);
tslib_1.__exportStar(require("./registration"), exports);
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/events/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,kDAAwB;AACxB,kDAAwB;AACxB,2DAAiC;AACjC,yDAA+B"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoginEvent = void 0;
const event_1 = require("./event");
class LoginEvent extends event_1.DataDomeEvent {
constructor({ account, status, user, session, authentication }) {
super({
action: event_1.ActionType.LOGIN,
account,
});
this.status = status;
this.session = session;
this.user = user;
this.authentication = authentication;
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.status = this.status;
requestData.user = this.user;
return requestData;
}
}
exports.LoginEvent = LoginEvent;
//# sourceMappingURL=login.js.map
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/model/events/login.ts"],"names":[],"mappings":";;;AAIA,mCAAoD;AAqBpD,MAAa,UAAW,SAAQ,qBAAa;IAKzC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAoB;QAC5E,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,KAAK;YACxB,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAxBD,gCAwBC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PasswordUpdateEvent = void 0;
const event_1 = require("./event");
class PasswordUpdateEvent extends event_1.DataDomeEvent {
constructor({ account, reason, session, status, user }) {
super({
action: event_1.ActionType.PASSWORD_UPDATE,
account,
});
this.reason = reason;
this.session = session;
this.status = status;
this.user = user;
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.reason = this.reason;
requestData.session = this.session;
requestData.status = this.status;
requestData.user = this.user;
return requestData;
}
}
exports.PasswordUpdateEvent = PasswordUpdateEvent;
//# sourceMappingURL=passwordUpdate.js.map
{"version":3,"file":"passwordUpdate.js","sourceRoot":"","sources":["../../../src/model/events/passwordUpdate.ts"],"names":[],"mappings":";;;AAGA,mCAAoD;AA0BpD,MAAa,mBAAoB,SAAQ,qBAAa;IAKlD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAA6B;QAC7E,KAAK,CAAC;YACF,MAAM,EAAE,kBAAU,CAAC,eAAe;YAClC,OAAO;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAxBD,kDAwBC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RegistrationEvent = void 0;
const event_1 = require("./event");
class RegistrationEvent extends event_1.DataDomeEvent {
constructor({ account, authentication, session, user }) {
super({ action: event_1.ActionType.REGISTER, account });
this.authentication = authentication;
this.session = session;
this.user = user;
}
mergeWith(requestData) {
super.mergeWith(requestData);
requestData.authentication = this.authentication;
requestData.session = this.session;
requestData.user = this.user;
return requestData;
}
}
exports.RegistrationEvent = RegistrationEvent;
//# sourceMappingURL=registration.js.map
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../../src/model/events/registration.ts"],"names":[],"mappings":";;;AAIA,mCAAoD;AAepD,MAAa,iBAAkB,SAAQ,qBAAa;IAIhD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAA2B;QAC3E,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEQ,SAAS,CAAC,WAA4B;QAC3C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AAlBD,8CAkBC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./address"), exports);
tslib_1.__exportStar(require("./authentication"), exports);
tslib_1.__exportStar(require("./api"), exports);
tslib_1.__exportStar(require("./user"), exports);
tslib_1.__exportStar(require("./session"), exports);
tslib_1.__exportStar(require("./events"), exports);
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,2DAAiC;AACjC,gDAAsB;AACtB,iDAAuB;AACvB,oDAA0B;AAC1B,mDAAyB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=session.js.map
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/model/session.ts"],"names":[],"mappings":""}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=user.js.map
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/model/user.ts"],"names":[],"mappings":""}
import tseslint from 'typescript-eslint';
import globals from 'globals';
const ignores = ['**/dist-*/**', '**/*.test.ts', '**/*.js'];
export default tseslint.config(
...tseslint.configs.recommended.map((config) => ({
...config,
ignores,
})),
...tseslint.configs.strict.map((config) => ({
...config,
ignores,
})),
...tseslint.configs.stylistic.map((config) => ({
...config,
ignores,
})),
{
languageOptions: {
sourceType: 'module',
ecmaVersion: 2022,
globals: globals.node,
},
rules: {
'no-constant-binary-expression': 'error',
},
}
);

Sorry, the diff of this file is too big to display

{
"name": "fraud-protection-node-sample-typescript",
"version": "1.0.0",
"description": "",
"main": "./dist/express.js",
"type": "commonjs",
"scripts": {
"app": "tsc && node ./dist/express.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@datadome/fraud-sdk-node": "file:../",
"express": "^4.18.2",
"multer": "^1.4.5-lts.2"
},
"devDependencies": {
"@types/express": "^5.0.0",
"@types/multer": "^1.4.12",
"eslint": "^9.22.0",
"typescript": "^5.8.2"
}
}
[
{
"login" : "auth_allow@datadome.co",
"name" : "bob",
"password" : "bob",
"profession" : "teacher",
"email" : "bob@mail.com",
"id": 1
},
{
"login" : "auth_block@datadome.co",
"name" : "steve",
"password" : "password",
"profession" : "librarian",
"email" : "steve@mail.com",
"id": 2
}
]
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "dist-cjs",
"importHelpers": true,
"module": "commonjs",
"noEmitHelpers": true,
"strict": true,
"target": "ES6"
}
}

Sorry, the diff of this file is not supported yet

{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "dist-es",
"importHelpers": true,
"module": "ES2022",
"noEmitHelpers": true,
"target": "ES6",
"strict": true
}
}

Sorry, the diff of this file is not supported yet

{
"compilerOptions": {
"baseUrl": ".",
"outDir": "dist-test",
"rootDir": "src"
},
"extends": "./tsconfig.cjs.json",
"include": ["src/"],
"exclude": []
}

Sorry, the diff of this file is not supported yet

{
"extends": "./tsconfig.json",
"compilerOptions": {
"declaration": true,
"declarationDir": "dist-types",
"declarationMap": true,
"emitDeclarationOnly": true,
"removeComments": false,
"strict": true
}
}

Sorry, the diff of this file is not supported yet