@decaf-ts/transactional-decorators 0.3.4 → 0.3.5

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.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="##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};
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","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -17,5 +17,5 @@ export * from "./types";
17
17
  * @const VERSION
18
18
  * @memberOf module:transactions
19
19
  */
20
- export declare const VERSION = "0.3.3";
20
+ export declare const VERSION = "0.3.4";
21
21
  export declare const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
package/lib/esm/index.js CHANGED
@@ -18,7 +18,7 @@ export * from "./types.js";
18
18
  * @const VERSION
19
19
  * @memberOf module:transactions
20
20
  */
21
- export const VERSION = "0.3.3";
21
+ export const VERSION = "0.3.4";
22
22
  export const PACKAGE_NAME = "@decaf-ts/transactional-decorators";
23
23
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
24
24
  //# sourceMappingURL=index.js.map
package/lib/index.cjs CHANGED
@@ -35,7 +35,7 @@ __exportStar(require("./types.cjs"), exports);
35
35
  * @const VERSION
36
36
  * @memberOf module:transactions
37
37
  */
38
- exports.VERSION = "0.3.3";
38
+ exports.VERSION = "0.3.4";
39
39
  exports.PACKAGE_NAME = "@decaf-ts/transactional-decorators";
40
40
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
41
41
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -17,5 +17,5 @@ export * from "./types";
17
17
  * @const VERSION
18
18
  * @memberOf module:transactions
19
19
  */
20
- export declare const VERSION = "0.3.3";
20
+ export declare const VERSION = "0.3.4";
21
21
  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.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Locking and transactions",
5
5
  "type": "module",
6
6
  "exports": {