namirasoft-node 1.1.14 → 1.1.15

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.
@@ -3,8 +3,9 @@ import { BaseDatabase } from './BaseDatabase';
3
3
  import { AnomalyDetector } from './AnomalyDetector';
4
4
  import { ILogger } from 'namirasoft-log';
5
5
  import { Meta } from './Meta';
6
+ import { HTTPMethod } from 'namirasoft-core';
6
7
  import { BaseApplication } from './BaseApplication';
7
- import { HTTPMethod, BaseVariableSchema, ControllerSchema } from 'namirasoft-schema';
8
+ import { BaseVariableSchema, ControllerSchema } from 'namirasoft-schema';
8
9
  export declare abstract class BaseController<D extends BaseDatabase, State, Props, Output> {
9
10
  protected showLogAtTheBeginning: boolean;
10
11
  protected showLogAtTheEnd: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
3
3
  import { BaseTable } from "./BaseTable";
4
4
  import { ModelCtor, FindOptions, Transaction, Attributes } from 'sequelize';
5
5
  import { BaseSequelizeModel } from "./BaseSequelizeModel";
6
+ import { BaseVariableSchema } from "namirasoft-schema";
6
7
  export declare class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseSequelizeModel> extends BaseTable<D> {
7
8
  model: ModelCtor<M>;
9
+ attributes: ModelAttributes<M, Attributes<M>>;
8
10
  constructor(database: D);
9
11
  find(options: FindOptions<Attributes<M>>, trx: Transaction | null): Promise<M>;
10
- define<TAttributes = Attributes<M>>(modelName: string, attributes: ModelAttributes<M, TAttributes>, options?: ModelOptions<M>): void;
12
+ define(modelName: string, attributes: ModelAttributes<M, Attributes<M>>, options?: ModelOptions<M>): void;
13
+ getSchema(require: boolean, array: boolean): BaseVariableSchema;
14
+ private getVariable;
11
15
  }
@@ -10,8 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BaseSequelizeTable = void 0;
13
+ const sequelize_1 = require("sequelize");
13
14
  const BaseTable_1 = require("./BaseTable");
14
15
  const namirasoft_core_1 = require("namirasoft-core");
16
+ const namirasoft_schema_1 = require("namirasoft-schema");
15
17
  class BaseSequelizeTable extends BaseTable_1.BaseTable {
16
18
  constructor(database) {
17
19
  super(database);
@@ -26,6 +28,7 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
26
28
  });
27
29
  }
28
30
  define(modelName, attributes, options) {
31
+ this.attributes = attributes;
29
32
  if (!options)
30
33
  options = {};
31
34
  if (options.name == undefined)
@@ -51,6 +54,56 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
51
54
  options.updatedAt = true;
52
55
  this.model = this.database.sequelize.define(modelName, attributes, options);
53
56
  }
57
+ getSchema(require, array) {
58
+ let ans = new namirasoft_schema_1.ObjectSchema("", require, null);
59
+ let keys = Object.keys(this.attributes);
60
+ let secures = this.getSecureColumns();
61
+ for (let i = 0; i < keys.length; i++)
62
+ if (!secures.includes(keys[i])) {
63
+ const element = this.attributes[keys[i]];
64
+ ans.addField(this.getVariable(keys[i], element));
65
+ }
66
+ if (array)
67
+ return new namirasoft_schema_1.ArraySchema("", require, [ans]);
68
+ return ans;
69
+ }
70
+ getVariable(name, element) {
71
+ var _a;
72
+ let required = !((_a = element.allowNull) !== null && _a !== void 0 ? _a : false);
73
+ if (element.type == sequelize_1.DataTypes.BOOLEAN)
74
+ return new namirasoft_schema_1.BoolSchema(name, required);
75
+ else if (element.type == sequelize_1.DataTypes.TINYINT)
76
+ return new namirasoft_schema_1.TinyIntSchema(name, required);
77
+ else if (element.type == sequelize_1.DataTypes.SMALLINT)
78
+ return new namirasoft_schema_1.SmallIntSchema(name, required);
79
+ else if (element.type == sequelize_1.DataTypes.MEDIUMINT)
80
+ return new namirasoft_schema_1.MediumIntSchema(name, required);
81
+ else if (element.type == sequelize_1.DataTypes.INTEGER)
82
+ return new namirasoft_schema_1.IntegerSchema(name, required);
83
+ else if (element.type == sequelize_1.DataTypes.BIGINT)
84
+ return new namirasoft_schema_1.BigIntSchema(name, required);
85
+ else if (element.type == sequelize_1.DataTypes.FLOAT)
86
+ return new namirasoft_schema_1.FloatSchema(name, required, null);
87
+ else if (element.type == sequelize_1.DataTypes.DOUBLE)
88
+ return new namirasoft_schema_1.DoubleSchema(name, required, null);
89
+ else if (element.type == sequelize_1.DataTypes.DECIMAL)
90
+ return new namirasoft_schema_1.DecimalSchema(name, required, null);
91
+ else if (element.type == sequelize_1.DataTypes.REAL)
92
+ return new namirasoft_schema_1.RealSchema(name, required, null);
93
+ else if (element.type == sequelize_1.DataTypes.CHAR)
94
+ return new namirasoft_schema_1.StringSchema(name, required, element.type.length, element.type.length);
95
+ else if (element.type == sequelize_1.DataTypes.STRING || element.type == sequelize_1.DataTypes.TEXT)
96
+ return new namirasoft_schema_1.StringSchema(name, required, null, element.type.length);
97
+ else if (element.type == sequelize_1.DataTypes.DATE)
98
+ return new namirasoft_schema_1.DateTimeSchema(name, required);
99
+ else if (element.type == sequelize_1.DataTypes.DATEONLY)
100
+ return new namirasoft_schema_1.DateSchema(name, required);
101
+ else if (element.type == sequelize_1.DataTypes.TIME)
102
+ return new namirasoft_schema_1.TimeSchema(name, required);
103
+ else if (element.type == sequelize_1.DataTypes.JSON)
104
+ return new namirasoft_schema_1.AnySchema(name, required);
105
+ throw new Error("Unsupported datatype for schema: " + element.type);
106
+ }
54
107
  }
55
108
  exports.BaseSequelizeTable = BaseSequelizeTable;
56
109
  //# sourceMappingURL=BaseSequelizeTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSequelizeTable.js","sourceRoot":"","sources":["../src/BaseSequelizeTable.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,2CAAwC;AAGxC,qDAAiD;AAEjD,MAAa,kBAAkF,SAAQ,qBAAY;IAG/G,YAAY,QAAW;QAEnB,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IACK,IAAI,CAAC,OAAmC,EAAE,GAAuB;;YAEnE,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;YAC1B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAI,OAAO,CAAC,CAAC;YACjD,IAAI,KAAK,IAAI,IAAI;gBACb,OAAO,KAAK,CAAC;YACjB,MAAM,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;KAAA;IACD,MAAM,CACF,SAAiB,EACjB,UAA2C,EAC3C,OAAyB;QAGzB,IAAI,CAAC,OAAO;YACR,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS;YACzB,OAAO,CAAC,IAAI,GAAG;gBACX,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,SAAS;aACtB,CAAC;QACN,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS;YAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,IAAI,OAAO,CAAC,eAAe,IAAI,SAAS;YACpC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QACnC,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAC9B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,IAAI,OAAO,CAAC,WAAW,IAAI,SAAS;YAChC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS;YAC/B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS;YAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;CACJ;AA/CD,gDA+CC"}
1
+ {"version":3,"file":"BaseSequelizeTable.js","sourceRoot":"","sources":["../src/BaseSequelizeTable.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "namirasoft-node",
3
3
  "description": "Namira Software Corporation Node NPM Package",
4
- "version": "1.1.14",
4
+ "version": "1.1.15",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "scripts": {},
@@ -19,9 +19,9 @@
19
19
  "cors": "^2.8.5",
20
20
  "express": "^4.18.2",
21
21
  "joi": "^17.11.0",
22
- "namirasoft-core": "^1.1.7",
22
+ "namirasoft-core": "^1.1.8",
23
23
  "namirasoft-log": "^1.1.1",
24
- "namirasoft-schema": "^1.1.24",
24
+ "namirasoft-schema": "^1.1.26",
25
25
  "nodemailer": "^6.9.7",
26
26
  "nodemailer-smtp-transport": "^2.7.4",
27
27
  "request-ip": "^3.3.0",
@@ -3,9 +3,9 @@ import { BaseDatabase } from './BaseDatabase';
3
3
  import { AnomalyDetector } from './AnomalyDetector';
4
4
  import { ILogger } from 'namirasoft-log';
5
5
  import { Meta } from './Meta';
6
- import { ErrorOperation, HTTPError } from 'namirasoft-core';
6
+ import { ErrorOperation, HTTPError, HTTPMethod } from 'namirasoft-core';
7
7
  import { BaseApplication } from './BaseApplication';
8
- import { HTTPMethod, BaseVariableSchema, ControllerSchema, JoiValidator } from 'namirasoft-schema';
8
+ import { BaseVariableSchema, ControllerSchema, JoiValidator } from 'namirasoft-schema';
9
9
 
10
10
  export abstract class BaseController<D extends BaseDatabase, State, Props, Output>
11
11
  {
@@ -1,18 +1,20 @@
1
- import { ModelOptions, ModelAttributes } from "sequelize";
1
+ import { ModelOptions, ModelAttributes, ModelAttributeColumnOptions, DataTypes } from "sequelize";
2
2
  import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
3
3
  import { BaseTable } from "./BaseTable";
4
4
  import { ModelCtor, FindOptions, Transaction, Attributes } from 'sequelize';
5
5
  import { BaseSequelizeModel } from "./BaseSequelizeModel";
6
6
  import { ErrorOperation } from "namirasoft-core";
7
+ import { AnySchema, ArraySchema, BaseVariableSchema, BigIntSchema, BoolSchema, DateSchema, DateTimeSchema, DecimalSchema, DoubleSchema, FloatSchema, IntegerSchema, MediumIntSchema, ObjectSchema, RealSchema, SmallIntSchema, StringSchema, TimeSchema, TinyIntSchema } from "namirasoft-schema";
7
8
 
8
9
  export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseSequelizeModel> extends BaseTable<D>
9
10
  {
10
11
  model!: ModelCtor<M>;
12
+ attributes!: ModelAttributes<M, Attributes<M>>;
11
13
  constructor(database: D)
12
14
  {
13
15
  super(database);
14
16
  }
15
- async find(options: FindOptions<Attributes<M>>, trx: Transaction | null): Promise<M>
17
+ async find(options: FindOptions<Attributes<M>>, trx: Transaction | null): Promise<M>
16
18
  {
17
19
  options.transaction = trx;
18
20
  let value = await this.model.findOne<M>(options);
@@ -20,12 +22,10 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
20
22
  return value;
21
23
  throw ErrorOperation.getHTTP(404, "Could not found " + this.model.name);
22
24
  }
23
- define<TAttributes = Attributes<M>>(
24
- modelName: string,
25
- attributes: ModelAttributes<M, TAttributes>,
26
- options?: ModelOptions<M>
25
+ define(modelName: string, attributes: ModelAttributes<M, Attributes<M>>, options?: ModelOptions<M>
27
26
  ): void
28
27
  {
28
+ this.attributes = attributes;
29
29
  if (!options)
30
30
  options = {};
31
31
  if (options.name == undefined)
@@ -52,4 +52,56 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
52
52
 
53
53
  this.model = this.database.sequelize.define(modelName, attributes, options);
54
54
  }
55
+ getSchema(require: boolean, array: boolean): BaseVariableSchema
56
+ {
57
+ let ans = new ObjectSchema("", require, null);
58
+ let keys = Object.keys(this.attributes);
59
+ let secures = this.getSecureColumns();
60
+ for (let i = 0; i < keys.length; i++)
61
+ if (!secures.includes(keys[i]))
62
+ {
63
+ const element = this.attributes[keys[i]] as ModelAttributeColumnOptions;
64
+ ans.addField(this.getVariable(keys[i], element));
65
+ }
66
+ if (array)
67
+ return new ArraySchema("", require, [ans]);
68
+ return ans;
69
+ }
70
+ private getVariable(name: string, element: ModelAttributeColumnOptions): BaseVariableSchema
71
+ {
72
+ let required = !(element.allowNull ?? false);
73
+ if (element.type == DataTypes.BOOLEAN)
74
+ return new BoolSchema(name, required);
75
+ else if (element.type == DataTypes.TINYINT)
76
+ return new TinyIntSchema(name, required);
77
+ else if (element.type == DataTypes.SMALLINT)
78
+ return new SmallIntSchema(name, required);
79
+ else if (element.type == DataTypes.MEDIUMINT)
80
+ return new MediumIntSchema(name, required);
81
+ else if (element.type == DataTypes.INTEGER)
82
+ return new IntegerSchema(name, required);
83
+ else if (element.type == DataTypes.BIGINT)
84
+ return new BigIntSchema(name, required);
85
+ else if (element.type == DataTypes.FLOAT)
86
+ return new FloatSchema(name, required, null);
87
+ else if (element.type == DataTypes.DOUBLE)
88
+ return new DoubleSchema(name, required, null);
89
+ else if (element.type == DataTypes.DECIMAL)
90
+ return new DecimalSchema(name, required, null);
91
+ else if (element.type == DataTypes.REAL)
92
+ return new RealSchema(name, required, null);
93
+ else if (element.type == DataTypes.CHAR)
94
+ return new StringSchema(name, required, element.type.length, element.type.length);
95
+ else if (element.type == DataTypes.STRING || element.type == DataTypes.TEXT)
96
+ return new StringSchema(name, required, null, element.type.length);
97
+ else if (element.type == DataTypes.DATE)
98
+ return new DateTimeSchema(name, required);
99
+ else if (element.type == DataTypes.DATEONLY)
100
+ return new DateSchema(name, required);
101
+ else if (element.type == DataTypes.TIME)
102
+ return new TimeSchema(name, required);
103
+ else if (element.type == DataTypes.JSON)
104
+ return new AnySchema(name, required);
105
+ throw new Error("Unsupported datatype for schema: " + element.type);
106
+ }
55
107
  }