@social-mail/social-mail-web-server 1.7.172 → 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.
@@ -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<any>;
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;IAgCnB,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"}
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
- return block;
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.verified = true;
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
- // we will fetch from parent...
105
- const client = (builder ??= FetchBuilder
106
- .url(`https://${globalEnv.otpIn.host}/`)
107
- .logWhenFailed(console.error)
108
- .header("authorization", `basic ${Buffer.from(`${globalEnv.otpIn.key}:${globalEnv.otpIn.secret}`).toString("base64")}`));
109
- const result = await client.post("/social-mail/public/geo/country/" + ip).asJson();
110
- return result;
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);
@@ -118,16 +126,16 @@ let GeoIPService = class GeoIPService {
118
126
  b.blockStart = this.ipToNumber(start).toString();
119
127
  b.blockEnd = this.ipToNumber(end).toString();
120
128
  b.country = country;
129
+ b.verified = true;
121
130
  return b;
122
131
  }
123
132
  catch (error) {
124
- console.error(error);
125
133
  const b = new GeoIPBlock();
126
134
  const { start, end } = this.getIPRange(ip);
127
- b.blockStart = this.ipToNumber(start).toString();
128
- b.blockEnd = this.ipToNumber(end).toString();
135
+ b.blockStart = start.toString();
136
+ b.blockEnd = end.toString();
129
137
  b.country = "US";
130
- b.dateExpires = DateTime.now.addDays(1);
138
+ b.error = `Cannot resolve ${ip}\n${error.stack ?? error}`;
131
139
  return b;
132
140
  }
133
141
  }
@@ -155,7 +163,7 @@ let GeoIPService = class GeoIPService {
155
163
  if (ip.indexOf(":") !== -1) {
156
164
  // this is v6
157
165
  return ip.split(':')
158
- .map((str) => Number('0x' + str))
166
+ .map((str) => Number.parseInt(str, 16))
159
167
  .reduce((int, value) => BigInt(int) * BigInt(65536) + BigInt(+value), BigInt(0));
160
168
  }
161
169
  return BigInt(ip.split('.')
@@ -1 +1 @@
1
- {"version":3,"file":"GeoIPService.js","sourceRoot":"","sources":["../../../../src/server/services/geo-ip/GeoIPService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeoIPService.js","sourceRoot":"","sources":["../../../../src/server/services/geo-ip/GeoIPService.ts"],"names":[],"mappings":"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"}