tspace-mysql 1.9.0 → 1.9.1-beta.1

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 (118) hide show
  1. package/README.md +4580 -133
  2. package/dist/lib/config/index.d.ts +2 -2
  3. package/dist/lib/config/index.js +24 -16
  4. package/dist/lib/config/index.js.map +1 -1
  5. package/dist/lib/constants/index.d.ts +10 -1
  6. package/dist/lib/constants/index.js +11 -2
  7. package/dist/lib/constants/index.js.map +1 -1
  8. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +27 -23
  9. package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
  10. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  11. package/dist/lib/core/Abstracts/AbstractDB.d.ts +5 -2
  12. package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
  13. package/dist/lib/core/Abstracts/AbstractModel.d.ts +7 -2
  14. package/dist/lib/core/Abstracts/AbstractModel.js.map +1 -1
  15. package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
  16. package/dist/lib/core/Blueprint.d.ts +35 -15
  17. package/dist/lib/core/Blueprint.js +38 -14
  18. package/dist/lib/core/Blueprint.js.map +1 -1
  19. package/dist/lib/core/Builder.d.ts +314 -42
  20. package/dist/lib/core/Builder.js +686 -391
  21. package/dist/lib/core/Builder.js.map +1 -1
  22. package/dist/lib/core/Cache/DBCache.js +19 -20
  23. package/dist/lib/core/Cache/DBCache.js.map +1 -1
  24. package/dist/lib/core/Cache/MemoryCache.js +3 -3
  25. package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
  26. package/dist/lib/core/Cache/RedisCache.js +27 -17
  27. package/dist/lib/core/Cache/RedisCache.js.map +1 -1
  28. package/dist/lib/core/Cache/index.js +37 -17
  29. package/dist/lib/core/Cache/index.js.map +1 -1
  30. package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
  31. package/dist/lib/core/Contracts/AlterTable.js +243 -0
  32. package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
  33. package/dist/lib/core/Contracts/Audit.d.ts +1 -1
  34. package/dist/lib/core/Contracts/Audit.js +2 -5
  35. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  36. package/dist/lib/core/Contracts/Logger.d.ts +1 -1
  37. package/dist/lib/core/Contracts/Logger.js.map +1 -1
  38. package/dist/lib/core/DB.d.ts +103 -11
  39. package/dist/lib/core/DB.js +158 -32
  40. package/dist/lib/core/DB.js.map +1 -1
  41. package/dist/lib/core/Decorator.d.ts +144 -16
  42. package/dist/lib/core/Decorator.js +156 -14
  43. package/dist/lib/core/Decorator.js.map +1 -1
  44. package/dist/lib/core/Driver/index.d.ts +50 -14
  45. package/dist/lib/core/Driver/index.js +13 -9
  46. package/dist/lib/core/Driver/index.js.map +1 -1
  47. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +84 -29
  48. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  49. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +48 -12
  50. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +189 -28
  51. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  52. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
  53. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +261 -0
  54. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
  55. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
  56. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +571 -0
  57. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
  58. package/dist/lib/core/Driver/mysql/MysqlDriver.js +115 -97
  59. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  60. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +48 -12
  61. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +189 -28
  62. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  63. package/dist/lib/core/Driver/postgres/PostgresDriver.js +106 -73
  64. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  65. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +53 -12
  66. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +318 -48
  67. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  68. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +21 -0
  69. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +213 -0
  70. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
  71. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +146 -0
  72. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +705 -0
  73. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
  74. package/dist/lib/core/Join.d.ts +63 -5
  75. package/dist/lib/core/Join.js +92 -15
  76. package/dist/lib/core/Join.js.map +1 -1
  77. package/dist/lib/core/JoinModel.d.ts +65 -9
  78. package/dist/lib/core/JoinModel.js +81 -52
  79. package/dist/lib/core/JoinModel.js.map +1 -1
  80. package/dist/lib/core/Meta.d.ts +22 -16
  81. package/dist/lib/core/Meta.js +28 -21
  82. package/dist/lib/core/Meta.js.map +1 -1
  83. package/dist/lib/core/Model.d.ts +644 -134
  84. package/dist/lib/core/Model.js +1361 -631
  85. package/dist/lib/core/Model.js.map +1 -1
  86. package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
  87. package/dist/lib/{tools/index.js → core/Package.js} +20 -7
  88. package/dist/lib/core/Package.js.map +1 -0
  89. package/dist/lib/core/Pool.js +42 -30
  90. package/dist/lib/core/Pool.js.map +1 -1
  91. package/dist/lib/core/Queue.d.ts +249 -0
  92. package/dist/lib/core/Queue.js +726 -0
  93. package/dist/lib/core/Queue.js.map +1 -0
  94. package/dist/lib/core/RelationManager.d.ts +4 -4
  95. package/dist/lib/core/RelationManager.js +168 -41
  96. package/dist/lib/core/RelationManager.js.map +1 -1
  97. package/dist/lib/core/Repository.d.ts +73 -207
  98. package/dist/lib/core/Repository.js +122 -234
  99. package/dist/lib/core/Repository.js.map +1 -1
  100. package/dist/lib/core/Schema.d.ts +211 -1
  101. package/dist/lib/core/Schema.js +370 -65
  102. package/dist/lib/core/Schema.js.map +1 -1
  103. package/dist/lib/core/StateManager.d.ts +31 -12
  104. package/dist/lib/core/StateManager.js +11 -5
  105. package/dist/lib/core/StateManager.js.map +1 -1
  106. package/dist/lib/core/UtilityTypes.d.ts +88 -77
  107. package/dist/lib/core/UtilityTypes.js.map +1 -1
  108. package/dist/lib/core/index.d.ts +4 -0
  109. package/dist/lib/core/index.js +6 -2
  110. package/dist/lib/core/index.js.map +1 -1
  111. package/dist/lib/types/decorator/index.d.ts +1 -1
  112. package/dist/lib/types/index.d.ts +119 -30
  113. package/dist/lib/types/repository/index.d.ts +68 -37
  114. package/dist/lib/utils/index.d.ts +13 -2
  115. package/dist/lib/utils/index.js +81 -2
  116. package/dist/lib/utils/index.js.map +1 -1
  117. package/package.json +14 -6
  118. package/dist/lib/tools/index.js.map +0 -1
@@ -13,11 +13,11 @@ declare const Config: Readonly<{
13
13
  readonly USERNAME: string | undefined;
14
14
  readonly PASSWORD: string;
15
15
  readonly DATABASE: string | undefined;
16
- readonly CONNECTION_LIMIT: string | 20;
16
+ readonly CONNECTION_LIMIT: string | 10;
17
17
  readonly DATE_STRINGS: string | false;
18
18
  readonly CLUSTER: string | false;
19
19
  readonly DRIVER: string;
20
- readonly CACHE: string;
20
+ readonly CACHE: "memory" | "db" | "redis";
21
21
  readonly CONNECTION_ERROR: string | false;
22
22
  readonly CONNECTION_SUCCESS: string | false;
23
23
  }>;
@@ -4,16 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Config = exports.loadOptionsEnv = void 0;
7
- const tools_1 = require("../tools");
7
+ const Package_1 = require("../core/Package");
8
8
  const dotenv_1 = __importDefault(require("dotenv"));
9
9
  const resolveEnvPath = (customEnv) => {
10
10
  const NODE_ENV = customEnv ?? process.env?.NODE_ENV;
11
- const env = tools_1.Tool.path.join(tools_1.Tool.path.resolve(), '.env');
11
+ const env = Package_1.Package.path.join(Package_1.Package.path.resolve(), ".env");
12
12
  if (NODE_ENV == null) {
13
13
  return env;
14
14
  }
15
- const envWithNodeEnv = tools_1.Tool.path.join(tools_1.Tool.path.resolve(), `.env.${NODE_ENV}`);
16
- if (tools_1.Tool.fs.existsSync(envWithNodeEnv)) {
15
+ const envWithNodeEnv = Package_1.Package.path.join(Package_1.Package.path.resolve(), `.env.${NODE_ENV}`);
16
+ if (Package_1.Package.fs.existsSync(envWithNodeEnv)) {
17
17
  return envWithNodeEnv;
18
18
  }
19
19
  return env;
@@ -21,16 +21,19 @@ const resolveEnvPath = (customEnv) => {
21
21
  dotenv_1.default.config({ path: resolveEnvPath() });
22
22
  const ENV = process.env;
23
23
  const rawEnv = {
24
- HOST: ENV.DB_HOST ?? 'localhost',
24
+ // general
25
+ HOST: ENV.DB_HOST ?? "localhost",
25
26
  PORT: ENV.DB_PORT ?? 3306,
26
27
  USERNAME: ENV.DB_USERNAME ?? ENV.DB_USER,
27
- PASSWORD: ENV.DB_PASSWORD ?? '',
28
+ PASSWORD: ENV.DB_PASSWORD ?? "",
28
29
  DATABASE: ENV.DB_DATABASE,
29
- CONNECTION_LIMIT: ENV.DB_CONNECTION_LIMIT ?? 20,
30
+ CONNECTION_LIMIT: ENV.DB_CONNECTION_LIMIT ?? 10,
31
+ // for mysql2 only
30
32
  DATE_STRINGS: ENV.DB_DATE_STRINGS ?? false,
33
+ // options
31
34
  CLUSTER: ENV.DB_CLUSTER ?? false,
32
- DRIVER: ENV.DB_DRIVER ?? 'mysql2',
33
- CACHE: ENV.DB_CACHE ?? 'memory',
35
+ DRIVER: ENV.DB_DRIVER ?? "mysql2",
36
+ CACHE: ENV.DB_CACHE,
34
37
  CONNECTION_ERROR: ENV.DB_CONNECTION_ERROR ?? false,
35
38
  CONNECTION_SUCCESS: ENV.DB_CONNECTION_SUCCESS ?? false,
36
39
  };
@@ -39,16 +42,21 @@ const parseEnv = (env) => {
39
42
  for (const [key, value] of Object.entries(env)) {
40
43
  if (value == null)
41
44
  continue;
42
- if (value === '') {
45
+ if (value === "") {
43
46
  parsed[key] = value;
44
47
  continue;
45
48
  }
46
- if (!isNaN(Number(value))) {
47
- (parsed)[key] = Number(value);
49
+ if (/^-?\d+$/.test(value)) {
50
+ if (Number.isSafeInteger(Number(value))) {
51
+ parsed[key] = Number(value);
52
+ continue;
53
+ }
54
+ parsed[key] = value;
48
55
  continue;
49
56
  }
50
- if (typeof value === 'string' && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {
51
- (parsed)[key] = value.toLowerCase() === 'true';
57
+ if (typeof value === "string" &&
58
+ (value.toLowerCase() === "true" || value.toLowerCase() === "false")) {
59
+ parsed[key] = value.toLowerCase() === "true";
52
60
  continue;
53
61
  }
54
62
  parsed[key] = value;
@@ -62,11 +70,11 @@ const loadOptionsEnv = (customEnv) => {
62
70
  const ENV = process.env;
63
71
  const rawEnv = {
64
72
  cluster: ENV.DB_CLUSTER ?? false,
65
- driver: ENV.DB_DRIVER ?? 'mysql2',
73
+ driver: ENV.DB_DRIVER ?? "mysql2",
66
74
  host: ENV.DB_HOST,
67
75
  port: ENV.DB_PORT || 3306,
68
76
  username: ENV.DB_USERNAME,
69
- password: ENV.DB_PASSWORD || '',
77
+ password: ENV.DB_PASSWORD || "",
70
78
  database: ENV.DB_DATABASE,
71
79
  };
72
80
  const env = parseEnv(rawEnv);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/config/index.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,7 @@ declare const CONSTANTS: Readonly<{
62
62
  UPDATE: "UPDATE";
63
63
  DELETE: "DELETE";
64
64
  INSERT: "INSERT INTO";
65
+ DROP: "DROP";
65
66
  DROP_DATABASE: "DROP DATABASE";
66
67
  DROP_TABLE: "DROP TABLE";
67
68
  DROP_VIEW: "DROP VIEW IF EXISTS";
@@ -74,6 +75,7 @@ declare const CONSTANTS: Readonly<{
74
75
  CREATE_TABLE: "CREATE TABLE";
75
76
  CREATE_TABLE_NOT_EXISTS: "CREATE TABLE IF NOT EXISTS";
76
77
  CREATE_INDEX: "CREATE INDEX";
78
+ ADD_INDEX: "ADD INDEX";
77
79
  ENGINE: "ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4";
78
80
  DEFAULT: "DEFAULT";
79
81
  RAND: "RAND()";
@@ -85,10 +87,13 @@ declare const CONSTANTS: Readonly<{
85
87
  ON_UPDATE: "ON UPDATE";
86
88
  ADD: "ADD";
87
89
  CHANGE: "CHANGE";
90
+ CONSTRAINT: "CONSTRAINT";
88
91
  ADD_CONSTRAINT: "ADD CONSTRAINT";
89
92
  AFTER: "AFTER";
90
93
  ALTER_TABLE: "ALTER TABLE";
91
94
  ALTER_COLUMN: "ALTER COLUMN";
95
+ UNIQUE: "UNIQUE";
96
+ INDEX: "INDEX";
92
97
  IFNULL: "IFNULL";
93
98
  JSON_ARRAY: "JSON_ARRAY";
94
99
  JSON_ARRAYAGG: "JSON_ARRAYAGG";
@@ -100,6 +105,8 @@ declare const CONSTANTS: Readonly<{
100
105
  NULLIF: "NULLIF";
101
106
  INFORMATION_SCHEMA: "INFORMATION_SCHEMA";
102
107
  STATISTICS: "STATISTICS";
108
+ TYPE: "TYPE";
109
+ COLUMN: "COLUMN";
103
110
  RELATIONSHIP: {
104
111
  hasOne: string;
105
112
  hasMany: string;
@@ -109,12 +116,14 @@ declare const CONSTANTS: Readonly<{
109
116
  };
110
117
  PATTERN: {
111
118
  default: string;
112
- snakeCase: string;
119
+ snake_case: string;
113
120
  camelCase: string;
114
121
  };
115
122
  ROW_LEVEL_LOCK: {
116
123
  update: string;
117
124
  share: string;
125
+ skipLocked: string;
126
+ nowait: string;
118
127
  };
119
128
  }>;
120
129
  export { CONSTANTS };
@@ -65,6 +65,7 @@ const CONSTANTS = Object.freeze({
65
65
  UPDATE: 'UPDATE',
66
66
  DELETE: 'DELETE',
67
67
  INSERT: 'INSERT INTO',
68
+ DROP: 'DROP',
68
69
  DROP_DATABASE: 'DROP DATABASE',
69
70
  DROP_TABLE: 'DROP TABLE',
70
71
  DROP_VIEW: 'DROP VIEW IF EXISTS',
@@ -77,6 +78,7 @@ const CONSTANTS = Object.freeze({
77
78
  CREATE_TABLE: 'CREATE TABLE',
78
79
  CREATE_TABLE_NOT_EXISTS: 'CREATE TABLE IF NOT EXISTS',
79
80
  CREATE_INDEX: 'CREATE INDEX',
81
+ ADD_INDEX: 'ADD INDEX',
80
82
  ENGINE: 'ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4',
81
83
  DEFAULT: 'DEFAULT',
82
84
  RAND: 'RAND()',
@@ -88,10 +90,13 @@ const CONSTANTS = Object.freeze({
88
90
  ON_UPDATE: 'ON UPDATE',
89
91
  ADD: 'ADD',
90
92
  CHANGE: 'CHANGE',
93
+ CONSTRAINT: 'CONSTRAINT',
91
94
  ADD_CONSTRAINT: 'ADD CONSTRAINT',
92
95
  AFTER: 'AFTER',
93
96
  ALTER_TABLE: 'ALTER TABLE',
94
97
  ALTER_COLUMN: 'ALTER COLUMN',
98
+ UNIQUE: 'UNIQUE',
99
+ INDEX: 'INDEX',
95
100
  IFNULL: 'IFNULL',
96
101
  JSON_ARRAY: 'JSON_ARRAY',
97
102
  JSON_ARRAYAGG: 'JSON_ARRAYAGG',
@@ -103,6 +108,8 @@ const CONSTANTS = Object.freeze({
103
108
  NULLIF: 'NULLIF',
104
109
  INFORMATION_SCHEMA: 'INFORMATION_SCHEMA',
105
110
  STATISTICS: 'STATISTICS',
111
+ TYPE: 'TYPE',
112
+ COLUMN: 'COLUMN',
106
113
  RELATIONSHIP: {
107
114
  hasOne: 'hasOne',
108
115
  hasMany: 'hasMany',
@@ -112,12 +119,14 @@ const CONSTANTS = Object.freeze({
112
119
  },
113
120
  PATTERN: {
114
121
  default: 'default',
115
- snakeCase: 'snake_case',
122
+ snake_case: 'snake_case',
116
123
  camelCase: 'camelCase'
117
124
  },
118
125
  ROW_LEVEL_LOCK: {
119
126
  update: 'FOR UPDATE',
120
- share: 'LOCK IN SHARE MODE'
127
+ share: 'LOCK IN SHARE MODE',
128
+ skipLocked: 'SKIP LOCKED',
129
+ nowait: 'NOWAIT'
121
130
  }
122
131
  });
123
132
  exports.CONSTANTS = CONSTANTS;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/constants/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { StateManager } from '../StateManager';
2
- import { TUtils } from '../../utils';
3
- import { Join } from '../Join';
4
- import type { TPagination, TConstant, TDriver } from '../../types';
1
+ import { StateManager } from "../StateManager";
2
+ import { TUtils } from "../../utils";
3
+ import { Join } from "../Join";
4
+ import type { TPagination, TConstant, TDriver } from "../../types";
5
+ import { Builder } from "../Builder";
5
6
  declare abstract class AbstractBuilder {
6
7
  protected $utils: TUtils;
7
8
  protected $database: string;
@@ -14,13 +15,17 @@ declare abstract class AbstractBuilder {
14
15
  };
15
16
  protected $driver: TDriver;
16
17
  protected $cluster: boolean;
17
- protected $constants: (name?: keyof TConstant) => any;
18
+ protected $constants: {
19
+ (): TConstant;
20
+ <K extends keyof TConstant>(name?: K): TConstant[K];
21
+ };
18
22
  protected $state: StateManager;
19
23
  protected $pool: {
20
24
  query: Function;
21
25
  set: Function;
22
26
  get: Function;
23
27
  queryBuilder: Function;
28
+ transaction: Function;
24
29
  };
25
30
  abstract void(): this;
26
31
  abstract debug(): this;
@@ -45,11 +50,10 @@ declare abstract class AbstractBuilder {
45
50
  abstract whereIn(column: string, arrayValues: any[]): this;
46
51
  abstract orWhereIn(column: string, arrayValues: any[]): this;
47
52
  abstract whereNotIn(column: string, arrayValues: any[]): this;
48
- abstract whereSubQuery(column: string, subQuery: string): this;
49
53
  abstract whereNotSubQuery(column: string, subQuery: string): this;
50
54
  abstract orWhereSubQuery(column: string, subQuery: string): this;
51
- abstract whereBetween(column: string, arrayValue: any[]): this;
52
- abstract whereNotBetween(column: string, arrayValue: any[]): this;
55
+ abstract whereBetween(column: string, arrayValue: [any, any]): this;
56
+ abstract whereNotBetween(column: string, arrayValue: [any, any]): this;
53
57
  abstract having(condition: string): this;
54
58
  abstract join(pk: string | ((join: Join) => Join), fk?: string): this;
55
59
  abstract rightJoin(pk: string | ((join: Join) => Join), fk?: string): this;
@@ -73,30 +77,31 @@ declare abstract class AbstractBuilder {
73
77
  abstract limit(number: number): this;
74
78
  abstract insert(data: Record<string, any>, { database }: {
75
79
  database?: string;
76
- }): this;
80
+ }): Builder<"create">;
77
81
  abstract create(data: Record<string, any>, { database }: {
78
82
  database?: string;
79
- }): this;
80
- abstract update(data: Record<string, any>, updateNotExists?: string[]): this;
81
- abstract updateMany(data: Record<string, any>, updateNotExists?: string[]): this;
82
- abstract insertNotExists(data: Record<string, any>): this;
83
- abstract createNotExists(data: Record<string, any>): this;
84
- abstract insertOrUpdate(data: Record<string, any>): this;
85
- abstract createOrUpdate(data: Record<string, any>): this;
86
- abstract updateOrInsert(data: Record<string, any>): this;
87
- abstract updateOrCreate(data: Record<string, any>): this;
83
+ }): Builder<"create">;
84
+ abstract update(data: Record<string, any>, updateNotExists?: string[]): Builder<"update">;
85
+ abstract updateMany(data: Record<string, any>, updateNotExists?: string[]): Builder<"updateMany">;
86
+ abstract insertNotExists(data: Record<string, any>): Builder<"create"> | null;
87
+ abstract createNotExists(data: Record<string, any>): Builder<"create"> | null;
88
+ abstract insertOrUpdate(data: Record<string, any>): Builder<"createOrUpdate">;
89
+ abstract createOrUpdate(data: Record<string, any>): Builder<"createOrUpdate">;
90
+ abstract updateOrInsert(data: Record<string, any>): Builder<"createOrUpdate">;
91
+ abstract updateOrCreate(data: Record<string, any>): Builder<"createOrUpdate">;
88
92
  abstract createMultiple(data: Record<string, any>[], { database }: {
89
93
  database?: string;
90
- }): this;
94
+ }): Builder<"createMany">;
91
95
  abstract insertMultiple(data: Record<string, any>[], { database }: {
92
96
  database?: string;
93
- }): this;
97
+ }): Builder<"createMany">;
94
98
  abstract createMany(data: Record<string, any>[], { database }: {
95
99
  database?: string;
96
- }): this;
100
+ }): Builder<"createMany">;
97
101
  abstract insertMany(data: Record<string, any>[], { database }: {
98
102
  database?: string;
99
- }): this;
103
+ }): Builder<"createMany">;
104
+ abstract save(): Promise<any>;
100
105
  abstract except(...columns: string[]): this;
101
106
  abstract drop(): Promise<any>;
102
107
  abstract truncate({ force }: {
@@ -133,7 +138,6 @@ declare abstract class AbstractBuilder {
133
138
  abstract delete(): Promise<boolean>;
134
139
  abstract deleteMany(): Promise<boolean>;
135
140
  abstract exists(): Promise<boolean>;
136
- abstract save(): Promise<Record<string, any> | any[] | null | undefined>;
137
141
  abstract increment(column: string, value: number): Promise<number>;
138
142
  abstract decrement(column: string, value: number): Promise<number>;
139
143
  abstract faker(round: number, cb?: Function): Promise<void>;
@@ -1,29 +1,27 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.AbstractBuilder = void 0;
7
- const config_1 = __importDefault(require("../../config"));
4
+ const config_1 = require("../../config");
8
5
  class AbstractBuilder {
9
6
  $utils;
10
- $database = String(config_1.default.DATABASE ?? '');
7
+ $database = String(config_1.Config.DATABASE ?? '');
11
8
  $credentials = {
12
- host: config_1.default.HOST,
13
- port: Number(config_1.default.PORT),
14
- database: String(config_1.default.DATABASE),
15
- username: String(config_1.default.USERNAME),
16
- password: config_1.default.PASSWORD
9
+ host: config_1.Config.HOST,
10
+ port: Number(config_1.Config.PORT),
11
+ database: String(config_1.Config.DATABASE),
12
+ username: String(config_1.Config.USERNAME),
13
+ password: config_1.Config.PASSWORD
17
14
  };
18
- $driver = String(config_1.default.DRIVER ?? 'mysql');
19
- $cluster = Boolean(config_1.default.CLUSTER ?? false);
15
+ $driver = String(config_1.Config.DRIVER ?? 'mysql');
16
+ $cluster = Boolean(config_1.Config.CLUSTER ?? false);
20
17
  $constants;
21
18
  $state;
22
19
  $pool = {
23
20
  query: (sql) => { },
24
21
  set: (pool) => { },
25
22
  get: () => { },
26
- queryBuilder: () => { }
23
+ queryBuilder: () => { },
24
+ transaction: () => { },
27
25
  };
28
26
  }
29
27
  exports.AbstractBuilder = AbstractBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractBuilder.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractBuilder.ts"],"names":[],"mappings":";;;;;;AAGA,0DAA4C;AAM5C,MAAe,eAAe;IAEhB,MAAM,CAAU;IAEhB,SAAS,GAAY,MAAM,CAAC,gBAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAEnD,YAAY,GAAG;QACrB,IAAI,EAAO,gBAAM,CAAC,IAAI;QACtB,IAAI,EAAO,MAAM,CAAC,gBAAM,CAAC,IAAI,CAAC;QAC9B,QAAQ,EAAG,MAAM,CAAC,gBAAM,CAAC,QAAQ,CAAC;QAClC,QAAQ,EAAG,MAAM,CAAC,gBAAM,CAAC,QAAQ,CAAC;QAClC,QAAQ,EAAG,gBAAM,CAAC,QAAQ;KAC7B,CAAA;IAES,OAAO,GAAI,MAAM,CAAC,gBAAM,CAAC,MAAM,IAAI,OAAO,CAAY,CAAC;IAEvD,QAAQ,GAAa,OAAO,CAAC,gBAAM,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAEtD,UAAU,CAAoC;IAE9C,MAAM,CAAgB;IAEtB,KAAK,GAKX;QACA,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,GAAE,CAAC;QAC1B,GAAG,EAAE,CAAC,IAAU,EAAE,EAAE,GAAE,CAAC;QACvB,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;QACb,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;KACzB,CAAA;CAyFJ;AAES,0CAAe;AACzB,kBAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"AbstractBuilder.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractBuilder.ts"],"names":[],"mappings":";;;AAGA,yCAA4C;AAO5C,MAAe,eAAe;IAEhB,MAAM,CAAU;IAEhB,SAAS,GAAY,MAAM,CAAC,eAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAEnD,YAAY,GAAG;QACrB,IAAI,EAAO,eAAM,CAAC,IAAI;QACtB,IAAI,EAAO,MAAM,CAAC,eAAM,CAAC,IAAI,CAAC;QAC9B,QAAQ,EAAG,MAAM,CAAC,eAAM,CAAC,QAAQ,CAAC;QAClC,QAAQ,EAAG,MAAM,CAAC,eAAM,CAAC,QAAQ,CAAC;QAClC,QAAQ,EAAG,eAAM,CAAC,QAAQ;KAC7B,CAAA;IAES,OAAO,GAAI,MAAM,CAAC,eAAM,CAAC,MAAM,IAAI,OAAO,CAAY,CAAC;IAEvD,QAAQ,GAAa,OAAO,CAAC,eAAM,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAEtD,UAAU,CAGlB;IAEQ,MAAM,CAAgB;IAEtB,KAAK,GAMX;QACA,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,GAAE,CAAC;QAC1B,GAAG,EAAE,CAAC,IAAU,EAAE,EAAE,GAAE,CAAC;QACvB,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;QACb,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;QACtB,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;KACxB,CAAA;CAyFJ;AAES,0CAAe;AACzB,kBAAe,eAAe,CAAA"}
@@ -1,9 +1,12 @@
1
1
  import Builder from '../Builder';
2
- import type { TPoolConnected, TConnectionOptions, TConnectionTransaction } from '../../types';
2
+ import type { TPoolConnected, TConnectionOptions, TConnectionTransaction, TConnection, TPoolEvent } from '../../types';
3
3
  declare abstract class AbstractDB extends Builder {
4
4
  abstract beginTransaction(): Promise<TConnectionTransaction>;
5
+ abstract transaction<T>(handler: (conn: TConnection) => Promise<T>): Promise<T>;
5
6
  abstract generateUUID(): string;
6
7
  abstract raw(sql: string): string;
8
+ abstract query(sql: string, parameters: Record<string, any>): Promise<any>;
9
+ abstract event(event: TPoolEvent, callback: (data: any) => any): Promise<void>;
7
10
  abstract escape(sql: string): string;
8
11
  abstract escapeXSS(sql: string): string;
9
12
  abstract snakeCase(sql: string): string;
@@ -15,7 +18,7 @@ declare abstract class AbstractDB extends Builder {
15
18
  when: string;
16
19
  then: string;
17
20
  }[], final?: string): string | [];
18
- abstract getConnection(options: TConnectionOptions): Promise<TPoolConnected>;
21
+ abstract getConnection(options: TConnectionOptions): TPoolConnected;
19
22
  }
20
23
  export { AbstractDB };
21
24
  export default AbstractDB;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractDB.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractDB.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAmC;AAOnC,MAAe,UAAW,SAAQ,iBAAO;CAcxC;AAEQ,gCAAU;AACnB,kBAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"AbstractDB.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractDB.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAmC;AASnC,MAAe,UAAW,SAAQ,iBAAO;CAiBxC;AAEQ,gCAAU;AACnB,kBAAe,UAAU,CAAA"}
@@ -3,8 +3,9 @@ import { Builder } from '../Builder';
3
3
  import { RelationManager } from '../RelationManager';
4
4
  import { Model } from '../Model';
5
5
  import type { T } from '../UtilityTypes';
6
- import type { TPattern, TValidateSchema, TCache, TRelationOptions, TRelationQueryOptions } from '../../types';
7
- declare abstract class AbstractModel extends Builder {
6
+ import type { TPattern, TValidateSchema, TCache, TRelationOptions, TRelationQueryOptions, TModelOrObject } from '../../types';
7
+ import { JoinModel } from '../JoinModel';
8
+ declare abstract class AbstractModel extends Builder<any> {
8
9
  protected $cache: TCache;
9
10
  protected $relation: RelationManager;
10
11
  protected $schema: Record<string, Blueprint>;
@@ -76,6 +77,10 @@ declare abstract class AbstractModel extends Builder {
76
77
  abstract relationsAll<K extends T.RelationKeys<this>>(...nameRelations: K[]): this;
77
78
  abstract relationsCount<K extends T.RelationKeys<this>>(...nameRelations: K[]): this;
78
79
  abstract relationsTrashed<K extends T.RelationKeys<this>>(...nameRelations: K[]): this;
80
+ abstract joinModel(m1: TModelOrObject | ((join: JoinModel) => JoinModel), m2?: TModelOrObject): this;
81
+ abstract rightJoinModel(m1: TModelOrObject | ((join: JoinModel) => JoinModel), m2?: TModelOrObject): this;
82
+ abstract leftJoinModel(m1: TModelOrObject | ((join: JoinModel) => JoinModel), m2?: TModelOrObject): this;
83
+ abstract crossJoinModel(m1: TModelOrObject | ((join: JoinModel) => JoinModel), m2?: TModelOrObject): this;
79
84
  }
80
85
  export { AbstractModel };
81
86
  export default AbstractModel;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractModel.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractModel.ts"],"names":[],"mappings":";;;AACA,wCAA8C;AAW9C,MAAe,aAAc,SAAQ,iBAAO;IAE9B,MAAM,CAAsB;IAC5B,SAAS,CAA4B;IACrC,OAAO,CAAyC;IAChD,eAAe,CAAsB;IACrC,MAAM,CAAsB;IAC5B,QAAQ,CAAsB;IAC9B,QAAQ,CAAqC;IAC7C,OAAO,CAAsC;IAC7C,UAAU,CAAmC;IAC7C,cAAc,CAA+B;IAC7C,UAAU,CAAmB;IAC7B,WAAW,CAAkB;IAC7B,KAAK,CAAwB;IAC7B,WAAW,CAAiB;IAC5B,iBAAiB,CAAgD;IACjE,iBAAiB,CAAW;IAC5B,SAAS,CAKjB;IACQ,WAAW,CAGZ;CAsIZ;AAEQ,sCAAa;AACtB,kBAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"AbstractModel.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractModel.ts"],"names":[],"mappings":";;;AACA,wCAA8C;AAa9C,MAAe,aAAc,SAAQ,iBAAY;IAEnC,MAAM,CAAsB;IAC5B,SAAS,CAA4B;IACrC,OAAO,CAAyC;IAChD,eAAe,CAAsB;IACrC,MAAM,CAAsB;IAC5B,QAAQ,CAAsB;IAC9B,QAAQ,CAAqC;IAC7C,OAAO,CAAsC;IAC7C,UAAU,CAAmC;IAC7C,cAAc,CAA+B;IAC7C,UAAU,CAAmB;IAC7B,WAAW,CAAkB;IAC7B,KAAK,CAAwB;IAC7B,WAAW,CAAiB;IAC5B,iBAAiB,CAAgD;IACjE,iBAAiB,CAAW;IAC5B,SAAS,CAKjB;IACQ,WAAW,CAGZ;CAuJZ;AAEQ,sCAAa;AACtB,kBAAe,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractView.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractView.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAEhC,MAAe,YAAgE,SAAQ,aAAY;CAMlG;AAEQ,oCAAY;AACrB,kBAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"AbstractView.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractView.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAChC,MAAe,YAAgE,SAAQ,aAAY;CAMlG;AAEQ,oCAAY;AACrB,kBAAe,YAAY,CAAA"}
@@ -1,4 +1,11 @@
1
+ import { type T } from "./UtilityTypes";
1
2
  import { Model } from "./Model";
3
+ type ExtendType = NumberConstructor | StringConstructor | BooleanConstructor | DateConstructor | readonly ExtendType[] | {
4
+ [_: string]: ExtendType;
5
+ };
6
+ type ResolveType<T> = T extends NumberConstructor ? number : T extends StringConstructor ? string : T extends BooleanConstructor ? boolean : T extends DateConstructor ? Date : T extends readonly (infer U)[] ? ResolveType<U>[] : T extends Record<string, any> ? {
7
+ [K in keyof T]: ResolveType<T[K]>;
8
+ } : never;
2
9
  /**
3
10
  * Class 'Blueprint' is used to make the schema for table
4
11
  * @example
@@ -6,8 +13,8 @@ import { Model } from "./Model";
6
13
  * import sql from '../../../build/lib/core/SqlLike';
7
14
  * await new Schema().table('users',{
8
15
  * id : Blueprint.int().notNull().primary().autoIncrement(),
9
- * name : Blueprint.varchar(255).default('my name'),
10
- * email : Blueprint.varchar(255).unique(),
16
+ * name : Blueprint.varchar(255).default('my name').index(),
17
+ * email : Blueprint.varchar(255).unique().compositeIndex(['verify']), // composite index email,verify
11
18
  * json : Blueprint.json().null(),
12
19
  * verify : Blueprint.tinyInt(1).notNull(),
13
20
  * created_at : Blueprint.timestamp().null(),
@@ -22,9 +29,11 @@ declare class Blueprint<T = any> {
22
29
  private _attributes;
23
30
  private _foreignKey;
24
31
  private _index;
32
+ private _compositeIndex;
25
33
  private _column;
26
34
  private _isVirtual;
27
35
  private _isEnum;
36
+ private _isNull;
28
37
  private _sql;
29
38
  private _valueType;
30
39
  /**
@@ -317,13 +326,13 @@ declare class Blueprint<T = any> {
317
326
  * @param {...string} enums n1, n2, n3, ...n
318
327
  * @return {Blueprint<T>} Blueprint
319
328
  */
320
- static enum<K extends string | string[] | Record<string, string>>(...enums: (K extends string ? K : K)[]): Blueprint<K extends string ? K : K[keyof K]>;
329
+ static enum<K extends string | Record<string, string>>(...enums: K[]): Blueprint<K extends string ? `${K & string}` : `${K[keyof K] & string}`>;
321
330
  /**
322
331
  * Assign type 'ENUM'
323
332
  * @param {...string} enums n1, n2, n3, ...n
324
333
  * @return {Blueprint<T>} Blueprint
325
334
  */
326
- enum<K extends string | string[] | Record<string, string>>(...enums: (K extends string ? K : K)[]): Blueprint<K extends string ? K : K[keyof K]>;
335
+ enum<K extends string | Record<string, string>>(...enums: K[]): Blueprint<K extends string ? `${K & string}` : `${K[keyof K] & string}`>;
327
336
  /**
328
337
  * Assign type 'DATE' in table
329
338
  * @static
@@ -387,12 +396,12 @@ declare class Blueprint<T = any> {
387
396
  * Assign attributes 'NOT NULL' in table
388
397
  * @return {Blueprint<T>} Blueprint
389
398
  */
390
- notNull(): Blueprint<T>;
399
+ notNull(): Blueprint<NonNullable<T>>;
391
400
  /**
392
401
  * Assign attributes 'NOT NULL' in table
393
402
  * @return {Blueprint<T>} Blueprint
394
403
  */
395
- notnull(): Blueprint<T>;
404
+ notnull(): Blueprint<NonNullable<T>>;
396
405
  /**
397
406
  * Assign attributes 'PRIMARY KEY' in table
398
407
  * @return {Blueprint<T>} Blueprint
@@ -403,13 +412,7 @@ declare class Blueprint<T = any> {
403
412
  * @param {string | number} value default value
404
413
  * @return {Blueprint<T>} Blueprint
405
414
  */
406
- default(value: string | number | boolean): Blueprint<T>;
407
- /**
408
- * Assign attributes 'defaultValue' in table
409
- * @param {string | number} value default value
410
- * @return {Blueprint<T>} Blueprint
411
- */
412
- defaultValue(value: string | number | boolean): Blueprint<T>;
415
+ default<I extends T>(value: I): Blueprint<string extends T ? T.Default<I> : number extends T ? T.Default<I> : boolean extends T ? T.Default<I> : `${T & string}` | null>;
413
416
  /**
414
417
  * Assign attributes 'default currentTimestamp' in table
415
418
  * @return {Blueprint<T>} Blueprint
@@ -452,6 +455,18 @@ declare class Blueprint<T = any> {
452
455
  * @return {Blueprint<T>} Blueprint
453
456
  */
454
457
  index(name?: string): Blueprint<T>;
458
+ /**
459
+ * Assign attributes 'index' in table
460
+ * @param {string} name of index
461
+ * @return {Blueprint<T>} Blueprint
462
+ */
463
+ compositeIndex(columns: string[], name?: string): Blueprint<T>;
464
+ /**
465
+ * Assign type to blueprint
466
+ * @param {NumberConstructor|StringConstructor|BooleanConstructor|DateConstructor} type
467
+ * @return {Blueprint<T>} Blueprint
468
+ */
469
+ transform<T extends ExtendType>(type: T): Blueprint<ResolveType<T>>;
455
470
  get sql(): {
456
471
  select?: string;
457
472
  where?: string;
@@ -463,11 +478,16 @@ declare class Blueprint<T = any> {
463
478
  get attributes(): string[];
464
479
  get foreignKey(): Record<string, any> | null;
465
480
  get indexKey(): string | null;
466
- get valueType(): DateConstructor | NumberConstructor | StringConstructor | BooleanConstructor;
481
+ get compositeIndexKey(): {
482
+ columns: string[];
483
+ name?: string;
484
+ } | null;
485
+ get defaultValue(): string | number | null;
486
+ get valueType(): ExtendType;
467
487
  get enums(): string[];
468
- get valueDefault(): unknown;
469
488
  get isVirtual(): boolean;
470
489
  get isEnum(): boolean;
490
+ get isNull(): boolean;
471
491
  private _addAssignType;
472
492
  private _addAssignAttribute;
473
493
  }