@decaf-ts/transactional-decorators 0.1.2 → 0.1.3
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.
- package/LICENSE.md +21 -157
- package/dist/transactional-decorators.cjs +166 -67
- package/dist/transactional-decorators.esm.cjs +166 -67
- package/lib/Transaction.cjs +87 -39
- package/lib/Transaction.d.ts +86 -38
- package/lib/constants.cjs +14 -1
- package/lib/constants.d.ts +13 -0
- package/lib/decorators.cjs +35 -11
- package/lib/decorators.d.ts +34 -10
- package/lib/esm/Transaction.d.ts +86 -38
- package/lib/esm/Transaction.js +90 -42
- package/lib/esm/constants.d.ts +13 -0
- package/lib/esm/constants.js +14 -1
- package/lib/esm/decorators.d.ts +34 -10
- package/lib/esm/decorators.js +37 -13
- package/lib/esm/index.d.ts +7 -13
- package/lib/esm/index.js +14 -20
- package/lib/esm/interfaces/TransactionLock.d.ts +13 -11
- package/lib/esm/interfaces/TransactionLock.js +1 -1
- package/lib/esm/interfaces/index.d.ts +5 -0
- package/lib/esm/interfaces/index.js +7 -2
- package/lib/esm/locks/Lock.d.ts +13 -5
- package/lib/esm/locks/Lock.js +14 -6
- package/lib/esm/locks/SyncronousLock.d.ts +3 -4
- package/lib/esm/locks/SyncronousLock.js +14 -2
- package/lib/esm/locks/index.d.ts +5 -0
- package/lib/esm/locks/index.js +8 -3
- package/lib/esm/types.d.ts +13 -3
- package/lib/esm/types.js +1 -1
- package/lib/index.cjs +8 -14
- package/lib/index.d.ts +7 -13
- package/lib/interfaces/TransactionLock.cjs +1 -1
- package/lib/interfaces/TransactionLock.d.ts +13 -11
- package/lib/interfaces/index.cjs +6 -1
- package/lib/interfaces/index.d.ts +5 -0
- package/lib/locks/Lock.cjs +14 -6
- package/lib/locks/Lock.d.ts +13 -5
- package/lib/locks/SyncronousLock.cjs +13 -1
- package/lib/locks/SyncronousLock.d.ts +3 -4
- package/lib/locks/index.cjs +6 -1
- package/lib/locks/index.d.ts +5 -0
- package/lib/types.cjs +1 -1
- package/lib/types.d.ts +13 -3
- package/package.json +2 -2
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { Transaction } from "../Transaction";
|
|
2
2
|
/**
|
|
3
|
-
* @
|
|
3
|
+
* @description Interface for transaction lock implementations
|
|
4
|
+
* @summary Defines the contract for transaction lock implementations that manage transaction execution order and concurrency
|
|
4
5
|
* @interface TransactionLock
|
|
5
|
-
*
|
|
6
|
-
* @category Transactions
|
|
6
|
+
* @memberOf module:transactions
|
|
7
7
|
*/
|
|
8
8
|
export interface TransactionLock {
|
|
9
9
|
/**
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
10
|
+
* @description Current active transaction reference
|
|
11
|
+
* @summary Stores a reference to the currently executing transaction, allowing access to the active transaction context
|
|
12
12
|
*/
|
|
13
13
|
currentTransaction?: Transaction;
|
|
14
14
|
/**
|
|
15
|
-
* @
|
|
16
|
-
* @
|
|
17
|
-
* @
|
|
15
|
+
* @description Submits a transaction for processing
|
|
16
|
+
* @summary Adds a transaction to the processing queue and handles its execution according to the lock's concurrency rules
|
|
17
|
+
* @param {Transaction} transaction - The transaction to be processed
|
|
18
|
+
* @return {void}
|
|
18
19
|
*/
|
|
19
20
|
submit(transaction: Transaction): void;
|
|
20
21
|
/**
|
|
21
|
-
* @
|
|
22
|
-
* @
|
|
23
|
-
* @
|
|
22
|
+
* @description Releases the transaction lock
|
|
23
|
+
* @summary Releases the lock after the conclusion of a transaction, allowing the next transaction to proceed, and handles any errors that occurred
|
|
24
|
+
* @param {Error} [err] - The error (if any) that caused the transaction to release the lock
|
|
25
|
+
* @return {Promise<void>} A promise that resolves when the lock has been released
|
|
24
26
|
*/
|
|
25
27
|
release(err?: Error): Promise<void>;
|
|
26
28
|
}
|
package/lib/interfaces/index.cjs
CHANGED
|
@@ -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,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHdEQUFrQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uIGludGVyZmFjZXMgbW9kdWxlXG4gKiBAc3VtbWFyeSBDb250YWlucyBpbnRlcmZhY2UgZGVmaW5pdGlvbnMgZm9yIHRoZSB0cmFuc2FjdGlvbiBzeXN0ZW0sIHByb3ZpZGluZyBjb250cmFjdHMgZm9yIHRyYW5zYWN0aW9uLXJlbGF0ZWQgY29tcG9uZW50c1xuICogQG1vZHVsZSB0cmFuc2FjdGlvbnMvaW50ZXJmYWNlc1xuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL1RyYW5zYWN0aW9uTG9ja1wiO1xuIl19
|
package/lib/locks/Lock.cjs
CHANGED
|
@@ -2,10 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Lock = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
17
|
-
* @
|
|
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,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2Nrcy9Mb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxJQUFJO0lBQWpCO1FBQ1UsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFDM0IsV0FBTSxHQUFHLEtBQUssQ0FBQztJQXFEekIsQ0FBQztJQW5EQzs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBZTtRQUMzQixNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQixJQUFJLE1BQVcsQ0FBQztRQUNoQixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCw0REFBNEQ7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUE2QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUNFLE9BQVEsVUFBeUMsQ0FBQyxNQUFNLEtBQUssV0FBVztnQkFFeEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7O2dCQUNyRCxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO1FBQ3hELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZERCxvQkF1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NrQ2FsbGFibGUgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBsb2NrIGltcGxlbWVudGF0aW9uIGZvciBjb25jdXJyZW5jeSBjb250cm9sXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIGJhc2ljIGxvY2sgbWVjaGFuaXNtIGZvciBjb250cm9sbGluZyBhY2Nlc3MgdG8gc2hhcmVkIHJlc291cmNlcywgd2l0aCBzdXBwb3J0IGZvciBxdWV1aW5nIGFuZCBleGVjdXRpbmcgZnVuY3Rpb25zIHdoZW4gdGhlIGxvY2sgaXMgYXZhaWxhYmxlXG4gKiBAY2xhc3MgTG9ja1xuICogQGV4YW1wbGVcbiAqIC8vIFVzaW5nIHRoZSBMb2NrIGNsYXNzIHRvIGV4ZWN1dGUgYSBmdW5jdGlvbiB3aXRoIGV4Y2x1c2l2ZSBhY2Nlc3NcbiAqIGNvbnN0IGxvY2sgPSBuZXcgTG9jaygpO1xuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgbG9jay5leGVjdXRlKGFzeW5jICgpID0+IHtcbiAqICAgLy8gVGhpcyBjb2RlIHdpbGwgcnVuIHdpdGggZXhjbHVzaXZlIGFjY2Vzc1xuICogICByZXR1cm4gYXdhaXQgcGVyZm9ybUNyaXRpY2FsT3BlcmF0aW9uKCk7XG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIExvY2sge1xuICBwcml2YXRlIHF1ZXVlOiBMb2NrQ2FsbGFibGVbXSA9IFtdO1xuICBwcml2YXRlIGxvY2tlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aXRoIGV4Y2x1c2l2ZSBsb2NrIGFjY2Vzc1xuICAgKiBAc3VtbWFyeSBBY3F1aXJlcyB0aGUgbG9jaywgZXhlY3V0ZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLCBhbmQgcmVsZWFzZXMgdGhlIGxvY2sgYWZ0ZXJ3YXJkLCBlbnN1cmluZyBwcm9wZXIgY2xlYW51cCBldmVuIGlmIHRoZSBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3JcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyAtIFRoZSBmdW5jdGlvbiB0byBleGVjdXRlIHdoZW4gdGhlIGxvY2sgaXMgYWNxdWlyZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGV4ZWN1dGVkIGZ1bmN0aW9uXG4gICAqL1xuICBhc3luYyBleGVjdXRlKGZ1bmM6ICgpID0+IGFueSkge1xuICAgIGF3YWl0IHRoaXMuYWNxdWlyZSgpO1xuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZ1bmMoKSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aGlzLnJlbGVhc2UoKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHRoaXMucmVsZWFzZSgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgd2FpdHMgdG8gYWNxdWlyZSB0aGUgbG9ja1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW2lzc3Vlcl1cbiAgICovXG4gIGFzeW5jIGFjcXVpcmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHNlbGYubG9ja2VkKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHNlbGYucXVldWUucHVzaChyZXNvbHZlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGYubG9ja2VkID0gdHJ1ZTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgcmVsZWFzZXMgdGhlIGxvY2tcbiAgICovXG4gIHJlbGVhc2UoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3QgbmV4dDogTG9ja0NhbGxhYmxlIHwgdW5kZWZpbmVkID0gc2VsZi5xdWV1ZS5zaGlmdCgpO1xuICAgIGlmIChuZXh0KSB7XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiAoZ2xvYmFsVGhpcyBhcyB1bmtub3duIGFzIHsgd2luZG93OiBhbnkgfSkud2luZG93ID09PSBcInVuZGVmaW5lZFwiXG4gICAgICApXG4gICAgICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5uZXh0VGljayhuZXh0KTsgLy8gaWYgeW91IGFyZSBvbiBub2RlXG4gICAgICBlbHNlIHNldFRpbWVvdXQobmV4dCwgMCk7IC8vIGlmIHlvdSBhcmUgaW4gdGhlIGJyb3dzZXJcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5sb2NrZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/lib/locks/Lock.d.ts
CHANGED
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
12
|
-
* @
|
|
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
|
/**
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY3Jvbm91c0xvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ja3MvU3luY3Jvbm91c0xvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEscUNBQThCO0FBRTlCLE1BQWEsY0FBYztJQVN6QixZQUNFLFVBQWtCLENBQUMsRUFDbkIsT0FBNkIsRUFDN0IsS0FBc0M7UUFUeEMsdUJBQWtCLEdBQWlCLFNBQVMsQ0FBQztRQUk1QixTQUFJLEdBQUcsSUFBSSxXQUFJLEVBQUUsQ0FBQztRQU9qQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsV0FBd0I7UUFDN0IsNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFDRSxJQUFJLENBQUMsa0JBQWtCO2dCQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxFQUFFLEVBQzdDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsV0FBd0I7UUFDOUMsNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQ2QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3ZCLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixnREFBZ0Q7b0JBQ2hELG9CQUFvQjtvQkFDcEIscUNBQXFDO29CQUNyQyxLQUFLO29CQUNMLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLENBQUM7aUJBQ0EsQ0FBQztnQkFDSixZQUFZO2dCQUNaLFVBQVU7Z0JBQ1YsZ0RBQWdEO2dCQUNoRCxvQkFBb0I7Z0JBQ3BCLHFDQUFxQztnQkFDckMsS0FBSztnQkFDTCxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFXO1FBQ3ZCLDREQUE0RDtRQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7b0JBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQ1YscUVBQXFFLENBQ3RFLENBQUM7Z0JBQ0osY0FBYztnQkFDZCxVQUFVO2dCQUNWLGtDQUFrQztnQkFDbEMsbURBQW1EO2dCQUNuRCxLQUFLO2dCQUNMLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRXBCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFO29CQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQzVCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzs0QkFDeEMsTUFBTSxXQUFXLEdBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBaUIsQ0FBQzs0QkFFbEQsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQzs0QkFDbkQsRUFBRTs0QkFDRixPQUFPOzRCQUNQLHFEQUFxRDs0QkFDckQsb0JBQW9COzRCQUNwQixLQUFLOzRCQUVMLElBQ0UsT0FBUSxVQUF5QyxDQUFDLE1BQU07Z0NBQ3hELFdBQVc7Z0NBRVgsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7O2dDQUNuRCxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO3dCQUN0RCxDQUFDOzZCQUFNLENBQUM7NEJBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNqQixDQUFDO3dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ3BCLE9BQU8sRUFBRSxDQUFDO29CQUNaLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQztnQkFFRixJQUFJLElBQUksQ0FBQyxLQUFLO29CQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQzs7b0JBQzNELGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXBJRCx3Q0FvSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzdW1tYXJ5IFNpbXBsZSBTeW5jaHJvbm91cyBMb2NrIGltcGxlbWVudGF0aW9uXG4gKiBAZGVzY3JpcHRpb24gZm9yIHRyYW5zYWN0aW9uIG1hbmFnZW1lbnRcbiAqIGFkYXB0ZWQgZnJvbSB7QGxpbmsgaHR0cHM6Ly93d3cudGFsa2luZ2hpZ2h0ZWNoLmNvbS9lbi9jcmVhdGluZy1hLWpzLWxvY2stZm9yLWEtcmVzb3VyY2UvfVxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBbY291bnRlcl0gdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgdHJhbnNhY3Rpb25zIGFsbG93ZWQuIGRlZmF1bHRzIHRvIDFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvbkJlZ2luXSB0byBiZSBjYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFuc2FjdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW29uRW5kXSB0byBiZSBjYWxsZWQgYXQgdGhlIGNvbmNsdXNpb24gb2YgdGhlIHRyYW5zYWN0aW9uXG4gKlxuICogQGNsYXNzIFN5bmNyb25vdXNMb2NrXG4gKiBAaW1wbGVtZW50cyBUcmFuc2FjdGlvbkxvY2tcbiAqXG4gKiBAY2F0ZWdvcnkgVHJhbnNhY3Rpb25zXG4gKi8gaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tIFwiLi4vVHJhbnNhY3Rpb25cIjtcbmltcG9ydCB7IFRyYW5zYWN0aW9uTG9jayB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL1RyYW5zYWN0aW9uTG9ja1wiO1xuaW1wb3J0IHsgTG9jayB9IGZyb20gXCIuL0xvY2tcIjtcblxuZXhwb3J0IGNsYXNzIFN5bmNyb25vdXNMb2NrIGltcGxlbWVudHMgVHJhbnNhY3Rpb25Mb2NrIHtcbiAgcHJpdmF0ZSBjb3VudGVyOiBudW1iZXI7XG4gIHByaXZhdGUgcGVuZGluZ1RyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXTtcbiAgY3VycmVudFRyYW5zYWN0aW9uPzogVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25CZWdpbj86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgcmVhZG9ubHkgb25FbmQ/OiAoZXJyPzogRXJyb3IpID0+IFByb21pc2U8dm9pZD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2NrID0gbmV3IExvY2soKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb3VudGVyOiBudW1iZXIgPSAxLFxuICAgIG9uQmVnaW4/OiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxuICAgIG9uRW5kPzogKGVycj86IEVycm9yKSA9PiBQcm9taXNlPHZvaWQ+LFxuICApIHtcbiAgICB0aGlzLmNvdW50ZXIgPSBjb3VudGVyO1xuICAgIHRoaXMucGVuZGluZ1RyYW5zYWN0aW9ucyA9IFtdO1xuICAgIHRoaXMub25CZWdpbiA9IG9uQmVnaW47XG4gICAgdGhpcy5vbkVuZCA9IG9uRW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBiZSBwcm9jZXNzZWRcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICovXG4gIHN1Ym1pdCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBzZWxmLmxvY2suYWNxdWlyZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzZWxmLmN1cnJlbnRUcmFuc2FjdGlvbiAmJlxuICAgICAgICBzZWxmLmN1cnJlbnRUcmFuc2FjdGlvbi5pZCA9PT0gdHJhbnNhY3Rpb24uaWRcbiAgICAgICkge1xuICAgICAgICBzZWxmLmxvY2sucmVsZWFzZSgpO1xuICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb24uZmlyZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZi5jb3VudGVyID4gMCkge1xuICAgICAgICBzZWxmLmNvdW50ZXItLTtcbiAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgcmV0dXJuIHNlbGYuZmlyZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYucGVuZGluZ1RyYW5zYWN0aW9ucy5wdXNoKHRyYW5zYWN0aW9uKTtcbiAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBFeGVjdXRlcyBhIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGZpcmVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBzZWxmLmxvY2suYWNxdWlyZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgICAgIHNlbGYubG9jay5yZWxlYXNlKCk7XG4gICAgICBpZiAoc2VsZi5vbkJlZ2luKVxuICAgICAgICBzZWxmLm9uQmVnaW4oKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAvLyBhbGwuY2FsbChcbiAgICAgICAgICAvLyAgIHNlbGYsXG4gICAgICAgICAgLy8gICBgRmlyaW5nIHRyYW5zYWN0aW9uIHswfS4gezF9IHJlbWFpbmluZy4uLmAsXG4gICAgICAgICAgLy8gICB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAvLyAgIHRoaXMucGVuZGluZ1RyYW5zYWN0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgLy8gKTtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5maXJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgZWxzZSB7XG4gICAgICAgIC8vIGFsbC5jYWxsKFxuICAgICAgICAvLyAgIHNlbGYsXG4gICAgICAgIC8vICAgYEZpcmluZyB0cmFuc2FjdGlvbiB7MH0uIHsxfSByZW1haW5pbmcuLi5gLFxuICAgICAgICAvLyAgIHRyYW5zYWN0aW9uLmlkLFxuICAgICAgICAvLyAgIHRoaXMucGVuZGluZ1RyYW5zYWN0aW9ucy5sZW5ndGgsXG4gICAgICAgIC8vICk7XG4gICAgICAgIHRyYW5zYWN0aW9uLmZpcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQHN1bW1hcnkgUmVsZWFzZXMgVGhlIGxvY2sgYWZ0ZXIgdGhlIGNvbmNsdXNpb24gb2YgYSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgcmVsZWFzZShlcnI/OiBFcnJvcik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKCFzZWxmLmN1cnJlbnRUcmFuc2FjdGlvbilcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcIlRyeWluZyB0byByZWxlYXNlIGFuIHVuZXhpc3RpbmcgdHJhbnNhY3Rpb24uIHNob3VsZCBuZXZlciBoYXBwZW4uLi5cIixcbiAgICAgICAgICApO1xuICAgICAgICAvLyBkZWJ1Zy5jYWxsKFxuICAgICAgICAvLyAgIHNlbGYsXG4gICAgICAgIC8vICAgXCJSZWxlYXNpbmcgdHJhbnNhY3Rpb246IHswfVwiLFxuICAgICAgICAvLyAgIHNlbGYuY3VycmVudFRyYW5zYWN0aW9uPy50b1N0cmluZyh0cnVlLCB0cnVlKSxcbiAgICAgICAgLy8gKTtcbiAgICAgICAgc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHNlbGYubG9jay5yZWxlYXNlKCk7XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJDb25jbHVzaW9uQ0IgPSAoKSA9PiB7XG4gICAgICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWxmLnBlbmRpbmdUcmFuc2FjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9XG4gICAgICAgICAgICAgICAgc2VsZi5wZW5kaW5nVHJhbnNhY3Rpb25zLnNoaWZ0KCkgYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgICAgICAgICAgY29uc3QgY2IgPSAoKSA9PiBzZWxmLmZpcmVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgIC8vIGFsbChcbiAgICAgICAgICAgICAgLy8gICBgUmVsZWFzaW5nIFRyYW5zYWN0aW9uIExvY2sgb24gdHJhbnNhY3Rpb24gezB9YCxcbiAgICAgICAgICAgICAgLy8gICB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgLy8gKTtcblxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdHlwZW9mIChnbG9iYWxUaGlzIGFzIHVua25vd24gYXMgeyB3aW5kb3c6IGFueSB9KS53aW5kb3cgPT09XG4gICAgICAgICAgICAgICAgXCJ1bmRlZmluZWRcIlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLm5leHRUaWNrKGNiKTsgLy8gaWYgeW91IGFyZSBvbiBub2RlXG4gICAgICAgICAgICAgIGVsc2Ugc2V0VGltZW91dChjYiwgMCk7IC8vIGlmIHlvdSBhcmUgaW4gdGhlIGJyb3dzZXJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNlbGYuY291bnRlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc2VsZi5vbkVuZCkgc2VsZi5vbkVuZChlcnIpLnRoZW4oKCkgPT4gYWZ0ZXJDb25jbHVzaW9uQ0IoKSk7XG4gICAgICAgIGVsc2UgYWZ0ZXJDb25jbHVzaW9uQ0IoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3luY3Jvbm91c0xvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ja3MvU3luY3Jvbm91c0xvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEscUNBQThCO0FBRTlCOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxjQUFjO0lBU3pCLFlBQ0UsVUFBa0IsQ0FBQyxFQUNuQixPQUE2QixFQUM3QixLQUFzQztRQVR4Qyx1QkFBa0IsR0FBaUIsU0FBUyxDQUFDO1FBSTVCLFNBQUksR0FBRyxJQUFJLFdBQUksRUFBRSxDQUFDO1FBT2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxXQUF3QjtRQUM3Qiw0REFBNEQ7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUNFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLEVBQUUsRUFDN0MsQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJ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Qzt3QkFDcEIsT0FBTyxFQUFFLENBQUM7b0JBQ1osQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO2dCQUVGLElBQUksSUFBSSxDQUFDLEtBQUs7b0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDOztvQkFDM0QsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBcElELHdDQW9JQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSBcIi4uL1RyYW5zYWN0aW9uXCI7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkxvY2sgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9UcmFuc2FjdGlvbkxvY2tcIjtcbmltcG9ydCB7IExvY2sgfSBmcm9tIFwiLi9Mb2NrXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgU2ltcGxlIFN5bmNocm9ub3VzIExvY2sgaW1wbGVtZW50YXRpb25cbiAqIEBkZXNjcmlwdGlvbiBmb3IgdHJhbnNhY3Rpb24gbWFuYWdlbWVudFxuICogYWRhcHRlZCBmcm9tIHtAbGluayBodHRwczovL3d3dy50YWxraW5naGlnaHRlY2guY29tL2VuL2NyZWF0aW5nLWEtanMtbG9jay1mb3ItYS1yZXNvdXJjZS99XG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFtjb3VudGVyXSB0aGUgbnVtYmVyIG9mIHNpbXVsdGFuZW91cyB0cmFuc2FjdGlvbnMgYWxsb3dlZC4gZGVmYXVsdHMgdG8gMVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW29uQmVnaW5dIHRvIGJlIGNhbGxlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb25FbmRdIHRvIGJlIGNhbGxlZCBhdCB0aGUgY29uY2x1c2lvbiBvZiB0aGUgdHJhbnNhY3Rpb25cbiAqXG4gKiBAY2xhc3MgU3luY3Jvbm91c0xvY2tcbiAqIEBpbXBsZW1lbnRzIFRyYW5zYWN0aW9uTG9ja1xuICovXG5leHBvcnQgY2xhc3MgU3luY3Jvbm91c0xvY2sgaW1wbGVtZW50cyBUcmFuc2FjdGlvbkxvY2sge1xuICBwcml2YXRlIGNvdW50ZXI6IG51bWJlcjtcbiAgcHJpdmF0ZSBwZW5kaW5nVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdO1xuICBjdXJyZW50VHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBvbkJlZ2luPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcHJpdmF0ZSByZWFkb25seSBvbkVuZD86IChlcnI/OiBFcnJvcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2sgPSBuZXcgTG9jaygpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvdW50ZXI6IG51bWJlciA9IDEsXG4gICAgb25CZWdpbj86ICgpID0+IFByb21pc2U8dm9pZD4sXG4gICAgb25FbmQ/OiAoZXJyPzogRXJyb3IpID0+IFByb21pc2U8dm9pZD5cbiAgKSB7XG4gICAgdGhpcy5jb3VudGVyID0gY291bnRlcjtcbiAgICB0aGlzLnBlbmRpbmdUcmFuc2FjdGlvbnMgPSBbXTtcbiAgICB0aGlzLm9uQmVnaW4gPSBvbkJlZ2luO1xuICAgIHRoaXMub25FbmQgPSBvbkVuZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gYmUgcHJvY2Vzc2VkXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqL1xuICBzdWJtaXQodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5sb2NrLmFjcXVpcmUoKS50aGVuKCgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24gJiZcbiAgICAgICAgc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24uaWQgPT09IHRyYW5zYWN0aW9uLmlkXG4gICAgICApIHtcbiAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmZpcmUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGYuY291bnRlciA+IDApIHtcbiAgICAgICAgc2VsZi5jb3VudGVyLS07XG4gICAgICAgIHNlbGYubG9jay5yZWxlYXNlKCk7XG4gICAgICAgIHJldHVybiBzZWxmLmZpcmVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxmLnBlbmRpbmdUcmFuc2FjdGlvbnMucHVzaCh0cmFuc2FjdGlvbik7XG4gICAgICAgIHNlbGYubG9jay5yZWxlYXNlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBmaXJlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5sb2NrLmFjcXVpcmUoKS50aGVuKCgpID0+IHtcbiAgICAgIHNlbGYuY3VycmVudFRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gICAgICBzZWxmLmxvY2sucmVsZWFzZSgpO1xuICAgICAgaWYgKHNlbGYub25CZWdpbilcbiAgICAgICAgc2VsZi5vbkJlZ2luKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgLy8gYWxsLmNhbGwoXG4gICAgICAgICAgLy8gICBzZWxmLFxuICAgICAgICAgIC8vICAgYEZpcmluZyB0cmFuc2FjdGlvbiB7MH0uIHsxfSByZW1haW5pbmcuLi5gLFxuICAgICAgICAgIC8vICAgdHJhbnNhY3Rpb24uaWQsXG4gICAgICAgICAgLy8gICB0aGlzLnBlbmRpbmdUcmFuc2FjdGlvbnMubGVuZ3RoLFxuICAgICAgICAgIC8vICk7XG4gICAgICAgICAgdHJhbnNhY3Rpb24uZmlyZSgpO1xuICAgICAgICB9KTtcbiAgICAgIGVsc2Uge1xuICAgICAgICAvLyBhbGwuY2FsbChcbiAgICAgICAgLy8gICBzZWxmLFxuICAgICAgICAvLyAgIGBGaXJpbmcgdHJhbnNhY3Rpb24gezB9LiB7MX0gcmVtYWluaW5nLi4uYCxcbiAgICAgICAgLy8gICB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgLy8gICB0aGlzLnBlbmRpbmdUcmFuc2FjdGlvbnMubGVuZ3RoLFxuICAgICAgICAvLyApO1xuICAgICAgICB0cmFuc2FjdGlvbi5maXJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJlbGVhc2VzIFRoZSBsb2NrIGFmdGVyIHRoZSBjb25jbHVzaW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAgICovXG4gIGFzeW5jIHJlbGVhc2UoZXJyPzogRXJyb3IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHNlbGYubG9jay5hY3F1aXJlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGlmICghc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24pXG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgXCJUcnlpbmcgdG8gcmVsZWFzZSBhbiB1bmV4aXN0aW5nIHRyYW5zYWN0aW9uLiBzaG91bGQgbmV2ZXIgaGFwcGVuLi4uXCJcbiAgICAgICAgICApO1xuICAgICAgICAvLyBkZWJ1Zy5jYWxsKFxuICAgICAgICAvLyAgIHNlbGYsXG4gICAgICAgIC8vICAgXCJSZWxlYXNpbmcgdHJhbnNhY3Rpb246IHswfVwiLFxuICAgICAgICAvLyAgIHNlbGYuY3VycmVudFRyYW5zYWN0aW9uPy50b1N0cmluZyh0cnVlLCB0cnVlKSxcbiAgICAgICAgLy8gKTtcbiAgICAgICAgc2VsZi5jdXJyZW50VHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHNlbGYubG9jay5yZWxlYXNlKCk7XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJDb25jbHVzaW9uQ0IgPSAoKSA9PiB7XG4gICAgICAgICAgc2VsZi5sb2NrLmFjcXVpcmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWxmLnBlbmRpbmdUcmFuc2FjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9XG4gICAgICAgICAgICAgICAgc2VsZi5wZW5kaW5nVHJhbnNhY3Rpb25zLnNoaWZ0KCkgYXMgVHJhbnNhY3Rpb247XG5cbiAgICAgICAgICAgICAgY29uc3QgY2IgPSAoKSA9PiBzZWxmLmZpcmVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgIC8vIGFsbChcbiAgICAgICAgICAgICAgLy8gICBgUmVsZWFzaW5nIFRyYW5zYWN0aW9uIExvY2sgb24gdHJhbnNhY3Rpb24gezB9YCxcbiAgICAgICAgICAgICAgLy8gICB0cmFuc2FjdGlvbi5pZCxcbiAgICAgICAgICAgICAgLy8gKTtcblxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdHlwZW9mIChnbG9iYWxUaGlzIGFzIHVua25vd24gYXMgeyB3aW5kb3c6IGFueSB9KS53aW5kb3cgPT09XG4gICAgICAgICAgICAgICAgXCJ1bmRlZmluZWRcIlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLm5leHRUaWNrKGNiKTsgLy8gaWYgeW91IGFyZSBvbiBub2RlXG4gICAgICAgICAgICAgIGVsc2Ugc2V0VGltZW91dChjYiwgMCk7IC8vIGlmIHlvdSBhcmUgaW4gdGhlIGJyb3dzZXJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNlbGYuY291bnRlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZi5sb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc2VsZi5vbkVuZCkgc2VsZi5vbkVuZChlcnIpLnRoZW4oKCkgPT4gYWZ0ZXJDb25jbHVzaW9uQ0IoKSk7XG4gICAgICAgIGVsc2UgYWZ0ZXJDb25jbHVzaW9uQ0IoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -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;
|
package/lib/locks/index.cjs
CHANGED
|
@@ -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,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ja3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCw2Q0FBdUI7QUFDdkIsdURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gVHJhbnNhY3Rpb24gbG9jayBpbXBsZW1lbnRhdGlvbnMgbW9kdWxlXG4gKiBAc3VtbWFyeSBDb250YWlucyBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFRyYW5zYWN0aW9uTG9jayBpbnRlcmZhY2UsIHByb3ZpZGluZyBkaWZmZXJlbnQgY29uY3VycmVuY3kgY29udHJvbCBzdHJhdGVnaWVzIGZvciB0cmFuc2FjdGlvbnNcbiAqIEBtb2R1bGUgdHJhbnNhY3Rpb25zL2xvY2tzXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vTG9ja1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vU3luY3Jvbm91c0xvY2tcIjtcbiJdfQ==
|
package/lib/locks/index.d.ts
CHANGED
|
@@ -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";
|
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,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIHR5cGUgZm9yIHRyYW5zYWN0aW9uIGxvY2sgY2FsbGJhY2tzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgY2FsbGFibGUgZnVuY3Rpb24gdHlwZSBhcyBwZXJjZWl2ZWQgYnkgdGhlIHRyYW5zYWN0aW9uIGxvY2ssIHVzZWQgZm9yIHJlc29sdmluZyBwcm9taXNlcyBpbiB0aGUgbG9jayBpbXBsZW1lbnRhdGlvblxuICogQHR5cGVkZWYge0Z1bmN0aW9ufSBMb2NrQ2FsbGFibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dHJhbnNhY3Rpb25zXG4gKi9cbmV4cG9ydCB0eXBlIExvY2tDYWxsYWJsZSA9ICh2YWx1ZT86IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RhbmRhcmQgY2FsbGJhY2sgZnVuY3Rpb24gdHlwZSBmb3IgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IERlZmluZXMgYSBOb2RlLmpzLXN0eWxlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgYW4gb3B0aW9uYWwgZXJyb3IgYXMgdGhlIGZpcnN0IHBhcmFtZXRlciBhbmQgb3B0aW9uYWwgcmVzdWx0IGFuZCBhZGRpdGlvbmFsIGFyZ3VtZW50c1xuICogQHR5cGVkZWYge0Z1bmN0aW9ufSBDYWxsYmFja1xuICogQHBhcmFtIHtFcnJvcn0gW2Vycl0gLSBPcHRpb25hbCBlcnJvciBvYmplY3QgaWYgdGhlIG9wZXJhdGlvbiBmYWlsZWRcbiAqIEBwYXJhbSB7YW55fSBbcmVzdWx0XSAtIE9wdGlvbmFsIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uIGlmIHN1Y2Nlc3NmdWxcbiAqIEBwYXJhbSB7Li4uYW55fSBbYXJnc10gLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0aGF0IG1heSBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnRyYW5zYWN0aW9uc1xuICovXG5leHBvcnQgdHlwZSBDYWxsYmFjayA9IChlcnI/OiBFcnJvciwgcmVzdWx0PzogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbiJdfQ==
|
package/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/transactional-decorators",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Locking and transactions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"ts"
|
|
66
66
|
],
|
|
67
67
|
"author": "Tiago Venceslau",
|
|
68
|
-
"license": "
|
|
68
|
+
"license": "MIT",
|
|
69
69
|
"bugs": {
|
|
70
70
|
"url": "https://github.com/decaf-ts/ts-workspace/issues"
|
|
71
71
|
},
|