@netacea/netaceaintegrationbase 1.3.0 → 1.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.
- package/CHANGELOG.md +59 -0
- package/dist/NetaceaBase.d.ts +14 -114
- package/dist/NetaceaBase.enums.d.ts +35 -0
- package/dist/NetaceaBase.enums.js +42 -0
- package/dist/NetaceaBase.enums.js.map +1 -0
- package/dist/NetaceaBase.js +199 -125
- package/dist/NetaceaBase.js.map +1 -1
- package/dist/NetaceaBase.types.d.ts +112 -0
- package/dist/NetaceaBase.types.js +3 -0
- package/dist/NetaceaBase.types.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/mitataCookie.d.ts +11 -7
- package/dist/mitataCookie.js +40 -19
- package/dist/mitataCookie.js.map +1 -1
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,65 @@
|
|
|
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
|
+
# [1.8.0](https://github.com/Netacea/JavascriptATAIntegration/compare/@netacea/netaceaintegrationbase@1.7.0...@netacea/netaceaintegrationbase@1.8.0) (2021-12-08)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **integrations:** PR-16: Bumped versions ([418e08b](https://github.com/Netacea/JavascriptATAIntegration/commit/418e08bac751b0df6c946c1f1c46fb3af3da3612))
|
|
12
|
+
* **integrations:** PR-31: allow mitata expiry to be configured ([218f0d1](https://github.com/Netacea/JavascriptATAIntegration/commit/218f0d10d3f06d998e7aa18755f73b4977958814))
|
|
13
|
+
* **integrations:** PR-31: remove useFakeTimers() where not necessary ([6db65f7](https://github.com/Netacea/JavascriptATAIntegration/commit/6db65f7aae72b0688b640a37134e29da8fe4f760))
|
|
14
|
+
* **intgegrations:** PR-31: rename mitata.valid to isPrimaryHashValid ([08eddec](https://github.com/Netacea/JavascriptATAIntegration/commit/08eddece2a8abb1641e94f93fb9b3e9ac5cec6cd))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# [1.7.0](https://github.com/Netacea/JavascriptATAIntegration/compare/@netacea/netaceaintegrationbase@1.6.0...@netacea/netaceaintegrationbase@1.7.0) (2021-08-17)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* **SCAL-31:** Fix fail open ([ea8be37](https://github.com/Netacea/JavascriptATAIntegration/commit/ea8be3798631c2fe8b585b7e63f4d40834f7ab6e))
|
|
26
|
+
* **SCAL-31:** Fix path to not use URL lib ([5dfa283](https://github.com/Netacea/JavascriptATAIntegration/commit/5dfa2836663a7527ff650e12cb1eeae1e5b499ad))
|
|
27
|
+
* **SCAL-31:** Fix query test and lint ([1070293](https://github.com/Netacea/JavascriptATAIntegration/commit/1070293263f1456aef51fea54af0d557330594df))
|
|
28
|
+
* **SCAL-31:** Fix unit test ([8cd60b2](https://github.com/Netacea/JavascriptATAIntegration/commit/8cd60b2a88c2909758bde82787542f9d5d0e6e08))
|
|
29
|
+
* **SCAL-31:** Undefined bctype when empty string ([da6d140](https://github.com/Netacea/JavascriptATAIntegration/commit/da6d140ef35bf374a839e388f0f77d515324959e))
|
|
30
|
+
* **SCAL-31:** v2 log format ([b937b85](https://github.com/Netacea/JavascriptATAIntegration/commit/b937b8570a02ddb0d65c7e3e2452fbde2d2ead97))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [1.6.0](https://github.com/Netacea/JavascriptATAIntegration/compare/@netacea/netaceaintegrationbase@1.5.0...@netacea/netaceaintegrationbase@1.6.0) (2021-08-04)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
* **PB-1834:** Batched ingest ([b41a8c6](https://github.com/Netacea/JavascriptATAIntegration/commit/b41a8c6c26f7bf85c107a23bef24c75a82e6098b))
|
|
42
|
+
* **PB-1834:** Batched ingest using cloudfront fully working ([638b7e7](https://github.com/Netacea/JavascriptATAIntegration/commit/638b7e7e80888944c8bfaf7c2c4bae728eee1bd5))
|
|
43
|
+
* **PB-1834:** Removing only and skip and fixing tests ([ef5003f](https://github.com/Netacea/JavascriptATAIntegration/commit/ef5003f0499ea29c14b0dba880581b748f4e0905))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# [1.5.0](https://github.com/Netacea/JavascriptATAIntegration/compare/@netacea/netaceaintegrationbase@1.3.0...@netacea/netaceaintegrationbase@1.5.0) (2021-07-21)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Features
|
|
53
|
+
|
|
54
|
+
* **PB-1750:** Kinesis in more than cloudfront start ([eecb2a1](https://github.com/Netacea/JavascriptATAIntegration/commit/eecb2a18cf2dc947345dd0dbf0f38ea201212f58))
|
|
55
|
+
* **PB-1750:** Kinesis ingest dep added ([513e936](https://github.com/Netacea/JavascriptATAIntegration/commit/513e936a8310957d7823b95a224b0386ecde3610))
|
|
56
|
+
* **PB-1750:** last code, lint and test ([889833e](https://github.com/Netacea/JavascriptATAIntegration/commit/889833e06bf08cec560f0612f06a19444081f4c4))
|
|
57
|
+
* **PB-1750:** PR Comments ([5c0da45](https://github.com/Netacea/JavascriptATAIntegration/commit/5c0da45c15b6bb5eb2805b2268c9d9e0c857a412))
|
|
58
|
+
* **PB-1750:** Publishing modules for testing ([ff46830](https://github.com/Netacea/JavascriptATAIntegration/commit/ff468305f8da5ffc39590d19ea019811dc7ad2f8))
|
|
59
|
+
* **PB-1750:** Try fix deps again ([d55915e](https://github.com/Netacea/JavascriptATAIntegration/commit/d55915ee496e5798f762fd844c2717d52ff5ea2f))
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
6
65
|
# [1.3.0](https://github.com/Netacea/JavascriptATAIntegration/compare/@netacea/netaceaintegrationbase@1.2.0...@netacea/netaceaintegrationbase@1.3.0) (2021-06-23)
|
|
7
66
|
|
|
8
67
|
|
package/dist/NetaceaBase.d.ts
CHANGED
|
@@ -1,50 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
headers: {
|
|
5
|
-
[key: string]: string;
|
|
6
|
-
};
|
|
7
|
-
method: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
8
|
-
body?: any;
|
|
9
|
-
}
|
|
10
|
-
export interface MakeRequestResponse {
|
|
11
|
-
status: number;
|
|
12
|
-
headers: {
|
|
13
|
-
[key: string]: string;
|
|
14
|
-
};
|
|
15
|
-
body?: any;
|
|
16
|
-
}
|
|
17
|
-
export interface NetaceaBaseArgs {
|
|
18
|
-
apiKey: string;
|
|
19
|
-
secretKey?: string;
|
|
20
|
-
captchaSiteKey?: string;
|
|
21
|
-
captchaSecretKey?: string;
|
|
22
|
-
timeout?: number;
|
|
23
|
-
retries?: number;
|
|
24
|
-
ingestServiceUrl?: string;
|
|
25
|
-
mitigationServiceUrl?: string;
|
|
26
|
-
mitigationType?: NetaceaMitigationType;
|
|
27
|
-
}
|
|
1
|
+
import type { ComposeResultResponse, IngestArgs, InjectResponse, MakeRequestArgs, MakeRequestResponse, MitigateResponse, NetaceaBaseArgs, NetaceaMitigationResponse, WebLog, V2WebLog, NetaceaResponseBase } from './NetaceaBase.types';
|
|
2
|
+
import { NetaceaIngestType, NetaceaLogVersion, NetaceaMitigationType } from './NetaceaBase.enums';
|
|
3
|
+
import NetaceaKinesis from '@netacea/kinesisingest';
|
|
28
4
|
interface FindBestMitigationResponse {
|
|
29
5
|
sessionStatus: string;
|
|
30
6
|
mitigation: string;
|
|
31
7
|
parts: NetaceaParts;
|
|
32
8
|
}
|
|
33
|
-
export interface InjectHeaders {
|
|
34
|
-
'x-netacea-match': string;
|
|
35
|
-
'x-netacea-mitigate': string;
|
|
36
|
-
'x-netacea-captcha': string;
|
|
37
|
-
'x-netacea-event-id'?: string;
|
|
38
|
-
}
|
|
39
|
-
export interface ComposeResultResponse {
|
|
40
|
-
body?: string;
|
|
41
|
-
apiCallStatus: number;
|
|
42
|
-
setCookie: string[];
|
|
43
|
-
sessionStatus: string;
|
|
44
|
-
mitigation: string;
|
|
45
|
-
mitigated: boolean;
|
|
46
|
-
injectHeaders?: InjectHeaders;
|
|
47
|
-
}
|
|
48
9
|
interface NetaceaParts {
|
|
49
10
|
match: number;
|
|
50
11
|
mitigate: number;
|
|
@@ -54,66 +15,6 @@ interface APICallResponse {
|
|
|
54
15
|
status: number;
|
|
55
16
|
body?: any;
|
|
56
17
|
}
|
|
57
|
-
export interface IngestArgs {
|
|
58
|
-
ip: string;
|
|
59
|
-
userAgent: string;
|
|
60
|
-
status: string;
|
|
61
|
-
method: string;
|
|
62
|
-
path: string;
|
|
63
|
-
protocol: string;
|
|
64
|
-
referer: string;
|
|
65
|
-
bytesSent: string;
|
|
66
|
-
requestTime: string;
|
|
67
|
-
mitataCookie?: string;
|
|
68
|
-
sessionStatus?: string;
|
|
69
|
-
integrationType?: string;
|
|
70
|
-
integrationVersion?: string;
|
|
71
|
-
}
|
|
72
|
-
export interface WebLog {
|
|
73
|
-
Request: string;
|
|
74
|
-
TimeLocal: string;
|
|
75
|
-
RealIp: string;
|
|
76
|
-
UserAgent: string;
|
|
77
|
-
Status: string;
|
|
78
|
-
RequestTime: string;
|
|
79
|
-
BytesSent: string;
|
|
80
|
-
Referer: string;
|
|
81
|
-
NetaceaUserIdCookie: string;
|
|
82
|
-
NetaceaMitigationApplied: string;
|
|
83
|
-
IntegrationType?: string;
|
|
84
|
-
IntegrationVersion?: string;
|
|
85
|
-
}
|
|
86
|
-
export declare enum NetaceaMitigationType {
|
|
87
|
-
/**
|
|
88
|
-
* Run Netacea with mitigation mode enabled.
|
|
89
|
-
* This will serve Captcha pages and Forbidden pages when instructed to do so
|
|
90
|
-
*/
|
|
91
|
-
MITIGATE = "MITIGATE",
|
|
92
|
-
/**
|
|
93
|
-
* Run Netacea with Inject mode enabled.
|
|
94
|
-
* The end-user will only receive a cookie.
|
|
95
|
-
* The origin server will receive 3 headers,
|
|
96
|
-
*
|
|
97
|
-
* 'x-netacea-match' indicating what was matched (nothing(0), ua(1), ip(2), etc...)
|
|
98
|
-
*
|
|
99
|
-
* 'x-netacea-mitigate' indicating what action would've be taken (nothing (0), block(1), allow(2), etc...)
|
|
100
|
-
*
|
|
101
|
-
* 'x-netacea-captcha' indicating what captcha action would've been taken
|
|
102
|
-
*/
|
|
103
|
-
INJECT = "INJECT",
|
|
104
|
-
/**
|
|
105
|
-
* Run Netacea with Ingest only mode
|
|
106
|
-
* No cookies will be set for the end user.
|
|
107
|
-
* No mitigations will be applied.
|
|
108
|
-
*
|
|
109
|
-
* **It's recommended to start in this mode!**
|
|
110
|
-
*/
|
|
111
|
-
INGEST = "INGEST"
|
|
112
|
-
}
|
|
113
|
-
export interface NetaceaResponseBase {
|
|
114
|
-
setCookie?: string[];
|
|
115
|
-
sessionStatus: string;
|
|
116
|
-
}
|
|
117
18
|
interface ProcessMitigateRequestArgs {
|
|
118
19
|
url: string;
|
|
119
20
|
method: string;
|
|
@@ -123,14 +24,6 @@ interface ProcessMitigateRequestArgs {
|
|
|
123
24
|
userAgent: string;
|
|
124
25
|
getBodyFn: () => Promise<any>;
|
|
125
26
|
}
|
|
126
|
-
export interface MitigateResponse<T = any> extends NetaceaResponseBase {
|
|
127
|
-
response?: T;
|
|
128
|
-
}
|
|
129
|
-
export interface InjectResponse<T = any> extends MitigateResponse<T> {
|
|
130
|
-
injectHeaders: InjectHeaders | undefined;
|
|
131
|
-
response?: T | undefined;
|
|
132
|
-
}
|
|
133
|
-
export declare type NetaceaMitigationResponse<T> = MitigateResponse<T> | InjectResponse<T> | undefined;
|
|
134
27
|
export default abstract class NetaceaBase<RequestArgs = any, Response = any> {
|
|
135
28
|
protected apiKey: string;
|
|
136
29
|
protected secretKey?: string;
|
|
@@ -138,23 +31,30 @@ export default abstract class NetaceaBase<RequestArgs = any, Response = any> {
|
|
|
138
31
|
protected retries: number;
|
|
139
32
|
protected captchaSiteKey?: string;
|
|
140
33
|
protected captchaSecretKey?: string;
|
|
34
|
+
protected ingestType: NetaceaIngestType;
|
|
35
|
+
protected readonly logVersion: NetaceaLogVersion;
|
|
36
|
+
protected mitataCookieExpirySeconds: number;
|
|
141
37
|
private readonly mitigationServiceUrl;
|
|
142
38
|
private readonly ingestServiceUrl;
|
|
143
39
|
protected readonly mitigationType: NetaceaMitigationType;
|
|
144
40
|
protected abstract makeRequest(args: MakeRequestArgs): Promise<MakeRequestResponse>;
|
|
145
41
|
protected abstract mitigate(args: RequestArgs): Promise<MitigateResponse<Response>>;
|
|
146
42
|
protected abstract inject(args: RequestArgs): Promise<InjectResponse>;
|
|
43
|
+
protected readonly kinesis?: NetaceaKinesis;
|
|
147
44
|
abstract ingest(...args: any[]): Promise<any>;
|
|
148
45
|
abstract getCookieHeader(args: RequestArgs): string | null | undefined;
|
|
149
|
-
constructor({ apiKey, secretKey, timeout, retries, mitigationServiceUrl, ingestServiceUrl, mitigationType, captchaSiteKey, captchaSecretKey }: NetaceaBaseArgs);
|
|
46
|
+
constructor({ apiKey, secretKey, timeout, retries, mitigationServiceUrl, ingestServiceUrl, mitigationType, captchaSiteKey, captchaSecretKey, ingestType, kinesis, logVersion, mitataCookieExpirySeconds }: NetaceaBaseArgs);
|
|
150
47
|
runMitigation(args: RequestArgs): Promise<NetaceaMitigationResponse<Response>>;
|
|
151
48
|
protected readCookie(cookieName: string, cookies: string | null | undefined): string | undefined;
|
|
152
49
|
protected callIngest(args: IngestArgs): Promise<void>;
|
|
153
50
|
private makeIngestApiCall;
|
|
154
|
-
|
|
51
|
+
private constructV2WebLog;
|
|
52
|
+
private constructV1WebLog;
|
|
53
|
+
protected constructWebLog(args: IngestArgs): WebLog | V2WebLog;
|
|
155
54
|
protected check(netaceaCookie: string | undefined, clientIP: string, userAgent: string, captchaCookie?: string): Promise<ComposeResultResponse>;
|
|
55
|
+
private createMitata;
|
|
156
56
|
private processCaptcha;
|
|
157
|
-
private
|
|
57
|
+
private getMitataCaptchaFromHeaders;
|
|
158
58
|
private makeCaptchaAPICall;
|
|
159
59
|
private getApiCallResponseFromResponse;
|
|
160
60
|
private buildCookieFromValues;
|
|
@@ -165,7 +65,7 @@ export default abstract class NetaceaBase<RequestArgs = any, Response = any> {
|
|
|
165
65
|
protected APIError(response: APICallResponse): Error;
|
|
166
66
|
protected isUrlCaptchaPost(url: string, method: string): boolean;
|
|
167
67
|
protected processMitigateRequest(args: ProcessMitigateRequestArgs): Promise<ComposeResultResponse>;
|
|
168
|
-
protected
|
|
68
|
+
protected setIngestOnlyMitataCookie(userId: string | undefined): NetaceaResponseBase;
|
|
169
69
|
protected processIngest(args: RequestArgs): NetaceaResponseBase;
|
|
170
70
|
}
|
|
171
71
|
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare enum NetaceaIngestType {
|
|
2
|
+
HTTP = "HTTP",
|
|
3
|
+
KINESIS = "KINESIS"
|
|
4
|
+
}
|
|
5
|
+
export declare enum NetaceaLogVersion {
|
|
6
|
+
V1 = "V1",
|
|
7
|
+
V2 = "V2"
|
|
8
|
+
}
|
|
9
|
+
export declare enum NetaceaMitigationType {
|
|
10
|
+
/**
|
|
11
|
+
* Run Netacea with mitigation mode enabled.
|
|
12
|
+
* This will serve Captcha pages and Forbidden pages when instructed to do so
|
|
13
|
+
*/
|
|
14
|
+
MITIGATE = "MITIGATE",
|
|
15
|
+
/**
|
|
16
|
+
* Run Netacea with Inject mode enabled.
|
|
17
|
+
* The end-user will only receive a cookie.
|
|
18
|
+
* The origin server will receive 3 headers,
|
|
19
|
+
*
|
|
20
|
+
* 'x-netacea-match' indicating what was matched (nothing(0), ua(1), ip(2), etc...)
|
|
21
|
+
*
|
|
22
|
+
* 'x-netacea-mitigate' indicating what action would've be taken (nothing (0), block(1), allow(2), etc...)
|
|
23
|
+
*
|
|
24
|
+
* 'x-netacea-captcha' indicating what captcha action would've been taken
|
|
25
|
+
*/
|
|
26
|
+
INJECT = "INJECT",
|
|
27
|
+
/**
|
|
28
|
+
* Run Netacea with Ingest only mode
|
|
29
|
+
* No cookies will be set for the end user.
|
|
30
|
+
* No mitigations will be applied.
|
|
31
|
+
*
|
|
32
|
+
* **It's recommended to start in this mode!**
|
|
33
|
+
*/
|
|
34
|
+
INGEST = "INGEST"
|
|
35
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NetaceaMitigationType = exports.NetaceaLogVersion = exports.NetaceaIngestType = void 0;
|
|
4
|
+
var NetaceaIngestType;
|
|
5
|
+
(function (NetaceaIngestType) {
|
|
6
|
+
NetaceaIngestType["HTTP"] = "HTTP";
|
|
7
|
+
NetaceaIngestType["KINESIS"] = "KINESIS";
|
|
8
|
+
})(NetaceaIngestType = exports.NetaceaIngestType || (exports.NetaceaIngestType = {}));
|
|
9
|
+
var NetaceaLogVersion;
|
|
10
|
+
(function (NetaceaLogVersion) {
|
|
11
|
+
NetaceaLogVersion["V1"] = "V1";
|
|
12
|
+
NetaceaLogVersion["V2"] = "V2";
|
|
13
|
+
})(NetaceaLogVersion = exports.NetaceaLogVersion || (exports.NetaceaLogVersion = {}));
|
|
14
|
+
var NetaceaMitigationType;
|
|
15
|
+
(function (NetaceaMitigationType) {
|
|
16
|
+
/**
|
|
17
|
+
* Run Netacea with mitigation mode enabled.
|
|
18
|
+
* This will serve Captcha pages and Forbidden pages when instructed to do so
|
|
19
|
+
*/
|
|
20
|
+
NetaceaMitigationType["MITIGATE"] = "MITIGATE";
|
|
21
|
+
/**
|
|
22
|
+
* Run Netacea with Inject mode enabled.
|
|
23
|
+
* The end-user will only receive a cookie.
|
|
24
|
+
* The origin server will receive 3 headers,
|
|
25
|
+
*
|
|
26
|
+
* 'x-netacea-match' indicating what was matched (nothing(0), ua(1), ip(2), etc...)
|
|
27
|
+
*
|
|
28
|
+
* 'x-netacea-mitigate' indicating what action would've be taken (nothing (0), block(1), allow(2), etc...)
|
|
29
|
+
*
|
|
30
|
+
* 'x-netacea-captcha' indicating what captcha action would've been taken
|
|
31
|
+
*/
|
|
32
|
+
NetaceaMitigationType["INJECT"] = "INJECT";
|
|
33
|
+
/**
|
|
34
|
+
* Run Netacea with Ingest only mode
|
|
35
|
+
* No cookies will be set for the end user.
|
|
36
|
+
* No mitigations will be applied.
|
|
37
|
+
*
|
|
38
|
+
* **It's recommended to start in this mode!**
|
|
39
|
+
*/
|
|
40
|
+
NetaceaMitigationType["INGEST"] = "INGEST";
|
|
41
|
+
})(NetaceaMitigationType = exports.NetaceaMitigationType || (exports.NetaceaMitigationType = {}));
|
|
42
|
+
//# sourceMappingURL=NetaceaBase.enums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetaceaBase.enums.js","sourceRoot":"","sources":["../src/NetaceaBase.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,wCAAmB,CAAA;AACrB,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,8BAAS,CAAA;IACT,8BAAS,CAAA;AACX,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,qBA0BX;AA1BD,WAAY,qBAAqB;IAC/B;;;OAGG;IACH,8CAAqB,CAAA;IACrB;;;;;;;;;;OAUG;IACH,0CAAiB,CAAA;IACjB;;;;;;OAMG;IACH,0CAAiB,CAAA;AACnB,CAAC,EA1BW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA0BhC"}
|
package/dist/NetaceaBase.js
CHANGED
|
@@ -1,42 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
const NetaceaBase_enums_1 = require("./NetaceaBase.enums");
|
|
4
4
|
const dictionary_1 = require("./dictionary");
|
|
5
5
|
const mitataCookie_1 = require("./mitataCookie");
|
|
6
|
+
const kinesisingest_1 = require("@netacea/kinesisingest");
|
|
6
7
|
const ONE_HOUR_IN_SECONDS = 60 * 60;
|
|
7
8
|
const ONE_DAY_IN_SECONDS = ONE_HOUR_IN_SECONDS * 24;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
*
|
|
24
|
-
* 'x-netacea-captcha' indicating what captcha action would've been taken
|
|
25
|
-
*/
|
|
26
|
-
NetaceaMitigationType["INJECT"] = "INJECT";
|
|
27
|
-
/**
|
|
28
|
-
* Run Netacea with Ingest only mode
|
|
29
|
-
* No cookies will be set for the end user.
|
|
30
|
-
* No mitigations will be applied.
|
|
31
|
-
*
|
|
32
|
-
* **It's recommended to start in this mode!**
|
|
33
|
-
*/
|
|
34
|
-
NetaceaMitigationType["INGEST"] = "INGEST";
|
|
35
|
-
})(NetaceaMitigationType = exports.NetaceaMitigationType || (exports.NetaceaMitigationType = {}));
|
|
9
|
+
function correctTimeout(timeout) {
|
|
10
|
+
return timeout <= 0 ? defaultTimeout : timeout;
|
|
11
|
+
}
|
|
12
|
+
function correctRetries(retries) {
|
|
13
|
+
if (retries < 1) {
|
|
14
|
+
return 1;
|
|
15
|
+
}
|
|
16
|
+
return retries > maximumRetries ? maximumRetries : retries;
|
|
17
|
+
}
|
|
18
|
+
function safeParseInt(value, defaultValue = 0) {
|
|
19
|
+
if (isNaN(value)) {
|
|
20
|
+
return defaultValue;
|
|
21
|
+
}
|
|
22
|
+
return parseInt(value);
|
|
23
|
+
}
|
|
36
24
|
const maximumRetries = 5;
|
|
37
25
|
const defaultTimeout = 3000;
|
|
26
|
+
function configureMitataExpiry(mitigationType, expirySeconds) {
|
|
27
|
+
if (expirySeconds === undefined) {
|
|
28
|
+
return mitigationType === NetaceaBase_enums_1.NetaceaMitigationType.INGEST ? ONE_HOUR_IN_SECONDS : 60;
|
|
29
|
+
}
|
|
30
|
+
return expirySeconds;
|
|
31
|
+
}
|
|
38
32
|
class NetaceaBase {
|
|
39
|
-
|
|
33
|
+
// eslint-disable-next-line max-lines-per-function
|
|
34
|
+
constructor({ apiKey, secretKey, timeout = defaultTimeout, retries = maximumRetries, mitigationServiceUrl = 'https://mitigations.netacea.net', ingestServiceUrl = 'https://ingest.netacea.net', mitigationType = NetaceaBase_enums_1.NetaceaMitigationType.INGEST, captchaSiteKey, captchaSecretKey, ingestType = NetaceaBase_enums_1.NetaceaIngestType.HTTP, kinesis, logVersion, mitataCookieExpirySeconds }) {
|
|
40
35
|
if (apiKey === null || apiKey === undefined) {
|
|
41
36
|
throw new Error('apiKey is a required parameter');
|
|
42
37
|
}
|
|
@@ -45,43 +40,53 @@ class NetaceaBase {
|
|
|
45
40
|
this.mitigationServiceUrl = mitigationServiceUrl;
|
|
46
41
|
this.ingestServiceUrl = ingestServiceUrl;
|
|
47
42
|
this.mitigationType = mitigationType;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
this.ingestType = ingestType !== null && ingestType !== void 0 ? ingestType : NetaceaBase_enums_1.NetaceaIngestType.HTTP;
|
|
44
|
+
this.logVersion = logVersion !== null && logVersion !== void 0 ? logVersion : NetaceaBase_enums_1.NetaceaLogVersion.V1;
|
|
45
|
+
if (this.ingestType === NetaceaBase_enums_1.NetaceaIngestType.KINESIS) {
|
|
46
|
+
if (kinesis === undefined) {
|
|
47
|
+
// eslint-disable-next-line no-console
|
|
48
|
+
console.warn(`NETACEA WARN: no kinesis args provided, when ingestType is ${this.ingestType}`);
|
|
52
49
|
}
|
|
53
50
|
else {
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
this.kinesis = new kinesisingest_1.default({
|
|
52
|
+
...kinesis,
|
|
53
|
+
apiKey: this.apiKey
|
|
54
|
+
});
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
|
-
if (
|
|
59
|
-
this.
|
|
60
|
-
|
|
61
|
-
else if (retries > maximumRetries) {
|
|
62
|
-
this.retries = maximumRetries;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
this.retries = retries;
|
|
66
|
-
}
|
|
67
|
-
if (timeout < 1) {
|
|
68
|
-
this.timeout = defaultTimeout;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.timeout = timeout;
|
|
57
|
+
if (captchaSiteKey !== undefined || captchaSecretKey !== undefined) {
|
|
58
|
+
this.captchaSiteKey = captchaSiteKey;
|
|
59
|
+
this.captchaSecretKey = captchaSecretKey;
|
|
72
60
|
}
|
|
61
|
+
this.timeout = correctTimeout(timeout);
|
|
62
|
+
this.retries = correctRetries(retries);
|
|
63
|
+
this.mitataCookieExpirySeconds = configureMitataExpiry(mitigationType, mitataCookieExpirySeconds);
|
|
73
64
|
}
|
|
74
65
|
async runMitigation(args) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
66
|
+
try {
|
|
67
|
+
switch (this.mitigationType) {
|
|
68
|
+
case NetaceaBase_enums_1.NetaceaMitigationType.MITIGATE:
|
|
69
|
+
return await this.mitigate(args);
|
|
70
|
+
case NetaceaBase_enums_1.NetaceaMitigationType.INJECT:
|
|
71
|
+
return await this.inject(args);
|
|
72
|
+
case NetaceaBase_enums_1.NetaceaMitigationType.INGEST:
|
|
73
|
+
return this.processIngest(args);
|
|
74
|
+
default:
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
76
|
+
throw new Error(`Netacea Error: Mitigation type ${this.mitigationType} not recognised`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
// eslint-disable-next-line no-console
|
|
81
|
+
console.error('Netacea FAILOPEN Error:', e);
|
|
82
|
+
return {
|
|
83
|
+
injectHeaders: {
|
|
84
|
+
'x-netacea-captcha': '0',
|
|
85
|
+
'x-netacea-match': '0',
|
|
86
|
+
'x-netacea-mitigate': '0'
|
|
87
|
+
},
|
|
88
|
+
sessionStatus: ''
|
|
89
|
+
};
|
|
85
90
|
}
|
|
86
91
|
}
|
|
87
92
|
readCookie(cookieName, cookies) {
|
|
@@ -96,13 +101,32 @@ class NetaceaBase {
|
|
|
96
101
|
}
|
|
97
102
|
async callIngest(args) {
|
|
98
103
|
const body = this.constructWebLog(args);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
if (this.ingestType === NetaceaBase_enums_1.NetaceaIngestType.KINESIS) {
|
|
105
|
+
if (this.kinesis === undefined) {
|
|
106
|
+
// eslint-disable-next-line no-console
|
|
107
|
+
console.error('Netacea Error: Unable to log as Kinesis has not been defined.');
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
await this.kinesis.ingest({
|
|
112
|
+
...body,
|
|
113
|
+
apiKey: this.apiKey
|
|
114
|
+
}, this.makeRequest);
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
// eslint-disable-next-line no-console
|
|
118
|
+
console.error('NETACEA Error: ', e.message);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const headers = {
|
|
123
|
+
'X-Netacea-API-Key': this.apiKey,
|
|
124
|
+
'content-type': 'application/json'
|
|
125
|
+
};
|
|
126
|
+
const res = await this.makeIngestApiCall(headers, body);
|
|
127
|
+
if (res.status !== 200) {
|
|
128
|
+
throw this.APIError(res);
|
|
129
|
+
}
|
|
106
130
|
}
|
|
107
131
|
}
|
|
108
132
|
async makeIngestApiCall(headers, body) {
|
|
@@ -111,21 +135,57 @@ class NetaceaBase {
|
|
|
111
135
|
method: 'POST',
|
|
112
136
|
path: '/',
|
|
113
137
|
headers,
|
|
114
|
-
body: JSON.stringify(body)
|
|
138
|
+
body: JSON.stringify(body),
|
|
139
|
+
timeout: this.timeout
|
|
115
140
|
});
|
|
116
141
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
142
|
+
constructV2WebLog({ ip, userAgent, status, method, path, protocol, referer, bytesSent, requestTime, mitataCookie, sessionStatus, integrationType, integrationVersion }) {
|
|
143
|
+
var _a;
|
|
144
|
+
const now = new Date();
|
|
145
|
+
// Paths must be prefixed with '/'
|
|
146
|
+
if (path[0] !== '/') {
|
|
147
|
+
path = `/${path}`;
|
|
148
|
+
}
|
|
149
|
+
let actualQuery;
|
|
150
|
+
const splitPath = path.split('?');
|
|
151
|
+
if (splitPath.length > 1) {
|
|
152
|
+
actualQuery = `?${splitPath[1]}`;
|
|
153
|
+
}
|
|
154
|
+
const actualPath = splitPath[0];
|
|
155
|
+
const userId = (_a = mitataCookie_1.matchMitataCookie(mitataCookie)) === null || _a === void 0 ? void 0 : _a.userId;
|
|
156
|
+
const log = {
|
|
157
|
+
status,
|
|
158
|
+
method,
|
|
159
|
+
'bytes_sent': safeParseInt(bytesSent),
|
|
160
|
+
'referrer': referer === '' ? undefined : referer,
|
|
161
|
+
'request': `${method} ${actualPath}${actualQuery !== null && actualQuery !== void 0 ? actualQuery : ''} ${protocol}`,
|
|
162
|
+
'request_time': safeParseInt(requestTime),
|
|
163
|
+
'integration_type': integrationType,
|
|
164
|
+
'integration_version': integrationVersion,
|
|
165
|
+
'client': ip,
|
|
166
|
+
'user_agent': userAgent,
|
|
167
|
+
'bc_type': sessionStatus === '' ? undefined : sessionStatus,
|
|
168
|
+
'hour': now.getUTCHours(),
|
|
169
|
+
'minute': now.getUTCMinutes(),
|
|
170
|
+
// '2021-08-04T14:22:41.155Z' = toISOString()
|
|
171
|
+
'@timestamp': now.toISOString().replace('Z', '+00:00'),
|
|
172
|
+
'path': actualPath,
|
|
173
|
+
protocol,
|
|
174
|
+
'query': actualQuery,
|
|
175
|
+
'user_id': userId
|
|
176
|
+
};
|
|
177
|
+
return log;
|
|
178
|
+
}
|
|
179
|
+
constructV1WebLog({ ip, userAgent, status, method, path, protocol, referer, bytesSent, requestTime, mitataCookie, sessionStatus, integrationType, integrationVersion }) {
|
|
180
|
+
const timestamp = new Date().toUTCString();
|
|
121
181
|
return {
|
|
122
|
-
Request:
|
|
182
|
+
Request: `${method} ${path} ${protocol}`,
|
|
123
183
|
TimeLocal: timestamp,
|
|
124
184
|
RealIp: ip,
|
|
125
185
|
UserAgent: userAgent,
|
|
126
186
|
Status: status,
|
|
127
|
-
RequestTime: requestTime,
|
|
128
|
-
BytesSent: bytesSent ===
|
|
187
|
+
RequestTime: requestTime === null || requestTime === void 0 ? void 0 : requestTime.toString(),
|
|
188
|
+
BytesSent: bytesSent === null || bytesSent === void 0 ? void 0 : bytesSent.toString(),
|
|
129
189
|
Referer: referer === '' ? '-' : referer,
|
|
130
190
|
NetaceaUserIdCookie: mitataCookie !== null && mitataCookie !== void 0 ? mitataCookie : '',
|
|
131
191
|
NetaceaMitigationApplied: sessionStatus !== null && sessionStatus !== void 0 ? sessionStatus : '',
|
|
@@ -133,21 +193,31 @@ class NetaceaBase {
|
|
|
133
193
|
IntegrationVersion: integrationVersion !== null && integrationVersion !== void 0 ? integrationVersion : ''
|
|
134
194
|
};
|
|
135
195
|
}
|
|
196
|
+
constructWebLog(args) {
|
|
197
|
+
args.bytesSent = args.bytesSent === '' ? '0' : args.bytesSent;
|
|
198
|
+
if (this.logVersion === NetaceaBase_enums_1.NetaceaLogVersion.V2) {
|
|
199
|
+
return this.constructV2WebLog(args);
|
|
200
|
+
}
|
|
201
|
+
return this.constructV1WebLog(args);
|
|
202
|
+
}
|
|
136
203
|
async check(netaceaCookie, clientIP, userAgent, captchaCookie) {
|
|
204
|
+
var _a, _b;
|
|
137
205
|
let status, match, mitigate, captcha, body, setCookie, eventId;
|
|
138
206
|
if (this.secretKey === undefined) {
|
|
139
207
|
throw new Error('Secret key is required to mitigate');
|
|
140
208
|
}
|
|
141
|
-
const cookieInfo = mitataCookie_1.
|
|
142
|
-
if (!cookieInfo.
|
|
209
|
+
const cookieInfo = mitataCookie_1.checkMitataCookie(netaceaCookie, clientIP, this.secretKey);
|
|
210
|
+
if (!cookieInfo.isPrimaryHashValid || cookieInfo.requiresReissue) {
|
|
143
211
|
// Get latest mitigation information
|
|
144
|
-
const result = await this.makeMitigateAPICall(
|
|
212
|
+
const result = await this.makeMitigateAPICall((_a = cookieInfo.mitata) === null || _a === void 0 ? void 0 : _a.userId, clientIP, userAgent, captchaCookie);
|
|
145
213
|
status = result.status;
|
|
146
214
|
match = result.match;
|
|
147
215
|
mitigate = result.mitigate;
|
|
148
216
|
captcha = result.captcha;
|
|
149
217
|
body = result.body;
|
|
150
|
-
setCookie =
|
|
218
|
+
setCookie = [
|
|
219
|
+
this.createMitata(clientIP, (_b = cookieInfo.mitata) === null || _b === void 0 ? void 0 : _b.userId, match, mitigate, captcha, result.mitataMaxAge)
|
|
220
|
+
];
|
|
151
221
|
eventId = result.eventId;
|
|
152
222
|
}
|
|
153
223
|
else {
|
|
@@ -160,38 +230,40 @@ class NetaceaBase {
|
|
|
160
230
|
}
|
|
161
231
|
return this.composeResult(body, setCookie, status, match, mitigate, captcha, false, eventId);
|
|
162
232
|
}
|
|
233
|
+
createMitata(clientIP, userId, match, mitigate, captcha, maxAge = 86400, expiry = Math.floor(Date.now() / 1000) + this.mitataCookieExpirySeconds) {
|
|
234
|
+
if (this.secretKey === undefined) {
|
|
235
|
+
throw new Error('Cannot build cookie without secret key.');
|
|
236
|
+
}
|
|
237
|
+
const mitataCode = [match, mitigate, captcha].join('');
|
|
238
|
+
const mitataValue = mitataCookie_1.createMitataCookie(clientIP, userId, expiry, this.secretKey, mitataCode);
|
|
239
|
+
return this.buildCookieFromValues('_mitata', mitataValue, maxAge, '/');
|
|
240
|
+
}
|
|
163
241
|
async processCaptcha(netaceaCookie, clientIP, userAgent, captchaData) {
|
|
164
242
|
const { status, match, mitigate, captcha, body, setCookie } = await this.makeCaptchaAPICall(netaceaCookie, clientIP, userAgent, captchaData);
|
|
165
243
|
return this.composeResult(body, setCookie, status, match, mitigate, captcha, true);
|
|
166
244
|
}
|
|
167
|
-
|
|
168
|
-
const setCookie = [];
|
|
169
|
-
const mitata = headers[dictionary_1.netaceaHeaders.mitata];
|
|
170
|
-
const mitataExpiry = parseInt(headers[dictionary_1.netaceaHeaders.mitataExpiry]);
|
|
171
|
-
const mitataCookie = this.buildCookieFromValues('_mitata', mitata, mitataExpiry);
|
|
172
|
-
if (mitataCookie !== undefined) {
|
|
173
|
-
setCookie.push(mitataCookie);
|
|
174
|
-
}
|
|
245
|
+
getMitataCaptchaFromHeaders(headers) {
|
|
175
246
|
if (Object.prototype.hasOwnProperty.call(headers, dictionary_1.netaceaHeaders.mitataCaptcha)) {
|
|
176
247
|
const mitataCaptcha = headers[dictionary_1.netaceaHeaders.mitataCaptcha];
|
|
177
248
|
const mitataCaptchaExpiry = parseInt(headers[dictionary_1.netaceaHeaders.mitataCaptchaExpiry]);
|
|
178
249
|
const mitataCaptchaCookie = this.buildCookieFromValues('_mitatacaptcha', mitataCaptcha, mitataCaptchaExpiry);
|
|
179
250
|
if (mitataCaptchaCookie !== undefined) {
|
|
180
|
-
|
|
251
|
+
return mitataCaptchaCookie;
|
|
181
252
|
}
|
|
182
253
|
}
|
|
183
|
-
return
|
|
254
|
+
return undefined;
|
|
184
255
|
}
|
|
185
256
|
async makeCaptchaAPICall(netaceaCookie, clientIP, userAgent, captchaData) {
|
|
186
257
|
const headers = {
|
|
187
258
|
'X-Netacea-API-Key': this.apiKey,
|
|
188
259
|
'X-Netacea-Client-IP': clientIP,
|
|
189
260
|
'user-agent': userAgent,
|
|
190
|
-
'cookie': this.buildCookieHeader({
|
|
191
|
-
_mitata: netaceaCookie
|
|
192
|
-
}),
|
|
193
261
|
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
|
|
194
262
|
};
|
|
263
|
+
const mitata = mitataCookie_1.matchMitataCookie(netaceaCookie);
|
|
264
|
+
if (mitata !== undefined) {
|
|
265
|
+
headers['X-Netacea-UserId'] = mitata.userId;
|
|
266
|
+
}
|
|
195
267
|
if (this.captchaSiteKey !== undefined && this.captchaSecretKey !== undefined) {
|
|
196
268
|
headers['X-Netacea-Captcha-Site-Key'] = this.captchaSiteKey;
|
|
197
269
|
headers['X-Netacea-Captcha-Secret-Key'] = this.captchaSecretKey;
|
|
@@ -201,18 +273,28 @@ class NetaceaBase {
|
|
|
201
273
|
path: '/AtaVerifyCaptcha',
|
|
202
274
|
headers,
|
|
203
275
|
method: 'POST',
|
|
204
|
-
body: captchaData
|
|
276
|
+
body: captchaData,
|
|
277
|
+
timeout: this.timeout
|
|
205
278
|
});
|
|
206
|
-
return this.getApiCallResponseFromResponse(res);
|
|
279
|
+
return this.getApiCallResponseFromResponse(res, mitata === null || mitata === void 0 ? void 0 : mitata.userId, clientIP);
|
|
207
280
|
}
|
|
208
|
-
getApiCallResponseFromResponse(response) {
|
|
281
|
+
getApiCallResponseFromResponse(response, userId, clientIP) {
|
|
209
282
|
if (response.status !== 200) {
|
|
210
283
|
throw this.APIError(response);
|
|
211
284
|
}
|
|
212
285
|
const match = parseInt(response.headers[dictionary_1.netaceaHeaders.match]);
|
|
213
286
|
const mitigate = parseInt(response.headers[dictionary_1.netaceaHeaders.mitigate]);
|
|
214
287
|
const captcha = parseInt(response.headers[dictionary_1.netaceaHeaders.captcha]);
|
|
215
|
-
|
|
288
|
+
let mitataMaxAge = parseInt(response.headers[dictionary_1.netaceaHeaders.mitataExpiry]);
|
|
289
|
+
if (isNaN(mitataMaxAge)) {
|
|
290
|
+
mitataMaxAge = 86400;
|
|
291
|
+
}
|
|
292
|
+
const mitata = this.createMitata(clientIP, userId, match, mitigate, captcha);
|
|
293
|
+
const mitataCaptcha = this.getMitataCaptchaFromHeaders(response.headers);
|
|
294
|
+
const setCookie = [
|
|
295
|
+
mitata,
|
|
296
|
+
mitataCaptcha
|
|
297
|
+
].filter(c => c !== undefined);
|
|
216
298
|
const eventId = response.headers[dictionary_1.netaceaHeaders.eventId];
|
|
217
299
|
return {
|
|
218
300
|
status: response.status,
|
|
@@ -221,14 +303,12 @@ class NetaceaBase {
|
|
|
221
303
|
captcha,
|
|
222
304
|
setCookie,
|
|
223
305
|
body: response.body,
|
|
224
|
-
eventId
|
|
306
|
+
eventId,
|
|
307
|
+
mitataMaxAge
|
|
225
308
|
};
|
|
226
309
|
}
|
|
227
310
|
buildCookieFromValues(cookieName, value, maxAge, path = '/') {
|
|
228
|
-
|
|
229
|
-
return `${cookieName}=${value}; Max-Age=${maxAge}; Path=${path}`;
|
|
230
|
-
}
|
|
231
|
-
return undefined;
|
|
311
|
+
return `${cookieName}=${value}; Max-Age=${maxAge}; Path=${path}`;
|
|
232
312
|
}
|
|
233
313
|
buildCookieHeader(cookies) {
|
|
234
314
|
let cookiestr = '';
|
|
@@ -242,16 +322,18 @@ class NetaceaBase {
|
|
|
242
322
|
}
|
|
243
323
|
return cookiestr;
|
|
244
324
|
}
|
|
245
|
-
async makeMitigateAPICall(
|
|
325
|
+
async makeMitigateAPICall(userId, clientIP, userAgent, captchaCookie) {
|
|
246
326
|
const headers = {
|
|
247
327
|
'X-Netacea-API-Key': this.apiKey,
|
|
248
328
|
'X-Netacea-Client-IP': clientIP,
|
|
249
329
|
'user-agent': userAgent,
|
|
250
330
|
'cookie': this.buildCookieHeader({
|
|
251
|
-
_mitata: netaceaCookie,
|
|
252
331
|
_mitatacaptcha: captchaCookie
|
|
253
332
|
})
|
|
254
333
|
};
|
|
334
|
+
if (userId !== undefined) {
|
|
335
|
+
headers['X-Netacea-UserId'] = userId;
|
|
336
|
+
}
|
|
255
337
|
if (this.captchaSiteKey !== undefined && this.captchaSecretKey !== undefined) {
|
|
256
338
|
headers['X-Netacea-Captcha-Site-Key'] = this.captchaSiteKey;
|
|
257
339
|
headers['X-Netacea-Captcha-Secret-Key'] = this.captchaSecretKey;
|
|
@@ -260,9 +342,10 @@ class NetaceaBase {
|
|
|
260
342
|
host: this.mitigationServiceUrl,
|
|
261
343
|
path: '/',
|
|
262
344
|
headers,
|
|
263
|
-
method: 'GET'
|
|
345
|
+
method: 'GET',
|
|
346
|
+
timeout: this.timeout
|
|
264
347
|
});
|
|
265
|
-
return this.getApiCallResponseFromResponse(res);
|
|
348
|
+
return this.getApiCallResponseFromResponse(res, userId, clientIP);
|
|
266
349
|
}
|
|
267
350
|
composeResult(body, setCookie, status, match, mitigate, captcha, isCaptchaPost, eventId) {
|
|
268
351
|
const bestMitigation = this.findBestMitigation(match, mitigate, captcha, isCaptchaPost);
|
|
@@ -278,7 +361,7 @@ class NetaceaBase {
|
|
|
278
361
|
dictionary_1.mitigationTypes.captchaPass
|
|
279
362
|
].includes(bestMitigation.mitigation)
|
|
280
363
|
};
|
|
281
|
-
if (this.mitigationType === NetaceaMitigationType.INJECT) {
|
|
364
|
+
if (this.mitigationType === NetaceaBase_enums_1.NetaceaMitigationType.INJECT) {
|
|
282
365
|
const injectHeaders = {
|
|
283
366
|
'x-netacea-match': bestMitigation.parts.match.toString(),
|
|
284
367
|
'x-netacea-mitigate': bestMitigation.parts.mitigate.toString(),
|
|
@@ -312,7 +395,7 @@ class NetaceaBase {
|
|
|
312
395
|
mitigation = bestCaptchaMitigation;
|
|
313
396
|
}
|
|
314
397
|
}
|
|
315
|
-
if (this.mitigationType === NetaceaMitigationType.INJECT) {
|
|
398
|
+
if (this.mitigationType === NetaceaBase_enums_1.NetaceaMitigationType.INJECT) {
|
|
316
399
|
mitigation = dictionary_1.mitigationTypes.none;
|
|
317
400
|
}
|
|
318
401
|
return {
|
|
@@ -348,35 +431,26 @@ class NetaceaBase {
|
|
|
348
431
|
? this.processCaptcha(args.mitata, args.clientIp, args.userAgent, await args.getBodyFn())
|
|
349
432
|
: this.check(args.mitata, args.clientIp, args.userAgent, args.mitataCaptcha));
|
|
350
433
|
}
|
|
351
|
-
|
|
352
|
-
const
|
|
353
|
-
const userCookie = mitataCookie_1.createWorkerCookie(userId, expiryTime, saltKey);
|
|
354
|
-
const mitataCookie = this.buildCookieFromValues('_mitata', userCookie, ONE_DAY_IN_SECONDS);
|
|
355
|
-
const setCookie = [];
|
|
356
|
-
if (mitataCookie !== undefined) {
|
|
357
|
-
setCookie.push(mitataCookie);
|
|
358
|
-
}
|
|
434
|
+
setIngestOnlyMitataCookie(userId) {
|
|
435
|
+
const mitataCookie = this.createMitata(mitataCookie_1.ingestIgnoredIpValue, userId, 0, 0, 0, ONE_DAY_IN_SECONDS);
|
|
359
436
|
return {
|
|
360
437
|
sessionStatus: '',
|
|
361
|
-
setCookie
|
|
438
|
+
setCookie: [mitataCookie]
|
|
362
439
|
};
|
|
363
440
|
}
|
|
364
441
|
processIngest(args) {
|
|
442
|
+
var _a;
|
|
365
443
|
if (this.secretKey === undefined) {
|
|
366
444
|
throw new Error('Secret key is required for ingest');
|
|
367
445
|
}
|
|
368
446
|
const cookies = this.getCookieHeader(args);
|
|
369
447
|
const netaceaCookie = this.readCookie('_mitata', cookies);
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
const cookieInfo = mitataCookie_1.checkCookie(netaceaCookie, this.secretKey);
|
|
374
|
-
if (!cookieInfo.valid) {
|
|
375
|
-
return this.setWorkerCookie(undefined, this.secretKey);
|
|
448
|
+
const cookieInfo = mitataCookie_1.checkMitataCookie(netaceaCookie, mitataCookie_1.ingestIgnoredIpValue, this.secretKey);
|
|
449
|
+
if (!cookieInfo.isPrimaryHashValid) {
|
|
450
|
+
return this.setIngestOnlyMitataCookie(undefined);
|
|
376
451
|
}
|
|
377
|
-
if (cookieInfo.
|
|
378
|
-
|
|
379
|
-
return this.setWorkerCookie(mitata === null || mitata === void 0 ? void 0 : mitata.userId, this.secretKey);
|
|
452
|
+
if (cookieInfo.requiresReissue) {
|
|
453
|
+
return this.setIngestOnlyMitataCookie((_a = cookieInfo.mitata) === null || _a === void 0 ? void 0 : _a.userId);
|
|
380
454
|
}
|
|
381
455
|
return {
|
|
382
456
|
sessionStatus: '',
|
package/dist/NetaceaBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetaceaBase.js","sourceRoot":"","sources":["../src/NetaceaBase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NetaceaBase.js","sourceRoot":"","sources":["../src/NetaceaBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { KinesisIngestConfigArgs } from '@netacea/kinesisingest';
|
|
2
|
+
import { NetaceaIngestType, NetaceaLogVersion, NetaceaMitigationType } from './NetaceaBase.enums';
|
|
3
|
+
export interface MakeRequestArgs {
|
|
4
|
+
host: string;
|
|
5
|
+
path: string;
|
|
6
|
+
headers: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
10
|
+
body?: any;
|
|
11
|
+
timeout?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface MakeRequestResponse {
|
|
14
|
+
status: number;
|
|
15
|
+
headers: {
|
|
16
|
+
[key: string]: string;
|
|
17
|
+
};
|
|
18
|
+
body?: any;
|
|
19
|
+
}
|
|
20
|
+
export interface NetaceaBaseArgs {
|
|
21
|
+
apiKey: string;
|
|
22
|
+
secretKey?: string;
|
|
23
|
+
captchaSiteKey?: string;
|
|
24
|
+
captchaSecretKey?: string;
|
|
25
|
+
timeout?: number;
|
|
26
|
+
retries?: number;
|
|
27
|
+
ingestServiceUrl?: string;
|
|
28
|
+
mitigationServiceUrl?: string;
|
|
29
|
+
mitigationType?: NetaceaMitigationType;
|
|
30
|
+
ingestType?: NetaceaIngestType;
|
|
31
|
+
kinesis?: KinesisIngestConfigArgs;
|
|
32
|
+
logVersion?: NetaceaLogVersion;
|
|
33
|
+
mitataCookieExpirySeconds?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface InjectHeaders {
|
|
36
|
+
'x-netacea-match': string;
|
|
37
|
+
'x-netacea-mitigate': string;
|
|
38
|
+
'x-netacea-captcha': string;
|
|
39
|
+
'x-netacea-event-id'?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface ComposeResultResponse {
|
|
42
|
+
body?: string;
|
|
43
|
+
apiCallStatus: number;
|
|
44
|
+
setCookie: string[];
|
|
45
|
+
sessionStatus: string;
|
|
46
|
+
mitigation: string;
|
|
47
|
+
mitigated: boolean;
|
|
48
|
+
injectHeaders?: InjectHeaders;
|
|
49
|
+
}
|
|
50
|
+
export interface IngestArgs {
|
|
51
|
+
ip: string;
|
|
52
|
+
userAgent: string;
|
|
53
|
+
status: string;
|
|
54
|
+
method: string;
|
|
55
|
+
path: string;
|
|
56
|
+
protocol: string;
|
|
57
|
+
referer: string;
|
|
58
|
+
bytesSent: string | number;
|
|
59
|
+
requestTime: string | number;
|
|
60
|
+
mitataCookie?: string;
|
|
61
|
+
sessionStatus?: string;
|
|
62
|
+
integrationType?: string;
|
|
63
|
+
integrationVersion?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface WebLog {
|
|
66
|
+
Request: string;
|
|
67
|
+
TimeLocal: string;
|
|
68
|
+
RealIp: string;
|
|
69
|
+
UserAgent: string;
|
|
70
|
+
Status: string;
|
|
71
|
+
RequestTime: string;
|
|
72
|
+
BytesSent: string;
|
|
73
|
+
Referer: string;
|
|
74
|
+
NetaceaUserIdCookie: string;
|
|
75
|
+
NetaceaMitigationApplied: string;
|
|
76
|
+
IntegrationType?: string;
|
|
77
|
+
IntegrationVersion?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface V2WebLog {
|
|
80
|
+
'@timestamp': string;
|
|
81
|
+
bc_type?: string;
|
|
82
|
+
bytes_sent: number;
|
|
83
|
+
client: string;
|
|
84
|
+
domain_name?: string;
|
|
85
|
+
domain_name_orig?: string;
|
|
86
|
+
hour: number;
|
|
87
|
+
integration_type?: string;
|
|
88
|
+
integration_version?: string;
|
|
89
|
+
method: string;
|
|
90
|
+
minute: number;
|
|
91
|
+
path: string;
|
|
92
|
+
protocol: string;
|
|
93
|
+
query?: string;
|
|
94
|
+
referrer?: string;
|
|
95
|
+
request: string;
|
|
96
|
+
request_time: number;
|
|
97
|
+
status: string;
|
|
98
|
+
user_agent: string;
|
|
99
|
+
user_id?: string;
|
|
100
|
+
}
|
|
101
|
+
export interface NetaceaResponseBase {
|
|
102
|
+
setCookie?: string[];
|
|
103
|
+
sessionStatus: string;
|
|
104
|
+
}
|
|
105
|
+
export interface MitigateResponse<T = any> extends NetaceaResponseBase {
|
|
106
|
+
response?: T;
|
|
107
|
+
}
|
|
108
|
+
export interface InjectResponse<T = any> extends MitigateResponse<T> {
|
|
109
|
+
injectHeaders: InjectHeaders | undefined;
|
|
110
|
+
response?: T | undefined;
|
|
111
|
+
}
|
|
112
|
+
export declare type NetaceaMitigationResponse<T> = MitigateResponse<T> | InjectResponse<T> | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetaceaBase.types.js","sourceRoot":"","sources":["../src/NetaceaBase.types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import NetaceaBase from './NetaceaBase';
|
|
2
|
-
export
|
|
3
|
-
export
|
|
2
|
+
export * from './NetaceaBase.enums';
|
|
3
|
+
export * from './NetaceaBase.types';
|
|
4
|
+
export { MitataCookie, CheckCookieResponse, matchMitataCookie, checkMitataCookie, createMitataCookie, hexSha256, ingestIgnoredIpValue } from './mitataCookie';
|
|
4
5
|
export default NetaceaBase;
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
2
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
13
|
const NetaceaBase_1 = require("./NetaceaBase");
|
|
4
|
-
|
|
5
|
-
|
|
14
|
+
__exportStar(require("./NetaceaBase.enums"), exports);
|
|
15
|
+
__exportStar(require("./NetaceaBase.types"), exports);
|
|
6
16
|
var mitataCookie_1 = require("./mitataCookie");
|
|
7
17
|
Object.defineProperty(exports, "matchMitataCookie", { enumerable: true, get: function () { return mitataCookie_1.matchMitataCookie; } });
|
|
18
|
+
Object.defineProperty(exports, "checkMitataCookie", { enumerable: true, get: function () { return mitataCookie_1.checkMitataCookie; } });
|
|
19
|
+
Object.defineProperty(exports, "createMitataCookie", { enumerable: true, get: function () { return mitataCookie_1.createMitataCookie; } });
|
|
20
|
+
Object.defineProperty(exports, "hexSha256", { enumerable: true, get: function () { return mitataCookie_1.hexSha256; } });
|
|
21
|
+
Object.defineProperty(exports, "ingestIgnoredIpValue", { enumerable: true, get: function () { return mitataCookie_1.ingestIgnoredIpValue; } });
|
|
8
22
|
exports.default = NetaceaBase_1.default;
|
|
9
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAuC;AACvC,sDAAmC;AACnC,sDAAmC;AACnC,+CAQuB;AALrB,iHAAA,iBAAiB,OAAA;AACjB,iHAAA,iBAAiB,OAAA;AACjB,kHAAA,kBAAkB,OAAA;AAClB,yGAAA,SAAS,OAAA;AACT,oHAAA,oBAAoB,OAAA;AAGtB,kBAAe,qBAAW,CAAA"}
|
package/dist/mitataCookie.d.ts
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
|
+
export declare const ingestIgnoredIpValue = "ignored";
|
|
1
2
|
export interface MitataCookie {
|
|
2
3
|
signature: string;
|
|
3
4
|
expiry: string;
|
|
4
5
|
userId: string;
|
|
6
|
+
ipHash: string;
|
|
5
7
|
mitigationType: string;
|
|
6
8
|
match: number;
|
|
7
9
|
mitigate: number;
|
|
8
10
|
captcha: number;
|
|
9
11
|
}
|
|
10
|
-
interface CheckCookieResponse {
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
export interface CheckCookieResponse {
|
|
13
|
+
mitata: MitataCookie | undefined;
|
|
14
|
+
requiresReissue: boolean;
|
|
15
|
+
isExpired: boolean;
|
|
16
|
+
isSameIP: boolean;
|
|
17
|
+
isPrimaryHashValid: boolean;
|
|
13
18
|
match: number;
|
|
14
19
|
mitigate: number;
|
|
15
20
|
captcha: number;
|
|
16
21
|
}
|
|
17
|
-
export declare function matchMitataCookie(netaceaCookie: string): MitataCookie | undefined;
|
|
22
|
+
export declare function matchMitataCookie(netaceaCookie: string | undefined): MitataCookie | undefined;
|
|
18
23
|
export declare function generateId(length?: number, charset?: string[]): string;
|
|
19
|
-
export declare function
|
|
24
|
+
export declare function createMitataCookie(clientIP: string, userId: string | undefined, expiryTime: number, saltKey: string, mitCode?: string): string;
|
|
20
25
|
export declare function hexSha256(value: string, saltKey: string): string;
|
|
21
|
-
export declare function
|
|
22
|
-
export {};
|
|
26
|
+
export declare function checkMitataCookie(netaceaCookie: string | undefined, clientIP: string, secretKey: string): CheckCookieResponse;
|
package/dist/mitataCookie.js
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.checkMitataCookie = exports.hexSha256 = exports.createMitataCookie = exports.generateId = exports.matchMitataCookie = exports.ingestIgnoredIpValue = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
5
|
const dictionary_1 = require("./dictionary");
|
|
6
|
+
// Using clientIP has no advantage when setting cookies in Ingest Only mode.
|
|
7
|
+
// We therefore use a dummy value in place of the IP.
|
|
8
|
+
// This brings its own advantage in that if the integration is switched
|
|
9
|
+
// from INGEST to MITIGATE, then the INGEST cookie will be treated as expired
|
|
10
|
+
// & a new MITIGATE cookie will be set
|
|
11
|
+
exports.ingestIgnoredIpValue = 'ignored';
|
|
6
12
|
const BASE_62_CHARSET = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
|
|
7
|
-
const mitataCookieRegExp =
|
|
13
|
+
const mitataCookieRegExp = /^(.*)_\/@#\/(.*)_\/@#\/(.*)_\/@#\/(.*)_\/@#\/((\d)(\d)(\d))$/;
|
|
8
14
|
function matchMitataCookie(netaceaCookie) {
|
|
15
|
+
if (netaceaCookie === undefined) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
9
18
|
const matches = netaceaCookie.match(mitataCookieRegExp);
|
|
10
19
|
if (matches !== null && matches !== undefined) {
|
|
11
|
-
const [, signature, expiry, userId, mitigationType, match, mitigate, captcha] = matches;
|
|
20
|
+
const [, signature, expiry, userId, ipHash, mitigationType, match, mitigate, captcha] = matches;
|
|
12
21
|
return {
|
|
13
22
|
signature,
|
|
14
23
|
expiry,
|
|
15
24
|
userId,
|
|
25
|
+
ipHash,
|
|
16
26
|
mitigationType,
|
|
17
27
|
match: parseInt(match),
|
|
18
28
|
mitigate: parseInt(mitigate),
|
|
@@ -30,27 +40,35 @@ function generateId(length = 16, charset = BASE_62_CHARSET) {
|
|
|
30
40
|
return `c${randomString}`;
|
|
31
41
|
}
|
|
32
42
|
exports.generateId = generateId;
|
|
33
|
-
function
|
|
34
|
-
const ingestCookieValue = '000';
|
|
43
|
+
function createMitataCookie(clientIP, userId, expiryTime, saltKey, mitCode = '000') {
|
|
35
44
|
if (userId === undefined) {
|
|
36
45
|
userId = generateId();
|
|
37
46
|
}
|
|
38
|
-
const
|
|
47
|
+
const ipHash = hexSha256(clientIP + '|' + String(expiryTime), saltKey);
|
|
48
|
+
const originCookieValue = [
|
|
49
|
+
expiryTime,
|
|
50
|
+
userId,
|
|
51
|
+
ipHash,
|
|
52
|
+
mitCode
|
|
53
|
+
].join(dictionary_1.COOKIEDELIMITER);
|
|
39
54
|
const value = hexSha256(originCookieValue, saltKey);
|
|
40
55
|
const cookieValue = `${value}${dictionary_1.COOKIEDELIMITER}${originCookieValue}`;
|
|
41
56
|
return cookieValue;
|
|
42
57
|
}
|
|
43
|
-
exports.
|
|
58
|
+
exports.createMitataCookie = createMitataCookie;
|
|
44
59
|
function hexSha256(value, saltKey) {
|
|
45
60
|
const hash = crypto_1.createHmac('sha256', saltKey);
|
|
46
61
|
hash.update(value);
|
|
47
62
|
return Buffer.from(hash.digest('hex')).toString('base64');
|
|
48
63
|
}
|
|
49
64
|
exports.hexSha256 = hexSha256;
|
|
50
|
-
function
|
|
65
|
+
function checkMitataCookie(netaceaCookie, clientIP, secretKey) {
|
|
51
66
|
const defaultInvalidResponse = {
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
mitata: undefined,
|
|
68
|
+
requiresReissue: false,
|
|
69
|
+
isExpired: false,
|
|
70
|
+
isSameIP: false,
|
|
71
|
+
isPrimaryHashValid: false,
|
|
54
72
|
captcha: 0,
|
|
55
73
|
match: 0,
|
|
56
74
|
mitigate: 0
|
|
@@ -62,16 +80,19 @@ function checkCookie(netaceaCookie, secretKey) {
|
|
|
62
80
|
if (mitata !== undefined) {
|
|
63
81
|
// Check cookie signature
|
|
64
82
|
const mitSvcStringValue = [
|
|
65
|
-
mitata.expiry, mitata.userId, mitata.mitigationType
|
|
83
|
+
mitata.expiry, mitata.userId, mitata.ipHash, mitata.mitigationType
|
|
66
84
|
].join(dictionary_1.COOKIEDELIMITER);
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
const valid = mitata.signature ===
|
|
85
|
+
const currentUnixTime = Math.floor(Date.now() / 1000);
|
|
86
|
+
const isExpired = parseInt(mitata.expiry) < currentUnixTime;
|
|
87
|
+
const currentIPHash = hexSha256(clientIP + '|' + mitata.expiry, secretKey);
|
|
88
|
+
const isSameIP = mitata.ipHash === currentIPHash;
|
|
89
|
+
const valid = mitata.signature === hexSha256(mitSvcStringValue, secretKey);
|
|
72
90
|
return {
|
|
73
|
-
|
|
74
|
-
|
|
91
|
+
mitata,
|
|
92
|
+
requiresReissue: isExpired || !isSameIP,
|
|
93
|
+
isExpired,
|
|
94
|
+
isSameIP,
|
|
95
|
+
isPrimaryHashValid: valid,
|
|
75
96
|
match: mitata.match,
|
|
76
97
|
mitigate: mitata.mitigate,
|
|
77
98
|
captcha: mitata.captcha
|
|
@@ -79,5 +100,5 @@ function checkCookie(netaceaCookie, secretKey) {
|
|
|
79
100
|
}
|
|
80
101
|
return defaultInvalidResponse;
|
|
81
102
|
}
|
|
82
|
-
exports.
|
|
103
|
+
exports.checkMitataCookie = checkMitataCookie;
|
|
83
104
|
//# sourceMappingURL=mitataCookie.js.map
|
package/dist/mitataCookie.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mitataCookie.js","sourceRoot":"","sources":["../src/mitataCookie.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;AAChD,6CAEqB;AAErB,MAAM,eAAe,GAAG,gEAAgE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"mitataCookie.js","sourceRoot":"","sources":["../src/mitataCookie.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netacea/netaceaintegrationbase",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Base package for Netacea CDN integrations.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -26,5 +26,8 @@
|
|
|
26
26
|
"tsconfig-paths": "^3.9.0",
|
|
27
27
|
"typescript": "^3.9.7"
|
|
28
28
|
},
|
|
29
|
-
"
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@netacea/kinesisingest": "^1.2.0"
|
|
31
|
+
},
|
|
32
|
+
"gitHead": "6d74abf51f87a9b2cf94c4e0443df06eb5995bf5"
|
|
30
33
|
}
|