namirasoft-node 1.4.103 → 1.4.104

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,6 +4,7 @@ import { ILogger } from "namirasoft-log";
4
4
  import { BaseApplicationLink } from './BaseApplicationLink';
5
5
  import { PackageService } from 'namirasoft-core';
6
6
  import { ApplicationSchema } from 'namirasoft-schema';
7
+ import { BaseController } from './BaseController';
7
8
  export declare abstract class BaseApplication<D extends {
8
9
  [name: string]: BaseDatabase;
9
10
  }> {
@@ -34,7 +35,7 @@ export declare abstract class BaseApplication<D extends {
34
35
  protected abstract getControllers(): any[];
35
36
  protected abstract getTables(): any[];
36
37
  protected abstract getCrons(): any[];
37
- protected foreachController(handler: (generator: (req: express.Request, res: express.Response) => any) => Promise<boolean>): Promise<void>;
38
+ protected foreachController(handler: (generator: (req: express.Request, res: express.Response) => BaseController<{}, any, any, any>) => Promise<boolean>, modes: string[]): Promise<void>;
38
39
  protected foreachCron(handler: (generator: () => any) => Promise<boolean>): Promise<void>;
39
40
  start(): Promise<void>;
40
41
  protected startCrashHandler(): Promise<void>;
@@ -90,11 +90,15 @@ class BaseApplication {
90
90
  if (!fs.existsSync(this.dir_swagger))
91
91
  fs.mkdirSync(this.dir_swagger, { recursive: true });
92
92
  }
93
- foreachController(handler) {
93
+ foreachController(handler, modes) {
94
94
  return __awaiter(this, void 0, void 0, function* () {
95
95
  let controllers = this.getControllers();
96
96
  for (let i = 0; i < controllers.length; i++) {
97
97
  const Template = controllers[i];
98
+ if (modes.length > 0)
99
+ if (!Template.modes.includes("*"))
100
+ if (!modes.some(mode => Template.modes.includes(mode)))
101
+ return;
98
102
  let con = yield handler((req, res) => {
99
103
  if (namirasoft_core_1.ObjectService.isClass(Template))
100
104
  return new Template(this, req, res);
@@ -132,8 +136,8 @@ class BaseApplication {
132
136
  yield this.startDatabase();
133
137
  if (!process.env.NAMIRASOFT_MUTE) {
134
138
  yield this.onBeforeStart();
139
+ yield this.startExpress();
135
140
  if (this.mode == "api") {
136
- yield this.startExpress();
137
141
  yield this.createSwagger();
138
142
  yield this.startSwagger();
139
143
  yield this.startHomePage();
@@ -336,14 +340,12 @@ class BaseApplication {
336
340
  router.put(path, ...handlers);
337
341
  else if (info.method == namirasoft_core_1.HTTPMethod.DELETE)
338
342
  router.delete(path, ...handlers);
339
- else
340
- return false;
341
343
  }
342
344
  catch (error) {
343
345
  this.logger.onCatchFatal(error);
344
346
  }
345
347
  return true;
346
- }));
348
+ }), [this.mode]);
347
349
  return router;
348
350
  });
349
351
  }
@@ -358,12 +360,11 @@ class BaseApplication {
358
360
  let schema = new namirasoft_schema_1.ApplicationSchema(this.pkg);
359
361
  yield this.foreachController((generator) => __awaiter(this, void 0, void 0, function* () {
360
362
  const template = generator(null, null);
361
- template.database = this.databases;
362
363
  if (template instanceof BaseController_1.BaseController)
363
364
  if (!filter || filter(template))
364
365
  schema.controllers.push(yield template.getSchema());
365
366
  return true;
366
- }));
367
+ }), []);
367
368
  let tables = this.getTables();
368
369
  for (let i = 0; i < tables.length; i++) {
369
370
  const table = tables[i];
@@ -1 +1 @@
1
- {"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":"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"}
@@ -17,12 +17,13 @@ export declare abstract class BaseController<D extends {
17
17
  req: express.Request;
18
18
  res: express.Response;
19
19
  meta: Meta;
20
+ modes: string[];
20
21
  protected output: Output | null;
21
22
  protected result: any;
22
23
  protected state: State;
23
24
  protected props: Props;
24
25
  protected validate_query: boolean;
25
- protected bodyAs: {
26
+ bodyAs: {
26
27
  json: {
27
28
  enabled: boolean;
28
29
  limit: string;
@@ -20,6 +20,7 @@ class BaseController {
20
20
  can: [],
21
21
  onBefore: []
22
22
  };
23
+ this.modes = ["api"];
23
24
  this.validate_query = true;
24
25
  this.bodyAs = {
25
26
  json: {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,iCAA8B;AAC9B,qDAAmG;AAEnG,yDAAuG;AAEvG,MAAsB,cAAc;IAmChC,YAAY,GAAuB,EAAE,GAAoB,EAAE,GAAqB;QAjCtE,QAAG,GAIT;YACI,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;SACf,CAAC;QASI,mBAAc,GAAY,IAAI,CAAC;QAC/B,WAAM,GAGZ;YACI,IAAI,EAAE;gBACF,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,OAAO;aACjB;YACD,GAAG,EAAE;gBACD,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,kBAAkB;aAC3B;SACJ,CAAC;QACC,iBAAY,GAAY,IAAI,CAAC;QAC7B,qBAAgB,GAAY,IAAI,CAAC;QAGpC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IACS,UAAU;QAEhB,OAAO,IAAI,CAAC;IAChB,CAAC;IAMK,sBAAsB;;YAExB,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAQK,GAAG;;YAEL,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAErC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAEnB,IAAI,OAAO,GAAG,CAAO,GAAe,EAAE,EAAE;gBAEpC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;oBACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACnC,CAAC;wBACG,IACA,CAAC;4BACG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;gCAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrC,CAAC;wBAAC,OAAO,KAAK,EACd,CAAC;4BACG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;wBACxC,CAAC;wBACD,GAAG,EAAE,CAAC;oBACV,CAAC;YACT,CAAC,CAAA,CAAA;YAED,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,IACA,CAAC;gBAEG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAEpB,IAAI,MAAM,GAAW,IAAI,+BAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC9E,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC3E,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;gBACrD,IAAI,MAAM,EACV,CAAC;oBACG,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAGnC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;oBAGvB,IAAI,OAAO,GAA2B,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxD,IAAI,OAAO,IAAI,IAAI;wBACf,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;4BAC9C,gCAAc,CAAC,SAAS,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;oBAGvE,gCAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACtE,IAAI,IAAI,CAAC,cAAc,EACvB,CAAC;wBACG,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;wBAC3B,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBAClD,IAAI,OAAO,IAAI,IAAI;4BACf,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;6BAE5C,CAAC;4BACG,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAClC,CAAC;gCACG,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gCACzB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oCACtB,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACvC,CAAC;wBACL,CAAC;wBACD,gCAAY,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;oBAC5D,CAAC;oBAGD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;oBAGlC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5B,CAAC;qBACI,IAAI,QAAQ;oBACb,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;;oBAErC,gCAAc,CAAC,SAAS,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,KAAK,EACd,CAAC;gBACG,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,OAAe,CAAC;gBACpB,IAAI,KAAK,YAAY,KAAK,EAC1B,CAAC;oBACG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACxB,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC5B,CAAC;;oBAEG,OAAO,GAAG,KAAK,GAAG,EAAE,CAAC;gBAEzB,IAAI,KAAK,YAAY,2BAAS,EAC9B,CAAC;oBACG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBAC5B,MAAM,OAAO,CAAC,GAAG,EAAE;wBAEf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/F,CAAC,CAAC,CAAC;gBACP,CAAC;qBAED,CAAC;oBACG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;oBACrB,IAAI,KAAK,YAAY,KAAK,EAC1B,CAAC;wBACG,MAAM,OAAO,CAAC,GAAG,EAAE;4BAEf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;wBAClG,CAAC,CAAC,CAAC;oBACP,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC5B,IAAI,KAAK,YAAY,2BAAS;oBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;oBAEhC,IAAI,CAAC,MAAM,GAAG,8BAA8B,CAAC;YACrD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,CAAC;gBACG,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;oBACnB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;;oBAExB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAClC,CAAC;YAGD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAErB,IAAI,CAAC,MAAM;gBACP,MAAM,OAAO,CAAC,GAAG,EAAE;oBAEf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YAEP,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;KAAA;IACK,SAAS;;YAEX,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,MAAM,GAAG,IAAI,oCAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/C,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/C,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IACS,UAAU,CAAC,IAAY,EAAE,KAAU,EAAE,UAA4B,SAAS;QAEhF,IAAI,MAAM,GAAG,IAAI,4BAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QAClD,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;CACJ;AAzND,wCAyNC"}
1
+ {"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.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.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
- }
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.104",
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.79",
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
  }