@spinajs/orm 2.0.481 → 2.0.484

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 (228) hide show
  1. package/README.md +72 -3
  2. package/lib/cjs/bootstrap.js +10 -0
  3. package/lib/cjs/bootstrap.js.map +1 -1
  4. package/lib/cjs/builders.d.ts +127 -11
  5. package/lib/cjs/builders.d.ts.map +1 -1
  6. package/lib/cjs/builders.js +368 -283
  7. package/lib/cjs/builders.js.map +1 -1
  8. package/lib/cjs/converters.d.ts +9 -2
  9. package/lib/cjs/converters.d.ts.map +1 -1
  10. package/lib/cjs/converters.js +48 -8
  11. package/lib/cjs/converters.js.map +1 -1
  12. package/lib/cjs/decorators.d.ts +26 -3
  13. package/lib/cjs/decorators.d.ts.map +1 -1
  14. package/lib/cjs/decorators.js +95 -42
  15. package/lib/cjs/decorators.js.map +1 -1
  16. package/lib/cjs/dehydrators.js +1 -1
  17. package/lib/cjs/dehydrators.js.map +1 -1
  18. package/lib/cjs/descriptor.d.ts +1 -0
  19. package/lib/cjs/descriptor.d.ts.map +1 -1
  20. package/lib/cjs/descriptor.js +16 -40
  21. package/lib/cjs/descriptor.js.map +1 -1
  22. package/lib/cjs/driver.d.ts +136 -7
  23. package/lib/cjs/driver.d.ts.map +1 -1
  24. package/lib/cjs/driver.js +279 -0
  25. package/lib/cjs/driver.js.map +1 -1
  26. package/lib/cjs/existsRelationHandlers.d.ts +29 -0
  27. package/lib/cjs/existsRelationHandlers.d.ts.map +1 -0
  28. package/lib/cjs/existsRelationHandlers.js +138 -0
  29. package/lib/cjs/existsRelationHandlers.js.map +1 -0
  30. package/lib/cjs/fp.d.ts.map +1 -1
  31. package/lib/cjs/fp.js +10 -15
  32. package/lib/cjs/fp.js.map +1 -1
  33. package/lib/cjs/hydrators.d.ts.map +1 -1
  34. package/lib/cjs/hydrators.js +29 -2
  35. package/lib/cjs/hydrators.js.map +1 -1
  36. package/lib/cjs/identity-map.d.ts +60 -0
  37. package/lib/cjs/identity-map.d.ts.map +1 -0
  38. package/lib/cjs/identity-map.js +135 -0
  39. package/lib/cjs/identity-map.js.map +1 -0
  40. package/lib/cjs/index.d.ts +12 -0
  41. package/lib/cjs/index.d.ts.map +1 -1
  42. package/lib/cjs/index.js +12 -0
  43. package/lib/cjs/index.js.map +1 -1
  44. package/lib/cjs/interfaces.d.ts +300 -10
  45. package/lib/cjs/interfaces.d.ts.map +1 -1
  46. package/lib/cjs/interfaces.js +54 -1
  47. package/lib/cjs/interfaces.js.map +1 -1
  48. package/lib/cjs/metadata.d.ts.map +1 -1
  49. package/lib/cjs/metadata.js +4 -1
  50. package/lib/cjs/metadata.js.map +1 -1
  51. package/lib/cjs/metrics.d.ts +53 -0
  52. package/lib/cjs/metrics.d.ts.map +1 -0
  53. package/lib/cjs/metrics.js +82 -0
  54. package/lib/cjs/metrics.js.map +1 -0
  55. package/lib/cjs/middlewares.d.ts +13 -1
  56. package/lib/cjs/middlewares.d.ts.map +1 -1
  57. package/lib/cjs/middlewares.js +55 -15
  58. package/lib/cjs/middlewares.js.map +1 -1
  59. package/lib/cjs/model.d.ts +129 -13
  60. package/lib/cjs/model.d.ts.map +1 -1
  61. package/lib/cjs/model.js +449 -93
  62. package/lib/cjs/model.js.map +1 -1
  63. package/lib/cjs/orm.d.ts.map +1 -1
  64. package/lib/cjs/orm.js +12 -3
  65. package/lib/cjs/orm.js.map +1 -1
  66. package/lib/cjs/orphan.d.ts +27 -0
  67. package/lib/cjs/orphan.d.ts.map +1 -0
  68. package/lib/cjs/orphan.js +55 -0
  69. package/lib/cjs/orphan.js.map +1 -0
  70. package/lib/cjs/primary-keys.d.ts +60 -0
  71. package/lib/cjs/primary-keys.d.ts.map +1 -0
  72. package/lib/cjs/primary-keys.js +243 -0
  73. package/lib/cjs/primary-keys.js.map +1 -0
  74. package/lib/cjs/relation-objects.d.ts +101 -9
  75. package/lib/cjs/relation-objects.d.ts.map +1 -1
  76. package/lib/cjs/relation-objects.js +194 -43
  77. package/lib/cjs/relation-objects.js.map +1 -1
  78. package/lib/cjs/relations.d.ts +7 -1
  79. package/lib/cjs/relations.d.ts.map +1 -1
  80. package/lib/cjs/relations.js +16 -1
  81. package/lib/cjs/relations.js.map +1 -1
  82. package/lib/cjs/resilience.d.ts +50 -0
  83. package/lib/cjs/resilience.d.ts.map +1 -0
  84. package/lib/cjs/resilience.js +70 -0
  85. package/lib/cjs/resilience.js.map +1 -0
  86. package/lib/cjs/snapshot.d.ts +58 -0
  87. package/lib/cjs/snapshot.d.ts.map +1 -0
  88. package/lib/cjs/snapshot.js +125 -0
  89. package/lib/cjs/snapshot.js.map +1 -0
  90. package/lib/cjs/statements.d.ts +11 -1
  91. package/lib/cjs/statements.d.ts.map +1 -1
  92. package/lib/cjs/statements.js +13 -2
  93. package/lib/cjs/statements.js.map +1 -1
  94. package/lib/cjs/subject-builder.d.ts +79 -0
  95. package/lib/cjs/subject-builder.d.ts.map +1 -0
  96. package/lib/cjs/subject-builder.js +296 -0
  97. package/lib/cjs/subject-builder.js.map +1 -0
  98. package/lib/cjs/subject-executor.d.ts +122 -0
  99. package/lib/cjs/subject-executor.d.ts.map +1 -0
  100. package/lib/cjs/subject-executor.js +319 -0
  101. package/lib/cjs/subject-executor.js.map +1 -0
  102. package/lib/cjs/subject-sorter.d.ts +70 -0
  103. package/lib/cjs/subject-sorter.d.ts.map +1 -0
  104. package/lib/cjs/subject-sorter.js +173 -0
  105. package/lib/cjs/subject-sorter.js.map +1 -0
  106. package/lib/cjs/subject.d.ts +100 -0
  107. package/lib/cjs/subject.d.ts.map +1 -0
  108. package/lib/cjs/subject.js +89 -0
  109. package/lib/cjs/subject.js.map +1 -0
  110. package/lib/cjs/unit-of-work.d.ts +52 -0
  111. package/lib/cjs/unit-of-work.d.ts.map +1 -0
  112. package/lib/cjs/unit-of-work.js +170 -0
  113. package/lib/cjs/unit-of-work.js.map +1 -0
  114. package/lib/mjs/bootstrap.js +10 -0
  115. package/lib/mjs/bootstrap.js.map +1 -1
  116. package/lib/mjs/builders.d.ts +127 -11
  117. package/lib/mjs/builders.d.ts.map +1 -1
  118. package/lib/mjs/builders.js +370 -285
  119. package/lib/mjs/builders.js.map +1 -1
  120. package/lib/mjs/converters.d.ts +9 -2
  121. package/lib/mjs/converters.d.ts.map +1 -1
  122. package/lib/mjs/converters.js +48 -8
  123. package/lib/mjs/converters.js.map +1 -1
  124. package/lib/mjs/decorators.d.ts +26 -3
  125. package/lib/mjs/decorators.d.ts.map +1 -1
  126. package/lib/mjs/decorators.js +96 -44
  127. package/lib/mjs/decorators.js.map +1 -1
  128. package/lib/mjs/dehydrators.js +1 -1
  129. package/lib/mjs/dehydrators.js.map +1 -1
  130. package/lib/mjs/descriptor.d.ts +1 -0
  131. package/lib/mjs/descriptor.d.ts.map +1 -1
  132. package/lib/mjs/descriptor.js +17 -39
  133. package/lib/mjs/descriptor.js.map +1 -1
  134. package/lib/mjs/driver.d.ts +136 -7
  135. package/lib/mjs/driver.d.ts.map +1 -1
  136. package/lib/mjs/driver.js +279 -0
  137. package/lib/mjs/driver.js.map +1 -1
  138. package/lib/mjs/existsRelationHandlers.d.ts +29 -0
  139. package/lib/mjs/existsRelationHandlers.d.ts.map +1 -0
  140. package/lib/mjs/existsRelationHandlers.js +134 -0
  141. package/lib/mjs/existsRelationHandlers.js.map +1 -0
  142. package/lib/mjs/fp.d.ts.map +1 -1
  143. package/lib/mjs/fp.js +10 -15
  144. package/lib/mjs/fp.js.map +1 -1
  145. package/lib/mjs/hydrators.d.ts.map +1 -1
  146. package/lib/mjs/hydrators.js +29 -2
  147. package/lib/mjs/hydrators.js.map +1 -1
  148. package/lib/mjs/identity-map.d.ts +60 -0
  149. package/lib/mjs/identity-map.d.ts.map +1 -0
  150. package/lib/mjs/identity-map.js +130 -0
  151. package/lib/mjs/identity-map.js.map +1 -0
  152. package/lib/mjs/index.d.ts +12 -0
  153. package/lib/mjs/index.d.ts.map +1 -1
  154. package/lib/mjs/index.js +12 -0
  155. package/lib/mjs/index.js.map +1 -1
  156. package/lib/mjs/interfaces.d.ts +300 -10
  157. package/lib/mjs/interfaces.d.ts.map +1 -1
  158. package/lib/mjs/interfaces.js +53 -0
  159. package/lib/mjs/interfaces.js.map +1 -1
  160. package/lib/mjs/metadata.d.ts.map +1 -1
  161. package/lib/mjs/metadata.js +4 -1
  162. package/lib/mjs/metadata.js.map +1 -1
  163. package/lib/mjs/metrics.d.ts +53 -0
  164. package/lib/mjs/metrics.d.ts.map +1 -0
  165. package/lib/mjs/metrics.js +76 -0
  166. package/lib/mjs/metrics.js.map +1 -0
  167. package/lib/mjs/middlewares.d.ts +13 -1
  168. package/lib/mjs/middlewares.d.ts.map +1 -1
  169. package/lib/mjs/middlewares.js +55 -15
  170. package/lib/mjs/middlewares.js.map +1 -1
  171. package/lib/mjs/model.d.ts +129 -13
  172. package/lib/mjs/model.d.ts.map +1 -1
  173. package/lib/mjs/model.js +451 -95
  174. package/lib/mjs/model.js.map +1 -1
  175. package/lib/mjs/orm.d.ts.map +1 -1
  176. package/lib/mjs/orm.js +12 -3
  177. package/lib/mjs/orm.js.map +1 -1
  178. package/lib/mjs/orphan.d.ts +27 -0
  179. package/lib/mjs/orphan.d.ts.map +1 -0
  180. package/lib/mjs/orphan.js +52 -0
  181. package/lib/mjs/orphan.js.map +1 -0
  182. package/lib/mjs/primary-keys.d.ts +60 -0
  183. package/lib/mjs/primary-keys.d.ts.map +1 -0
  184. package/lib/mjs/primary-keys.js +223 -0
  185. package/lib/mjs/primary-keys.js.map +1 -0
  186. package/lib/mjs/relation-objects.d.ts +101 -9
  187. package/lib/mjs/relation-objects.d.ts.map +1 -1
  188. package/lib/mjs/relation-objects.js +194 -43
  189. package/lib/mjs/relation-objects.js.map +1 -1
  190. package/lib/mjs/relations.d.ts +7 -1
  191. package/lib/mjs/relations.d.ts.map +1 -1
  192. package/lib/mjs/relations.js +16 -1
  193. package/lib/mjs/relations.js.map +1 -1
  194. package/lib/mjs/resilience.d.ts +50 -0
  195. package/lib/mjs/resilience.d.ts.map +1 -0
  196. package/lib/mjs/resilience.js +64 -0
  197. package/lib/mjs/resilience.js.map +1 -0
  198. package/lib/mjs/snapshot.d.ts +58 -0
  199. package/lib/mjs/snapshot.d.ts.map +1 -0
  200. package/lib/mjs/snapshot.js +115 -0
  201. package/lib/mjs/snapshot.js.map +1 -0
  202. package/lib/mjs/statements.d.ts +11 -1
  203. package/lib/mjs/statements.d.ts.map +1 -1
  204. package/lib/mjs/statements.js +14 -3
  205. package/lib/mjs/statements.js.map +1 -1
  206. package/lib/mjs/subject-builder.d.ts +79 -0
  207. package/lib/mjs/subject-builder.d.ts.map +1 -0
  208. package/lib/mjs/subject-builder.js +292 -0
  209. package/lib/mjs/subject-builder.js.map +1 -0
  210. package/lib/mjs/subject-executor.d.ts +122 -0
  211. package/lib/mjs/subject-executor.d.ts.map +1 -0
  212. package/lib/mjs/subject-executor.js +312 -0
  213. package/lib/mjs/subject-executor.js.map +1 -0
  214. package/lib/mjs/subject-sorter.d.ts +70 -0
  215. package/lib/mjs/subject-sorter.d.ts.map +1 -0
  216. package/lib/mjs/subject-sorter.js +168 -0
  217. package/lib/mjs/subject-sorter.js.map +1 -0
  218. package/lib/mjs/subject.d.ts +100 -0
  219. package/lib/mjs/subject.d.ts.map +1 -0
  220. package/lib/mjs/subject.js +84 -0
  221. package/lib/mjs/subject.js.map +1 -0
  222. package/lib/mjs/unit-of-work.d.ts +52 -0
  223. package/lib/mjs/unit-of-work.d.ts.map +1 -0
  224. package/lib/mjs/unit-of-work.js +166 -0
  225. package/lib/mjs/unit-of-work.js.map +1 -0
  226. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  227. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  228. package/package.json +10 -7
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ObjectToSqlConverter = exports.ModelToSqlConverter = exports.QueryScope = exports.TableAliasCompiler = exports.SetValueConverter = exports.BooleanValueConverter = exports.TimeValueConverter = exports.DatetimeValueConverter = exports.ValueConverter = exports.ModelMiddleware = exports.QueryMiddleware = exports.RawSchemaQueryCompiler = exports.GroupByQueryCompiler = exports.OrderByQueryCompiler = exports.AlterColumnQueryCompiler = exports.ColumnQueryCompiler = exports.DropViewCompiler = exports.DropTableCompiler = exports.TableExistsCompiler = exports.AlterTableQueryCompiler = exports.DropEventQueryCompiler = exports.EventQueryCompiler = exports.TableCloneQueryCompiler = exports.TruncateTableQueryCompiler = exports.TableHistoryQueryCompiler = exports.TableQueryCompiler = exports.OnDuplicateQueryCompiler = exports.InsertQueryCompiler = exports.UpdateQueryCompiler = exports.DeleteQueryCompiler = exports.ForeignKeyQueryCompiler = exports.LimitQueryCompiler = exports.IndexQueryCompiler = exports.JoinQueryCompiler = exports.SelectQueryCompiler = exports.RecursiveQueryCompiler = exports.OrmMigration = exports.RelationType = exports.MigrationTransactionMode = exports.ReferentialAction = exports.InsertBehaviour = exports.DefaultValueBuilder = exports.ServerResponseMapper = exports.ColumnAlterationType = exports.QueryContext = void 0;
9
+ exports.ObjectToSqlConverter = exports.ModelToSqlConverter = exports.QueryScope = exports.TableAliasCompiler = exports.SetValueConverter = exports.BooleanValueConverter = exports.TimeValueConverter = exports.DatetimeValueConverter = exports.ValueConverter = exports.ModelMiddleware = exports.QueryMiddleware = exports.RawSchemaQueryCompiler = exports.GroupByQueryCompiler = exports.OrderByQueryCompiler = exports.AlterColumnQueryCompiler = exports.ColumnQueryCompiler = exports.DropViewCompiler = exports.DropTableCompiler = exports.TableExistsCompiler = exports.AlterTableQueryCompiler = exports.DropEventQueryCompiler = exports.EventQueryCompiler = exports.TableCloneQueryCompiler = exports.TruncateTableQueryCompiler = exports.TableHistoryQueryCompiler = exports.TableQueryCompiler = exports.OnDuplicateQueryCompiler = exports.InsertQueryCompiler = exports.UpdateQueryCompiler = exports.DeleteQueryCompiler = exports.ForeignKeyQueryCompiler = exports.LimitQueryCompiler = exports.IndexQueryCompiler = exports.JoinQueryCompiler = exports.SelectQueryCompiler = exports.RecursiveQueryCompiler = exports.OrmMigration = exports.OrphanPolicy = exports.RelationType = exports.MigrationTransactionMode = exports.ReferentialAction = exports.InsertBehaviour = exports.DefaultValueBuilder = exports.ServerResponseMapper = exports.ColumnAlterationType = exports.QueryContext = void 0;
10
10
  const di_1 = require("@spinajs/di");
11
11
  const exceptions_1 = require("@spinajs/exceptions");
12
12
  var QueryContext;
@@ -19,6 +19,8 @@ var QueryContext;
19
19
  QueryContext[QueryContext["Transaction"] = 5] = "Transaction";
20
20
  // Insert or UPDATE
21
21
  QueryContext[QueryContext["Upsert"] = 6] = "Upsert";
22
+ /** INSERT that carries a RETURNING clause and therefore resolves with rows, not a status packet. */
23
+ QueryContext[QueryContext["InsertReturning"] = 7] = "InsertReturning";
22
24
  })(QueryContext || (exports.QueryContext = QueryContext = {}));
23
25
  var ColumnAlterationType;
24
26
  (function (ColumnAlterationType) {
@@ -26,7 +28,25 @@ var ColumnAlterationType;
26
28
  ColumnAlterationType[ColumnAlterationType["Modify"] = 1] = "Modify";
27
29
  ColumnAlterationType[ColumnAlterationType["Rename"] = 2] = "Rename";
28
30
  })(ColumnAlterationType || (exports.ColumnAlterationType = ColumnAlterationType = {}));
31
+ /**
32
+ * Normalizes a driver's raw insert response into {@link DbServerResponse}.
33
+ *
34
+ * Every driver MUST register an implementation against this token in its container — the
35
+ * shape of an insert response is dialect-specific and there is no meaningful default.
36
+ * Declared as a concrete class that throws rather than as an abstract method, so a container
37
+ * missing the registration reports which contract was not implemented instead of dying with
38
+ * `read is not a function` several frames deep inside a result middleware.
39
+ */
29
40
  class ServerResponseMapper {
41
+ /**
42
+ * Normalizes a driver's raw insert response.
43
+ *
44
+ * @param response - whatever the driver's executeOnDb resolved with
45
+ * @param pkNames - primary key column names, used to read a key out of RETURNING rows
46
+ */
47
+ read(_response, _pkNames) {
48
+ throw new exceptions_1.MethodNotImplemented(`no ServerResponseMapper is registered for this connection. Every driver must register one: container.register(MyMapper).as(ServerResponseMapper)`);
49
+ }
30
50
  }
31
51
  exports.ServerResponseMapper = ServerResponseMapper;
32
52
  class DefaultValueBuilder {
@@ -81,6 +101,21 @@ var RelationType;
81
101
  RelationType[RelationType["Query"] = 3] = "Query";
82
102
  RelationType[RelationType["Virtual"] = 4] = "Virtual";
83
103
  })(RelationType || (exports.RelationType = RelationType = {}));
104
+ /**
105
+ * What `save()` does with a row that was removed from a relation.
106
+ *
107
+ * - `nullify` — clear the child's foreign key, leaving the row. The default.
108
+ * - `delete` — delete the child row.
109
+ * - `soft-delete` — stamp the child's `@SoftDelete` column. Requires the target to carry one.
110
+ * - `disable` — do nothing; the caller manages orphans by hand.
111
+ */
112
+ var OrphanPolicy;
113
+ (function (OrphanPolicy) {
114
+ OrphanPolicy["Nullify"] = "nullify";
115
+ OrphanPolicy["Delete"] = "delete";
116
+ OrphanPolicy["SoftDelete"] = "soft-delete";
117
+ OrphanPolicy["Disable"] = "disable";
118
+ })(OrphanPolicy || (exports.OrphanPolicy = OrphanPolicy = {}));
84
119
  let OrmMigration = class OrmMigration {
85
120
  /**
86
121
  * Migrate data - execute AFTER orm module has been initialized
@@ -247,6 +282,24 @@ exports.RawSchemaQueryCompiler = RawSchemaQueryCompiler;
247
282
  exports.RawSchemaQueryCompiler = RawSchemaQueryCompiler = __decorate([
248
283
  (0, di_1.NewInstance)()
249
284
  ], RawSchemaQueryCompiler);
285
+ /**
286
+ * Hooks into the lifetime of every query builder. Both hooks run for EVERY builder type —
287
+ * select, insert, update and delete.
288
+ *
289
+ * The two differ in what the query is guaranteed to contain, and that difference is
290
+ * load-bearing rather than stylistic:
291
+ *
292
+ * - `afterQueryCreation` runs from the builder's CONSTRUCTOR. The model and the query context
293
+ * are set; nothing the caller does afterwards has happened yet — no `where()`, no
294
+ * `update()`, no `values()`. It is the place to ADD a constraint (rbac appends its owner
295
+ * `WHERE` here) and the wrong place to read or amend the payload, which does not exist yet.
296
+ * - `beforeQueryExecution` runs once per builder, immediately before the driver is called, so
297
+ * the query is complete. It is the place to inspect or rewrite what is about to be written
298
+ * (rbac stamps the owner column of an INSERT here, because a value written at construction
299
+ * would be overwritten by the caller's own `values()` call).
300
+ *
301
+ * A middleware that throws from either hook aborts the query.
302
+ */
250
303
  class QueryMiddleware {
251
304
  }
252
305
  exports.QueryMiddleware = QueryMiddleware;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAK9D;;;;;GAKG;AACH,8BAAsB,aAAa,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAGhB,EAAE,EAAE,MAAM,CAAC;IAIX,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAE7E,IACW,KAAK,IAIQ,GAAG,CAF1B;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,GAAG,EAG1B;IAED,IAAW,GAAG,IAIQ,MAAM,CAF3B;IAED,IAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAE3B;IAED,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU;CAW7F;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAE,SAAQ,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;;;;;OAMG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM;gBAiBnB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;CAuDnE"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAK9D;;;;;GAKG;AACH,8BAAsB,aAAa,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAGhB,EAAE,EAAE,MAAM,CAAC;IAIX,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAE7E,IACW,KAAK,IAIQ,GAAG,CAF1B;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,GAAG,EAG1B;IAED,IAAW,GAAG,IAIQ,MAAM,CAF3B;IAED,IAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAE3B;IAED,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU;CAe7F;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAE,SAAQ,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;;;;;OAMG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM;gBAiBnB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;CAuDnE"}
@@ -44,6 +44,9 @@ class MetadataModel extends model_js_1.ModelBase {
44
44
  if (val instanceof luxon_1.DateTime) {
45
45
  return 'datetime';
46
46
  }
47
+ if (val === null || val === undefined) {
48
+ return 'string';
49
+ }
47
50
  if (typeof val === 'object') {
48
51
  return 'json';
49
52
  }
@@ -83,7 +86,7 @@ class MetadataRelation extends relation_objects_js_1.OneToManyRelationList {
83
86
  const k = (0, util_1._check_arg)((0, util_1._non_empty)())(key, 'key');
84
87
  const model = await this.Relation.TargetModel.where({
85
88
  Key: k,
86
- user_id: this.Owner.PrimaryKeyValue,
89
+ [this.Relation.ForeignKey]: this.Owner.PrimaryKeyValue,
87
90
  }).first();
88
91
  if (lodash_1.default.isNil(model)) {
89
92
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { MetricMap, Gauge, Histogram } from '@spinajs/telemetry-common';
2
+ /**
3
+ * Point-in-time view of a driver's connection pool.
4
+ */
5
+ export interface IPoolMetrics {
6
+ /** Connections currently open ( idle + in use ). */
7
+ Size: number;
8
+ /** Connections currently checked out by a query. */
9
+ InUse: number;
10
+ /** Callers waiting for a free connection. */
11
+ Waiting: number;
12
+ }
13
+ /**
14
+ * Prefix `Metrics.defineMetrics` puts in front of every name below.
15
+ */
16
+ export declare const ORM_METRIC_PREFIX = "orm";
17
+ /** Key of a metric inside the {@link MetricMap} — the name WITHOUT the `orm_` prefix. */
18
+ export declare const ORM_METRIC_KEY_POOL_SIZE = "pool_size";
19
+ export declare const ORM_METRIC_KEY_POOL_IN_USE = "pool_in_use";
20
+ export declare const ORM_METRIC_KEY_POOL_WAITING = "pool_waiting";
21
+ export declare const ORM_METRIC_KEY_ACQUIRE_SECONDS = "pool_acquire_seconds";
22
+ export declare const ORM_METRIC_KEY_CONNECTION_STATE = "connection_state";
23
+ /** Fully qualified metric names, as they appear in the Prometheus exposition text. */
24
+ export declare const ORM_METRIC_POOL_SIZE = "orm_pool_size";
25
+ export declare const ORM_METRIC_POOL_IN_USE = "orm_pool_in_use";
26
+ export declare const ORM_METRIC_POOL_WAITING = "orm_pool_waiting";
27
+ export declare const ORM_METRIC_ACQUIRE_SECONDS = "orm_pool_acquire_seconds";
28
+ export declare const ORM_METRIC_CONNECTION_STATE = "orm_connection_state";
29
+ /**
30
+ * Acquiring a pooled connection is normally sub-millisecond and only becomes interesting once the
31
+ * pool saturates, so the buckets are dense at the bottom and reach far enough to show a caller
32
+ * that queued for seconds. prom-client's linear default ( 1..10 SECONDS ) would put every healthy
33
+ * acquire in the first bucket and tell us nothing.
34
+ */
35
+ export declare const ORM_ACQUIRE_BUCKETS_SECONDS: number[];
36
+ /**
37
+ * The ORM's metric set, built against the shared `Metrics` service from
38
+ * `@spinajs/telemetry-common`.
39
+ *
40
+ * The ORM deliberately depends on `-common` and NOT on `@spinajs/telemetry`: that package pulls in
41
+ * `@spinajs/http`, `@spinajs/log`, `@spinajs/validation` and `@spinajs/configuration`, and putting
42
+ * the HTTP stack underneath every database connection inverts the dependency graph. `-common`
43
+ * needs nothing but `@spinajs/di` and prom-client. `@spinajs/telemetry` re-exports it, so the
44
+ * `/metrics` endpoint renders the very registry these metrics land in — no wiring needed.
45
+ *
46
+ * Returns null rather than throwing when the service cannot be resolved: publishing a metric must
47
+ * never be able to fail a query or a health probe.
48
+ */
49
+ export declare function ormMetrics(): MetricMap | null;
50
+ /** Narrowing helpers: `defineMetrics` is typed by its declarations, not by the values it returns. */
51
+ export declare function ormGauge(map: MetricMap, key: string): Gauge<string>;
52
+ export declare function ormHistogram(map: MetricMap, key: string): Histogram<string>;
53
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IAEb,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IAEd,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,cAAc,CAAC;AACpD,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AACxD,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAC1D,eAAO,MAAM,8BAA8B,yBAAyB,CAAC;AACrE,eAAO,MAAM,+BAA+B,qBAAqB,CAAC;AAElE,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,kBAAqD,CAAC;AACvF,eAAO,MAAM,sBAAsB,oBAAuD,CAAC;AAC3F,eAAO,MAAM,uBAAuB,qBAAwD,CAAC;AAC7F,eAAO,MAAM,0BAA0B,6BAA2D,CAAC;AACnG,eAAO,MAAM,2BAA2B,yBAA4D,CAAC;AAErG;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,UAAoE,CAAC;AAkB7G;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,IAAI,SAAS,GAAG,IAAI,CAc7C;AAED,qGAAqG;AACrG,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAGnE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAG3E"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ORM_ACQUIRE_BUCKETS_SECONDS = exports.ORM_METRIC_CONNECTION_STATE = exports.ORM_METRIC_ACQUIRE_SECONDS = exports.ORM_METRIC_POOL_WAITING = exports.ORM_METRIC_POOL_IN_USE = exports.ORM_METRIC_POOL_SIZE = exports.ORM_METRIC_KEY_CONNECTION_STATE = exports.ORM_METRIC_KEY_ACQUIRE_SECONDS = exports.ORM_METRIC_KEY_POOL_WAITING = exports.ORM_METRIC_KEY_POOL_IN_USE = exports.ORM_METRIC_KEY_POOL_SIZE = exports.ORM_METRIC_PREFIX = void 0;
4
+ exports.ormMetrics = ormMetrics;
5
+ exports.ormGauge = ormGauge;
6
+ exports.ormHistogram = ormHistogram;
7
+ const di_1 = require("@spinajs/di");
8
+ const telemetry_common_1 = require("@spinajs/telemetry-common");
9
+ /**
10
+ * Prefix `Metrics.defineMetrics` puts in front of every name below.
11
+ */
12
+ exports.ORM_METRIC_PREFIX = 'orm';
13
+ /** Key of a metric inside the {@link MetricMap} — the name WITHOUT the `orm_` prefix. */
14
+ exports.ORM_METRIC_KEY_POOL_SIZE = 'pool_size';
15
+ exports.ORM_METRIC_KEY_POOL_IN_USE = 'pool_in_use';
16
+ exports.ORM_METRIC_KEY_POOL_WAITING = 'pool_waiting';
17
+ exports.ORM_METRIC_KEY_ACQUIRE_SECONDS = 'pool_acquire_seconds';
18
+ exports.ORM_METRIC_KEY_CONNECTION_STATE = 'connection_state';
19
+ /** Fully qualified metric names, as they appear in the Prometheus exposition text. */
20
+ exports.ORM_METRIC_POOL_SIZE = `${exports.ORM_METRIC_PREFIX}_${exports.ORM_METRIC_KEY_POOL_SIZE}`;
21
+ exports.ORM_METRIC_POOL_IN_USE = `${exports.ORM_METRIC_PREFIX}_${exports.ORM_METRIC_KEY_POOL_IN_USE}`;
22
+ exports.ORM_METRIC_POOL_WAITING = `${exports.ORM_METRIC_PREFIX}_${exports.ORM_METRIC_KEY_POOL_WAITING}`;
23
+ exports.ORM_METRIC_ACQUIRE_SECONDS = `${exports.ORM_METRIC_PREFIX}_${exports.ORM_METRIC_KEY_ACQUIRE_SECONDS}`;
24
+ exports.ORM_METRIC_CONNECTION_STATE = `${exports.ORM_METRIC_PREFIX}_${exports.ORM_METRIC_KEY_CONNECTION_STATE}`;
25
+ /**
26
+ * Acquiring a pooled connection is normally sub-millisecond and only becomes interesting once the
27
+ * pool saturates, so the buckets are dense at the bottom and reach far enough to show a caller
28
+ * that queued for seconds. prom-client's linear default ( 1..10 SECONDS ) would put every healthy
29
+ * acquire in the first bucket and tell us nothing.
30
+ */
31
+ exports.ORM_ACQUIRE_BUCKETS_SECONDS = [0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10];
32
+ const ORM_METRIC_DEFS = [
33
+ { name: exports.ORM_METRIC_KEY_POOL_SIZE, help: 'Open ORM pool connections', type: 'gauge', labelNames: ['connection'] },
34
+ { name: exports.ORM_METRIC_KEY_POOL_IN_USE, help: 'ORM pool connections checked out by a query', type: 'gauge', labelNames: ['connection'] },
35
+ { name: exports.ORM_METRIC_KEY_POOL_WAITING, help: 'Callers waiting for a free ORM pool connection', type: 'gauge', labelNames: ['connection'] },
36
+ { name: exports.ORM_METRIC_KEY_CONNECTION_STATE, help: 'ORM connection state: 1 connected, 0 otherwise', type: 'gauge', labelNames: ['connection'] },
37
+ { name: exports.ORM_METRIC_KEY_ACQUIRE_SECONDS, help: 'Seconds spent acquiring an ORM pool connection', type: 'histogram', labelNames: ['connection'], buckets: exports.ORM_ACQUIRE_BUCKETS_SECONDS },
38
+ ];
39
+ /**
40
+ * `defineMetrics` REBUILDS the metric objects on every call — a second call would silently reset
41
+ * every value — so each `Metrics` service gets its metric set built exactly once. Keyed by the
42
+ * service instance rather than a module-level flag so that `DI.clearCache()` ( tests, or a second
43
+ * SpinaJS app in one process ) starts from a fresh registry without leaking metrics across it.
44
+ */
45
+ const DEFINED = new WeakMap();
46
+ /**
47
+ * The ORM's metric set, built against the shared `Metrics` service from
48
+ * `@spinajs/telemetry-common`.
49
+ *
50
+ * The ORM deliberately depends on `-common` and NOT on `@spinajs/telemetry`: that package pulls in
51
+ * `@spinajs/http`, `@spinajs/log`, `@spinajs/validation` and `@spinajs/configuration`, and putting
52
+ * the HTTP stack underneath every database connection inverts the dependency graph. `-common`
53
+ * needs nothing but `@spinajs/di` and prom-client. `@spinajs/telemetry` re-exports it, so the
54
+ * `/metrics` endpoint renders the very registry these metrics land in — no wiring needed.
55
+ *
56
+ * Returns null rather than throwing when the service cannot be resolved: publishing a metric must
57
+ * never be able to fail a query or a health probe.
58
+ */
59
+ function ormMetrics() {
60
+ try {
61
+ const service = di_1.DI.get(telemetry_common_1.Metrics) ?? di_1.DI.resolve(telemetry_common_1.Metrics);
62
+ let map = DEFINED.get(service);
63
+ if (!map) {
64
+ map = service.defineMetrics(exports.ORM_METRIC_PREFIX, ORM_METRIC_DEFS);
65
+ DEFINED.set(service, map);
66
+ }
67
+ return map;
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ }
73
+ /** Narrowing helpers: `defineMetrics` is typed by its declarations, not by the values it returns. */
74
+ function ormGauge(map, key) {
75
+ // eslint-disable-next-line security/detect-object-injection
76
+ return map[key];
77
+ }
78
+ function ormHistogram(map, key) {
79
+ // eslint-disable-next-line security/detect-object-injection
80
+ return map[key];
81
+ }
82
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,19 @@ export declare class HasManyToManyRelationMiddleware implements IBuilderMiddlewa
43
43
  protected _relationQuery: ISelectQueryBuilder;
44
44
  protected _description: IRelationDescriptor;
45
45
  protected _targetModelDescriptor: IModelDescriptor;
46
- constructor(_relationQuery: ISelectQueryBuilder, _description: IRelationDescriptor, _targetModelDescriptor: IModelDescriptor);
46
+ protected _relationDescriptor?: IRelationDescriptor | undefined;
47
+ /**
48
+ * @param _relationQuery - the join query through the junction table
49
+ * @param _description - the *synthetic* owner -> junction descriptor built by
50
+ * `ManyToManyRelation.compile()`. It says `Type: Many` and its `ForeignKey` is the
51
+ * junction's source column, which is what the row-matching below needs.
52
+ * @param _targetModelDescriptor - descriptor of the model on the far side of the junction
53
+ * @param _relationDescriptor - the model's own `@HasManyToMany` descriptor. Optional so no
54
+ * existing caller breaks, but without it the `ManyToManyRelationList` handed to the
55
+ * user carries the synthetic descriptor instead — no `JunctionModel`, no junction
56
+ * key names — and `sync()` / `update()` / the set operations all fail on it.
57
+ */
58
+ constructor(_relationQuery: ISelectQueryBuilder, _description: IRelationDescriptor, _targetModelDescriptor: IModelDescriptor, _relationDescriptor?: IRelationDescriptor | undefined);
47
59
  afterQuery(data: any[]): any[];
48
60
  modelCreation(_: any): ModelBase | null;
49
61
  afterHydration(data: ModelBase[]): Promise<any[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,12 @@ class HasManyRelationMiddleware {
57
57
  d[self._description.Name] = di_1.DI.resolve(self._description.RelationClass, [d, self._description, relData]);
58
58
  }
59
59
  }
60
+ // The contents came from the database, so this relation is populated — even when
61
+ // the batched query returned no rows for this particular owner. `Populated` is what
62
+ // tells "loaded and empty" from "never loaded", and unit-of-work `save()` skips the
63
+ // latter entirely ( the empty-array anti-footgun ).
64
+ d[self._description.Name].Populated = true;
65
+ d.snapshotRelation(self._description.Name);
60
66
  });
61
67
  },
62
68
  };
@@ -184,10 +190,22 @@ class VirtualRelationMiddleware {
184
190
  }
185
191
  exports.VirtualRelationMiddleware = VirtualRelationMiddleware;
186
192
  class HasManyToManyRelationMiddleware {
187
- constructor(_relationQuery, _description, _targetModelDescriptor) {
193
+ /**
194
+ * @param _relationQuery - the join query through the junction table
195
+ * @param _description - the *synthetic* owner -> junction descriptor built by
196
+ * `ManyToManyRelation.compile()`. It says `Type: Many` and its `ForeignKey` is the
197
+ * junction's source column, which is what the row-matching below needs.
198
+ * @param _targetModelDescriptor - descriptor of the model on the far side of the junction
199
+ * @param _relationDescriptor - the model's own `@HasManyToMany` descriptor. Optional so no
200
+ * existing caller breaks, but without it the `ManyToManyRelationList` handed to the
201
+ * user carries the synthetic descriptor instead — no `JunctionModel`, no junction
202
+ * key names — and `sync()` / `update()` / the set operations all fail on it.
203
+ */
204
+ constructor(_relationQuery, _description, _targetModelDescriptor, _relationDescriptor) {
188
205
  this._relationQuery = _relationQuery;
189
206
  this._description = _description;
190
207
  this._targetModelDescriptor = _targetModelDescriptor;
208
+ this._relationDescriptor = _relationDescriptor;
191
209
  }
192
210
  afterQuery(data) {
193
211
  return data;
@@ -209,7 +227,15 @@ class HasManyToManyRelationMiddleware {
209
227
  relationData.forEach((d) => (d.__relationKey__ = self._description.Name));
210
228
  data.forEach((d) => {
211
229
  const relData = relationData.filter((rd) => rd.JunctionModel[self._description.ForeignKey] === d[self._description.PrimaryKey]);
212
- d[self._description.Name] = new relation_objects_js_1.ManyToManyRelationList(d, self._description, relData);
230
+ // The real @HasManyToMany descriptor, not the synthetic join one — see the
231
+ // constructor doc. Falls back to the synthetic descriptor so a caller that does
232
+ // not supply it keeps the previous ( broken but unchanged ) behaviour.
233
+ const list = new relation_objects_js_1.ManyToManyRelationList(d, self._relationDescriptor ?? self._description, relData);
234
+ // See the note in HasManyRelationMiddleware: loaded-and-empty must be
235
+ // distinguishable from never-loaded.
236
+ list.Populated = true;
237
+ d[self._description.Name] = list;
238
+ d.snapshotRelation(self._description.Name);
213
239
  });
214
240
  relationData.forEach((d) => delete d.JunctionModel);
215
241
  },
@@ -247,19 +273,28 @@ class BelongsToPopulateDataMiddleware {
247
273
  }
248
274
  afterHydration(data) {
249
275
  const relData = data.map((d) => d[this._description.Name].Value).filter((x) => x !== null && x !== undefined);
250
- const middlewares = this.relation._relationQuery.Relations
251
- .map((x) => {
252
- return x._query._middlewares;
253
- })
254
- .reduce((prev, current) => {
255
- return prev.concat(current);
256
- }, []);
257
- // HACK
258
- // TODO: this is only temporary solution to execute only unique middlewares.
259
- // Somewhere else in code is bug that causes multiple same middlewares to be added to the query
276
+ // Every relation created on a builder stores that builder as `_query`
277
+ // ( SelectQueryBuilder._getRelationInstance passes `this` ), so N nested relations under
278
+ // one belongsTo all point at the *same* `_middlewares` array. Concatenating per relation
279
+ // therefore repeated the whole array N times — the duplication a `_.uniqBy` on relation
280
+ // name used to paper over, too coarsely ( it collapsed two genuinely distinct middlewares
281
+ // that happened to share a relation name ) and unsafely
282
+ // ( BelongsToRelationResultTransformMiddleware has no `_description` at all, and
283
+ // DiscriminationMapMiddleware's is an IModelDescriptor, so the key compared a *model*
284
+ // name against a *relation* name ).
260
285
  //
261
- // Check hasmanytomany relation with multiple nested belongs to relation to see the bug
262
- return Promise.all(lodash_1.default.uniqBy(middlewares, (x) => x._description.Name).map((x) => {
286
+ // Collect each distinct middleware object once, in first-seen order.
287
+ const seen = new Set();
288
+ const middlewares = [];
289
+ for (const relation of this.relation._relationQuery.Relations) {
290
+ for (const middleware of (relation._query?._middlewares ?? [])) {
291
+ if (!seen.has(middleware)) {
292
+ seen.add(middleware);
293
+ middlewares.push(middleware);
294
+ }
295
+ }
296
+ }
297
+ return Promise.all(middlewares.map((x) => {
263
298
  return x.afterHydration(relData);
264
299
  }));
265
300
  }
@@ -268,7 +303,12 @@ exports.BelongsToPopulateDataMiddleware = BelongsToPopulateDataMiddleware;
268
303
  class BelongsToRelationResultTransformMiddleware {
269
304
  afterQuery(data) {
270
305
  return data.map((d) => {
271
- const transformedData = Object.assign(d);
306
+ // A real copy. `Object.assign(d)` with one argument returns `d` itself, so this used
307
+ // to nest keys into and delete keys from the caller's own row object. The pipeline
308
+ // writes whatever this returns back into the result array
309
+ // ( builders.ts, `Object.assign(transformedResult, m.afterQuery(...))` ), so returning
310
+ // fresh objects is transparent to everything downstream.
311
+ const transformedData = { ...d };
272
312
  for (const key in transformedData) {
273
313
  if (key.startsWith('$')) {
274
314
  this.setDeep(transformedData, this.keyTransform(key), d[key]);
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}