@netacea/akamai 5.0.76 → 5.0.78

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 (83) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/package.json +3 -3
  3. package/dist/src/{AkamaiV2.d.ts → Akamai.d.ts} +1 -2
  4. package/dist/src/{AkamaiV2.js → Akamai.js} +10 -20
  5. package/dist/src/Akamai.js.map +1 -0
  6. package/dist/src/ConfigLoader.d.ts +1 -2
  7. package/dist/src/ConfigLoader.js.map +1 -1
  8. package/dist/src/errors/APIError.d.ts +1 -1
  9. package/dist/src/hash.js +2 -2
  10. package/dist/src/hash.js.map +1 -1
  11. package/dist/src/helpers/addHeadersToRequest.d.ts +4 -0
  12. package/dist/src/helpers/addHeadersToRequest.js +24 -0
  13. package/dist/src/helpers/addHeadersToRequest.js.map +1 -0
  14. package/dist/src/helpers/check.d.ts +3 -0
  15. package/dist/src/helpers/check.js +33 -0
  16. package/dist/src/helpers/check.js.map +1 -0
  17. package/dist/src/helpers/composeResult.d.ts +3 -0
  18. package/dist/src/helpers/composeResult.js +31 -0
  19. package/dist/src/helpers/composeResult.js.map +1 -0
  20. package/dist/src/helpers/createMitata.d.ts +1 -2
  21. package/dist/src/helpers/createMitata.js +2 -2
  22. package/dist/src/helpers/createMitata.js.map +1 -1
  23. package/dist/src/helpers/generateHttpFingerprints.js +1 -1
  24. package/dist/src/helpers/generateHttpFingerprints.js.map +1 -1
  25. package/dist/src/helpers/getMitHeaders.d.ts +3 -0
  26. package/dist/src/helpers/getMitHeaders.js +27 -0
  27. package/dist/src/helpers/getMitHeaders.js.map +1 -0
  28. package/dist/src/helpers/getMitataCaptchaFromHeaders.js.map +1 -1
  29. package/dist/src/helpers/getMitigationResponse.d.ts +4 -0
  30. package/dist/src/helpers/getMitigationResponse.js +24 -0
  31. package/dist/src/helpers/getMitigationResponse.js.map +1 -0
  32. package/dist/src/helpers/handleMitResult.d.ts +3 -0
  33. package/dist/src/helpers/handleMitResult.js +31 -0
  34. package/dist/src/helpers/handleMitResult.js.map +1 -0
  35. package/dist/src/helpers/inject.d.ts +4 -0
  36. package/dist/src/helpers/inject.js +15 -0
  37. package/dist/src/helpers/inject.js.map +1 -0
  38. package/dist/src/helpers/logToDataStream.js.map +1 -1
  39. package/dist/src/helpers/makeRequest.d.ts +1 -1
  40. package/dist/src/helpers/makeRequest.js.map +1 -1
  41. package/dist/src/helpers/mitigate.d.ts +3 -0
  42. package/dist/src/helpers/mitigate.js +29 -0
  43. package/dist/src/helpers/mitigate.js.map +1 -0
  44. package/dist/src/helpers/processCaptcha.d.ts +3 -0
  45. package/dist/src/helpers/processCaptcha.js +7 -0
  46. package/dist/src/helpers/processCaptcha.js.map +1 -0
  47. package/dist/src/helpers/processIngest.d.ts +3 -0
  48. package/dist/src/helpers/processIngest.js +32 -0
  49. package/dist/src/helpers/processIngest.js.map +1 -0
  50. package/dist/src/helpers/processMitigateRequest.d.ts +6 -0
  51. package/dist/src/helpers/processMitigateRequest.js +10 -0
  52. package/dist/src/helpers/processMitigateRequest.js.map +1 -0
  53. package/dist/src/helpers/readCookie.d.ts +1 -1
  54. package/dist/src/helpers/runMitigation.d.ts +4 -0
  55. package/dist/src/helpers/runMitigation.js +30 -0
  56. package/dist/src/helpers/runMitigation.js.map +1 -0
  57. package/dist/src/helpers/setNetaceaCookie.js +4 -4
  58. package/dist/src/helpers/setNetaceaCookie.js.map +1 -1
  59. package/dist/src/index.d.ts +2 -3
  60. package/dist/src/index.js +1 -1
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/ingest/ingest.js +4 -4
  63. package/dist/src/ingest/ingest.js.map +1 -1
  64. package/dist/src/ingest/makeIngestAPICall.d.ts +1 -1
  65. package/dist/src/ingest/makeIngestAPICall.js +1 -1
  66. package/dist/src/ingest/makeIngestAPICall.js.map +1 -1
  67. package/dist/src/mitataCookie.d.ts +1 -1
  68. package/dist/src/mitataCookie.js +1 -1
  69. package/dist/src/mitataCookie.js.map +1 -1
  70. package/dist/src/mitigation/makeCaptchaApiCall.d.ts +3 -0
  71. package/dist/src/mitigation/makeCaptchaApiCall.js +29 -0
  72. package/dist/src/mitigation/makeCaptchaApiCall.js.map +1 -0
  73. package/dist/src/mitigation/makeMitigateApiCall.d.ts +3 -0
  74. package/dist/src/mitigation/makeMitigateApiCall.js +37 -0
  75. package/dist/src/mitigation/makeMitigateApiCall.js.map +1 -0
  76. package/dist/src/mitigation/mitigationApiCall.js +1 -1
  77. package/dist/src/mitigation/mitigationApiCall.js.map +1 -1
  78. package/dist/src/types.d.ts +6 -2
  79. package/package.json +3 -3
  80. package/dist/src/AkamaiV1.d.ts +0 -117
  81. package/dist/src/AkamaiV1.js +0 -834
  82. package/dist/src/AkamaiV1.js.map +0 -1
  83. package/dist/src/AkamaiV2.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 5.0.78 (2024-01-26)
7
+
8
+ **Note:** Version bump only for package @netacea/akamai
9
+
10
+
11
+
12
+
13
+
14
+ ## 5.0.77 (2024-01-26)
15
+
16
+ **Note:** Version bump only for package @netacea/akamai
17
+
18
+
19
+
20
+
21
+
6
22
  ## 5.0.76 (2024-01-23)
7
23
 
8
24
  **Note:** Version bump only for package @netacea/akamai
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netacea/akamai",
3
- "version": "5.0.76",
3
+ "version": "5.0.78",
4
4
  "description": "Netacea Akamai CDN Integration",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "license": "ISC",
22
22
  "dependencies": {
23
- "@netacea/netaceaintegrationbase": "^1.16.82",
23
+ "@netacea/netaceaintegrationbase": "^1.16.84",
24
24
  "buffer": "^6.0.3",
25
25
  "jssha": "^3.3.0"
26
26
  },
@@ -67,5 +67,5 @@
67
67
  "tslib": "^2.0.3",
68
68
  "typescript": "^4.0.3"
69
69
  },
70
- "gitHead": "a099177ce8eeb06ca3a1fb541c437b97322ac2b7"
70
+ "gitHead": "02044f3366d99b1e0119cbc9609d3a562d54887c"
71
71
  }
@@ -1,7 +1,6 @@
1
1
  /// <reference types="akamai-edgeworkers" />
2
- import { LegacyAkamaiConstructorArgs } from './AkamaiV1';
2
+ import type { AkamaiRuntimeDependencies, LegacyAkamaiConstructorArgs } from './types';
3
3
  import ConfigLoader from './ConfigLoader';
4
- import { AkamaiRuntimeDependencies } from './types';
5
4
  export default class Akamai {
6
5
  configLoader: ConfigLoader;
7
6
  defaultDeps: AkamaiRuntimeDependencies;
@@ -1,17 +1,17 @@
1
- import AkamaiLegacyWorker from './AkamaiV1';
2
1
  import { httpRequest } from 'http-request';
3
2
  import { logger } from 'log';
4
3
  import ConfigLoader from './ConfigLoader';
5
4
  import { isUrlCaptchaAssetsGet, isUrlCaptchaGet, isUrlCaptchaPost } from './netaceaPaths';
6
5
  import { handleCaptchaGet } from './captchaGet';
6
+ import { handleCaptchaPost } from './captchaPost';
7
+ import { CachedEncryption } from './CachedEncryption';
7
8
  import { ingestIfHttpIngestType } from './ingest/ingest';
8
9
  import { logToDataStream } from './helpers/logToDataStream';
9
10
  import { setNetaceaCookie } from './helpers/setNetaceaCookie';
10
11
  import { verifyCaptcha } from './helpers/verifyCaptcha';
11
- import { CachedEncryption } from './CachedEncryption';
12
- import { handleCaptchaPost } from './captchaPost';
13
12
  import { removeNetaceaHeaders } from './helpers/removeNetaceaHeaders';
14
13
  import { routeRequestToNetaceaProxy } from './helpers/routeRequestToNetaceaProxy';
14
+ import { handleMitResult } from './helpers/handleMitResult';
15
15
  export default class Akamai {
16
16
  constructor(defaultConfig) {
17
17
  this.configLoader = new ConfigLoader(defaultConfig);
@@ -30,38 +30,28 @@ export default class Akamai {
30
30
  }
31
31
  if (isUrlCaptchaGet(request.path, request.method, config.netaceaCaptchaPath)) {
32
32
  await handleCaptchaGet(this.defaultDeps, config, request);
33
- return await logToDataStream(this.defaultDeps, config, request);
34
33
  }
35
34
  else if (isUrlCaptchaPost(request.path, request.method)) {
36
35
  await verifyCaptcha(this.defaultDeps, config, request);
37
- return await logToDataStream(this.defaultDeps, config, request);
38
36
  }
39
37
  else if (isUrlCaptchaAssetsGet(request.path, request.method, config.useCaptchaRelAssets)) {
40
38
  routeRequestToNetaceaProxy(request);
41
- return await logToDataStream(this.defaultDeps, config, request);
42
39
  }
43
- const legacyWorker = new AkamaiLegacyWorker(config, this.defaultDeps);
44
- return await legacyWorker.requestHandler(request);
40
+ else {
41
+ await handleMitResult(this.defaultDeps, config, request);
42
+ }
43
+ await logToDataStream(this.defaultDeps, config, request);
45
44
  }
46
45
  async responseHandler(request, response) {
47
46
  const config = this.configLoader.loadConfig(request);
48
47
  if (isUrlCaptchaPost(request.path, request.method)) {
49
48
  await handleCaptchaPost(this.defaultDeps, config, request, response);
50
- removeNetaceaHeaders(response);
51
- await ingestIfHttpIngestType(this.defaultDeps, config, request, response);
52
- return;
53
49
  }
54
50
  else if (!isUrlCaptchaAssetsGet(request.path, request.method, config.useCaptchaRelAssets)) {
55
51
  await setNetaceaCookie(this.defaultDeps, config, request, response);
56
- removeNetaceaHeaders(response);
57
- await ingestIfHttpIngestType(this.defaultDeps, config, request, response);
58
- return;
59
52
  }
60
- const legacyWorker = new AkamaiLegacyWorker(config, {
61
- httpRequest,
62
- logger
63
- });
64
- return await legacyWorker.responseHandler(request, response);
53
+ removeNetaceaHeaders(response);
54
+ await ingestIfHttpIngestType(this.defaultDeps, config, request, response);
65
55
  }
66
56
  }
67
- //# sourceMappingURL=AkamaiV2.js.map
57
+ //# sourceMappingURL=Akamai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Akamai.js","sourceRoot":"","sources":["../../src/Akamai.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /// <reference types="akamai-edgeworkers" />
2
- import type { LegacyAkamaiConstructorArgs } from './AkamaiV1';
3
- import { AkamaiWorkerConfig } from './types';
2
+ import type { LegacyAkamaiConstructorArgs, AkamaiWorkerConfig } from './types';
4
3
  export default class ConfigLoader {
5
4
  defaults: Readonly<LegacyAkamaiConstructorArgs>;
6
5
  constructor(defaultConfig: Readonly<LegacyAkamaiConstructorArgs>);
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/ConfigLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/ConfigLoader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { APICallResponse } from '@netacea/netaceaintegrationbase';
1
+ import type { APICallResponse } from '@netacea/netaceaintegrationbase';
2
2
  export declare class APIError extends Error {
3
3
  static fromResponse(response: APICallResponse): APIError;
4
4
  }
package/dist/src/hash.js CHANGED
@@ -1,6 +1,6 @@
1
- import { TextEncoder } from './akamaiEncoding';
2
- import crypto from './akamaiCrypto';
3
1
  import JsSHA from 'jssha';
2
+ import crypto from './akamaiCrypto';
3
+ import { TextEncoder } from './akamaiEncoding';
4
4
  function toBytes(key) {
5
5
  if (typeof key === 'string') {
6
6
  return new TextEncoder().encode(key);
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,MAAM,MAAM,gBAAgB,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,SAAS,OAAO,CAAE,GAAwB;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;KACrC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,KAAiB,EAAE,MAA2B;IAC9E,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE;QAChD,OAAO,EAAE;YACP,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YACtB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAA;IAEF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAE,GAAe;IACpD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAClC,KAAK,EACL,GAAG,EACH;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;KAChB,EACD,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAqB,EACrB,IAAgB,EAChB,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAEzD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC/B,MAAM,EACN,GAAG,EACH,SAAS,EACT,IAAI,CACL,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,SAAS,OAAO,CAAE,GAAwB;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;KACrC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,KAAiB,EAAE,MAA2B;IAC9E,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE;QAChD,OAAO,EAAE;YACP,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YACtB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAA;IAEF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAE,GAAe;IACpD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAClC,KAAK,EACL,GAAG,EACH;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;KAChB,EACD,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAqB,EACrB,IAAgB,EAChB,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAEzD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC/B,MAAM,EACN,GAAG,EACH,SAAS,EACT,IAAI,CACL,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="akamai-edgeworkers" />
2
+ import type { InjectResponse } from '@netacea/netaceaintegrationbase';
3
+ import type { AkamaiMitigateResponse, AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
4
+ export declare function addHeadersToRequest(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, mitResult: AkamaiMitigateResponse | InjectResponse | undefined, request: EW.IngressClientRequest): Promise<void>;
@@ -0,0 +1,24 @@
1
+ import { NetaceaMitigationType, NetaceaIngestType } from '@netacea/netaceaintegrationbase';
2
+ import { readCookie } from './readCookie';
3
+ import { getMitHeaders } from './getMitHeaders';
4
+ export async function addHeadersToRequest(deps, config, mitResult, request) {
5
+ let injectHeaders = {};
6
+ if (mitResult?.setCookie !== undefined) {
7
+ const protoMitata = await readCookie(deps, config, mitResult.setCookie, '_proto-mitata');
8
+ if (protoMitata !== undefined) {
9
+ request.setVariable(config.protoMitataVariableName, protoMitata);
10
+ }
11
+ }
12
+ if (config.mitigationType === NetaceaMitigationType.INJECT) {
13
+ const result = mitResult;
14
+ injectHeaders = result.injectHeaders ?? {};
15
+ }
16
+ let mitHeaders = {};
17
+ if (config.ingestType === NetaceaIngestType.ORIGIN) {
18
+ mitHeaders = await getMitHeaders(deps, config, request);
19
+ }
20
+ for (const [key, value] of Object.entries({ ...injectHeaders, ...mitHeaders })) {
21
+ request.addHeader(key, value);
22
+ }
23
+ }
24
+ //# sourceMappingURL=addHeadersToRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addHeadersToRequest.js","sourceRoot":"","sources":["../../../src/helpers/addHeadersToRequest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAA+B,EAC/B,MAAoC,EACpC,SAA8D,EAC9D,OAAgC;IAEhC,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,SAAS,EAAE,SAAS,KAAK,SAAS,EAAE;QAEtC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;QACxF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAA;SACjE;KACF;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;QAC1D,MAAM,MAAM,GAAG,SAA2B,CAAA;QAC1C,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAA;KAC3C;IACD,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,MAAM,CAAC,UAAU,KAAK,iBAAiB,CAAC,MAAM,EAAE;QAClD,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;KACxD;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE;QAC9E,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,KAAY,CAAC,CAAA;KACrC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ComposeResultResponse } from '@netacea/netaceaintegrationbase';
2
+ import type { AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
3
+ export declare function check(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, netaceaCookie: string | undefined, clientIP: string, userAgent: string, accept: string, host: string, captchaCookie?: string): Promise<ComposeResultResponse>;
@@ -0,0 +1,33 @@
1
+ import { retrieveCookieInfo } from './retrieveCookieInfo';
2
+ import { composeResult } from './composeResult';
3
+ import { createProtoMitata } from './createProtoMitata';
4
+ import { makeMitigateApiCall } from '../mitigation/makeMitigateApiCall';
5
+ export async function check(deps, config, netaceaCookie, clientIP, userAgent, accept, host, captchaCookie) {
6
+ let status, match, mitigate, captcha, body, setCookie, eventId;
7
+ if (config.secretKey === undefined) {
8
+ throw new Error('Secret key is required to mitigate');
9
+ }
10
+ const cookieInfo = await retrieveCookieInfo(netaceaCookie, clientIP, config.secretKey);
11
+ if (!cookieInfo.isPrimaryHashValid || cookieInfo.requiresReissue) {
12
+ const result = await makeMitigateApiCall(deps, config, cookieInfo.mitata?.userId, clientIP, userAgent, captchaCookie, accept, host);
13
+ status = result.status;
14
+ match = result.match;
15
+ mitigate = result.mitigate;
16
+ captcha = result.captcha;
17
+ body = result.body;
18
+ setCookie = [
19
+ await createProtoMitata(clientIP, cookieInfo.mitata?.userId, match, mitigate, captcha, result.mitataMaxAge)
20
+ ];
21
+ eventId = result.eventId;
22
+ }
23
+ else {
24
+ status = -1;
25
+ match = cookieInfo.match;
26
+ mitigate = cookieInfo.mitigate;
27
+ captcha = cookieInfo.captcha;
28
+ body = undefined;
29
+ setCookie = [];
30
+ }
31
+ return composeResult(config, body, setCookie, status, match, mitigate, captcha, false, eventId);
32
+ }
33
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/helpers/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,IAA+B,EAC/B,MAAoC,EACpC,aAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,MAAc,EACd,IAAY,EACZ,aAAsB;IAEtB,IAAI,MAAc,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAe,EAClE,IAAwB,EAAE,SAAmB,EAAE,OAA2B,CAAA;IAC5E,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;KACtD;IACD,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACtF,IAAI,CAAC,UAAU,CAAC,kBAAkB,IAAI,UAAU,CAAC,eAAe,EAAE;QAEhE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,IAAI,EACJ,MAAM,EACN,UAAU,CAAC,MAAM,EAAE,MAAM,EACzB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,MAAM,EACN,IAAI,CACL,CAAA;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QACpB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QACxB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QAClB,SAAS,GAAG;YACV,MAAM,iBAAiB,CACrB,QAAQ,EACR,UAAU,CAAC,MAAM,EAAE,MAAM,EACzB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,CAAC,YAAY,CACpB;SACF,CAAA;QACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;KACzB;SAAM;QACL,MAAM,GAAG,CAAC,CAAC,CAAA;QACX,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;QACxB,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;QAC9B,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAC5B,IAAI,GAAG,SAAS,CAAA;QAChB,SAAS,GAAG,EAAE,CAAA;KACf;IACD,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACjG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ComposeResultResponse } from '@netacea/netaceaintegrationbase';
2
+ import type { AkamaiWorkerConfig } from '../types';
3
+ export declare function composeResult(config: Readonly<AkamaiWorkerConfig>, body: string | undefined, setCookie: string[], status: number, match: number, mitigate: number, captcha: number, isCaptchaPost: boolean, eventId?: string): ComposeResultResponse;
@@ -0,0 +1,31 @@
1
+ import { dictionary, NetaceaMitigationType } from '@netacea/netaceaintegrationbase';
2
+ import { findBestMitigation } from './findBestMitigation';
3
+ const { mitigationTypes } = dictionary;
4
+ export function composeResult(config, body, setCookie, status, match, mitigate, captcha, isCaptchaPost, eventId) {
5
+ const bestMitigation = findBestMitigation(config, match, mitigate, captcha, isCaptchaPost);
6
+ const result = {
7
+ body,
8
+ apiCallStatus: status,
9
+ setCookie,
10
+ sessionStatus: bestMitigation.sessionStatus,
11
+ mitigation: bestMitigation.mitigation,
12
+ mitigated: [
13
+ mitigationTypes.block,
14
+ mitigationTypes.captcha,
15
+ mitigationTypes.captchaPass
16
+ ].includes(bestMitigation.mitigation)
17
+ };
18
+ if (config.mitigationType === NetaceaMitigationType.INJECT) {
19
+ const injectHeaders = {
20
+ 'x-netacea-match': bestMitigation.parts.match.toString(),
21
+ 'x-netacea-mitigate': bestMitigation.parts.mitigate.toString(),
22
+ 'x-netacea-captcha': bestMitigation.parts.captcha.toString()
23
+ };
24
+ if (eventId !== undefined) {
25
+ injectHeaders['x-netacea-event-id'] = eventId;
26
+ }
27
+ result.injectHeaders = injectHeaders;
28
+ }
29
+ return result;
30
+ }
31
+ //# sourceMappingURL=composeResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composeResult.js","sourceRoot":"","sources":["../../../src/helpers/composeResult.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAA;AAEtC,MAAM,UAAU,aAAa,CAC3B,MAAoC,EACpC,IAAwB,EACxB,SAAmB,EACnB,MAAc,EACd,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,aAAsB,EACtB,OAAgB;IAEhB,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IAC1F,MAAM,MAAM,GAA0B;QACpC,IAAI;QACJ,aAAa,EAAE,MAAM;QACrB,SAAS;QACT,aAAa,EAAE,cAAc,CAAC,aAAa;QAC3C,UAAU,EAAE,cAAc,CAAC,UAAU;QACrC,SAAS,EAAE;YACT,eAAe,CAAC,KAAK;YACrB,eAAe,CAAC,OAAO;YACvB,eAAe,CAAC,WAAW;SAC5B,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC;KACtC,CAAA;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;QAC1D,MAAM,aAAa,GAAkB;YACnC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;YACxD,oBAAoB,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC9D,mBAAmB,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;SAC7D,CAAA;QACD,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,aAAa,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAA;SAC9C;QACD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;KACrC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -8,8 +8,7 @@ interface CreateMitataOptions {
8
8
  captcha: number;
9
9
  maxAge: number;
10
10
  expiry?: number;
11
- cookieId?: string;
12
11
  issueReason?: NetaceaCookieV3IssueReason;
13
12
  }
14
- export declare function createMitata(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, { clientIP, userId, match, mitigate, captcha, cookieId, issueReason, maxAge, expiry }: CreateMitataOptions): Promise<string>;
13
+ export declare function createMitata(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, { clientIP, userId, match, mitigate, captcha, issueReason, maxAge, expiry }: CreateMitataOptions): Promise<string>;
15
14
  export {};
@@ -1,7 +1,7 @@
1
1
  import { NetaceaCookieV3IssueReason, NetaceaIngestType, createNetaceaCookieV3 } from '@netacea/netaceaintegrationbase';
2
2
  import { buildCookieFromValues } from './buildCookieFromValues';
3
3
  import { createLegacyMitataCookie, generateId } from '../mitataCookie';
4
- export async function createMitata(deps, config, { clientIP, userId, match, mitigate, captcha, cookieId, issueReason, maxAge = 86400, expiry = undefined }) {
4
+ export async function createMitata(deps, config, { clientIP, userId, match, mitigate, captcha, issueReason, maxAge = 86400, expiry = undefined }) {
5
5
  const expirySeconds = config.netaceaCookieExpirySeconds;
6
6
  const isCaptchaServe = [1, 3, 5].includes(captcha);
7
7
  const expiryDelta = isCaptchaServe ? -expirySeconds : expirySeconds;
@@ -19,7 +19,7 @@ export async function createMitata(deps, config, { clientIP, userId, match, miti
19
19
  mitigate,
20
20
  captcha,
21
21
  gracePeriod: expiryDelta,
22
- cookieId: cookieId ?? generateId(),
22
+ cookieId: generateId(),
23
23
  issueTimestamp: Math.floor(Date.now() / 1000),
24
24
  issueReason: issueReason ?? NetaceaCookieV3IssueReason.NO_SESSION
25
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createMitata.js","sourceRoot":"","sources":["../../../src/helpers/createMitata.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAetE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAA+B,EAC/B,MAAoC,EACpC,EACE,QAAQ,EACR,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,MAAM,GAAG,KAAK,EACd,MAAM,GAAG,SAAS,EACE;IAEtB,MAAM,aAAa,GAAG,MAAM,CAAC,0BAAoC,CAAA;IACjE,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAA;IACnE,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAA;IAC1E,MAAM,wBAAwB,GAAG,MAAM,CAAC,UAAU,KAAK,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAA;IAEpH,IAAI,CAAC,wBAAwB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;KAC3D;IAED,IAAI,WAAmB,CAAA;IAGvB,IAAI,wBAAwB,EAAE;QAC5B,WAAW,GAAG,qBAAqB,CAAC;YAClC,QAAQ;YACR,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,KAAK;YACL,QAAQ;YACR,OAAO;YACP,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAAE;YAClC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC7C,WAAW,EAAE,WAAW,IAAI,0BAA0B,CAAC,UAAU;SAClE,CAAC,CAAA;KACH;SAAM;QACL,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtD,WAAW,GAAG,MAAM,wBAAwB,CAC1C,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,MAAM,CAAC,SAAmB,EAC1B,UAAU,CACX,CAAA;KACF;IAED,OAAO,MAAM,qBAAqB,CAChC,IAAI,EACJ,MAAM,EACN,MAAM,CAAC,iBAA2B,EAClC,WAAW,EACX,MAAM,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"createMitata.js","sourceRoot":"","sources":["../../../src/helpers/createMitata.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AActE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAA+B,EAC/B,MAAoC,EACpC,EACE,QAAQ,EACR,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,MAAM,GAAG,KAAK,EACd,MAAM,GAAG,SAAS,EACE;IAEtB,MAAM,aAAa,GAAG,MAAM,CAAC,0BAAoC,CAAA;IACjE,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAA;IACnE,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAA;IAC1E,MAAM,wBAAwB,GAAG,MAAM,CAAC,UAAU,KAAK,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAA;IAEpH,IAAI,CAAC,wBAAwB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;KAC3D;IAED,IAAI,WAAmB,CAAA;IAGvB,IAAI,wBAAwB,EAAE;QAC5B,WAAW,GAAG,qBAAqB,CAAC;YAClC,QAAQ;YACR,MAAM,EAAE,MAAM,IAAI,EAAE;YACpB,KAAK;YACL,QAAQ;YACR,OAAO;YACP,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,UAAU,EAAE;YACtB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC7C,WAAW,EAAE,WAAW,IAAI,0BAA0B,CAAC,UAAU;SAClE,CAAC,CAAA;KACH;SAAM;QACL,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtD,WAAW,GAAG,MAAM,wBAAwB,CAC1C,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,MAAM,CAAC,SAAmB,EAC1B,UAAU,CACX,CAAA;KACF;IAED,OAAO,MAAM,qBAAqB,CAChC,IAAI,EACJ,MAAM,EACN,MAAM,CAAC,iBAA2B,EAClC,WAAW,EACX,MAAM,CACP,CAAA;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
- import { hashHeaders, hashCookieNames } from '../HttpFingerprint';
2
1
  import { getHeaderValuesArray } from './getHeaderValuesArray';
2
+ import { hashHeaders, hashCookieNames } from '../HttpFingerprint';
3
3
  export async function generateHttpFingerprints(request) {
4
4
  const headers = request.getHeaders();
5
5
  const headerNameHash = await hashHeaders(headers);
@@ -1 +1 @@
1
- {"version":3,"file":"generateHttpFingerprints.js","sourceRoot":"","sources":["../../../src/helpers/generateHttpFingerprints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAE,OAAgC;IAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;IACpC,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC;SACxD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE,IAAI,EAAE,CAAA;IACT,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAA;IACzD,MAAM,iBAAiB,GAAG,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;IACzG,MAAM,iBAAiB,GAAG,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;IAEhE,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"generateHttpFingerprints.js","sourceRoot":"","sources":["../../../src/helpers/generateHttpFingerprints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEjE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAE,OAAgC;IAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;IACpC,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC;SACxD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE,IAAI,EAAE,CAAA;IACT,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAA;IACzD,MAAM,iBAAiB,GAAG,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;IACzG,MAAM,iBAAiB,GAAG,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;IAEhE,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="akamai-edgeworkers" />
2
+ import type { UpstreamMitHeaders, AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
3
+ export declare function getMitHeaders(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, request: EW.IngressClientRequest): Promise<UpstreamMitHeaders>;
@@ -0,0 +1,27 @@
1
+ import { getHeaderValueOrDefault } from './getHeaderValueOrDefault';
2
+ import { readCookie } from './readCookie';
3
+ import { matchCookie } from './matchCookie';
4
+ import { getProtoMitataFromRequestVar } from './getProtoMitataFromRequestVar';
5
+ import { findBestMitigation } from './findBestMitigation';
6
+ import { isUrlCaptchaPost } from '../netaceaPaths';
7
+ import * as pack from '../../package.json';
8
+ export async function getMitHeaders(deps, config, request) {
9
+ const cookieString = getHeaderValueOrDefault(request, 'cookie');
10
+ const mitataString = await readCookie(deps, config, cookieString, config.netaceaCookieName) ?? '';
11
+ const mitata = matchCookie(mitataString);
12
+ const protoMitata = getProtoMitataFromRequestVar(config, request);
13
+ const { match, mitigate, captcha, userId } = protoMitata ?? mitata ?? {
14
+ match: 0,
15
+ mitigate: 0,
16
+ captcha: 0,
17
+ userId: ''
18
+ };
19
+ const { sessionStatus } = findBestMitigation(config, match, mitigate, captcha, isUrlCaptchaPost(request.path, request.method));
20
+ return {
21
+ 'X-Netacea-UserId': userId,
22
+ 'X-Netacea-BC-Type': sessionStatus,
23
+ 'X-Netacea-Integration-Type': pack.name.replace('@netacea/', ''),
24
+ 'X-Netacea-Integration-Version': pack.version
25
+ };
26
+ }
27
+ //# sourceMappingURL=getMitHeaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMitHeaders.js","sourceRoot":"","sources":["../../../src/helpers/getMitHeaders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAGhC,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,iBAA2B,CAAC,IAAI,EAAE,CAAA;IAC3G,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAGxC,MAAM,WAAW,GAAG,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEjE,MAAM,EACJ,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EACjC,GAAG,WAAW,IAAI,MAAM,IAAI;QAC3B,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,EAAE;KACX,CAAA;IACD,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAC1C,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;IACD,OAAO;QACL,kBAAkB,EAAE,MAAM;QAC1B,mBAAmB,EAAE,aAAa;QAClC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAChE,+BAA+B,EAAE,IAAI,CAAC,OAAO;KAC9C,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getMitataCaptchaFromHeaders.js","sourceRoot":"","sources":["../../../src/helpers/getMitataCaptchaFromHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAEhC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;QAC1F,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;QACtE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC5F,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CACrD,IAAI,EACJ,MAAM,EACN,MAAM,CAAC,wBAAkC,EACzC,aAAa,EACb,mBAAmB,CACpB,CAAA;QAED,IAAI,mBAAmB,KAAK,SAAS,EAAE;YACrC,OAAO,mBAAmB,CAAA;SAC3B;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"getMitataCaptchaFromHeaders.js","sourceRoot":"","sources":["../../../src/helpers/getMitataCaptchaFromHeaders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAEhC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;QAC1F,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;QACtE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC5F,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CACrD,IAAI,EACJ,MAAM,EACN,MAAM,CAAC,wBAAkC,EACzC,aAAa,EACb,mBAAmB,CACpB,CAAA;QAED,IAAI,mBAAmB,KAAK,SAAS,EAAE;YACrC,OAAO,mBAAmB,CAAA;SAC3B;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="akamai-edgeworkers" />
2
+ import type { ComposeResultResponse } from '@netacea/netaceaintegrationbase';
3
+ import type { AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
4
+ export declare function getMitigationResponse(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, request: EW.IngressClientRequest): Promise<ComposeResultResponse>;
@@ -0,0 +1,24 @@
1
+ import { getHeaderValueOrDefault } from './getHeaderValueOrDefault';
2
+ import { readCookie } from './readCookie';
3
+ import { getVariableOrDefault } from './getVariable';
4
+ import { processMitigateRequest } from './processMitigateRequest';
5
+ export async function getMitigationResponse(deps, config, request) {
6
+ const cookies = getHeaderValueOrDefault(request, 'cookie');
7
+ const netaceaCookie = await readCookie(deps, config, cookies, config.netaceaCookieName);
8
+ const mitataCaptcha = await readCookie(deps, config, cookies, config.netaceaCaptchaCookieName);
9
+ const clientIp = getVariableOrDefault(request, 'PMUSER_CLIENT_IP');
10
+ const userAgent = getHeaderValueOrDefault(request, 'user-agent');
11
+ const accept = getHeaderValueOrDefault(request, 'accept', 'text/html');
12
+ return await processMitigateRequest(deps, config, {
13
+ clientIp,
14
+ getBodyFn: async () => '',
15
+ method: request.method,
16
+ mitata: netaceaCookie,
17
+ mitataCaptcha,
18
+ url: request.path,
19
+ userAgent,
20
+ accept,
21
+ host: request.host
22
+ });
23
+ }
24
+ //# sourceMappingURL=getMitigationResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMitigationResponse.js","sourceRoot":"","sources":["../../../src/helpers/getMitigationResponse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAEhC,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC1D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,iBAA2B,CAAC,CAAA;IACjG,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,wBAAkC,CAAC,CAAA;IACxG,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACtE,OAAO,MAAM,sBAAsB,CACjC,IAAI,EACJ,MAAM,EACN;QACE,QAAQ;QACR,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QACzB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,aAAa;QACrB,aAAa;QACb,GAAG,EAAE,OAAO,CAAC,IAAI;QACjB,SAAS;QACT,MAAM;QACN,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="akamai-edgeworkers" />
2
+ import type { AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
3
+ export declare function handleMitResult(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, request: EW.IngressClientRequest): Promise<void>;
@@ -0,0 +1,31 @@
1
+ import { runMitigation } from './runMitigation';
2
+ import { readCookie } from './readCookie';
3
+ import { isCaptchaJsonResponse } from './captchaContentNegotiation';
4
+ import { addHeadersToRequest } from './addHeadersToRequest';
5
+ export async function handleMitResult(deps, config, request) {
6
+ const mitResult = await runMitigation(deps, config, request);
7
+ if (mitResult === undefined) {
8
+ throw new Error('Mitigation Service response "mitResult" was undefined.');
9
+ }
10
+ const mitigationAction = mitResult.response?.mitigation;
11
+ if (mitigationAction === 'block' || mitigationAction === 'captcha') {
12
+ const status = mitResult.response?.status ?? 403;
13
+ const headers = {};
14
+ const protoMitataJson = await readCookie(deps, config, mitResult.setCookie, '_proto-mitata');
15
+ if (protoMitataJson !== undefined) {
16
+ request.setVariable(config.protoMitataVariableName, protoMitataJson);
17
+ }
18
+ const body = mitResult.response?.body ?? '';
19
+ if (isCaptchaJsonResponse(body)) {
20
+ headers['content-type'] = 'application/json';
21
+ }
22
+ if (mitigationAction === 'captcha' && config.netaceaCaptchaHeaderKey !== undefined) {
23
+ headers[config.netaceaCaptchaHeaderKey] = config.netaceaCaptchaHeaderValue;
24
+ }
25
+ request.respondWith(status, headers, body);
26
+ }
27
+ else {
28
+ await addHeadersToRequest(deps, config, mitResult, request);
29
+ }
30
+ }
31
+ //# sourceMappingURL=handleMitResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleMitResult.js","sourceRoot":"","sources":["../../../src/helpers/handleMitResult.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAEhC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5D,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;KAC1E;IACD,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAA;IAEvD,IAAI,gBAAgB,KAAK,OAAO,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAClE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAA;QAEhD,MAAM,OAAO,GAET,EAAE,CAAA;QACN,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;QAC5F,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAA;SACrE;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAA;QAE3C,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAC/B,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAA;SAC7C;QAED,IAAI,gBAAgB,KAAK,SAAS,IAAI,MAAM,CAAC,uBAAuB,KAAK,SAAS,EAAE;YAClF,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,yBAAmC,CAAA;SACrF;QAGD,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;KAC3C;SAAM;QACL,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;KAC5D;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="akamai-edgeworkers" />
2
+ import type { InjectResponse } from '@netacea/netaceaintegrationbase';
3
+ import type { AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
4
+ export declare function inject(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, request: EW.IngressClientRequest): Promise<InjectResponse>;
@@ -0,0 +1,15 @@
1
+ import { getMitigationResponse } from './getMitigationResponse';
2
+ export async function inject(deps, config, request) {
3
+ const result = await getMitigationResponse(deps, config, request);
4
+ const responseHeaders = {};
5
+ responseHeaders['set-cookie'] = result.setCookie.join('; ');
6
+ return {
7
+ injectHeaders: result.injectHeaders,
8
+ sessionStatus: result.sessionStatus,
9
+ setCookie: result.setCookie,
10
+ response: {
11
+ headers: responseHeaders
12
+ }
13
+ };
14
+ }
15
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/helpers/inject.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACjE,MAAM,eAAe,GAA2B,EAAE,CAAA;IAClD,eAAe,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3D,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE;YACR,OAAO,EAAE,eAAe;SACzB;KACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logToDataStream.js","sourceRoot":"","sources":["../../../src/helpers/logToDataStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAGhC,IAAI;QACF,MAAM,WAAW,GAAG,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACjE,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,iBAA2B,CAAC,CAAA;QACtG,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;QAE7C,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,EAAE,CAAA;QAC9D,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,IAAI,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,CAAC,CAAA;QAEhE,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAC1C,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;QAED,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAGtF,MAAM,kBAAkB,GAAG;YACzB,MAAM;YACN,aAAa;YACb,IAAI,CAAC,OAAO;YACZ,iBAAiB;YACjB,iBAAiB;SAClB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,OAAO,CAAC,WAAW,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAA;KAC3E;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAEvB,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,EAAE,CAAC,CAAA;KACjE;AACH,CAAC"}
1
+ {"version":3,"file":"logToDataStream.js","sourceRoot":"","sources":["../../../src/helpers/logToDataStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAGhC,IAAI;QACF,MAAM,WAAW,GAAG,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACjE,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,iBAA2B,CAAC,CAAA;QACtG,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;QAE7C,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,EAAE,CAAA;QAC9D,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,IAAI,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,CAAC,CAAA;QAEhE,MAAM,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAC1C,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;QAED,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAGtF,MAAM,kBAAkB,GAAG;YACzB,MAAM;YACN,aAAa;YACb,IAAI,CAAC,OAAO;YACZ,iBAAiB;YACjB,iBAAiB;SAClB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,OAAO,CAAC,WAAW,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAA;KAC3E;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAEvB,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,EAAE,CAAC,CAAA;KACjE;AACH,CAAC"}
@@ -1,3 +1,3 @@
1
- import { MakeRequestArgs, MakeRequestResponse } from '@netacea/netaceaintegrationbase';
1
+ import type { MakeRequestArgs, MakeRequestResponse } from '@netacea/netaceaintegrationbase';
2
2
  import type { AkamaiWorkerConfig, AkamaiRuntimeDependencies } from '../types';
3
3
  export declare function makeRequest(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, args: MakeRequestArgs): Promise<MakeRequestResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"makeRequest.js","sourceRoot":"","sources":["../../../src/helpers/makeRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAIzD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA+B,EAC/B,MAAoC,EACpC,IAAqB;IAErB,MAAM,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAA;IACnE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IACrD,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAKnB,MAAM,6BAA6B,GAAG,CACpC,yBAAyB;QACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC7B,CAAA;IACD,MAAM,wBAAwB,GAAG,CAC/B,qBAAqB;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB,CAAA;IAED,IAAI,GAAG,CAAA;IACP,IAAI,6BAA6B,EAAE;QACjC,OAAO,CAAC,qBAAqB,CAAC,GAAG,YAAY,CAAA;QAC7C,GAAG,GAAG,IAAI,CAAA;KACX;SAAM,IAAI,wBAAwB,EAAE;QACnC,OAAO,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAA;QACzC,GAAG,GAAG,IAAI,CAAA;KACX;SAAM;QAEL,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SACzB;QAED,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;KAClB;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO,EAAE,OAAO,IAAI,IAAI;KACzB,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACtC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"makeRequest.js","sourceRoot":"","sources":["../../../src/helpers/makeRequest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAGzD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA+B,EAC/B,MAAoC,EACpC,IAAqB;IAErB,MAAM,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAA;IACnE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IACrD,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAKnB,MAAM,6BAA6B,GAAG,CACpC,yBAAyB;QACzB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC7B,CAAA;IACD,MAAM,wBAAwB,GAAG,CAC/B,qBAAqB;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB,CAAA;IAED,IAAI,GAAG,CAAA;IACP,IAAI,6BAA6B,EAAE;QACjC,OAAO,CAAC,qBAAqB,CAAC,GAAG,YAAY,CAAA;QAC7C,GAAG,GAAG,IAAI,CAAA;KACX;SAAM,IAAI,wBAAwB,EAAE;QACnC,OAAO,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAA;QACzC,GAAG,GAAG,IAAI,CAAA;KACX;SAAM;QAEL,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SACzB;QAED,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;KAClB;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO,EAAE,OAAO,IAAI,IAAI;KACzB,CAAC,CAAA;IAEF,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACtC,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="akamai-edgeworkers" />
2
+ import type { AkamaiMitigateResponse, AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
3
+ export declare function mitigate(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, request: EW.IngressClientRequest): Promise<AkamaiMitigateResponse>;
@@ -0,0 +1,29 @@
1
+ import { getMitigationResponse } from './getMitigationResponse';
2
+ export async function mitigate(deps, config, request) {
3
+ const result = await getMitigationResponse(deps, config, request);
4
+ const responseHeaders = {};
5
+ let body;
6
+ let status;
7
+ if (result.mitigated) {
8
+ status = 403;
9
+ if (result.mitigation === 'captcha') {
10
+ responseHeaders['content-type'] = 'text/html; charset=UTF-8';
11
+ body = result.body;
12
+ }
13
+ else {
14
+ body = 'Forbidden';
15
+ }
16
+ }
17
+ return {
18
+ response: {
19
+ body,
20
+ status,
21
+ statusText: status?.toString(),
22
+ headers: responseHeaders,
23
+ mitigation: result.mitigation
24
+ },
25
+ sessionStatus: result.sessionStatus,
26
+ setCookie: result.setCookie
27
+ };
28
+ }
29
+ //# sourceMappingURL=mitigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mitigate.js","sourceRoot":"","sources":["../../../src/helpers/mitigate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAA+B,EAC/B,MAAoC,EACpC,OAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACjE,MAAM,eAAe,GAA2B,EAAE,CAAA;IAClD,IAAI,IAAwB,CAAA;IAC5B,IAAI,MAA0B,CAAA;IAC9B,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,MAAM,GAAG,GAAG,CAAA;QACZ,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;YACnC,eAAe,CAAC,cAAc,CAAC,GAAG,0BAA0B,CAAA;YAC5D,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;SACnB;aAAM;YAEL,IAAI,GAAG,WAAW,CAAA;SACnB;KACF;IAED,OAAO;QACL,QAAQ,EAAE;YACR,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC9B,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B;QACD,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ComposeResultResponse } from '@netacea/netaceaintegrationbase';
2
+ import type { AkamaiRuntimeDependencies, AkamaiWorkerConfig } from '../types';
3
+ export declare function processCaptcha(deps: AkamaiRuntimeDependencies, config: Readonly<AkamaiWorkerConfig>, netaceaCookie: string | undefined, clientIP: string, userAgent: string, captchaData: any): Promise<ComposeResultResponse>;
@@ -0,0 +1,7 @@
1
+ import { composeResult } from './composeResult';
2
+ import { makeCaptchaApiCall } from '../mitigation/makeCaptchaApiCall';
3
+ export async function processCaptcha(deps, config, netaceaCookie, clientIP, userAgent, captchaData) {
4
+ const { status, match, mitigate, captcha, body, setCookie } = await makeCaptchaApiCall(deps, config, netaceaCookie, clientIP, userAgent, captchaData);
5
+ return composeResult(config, body, setCookie, status, match, mitigate, captcha, true);
6
+ }
7
+ //# sourceMappingURL=processCaptcha.js.map