@decaf-ts/transactional-decorators 0.11.0 → 0.12.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.
@@ -1,2 +1,2 @@
1
- var t,e;t=this,e=function(t,e,i,s){"use strict";class a{constructor(){this.queue=[],this.locked=!1}async execute(t,...e){let i;await this.acquire();try{i=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),i}async acquire(...t){const e=this;return e.locked?new Promise(t=>e.queue.push(t)):(e.locked=!0,Promise.resolve())}release(...t){const e=this.queue.shift();e?void 0===globalThis.window?globalThis.process.nextTick(e):setTimeout(e,0):this.locked=!1}}const n={TRANSACTIONAL:"transactional"};e.Metadata.transactionals=t=>{const i=e.Metadata.get(t,n.TRANSACTIONAL);return i?Object.keys(i):[]},e.Metadata.isTransactional=t=>!!e.Metadata.get(t,n.TRANSACTIONAL);class o extends i.InternalError{constructor(t="Transaction timed out"){super(t,o.name,500)}}const r=new WeakMap;class c extends s.LoggedClass{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(s.Logging.for(c),{get:(t,e,i)=>"log"!==e||c.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=c.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,s){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=s,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const s=this.log.for(this.push),a=c.describeTarget(t),n=c.describeTarget(e),o=new c(a,n,async()=>{const a=s.for(o.id.toString());try{a.verbose("Executing transaction method "+n),a.debug("With arguments: "+JSON.stringify(i));const s=await Promise.resolve(e.call(o.bindToTransaction(t),...i));return a.verbose(`Transaction method ${n} executed successfully`),a.debug("Result: "+JSON.stringify(s)),await o.release(),a.debug("lock released"),s}catch(t){throw await o.release(t),t}});return s.debug(`Pushing transaction ${o.id} for method ${n} on issuer ${a}`),c.submit(o)}static async run(t,e,i){const s="function"!=typeof t,a=s?t:void 0,n=s?e:t;if("function"!=typeof n)throw Error("Transaction.run requires an async function");const o=s?i:e,r=Array.isArray(o)&&o.length?o:void 0,l=a?c.describeTarget(a):c.describeTarget(n),h=c.describeTarget(n);let d;return d=new c(l,h,async()=>{let t;try{const t=a?d.bindToTransaction(a):void 0;return await n.call(t??d)}catch(e){throw t=e,e}finally{await d.release(t instanceof Error?t:void 0)}},r),c.submit(d)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new l),this.lock}static submit(t){return c.getLock().submit(t)}static async release(t){return c.getLock().release(t)}async release(t){this.released||(this.released=!0,await c.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(t){let s=this.metadataCache.get(t);if(s)return s;const a=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),n=e.Metadata.transactionals(t)??[],o=(e.Metadata.properties(t)||[]).filter(t=>!a.has(t)),r=new Map;return o.forEach(i=>{const s=e.Metadata.type(t,i);r.set(i,!!s&&e.Metadata.isTransactional(s))}),s={methods:n,propertyKeys:o,propertyDesignTypes:r},this.metadataCache.set(t,s),s}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(t){const a=this.log.for(this.bindToTransaction);a.verbose(`Binding object ${s.getObjectName(t)} to transaction ${this.id}`);const n=c.getTransactionalMetadata(t.constructor),o=n.methods;if(!o.length)return t;const r=this,l=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),h=new Set(n.propertyKeys);Object.getOwnPropertyNames(t).forEach(t=>{l.has(t)||h.add(t)});const d=Array.from(h).filter(i=>{if(n.propertyDesignTypes.get(i))return!0;const s=t[i];return!(!s||"object"!=typeof s&&"function"!=typeof s||!e.Metadata.isTransactional(s.constructor))});a.debug(`found transaction methods: ${o.join(", ")} and properties: ${d.join(", ")}`);const u=new Proxy(t,{get:(t,e,i)=>o.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[r,...i])}):d.includes(e)?r.bindToTransaction(t[e]):Reflect.get(t,e,i)});return u[i.DBKeys.ORIGINAL]=t[i.DBKeys.ORIGINAL]||t,u.toString=()=>s.getObjectName(u[i.DBKeys.ORIGINAL])+" proxy for transaction "+this.id,u.__transactionProxy=!0,u.__transactionTarget=t.__transactionTarget||t,c.contexts.set(u,r),u}applyGlobalTimeout(t){if(0>=c.globalTimeout)return t;const e=c.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((s,a)=>{let n=!1;const r=setTimeout(()=>{if(n)return;const t=new o(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),a(t)},e);t.then(t=>{n=!0,clearTimeout(r),s(t)}).catch(t=>{n=!0,clearTimeout(r),a(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=c.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return s.getObjectName(t);const e=t;let i=r.get(e);return i||(i=s.getObjectName(t),r.set(e,i)),i}}class l extends s.LoggedClass{get log(){return this._log||(this._log=c.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new a}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),s.isBrowser()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}const h="##VERSION##",d="##PACKAGE##";e.Metadata.registerLibrary(d,h),t.Lock=a,t.MultiLock=class extends a{constructor(){super(),this.locks={},this.lock=new a}async lockFor(t){return await this.lock.acquire(),this.locks[t]||(this.locks[t]=new a),this.lock.release(),this.locks[t]}async execute(t,e,...i){return(await this.lockFor(e)).execute(t,...i)}async acquire(t,...e){return(await this.lockFor(t)).acquire(...e)}release(t,...e){if(!(t in this.locks))throw Error("Trying to release a non existing lock. should be impossible");return this.locks[t].release(...e)}},t.PACKAGE_NAME=d,t.SynchronousLock=l,t.TimeoutError=o,t.Transaction=c,t.TransactionalKeys=n,t.VERSION=h,t.transactional=(...t)=>e.Decoration.for(n.TRANSACTIONAL).define({decorator:(...t)=>(s,a,o)=>{if(!o)throw new i.InternalError("This decorator only applies to methods");return e.method()(s,a,o),e.Metadata.set(s.constructor,e.Metadata.key(n.TRANSACTIONAL,a),{data:t}),o.value=new Proxy(o.value,{apply:async(e,i,n)=>new Promise((o,r)=>{async function l(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?r(e):o(i)}const h=n[0],d=(()=>{let t=0;for(;t<n.length&&n[t]instanceof c;)t++;return t})(),u=d>0?n.slice(d):n,g=h instanceof c?h:c.contextTransaction(i);if(g){const n=new c(s.name,a,async()=>{try{return o(await Reflect.apply(e,n.bindToTransaction(i),u))}catch(t){return r(t)}},t.length?t:void 0);g.bindTransaction(n),g.fire()}else{const n=new c(s.name,a,async()=>{try{return l(n,void 0,await Reflect.apply(e,n.bindToTransaction(i),u))}catch(t){return l(n,t)}},t.length?t:void 0);c.submit(n)}})}),o},args:t}).apply()},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/logging"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["transactional-decorators"]={},t.decafTsDecoration,t.decafTsDbDecorators,t.decafTsLogging);
1
+ var t,e;t=this,e=function(t,e,i,s){"use strict";class a{constructor(){this.queue=[],this.locked=!1}async execute(t,...e){let i;await this.acquire();try{i=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),i}async acquire(...t){const e=this;return e.locked?new Promise(t=>e.queue.push(t)):(e.locked=!0,Promise.resolve())}release(...t){const e=this.queue.shift();e?void 0===globalThis.window?globalThis.process.nextTick(e):setTimeout(e,0):this.locked=!1}}const n={TRANSACTIONAL:"transactional"};e.Metadata.transactionals=t=>{const i=e.Metadata.get(t,n.TRANSACTIONAL);return i?Object.keys(i):[]},e.Metadata.isTransactional=t=>!!e.Metadata.get(t,n.TRANSACTIONAL);class o extends i.InternalError{constructor(t="Transaction timed out"){super(t,o.name,500)}}const r=new WeakMap;class c extends s.LoggedClass{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(s.Logging.for(c),{get:(t,e,i)=>"log"!==e||c.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=c.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,s){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=s,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const s=this.log.for(this.push),a=c.describeTarget(t),n=c.describeTarget(e),o=new c(a,n,async()=>{const a=s.for(o.id.toString());try{a.verbose("Executing transaction method "+n),a.debug("With arguments: "+JSON.stringify(i));const s=await Promise.resolve(e.call(o.bindToTransaction(t),...i));return a.verbose(`Transaction method ${n} executed successfully`),a.debug("Result: "+JSON.stringify(s)),await o.release(),a.debug("lock released"),s}catch(t){throw await o.release(t),t}});return s.debug(`Pushing transaction ${o.id} for method ${n} on issuer ${a}`),c.submit(o)}static async run(t,e,i){const s="function"!=typeof t,a=s?t:void 0,n=s?e:t;if("function"!=typeof n)throw Error("Transaction.run requires an async function");const o=s?i:e,r=Array.isArray(o)&&o.length?o:void 0,l=a?c.describeTarget(a):c.describeTarget(n),h=c.describeTarget(n);let d;return d=new c(l,h,async()=>{let t;try{const t=a?d.bindToTransaction(a):void 0;return await n.call(t??d)}catch(e){throw t=e,e}finally{await d.release(t instanceof Error?t:void 0)}},r),c.submit(d)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new l),this.lock}static submit(t){return c.getLock().submit(t)}static async release(t){return c.getLock().release(t)}async release(t){this.released||(this.released=!0,await c.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(t){let s=this.metadataCache.get(t);if(s)return s;const a=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),n=e.Metadata.transactionals(t)??[],o=(e.Metadata.properties(t)||[]).filter(t=>!a.has(t)),r=new Map;return o.forEach(i=>{const s=e.Metadata.type(t,i);r.set(i,!!s&&e.Metadata.isTransactional(s))}),s={methods:n,propertyKeys:o,propertyDesignTypes:r},this.metadataCache.set(t,s),s}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(t){const a=this.log.for(this.bindToTransaction);a.verbose(`Binding object ${s.getObjectName(t)} to transaction ${this.id}`);const n=c.getTransactionalMetadata(t.constructor),o=n.methods;if(!o.length)return t;const r=this,l=new Set(["__transactionProxy","__transactionTarget","string"==typeof i.DBKeys.ORIGINAL?i.DBKeys.ORIGINAL:"__originalObj"]),h=new Set(n.propertyKeys);Object.getOwnPropertyNames(t).forEach(t=>{l.has(t)||h.add(t)});const d=Array.from(h).filter(i=>{if(n.propertyDesignTypes.get(i))return!0;const s=t[i];return!(!s||"object"!=typeof s&&"function"!=typeof s||!e.Metadata.isTransactional(s.constructor))});a.debug(`found transaction methods: ${o.join(", ")} and properties: ${d.join(", ")}`);const u=new Proxy(t,{get:(t,e,i)=>o.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[r,...i])}):d.includes(e)?r.bindToTransaction(t[e]):Reflect.get(t,e,i)});return u[i.DBKeys.ORIGINAL]=t[i.DBKeys.ORIGINAL]||t,u.toString=()=>s.getObjectName(u[i.DBKeys.ORIGINAL])+" proxy for transaction "+this.id,u.__transactionProxy=!0,u.__transactionTarget=t.__transactionTarget||t,c.contexts.set(u,r),u}applyGlobalTimeout(t){if(0>=c.globalTimeout)return t;const e=c.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((s,a)=>{let n=!1;const r=setTimeout(()=>{if(n)return;const t=new o(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),a(t)},e);t.then(t=>{n=!0,clearTimeout(r),s(t)}).catch(t=>{n=!0,clearTimeout(r),a(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=c.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return s.getObjectName(t);const e=t;let i=r.get(e);return i||(i=s.getObjectName(t),r.set(e,i)),i}}class l extends s.LoggedClass{get log(){return this._log||(this._log=c.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new a}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),s.isBrowser()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}const h="##VERSION##",d="##PACKAGE##";e.Metadata.registerLibrary(d,h),t.COMMIT="5116424",t.FULL_VERSION="0.11.0-5116424",t.Lock=a,t.MultiLock=class extends a{constructor(){super(),this.locks={},this.lock=new a}async lockFor(t){return await this.lock.acquire(),this.locks[t]||(this.locks[t]=new a),this.lock.release(),this.locks[t]}async execute(t,e,...i){return(await this.lockFor(e)).execute(t,...i)}async acquire(t,...e){return(await this.lockFor(t)).acquire(...e)}release(t,...e){if(!(t in this.locks))throw Error("Trying to release a non existing lock. should be impossible");return this.locks[t].release(...e)}},t.PACKAGE_NAME=d,t.SynchronousLock=l,t.TimeoutError=o,t.Transaction=c,t.TransactionalKeys=n,t.VERSION=h,t.transactional=(...t)=>e.Decoration.for(n.TRANSACTIONAL).define({decorator:(...t)=>(s,a,o)=>{if(!o)throw new i.InternalError("This decorator only applies to methods");return e.method()(s,a,o),e.Metadata.set(s.constructor,e.Metadata.key(n.TRANSACTIONAL,a),{data:t}),o.value=new Proxy(o.value,{apply:async(e,i,n)=>new Promise((o,r)=>{async function l(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?r(e):o(i)}const h=n[0],d=(()=>{let t=0;for(;t<n.length&&n[t]instanceof c;)t++;return t})(),u=d>0?n.slice(d):n,g=h instanceof c?h:c.contextTransaction(i);if(g){const n=new c(s.name,a,async()=>{try{return o(await Reflect.apply(e,n.bindToTransaction(i),u))}catch(t){return r(t)}},t.length?t:void 0);g.bindTransaction(n),g.fire()}else{const n=new c(s.name,a,async()=>{try{return l(n,void 0,await Reflect.apply(e,n.bindToTransaction(i),u))}catch(t){return l(n,t)}},t.length?t:void 0);c.submit(n)}})}),o},args:t}).apply()},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/logging")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/logging"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["transactional-decorators"]={},t.decafTsDecoration,t.decafTsDbDecorators,t.decafTsLogging);
2
2
  //# sourceMappingURL=transactional-decorators.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactional-decorators.cjs","sources":["../src/locks/Lock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/index.ts","../src/locks/MultiLock.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","args","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","super","name","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","Error","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","lock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","VERSION","PACKAGE_NAME","registerLibrary","locks","lockFor","data","Decoration","define","decorator","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction"],"mappings":"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"}
1
+ {"version":3,"file":"transactional-decorators.cjs","sources":["../src/locks/Lock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/index.ts","../src/locks/MultiLock.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","args","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","super","name","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","Error","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","lock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","VERSION","PACKAGE_NAME","registerLibrary","locks","lockFor","data","Decoration","define","decorator","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Metadata as t,Decoration as e,method as i}from"@decaf-ts/decoration";import{InternalError as s,DBKeys as n}from"@decaf-ts/db-decorators";import{LoggedClass as a,Logging as r,getObjectName as o,isBrowser as c}from"@decaf-ts/logging";class l{constructor(){this.queue=[],this.locked=!1}async execute(t,...e){let i;await this.acquire();try{i=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),i}async acquire(...t){const e=this;return e.locked?new Promise(t=>e.queue.push(t)):(e.locked=!0,Promise.resolve())}release(...t){const e=this.queue.shift();e?void 0===globalThis.window?globalThis.process.nextTick(e):setTimeout(e,0):this.locked=!1}}class h extends l{constructor(){super(),this.locks={},this.lock=new l}async lockFor(t){return await this.lock.acquire(),this.locks[t]||(this.locks[t]=new l),this.lock.release(),this.locks[t]}async execute(t,e,...i){return(await this.lockFor(e)).execute(t,...i)}async acquire(t,...e){return(await this.lockFor(t)).acquire(...e)}release(t,...e){if(!(t in this.locks))throw Error("Trying to release a non existing lock. should be impossible");return this.locks[t].release(...e)}}const u={TRANSACTIONAL:"transactional"};t.transactionals=e=>{const i=t.get(e,"transactional");return i?Object.keys(i):[]},t.isTransactional=e=>!!t.get(e,"transactional");class g extends s{constructor(t="Transaction timed out"){super(t,g.name,500)}}const d=new WeakMap;class f extends a{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(r.for(f),{get:(t,e,i)=>"log"!==e||f.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=f.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,s){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=s,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const s=this.log.for(this.push),n=f.describeTarget(t),a=f.describeTarget(e),r=new f(n,a,async()=>{const n=s.for(r.id.toString());try{n.verbose("Executing transaction method "+a),n.debug("With arguments: "+JSON.stringify(i));const s=await Promise.resolve(e.call(r.bindToTransaction(t),...i));return n.verbose(`Transaction method ${a} executed successfully`),n.debug("Result: "+JSON.stringify(s)),await r.release(),n.debug("lock released"),s}catch(t){throw await r.release(t),t}});return s.debug(`Pushing transaction ${r.id} for method ${a} on issuer ${n}`),f.submit(r)}static async run(t,e,i){const s="function"!=typeof t,n=s?t:void 0,a=s?e:t;if("function"!=typeof a)throw Error("Transaction.run requires an async function");const r=s?i:e,o=Array.isArray(r)&&r.length?r:void 0,c=n?f.describeTarget(n):f.describeTarget(a),l=f.describeTarget(a);let h;return h=new f(c,l,async()=>{let t;try{const t=n?h.bindToTransaction(n):void 0;return await a.call(t??h)}catch(e){throw t=e,e}finally{await h.release(t instanceof Error?t:void 0)}},o),f.submit(h)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new T),this.lock}static submit(t){return f.getLock().submit(t)}static async release(t){return f.getLock().release(t)}async release(t){this.released||(this.released=!0,await f.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(e){let i=this.metadataCache.get(e);if(i)return i;const s=new Set(["__transactionProxy","__transactionTarget","string"==typeof n.ORIGINAL?n.ORIGINAL:"__originalObj"]),a=t.transactionals(e)??[],r=(t.properties(e)||[]).filter(t=>!s.has(t)),o=new Map;return r.forEach(i=>{const s=t.type(e,i);o.set(i,!!s&&t.isTransactional(s))}),i={methods:a,propertyKeys:r,propertyDesignTypes:o},this.metadataCache.set(e,i),i}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(e){const i=this.log.for(this.bindToTransaction);i.verbose(`Binding object ${o(e)} to transaction ${this.id}`);const s=f.getTransactionalMetadata(e.constructor),a=s.methods;if(!a.length)return e;const r=this,c=new Set(["__transactionProxy","__transactionTarget","string"==typeof n.ORIGINAL?n.ORIGINAL:"__originalObj"]),l=new Set(s.propertyKeys);Object.getOwnPropertyNames(e).forEach(t=>{c.has(t)||l.add(t)});const h=Array.from(l).filter(i=>{if(s.propertyDesignTypes.get(i))return!0;const n=e[i];return!(!n||"object"!=typeof n&&"function"!=typeof n||!t.isTransactional(n.constructor))});i.debug(`found transaction methods: ${a.join(", ")} and properties: ${h.join(", ")}`);const u=new Proxy(e,{get:(t,e,i)=>a.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[r,...i])}):h.includes(e)?r.bindToTransaction(t[e]):Reflect.get(t,e,i)});return u[n.ORIGINAL]=e[n.ORIGINAL]||e,u.toString=()=>o(u[n.ORIGINAL])+" proxy for transaction "+this.id,u.__transactionProxy=!0,u.__transactionTarget=e.__transactionTarget||e,f.contexts.set(u,r),u}applyGlobalTimeout(t){if(0>=f.globalTimeout)return t;const e=f.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((s,n)=>{let a=!1;const r=setTimeout(()=>{if(a)return;const t=new g(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),n(t)},e);t.then(t=>{a=!0,clearTimeout(r),s(t)}).catch(t=>{a=!0,clearTimeout(r),n(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=f.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return o(t);const e=t;let i=d.get(e);return i||(i=o(t),d.set(e,i)),i}}class T extends a{get log(){return this._log||(this._log=f.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new l}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),c()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}function p(...n){return e.for("transactional").define({decorator:(...e)=>(n,a,r)=>{if(!r)throw new s("This decorator only applies to methods");return i()(n,a,r),t.set(n.constructor,t.key("transactional",a),{data:e}),r.value=new Proxy(r.value,{apply:async(t,i,s)=>new Promise((r,o)=>{async function c(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?o(e):r(i)}const l=s[0],h=(()=>{let t=0;for(;t<s.length&&s[t]instanceof f;)t++;return t})(),u=h>0?s.slice(h):s,g=l instanceof f?l:f.contextTransaction(i);if(g){const s=new f(n.name,a,async()=>{try{return r(await Reflect.apply(t,s.bindToTransaction(i),u))}catch(t){return o(t)}},e.length?e:void 0);g.bindTransaction(s),g.fire()}else{const s=new f(n.name,a,async()=>{try{return c(s,void 0,await Reflect.apply(t,s.bindToTransaction(i),u))}catch(t){return c(s,t)}},e.length?e:void 0);f.submit(s)}})}),r},args:n}).apply()}const y="##VERSION##",m="##PACKAGE##";t.registerLibrary(m,y);export{l as Lock,h as MultiLock,m as PACKAGE_NAME,T as SynchronousLock,g as TimeoutError,f as Transaction,u as TransactionalKeys,y as VERSION,p as transactional};
1
+ import{Metadata as t,Decoration as e,method as i}from"@decaf-ts/decoration";import{InternalError as s,DBKeys as n}from"@decaf-ts/db-decorators";import{LoggedClass as a,Logging as r,getObjectName as o,isBrowser as c}from"@decaf-ts/logging";class l{constructor(){this.queue=[],this.locked=!1}async execute(t,...e){let i;await this.acquire();try{i=await Promise.resolve(t())}catch(t){throw this.release(),t}return this.release(),i}async acquire(...t){const e=this;return e.locked?new Promise(t=>e.queue.push(t)):(e.locked=!0,Promise.resolve())}release(...t){const e=this.queue.shift();e?void 0===globalThis.window?globalThis.process.nextTick(e):setTimeout(e,0):this.locked=!1}}class h extends l{constructor(){super(),this.locks={},this.lock=new l}async lockFor(t){return await this.lock.acquire(),this.locks[t]||(this.locks[t]=new l),this.lock.release(),this.locks[t]}async execute(t,e,...i){return(await this.lockFor(e)).execute(t,...i)}async acquire(t,...e){return(await this.lockFor(t)).acquire(...e)}release(t,...e){if(!(t in this.locks))throw Error("Trying to release a non existing lock. should be impossible");return this.locks[t].release(...e)}}const u={TRANSACTIONAL:"transactional"};t.transactionals=e=>{const i=t.get(e,"transactional");return i?Object.keys(i):[]},t.isTransactional=e=>!!t.get(e,"transactional");class g extends s{constructor(t="Transaction timed out"){super(t,g.name,500)}}const d=new WeakMap;class f extends a{static{this.debug=!1}static{this.globalTimeout=-1}static{this.metadataCache=new WeakMap}static{this.log=new Proxy(r.for(f),{get:(t,e,i)=>"log"!==e||f.debug?Reflect.get(t,e,i):(...t)=>{}})}get log(){return this._log||(this._log=f.log),this._log}static{this.contexts=new WeakMap}constructor(t,e,i,s){super(),this.initialFireDispatched=!1,this.released=!1,this.id=Date.now(),this.action=i,this.method=e,this.logs=[[this.id,t,e].join(" | ")],this.source=t,this.metadata=s,this.completion=new Promise((t,e)=>{this.resolveCompletion=t,this.rejectCompletion=e})}static async push(t,e,...i){const s=this.log.for(this.push),n=f.describeTarget(t),a=f.describeTarget(e),r=new f(n,a,async()=>{const n=s.for(r.id.toString());try{n.verbose("Executing transaction method "+a),n.debug("With arguments: "+JSON.stringify(i));const s=await Promise.resolve(e.call(r.bindToTransaction(t),...i));return n.verbose(`Transaction method ${a} executed successfully`),n.debug("Result: "+JSON.stringify(s)),await r.release(),n.debug("lock released"),s}catch(t){throw await r.release(t),t}});return s.debug(`Pushing transaction ${r.id} for method ${a} on issuer ${n}`),f.submit(r)}static async run(t,e,i){const s="function"!=typeof t,n=s?t:void 0,a=s?e:t;if("function"!=typeof a)throw Error("Transaction.run requires an async function");const r=s?i:e,o=Array.isArray(r)&&r.length?r:void 0,c=n?f.describeTarget(n):f.describeTarget(a),l=f.describeTarget(a);let h;return h=new f(c,l,async()=>{let t;try{const t=n?h.bindToTransaction(n):void 0;return await a.call(t??h)}catch(e){throw t=e,e}finally{await h.release(t instanceof Error?t:void 0)}},o),f.submit(h)}static setLock(t){this.lock=t}static getLock(){return this.lock||(this.lock=new T),this.lock}static submit(t){return f.getLock().submit(t)}static async release(t){return f.getLock().release(t)}async release(t){this.released||(this.released=!0,await f.release(t))}getMetadata(){return this.metadata?[...this.metadata]:void 0}static getTransactionalMetadata(e){let i=this.metadataCache.get(e);if(i)return i;const s=new Set(["__transactionProxy","__transactionTarget","string"==typeof n.ORIGINAL?n.ORIGINAL:"__originalObj"]),a=t.transactionals(e)??[],r=(t.properties(e)||[]).filter(t=>!s.has(t)),o=new Map;return r.forEach(i=>{const s=t.type(e,i);o.set(i,!!s&&t.isTransactional(s))}),i={methods:a,propertyKeys:r,propertyDesignTypes:o},this.metadataCache.set(e,i),i}bindTransaction(t){this.log.for(this.bindTransaction).verbose(`Binding the ${t.toString()} to ${this}`),this.logs.push(...t.logs),t.bindTransaction=this.bindToTransaction.bind(this),t.bindToTransaction=this.bindToTransaction.bind(this),this.action=t.action}bindToTransaction(e){const i=this.log.for(this.bindToTransaction);i.verbose(`Binding object ${o(e)} to transaction ${this.id}`);const s=f.getTransactionalMetadata(e.constructor),a=s.methods;if(!a.length)return e;const r=this,c=new Set(["__transactionProxy","__transactionTarget","string"==typeof n.ORIGINAL?n.ORIGINAL:"__originalObj"]),l=new Set(s.propertyKeys);Object.getOwnPropertyNames(e).forEach(t=>{c.has(t)||l.add(t)});const h=Array.from(l).filter(i=>{if(s.propertyDesignTypes.get(i))return!0;const n=e[i];return!(!n||"object"!=typeof n&&"function"!=typeof n||!t.isTransactional(n.constructor))});i.debug(`found transaction methods: ${a.join(", ")} and properties: ${h.join(", ")}`);const u=new Proxy(e,{get:(t,e,i)=>a.includes(e)?new Proxy(t[e],{apply:(t,e,i)=>Reflect.apply(t,e,[r,...i])}):h.includes(e)?r.bindToTransaction(t[e]):Reflect.get(t,e,i)});return u[n.ORIGINAL]=e[n.ORIGINAL]||e,u.toString=()=>o(u[n.ORIGINAL])+" proxy for transaction "+this.id,u.__transactionProxy=!0,u.__transactionTarget=e.__transactionTarget||e,f.contexts.set(u,r),u}applyGlobalTimeout(t){if(0>=f.globalTimeout)return t;const e=f.globalTimeout,i=this.log.for(this.applyGlobalTimeout);return new Promise((s,n)=>{let a=!1;const r=setTimeout(()=>{if(a)return;const t=new g(`Transaction ${this.toString()} exceeded timeout of ${e}ms`);i.warn(t.message),this.release(t).catch(t=>i.error(t)),n(t)},e);t.then(t=>{a=!0,clearTimeout(r),s(t)}).catch(t=>{a=!0,clearTimeout(r),n(t)})})}fire(){if(!this.action)throw Error("Missing the method");const t=(async()=>this.action?await this.action():void 0)(),e=f.globalTimeout>0?this.applyGlobalTimeout(t):t;return this.initialFireDispatched||(this.initialFireDispatched=!0,e.then(t=>(this.resolveCompletion?.(t),t)).catch(t=>{throw this.rejectCompletion?.(t),t})),e}toString(t=!0,e=!1){return`${t?`[${this.id}]`:""}[Transaction][${this.source}.${this.method}${e?"]\nTransaction Log:\n"+this.logs.join("\n"):"]"}`}static contextTransaction(t){if(t&&t.__transactionProxy)return this.contexts.get(t)}wait(){return this.completion}static describeTarget(t){if(null===t||"object"!=typeof t&&"function"!=typeof t)return o(t);const e=t;let i=d.get(e);return i||(i=o(t),d.set(e,i)),i}}class T extends a{get log(){return this._log||(this._log=f.log.for(this)),this._log}logger(t){return this.loggerCache.has(t)||this.loggerCache.set(t,this.log.for(this[t])),this.loggerCache.get(t)}constructor(t=1,e,i){super(),this.counter=t,this.onBegin=e,this.onEnd=i,this.pendingTransactions=[],this.currentTransaction=void 0,this.loggerCache=new Map,this.lock=new l}async submit(t){const e=this.logger("submit");if(await this.lock.acquire(),e.silly("Lock acquired to submit transaction "+t.id),this.currentTransaction&&this.currentTransaction.id===t.id)return this.lock.release(),e.silly("Released lock for re-entrant transaction "+t.id),t.fire();let i;return this.counter>0?(this.counter--,this.lock.release(),e.silly("Released lock for transaction "+t.id),i=this.fireTransaction(t)):(e.debug(`Pushing transaction ${t.id} to the queue`),this.pendingTransactions.push(t),i=t.wait(),this.lock.release(),e.silly("Released lock after queuing transaction "+t.id)),i}async fireTransaction(t){const e=this.logger("fireTransaction");return await this.lock.acquire(),e.silly("Lock acquired obtain transaction "+t.id),this.currentTransaction=t,this.lock.release(),e.silly("Released lock after obtaining "+t.id),this.onBegin&&(e.verbose("Calling onBegin for transaction "+t.id),await this.onBegin()),e.info(`Starting transaction ${t.id}. ${this.pendingTransactions.length} remaining...`),t.fire()}async release(t){const e=this.logger("release");await this.lock.acquire(),this.currentTransaction||e.warn("Trying to release an unexisting transaction. should never happen..."),e.verbose("Releasing transaction "+this.currentTransaction?.toString(!0,!0));const i=this.currentTransaction?.id;if(this.currentTransaction=void 0,this.lock.release(),e.silly("Released lock after clearing transaction "+i),this.onEnd&&(e.verbose("Calling onEnd for transaction "+i),await this.onEnd(t)),await this.lock.acquire(),e.silly(`Acquired lock after completing transaction ${i} for pending transaction verification`),this.pendingTransactions.length>0){const t=this.pendingTransactions.shift(),i=()=>this.fireTransaction.call(this,t).catch(t=>{this.log.for(this.fireTransaction).error(t)});e.silly(`Marking ${t.id} for execution`),c()?setTimeout(i,0):globalThis.process.nextTick(i)}else e.debug("No pending transactions. Incrementing counter."),this.counter++;this.lock.release(),e.silly("Released lock after completing transaction "+i)}}function p(...n){return e.for("transactional").define({decorator:(...e)=>(n,a,r)=>{if(!r)throw new s("This decorator only applies to methods");return i()(n,a,r),t.set(n.constructor,t.key("transactional",a),{data:e}),r.value=new Proxy(r.value,{apply:async(t,i,s)=>new Promise((r,o)=>{async function c(t,e,i){return!e||e instanceof Error||i||(i=e,e=void 0),await t.release(e),e?o(e):r(i)}const l=s[0],h=(()=>{let t=0;for(;t<s.length&&s[t]instanceof f;)t++;return t})(),u=h>0?s.slice(h):s,g=l instanceof f?l:f.contextTransaction(i);if(g){const s=new f(n.name,a,async()=>{try{return r(await Reflect.apply(t,s.bindToTransaction(i),u))}catch(t){return o(t)}},e.length?e:void 0);g.bindTransaction(s),g.fire()}else{const s=new f(n.name,a,async()=>{try{return c(s,void 0,await Reflect.apply(t,s.bindToTransaction(i),u))}catch(t){return c(s,t)}},e.length?e:void 0);f.submit(s)}})}),r},args:n}).apply()}const y="##VERSION##",m="##COMMIT##",b="##FULL_VERSION##",w="##PACKAGE##";t.registerLibrary(w,y);export{m as COMMIT,b as FULL_VERSION,l as Lock,h as MultiLock,w as PACKAGE_NAME,T as SynchronousLock,g as TimeoutError,f as Transaction,u as TransactionalKeys,y as VERSION,p as transactional};
2
2
  //# sourceMappingURL=transactional-decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactional-decorators.js","sources":["../src/locks/Lock.ts","../src/locks/MultiLock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","args","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","MultiLock","super","locks","lock","lockFor","name","Error","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","transactional","data","Decoration","define","decorator","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"transactional-decorators.js","sources":["../src/locks/Lock.ts","../src/locks/MultiLock.ts","../src/constants.ts","../src/overrides/overrides.ts","../src/errors.ts","../src/Transaction.ts","../src/locks/SynchronousLock.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["Lock","constructor","this","queue","locked","execute","func","args","result","acquire","Promise","resolve","e","release","self","push","next","shift","globalThis","window","process","nextTick","setTimeout","MultiLock","super","locks","lock","lockFor","name","Error","TransactionalKeys","TRANSACTIONAL","Metadata","transactionals","obj","meta","get","Object","keys","isTransactional","TimeoutError","InternalError","message","objectNameCache","WeakMap","Transaction","LoggedClass","debug","globalTimeout","metadataCache","log","Proxy","Logging","for","target","prop","receiver","Reflect","contexts","source","method","action","metadata","initialFireDispatched","released","id","Date","now","logs","join","completion","reject","resolveCompletion","rejectCompletion","issuer","issuerName","describeTarget","methodName","transaction","async","l","toString","verbose","JSON","stringify","call","bindToTransaction","submit","run","contextOrRunnable","runnableOrMetadata","maybeMetadata","contextProvided","context","undefined","runnable","rawMetadata","metadataValue","Array","isArray","length","sourceName","caughtError","boundContext","error","setLock","getLock","SynchronousLock","err","getMetadata","getTransactionalMetadata","cached","reservedProps","Set","DBKeys","ORIGINAL","methods","propertyKeys","properties","filter","has","propertyDesignTypes","Map","forEach","type","set","bindTransaction","nextTransaction","bind","getObjectName","transactionalMethods","props","getOwnPropertyNames","add","transactionProps","from","p","value","boundObj","includes","apply","methodTarget","thisArg","argArray","__transactionProxy","__transactionTarget","applyGlobalTimeout","execution","timeoutMs","settled","timer","warn","catch","releaseErr","then","clearTimeout","fire","baseExecution","executeAction","withId","withLog","contextTransaction","wait","key","logger","loggerCache","counter","onBegin","onEnd","pendingTransactions","currentTransaction","silly","resultPromise","fireTransaction","info","cb","isBrowser","transactional","data","Decoration","define","decorator","propertyKey","descriptor","exitFunction","candidate","transactionPrefixLength","count","invocationArgs","slice","activeTransaction","updatedTransaction","newTransaction","VERSION","COMMIT","FULL_VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"qPAcaA,EAAb,WAAAC,GACYC,KAAAC,MAAwB,GACxBD,KAAAE,QAAS,CAwDrB,CA/CE,aAAMC,CAAQC,KAAoBC,GAEhC,IAAIC,QADEN,KAAKO,UAEX,IACED,QAAeE,QAAQC,QAAQL,IACjC,CAAE,MAAOM,GAEP,MADAV,KAAKW,UACCD,CACR,CAEA,OADAV,KAAKW,UACEL,CACT,CAOA,aAAMC,IAAWF,GAEf,MAAMO,EAAOZ,KACb,OAAIY,EAAKV,OACA,IAAIM,QAAeC,GAAYG,EAAKX,MAAMY,KAAKJ,KAEtDG,EAAKV,QAAS,EACPM,QAAQC,UAEnB,CAMA,OAAAE,IAAWN,GAET,MACMS,EADOd,KAC+BC,MAAMc,QAC9CD,OAE6D,IAArDE,WAA0CC,OAElDD,WAAWE,QAAQC,SAASL,GACzBM,WAAWN,EAAM,GAPXd,KASNE,QAAS,CAElB,ECrEI,MAAOmB,UAAkBvB,EAI7B,WAAAC,GACEuB,QAJQtB,KAAAuB,MAA8B,CAAA,EAC9BvB,KAAAwB,KAAO,IAAI1B,CAIrB,CAEU,aAAM2B,CAAQC,GAItB,aAHM1B,KAAKwB,KAAKjB,UACXP,KAAKuB,MAAMG,KAAO1B,KAAKuB,MAAMG,GAAQ,IAAI5B,GAC9CE,KAAKwB,KAAKb,UACHX,KAAKuB,MAAMG,EACpB,CAES,aAAMvB,CACbC,EACAsB,KACGrB,GAGH,aADmBL,KAAKyB,QAAQC,IACpBvB,QAAQC,KAASC,EAC/B,CAES,aAAME,CAAQmB,KAAiBrB,GAEtC,aADmBL,KAAKyB,QAAQC,IACpBnB,WAAWF,EACzB,CAES,OAAAM,CAAQe,KAAiBrB,GAChC,KAAMqB,KAAQ1B,KAAKuB,OACjB,MAAUI,MACR,+DAGJ,OADa3B,KAAKuB,MAAMG,GACZf,WAAWN,EACzB,ECxBK,MAAMuB,EAA4C,CACvDC,cAAe,iBCXhBC,EAAiBC,eAChBC,IAEA,MAAMC,EAAOH,EAASI,IAAIF,EAAKJ,iBAC/B,OAAKK,EACEE,OAAOC,KAAKH,GADD,EAEpB,EAECH,EAAiBO,gBAA+BL,KACtCF,EAASI,IAAIF,EAAKJ,iBCXvB,MAAOU,UAAqBC,EAChC,WAAAxC,CAAYyC,EAA0B,yBACpClB,MAAMkB,EAASF,EAAaZ,KAAM,IACpC,ECIF,MAAMe,EAAkB,IAAIC,QA8CtB,MAAOC,UAAuBC,SAC3B5C,KAAA6C,OAAQ,CAAM,QACd7C,KAAA8C,gBAAmB,QACF9C,KAAA+C,cAAgB,IAAIL,OAQxC,QAEW1C,KAAAgD,IAAM,IAAIC,MAAMC,EAAQC,IAAIR,GAAc,CACvDT,IAAG,CAACkB,EAAQC,EAAMC,IACH,QAATD,GAAkBV,EAAYE,MACzBU,QAAQrB,IAAIkB,EAAQC,EAAMC,GAE5B,IAAIjD,QAIZ,CAEH,OAAa2C,GAIX,OAHKhD,KAAW,OACdA,KAAW,KAAI2C,EAAYK,KAEtBhD,KAAW,IACpB,QAewBA,KAAAwD,SAAW,IAAId,OAAoC,CAE3E,WAAA3C,CACE0D,EACAC,EACAC,EACAC,GAEAtC,QAZMtB,KAAA6D,uBAAwB,EACxB7D,KAAA8D,UAAW,EAYjB9D,KAAK+D,GAAKC,KAAKC,MACfjE,KAAK2D,OAASA,EACd3D,KAAK0D,OAASA,EACd1D,KAAKkE,KAAO,CAAC,CAAClE,KAAK+D,GAAIN,EAAQC,GAAQS,KAAK,QAC5CnE,KAAKyD,OAASA,EACdzD,KAAK4D,SAAWA,EAChB5D,KAAKoE,WAAa,IAAI5D,QAAW,CAACC,EAAS4D,KACzCrE,KAAKsE,kBAAoB7D,EACzBT,KAAKuE,iBAAmBF,GAE5B,CAUA,iBAAaxD,CACX2D,EACAd,KACGrD,GAEH,MAAM2C,EAAMhD,KAAKgD,IAAIG,IAAInD,KAAKa,MACxB4D,EAAa9B,EAAY+B,eAAeF,GACxCG,EAAahC,EAAY+B,eAAehB,GAExCkB,EAA8B,IAAIjC,EACtC8B,EACAE,EACAE,UACE,MAAMC,EAAI9B,EAAIG,IAAIyB,EAAYb,GAAGgB,YACjC,IACED,EAAEE,QAAQ,gCAAgCL,GAC1CG,EAAEjC,MAAM,mBAAmBoC,KAAKC,UAAU7E,IAC1C,MAAMC,QAAeE,QAAQC,QAC3BiD,EAAOyB,KAAKP,EAAYQ,kBAAkBZ,MAAYnE,IAMxD,OAJAyE,EAAEE,QAAQ,sBAAsBL,2BAChCG,EAAEjC,MAAM,WAAWoC,KAAKC,UAAU5E,UAC5BsE,EAAYjE,UAClBmE,EAAEjC,MAAM,iBACDvC,CACT,CAAE,MAAOI,GAEP,YADMkE,EAAYjE,QAAQD,GACpBA,CACR,IAMJ,OAHAsC,EAAIH,MACF,uBAAuB+B,EAAYb,iBAAiBY,eAAwBF,KAEvE9B,EAAY0C,OAAOT,EAC5B,CAWA,gBAAaU,CACXC,EACAC,EACAC,GAEA,MAAMC,EAA+C,mBAAtBH,EACzBI,EAAWD,EAAkBH,OAAoBK,EAGjDC,EACJH,EAAkBF,EAAqBD,EAEzC,GAAwB,mBAAbM,EACT,MAAUlE,MAAM,8CAElB,MAAMmE,EAAcJ,EAAkBD,EAAgBD,EAChDO,EACJC,MAAMC,QAAQH,IAAgBA,EAAYI,OACtCJ,OACAF,EACAO,EAAaR,EACfhD,EAAY+B,eAAeiB,GAC3BhD,EAAY+B,eAAemB,GACzBlB,EAAahC,EAAY+B,eAAemB,GAE9C,IAAIjB,EAuBJ,OANAA,EAAc,IAAIjC,EAChBwD,EACAxB,EAlBaE,UACb,IAAIuB,EACJ,IACE,MAAMC,EAAeV,EACjBf,EAAYQ,kBAAkBO,QAC9BC,EACJ,aAAaC,EAASV,KAAMkB,GAAgBzB,EAC9C,CAAE,MAAO0B,GAEP,MADAF,EAAcE,EACRA,CACR,eACQ1B,EAAYjE,QAChByF,aAAuBzE,MAASyE,OAAwBR,EAE5D,GAMAG,GAEKpD,EAAY0C,OAAOT,EAC5B,CAQA,cAAO2B,CAAQ/E,GACbxB,KAAKwB,KAAOA,CACd,CAOA,cAAOgF,GAEL,OADKxG,KAAKwB,OAAMxB,KAAKwB,KAAO,IAAIiF,GACzBzG,KAAKwB,IACd,CAQA,aAAO6D,CAAUT,GACf,OAAOjC,EAAY6D,UAAUnB,OAAOT,EACtC,CAQA,oBAAajE,CAAQ+F,GACnB,OAAO/D,EAAY6D,UAAU7F,QAAQ+F,EACvC,CAQA,aAAM/F,CAAQ+F,GACR1G,KAAK8D,WACT9D,KAAK8D,UAAW,QACVnB,EAAYhC,QAAQ+F,GAC5B,CAOA,WAAAC,GACE,OAAO3G,KAAK4D,SAAW,IAAI5D,KAAK4D,eAAYgC,CAC9C,CAEQ,+BAAOgB,CAAyBxD,GACtC,IAAIyD,EAAS7G,KAAK+C,cAAcb,IAAIkB,GACpC,GAAIyD,EAAQ,OAAOA,EACnB,MAAMC,EAAgB,IAAIC,IAAY,CACpC,qBACA,sBAC2B,iBAApBC,EAAOC,SAAwBD,EAAOC,SAAW,kBAEpDC,EAAWpF,EAASC,eAAeqB,IAAwB,GAC3D+D,GAAgBrF,EAASsF,WAAWhE,IAAW,IAAIiE,OACtDhE,IAAUyD,EAAcQ,IAAIjE,IAEzBkE,EAAsB,IAAIC,IAOhC,OANAL,EAAaM,QAASpE,IACpB,MAAMqE,EAAO5F,EAAS4F,KAAKtE,EAAQC,GACnCkE,EAAoBI,IAAItE,IAAQqE,GAAQ5F,EAASO,gBAAgBqF,MAEnEb,EAAS,CAAEK,UAASC,eAAcI,uBAClCvH,KAAK+C,cAAc4E,IAAIvE,EAAQyD,GACxBA,CACT,CAQA,eAAAe,CAAgBC,GACd7H,KAAKgD,IACFG,IAAInD,KAAK4H,iBACT5C,QAAQ,eAAe6C,EAAgB9C,iBAAiB/E,QAC3DA,KAAKkE,KAAKrD,QAAQgH,EAAgB3D,MAClC2D,EAAgBD,gBAAkB5H,KAAKoF,kBAAkB0C,KAAK9H,MAC9D6H,EAAgBzC,kBAAoBpF,KAAKoF,kBAAkB0C,KAAK9H,MAChEA,KAAK2D,OAASkE,EAAgBlE,MAChC,CAQA,iBAAAyB,CAAkBpD,GAChB,MAAMgB,EAAMhD,KAAKgD,IAAIG,IAAInD,KAAKoF,mBAC9BpC,EAAIgC,QACF,kBAAkB+C,EAAc/F,qBAAuBhC,KAAK+D,MAE9D,MAAMH,EAAWjB,EAAYiE,yBAAyB5E,EAAIjC,aACpDiI,EAAuBpE,EAASsD,QACtC,IAAKc,EAAqB9B,OAAQ,OAAOlE,EAEzC,MAAMpB,EAAOZ,KAEP8G,EAAgB,IAAIC,IAAY,CACpC,qBACA,sBAC2B,iBAApBC,EAAOC,SAAwBD,EAAOC,SAAW,kBAEpDgB,EAAQ,IAAIlB,IAAYnD,EAASuD,cACvChF,OAAO+F,oBAAoBlG,GAAKyF,QAASpE,IAClCyD,EAAcQ,IAAIjE,IAAO4E,EAAME,IAAI9E,KAE1C,MAAM+E,EAA6BpC,MAAMqC,KAAKJ,GAAOZ,OAAQiB,IAC3D,GAAI1E,EAAS2D,oBAAoBrF,IAAIoG,GAAI,OAAO,EAChD,MAAMC,EAASvG,EAAgCsG,GAC/C,SACEC,GACkB,iBAAVA,GAAuC,mBAAVA,IACrCzG,EAASO,gBAAgBkG,EAAMxI,gBAOnCiD,EAAIH,MACF,8BAA8BmF,EAAqB7D,KAAK,yBAAyBiE,EAAiBjE,KAAK,SAEzG,MAAMqE,EAAW,IAAIvF,MAAMjB,EAAK,CAC9BE,IAAG,CAACkB,EAAQC,EAAMC,IACZ0E,EAAqBS,SAASpF,GACzB,IAAIJ,MAAMG,EAAOC,GAAqC,CAC3DqF,MAAK,CAACC,EAAcC,EAASC,IACpBtF,QAAQmF,MAAMC,EAAcC,EAAS,CAAChI,KAASiI,MAIxDT,EAAiBK,SAASpF,GACrBzC,EAAKwE,kBAAkBhC,EAAOC,IAEhCE,QAAQrB,IAAIkB,EAAQC,EAAMC,KAerC,OAXAkF,EAASxB,EAAOC,UACdjF,EAAIgF,EAAOC,WAAajF,EAC1BwG,EAASzD,SAAW,IAClBgD,EAAcS,EAASxB,EAAOC,WAC9B,0BACAjH,KAAK+D,GACNyE,EAAiBM,oBAAqB,EACtCN,EAAiBO,oBACf/G,EAAY+G,qBAAuB/G,EACtCW,EAAYa,SAASmE,IAAIa,EAAU5H,GAE5B4H,CACT,CAQQ,kBAAAQ,CAAmBC,GACzB,GAAiC,GAA7BtG,EAAYG,cAAoB,OAAOmG,EAC3C,MAAMC,EAAYvG,EAAYG,cACxBE,EAAMhD,KAAKgD,IAAIG,IAAInD,KAAKgJ,oBAC9B,OAAO,IAAIxI,QAAW,CAACC,EAAS4D,KAC9B,IAAI8E,GAAU,EACd,MAAMC,EAAQhI,WAAW,KACvB,GAAI+H,EAAS,OACb,MAAM7C,EAAQ,IAAIhE,EAChB,eAAetC,KAAK+E,kCAAkCmE,OAExDlG,EAAIqG,KAAK/C,EAAM9D,SACfxC,KAAKW,QAAQ2F,GAAOgD,MAAOC,GACzBvG,EAAIsD,MAAMiD,IAEZlF,EAAOiC,IACN4C,GAEHD,EACGO,KAAMjB,IACLY,GAAU,EACVM,aAAaL,GACb3I,EAAQ8H,KAETe,MAAO5C,IACNyC,GAAU,EACVM,aAAaL,GACb/E,EAAOqC,MAGf,CAOA,IAAAgD,GACE,IAAK1J,KAAK2D,OAAQ,MAAUhC,MAAM,sBAClC,MAGMgI,EAHgB9E,UACb7E,KAAK2D,aAAe3D,KAAK2D,cAAYiC,EAExBgE,GAChBX,EACJtG,EAAYG,cAAgB,EACxB9C,KAAKgJ,mBAAmBW,GACxBA,EAaN,OAZK3J,KAAK6D,wBACR7D,KAAK6D,uBAAwB,EAC7BoF,EACGO,KAAMlJ,IACLN,KAAKsE,oBAAoBhE,GAClBA,IAERgJ,MAAO5C,IAEN,MADA1G,KAAKuE,mBAAmBmC,GAClBA,KAGLuC,CACT,CASS,QAAAlE,CAAS8E,GAAS,EAAMC,GAAU,GACzC,MAAO,GAAGD,EAAS,IAAI7J,KAAK+D,MAAQ,mBAAmB/D,KAAKyD,UAAUzD,KAAK0D,SACzEoG,EAAU,wBAAwB9J,KAAKkE,KAAKC,KAAK,MAAU,KAE/D,CAEA,yBAAO4F,CAAmBpE,GACxB,GAAKA,GAAaA,EAAgBmD,mBAGlC,OAAO9I,KAAKwD,SAAStB,IAAIyD,EAC3B,CAEA,IAAAqE,GACE,OAAOhK,KAAKoE,UACd,CAEQ,qBAAOM,CAAetB,GAC5B,GACa,OAAXA,GACmB,iBAAXA,GAAyC,mBAAXA,EAEtC,OAAO2E,EAAc3E,GAEvB,MAAM6G,EAAM7G,EACZ,IAAIyD,EAASpE,EAAgBP,IAAI+H,GAKjC,OAJKpD,IACHA,EAASkB,EAAc3E,GACvBX,EAAgBkF,IAAIsC,EAAKpD,IAEpBA,CACT,ECreI,MAAOJ,UAAwB7D,EAKnC,OAAaI,GAIX,OAHKhD,KAAW,OACdA,KAAW,KAAI2C,EAAiB,IAAEQ,IAAInD,OAEjCA,KAAW,IACpB,CAEQ,MAAAkK,CAAOxG,GAOb,OANK1D,KAAKmK,YAAY7C,IAAI5D,IACxB1D,KAAKmK,YAAYxC,IACfjE,EACA1D,KAAKgD,IAAIG,IAAKnD,KAAwC0D,KAGnD1D,KAAKmK,YAAYjI,IAAIwB,EAC9B,CAIA,WAAA3D,CACUqK,EAAkB,EACTC,EACAC,GAEjBhJ,QAJQtB,KAAAoK,QAAAA,EACSpK,KAAAqK,QAAAA,EACArK,KAAAsK,MAAAA,EA1BXtK,KAAAuK,oBAA0C,GAClDvK,KAAAwK,wBAAwC5E,EACvB5F,KAAAmK,YAAc,IAAI3C,IAmBlBxH,KAAAwB,KAAO,IAAI1B,CAQ5B,CAMA,YAAMuF,CAAUT,GACd,MAAM5B,EAAMhD,KAAKkK,OAAO,UAGxB,SAFMlK,KAAKwB,KAAKjB,UAChByC,EAAIyH,MAAM,uCAAuC7F,EAAYb,IAE3D/D,KAAKwK,oBACLxK,KAAKwK,mBAAmBzG,KAAOa,EAAYb,GAI3C,OAFA/D,KAAKwB,KAAKb,UACVqC,EAAIyH,MAAM,4CAA4C7F,EAAYb,IAC3Da,EAAY8E,OAErB,IAAIgB,EAaJ,OAZI1K,KAAKoK,QAAU,GACjBpK,KAAKoK,UACLpK,KAAKwB,KAAKb,UACVqC,EAAIyH,MAAM,iCAAiC7F,EAAYb,IACvD2G,EAAgB1K,KAAK2K,gBAAgB/F,KAErC5B,EAAIH,MAAM,uBAAuB+B,EAAYb,mBAC7C/D,KAAKuK,oBAAoB1J,KAAK+D,GAC9B8F,EAAgB9F,EAAYoF,OAC5BhK,KAAKwB,KAAKb,UACVqC,EAAIyH,MAAM,2CAA2C7F,EAAYb,KAE5D2G,CACT,CAQQ,qBAAMC,CAAmB/F,GAC/B,MAAM5B,EAAMhD,KAAKkK,OAAO,mBAaxB,aAZMlK,KAAKwB,KAAKjB,UAChByC,EAAIyH,MAAM,oCAAoC7F,EAAYb,IAC1D/D,KAAKwK,mBAAqB5F,EAC1B5E,KAAKwB,KAAKb,UACVqC,EAAIyH,MAAM,iCAAiC7F,EAAYb,IACnD/D,KAAKqK,UACPrH,EAAIgC,QAAQ,mCAAmCJ,EAAYb,UACrD/D,KAAKqK,WAEbrH,EAAI4H,KACF,wBAAwBhG,EAAYb,OAAO/D,KAAKuK,oBAAoBrE,uBAE/DtB,EAAY8E,MACrB,CAIA,aAAM/I,CAAQ+F,GACZ,MAAM1D,EAAMhD,KAAKkK,OAAO,iBAElBlK,KAAKwB,KAAKjB,UACXP,KAAKwK,oBACRxH,EAAIqG,KACF,uEAEJrG,EAAIgC,QACF,yBAAyBhF,KAAKwK,oBAAoBzF,UAAS,GAAM,IAEnE,MAAMhB,EAAK/D,KAAKwK,oBAAoBzG,GAapC,GAZA/D,KAAKwK,wBAAqB5E,EAC1B5F,KAAKwB,KAAKb,UACVqC,EAAIyH,MAAM,4CAA4C1G,GAClD/D,KAAKsK,QACPtH,EAAIgC,QAAQ,iCAAiCjB,SACvC/D,KAAKsK,MAAM5D,UAGb1G,KAAKwB,KAAKjB,UAChByC,EAAIyH,MACF,8CAA8C1G,0CAE5C/D,KAAKuK,oBAAoBrE,OAAS,EAAG,CACvC,MAAMtB,EAAc5E,KAAKuK,oBAAoBxJ,QAEvC8J,EAAK,IACF7K,KAAK2K,gBAAgBxF,KAAKnF,KAAM4E,GAAa0E,MAAO5C,IACzD1G,KAAKgD,IAAIG,IAAInD,KAAK2K,iBAAiBrE,MAAMI,KAG7C1D,EAAIyH,MAAM,WAAW7F,EAAYb,oBAC5B+G,IAGH1J,WAAWyJ,EAAI,GAFf7J,WAAWE,QAAQC,SAAS0J,EAIhC,MACE7H,EAAIH,MAAM,kDACV7C,KAAKoK,UAEPpK,KAAKwB,KAAKb,UACVqC,EAAIyH,MAAM,8CAA8C1G,EAC1D,ECjHI,SAAUgH,KAAiBC,GAwG/B,OAAOC,EAAW9H,IAAIvB,iBACnBsJ,OAAO,CACNC,UAzGJ,IAA+BH,IACtB,CAAU5H,EAAagI,EAAmBC,KAC/C,IAAKA,EACH,MAAM,IAAI9I,EAAc,0CAgG1B,OA/FAmB,IAASN,EAAQgI,EAAaC,GAC9BvJ,EAAS6F,IACPvE,EAAOrD,YACP+B,EAASmI,IAAIrI,gBAAiCwJ,GAC9C,CACEJ,KAAMA,IAGVK,EAAW9C,MAAQ,IAAItF,MAAMoI,EAAW9C,MAAO,CAC7C1D,MAAW,MAAI7C,EAAU4G,EAAcC,IAC9B,IAAIrI,QAAW,CAACC,EAAS4D,KAC9BQ,eAAeyG,EACb1G,EACA8B,EACApG,GAOA,OALIoG,GAASA,aAAe/E,OAAWrB,IACrCA,EAASoG,EACTA,OAAMd,SAEFhB,EAAYjE,QAAQ+F,GACnBA,EACFrC,EAAOqC,GACPjG,EAAQH,EACf,CAEA,MAAMiL,EAAY1C,EAAS,GACrB2C,EAA0B,MAC9B,IAAIC,EAAQ,EACZ,KACEA,EAAQ5C,EAAS3C,QACjB2C,EAAS4C,aAAkB9I,GAE3B8I,IAEF,OAAOA,CACR,EAT+B,GAU1BC,EACJF,EAA0B,EACtB3C,EAAS8C,MAAMH,GACf3C,EAEA+C,EACJL,aAAqB5I,EACjB4I,EACA5I,EAAYoH,mBAAmBnB,GAErC,GAAIgD,EAAmB,CACrB,MAAMC,EAAuC,IAAIlJ,EAC/CS,EAAO1B,KACP0J,EACAvG,UACE,IACE,OAAOpE,QACC8C,QAAQmF,MACZ1G,EACA6J,EAAmBzG,kBAAkBwD,GACrC8C,GAGN,CAAE,MAAOhL,GACP,OAAO2D,EAAO3D,EAChB,GAEFsK,EAAK9E,OAAS8E,OAAOpF,GAEvBgG,EAAkBhE,gBAAgBiE,GAClCD,EAAkBlC,MACpB,KAAO,CACL,MAAMoC,EAAiC,IAAInJ,EACzCS,EAAO1B,KACP0J,EACAvG,UACE,IACE,OAAOyG,EACLQ,OACAlG,QACMrC,QAAQmF,MACZ1G,EACA8J,EAAe1G,kBAAkBwD,GACjC8C,GAGN,CAAE,MAAOhL,GACP,OAAO4K,EAAaQ,EAAgBpL,EACtC,GAEFsK,EAAK9E,OAAS8E,OAAOpF,GAEvBjD,EAAY0C,OAAOyG,EACrB,MAKCT,CACT,EAMEhL,KAAM2K,IAEPtC,OACL,CC5HO,MAAMqD,EAAU,cAQVC,EAAS,aAQTC,EAAe,mBAGfC,EAAe,cAE5BpK,EAASqK,gBAAgBD,EAAcH"}
package/lib/cjs/index.cjs CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.PACKAGE_NAME = exports.VERSION = void 0;
17
+ exports.PACKAGE_NAME = exports.FULL_VERSION = exports.COMMIT = exports.VERSION = void 0;
18
18
  const decoration_1 = require("@decaf-ts/decoration");
19
19
  __exportStar(require("./interfaces/index.cjs"), exports);
20
20
  __exportStar(require("./locks/index.cjs"), exports);
@@ -35,7 +35,21 @@ __exportStar(require("./types.cjs"), exports);
35
35
  * @const VERSION
36
36
  * @memberOf module:transactions
37
37
  */
38
- exports.VERSION = "0.10.0";
38
+ exports.VERSION = "0.11.0";
39
+ /**
40
+ * @description Represents the current commit hash of the module build.
41
+ * @summary Stores the current git commit hash for the package. The build replaces
42
+ * the placeholder with the actual commit hash at publish time.
43
+ * @const COMMIT
44
+ */
45
+ exports.COMMIT = "5116424";
46
+ /**
47
+ * @description Represents the full version string of the module.
48
+ * @summary Stores the semver version and commit hash for the package.
49
+ * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
50
+ * @const FULL_VERSION
51
+ */
52
+ exports.FULL_VERSION = "0.11.0-5116424";
39
53
  exports.PACKAGE_NAME = "@decaf-ts/transactional-decorators";
40
54
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
41
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAgD;AAChD,wDAAsC;AACtC,mDAAiC;AACjC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,6CAA2B;AAC3B;;;;GAIG;AACH;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,iCAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAgD;AAChD,wDAAsC;AACtC,mDAAiC;AACjC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,6CAA2B;AAC3B;;;;GAIG;AACH;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACrC;;;;;GAKG;AACU,QAAA,MAAM,GAAG,YAAY,CAAC;AACnC;;;;;GAKG;AACU,QAAA,YAAY,GAAG,kBAAkB,CAAC;AAClC,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,iCAAiC"}
package/lib/esm/index.js CHANGED
@@ -18,7 +18,21 @@ export * from "./types.js";
18
18
  * @const VERSION
19
19
  * @memberOf module:transactions
20
20
  */
21
- export const VERSION = "0.10.0";
21
+ export const VERSION = "0.11.0";
22
+ /**
23
+ * @description Represents the current commit hash of the module build.
24
+ * @summary Stores the current git commit hash for the package. The build replaces
25
+ * the placeholder with the actual commit hash at publish time.
26
+ * @const COMMIT
27
+ */
28
+ export const COMMIT = "5116424";
29
+ /**
30
+ * @description Represents the full version string of the module.
31
+ * @summary Stores the semver version and commit hash for the package.
32
+ * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
33
+ * @const FULL_VERSION
34
+ */
35
+ export const FULL_VERSION = "0.11.0-5116424";
22
36
  export const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
23
37
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
24
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,sCAA6B;AAC7B,iCAAwB;AACxB,qCAA4B;AAC5B,+BAA4B;AAC5B,4BAAyB;AACzB,gCAA6B;AAC7B,iCAA8B;AAC9B,2BAAwB;AAExB;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,sCAA6B;AAC7B,iCAAwB;AACxB,qCAA4B;AAC5B,+BAA4B;AAC5B,4BAAyB;AACzB,gCAA6B;AAC7B,iCAA8B;AAC9B,2BAAwB;AAExB;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAG/C,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
@@ -17,5 +17,19 @@ export * from "./types.d.cts";
17
17
  * @const VERSION
18
18
  * @memberOf module:transactions
19
19
  */
20
- export declare const VERSION = "0.10.0";
20
+ export declare const VERSION = "0.11.0";
21
+ /**
22
+ * @description Represents the current commit hash of the module build.
23
+ * @summary Stores the current git commit hash for the package. The build replaces
24
+ * the placeholder with the actual commit hash at publish time.
25
+ * @const COMMIT
26
+ */
27
+ export declare const COMMIT = "5116424";
28
+ /**
29
+ * @description Represents the full version string of the module.
30
+ * @summary Stores the semver version and commit hash for the package.
31
+ * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
32
+ * @const FULL_VERSION
33
+ */
34
+ export declare const FULL_VERSION = "0.11.0-5116424";
21
35
  export declare const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
@@ -17,5 +17,19 @@ export * from "./types.d.mts";
17
17
  * @const VERSION
18
18
  * @memberOf module:transactions
19
19
  */
20
- export declare const VERSION = "0.10.0";
20
+ export declare const VERSION = "0.11.0";
21
+ /**
22
+ * @description Represents the current commit hash of the module build.
23
+ * @summary Stores the current git commit hash for the package. The build replaces
24
+ * the placeholder with the actual commit hash at publish time.
25
+ * @const COMMIT
26
+ */
27
+ export declare const COMMIT = "5116424";
28
+ /**
29
+ * @description Represents the full version string of the module.
30
+ * @summary Stores the semver version and commit hash for the package.
31
+ * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
32
+ * @const FULL_VERSION
33
+ */
34
+ export declare const FULL_VERSION = "0.11.0-5116424";
21
35
  export declare const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/transactional-decorators",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Locking and transactions",
5
5
  "type": "module",
6
6
  "exports": {