@stingerloom/orm 0.2.1 → 0.3.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 (103) hide show
  1. package/README.md +3 -3
  2. package/dist/core/AggregateQueryHandler.d.ts +17 -0
  3. package/dist/core/AggregateQueryHandler.d.ts.map +1 -0
  4. package/dist/core/AggregateQueryHandler.js +96 -0
  5. package/dist/core/AggregateQueryHandler.js.map +1 -0
  6. package/dist/core/CascadeHandler.d.ts +17 -0
  7. package/dist/core/CascadeHandler.d.ts.map +1 -0
  8. package/dist/core/CascadeHandler.js +106 -0
  9. package/dist/core/CascadeHandler.js.map +1 -0
  10. package/dist/core/Conditions.d.ts +2 -0
  11. package/dist/core/Conditions.d.ts.map +1 -1
  12. package/dist/core/Conditions.js +15 -1
  13. package/dist/core/Conditions.js.map +1 -1
  14. package/dist/core/EntityManager.d.ts +30 -45
  15. package/dist/core/EntityManager.d.ts.map +1 -1
  16. package/dist/core/EntityManager.js +483 -1501
  17. package/dist/core/EntityManager.js.map +1 -1
  18. package/dist/core/EntityManagerInternals.d.ts +28 -0
  19. package/dist/core/EntityManagerInternals.d.ts.map +1 -0
  20. package/dist/core/EntityManagerInternals.js +3 -0
  21. package/dist/core/EntityManagerInternals.js.map +1 -0
  22. package/dist/core/ExplainQueryHandler.d.ts +16 -0
  23. package/dist/core/ExplainQueryHandler.d.ts.map +1 -0
  24. package/dist/core/ExplainQueryHandler.js +236 -0
  25. package/dist/core/ExplainQueryHandler.js.map +1 -0
  26. package/dist/core/QueryTracker.d.ts +5 -1
  27. package/dist/core/QueryTracker.d.ts.map +1 -1
  28. package/dist/core/QueryTracker.js +75 -21
  29. package/dist/core/QueryTracker.js.map +1 -1
  30. package/dist/core/RelationLoader.d.ts +13 -0
  31. package/dist/core/RelationLoader.d.ts.map +1 -0
  32. package/dist/core/RelationLoader.js +206 -0
  33. package/dist/core/RelationLoader.js.map +1 -0
  34. package/dist/core/RelationMetadataResolver.d.ts +24 -0
  35. package/dist/core/RelationMetadataResolver.d.ts.map +1 -0
  36. package/dist/core/RelationMetadataResolver.js +182 -0
  37. package/dist/core/RelationMetadataResolver.js.map +1 -0
  38. package/dist/core/ReplicationManager.d.ts +11 -0
  39. package/dist/core/ReplicationManager.d.ts.map +1 -0
  40. package/dist/core/ReplicationManager.js +38 -0
  41. package/dist/core/ReplicationManager.js.map +1 -0
  42. package/dist/core/SchemaRegistrar.d.ts +15 -0
  43. package/dist/core/SchemaRegistrar.d.ts.map +1 -0
  44. package/dist/core/SchemaRegistrar.js +238 -0
  45. package/dist/core/SchemaRegistrar.js.map +1 -0
  46. package/dist/core/index.d.ts +8 -0
  47. package/dist/core/index.d.ts.map +1 -1
  48. package/dist/core/index.js +8 -0
  49. package/dist/core/index.js.map +1 -1
  50. package/dist/decorators/Entity.d.ts.map +1 -1
  51. package/dist/decorators/Entity.js +9 -3
  52. package/dist/decorators/Entity.js.map +1 -1
  53. package/dist/decorators/Version.d.ts.map +1 -1
  54. package/dist/decorators/Version.js +3 -3
  55. package/dist/decorators/Version.js.map +1 -1
  56. package/dist/dialects/FindOption.d.ts +2 -2
  57. package/dist/dialects/FindOption.d.ts.map +1 -1
  58. package/dist/dialects/TransactionSessionManager.d.ts.map +1 -1
  59. package/dist/dialects/TransactionSessionManager.js +5 -2
  60. package/dist/dialects/TransactionSessionManager.js.map +1 -1
  61. package/dist/dialects/mysql/MySqlDataSource.d.ts.map +1 -1
  62. package/dist/dialects/mysql/MySqlDataSource.js +3 -0
  63. package/dist/dialects/mysql/MySqlDataSource.js.map +1 -1
  64. package/dist/dialects/mysql/MySqlDriver.d.ts.map +1 -1
  65. package/dist/dialects/mysql/MySqlDriver.js +9 -3
  66. package/dist/dialects/mysql/MySqlDriver.js.map +1 -1
  67. package/dist/dialects/postgres/PostgresDataSource.d.ts.map +1 -1
  68. package/dist/dialects/postgres/PostgresDataSource.js +3 -0
  69. package/dist/dialects/postgres/PostgresDataSource.js.map +1 -1
  70. package/dist/dialects/postgres/PostgresDriver.d.ts.map +1 -1
  71. package/dist/dialects/postgres/PostgresDriver.js +4 -0
  72. package/dist/dialects/postgres/PostgresDriver.js.map +1 -1
  73. package/dist/dialects/sqlite/SqliteDataSource.d.ts.map +1 -1
  74. package/dist/dialects/sqlite/SqliteDataSource.js +3 -0
  75. package/dist/dialects/sqlite/SqliteDataSource.js.map +1 -1
  76. package/dist/dialects/sqlite/SqliteDriver.d.ts.map +1 -1
  77. package/dist/dialects/sqlite/SqliteDriver.js +4 -0
  78. package/dist/dialects/sqlite/SqliteDriver.js.map +1 -1
  79. package/dist/errors/DatabaseConnectionFailedError.d.ts +2 -1
  80. package/dist/errors/DatabaseConnectionFailedError.d.ts.map +1 -1
  81. package/dist/errors/DatabaseConnectionFailedError.js +12 -2
  82. package/dist/errors/DatabaseConnectionFailedError.js.map +1 -1
  83. package/dist/errors/OptimisticLockError.d.ts +5 -0
  84. package/dist/errors/OptimisticLockError.d.ts.map +1 -0
  85. package/dist/errors/OptimisticLockError.js +14 -0
  86. package/dist/errors/OptimisticLockError.js.map +1 -0
  87. package/dist/errors/OrmErrorCode.d.ts +3 -1
  88. package/dist/errors/OrmErrorCode.d.ts.map +1 -1
  89. package/dist/errors/OrmErrorCode.js +2 -0
  90. package/dist/errors/OrmErrorCode.js.map +1 -1
  91. package/dist/errors/index.d.ts +1 -0
  92. package/dist/errors/index.d.ts.map +1 -1
  93. package/dist/errors/index.js +1 -0
  94. package/dist/errors/index.js.map +1 -1
  95. package/dist/utils/index.d.ts +1 -0
  96. package/dist/utils/index.d.ts.map +1 -1
  97. package/dist/utils/index.js +1 -0
  98. package/dist/utils/index.js.map +1 -1
  99. package/dist/utils/validateSavepointName.d.ts +2 -0
  100. package/dist/utils/validateSavepointName.d.ts.map +1 -0
  101. package/dist/utils/validateSavepointName.js +12 -0
  102. package/dist/utils/validateSavepointName.js.map +1 -0
  103. package/package.json +7 -3
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  <p align="center">
5
5
  <a href="https://www.npmjs.com/package/@stingerloom/orm"><img src="https://img.shields.io/npm/v/@stingerloom/orm" alt="npm" /></a>
6
- <img src="https://img.shields.io/badge/tests-1%2C405%20passed-brightgreen" alt="Tests" />
6
+ <img src="https://img.shields.io/badge/tests-1%2C348%20passed-brightgreen" alt="Tests" />
7
7
  <img src="https://img.shields.io/badge/license-MIT-blue" alt="License" />
8
8
  <img src="https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript&logoColor=white" alt="TypeScript" />
9
9
  </p>
@@ -170,10 +170,10 @@ const migration = new SchemaDiffMigrationGenerator().generate(diff, "mysql");
170
170
 
171
171
  ## Test Status
172
172
 
173
- - **1,405** unit tests passed, 0 failures
173
+ - **1,348** unit tests passed, 0 failures
174
174
  - **4** example projects type-checked (nestjs-cats, nestjs-blog, nestjs-multitenant, nestjs-todo)
175
175
  - **6** SQL injection vectors patched and audited across all drivers
176
176
 
177
177
  ## Documentation
178
178
 
179
- Full documentation available at [docs/](https://github.com/biud436/stingerloom-orm/tree/main/docs).
179
+ Full documentation available at [biud436.github.io/stingerloom-orm](https://biud436.github.io/stingerloom-orm/).
@@ -0,0 +1,17 @@
1
+ import { ClazzType } from "../utils";
2
+ import { WhereClause } from "../dialects/FindOption";
3
+ import { TransactionSessionManager } from "../dialects/TransactionSessionManager";
4
+ import { RelationMetadataResolver } from "./RelationMetadataResolver";
5
+ import { EntityManagerInternals } from "./EntityManagerInternals";
6
+ export declare class AggregateQueryHandler {
7
+ private readonly resolver;
8
+ private readonly ctx;
9
+ constructor(resolver: RelationMetadataResolver, ctx: EntityManagerInternals);
10
+ aggregate<T>(entity: ClazzType<T>, fn: string, field: string, where?: WhereClause<T>, existingSession?: TransactionSessionManager): Promise<number>;
11
+ count<T>(entity: ClazzType<T>, where?: WhereClause<T>): Promise<number>;
12
+ sum<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
13
+ avg<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
14
+ min<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
15
+ max<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
16
+ }
17
+ //# sourceMappingURL=AggregateQueryHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregateQueryHandler.d.ts","sourceRoot":"","sources":["../../src/core/AggregateQueryHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAKlF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,QAAQ,EAAE,wBAAwB,EAClC,GAAG,EAAE,sBAAsB;IAGxC,SAAS,CAAC,CAAC,EACf,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,eAAe,CAAC,EAAE,yBAAyB,GAC1C,OAAO,CAAC,MAAM,CAAC;IA2CZ,KAAK,CAAC,CAAC,EACX,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;CAGnB"}
@@ -0,0 +1,96 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AggregateQueryHandler = void 0;
37
+ const sql_template_tag_1 = __importStar(require("sql-template-tag"));
38
+ const Conditions_1 = require("./Conditions");
39
+ const EntityMetadataNotFoundError_1 = require("../errors/EntityMetadataNotFoundError");
40
+ class AggregateQueryHandler {
41
+ constructor(resolver, ctx) {
42
+ this.resolver = resolver;
43
+ this.ctx = ctx;
44
+ }
45
+ async aggregate(entity, fn, field, where, existingSession) {
46
+ const metadata = this.resolver.resolveEntityMetadata(entity);
47
+ if (!metadata) {
48
+ throw new EntityMetadataNotFoundError_1.EntityMetadataNotFoundError(entity.name);
49
+ }
50
+ return this.ctx.executeInTransaction(async (session) => {
51
+ const tableName = metadata.name;
52
+ const selectExpr = (0, sql_template_tag_1.raw)(`${fn}(${field === "*" ? "*" : this.ctx.wrap(field)})`);
53
+ const whereMap = [];
54
+ if (where) {
55
+ for (const key in where) {
56
+ const value = where[key];
57
+ if (value !== undefined && value !== null) {
58
+ whereMap.push(Conditions_1.Conditions.equals(this.ctx.wrap(key), value));
59
+ }
60
+ }
61
+ }
62
+ let queryStr;
63
+ if (whereMap.length > 0) {
64
+ const whereSql = (0, sql_template_tag_1.join)(whereMap, " AND ");
65
+ queryStr = (0, sql_template_tag_1.default) `SELECT ${selectExpr} AS ${(0, sql_template_tag_1.raw)(this.ctx.wrap("result"))} FROM ${(0, sql_template_tag_1.raw)(this.ctx.wrap(tableName))} WHERE ${whereSql}`;
66
+ }
67
+ else {
68
+ queryStr = (0, sql_template_tag_1.default) `SELECT ${selectExpr} AS ${(0, sql_template_tag_1.raw)(this.ctx.wrap("result"))} FROM ${(0, sql_template_tag_1.raw)(this.ctx.wrap(tableName))}`;
69
+ }
70
+ const queryResult = (await session.query(queryStr));
71
+ const { results } = queryResult;
72
+ if (!results || results.length === 0)
73
+ return 0;
74
+ const row = results[0];
75
+ const value = row.result ?? row["result"];
76
+ return value === null || value === undefined ? 0 : Number(value);
77
+ }, existingSession);
78
+ }
79
+ async count(entity, where) {
80
+ return this.aggregate(entity, "COUNT", "*", where);
81
+ }
82
+ async sum(entity, field, where) {
83
+ return this.aggregate(entity, "SUM", field, where);
84
+ }
85
+ async avg(entity, field, where) {
86
+ return this.aggregate(entity, "AVG", field, where);
87
+ }
88
+ async min(entity, field, where) {
89
+ return this.aggregate(entity, "MIN", field, where);
90
+ }
91
+ async max(entity, field, where) {
92
+ return this.aggregate(entity, "MAX", field, where);
93
+ }
94
+ }
95
+ exports.AggregateQueryHandler = AggregateQueryHandler;
96
+ //# sourceMappingURL=AggregateQueryHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregateQueryHandler.js","sourceRoot":"","sources":["../../src/core/AggregateQueryHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import "reflect-metadata";
2
+ import { ClazzType } from "../utils";
3
+ import { WhereClause } from "../dialects/FindOption";
4
+ import { HookEvent } from "../decorators";
5
+ import { RelationMetadataResolver } from "./RelationMetadataResolver";
6
+ import { EntityManagerInternals } from "./EntityManagerInternals";
7
+ export declare class CascadeHandler {
8
+ private readonly resolver;
9
+ private readonly ctx;
10
+ constructor(resolver: RelationMetadataResolver, ctx: EntityManagerInternals);
11
+ runHooks<T>(entity: ClazzType<T>, item: Partial<T>, event: HookEvent): Promise<void>;
12
+ createProxy<T>(entity: T): T;
13
+ cascadeSaveOneToMany<T>(entity: ClazzType<T>, item: Partial<T>, savedParentId: any): Promise<void>;
14
+ cascadeSaveManyToOne<T>(entity: ClazzType<T>, item: Partial<T>): Promise<void>;
15
+ cascadeDeleteOneToMany<T>(entity: ClazzType<T>, criteria: WhereClause<T>): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=CascadeHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CascadeHandler.d.ts","sourceRoot":"","sources":["../../src/core/CascadeHandler.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAc,SAAS,EAAgB,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,QAAQ,EAAE,wBAAwB,EAClC,GAAG,EAAE,sBAAsB;IAOxC,QAAQ,CAAC,CAAC,EACd,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC;IAkBhB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IAetB,oBAAoB,CAAC,CAAC,EAC1B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,IAAI,CAAC;IAmCV,oBAAoB,CAAC,CAAC,EAC1B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,OAAO,CAAC,IAAI,CAAC;IAgCV,sBAAsB,CAAC,CAAC,EAC5B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC;CA0CjB"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CascadeHandler = void 0;
4
+ require("reflect-metadata");
5
+ const decorators_1 = require("../decorators");
6
+ const CascadeType_1 = require("../types/CascadeType");
7
+ class CascadeHandler {
8
+ constructor(resolver, ctx) {
9
+ this.resolver = resolver;
10
+ this.ctx = ctx;
11
+ }
12
+ async runHooks(entity, item, event) {
13
+ const hooks = Reflect.getMetadata(decorators_1.HOOK_TOKEN, entity);
14
+ if (!hooks || hooks.length === 0)
15
+ return;
16
+ for (const hook of hooks) {
17
+ if (hook.event !== event)
18
+ continue;
19
+ const method = item[hook.methodName];
20
+ if (typeof method === "function") {
21
+ await method.call(item);
22
+ }
23
+ }
24
+ }
25
+ createProxy(entity) {
26
+ return new Proxy(entity, {
27
+ set: (target, prop, value) => {
28
+ target[prop] = value;
29
+ this.ctx.markDirty(target);
30
+ return true;
31
+ },
32
+ });
33
+ }
34
+ async cascadeSaveOneToMany(entity, item, savedParentId) {
35
+ const oneToManyMeta = this.resolver.resolveOneToManyMetadata(entity);
36
+ for (const rel of oneToManyMeta) {
37
+ const children = item[rel.propertyKey];
38
+ if (!children || !Array.isArray(children) || children.length === 0)
39
+ continue;
40
+ const RelatedEntity = rel.getRelatedEntity();
41
+ if (!(0, CascadeType_1.hasCascade)(rel.cascade, "insert") &&
42
+ !(0, CascadeType_1.hasCascade)(rel.cascade, "update"))
43
+ continue;
44
+ const manyToOneItems = this.resolver.resolveManyToOneMetadata(RelatedEntity);
45
+ const matchingRelation = manyToOneItems.find((m) => m.columnName === rel.mappedBy);
46
+ const fkColumn = matchingRelation?.joinColumn ?? rel.mappedBy;
47
+ for (const child of children) {
48
+ child[fkColumn] = savedParentId;
49
+ await this.ctx.save(RelatedEntity, child);
50
+ }
51
+ }
52
+ }
53
+ async cascadeSaveManyToOne(entity, item) {
54
+ const manyToOneRelations = this.resolver.resolveManyToOneMetadata(entity);
55
+ for (const rel of manyToOneRelations) {
56
+ const relatedValue = item[rel.columnName];
57
+ if (!relatedValue || typeof relatedValue !== "object")
58
+ continue;
59
+ if (!(0, CascadeType_1.hasCascade)(rel.option?.cascade, "insert") &&
60
+ !(0, CascadeType_1.hasCascade)(rel.option?.cascade, "update"))
61
+ continue;
62
+ const RelatedEntity = rel.getMappingEntity();
63
+ const saved = await this.ctx.save(RelatedEntity, relatedValue);
64
+ const relatedMetadata = this.resolver.resolveEntityMetadata(RelatedEntity);
65
+ if (relatedMetadata) {
66
+ const relatedPk = relatedMetadata.columns.find((col) => col.options?.primary);
67
+ if (relatedPk && rel.joinColumn) {
68
+ item[rel.joinColumn] = saved[relatedPk.name];
69
+ }
70
+ }
71
+ }
72
+ }
73
+ async cascadeDeleteOneToMany(entity, criteria) {
74
+ const oneToManyMeta = this.resolver.resolveOneToManyMetadata(entity);
75
+ for (const rel of oneToManyMeta) {
76
+ if (!(0, CascadeType_1.hasCascade)(rel.cascade, "delete"))
77
+ continue;
78
+ const RelatedEntity = rel.getRelatedEntity();
79
+ const parentMetadata = this.resolver.resolveEntityMetadata(entity);
80
+ if (!parentMetadata)
81
+ continue;
82
+ const pk = parentMetadata.columns.find((col) => col.options?.primary);
83
+ if (!pk)
84
+ continue;
85
+ const parents = await this.ctx.find(entity, {
86
+ where: criteria,
87
+ });
88
+ if (!parents)
89
+ continue;
90
+ const parentArray = Array.isArray(parents) ? parents : [parents];
91
+ const manyToOneItems = this.resolver.resolveManyToOneMetadata(RelatedEntity);
92
+ const matchingRelation = manyToOneItems.find((m) => m.columnName === rel.mappedBy);
93
+ const fkColumn = matchingRelation?.joinColumn ?? rel.mappedBy;
94
+ for (const parent of parentArray) {
95
+ const parentId = parent[pk.name];
96
+ if (parentId === undefined || parentId === null)
97
+ continue;
98
+ await this.ctx.delete(RelatedEntity, {
99
+ [fkColumn]: parentId,
100
+ });
101
+ }
102
+ }
103
+ }
104
+ }
105
+ exports.CascadeHandler = CascadeHandler;
106
+ //# sourceMappingURL=CascadeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CascadeHandler.js","sourceRoot":"","sources":["../../src/core/CascadeHandler.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export declare class Conditions {
17
17
  static or(conditions: Sql[]): Sql;
18
18
  static and(conditions: Sql[]): Sql;
19
19
  static raw(condition: string): Sql;
20
+ static unsafeRaw(condition: string): Sql;
21
+ private static readonly ALLOWED_AGGREGATES;
20
22
  static aggregate(fn: string, column: string): Sql;
21
23
  static count(column: string): Sql;
22
24
  static sum(column: string): Sql;
@@ -1 +1 @@
1
- {"version":3,"file":"Conditions.d.ts","sourceRoot":"","sources":["../../src/core/Conditions.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAC;AAEvD,qBAAa,UAAU;IAIrB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG;IAO9C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG;IAOjD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;IAU7C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;IAUhD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG;IAOjD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG;IAOpD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAOlC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAOrC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;IAOzD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;IAO5D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG;IAUhD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG;IAO3C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG;IAUhD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG;IAO3C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG;IAOjC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG;IAOlC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG;IAOlC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG;IAOjD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAOjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAO/B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAO/B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;IAOrD,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;IAOxD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG;IAYjC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG;IAIpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAavC;IAEF,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;IAQ5E,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,GAAG;CAIP"}
1
+ {"version":3,"file":"Conditions.d.ts","sourceRoot":"","sources":["../../src/core/Conditions.ts"],"names":[],"mappings":"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"}
@@ -91,10 +91,17 @@ class Conditions {
91
91
  return (0, sql_template_tag_1.default) `(${(0, sql_template_tag_1.join)(conditions, " AND ")})`;
92
92
  }
93
93
  static raw(condition) {
94
+ return Conditions.unsafeRaw(condition);
95
+ }
96
+ static unsafeRaw(condition) {
94
97
  return (0, sql_template_tag_1.default) `${(0, sql_template_tag_1.raw)(condition)}`;
95
98
  }
96
99
  static aggregate(fn, column) {
97
- return (0, sql_template_tag_1.default) `${(0, sql_template_tag_1.raw)(fn)}(${(0, sql_template_tag_1.raw)(column)})`;
100
+ const normalized = fn.trim().toUpperCase();
101
+ if (!Conditions.ALLOWED_AGGREGATES.includes(normalized)) {
102
+ throw new Error(`Unsupported aggregate function: "${fn}". Allowed: ${Conditions.ALLOWED_AGGREGATES.join(", ")}`);
103
+ }
104
+ return (0, sql_template_tag_1.default) `${(0, sql_template_tag_1.raw)(normalized)}(${(0, sql_template_tag_1.raw)(column)})`;
98
105
  }
99
106
  static count(column) {
100
107
  return this.aggregate("COUNT", column);
@@ -137,6 +144,13 @@ class Conditions {
137
144
  }
138
145
  }
139
146
  exports.Conditions = Conditions;
147
+ Conditions.ALLOWED_AGGREGATES = [
148
+ "COUNT",
149
+ "SUM",
150
+ "AVG",
151
+ "MIN",
152
+ "MAX",
153
+ ];
140
154
  Conditions.ALLOWED_OPERATORS = [
141
155
  "=",
142
156
  "!=",
@@ -1 +1 @@
1
- {"version":3,"file":"Conditions.js","sourceRoot":"","sources":["../../src/core/Conditions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Conditions.js","sourceRoot":"","sources":["../../src/core/Conditions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qEAAuD;AAEvD,MAAa,UAAU;IAIrB,MAAM,CAAC,MAAM,CAAC,MAAc,EAAE,KAAU;QACtC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;IACxC,CAAC;IAKD,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,KAAU;QACzC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;IACzC,CAAC;IAKD,MAAM,CAAC,EAAE,CAAC,MAAc,EAAE,MAAa;QACrC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,QAAQ,IAAA,uBAAI,EAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAG,EAAA,GAAG,CAAC,EAAE,CAAC,EAC5B,IAAI,CACL,GAAG,CAAC;IACP,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,MAAc,EAAE,MAAa;QACxC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,YAAY,IAAA,uBAAI,EACtC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAG,EAAA,GAAG,CAAC,EAAE,CAAC,EAC5B,IAAI,CACL,GAAG,CAAC;IACP,CAAC;IAKD,MAAM,CAAC,IAAI,CAAC,MAAc,EAAE,OAAe;QACzC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,SAAS,OAAO,EAAE,CAAC;IAC7C,CAAC;IAKD,MAAM,CAAC,OAAO,CAAC,MAAc,EAAE,OAAe;QAC5C,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,aAAa,OAAO,EAAE,CAAC;IACjD,CAAC;IAKD,MAAM,CAAC,MAAM,CAAC,MAAc;QAC1B,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,UAAU,CAAC;IACrC,CAAC;IAKD,MAAM,CAAC,SAAS,CAAC,MAAc;QAC7B,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,cAAc,CAAC;IACzC,CAAC;IAKD,MAAM,CAAC,OAAO,CAAC,MAAc,EAAE,KAAU,EAAE,GAAQ;QACjD,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,YAAY,KAAK,QAAQ,GAAG,EAAE,CAAC;IACzD,CAAC;IAKD,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,KAAU,EAAE,GAAQ;QACpD,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,gBAAgB,KAAK,QAAQ,GAAG,EAAE,CAAC;IAC7D,CAAC;IAKD,MAAM,CAAC,EAAE,CAAC,MAAoB,EAAE,KAAU;QACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,IAAA,0BAAG,EAAA,GAAG,MAAM,MAAM,KAAK,EAAE,CAAC;IACnC,CAAC;IAKD,MAAM,CAAC,GAAG,CAAC,MAAc,EAAE,KAAU;QACnC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;IACzC,CAAC;IAKD,MAAM,CAAC,EAAE,CAAC,MAAoB,EAAE,KAAU;QACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,IAAA,0BAAG,EAAA,GAAG,MAAM,MAAM,KAAK,EAAE,CAAC;IACnC,CAAC;IAKD,MAAM,CAAC,GAAG,CAAC,MAAc,EAAE,KAAU;QACnC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC;IACzC,CAAC;IAKD,MAAM,CAAC,EAAE,CAAC,UAAiB;QACzB,OAAO,IAAA,0BAAG,EAAA,IAAI,IAAA,uBAAI,EAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC;IAC5C,CAAC;IAKD,MAAM,CAAC,GAAG,CAAC,UAAiB;QAC1B,OAAO,IAAA,0BAAG,EAAA,IAAI,IAAA,uBAAI,EAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC;IAC7C,CAAC;IASD,MAAM,CAAC,GAAG,CAAC,SAAiB;QAC1B,OAAO,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAQD,MAAM,CAAC,SAAS,CAAC,SAAiB;QAChC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,SAAS,CAAC,EAAE,CAAC;IAChC,CAAC;IAeD,MAAM,CAAC,SAAS,CAAC,EAAU,EAAE,MAAc;QACzC,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,oCAAoC,EAAE,eAAe,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,UAAU,CAAC,IAAI,IAAA,sBAAG,EAAC,MAAM,CAAC,GAAG,CAAC;IACjD,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAKD,MAAM,CAAC,GAAG,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAKD,MAAM,CAAC,GAAG,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAKD,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,QAAa;QAC7C,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,OAAO,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAKD,MAAM,CAAC,aAAa,CAAC,MAAc,EAAE,QAAa;QAChD,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,WAAW,QAAQ,EAAE,CAAC;IAChD,CAAC;IAKD,MAAM,CAAC,MAAM,CAAC,QAAa;QAEzB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;QACjC,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,IAAA,0BAAG,EAAA,UAAU,QAAQ,EAAE,CAAC;IACjC,CAAC;IAKD,MAAM,CAAC,SAAS,CAAC,QAAa;QAC5B,OAAO,IAAA,0BAAG,EAAA,cAAc,QAAQ,EAAE,CAAC;IACrC,CAAC;IAiBO,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,sBAAsB,QAAQ,yBAAyB,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAKD,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAa;QACpE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,MAAM,CAAC,IAAI,IAAA,sBAAG,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;IAC/E,CAAC;IAKD,MAAM,CAAC,cAAc,CACnB,OAAe,EACf,QAAgB,EAChB,OAAe;QAEf,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAA,0BAAG,EAAA,GAAG,IAAA,sBAAG,EAAC,OAAO,CAAC,IAAI,IAAA,sBAAG,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,IAAA,sBAAG,EAAC,OAAO,CAAC,EAAE,CAAC;IACpF,CAAC;;AAzQH,gCA0QC;AAxHyB,6BAAkB,GAAG;IAC3C,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAuEsB,4BAAiB,GAAG;IAC1C,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,SAAS;IACT,aAAa;CACd,CAAC"}
@@ -23,16 +23,29 @@ export declare class EntityManager implements BaseEntityManager {
23
23
  private dirtyEntities;
24
24
  private readonly eventEmitter;
25
25
  private readonly subscribers;
26
+ private readonly cursorPkWarned;
26
27
  private queryTracker;
27
28
  private defaultQueryTimeout;
28
- private replicationRouter;
29
29
  private connectionName;
30
30
  private dbType;
31
+ private readonly resolver;
32
+ private readonly replication;
33
+ private readonly _ctx;
34
+ private readonly cascadeHandler;
35
+ private readonly relationLoader;
36
+ private readonly schemaRegistrar;
37
+ private readonly explainHandler;
38
+ private readonly aggregateHandler;
31
39
  register(databaseClientOptions: DatabaseClientOptions, connectionName?: string): Promise<void>;
32
40
  get client(): DatabaseClient;
33
41
  get connection(): any;
34
42
  getConnectionName(): string;
35
43
  connect(databaseClientOptions: DatabaseClientOptions, connectionName?: string): Promise<void>;
44
+ propagateShutdown(options?: {
45
+ gracefulTimeoutMs?: number;
46
+ closeConnections?: boolean;
47
+ }): Promise<boolean>;
48
+ getNameStrategy<T>(clazz: ClazzType<T>): string;
36
49
  private initQueryTracker;
37
50
  getQueryLog(): ReadonlyArray<QueryLogEntry>;
38
51
  getQueryTracker(): QueryTracker | null;
@@ -49,66 +62,38 @@ export declare class EntityManager implements BaseEntityManager {
49
62
  removeSubscriber(subscriber: EntitySubscriber<any>): void;
50
63
  private notifySubscribers;
51
64
  private notifyTransactionSubscribers;
52
- propagateShutdown(options?: {
53
- gracefulTimeoutMs?: number;
54
- closeConnections?: boolean;
55
- }): Promise<boolean>;
56
- getNameStrategy<T>(clazz: ClazzType<T>): string;
57
- private resolveEntityMetadata;
58
- private getDeletedAtColumn;
59
- private getCreateTimestampColumn;
60
- private getUpdateTimestampColumn;
61
- private runHooks;
62
- private createProxy;
63
- private registerEntities;
64
- private registerUniqueIndexes;
65
- private registerManyToManyJoinTables;
66
- private resolveManyToOneMetadata;
67
- private resolveJoinColumnsFromColumnMeta;
68
- private resolveOneToManyMetadata;
69
- private loadOneToManyRelations;
70
- private resolveManyToManyMetadata;
71
- private resolveOneToOneMetadata;
72
- private resolveJoinColumnsFromColumnMetaForOneToOne;
73
- private resolveManyToManyJoinTable;
74
- private loadManyToManyRelations;
75
- private loadOneToOneRelations;
76
- private registerForeignKeys;
77
- private registerIndex;
78
65
  findOne<T>(entity: ClazzType<T>, findOption: FindOption<T>): Promise<T | null>;
79
- explain<T>(entity: ClazzType<T>, findOption?: FindOption<T>): Promise<ExplainResult>;
80
- private parseExplainResult;
81
- private parseMysqlExplain;
82
- private parsePostgresExplain;
83
- private parseSqliteExplain;
84
- findWithCursor<T>(entity: ClazzType<T>, option?: CursorPaginationOption<T>): Promise<CursorPaginationResult<T>>;
66
+ private findOneInternal;
85
67
  find<T>(entity: ClazzType<T>, findOption?: FindOption<T>): Promise<EntityResult<T>>;
86
- private resolveSelectColumns;
87
- wrap(columnName: string): any;
88
- private isMySqlFamily;
89
- private isPostgres;
68
+ private findInternal;
69
+ findWithCursor<T>(entity: ClazzType<T>, option?: CursorPaginationOption<T>): Promise<CursorPaginationResult<T>>;
70
+ findAndCount<T>(entity: ClazzType<T>, findOption?: FindOption<T>): Promise<[T[], number]>;
90
71
  save<T>(entity: ClazzType<T>, item: Partial<T>): Promise<InstanceType<ClazzType<T>>>;
91
- deleteMany<T>(entity: ClazzType<T>, ids: any[]): Promise<DeleteResult>;
72
+ private saveInternal;
92
73
  saveMany<T>(entity: ClazzType<T>, items: Partial<T>[]): Promise<InstanceType<ClazzType<T>>[]>;
93
74
  insertMany<T>(entity: ClazzType<T>, items: Partial<T>[]): Promise<{
94
75
  affected: number;
95
76
  }>;
96
- upsert<T>(entity: ClazzType<T>, data: Partial<T>, conflictColumns?: string[]): Promise<void>;
97
- private buildUpsertQuery;
98
77
  delete<T>(entity: ClazzType<T>, criteria: WhereClause<T>): Promise<DeleteResult>;
78
+ deleteMany<T>(entity: ClazzType<T>, ids: any[]): Promise<DeleteResult>;
99
79
  clear<T>(entity: ClazzType<T>): Promise<void>;
100
80
  softDelete<T>(entity: ClazzType<T>, criteria: WhereClause<T>): Promise<DeleteResult>;
101
81
  restore<T>(entity: ClazzType<T>, criteria: WhereClause<T>): Promise<DeleteResult>;
102
- private cascadeSaveOneToMany;
103
- private cascadeSaveManyToOne;
104
- private cascadeDeleteOneToMany;
105
- private aggregate;
82
+ upsert<T>(entity: ClazzType<T>, data: Partial<T>, conflictColumns?: string[]): Promise<void>;
83
+ private buildUpsertQuery;
106
84
  count<T>(entity: ClazzType<T>, where?: WhereClause<T>): Promise<number>;
107
- findAndCount<T>(entity: ClazzType<T>, findOption?: FindOption<T>): Promise<[T[], number]>;
108
85
  sum<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
109
86
  avg<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
110
87
  min<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
111
88
  max<T>(entity: ClazzType<T>, field: keyof T & string, where?: WhereClause<T>): Promise<number>;
89
+ explain<T>(entity: ClazzType<T>, findOption?: FindOption<T>): Promise<ExplainResult>;
90
+ wrap(columnName: string): any;
91
+ private isMySqlFamily;
92
+ private isPostgres;
93
+ private isSqlite;
94
+ private warnIfNonSortablePk;
95
+ private executeInTransaction;
96
+ private resolveSelectColumns;
112
97
  query<T = Record<string, unknown>>(sqlQuery: string | Sql, params?: unknown[]): Promise<T[]>;
113
98
  getRepository<T>(entity: ClazzType<T>): BaseRepository<T>;
114
99
  withTenant<R>(tenantId: string, callback: (em: this) => Promise<R>): Promise<R>;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/core/EntityManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/core/EntityManager.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAU,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAMjE,OAAY,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAEL,eAAe,EACf,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EACL,gBAAgB,EAIjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAIvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AAavC,qBAAa,aAAc,YAAW,iBAAiB;IACrD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,mBAAmB,CAAqB;IAOhD,OAAO,CAAC,cAAc,CAAa;IAKnC,OAAO,CAAC,MAAM,CAA4B;IAI1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IAGxD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAkBnB;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgD;IAC/E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgD;IAC/E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiD;IACjF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqD;IACpF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuD;IAI3E,QAAQ,CACnB,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,SAAY;IAM5B,IAAI,MAAM,mBAET;IAED,IAAI,UAAU,QAOb;IAKD,iBAAiB,IAAI,MAAM;IAId,OAAO,CAClB,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,SAAY;IAyDf,iBAAiB,CAAC,OAAO,CAAC,EAAE;QACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDpB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM;IAM/C,OAAO,CAAC,gBAAgB;IAsBxB,WAAW,IAAI,aAAa,CAAC,aAAa,CAAC;IAI3C,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,UAAU;IAWlB,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,qBAAqB,GAAG,IAAI;IAI9D,YAAY,IAAI,qBAAqB,GAAG,IAAI;IAI5C,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAMhD,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAI/D,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIhE,kBAAkB,IAAI,IAAI;IAI1B,aAAa,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI;IAItD,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI;YAO3C,iBAAiB;YAYjB,4BAA4B;IAYpC,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;YAIN,eAAe;IAevB,IAAI,CAAC,CAAC,EACV,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,UAAU,CAAC,CAAC,CAAM,GAC7B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAIb,YAAY;IAuUpB,cAAc,CAAC,CAAC,EACpB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,MAAM,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAoH/B,YAAY,CAAC,CAAC,EAClB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,UAAU,CAAC,CAAC,CAAM,GAC7B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAWnB,IAAI,CAAC,CAAC,EACV,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAIxB,YAAY;IAgYpB,QAAQ,CAAC,CAAC,EACd,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAClB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAelC,UAAU,CAAC,CAAC,EAChB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAClB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAyH1B,MAAM,CAAC,CAAC,EACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,YAAY,CAAC;IAmElB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA0CtE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7C,UAAU,CAAC,CAAC,EAChB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,YAAY,CAAC;IAgDlB,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,YAAY,CAAC;IAiDlB,MAAM,CAAC,CAAC,EACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;IAuEhB,OAAO,CAAC,gBAAgB;IAgDlB,KAAK,CAAC,CAAC,EACX,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAIZ,GAAG,CAAC,CAAC,EACT,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,MAAM,CAAC;IAMZ,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,UAAU,CAAC,CAAC,CAAM,GAC7B,OAAO,CAAC,aAAa,CAAC;IAMzB,IAAI,CAAC,UAAU,EAAE,MAAM;IAUvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,mBAAmB;YA6Cb,oBAAoB;IA0ClC,OAAO,CAAC,oBAAoB;IAgBtB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,QAAQ,EAAE,MAAM,GAAG,GAAG,EACtB,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC;IA6Bf,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAI/B,UAAU,CAAC,CAAC,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC;IAIb,SAAS,IAAI,UAAU,GAAG,SAAS;CAGpC"}