@adtrackify/at-service-common 3.0.75 → 3.0.77
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/dist/cjs/services/ipdata-lookup-service.d.ts +9 -2
- package/dist/cjs/services/ipdata-lookup-service.js +61 -76
- package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
- package/dist/esm/services/ipdata-lookup-service.d.ts +9 -2
- package/dist/esm/services/ipdata-lookup-service.js +60 -74
- package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IPDataResponse } from '@adtrackify/at-tracking-event-types';
|
|
2
|
+
import { CacheLambdaClient } from '../clients';
|
|
2
3
|
export interface IPLookupTableRecord {
|
|
3
4
|
ipAddress: string;
|
|
4
5
|
lookupResponse: IPDataResponse | null;
|
|
@@ -6,5 +7,11 @@ export interface IPLookupTableRecord {
|
|
|
6
7
|
updatedAt: string;
|
|
7
8
|
expiresAt?: number;
|
|
8
9
|
}
|
|
9
|
-
export declare
|
|
10
|
-
|
|
10
|
+
export declare class IpDataLookupService {
|
|
11
|
+
private cacheLambdaFunctionArn;
|
|
12
|
+
cacheLambdaClient: CacheLambdaClient;
|
|
13
|
+
constructor(cacheLambdaFunctionArn: string);
|
|
14
|
+
getLookupApi: (ipAddress: string) => Promise<IPDataResponse | null>;
|
|
15
|
+
getIpCache: (ipAddress: string) => Promise<import("../clients").CacheRequestCommandResponse | undefined>;
|
|
16
|
+
lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
|
|
17
|
+
}
|
|
@@ -1,93 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.IpDataLookupService = void 0;
|
|
4
4
|
const luxon_1 = require("luxon");
|
|
5
5
|
const clients_1 = require("../clients");
|
|
6
6
|
const helpers_1 = require("../helpers");
|
|
7
7
|
const libs_1 = require("../libs");
|
|
8
8
|
const net_1 = require("net");
|
|
9
9
|
const API_KEY = 'aae45f1e1f97ecf79bdc2bef3e96ef71961c4cb977c3085429b421bc';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return res?.data;
|
|
10
|
+
class IpDataLookupService {
|
|
11
|
+
cacheLambdaFunctionArn;
|
|
12
|
+
cacheLambdaClient;
|
|
13
|
+
constructor(cacheLambdaFunctionArn) {
|
|
14
|
+
this.cacheLambdaFunctionArn = cacheLambdaFunctionArn;
|
|
15
|
+
this.cacheLambdaClient = new clients_1.CacheLambdaClient(cacheLambdaFunctionArn);
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
try {
|
|
25
|
-
if (!ipAddress || (0, net_1.isIP)(ipAddress) === 0) {
|
|
26
|
-
helpers_1.Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
|
|
27
|
-
return null;
|
|
17
|
+
getLookupApi = async (ipAddress) => {
|
|
18
|
+
try {
|
|
19
|
+
const client = (0, clients_1.axiosHttpService)();
|
|
20
|
+
const url = `https://api.ipdata.co/${ipAddress}?api-key=${API_KEY}`;
|
|
21
|
+
const res = await client.get(url);
|
|
22
|
+
return res?.data;
|
|
28
23
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return cachedResult.lookupResponse;
|
|
24
|
+
catch (error) {
|
|
25
|
+
helpers_1.Logger.error('IPData Lookup API Failed', { error });
|
|
26
|
+
return null;
|
|
33
27
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
28
|
+
};
|
|
29
|
+
getIpCache = async (ipAddress) => {
|
|
30
|
+
return this.cacheLambdaClient.invokeGet(`ipdata-${ipAddress}`);
|
|
31
|
+
};
|
|
32
|
+
lookupIP = async (ipAddress) => {
|
|
33
|
+
try {
|
|
34
|
+
const expiresAt = luxon_1.DateTime.now().plus({ days: 15 }).toSeconds();
|
|
35
|
+
if (!ipAddress || (0, net_1.isIP)(ipAddress) === 0) {
|
|
36
|
+
helpers_1.Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const cacheResponse = await this.getIpCache(ipAddress);
|
|
40
|
+
const cachedResult = cacheResponse?.responseData;
|
|
41
|
+
const cacheExpirationDate = luxon_1.DateTime.utc().minus({ days: 6 }).toJSDate().toISOString();
|
|
42
|
+
if (cachedResult && cachedResult?.updatedAt > cacheExpirationDate) {
|
|
43
|
+
return cachedResult.lookupResponse;
|
|
44
|
+
}
|
|
45
|
+
const lookupResponse = await this.getLookupApi(ipAddress);
|
|
46
|
+
let lookupTableRecord;
|
|
47
|
+
if (cachedResult) {
|
|
48
|
+
lookupTableRecord = {
|
|
49
|
+
...cachedResult,
|
|
50
|
+
lookupResponse,
|
|
51
|
+
updatedAt: (0, libs_1.getCurrentTimestamp)(),
|
|
52
|
+
};
|
|
53
|
+
if (!cachedResult?.expiresAt) {
|
|
54
|
+
const expiresAt = luxon_1.DateTime.now().plus({ days: 15 }).toSeconds();
|
|
55
|
+
lookupTableRecord.expiresAt = expiresAt;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
43
59
|
const expiresAt = luxon_1.DateTime.now().plus({ days: 15 }).toSeconds();
|
|
44
|
-
lookupTableRecord
|
|
60
|
+
lookupTableRecord = {
|
|
61
|
+
ipAddress,
|
|
62
|
+
lookupResponse,
|
|
63
|
+
createdAt: (0, libs_1.getCurrentTimestamp)(),
|
|
64
|
+
updatedAt: (0, libs_1.getCurrentTimestamp)(),
|
|
65
|
+
expiresAt
|
|
66
|
+
};
|
|
45
67
|
}
|
|
68
|
+
await this.cacheLambdaClient.invokeSet(`ipdata-${ipAddress}`, JSON.stringify(lookupTableRecord), expiresAt);
|
|
69
|
+
return lookupResponse;
|
|
46
70
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
lookupTableRecord = {
|
|
50
|
-
ipAddress,
|
|
51
|
-
lookupResponse,
|
|
52
|
-
createdAt: (0, libs_1.getCurrentTimestamp)(),
|
|
53
|
-
updatedAt: (0, libs_1.getCurrentTimestamp)(),
|
|
54
|
-
expiresAt
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
await clients_1.DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, lookupTableRecord);
|
|
58
|
-
return lookupResponse;
|
|
59
|
-
}
|
|
60
|
-
catch (e) {
|
|
61
|
-
helpers_1.Logger.error('Failed to lookup IP', { error: e });
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
exports.lookupIP = lookupIP;
|
|
66
|
-
const updateIPCache = async (ipAddress, data) => {
|
|
67
|
-
try {
|
|
68
|
-
if (!ipAddress || (0, net_1.isIP)(ipAddress) === 0) {
|
|
69
|
-
helpers_1.Logger.warn('Unable to update IP cache. Invalid Ip Address', { ipAddress, data });
|
|
71
|
+
catch (e) {
|
|
72
|
+
helpers_1.Logger.error('Failed to lookup IP', { error: e });
|
|
70
73
|
return null;
|
|
71
74
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const updatedLookupResponse = cachedResult?.lookupResponse ?? { asn: {} };
|
|
76
|
-
Object.assign(updatedLookupResponse, data);
|
|
77
|
-
const updatedLookupTableRecord = {
|
|
78
|
-
...cachedResult,
|
|
79
|
-
lookupResponse,
|
|
80
|
-
updatedAt: (0, libs_1.getCurrentTimestamp)()
|
|
81
|
-
};
|
|
82
|
-
lookupResponse = updatedLookupResponse;
|
|
83
|
-
await clients_1.DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, updatedLookupTableRecord);
|
|
84
|
-
}
|
|
85
|
-
return lookupResponse;
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
helpers_1.Logger.error('Failed to update IP cache', { error });
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
exports.updateIPCache = updateIPCache;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
exports.IpDataLookupService = IpDataLookupService;
|
|
93
78
|
//# sourceMappingURL=ipdata-lookup-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":";;;AACA,iCAAiC;AAEjC,
|
|
1
|
+
{"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IPDataResponse } from '@adtrackify/at-tracking-event-types';
|
|
2
|
+
import { CacheLambdaClient } from '../clients';
|
|
2
3
|
export interface IPLookupTableRecord {
|
|
3
4
|
ipAddress: string;
|
|
4
5
|
lookupResponse: IPDataResponse | null;
|
|
@@ -6,5 +7,11 @@ export interface IPLookupTableRecord {
|
|
|
6
7
|
updatedAt: string;
|
|
7
8
|
expiresAt?: number;
|
|
8
9
|
}
|
|
9
|
-
export declare
|
|
10
|
-
|
|
10
|
+
export declare class IpDataLookupService {
|
|
11
|
+
private cacheLambdaFunctionArn;
|
|
12
|
+
cacheLambdaClient: CacheLambdaClient;
|
|
13
|
+
constructor(cacheLambdaFunctionArn: string);
|
|
14
|
+
getLookupApi: (ipAddress: string) => Promise<IPDataResponse | null>;
|
|
15
|
+
getIpCache: (ipAddress: string) => Promise<import("../clients").CacheRequestCommandResponse | undefined>;
|
|
16
|
+
lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
|
|
17
|
+
}
|
|
@@ -1,88 +1,74 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
|
-
import { axiosHttpService,
|
|
2
|
+
import { axiosHttpService, CacheLambdaClient } from '../clients';
|
|
3
3
|
import { Logger } from '../helpers';
|
|
4
4
|
import { getCurrentTimestamp } from '../libs';
|
|
5
5
|
import { isIP } from 'net';
|
|
6
6
|
const API_KEY = 'aae45f1e1f97ecf79bdc2bef3e96ef71961c4cb977c3085429b421bc';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return res?.data;
|
|
7
|
+
export class IpDataLookupService {
|
|
8
|
+
cacheLambdaFunctionArn;
|
|
9
|
+
cacheLambdaClient;
|
|
10
|
+
constructor(cacheLambdaFunctionArn) {
|
|
11
|
+
this.cacheLambdaFunctionArn = cacheLambdaFunctionArn;
|
|
12
|
+
this.cacheLambdaClient = new CacheLambdaClient(cacheLambdaFunctionArn);
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
try {
|
|
22
|
-
if (!ipAddress || isIP(ipAddress) === 0) {
|
|
23
|
-
Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
|
|
24
|
-
return null;
|
|
14
|
+
getLookupApi = async (ipAddress) => {
|
|
15
|
+
try {
|
|
16
|
+
const client = axiosHttpService();
|
|
17
|
+
const url = `https://api.ipdata.co/${ipAddress}?api-key=${API_KEY}`;
|
|
18
|
+
const res = await client.get(url);
|
|
19
|
+
return res?.data;
|
|
25
20
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return cachedResult.lookupResponse;
|
|
21
|
+
catch (error) {
|
|
22
|
+
Logger.error('IPData Lookup API Failed', { error });
|
|
23
|
+
return null;
|
|
30
24
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
25
|
+
};
|
|
26
|
+
getIpCache = async (ipAddress) => {
|
|
27
|
+
return this.cacheLambdaClient.invokeGet(`ipdata-${ipAddress}`);
|
|
28
|
+
};
|
|
29
|
+
lookupIP = async (ipAddress) => {
|
|
30
|
+
try {
|
|
31
|
+
const expiresAt = DateTime.now().plus({ days: 15 }).toSeconds();
|
|
32
|
+
if (!ipAddress || isIP(ipAddress) === 0) {
|
|
33
|
+
Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const cacheResponse = await this.getIpCache(ipAddress);
|
|
37
|
+
const cachedResult = cacheResponse?.responseData;
|
|
38
|
+
const cacheExpirationDate = DateTime.utc().minus({ days: 6 }).toJSDate().toISOString();
|
|
39
|
+
if (cachedResult && cachedResult?.updatedAt > cacheExpirationDate) {
|
|
40
|
+
return cachedResult.lookupResponse;
|
|
41
|
+
}
|
|
42
|
+
const lookupResponse = await this.getLookupApi(ipAddress);
|
|
43
|
+
let lookupTableRecord;
|
|
44
|
+
if (cachedResult) {
|
|
45
|
+
lookupTableRecord = {
|
|
46
|
+
...cachedResult,
|
|
47
|
+
lookupResponse,
|
|
48
|
+
updatedAt: getCurrentTimestamp(),
|
|
49
|
+
};
|
|
50
|
+
if (!cachedResult?.expiresAt) {
|
|
51
|
+
const expiresAt = DateTime.now().plus({ days: 15 }).toSeconds();
|
|
52
|
+
lookupTableRecord.expiresAt = expiresAt;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
40
56
|
const expiresAt = DateTime.now().plus({ days: 15 }).toSeconds();
|
|
41
|
-
lookupTableRecord
|
|
57
|
+
lookupTableRecord = {
|
|
58
|
+
ipAddress,
|
|
59
|
+
lookupResponse,
|
|
60
|
+
createdAt: getCurrentTimestamp(),
|
|
61
|
+
updatedAt: getCurrentTimestamp(),
|
|
62
|
+
expiresAt
|
|
63
|
+
};
|
|
42
64
|
}
|
|
65
|
+
await this.cacheLambdaClient.invokeSet(`ipdata-${ipAddress}`, JSON.stringify(lookupTableRecord), expiresAt);
|
|
66
|
+
return lookupResponse;
|
|
43
67
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
lookupTableRecord = {
|
|
47
|
-
ipAddress,
|
|
48
|
-
lookupResponse,
|
|
49
|
-
createdAt: getCurrentTimestamp(),
|
|
50
|
-
updatedAt: getCurrentTimestamp(),
|
|
51
|
-
expiresAt
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
await DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, lookupTableRecord);
|
|
55
|
-
return lookupResponse;
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
Logger.error('Failed to lookup IP', { error: e });
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
export const updateIPCache = async (ipAddress, data) => {
|
|
63
|
-
try {
|
|
64
|
-
if (!ipAddress || isIP(ipAddress) === 0) {
|
|
65
|
-
Logger.warn('Unable to update IP cache. Invalid Ip Address', { ipAddress, data });
|
|
68
|
+
catch (e) {
|
|
69
|
+
Logger.error('Failed to lookup IP', { error: e });
|
|
66
70
|
return null;
|
|
67
71
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (cachedResult) {
|
|
71
|
-
const updatedLookupResponse = cachedResult?.lookupResponse ?? { asn: {} };
|
|
72
|
-
Object.assign(updatedLookupResponse, data);
|
|
73
|
-
const updatedLookupTableRecord = {
|
|
74
|
-
...cachedResult,
|
|
75
|
-
lookupResponse,
|
|
76
|
-
updatedAt: getCurrentTimestamp()
|
|
77
|
-
};
|
|
78
|
-
lookupResponse = updatedLookupResponse;
|
|
79
|
-
await DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, updatedLookupTableRecord);
|
|
80
|
-
}
|
|
81
|
-
return lookupResponse;
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
Logger.error('Failed to update IP cache', { error });
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
};
|
|
72
|
+
};
|
|
73
|
+
}
|
|
88
74
|
//# sourceMappingURL=ipdata-lookup-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":"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"}
|