namirasoft-node-sequelize 1.4.0

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.
Files changed (63) hide show
  1. package/dist/BaseDB2Database.d.ts +4 -0
  2. package/dist/BaseDB2Database.js +11 -0
  3. package/dist/BaseDB2Database.js.map +1 -0
  4. package/dist/BaseFilterItemBuilderSequelize.d.ts +54 -0
  5. package/dist/BaseFilterItemBuilderSequelize.js +150 -0
  6. package/dist/BaseFilterItemBuilderSequelize.js.map +1 -0
  7. package/dist/BaseMSSQLDatabase.d.ts +4 -0
  8. package/dist/BaseMSSQLDatabase.js +11 -0
  9. package/dist/BaseMSSQLDatabase.js.map +1 -0
  10. package/dist/BaseMariaDBDatabase.d.ts +4 -0
  11. package/dist/BaseMariaDBDatabase.js +11 -0
  12. package/dist/BaseMariaDBDatabase.js.map +1 -0
  13. package/dist/BaseMySqlDatabase.d.ts +4 -0
  14. package/dist/BaseMySqlDatabase.js +11 -0
  15. package/dist/BaseMySqlDatabase.js.map +1 -0
  16. package/dist/BaseOracleDatabase.d.ts +4 -0
  17. package/dist/BaseOracleDatabase.js +11 -0
  18. package/dist/BaseOracleDatabase.js.map +1 -0
  19. package/dist/BasePostgreSQLDatabase.d.ts +4 -0
  20. package/dist/BasePostgreSQLDatabase.js +11 -0
  21. package/dist/BasePostgreSQLDatabase.js.map +1 -0
  22. package/dist/BaseSQLiteDatabase.d.ts +4 -0
  23. package/dist/BaseSQLiteDatabase.js +11 -0
  24. package/dist/BaseSQLiteDatabase.js.map +1 -0
  25. package/dist/BaseSequelizeDatabase.d.ts +19 -0
  26. package/dist/BaseSequelizeDatabase.js +103 -0
  27. package/dist/BaseSequelizeDatabase.js.map +1 -0
  28. package/dist/BaseSequelizeModel.d.ts +3 -0
  29. package/dist/BaseSequelizeModel.js +8 -0
  30. package/dist/BaseSequelizeModel.js.map +1 -0
  31. package/dist/BaseSequelizeModelAttributeColumnOptions.d.ts +9 -0
  32. package/dist/BaseSequelizeModelAttributeColumnOptions.js +4 -0
  33. package/dist/BaseSequelizeModelAttributeColumnOptions.js.map +1 -0
  34. package/dist/BaseSequelizeModelAttributes.d.ts +5 -0
  35. package/dist/BaseSequelizeModelAttributes.js +3 -0
  36. package/dist/BaseSequelizeModelAttributes.js.map +1 -0
  37. package/dist/BaseSequelizeTable.d.ts +81 -0
  38. package/dist/BaseSequelizeTable.js +255 -0
  39. package/dist/BaseSequelizeTable.js.map +1 -0
  40. package/dist/BaseSnowFlakeDatabase.d.ts +4 -0
  41. package/dist/BaseSnowFlakeDatabase.js +11 -0
  42. package/dist/BaseSnowFlakeDatabase.js.map +1 -0
  43. package/dist/index.d.ts +13 -0
  44. package/dist/index.js +30 -0
  45. package/dist/index.js.map +1 -0
  46. package/logo.png +0 -0
  47. package/package.json +25 -0
  48. package/src/BaseDB2Database.ts +9 -0
  49. package/src/BaseFilterItemBuilderSequelize.ts +120 -0
  50. package/src/BaseMSSQLDatabase.ts +9 -0
  51. package/src/BaseMariaDBDatabase.ts +9 -0
  52. package/src/BaseMySqlDatabase.ts +9 -0
  53. package/src/BaseOracleDatabase.ts +9 -0
  54. package/src/BasePostgreSQLDatabase.ts +9 -0
  55. package/src/BaseSQLiteDatabase.ts +9 -0
  56. package/src/BaseSequelizeDatabase.ts +115 -0
  57. package/src/BaseSequelizeModel.ts +5 -0
  58. package/src/BaseSequelizeModelAttributeColumnOptions.ts +11 -0
  59. package/src/BaseSequelizeModelAttributes.ts +6 -0
  60. package/src/BaseSequelizeTable.ts +285 -0
  61. package/src/BaseSnowFlakeDatabase.ts +9 -0
  62. package/src/index.ts +13 -0
  63. package/tsconfig.json +42 -0
@@ -0,0 +1,4 @@
1
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
2
+ export declare abstract class BaseDB2Database extends BaseSequelizeDatabase {
3
+ constructor(host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseDB2Database = void 0;
4
+ const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
+ class BaseDB2Database extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
+ constructor(host, port, name, user, pass, logging = false) {
7
+ super('db2', host, port, name, user, pass, logging);
8
+ }
9
+ }
10
+ exports.BaseDB2Database = BaseDB2Database;
11
+ //# sourceMappingURL=BaseDB2Database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDB2Database.js","sourceRoot":"","sources":["../src/BaseDB2Database.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,eAAgB,SAAQ,6CAAqB;IAE/D,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACJ;AAND,0CAMC"}
@@ -0,0 +1,54 @@
1
+ import sequelize, { WhereOptions } from "sequelize";
2
+ import { BaseFilterItemBuilder_JoinTable, BaseFilterItemBuilderDatabase } from "namirasoft-node";
3
+ export declare class BaseFilterItemBuilderSequelize extends BaseFilterItemBuilderDatabase<WhereOptions> {
4
+ getAdvancedSearchConditions(columns: string[], search: string): Promise<sequelize.WhereOptions[]>;
5
+ getIn(column_name: string, not: boolean, values: string[]): {
6
+ condition: sequelize.WhereAttributeHash<any>;
7
+ };
8
+ getLike(column_name: string, not: boolean, value: string): {
9
+ condition: sequelize.WhereAttributeHash<any>;
10
+ };
11
+ getRegex(column_name: string, not: boolean, value: string): {
12
+ condition: sequelize.WhereAttributeHash<any>;
13
+ };
14
+ getEmpty(column_name: string, not: boolean): {
15
+ condition: sequelize.WhereOptions;
16
+ };
17
+ getExists(column_name: string, not: boolean): {
18
+ condition: sequelize.WhereAttributeHash<any>;
19
+ independant?: undefined;
20
+ } | {
21
+ condition: sequelize.WhereAttributeHash<any>;
22
+ independant: {
23
+ not: true;
24
+ };
25
+ };
26
+ getIncludes(column_name: string, not: boolean, values: string[]): {
27
+ condition: sequelize.WhereAttributeHash<any>;
28
+ independant?: undefined;
29
+ } | {
30
+ condition: sequelize.WhereAttributeHash<any>;
31
+ independant: {
32
+ not: true;
33
+ };
34
+ };
35
+ getStartsWith(column_name: string, not: boolean, value: string): {
36
+ condition: sequelize.WhereAttributeHash<any>;
37
+ };
38
+ getEndsWith(column_name: string, not: boolean, value: string): {
39
+ condition: sequelize.WhereAttributeHash<any>;
40
+ };
41
+ getLT(column_name: string, value: any): {
42
+ condition: sequelize.WhereAttributeHash<any>;
43
+ };
44
+ getLTE(column_name: string, value: any): {
45
+ condition: sequelize.WhereAttributeHash<any>;
46
+ };
47
+ getGT(column_name: string, value: any): {
48
+ condition: sequelize.WhereAttributeHash<any>;
49
+ };
50
+ getGTE(column_name: string, value: any): {
51
+ condition: sequelize.WhereAttributeHash<any>;
52
+ };
53
+ getInSelect(table_name: string, not: boolean, join: BaseFilterItemBuilder_JoinTable<WhereOptions>, conditions: WhereOptions[]): Promise<sequelize.Utils.Literal>;
54
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.BaseFilterItemBuilderSequelize = void 0;
46
+ const sequelize_1 = __importStar(require("sequelize"));
47
+ const namirasoft_node_1 = require("namirasoft-node");
48
+ class BaseFilterItemBuilderSequelize extends namirasoft_node_1.BaseFilterItemBuilderDatabase {
49
+ getAdvancedSearchConditions(columns, search) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ let database = this.database;
52
+ return database.getAdvancedSearchConditions(columns, search);
53
+ });
54
+ }
55
+ getIn(column_name, not, values) {
56
+ let condition = {};
57
+ condition[column_name] = not ? { [sequelize_1.Op.notIn]: values } : { [sequelize_1.Op.in]: values };
58
+ return { condition };
59
+ }
60
+ getLike(column_name, not, value) {
61
+ let condition = {};
62
+ condition[column_name] = not ? { [sequelize_1.Op.notLike]: `%${value}%` } : { [sequelize_1.Op.like]: `%${value}%` };
63
+ return { condition };
64
+ }
65
+ getRegex(column_name, not, value) {
66
+ let condition = {};
67
+ condition[column_name] = not ? { [sequelize_1.Op.notRegexp]: value } : { [sequelize_1.Op.regexp]: value };
68
+ return { condition };
69
+ }
70
+ getEmpty(column_name, not) {
71
+ let condition = {};
72
+ if (!not) {
73
+ condition = {
74
+ [sequelize_1.Op.or]: [
75
+ { [column_name]: { [sequelize_1.Op.is]: null } },
76
+ { [column_name]: '' }
77
+ ]
78
+ };
79
+ }
80
+ else
81
+ condition[column_name] = { [sequelize_1.Op.and]: [{ [sequelize_1.Op.ne]: null }, { [sequelize_1.Op.ne]: '' }] };
82
+ return { condition };
83
+ }
84
+ getExists(column_name, not) {
85
+ let condition = {};
86
+ condition[column_name] = { [sequelize_1.Op.and]: [{ [sequelize_1.Op.ne]: null }, { [sequelize_1.Op.ne]: '' }] };
87
+ if (!not)
88
+ return { condition };
89
+ return { condition, independant: { not } };
90
+ }
91
+ getIncludes(column_name, not, values) {
92
+ let condition = {};
93
+ condition[column_name] = { [sequelize_1.Op.in]: values };
94
+ if (!not)
95
+ return { condition };
96
+ return { condition, independant: { not } };
97
+ }
98
+ getStartsWith(column_name, not, value) {
99
+ let condition = {};
100
+ condition[column_name] = not ? { [sequelize_1.Op.notLike]: `${value}%` } : { [sequelize_1.Op.like]: `${value}%` };
101
+ return { condition };
102
+ }
103
+ getEndsWith(column_name, not, value) {
104
+ let condition = {};
105
+ condition[column_name] = not ? { [sequelize_1.Op.notLike]: `%${value}` } : { [sequelize_1.Op.like]: `%${value}` };
106
+ return { condition };
107
+ }
108
+ getLT(column_name, value) {
109
+ let condition = {};
110
+ condition[column_name] = { [sequelize_1.Op.lt]: value };
111
+ return { condition };
112
+ }
113
+ getLTE(column_name, value) {
114
+ let condition = {};
115
+ condition[column_name] = { [sequelize_1.Op.lte]: value };
116
+ return { condition };
117
+ }
118
+ getGT(column_name, value) {
119
+ let condition = {};
120
+ condition[column_name] = { [sequelize_1.Op.gt]: value };
121
+ return { condition };
122
+ }
123
+ getGTE(column_name, value) {
124
+ let condition = {};
125
+ condition[column_name] = { [sequelize_1.Op.gte]: value };
126
+ return { condition };
127
+ }
128
+ getInSelect(table_name, not, join, conditions) {
129
+ return __awaiter(this, void 0, void 0, function* () {
130
+ let select = yield new Promise(resolve => {
131
+ let t = this.database.getTable(table_name);
132
+ let table = t;
133
+ table.model.findAll({
134
+ where: { [sequelize_1.Op.and]: conditions },
135
+ attributes: [join.secondary.column],
136
+ logging(sql) {
137
+ let q = sql.substring(sql.indexOf("SELECT"));
138
+ if (q.endsWith(";"))
139
+ q = q.slice(0, -1);
140
+ resolve(q);
141
+ },
142
+ });
143
+ });
144
+ let query = `${join.main.column} ${not ? "NOT" : ""} IN (${select})`;
145
+ return sequelize_1.default.literal(query);
146
+ });
147
+ }
148
+ }
149
+ exports.BaseFilterItemBuilderSequelize = BaseFilterItemBuilderSequelize;
150
+ //# sourceMappingURL=BaseFilterItemBuilderSequelize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseFilterItemBuilderSequelize.js","sourceRoot":"","sources":["../src/BaseFilterItemBuilderSequelize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
2
+ export declare abstract class BaseMSSQLDatabase extends BaseSequelizeDatabase {
3
+ constructor(host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMSSQLDatabase = void 0;
4
+ const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
+ class BaseMSSQLDatabase extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
+ constructor(host, port, name, user, pass, logging = false) {
7
+ super('sqlite', host, port, name, user, pass, logging);
8
+ }
9
+ }
10
+ exports.BaseMSSQLDatabase = BaseMSSQLDatabase;
11
+ //# sourceMappingURL=BaseMSSQLDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseMSSQLDatabase.js","sourceRoot":"","sources":["../src/BaseMSSQLDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,iBAAkB,SAAQ,6CAAqB;IAEjE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACJ;AAND,8CAMC"}
@@ -0,0 +1,4 @@
1
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
2
+ export declare abstract class BaseMariaDBDatabase extends BaseSequelizeDatabase {
3
+ constructor(host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMariaDBDatabase = void 0;
4
+ const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
+ class BaseMariaDBDatabase extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
+ constructor(host, port, name, user, pass, logging = false) {
7
+ super('sqlite', host, port, name, user, pass, logging);
8
+ }
9
+ }
10
+ exports.BaseMariaDBDatabase = BaseMariaDBDatabase;
11
+ //# sourceMappingURL=BaseMariaDBDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseMariaDBDatabase.js","sourceRoot":"","sources":["../src/BaseMariaDBDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,mBAAoB,SAAQ,6CAAqB;IAEnE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACJ;AAND,kDAMC"}
@@ -0,0 +1,4 @@
1
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
2
+ export declare abstract class BaseMySqlDatabase extends BaseSequelizeDatabase {
3
+ constructor(host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMySqlDatabase = void 0;
4
+ const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
+ class BaseMySqlDatabase extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
+ constructor(host, port, name, user, pass, logging = false) {
7
+ super('mysql', host, port, name, user, pass, logging);
8
+ }
9
+ }
10
+ exports.BaseMySqlDatabase = BaseMySqlDatabase;
11
+ //# sourceMappingURL=BaseMySqlDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseMySqlDatabase.js","sourceRoot":"","sources":["../src/BaseMySqlDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,iBAAkB,SAAQ,6CAAqB;IAEjE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CACJ;AAND,8CAMC"}
@@ -0,0 +1,4 @@
1
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
2
+ export declare abstract class BaseOracleDatabase extends BaseSequelizeDatabase {
3
+ constructor(host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseOracleDatabase = void 0;
4
+ const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
+ class BaseOracleDatabase extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
+ constructor(host, port, name, user, pass, logging = false) {
7
+ super('db2', host, port, name, user, pass, logging);
8
+ }
9
+ }
10
+ exports.BaseOracleDatabase = BaseOracleDatabase;
11
+ //# sourceMappingURL=BaseOracleDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseOracleDatabase.js","sourceRoot":"","sources":["../src/BaseOracleDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,kBAAmB,SAAQ,6CAAqB;IAElE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACJ;AAND,gDAMC"}
@@ -0,0 +1,4 @@
1
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
2
+ export declare abstract class BasePostgreSQLDatabase extends BaseSequelizeDatabase {
3
+ constructor(host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BasePostgreSQLDatabase = void 0;
4
+ const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
+ class BasePostgreSQLDatabase extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
+ constructor(host, port, name, user, pass, logging = false) {
7
+ super('postgres', host, port, name, user, pass, logging);
8
+ }
9
+ }
10
+ exports.BasePostgreSQLDatabase = BasePostgreSQLDatabase;
11
+ //# sourceMappingURL=BasePostgreSQLDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasePostgreSQLDatabase.js","sourceRoot":"","sources":["../src/BasePostgreSQLDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,sBAAuB,SAAQ,6CAAqB;IAEtE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACJ;AAND,wDAMC"}
@@ -0,0 +1,4 @@
1
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
2
+ export declare abstract class BaseSQLiteDatabase extends BaseSequelizeDatabase {
3
+ constructor(host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSQLiteDatabase = void 0;
4
+ const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
+ class BaseSQLiteDatabase extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
+ constructor(host, port, name, user, pass, logging = false) {
7
+ super('sqlite', host, port, name, user, pass, logging);
8
+ }
9
+ }
10
+ exports.BaseSQLiteDatabase = BaseSQLiteDatabase;
11
+ //# sourceMappingURL=BaseSQLiteDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSQLiteDatabase.js","sourceRoot":"","sources":["../src/BaseSQLiteDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,kBAAmB,SAAQ,6CAAqB;IAElE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACJ;AAND,gDAMC"}
@@ -0,0 +1,19 @@
1
+ import { Transaction } from 'sequelize';
2
+ import { Sequelize, Dialect, WhereOptions, Order } from "sequelize";
3
+ import { BaseDatabase, BaseFilterItemBuilder_JoinTable } from "namirasoft-node";
4
+ import { FilterItem, SortItem } from "namirasoft-core";
5
+ import { BaseSequelizeTable } from "./BaseSequelizeTable";
6
+ export declare abstract class BaseSequelizeDatabase extends BaseDatabase {
7
+ sequelize: Sequelize;
8
+ private dialect;
9
+ private name;
10
+ constructor(dialect: Dialect, host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
11
+ connect(): Promise<void>;
12
+ sync(force: boolean): Promise<void>;
13
+ startTransaction<T>(handler: (trx: Transaction) => Promise<T>, trx: Transaction | null): Promise<T>;
14
+ getFiltersConditions(table_main: BaseSequelizeTable<BaseSequelizeDatabase, any>, table_joins: {
15
+ [table: string]: BaseFilterItemBuilder_JoinTable<WhereOptions>;
16
+ }, filters?: FilterItem[] | undefined): Promise<WhereOptions[]>;
17
+ getAdvancedSearchConditions(columns: string[], search: string): WhereOptions[];
18
+ getSortOptions(sorts?: SortItem[] | undefined): Order;
19
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BaseSequelizeDatabase = void 0;
13
+ const namirasoft_log_1 = require("namirasoft-log");
14
+ const sequelize_1 = require("sequelize");
15
+ const namirasoft_node_1 = require("namirasoft-node");
16
+ const namirasoft_core_1 = require("namirasoft-core");
17
+ const BaseFilterItemBuilderSequelize_1 = require("./BaseFilterItemBuilderSequelize");
18
+ const namirasoft_schema_1 = require("namirasoft-schema");
19
+ class BaseSequelizeDatabase extends namirasoft_node_1.BaseDatabase {
20
+ constructor(dialect, host, port, name, user, pass, logging = false) {
21
+ super();
22
+ this.sequelize = new sequelize_1.Sequelize(name, user, pass, {
23
+ dialect,
24
+ host,
25
+ port,
26
+ logging,
27
+ pool: {
28
+ min: 2,
29
+ max: 10,
30
+ }
31
+ });
32
+ this.dialect = dialect;
33
+ this.name = name;
34
+ }
35
+ connect() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ var _a;
38
+ if (!process.env.NAMIRASOFT_MUTE) {
39
+ yield this.sequelize.authenticate();
40
+ (_a = namirasoft_log_1.Logger.main) === null || _a === void 0 ? void 0 : _a.success(`Database ${this.dialect} was connected to ${this.name}`);
41
+ }
42
+ });
43
+ }
44
+ sync(force) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ if (!process.env.NAMIRASOFT_MUTE)
47
+ yield this.sequelize.sync({ force });
48
+ });
49
+ }
50
+ startTransaction(handler, trx) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ if (trx)
53
+ return yield handler(trx);
54
+ trx = yield this.sequelize.transaction();
55
+ try {
56
+ let result = yield handler(trx);
57
+ yield trx.commit();
58
+ return result;
59
+ }
60
+ catch (error) {
61
+ yield trx.rollback();
62
+ throw error;
63
+ }
64
+ });
65
+ }
66
+ getFiltersConditions(table_main, table_joins, filters) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ let builder = new BaseFilterItemBuilderSequelize_1.BaseFilterItemBuilderSequelize(this);
69
+ return yield builder.build(table_main, table_joins, filters);
70
+ });
71
+ }
72
+ getAdvancedSearchConditions(columns, search) {
73
+ let conditions = [];
74
+ if (search)
75
+ if (search.split) {
76
+ let toks = search.split(' ');
77
+ if (toks.length > 0) {
78
+ for (let i = 0; i < toks.length; i++) {
79
+ let rOpr = { [sequelize_1.Op.like]: '%' + toks[i].trim() + '%' };
80
+ let lOpr;
81
+ let cs = columns.map(column => sequelize_1.Sequelize.fn("IFNULL", sequelize_1.Sequelize.col(column), ''));
82
+ lOpr = sequelize_1.Sequelize.fn("concat", ...cs);
83
+ let condition = sequelize_1.Sequelize.where(lOpr, rOpr);
84
+ conditions.push(condition);
85
+ }
86
+ }
87
+ }
88
+ return conditions;
89
+ }
90
+ getSortOptions(sorts) {
91
+ let table = new namirasoft_core_1.BaseMetaTable(null, "", "");
92
+ let created_at = new namirasoft_core_1.SortItem(table, new namirasoft_core_1.BaseMetaColumn(table, "created_at", "Created At", namirasoft_schema_1.VariableType.DateTime, true), false);
93
+ let ans = [];
94
+ if (!sorts || sorts.length == 0)
95
+ sorts = [created_at];
96
+ ans = sorts.filter(s => s).map(s => {
97
+ return [s.column.name, s.ascending ? "asc" : "desc"];
98
+ });
99
+ return ans;
100
+ }
101
+ }
102
+ exports.BaseSequelizeDatabase = BaseSequelizeDatabase;
103
+ //# sourceMappingURL=BaseSequelizeDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSequelizeDatabase.js","sourceRoot":"","sources":["../src/BaseSequelizeDatabase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Model } from 'sequelize';
2
+ export declare abstract class BaseSequelizeModel extends Model {
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSequelizeModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ class BaseSequelizeModel extends sequelize_1.Model {
6
+ }
7
+ exports.BaseSequelizeModel = BaseSequelizeModel;
8
+ //# sourceMappingURL=BaseSequelizeModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSequelizeModel.js","sourceRoot":"","sources":["../src/BaseSequelizeModel.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAElC,MAAsB,kBAAmB,SAAQ,iBAAK;CAErD;AAFD,gDAEC"}
@@ -0,0 +1,9 @@
1
+ import { ModelAttributeColumnOptions, Model } from "sequelize";
2
+ export interface BaseSequelizeModelAttributeColumnOptions<M extends Model = Model> extends ModelAttributeColumnOptions<M> {
3
+ secure?: boolean;
4
+ read_only?: boolean;
5
+ searchable?: boolean;
6
+ tags?: {
7
+ type?: "BaseTypeSchema" | "BaseTypeSchema[]" | "BaseVariableSchema" | "BaseVariableSchema[]";
8
+ };
9
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ ;
4
+ //# sourceMappingURL=BaseSequelizeModelAttributeColumnOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSequelizeModelAttributeColumnOptions.js","sourceRoot":"","sources":["../src/BaseSequelizeModelAttributeColumnOptions.ts"],"names":[],"mappings":";;AAUC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { DataType, Model } from "sequelize";
2
+ import { BaseSequelizeModelAttributeColumnOptions } from "./BaseSequelizeModelAttributeColumnOptions";
3
+ export type BaseSequelizeModelAttributes<M extends Model = Model, TAttributes = any> = {
4
+ [name in keyof TAttributes]: DataType | BaseSequelizeModelAttributeColumnOptions<M>;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=BaseSequelizeModelAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSequelizeModelAttributes.js","sourceRoot":"","sources":["../src/BaseSequelizeModelAttributes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ import { ModelOptions, WhereOptions } from "sequelize";
2
+ import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
3
+ import { BaseTable } from "namirasoft-node";
4
+ import { ModelCtor, FindOptions, Transaction, Attributes } from 'sequelize';
5
+ import { BaseSequelizeModel } from "./BaseSequelizeModel";
6
+ import { BaseMetaColumn, SortItem } from "namirasoft-core";
7
+ import { BaseTypeSchema } from "namirasoft-schema";
8
+ import { BaseSequelizeModelAttributeColumnOptions } from "./BaseSequelizeModelAttributeColumnOptions";
9
+ import { BaseSequelizeModelAttributes } from "./BaseSequelizeModelAttributes";
10
+ export declare abstract class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseSequelizeModel> extends BaseTable<D, BaseSequelizeModelAttributeColumnOptions> {
11
+ model: ModelCtor<M>;
12
+ attributes: BaseSequelizeModelAttributes<M, Attributes<M>>;
13
+ constructor(database: D);
14
+ getName(): string;
15
+ protected getExamples(): {
16
+ [name: string]: string;
17
+ };
18
+ getSecureColumns(): string[];
19
+ getReadOnlyColumns(): string[];
20
+ private getModelAllAttributes;
21
+ getColumnOption(name: string): BaseSequelizeModelAttributeColumnOptions;
22
+ forEachColumn(handler: (name: string, column: BaseSequelizeModelAttributeColumnOptions) => void): void;
23
+ getColumn(name: string): BaseMetaColumn;
24
+ protected getTypeSchema(option: BaseSequelizeModelAttributeColumnOptions): BaseTypeSchema;
25
+ protected isFloat(type: any): type is {
26
+ options: {
27
+ length: number;
28
+ decimals: number;
29
+ };
30
+ };
31
+ protected isDouble(type: any): type is {
32
+ options: {
33
+ length: number;
34
+ decimals: number;
35
+ };
36
+ };
37
+ protected isDecimal(type: any): type is {
38
+ options: {
39
+ precision: number;
40
+ scale: number;
41
+ };
42
+ };
43
+ protected isReal(type: any): type is {
44
+ options: {
45
+ length: number;
46
+ decimals: number;
47
+ };
48
+ };
49
+ protected isChar(type: any): type is {
50
+ _length: number;
51
+ options: {
52
+ length: number;
53
+ };
54
+ };
55
+ protected isString(type: any): type is {
56
+ _length: number;
57
+ options: {
58
+ length: number;
59
+ };
60
+ };
61
+ protected isEnum(type: any): type is {
62
+ options: {
63
+ values: string[];
64
+ };
65
+ };
66
+ define(modelName: string, attributes: BaseSequelizeModelAttributes<M, Attributes<M>>, options?: ModelOptions<M>): void;
67
+ addForeignKey(primary: BaseSequelizeTable<BaseSequelizeDatabase, BaseSequelizeModel>, name: string, allowNull?: boolean): void;
68
+ _getOrNull(options: FindOptions<Attributes<M>>, trx: Transaction | null): Promise<M | null>;
69
+ _get(options: FindOptions<Attributes<M>>, trx: Transaction | null): Promise<M>;
70
+ _list(where: WhereOptions<Attributes<M>>, pagination: {
71
+ dont: true;
72
+ } | {
73
+ page: number;
74
+ size: number;
75
+ }, sorts: {
76
+ dont: true;
77
+ } | SortItem[], options: FindOptions<Attributes<M>>, trx: Transaction | null): Promise<{
78
+ rows: M[];
79
+ count: number;
80
+ }>;
81
+ }