perimeterx-js-core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/lib/action/utils.js +1 -1
  2. package/lib/activities/HttpActivityClient.d.ts +5 -5
  3. package/lib/activities/HttpActivityClient.js +28 -39
  4. package/lib/activities/HttpBatchedActivityClient.d.ts +2 -2
  5. package/lib/activities/HttpBatchedActivityClient.js +19 -32
  6. package/lib/activities/model/AsyncActivity.d.ts +14 -0
  7. package/lib/activities/model/{ActivityDetails.d.ts → AsyncActivityDetails.d.ts} +6 -23
  8. package/lib/activities/model/CommonActivityDetails.d.ts +40 -0
  9. package/lib/activities/model/CommonActivityDetails.js +1 -0
  10. package/lib/activities/model/HeaderEntry.d.ts +4 -0
  11. package/lib/activities/model/HeaderEntry.js +1 -0
  12. package/lib/activities/model/index.d.ts +4 -2
  13. package/lib/activities/model/index.js +4 -2
  14. package/lib/activities/utils.d.ts +6071 -9
  15. package/lib/activities/utils.js +111 -35
  16. package/lib/additional_activity_handler/AdditionalActivityHandler.d.ts +1 -1
  17. package/lib/additional_activity_handler/AdditionalActivityHandlerUtils.js +4 -12
  18. package/lib/config/ConfigurationParams.d.ts +2 -1
  19. package/lib/config/DefaultConfigurations.js +1 -0
  20. package/lib/config/IConfiguration.d.ts +5 -1
  21. package/lib/config/StaticConfigurationBase.d.ts +2 -1
  22. package/lib/config/StaticConfigurationBase.js +6 -1
  23. package/lib/context/DefaultContext.d.ts +1 -1
  24. package/lib/context/DefaultContext.js +40 -8
  25. package/lib/context/interfaces/RiskApiData.d.ts +4 -0
  26. package/lib/cors/DefaultCors.js +21 -31
  27. package/lib/custom_parameters/CustomParametersUtils.js +3 -12
  28. package/lib/enforcer/EnforcerBase.d.ts +2 -1
  29. package/lib/enforcer/EnforcerBase.js +56 -57
  30. package/lib/enforcer/options/EnforcerBaseOptions.d.ts +2 -0
  31. package/lib/graphql/DefaultGraphQLParser.js +30 -39
  32. package/lib/http/index.d.ts +0 -1
  33. package/lib/http/index.js +0 -1
  34. package/lib/http/interfaces/IBody.d.ts +3 -2
  35. package/lib/http/interfaces/IIncomingRequest.d.ts +4 -0
  36. package/lib/http/interfaces/IURL.d.ts +3 -0
  37. package/lib/http/interfaces/IURLSearchParams.d.ts +9 -0
  38. package/lib/http/interfaces/IURLSearchParams.js +1 -0
  39. package/lib/http/interfaces/index.d.ts +1 -0
  40. package/lib/http/interfaces/index.js +1 -0
  41. package/lib/http/{impl → utils}/FormDataImpl.js +4 -4
  42. package/lib/http/{impl → utils}/MinimalResponseImpl.js +3 -0
  43. package/lib/http/utils/MinimalResponseUtils.js +5 -7
  44. package/lib/http/utils/MultipartFormDataUtils.js +4 -5
  45. package/lib/http/{impl → utils}/OutgoingRequestImpl.d.ts +1 -1
  46. package/lib/http/{impl → utils}/OutgoingRequestImpl.js +5 -1
  47. package/lib/http/utils/URLUtils.d.ts +7 -0
  48. package/lib/http/utils/URLUtils.js +62 -0
  49. package/lib/http/utils/UrlImpl.d.ts +18 -0
  50. package/lib/http/utils/UrlImpl.js +54 -0
  51. package/lib/http/utils/UrlSearchParamsImpl.d.ts +19 -0
  52. package/lib/http/utils/UrlSearchParamsImpl.js +116 -0
  53. package/lib/http/utils/index.d.ts +6 -0
  54. package/lib/http/utils/index.js +6 -0
  55. package/lib/{utils → impl}/base64/AtobBase64Utils.d.ts +1 -1
  56. package/lib/{utils → impl}/base64/BufferBase64Utils.d.ts +1 -1
  57. package/lib/{utils → impl}/base64/BufferBase64Utils.js +1 -1
  58. package/lib/{utils → impl}/base64/JSBase64Base64Utils.d.ts +1 -1
  59. package/lib/{utils → impl}/cipher/CryptoCipherUtils.d.ts +1 -1
  60. package/lib/impl/cipher/CryptoCipherUtils.js +18 -0
  61. package/lib/{utils → impl}/cipher/SubtleCryptoCipherUtils.d.ts +1 -2
  62. package/lib/impl/cipher/SubtleCryptoCipherUtils.js +38 -0
  63. package/lib/{utils → impl}/hash/CryptoHashUtils.d.ts +1 -2
  64. package/lib/impl/hash/CryptoHashUtils.js +10 -0
  65. package/lib/{utils → impl}/hash/CryptoJSHashUtils.d.ts +1 -2
  66. package/lib/{utils → impl}/hash/CryptoJSHashUtils.js +1 -1
  67. package/lib/{utils → impl}/hash/SubtleCryptoHashUtils.d.ts +1 -2
  68. package/lib/impl/hash/SubtleCryptoHashUtils.js +21 -0
  69. package/lib/{utils → impl}/hmac/CryptoHmacUtils.d.ts +1 -2
  70. package/lib/{utils → impl}/hmac/CryptoHmacUtils.js +2 -1
  71. package/lib/{utils → impl}/hmac/CryptoJSHmacUtils.d.ts +1 -2
  72. package/lib/{utils → impl}/hmac/CryptoJSHmacUtils.js +1 -1
  73. package/lib/{http/impl → impl/http}/phin/PhinHttpClient.d.ts +1 -1
  74. package/lib/impl/http/phin/PhinHttpClient.js +31 -0
  75. package/lib/{http/impl → impl/http}/phin/PhinIncomingResponse.d.ts +2 -2
  76. package/lib/impl/http/phin/PhinIncomingResponse.js +23 -0
  77. package/lib/{utils → impl}/ip_range_checker/DefaultIpRangeChecker.d.ts +1 -1
  78. package/lib/{utils → impl}/request_id_generator/UuidRequestIdGenerator.d.ts +1 -1
  79. package/lib/{utils → impl}/url_parser/DefaultUrlParser.d.ts +4 -4
  80. package/lib/{utils → impl}/url_parser/DefaultUrlParser.js +9 -2
  81. package/lib/logger/HttpLogServiceClient.d.ts +17 -0
  82. package/lib/logger/HttpLogServiceClient.js +52 -0
  83. package/lib/logger/ILogServiceClient.d.ts +6 -0
  84. package/lib/logger/ILogServiceClient.js +1 -0
  85. package/lib/logger/ILogger.d.ts +6 -0
  86. package/lib/logger/LoggerBase.d.ts +6 -2
  87. package/lib/logger/LoggerBase.js +14 -1
  88. package/lib/logger/constants.d.ts +2 -0
  89. package/lib/logger/constants.js +2 -0
  90. package/lib/logger/index.d.ts +4 -0
  91. package/lib/logger/index.js +3 -0
  92. package/lib/logger/model/EnrichedLogRecord.d.ts +3 -0
  93. package/lib/logger/model/EnrichedLogRecord.js +1 -0
  94. package/lib/logger/model/LogMetadata.d.ts +9 -0
  95. package/lib/logger/model/LogMetadata.js +1 -0
  96. package/lib/logger/model/LogRecord.d.ts +6 -0
  97. package/lib/logger/model/LogRecord.js +1 -0
  98. package/lib/logger/model/index.d.ts +3 -0
  99. package/lib/logger/model/index.js +3 -0
  100. package/lib/phase/flow/EndEnforcerFlow.d.ts +6 -0
  101. package/lib/phase/flow/EndEnforcerFlow.js +10 -0
  102. package/lib/phase/flow/index.d.ts +1 -0
  103. package/lib/phase/flow/index.js +1 -0
  104. package/lib/phase/impl/AdditionalActivityHandlerPhase.js +4 -15
  105. package/lib/phase/impl/CompositePhase.js +9 -19
  106. package/lib/phase/impl/CreateBlockResponsePhase.js +24 -35
  107. package/lib/phase/impl/DecideActionPhase.js +11 -21
  108. package/lib/phase/impl/EnrichContextFromRequestPhase.js +28 -45
  109. package/lib/phase/impl/EnrichContextFromResponsePhase.js +12 -23
  110. package/lib/phase/impl/FilterPhase.js +3 -13
  111. package/lib/phase/impl/FirstPartyPhase.js +21 -32
  112. package/lib/phase/impl/ModifyIncomingRequestPhase.js +4 -14
  113. package/lib/phase/impl/ModifyOutgoingResponsePhase.js +7 -18
  114. package/lib/phase/impl/ParseTokenPhase.js +5 -15
  115. package/lib/phase/impl/PreflightPhase.js +12 -20
  116. package/lib/phase/impl/RiskApiPhase.js +24 -36
  117. package/lib/phase/impl/SendAsyncActivitiesOnRequestPhase.js +8 -20
  118. package/lib/phase/impl/SendAsyncActivitiesOnResponsePhase.js +4 -14
  119. package/lib/phase/impl/SendLogsPhase.d.ts +11 -0
  120. package/lib/phase/impl/SendLogsPhase.js +16 -0
  121. package/lib/phase/impl/TelemetryPhase.js +9 -21
  122. package/lib/phase/impl/index.d.ts +1 -0
  123. package/lib/phase/impl/index.js +1 -0
  124. package/lib/products/account_defender/AccountDefender.js +16 -35
  125. package/lib/products/bot_defender/BotDefender.js +51 -72
  126. package/lib/products/bot_defender/BotDefenderActionData.js +2 -0
  127. package/lib/products/bot_defender/block/DefaultBotDefenderBlocker.d.ts +4 -4
  128. package/lib/products/bot_defender/block/DefaultBotDefenderBlocker.js +5 -3
  129. package/lib/products/bot_defender/block/captcha/CaptchaBlocker.d.ts +7 -4
  130. package/lib/products/bot_defender/block/captcha/CaptchaBlocker.js +12 -8
  131. package/lib/products/bot_defender/block/captcha/HtmlCaptchaBlocker.d.ts +1 -1
  132. package/lib/products/bot_defender/block/captcha/HtmlCaptchaBlocker.js +1 -0
  133. package/lib/products/bot_defender/block/captcha/JsonCaptchaBlocker.d.ts +1 -1
  134. package/lib/products/bot_defender/block/captcha/JsonCaptchaBlocker.js +5 -4
  135. package/lib/products/bot_defender/block/captcha/MobileCaptchaBlocker.d.ts +2 -2
  136. package/lib/products/bot_defender/block/captcha/MobileCaptchaBlocker.js +2 -0
  137. package/lib/products/bot_defender/block/utils.js +1 -2
  138. package/lib/products/bot_defender/filter/DefaultBotDefenderFilter.js +7 -1
  139. package/lib/products/bot_defender/first_party/DefaultBotDefenderFirstParty.js +51 -68
  140. package/lib/products/bot_defender/first_party/constants.d.ts +0 -4
  141. package/lib/products/bot_defender/first_party/constants.js +0 -7
  142. package/lib/products/credential_intelligence/CredentialIntelligence.js +42 -63
  143. package/lib/products/credential_intelligence/endpoint/CredentialEndpoint.js +15 -23
  144. package/lib/products/credential_intelligence/endpoint/CredentialEndpointManager.js +9 -22
  145. package/lib/products/credential_intelligence/endpoint/extractor/BodyCredentialExtractor.d.ts +5 -5
  146. package/lib/products/credential_intelligence/endpoint/extractor/BodyCredentialExtractor.js +22 -33
  147. package/lib/products/credential_intelligence/endpoint/extractor/CustomCredentialExtractor.js +8 -18
  148. package/lib/products/credential_intelligence/endpoint/extractor/HeaderCredentialExtractor.js +2 -0
  149. package/lib/products/credential_intelligence/endpoint/extractor/QueryParamCredentialExtractor.d.ts +1 -1
  150. package/lib/products/credential_intelligence/endpoint/extractor/QueryParamCredentialExtractor.js +11 -16
  151. package/lib/products/credential_intelligence/endpoint/hash_protocol/MultistepHashProtocol.js +11 -21
  152. package/lib/products/credential_intelligence/endpoint/hash_protocol/SingleStepAndMultistepHashProtocol.js +9 -18
  153. package/lib/products/credential_intelligence/endpoint/hash_protocol/SingleStepHashProtocol.js +13 -25
  154. package/lib/products/credential_intelligence/endpoint/login_successful/BodyLoginSuccessfulParser.js +4 -14
  155. package/lib/products/credential_intelligence/endpoint/login_successful/CustomLoginSuccessfulParser.js +10 -20
  156. package/lib/products/credential_intelligence/endpoint/login_successful/HeaderLoginSuccessfulParser.js +7 -16
  157. package/lib/products/credential_intelligence/endpoint/login_successful/LoginSuccessfulParserFactory.js +7 -6
  158. package/lib/products/credential_intelligence/endpoint/login_successful/StatusLoginSuccessfulParser.js +3 -13
  159. package/lib/products/credential_intelligence/endpoint/matcher/ExactPathEndpointMatcher.js +2 -0
  160. package/lib/products/credential_intelligence/endpoint/matcher/RegexPathEndpointMatcher.js +2 -0
  161. package/lib/pxde/DefaultDataEnrichment.js +47 -61
  162. package/lib/pxhd/PXHDUtils.js +2 -2
  163. package/lib/risk_api/client/PostRiskApiClientBase.d.ts +7 -12
  164. package/lib/risk_api/client/PostRiskApiClientBase.js +70 -171
  165. package/lib/risk_api/model/RiskActivity.d.ts +5 -45
  166. package/lib/risk_api/risk_response/IRiskResponse.d.ts +1 -0
  167. package/lib/risk_api/risk_response/RiskResponseBase.d.ts +1 -0
  168. package/lib/risk_api/risk_response/RiskResponseBase.js +20 -33
  169. package/lib/risk_api/risk_response/v2/DefaultRiskResponseV2.d.ts +1 -1
  170. package/lib/risk_api/risk_response/v2/DefaultRiskResponseV2.js +3 -5
  171. package/lib/risk_api/risk_response/v2/RiskResponseV2Payload.d.ts +1 -0
  172. package/lib/risk_api/risk_response/v3/DefaultRiskResponseV3.js +2 -4
  173. package/lib/risk_api/risk_response/v3/RiskResponseV3Payload.d.ts +1 -0
  174. package/lib/risk_token/parser/TokenParserBase.js +25 -36
  175. package/lib/risk_token/token/TokenBase.js +24 -29
  176. package/lib/risk_token/token/v2/DefaultTokenV2.js +34 -49
  177. package/lib/risk_token/token/v3/DefaultTokenV3.js +63 -77
  178. package/lib/telemetry/DefaultTelemetry.js +46 -58
  179. package/lib/utils/base64/index.d.ts +0 -3
  180. package/lib/utils/base64/index.js +0 -3
  181. package/lib/utils/cipher/index.d.ts +1 -3
  182. package/lib/utils/cipher/index.js +1 -2
  183. package/lib/utils/constants.d.ts +2 -1
  184. package/lib/utils/constants.js +2 -1
  185. package/lib/utils/hash/index.d.ts +0 -3
  186. package/lib/utils/hash/index.js +0 -3
  187. package/lib/utils/hmac/index.d.ts +0 -2
  188. package/lib/utils/hmac/index.js +0 -2
  189. package/lib/utils/ip_range_checker/index.d.ts +1 -2
  190. package/lib/utils/ip_range_checker/index.js +1 -1
  191. package/lib/utils/request_id_generator/index.d.ts +1 -2
  192. package/lib/utils/request_id_generator/index.js +1 -1
  193. package/lib/utils/url_parser/index.d.ts +0 -1
  194. package/lib/utils/url_parser/index.js +0 -1
  195. package/lib/utils/utils.d.ts +1 -7
  196. package/lib/utils/utils.js +3 -25
  197. package/package.json +12 -6
  198. package/lib/activities/model/Activity.d.ts +0 -13
  199. package/lib/http/impl/index.d.ts +0 -4
  200. package/lib/http/impl/index.js +0 -4
  201. package/lib/http/impl/phin/PhinHttpClient.js +0 -41
  202. package/lib/http/impl/phin/PhinIncomingResponse.js +0 -38
  203. package/lib/utils/cipher/CryptoCipherUtils.js +0 -28
  204. package/lib/utils/cipher/SubtleCryptoCipherUtils.js +0 -47
  205. package/lib/utils/hash/CryptoHashUtils.js +0 -20
  206. package/lib/utils/hash/SubtleCryptoHashUtils.js +0 -31
  207. /package/lib/activities/model/{Activity.js → AsyncActivity.js} +0 -0
  208. /package/lib/activities/model/{ActivityDetails.js → AsyncActivityDetails.js} +0 -0
  209. /package/lib/http/{impl → utils}/FormDataImpl.d.ts +0 -0
  210. /package/lib/http/{impl → utils}/MinimalResponseImpl.d.ts +0 -0
  211. /package/lib/{utils → impl}/base64/AtobBase64Utils.js +0 -0
  212. /package/lib/{utils → impl}/base64/JSBase64Base64Utils.js +0 -0
  213. /package/lib/{http/impl → impl/http}/phin/index.d.ts +0 -0
  214. /package/lib/{http/impl → impl/http}/phin/index.js +0 -0
  215. /package/lib/{utils → impl}/ip_range_checker/DefaultIpRangeChecker.js +0 -0
  216. /package/lib/{utils → impl}/request_id_generator/UuidRequestIdGenerator.js +0 -0
@@ -0,0 +1,2 @@
1
+ export const X_PX_ENFORCER_LOG_HEADER = 'x-px-enforcer-log';
2
+ export const EXTERNAL_LOGGER_SERVICE_PATH = '/enforcer-logs/';
@@ -1,4 +1,8 @@
1
1
  export { ILogger } from './ILogger';
2
+ export { ILogServiceClient } from './ILogServiceClient';
2
3
  export { LoggerBase } from './LoggerBase';
4
+ export { HttpLogServiceClient } from './HttpLogServiceClient';
3
5
  export { DefaultLogger } from './DefaultLogger';
4
6
  export { LoggerSeverity } from './LoggerSeverity';
7
+ export * from './constants';
8
+ export * from './model';
@@ -1,3 +1,6 @@
1
1
  export { LoggerBase } from './LoggerBase';
2
+ export { HttpLogServiceClient } from './HttpLogServiceClient';
2
3
  export { DefaultLogger } from './DefaultLogger';
3
4
  export { LoggerSeverity } from './LoggerSeverity';
5
+ export * from './constants';
6
+ export * from './model';
@@ -0,0 +1,3 @@
1
+ import { LogMetadata } from './LogMetadata';
2
+ import { LogRecord } from './LogRecord';
3
+ export type EnrichedLogRecord = LogMetadata & LogRecord;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ export type LogMetadata = {
2
+ container: string;
3
+ appID: string;
4
+ method: string;
5
+ host: string;
6
+ url: string;
7
+ path: string;
8
+ requestId: string;
9
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { LoggerSeverity } from '../LoggerSeverity';
2
+ export type LogRecord = {
3
+ message: string;
4
+ severity: LoggerSeverity;
5
+ messageTimestamp: number;
6
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './LogMetadata';
2
+ export * from './LogRecord';
3
+ export * from './EnrichedLogRecord';
@@ -0,0 +1,3 @@
1
+ export * from './LogMetadata';
2
+ export * from './LogRecord';
3
+ export * from './EnrichedLogRecord';
@@ -0,0 +1,6 @@
1
+ import { IConfiguration } from '../../config';
2
+ import { CompositePhase } from '../impl';
3
+ import { EnforcerBaseOptions } from '../../enforcer';
4
+ export declare class EndEnforcerFlow<Req, Res> extends CompositePhase<Req, Res> {
5
+ constructor(config: IConfiguration<Req, Res>, { logServiceClient }: Required<EnforcerBaseOptions<Req, Res>>);
6
+ }
@@ -0,0 +1,10 @@
1
+ import { CompositePhase, SendLogsPhase } from '../impl';
2
+ export class EndEnforcerFlow extends CompositePhase {
3
+ constructor(config, { logServiceClient }) {
4
+ const phasesArray = [];
5
+ if (logServiceClient) {
6
+ phasesArray.push(new SendLogsPhase(config, logServiceClient));
7
+ }
8
+ super(phasesArray);
9
+ }
10
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './FilterFlow';
2
2
  export * from './EnforceFlow';
3
3
  export * from './PostEnforceFlow';
4
+ export * from './EndEnforcerFlow';
@@ -1,3 +1,4 @@
1
1
  export * from './FilterFlow';
2
2
  export * from './EnforceFlow';
3
3
  export * from './PostEnforceFlow';
4
+ export * from './EndEnforcerFlow';
@@ -1,22 +1,11 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { AdditionalActivityHandlerUtils } from '../../additional_activity_handler';
11
2
  export class AdditionalActivityHandlerPhase {
3
+ config;
12
4
  constructor(config) {
13
5
  this.config = config;
14
6
  }
15
- execute(context) {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- this.config.logger.debug('calling additional activity handler');
18
- yield AdditionalActivityHandlerUtils.invokeAdditionalActivityHandler(this.config, context);
19
- return { done: false };
20
- });
7
+ async execute(context) {
8
+ await AdditionalActivityHandlerUtils.invokeAdditionalActivityHandler(this.config, context);
9
+ return { done: false };
21
10
  }
22
11
  }
@@ -1,26 +1,16 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  export class CompositePhase {
2
+ phases;
11
3
  constructor(phases) {
12
4
  this.phases = phases;
13
5
  }
14
- execute(context) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- let result;
17
- for (const phase of this.phases) {
18
- result = yield phase.execute(context);
19
- if (result.done) {
20
- break;
21
- }
6
+ async execute(context) {
7
+ let result;
8
+ for (const phase of this.phases) {
9
+ result = await phase.execute(context);
10
+ if (result.done) {
11
+ break;
22
12
  }
23
- return result;
24
- });
13
+ }
14
+ return result;
25
15
  }
26
16
  }
@@ -1,42 +1,34 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { MinimalResponseUtils } from '../../http';
11
2
  import { PXHDSource, PXHDUtils } from '../../pxhd';
12
3
  import { Action } from '../../action';
13
4
  import { PRODUCT_PRIORITY_ORDER } from '../../products';
14
5
  export class CreateBlockResponsePhase {
6
+ config;
7
+ blockers;
8
+ cors;
15
9
  constructor(config, blockers, cors) {
16
10
  this.config = config;
17
11
  this.blockers = blockers;
18
12
  this.cors = cors;
19
13
  }
20
- execute(context) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- if (context.action !== Action.BLOCK) {
23
- return { done: false };
24
- }
25
- this.config.logger.debug('create block response phase');
26
- let response = this.createBlockResponse(context);
27
- if (!response) {
28
- return { done: false };
29
- }
30
- response = yield this.addHeadersToResponse(response, context);
31
- return { done: true, response };
32
- });
14
+ async execute(context) {
15
+ if (context.action !== Action.BLOCK) {
16
+ return { done: false };
17
+ }
18
+ this.config.logger.debug('create block response phase');
19
+ let response = this.createBlockResponse(context);
20
+ if (!response) {
21
+ return { done: false };
22
+ }
23
+ response = await this.addHeadersToResponse(response, context);
24
+ return { done: true, response };
33
25
  }
34
26
  createBlockResponse(context) {
35
27
  let response = null;
36
28
  for (const name of PRODUCT_PRIORITY_ORDER) {
37
29
  if (context.reasons[name]) {
38
30
  const blocker = this.blockers[name];
39
- if (blocker === null || blocker === void 0 ? void 0 : blocker.shouldBlock(context)) {
31
+ if (blocker?.shouldBlock(context)) {
40
32
  this.config.logger.debug(`returning ${name} block response`);
41
33
  response = blocker.createBlockResponse(context);
42
34
  break;
@@ -45,17 +37,14 @@ export class CreateBlockResponsePhase {
45
37
  }
46
38
  return response;
47
39
  }
48
- addHeadersToResponse(response, context) {
49
- var _a, _b;
50
- return __awaiter(this, void 0, void 0, function* () {
51
- if (!context.isMobile && ((_a = context.pxhd) === null || _a === void 0 ? void 0 : _a.source) === PXHDSource.RISK) {
52
- response = PXHDUtils.addPxhdToMinimalResponse(context, response);
53
- }
54
- if (this.config.corsSupportEnabled && ((_b = this.cors) === null || _b === void 0 ? void 0 : _b.isCorsRequest(context))) {
55
- const corsHeaders = yield this.cors.getCorsBlockHeaders(context);
56
- response = MinimalResponseUtils.appendHeaders(response, corsHeaders);
57
- }
58
- return response;
59
- });
40
+ async addHeadersToResponse(response, context) {
41
+ if (!context.isMobile && context.pxhd?.source === PXHDSource.RISK) {
42
+ response = PXHDUtils.addPxhdToMinimalResponse(context, response);
43
+ }
44
+ if (this.config.corsSupportEnabled && this.cors?.isCorsRequest(context)) {
45
+ const corsHeaders = await this.cors.getCorsBlockHeaders(context);
46
+ response = MinimalResponseUtils.appendHeaders(response, corsHeaders);
47
+ }
48
+ return response;
60
49
  }
61
50
  }
@@ -1,29 +1,19 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { LoggerSeverity } from '../../logger';
11
2
  import { getDecisionFromContext } from '../../action';
12
3
  export class DecideActionPhase {
4
+ config;
13
5
  constructor(config) {
14
6
  this.config = config;
15
7
  }
16
- updateContextDecision(context) {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- const { action, reasons } = getDecisionFromContext(context);
19
- if (this.config.logger.getLoggerSeverity() === LoggerSeverity.DEBUG) {
20
- const productReasons = Object.entries(reasons)
21
- .map(([prod, reason]) => `${prod} -> ${reason}`)
22
- .join(', ');
23
- this.config.logger.debug(`decision: ${action}, reasons: ${productReasons}`);
24
- }
25
- context.action = action;
26
- context.reasons = reasons;
27
- });
8
+ async updateContextDecision(context) {
9
+ const { action, reasons } = getDecisionFromContext(context);
10
+ if (this.config.logger.getLoggerSeverity() === LoggerSeverity.DEBUG) {
11
+ const productReasons = Object.entries(reasons)
12
+ .map(([prod, reason]) => `${prod} -> ${reason}`)
13
+ .join(', ');
14
+ this.config.logger.debug(`decision: ${action}, reasons: ${productReasons}`);
15
+ }
16
+ context.action = action;
17
+ context.reasons = reasons;
28
18
  }
29
19
  }
@@ -1,60 +1,43 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { CustomParametersUtils } from '../../custom_parameters';
11
2
  import { DecideActionPhase } from './DecideActionPhase';
12
3
  export class EnrichContextFromRequestPhase extends DecideActionPhase {
4
+ products;
5
+ dataEnrichment;
6
+ graphQLParser;
13
7
  constructor(config, products, dataEnrichment, graphQLParser) {
14
8
  super(config);
15
9
  this.products = products;
16
10
  this.dataEnrichment = dataEnrichment;
17
11
  this.graphQLParser = graphQLParser;
18
12
  }
19
- execute(context) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- this.config.logger.debug('enrich context from request phase');
22
- yield this.addPxdeToContext(context);
23
- yield this.addGraphQLDataToContext(context);
24
- yield this.addProductDataToContext(context);
25
- yield this.addCustomParametersToContext(context);
26
- yield this.updateContextDecision(context);
27
- return { done: false };
28
- });
13
+ async execute(context) {
14
+ this.config.logger.debug('enrich context from request phase');
15
+ await this.addPxdeToContext(context);
16
+ await this.addGraphQLDataToContext(context);
17
+ await this.addProductDataToContext(context);
18
+ await this.addCustomParametersToContext(context);
19
+ await this.updateContextDecision(context);
20
+ return { done: false };
29
21
  }
30
- addPxdeToContext(context) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const pxdeData = yield this.dataEnrichment.handlePxde(context);
33
- if (pxdeData) {
34
- context.pxde = pxdeData.pxde;
35
- context.pxdeVerified = pxdeData.pxdeVerified;
36
- }
37
- });
22
+ async addPxdeToContext(context) {
23
+ const pxdeData = await this.dataEnrichment.handlePxde(context);
24
+ if (pxdeData) {
25
+ context.pxde = pxdeData.pxde;
26
+ context.pxdeVerified = pxdeData.pxdeVerified;
27
+ }
38
28
  }
39
- addGraphQLDataToContext(context) {
40
- var _a;
41
- return __awaiter(this, void 0, void 0, function* () {
42
- if ((_a = this.graphQLParser) === null || _a === void 0 ? void 0 : _a.isGraphQLRequest(context)) {
43
- context.graphqlData = yield this.graphQLParser.parseGraphQLRequest(context);
44
- }
45
- });
29
+ async addGraphQLDataToContext(context) {
30
+ if (this.graphQLParser?.isGraphQLRequest(context)) {
31
+ context.graphqlData = await this.graphQLParser.parseGraphQLRequest(context);
32
+ }
46
33
  }
47
- addProductDataToContext(context) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- yield Promise.all(Object.entries(this.products).map(([name, product]) => __awaiter(this, void 0, void 0, function* () {
50
- // @ts-ignore
51
- context.productData[name] = yield (product === null || product === void 0 ? void 0 : product.enrichContextFromRequest(context));
52
- })));
53
- });
34
+ async addProductDataToContext(context) {
35
+ await Promise.all(Object.entries(this.products).map(async ([name, product]) => {
36
+ // @ts-ignore
37
+ context.productData[name] = await product?.enrichContextFromRequest(context);
38
+ }));
54
39
  }
55
- addCustomParametersToContext(context) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- context.customParameters = yield CustomParametersUtils.createCustomParameters(this.config, context);
58
- });
40
+ async addCustomParametersToContext(context) {
41
+ context.customParameters = await CustomParametersUtils.createCustomParameters(this.config, context);
59
42
  }
60
43
  }
@@ -1,31 +1,20 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  export class EnrichContextFromResponsePhase {
2
+ config;
3
+ products;
11
4
  constructor(config, products) {
12
5
  this.config = config;
13
6
  this.products = products;
14
7
  }
15
- execute(context) {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- this.config.logger.debug('enrich context from response phase');
18
- yield this.addProductDataToContext(context);
19
- return { done: false };
20
- });
8
+ async execute(context) {
9
+ this.config.logger.debug('enrich context from response phase');
10
+ await this.addProductDataToContext(context);
11
+ return { done: false };
21
12
  }
22
- addProductDataToContext(context) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- yield Promise.all(Object.entries(this.products)
25
- .filter(([name, _]) => !!context.productData[name])
26
- .map(([name, product]) => __awaiter(this, void 0, void 0, function* () {
27
- Object.assign(context.productData[name], yield (product === null || product === void 0 ? void 0 : product.enrichContextFromResponse(context)));
28
- })));
29
- });
13
+ async addProductDataToContext(context) {
14
+ await Promise.all(Object.entries(this.products)
15
+ .filter(([name, _]) => !!context.productData[name])
16
+ .map(async ([name, product]) => {
17
+ Object.assign(context.productData[name], await product?.enrichContextFromResponse(context));
18
+ }));
30
19
  }
31
20
  }
@@ -1,19 +1,9 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  export class FilterPhase {
2
+ filters;
11
3
  constructor(filters) {
12
4
  this.filters = filters;
13
5
  }
14
- execute(context) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- return { done: this.filters.some((filter) => filter.shouldFilter(context)) };
17
- });
6
+ async execute(context) {
7
+ return { done: this.filters.some((filter) => filter.shouldFilter(context)) };
18
8
  }
19
9
  }
@@ -1,42 +1,31 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { MinimalResponseUtils } from '../../http';
11
2
  export class FirstPartyPhase {
3
+ httpClient;
4
+ firstParties;
12
5
  constructor(httpClient, firstParties) {
13
6
  this.httpClient = httpClient;
14
7
  this.firstParties = firstParties;
15
8
  }
16
- execute(context) {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- for (const firstParty of this.firstParties) {
19
- const firstPartyData = yield firstParty.handleFirstPartyRequest(context);
20
- if (firstPartyData) {
21
- const response = yield this.sendFirstPartyRequest(firstPartyData);
22
- return { done: true, response };
23
- }
9
+ async execute(context) {
10
+ for (const firstParty of this.firstParties) {
11
+ const firstPartyData = await firstParty.handleFirstPartyRequest(context);
12
+ if (firstPartyData) {
13
+ const response = await this.sendFirstPartyRequest(firstPartyData);
14
+ return { done: true, response };
24
15
  }
25
- return { done: false };
26
- });
16
+ }
17
+ return { done: false };
27
18
  }
28
- sendFirstPartyRequest({ request, defaultResponse }) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- if (!request) {
31
- return defaultResponse;
32
- }
33
- try {
34
- const response = yield this.httpClient.send(request);
35
- return MinimalResponseUtils.from(response);
36
- }
37
- catch (e) {
38
- return defaultResponse;
39
- }
40
- });
19
+ async sendFirstPartyRequest({ request, defaultResponse }) {
20
+ if (!request) {
21
+ return defaultResponse;
22
+ }
23
+ try {
24
+ const response = await this.httpClient.send(request);
25
+ return MinimalResponseUtils.from(response);
26
+ }
27
+ catch (e) {
28
+ return defaultResponse;
29
+ }
41
30
  }
42
31
  }
@@ -1,20 +1,10 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  export class ModifyIncomingRequestPhase {
2
+ products;
11
3
  constructor(products) {
12
4
  this.products = products;
13
5
  }
14
- execute(context) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- yield Promise.all(this.products.map((product) => product === null || product === void 0 ? void 0 : product.modifyIncomingRequest(context)));
17
- return { done: false };
18
- });
6
+ async execute(context) {
7
+ await Promise.all(this.products.map((product) => product?.modifyIncomingRequest(context)));
8
+ return { done: false };
19
9
  }
20
10
  }
@@ -1,25 +1,14 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { PXHDSource, PXHDUtils } from '../../pxhd';
11
2
  export class ModifyOutgoingResponsePhase {
3
+ products;
12
4
  constructor(products) {
13
5
  this.products = products;
14
6
  }
15
- execute(context) {
16
- var _a;
17
- return __awaiter(this, void 0, void 0, function* () {
18
- yield Promise.all(this.products.map((product) => product === null || product === void 0 ? void 0 : product.modifyOutgoingResponse(context)));
19
- if (((_a = context.pxhd) === null || _a === void 0 ? void 0 : _a.source) === PXHDSource.RISK) {
20
- PXHDUtils.addPxhdToOutgoingResponse(context, context.response);
21
- }
22
- return { done: false };
23
- });
7
+ async execute(context) {
8
+ await Promise.all(this.products.map((product) => product?.modifyOutgoingResponse(context)));
9
+ if (context.pxhd?.source === PXHDSource.RISK) {
10
+ PXHDUtils.addPxhdToOutgoingResponse(context, context.response);
11
+ }
12
+ return { done: false };
24
13
  }
25
14
  }
@@ -1,24 +1,14 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { TokenParseResult } from '../../risk_token';
11
2
  import { transferExistingProperties, VidSource } from '../../utils';
12
3
  export class ParseTokenPhase {
4
+ tokenParser;
13
5
  constructor(tokenParser) {
14
6
  this.tokenParser = tokenParser;
15
7
  }
16
- execute(context) {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- const tokenData = yield this.tokenParser.parseToken(context);
19
- this.addTokenDataToContext(context, tokenData);
20
- return { done: false };
21
- });
8
+ async execute(context) {
9
+ const tokenData = await this.tokenParser.parseToken(context);
10
+ this.addTokenDataToContext(context, tokenData);
11
+ return { done: false };
22
12
  }
23
13
  addTokenDataToContext(context, tokenData) {
24
14
  Object.assign(context.tokenData, tokenData);