@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
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.forwardRef = exports.MIGRATION_DESCRIPTION_SYMBOL = exports.MODEL_DESCTRIPTION_SYMBOL = void 0;
4
4
  exports._prepareColumnDesc = _prepareColumnDesc;
5
+ exports._relationDefaultKey = _relationDefaultKey;
5
6
  exports.extractDecoratorPropertyDescriptor = extractDecoratorPropertyDescriptor;
6
7
  exports.extractDecoratorDescriptor = extractDecoratorDescriptor;
7
8
  exports.Migration = Migration;
@@ -64,37 +65,59 @@ function _prepareColumnDesc(initialize) {
64
65
  Virtual: false
65
66
  }, initialize);
66
67
  }
68
+ /**
69
+ * Resolves the single column a relation joins on. A relation's PrimaryKey / ForeignKey each
70
+ * name exactly one column ( the JOIN compiler emits a one-column ON predicate ), so a composite
71
+ * primary key has no defensible default and must be named explicitly by the developer.
72
+ */
73
+ function _relationDefaultKey(descriptor, relationName, optionName) {
74
+ const keys = descriptor.PrimaryKey ?? [];
75
+ if (keys.length > 1) {
76
+ throw new exceptions_1.InvalidOperation(`relation ${relationName} cannot default its join column: model ${descriptor.Name} has a composite primary key (${keys.join(', ')}). Pass ${optionName} explicitly.`);
77
+ }
78
+ return keys[0];
79
+ }
67
80
  function _getMetadataFrom(target) {
68
- let metadata = Reflect.getMetadata(symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, target) ?? {};
69
- /**
70
- * NOTE:
71
- * We hold metadata information as poperty of object stored by normal metadata.
72
- * This way we can avoid overwritting metadata properties by inherited classes.
73
- *
74
- * Eg. given class hierarchy:
75
- *
76
- * @Decorator({ a: 1})
77
- * class A {}
78
- *
79
- * @Decorator({ a: 2})
80
- * class B extends A {}
81
- *
82
- * @Decorator({ a: 3})
83
- * class C extends A {}
84
- *
85
- * Normally metadata is created for class A due import order. Reflect.metadata() searches in prototype chain, so
86
- * when class B gets decorator executed it will find already defined from class A. Then class C decorator will overwrite
87
- * decorator for class A ( B decorator is lost ).
88
- *
89
- * This is becouse decorator is saerched in protype chain of object.
90
- *
91
- * When we need metadata value, we collapse this object with proper inheritance object
92
- */
93
- if (!metadata.hasOwnProperty(target.name)) {
94
- metadata[target.name] = (0, descriptor_js_1.extractModelDescriptorInherited)(target);
81
+ // Sampled BEFORE getInheritedDescriptor, which stores own metadata as a side
82
+ // effect - so this is only true on the very first decorator to touch `target`.
83
+ const isFirstDecorator = !Reflect.getOwnMetadata(symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, target);
84
+ // Own metadata per class - see @spinajs/di getInheritedDescriptor. Replaces
85
+ // the previous name-keyed container, which collapsed two classes sharing a
86
+ // name into a single slot.
87
+ const descriptor = (0, di_1.getInheritedDescriptor)(target, symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, descriptor_js_1.createDefaultModelDescriptor);
88
+ // Name is this class's own, never inherited from the base
89
+ descriptor.Name = target.name;
90
+ if (isFirstDecorator) {
91
+ detachInheritedModelMembers(descriptor);
95
92
  }
96
- Reflect.defineMetadata(symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, metadata, target);
97
- return metadata[target.name];
93
+ return descriptor;
94
+ }
95
+ /**
96
+ * The collapse merger ( @spinajs/di ) rebuilds Columns / Relations and the
97
+ * option objects one level deep, but their ELEMENTS stay shared by reference
98
+ * with the parent model. Decorators such as @Ignore / @Uuid ( `columnDesc.Ignore = true` ),
99
+ * @Recursive ( `relation.Recursive = true` ) and @CreatedAt / @SoftDelete /
100
+ * @DiscriminationMap ( `model.<option>.<field> = ...` ) mutate a found element
101
+ * in place - on an INHERITED member that would write straight through to the
102
+ * base model's descriptor. Give this class its own shallow copies of exactly
103
+ * the structures that get mutated in place. ( same hazard @spinajs/http closes
104
+ * with detachInheritedRoutes; Converters / JunctionModelProperties are only
105
+ * ever set/pushed with fresh values, so they need no copy. )
106
+ */
107
+ function detachInheritedModelMembers(descriptor) {
108
+ descriptor.Columns = descriptor.Columns.map((c) => ({ ...c }));
109
+ // NOT `{ ...relation }`. A relation descriptor may carry a lazily-defined `PrimaryKey`
110
+ // accessor ( @BelongsTo / @HasManyToMany with a string target model, which cannot be
111
+ // resolved until the Orm is up ). Spreading INVOKES that getter — here, at decoration
112
+ // time, when DI.get(Orm) is still undefined — and then freezes whatever it returned into
113
+ // a plain value, defeating the laziness even when it does not throw. Copying property
114
+ // descriptors detaches the mutable data properties ( Recursive, etc. ) while leaving
115
+ // accessors as accessors.
116
+ descriptor.Relations = new Map([...descriptor.Relations].map(([name, relation]) => [name, Object.create(Object.getPrototypeOf(relation), Object.getOwnPropertyDescriptors(relation))]));
117
+ descriptor.Timestamps = { ...descriptor.Timestamps };
118
+ descriptor.SoftDelete = { ...descriptor.SoftDelete };
119
+ descriptor.Archived = { ...descriptor.Archived };
120
+ descriptor.DiscriminationMap = { ...descriptor.DiscriminationMap };
98
121
  }
99
122
  function extractDecoratorPropertyDescriptor(callback) {
100
123
  return (target, propertyKey, indexOrDescriptor) => {
@@ -225,11 +248,20 @@ function Archived() {
225
248
  });
226
249
  }
227
250
  /**
228
- * Makrs field as primary key
251
+ * Marks a field as part of the primary key. Applying it to more than one property of the same
252
+ * model declares a composite key; the columns are ordered by decorator evaluation order.
253
+ *
254
+ * NOTE: @Primary() is additive across an inheritance chain. A subclass cannot *replace* a base
255
+ * class's primary key, only extend it. Declare @Primary() on every key column of the concrete model.
256
+ *
257
+ * @param options.generated - key generation strategy, defaults to `auto` ( database identity ).
229
258
  */
230
- function Primary() {
259
+ function Primary(options) {
231
260
  return extractDecoratorPropertyDescriptor((model, _target, propertyKey) => {
232
- model.PrimaryKey = propertyKey;
261
+ if (!model.PrimaryKey.includes(propertyKey)) {
262
+ model.PrimaryKey.push(propertyKey);
263
+ }
264
+ model.PrimaryKeyGeneration.set(propertyKey, options?.generated ?? 'auto');
233
265
  });
234
266
  }
235
267
  /**
@@ -314,17 +346,36 @@ exports.forwardRef = forwardRef;
314
346
  */
315
347
  function BelongsTo(targetModel, foreignKey, primaryKey) {
316
348
  return extractDecoratorPropertyDescriptor((model, target, propertyKey) => {
317
- const targetModelDesc = (0, descriptor_js_1.extractModelDescriptor)(target);
318
- model.Relations.set(propertyKey, {
349
+ const descriptor = {
319
350
  Name: propertyKey,
320
351
  Type: interfaces_js_1.RelationType.One,
321
352
  SourceModel: target,
322
353
  TargetModelType: targetModel,
323
354
  TargetModel: undefined,
324
355
  ForeignKey: foreignKey ?? `${propertyKey.toLowerCase()}_id`,
325
- PrimaryKey: primaryKey ?? targetModelDesc?.PrimaryKey ?? model.PrimaryKey,
356
+ // default PK must come from the TARGET model, not the source ( fixed below )
357
+ PrimaryKey: primaryKey ?? _relationDefaultKey(model, propertyKey, 'primaryKey'),
326
358
  Recursive: false,
327
- });
359
+ };
360
+ if (!primaryKey) {
361
+ if (typeof targetModel === 'string') {
362
+ // target resolved by name at runtime - read its PK lazily ( same pattern as HasManyToMany )
363
+ const getModel = function () {
364
+ return (0, descriptor_js_1.extractModelDescriptor)(di_1.DI.get(orm_js_1.Orm).Models.find((x) => x.name === targetModel).type);
365
+ };
366
+ Object.defineProperty(descriptor, 'PrimaryKey', {
367
+ get: function () {
368
+ const target = getModel();
369
+ return target ? _relationDefaultKey(target, propertyKey, 'primaryKey') : _relationDefaultKey(model, propertyKey, 'primaryKey');
370
+ },
371
+ });
372
+ }
373
+ else {
374
+ const targetModelDesc = (0, descriptor_js_1.extractModelDescriptor)(targetModel);
375
+ descriptor.PrimaryKey = targetModelDesc ? _relationDefaultKey(targetModelDesc, propertyKey, 'primaryKey') : _relationDefaultKey(model, propertyKey, 'primaryKey');
376
+ }
377
+ }
378
+ model.Relations.set(propertyKey, descriptor);
328
379
  });
329
380
  }
330
381
  function Virtual(virtualRelation) {
@@ -385,7 +436,7 @@ function ForwardBelongsTo(forwardRef, foreignKey, primaryKey) {
385
436
  TargetModelType: forwardRef.forwardRef,
386
437
  TargetModel: undefined,
387
438
  ForeignKey: foreignKey ?? `${propertyKey.toLowerCase()}_id`,
388
- PrimaryKey: primaryKey ?? model.PrimaryKey,
439
+ PrimaryKey: primaryKey ?? _relationDefaultKey(model, propertyKey, 'primaryKey'),
389
440
  Recursive: false,
390
441
  });
391
442
  });
@@ -408,8 +459,9 @@ function HasMany(targetModel, options) {
408
459
  TargetModelType: targetModel,
409
460
  TargetModel: undefined,
410
461
  ForeignKey: options ? options.foreignKey ?? `${model.Name.toLowerCase()}_id` : `${model.Name.toLowerCase()}_id`,
411
- PrimaryKey: options ? options.primaryKey ?? model.PrimaryKey : model.PrimaryKey,
462
+ PrimaryKey: options?.primaryKey ?? _relationDefaultKey(model, propertyKey, 'options.primaryKey'),
412
463
  Recursive: false,
464
+ Orphan: options?.orphan,
413
465
  Factory: options?.factory ? options.factory : undefined,
414
466
  RelationClass: options?.type ? options.type : () => di_1.DI.resolve('__orm_relation_has_many_factory__', [type]),
415
467
  });
@@ -423,8 +475,8 @@ function Historical(targetModel) {
423
475
  SourceModel: target,
424
476
  TargetModelType: targetModel,
425
477
  TargetModel: undefined,
426
- ForeignKey: model.PrimaryKey,
427
- PrimaryKey: model.PrimaryKey,
478
+ ForeignKey: _relationDefaultKey(model, propertyKey, 'primaryKey'),
479
+ PrimaryKey: _relationDefaultKey(model, propertyKey, 'primaryKey'),
428
480
  Recursive: false,
429
481
  });
430
482
  });
@@ -440,13 +492,14 @@ function HasManyToMany(junctionModel, targetModel, options) {
440
492
  const descriptor = {
441
493
  Name: propertyKey,
442
494
  Recursive: false,
495
+ Orphan: options?.orphan,
443
496
  Type: interfaces_js_1.RelationType.ManyToMany,
444
497
  SourceModel: target,
445
498
  TargetModelType: targetModel,
446
499
  TargetModel: undefined,
447
500
  ForeignKey: '',
448
501
  // ForeignKey: options?.targetModelPKey ?? targetModelDescriptor.PrimaryKey,
449
- PrimaryKey: options?.sourceModelPKey ?? model.PrimaryKey,
502
+ PrimaryKey: options?.sourceModelPKey ?? _relationDefaultKey(model, propertyKey, 'options.sourceModelPKey'),
450
503
  JunctionModel: junctionModel,
451
504
  // JunctionModelTargetModelFKey_Name: options?.junctionModelTargetPk ?? `${targetModelDescriptor.Name.toLowerCase()}_id`,
452
505
  JunctionModelTargetModelFKey_Name: '',
@@ -476,7 +529,7 @@ function HasManyToMany(junctionModel, targetModel, options) {
476
529
  }
477
530
  else {
478
531
  const targetModelDescriptor = (0, descriptor_js_1.extractModelDescriptor)(targetModel);
479
- descriptor.ForeignKey = options?.targetModelPKey ?? targetModelDescriptor.PrimaryKey;
532
+ descriptor.ForeignKey = options?.targetModelPKey ?? _relationDefaultKey(targetModelDescriptor, propertyKey, 'options.targetModelPKey');
480
533
  descriptor.JunctionModelTargetModelFKey_Name = options?.junctionModelTargetPk ?? `${targetModelDescriptor.Name.toLowerCase()}_id`;
481
534
  }
482
535
  let type = Reflect.getMetadata('design:type', target.prototype, propertyKey);
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ class StandardModelWithRelationsDehydrator extends StandardModelDehydrator {
44
44
  continue;
45
45
  }
46
46
  if (val.Type === interfaces_js_1.RelationType.One) {
47
- if (model[val.Name].Value) {
47
+ if (model[val.Name]?.Value) {
48
48
  obj[val.Name] = model[val.Name].Value.dehydrateWithRelations({
49
49
  ...options,
50
50
  omit: []
@@ -1 +1 @@
1
- {"version":3,"file":"dehydrators.js","sourceRoot":"","sources":["../../src/dehydrators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dehydrators.js","sourceRoot":"","sources":["../../src/dehydrators.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { IModelDescriptor } from "./interfaces.js";
2
+ export declare function createDefaultModelDescriptor(): IModelDescriptor;
2
3
  export declare function extractModelDescriptorInherited(targetOrForward: any): IModelDescriptor | null;
3
4
  export declare function extractModelDescriptor(targetOrForward: any): IModelDescriptor | null;
4
5
  //# sourceMappingURL=descriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA2CnD,wBAAgB,+BAA+B,CAAC,eAAe,EAAE,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAuC7F;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,GAAG,GAAG,gBAAgB,GAAG,IAAI,CASpF"}
1
+ {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,wBAAgB,4BAA4B,IAAI,gBAAgB,CA4B/D;AAED,wBAAgB,+BAA+B,CAAC,eAAe,EAAE,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAgB7F;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAapF"}
@@ -1,28 +1,18 @@
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 });
3
+ exports.createDefaultModelDescriptor = createDefaultModelDescriptor;
6
4
  exports.extractModelDescriptorInherited = extractModelDescriptorInherited;
7
5
  exports.extractModelDescriptor = extractModelDescriptor;
8
6
  const di_1 = require("@spinajs/di");
9
7
  const symbols_js_1 = require("./symbols.js");
10
- const lodash_1 = __importDefault(require("lodash"));
11
- function getConstructorChain(obj) {
12
- var cs = [obj.name], pt = obj;
13
- do {
14
- if ((pt = Object.getPrototypeOf(pt)))
15
- cs.push(pt.name || null);
16
- } while (pt != null);
17
- return cs.filter((x) => x !== 'Function' && x !== 'Object' && x !== null);
18
- }
19
8
  function createDefaultModelDescriptor() {
20
9
  return {
21
10
  Driver: null,
22
11
  Converters: new Map(),
23
12
  Columns: [],
24
13
  Connection: null,
25
- PrimaryKey: '',
14
+ PrimaryKey: [],
15
+ PrimaryKeyGeneration: new Map(),
26
16
  SoftDelete: {
27
17
  DeletedAt: '',
28
18
  },
@@ -49,32 +39,14 @@ function extractModelDescriptorInherited(targetOrForward) {
49
39
  if (!target) {
50
40
  return null;
51
41
  }
52
- const metadata = Reflect.getMetadata(symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, target);
53
- // we want collapse metadata vals in reverse order ( base class first )
54
- const inheritanceChain = getConstructorChain(target).reverse();
55
- const merger = (a, b) => {
56
- if (lodash_1.default.isArray(a) || lodash_1.default.isArray(b)) {
57
- return [...(a ?? []), ...(b ?? [])];
58
- }
59
- if (!(lodash_1.default.isNil(a) || lodash_1.default.isEmpty(a)) && (lodash_1.default.isNil(b) || lodash_1.default.isEmpty(b))) {
60
- return a;
61
- }
62
- if (lodash_1.default.isMap(a)) {
63
- return new Map([...a, ...b]);
64
- }
65
- return b;
66
- };
42
+ // Only the NEAREST own descriptor is collapsed onto a fresh default, and every stored
43
+ // descriptor is already collapsed, so array fields ( Columns, PrimaryKey ) gain no duplicate
44
+ // per inheritance level - the de-duplication the name-keyed reader needed is now structural.
67
45
  return {
68
- ...createDefaultModelDescriptor(),
69
- ...(metadata ? inheritanceChain.reduce((prev, c) => {
70
- return {
71
- ...lodash_1.default.assignWith(prev, metadata[c], merger),
72
- Converters: new Map([...(prev.Converters ?? []), ...(metadata[c] ? metadata[c].Converters : [])]),
73
- };
74
- }, {}) : {}),
75
- ...{
76
- Name: target.name
77
- }
46
+ ...(0, di_1.collapseInheritedDescriptor)(target, symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, createDefaultModelDescriptor),
47
+ // Name is always this class's own, never inherited - the merger would
48
+ // otherwise keep the parent's non-empty name over the child's default ''
49
+ Name: target.name,
78
50
  };
79
51
  }
80
52
  function extractModelDescriptor(targetOrForward) {
@@ -82,7 +54,11 @@ function extractModelDescriptor(targetOrForward) {
82
54
  if (!target) {
83
55
  return null;
84
56
  }
85
- const metadata = Reflect.getMetadata(symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, target);
86
- return metadata[target.name];
57
+ // master's own-metadata-per-class read. MUST stay paired with the write side in
58
+ // decorators.ts `_getMetadataFrom`, which replaced the old name-keyed container —
59
+ // that container collapsed two classes sharing a name into one slot (A9 in the
60
+ // ORM analysis). Reading name-keyed here against an own-metadata write returns null
61
+ // for every model.
62
+ return Reflect.getOwnMetadata(symbols_js_1.MODEL_DESCTRIPTION_SYMBOL, target) ?? null;
87
63
  }
88
64
  //# sourceMappingURL=descriptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../src/descriptor.ts"],"names":[],"mappings":";;AAIA,oEA4BC;AAED,0EAgBC;AAED,wDAaC;AAjED,oCAAyE;AAEzE,6CAAyD;AAEzD,SAAgB,4BAA4B;IAC1C,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,UAAU,EAAE;YACV,SAAS,EAAE,EAAE;SACd;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,EAAE;SACf;QACD,SAAS,EAAE,EAAE;QACb,UAAU,EAAE;YACV,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;SACd;QACD,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,uBAAuB,EAAE,EAAE;QAC3B,iBAAiB,EAAE;YACjB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI;SACb;QACD,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED,SAAgB,+BAA+B,CAAC,eAAoB;IAClE,MAAM,MAAM,GAAG,CAAC,IAAA,kBAAa,EAAC,eAAe,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;IAExG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sFAAsF;IACtF,6FAA6F;IAC7F,6FAA6F;IAC7F,OAAO;QACL,GAAG,IAAA,gCAA2B,EAAC,MAAM,EAAE,sCAAyB,EAAE,4BAA4B,CAAC;QAC/F,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,eAAoB;IACzD,MAAM,MAAM,GAAG,CAAC,IAAA,kBAAa,EAAC,eAAe,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;IAExG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,kFAAkF;IAClF,+EAA+E;IAC/E,oFAAoF;IACpF,mBAAmB;IACnB,OAAQ,OAAO,CAAC,cAAc,CAAC,sCAAyB,EAAE,MAAM,CAAsB,IAAI,IAAI,CAAC;AACjG,CAAC"}
@@ -1,10 +1,16 @@
1
1
  import { Log } from '@spinajs/log-common';
2
- import { IColumnDescriptor, IDriverOptions, ISupportedFeature, ITransaction } from './interfaces.js';
2
+ import { IColumnDescriptor, IDriverOptions, IPoolOptions, ISupportedFeature, IsolationLevel, ITransactionContext, ITransactionOptions } from './interfaces.js';
3
3
  import { SyncService, IContainer, Container } from '@spinajs/di';
4
- import { UpdateQueryBuilder, SelectQueryBuilder, IndexQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, SchemaQueryBuilder, QueryBuilder, TruncateTableQueryBuilder, Builder } from './builders.js';
4
+ import { UpdateQueryBuilder, SelectQueryBuilder, IndexQueryBuilder, DeleteQueryBuilder, InsertQueryBuilder, SchemaQueryBuilder, TruncateTableQueryBuilder, Builder } from './builders.js';
5
+ import { AsyncLocalStorage } from 'async_hooks';
6
+ import { ConnectionState, IConnectionResilienceOptions } from './resilience.js';
7
+ import { IPoolMetrics } from './metrics.js';
5
8
  import './hydrators.js';
6
9
  import './dehydrators.js';
7
- export type TransactionCallback = (driver: OrmDriver) => Promise<any>;
10
+ /**
11
+ * Body of a transaction. Whatever it resolves with becomes the result of `transaction()`.
12
+ */
13
+ export type TransactionCallback<R = any> = (driver: OrmDriver) => Promise<R>;
8
14
  export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOptions> extends SyncService {
9
15
  /**
10
16
  * Connection options
@@ -13,6 +19,25 @@ export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOption
13
19
  Container: IContainer;
14
20
  protected RootContainer: Container;
15
21
  protected Log: Log;
22
+ /**
23
+ * Ambient transaction context.
24
+ *
25
+ * Statements executed inside a `transaction()` callback must run on that transaction's
26
+ * connection. This lives on the abstract driver — rather than being a MySQL implementation
27
+ * detail, as it used to be — so the guarantee is part of the contract and every driver
28
+ * inherits it.
29
+ */
30
+ protected TransactionStorage: AsyncLocalStorage<ITransactionContext>;
31
+ /**
32
+ * Isolation levels this driver honours. Empty by default: a driver that declares nothing
33
+ * rejects every explicitly requested isolation level rather than quietly ignoring it.
34
+ */
35
+ readonly SupportedIsolationLevels: IsolationLevel[];
36
+ /**
37
+ * The transaction currently in scope on this async execution path, or `undefined` outside
38
+ * a transaction.
39
+ */
40
+ get CurrentTransaction(): ITransactionContext | undefined;
16
41
  constructor(options: T);
17
42
  /**
18
43
  * Executes query on database
@@ -42,6 +67,68 @@ export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOption
42
67
  abstract supportedFeatures(): ISupportedFeature;
43
68
  abstract tableInfo(name: string, schema?: string): Promise<IColumnDescriptor[]>;
44
69
  resolve(): void;
70
+ /**
71
+ * Effective pool settings: `Pool.*` when given, then the deprecated `PoolLimit` for `Max`,
72
+ * then the defaults. Resolved in one place so every driver agrees on what "unset" means.
73
+ */
74
+ protected resolvedPoolOptions(): Required<IPoolOptions>;
75
+ private _state;
76
+ /**
77
+ * Current connection lifecycle state.
78
+ */
79
+ get State(): ConnectionState;
80
+ /**
81
+ * Records a state transition and logs it. Repeat transitions to the same state are ignored.
82
+ */
83
+ protected setState(state: ConnectionState): void;
84
+ /**
85
+ * Effective resilience settings with defaults applied.
86
+ */
87
+ protected resolvedResilienceOptions(): Required<IConnectionResilienceOptions>;
88
+ /**
89
+ * True when the error means the transport died rather than the statement being wrong.
90
+ * Drivers override to add dialect-specific codes.
91
+ */
92
+ protected isRetryableError(err: unknown): boolean;
93
+ /**
94
+ * Runs `operation`, and on a retryable transport failure reconnects and retries with bounded
95
+ * exponential backoff. Query errors propagate on the first attempt untouched.
96
+ */
97
+ protected withReconnect<R>(operation: () => Promise<R>): Promise<R>;
98
+ private _healthCheckTimer;
99
+ /**
100
+ * Starts the periodic health probe. Replaces the single startup `ping()` — a connection that
101
+ * was healthy at boot tells you nothing about a pool holding sockets to a database that has
102
+ * since restarted. No-op when `Resilience.HealthCheckInterval` is 0. Idempotent.
103
+ */
104
+ startHealthCheck(): void;
105
+ /**
106
+ * Stops the periodic health probe. Idempotent.
107
+ */
108
+ stopHealthCheck(): void;
109
+ /**
110
+ * One health probe. A failed probe degrades the driver and attempts a single reconnect; it
111
+ * never throws, because it runs on a timer with no caller to receive the error.
112
+ */
113
+ protected runHealthCheck(): Promise<void>;
114
+ /**
115
+ * Point-in-time pool state. The base implementation reports an empty pool; drivers that own a
116
+ * real pool override it. Must never throw — it runs on the health-check timer.
117
+ */
118
+ poolMetrics(): IPoolMetrics;
119
+ /**
120
+ * Pushes the current pool state and connection state to the shared `Metrics` registry from
121
+ * `@spinajs/telemetry-common`. Nothing has to be wired for this to work — `Metrics` owns a
122
+ * private registry and `@spinajs/telemetry`'s `/metrics` endpoint renders that same singleton.
123
+ */
124
+ publishPoolMetrics(): void;
125
+ /**
126
+ * Records one pool-acquire wait, in SECONDS ( prometheus convention ). Drivers that own a real
127
+ * pool call this from the acquire callback; keeping the prom-client objects behind this method
128
+ * is what stops every driver from needing to know about `@spinajs/telemetry-common`. Never
129
+ * throws, for the same reason `publishPoolMetrics` never throws.
130
+ */
131
+ observeAcquireSeconds(seconds: number): void;
45
132
  /**
46
133
  * Creates select query builder associated with this connection.
47
134
  * This can be used to execute raw queries to db without orm model layer
@@ -77,11 +164,53 @@ export declare abstract class OrmDriver<T extends IDriverOptions = IDriverOption
77
164
  */
78
165
  index(): IndexQueryBuilder;
79
166
  /**
80
- * Executes all queries in transaction
167
+ * Opens a transaction and returns its per-transaction context. Drivers that pool connections
168
+ * acquire one here and put it on the context; drivers with a single shared handle return a
169
+ * context without a connection.
170
+ */
171
+ protected abstract _begin(options?: ITransactionOptions): Promise<ITransactionContext>;
172
+ /**
173
+ * Commits the transaction described by `ctx`.
174
+ */
175
+ protected abstract _commit(ctx: ITransactionContext): Promise<void>;
176
+ /**
177
+ * Rolls the transaction described by `ctx` back.
178
+ */
179
+ protected abstract _rollback(ctx: ITransactionContext): Promise<void>;
180
+ /**
181
+ * Takes a named savepoint inside the transaction described by `ctx`.
182
+ */
183
+ protected abstract _savepoint(ctx: ITransactionContext, name: string): Promise<void>;
184
+ /**
185
+ * Releases a named savepoint — the nested block succeeded and its changes fold into the
186
+ * enclosing transaction.
187
+ */
188
+ protected abstract _releaseSavepoint(ctx: ITransactionContext, name: string): Promise<void>;
189
+ /**
190
+ * Discards everything done since a named savepoint, leaving the enclosing transaction intact.
191
+ */
192
+ protected abstract _rollbackToSavepoint(ctx: ITransactionContext, name: string): Promise<void>;
193
+ /**
194
+ * Releases whatever `_begin` acquired. Called exactly once per transaction, on every exit
195
+ * path. A no-op for drivers that acquire nothing.
196
+ */
197
+ protected abstract _dispose(ctx: ITransactionContext): Promise<void>;
198
+ /**
199
+ * Runs `cb` inside a transaction and owns its whole lifecycle: commits when the callback
200
+ * resolves, rolls back when it throws, and releases the connection exactly once either way.
201
+ * Resolves with whatever the callback returned.
202
+ *
203
+ * Statements issued inside the callback run on this transaction's connection automatically —
204
+ * the context is carried through `AsyncLocalStorage`, so nothing has to be threaded through
205
+ * by hand.
206
+ *
207
+ * Calling it again while a transaction is already in scope on this async path does **not**
208
+ * open a second, independent transaction: it takes a savepoint, so a failing nested block
209
+ * rolls back only its own work.
81
210
  *
82
- * @param queryOrCallback - one or more queries to execute in transaction scope. If parameter is function
83
- * its executed in transaction scope, thus all db operation in callback function are in transaction
211
+ * @param cb - the transaction body
212
+ * @param options - optional isolation level, validated against {@link SupportedIsolationLevels}
84
213
  */
85
- abstract transaction(queryOrCallback?: QueryBuilder[] | TransactionCallback): Promise<ITransaction>;
214
+ transaction<R>(cb: TransactionCallback<R>, options?: ITransactionOptions): Promise<R>;
86
215
  }
87
216
  //# sourceMappingURL=driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAA6C,MAAM,iBAAiB,CAAC;AAChJ,OAAO,EAAE,WAAW,EAAE,UAAU,EAAM,SAAS,EAAc,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExM,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEtE,8BAAsB,SAAS,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,WAAW;IAC5F;;OAEG;IACI,OAAO,EAAE,CAAC,CAKV;IAEA,SAAS,EAAE,UAAU,CAAC;IAG7B,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;gBAEP,OAAO,EAAE,CAAC;IAKtB;;;;;;OAMG;aAEa,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAEpE;;;OAGG;aACa,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;;OAGG;aACa,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAE7C;;OAEG;aACa,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAEhD;;OAEG;aACa,iBAAiB,IAAI,iBAAiB;aAEtC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE/E,OAAO;IAcd;;;OAGG;IACI,MAAM,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC;IAIzC;;;OAGG;IACI,GAAG,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC;IAItC;;;OAGG;IACI,MAAM,IAAI,kBAAkB;IAInC;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,yBAAyB;IAMzD;;;OAGG;IACI,MAAM,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC;IAIzC;;;OAGG;IACI,MAAM,IAAI,kBAAkB;IAInC;;;OAGG;IACI,KAAK,IAAI,iBAAiB;IAIjC;;;;;OAKG;aACa,WAAW,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,GAAG,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;CAC3G"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/driver.ts"],"names":[],"mappings":"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"}