@decaf-ts/transactional-decorators 0.1.2 → 0.1.4

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 (72) hide show
  1. package/LICENSE.md +17 -152
  2. package/README.md +242 -17
  3. package/dist/transactional-decorators.cjs +2 -544
  4. package/dist/transactional-decorators.cjs.map +1 -0
  5. package/dist/transactional-decorators.js +2 -0
  6. package/dist/transactional-decorators.js.map +1 -0
  7. package/lib/Transaction.cjs +87 -39
  8. package/lib/Transaction.d.ts +86 -38
  9. package/lib/Transaction.js.map +1 -0
  10. package/lib/constants.cjs +14 -1
  11. package/lib/constants.d.ts +13 -0
  12. package/lib/constants.js.map +1 -0
  13. package/lib/decorators.cjs +35 -11
  14. package/lib/decorators.d.ts +34 -10
  15. package/lib/decorators.js.map +1 -0
  16. package/lib/esm/Transaction.d.ts +86 -38
  17. package/lib/esm/Transaction.js +90 -42
  18. package/lib/esm/Transaction.js.map +1 -0
  19. package/lib/esm/constants.d.ts +13 -0
  20. package/lib/esm/constants.js +14 -1
  21. package/lib/esm/constants.js.map +1 -0
  22. package/lib/esm/decorators.d.ts +34 -10
  23. package/lib/esm/decorators.js +37 -13
  24. package/lib/esm/decorators.js.map +1 -0
  25. package/lib/esm/index.d.ts +7 -13
  26. package/lib/esm/index.js +14 -20
  27. package/lib/esm/index.js.map +1 -0
  28. package/lib/esm/interfaces/TransactionLock.d.ts +13 -11
  29. package/lib/esm/interfaces/TransactionLock.js +1 -1
  30. package/lib/esm/interfaces/TransactionLock.js.map +1 -0
  31. package/lib/esm/interfaces/index.d.ts +5 -0
  32. package/lib/esm/interfaces/index.js +7 -2
  33. package/lib/esm/interfaces/index.js.map +1 -0
  34. package/lib/esm/locks/Lock.d.ts +13 -5
  35. package/lib/esm/locks/Lock.js +14 -6
  36. package/lib/esm/locks/Lock.js.map +1 -0
  37. package/lib/esm/locks/SyncronousLock.d.ts +3 -4
  38. package/lib/esm/locks/SyncronousLock.js +14 -2
  39. package/lib/esm/locks/SyncronousLock.js.map +1 -0
  40. package/lib/esm/locks/index.d.ts +5 -0
  41. package/lib/esm/locks/index.js +8 -3
  42. package/lib/esm/locks/index.js.map +1 -0
  43. package/lib/esm/types.d.ts +13 -3
  44. package/lib/esm/types.js +1 -1
  45. package/lib/esm/types.js.map +1 -0
  46. package/lib/esm/utils.js +1 -1
  47. package/lib/esm/utils.js.map +1 -0
  48. package/lib/index.cjs +8 -14
  49. package/lib/index.d.ts +7 -13
  50. package/lib/index.js.map +1 -0
  51. package/lib/interfaces/TransactionLock.cjs +1 -1
  52. package/lib/interfaces/TransactionLock.d.ts +13 -11
  53. package/lib/interfaces/TransactionLock.js.map +1 -0
  54. package/lib/interfaces/index.cjs +6 -1
  55. package/lib/interfaces/index.d.ts +5 -0
  56. package/lib/interfaces/index.js.map +1 -0
  57. package/lib/locks/Lock.cjs +14 -6
  58. package/lib/locks/Lock.d.ts +13 -5
  59. package/lib/locks/Lock.js.map +1 -0
  60. package/lib/locks/SyncronousLock.cjs +13 -1
  61. package/lib/locks/SyncronousLock.d.ts +3 -4
  62. package/lib/locks/SyncronousLock.js.map +1 -0
  63. package/lib/locks/index.cjs +6 -1
  64. package/lib/locks/index.d.ts +5 -0
  65. package/lib/locks/index.js.map +1 -0
  66. package/lib/types.cjs +1 -1
  67. package/lib/types.d.ts +13 -3
  68. package/lib/types.js.map +1 -0
  69. package/lib/utils.cjs +1 -1
  70. package/lib/utils.js.map +1 -0
  71. package/package.json +24 -25
  72. package/dist/transactional-decorators.esm.cjs +0 -533
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * @description Transaction interfaces module
4
+ * @summary Contains interface definitions for the transaction system, providing contracts for transaction-related components
5
+ * @module transactions/interfaces
6
+ */
2
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
8
  if (k2 === undefined) k2 = k;
4
9
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -15,4 +20,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
20
  };
16
21
  Object.defineProperty(exports, "__esModule", { value: true });
17
22
  __exportStar(require("./TransactionLock.cjs"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vVHJhbnNhY3Rpb25Mb2NrXCI7XG4iXX0=
23
+ //# sourceMappingURL=index.js.map
@@ -1 +1,6 @@
1
+ /**
2
+ * @description Transaction interfaces module
3
+ * @summary Contains interface definitions for the transaction system, providing contracts for transaction-related components
4
+ * @module transactions/interfaces
5
+ */
1
6
  export * from "./TransactionLock";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,wDAAkC"}
@@ -2,10 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Lock = void 0;
4
4
  /**
5
- * @summary Simple Promise based Lock class
6
- *
5
+ * @description Base lock implementation for concurrency control
6
+ * @summary Provides a basic lock mechanism for controlling access to shared resources, with support for queuing and executing functions when the lock is available
7
7
  * @class Lock
8
- * @category Transactions
8
+ * @example
9
+ * // Using the Lock class to execute a function with exclusive access
10
+ * const lock = new Lock();
11
+ * const result = await lock.execute(async () => {
12
+ * // This code will run with exclusive access
13
+ * return await performCriticalOperation();
14
+ * });
9
15
  */
10
16
  class Lock {
11
17
  constructor() {
@@ -13,8 +19,10 @@ class Lock {
13
19
  this.locked = false;
14
20
  }
15
21
  /**
16
- * @summary executes when lock is available
17
- * @param {Function} func
22
+ * @description Executes a function with exclusive lock access
23
+ * @summary Acquires the lock, executes the provided function, and releases the lock afterward, ensuring proper cleanup even if the function throws an error
24
+ * @param {Function} func - The function to execute when the lock is acquired
25
+ * @return {Promise<any>} A promise that resolves with the result of the executed function
18
26
  */
19
27
  async execute(func) {
20
28
  await this.acquire();
@@ -63,4 +71,4 @@ class Lock {
63
71
  }
64
72
  }
65
73
  exports.Lock = Lock;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2Nrcy9Mb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7OztHQUtHO0FBQ0gsTUFBYSxJQUFJO0lBQWpCO1FBQ1UsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFDM0IsV0FBTSxHQUFHLEtBQUssQ0FBQztJQW1EekIsQ0FBQztJQWpEQzs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQWU7UUFDM0IsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsSUFBSSxNQUFXLENBQUM7UUFDaEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLDREQUE0RDtRQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLElBQUksR0FBNkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFDRSxPQUFRLFVBQXlDLENBQUMsTUFBTSxLQUFLLFdBQVc7Z0JBRXhFLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMscUJBQXFCOztnQkFDckQsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFyREQsb0JBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9ja0NhbGxhYmxlIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgU2ltcGxlIFByb21pc2UgYmFzZWQgTG9jayBjbGFzc1xuICpcbiAqIEBjbGFzcyBMb2NrXG4gKiBAY2F0ZWdvcnkgVHJhbnNhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NrIHtcbiAgcHJpdmF0ZSBxdWV1ZTogTG9ja0NhbGxhYmxlW10gPSBbXTtcbiAgcHJpdmF0ZSBsb2NrZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQHN1bW1hcnkgZXhlY3V0ZXMgd2hlbiBsb2NrIGlzIGF2YWlsYWJsZVxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jXG4gICAqL1xuICBhc3luYyBleGVjdXRlKGZ1bmM6ICgpID0+IGFueSkge1xuICAgIGF3YWl0IHRoaXMuYWNxdWlyZSgpO1xuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZ1bmMoKSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aGlzLnJlbGVhc2UoKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHRoaXMucmVsZWFzZSgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgd2FpdHMgdG8gYWNxdWlyZSB0aGUgbG9ja1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW2lzc3Vlcl1cbiAgICovXG4gIGFzeW5jIGFjcXVpcmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHNlbGYubG9ja2VkKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHNlbGYucXVldWUucHVzaChyZXNvbHZlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGYubG9ja2VkID0gdHJ1ZTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgcmVsZWFzZXMgdGhlIGxvY2tcbiAgICovXG4gIHJlbGVhc2UoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3QgbmV4dDogTG9ja0NhbGxhYmxlIHwgdW5kZWZpbmVkID0gc2VsZi5xdWV1ZS5zaGlmdCgpO1xuICAgIGlmIChuZXh0KSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiAoZ2xvYmFsVGhpcyBhcyB1bmtub3duIGFzIHsgd2luZG93OiBhbnkgfSkud2luZG93ID09PSBcInVuZGVmaW5lZFwiXG4gICAgICApXG4gICAgICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5uZXh0VGljayhuZXh0KTsgLy8gaWYgeW91IGFyZSBvbiBub2RlXG4gICAgICBlbHNlIHNldFRpbWVvdXQobmV4dCwgMCk7IC8vIGlmIHlvdSBhcmUgaW4gdGhlIGJyb3dzZXJcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5sb2NrZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=Lock.js.map
@@ -1,15 +1,23 @@
1
1
  /**
2
- * @summary Simple Promise based Lock class
3
- *
2
+ * @description Base lock implementation for concurrency control
3
+ * @summary Provides a basic lock mechanism for controlling access to shared resources, with support for queuing and executing functions when the lock is available
4
4
  * @class Lock
5
- * @category Transactions
5
+ * @example
6
+ * // Using the Lock class to execute a function with exclusive access
7
+ * const lock = new Lock();
8
+ * const result = await lock.execute(async () => {
9
+ * // This code will run with exclusive access
10
+ * return await performCriticalOperation();
11
+ * });
6
12
  */
7
13
  export declare class Lock {
8
14
  private queue;
9
15
  private locked;
10
16
  /**
11
- * @summary executes when lock is available
12
- * @param {Function} func
17
+ * @description Executes a function with exclusive lock access
18
+ * @summary Acquires the lock, executes the provided function, and releases the lock afterward, ensuring proper cleanup even if the function throws an error
19
+ * @param {Function} func - The function to execute when the lock is acquired
20
+ * @return {Promise<any>} A promise that resolves with the result of the executed function
13
21
  */
14
22
  execute(func: () => any): Promise<any>;
15
23
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lock.js","sourceRoot":"","sources":["../../src/locks/Lock.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;GAWG;AACH,MAAa,IAAI;IAAjB;QACU,UAAK,GAAmB,EAAE,CAAC;QAC3B,WAAM,GAAG,KAAK,CAAC;IAqDzB,CAAC;IAnDC;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,IAAe;QAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,CAAC,CAAC;QACV,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,GAA6B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1D,IAAI,IAAI,EAAE,CAAC;YACT,IACE,OAAQ,UAAyC,CAAC,MAAM,KAAK,WAAW;gBAExE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;;gBACrD,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,4BAA4B;QACxD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAvDD,oBAuDC"}
@@ -2,6 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SyncronousLock = void 0;
4
4
  const Lock_1 = require("./Lock.cjs");
5
+ /**
6
+ * @summary Simple Synchronous Lock implementation
7
+ * @description for transaction management
8
+ * adapted from {@link https://www.talkinghightech.com/en/creating-a-js-lock-for-a-resource/}
9
+ *
10
+ * @param {number} [counter] the number of simultaneous transactions allowed. defaults to 1
11
+ * @param {Function} [onBegin] to be called at the start of the transaction
12
+ * @param {Function} [onEnd] to be called at the conclusion of the transaction
13
+ *
14
+ * @class SyncronousLock
15
+ * @implements TransactionLock
16
+ */
5
17
  class SyncronousLock {
6
18
  constructor(counter = 1, onBegin, onEnd) {
7
19
  this.currentTransaction = undefined;
@@ -117,4 +129,4 @@ class SyncronousLock {
117
129
  }
118
130
  }
119
131
  exports.SyncronousLock = SyncronousLock;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY3Jvbm91c0xvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ja3MvU3luY3Jvbm91c0xvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEscUNBQThCO0FBRTlCLE1BQWEsY0FBYztJQVN6QixZQUNFLFVBQWtCLENBQUMsRUFDbkIsT0FBNkIsRUFDN0IsS0FBc0M7UUFUeEMsdUJBQWtCLEdBQWlCLFNBQVMsQ0FBQztRQUk1QixTQUFJLEdBQUcsSUFBSSxXQUFJLEVBQUUsQ0FBQztRQU9qQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsV0FBd0I7UUFDN0IsNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFDRSxJQUFJLENBQUMsa0JBQWtCO2dCQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxFQUFFLEVBQzdDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFX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QUFDO29CQUNaLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQztnQkFFRixJQUFJLElBQUksQ0FBQyxLQUFLO29CQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs7b0JBQzNELGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXBJRCx3Q0FvSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzdW1tYXJ5IFNpbXBsZSBTeW5jaHJvbm91cyBMb2NrIGltcGxlbWVudGF0aW9uXG4gKiBAZGVzY3JpcHRpb24gZm9yIHRyYW5zYWN0aW9uIG1hbmFnZW1lbnRcbiAqIGFkYXB0ZWQgZnJvbSB7QGxpbmsgaHR0cHM6Ly93d3cudGFsa2luZ2hpZ2h0ZWNoLmNvbS9lbi9jcmVhdGluZy1hLWpzLWxvY2stZm9yLWEtcmVzb3VyY2UvfVxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBbY291bnRlcl0gdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgdHJhbnNhY3Rpb25zIGFsbG93ZWQuIGRlZmF1bHRzIHRvIDFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvbkJlZ2luXSB0byBiZSBjYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFuc2FjdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW29uRW5kXSB0byBiZSBjYWxsZWQgYXQgdGhlIGNvbmNsdXNpb24gb2YgdGhlIHRyYW5zYWN0aW9uXG4gKlxuICogQGNsYXNzIFN5bmNyb25vdXNMb2NrXG4gKiBAaW1wbGVtZW50cyBUcmFuc2FjdGlvbkxvY2tcbiAqXG4gKiBAY2F0ZWdvcnkgVHJhbnNhY3Rpb25zXG4gKi8gaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tIFwiLi4vVHJhbnNhY3Rpb25cIjtcbmltcG9ydCB7IFRyYW5zYWN0aW9uTG9jayB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL1RyYW5zYWN0aW9uTG9ja1wiO1xuaW1wb3J0IHsgTG9jayB9IGZyb20gXCIuL0xvY2tcIjtcblxuZXhwb3J0IGNsYXNzIFN5bmNyb25vdXNMb2NrIGltcGxlbWVudHMgVHJhbnNhY3Rpb25Mb2NrIHtcbiAgcHJpdmF0ZSBjb3VudGVyOiBudW1iZXI7XG4gIHByaXZhdGUgcGVuZGluZ1RyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXTtcbiAgY3VycmVudFRyYW5zYWN0aW9uPzogVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25CZWdpbj86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgcmVhZG9ubHkgb25FbmQ/OiAoZXJyPzogRXJyb3IpID0+IFByb21pc2U8dm9pZD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2NrID0gbmV3IExvY2soKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb3VudGVyOiBudW1iZXIgPSAxLFxuICAgIG9uQmVnaW4/OiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxuICAgIG9uRW5kPzogKGVycj86IEVycm9yKSA9PiBQcm9taXNlPHZvaWQ+LFxuICApIHtcbiAgICB0aGlzLmNvdW50ZXIgPSBjb3VudGVyO1xuICAgIHRoaXMucGVuZGluZ1RyYW5zYWN0aW9ucyA9IFtdO1xuICAgIHRoaXMub25CZWdpbiA9IG9uQmVnaW47XG4gICAgdGhpcy5vbkVuZCA9IG9uRW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBiZSBwcm9jZXNzZWRcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICovXG4gIHN1Ym1pdCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBzZWxmLmxvY2suYWNxdWlyZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzZWxmLmN1cnJlbnRUcmFuc2FjdGlvbiAmJlxuICAgICAgICBzZWxmLmN1cnJlbnRUcmFuc2FjdGlvbi5pZCA9PT0gdHJhbnNhY3Rpb24uaWRcbiAgICAgICkge1xuICAgICAgICBzZWxmLmxvY2sucmVsZWFzZSgpO1xuICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb24uZmlyZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZi5jb3VudGVyID4gMCkge1xuICAgICAgICBzZWxmLmNvdW50ZXItLTtcbiAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgcmV0dXJuIHNlbGYuZmlyZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYucGVuZGluZ1RyYW5zYWN0aW9ucy5wdXNoKHRyYW5zYWN0aW9uKTtcbiAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBFeGVjdXRlcyBhIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGZpcmVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBzZWxmLmxvY2suYWNxdWlyZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgICAgIHNlbGYubG9jay5yZWxlYXNlKCk7XG4gICAgICBpZiAoc2VsZi5vbkJlZ2luKVxuICAgICAgICBzZWxmLm9uQmVnaW4oKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAvLyBhbGwuY2FsbChcbiAgICAgICAgICAvLyAgIHNlbGYsXG4gICAgICAgICAgLy8gICBgRmlyaW5nIHRyYW5zYWN0aW9uIHswfS4gezF9IHJlbWFpbmluZy4uLmAsXG4gICAgICAgICAgLy8gICB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAvLyAgIHRoaXMucGVuZGluZ1RyYW5zYWN0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgLy8gKTtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5maXJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgZWxzZSB7XG4gICAgICAgIC8vIGFsbC5jYWxsKFxuICAgICAgICAvLyAgIHNlbGYsXG4gICAgICAgIC8vICAgYEZpcmluZyB0cmFuc2FjdGlvbiB7MH0uIHsxfSByZW1haW5pbmcuLi5gLFxuICAgICAgICAvLyAgIHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAvLyAgIHRoaXMucGVuZGluZ1RyYW5zYWN0aW9ucy5sZW5ndGgsXG4gICAgICAgIC8vICk7XG4gICAgICAgIHRyYW5zYWN0aW9uLmZpcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQHN1bW1hcnkgUmVsZWFzZXMgVGhlIGxvY2sgYWZ0ZXIgdGhlIGNvbmNsdXNpb24gb2YgYSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgcmVsZWFzZShlcnI/OiBFcnJvcik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKCFzZWxmLmN1cnJlbnRUcmFuc2FjdGlvbilcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcIlRyeWluZyB0byByZWxlYXNlIGFuIHVuZXhpc3RpbmcgdHJhbnNhY3Rpb24uIHNob3VsZCBuZXZlciBoYXBwZW4uLi5cIixcbiAgICAgICAgICApO1xuICAgICAgICAvLyBkZWJ1Zy5jYWxsKFxuICAgICAgICAvLyAgIHNlbGYsXG4gICAgICAgIC8vICAgXCJSZWxlYXNpbmcgdHJhbnNhY3Rpb246IHswfVwiLFxuICAgICAgICAvLyAgIHNlbGYuY3VycmVudFRyYW5zYWN0aW9uPy50b1N0cmluZyh0cnVlLCB0cnVlKSxcbiAgICAgICAgLy8gKTtcbiAgICAgICAgc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHNlbGYubG9jay5yZWxlYXNlKCk7XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJDb25jbHVzaW9uQ0IgPSAoKSA9PiB7XG4gICAgICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWxmLnBlbmRpbmdUcmFuc2FjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9XG4gICAgICAgICAgICAgICAgc2VsZi5wZW5kaW5nVHJhbnNhY3Rpb25zLnNoaWZ0KCkgYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgICAgICAgICAgY29uc3QgY2IgPSAoKSA9PiBzZWxmLmZpcmVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgIC8vIGFsbChcbiAgICAgICAgICAgICAgLy8gICBgUmVsZWFzaW5nIFRyYW5zYWN0aW9uIExvY2sgb24gdHJhbnNhY3Rpb24gezB9YCxcbiAgICAgICAgICAgICAgLy8gICB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgLy8gKTtcblxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdHlwZW9mIChnbG9iYWxUaGlzIGFzIHVua25vd24gYXMgeyB3aW5kb3c6IGFueSB9KS53aW5kb3cgPT09XG4gICAgICAgICAgICAgICAgXCJ1bmRlZmluZWRcIlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLm5leHRUaWNrKGNiKTsgLy8gaWYgeW91IGFyZSBvbiBub2RlXG4gICAgICAgICAgICAgIGVsc2Ugc2V0VGltZW91dChjYiwgMCk7IC8vIGlmIHlvdSBhcmUgaW4gdGhlIGJyb3dzZXJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNlbGYuY291bnRlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc2VsZi5vbkVuZCkgc2VsZi5vbkVuZChlcnIpLnRoZW4oKCkgPT4gYWZ0ZXJDb25jbHVzaW9uQ0IoKSk7XG4gICAgICAgIGVsc2UgYWZ0ZXJDb25jbHVzaW9uQ0IoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
132
+ //# sourceMappingURL=SyncronousLock.js.map
@@ -1,3 +1,5 @@
1
+ import { Transaction } from "../Transaction";
2
+ import { TransactionLock } from "../interfaces/TransactionLock";
1
3
  /**
2
4
  * @summary Simple Synchronous Lock implementation
3
5
  * @description for transaction management
@@ -9,10 +11,7 @@
9
11
  *
10
12
  * @class SyncronousLock
11
13
  * @implements TransactionLock
12
- *
13
- * @category Transactions
14
- */ import { Transaction } from "../Transaction";
15
- import { TransactionLock } from "../interfaces/TransactionLock";
14
+ */
16
15
  export declare class SyncronousLock implements TransactionLock {
17
16
  private counter;
18
17
  private pendingTransactions;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncronousLock.js","sourceRoot":"","sources":["../../src/locks/SyncronousLock.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * @description Transaction lock implementations module
4
+ * @summary Contains implementations of the TransactionLock interface, providing different concurrency control strategies for transactions
5
+ * @module transactions/locks
6
+ */
2
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
8
  if (k2 === undefined) k2 = k;
4
9
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -16,4 +21,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
21
  Object.defineProperty(exports, "__esModule", { value: true });
17
22
  __exportStar(require("./Lock.cjs"), exports);
18
23
  __exportStar(require("./SyncronousLock.cjs"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ja3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUF1QjtBQUN2Qix1REFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9Mb2NrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TeW5jcm9ub3VzTG9ja1wiO1xuIl19
24
+ //# sourceMappingURL=index.js.map
@@ -1,2 +1,7 @@
1
+ /**
2
+ * @description Transaction lock implementations module
3
+ * @summary Contains implementations of the TransactionLock interface, providing different concurrency control strategies for transactions
4
+ * @module transactions/locks
5
+ */
1
6
  export * from "./Lock";
2
7
  export * from "./SyncronousLock";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locks/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,6CAAuB;AACvB,uDAAiC"}
package/lib/types.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHN1bW1hcnkgZGVmaW5lcyBhIGNhbGxhYmxlIGFzIHBlcmNlaXZlZCBieSB0aGUgbG9ja1xuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5UcmFuc2FjdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgTG9ja0NhbGxhYmxlID0gKHZhbHVlPzogdm9pZCB8IFByb21pc2VMaWtlPHZvaWQ+KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBDYWxsYmFjayA9IChlcnI/OiBFcnJvciwgcmVzdWx0PzogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbiJdfQ==
3
+ //# sourceMappingURL=types.js.map
package/lib/types.d.ts CHANGED
@@ -1,7 +1,17 @@
1
1
  /**
2
- * @summary defines a callable as perceived by the lock
3
- *
4
- * @memberOf module:db-decorators.Transactions
2
+ * @description Function type for transaction lock callbacks
3
+ * @summary Defines a callable function type as perceived by the transaction lock, used for resolving promises in the lock implementation
4
+ * @typedef {Function} LockCallable
5
+ * @memberOf module:transactions
5
6
  */
6
7
  export type LockCallable = (value?: void | PromiseLike<void>) => void;
8
+ /**
9
+ * @description Standard callback function type for asynchronous operations
10
+ * @summary Defines a Node.js-style callback function that receives an optional error as the first parameter and optional result and additional arguments
11
+ * @typedef {Function} Callback
12
+ * @param {Error} [err] - Optional error object if the operation failed
13
+ * @param {any} [result] - Optional result of the operation if successful
14
+ * @param {...any} [args] - Additional arguments that may be passed to the callback
15
+ * @memberOf module:transactions
16
+ */
7
17
  export type Callback = (err?: Error, result?: any, ...args: any[]) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/lib/utils.cjs CHANGED
@@ -14,4 +14,4 @@ function getObjectName(obj) {
14
14
  return obj.name;
15
15
  return obj.toString();
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FXQztBQVhELFNBQWdCLGFBQWEsQ0FBQyxHQUFRO0lBQ3BDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTztJQUNqQixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUN4QyxJQUNFLEdBQUcsQ0FBQyxXQUFXO1FBQ2YsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQ3BCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzRCxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQzlCLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxJQUFJLEdBQUcsQ0FBQyxJQUFJO1FBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQzNELE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0TmFtZShvYmo6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghb2JqKSByZXR1cm47XG4gIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSByZXR1cm4gb2JqO1xuICBpZiAoXG4gICAgb2JqLmNvbnN0cnVjdG9yICYmXG4gICAgb2JqLmNvbnN0cnVjdG9yLm5hbWUgJiZcbiAgICBbXCJGdW5jdGlvblwiLCBcIk9iamVjdFwiXS5pbmRleE9mKG9iai5jb25zdHJ1Y3Rvci5uYW1lKSA9PT0gLTFcbiAgKVxuICAgIHJldHVybiBvYmouY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIiAmJiBvYmoubmFtZSkgcmV0dXJuIG9iai5uYW1lO1xuICByZXR1cm4gb2JqLnRvU3RyaW5nKCk7XG59XG4iXX0=
17
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAAA,sCAWC;AAXD,SAAgB,aAAa,CAAC,GAAQ;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IACE,GAAG,CAAC,WAAW;QACf,GAAG,CAAC,WAAW,CAAC,IAAI;QACpB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3D,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC3D,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/transactional-decorators",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Locking and transactions",
5
5
  "type": "module",
6
6
  "exports": {
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "types": "lib/index.d.ts",
11
11
  "scripts": {
12
- "do-install": "TOKEN=$(cat .token) npm install",
12
+ "do-install": "NPM_TOKEN=$(cat .npmtoken) npm install",
13
13
  "update-dependencies": "PREFIX=\"decaf-ts\"; npm ls | grep \"$PREFIX\" | awk -F/ '{print $NF}' | sed 's/@.*//' | xargs -I package npm update @\"$PREFIX\"/package",
14
14
  "update-scripts": "npx update-scripts",
15
15
  "on-first-run": "npx update-scripts --boot",
@@ -26,13 +26,21 @@
26
26
  "coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.ts",
27
27
  "lint": "eslint .",
28
28
  "lint-fix": "eslint --fix .",
29
+ "prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
29
30
  "prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
30
31
  "release": "./bin/tag-release.sh",
31
32
  "clean-publish": "npx clean-publish",
32
33
  "drawings": "for FILE in workdocs/drawings/*.drawio; do echo \"converting $FILE to image...\" && docker run --rm -v $(pwd):/data rlespinasse/drawio-export --format png $FILE; done && cp -rf workdocs/drawings/export/* workdocs/resources/",
33
34
  "uml": "cd workdocs/uml && for FILE in ./*.puml; do docker run --rm -v $(pwd):/work -w /work miy4/plantuml -DPLANTUML_LIMIT_SIZE=8192 -tpng $FILE; done && cd ../.. && cp -fr workdocs/uml/*.png workdocs/resources/",
34
35
  "docs": "npx rimraf ./docs && mkdir docs && npx build-scripts --docs",
35
- "publish-docs": "docker run -it --rm --user $(id -u):$(id -g) -v \"$(pwd)/workdocs/confluence:/content\" -e ATLASSIAN_API_TOKEN=$(cat .confluence-token) ghcr.io/markdown-confluence/publish:latest"
36
+ "publish-docs": "docker run -it --rm --user $(id -u):$(id -g) -v \"$(pwd)/workdocs/confluence:/content\" -e ATLASSIAN_API_TOKEN=$(cat .confluence-token) ghcr.io/markdown-confluence/publish:latest",
37
+ "repo:init": "codex exec \"$(cat ./.codex/prompts/repo-setup.md)\nbase_path is `./`, initialize the repository\"",
38
+ "repo:setup": "codex exec \"$(cat ./.codex/prompts/repo-setup.md)\nbase_path is ./\"",
39
+ "repo:doc": "codex exec \"$(cat ./.codex/prompts/doc.md) $(cat ./.codex/prompts/bulk-docs.md)\nbase_path is ./\"",
40
+ "repo:tests": "codex exec \"$(cat ./.codex/prompts/bulk-tests.md)\nbase_path is ./ and coverage is 95%\" -s workspace-write",
41
+ "repo:readme": "codex exec \"$(cat ./.codex/prompts/update-readme.md)\nbase_path is ./\"",
42
+ "repo:pr": "npm run repo:doc && npm run repo:tests && npm run repo:readme",
43
+ "sync-codex": "./bin/sync-codex.sh"
36
44
  },
37
45
  "repository": {
38
46
  "type": "git",
@@ -47,36 +55,27 @@
47
55
  "dist"
48
56
  ],
49
57
  "keywords": [
50
- "plantuml",
51
- "mermaid",
52
- "uml",
53
- "drawio",
54
- "mddocs",
55
- "md",
56
- "jsdoc",
57
- "doc",
58
- "docs",
59
- "documentation",
60
- "ci/cd",
61
- "ci",
62
- "cd",
63
- "template",
58
+ "transactions",
59
+ "locking",
60
+ "decorators",
61
+ "concurrency",
62
+ "decaf",
64
63
  "typescript",
65
- "ts"
64
+ "synchronization",
65
+ "consistency",
66
+ "database",
67
+ "pessimistic"
66
68
  ],
67
- "author": "Tiago Venceslau",
68
- "license": "LGPL-3.0-or-later",
69
+ "author": "Tiago Venceslau and Contributors",
70
+ "license": "MIT",
69
71
  "bugs": {
70
72
  "url": "https://github.com/decaf-ts/ts-workspace/issues"
71
73
  },
72
74
  "homepage": "https://github.com/decaf-ts/ts-workspace#readme",
73
75
  "devDependencies": {
76
+ "@decaf-ts/logging": "latest",
74
77
  "@decaf-ts/utils": "latest",
75
78
  "@eslint/js": "^9.25.1",
76
- "@rollup/plugin-commonjs": "^28.0.3",
77
- "@rollup/plugin-json": "^6.1.0",
78
- "@rollup/plugin-node-resolve": "^16.0.1",
79
- "@rollup/plugin-typescript": "^12.1.2",
80
79
  "@stylistic/eslint-plugin": "^4.2.0",
81
80
  "@types/jest": "^29.5.14",
82
81
  "clean-publish": "^5.1.0",
@@ -96,7 +95,6 @@
96
95
  "npm-check-updates": "^18.0.0",
97
96
  "prettier": "3.5.3",
98
97
  "rimraf": "^6.0.1",
99
- "rollup": "^4.40.0",
100
98
  "ts-jest": "^29.3.2",
101
99
  "ts-loader": "^9.5.2",
102
100
  "ts-node": "^10.9.2",
@@ -105,6 +103,7 @@
105
103
  },
106
104
  "peerDependencies": {
107
105
  "@decaf-ts/db-decorators": "latest",
106
+ "@decaf-ts/decoration": "latest",
108
107
  "@decaf-ts/decorator-validation": "latest",
109
108
  "@decaf-ts/reflection": "latest",
110
109
  "reflect-metadata": "^0.2.1"