@decaf-ts/transactional-decorators 0.1.5 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/dist/transactional-decorators.cjs +1 -1
  3. package/dist/transactional-decorators.cjs.map +1 -1
  4. package/dist/transactional-decorators.js +1 -1
  5. package/dist/transactional-decorators.js.map +1 -1
  6. package/lib/Transaction.cjs +254 -56
  7. package/lib/Transaction.d.ts +44 -18
  8. package/lib/Transaction.js.map +1 -1
  9. package/lib/constants.cjs +0 -1
  10. package/lib/constants.js.map +1 -1
  11. package/lib/decorators.cjs +60 -146
  12. package/lib/decorators.d.ts +1 -11
  13. package/lib/decorators.js.map +1 -1
  14. package/lib/errors.cjs +11 -0
  15. package/lib/errors.d.ts +4 -0
  16. package/lib/errors.js.map +1 -0
  17. package/lib/esm/Transaction.d.ts +44 -18
  18. package/lib/esm/Transaction.js +254 -56
  19. package/lib/esm/Transaction.js.map +1 -1
  20. package/lib/esm/constants.js +0 -1
  21. package/lib/esm/constants.js.map +1 -1
  22. package/lib/esm/decorators.d.ts +1 -11
  23. package/lib/esm/decorators.js +60 -145
  24. package/lib/esm/decorators.js.map +1 -1
  25. package/lib/esm/errors.d.ts +4 -0
  26. package/lib/esm/errors.js +7 -0
  27. package/lib/esm/errors.js.map +1 -0
  28. package/lib/esm/index.d.ts +4 -1
  29. package/lib/esm/index.js +6 -1
  30. package/lib/esm/index.js.map +1 -1
  31. package/lib/esm/interfaces/TransactionLock.d.ts +2 -2
  32. package/lib/esm/locks/{SyncronousLock.d.ts → SynchronousLock.d.ts} +10 -6
  33. package/lib/esm/locks/SynchronousLock.js +131 -0
  34. package/lib/esm/locks/SynchronousLock.js.map +1 -0
  35. package/lib/esm/locks/index.d.ts +1 -1
  36. package/lib/esm/locks/index.js +1 -1
  37. package/lib/esm/locks/index.js.map +1 -1
  38. package/lib/esm/overrides/Metadata.d.ts +8 -0
  39. package/lib/esm/overrides/Metadata.js +2 -0
  40. package/lib/esm/overrides/Metadata.js.map +1 -0
  41. package/lib/esm/overrides/index.d.ts +2 -0
  42. package/lib/esm/overrides/index.js +3 -0
  43. package/lib/esm/overrides/index.js.map +1 -0
  44. package/lib/esm/overrides/overrides.d.ts +1 -0
  45. package/lib/esm/overrides/overrides.js +12 -0
  46. package/lib/esm/overrides/overrides.js.map +1 -0
  47. package/lib/esm/types.d.ts +0 -10
  48. package/lib/esm/types.js +11 -0
  49. package/lib/esm/types.js.map +1 -1
  50. package/lib/index.cjs +7 -2
  51. package/lib/index.d.ts +4 -1
  52. package/lib/index.js.map +1 -1
  53. package/lib/interfaces/TransactionLock.d.ts +2 -2
  54. package/lib/locks/SynchronousLock.cjs +135 -0
  55. package/lib/locks/{SyncronousLock.d.ts → SynchronousLock.d.ts} +10 -6
  56. package/lib/locks/SynchronousLock.js.map +1 -0
  57. package/lib/locks/index.cjs +1 -1
  58. package/lib/locks/index.d.ts +1 -1
  59. package/lib/locks/index.js.map +1 -1
  60. package/lib/overrides/Metadata.cjs +4 -0
  61. package/lib/overrides/Metadata.d.ts +8 -0
  62. package/lib/overrides/Metadata.js.map +1 -0
  63. package/lib/overrides/index.cjs +19 -0
  64. package/lib/overrides/index.d.ts +2 -0
  65. package/lib/overrides/index.js.map +1 -0
  66. package/lib/overrides/overrides.cjs +14 -0
  67. package/lib/overrides/overrides.d.ts +1 -0
  68. package/lib/overrides/overrides.js.map +1 -0
  69. package/lib/types.cjs +11 -0
  70. package/lib/types.d.ts +0 -10
  71. package/lib/types.js.map +1 -1
  72. package/package.json +4 -6
  73. package/lib/esm/locks/SyncronousLock.js +0 -128
  74. package/lib/esm/locks/SyncronousLock.js.map +0 -1
  75. package/lib/esm/utils.d.ts +0 -1
  76. package/lib/esm/utils.js +0 -14
  77. package/lib/esm/utils.js.map +0 -1
  78. package/lib/locks/SyncronousLock.cjs +0 -132
  79. package/lib/locks/SyncronousLock.js.map +0 -1
  80. package/lib/utils.cjs +0 -17
  81. package/lib/utils.d.ts +0 -1
  82. package/lib/utils.js.map +0 -1
@@ -1,8 +1,10 @@
1
- import { Reflection } from "@decaf-ts/reflection";
2
- import { SyncronousLock } from "./locks/SyncronousLock.js";
3
- import { DBKeys, getAllPropertyDecoratorsRecursive, } from "@decaf-ts/db-decorators";
4
- import { getObjectName } from "./utils.js";
5
- import { TransactionalKeys } from "./constants.js";
1
+ import { SynchronousLock } from "./locks/SynchronousLock.js";
2
+ import { DBKeys } from "@decaf-ts/db-decorators";
3
+ import "./overrides/index.js";
4
+ import { Metadata } from "@decaf-ts/decoration";
5
+ import { LoggedClass, getObjectName, Logging } from "@decaf-ts/logging";
6
+ import { TimeoutError } from "./errors.js";
7
+ const objectNameCache = new WeakMap();
6
8
  /**
7
9
  * @description Core transaction management class
8
10
  * @summary Manages transaction lifecycle, including creation, execution, and cleanup. Provides mechanisms for binding transactions to objects and methods, ensuring proper transaction context propagation.
@@ -47,36 +49,109 @@ import { TransactionalKeys } from "./constants.js";
47
49
  * T->>L: release(error?)
48
50
  * L-->>C: Return result/error
49
51
  */
50
- export class Transaction {
52
+ export class Transaction extends LoggedClass {
53
+ static { this.debug = false; }
54
+ static { this.globalTimeout = -1; }
55
+ static { this.metadataCache = new WeakMap(); }
56
+ static { this.log = new Proxy(Logging.for(Transaction), {
57
+ get(target, prop, receiver) {
58
+ if (prop !== "log" || Transaction.debug)
59
+ return Reflect.get(target, prop, receiver);
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
+ return (...args) => {
62
+ // do nothing. ignore the log message the Transaction is not in debug mode
63
+ };
64
+ },
65
+ }); }
66
+ get log() {
67
+ if (!this["_log"]) {
68
+ this["_log"] = Transaction.log;
69
+ }
70
+ return this["_log"];
71
+ }
72
+ static { this.contexts = new WeakMap(); }
51
73
  constructor(source, method, action, metadata) {
74
+ super();
75
+ this.initialFireDispatched = false;
76
+ this.released = false;
52
77
  this.id = Date.now();
53
78
  this.action = action;
54
79
  this.method = method;
55
- this.log = [[this.id, source, method].join(" | ")];
80
+ this.logs = [[this.id, source, method].join(" | ")];
56
81
  this.source = source;
57
82
  this.metadata = metadata;
83
+ this.completion = new Promise((resolve, reject) => {
84
+ this.resolveCompletion = resolve;
85
+ this.rejectCompletion = reject;
86
+ });
58
87
  }
59
88
  /**
60
89
  * @description Queues a transaction for execution
61
90
  * @summary Pushes a transaction to the queue and waits for its resolution. Creates a new transaction with the provided issuer and callback method, then submits it to the transaction lock.
62
91
  * @param {any} issuer - Any class instance that will be used as 'this' when calling the callbackMethod
63
- * @param {Function} callbackMethod - Callback function containing the transaction logic, will be called with the issuer as 'this'
92
+ * @param {Function} method - function containing the transaction logic, will be called with the issuer as 'this'
64
93
  * @param {any[]} args - Arguments to pass to the method. Last one must be the callback function
65
94
  * @return {void}
66
95
  */
67
- static push(issuer, callbackMethod, ...args) {
68
- const callback = args.pop();
69
- if (!callback || typeof callback !== "function")
70
- throw new Error("Missing callback");
71
- const cb = (err, ...args) => {
72
- Transaction.getLock()
73
- .release(err)
74
- .then(() => callback(err, ...args));
75
- };
76
- const transaction = new Transaction(issuer.constructor.name, callbackMethod.name ? getObjectName(callbackMethod) : "Anonymous", () => {
77
- return callbackMethod.call(transaction.bindToTransaction(issuer), ...args, cb);
96
+ static async push(issuer, method, ...args) {
97
+ const log = this.log.for(this.push);
98
+ const issuerName = Transaction.describeTarget(issuer);
99
+ const methodName = Transaction.describeTarget(method);
100
+ const transaction = new Transaction(issuerName, methodName, async () => {
101
+ const l = log.for(transaction.id.toString());
102
+ try {
103
+ l.verbose(`Executing transaction method ${methodName}`);
104
+ l.debug(`With arguments: ${JSON.stringify(args)}`);
105
+ const result = await Promise.resolve(method.call(transaction.bindToTransaction(issuer), ...args));
106
+ l.verbose(`Transaction method ${methodName} executed successfully`);
107
+ l.debug(`Result: ${JSON.stringify(result)}`);
108
+ await transaction.release();
109
+ l.debug("lock released");
110
+ return result;
111
+ }
112
+ catch (e) {
113
+ await transaction.release(e);
114
+ throw e;
115
+ }
78
116
  });
79
- Transaction.getLock().submit(transaction);
117
+ log.debug(`Pushing transaction ${transaction.id} for method ${methodName} on issuer ${issuerName}`);
118
+ return Transaction.submit(transaction);
119
+ }
120
+ static async run(contextOrRunnable, runnableOrMetadata, maybeMetadata) {
121
+ const contextProvided = typeof contextOrRunnable !== "function";
122
+ const context = (contextProvided ? contextOrRunnable : undefined);
123
+ const runnable = (contextProvided ? runnableOrMetadata : contextOrRunnable);
124
+ if (typeof runnable !== "function") {
125
+ throw new Error("Transaction.run requires an async function");
126
+ }
127
+ const rawMetadata = contextProvided ? maybeMetadata : runnableOrMetadata;
128
+ const metadataValue = Array.isArray(rawMetadata) && rawMetadata.length
129
+ ? rawMetadata
130
+ : undefined;
131
+ const sourceName = context
132
+ ? Transaction.describeTarget(context)
133
+ : Transaction.describeTarget(runnable);
134
+ const methodName = Transaction.describeTarget(runnable);
135
+ // eslint-disable-next-line prefer-const
136
+ let transaction;
137
+ const action = async () => {
138
+ let caughtError;
139
+ try {
140
+ const boundContext = context
141
+ ? transaction.bindToTransaction(context)
142
+ : undefined;
143
+ return await runnable.call((boundContext ?? transaction));
144
+ }
145
+ catch (error) {
146
+ caughtError = error;
147
+ throw error;
148
+ }
149
+ finally {
150
+ await transaction.release(caughtError instanceof Error ? caughtError : undefined);
151
+ }
152
+ };
153
+ transaction = new Transaction(sourceName, methodName, action, metadataValue);
154
+ return Transaction.submit(transaction);
80
155
  }
81
156
  /**
82
157
  * @description Configures the transaction lock implementation
@@ -94,7 +169,7 @@ export class Transaction {
94
169
  */
95
170
  static getLock() {
96
171
  if (!this.lock)
97
- this.lock = new SyncronousLock();
172
+ this.lock = new SynchronousLock();
98
173
  return this.lock;
99
174
  }
100
175
  /**
@@ -104,7 +179,7 @@ export class Transaction {
104
179
  * @return {void}
105
180
  */
106
181
  static submit(transaction) {
107
- Transaction.getLock().submit(transaction);
182
+ return Transaction.getLock().submit(transaction);
108
183
  }
109
184
  /**
110
185
  * @description Releases the transaction lock
@@ -115,6 +190,18 @@ export class Transaction {
115
190
  static async release(err) {
116
191
  return Transaction.getLock().release(err);
117
192
  }
193
+ /**
194
+ * @description Releases the transaction instance once
195
+ * @summary Ensures the underlying lock is released at most a single time for the transaction
196
+ * @param {Error} [err] - Optional error to propagate to the lock implementation
197
+ * @return {Promise<void>} Resolves once the lock release call finishes or immediately when already released
198
+ */
199
+ async release(err) {
200
+ if (this.released)
201
+ return;
202
+ this.released = true;
203
+ await Transaction.release(err);
204
+ }
118
205
  /**
119
206
  * @description Retrieves transaction metadata
120
207
  * @summary Returns a copy of the metadata associated with this transaction, ensuring the original metadata remains unmodified
@@ -123,6 +210,26 @@ export class Transaction {
123
210
  getMetadata() {
124
211
  return this.metadata ? [...this.metadata] : undefined;
125
212
  }
213
+ static getTransactionalMetadata(target) {
214
+ let cached = this.metadataCache.get(target);
215
+ if (cached)
216
+ return cached;
217
+ const reservedProps = new Set([
218
+ "__transactionProxy",
219
+ "__transactionTarget",
220
+ typeof DBKeys.ORIGINAL === "string" ? DBKeys.ORIGINAL : "__originalObj",
221
+ ]);
222
+ const methods = Metadata.transactionals(target) ?? [];
223
+ const propertyKeys = (Metadata.properties(target) || []).filter((prop) => !reservedProps.has(prop));
224
+ const propertyDesignTypes = new Map();
225
+ propertyKeys.forEach((prop) => {
226
+ const type = Metadata.type(target, prop);
227
+ propertyDesignTypes.set(prop, !!type && Metadata.isTransactional(type));
228
+ });
229
+ cached = { methods, propertyKeys, propertyDesignTypes };
230
+ this.metadataCache.set(target, cached);
231
+ return cached;
232
+ }
126
233
  /**
127
234
  * @description Links a new transaction to the current one
128
235
  * @summary Binds a new transaction operation to the current transaction, transferring logs and binding methods to maintain transaction context
@@ -130,8 +237,10 @@ export class Transaction {
130
237
  * @return {void}
131
238
  */
132
239
  bindTransaction(nextTransaction) {
133
- // all(`Binding the {0} to {1}`, nextTransaction, this);
134
- this.log.push(...nextTransaction.log);
240
+ this.log
241
+ .for(this.bindTransaction)
242
+ .verbose(`Binding the ${nextTransaction.toString()} to ${this}`);
243
+ this.logs.push(...nextTransaction.logs);
135
244
  nextTransaction.bindTransaction = this.bindToTransaction.bind(this);
136
245
  nextTransaction.bindToTransaction = this.bindToTransaction.bind(this);
137
246
  this.action = nextTransaction.action;
@@ -143,36 +252,94 @@ export class Transaction {
143
252
  * @return {any} The bound object with transaction-aware method wrappers
144
253
  */
145
254
  bindToTransaction(obj) {
146
- const transactionalMethods = getAllPropertyDecoratorsRecursive(obj, undefined, TransactionalKeys.REFLECT);
147
- if (!transactionalMethods)
255
+ const log = this.log.for(this.bindToTransaction);
256
+ log.verbose(`Binding object ${getObjectName(obj)} to transaction ${this.id}`);
257
+ const metadata = Transaction.getTransactionalMetadata(obj.constructor);
258
+ const transactionalMethods = metadata.methods;
259
+ if (!transactionalMethods.length)
148
260
  return obj;
149
261
  // eslint-disable-next-line @typescript-eslint/no-this-alias
150
262
  const self = this;
151
- const boundObj = Reflection.getAllProperties(obj).reduce((accum, k) => {
152
- if (Object.keys(transactionalMethods).indexOf(k) !== -1 &&
153
- transactionalMethods[k].find((o) => o.key === TransactionalKeys.TRANSACTIONAL))
154
- accum[k] = (...args) => obj[k].call(obj.__originalObj || obj, self, ...args);
155
- else if (k === "clazz" || k === "constructor")
156
- accum[k] = obj[k];
157
- else if (typeof obj[k] === "function")
158
- accum[k] = obj[k].bind(obj.__originalObj || obj);
159
- else if (typeof obj[k] === "object" && obj[k].constructor) {
160
- const decs = Reflection.getClassDecorators(TransactionalKeys.REFLECT, obj[k]);
161
- if (decs.find((e) => e.key === TransactionalKeys.TRANSACTIONAL))
162
- accum[k] = self.bindToTransaction(obj[k]);
163
- else
164
- accum[k] = obj[k];
263
+ const reservedProps = new Set([
264
+ "__transactionProxy",
265
+ "__transactionTarget",
266
+ typeof DBKeys.ORIGINAL === "string" ? DBKeys.ORIGINAL : "__originalObj",
267
+ ]);
268
+ const props = new Set(metadata.propertyKeys);
269
+ Object.getOwnPropertyNames(obj).forEach((prop) => {
270
+ if (!reservedProps.has(prop))
271
+ props.add(prop);
272
+ });
273
+ const transactionProps = Array.from(props).filter((p) => {
274
+ if (metadata.propertyDesignTypes.get(p))
275
+ return true;
276
+ const value = obj[p];
277
+ if (value &&
278
+ (typeof value === "object" || typeof value === "function") &&
279
+ Metadata.isTransactional(value.constructor)) {
280
+ return true;
165
281
  }
166
- else
167
- accum[k] = obj[k];
168
- return accum;
169
- }, {});
170
- boundObj[DBKeys.ORIGINAL] = obj[DBKeys.ORIGINAL] || obj;
282
+ return false;
283
+ });
284
+ log.debug(`found transaction methods: ${transactionalMethods.join(", ")} and properties: ${transactionProps.join(", ")}`);
285
+ const boundObj = new Proxy(obj, {
286
+ get(target, prop, receiver) {
287
+ if (transactionalMethods.includes(prop))
288
+ return new Proxy(target[prop], {
289
+ apply(methodTarget, thisArg, argArray) {
290
+ return Reflect.apply(methodTarget, thisArg, [self, ...argArray]);
291
+ },
292
+ });
293
+ if (transactionProps.includes(prop))
294
+ return self.bindToTransaction(target[prop]);
295
+ return Reflect.get(target, prop, receiver);
296
+ },
297
+ });
298
+ boundObj[DBKeys.ORIGINAL] =
299
+ obj[DBKeys.ORIGINAL] || obj;
171
300
  boundObj.toString = () => getObjectName(boundObj[DBKeys.ORIGINAL]) +
172
301
  " proxy for transaction " +
173
302
  this.id;
303
+ boundObj.__transactionProxy = true;
304
+ boundObj.__transactionTarget =
305
+ obj.__transactionTarget || obj;
306
+ Transaction.contexts.set(boundObj, self);
174
307
  return boundObj;
175
308
  }
309
+ /**
310
+ * @description Applies the global timeout to the provided Promise, if configured
311
+ * @param {Promise<R>} execution - Transaction execution promise
312
+ * @return {Promise<R>} Promise that respects the configured global timeout
313
+ * @private
314
+ */
315
+ applyGlobalTimeout(execution) {
316
+ if (Transaction.globalTimeout <= 0)
317
+ return execution;
318
+ const timeoutMs = Transaction.globalTimeout;
319
+ const log = this.log.for(this.applyGlobalTimeout);
320
+ return new Promise((resolve, reject) => {
321
+ let settled = false;
322
+ const timer = setTimeout(() => {
323
+ if (settled)
324
+ return;
325
+ const error = new TimeoutError(`Transaction ${this.toString()} exceeded timeout of ${timeoutMs}ms`);
326
+ log.warn(error.message);
327
+ this.release(error).catch((releaseErr) => log.error(releaseErr));
328
+ reject(error);
329
+ }, timeoutMs);
330
+ execution
331
+ .then((value) => {
332
+ settled = true;
333
+ clearTimeout(timer);
334
+ resolve(value);
335
+ })
336
+ .catch((err) => {
337
+ settled = true;
338
+ clearTimeout(timer);
339
+ reject(err);
340
+ });
341
+ });
342
+ }
176
343
  /**
177
344
  * @description Executes the transaction action
178
345
  * @summary Fires the transaction by executing its associated action function, throwing an error if no action is defined
@@ -181,7 +348,26 @@ export class Transaction {
181
348
  fire() {
182
349
  if (!this.action)
183
350
  throw new Error(`Missing the method`);
184
- return this.action();
351
+ const executeAction = async () => {
352
+ return this.action ? await this.action() : undefined;
353
+ };
354
+ const baseExecution = executeAction();
355
+ const execution = Transaction.globalTimeout > 0
356
+ ? this.applyGlobalTimeout(baseExecution)
357
+ : baseExecution;
358
+ if (!this.initialFireDispatched) {
359
+ this.initialFireDispatched = true;
360
+ execution
361
+ .then((result) => {
362
+ this.resolveCompletion?.(result);
363
+ return result;
364
+ })
365
+ .catch((err) => {
366
+ this.rejectCompletion?.(err);
367
+ throw err;
368
+ });
369
+ }
370
+ return execution;
185
371
  }
186
372
  /**
187
373
  * @description Provides a string representation of the transaction
@@ -191,17 +377,29 @@ export class Transaction {
191
377
  * @return {string} A string representation of the transaction
192
378
  */
193
379
  toString(withId = true, withLog = false) {
194
- return `${withId ? `[${this.id}]` : ""}[Transaction][${this.source}.${this.method}${withLog ? `]\nTransaction Log:\n${this.log.join("\n")}` : "]"}`;
380
+ return `${withId ? `[${this.id}]` : ""}[Transaction][${this.source}.${this.method}${withLog ? `]\nTransaction Log:\n${this.logs.join("\n")}` : "]"}`;
195
381
  }
196
- /**
197
- * @description Generates a reflection metadata key for transactions
198
- * @summary Creates a prefixed reflection key for transaction-related metadata, ensuring proper namespacing
199
- * @param {string} key - The base key to prefix with the transaction reflection namespace
200
- * @return {string} The complete reflection key for transaction metadata
201
- * @function key
202
- */
203
- static key(key) {
204
- return TransactionalKeys.REFLECT + key;
382
+ static contextTransaction(context) {
383
+ if (!context || !context.__transactionProxy) {
384
+ return undefined;
385
+ }
386
+ return this.contexts.get(context);
387
+ }
388
+ wait() {
389
+ return this.completion;
390
+ }
391
+ static describeTarget(target) {
392
+ if (target === null ||
393
+ (typeof target !== "object" && typeof target !== "function")) {
394
+ return getObjectName(target);
395
+ }
396
+ const key = target;
397
+ let cached = objectNameCache.get(key);
398
+ if (!cached) {
399
+ cached = getObjectName(target);
400
+ objectNameCache.set(key, cached);
401
+ }
402
+ return cached;
205
403
  }
206
404
  }
207
405
  //# sourceMappingURL=Transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/Transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,mCAAgC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,8BAAqB;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,oBAAiB;AAGxC,MAAM,eAAe,GAAG,IAAI,OAAO,EAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,OAAO,WAAe,SAAQ,WAAW;aACtC,UAAK,GAAG,KAAK,AAAR,CAAS;aACd,kBAAa,GAAG,CAAC,CAAC,AAAL,CAAM;aACF,kBAAa,GAAG,IAAI,OAAO,EAQhD,AARkC,CAQjC;aAEW,QAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACvD,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,KAAK,IAAI,WAAW,CAAC,KAAK;gBACrC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,6DAA6D;YAC7D,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;gBACxB,0EAA0E;YAC5E,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,AATgB,CASf;IAEH,IAAa,GAAG;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;aAeuB,aAAQ,GAAG,IAAI,OAAO,EAA4B,AAA1C,CAA2C;IAE3E,YACE,MAAc,EACd,MAAe,EACf,MAAyB,EACzB,QAAgB;QAEhB,KAAK,EAAE,CAAC;QAZF,0BAAqB,GAAG,KAAK,CAAC;QAC9B,aAAQ,GAAG,KAAK,CAAC;QAYvB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,MAAW,EACX,MAAuC,EACvC,GAAG,IAAW;QAEd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,WAAW,GAAmB,IAAI,WAAW,CACjD,UAAU,EACV,UAAU,EACV,KAAK,IAAI,EAAE;YACT,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,CAAC,CAAC,OAAO,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;gBACxD,CAAC,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAC5D,CAAC;gBACF,CAAC,CAAC,OAAO,CAAC,sBAAsB,UAAU,wBAAwB,CAAC,CAAC;gBACpE,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7C,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBACzB,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAU,CAAC,CAAC;gBACtC,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CACF,CAAC;QACF,GAAG,CAAC,KAAK,CACP,uBAAuB,WAAW,CAAC,EAAE,eAAe,UAAU,cAAc,UAAU,EAAE,CACzF,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAWD,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,iBAAgD,EAChD,kBAAsD,EACtD,aAAqB;QAErB,MAAM,eAAe,GAAG,OAAO,iBAAiB,KAAK,UAAU,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAEnD,CAAC;QACd,MAAM,QAAQ,GAAG,CACf,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAC5B,CAAC;QAC/B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,MAAM,aAAa,GACjB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM;YAC9C,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,UAAU,GAAG,OAAO;YACxB,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,OAAiB,CAAC;YAC/C,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,QAAkB,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,QAAkB,CAAC,CAAC;QAClE,wCAAwC;QACxC,IAAI,WAA2B,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,WAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,OAAO;oBAC1B,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC;oBACxC,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,WAAW,CAAM,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,GAAG,KAAK,CAAC;gBACpB,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,WAAW,CAAC,OAAO,CACvB,WAAW,YAAY,KAAK,CAAC,CAAC,CAAE,WAAqB,CAAC,CAAC,CAAC,SAAS,CAClE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QACF,WAAW,GAAG,IAAI,WAAW,CAC3B,UAAU,EACV,UAAU,EACV,MAAM,EACN,aAAa,CACd,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,IAAqB;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAI,WAA2B;QAC1C,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAW;QAC9B,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,MAAW;QACjD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS;YACpC,oBAAoB;YACpB,qBAAqB;YACrB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe;SACxE,CAAC,CAAC;QACH,MAAM,OAAO,GAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAc,IAAI,EAAE,CAAC;QACpE,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAC7D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CACnC,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAC;QACvD,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,eAAiC;QAC/C,IAAI,CAAC,GAAG;aACL,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;aACzB,OAAO,CAAC,eAAe,eAAe,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAQ;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,GAAG,CAAC,OAAO,CACT,kBAAkB,aAAa,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CACjE,CAAC;QACF,MAAM,QAAQ,GAAG,WAAW,CAAC,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,MAAM;YAAE,OAAO,GAAG,CAAC;QAC7C,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS;YACpC,oBAAoB;YACpB,qBAAqB;YACrB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe;SACxE,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAChE,IAAI,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACrD,MAAM,KAAK,GAAI,GAA+B,CAAC,CAAC,CAAC,CAAC;YAClD,IACE,KAAK;gBACL,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;gBAC1D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAkB,CAAC,EAClD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CACP,8BAA8B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/G,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;YAC9B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;gBACxB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAc,CAAC;oBAC/C,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAA2B,CAAQ,EAAE;wBAC3D,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ;4BACnC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;wBACnE,CAAC;qBACF,CAAC,CAAC;gBAEL,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAc,CAAC;oBAC3C,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAA2B,CAAC,CAAC,CAAC;gBAErE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,QAAQ,CAAC,MAAM,CAAC,QAAiC,CAAC;YAChD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;QAC9B,QAAQ,CAAC,QAAQ,GAAG,GAAG,EAAE,CACvB,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAiC,CAAC,CAAC;YACjE,yBAAyB;YACzB,IAAI,CAAC,EAAE,CAAC;QACT,QAAgB,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC3C,QAAgB,CAAC,mBAAmB;YAClC,GAAW,CAAC,mBAAmB,IAAI,GAAG,CAAC;QAC1C,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,SAAqB;QAC9C,IAAI,WAAW,CAAC,aAAa,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,OAAO;oBAAE,OAAO;gBACpB,MAAM,KAAK,GAAG,IAAI,YAAY,CAC5B,eAAe,IAAI,CAAC,QAAQ,EAAE,wBAAwB,SAAS,IAAI,CACpE,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CACvC,GAAG,CAAC,KAAK,CAAC,UAAmB,CAAC,CAC/B,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,SAAS;iBACN,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACd,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAE,SAAe,CAAC;QAC9D,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,aAAa,EAAE,CAAC;QACtC,MAAM,SAAS,GACb,WAAW,CAAC,aAAa,GAAG,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;YACxC,CAAC,CAAC,aAAa,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,SAAS;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACM,QAAQ,CAAC,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK;QAC9C,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAC/E,OAAO,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAC7D,EAAE,CAAC;IACL,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAY;QACpC,IAAI,CAAC,OAAO,IAAI,CAAE,OAAe,CAAC,kBAAkB,EAAE,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,MAAW;QACvC,IACE,MAAM,KAAK,IAAI;YACf,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,EAC5D,CAAC;YACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,GAAG,GAAG,MAAgB,CAAC;QAC7B,IAAI,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/B,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -12,7 +12,6 @@
12
12
  * @memberOf module:transactions
13
13
  */
14
14
  export const TransactionalKeys = {
15
- REFLECT: "model.transactional.",
16
15
  TRANSACTIONAL: "transactional",
17
16
  };
18
17
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,OAAO,EAAE,sBAAsB;IAC/B,aAAa,EAAE,eAAe;CAC/B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,aAAa,EAAE,eAAe;CAC/B,CAAC"}
@@ -30,14 +30,4 @@
30
30
  * T-->>C: Return result/error
31
31
  * @category Decorators
32
32
  */
33
- export declare function transactional(...data: any[]): (target: any, propertyKey?: any, descriptor?: PropertyDescriptor) => void;
34
- /**
35
- * @description Utility for handling super calls in transactional methods
36
- * @summary Wraps super method calls with the current transaction context when the super's method is also transactional, ensuring transaction continuity through the inheritance chain
37
- * @param {Function} method - The super method (must be bound to the proper this), e.g., super.create.bind(this)
38
- * @param {any[]} args - The arguments to call the method with
39
- * @return {any} The result of the super method call
40
- * @function transactionalSuperCall
41
- * @memberOf module:transactions
42
- */
43
- export declare function transactionalSuperCall(method: any, ...args: any): any;
33
+ export declare function transactional(...data: any[]): (target: any, propertyKey?: any, descriptor?: any) => any;