@decaf-ts/for-fabric 0.1.23 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/for-fabric.cjs +1 -1
  2. package/dist/for-fabric.cjs.map +1 -1
  3. package/dist/for-fabric.js +1 -1
  4. package/dist/for-fabric.js.map +1 -1
  5. package/lib/client/FabricClientAdapter.cjs +19 -0
  6. package/lib/client/FabricClientAdapter.d.ts +2 -2
  7. package/lib/client/FabricClientAdapter.js.map +1 -1
  8. package/lib/client/FabricClientRepository.cjs +1 -1
  9. package/lib/client/FabricClientRepository.js.map +1 -1
  10. package/lib/client/fabric-fs.d.ts +1 -1
  11. package/lib/contract/Address.cjs +73 -0
  12. package/lib/contract/Address.d.ts +13 -0
  13. package/lib/contract/Address.js.map +1 -0
  14. package/lib/contract/AddressContract.cjs +34 -0
  15. package/lib/contract/AddressContract.d.ts +5 -0
  16. package/lib/contract/AddressContract.js.map +1 -0
  17. package/lib/contract/index.cjs +6 -1
  18. package/lib/contract/index.js.map +1 -1
  19. package/lib/esm/client/FabricClientAdapter.d.ts +2 -2
  20. package/lib/esm/client/FabricClientAdapter.js +19 -0
  21. package/lib/esm/client/FabricClientAdapter.js.map +1 -1
  22. package/lib/esm/client/FabricClientRepository.js +1 -1
  23. package/lib/esm/client/FabricClientRepository.js.map +1 -1
  24. package/lib/esm/client/fabric-fs.d.ts +1 -1
  25. package/lib/esm/contract/Address.d.ts +13 -0
  26. package/lib/esm/contract/Address.js +70 -0
  27. package/lib/esm/contract/Address.js.map +1 -0
  28. package/lib/esm/contract/AddressContract.d.ts +5 -0
  29. package/lib/esm/contract/AddressContract.js +31 -0
  30. package/lib/esm/contract/AddressContract.js.map +1 -0
  31. package/lib/esm/contract/index.js +6 -1
  32. package/lib/esm/contract/index.js.map +1 -1
  33. package/lib/esm/shared/decorators.d.ts +1 -1
  34. package/lib/esm/shared/decorators.js +1 -1
  35. package/lib/esm/shared/errors.d.ts +3 -0
  36. package/lib/esm/shared/errors.js +5 -0
  37. package/lib/esm/shared/errors.js.map +1 -1
  38. package/lib/esm/shared/utils.d.ts +1 -1
  39. package/lib/esm/version.d.ts +1 -1
  40. package/lib/esm/version.js +1 -1
  41. package/lib/shared/decorators.cjs +2 -2
  42. package/lib/shared/decorators.d.ts +1 -1
  43. package/lib/shared/errors.cjs +7 -1
  44. package/lib/shared/errors.d.ts +3 -0
  45. package/lib/shared/errors.js.map +1 -1
  46. package/lib/shared/utils.d.ts +1 -1
  47. package/lib/version.cjs +1 -1
  48. package/lib/version.d.ts +1 -1
  49. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as i,CouchDBOperator as r,CouchDBAdapter as s}from"@decaf-ts/for-couchdb";import{Model as n,JSONSerializer as a,required as o,type as l,list as c,model as u}from"@decaf-ts/decorator-validation";import{Context as d,ObserverHandler as p,Adapter as g,Repository as h,Condition as y,repositoryFromTypeMetadata as w,cacheModelForPopulate as f,Cascade as m,createOrUpdate as x,getPopulateKey as b,UnsupportedError as A,QueryError as S,PagingError as v,MigrationError as C,ObserverError as O,AuthorizationError as N,ForbiddenError as k,ConnectionError as E,PersistenceKeys as R,relation as z,oneToManyOnUpdate as T,OrderDirection as P,pk as D,column as $,table as I,BaseModel as B}from"@decaf-ts/core";import{OperationKeys as F,BulkCrudOperationKeys as j,DBKeys as _,InternalError as L,SerializationError as J,NotFoundError as q,ConflictError as M,BadRequestError as U,onCreate as Y,onCreateUpdate as H,readonly as K,onUpdate as Q,onDelete as V,afterAny as G,BaseError as W,ValidationError as X}from"@decaf-ts/db-decorators";import{Property as Z,Object as tt,Contract as et,Context as it,Transaction as rt}from"fabric-contract-api";import{Metadata as st,Decoration as nt,propMetadata as at,apply as ot,prop as lt}from"@decaf-ts/decoration";import{Logging as ct,MiniLogger as ut,NumericLogLevels as dt,LogLevel as pt}from"@decaf-ts/logging";import{__decorate as gt,__metadata as ht}from"tslib";class yt extends d{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class wt extends p{constructor(t=[F.CREATE,F.UPDATE,F.DELETE,j.CREATE_ALL,j.UPDATE_ALL,j.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,i,...r){const{log:s,ctx:n}=g.logCtx(r,this.updateObservers),{stub:a}=n,[o,l]=r,c="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){s.debug(`Emitting ${e} event`);const t=((t,e,i)=>{const r=[t,e];return i&&r.push(i),r.join("_")})(c,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:i})))}else a.setEvent(e,Buffer.from(JSON.stringify(l)))}}class ft extends h{constructor(t,e,i){super(t,e),this.trackedEvents=i}ObserverHandler(){return new wt}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class mt extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:i}=this.logCtx(e,this.raw),r=await this.adapter.raw(t,!0,i),s=n.pk(this.fromSelector),a=st.get(this.fromSelector,st.key(_.ID,s))?.type;return this.selectSelector?r:r.map((t=>this.processRecord(t,s,a,i)))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=n.tableName(this.fromSelector);const s={selector:t};if(this.selectSelector&&(s.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(y.and(this.whereCondition,y.attribute(e.TABLE).eq(s.selector[e.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(i).indexOf(r[0]))switch(r[0]){case i.AND:t[i.AND]=[...Object.values(t[i.AND]).reduce(((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const s=r[0];return s===i.AND?t.push(...e[s]):t.push(e),t}),[])],s.selector=t;break;case i.OR:{const e={};e[i.AND]=[t,...Object.entries(s.selector).map((([t,e])=>{const i={};return i[t]=e,i}))],s.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach((([t,e])=>{s.selector[t],s.selector[t]=e}))}if(this.orderBySelector){s.sort=s.sort||[],s.selector=s.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,s.sort.push(i),s.selector[t]||(s.selector[t]={},s.selector[t][r.BIGGER]=null)}return this.limitSelector&&(s.limit=this.limitSelector),this.offsetSelector&&(s.skip=this.offsetSelector),s}}var xt,bt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(xt||(xt={})),(t=>{t.X509="X.509"})(bt||(bt={}));const At="hlf-fabric";class St extends a{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function vt(t,e,i,r){const s=r[i];if(!s)return;if("object"!=typeof s){const e=w(r,i,this.adapter.alias),n=await e.read(s,t);return await f(t,r,i,s,n),void(r[i]=s)}e.class="string"==typeof e.class?e.class:e.class().name;const a=n.get(e.class);if(!a)throw new L("Could not find model "+e.class);const o=h.forModel(a,this.adapter.alias),l=await o.create(s,t),c=n.pk(l);await f(t,r,i,l[c],l),r[i]=l[c]}async function Ct(t,e,i,r){const s=r[i];if(!s)return;if(e.cascade.update!==m.CASCADE)return;if("object"!=typeof s){const e=w(r,i,this.adapter.alias),n=await e.read(s,t);return await f(t,r,i,s,n),void(r[i]=s)}const a=await x(r[i],t,this.adapter.alias),o=n.pk(a);await f(t,r,i,a[o],a),r[i]=a[o]}async function Ot(t,e,i,r){const s=r[i];if(!s)return;if(e.cascade.update!==m.CASCADE)return;const a=w(r,i,this.adapter.alias);let o;o=s instanceof n?await a.delete(r[i][n.pk(a.class)],t):await a.delete(r[i],t),await f(t,r,i,o[n.pk(a.class)],o)}async function Nt(t,e,i,r){const s=r[i];if(!s||!s.length)return;const a=typeof s[0];if(!s.every((t=>typeof t===a)))throw new L(`Invalid operation. All elements of property ${i} must match the same type.`);const o=new Set([...s]);if("object"!==a){const e=w(r,i,this.adapter.alias);for(const s of o){const n=await e.read(s,t);await f(t,r,i,s,n)}return void(r[i]=[...o])}const l=n.pk(s[0]),c=new Set;for(const e of s){const s=await x(e,t,this.adapter.alias);await f(t,r,i,s[l],s),c.add(s[l])}r[i]=[...c]}async function kt(t,e,i,r){if(e.cascade.delete!==m.CASCADE)return;const s=r[i];if(!s||!s.length)return;const a=typeof s[0];if(!s.every((t=>typeof t===a)))throw new L(`Invalid operation. All elements of property ${i} must match the same type.`);const o="object"===a,l=o?h.forModel(s[0],this.adapter.alias):w(r,i,this.adapter.alias),c=new Set([...o?s.map((t=>t[n.pk(this.class)])):s]);for(const e of c.values()){const s=await l.delete(e,t);await f(t,r,i,e,s)}r[i]=[...c]}async function Et(t,e,i,r){if(!e.populate)return;const s=r[i],n=Array.isArray(s);if(void 0===s||n&&0===s.length)return;const a=await(async(e,i,r,s,n)=>{let a,o;const l=[];for(const c of s){a=b(i.constructor.name,r,c);try{o=await e.get(a)}catch(e){const s=w(i,r,n);if(!s)throw new L("Could not find repo");o=await s.read(c,t)}l.push(o)}return l})(t,r,i,n?s:[s],this.adapter.alias);r[i]=n?a:a[0]}class Rt extends ut{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new ut(t,e)}log(t,e,i){if(dt[this.config("level")]<dt[t])return;let r;switch(t){case pt.info:r=this.logger.info;break;case pt.verbose:r=this.logger.verbose;break;case pt.debug:r=this.logger.debug;break;case pt.error:r=this.logger.error;break;case pt.silly:r=this.logger.silly;break;default:throw new L("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}async function zt(t,e,i,r){try{const e=t.get("identity");r[i]=e.getID()}catch(t){throw new A("No User found in context. Please provide a user in the context")}}async function Tt(t,e,i,r){if(!e.type||r[i])return;let s;e.name||(e.name=n.sequenceName(r,"pk"));try{s=await this.adapter.Sequence(e)}catch(t){throw new L(`Failed to instantiate Sequence ${e.name}: ${t}`)}const a=await s.next(t);Object.defineProperty(r,i,{enumerable:!0,writable:!1,configurable:!0,value:a})}ct.setFactory(((t,e,i)=>new Rt(t||Rt.name,e||{},i)));class Pt extends s{getClient(){throw new A("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new St}repository(){return ft}constructor(t,e){super(t,At,e),this.Context=yt}for(t,...e){return super.for(t,...e)}async create(t,e,i,...r){const{ctx:s,log:a,stub:o}=this.logCtx(r,this.create);a.info("in ADAPTER create with args "+r);const l=n.tableName(t);try{a.info(`adding entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async read(t,e,...i){const{ctx:r,log:s,stub:a}=this.logCtx(i,this.read);s.info("in ADAPTER read with args "+i);const o=n.tableName(t);let l;try{const t=a.createCompositeKey(o,[e+""]);l=await this.readState(t,r)}catch(t){throw this.parseError(t)}return l}async update(t,e,i,...r){const{ctx:s,log:a,stub:o}=this.logCtx(r,this.update),l=n.tableName(t);try{a.verbose(`updating entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async delete(t,e,...i){const{ctx:r,log:s,ctxArgs:a,stub:o}=this.logCtx(i,this.delete),l=n.tableName(t);let c;try{const i=o.createCompositeKey(l,[e+""]);c=await this.read(t,e,...a),s.verbose(`deleting entry with pk ${e} from ${l} table`),await this.deleteState(i,r)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{stub:i}=this.logCtx([e],this.deleteState);await i.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map((t=>t.name));return new Proxy(this,{get:(i,r,s)=>e.includes(r)?new Proxy(i[r],{async apply(e,i,s){switch(r){case"putState":{const[e,i,r]=s;return await e.putPrivateData(t,i.toString(),r),r}case"deleteState":{const[e,i]=s;return e.deletePrivateData(t,i)}case"readState":{const[e,i]=s;return e.getPrivateData(t,i)}case"queryResult":{const[e,i]=s;return e.getPrivateDataQueryResult(t,i)}case"queryResultPaginated":{const[e,i,r,n]=s,a=await e.getPrivateDataQueryResult(t,i),o=[];let l=0,c=!n,u=null;for(;;){const t=await a.next();if(t.value&&t.value.value.toString()){const e=t.value.key,i=t.value.value.toString("utf8");if(!c){e===n?.toString()&&(c=!0);continue}if(o.push({Key:e,Record:JSON.parse(i)}),u=e,l++,l>=r)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new L("Unsupported method override "+r)}}}):Reflect.get(i,r,s)})}async putState(t,e,i){let r;const{stub:s,log:n}=this.logCtx([i],this.putState);try{r=Buffer.from(Pt.serializer.serialize(e))}catch(e){throw new J(`Failed to serialize record with id ${t}: ${e}`)}const a=i.get("segregated");return a?await s.putPrivateData(a,t.toString(),r):await s.putState(t.toString(),r),n.silly(`state stored${a?` in ${a} collection`:""} under id ${t}`),e}async readState(t,e){let i;const{stub:r,log:s}=this.logCtx([e],this.readState);let n;const a=e.get("segregated");if(n=a?(await r.getPrivateData(a,t.toString())).toString():(await r.getState(t.toString())).toString(),!n)throw new q(`Record with id ${t}${a?` in ${a} collection`:""} not found`);s.silly(`state retrieved from${a?` ${a} collection`:""} under id ${t}`);try{i=Pt.serializer.deserialize(n.toString())}catch(t){throw new J("Failed to parse record: "+t)}return i}async queryResult(t,e,...i){const{ctx:r}=this.logCtx(i,this.readState);let s;const n=r.get("segregated");return s=n?await t.getPrivateDataQueryResult(n,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),s}async queryResultPaginated(t,e,i=250,r,...s){const{ctx:n}=this.logCtx(s,this.readState);let a;const o=n.get("segregated");return o?(e.selector={...e.selector,_id:r?{$gt:r.toString()}:{$gte:""}},a={iterator:await t.getPrivateDataQueryResult(o,JSON.stringify(e)),metadata:{fetchedRecordsCount:i,bookmark:""}}):a=await t.getQueryResultWithPagination(JSON.stringify(e),i,r?.toString()),a}mergeModels(t){const e=t=>Object.entries(t).reduce(((t,[e,i])=>(void 0!==i&&(t[e]=i),t)),{});let i=t.pop();for(const r of t)i=Object.assign({},e(i),e(r));return i}decode(t){return Pt.textDecoder.decode(t)}async flags(t,e,i,r,...s){const n={stub:r.stub,segregated:!1};return Object.assign(n,r instanceof yt?{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()}:{identity:r.clientIdentity,logger:new Rt(this,void 0,r),correlationId:r.stub.getTxID()}),await super.flags(t,e,n,...s)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,i=!1){const r=[];let s=await e.next();for(;!s.done;){if(s.value&&s.value.value.toString()){let e={};if(t.debug(s.value.value.toString("utf8")),i){e.TxId=s.value.txId,e.Timestamp=s.value.timestamp;try{e.Value=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e.Value=s.value.value.toString("utf8")}}else try{e=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e=s.value.value.toString("utf8")}r.push(e)}s=await e.next()}return t.debug(`Closing iterator after ${r.length} results`),e.close(),r}async raw(t,e=!0,...i){const{log:r,stub:s}=this.logCtx(i,this.raw),{skip:n,limit:a}=t;let o;a||n?(delete t.limit,delete t.skip,r.debug(`Retrieving paginated iterator: limit: ${a}/ skip: ${n}`),o=(await this.queryResultPaginated(s,t,a||250,n?.toString())).iterator):(r.debug("Retrieving iterator"),o=await this.queryResult(s,t)),r.debug("Iterator acquired");const l=await this.resultIterator(r,o);return r.debug(`returning ${Array.isArray(l)?l.length:1} results`),l}Statement(){return new mt(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new L("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(r,this.createAll),o=n.tableName(t);return s.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map(((e,r)=>this.create(t,e,i[r],...a))))}async updateAll(t,e,i,...r){if(e.length!==i.length)throw new L("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(r,this.updateAll),o=n.tableName(t);return s.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map(((e,r)=>this.update(t,e,i[r],...a))))}prepare(t,...e){const{log:i}=this.logCtx(e,this.prepare),r=n.tableName(t.constructor),s=n.pk(t.constructor),a=n.segregate(t),o=Object.entries(a.model).reduce(((e,[i,r])=>{if(void 0===r)return e;const s=n.columnName(t,i);if(this.isReserved(s))throw new L(`Property name ${s} is reserved`);return e[s]=r,e}),{});return i.silly(`Preparing record for ${r} table with pk ${t[s]}`),{record:o,id:t[s],transient:a.transient}}revert(t,e,i,r,...s){const{log:a}=this.logCtx(s,this.revert),o={};o[n.pk(e)]=i;const l="string"==typeof e?n.build(o,e):new e(o);a.silly(`Rebuilding model ${l.constructor.name} id ${i}`);const c=Object.keys(l).reduce(((e,i)=>(e[i]=t[n.columnName(e,i)],e)),l);return r&&(a.debug("re-adding transient properties: "+Object.keys(r).join(", ")),Object.entries(r).forEach((([t,e])=>{if(t in c&&void 0!==c[t])throw new L(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);c[t]=e}))),c}createPrefix(t,i,r,...s){const{ctxArgs:a}=this.logCtx(s,this.createPrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,r),[t,i,o,...a]}updatePrefix(t,i,r,...s){const{ctxArgs:a}=this.logCtx(s,this.updatePrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,r),[t,i,o,...a]}createAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new L("Ids and models must have the same length");const n=s.pop(),a=i.map(((i,s)=>{const n={};return n[e.TABLE]=t,Object.assign(n,r[s]),n}));return[t,i,a,n]}updateAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new L("Ids and models must have the same length");const n=s.pop(),a=i.map(((i,s)=>{const n={};return n[e.TABLE]=t,Object.assign(n,r[s]),n}));return[t,i,a,n]}parseError(t,e){return Pt.parseError(e||t)}logCtx(t,e){return Pt.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new L("No context provided");const i=t.pop();if(!(i instanceof d))throw new L("No context provided");if(t.filter((t=>t instanceof d)).length>1)throw Error("here");const r=this?i.logger.for(this).for(e):i.logger.clear().for(this).for(e);return{ctx:i,log:e?r.for(e):r,stub:i.stub,identity:i.identity,ctxArgs:[...t,i]}}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(q.name)?new q(t):e.includes(M.name)?new M(t):e.includes(U.name)?new U(t):e.includes(S.name)?new S(t):e.includes(v.name)?new v(t):e.includes(A.name)?new A(t):e.includes(C.name)?new C(t):e.includes(O.name)?new O(t):e.includes(N.name)?new N(t):e.includes(k.name)?new k(t):e.includes(E.name)?new E(t):e.includes(J.name)?new J(t):new L(t)}static decoration(){super.decoration(),nt.flavouredAs(At).for(R.CREATED_BY).define(Y(zt),at(R.CREATED_BY,{})).apply(),nt.flavouredAs(At).for(R.UPDATED_BY).define(H(zt),at(R.UPDATED_BY,{})).apply(),nt.flavouredAs(At).for(_.ID).define({decorator:(t,e)=>(i,r)=>ot(o(),K(),at(st.key(_.ID,r),t),Y(Tt,t,e))(i,r)}).apply(),nt.flavouredAs(At).for(R.COLUMN).extend(Z()).apply(),nt.flavouredAs(At).for(R.TABLE).extend((t=>tt()(t))).apply(),nt.flavouredAs(At).for(R.ONE_TO_ONE).define({decorator:(t,e,i,r,s)=>{const n={class:t,cascade:e,populate:i};return r&&(n.joinTable=r),s&&(n.name=s),ot(lt(),z(R.ONE_TO_ONE,n),l([t,String,Number,BigInt]),Y(vt,n),Q(Ct,n),V(Ot,n),G(Et,n),at(R.ONE_TO_ONE,n))}}).apply(),nt.for(R.ONE_TO_MANY).define({decorator:(t,e,i,r,s)=>{const n={class:t,cascade:e,populate:i};return r&&(n.joinTable=r),s&&(n.name=s),ot(lt(),z(R.ONE_TO_MANY,n),c([t,String,Number]),Y(Nt,n),Q(T,n),V(kt,n),G(Et,n),at(R.ONE_TO_MANY,n))}}).apply()}}Pt.decoration(),g.setCurrent(At);class Dt extends a{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class $t extends et{static{this.adapter=new Pt}static{this.serializer=new Dt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=h.forModel(e)}async listBy(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.listBy);return this.repo.listBy(e,i,...s)}async paginateBy(t,e,i,r,...s){const{ctxArgs:n}=await this.logCtx([...s,t],this.paginateBy);return this.repo.paginateBy(e,i,r,...n)}async findOneBy(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.findOneBy);return this.repo.findOneBy(e,i,...s)}async statement(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.statement);return this.repo.statement(e,...r)}async create(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.create);r.info("CONTRACT CREATE, "+s),"string"==typeof e&&(e=this.deserialize(e)),r.info("Creating model: "+JSON.stringify(e));const a=this.getTransientData(t);return r.info("Merging transient data..."),e=n.merge(e,a,this.clazz),this.repo.create(e,...s)}async read(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...s)}getTransientData(t){const e=t.stub.getTransient();let i={};return e.has(this.repo.tableName)&&(i=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),i}async update(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),r.info("Updating model: "+JSON.stringify(e));const a=this.getTransientData(t);return r.info("Merging transient data..."),e=n.merge(e,a,this.clazz),this.repo.update(e,...s)}async delete(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...s)}async deleteAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...r)}async readAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...r)}async updateAll(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),r.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...s)}async query(t,e,i,r=P.ASC,s,n,...a){const{ctxArgs:o}=await this.logCtx([...a,t],this.query);return this.repo.query(e,i,r,s,n,...o)}async raw(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),$t.adapter.raw(e,i,...s)}serialize(t){return $t.serializer.serialize(t)}deserialize(t){return $t.serializer.deserialize(t)}async init(t){const{log:e}=await this.logCtx([t],this.init);e.info(`Running contract ${this.getName()} initialization...`),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...i){const{log:r}=await this.logCtx([...i,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),r.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...i)}async logCtx(t,e){return $t.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new L("No context provided");const i=t.pop();if(i instanceof yt)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof it))throw new L("No valid context provided");const r={correlationId:i.stub.getTxID()},s=await $t.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case F.CREATE:case F.READ:case F.UPDATE:case F.DELETE:case j.CREATE_ALL:case j.READ_ALL:case j.UPDATE_ALL:case j.DELETE_ALL:}return e.name})(),r,this.clazz,i),n=this?s.logger.for(this).for(e):s.logger.clear().for(this).for(e);return{ctx:s,log:n,stub:s.stub,identity:s.identity,ctxArgs:[...t,s]}}}class It extends $t{constructor(t,e){super(t,e)}async create(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.create);i.info("Creating model: "+e);const s=this.deserialize(e);return i.info("Model deserialized: "+JSON.stringify(s)),this.serialize(await super.create(r,s))}async read(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.read);return i.info("Reading id: "+e),this.serialize(await super.read(r,e))}async update(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.update);return i.info("Updating model: "+e),this.serialize(await super.update(r,e))}async delete(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.delete);return i.info("Deleting id: "+e),this.serialize(await super.delete(r,e))}async deleteAll(t,e){const i=JSON.parse(e),{log:r,ctx:s}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${i.length} entries from the table`),JSON.stringify((await super.deleteAll(s,i)).map((t=>this.serialize(t))))}async readAll(t,e){const i=JSON.parse(e),{log:r,ctx:s}=await this.logCtx([t],this.readAll);return r.info(`reading ${i.length} entries from the table`),JSON.stringify((await super.readAll(s,i)).map((t=>this.serialize(t))))}async updateAll(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.updateAll),s=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return i.info(`Updating ${s.length} entries to the table`),JSON.stringify((await super.updateAll(r,s)).map((t=>this.serialize(t))))}async statement(t,e,...i){const{ctx:r,log:s}=await this.logCtx([...i,t],this.statement);return i=i.map((t=>{try{return JSON.parse(t)}catch(e){return t}})),s.info("calling prepared statement "+e),s.debug("with args "+i),super.statement(r,e,...i)}async listBy(t,e,i,...r){const{ctx:s}=await this.logCtx([...r,t],this.listBy);return super.listBy(s,e,i)}async paginateBy(t,e,i,r,...s){const{ctx:n}=await this.logCtx([...s,t],this.paginateBy);return super.paginateBy(n,e,i,r)}async findOneBy(t,e,i,...r){const{ctx:s}=await this.logCtx([...r,t],this.paginateBy);return super.findOneBy(s,e,i,...r)}async query(t,e,i,r,s,n,...a){const{ctx:o}=await this.logCtx([t],this.query);let l;try{l=y.from(JSON.parse(e))}catch(t){throw new J("Invalid condition: "+t)}return super.query(o,l,i,r,s,n,...a)}async raw(t,e,i,...r){const{ctx:s}=await this.logCtx([t],this.raw),n=JSON.parse(e);return super.raw(s,n,i,...r)}async init(t){await super.init(t)}async healthcheck(t){const{log:e,ctx:i}=await this.logCtx([t],this.updateAll);return e.debug(`Running Healthcheck: ${this.initialized}...`),JSON.stringify(await super.healthcheck(i))}async createAll(t,e){const{log:i}=await this.logCtx([t],this.createAll),r=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return i.info(`Adding ${r.length} entries to the table`),JSON.stringify((await super.createAll(t,r)).map((t=>this.serialize(t))))}}gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"create",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"read",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"update",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"delete",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"deleteAll",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"readAll",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"updateAll",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String]),ht("design:returntype",Promise)],It.prototype,"statement",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String,String]),ht("design:returntype",Promise)],It.prototype,"listBy",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String,Number,String]),ht("design:returntype",Promise)],It.prototype,"paginateBy",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String,String]),ht("design:returntype",Promise)],It.prototype,"findOneBy",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],It.prototype,"init",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],It.prototype,"healthcheck",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"createAll",null);class Bt extends L{constructor(t){super(t,Bt.name)}}class Ft extends L{constructor(t){super(t,Ft.name)}}class jt extends L{constructor(t){super(t,jt.name)}}class _t extends W{constructor(t){super(_t.name,t,409)}}function Lt(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new Bt(`Addition overflow: ${t} + ${e}`);return i}function Jt(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new Bt(`Subtraction overflow: ${t} - ${e}`);return i}let qt=class extends B{constructor(t){super(t)}};gt([D({type:"String"}),ht("design:type",String)],qt.prototype,"name",void 0),gt([$(),o(),ht("design:type",String)],qt.prototype,"owner",void 0),gt([$(),o(),ht("design:type",String)],qt.prototype,"symbol",void 0),gt([$(),o(),ht("design:type",Number)],qt.prototype,"decimals",void 0),qt=gt([I("erc20_tokens"),u(),ht("design:paramtypes",[Object])],qt);let Mt=class extends B{constructor(t){super(t)}};gt([D({type:"String"}),ht("design:type",String)],Mt.prototype,"id",void 0),gt([$(),o(),ht("design:type",String)],Mt.prototype,"token",void 0),gt([$(),o(),ht("design:type",Number)],Mt.prototype,"balance",void 0),gt([$(),ht("design:type",String)],Mt.prototype,"captive",void 0),Mt=gt([I("erc20_wallets"),u(),ht("design:paramtypes",[Object])],Mt);let Ut=class extends B{constructor(t){super(t)}};function Yt(){return function(t,e,i){const r=i.value;return i.value=async function(...t){const i=t[0],s=i.clientIdentity.getID(),n=await this.tokenRepository.select(),a=await n.execute(i);if(0==a.length)throw new q("No tokens avaialble");if(a.length>1)throw new q("To many token available : "+a.length);if(a[0].owner!=s)throw new N(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Ht;gt([D({type:"String"}),$(),o(),ht("design:type",String)],Ut.prototype,"owner",void 0),gt([$(),o(),ht("design:type",String)],Ut.prototype,"spender",void 0),gt([$(),o(),ht("design:type",Number)],Ut.prototype,"value",void 0),Ut=gt([I("erc20_allowances"),u(),ht("design:paramtypes",[Object])],Ut),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Ht||(Ht={}));class Kt extends $t{constructor(t){super(t,Mt),Kt.adapter=Kt.adapter||new Pt,this.walletRepository=ft.forModel(Mt,Kt.adapter.alias),this.tokenRepository=ft.forModel(qt,Kt.adapter.alias),this.allowanceRepository=ft.forModel(Ut,Kt.adapter.alias)}async TokenName(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.tokenRepository.select();return(await i.execute(e))[0].name}async Symbol(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.tokenRepository.select();return(await i.execute(e))[0].symbol}async Decimals(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.tokenRepository.select();return(await i.execute(e))[0].decimals}async TotalSupply(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.walletRepository.select(),r=await i.execute(e);if(0==r.length)throw new q(`The token ${this.getName()} does not exist`);let s=0;return r.forEach((t=>{s+=t.balance})),s}async BalanceOf(t,e){const{ctx:i}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(i),(await this.walletRepository.read(e,i)).balance}async Transfer(t,e,i){const{ctx:r}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(r);const s=r.identity.getID();if(!await this._transfer(s,e,i,r))throw new L("Failed to transfer");return!0}async TransferFrom(t,e,i,r){const{ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=s.identity.getID(),a=await this._getAllowance(e,n,s);if(!a||0>a.value)throw new jt(`spender ${n} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Ft("The spender does not have enough allowance to spend.");const l=Jt(o,r),c=Object.assign({},a,{value:l});if(await this.allowanceRepository.update(c,s),!await this._transfer(e,i,r,s))throw new L("Failed to transfer");return!0}async _transfer(t,e,i,r){const s=r.logger;if(t===e)throw new N("cannot transfer to and from same client account");if(0>i)throw new Ft("transfer amount cannot be negative");const n=await this.walletRepository.read(t,r),a=n.balance;if(i>a)throw new Ft(`client account ${t} has insufficient funds.`);let o,l=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof W))throw new L(t);if(404!==t.code)throw new L(t.message);o=new Mt({id:e,balance:0,token:await this.TokenName(r)}),l=!0}const c=o.balance,u=Jt(a,i),d=Lt(c,i),p=Object.assign({},n,{balance:u});await this.walletRepository.update(p,r);const g=Object.assign({},o,{balance:d});l?await this.walletRepository.create(g,r):await this.walletRepository.update(g,r);const h={from:t,to:e,value:i};return this.repo.refresh(qt,Ht.TRANSFER,"",h,r).catch((t=>s.error("Failed to notify transfer: "+t))),!0}async Approve(t,e,i){const{ctx:r,ctxArgs:s}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const n=r.identity.getID();let a=await this._getAllowance(n,e,r);if((await this.walletRepository.read(n,...s)).balance<i)throw new Ft(`client account ${n} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...s)):(a=new Ut({owner:n,spender:e,value:i}),await this.allowanceRepository.create(a,...s));const o={owner:n,spender:e,value:i};return this.repo.refresh(qt,Ht.APPROVAL,"",o,r),!0}async Allowance(t,e,i){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const s=await this._getAllowance(e,i,r);if(!s)throw new jt(`spender ${i} has no allowance from ${e}`);return s.value}async _getAllowance(t,e,i){const r=y.and(y.attribute("owner").eq(t),y.attribute("spender").eq(e)),s=await this.allowanceRepository.select().where(r).execute(i);return s?.[0]}async Initialize(t,e){const{ctx:i}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(i)).length>0)throw new N("contract options are already set, client is not authorized to change them");return e.owner=i.identity.getID(),await this.tokenRepository.create(e,i),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new _t("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){const{ctx:i}=await this.logCtx([t],this.Mint);await this.CheckInitialized(i);const r=i.identity.getID();if(0>=e)throw new X("mint amount must be a positive integer");let s;try{s=await this.walletRepository.read(r,i);const t=Lt(s.balance,e),n=Object.assign({},s,{balance:t});await this.walletRepository.update(n,i)}catch(s){if(!(s instanceof W))throw new L(s);if(404!==s.code)throw new L(s.message);{const s=new Mt({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(s,i)}}const n={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers(qt,Ht.TRANSFER,"",n,i)}async Burn(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const s=r.identity.getID(),n=await this.walletRepository.read(s,r),a=n.balance;if(e>a)throw new Ft("Minter has insufficient funds.");const o=Jt(a,e),l=Object.assign({},n,{balance:o});await this.walletRepository.update(l,r),i.info(e+" tokens were burned");const c={from:s,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(qt,Ht.TRANSFER,"",c,r)}async BurnFrom(t,e,i){const{log:r,ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=await this.walletRepository.read(e,s),a=n.balance;if(i>a)throw new Ft(e+" has insufficient funds.");const o=Jt(a,i),l=Object.assign({},n,{balance:o});await this.walletRepository.update(l,s),r.info(`${i} tokens were burned from ${e}`);const c={from:e,to:"0x0",value:i};this.repo.ObserverHandler().updateObservers(qt,Ht.TRANSFER,"",c,s)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=e.identity.getID(),r=await this.walletRepository.read(i,e);if(!r)throw new Ft(`The account ${i} does not exist`);return r.balance}async ClientAccountID(t){const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return await this.CheckInitialized(e),e.identity.getID()}}gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"TokenName",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"Symbol",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"Decimals",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"TotalSupply",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],Kt.prototype,"BalanceOf",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"Transfer",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"TransferFrom",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"Approve",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String]),ht("design:returntype",Promise)],Kt.prototype,"Allowance",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,qt]),ht("design:returntype",Promise)],Kt.prototype,"Initialize",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"CheckInitialized",null),gt([Yt(),rt(),ht("design:type",Function),ht("design:paramtypes",[it,Number]),ht("design:returntype",Promise)],Kt.prototype,"Mint",null),gt([Yt(),rt(),ht("design:type",Function),ht("design:paramtypes",[it,Number]),ht("design:returntype",Promise)],Kt.prototype,"Burn",null),gt([Yt(),rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"BurnFrom",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"ClientAccountBalance",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"ClientAccountID",null);const Qt=[Kt],Vt="##VERSION##",Gt="##PACKAGE##";st.registerLibrary(Gt,Vt);export{Rt as ContractLogger,Pt as FabricContractAdapter,yt as FabricContractContext,ft as FabricContractRepository,wt as FabricContractRepositoryObservableHandler,$t as FabricCrudContract,mt as FabricStatement,Gt as PACKAGE_NAME,It as SerializedCrudContract,Vt as VERSION,Qt as contracts,zt as createdByOnFabricCreateUpdate,Tt as pkFabricOnCreate};
1
+ import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as i,CouchDBOperator as r,CouchDBAdapter as s}from"@decaf-ts/for-couchdb";import{Model as n,JSONSerializer as a,required as o,type as l,list as c,model as u}from"@decaf-ts/decorator-validation";import{Context as d,ObserverHandler as p,Adapter as g,Repository as h,Condition as y,repositoryFromTypeMetadata as w,cacheModelForPopulate as f,Cascade as m,createOrUpdate as x,getPopulateKey as b,UnsupportedError as A,QueryError as S,PagingError as v,MigrationError as C,ObserverError as O,AuthorizationError as N,ForbiddenError as k,ConnectionError as E,PersistenceKeys as R,relation as z,oneToManyOnUpdate as T,OrderDirection as P,pk as D,column as $,table as I,BaseModel as B}from"@decaf-ts/core";import{OperationKeys as F,BulkCrudOperationKeys as j,DBKeys as _,InternalError as L,SerializationError as J,NotFoundError as q,ConflictError as M,BadRequestError as U,onCreate as Y,onCreateUpdate as H,readonly as K,onUpdate as Q,onDelete as V,afterAny as G,BaseError as W,ValidationError as X}from"@decaf-ts/db-decorators";import{Property as Z,Object as tt,Contract as et,Context as it,Transaction as rt}from"fabric-contract-api";import{Metadata as st,Decoration as nt,propMetadata as at,apply as ot,prop as lt}from"@decaf-ts/decoration";import{Logging as ct,MiniLogger as ut,NumericLogLevels as dt,LogLevel as pt}from"@decaf-ts/logging";import{__decorate as gt,__metadata as ht}from"tslib";class yt extends d{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class wt extends p{constructor(t=[F.CREATE,F.UPDATE,F.DELETE,j.CREATE_ALL,j.UPDATE_ALL,j.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,i,...r){const{log:s,ctx:n}=g.logCtx(r,this.updateObservers),{stub:a}=n,[o,l]=r,c="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){s.debug(`Emitting ${e} event`);const t=((t,e,i)=>{const r=[t,e];return i&&r.push(i),r.join("_")})(c,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:i})))}else a.setEvent(e,Buffer.from(JSON.stringify(l)))}}class ft extends h{constructor(t,e,i){super(t,e),this.trackedEvents=i}ObserverHandler(){return new wt}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class mt extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:i}=this.logCtx(e,this.raw),r=await this.adapter.raw(t,!0,i),s=n.pk(this.fromSelector),a=st.get(this.fromSelector,st.key(_.ID,s))?.type;return this.selectSelector?r:r.map(t=>this.processRecord(t,s,a,i))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=n.tableName(this.fromSelector);const s={selector:t};if(this.selectSelector&&(s.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(y.and(this.whereCondition,y.attribute(e.TABLE).eq(s.selector[e.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(i).indexOf(r[0]))switch(r[0]){case i.AND:t[i.AND]=[...Object.values(t[i.AND]).reduce((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const s=r[0];return s===i.AND?t.push(...e[s]):t.push(e),t},[])],s.selector=t;break;case i.OR:{const e={};e[i.AND]=[t,...Object.entries(s.selector).map(([t,e])=>{const i={};return i[t]=e,i})],s.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{s.selector[t],s.selector[t]=e})}if(this.orderBySelector){s.sort=s.sort||[],s.selector=s.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,s.sort.push(i),s.selector[t]||(s.selector[t]={},s.selector[t][r.BIGGER]=null)}return this.limitSelector&&(s.limit=this.limitSelector),this.offsetSelector&&(s.skip=this.offsetSelector),s}}var xt,bt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(xt||(xt={})),(t=>{t.X509="X.509"})(bt||(bt={}));const At="hlf-fabric";class St extends a{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function vt(t,e,i,r){const s=r[i];if(!s)return;if("object"!=typeof s){const e=w(r,i,this.adapter.alias),n=await e.read(s,t);return await f(t,r,i,s,n),void(r[i]=s)}e.class="string"==typeof e.class?e.class:e.class().name;const a=n.get(e.class);if(!a)throw new L("Could not find model "+e.class);const o=h.forModel(a,this.adapter.alias),l=await o.create(s,t),c=n.pk(l);await f(t,r,i,l[c],l),r[i]=l[c]}async function Ct(t,e,i,r){const s=r[i];if(!s)return;if(e.cascade.update!==m.CASCADE)return;if("object"!=typeof s){const e=w(r,i,this.adapter.alias),n=await e.read(s,t);return await f(t,r,i,s,n),void(r[i]=s)}const a=await x(r[i],t,this.adapter.alias),o=n.pk(a);await f(t,r,i,a[o],a),r[i]=a[o]}async function Ot(t,e,i,r){const s=r[i];if(!s)return;if(e.cascade.update!==m.CASCADE)return;const a=w(r,i,this.adapter.alias);let o;o=s instanceof n?await a.delete(r[i][n.pk(a.class)],t):await a.delete(r[i],t),await f(t,r,i,o[n.pk(a.class)],o)}async function Nt(t,e,i,r){const s=r[i];if(!s||!s.length)return;const a=typeof s[0];if(!s.every(t=>typeof t===a))throw new L(`Invalid operation. All elements of property ${i} must match the same type.`);const o=new Set([...s]);if("object"!==a){const e=w(r,i,this.adapter.alias);for(const s of o){const n=await e.read(s,t);await f(t,r,i,s,n)}return void(r[i]=[...o])}const l=n.pk(s[0]),c=new Set;for(const e of s){const s=await x(e,t,this.adapter.alias);await f(t,r,i,s[l],s),c.add(s[l])}r[i]=[...c]}async function kt(t,e,i,r){if(e.cascade.delete!==m.CASCADE)return;const s=r[i];if(!s||!s.length)return;const a=typeof s[0];if(!s.every(t=>typeof t===a))throw new L(`Invalid operation. All elements of property ${i} must match the same type.`);const o="object"===a,l=o?h.forModel(s[0],this.adapter.alias):w(r,i,this.adapter.alias),c=new Set([...o?s.map(t=>t[n.pk(this.class)]):s]);for(const e of c.values()){const s=await l.delete(e,t);await f(t,r,i,e,s)}r[i]=[...c]}async function Et(t,e,i,r){if(!e.populate)return;const s=r[i],n=Array.isArray(s);if(void 0===s||n&&0===s.length)return;const a=await(async(e,i,r,s,n)=>{let a,o;const l=[];for(const c of s){a=b(i.constructor.name,r,c);try{o=await e.get(a)}catch(e){const s=w(i,r,n);if(!s)throw new L("Could not find repo");o=await s.read(c,t)}l.push(o)}return l})(t,r,i,n?s:[s],this.adapter.alias);r[i]=n?a:a[0]}class Rt extends ut{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new ut(t,e)}log(t,e,i){if(dt[this.config("level")]<dt[t])return;let r;switch(t){case pt.info:r=this.logger.info;break;case pt.verbose:r=this.logger.verbose;break;case pt.debug:r=this.logger.debug;break;case pt.error:r=this.logger.error;break;case pt.silly:r=this.logger.silly;break;default:throw new L("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}async function zt(t,e,i,r){try{const e=t.get("identity");r[i]=e.getID()}catch(t){throw new A("No User found in context. Please provide a user in the context")}}async function Tt(t,e,i,r){if(!e.type||r[i])return;let s;e.name||(e.name=n.sequenceName(r,"pk"));try{s=await this.adapter.Sequence(e)}catch(t){throw new L(`Failed to instantiate Sequence ${e.name}: ${t}`)}const a=await s.next(t);Object.defineProperty(r,i,{enumerable:!0,writable:!1,configurable:!0,value:a})}ct.setFactory((t,e,i)=>new Rt(t||Rt.name,e||{},i));class Pt extends s{getClient(){throw new A("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new St}repository(){return ft}constructor(t,e){super(t,At,e),this.Context=yt}for(t,...e){return super.for(t,...e)}async create(t,e,i,...r){const{ctx:s,log:a,stub:o}=this.logCtx(r,this.create);a.info("in ADAPTER create with args "+r);const l=n.tableName(t);try{a.info(`adding entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async read(t,e,...i){const{ctx:r,log:s,stub:a}=this.logCtx(i,this.read);s.info("in ADAPTER read with args "+i);const o=n.tableName(t);let l;try{const t=a.createCompositeKey(o,[e+""]);l=await this.readState(t,r)}catch(t){throw this.parseError(t)}return l}async update(t,e,i,...r){const{ctx:s,log:a,stub:o}=this.logCtx(r,this.update),l=n.tableName(t);try{a.verbose(`updating entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async delete(t,e,...i){const{ctx:r,log:s,ctxArgs:a,stub:o}=this.logCtx(i,this.delete),l=n.tableName(t);let c;try{const i=o.createCompositeKey(l,[e+""]);c=await this.read(t,e,...a),s.verbose(`deleting entry with pk ${e} from ${l} table`),await this.deleteState(i,r)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{stub:i}=this.logCtx([e],this.deleteState);await i.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map(t=>t.name);return new Proxy(this,{get:(i,r,s)=>e.includes(r)?new Proxy(i[r],{async apply(e,i,s){switch(r){case"putState":{const[e,i,r]=s;return await e.putPrivateData(t,i.toString(),r),r}case"deleteState":{const[e,i]=s;return e.deletePrivateData(t,i)}case"readState":{const[e,i]=s;return e.getPrivateData(t,i)}case"queryResult":{const[e,i]=s;return e.getPrivateDataQueryResult(t,i)}case"queryResultPaginated":{const[e,i,r,n]=s,a=await e.getPrivateDataQueryResult(t,i),o=[];let l=0,c=!n,u=null;for(;;){const t=await a.next();if(t.value&&t.value.value.toString()){const e=t.value.key,i=t.value.value.toString("utf8");if(!c){e===n?.toString()&&(c=!0);continue}if(o.push({Key:e,Record:JSON.parse(i)}),u=e,l++,l>=r)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new L("Unsupported method override "+r)}}}):Reflect.get(i,r,s)})}async putState(t,e,i){let r;const{stub:s,log:n}=this.logCtx([i],this.putState);try{r=Buffer.from(Pt.serializer.serialize(e))}catch(e){throw new J(`Failed to serialize record with id ${t}: ${e}`)}const a=i.get("segregated");return a?await s.putPrivateData(a,t.toString(),r):await s.putState(t.toString(),r),n.silly(`state stored${a?` in ${a} collection`:""} under id ${t}`),e}async readState(t,e){let i;const{stub:r,log:s}=this.logCtx([e],this.readState);let n;const a=e.get("segregated");if(n=a?(await r.getPrivateData(a,t.toString())).toString():(await r.getState(t.toString())).toString(),!n)throw new q(`Record with id ${t}${a?` in ${a} collection`:""} not found`);s.silly(`state retrieved from${a?` ${a} collection`:""} under id ${t}`);try{i=Pt.serializer.deserialize(n.toString())}catch(t){throw new J("Failed to parse record: "+t)}return i}async queryResult(t,e,...i){const{ctx:r}=this.logCtx(i,this.readState);let s;const n=r.get("segregated");return s=n?await t.getPrivateDataQueryResult(n,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),s}async queryResultPaginated(t,e,i=250,r,...s){const{ctx:n}=this.logCtx(s,this.readState);let a;const o=n.get("segregated");return o?(e.selector={...e.selector,_id:r?{$gt:r.toString()}:{$gte:""}},a={iterator:await t.getPrivateDataQueryResult(o,JSON.stringify(e)),metadata:{fetchedRecordsCount:i,bookmark:""}}):a=await t.getQueryResultWithPagination(JSON.stringify(e),i,r?.toString()),a}mergeModels(t){const e=t=>Object.entries(t).reduce((t,[e,i])=>(void 0!==i&&(t[e]=i),t),{});let i=t.pop();for(const r of t)i=Object.assign({},e(i),e(r));return i}decode(t){return Pt.textDecoder.decode(t)}async flags(t,e,i,r,...s){const n={stub:r.stub,segregated:!1};return Object.assign(n,r instanceof yt?{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()}:{identity:r.clientIdentity,logger:new Rt(this,void 0,r),correlationId:r.stub.getTxID()}),await super.flags(t,e,n,...s)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,i=!1){const r=[];let s=await e.next();for(;!s.done;){if(s.value&&s.value.value.toString()){let e={};if(t.debug(s.value.value.toString("utf8")),i){e.TxId=s.value.txId,e.Timestamp=s.value.timestamp;try{e.Value=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e.Value=s.value.value.toString("utf8")}}else try{e=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e=s.value.value.toString("utf8")}r.push(e)}s=await e.next()}return t.debug(`Closing iterator after ${r.length} results`),e.close(),r}async raw(t,e=!0,...i){const{log:r,stub:s}=this.logCtx(i,this.raw),{skip:n,limit:a}=t;let o;a||n?(delete t.limit,delete t.skip,r.debug(`Retrieving paginated iterator: limit: ${a}/ skip: ${n}`),o=(await this.queryResultPaginated(s,t,a||250,n?.toString())).iterator):(r.debug("Retrieving iterator"),o=await this.queryResult(s,t)),r.debug("Iterator acquired");const l=await this.resultIterator(r,o);return r.debug(`returning ${Array.isArray(l)?l.length:1} results`),l}Statement(){return new mt(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new L("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(r,this.createAll),o=n.tableName(t);return s.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map((e,r)=>this.create(t,e,i[r],...a)))}async updateAll(t,e,i,...r){if(e.length!==i.length)throw new L("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(r,this.updateAll),o=n.tableName(t);return s.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map((e,r)=>this.update(t,e,i[r],...a)))}prepare(t,...e){const{log:i}=this.logCtx(e,this.prepare),r=n.tableName(t.constructor),s=n.pk(t.constructor),a=n.segregate(t),o=Object.entries(a.model).reduce((e,[i,r])=>{if(void 0===r)return e;const s=n.columnName(t,i);if(this.isReserved(s))throw new L(`Property name ${s} is reserved`);return e[s]=r,e},{});return i.silly(`Preparing record for ${r} table with pk ${t[s]}`),{record:o,id:t[s],transient:a.transient}}revert(t,e,i,r,...s){const{log:a}=this.logCtx(s,this.revert),o={};o[n.pk(e)]=i;const l="string"==typeof e?n.build(o,e):new e(o);a.silly(`Rebuilding model ${l.constructor.name} id ${i}`);const c=Object.keys(l).reduce((e,i)=>(e[i]=t[n.columnName(e,i)],e),l);return r&&(a.debug("re-adding transient properties: "+Object.keys(r).join(", ")),Object.entries(r).forEach(([t,e])=>{if(t in c&&void 0!==c[t])throw new L(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);c[t]=e})),c}createPrefix(t,i,r,...s){const{ctxArgs:a}=this.logCtx(s,this.createPrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,r),[t,i,o,...a]}updatePrefix(t,i,r,...s){const{ctxArgs:a}=this.logCtx(s,this.updatePrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,r),[t,i,o,...a]}createAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new L("Ids and models must have the same length");const n=s.pop(),a=i.map((i,s)=>{const n={};return n[e.TABLE]=t,Object.assign(n,r[s]),n});return[t,i,a,n]}updateAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new L("Ids and models must have the same length");const n=s.pop(),a=i.map((i,s)=>{const n={};return n[e.TABLE]=t,Object.assign(n,r[s]),n});return[t,i,a,n]}parseError(t,e){return Pt.parseError(e||t)}logCtx(t,e){return Pt.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new L("No context provided");const i=t.pop();if(!(i instanceof d))throw new L("No context provided");if(t.filter(t=>t instanceof d).length>1)throw Error("here");const r=this?i.logger.for(this).for(e):i.logger.clear().for(this).for(e);return{ctx:i,log:e?r.for(e):r,stub:i.stub,identity:i.identity,ctxArgs:[...t,i]}}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(q.name)?new q(t):e.includes(M.name)?new M(t):e.includes(U.name)?new U(t):e.includes(S.name)?new S(t):e.includes(v.name)?new v(t):e.includes(A.name)?new A(t):e.includes(C.name)?new C(t):e.includes(O.name)?new O(t):e.includes(N.name)?new N(t):e.includes(k.name)?new k(t):e.includes(E.name)?new E(t):e.includes(J.name)?new J(t):new L(t)}static decoration(){super.decoration(),nt.flavouredAs(At).for(R.CREATED_BY).define(Y(zt),at(R.CREATED_BY,{})).apply(),nt.flavouredAs(At).for(R.UPDATED_BY).define(H(zt),at(R.UPDATED_BY,{})).apply(),nt.flavouredAs(At).for(_.ID).define({decorator:(t,e)=>(i,r)=>ot(o(),K(),at(st.key(_.ID,r),t),Y(Tt,t,e))(i,r)}).apply(),nt.flavouredAs(At).for(R.COLUMN).extend(Z()).apply(),nt.flavouredAs(At).for(R.TABLE).extend(t=>tt()(t)).apply(),nt.flavouredAs(At).for(R.ONE_TO_ONE).define({decorator:(t,e,i,r,s)=>{const n={class:t,cascade:e,populate:i};return r&&(n.joinTable=r),s&&(n.name=s),ot(lt(),z(R.ONE_TO_ONE,n),l([t,String,Number,BigInt]),Y(vt,n),Q(Ct,n),V(Ot,n),G(Et,n),at(R.ONE_TO_ONE,n))}}).apply(),nt.for(R.ONE_TO_MANY).define({decorator:(t,e,i,r,s)=>{const n={class:t,cascade:e,populate:i};return r&&(n.joinTable=r),s&&(n.name=s),ot(lt(),z(R.ONE_TO_MANY,n),c([t,String,Number]),Y(Nt,n),Q(T,n),V(kt,n),G(Et,n),at(R.ONE_TO_MANY,n))}}).apply()}}Pt.decoration(),g.setCurrent(At);class Dt extends a{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class $t extends et{static{this.adapter=new Pt}static{this.serializer=new Dt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=h.forModel(e)}async listBy(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.listBy);return this.repo.listBy(e,i,...s)}async paginateBy(t,e,i,r,...s){const{ctxArgs:n}=await this.logCtx([...s,t],this.paginateBy);return this.repo.paginateBy(e,i,r,...n)}async findOneBy(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.findOneBy);return this.repo.findOneBy(e,i,...s)}async statement(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.statement);return this.repo.statement(e,...r)}async create(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.create);r.info("CONTRACT CREATE, "+s),"string"==typeof e&&(e=this.deserialize(e)),r.info("Creating model: "+JSON.stringify(e));const a=this.getTransientData(t);return r.info("Merging transient data..."),e=n.merge(e,a,this.clazz),this.repo.create(e,...s)}async read(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...s)}getTransientData(t){const e=t.stub.getTransient();let i={};return e.has(this.repo.tableName)&&(i=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),i}async update(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),r.info("Updating model: "+JSON.stringify(e));const a=this.getTransientData(t);return r.info("Merging transient data..."),e=n.merge(e,a,this.clazz),this.repo.update(e,...s)}async delete(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...s)}async deleteAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...r)}async readAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...r)}async updateAll(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t))),r.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...s)}async query(t,e,i,r=P.ASC,s,n,...a){const{ctxArgs:o}=await this.logCtx([...a,t],this.query);return this.repo.query(e,i,r,s,n,...o)}async raw(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),$t.adapter.raw(e,i,...s)}serialize(t){return $t.serializer.serialize(t)}deserialize(t){return $t.serializer.deserialize(t)}async init(t){const{log:e}=await this.logCtx([t],this.init);e.info(`Running contract ${this.getName()} initialization...`),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...i){const{log:r}=await this.logCtx([...i,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t))),r.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...i)}async logCtx(t,e){return $t.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new L("No context provided");const i=t.pop();if(i instanceof yt)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof it))throw new L("No valid context provided");const r={correlationId:i.stub.getTxID()},s=await $t.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case F.CREATE:case F.READ:case F.UPDATE:case F.DELETE:case j.CREATE_ALL:case j.READ_ALL:case j.UPDATE_ALL:case j.DELETE_ALL:}return e.name})(),r,this.clazz,i),n=this?s.logger.for(this).for(e):s.logger.clear().for(this).for(e);return{ctx:s,log:n,stub:s.stub,identity:s.identity,ctxArgs:[...t,s]}}}class It extends $t{constructor(t,e){super(t,e)}async create(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.create);i.info("Creating model: "+e);const s=this.deserialize(e);return i.info("Model deserialized: "+JSON.stringify(s)),this.serialize(await super.create(r,s))}async read(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.read);return i.info("Reading id: "+e),this.serialize(await super.read(r,e))}async update(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.update);return i.info("Updating model: "+e),this.serialize(await super.update(r,e))}async delete(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.delete);return i.info("Deleting id: "+e),this.serialize(await super.delete(r,e))}async deleteAll(t,e){const i=JSON.parse(e),{log:r,ctx:s}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${i.length} entries from the table`),JSON.stringify((await super.deleteAll(s,i)).map(t=>this.serialize(t)))}async readAll(t,e){const i=JSON.parse(e),{log:r,ctx:s}=await this.logCtx([t],this.readAll);return r.info(`reading ${i.length} entries from the table`),JSON.stringify((await super.readAll(s,i)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.updateAll),s=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return i.info(`Updating ${s.length} entries to the table`),JSON.stringify((await super.updateAll(r,s)).map(t=>this.serialize(t)))}async statement(t,e,...i){const{ctx:r,log:s}=await this.logCtx([...i,t],this.statement);return i=i.map(t=>{try{return JSON.parse(t)}catch(e){return t}}),s.info("calling prepared statement "+e),s.debug("with args "+i),super.statement(r,e,...i)}async listBy(t,e,i,...r){const{ctx:s}=await this.logCtx([...r,t],this.listBy);return super.listBy(s,e,i)}async paginateBy(t,e,i,r,...s){const{ctx:n}=await this.logCtx([...s,t],this.paginateBy);return super.paginateBy(n,e,i,r)}async findOneBy(t,e,i,...r){const{ctx:s}=await this.logCtx([...r,t],this.paginateBy);return super.findOneBy(s,e,i,...r)}async query(t,e,i,r,s,n,...a){const{ctx:o}=await this.logCtx([t],this.query);let l;try{l=y.from(JSON.parse(e))}catch(t){throw new J("Invalid condition: "+t)}return super.query(o,l,i,r,s,n,...a)}async raw(t,e,i,...r){const{ctx:s}=await this.logCtx([t],this.raw),n=JSON.parse(e);return super.raw(s,n,i,...r)}async init(t){await super.init(t)}async healthcheck(t){const{log:e,ctx:i}=await this.logCtx([t],this.updateAll);return e.debug(`Running Healthcheck: ${this.initialized}...`),JSON.stringify(await super.healthcheck(i))}async createAll(t,e){const{log:i}=await this.logCtx([t],this.createAll),r=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return i.info(`Adding ${r.length} entries to the table`),JSON.stringify((await super.createAll(t,r)).map(t=>this.serialize(t)))}}gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"create",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"read",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"update",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"delete",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"deleteAll",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"readAll",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"updateAll",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String]),ht("design:returntype",Promise)],It.prototype,"statement",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String,String]),ht("design:returntype",Promise)],It.prototype,"listBy",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String,Number,String]),ht("design:returntype",Promise)],It.prototype,"paginateBy",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String,String]),ht("design:returntype",Promise)],It.prototype,"findOneBy",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],It.prototype,"init",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],It.prototype,"healthcheck",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],It.prototype,"createAll",null);class Bt extends L{constructor(t){super(t,Bt.name)}}class Ft extends L{constructor(t){super(t,Ft.name)}}class jt extends L{constructor(t){super(t,jt.name)}}class _t extends W{constructor(t){super(_t.name,t,409)}}function Lt(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new Bt(`Addition overflow: ${t} + ${e}`);return i}function Jt(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new Bt(`Subtraction overflow: ${t} - ${e}`);return i}let qt=class extends B{constructor(t){super(t)}};gt([D({type:"String"}),ht("design:type",String)],qt.prototype,"name",void 0),gt([$(),o(),ht("design:type",String)],qt.prototype,"owner",void 0),gt([$(),o(),ht("design:type",String)],qt.prototype,"symbol",void 0),gt([$(),o(),ht("design:type",Number)],qt.prototype,"decimals",void 0),qt=gt([I("erc20_tokens"),u(),ht("design:paramtypes",[Object])],qt);let Mt=class extends B{constructor(t){super(t)}};gt([D({type:"String"}),ht("design:type",String)],Mt.prototype,"id",void 0),gt([$(),o(),ht("design:type",String)],Mt.prototype,"token",void 0),gt([$(),o(),ht("design:type",Number)],Mt.prototype,"balance",void 0),gt([$(),ht("design:type",String)],Mt.prototype,"captive",void 0),Mt=gt([I("erc20_wallets"),u(),ht("design:paramtypes",[Object])],Mt);let Ut=class extends B{constructor(t){super(t)}};function Yt(){return function(t,e,i){const r=i.value;return i.value=async function(...t){const i=t[0],s=i.clientIdentity.getID(),n=await this.tokenRepository.select(),a=await n.execute(i);if(0==a.length)throw new q("No tokens avaialble");if(a.length>1)throw new q("To many token available : "+a.length);if(a[0].owner!=s)throw new N(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Ht;gt([D({type:"String"}),$(),o(),ht("design:type",String)],Ut.prototype,"owner",void 0),gt([$(),o(),ht("design:type",String)],Ut.prototype,"spender",void 0),gt([$(),o(),ht("design:type",Number)],Ut.prototype,"value",void 0),Ut=gt([I("erc20_allowances"),u(),ht("design:paramtypes",[Object])],Ut),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Ht||(Ht={}));class Kt extends $t{constructor(t){super(t,Mt),Kt.adapter=Kt.adapter||new Pt,this.walletRepository=ft.forModel(Mt,Kt.adapter.alias),this.tokenRepository=ft.forModel(qt,Kt.adapter.alias),this.allowanceRepository=ft.forModel(Ut,Kt.adapter.alias)}async TokenName(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.tokenRepository.select();return(await i.execute(e))[0].name}async Symbol(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.tokenRepository.select();return(await i.execute(e))[0].symbol}async Decimals(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.tokenRepository.select();return(await i.execute(e))[0].decimals}async TotalSupply(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=this.walletRepository.select(),r=await i.execute(e);if(0==r.length)throw new q(`The token ${this.getName()} does not exist`);let s=0;return r.forEach(t=>{s+=t.balance}),s}async BalanceOf(t,e){const{ctx:i}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(i),(await this.walletRepository.read(e,i)).balance}async Transfer(t,e,i){const{ctx:r}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(r);const s=r.identity.getID();if(!await this._transfer(s,e,i,r))throw new L("Failed to transfer");return!0}async TransferFrom(t,e,i,r){const{ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=s.identity.getID(),a=await this._getAllowance(e,n,s);if(!a||0>a.value)throw new jt(`spender ${n} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Ft("The spender does not have enough allowance to spend.");const l=Jt(o,r),c=Object.assign({},a,{value:l});if(await this.allowanceRepository.update(c,s),!await this._transfer(e,i,r,s))throw new L("Failed to transfer");return!0}async _transfer(t,e,i,r){const s=r.logger;if(t===e)throw new N("cannot transfer to and from same client account");if(0>i)throw new Ft("transfer amount cannot be negative");const n=await this.walletRepository.read(t,r),a=n.balance;if(i>a)throw new Ft(`client account ${t} has insufficient funds.`);let o,l=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof W))throw new L(t);if(404!==t.code)throw new L(t.message);o=new Mt({id:e,balance:0,token:await this.TokenName(r)}),l=!0}const c=o.balance,u=Jt(a,i),d=Lt(c,i),p=Object.assign({},n,{balance:u});await this.walletRepository.update(p,r);const g=Object.assign({},o,{balance:d});l?await this.walletRepository.create(g,r):await this.walletRepository.update(g,r);const h={from:t,to:e,value:i};return this.repo.refresh(qt,Ht.TRANSFER,"",h,r).catch(t=>s.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,i){const{ctx:r,ctxArgs:s}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const n=r.identity.getID();let a=await this._getAllowance(n,e,r);if((await this.walletRepository.read(n,...s)).balance<i)throw new Ft(`client account ${n} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...s)):(a=new Ut({owner:n,spender:e,value:i}),await this.allowanceRepository.create(a,...s));const o={owner:n,spender:e,value:i};return this.repo.refresh(qt,Ht.APPROVAL,"",o,r),!0}async Allowance(t,e,i){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const s=await this._getAllowance(e,i,r);if(!s)throw new jt(`spender ${i} has no allowance from ${e}`);return s.value}async _getAllowance(t,e,i){const r=y.and(y.attribute("owner").eq(t),y.attribute("spender").eq(e)),s=await this.allowanceRepository.select().where(r).execute(i);return s?.[0]}async Initialize(t,e){const{ctx:i}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(i)).length>0)throw new N("contract options are already set, client is not authorized to change them");return e.owner=i.identity.getID(),await this.tokenRepository.create(e,i),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new _t("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){const{ctx:i}=await this.logCtx([t],this.Mint);await this.CheckInitialized(i);const r=i.identity.getID();if(0>=e)throw new X("mint amount must be a positive integer");let s;try{s=await this.walletRepository.read(r,i);const t=Lt(s.balance,e),n=Object.assign({},s,{balance:t});await this.walletRepository.update(n,i)}catch(s){if(!(s instanceof W))throw new L(s);if(404!==s.code)throw new L(s.message);{const s=new Mt({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(s,i)}}const n={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers(qt,Ht.TRANSFER,"",n,i)}async Burn(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const s=r.identity.getID(),n=await this.walletRepository.read(s,r),a=n.balance;if(e>a)throw new Ft("Minter has insufficient funds.");const o=Jt(a,e),l=Object.assign({},n,{balance:o});await this.walletRepository.update(l,r),i.info(e+" tokens were burned");const c={from:s,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(qt,Ht.TRANSFER,"",c,r)}async BurnFrom(t,e,i){const{log:r,ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=await this.walletRepository.read(e,s),a=n.balance;if(i>a)throw new Ft(e+" has insufficient funds.");const o=Jt(a,i),l=Object.assign({},n,{balance:o});await this.walletRepository.update(l,s),r.info(`${i} tokens were burned from ${e}`);const c={from:e,to:"0x0",value:i};this.repo.ObserverHandler().updateObservers(qt,Ht.TRANSFER,"",c,s)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=e.identity.getID(),r=await this.walletRepository.read(i,e);if(!r)throw new Ft(`The account ${i} does not exist`);return r.balance}async ClientAccountID(t){const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return await this.CheckInitialized(e),e.identity.getID()}}gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"TokenName",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"Symbol",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"Decimals",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"TotalSupply",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String]),ht("design:returntype",Promise)],Kt.prototype,"BalanceOf",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"Transfer",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"TransferFrom",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"Approve",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it,String,String]),ht("design:returntype",Promise)],Kt.prototype,"Allowance",null),gt([rt(),ht("design:type",Function),ht("design:paramtypes",[it,qt]),ht("design:returntype",Promise)],Kt.prototype,"Initialize",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"CheckInitialized",null),gt([Yt(),rt(),ht("design:type",Function),ht("design:paramtypes",[it,Number]),ht("design:returntype",Promise)],Kt.prototype,"Mint",null),gt([Yt(),rt(),ht("design:type",Function),ht("design:paramtypes",[it,Number]),ht("design:returntype",Promise)],Kt.prototype,"Burn",null),gt([Yt(),rt(),ht("design:type",Function),ht("design:paramtypes",[it,String,Number]),ht("design:returntype",Promise)],Kt.prototype,"BurnFrom",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"ClientAccountBalance",null),gt([rt(!1),ht("design:type",Function),ht("design:paramtypes",[it]),ht("design:returntype",Promise)],Kt.prototype,"ClientAccountID",null);const Qt=[Kt],Vt="##VERSION##",Gt="##PACKAGE##";st.registerLibrary(Gt,Vt);export{Rt as ContractLogger,Pt as FabricContractAdapter,yt as FabricContractContext,ft as FabricContractRepository,wt as FabricContractRepositoryObservableHandler,$t as FabricCrudContract,mt as FabricStatement,Gt as PACKAGE_NAME,It as SerializedCrudContract,Vt as VERSION,Qt as contracts,zt as createdByOnFabricCreateUpdate,Tt as pkFabricOnCreate};
2
2
  //# sourceMappingURL=for-fabric.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/logging.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","context","data","propertyValue","innerRepo","repositoryFromTypeMetadata","alias","read","cacheModelForPopulate","class","InternalError","repo","forModel","created","create","oneToOneOnUpdate","cascade","update","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","e","fetchPopulateValues","ContractLogger","MiniLogger","conf","logger","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","info","verbose","error","silly","call","createLog","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequence","sequenceName","Sequence","next","defineProperty","enumerable","writable","configurable","Logging","setFactory","object","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","for","composedKey","createCompositeKey","String","putState","parseError","readState","ctxArgs","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","count","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","NotFoundError","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","undefined","index","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Statement","createAll","tableLabel","all","i","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","options","groupsort","attr","required","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","BigInt","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","listBy","order","paginateBy","size","findOneBy","statement","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","orderBy","OrderDirection","ASC","init","getName","healthcheck","bind","Ctx","overrides","READ","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","cond","parsedInput","__decorate","Transaction","prototype","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","b","sub","ERC20Token","BaseModel","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/logging.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","context","data","propertyValue","innerRepo","repositoryFromTypeMetadata","alias","read","cacheModelForPopulate","class","InternalError","repo","forModel","created","create","oneToOneOnUpdate","cascade","update","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","e","fetchPopulateValues","ContractLogger","MiniLogger","conf","logger","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","info","verbose","error","silly","call","createLog","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequence","sequenceName","Sequence","next","defineProperty","enumerable","writable","configurable","Logging","setFactory","object","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","for","composedKey","createCompositeKey","String","putState","parseError","readState","ctxArgs","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","count","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","NotFoundError","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","undefined","index","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Statement","createAll","tableLabel","all","i","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","options","groupsort","attr","required","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","BigInt","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","listBy","order","paginateBy","size","findOneBy","statement","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","orderBy","OrderDirection","ASC","init","getName","healthcheck","bind","Ctx","overrides","READ","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","cond","parsedInput","__decorate","Transaction","prototype","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","b","sub","ERC20Token","BaseModel","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -61,6 +61,7 @@ const index_1 = require("./indexes/index.cjs");
61
61
  const FabricClientStatement_1 = require("./FabricClientStatement.cjs");
62
62
  const FabricClientPaginator_1 = require("./FabricClientPaginator.cjs");
63
63
  const FabricClientRepository_1 = require("./FabricClientRepository.cjs");
64
+ const errors_1 = require("./../shared/errors.cjs");
64
65
  /**
65
66
  * @description Adapter for interacting with Hyperledger Fabric networks
66
67
  * @summary The FabricAdapter extends CouchDBAdapter to provide a seamless interface for interacting with Hyperledger Fabric networks.
@@ -318,6 +319,18 @@ class FabricClientAdapter extends core_1.Adapter {
318
319
  shared: split.shared,
319
320
  };
320
321
  }
322
+ revert(obj, clazz, id, transient, ...args) {
323
+ const { log } = this.logCtx(args, this.revert);
324
+ if (transient) {
325
+ log.verbose(`re-adding transient properties: ${Object.keys(transient).join(", ")}`);
326
+ Object.entries(transient).forEach(([key, val]) => {
327
+ if (key in obj)
328
+ throw new db_decorators_1.InternalError(`Transient property ${key} already exists on model ${typeof clazz === "string" ? clazz : clazz.name}. should be impossible`);
329
+ obj[key] = val;
330
+ });
331
+ }
332
+ return new clazz(obj);
333
+ }
321
334
  /**
322
335
  * @description Creates indexes for the given models
323
336
  * @summary Abstract method that must be implemented to create database indexes for the specified models
@@ -781,6 +794,12 @@ class FabricClientAdapter extends core_1.Adapter {
781
794
  // )
782
795
  // )
783
796
  // return new UnauthorizedPrivateDataAccess(err) as E;
797
+ if (err instanceof Error && err.code) {
798
+ switch (err.code) {
799
+ case 9:
800
+ return new errors_1.EndorsementError(err);
801
+ }
802
+ }
784
803
  const msg = typeof err === "string" ? err : err.message;
785
804
  if (msg.includes(db_decorators_1.NotFoundError.name))
786
805
  return new db_decorators_1.NotFoundError(err);
@@ -4,8 +4,7 @@ import { Client } from "@grpc/grpc-js";
4
4
  import { Model, type ModelConstructor, type Serializer } from "@decaf-ts/decorator-validation";
5
5
  import { type FabricFlags, type PeerConfig, type SegregatedModel } from "../shared/types";
6
6
  import { Gateway, Network, Contract as Contrakt } from "@hyperledger/fabric-gateway";
7
- import { BaseError, OperationKeys } from "@decaf-ts/db-decorators";
8
- import { type PrimaryKeyType } from "@decaf-ts/db-decorators";
7
+ import { BaseError, OperationKeys, type PrimaryKeyType } from "@decaf-ts/db-decorators";
9
8
  import { Context, Adapter, type AdapterFlags, Repository, Statement, type PreparedStatement, Paginator, MaybeContextualArg, ContextualArgs, type PreparedModel } from "@decaf-ts/core";
10
9
  import { FabricClientDispatch } from "./FabricClientDispatch";
11
10
  import { type Constructor } from "@decaf-ts/decoration";
@@ -145,6 +144,7 @@ export declare class FabricClientAdapter extends Adapter<PeerConfig, Client, Man
145
144
  * @return The prepared data
146
145
  */
147
146
  prepare<M extends Model>(model: M, ...args: ContextualArgs<Context<FabricFlags>>): SegregatedModel<M> & PreparedModel;
147
+ revert<M extends Model>(obj: Record<string, any>, clazz: Constructor<M>, id: PrimaryKeyType, transient?: Record<string, any>, ...args: ContextualArgs<Context<FabricFlags>>): M;
148
148
  /**
149
149
  * @description Creates indexes for the given models
150
150
  * @summary Abstract method that must be implemented to create database indexes for the specified models
@@ -1 +1 @@
1
- {"version":3,"file":"FabricClientAdapter.js","sourceRoot":"","sources":["../../src/client/FabricClientAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FabricClientAdapter.js","sourceRoot":"","sources":["../../src/client/FabricClientAdapter.ts"],"names":[],"mappings":"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"}