@decaf-ts/core 0.26.5 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +87 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/cjs/index.cjs +3 -3
  7. package/lib/cjs/persistence/Adapter.cjs +9 -1
  8. package/lib/cjs/persistence/Adapter.cjs.map +1 -1
  9. package/lib/cjs/persistence/ContextLock.cjs +110 -61
  10. package/lib/cjs/persistence/ContextLock.cjs.map +1 -1
  11. package/lib/cjs/persistence/ObserverHandler.cjs +1 -1
  12. package/lib/cjs/persistence/ObserverHandler.cjs.map +1 -1
  13. package/lib/cjs/persistence/constants.cjs +1 -0
  14. package/lib/cjs/persistence/constants.cjs.map +1 -1
  15. package/lib/cjs/persistence/transactions.cjs +57 -24
  16. package/lib/cjs/persistence/transactions.cjs.map +1 -1
  17. package/lib/esm/index.js +3 -3
  18. package/lib/esm/persistence/Adapter.js +10 -2
  19. package/lib/esm/persistence/Adapter.js.map +1 -1
  20. package/lib/esm/persistence/ContextLock.js +108 -59
  21. package/lib/esm/persistence/ContextLock.js.map +1 -1
  22. package/lib/esm/persistence/ObserverHandler.js +1 -1
  23. package/lib/esm/persistence/ObserverHandler.js.map +1 -1
  24. package/lib/esm/persistence/constants.js +1 -0
  25. package/lib/esm/persistence/constants.js.map +1 -1
  26. package/lib/esm/persistence/transactions.js +55 -22
  27. package/lib/esm/persistence/transactions.js.map +1 -1
  28. package/lib/types/index.d.cts +3 -3
  29. package/lib/types/index.d.mts +3 -3
  30. package/lib/types/persistence/Adapter.d.cts +10 -2
  31. package/lib/types/persistence/Adapter.d.mts +10 -2
  32. package/lib/types/persistence/ContextLock.d.cts +72 -14
  33. package/lib/types/persistence/ContextLock.d.mts +72 -14
  34. package/lib/types/persistence/transactions.d.cts +20 -3
  35. package/lib/types/persistence/transactions.d.mts +20 -3
  36. package/lib/types/persistence/types.d.cts +9 -0
  37. package/lib/types/persistence/types.d.mts +9 -0
  38. package/package.json +1 -1
package/lib/cjs/index.cjs CHANGED
@@ -50,21 +50,21 @@ __exportStar(require("./persistence/index.cjs"), exports);
50
50
  * @const VERSION
51
51
  * @memberOf module:core
52
52
  */
53
- exports.VERSION = "0.26.4";
53
+ exports.VERSION = "0.26.5";
54
54
  /**
55
55
  * @description Represents the current commit hash of the module build.
56
56
  * @summary Stores the current git commit hash for the package. The build replaces
57
57
  * the placeholder with the actual commit hash at publish time.
58
58
  * @const COMMIT
59
59
  */
60
- exports.COMMIT = "698a38a";
60
+ exports.COMMIT = "a5030e0";
61
61
  /**
62
62
  * @description Represents the full version string of the module.
63
63
  * @summary Stores the semver version and commit hash for the package.
64
64
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
65
65
  * @const FULL_VERSION
66
66
  */
67
- exports.FULL_VERSION = "0.26.4-698a38a";
67
+ exports.FULL_VERSION = "0.26.5-a5030e0";
68
68
  /**
69
69
  * @description Stores the current package version
70
70
  * @summary A constant representing the version of the core package
@@ -207,8 +207,16 @@ class Adapter extends ContextualLoggedClass_js_1.AbsContextual {
207
207
  throw new db_decorators_1.InternalError(`This should be overridden when necessary. Otherwise it will be replaced lazily`);
208
208
  return Adapter._baseRepository;
209
209
  }
210
+ /**
211
+ * @description Provides this adapter's transaction-lock implementation
212
+ * @summary Returns a fresh `ContextLock` instance used by `@transactional` to manage transaction
213
+ * boundaries. The base implementation is a no-op; adapters with native transaction support (e.g. a
214
+ * SQL adapter) should override this to return a `ContextLock` subclass that wraps the underlying
215
+ * driver's BEGIN/COMMIT/ROLLBACK. Nesting is handled by the `@transactional` proxy, not by this method
216
+ * or the returned lock.
217
+ */
210
218
  transactionLock(...args) {
211
- return new ContextLock_js_1.AdapterTransaction(this, ...args);
219
+ return new ContextLock_js_1.ContextLock(this, ...args);
212
220
  }
213
221
  async shutdownProxies(k, ...args) {
214
222
  if (k && typeof k !== "string") {
@@ -1 +1 @@
1
- {"version":3,"file":"Adapter.js","sourceRoot":"","sources":["Adapter.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Adapter.js","sourceRoot":"","sources":["Adapter.js"],"names":[],"mappings":"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"}
@@ -1,79 +1,128 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContextLock = exports.AdapterTransaction = void 0;
3
+ exports.ContextLock = exports.SimpleConcurrencyLock = void 0;
4
+ const constants_js_1 = require("./constants.cjs");
5
+ const errors_js_1 = require("./errors.cjs");
4
6
  const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
5
- const db_decorators_1 = require("@decaf-ts/db-decorators");
6
- class AdapterTransaction {
7
- constructor(adapter,
8
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
- ...args) {
10
- this.adapter = adapter;
7
+ /**
8
+ * @description Counting semaphore used by the default `ContextLock` to gate concurrent transactions
9
+ * @summary Simple FIFO semaphore: `acquire()` resolves immediately while permits remain, otherwise the
10
+ * caller is queued and resolved (without touching the permit count) the moment `release()` hands the
11
+ * permit directly to the next waiter. `SimpleConcurrencyLock.for(adapter, limit)` is the single,
12
+ * self-contained way to get the one gate shared by every transaction on that adapter - no extra state
13
+ * or methods live on `Adapter` itself for this.
14
+ * @class SimpleConcurrencyLock
15
+ */
16
+ class SimpleConcurrencyLock extends transactional_decorators_1.Lock {
17
+ static { this.registry = new WeakMap(); }
18
+ /**
19
+ * @description Returns the one `SimpleConcurrencyLock` for this adapter, creating it on first use
20
+ * @summary `limit` only matters the first time it's called for a given adapter - the gate's capacity
21
+ * is fixed for the adapter's lifetime, the same way the adapter's own client/connection is.
22
+ */
23
+ static for(adapter, limit) {
24
+ let lock = SimpleConcurrencyLock.registry.get(adapter);
25
+ if (!lock) {
26
+ lock = new SimpleConcurrencyLock(limit);
27
+ SimpleConcurrencyLock.registry.set(adapter, lock);
28
+ }
29
+ return lock;
11
30
  }
12
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
- async begin(...args) {
14
- // do nothing
31
+ constructor(permits) {
32
+ super();
33
+ this.waiters = [];
34
+ this.permits = permits;
15
35
  }
16
36
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- async commit(...args) {
18
- //do nothing
37
+ async acquire(ctx) {
38
+ if (this.permits > 0) {
39
+ this.permits--;
40
+ return;
41
+ }
42
+ return new Promise((resolve) => this.waiters.push(resolve));
19
43
  }
20
44
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
- async rollback(...args) {
22
- // do nothing
45
+ release(ctx) {
46
+ const next = this.waiters.shift();
47
+ if (next) {
48
+ next();
49
+ return;
50
+ }
51
+ this.permits++;
23
52
  }
24
53
  }
25
- exports.AdapterTransaction = AdapterTransaction;
26
- class ContextLock extends transactional_decorators_1.Lock {
27
- constructor(adapterTransaction) {
28
- super();
29
- this.adapterTransaction = adapterTransaction;
30
- this.acquireCount = 0;
31
- this.lock = new transactional_decorators_1.Lock();
54
+ exports.SimpleConcurrencyLock = SimpleConcurrencyLock;
55
+ /**
56
+ * @description Per-adapter transaction lock
57
+ * @summary Default transaction boundary implementation stored on the Context by `@transactional`.
58
+ * Gated by the `maxConcurrentTransactions` flag (see `AdapterFlags`): `-1` (default) means no limit and
59
+ * `begin`/`commit`/`rollback` behave as a no-op; `0` disables transactions outright (every call throws);
60
+ * any positive number gates concurrent transactions through `SimpleConcurrencyLock.for(adapter, limit)`,
61
+ * the one counting semaphore shared by every transaction on that adapter, queuing callers until a slot
62
+ * frees up.
63
+ * Adapters with native transaction support (e.g. a SQL adapter wrapping BEGIN/COMMIT/ROLLBACK) override
64
+ * `Adapter.transactionLock()` to return a subclass with real `begin`/`commit`/`rollback` behavior - if that
65
+ * subclass does not call `super.begin()`/`super.commit()`/`super.rollback()`, `maxConcurrentTransactions`
66
+ * has no effect for it, since concurrency is then governed by the underlying database instead.
67
+ * `transactionLock()` always returns a *fresh* `ContextLock` per top-level transaction - it's the
68
+ * per-transaction handle (nesting `depth`, and for native adapters the actual exclusive connection/cursor),
69
+ * so it cannot be a singleton itself; only the concurrency gate it delegates to is shared.
70
+ * Nesting (reusing the same instance across nested `@transactional` calls, and deciding when to actually
71
+ * call `begin`/`commit`/`rollback`) is owned by the `@transactional` proxy via `depth`, not by this class.
72
+ * @class ContextLock
73
+ */
74
+ class ContextLock {
75
+ constructor(adapter,
76
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
77
+ ...args) {
78
+ this.adapter = adapter;
79
+ /**
80
+ * @description Nesting depth, owned and mutated by the `@transactional` proxy
81
+ */
82
+ this.depth = 0;
32
83
  }
33
- async acquire(...args) {
34
- await this.lock.acquire();
35
- this.acquireCount++;
36
- if (this.acquireCount === 1) {
37
- this.lock.release();
38
- await this.adapterTransaction.begin(...args);
84
+ /**
85
+ * @description Called once, by the outermost `@transactional` call
86
+ * @summary `context` already exists by the time this is called (the `@transactional` proxy always
87
+ * builds it before calling `begin`), so this routes it through `Adapter.logCtx()` with `allowCreate`
88
+ * left at its default `false` - there is nothing to create here, only the existing context (and its
89
+ * logger) to reuse. Passing `allowCreate: true` would be wrong: it skips the "reuse the context I was
90
+ * given" branch entirely and tries to build a new one through `Adapter.context()`, whose third
91
+ * positional parameter is reserved for a model constructor - the context would be misread as "model".
92
+ * @param {Context<any>} context - The context the transaction is starting under
93
+ */
94
+ async begin(context) {
95
+ const { log, ctx } = this.adapter["logCtx"]([context], this.begin);
96
+ const value = ctx.getOrUndefined("maxConcurrentTransactions");
97
+ const limit = typeof value === "number"
98
+ ? value
99
+ : constants_js_1.DefaultAdapterFlags.maxConcurrentTransactions;
100
+ if (limit === 0) {
101
+ log.debug(`Rejecting transaction on adapter "${this.adapter.alias}": transactions are disabled (maxConcurrentTransactions=0)`);
102
+ throw new errors_js_1.UnsupportedError(`Transactions are disabled for adapter "${this.adapter.alias}" (maxConcurrentTransactions=0)`);
39
103
  }
40
- else {
41
- this.lock.release();
104
+ if (limit > 0) {
105
+ log.silly(`Gating transaction on adapter "${this.adapter.alias}" (maxConcurrentTransactions=${limit})`);
106
+ this.semaphore = SimpleConcurrencyLock.for(this.adapter, limit);
107
+ await this.semaphore.acquire(ctx);
42
108
  }
43
109
  }
44
- async release(...args) {
45
- await this.lock.acquire();
46
- this.acquireCount--;
47
- if (this.acquireCount === 0) {
48
- try {
49
- await this.adapterTransaction.commit(...args);
50
- }
51
- catch (e) {
52
- await this.adapterTransaction.rollback(new db_decorators_1.InternalError(`Failed to submit transaction: ${e}`), ...args);
53
- }
54
- finally {
55
- this.lock.release();
56
- }
57
- }
58
- else if (this.acquireCount < 0) {
59
- this.acquireCount = 0;
60
- this.lock.release();
61
- }
62
- else {
63
- this.lock.release();
64
- }
110
+ /**
111
+ * @description Called once, when the outermost `@transactional` call exits successfully
112
+ * @param {Context<any>} context - The context the transaction ran under
113
+ */
114
+ async commit(context) {
115
+ const { ctx } = this.adapter["logCtx"]([context], this.commit);
116
+ this.semaphore?.release(ctx);
65
117
  }
66
- async rollback(e, ...args) {
67
- await this.lock.acquire();
68
- try {
69
- await this.adapterTransaction.rollback(new db_decorators_1.InternalError(`Failed to submit transaction: ${e}`), ...args);
70
- }
71
- catch (e) {
72
- throw new db_decorators_1.InternalError(`Failed to rollback transaction: ${e}`);
73
- }
74
- finally {
75
- this.lock.release();
76
- }
118
+ /**
119
+ * @description Called once, by whichever call hits the error first. Ends the transaction outright
120
+ * @param {Error} err - The error that triggered the rollback
121
+ * @param {Context<any>} context - The context the transaction ran under
122
+ */
123
+ async rollback(err, context) {
124
+ const { ctx } = this.adapter["logCtx"]([context], this.rollback);
125
+ this.semaphore?.release(ctx);
77
126
  }
78
127
  }
79
128
  exports.ContextLock = ContextLock;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextLock.js","sourceRoot":"","sources":["ContextLock.js"],"names":[],"mappings":";;;AAAA,iFAA0D;AAC1D,2DAAwD;AACxD,MAAa,kBAAkB;IAC3B,YAAY,OAAO;IACnB,6DAA6D;IAC7D,GAAG,IAAI;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IACD,6DAA6D;IAC7D,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI;QACf,aAAa;IACjB,CAAC;IACD,6DAA6D;IAC7D,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;QAChB,YAAY;IAChB,CAAC;IACD,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;QAClB,aAAa;IACjB,CAAC;CACJ;AAlBD,gDAkBC;AACD,MAAa,WAAY,SAAQ,+BAAI;IACjC,YAAY,kBAAkB;QAC1B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,+BAAI,EAAE,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC;aACI,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,6BAAa,CAAC,iCAAiC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7G,CAAC;oBACO,CAAC;gBACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;QACL,CAAC;aACI,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;aACI,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,IAAI;QACrB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,6BAAa,CAAC,iCAAiC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,6BAAa,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;gBACO,CAAC;YACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;CACJ;AApDD,kCAoDC;AACD,uCAAuC"}
1
+ {"version":3,"file":"ContextLock.js","sourceRoot":"","sources":["ContextLock.js"],"names":[],"mappings":"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"}
@@ -133,7 +133,7 @@ class ObserverHandler {
133
133
  }
134
134
  })
135
135
  .map((o) => {
136
- o.observer.refresh(model, event, id, ...ctxArgs);
136
+ return o.observer.refresh(model, event, id, ...ctxArgs);
137
137
  }));
138
138
  results.forEach((result, i) => {
139
139
  if (result.status === "rejected")
@@ -1 +1 @@
1
- {"version":3,"file":"ObserverHandler.js","sourceRoot":"","sources":["ObserverHandler.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObserverHandler.js","sourceRoot":"","sources":["ObserverHandler.js"],"names":[],"mappings":"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"}
@@ -94,6 +94,7 @@ exports.DefaultAdapterFlags = Object.assign({}, db_decorators_1.DefaultRepositor
94
94
  paginateByBookmark: false,
95
95
  dryRun: false,
96
96
  afterQueryHandlers: false,
97
+ maxConcurrentTransactions: -1,
97
98
  });
98
99
  exports.TransactionOperationKeys = [
99
100
  db_decorators_1.OperationKeys.CREATE,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":"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"}
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAdapterTransaction = getAdapterTransaction;
4
- exports.getContextLock = getContextLock;
3
+ exports.resolveTransactionLock = resolveTransactionLock;
4
+ exports.transactional = transactional;
5
5
  const db_decorators_1 = require("@decaf-ts/db-decorators");
6
6
  const decoration_1 = require("@decaf-ts/decoration");
7
7
  const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
8
8
  const ModelService_js_1 = require("./../services/ModelService.cjs");
9
9
  const Repository_js_1 = require("./../repository/Repository.cjs");
10
10
  const Adapter_js_1 = require("./Adapter.cjs");
11
- const ContextLock_js_1 = require("./ContextLock.cjs");
12
- function getAdapterTransaction(obj, ...args) {
11
+ /**
12
+ * @description Resolves the transaction lock for a `@transactional`-decorated call
13
+ * @summary Finds the underlying adapter for the decorated object (Adapter, Repository, or
14
+ * ModelService) and asks it for a fresh `ContextLock` via `Adapter.transactionLock()`
15
+ */
16
+ function resolveTransactionLock(obj, ...args) {
13
17
  let adapter;
14
18
  if (obj instanceof ModelService_js_1.ModelService)
15
19
  adapter = obj.repo.adapter;
@@ -21,9 +25,6 @@ function getAdapterTransaction(obj, ...args) {
21
25
  throw new db_decorators_1.InternalError(`Could not find adapter to extract transaction`);
22
26
  return adapter.transactionLock(...args);
23
27
  }
24
- function getContextLock(obj, ...args) {
25
- return new ContextLock_js_1.ContextLock(getAdapterTransaction(obj, ...args));
26
- }
27
28
  function innerTransactional(...data) {
28
29
  return function (target, propertyKey, descriptor) {
29
30
  if (!descriptor)
@@ -35,27 +36,43 @@ function innerTransactional(...data) {
35
36
  descriptor.value = new Proxy(descriptor.value, {
36
37
  async apply(obj, thisArg, argArray) {
37
38
  const { log, ctx } = (await thisArg["logCtx"](argArray, obj.name, true)).for(obj);
38
- const lock = ctx.getOrUndefined("transactionLock") || getContextLock(thisArg);
39
- ctx.put("transactionLock", lock);
40
- await lock.acquire();
39
+ // Reuse an in-flight transaction (nested @transactional call) instead of starting a new one
40
+ const existing = ctx.getOrUndefined("transactionLock");
41
+ const lock = existing || resolveTransactionLock(thisArg);
42
+ lock.depth++;
43
+ if (!existing) {
44
+ // only cache the lock once begin() succeeds, so a rejected begin() (e.g.
45
+ // maxConcurrentTransactions=0) leaves no stale lock/depth on the context
46
+ await lock.begin(ctx);
47
+ ctx.cache.put("transactionLock", lock);
48
+ }
41
49
  let results;
42
50
  try {
43
51
  results = await obj.call(thisArg, ...argArray, ctx);
44
52
  }
45
53
  catch (e) {
54
+ // An inner @transactional frame may have already rolled back and ended
55
+ // the transaction (depth forced to 0); enclosing frames must not roll back again
56
+ const alreadyEnded = lock.depth === 0;
57
+ lock.depth = 0;
58
+ if (!alreadyEnded) {
59
+ try {
60
+ await lock.rollback(e, ctx);
61
+ }
62
+ catch (rollbackError) {
63
+ log.error(`Failed to rollback transaction`, rollbackError);
64
+ }
65
+ }
66
+ throw e;
67
+ }
68
+ lock.depth--;
69
+ if (lock.depth === 0) {
46
70
  try {
47
- await lock.rollback(e);
71
+ await lock.commit(ctx);
48
72
  }
49
73
  catch (e) {
50
- log.error(`Failed to rollback transaction`, e);
74
+ throw new db_decorators_1.InternalError(`Failed to commit transaction: ${e}`);
51
75
  }
52
- throw e;
53
- }
54
- try {
55
- await lock.release();
56
- }
57
- catch (e) {
58
- throw new db_decorators_1.InternalError(`Failed to release transaction: ${e}`);
59
76
  }
60
77
  return results;
61
78
  },
@@ -63,10 +80,26 @@ function innerTransactional(...data) {
63
80
  return descriptor;
64
81
  };
65
82
  }
66
- decoration_1.Decoration.for(transactional_decorators_1.TransactionalKeys.TRANSACTIONAL)
67
- .define({
68
- decorator: innerTransactional,
69
- })
70
- .apply();
83
+ /**
84
+ * @description Method decorator that wraps a method in core's transaction-lock mechanism
85
+ * @summary `@decaf-ts/transactional-decorators` exports its own `transactional()` factory, and that
86
+ * factory re-registers its own (base) decorator under the same Decoration key every time it is called
87
+ * — so importing core does not make core's implementation "stick" if anything also calls the base
88
+ * package's factory. Consumers that want core's `ContextLock`/per-adapter transaction-lock behavior
89
+ * MUST import `transactional` from `@decaf-ts/core` (this function), not from
90
+ * `@decaf-ts/transactional-decorators`. Whichever factory is called last determines the active
91
+ * implementation for the shared key/flavour going forward.
92
+ * @param {...any[]} data - Optional metadata available to the transaction-lock implementation
93
+ * @function transactional
94
+ * @category Decorators
95
+ */
96
+ function transactional(...data) {
97
+ return decoration_1.Decoration.for(transactional_decorators_1.TransactionalKeys.TRANSACTIONAL)
98
+ .define({
99
+ decorator: innerTransactional,
100
+ args: data,
101
+ })
102
+ .apply();
103
+ }
71
104
  //# sourceMappingURL=transactions.js.map
72
105
  //# sourceMappingURL=transactions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.js","sourceRoot":"","sources":["transactions.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["transactions.js"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -33,21 +33,21 @@ export * from "./persistence/index.js";
33
33
  * @const VERSION
34
34
  * @memberOf module:core
35
35
  */
36
- export const VERSION = "0.26.4";
36
+ export const VERSION = "0.26.5";
37
37
  /**
38
38
  * @description Represents the current commit hash of the module build.
39
39
  * @summary Stores the current git commit hash for the package. The build replaces
40
40
  * the placeholder with the actual commit hash at publish time.
41
41
  * @const COMMIT
42
42
  */
43
- export const COMMIT = "698a38a";
43
+ export const COMMIT = "a5030e0";
44
44
  /**
45
45
  * @description Represents the full version string of the module.
46
46
  * @summary Stores the semver version and commit hash for the package.
47
47
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
48
48
  * @const FULL_VERSION
49
49
  */
50
- export const FULL_VERSION = "0.26.4-698a38a";
50
+ export const FULL_VERSION = "0.26.5-a5030e0";
51
51
  /**
52
52
  * @description Stores the current package version
53
53
  * @summary A constant representing the version of the core package
@@ -18,7 +18,7 @@ import { Decoration, DefaultFlavour, Metadata, } from "@decaf-ts/decoration";
18
18
  import { AbsContextual, } from "./../utils/ContextualLoggedClass.js";
19
19
  import { promiseSequence } from "./../utils/utils.js";
20
20
  import { UUID } from "./generators.js";
21
- import { AdapterTransaction } from "./ContextLock.js";
21
+ import { ContextLock } from "./ContextLock.js";
22
22
  const flavourResolver = Decoration["flavourResolver"].bind(Decoration);
23
23
  Decoration["flavourResolver"] = (obj) => {
24
24
  const resolveAdapterFlavour = (value) => {
@@ -198,8 +198,16 @@ export class Adapter extends AbsContextual {
198
198
  throw new InternalError(`This should be overridden when necessary. Otherwise it will be replaced lazily`);
199
199
  return Adapter._baseRepository;
200
200
  }
201
+ /**
202
+ * @description Provides this adapter's transaction-lock implementation
203
+ * @summary Returns a fresh `ContextLock` instance used by `@transactional` to manage transaction
204
+ * boundaries. The base implementation is a no-op; adapters with native transaction support (e.g. a
205
+ * SQL adapter) should override this to return a `ContextLock` subclass that wraps the underlying
206
+ * driver's BEGIN/COMMIT/ROLLBACK. Nesting is handled by the `@transactional` proxy, not by this method
207
+ * or the returned lock.
208
+ */
201
209
  transactionLock(...args) {
202
- return new AdapterTransaction(this, ...args);
210
+ return new ContextLock(this, ...args);
203
211
  }
204
212
  async shutdownProxies(k, ...args) {
205
213
  if (k && typeof k !== "string") {