namirasoft-node 1.4.101 → 1.4.103

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.
@@ -22,6 +22,7 @@ export declare abstract class BaseFilterItemBuilder<Table extends {
22
22
  }, filters?: FilterItem[] | undefined): Promise<WhereOptions[]>;
23
23
  abstract checkColumn(table_name: string, column_name: string): void;
24
24
  abstract checkValue(table_name: string, column_name: string, value: string): void;
25
+ abstract escapeValue(value: string): string;
25
26
  abstract getRealColumnName(table_name: string, column_name: string): string;
26
27
  abstract getAdvancedSearchColumns(table_name: string): string[];
27
28
  abstract getAdvancedSearchConditions(columns: string[], search: string): Promise<WhereOptions[]>;
@@ -55,6 +55,7 @@ class BaseFilterItemBuilder {
55
55
  values.push(...f.values);
56
56
  }
57
57
  }
58
+ let escapedValues = values.map(v => this.escapeValue(v));
58
59
  let getNumbers = () => {
59
60
  let nums = values.map(x => parseFloat(x));
60
61
  if (nums.filter(x => isNaN(x)).length > 0)
@@ -79,32 +80,32 @@ class BaseFilterItemBuilder {
79
80
  namirasoft_core_1.ErrorOperation.throwHTTP(400, `Invalid operator for all columns (*).`);
80
81
  else {
81
82
  let columns = this.getAdvancedSearchColumns(filter.table.name);
82
- for (let i = 0; i < values.length; i++) {
83
- const value = values[i];
83
+ for (let i = 0; i < escapedValues.length; i++) {
84
+ const value = escapedValues[i];
84
85
  let conditions = yield this.getAdvancedSearchConditions(columns, value);
85
86
  ans.push(...conditions);
86
87
  }
87
88
  }
88
89
  }
89
90
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.equals)
90
- yield addCondition(this.getIn(column_name, filter.not, values));
91
+ yield addCondition(this.getIn(column_name, filter.not, escapedValues));
91
92
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.contains)
92
- for (const value of values)
93
+ for (const value of escapedValues)
93
94
  yield addCondition(this.getLike(column_name, filter.not, value));
94
95
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.regex)
95
- for (const value of values)
96
+ for (const value of escapedValues)
96
97
  yield addCondition(this.getRegex(column_name, filter.not, value));
97
98
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.empty)
98
99
  yield addCondition(this.getEmpty(column_name, filter.not));
99
100
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.exists)
100
101
  yield addCondition(this.getExists(column_name, filter.not));
101
102
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.includes)
102
- yield addCondition(this.getIncludes(column_name, filter.not, values));
103
+ yield addCondition(this.getIncludes(column_name, filter.not, escapedValues));
103
104
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.startswith)
104
- for (const value of values)
105
+ for (const value of escapedValues)
105
106
  yield addCondition(this.getStartsWith(column_name, filter.not, value));
106
107
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.endswith)
107
- for (const value of values)
108
+ for (const value of escapedValues)
108
109
  yield addCondition(this.getEndsWith(column_name, filter.not, value));
109
110
  else if (filter.operator == namirasoft_core_1.FilterItemOperator.all.lessthan) {
110
111
  if (filter.not)
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterItemBuilder.js","sourceRoot":"","sources":["../src/BaseFilterItemBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseFilterItemBuilder.js","sourceRoot":"","sources":["../src/BaseFilterItemBuilder.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare class BaseFilterItemBuilderObject extends BaseFilterItemBuilder<{
6
6
  constructor(object: any);
7
7
  checkColumn(): void;
8
8
  checkValue(): void;
9
+ escapeValue(value: string): string;
9
10
  getRealColumnName(_: string, column_name: string): string;
10
11
  getAdvancedSearchColumns(): string[];
11
12
  getAdvancedSearchConditions(columns: string[], search: string): Promise<boolean[]>;
@@ -21,6 +21,9 @@ class BaseFilterItemBuilderObject extends BaseFilterItemBuilder_1.BaseFilterItem
21
21
  }
22
22
  checkValue() {
23
23
  }
24
+ escapeValue(value) {
25
+ return value;
26
+ }
24
27
  getRealColumnName(_, column_name) {
25
28
  return column_name;
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterItemBuilderObject.js","sourceRoot":"","sources":["../src/BaseFilterItemBuilderObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseFilterItemBuilderObject.js","sourceRoot":"","sources":["../src/BaseFilterItemBuilderObject.ts"],"names":[],"mappings":"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"}
@@ -55,13 +55,13 @@ class OTPOperation {
55
55
  static onSafeVerify(x_otp, x_otp_time, x_otp_ver_tried_count, code, handler, errorHandler) {
56
56
  return __awaiter(this, void 0, void 0, function* () {
57
57
  if (!x_otp || !x_otp_time)
58
- throw namirasoft_core_1.ErrorOperation.getHTTP(404, "The OTP not generated yet. Please request first.");
58
+ throw namirasoft_core_1.ErrorOperation.getHTTP(410, "The OTP has not been generated yet. Please request first.");
59
59
  if (x_otp_time != null)
60
60
  x_otp_time = new Date(x_otp_time);
61
61
  if (x_otp_time < namirasoft_core_1.TimeOperation.minutesAgo(OTPOperation.OTP_EXPIRE_TIME, new Date()))
62
- namirasoft_core_1.ErrorOperation.throwHTTP(410, "The OTP code expired. Please request again.");
62
+ namirasoft_core_1.ErrorOperation.throwHTTP(410, "The OTP code has been expired. Please request again.");
63
63
  if (x_otp_ver_tried_count > OTPOperation.OTP_VER_MAX_TRY_COUNT)
64
- namirasoft_core_1.ErrorOperation.throwHTTP(429, "The try limit attempt exceeded. Please request again.");
64
+ namirasoft_core_1.ErrorOperation.throwHTTP(429, "The number of allowed attempts has been exceeded. Please try again later.");
65
65
  if (x_otp !== code) {
66
66
  yield errorHandler();
67
67
  namirasoft_core_1.ErrorOperation.throwHTTP(401, "Wrong code.");
@@ -1 +1 @@
1
- {"version":3,"file":"OTPOperation.js","sourceRoot":"","sources":["../src/OTPOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OTPOperation.js","sourceRoot":"","sources":["../src/OTPOperation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
- {
2
- "name": "namirasoft-node",
3
- "title": "Namirasoft Node NPM Package",
4
- "description": "Namira Software Corporation Node NPM Package",
5
- "icon": "logo.png",
6
- "logo": "https://static.namirasoft.com/image/namirasoft/site/logo/base.png",
7
- "language": "ts",
8
- "framework": "npm",
9
- "application": "package",
10
- "private": false,
11
- "version": "1.4.101",
12
- "author": "Amir Abolhasani",
13
- "license": "MIT",
14
- "main": "./dist/index.js",
15
- "types": "./dist/index.d.ts",
16
- "scripts": {
17
- "build": ""
18
- },
19
- "dependencies": {
20
- "@supercharge/request-ip": "^1.2.0",
21
- "@types/cors": "^2.8.18",
22
- "@types/express": "^5.0.2",
23
- "@types/node": "^22.15.21",
24
- "@types/node-cron": "^3.0.11",
25
- "@types/nodemailer": "^6.4.17",
26
- "@types/nodemailer-smtp-transport": "^2.7.8",
27
- "@types/serve-index": "^1.9.4",
28
- "@types/swagger-jsdoc": "^6.0.4",
29
- "@types/swagger-ui-express": "^4.1.8",
30
- "cors": "^2.8.5",
31
- "express": "^5.1.0",
32
- "joi": "^17.13.3",
33
- "namirasoft-core": "^1.4.74",
34
- "namirasoft-log": "^1.4.30",
35
- "namirasoft-schema": "^1.4.25",
36
- "node-cron": "^4.0.7",
37
- "nodemailer": "^7.0.3",
38
- "nodemailer-smtp-transport": "^2.7.4",
39
- "request-ip": "^3.3.0",
40
- "serve-index": "^1.9.1",
41
- "swagger-jsdoc": "^6.2.8",
42
- "swagger-ui-express": "^5.0.1"
43
- }
1
+ {
2
+ "name": "namirasoft-node",
3
+ "title": "Namirasoft Node NPM Package",
4
+ "description": "Namira Software Corporation Node NPM Package",
5
+ "icon": "logo.png",
6
+ "logo": "https://static.namirasoft.com/image/namirasoft/site/logo/base.png",
7
+ "language": "ts",
8
+ "framework": "npm",
9
+ "application": "package",
10
+ "private": false,
11
+ "version": "1.4.103",
12
+ "author": "Amir Abolhasani",
13
+ "license": "MIT",
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "scripts": {
17
+ "build": ""
18
+ },
19
+ "dependencies": {
20
+ "@supercharge/request-ip": "^1.2.0",
21
+ "@types/cors": "^2.8.19",
22
+ "@types/express": "^5.0.3",
23
+ "@types/node": "^24.1.0",
24
+ "@types/node-cron": "^3.0.11",
25
+ "@types/nodemailer": "^6.4.17",
26
+ "@types/nodemailer-smtp-transport": "^2.7.8",
27
+ "@types/serve-index": "^1.9.4",
28
+ "@types/swagger-jsdoc": "^6.0.4",
29
+ "@types/swagger-ui-express": "^4.1.8",
30
+ "cors": "^2.8.5",
31
+ "express": "^5.1.0",
32
+ "joi": "^17.13.3",
33
+ "namirasoft-core": "^1.4.76",
34
+ "namirasoft-log": "^1.4.30",
35
+ "namirasoft-schema": "^1.4.25",
36
+ "node-cron": "^4.2.1",
37
+ "nodemailer": "^7.0.5",
38
+ "nodemailer-smtp-transport": "^2.7.4",
39
+ "request-ip": "^3.3.0",
40
+ "serve-index": "^1.9.1",
41
+ "swagger-jsdoc": "^6.2.8",
42
+ "swagger-ui-express": "^5.0.1"
43
+ }
44
44
  }
@@ -1,85 +1,85 @@
1
- export class AnomalyDetector
2
- {
3
- static Main: AnomalyDetector = new AnomalyDetector();
4
- // configuration
5
- MAX_STORAGE_SIZE = 10000;
6
- MAX_STORAGE_PER_IP = 25;
7
- MIN_AVG_TIME = 200;
8
- MIN_DATA_REQUIRE_FOR_AVG = 4;
9
- MIN_AVG_TIME_PER_URL = 400;
10
- MIN_DATA_REQUIRE_FOR_AVG_PER_URL = 3;
11
- TIME_FADE_RATE = 0.9;
12
-
13
- Storage: { [ip: string]: { url: string, time: number }[] } = {};
14
- Storageـurl: { [ip: string]: { [url: string]: { time: number }[] } } = {};
15
- Orders: string[] = [];
16
-
17
- private weightedAverage(array: { time: number }[], fade_rate: number)
18
- {
19
- let sum = 0;
20
- let sum_coef = 0;
21
- for (let i = 1; i < array.length; i++)
22
- {
23
- let diff = array[i].time - array[i - 1].time;
24
- let coef = Math.pow(fade_rate, (array.length - (i + 1)));
25
- sum += diff * coef;
26
- sum_coef += coef;
27
- }
28
- return sum / sum_coef;
29
- }
30
-
31
- isAnomaly(ip: string, url: string): boolean
32
- {
33
- if (!this.Storage[ip])
34
- {
35
- this.Storage[ip] = [];
36
- this.Storageـurl[ip] = {};
37
- this.Orders.push(ip);
38
- }
39
-
40
- if (this.Orders.length > this.MAX_STORAGE_SIZE)
41
- {
42
- let index = this.Orders.shift();
43
- if (index)
44
- {
45
- delete this.Storage[index];
46
- delete this.Storageـurl[index];
47
- }
48
- }
49
-
50
- if (this.Storage[ip].length >= this.MAX_STORAGE_PER_IP)
51
- {
52
- let record = this.Storage[ip].shift(); // remove first element
53
- if (record)
54
- this.Storageـurl[ip][record.url].shift(); // remove first element of url array
55
- }
56
-
57
- this.Storage[ip].push({
58
- url: url,
59
- time: +new Date()
60
- });
61
-
62
- if (!this.Storageـurl[ip][url])
63
- this.Storageـurl[ip][url] = [];
64
- this.Storageـurl[ip][url].push({
65
- time: +new Date()
66
- });
67
-
68
- // check conditions
69
- // simple
70
- if (this.Storage[ip].length >= this.MIN_DATA_REQUIRE_FOR_AVG)
71
- {
72
- let avg = this.weightedAverage(this.Storage[ip], this.TIME_FADE_RATE);
73
- if (avg < this.MIN_AVG_TIME)
74
- return true;
75
- }
76
- // by requst url
77
- if (this.Storageـurl[ip][url].length >= this.MIN_DATA_REQUIRE_FOR_AVG_PER_URL)
78
- {
79
- let avg = this.weightedAverage(this.Storageـurl[ip][url], this.TIME_FADE_RATE);
80
- if (avg < this.MIN_AVG_TIME_PER_URL)
81
- return true;
82
- }
83
- return false;
84
- }
1
+ export class AnomalyDetector
2
+ {
3
+ static Main: AnomalyDetector = new AnomalyDetector();
4
+ // configuration
5
+ MAX_STORAGE_SIZE = 10000;
6
+ MAX_STORAGE_PER_IP = 25;
7
+ MIN_AVG_TIME = 200;
8
+ MIN_DATA_REQUIRE_FOR_AVG = 4;
9
+ MIN_AVG_TIME_PER_URL = 400;
10
+ MIN_DATA_REQUIRE_FOR_AVG_PER_URL = 3;
11
+ TIME_FADE_RATE = 0.9;
12
+
13
+ Storage: { [ip: string]: { url: string, time: number }[] } = {};
14
+ Storageـurl: { [ip: string]: { [url: string]: { time: number }[] } } = {};
15
+ Orders: string[] = [];
16
+
17
+ private weightedAverage(array: { time: number }[], fade_rate: number)
18
+ {
19
+ let sum = 0;
20
+ let sum_coef = 0;
21
+ for (let i = 1; i < array.length; i++)
22
+ {
23
+ let diff = array[i].time - array[i - 1].time;
24
+ let coef = Math.pow(fade_rate, (array.length - (i + 1)));
25
+ sum += diff * coef;
26
+ sum_coef += coef;
27
+ }
28
+ return sum / sum_coef;
29
+ }
30
+
31
+ isAnomaly(ip: string, url: string): boolean
32
+ {
33
+ if (!this.Storage[ip])
34
+ {
35
+ this.Storage[ip] = [];
36
+ this.Storageـurl[ip] = {};
37
+ this.Orders.push(ip);
38
+ }
39
+
40
+ if (this.Orders.length > this.MAX_STORAGE_SIZE)
41
+ {
42
+ let index = this.Orders.shift();
43
+ if (index)
44
+ {
45
+ delete this.Storage[index];
46
+ delete this.Storageـurl[index];
47
+ }
48
+ }
49
+
50
+ if (this.Storage[ip].length >= this.MAX_STORAGE_PER_IP)
51
+ {
52
+ let record = this.Storage[ip].shift(); // remove first element
53
+ if (record)
54
+ this.Storageـurl[ip][record.url].shift(); // remove first element of url array
55
+ }
56
+
57
+ this.Storage[ip].push({
58
+ url: url,
59
+ time: +new Date()
60
+ });
61
+
62
+ if (!this.Storageـurl[ip][url])
63
+ this.Storageـurl[ip][url] = [];
64
+ this.Storageـurl[ip][url].push({
65
+ time: +new Date()
66
+ });
67
+
68
+ // check conditions
69
+ // simple
70
+ if (this.Storage[ip].length >= this.MIN_DATA_REQUIRE_FOR_AVG)
71
+ {
72
+ let avg = this.weightedAverage(this.Storage[ip], this.TIME_FADE_RATE);
73
+ if (avg < this.MIN_AVG_TIME)
74
+ return true;
75
+ }
76
+ // by requst url
77
+ if (this.Storageـurl[ip][url].length >= this.MIN_DATA_REQUIRE_FOR_AVG_PER_URL)
78
+ {
79
+ let avg = this.weightedAverage(this.Storageـurl[ip][url], this.TIME_FADE_RATE);
80
+ if (avg < this.MIN_AVG_TIME_PER_URL)
81
+ return true;
82
+ }
83
+ return false;
84
+ }
85
85
  }