@social-mail/social-mail-web-server 1.7.173 → 1.7.174
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/server/services/geo-ip/GeoIPService.d.ts +1 -1
- package/dist/server/services/geo-ip/GeoIPService.d.ts.map +1 -1
- package/dist/server/services/geo-ip/GeoIPService.js +26 -19
- package/dist/server/services/geo-ip/GeoIPService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/server/services/geo-ip/GeoIPService.ts +30 -17
|
@@ -4,7 +4,7 @@ import GeoIPBlock from "../../model/entities/GeoIPBlock.js";
|
|
|
4
4
|
export default class GeoIPService implements ICacheContainer<GeoIPService> {
|
|
5
5
|
cache: ObjectCache<GeoIPService>;
|
|
6
6
|
getBlock(ip: string): Promise<GeoIPBlock>;
|
|
7
|
-
lookupBlock(ip: string, ipNumber: bigint): Promise<
|
|
7
|
+
lookupBlock(ip: string, ipNumber: bigint): Promise<GeoIPBlock>;
|
|
8
8
|
getCountry(response: WhoisSearchResult): any;
|
|
9
9
|
ipToNumber(ip: string): bigint;
|
|
10
10
|
getIPRange(ip: string): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoIPService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/geo-ip/GeoIPService.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,UAAU,MAAM,oCAAoC,CAAC;AAM5D,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,eAAe,CAAC,YAAY,CAAC;IAEtE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAG3B,QAAQ,CAAC,EAAE,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"GeoIPService.d.ts","sourceRoot":"","sources":["../../../../src/server/services/geo-ip/GeoIPService.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,eAAe,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAIrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,UAAU,MAAM,oCAAoC,CAAC;AAM5D,MAAM,CAAC,OAAO,OAAO,YAAa,YAAW,eAAe,CAAC,YAAY,CAAC;IAEtE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAG3B,QAAQ,CAAC,EAAE,EAAE,MAAM;IA8CnB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAuC9C,UAAU,CAAC,QAAQ,EAAE,iBAAiB;IA0BtC,UAAU,CAAC,EAAE,EAAE,MAAM;IAWrB,UAAU,CAAC,EAAE,EAAE,MAAM;;;;CAyBxB"}
|
|
@@ -56,14 +56,15 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
56
56
|
});
|
|
57
57
|
import { RegisterSingleton, ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
|
|
58
58
|
import { cacheFor } from "../../../common/cacheFor.js";
|
|
59
|
-
import { globalEnv } from "../../../common/globalEnv.js";
|
|
60
|
-
import FetchBuilder from "@web-atoms/fetch-builder";
|
|
61
59
|
import SocialMailContext from "../../model/SocialMailContext.js";
|
|
62
60
|
import GeoIPBlock from "../../model/entities/GeoIPBlock.js";
|
|
63
61
|
import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
|
|
64
62
|
let builder;
|
|
65
63
|
let GeoIPService = class GeoIPService {
|
|
66
64
|
async getBlock(ip) {
|
|
65
|
+
if (ip.startsWith("::ffff:")) {
|
|
66
|
+
ip = ip.replace(/^.*:/, '');
|
|
67
|
+
}
|
|
67
68
|
try {
|
|
68
69
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
69
70
|
try {
|
|
@@ -75,10 +76,15 @@ let GeoIPService = class GeoIPService {
|
|
|
75
76
|
.where({ ipNumber }, (p) => (x) => x.blockStart >= p.ipNumber && x.blockEnd <= p.ipNumber)
|
|
76
77
|
.first();
|
|
77
78
|
if (block) {
|
|
78
|
-
|
|
79
|
+
if (DateTime.from(block.dateExpires) > DateTime.now) {
|
|
80
|
+
return block;
|
|
81
|
+
}
|
|
82
|
+
await db.geoIPBlocks.statements.delete({ blockStart: block.blockStart, blockEnd: block.blockEnd });
|
|
79
83
|
}
|
|
80
84
|
block = await this.lookupBlock(ip, ipNumber);
|
|
81
|
-
block.
|
|
85
|
+
if (block.error) {
|
|
86
|
+
console.error(block.error);
|
|
87
|
+
}
|
|
82
88
|
return await db.geoIPBlocks.statements.selectOrInsert(block, block);
|
|
83
89
|
}
|
|
84
90
|
catch (e_1) {
|
|
@@ -89,26 +95,28 @@ let GeoIPService = class GeoIPService {
|
|
|
89
95
|
__disposeResources(env_1);
|
|
90
96
|
}
|
|
91
97
|
}
|
|
92
|
-
catch {
|
|
98
|
+
catch (error) {
|
|
93
99
|
const b = new GeoIPBlock();
|
|
94
100
|
b.country = "US";
|
|
95
101
|
const { start, end } = this.getIPRange(ip);
|
|
96
102
|
b.blockStart = start;
|
|
97
103
|
b.blockEnd = end;
|
|
104
|
+
b.error = `Cannot resolve ${ip}\n${error.stack ?? error}`;
|
|
105
|
+
console.error(b.error);
|
|
98
106
|
return b;
|
|
99
107
|
}
|
|
100
108
|
}
|
|
101
109
|
async lookupBlock(ip, ipNumber) {
|
|
102
110
|
try {
|
|
103
|
-
if (globalEnv.otpIn?.host) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
111
|
+
// if (globalEnv.otpIn?.host) {
|
|
112
|
+
// // we will fetch from parent...
|
|
113
|
+
// const client = (builder ??= FetchBuilder
|
|
114
|
+
// .url(`https://${globalEnv.otpIn.host}/`)
|
|
115
|
+
// .logWhenFailed(console.error)
|
|
116
|
+
// .header("authorization", `basic ${Buffer.from(`${globalEnv.otpIn.key}:${globalEnv.otpIn.secret}`).toString("base64")}`));
|
|
117
|
+
// const result = await client.post("/social-mail/public/geo/country/" + ip).asJson();
|
|
118
|
+
// return result;
|
|
119
|
+
// }
|
|
112
120
|
// use whoiser...
|
|
113
121
|
const whoiser = await import("whoiser");
|
|
114
122
|
const response = await whoiser.ip(ip);
|
|
@@ -122,13 +130,12 @@ let GeoIPService = class GeoIPService {
|
|
|
122
130
|
return b;
|
|
123
131
|
}
|
|
124
132
|
catch (error) {
|
|
125
|
-
console.error(error);
|
|
126
133
|
const b = new GeoIPBlock();
|
|
127
134
|
const { start, end } = this.getIPRange(ip);
|
|
128
|
-
b.blockStart =
|
|
129
|
-
b.blockEnd =
|
|
135
|
+
b.blockStart = start.toString();
|
|
136
|
+
b.blockEnd = end.toString();
|
|
130
137
|
b.country = "US";
|
|
131
|
-
b.
|
|
138
|
+
b.error = `Cannot resolve ${ip}\n${error.stack ?? error}`;
|
|
132
139
|
return b;
|
|
133
140
|
}
|
|
134
141
|
}
|
|
@@ -156,7 +163,7 @@ let GeoIPService = class GeoIPService {
|
|
|
156
163
|
if (ip.indexOf(":") !== -1) {
|
|
157
164
|
// this is v6
|
|
158
165
|
return ip.split(':')
|
|
159
|
-
.map((str) => Number(
|
|
166
|
+
.map((str) => Number.parseInt(str, 16))
|
|
160
167
|
.reduce((int, value) => BigInt(int) * BigInt(65536) + BigInt(+value), BigInt(0));
|
|
161
168
|
}
|
|
162
169
|
return BigInt(ip.split('.')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoIPService.js","sourceRoot":"","sources":["../../../../src/server/services/geo-ip/GeoIPService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAgC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"GeoIPService.js","sourceRoot":"","sources":["../../../../src/server/services/geo-ip/GeoIPService.ts"],"names":[],"mappings":"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"}
|