@decaf-ts/for-fabric 0.1.34 → 0.1.36

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 (61) 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/cli-module.cjs +49 -0
  6. package/lib/cli-module.d.ts +1 -0
  7. package/lib/cli-module.js.map +1 -1
  8. package/lib/client/FabricClientPaginator.d.ts +1 -0
  9. package/lib/client/FabricClientPaginator.js.map +1 -1
  10. package/lib/client/collections/generation.cjs +134 -0
  11. package/lib/client/collections/generation.d.ts +36 -0
  12. package/lib/client/collections/generation.js.map +1 -0
  13. package/lib/client/collections/index.cjs +18 -0
  14. package/lib/client/collections/index.d.ts +1 -0
  15. package/lib/client/collections/index.js.map +1 -0
  16. package/lib/contracts/FabricContractRepository.cjs +12 -0
  17. package/lib/contracts/FabricContractRepository.d.ts +2 -1
  18. package/lib/contracts/FabricContractRepository.js.map +1 -1
  19. package/lib/esm/cli-module.d.ts +1 -0
  20. package/lib/esm/cli-module.js +49 -0
  21. package/lib/esm/cli-module.js.map +1 -1
  22. package/lib/esm/client/FabricClientPaginator.d.ts +1 -0
  23. package/lib/esm/client/FabricClientPaginator.js.map +1 -1
  24. package/lib/esm/client/collections/generation.d.ts +36 -0
  25. package/lib/esm/client/collections/generation.js +128 -0
  26. package/lib/esm/client/collections/generation.js.map +1 -0
  27. package/lib/esm/client/collections/index.d.ts +1 -0
  28. package/lib/esm/client/collections/index.js +2 -0
  29. package/lib/esm/client/collections/index.js.map +1 -0
  30. package/lib/esm/contracts/FabricContractRepository.d.ts +2 -1
  31. package/lib/esm/contracts/FabricContractRepository.js +13 -1
  32. package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
  33. package/lib/esm/shared/overrides/Model.d.ts +1 -0
  34. package/lib/esm/shared/overrides/Model.js +1 -1
  35. package/lib/esm/shared/overrides/Model.js.map +1 -1
  36. package/lib/esm/version.d.ts +1 -1
  37. package/lib/esm/version.js +1 -1
  38. package/lib/shared/overrides/Model.cjs +1 -0
  39. package/lib/shared/overrides/Model.d.ts +1 -0
  40. package/lib/shared/overrides/Model.js.map +1 -1
  41. package/lib/version.cjs +1 -1
  42. package/lib/version.d.ts +1 -1
  43. package/package.json +2 -2
  44. package/lib/bin/build-contract.cjs +0 -71
  45. package/lib/bin/build-contract.d.ts +0 -1
  46. package/lib/bin/build-contract.js.map +0 -1
  47. package/lib/bin/build-contracts.cjs +0 -47
  48. package/lib/bin/build-contracts.d.ts +0 -1
  49. package/lib/bin/build-contracts.js.map +0 -1
  50. package/lib/bin/compile-indexes.cjs +0 -39
  51. package/lib/bin/compile-indexes.d.ts +0 -1
  52. package/lib/bin/compile-indexes.js.map +0 -1
  53. package/lib/esm/bin/build-contract.d.ts +0 -1
  54. package/lib/esm/bin/build-contract.js +0 -66
  55. package/lib/esm/bin/build-contract.js.map +0 -1
  56. package/lib/esm/bin/build-contracts.d.ts +0 -1
  57. package/lib/esm/bin/build-contracts.js +0 -42
  58. package/lib/esm/bin/build-contracts.js.map +0 -1
  59. package/lib/esm/bin/compile-indexes.d.ts +0 -1
  60. package/lib/esm/bin/compile-indexes.js +0 -37
  61. package/lib/esm/bin/compile-indexes.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as i,CouchDBOperator as r,CouchDBAdapter as n}from"@decaf-ts/for-couchdb";import{Model as s,JSONSerializer as a,ValidationKeys as o,required as c,model as l}from"@decaf-ts/decorator-validation";import{Context as u,ObserverHandler as p,Adapter as g,Repository as d,QueryError as h,PersistenceKeys as y,Condition as w,Sequence as f,SequenceModel as m,UUID as x,Serial as b,UnsupportedError as S,PagingError as v,MigrationError as A,ObserverError as C,AuthorizationError as k,ForbiddenError as O,ConnectionError as N,OrderDirection as R,pk as $,column as E,table as P,BaseModel as z}from"@decaf-ts/core";import{OperationKeys as T,BulkCrudOperationKeys as D,InternalError as B,enforceDBDecorators as I,reduceErrorsToPrint as F,ValidationError as J,BaseError as q,DBKeys as j,NotFoundError as L,ConflictError as _,SerializationError as U,BadRequestError as M,onCreate as V,onCreateUpdate as H}from"@decaf-ts/db-decorators";import{Property as Q,Object as K,Contract as Y,Context as G,Transaction as W}from"fabric-contract-api";import{Metadata as X,Decoration as Z,propMetadata as tt}from"@decaf-ts/decoration";import{Logging as et,MiniLogger as it,NumericLogLevels as rt,LogLevel as nt}from"@decaf-ts/logging";import{__decorate as st,__metadata as at}from"tslib";class ot extends u{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 ct extends p{constructor(t=[T.CREATE,T.UPDATE,T.DELETE,D.CREATE_ALL,D.UPDATE_ALL,D.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,i,...r){const{log:n,ctx:s}=g.logCtx(r,this.updateObservers),{stub:a}=s,[o,c]=r,l="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){n.debug(`Emitting ${e} event`);const t=((t,e,i)=>{const r=[t,e];return i&&r.push(i),r.join("_")})(l,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:i})))}else a.setEvent(e,Buffer.from(JSON.stringify(c)))}}class lt extends d{constructor(t,e,i){super(t,e),this.trackedEvents=i,this._overrides=Object.assign({},super._overrides,{ignoreValidation:!1,ignoreHandlers:!1,allowRawStatements:!0,forcePrepareSimpleQueries:!1,forcePrepareComplexQueries:!1})}async createAllPrefix(t,...e){const i=await u.args(T.CREATE,this.class,e,this.adapter,this._overrides||{}),r=i.context.logger.for(this.createAllPrefix),n=i.context.get("ignoreHandlers"),a=i.context.get("ignoreValidation");if(!t.length)return[t,...i.args];const o=s.sequenceFor(t[0]);r.info("Sequence options: "+JSON.stringify(o));let c=[];if(o.type?(o.name||(o.name=s.sequenceName(t[0],"pk")),c=await(await this.adapter.Sequence(o)).range(t.length,...i.args),r.info("Sequence ids: "+c)):c=t.map((t,e)=>{if(void 0===t[this.pk])throw new B("Primary key is not defined for model in position "+e);return t[this.pk]}),t=await Promise.all(t.map(async(t,e)=>(t=new this.class(t),o.type&&(t[this.pk]="String"!==o.type||o.generated?c[e]:""+t[this.pk]),r.info("Creating model "+JSON.stringify(t)),n||await I(this,i.context,t,T.CREATE,T.ON),t))),!a){const e=i.context.get("ignoredValidationProperties")||[],r=await Promise.all(t.map(t=>Promise.resolve(t.hasErrors(...e)))),n=F(r);if(n)throw new J(n)}return[t,...i.args]}async statement(t,...e){if(!d.statements(this,t))throw new h("Invalid prepared statement requested "+t);const i=await u.args(y.STATEMENT,this.class,e,this.adapter,this._overrides||{});i.context.logger&&i.context.logger.info(`Repo statement: ${t} + ${e}`);const{log:r,ctxArgs:n}=this.logCtx(i.args,this.statement);r.verbose(`Executing prepared statement ${t} with args ${n}`);try{return this[t](...n)}catch(e){if(e instanceof q)throw e;throw new B(`Failed to execute prepared statement ${t} with args ${n}: ${e}`)}}ObserverHandler(){return new ct}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class ut 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),n=s.pk(this.fromSelector),a=X.get(this.fromSelector,X.key(j.ID,n))?.type;return this.selectSelector?r:r.map(t=>this.processRecord(t,n,a,i))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=s.tableName(this.fromSelector);const n={selector:t};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(w.and(this.whereCondition,w.attribute(e.TABLE).eq(n.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 n=r[0];return n===i.AND?t.push(...e[n]):t.push(e),t},[])],n.selector=t;break;case i.OR:{const e={};e[i.AND]=[t,...Object.entries(n.selector).map(([t,e])=>{const i={};return i[t]=e,i})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{n.selector[t],n.selector[t]=e})}if(this.orderBySelector){n.sort=n.sort||[],n.selector=n.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,n.sort.push(i),n.selector[t]||(n.selector[t]={},n.selector[t][r.BIGGER]=null)}return this.limitSelector&&(n.limit=this.limitSelector),this.offsetSelector&&(n.skip=this.offsetSelector),n}}var pt,gt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(pt||(pt={})),(t=>{t.X509="X.509"})(gt||(gt={}));const dt="hlf-fabric";class ht 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)}}class yt extends it{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new it(t,e)}log(t,e,i){if(rt[this.config("level")]<rt[t])return;let r;switch(t){case nt.info:r=this.logger.info;break;case nt.verbose:r=this.logger.verbose;break;case nt.debug:r=this.logger.debug;break;case nt.error:r=this.logger.error;break;case nt.silly:r=this.logger.silly;break;default:throw new B("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}et.setFactory((t,e,i)=>new yt(t||yt.name,e||{},i));class wt extends f{constructor(t,e){super(t,e)}async current(...t){const e=(await u.args(T.READ,m,t,this.adapter)).context,{name:i,startWith:r}=this.options;try{const t=await this.repo.read(i,e);return this.parse(t.current)}catch(t){if(t instanceof L){if(void 0===r)throw new B("Starting value is not defined for a non existing sequence");try{return this.parse(r)}catch(t){throw new B(`Failed to parse initial value for sequence ${r}: ${t}`)}}throw new B(`Failed to retrieve current value for sequence ${i}: ${t}`)}}async increment(t,e,i){const{type:r,incrementBy:n,name:s}=this.options;let a;const o=e||n;if(o%n!==0)throw new B("Value to increment does not consider the incrementBy setting: "+n);switch("function"==typeof r&&r?.name?r.name:r){case Number.name:a=this.parse(t)+o;break;case BigInt.name:a=this.parse(t)+BigInt(o);break;case String.name:a=this.parse(t);break;case"serial":a=b.instance.generate(t);break;case"uuid":a=x.instance.generate(t);break;default:throw new B("Should never happen")}let c;try{c=await this.repo.update(new m({id:s,current:a}),i)}catch(n){if(!(n instanceof L))throw n;try{c=await this.repo.create(new m({id:s,current:a}),i)}catch(n){if(!(n instanceof _)||"uuid"!==r)throw n;return this.increment(t,e,i)}}return c.current}async next(...t){const e=await u.args(T.UPDATE,m,t,this.adapter),{context:i,args:r}=e,n=await this.current(...r);return this.increment(n,void 0,i)}async range(t,...e){const i=await u.args(T.UPDATE,m,e,this.adapter),{context:r,args:n}=i,s=await this.current(...n),a=this.parse(this.options.incrementBy),o=await this.increment(s,this.parse(t)*a,r),c=[];for(let e=1;t>=e;e++)c.push(s+a*this.parse(e));if("uuid"===this.options.type||"serial"===this.options.type)throw new S(`type ${this.options.type} is currently not suppported for this adapter`);const l="function"==typeof this.options.type&&this.options.type?.name?this.options.type.name:this.options.type;if(c[c.length-1]!==o&&"String"!==l)throw new B("Miscalculation of range");return c}}async function ft(t,e,i,r){try{const e=t.get("identity");r[i]=e.getID()}catch(t){throw new S("No User found in context. Please provide a user in the context")}}async function mt(t,e,i,r){if(!e.type||r[i])return;let n;e.name||(e.name=s.sequenceName(r,"pk"));try{n=await this.adapter.Sequence(e)}catch(t){throw new B(`Failed to instantiate Sequence ${e.name}: ${t}`)}const a=await n.next(t);Object.defineProperty(r,i,{enumerable:!0,writable:!1,configurable:!0,value:a})}class xt extends n{getClient(){throw new S("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new ht}repository(){return lt}async Sequence(t){return new wt(t,this)}constructor(t,e){super(t,dt,e),this.Context=ot}for(t,...e){return super.for(t,...e)}async create(t,e,i,...r){const{ctx:n,log:a,stub:o}=this.logCtx(r,this.create);a.info("in ADAPTER create with args "+r);const c=s.tableName(t);try{a.info(`adding entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);i=await this.putState(t,i,n)}catch(t){throw this.parseError(t)}return i}async read(t,e,...i){const{ctx:r,log:n,stub:a}=this.logCtx(i,this.read);n.info("in ADAPTER read with args "+i);const o=s.tableName(t);let c;try{const t=a.createCompositeKey(o,[e+""]);c=await this.readState(t,r)}catch(t){throw this.parseError(t)}return c}async update(t,e,i,...r){const{ctx:n,log:a,stub:o}=this.logCtx(r,this.update),c=s.tableName(t);try{a.verbose(`updating entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);i=await this.putState(t,i,n)}catch(t){throw this.parseError(t)}return i}async delete(t,e,...i){const{ctx:r,log:n,ctxArgs:a,stub:o}=this.logCtx(i,this.delete),c=s.tableName(t);let l;try{const i=o.createCompositeKey(c,[e+""]);l=await this.read(t,e,...a),n.verbose(`deleting entry with pk ${e} from ${c} table`),await this.deleteState(i,r)}catch(t){throw this.parseError(t)}return l}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,n)=>e.includes(r)?new Proxy(i[r],{async apply(e,i,n){switch(r){case"putState":{const[e,i,r]=n;return await e.putPrivateData(t,i.toString(),r),r}case"deleteState":{const[e,i]=n;return e.deletePrivateData(t,i)}case"readState":{const[e,i]=n;return e.getPrivateData(t,i)}case"queryResult":{const[e,i]=n;return e.getPrivateDataQueryResult(t,i)}case"queryResultPaginated":{const[e,i,r,s]=n,a=await e.getPrivateDataQueryResult(t,i),o=[];let c=0,l=!s,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(!l){e===s?.toString()&&(l=!0);continue}if(o.push({Key:e,Record:JSON.parse(i)}),u=e,c++,c>=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 B("Unsupported method override "+r)}}}):Reflect.get(i,r,n)})}async putState(t,e,i){let r;const{stub:n,log:s}=this.logCtx([i],this.putState);try{r=Buffer.from(xt.serializer.serialize(e))}catch(e){throw new U(`Failed to serialize record with id ${t}: ${e}`)}const a=i.get("segregated");return a?await n.putPrivateData(a,t.toString(),r):await n.putState(t.toString(),r),s.silly(`state stored${a?` in ${a} collection`:""} under id ${t}`),e}async readState(t,e){let i;const{stub:r,log:n}=this.logCtx([e],this.readState);let s;const a=e.get("segregated");if(s=a?(await r.getPrivateData(a,t.toString())).toString():(await r.getState(t.toString())).toString(),!s)throw new L(`Record with id ${t}${a?` in ${a} collection`:""} not found`);n.silly(`state retrieved from${a?` ${a} collection`:""} under id ${t}`);try{i=xt.serializer.deserialize(s.toString())}catch(t){throw new U("Failed to parse record: "+t)}return i}async queryResult(t,e,...i){const{ctx:r}=this.logCtx(i,this.readState);let n;const s=r.get("segregated");return n=s?await t.getPrivateDataQueryResult(s,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),n}async queryResultPaginated(t,e,i=250,r,...n){const{ctx:s}=this.logCtx(n,this.readState);let a;const o=s.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 xt.textDecoder.decode(t)}async flags(t,e,i,r,...n){const s={stub:r.stub,segregated:!1};return Object.assign(s,r instanceof ot?{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()}:{identity:r.clientIdentity,logger:new yt(this,void 0,r),correlationId:r.stub.getTxID()}),await super.flags(t,e,s,...n)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,i=!1){const r=[];let n=await e.next();for(;!n.done;){if(n.value&&n.value.value.toString()){let e={};if(t.debug(n.value.value.toString("utf8")),i){e.TxId=n.value.txId,e.Timestamp=n.value.timestamp;try{e.Value=JSON.parse(n.value.value.toString("utf8"))}catch(i){t.error(i),e.Value=n.value.value.toString("utf8")}}else try{e=JSON.parse(n.value.value.toString("utf8"))}catch(i){t.error(i),e=n.value.value.toString("utf8")}r.push(e)}n=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:n,ctx:s}=this.logCtx(i,this.raw),{skip:a,limit:o}=t;let c;o||a?(delete t.limit,delete t.skip,r.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${a}`),c=(await this.queryResultPaginated(n,t,o||250,a?.toString(),s)).iterator):(r.debug("Retrieving iterator"),c=await this.queryResult(n,t,s)),r.debug("Iterator acquired");const l=await this.resultIterator(r,c);return r.debug(`returning ${Array.isArray(l)?l.length:1} results`),l}Statement(){return new ut(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new B("Ids and models must have the same length");const{log:n,ctxArgs:a}=this.logCtx(r,this.createAll),o=s.tableName(t);return n.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 B("Ids and models must have the same length");const{log:n,ctxArgs:a}=this.logCtx(r,this.updateAll),o=s.tableName(t);return n.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=s.tableName(t.constructor),n=s.pk(t.constructor),a=s.segregate(t),o=Object.entries(a.model).reduce((e,[i,r])=>{if(void 0===r)return e;const n=s.columnName(t,i);if(this.isReserved(n))throw new B(`Property name ${n} is reserved`);return e[n]=r,e},{});return i.silly(`Preparing record for ${r} table with pk ${t[n]}`),{record:o,id:t[n],transient:a.transient}}revert(t,e,i,r,...n){const{log:a}=this.logCtx(n,this.revert),o={};o[s.pk(e)]=i;const c="string"==typeof e?s.build(o,e):new e(o);a.silly(`Rebuilding model ${c.constructor.name} id ${i}`);const l=Object.keys(c).reduce((e,i)=>(e[i]=t[s.columnName(e,i)],e),c);return r&&(a.debug("re-adding transient properties: "+Object.keys(r).join(", ")),Object.entries(r).forEach(([t,e])=>{if(t in l&&void 0!==l[t])throw new B(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);l[t]=e})),l}createPrefix(t,i,r,...n){const{ctxArgs:a}=this.logCtx(n,this.createPrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,r),[t,i,o,...a]}updatePrefix(t,i,r,...n){const{ctxArgs:a}=this.logCtx(n,this.updatePrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,r),[t,i,o,...a]}createAllPrefix(t,i,r,...n){if(i.length!==r.length)throw new B("Ids and models must have the same length");const a=n.pop(),o=i.map((i,n)=>{const a={};return a[e.TABLE]=s.tableName(t),Object.assign(a,r[n]),a});return[t,i,o,a]}updateAllPrefix(t,i,r,...n){if(i.length!==r.length)throw new B("Ids and models must have the same length");const a=n.pop(),o=i.map((i,n)=>{const a={};return a[e.TABLE]=s.tableName(t),Object.assign(a,r[n]),a});return[t,i,o,a]}parseError(t,e){return xt.parseError(e||t)}logCtx(t,e){return xt.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new B("No context provided");const i=t.pop();if(!(i instanceof u))throw new B("No context provided");if(t.filter(t=>t instanceof u).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(L.name)?new L(t):e.includes(_.name)?new _(t):e.includes(M.name)?new M(t):e.includes(h.name)?new h(t):e.includes(v.name)?new v(t):e.includes(S.name)?new S(t):e.includes(A.name)?new A(t):e.includes(C.name)?new C(t):e.includes(k.name)?new k(t):e.includes(O.name)?new O(t):e.includes(N.name)?new N(t):e.includes(U.name)?new U(t):new B(t)}static decoration(){super.decoration(),Z.flavouredAs(dt).for(y.CREATED_BY).define(V(ft),tt(y.CREATED_BY,{})).apply(),Z.flavouredAs(dt).for(y.UPDATED_BY).define(H(ft),tt(y.UPDATED_BY,{})).apply(),Z.flavouredAs(dt).for(y.COLUMN).extend(Q()).apply(),Z.flavouredAs(dt).for(o.DATE).extend(()=>(t,e)=>{Q(e,"string:date")(t,e)}),Z.flavouredAs(dt).for(y.TABLE).extend(t=>{const e=[];let i="function"==typeof t?X.constr(t):X.constr(t.constructor);for(;i&&i!==Object&&i.prototype;)e.push(i),i=Object.getPrototypeOf(i);for(;e.length>0;){const t=e.pop();K()(t)}return K()(t)}).apply()}}xt.decoration(),g.setCurrent(dt);class bt extends a{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}K()(Date);class St extends Y{static{this.adapter=new xt}static{this.serializer=new bt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=d.forModel(e)}async listBy(t,e,i,...r){const{ctxArgs:n,log:s}=await this.logCtx([...r,t],this.listBy);return s.info(`Running listBy key ${e}, order ${i} and args ${n}`),this.repo.listBy(e,i,...n)}async paginateBy(t,e,i,r,...n){const{ctxArgs:s,log:a}=await this.logCtx([...n,t],this.paginateBy);return a.info(`Running paginateBy key ${e}, order ${i} with size ${r} and args ${s}`),this.repo.paginateBy(e,i,r,...s)}async findOneBy(t,e,i,...r){const{ctxArgs:n,log:s}=await this.logCtx([...r,t],this.findOneBy);return s.info(`Running findOneBy key ${e}, value: ${i} with args ${n}`),this.repo.findOneBy(e,i,...n)}async statement(t,e,...i){const{ctxArgs:r,log:n}=await this.logCtx([...i,t],this.statement);return n.info(`Running statement ${e} with args ${r}`),this.repo.statement(e,...r)}async create(t,e,...i){const{log:r,ctxArgs:n}=await this.logCtx([...i,t],this.create);r.info("CONTRACT CREATE, "+n),"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=s.merge(e,a,this.clazz),this.repo.create(e,...n)}async read(t,e,...i){const{log:r,ctxArgs:n}=await this.logCtx([...i,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...n)}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:n}=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=s.merge(e,a,this.clazz),this.repo.update(e,...n)}async delete(t,e,...i){const{log:r,ctxArgs:n}=await this.logCtx([...i,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...n)}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:n}=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,...n)}async query(t,e,i,r=R.ASC,n,s,...a){const{ctxArgs:o}=await this.logCtx([...a,t],this.query);return this.repo.query(e,i,r,n,s,...o)}async raw(t,e,i,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.raw);return St.adapter.raw(e,i,...n)}serialize(t){return St.serializer.serialize(t)}deserialize(t){return St.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,ctxArgs:n}=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,...n)}async logCtx(t,e){return St.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new B("No context provided");const i=t.pop();if(i instanceof ot)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof G))throw new B("No valid context provided");const r={correlationId:i.stub.getTxID()},n=await St.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case T.CREATE:case T.READ:case T.UPDATE:case T.DELETE:case D.CREATE_ALL:case D.READ_ALL:case D.UPDATE_ALL:case D.DELETE_ALL:}return e.name})(),r,this.clazz,i),s=this?n.logger.for(this).for(e):n.logger.clear().for(this).for(e);return{ctx:n,log:s,stub:n.stub,identity:n.identity,ctxArgs:[...t,n]}}}class vt extends St{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 n=this.deserialize(e);return i.info("Model deserialized: "+JSON.stringify(n)),this.serialize(await super.create(r,n))}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:n}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${i.length} entries from the table`),JSON.stringify((await super.deleteAll(n,i)).map(t=>this.serialize(t)))}async readAll(t,e){const i=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.readAll);return r.info(`reading ${i.length} entries from the table`),JSON.stringify((await super.readAll(n,i)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.updateAll),n=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return i.info(`Updating ${n.length} entries to the table`),JSON.stringify((await super.updateAll(r,n)).map(t=>this.serialize(t)))}async statement(t,e,i){const{ctx:r,log:n}=await this.logCtx([t],this.statement);try{i=JSON.parse(i)}catch(t){throw new U("Invalid args: "+t)}if(!Array.isArray(i))throw new U(`Invalid args: ${JSON.stringify(i)}. must be an array`);return n.info("calling prepared statement "+e),n.info("with args "+i),JSON.stringify(await super.statement(r,e,...i))}async listBy(t,e,i){const{ctx:r,log:n}=await this.logCtx([t],this.listBy);return n.info(`Executing listBy with key ${e} and order ${i}`),JSON.stringify(await super.listBy(r,e,i))}async paginateBy(t,e,i,r){const{ctx:n,log:s}=await this.logCtx([t],this.paginateBy);return s.info(`Executing paginateBy with key ${e} and order ${i}`),JSON.stringify(await super.paginateBy(n,e,i,r))}async findOneBy(t,e,i,...r){const{ctx:n,log:s}=await this.logCtx([...r,t],this.findOneBy);return s.info(`Executing findOneBy with key ${e} and value ${i}`),JSON.stringify(await super.findOneBy(n,e,i,...r))}async query(t,e,i,r,n,s){const{ctx:a,log:o}=await this.logCtx([t],this.query);let c;o.info(`Executing query orderedBy ${i} and order ${r}`);try{c=w.from(JSON.parse(e))}catch(t){throw new U("Invalid condition: "+t)}return o.info("Condition: "+JSON.stringify(c)),JSON.stringify(await super.query(a,c,i,r,n,s))}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)))}}st([W(),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"create",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"read",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"update",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"delete",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"deleteAll",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"readAll",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"updateAll",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String,String]),at("design:returntype",Promise)],vt.prototype,"statement",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String,String]),at("design:returntype",Promise)],vt.prototype,"listBy",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String,String,Number]),at("design:returntype",Promise)],vt.prototype,"paginateBy",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String,String,String]),at("design:returntype",Promise)],vt.prototype,"findOneBy",null),st([W(),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],vt.prototype,"init",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],vt.prototype,"healthcheck",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],vt.prototype,"createAll",null);class At extends B{constructor(t){super(t,At.name)}}class Ct extends B{constructor(t){super(t,Ct.name)}}class kt extends B{constructor(t){super(t,kt.name)}}class Ot extends q{constructor(t){super(Ot.name,t,409)}}function Nt(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new At(`Addition overflow: ${t} + ${e}`);return i}function Rt(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new At(`Subtraction overflow: ${t} - ${e}`);return i}let $t=class extends z{constructor(t){super(t)}};st([$({type:"String"}),at("design:type",String)],$t.prototype,"name",void 0),st([E(),c(),at("design:type",String)],$t.prototype,"owner",void 0),st([E(),c(),at("design:type",String)],$t.prototype,"symbol",void 0),st([E(),c(),at("design:type",Number)],$t.prototype,"decimals",void 0),$t=st([P("erc20_tokens"),l(),at("design:paramtypes",[Object])],$t);let Et=class extends z{constructor(t){super(t)}};st([$({type:"String"}),at("design:type",String)],Et.prototype,"id",void 0),st([E(),c(),at("design:type",String)],Et.prototype,"token",void 0),st([E(),c(),at("design:type",Number)],Et.prototype,"balance",void 0),st([E(),at("design:type",String)],Et.prototype,"captive",void 0),Et=st([P("erc20_wallets"),l(),at("design:paramtypes",[Object])],Et);let Pt=class extends z{constructor(t){super(t)}};function zt(){return function(t,e,i){const r=i.value;return i.value=async function(...t){const i=t[0],n=i.clientIdentity.getID(),s=await this.tokenRepository.select(),a=await s.execute(i);if(0==a.length)throw new L("No tokens avaialble");if(a.length>1)throw new L("To many token available : "+a.length);if(a[0].owner!=n)throw new k(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Tt;st([$({type:"String"}),E(),c(),at("design:type",String)],Pt.prototype,"owner",void 0),st([E(),c(),at("design:type",String)],Pt.prototype,"spender",void 0),st([E(),c(),at("design:type",Number)],Pt.prototype,"value",void 0),Pt=st([P("erc20_allowances"),l(),at("design:paramtypes",[Object])],Pt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Tt||(Tt={}));class Dt extends St{constructor(t){super(t,Et),Dt.adapter=Dt.adapter||new xt,this.walletRepository=lt.forModel(Et,Dt.adapter.alias),this.tokenRepository=lt.forModel($t,Dt.adapter.alias),this.allowanceRepository=lt.forModel(Pt,Dt.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 L(`The token ${this.getName()} does not exist`);let n=0;return r.forEach(t=>{n+=t.balance}),n}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 n=r.identity.getID();if(!await this._transfer(n,e,i,r))throw new B("Failed to transfer");return!0}async TransferFrom(t,e,i,r){const{ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=n.identity.getID(),a=await this._getAllowance(e,s,n);if(!a||0>a.value)throw new kt(`spender ${s} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Ct("The spender does not have enough allowance to spend.");const c=Rt(o,r),l=Object.assign({},a,{value:c});if(await this.allowanceRepository.update(l,n),!await this._transfer(e,i,r,n))throw new B("Failed to transfer");return!0}async _transfer(t,e,i,r){const n=r.logger;if(t===e)throw new k("cannot transfer to and from same client account");if(0>i)throw new Ct("transfer amount cannot be negative");const s=await this.walletRepository.read(t,r),a=s.balance;if(i>a)throw new Ct(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof q))throw new B(t);if(404!==t.code)throw new B(t.message);o=new Et({id:e,balance:0,token:await this.TokenName(r)}),c=!0}const l=o.balance,u=Rt(a,i),p=Nt(l,i),g=Object.assign({},s,{balance:u});await this.walletRepository.update(g,r);const d=Object.assign({},o,{balance:p});c?await this.walletRepository.create(d,r):await this.walletRepository.update(d,r);const h={from:t,to:e,value:i};return this.repo.refresh($t,Tt.TRANSFER,"",h,r).catch(t=>n.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,i){const{ctx:r,ctxArgs:n}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const s=r.identity.getID();let a=await this._getAllowance(s,e,r);if((await this.walletRepository.read(s,...n)).balance<i)throw new Ct(`client account ${s} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...n)):(a=new Pt({owner:s,spender:e,value:i}),await this.allowanceRepository.create(a,...n));const o={owner:s,spender:e,value:i};return this.repo.refresh($t,Tt.APPROVAL,"",o,r),!0}async Allowance(t,e,i){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const n=await this._getAllowance(e,i,r);if(!n)throw new kt(`spender ${i} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,i){const r=w.and(w.attribute("owner").eq(t),w.attribute("spender").eq(e)),n=await this.allowanceRepository.select().where(r).execute(i);return n?.[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 k("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 Ot("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 J("mint amount must be a positive integer");let n;try{n=await this.walletRepository.read(r,i);const t=Nt(n.balance,e),s=Object.assign({},n,{balance:t});await this.walletRepository.update(s,i)}catch(n){if(!(n instanceof q))throw new B(n);if(404!==n.code)throw new B(n.message);{const n=new Et({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(n,i)}}const s={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers($t,Tt.TRANSFER,"",s,i)}async Burn(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const n=r.identity.getID(),s=await this.walletRepository.read(n,r),a=s.balance;if(e>a)throw new Ct("Minter has insufficient funds.");const o=Rt(a,e),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,r),i.info(e+" tokens were burned");const l={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers($t,Tt.TRANSFER,"",l,r)}async BurnFrom(t,e,i){const{log:r,ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=await this.walletRepository.read(e,n),a=s.balance;if(i>a)throw new Ct(e+" has insufficient funds.");const o=Rt(a,i),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,n),r.info(`${i} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:i};this.repo.ObserverHandler().updateObservers($t,Tt.TRANSFER,"",l,n)}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 Ct(`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()}}st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],Dt.prototype,"TokenName",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],Dt.prototype,"Symbol",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],Dt.prototype,"Decimals",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],Dt.prototype,"TotalSupply",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String]),at("design:returntype",Promise)],Dt.prototype,"BalanceOf",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String,Number]),at("design:returntype",Promise)],Dt.prototype,"Transfer",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String,String,Number]),at("design:returntype",Promise)],Dt.prototype,"TransferFrom",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,String,Number]),at("design:returntype",Promise)],Dt.prototype,"Approve",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G,String,String]),at("design:returntype",Promise)],Dt.prototype,"Allowance",null),st([W(),at("design:type",Function),at("design:paramtypes",[G,$t]),at("design:returntype",Promise)],Dt.prototype,"Initialize",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],Dt.prototype,"CheckInitialized",null),st([zt(),W(),at("design:type",Function),at("design:paramtypes",[G,Number]),at("design:returntype",Promise)],Dt.prototype,"Mint",null),st([zt(),W(),at("design:type",Function),at("design:paramtypes",[G,Number]),at("design:returntype",Promise)],Dt.prototype,"Burn",null),st([zt(),W(),at("design:type",Function),at("design:paramtypes",[G,String,Number]),at("design:returntype",Promise)],Dt.prototype,"BurnFrom",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],Dt.prototype,"ClientAccountBalance",null),st([W(!1),at("design:type",Function),at("design:paramtypes",[G]),at("design:returntype",Promise)],Dt.prototype,"ClientAccountID",null);const Bt=[Dt],It="##VERSION##",Ft="##PACKAGE##";X.registerLibrary(Ft,It);export{yt as ContractLogger,xt as FabricContractAdapter,ot as FabricContractContext,lt as FabricContractRepository,ct as FabricContractRepositoryObservableHandler,wt as FabricContractSequence,St as FabricCrudContract,ut as FabricStatement,Ft as PACKAGE_NAME,vt as SerializedCrudContract,It as VERSION,Bt as contracts,ft as createdByOnFabricCreateUpdate,mt as pkFabricOnCreate};
1
+ import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as i,CouchDBOperator as r,CouchDBAdapter as n}from"@decaf-ts/for-couchdb";import{Model as s,JSONSerializer as a,ValidationKeys as o,required as c,model as l}from"@decaf-ts/decorator-validation";import{Context as u,ObserverHandler as p,Adapter as g,Repository as d,PreparedStatementKeys as h,QueryError as y,PersistenceKeys as w,Condition as f,Sequence as m,SequenceModel as x,UUID as b,Serial as S,UnsupportedError as v,PagingError as A,MigrationError as C,ObserverError as k,AuthorizationError as O,ForbiddenError as N,ConnectionError as R,OrderDirection as $,pk as E,column as P,table as z,BaseModel as T}from"@decaf-ts/core";import{OperationKeys as B,BulkCrudOperationKeys as D,InternalError as I,enforceDBDecorators as F,reduceErrorsToPrint as J,ValidationError as q,BaseError as j,DBKeys as L,NotFoundError as _,ConflictError as U,SerializationError as M,BadRequestError as Q,onCreate as V,onCreateUpdate as H}from"@decaf-ts/db-decorators";import{Property as K,Object as Y,Contract as G,Context as W,Transaction as X}from"fabric-contract-api";import{Metadata as Z,Decoration as tt,propMetadata as et}from"@decaf-ts/decoration";import{Logging as it,MiniLogger as rt,NumericLogLevels as nt,LogLevel as st}from"@decaf-ts/logging";import{__decorate as at,__metadata as ot}from"tslib";class ct extends u{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 lt extends p{constructor(t=[B.CREATE,B.UPDATE,B.DELETE,D.CREATE_ALL,D.UPDATE_ALL,D.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,i,...r){const{log:n,ctx:s}=g.logCtx(r,this.updateObservers),{stub:a}=s,[o,c]=r,l="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){n.debug(`Emitting ${e} event`);const t=((t,e,i)=>{const r=[t,e];return i&&r.push(i),r.join("_")})(l,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:i})))}else a.setEvent(e,Buffer.from(JSON.stringify(c)))}}class ut extends d{constructor(t,e,i){super(t,e),this.trackedEvents=i,this._overrides=Object.assign({},super._overrides,{ignoreValidation:!1,ignoreHandlers:!1,allowRawStatements:!0,forcePrepareSimpleQueries:!1,forcePrepareComplexQueries:!1})}async createAllPrefix(t,...e){const i=await u.args(B.CREATE,this.class,e,this.adapter,this._overrides||{}),r=i.context.logger.for(this.createAllPrefix),n=i.context.get("ignoreHandlers"),a=i.context.get("ignoreValidation");if(!t.length)return[t,...i.args];const o=s.sequenceFor(t[0]);r.info("Sequence options: "+JSON.stringify(o));let c=[];if(o.type?(o.name||(o.name=s.sequenceName(t[0],"pk")),c=await(await this.adapter.Sequence(o)).range(t.length,...i.args),r.info("Sequence ids: "+c)):c=t.map((t,e)=>{if(void 0===t[this.pk])throw new I("Primary key is not defined for model in position "+e);return t[this.pk]}),t=await Promise.all(t.map(async(t,e)=>(t=new this.class(t),o.type&&(t[this.pk]="String"!==o.type||o.generated?c[e]:""+t[this.pk]),r.info("Creating model "+JSON.stringify(t)),n||await F(this,i.context,t,B.CREATE,B.ON),t))),!a){const e=i.context.get("ignoredValidationProperties")||[],r=await Promise.all(t.map(t=>Promise.resolve(t.hasErrors(...e)))),n=J(r);if(n)throw new q(n)}return[t,...i.args]}async paginateBy(t,e,i,...r){const n=await u.args(h.PAGE_BY,this.class,r,this.adapter,this._overrides||{}),{log:a,ctxArgs:o}=this.logCtx(n.args,this.paginateBy);return a.verbose(`paginating ${s.tableName(this.class)} with page size ${i}`),this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([t,e]).paginate(i,...o)}async statement(t,...e){if(!d.statements(this,t))throw new y("Invalid prepared statement requested "+t);const i=await u.args(w.STATEMENT,this.class,e,this.adapter,this._overrides||{});i.context.logger&&i.context.logger.info(`Repo statement: ${t} + ${e}`);const{log:r,ctxArgs:n}=this.logCtx(i.args,this.statement);r.verbose(`Executing prepared statement ${t} with args ${n}`);try{return this[t](...n)}catch(e){if(e instanceof j)throw e;throw new I(`Failed to execute prepared statement ${t} with args ${n}: ${e}`)}}ObserverHandler(){return new lt}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class pt 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),n=s.pk(this.fromSelector),a=Z.get(this.fromSelector,Z.key(L.ID,n))?.type;return this.selectSelector?r:r.map(t=>this.processRecord(t,n,a,i))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=s.tableName(this.fromSelector);const n={selector:t};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(f.and(this.whereCondition,f.attribute(e.TABLE).eq(n.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 n=r[0];return n===i.AND?t.push(...e[n]):t.push(e),t},[])],n.selector=t;break;case i.OR:{const e={};e[i.AND]=[t,...Object.entries(n.selector).map(([t,e])=>{const i={};return i[t]=e,i})],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{n.selector[t],n.selector[t]=e})}if(this.orderBySelector){n.sort=n.sort||[],n.selector=n.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,n.sort.push(i),n.selector[t]||(n.selector[t]={},n.selector[t][r.BIGGER]=null)}return this.limitSelector&&(n.limit=this.limitSelector),this.offsetSelector&&(n.skip=this.offsetSelector),n}}var gt,dt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(gt||(gt={})),(t=>{t.X509="X.509"})(dt||(dt={}));const ht="hlf-fabric";class yt 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)}}class wt extends rt{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new rt(t,e)}log(t,e,i){if(nt[this.config("level")]<nt[t])return;let r;switch(t){case st.info:r=this.logger.info;break;case st.verbose:r=this.logger.verbose;break;case st.debug:r=this.logger.debug;break;case st.error:r=this.logger.error;break;case st.silly:r=this.logger.silly;break;default:throw new I("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}it.setFactory((t,e,i)=>new wt(t||wt.name,e||{},i));class ft extends m{constructor(t,e){super(t,e)}async current(...t){const e=(await u.args(B.READ,x,t,this.adapter)).context,{name:i,startWith:r}=this.options;try{const t=await this.repo.read(i,e);return this.parse(t.current)}catch(t){if(t instanceof _){if(void 0===r)throw new I("Starting value is not defined for a non existing sequence");try{return this.parse(r)}catch(t){throw new I(`Failed to parse initial value for sequence ${r}: ${t}`)}}throw new I(`Failed to retrieve current value for sequence ${i}: ${t}`)}}async increment(t,e,i){const{type:r,incrementBy:n,name:s}=this.options;let a;const o=e||n;if(o%n!==0)throw new I("Value to increment does not consider the incrementBy setting: "+n);switch("function"==typeof r&&r?.name?r.name:r){case Number.name:a=this.parse(t)+o;break;case BigInt.name:a=this.parse(t)+BigInt(o);break;case String.name:a=this.parse(t);break;case"serial":a=S.instance.generate(t);break;case"uuid":a=b.instance.generate(t);break;default:throw new I("Should never happen")}let c;try{c=await this.repo.update(new x({id:s,current:a}),i)}catch(n){if(!(n instanceof _))throw n;try{c=await this.repo.create(new x({id:s,current:a}),i)}catch(n){if(!(n instanceof U)||"uuid"!==r)throw n;return this.increment(t,e,i)}}return c.current}async next(...t){const e=await u.args(B.UPDATE,x,t,this.adapter),{context:i,args:r}=e,n=await this.current(...r);return this.increment(n,void 0,i)}async range(t,...e){const i=await u.args(B.UPDATE,x,e,this.adapter),{context:r,args:n}=i,s=await this.current(...n),a=this.parse(this.options.incrementBy),o=await this.increment(s,this.parse(t)*a,r),c=[];for(let e=1;t>=e;e++)c.push(s+a*this.parse(e));if("uuid"===this.options.type||"serial"===this.options.type)throw new v(`type ${this.options.type} is currently not suppported for this adapter`);const l="function"==typeof this.options.type&&this.options.type?.name?this.options.type.name:this.options.type;if(c[c.length-1]!==o&&"String"!==l)throw new I("Miscalculation of range");return c}}async function mt(t,e,i,r){try{const e=t.get("identity");r[i]=e.getID()}catch(t){throw new v("No User found in context. Please provide a user in the context")}}async function xt(t,e,i,r){if(!e.type||r[i])return;let n;e.name||(e.name=s.sequenceName(r,"pk"));try{n=await this.adapter.Sequence(e)}catch(t){throw new I(`Failed to instantiate Sequence ${e.name}: ${t}`)}const a=await n.next(t);Object.defineProperty(r,i,{enumerable:!0,writable:!1,configurable:!0,value:a})}class bt extends n{getClient(){throw new v("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new yt}repository(){return ut}async Sequence(t){return new ft(t,this)}constructor(t,e){super(t,ht,e),this.Context=ct}for(t,...e){return super.for(t,...e)}async create(t,e,i,...r){const{ctx:n,log:a,stub:o}=this.logCtx(r,this.create);a.info("in ADAPTER create with args "+r);const c=s.tableName(t);try{a.info(`adding entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);i=await this.putState(t,i,n)}catch(t){throw this.parseError(t)}return i}async read(t,e,...i){const{ctx:r,log:n,stub:a}=this.logCtx(i,this.read);n.info("in ADAPTER read with args "+i);const o=s.tableName(t);let c;try{const t=a.createCompositeKey(o,[e+""]);c=await this.readState(t,r)}catch(t){throw this.parseError(t)}return c}async update(t,e,i,...r){const{ctx:n,log:a,stub:o}=this.logCtx(r,this.update),c=s.tableName(t);try{a.verbose(`updating entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);i=await this.putState(t,i,n)}catch(t){throw this.parseError(t)}return i}async delete(t,e,...i){const{ctx:r,log:n,ctxArgs:a,stub:o}=this.logCtx(i,this.delete),c=s.tableName(t);let l;try{const i=o.createCompositeKey(c,[e+""]);l=await this.read(t,e,...a),n.verbose(`deleting entry with pk ${e} from ${c} table`),await this.deleteState(i,r)}catch(t){throw this.parseError(t)}return l}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,n)=>e.includes(r)?new Proxy(i[r],{async apply(e,i,n){switch(r){case"putState":{const[e,i,r]=n;return await e.putPrivateData(t,i.toString(),r),r}case"deleteState":{const[e,i]=n;return e.deletePrivateData(t,i)}case"readState":{const[e,i]=n;return e.getPrivateData(t,i)}case"queryResult":{const[e,i]=n;return e.getPrivateDataQueryResult(t,i)}case"queryResultPaginated":{const[e,i,r,s]=n,a=await e.getPrivateDataQueryResult(t,i),o=[];let c=0,l=!s,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(!l){e===s?.toString()&&(l=!0);continue}if(o.push({Key:e,Record:JSON.parse(i)}),u=e,c++,c>=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 I("Unsupported method override "+r)}}}):Reflect.get(i,r,n)})}async putState(t,e,i){let r;const{stub:n,log:s}=this.logCtx([i],this.putState);try{r=Buffer.from(bt.serializer.serialize(e))}catch(e){throw new M(`Failed to serialize record with id ${t}: ${e}`)}const a=i.get("segregated");return a?await n.putPrivateData(a,t.toString(),r):await n.putState(t.toString(),r),s.silly(`state stored${a?` in ${a} collection`:""} under id ${t}`),e}async readState(t,e){let i;const{stub:r,log:n}=this.logCtx([e],this.readState);let s;const a=e.get("segregated");if(s=a?(await r.getPrivateData(a,t.toString())).toString():(await r.getState(t.toString())).toString(),!s)throw new _(`Record with id ${t}${a?` in ${a} collection`:""} not found`);n.silly(`state retrieved from${a?` ${a} collection`:""} under id ${t}`);try{i=bt.serializer.deserialize(s.toString())}catch(t){throw new M("Failed to parse record: "+t)}return i}async queryResult(t,e,...i){const{ctx:r}=this.logCtx(i,this.readState);let n;const s=r.get("segregated");return n=s?await t.getPrivateDataQueryResult(s,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),n}async queryResultPaginated(t,e,i=250,r,...n){const{ctx:s}=this.logCtx(n,this.readState);let a;const o=s.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 bt.textDecoder.decode(t)}async flags(t,e,i,r,...n){const s={stub:r.stub,segregated:!1};return Object.assign(s,r instanceof ct?{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()}:{identity:r.clientIdentity,logger:new wt(this,void 0,r),correlationId:r.stub.getTxID()}),await super.flags(t,e,s,...n)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,i=!1){const r=[];let n=await e.next();for(;!n.done;){if(n.value&&n.value.value.toString()){let e={};if(t.debug(n.value.value.toString("utf8")),i){e.TxId=n.value.txId,e.Timestamp=n.value.timestamp;try{e.Value=JSON.parse(n.value.value.toString("utf8"))}catch(i){t.error(i),e.Value=n.value.value.toString("utf8")}}else try{e=JSON.parse(n.value.value.toString("utf8"))}catch(i){t.error(i),e=n.value.value.toString("utf8")}r.push(e)}n=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:n,ctx:s}=this.logCtx(i,this.raw),{skip:a,limit:o}=t;let c;o||a?(delete t.limit,delete t.skip,r.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${a}`),c=(await this.queryResultPaginated(n,t,o||250,a?.toString(),s)).iterator):(r.debug("Retrieving iterator"),c=await this.queryResult(n,t,s)),r.debug("Iterator acquired");const l=await this.resultIterator(r,c);return r.debug(`returning ${Array.isArray(l)?l.length:1} results`),l}Statement(){return new pt(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new I("Ids and models must have the same length");const{log:n,ctxArgs:a}=this.logCtx(r,this.createAll),o=s.tableName(t);return n.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 I("Ids and models must have the same length");const{log:n,ctxArgs:a}=this.logCtx(r,this.updateAll),o=s.tableName(t);return n.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=s.tableName(t.constructor),n=s.pk(t.constructor),a=s.segregate(t),o=Object.entries(a.model).reduce((e,[i,r])=>{if(void 0===r)return e;const n=s.columnName(t,i);if(this.isReserved(n))throw new I(`Property name ${n} is reserved`);return e[n]=r,e},{});return i.silly(`Preparing record for ${r} table with pk ${t[n]}`),{record:o,id:t[n],transient:a.transient}}revert(t,e,i,r,...n){const{log:a}=this.logCtx(n,this.revert),o={};o[s.pk(e)]=i;const c="string"==typeof e?s.build(o,e):new e(o);a.silly(`Rebuilding model ${c.constructor.name} id ${i}`);const l=Object.keys(c).reduce((e,i)=>(e[i]=t[s.columnName(e,i)],e),c);return r&&(a.debug("re-adding transient properties: "+Object.keys(r).join(", ")),Object.entries(r).forEach(([t,e])=>{if(t in l&&void 0!==l[t])throw new I(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);l[t]=e})),l}createPrefix(t,i,r,...n){const{ctxArgs:a}=this.logCtx(n,this.createPrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,r),[t,i,o,...a]}updatePrefix(t,i,r,...n){const{ctxArgs:a}=this.logCtx(n,this.updatePrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,r),[t,i,o,...a]}createAllPrefix(t,i,r,...n){if(i.length!==r.length)throw new I("Ids and models must have the same length");const a=n.pop(),o=i.map((i,n)=>{const a={};return a[e.TABLE]=s.tableName(t),Object.assign(a,r[n]),a});return[t,i,o,a]}updateAllPrefix(t,i,r,...n){if(i.length!==r.length)throw new I("Ids and models must have the same length");const a=n.pop(),o=i.map((i,n)=>{const a={};return a[e.TABLE]=s.tableName(t),Object.assign(a,r[n]),a});return[t,i,o,a]}parseError(t,e){return bt.parseError(e||t)}logCtx(t,e){return bt.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new I("No context provided");const i=t.pop();if(!(i instanceof u))throw new I("No context provided");if(t.filter(t=>t instanceof u).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(_.name)?new _(t):e.includes(U.name)?new U(t):e.includes(Q.name)?new Q(t):e.includes(y.name)?new y(t):e.includes(A.name)?new A(t):e.includes(v.name)?new v(t):e.includes(C.name)?new C(t):e.includes(k.name)?new k(t):e.includes(O.name)?new O(t):e.includes(N.name)?new N(t):e.includes(R.name)?new R(t):e.includes(M.name)?new M(t):new I(t)}static decoration(){super.decoration(),tt.flavouredAs(ht).for(w.CREATED_BY).define(V(mt),et(w.CREATED_BY,{})).apply(),tt.flavouredAs(ht).for(w.UPDATED_BY).define(H(mt),et(w.UPDATED_BY,{})).apply(),tt.flavouredAs(ht).for(w.COLUMN).extend(K()).apply(),tt.flavouredAs(ht).for(o.DATE).extend(()=>(t,e)=>{K(e,"string:date")(t,e)}),tt.flavouredAs(ht).for(w.TABLE).extend(t=>{const e=[];let i="function"==typeof t?Z.constr(t):Z.constr(t.constructor);for(;i&&i!==Object&&i.prototype;)e.push(i),i=Object.getPrototypeOf(i);for(;e.length>0;){const t=e.pop();Y()(t)}return Y()(t)}).apply()}}bt.decoration(),g.setCurrent(ht);class St extends a{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}Y()(Date);class vt extends G{static{this.adapter=new bt}static{this.serializer=new St}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=d.forModel(e)}async listBy(t,e,i,...r){const{ctxArgs:n,log:s}=await this.logCtx([...r,t],this.listBy);return s.info(`Running listBy key ${e}, order ${i} and args ${n}`),this.repo.listBy(e,i,...n)}async paginateBy(t,e,i,r,...n){const{ctxArgs:s,log:a}=await this.logCtx([...n,t],this.paginateBy);return a.info(`Running paginateBy key ${e}, order ${i} with size ${r} and args ${s}`),this.repo.paginateBy(e,i,r,...s)}async findOneBy(t,e,i,...r){const{ctxArgs:n,log:s}=await this.logCtx([...r,t],this.findOneBy);return s.info(`Running findOneBy key ${e}, value: ${i} with args ${n}`),this.repo.findOneBy(e,i,...n)}async statement(t,e,...i){const{ctxArgs:r,log:n}=await this.logCtx([...i,t],this.statement);return n.info(`Running statement ${e} with args ${r}`),this.repo.statement(e,...r)}async create(t,e,...i){const{log:r,ctxArgs:n}=await this.logCtx([...i,t],this.create);r.info("CONTRACT CREATE, "+n),"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=s.merge(e,a,this.clazz),this.repo.create(e,...n)}async read(t,e,...i){const{log:r,ctxArgs:n}=await this.logCtx([...i,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...n)}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:n}=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=s.merge(e,a,this.clazz),this.repo.update(e,...n)}async delete(t,e,...i){const{log:r,ctxArgs:n}=await this.logCtx([...i,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...n)}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:n}=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,...n)}async query(t,e,i,r=$.ASC,n,s,...a){const{ctxArgs:o}=await this.logCtx([...a,t],this.query);return this.repo.query(e,i,r,n,s,...o)}async raw(t,e,i,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.raw);return vt.adapter.raw(e,i,...n)}serialize(t){return vt.serializer.serialize(t)}deserialize(t){return vt.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,ctxArgs:n}=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,...n)}async logCtx(t,e){return vt.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new I("No context provided");const i=t.pop();if(i instanceof ct)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof W))throw new I("No valid context provided");const r={correlationId:i.stub.getTxID()},n=await vt.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case B.CREATE:case B.READ:case B.UPDATE:case B.DELETE:case D.CREATE_ALL:case D.READ_ALL:case D.UPDATE_ALL:case D.DELETE_ALL:}return e.name})(),r,this.clazz,i),s=this?n.logger.for(this).for(e):n.logger.clear().for(this).for(e);return{ctx:n,log:s,stub:n.stub,identity:n.identity,ctxArgs:[...t,n]}}}class At extends vt{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 n=this.deserialize(e);return i.info("Model deserialized: "+JSON.stringify(n)),this.serialize(await super.create(r,n))}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:n}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${i.length} entries from the table`),JSON.stringify((await super.deleteAll(n,i)).map(t=>this.serialize(t)))}async readAll(t,e){const i=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.readAll);return r.info(`reading ${i.length} entries from the table`),JSON.stringify((await super.readAll(n,i)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.updateAll),n=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return i.info(`Updating ${n.length} entries to the table`),JSON.stringify((await super.updateAll(r,n)).map(t=>this.serialize(t)))}async statement(t,e,i){const{ctx:r,log:n}=await this.logCtx([t],this.statement);try{i=JSON.parse(i)}catch(t){throw new M("Invalid args: "+t)}if(!Array.isArray(i))throw new M(`Invalid args: ${JSON.stringify(i)}. must be an array`);return n.info("calling prepared statement "+e),n.info("with args "+i),JSON.stringify(await super.statement(r,e,...i))}async listBy(t,e,i){const{ctx:r,log:n}=await this.logCtx([t],this.listBy);return n.info(`Executing listBy with key ${e} and order ${i}`),JSON.stringify(await super.listBy(r,e,i))}async paginateBy(t,e,i,r){const{ctx:n,log:s}=await this.logCtx([t],this.paginateBy);return s.info(`Executing paginateBy with key ${e} and order ${i}`),JSON.stringify(await super.paginateBy(n,e,i,r))}async findOneBy(t,e,i,...r){const{ctx:n,log:s}=await this.logCtx([...r,t],this.findOneBy);return s.info(`Executing findOneBy with key ${e} and value ${i}`),JSON.stringify(await super.findOneBy(n,e,i,...r))}async query(t,e,i,r,n,s){const{ctx:a,log:o}=await this.logCtx([t],this.query);let c;o.info(`Executing query orderedBy ${i} and order ${r}`);try{c=f.from(JSON.parse(e))}catch(t){throw new M("Invalid condition: "+t)}return o.info("Condition: "+JSON.stringify(c)),JSON.stringify(await super.query(a,c,i,r,n,s))}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)))}}at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"create",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"read",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"update",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"delete",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"deleteAll",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"readAll",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"updateAll",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String,String]),ot("design:returntype",Promise)],At.prototype,"statement",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String,String]),ot("design:returntype",Promise)],At.prototype,"listBy",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String,String,Number]),ot("design:returntype",Promise)],At.prototype,"paginateBy",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String,String,String]),ot("design:returntype",Promise)],At.prototype,"findOneBy",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],At.prototype,"init",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],At.prototype,"healthcheck",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],At.prototype,"createAll",null);class Ct extends I{constructor(t){super(t,Ct.name)}}class kt extends I{constructor(t){super(t,kt.name)}}class Ot extends I{constructor(t){super(t,Ot.name)}}class Nt extends j{constructor(t){super(Nt.name,t,409)}}function Rt(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new Ct(`Addition overflow: ${t} + ${e}`);return i}function $t(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new Ct(`Subtraction overflow: ${t} - ${e}`);return i}let Et=class extends T{constructor(t){super(t)}};at([E({type:"String"}),ot("design:type",String)],Et.prototype,"name",void 0),at([P(),c(),ot("design:type",String)],Et.prototype,"owner",void 0),at([P(),c(),ot("design:type",String)],Et.prototype,"symbol",void 0),at([P(),c(),ot("design:type",Number)],Et.prototype,"decimals",void 0),Et=at([z("erc20_tokens"),l(),ot("design:paramtypes",[Object])],Et);let Pt=class extends T{constructor(t){super(t)}};at([E({type:"String"}),ot("design:type",String)],Pt.prototype,"id",void 0),at([P(),c(),ot("design:type",String)],Pt.prototype,"token",void 0),at([P(),c(),ot("design:type",Number)],Pt.prototype,"balance",void 0),at([P(),ot("design:type",String)],Pt.prototype,"captive",void 0),Pt=at([z("erc20_wallets"),l(),ot("design:paramtypes",[Object])],Pt);let zt=class extends T{constructor(t){super(t)}};function Tt(){return function(t,e,i){const r=i.value;return i.value=async function(...t){const i=t[0],n=i.clientIdentity.getID(),s=await this.tokenRepository.select(),a=await s.execute(i);if(0==a.length)throw new _("No tokens avaialble");if(a.length>1)throw new _("To many token available : "+a.length);if(a[0].owner!=n)throw new O(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Bt;at([E({type:"String"}),P(),c(),ot("design:type",String)],zt.prototype,"owner",void 0),at([P(),c(),ot("design:type",String)],zt.prototype,"spender",void 0),at([P(),c(),ot("design:type",Number)],zt.prototype,"value",void 0),zt=at([z("erc20_allowances"),l(),ot("design:paramtypes",[Object])],zt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Bt||(Bt={}));class Dt extends vt{constructor(t){super(t,Pt),Dt.adapter=Dt.adapter||new bt,this.walletRepository=ut.forModel(Pt,Dt.adapter.alias),this.tokenRepository=ut.forModel(Et,Dt.adapter.alias),this.allowanceRepository=ut.forModel(zt,Dt.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 _(`The token ${this.getName()} does not exist`);let n=0;return r.forEach(t=>{n+=t.balance}),n}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 n=r.identity.getID();if(!await this._transfer(n,e,i,r))throw new I("Failed to transfer");return!0}async TransferFrom(t,e,i,r){const{ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=n.identity.getID(),a=await this._getAllowance(e,s,n);if(!a||0>a.value)throw new Ot(`spender ${s} has no allowance from ${e}`);const o=a.value;if(r>o)throw new kt("The spender does not have enough allowance to spend.");const c=$t(o,r),l=Object.assign({},a,{value:c});if(await this.allowanceRepository.update(l,n),!await this._transfer(e,i,r,n))throw new I("Failed to transfer");return!0}async _transfer(t,e,i,r){const n=r.logger;if(t===e)throw new O("cannot transfer to and from same client account");if(0>i)throw new kt("transfer amount cannot be negative");const s=await this.walletRepository.read(t,r),a=s.balance;if(i>a)throw new kt(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof j))throw new I(t);if(404!==t.code)throw new I(t.message);o=new Pt({id:e,balance:0,token:await this.TokenName(r)}),c=!0}const l=o.balance,u=$t(a,i),p=Rt(l,i),g=Object.assign({},s,{balance:u});await this.walletRepository.update(g,r);const d=Object.assign({},o,{balance:p});c?await this.walletRepository.create(d,r):await this.walletRepository.update(d,r);const h={from:t,to:e,value:i};return this.repo.refresh(Et,Bt.TRANSFER,"",h,r).catch(t=>n.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,i){const{ctx:r,ctxArgs:n}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const s=r.identity.getID();let a=await this._getAllowance(s,e,r);if((await this.walletRepository.read(s,...n)).balance<i)throw new kt(`client account ${s} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...n)):(a=new zt({owner:s,spender:e,value:i}),await this.allowanceRepository.create(a,...n));const o={owner:s,spender:e,value:i};return this.repo.refresh(Et,Bt.APPROVAL,"",o,r),!0}async Allowance(t,e,i){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const n=await this._getAllowance(e,i,r);if(!n)throw new Ot(`spender ${i} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,i){const r=f.and(f.attribute("owner").eq(t),f.attribute("spender").eq(e)),n=await this.allowanceRepository.select().where(r).execute(i);return n?.[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 O("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 Nt("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 q("mint amount must be a positive integer");let n;try{n=await this.walletRepository.read(r,i);const t=Rt(n.balance,e),s=Object.assign({},n,{balance:t});await this.walletRepository.update(s,i)}catch(n){if(!(n instanceof j))throw new I(n);if(404!==n.code)throw new I(n.message);{const n=new Pt({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(n,i)}}const s={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers(Et,Bt.TRANSFER,"",s,i)}async Burn(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const n=r.identity.getID(),s=await this.walletRepository.read(n,r),a=s.balance;if(e>a)throw new kt("Minter has insufficient funds.");const o=$t(a,e),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,r),i.info(e+" tokens were burned");const l={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Et,Bt.TRANSFER,"",l,r)}async BurnFrom(t,e,i){const{log:r,ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const s=await this.walletRepository.read(e,n),a=s.balance;if(i>a)throw new kt(e+" has insufficient funds.");const o=$t(a,i),c=Object.assign({},s,{balance:o});await this.walletRepository.update(c,n),r.info(`${i} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:i};this.repo.ObserverHandler().updateObservers(Et,Bt.TRANSFER,"",l,n)}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 kt(`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()}}at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],Dt.prototype,"TokenName",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],Dt.prototype,"Symbol",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],Dt.prototype,"Decimals",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],Dt.prototype,"TotalSupply",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String]),ot("design:returntype",Promise)],Dt.prototype,"BalanceOf",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String,Number]),ot("design:returntype",Promise)],Dt.prototype,"Transfer",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String,String,Number]),ot("design:returntype",Promise)],Dt.prototype,"TransferFrom",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,String,Number]),ot("design:returntype",Promise)],Dt.prototype,"Approve",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W,String,String]),ot("design:returntype",Promise)],Dt.prototype,"Allowance",null),at([X(),ot("design:type",Function),ot("design:paramtypes",[W,Et]),ot("design:returntype",Promise)],Dt.prototype,"Initialize",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],Dt.prototype,"CheckInitialized",null),at([Tt(),X(),ot("design:type",Function),ot("design:paramtypes",[W,Number]),ot("design:returntype",Promise)],Dt.prototype,"Mint",null),at([Tt(),X(),ot("design:type",Function),ot("design:paramtypes",[W,Number]),ot("design:returntype",Promise)],Dt.prototype,"Burn",null),at([Tt(),X(),ot("design:type",Function),ot("design:paramtypes",[W,String,Number]),ot("design:returntype",Promise)],Dt.prototype,"BurnFrom",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],Dt.prototype,"ClientAccountBalance",null),at([X(!1),ot("design:type",Function),ot("design:paramtypes",[W]),ot("design:returntype",Promise)],Dt.prototype,"ClientAccountID",null);const It=[Dt],Ft="##VERSION##",Jt="##PACKAGE##";Z.registerLibrary(Jt,Ft);export{wt as ContractLogger,bt as FabricContractAdapter,ct as FabricContractContext,ut as FabricContractRepository,lt as FabricContractRepositoryObservableHandler,ft as FabricContractSequence,vt as FabricCrudContract,pt as FabricStatement,Jt as PACKAGE_NAME,At as SerializedCrudContract,Ft as VERSION,It as contracts,mt as createdByOnFabricCreateUpdate,xt 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/logging.ts","../src/contracts/FabricContractSequence.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","_overrides","Object","assign","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","createAllPrefix","models","contextArgs","class","context","logger","for","ignoreValidate","length","opts","Model","sequenceFor","info","ids","type","sequenceName","Sequence","range","map","m","i","pk","InternalError","Promise","all","async","generated","enforceDBDecorators","ON","ignoredProps","errors","resolve","hasErrors","errorMessages","reduceErrorsToPrint","ValidationError","statement","statements","QueryError","PersistenceKeys","STATEMENT","ctxArgs","verbose","e","BaseError","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","fromSelector","Metadata","key","DBKeys","ID","selectSelector","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","keys","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","ContractLogger","MiniLogger","conf","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","error","silly","call","createLog","Logging","setFactory","object","FabricContractSequence","options","current","READ","SequenceModel","startWith","sequence","repo","read","NotFoundError","increment","count","incrementBy","next","toIncrementBy","Number","BigInt","String","Serial","instance","generate","UUID","seq","update","create","ConflictError","argz","undefined","UnsupportedError","typeName","createdByOnFabricCreateUpdate","data","user","getID","pkFabricOnCreate","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","alias","composedKey","createCompositeKey","putState","parseError","readState","delete","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","res","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","index","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Array","isArray","Statement","createAll","tableLabel","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","record","transient","revert","obj","ob","createPrefix","updatePrefix","records","updateAllPrefix","reason","filter","a","clear","message","BadRequestError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","COLUMN","extend","FabricProperty","ValidationKeys","DATE","Property","chain","constr","prototype","getPrototypeOf","FabricObject","setCurrent","DeterministicSerializer","Date","FabricCrudContract","Contract","initialized","forModel","listBy","order","paginateBy","size","findOneBy","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","orderBy","OrderDirection","ASC","init","getName","healthcheck","bind","Ctx","overrides","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","cond","__decorate","Transaction","OverflowError","BalanceError","AllowanceError","NotInitializedError","add","b","c","sub","ERC20Token","BaseModel","column","required","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","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/logging.ts","../src/contracts/FabricContractSequence.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","_overrides","Object","assign","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","createAllPrefix","models","contextArgs","class","context","logger","for","ignoreValidate","length","opts","Model","sequenceFor","info","ids","type","sequenceName","Sequence","range","map","m","i","pk","InternalError","Promise","all","async","generated","enforceDBDecorators","ON","ignoredProps","errors","resolve","hasErrors","errorMessages","reduceErrorsToPrint","ValidationError","paginateBy","key","order","size","PreparedStatementKeys","PAGE_BY","ctxArgs","verbose","tableName","override","select","orderBy","paginate","statement","statements","QueryError","PersistenceKeys","STATEMENT","e","BaseError","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","fromSelector","Metadata","DBKeys","ID","selectSelector","r","processRecord","build","selectors","CouchDBKeys","TABLE","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","keys","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","ContractLogger","MiniLogger","conf","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","error","silly","call","createLog","Logging","setFactory","object","FabricContractSequence","options","current","READ","SequenceModel","startWith","sequence","repo","read","NotFoundError","increment","count","incrementBy","next","toIncrementBy","Number","BigInt","String","Serial","instance","generate","UUID","seq","update","create","ConflictError","argz","undefined","UnsupportedError","typeName","createdByOnFabricCreateUpdate","data","user","getID","pkFabricOnCreate","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","alias","composedKey","createCompositeKey","putState","parseError","readState","delete","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","res","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","index","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","Array","isArray","Statement","createAll","tableLabel","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","record","transient","revert","obj","ob","createPrefix","updatePrefix","records","updateAllPrefix","reason","filter","a","clear","message","BadRequestError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","COLUMN","extend","FabricProperty","ValidationKeys","DATE","Property","chain","constr","prototype","getPrototypeOf","FabricObject","setCurrent","DeterministicSerializer","Date","FabricCrudContract","Contract","initialized","forModel","listBy","findOneBy","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","OrderDirection","ASC","init","getName","healthcheck","bind","Ctx","overrides","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","cond","__decorate","Transaction","OverflowError","BalanceError","AllowanceError","NotInitializedError","add","b","c","sub","ERC20Token","BaseModel","column","required","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","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","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -16,6 +16,7 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
16
16
  const indexes_1 = require("./client/indexes/index.cjs");
17
17
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
18
18
  const cli_utils_1 = require("./cli-utils.cjs");
19
+ require("./shared/overrides/index.cjs");
19
20
  const logger = logging_1.Logging.for("fabric");
20
21
  const compileCommand = new commander_1.Command()
21
22
  .name("compile-contract")
@@ -136,6 +137,39 @@ const extractIndexes = new commander_1.Command()
136
137
  log.debug(`Indexes: ${JSON.stringify(result)}`);
137
138
  (0, indexes_1.writeIndexes)(Object.values(result), outDir);
138
139
  });
140
+ const extractCollections = new commander_1.Command()
141
+ .command("extract-collections")
142
+ .option("--file [String]", "the model file")
143
+ .option("--folder [String]", "the model folder")
144
+ .option("--outDir <String>", "the outdir. should match your contract folder")
145
+ .description("Creates a the JSON index files to be submitted to along with the contract")
146
+ .action(async (options) => {
147
+ const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(process.cwd(), "package.json"), "utf-8"));
148
+ const version = pkg.version;
149
+ const log = logger.for("extract-indexes");
150
+ log.debug(`running with options: ${JSON.stringify(options)} for ${pkg.name} version ${version}`);
151
+ // eslint-disable-next-line prefer-const
152
+ let { file, folder, outDir } = options;
153
+ const models = [];
154
+ if (file) {
155
+ models.push(...(0, indexes_1.readModelFile)(file));
156
+ }
157
+ if (folder) {
158
+ log.info(`Loading models from ${folder}...`);
159
+ models.push(...(await (0, indexes_1.readModelFolders)(folder)));
160
+ }
161
+ const result = {};
162
+ if (!file && !folder)
163
+ throw new db_decorators_1.InternalError(`Must pass a file or a folder`);
164
+ const privateOrShared = models.filter((m) => decorator_validation_1.Model.isPrivate(m) || decorator_validation_1.Model.isShared(m));
165
+ for (const m of privateOrShared) {
166
+ log.verbose(`Extracting collections for table ${decorator_validation_1.Model.tableName(m)}`);
167
+ (0, indexes_1.generateModelIndexes)(m, result);
168
+ }
169
+ log.verbose(`Found ${Object.keys(result).length} indexes to create`);
170
+ log.debug(`Indexes: ${JSON.stringify(result)}`);
171
+ (0, indexes_1.writeIndexes)(Object.values(result), outDir);
172
+ });
139
173
  const ensureInfra = new commander_1.Command()
140
174
  .name("await-infra")
141
175
  .description("waits for the infrastructure to be up and running")
@@ -196,6 +230,20 @@ const deployContract = new commander_1.Command()
196
230
  }
197
231
  (0, cli_utils_1.commitChaincode)(name, sequence, version);
198
232
  });
233
+ const getCryptoMaterial = new commander_1.Command()
234
+ .name("get-crypto-material")
235
+ .description("copies the crypto material to the selected folder")
236
+ .option("--folder <String>", "output folder", "docker/docker-data")
237
+ .action(async (options) => {
238
+ const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(process.cwd(), "package.json"), "utf-8"));
239
+ const version = pkg.version;
240
+ const log = logger.for("get-crypto-material");
241
+ log.debug(`running with options: ${JSON.stringify(options)} for ${pkg.name} version ${version}`);
242
+ const { folder } = options;
243
+ (0, child_process_1.execSync)(`docker cp org-a:/weaver/client/. ${folder}`, {
244
+ cwd: process.cwd(),
245
+ });
246
+ });
199
247
  const fabricCmd = new commander_1.Command()
200
248
  .name("fabric")
201
249
  .description("exposes several commands to help manage the fabric infrastructure");
@@ -203,6 +251,7 @@ fabricCmd.addCommand(compileCommand);
203
251
  fabricCmd.addCommand(extractIndexes);
204
252
  fabricCmd.addCommand(ensureInfra);
205
253
  fabricCmd.addCommand(deployContract);
254
+ fabricCmd.addCommand(getCryptoMaterial);
206
255
  function fabric() {
207
256
  return fabricCmd;
208
257
  }
@@ -1,2 +1,3 @@
1
1
  import { Command } from "commander";
2
+ import "./shared/overrides";
2
3
  export default function fabric(): Command;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../src/cli-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../src/cli-module.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { Constructor } from "@decaf-ts/decoration";
4
4
  import { FabricClientAdapter } from "./FabricClientAdapter";
5
5
  import { MangoQuery } from "@decaf-ts/for-couchdb";
6
6
  export declare class FabricClientPaginator<M extends Model> extends Paginator<M, M, MangoQuery> {
7
+ bookmark?: string;
7
8
  constructor(adapter: FabricClientAdapter, query: MangoQuery | PreparedStatement<any>, size: number, clazz: Constructor<M>);
8
9
  protected prepare(rawStatement: MangoQuery): MangoQuery;
9
10
  page(page?: number, ...args: MaybeContextualArg<any>): Promise<M[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"FabricClientPaginator.js","sourceRoot":"","sources":["../../src/client/FabricClientPaginator.ts"],"names":[],"mappings":";;;AAAA,yCAKwB;AAMxB,MAAa,qBAAuC,SAAQ,gBAI3D;IACC,YACE,OAA4B,EAC5B,KAA0C,EAC1C,IAAY,EACZ,KAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,6DAA6D;IACnD,OAAO,CAAC,YAAwB;QACxC,MAAM,IAAI,uBAAgB,CACxB,qGAAqG,CACtG,CAAC;IACJ,CAAC;IAEQ,IAAI,CACX,OAAe,CAAC,EAChB,GAAG,IAA6B;QAEhC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,6CAA6C;IACjF,CAAC;CACF;AA3BD,sDA2BC"}
1
+ {"version":3,"file":"FabricClientPaginator.js","sourceRoot":"","sources":["../../src/client/FabricClientPaginator.ts"],"names":[],"mappings":";;;AAAA,yCAKwB;AAMxB,MAAa,qBAAuC,SAAQ,gBAI3D;IAGC,YACE,OAA4B,EAC5B,KAA0C,EAC1C,IAAY,EACZ,KAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,6DAA6D;IACnD,OAAO,CAAC,YAAwB;QACxC,MAAM,IAAI,uBAAgB,CACxB,qGAAqG,CACtG,CAAC;IACJ,CAAC;IAEQ,IAAI,CACX,OAAe,CAAC,EAChB,GAAG,IAA6B;QAEhC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,6CAA6C;IACjF,CAAC;CACF;AA7BD,sDA6BC"}