@decaf-ts/for-fabric 0.1.39 → 0.1.40

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 (53) hide show
  1. package/dist/for-fabric.cjs +1 -1
  2. package/dist/for-fabric.cjs.map +1 -1
  3. package/dist/for-fabric.js +1 -1
  4. package/dist/for-fabric.js.map +1 -1
  5. package/lib/client/FabricClientRepository.cjs +11 -13
  6. package/lib/client/FabricClientRepository.d.ts +2 -5
  7. package/lib/client/FabricClientRepository.js.map +1 -1
  8. package/lib/client/FabricClientStatement.js.map +1 -1
  9. package/lib/contracts/ContractAdapter.cjs +4 -0
  10. package/lib/contracts/ContractAdapter.d.ts +2 -2
  11. package/lib/contracts/ContractAdapter.js.map +1 -1
  12. package/lib/contracts/FabricContractPaginator.cjs +153 -0
  13. package/lib/contracts/FabricContractPaginator.d.ts +105 -0
  14. package/lib/contracts/FabricContractPaginator.js.map +1 -0
  15. package/lib/contracts/FabricContractRepository.cjs +12 -11
  16. package/lib/contracts/FabricContractRepository.d.ts +2 -5
  17. package/lib/contracts/FabricContractRepository.js.map +1 -1
  18. package/lib/contracts/crud/crud-contract.cjs +6 -3
  19. package/lib/contracts/crud/crud-contract.d.ts +2 -2
  20. package/lib/contracts/crud/crud-contract.js.map +1 -1
  21. package/lib/contracts/crud/serialized-crud-contract.cjs +11 -4
  22. package/lib/contracts/crud/serialized-crud-contract.d.ts +3 -1
  23. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
  24. package/lib/contracts/index.cjs +1 -0
  25. package/lib/contracts/index.d.ts +1 -0
  26. package/lib/contracts/index.js.map +1 -1
  27. package/lib/esm/client/FabricClientRepository.d.ts +2 -5
  28. package/lib/esm/client/FabricClientRepository.js +12 -14
  29. package/lib/esm/client/FabricClientRepository.js.map +1 -1
  30. package/lib/esm/client/FabricClientStatement.js.map +1 -1
  31. package/lib/esm/contracts/ContractAdapter.d.ts +2 -2
  32. package/lib/esm/contracts/ContractAdapter.js +5 -1
  33. package/lib/esm/contracts/ContractAdapter.js.map +1 -1
  34. package/lib/esm/contracts/FabricContractPaginator.d.ts +105 -0
  35. package/lib/esm/contracts/FabricContractPaginator.js +149 -0
  36. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  37. package/lib/esm/contracts/FabricContractRepository.d.ts +2 -5
  38. package/lib/esm/contracts/FabricContractRepository.js +12 -11
  39. package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
  40. package/lib/esm/contracts/crud/crud-contract.d.ts +2 -2
  41. package/lib/esm/contracts/crud/crud-contract.js +6 -3
  42. package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
  43. package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +3 -1
  44. package/lib/esm/contracts/crud/serialized-crud-contract.js +11 -4
  45. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
  46. package/lib/esm/contracts/index.d.ts +1 -0
  47. package/lib/esm/contracts/index.js +1 -0
  48. package/lib/esm/contracts/index.js.map +1 -1
  49. package/lib/esm/version.d.ts +1 -1
  50. package/lib/esm/version.js +1 -1
  51. package/lib/version.cjs +1 -1
  52. package/lib/version.d.ts +1 -1
  53. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as i,CouchDBOperator as r,CouchDBAdapter as n}from"@decaf-ts/for-couchdb";import{Model as s,JSONSerializer as a,ModelKeys as o,ValidationKeys as c,required as l,model as u}from"@decaf-ts/decorator-validation";import{Context as p,ObserverHandler as g,Adapter as d,Repository as h,QueryError as y,PreparedStatementKeys as w,PersistenceKeys as f,Condition as m,Sequence as x,SequenceModel as b,UUID as S,Serial as A,UnsupportedError as v,PagingError as C,MigrationError as k,ObserverError as N,AuthorizationError as O,ForbiddenError as R,ConnectionError as $,OrderDirection as E,pk as P,column as z,table as T,BaseModel as B}from"@decaf-ts/core";import{OperationKeys as D,BulkCrudOperationKeys as I,InternalError as F,enforceDBDecorators as j,reduceErrorsToPrint as J,ValidationError as q,BaseError as L,DBKeys as _,NotFoundError as U,ConflictError as M,SerializationError as H,BadRequestError as Q,onCreate as V,onCreateUpdate as K}from"@decaf-ts/db-decorators";import{Property as Y,Object as G,Contract as W,Context as X,Transaction as Z}from"fabric-contract-api";import{Metadata as tt,Decoration as et,propMetadata as it}from"@decaf-ts/decoration";import{Logging as rt,MiniLogger as nt,NumericLogLevels as st,LogLevel as at}from"@decaf-ts/logging";import{__decorate as ot,__metadata as ct}from"tslib";class lt extends p{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 ut extends g{constructor(t=[D.CREATE,D.UPDATE,D.DELETE,I.CREATE_ALL,I.UPDATE_ALL,I.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,i,...r){const{log:n,ctx:s}=d.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 pt extends h{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 p.args(D.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 F("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 j(this,i.context,t,D.CREATE,D.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={page:1},...n){"number"==typeof r&&(r={page:r});let{page:a,bookmark:o}=r;if(!a&&!o)throw new y("PaginateBy needs a page or a bookmark");const c=await p.args(w.PAGE_BY,this.class,n,this.adapter,this._overrides||{}),{log:l,ctxArgs:u}=this.logCtx(c.args,this.paginateBy);let g;if(l.verbose(`paginating ${s.tableName(this.class)} with page size ${i}`),o)g=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().where(this.attr(s.pk(this.class)).gt(o)).orderBy([t,e]).paginate(i,...u),a=1;else{if(!a)throw new y("PaginateBy needs a page or a bookmark");g=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([t,e]).paginate(i,...u)}const d=await g.page(a);return g.serialize(d)}async statement(t,...e){if(!h.statements(this,t))throw new y("Invalid prepared statement requested "+t);const i=await p.args(f.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);let s;r.verbose(`Executing prepared statement ${t} with args ${n}`);try{s=await this[t](...n)}catch(e){if(e instanceof L)throw e;throw new F(`Failed to execute prepared statement ${t} with args ${n}: ${e}`)}return s}ObserverHandler(){return new ut}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class gt 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=tt.get(this.fromSelector,tt.key(_.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(m.and(this.whereCondition,m.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 dt,ht;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by",t.TRANSACTION_ID="transaction-id"})(dt||(dt={})),(t=>{t.X509="X.509"})(ht||(ht={}));const yt="hlf-fabric";class wt extends a{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t,e=!0){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t,e)))}preSerialize(t,e=!0){const i=Object.assign({},t);let r;try{r=tt.modelName(t.constructor)}catch(t){r=void 0}function n(t){return"object"!=typeof t?t:Array.isArray(t)?t.map(n):this.preSerialize(t)}return e&&(i[o.ANCHOR]=r||t.constructor.name),s.relations(t).forEach(t=>{i[t]=n.call(this,i[t])}),i}}class ft extends nt{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new nt(t,e)}log(t,e,i){if(st[this.config("level")]<st[t])return;let r;switch(t){case at.info:r=this.logger.info;break;case at.verbose:r=this.logger.verbose;break;case at.debug:r=this.logger.debug;break;case at.error:r=this.logger.error;break;case at.silly:r=this.logger.silly;break;default:throw new F("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}rt.setFactory((t,e,i)=>new ft(t||ft.name,e||{},i));class mt extends x{constructor(t,e){super(t,e)}async current(...t){const e=(await p.args(D.READ,b,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 U){if(void 0===r)throw new F("Starting value is not defined for a non existing sequence");try{return this.parse(r)}catch(t){throw new F(`Failed to parse initial value for sequence ${r}: ${t}`)}}throw new F(`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 F("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=A.instance.generate(t);break;case"uuid":a=S.instance.generate(t);break;default:throw new F("Should never happen")}let c;try{c=await this.repo.update(new b({id:s,current:a}),i)}catch(n){if(!(n instanceof U))throw n;try{c=await this.repo.create(new b({id:s,current:a}),i)}catch(n){if(!(n instanceof M)||"uuid"!==r)throw n;return this.increment(t,e,i)}}return c.current}async next(...t){const e=await p.args(D.UPDATE,b,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 p.args(D.UPDATE,b,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 F("Miscalculation of range");return c}}async function xt(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 bt(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 F(`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 St extends n{getClient(){throw new v("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new wt}repository(){return pt}async Sequence(t){return new mt(t,this)}constructor(t,e){super(t,yt,e),this.Context=lt}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 F("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(St.serializer.serialize(e,!1))}catch(e){throw new H(`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 U(`Record with id ${t}${a?` in ${a} collection`:""} not found`);n.silly(`state retrieved from${a?` ${a} collection`:""} under id ${t}`);try{i=St.serializer.deserialize(s.toString())}catch(t){throw new H("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 St.textDecoder.decode(t)}async flags(t,e,i,r,...n){const s={stub:r.stub,segregated:!1};return Object.assign(s,r instanceof lt?{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()}:{identity:r.clientIdentity,logger:new ft(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 gt(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new F("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 F("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 F(`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 F(`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 F("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 F("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 St.parseError(e||t)}logCtx(t,e){return St.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new F("No context provided");const i=t.pop();if(!(i instanceof p))throw new F("No context provided");if(t.filter(t=>t instanceof p).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(U.name)?new U(t):e.includes(M.name)?new M(t):e.includes(Q.name)?new Q(t):e.includes(y.name)?new y(t):e.includes(C.name)?new C(t):e.includes(v.name)?new v(t):e.includes(k.name)?new k(t):e.includes(N.name)?new N(t):e.includes(O.name)?new O(t):e.includes(R.name)?new R(t):e.includes($.name)?new $(t):e.includes(H.name)?new H(t):new F(t)}static decoration(){super.decoration(),et.flavouredAs(yt).for(f.CREATED_BY).define(V(xt),it(f.CREATED_BY,{})).apply(),et.flavouredAs(yt).for(f.UPDATED_BY).define(K(xt),it(f.UPDATED_BY,{})).apply(),et.flavouredAs(yt).for(f.COLUMN).extend(Y()).apply(),et.flavouredAs(yt).for(c.DATE).extend(()=>(t,e)=>{Y(e,"string:date")(t,e)}),et.flavouredAs(yt).for(f.TABLE).extend(t=>{const e=[];let i="function"==typeof t?tt.constr(t):tt.constr(t.constructor);for(;i&&i!==Object&&i.prototype;)e.push(i),i=Object.getPrototypeOf(i);for(;e.length>0;){const t=e.pop();G()(t)}return G()(t)}).apply()}}St.decoration(),d.setCurrent(yt);class At extends a{constructor(){super()}preSerialize(t){const e=Object.assign({},t);let i;try{i=tt.modelName(t.constructor)}catch(t){i=void 0}e[o.ANCHOR]=i||t.constructor.name;const r=function t(e){const i=this;return"object"!=typeof e?e:Array.isArray(e)?e.map(e=>t.call(i,e)):this.preSerialize.call(this,e)}.bind(this);return s.relations(t).forEach(t=>{e[t]=r(e[t])}),e}deserialize(t){const e=JSON.parse(t),i=e[o.ANCHOR];if(!i)throw Error("Could not find class reference in serialized model");return s.build(e,i)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}G()(Date);class vt extends W{static{this.adapter=new St}static{this.serializer=new At}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=h.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=E.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 F("No context provided");const i=t.pop();if(i instanceof lt)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof X))throw new F("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 D.CREATE:case D.READ:case D.UPDATE:case D.DELETE:case I.CREATE_ALL:case I.READ_ALL:case I.UPDATE_ALL:case I.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 Ct 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);i.info("Model deserialized: "+JSON.stringify(n));const s=await super.create(r,n);return this.serialize(s)}async read(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.read);return i.info("Reading id: "+e),this.serialize(await super.read(r,e))}async update(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.update);return i.info("Updating model: "+e),this.serialize(await super.update(r,e))}async delete(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.delete);return i.info("Deleting id: "+e),this.serialize(await super.delete(r,e))}async deleteAll(t,e){const i=JSON.parse(e),{log:r,ctx: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 H("Invalid args: "+t)}if(!Array.isArray(i))throw new H(`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=m.from(JSON.parse(e))}catch(t){throw new H("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));i.info(`Adding ${r.length} entries to the table`);const n=await super.createAll(t,r);return JSON.stringify(n.map(t=>this.serialize(t)))}}ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"create",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"read",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"update",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"delete",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"deleteAll",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"readAll",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"updateAll",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String,String]),ct("design:returntype",Promise)],Ct.prototype,"statement",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String,String]),ct("design:returntype",Promise)],Ct.prototype,"listBy",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String,String,Number]),ct("design:returntype",Promise)],Ct.prototype,"paginateBy",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String,String,String]),ct("design:returntype",Promise)],Ct.prototype,"findOneBy",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],Ct.prototype,"init",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],Ct.prototype,"healthcheck",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],Ct.prototype,"createAll",null);class kt extends F{constructor(t){super(t,kt.name)}}class Nt extends F{constructor(t){super(t,Nt.name)}}class Ot extends F{constructor(t){super(t,Ot.name)}}class Rt extends L{constructor(t){super(Rt.name,t,409)}}function $t(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new kt(`Addition overflow: ${t} + ${e}`);return i}function Et(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new kt(`Subtraction overflow: ${t} - ${e}`);return i}let Pt=class extends B{constructor(t){super(t)}};ot([P({type:"String"}),ct("design:type",String)],Pt.prototype,"name",void 0),ot([z(),l(),ct("design:type",String)],Pt.prototype,"owner",void 0),ot([z(),l(),ct("design:type",String)],Pt.prototype,"symbol",void 0),ot([z(),l(),ct("design:type",Number)],Pt.prototype,"decimals",void 0),Pt=ot([T("erc20_tokens"),u(),ct("design:paramtypes",[Object])],Pt);let zt=class extends B{constructor(t){super(t)}};ot([P({type:"String"}),ct("design:type",String)],zt.prototype,"id",void 0),ot([z(),l(),ct("design:type",String)],zt.prototype,"token",void 0),ot([z(),l(),ct("design:type",Number)],zt.prototype,"balance",void 0),ot([z(),ct("design:type",String)],zt.prototype,"captive",void 0),zt=ot([T("erc20_wallets"),u(),ct("design:paramtypes",[Object])],zt);let Tt=class extends B{constructor(t){super(t)}};function Bt(){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 U("No tokens avaialble");if(a.length>1)throw new U("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 Dt;ot([P({type:"String"}),z(),l(),ct("design:type",String)],Tt.prototype,"owner",void 0),ot([z(),l(),ct("design:type",String)],Tt.prototype,"spender",void 0),ot([z(),l(),ct("design:type",Number)],Tt.prototype,"value",void 0),Tt=ot([T("erc20_allowances"),u(),ct("design:paramtypes",[Object])],Tt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Dt||(Dt={}));class It extends vt{constructor(t){super(t,zt),It.adapter=It.adapter||new St,this.walletRepository=pt.forModel(zt,It.adapter.alias),this.tokenRepository=pt.forModel(Pt,It.adapter.alias),this.allowanceRepository=pt.forModel(Tt,It.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 U(`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 F("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 Nt("The spender does not have enough allowance to spend.");const c=Et(o,r),l=Object.assign({},a,{value:c});if(await this.allowanceRepository.update(l,n),!await this._transfer(e,i,r,n))throw new F("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 Nt("transfer amount cannot be negative");const s=await this.walletRepository.read(t,r),a=s.balance;if(i>a)throw new Nt(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof L))throw new F(t);if(404!==t.code)throw new F(t.message);o=new zt({id:e,balance:0,token:await this.TokenName(r)}),c=!0}const l=o.balance,u=Et(a,i),p=$t(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(Pt,Dt.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 Nt(`client account ${s} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...n)):(a=new Tt({owner:s,spender:e,value:i}),await this.allowanceRepository.create(a,...n));const o={owner:s,spender:e,value:i};return this.repo.refresh(Pt,Dt.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=m.and(m.attribute("owner").eq(t),m.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 Rt("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=$t(n.balance,e),s=Object.assign({},n,{balance:t});await this.walletRepository.update(s,i)}catch(n){if(!(n instanceof L))throw new F(n);if(404!==n.code)throw new F(n.message);{const n=new zt({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(Pt,Dt.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 Nt("Minter has insufficient funds.");const o=Et(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(Pt,Dt.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 Nt(e+" has insufficient funds.");const o=Et(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(Pt,Dt.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 Nt(`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()}}ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],It.prototype,"TokenName",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],It.prototype,"Symbol",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],It.prototype,"Decimals",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],It.prototype,"TotalSupply",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String]),ct("design:returntype",Promise)],It.prototype,"BalanceOf",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String,Number]),ct("design:returntype",Promise)],It.prototype,"Transfer",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String,String,Number]),ct("design:returntype",Promise)],It.prototype,"TransferFrom",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,String,Number]),ct("design:returntype",Promise)],It.prototype,"Approve",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X,String,String]),ct("design:returntype",Promise)],It.prototype,"Allowance",null),ot([Z(),ct("design:type",Function),ct("design:paramtypes",[X,Pt]),ct("design:returntype",Promise)],It.prototype,"Initialize",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],It.prototype,"CheckInitialized",null),ot([Bt(),Z(),ct("design:type",Function),ct("design:paramtypes",[X,Number]),ct("design:returntype",Promise)],It.prototype,"Mint",null),ot([Bt(),Z(),ct("design:type",Function),ct("design:paramtypes",[X,Number]),ct("design:returntype",Promise)],It.prototype,"Burn",null),ot([Bt(),Z(),ct("design:type",Function),ct("design:paramtypes",[X,String,Number]),ct("design:returntype",Promise)],It.prototype,"BurnFrom",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],It.prototype,"ClientAccountBalance",null),ot([Z(!1),ct("design:type",Function),ct("design:paramtypes",[X]),ct("design:returntype",Promise)],It.prototype,"ClientAccountID",null);const Ft=[It],jt="##VERSION##",Jt="##PACKAGE##";tt.registerLibrary(Jt,jt);export{ft as ContractLogger,St as FabricContractAdapter,lt as FabricContractContext,pt as FabricContractRepository,ut as FabricContractRepositoryObservableHandler,mt as FabricContractSequence,vt as FabricCrudContract,gt as FabricStatement,Jt as PACKAGE_NAME,Ct as SerializedCrudContract,jt as VERSION,Ft as contracts,xt as createdByOnFabricCreateUpdate,bt as pkFabricOnCreate};
1
+ import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as i,CouchDBOperator as r,CouchDBPaginator as s,CouchDBAdapter as n}from"@decaf-ts/for-couchdb";import{Model as a,JSONSerializer as o,ModelKeys as c,ValidationKeys as l,required as u,model as p}from"@decaf-ts/decorator-validation";import{Context as h,ObserverHandler as g,Adapter as d,Repository as y,QueryError as w,PreparedStatementKeys as f,PersistenceKeys as m,Condition as x,Sequence as b,SequenceModel as S,UUID as A,Serial as v,UnsupportedError as C,PagingError as k,OrderDirection as O,MigrationError as N,ObserverError as R,AuthorizationError as z,ForbiddenError as P,ConnectionError as $,pk as E,column as T,table as B,BaseModel as D}from"@decaf-ts/core";import{OperationKeys as I,BulkCrudOperationKeys as F,InternalError as _,enforceDBDecorators as j,reduceErrorsToPrint as J,ValidationError as q,BaseError as L,DBKeys as M,NotFoundError as U,ConflictError as H,SerializationError as Q,BadRequestError as V,onCreate as K,onCreateUpdate as Y}from"@decaf-ts/db-decorators";import{Property as G,Object as W,Contract as X,Context as Z,Transaction as tt}from"fabric-contract-api";import{Metadata as et,Decoration as it,propMetadata as rt}from"@decaf-ts/decoration";import{Logging as st,MiniLogger as nt,NumericLogLevels as at,LogLevel as ot}from"@decaf-ts/logging";import{__decorate as ct,__metadata as lt}from"tslib";class ut extends h{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 pt extends g{constructor(t=[I.CREATE,I.UPDATE,I.DELETE,F.CREATE_ALL,F.UPDATE_ALL,F.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,i,...r){const{log:s,ctx:n}=d.logCtx(r,this.updateObservers),{stub:a}=n,[o,c]=r,l="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){s.debug(`Emitting ${e} event`);const t=((t,e,i)=>{const r=[t,e];return i&&r.push(i),r.join("_")})(l,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:i})))}else a.setEvent(e,Buffer.from(JSON.stringify(c)))}}class ht extends y{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 h.args(I.CREATE,this.class,e,this.adapter,this._overrides||{}),r=i.context.logger.for(this.createAllPrefix),s=i.context.get("ignoreHandlers"),n=i.context.get("ignoreValidation");if(!t.length)return[t,...i.args];const o=a.sequenceFor(t[0]);r.info("Sequence options: "+JSON.stringify(o));let c=[];if(o.type?(o.name||(o.name=a.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 _("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)),s||await j(this,i.context,t,I.CREATE,I.ON),t))),!n){const e=i.context.get("ignoredValidationProperties")||[],r=await Promise.all(t.map(t=>Promise.resolve(t.hasErrors(...e)))),s=J(r);if(s)throw new q(s)}return[t,...i.args]}async paginateBy(t,e,i={offset:1,limit:10},...r){let{offset:s,bookmark:n,limit:o}=i;if(!s&&!n)throw new w("PaginateBy needs a page or a bookmark");const c=await h.args(f.PAGE_BY,this.class,r,this.adapter,this._overrides||{}),{log:l,ctxArgs:u}=this.logCtx(c.args,this.paginateBy);let p;if(l.verbose(`paginating ${a.tableName(this.class)} with page size ${o}`),n)p=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().where(this.attr(a.pk(this.class)).gt(n)).orderBy([t,e]).paginate(o,...u),s=1;else{if(!s)throw new w("PaginateBy needs a page or a bookmark");p=await this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([t,e]).paginate(o,...u)}const g=await p.page(s,...u);return p.serialize(g)}async statement(t,...e){if(!y.statements(this,t))throw new w("Invalid prepared statement requested "+t);const i=await h.args(m.STATEMENT,this.class,e,this.adapter,this._overrides||{});i.context.logger&&i.context.logger.info(`Repo statement: ${t} + ${e}`);const{log:r,ctxArgs:s}=this.logCtx(i.args,this.statement);let n;r.verbose(`Executing prepared statement ${t} with args ${s}`);try{n=await this[t](...s)}catch(e){if(e instanceof L)throw e;throw new _(`Failed to execute prepared statement ${t} with args ${s}: ${e}`)}return n}ObserverHandler(){return new pt}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class gt extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:i}=this.logCtx(e,this.raw),r=await this.adapter.raw(t,!0,i),s=a.pk(this.fromSelector),n=et.get(this.fromSelector,et.key(M.ID,s))?.type;return this.selectSelector?r:r.map(t=>this.processRecord(t,s,n,i))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=a.tableName(this.fromSelector);const s={selector:t};if(this.selectSelector&&(s.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(x.and(this.whereCondition,x.attribute(e.TABLE).eq(s.selector[e.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(i).indexOf(r[0]))switch(r[0]){case i.AND:t[i.AND]=[...Object.values(t[i.AND]).reduce((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const s=r[0];return s===i.AND?t.push(...e[s]):t.push(e),t},[])],s.selector=t;break;case i.OR:{const e={};e[i.AND]=[t,...Object.entries(s.selector).map(([t,e])=>{const i={};return i[t]=e,i})],s.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach(([t,e])=>{s.selector[t],s.selector[t]=e})}if(this.orderBySelector){s.sort=s.sort||[],s.selector=s.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,s.sort.push(i),s.selector[t]||(s.selector[t]={},s.selector[t][r.BIGGER]=null)}return this.limitSelector&&(s.limit=this.limitSelector),this.offsetSelector&&(s.skip=this.offsetSelector),s}}var dt,yt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by",t.TRANSACTION_ID="transaction-id"})(dt||(dt={})),(t=>{t.X509="X.509"})(yt||(yt={}));const wt="hlf-fabric";class ft extends o{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t,e=!0){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t,e)))}preSerialize(t,e=!0){const i=Object.assign({},t);let r;try{r=et.modelName(t.constructor)}catch(t){r=void 0}function s(t){return"object"!=typeof t?t:Array.isArray(t)?t.map(s):this.preSerialize(t)}return e&&(i[c.ANCHOR]=r||t.constructor.name),a.relations(t).forEach(t=>{i[t]=s.call(this,i[t])}),i}}class mt extends nt{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new nt(t,e)}log(t,e,i){if(at[this.config("level")]<at[t])return;let r;switch(t){case ot.info:r=this.logger.info;break;case ot.verbose:r=this.logger.verbose;break;case ot.debug:r=this.logger.debug;break;case ot.error:r=this.logger.error;break;case ot.silly:r=this.logger.silly;break;default:throw new _("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}st.setFactory((t,e,i)=>new mt(t||mt.name,e||{},i));class xt extends b{constructor(t,e){super(t,e)}async current(...t){const e=(await h.args(I.READ,S,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 U){if(void 0===r)throw new _("Starting value is not defined for a non existing sequence");try{return this.parse(r)}catch(t){throw new _(`Failed to parse initial value for sequence ${r}: ${t}`)}}throw new _(`Failed to retrieve current value for sequence ${i}: ${t}`)}}async increment(t,e,i){const{type:r,incrementBy:s,name:n}=this.options;let a;const o=e||s;if(o%s!==0)throw new _("Value to increment does not consider the incrementBy setting: "+s);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=v.instance.generate(t);break;case"uuid":a=A.instance.generate(t);break;default:throw new _("Should never happen")}let c;try{c=await this.repo.update(new S({id:n,current:a}),i)}catch(s){if(!(s instanceof U))throw s;try{c=await this.repo.create(new S({id:n,current:a}),i)}catch(s){if(!(s instanceof H)||"uuid"!==r)throw s;return this.increment(t,e,i)}}return c.current}async next(...t){const e=await h.args(I.UPDATE,S,t,this.adapter),{context:i,args:r}=e,s=await this.current(...r);return this.increment(s,void 0,i)}async range(t,...e){const i=await h.args(I.UPDATE,S,e,this.adapter),{context:r,args:s}=i,n=await this.current(...s),a=this.parse(this.options.incrementBy),o=await this.increment(n,this.parse(t)*a,r),c=[];for(let e=1;t>=e;e++)c.push(n+a*this.parse(e));if("uuid"===this.options.type||"serial"===this.options.type)throw new C(`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 _("Miscalculation of range");return c}}class bt extends s{constructor(t,e,i,r){super(t,e,i,r)}prepare(t){const e=Object.assign({},t);return e.limit&&(this.limit=e.limit),e.limit=this.size,e}async page(t=1,...e){const{ctxArgs:i,ctx:r}=this.adapter.logCtx(e,this.page);if(this.isPreparedStatement())return this.pagePrepared(t,...i);const s=Object.assign({},this.statement);if(!this._recordCount||!this._totalPages){this._totalPages=this._recordCount=0;const t=await this.adapter.raw({...s,limit:void 0},!0,r)||[];if(this._recordCount=t.length,this._recordCount>0){const t=s?.limit||this.size;this._totalPages=Math.ceil(this._recordCount/t)}}if(this.validatePage(t),1!==t){if(!this._bookmark)throw new k("No bookmark. Did you start in the first page?");s.bookmark=this._bookmark}const n=await this.adapter.raw(s,!1,r);if(!this.clazz)throw new k("No statement target defined");const o=a.pk(this.clazz),c=et.get(this.clazz,et.key(M.ID,o))?.type,l=s.fields&&s.fields.length?n:n.map(t=>this.adapter.revert(t,this.clazz,b.parseValue(c,t[o]),void 0,r)),u=s.sort?.[0]||O.DSC;return this._bookmark=l[u===O.ASC?l.length-1:0][o],this._currentPage=t,l}}async function St(t,e,i,r){try{const e=t.get("identity");r[i]=e.getID()}catch(t){throw new C("No User found in context. Please provide a user in the context")}}async function At(t,e,i,r){if(!e.type||r[i])return;let s;e.name||(e.name=a.sequenceName(r,"pk"));try{s=await this.adapter.Sequence(e)}catch(t){throw new _(`Failed to instantiate Sequence ${e.name}: ${t}`)}const n=await s.next(t);Object.defineProperty(r,i,{enumerable:!0,writable:!1,configurable:!0,value:n})}class vt extends n{getClient(){throw new C("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new ft}repository(){return ht}Paginator(t,e,i){return new bt(this,t,e,i)}async Sequence(t){return new xt(t,this)}constructor(t,e){super(t,wt,e),this.Context=ut}for(t,...e){return super.for(t,...e)}async create(t,e,i,...r){const{ctx:s,log:n,stub:o}=this.logCtx(r,this.create);n.info("in ADAPTER create with args "+r);const c=a.tableName(t);try{n.info(`adding entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async read(t,e,...i){const{ctx:r,log:s,stub:n}=this.logCtx(i,this.read);s.info("in ADAPTER read with args "+i);const o=a.tableName(t);let c;try{const t=n.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:s,log:n,stub:o}=this.logCtx(r,this.update),c=a.tableName(t);try{n.verbose(`updating entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async delete(t,e,...i){const{ctx:r,log:s,ctxArgs:n,stub:o}=this.logCtx(i,this.delete),c=a.tableName(t);let l;try{const i=o.createCompositeKey(c,[e+""]);l=await this.read(t,e,...n),s.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,s)=>e.includes(r)?new Proxy(i[r],{async apply(e,i,s){switch(r){case"putState":{const[e,i,r]=s;return await e.putPrivateData(t,i.toString(),r),r}case"deleteState":{const[e,i]=s;return e.deletePrivateData(t,i)}case"readState":{const[e,i]=s;return e.getPrivateData(t,i)}case"queryResult":{const[e,i]=s;return e.getPrivateDataQueryResult(t,i)}case"queryResultPaginated":{const[e,i,r,n]=s,a=await e.getPrivateDataQueryResult(t,i),o=[];let c=0,l=!n,u=null;for(;;){const t=await a.next();if(t.value&&t.value.value.toString()){const e=t.value.key,i=t.value.value.toString("utf8");if(!l){e===n?.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 _("Unsupported method override "+r)}}}):Reflect.get(i,r,s)})}async putState(t,e,i){let r;const{stub:s,log:n}=this.logCtx([i],this.putState);try{r=Buffer.from(vt.serializer.serialize(e,!1))}catch(e){throw new Q(`Failed to serialize record with id ${t}: ${e}`)}const a=i.get("segregated");return a?await s.putPrivateData(a,t.toString(),r):await s.putState(t.toString(),r),n.silly(`state stored${a?` in ${a} collection`:""} under id ${t}`),e}async readState(t,e){let i;const{stub:r,log:s}=this.logCtx([e],this.readState);let n;const a=e.get("segregated");if(n=a?(await r.getPrivateData(a,t.toString())).toString():(await r.getState(t.toString())).toString(),!n)throw new U(`Record with id ${t}${a?` in ${a} collection`:""} not found`);s.silly(`state retrieved from${a?` ${a} collection`:""} under id ${t}`);try{i=vt.serializer.deserialize(n.toString())}catch(t){throw new Q("Failed to parse record: "+t)}return i}async queryResult(t,e,...i){const{ctx:r}=this.logCtx(i,this.readState);let s;const n=r.get("segregated");return s=n?await t.getPrivateDataQueryResult(n,JSON.stringify(e)):await t.getQueryResult(JSON.stringify(e)),s}async queryResultPaginated(t,e,i=250,r,...s){const{ctx:n}=this.logCtx(s,this.readState);let a;const o=n.get("segregated");return o?(e.selector={...e.selector,_id:r?{$gt:r.toString()}:{$gte:""}},a={iterator:await t.getPrivateDataQueryResult(o,JSON.stringify(e)),metadata:{fetchedRecordsCount:i,bookmark:""}}):a=await t.getQueryResultWithPagination(JSON.stringify(e),i,r?.toString()),a}mergeModels(t){const e=t=>Object.entries(t).reduce((t,[e,i])=>(void 0!==i&&(t[e]=i),t),{});let i=t.pop();for(const r of t)i=Object.assign({},e(i),e(r));return i}decode(t){return vt.textDecoder.decode(t)}async flags(t,e,i,r,...s){const n={stub:r.stub,segregated:!1};return Object.assign(n,r instanceof ut?{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()}:{identity:r.clientIdentity,logger:new mt(this,void 0,r),correlationId:r.stub.getTxID()}),await super.flags(t,e,n,...s)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,i=!1){const r=[];let s=await e.next();for(;!s.done;){if(s.value&&s.value.value.toString()){let e={};if(t.debug(s.value.value.toString("utf8")),i){e.TxId=s.value.txId,e.Timestamp=s.value.timestamp;try{e.Value=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e.Value=s.value.value.toString("utf8")}}else try{e=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e=s.value.value.toString("utf8")}r.push(e)}s=await e.next()}return t.debug(`Closing iterator after ${r.length} results`),e.close(),r}async raw(t,e=!0,...i){const{log:r,stub:s,ctx:n}=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(s,t,o||250,a?.toString(),n)).iterator):(r.debug("Retrieving iterator"),c=await this.queryResult(s,t,n)),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 gt(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new _("Ids and models must have the same length");const{log:s,ctxArgs:n}=this.logCtx(r,this.createAll),o=a.tableName(t);return s.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map((e,r)=>this.create(t,e,i[r],...n)))}async updateAll(t,e,i,...r){if(e.length!==i.length)throw new _("Ids and models must have the same length");const{log:s,ctxArgs:n}=this.logCtx(r,this.updateAll),o=a.tableName(t);return s.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map((e,r)=>this.update(t,e,i[r],...n)))}prepare(t,...e){const{log:i}=this.logCtx(e,this.prepare),r=a.tableName(t.constructor),s=a.pk(t.constructor),n=a.segregate(t),o=Object.entries(n.model).reduce((e,[i,r])=>{if(void 0===r)return e;const s=a.columnName(t,i);if(this.isReserved(s))throw new _(`Property name ${s} is reserved`);return e[s]=r,e},{});return i.silly(`Preparing record for ${r} table with pk ${t[s]}`),{record:o,id:t[s],transient:n.transient}}revert(t,e,i,r,...s){const{log:n}=this.logCtx(s,this.revert),o={};o[a.pk(e)]=i;const c="string"==typeof e?a.build(o,e):new e(o);n.silly(`Rebuilding model ${c.constructor.name} id ${i}`);const l=Object.keys(c).reduce((e,i)=>(e[i]=t[a.columnName(e,i)],e),c);return r&&(n.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 _(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);l[t]=e})),l}createPrefix(t,i,r,...s){const{ctxArgs:n}=this.logCtx(s,this.createPrefix),o={};return o[e.TABLE]=a.tableName(t),Object.assign(o,r),[t,i,o,...n]}updatePrefix(t,i,r,...s){const{ctxArgs:n}=this.logCtx(s,this.updatePrefix),o={};return o[e.TABLE]=a.tableName(t),Object.assign(o,r),[t,i,o,...n]}createAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new _("Ids and models must have the same length");const n=s.pop(),o=i.map((i,s)=>{const n={};return n[e.TABLE]=a.tableName(t),Object.assign(n,r[s]),n});return[t,i,o,n]}updateAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new _("Ids and models must have the same length");const n=s.pop(),o=i.map((i,s)=>{const n={};return n[e.TABLE]=a.tableName(t),Object.assign(n,r[s]),n});return[t,i,o,n]}parseError(t,e){return vt.parseError(e||t)}logCtx(t,e){return vt.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new _("No context provided");const i=t.pop();if(!(i instanceof h))throw new _("No context provided");if(t.filter(t=>t instanceof h).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(U.name)?new U(t):e.includes(H.name)?new H(t):e.includes(V.name)?new V(t):e.includes(w.name)?new w(t):e.includes(k.name)?new k(t):e.includes(C.name)?new C(t):e.includes(N.name)?new N(t):e.includes(R.name)?new R(t):e.includes(z.name)?new z(t):e.includes(P.name)?new P(t):e.includes($.name)?new $(t):e.includes(Q.name)?new Q(t):new _(t)}static decoration(){super.decoration(),it.flavouredAs(wt).for(m.CREATED_BY).define(K(St),rt(m.CREATED_BY,{})).apply(),it.flavouredAs(wt).for(m.UPDATED_BY).define(Y(St),rt(m.UPDATED_BY,{})).apply(),it.flavouredAs(wt).for(m.COLUMN).extend(G()).apply(),it.flavouredAs(wt).for(l.DATE).extend(()=>(t,e)=>{G(e,"string:date")(t,e)}),it.flavouredAs(wt).for(m.TABLE).extend(t=>{const e=[];let i="function"==typeof t?et.constr(t):et.constr(t.constructor);for(;i&&i!==Object&&i.prototype;)e.push(i),i=Object.getPrototypeOf(i);for(;e.length>0;){const t=e.pop();W()(t)}return W()(t)}).apply()}}vt.decoration(),d.setCurrent(wt);class Ct extends o{constructor(){super()}preSerialize(t){const e=Object.assign({},t);let i;try{i=et.modelName(t.constructor)}catch(t){i=void 0}e[c.ANCHOR]=i||t.constructor.name;const r=function t(e){const i=this;return"object"!=typeof e?e:Array.isArray(e)?e.map(e=>t.call(i,e)):this.preSerialize.call(this,e)}.bind(this);return a.relations(t).forEach(t=>{e[t]=r(e[t])}),e}deserialize(t){const e=JSON.parse(t),i=e[c.ANCHOR];if(!i)throw Error("Could not find class reference in serialized model");return a.build(e,i)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}W()(Date);class kt extends X{static{this.adapter=new vt}static{this.serializer=new Ct}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=y.forModel(e)}async listBy(t,e,i,...r){const{ctxArgs:s,log:n}=await this.logCtx([...r,t],this.listBy);return n.info(`Running listBy key ${e}, order ${i} and args ${s}`),this.repo.listBy(e,i,...s)}async paginateBy(t,e,i,r={offset:1,limit:10},...s){const{ctxArgs:n,log:a}=await this.logCtx([...s,t],this.paginateBy);return a.info(`Running paginateBy key ${e}, order ${i} with size ${r.limit} and args ${n}`),this.repo.paginateBy(e,i,r,...n)}async findOneBy(t,e,i,...r){const{ctxArgs:s,log:n}=await this.logCtx([...r,t],this.findOneBy);return n.info(`Running findOneBy key ${e}, value: ${i} with args ${s}`),this.repo.findOneBy(e,i,...s)}async statement(t,e,...i){const{ctxArgs:r,log:s}=await this.logCtx([...i,t],this.statement);return s.info(`Running statement ${e} with args ${r}`),this.repo.statement(e,...r)}async create(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.create);r.info("CONTRACT CREATE, "+s),"string"==typeof e&&(e=this.deserialize(e)),r.info("Creating model: "+JSON.stringify(e));const n=this.getTransientData(t);return r.info("Merging transient data..."),e=a.merge(e,n,this.clazz),this.repo.create(e,...s)}async read(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...s)}getTransientData(t){const e=t.stub.getTransient();let i={};return e.has(this.repo.tableName)&&(i=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),i}async update(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),r.info("Updating model: "+JSON.stringify(e));const n=this.getTransientData(t);return r.info("Merging transient data..."),e=a.merge(e,n,this.clazz),this.repo.update(e,...s)}async delete(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...s)}async deleteAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...r)}async readAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...r)}async updateAll(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t))),r.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...s)}async query(t,e,i,r=O.ASC,s,n,...a){const{ctxArgs:o}=await this.logCtx([...a,t],this.query);return this.repo.query(e,i,r,s,n,...o)}async raw(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.raw);return kt.adapter.raw(e,i,...s)}serialize(t){return kt.serializer.serialize(t)}deserialize(t){return kt.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:s}=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,...s)}async logCtx(t,e){return kt.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new _("No context provided");const i=t.pop();if(i instanceof ut)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof Z))throw new _("No valid context provided");const r={correlationId:i.stub.getTxID()},s=await kt.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case I.CREATE:case I.READ:case I.UPDATE:case I.DELETE:case F.CREATE_ALL:case F.READ_ALL:case F.UPDATE_ALL:case F.DELETE_ALL:}return e.name})(),r,this.clazz,i),n=this?s.logger.for(this).for(e):s.logger.clear().for(this).for(e);return{ctx:s,log:n,stub:s.stub,identity:s.identity,ctxArgs:[...t,s]}}}class Ot extends kt{constructor(t,e){super(t,e)}async create(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.create);i.info("Creating model: "+e);const s=this.deserialize(e);i.info("Model deserialized: "+JSON.stringify(s));const n=await super.create(r,s);return this.serialize(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:s}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${i.length} entries from the table`),JSON.stringify((await super.deleteAll(s,i)).map(t=>this.serialize(t)))}async readAll(t,e){const i=JSON.parse(e),{log:r,ctx:s}=await this.logCtx([t],this.readAll);return r.info(`reading ${i.length} entries from the table`),JSON.stringify((await super.readAll(s,i)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.updateAll),s=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return i.info(`Updating ${s.length} entries to the table`),JSON.stringify((await super.updateAll(r,s)).map(t=>this.serialize(t)))}async statement(t,e,i){const{ctx:r,log:s}=await this.logCtx([t],this.statement);try{i=JSON.parse(i)}catch(t){throw new Q("Invalid args: "+t)}if(!Array.isArray(i))throw new Q(`Invalid args: ${JSON.stringify(i)}. must be an array`);return s.info("calling prepared statement "+e),s.info("with args "+i),JSON.stringify(await super.statement(r,e,...i))}async listBy(t,e,i){const{ctx:r,log:s}=await this.logCtx([t],this.listBy);return s.info(`Executing listBy with key ${e} and order ${i}`),JSON.stringify(await super.listBy(r,e,i))}async paginateBy(t,e,i,r,...s){const{ctx:n,log:a}=await this.logCtx([...s,t],this.paginateBy);try{r=JSON.parse(r)}catch(t){throw new Q("Failed to deserialize paginateBy reference: "+t)}return a.info(`Executing paginateBy with key ${e} and order ${i}`),JSON.stringify(await super.paginateBy(n,e,i,r,...s))}async findOneBy(t,e,i,...r){const{ctx:s,log:n}=await this.logCtx([...r,t],this.findOneBy);return n.info(`Executing findOneBy with key ${e} and value ${i}`),JSON.stringify(await super.findOneBy(s,e,i,...r))}async query(t,e,i,r,s,n){const{ctx:a,log:o}=await this.logCtx([t],this.query);let c;o.info(`Executing query orderedBy ${i} and order ${r}`);try{c=x.from(JSON.parse(e))}catch(t){throw new Q("Invalid condition: "+t)}return o.info("Condition: "+JSON.stringify(c)),JSON.stringify(await super.query(a,c,i,r,s,n))}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));i.info(`Adding ${r.length} entries to the table`);const s=await super.createAll(t,r);return JSON.stringify(s.map(t=>this.serialize(t)))}}ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"create",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"read",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"update",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"delete",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"deleteAll",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"readAll",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"updateAll",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String,String]),lt("design:returntype",Promise)],Ot.prototype,"statement",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String,String]),lt("design:returntype",Promise)],Ot.prototype,"listBy",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String,String,String,ut]),lt("design:returntype",Promise)],Ot.prototype,"paginateBy",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String,String,String]),lt("design:returntype",Promise)],Ot.prototype,"findOneBy",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],Ot.prototype,"init",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],Ot.prototype,"healthcheck",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],Ot.prototype,"createAll",null);class Nt extends _{constructor(t){super(t,Nt.name)}}class Rt extends _{constructor(t){super(t,Rt.name)}}class zt extends _{constructor(t){super(t,zt.name)}}class Pt extends L{constructor(t){super(Pt.name,t,409)}}function $t(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new Nt(`Addition overflow: ${t} + ${e}`);return i}function Et(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new Nt(`Subtraction overflow: ${t} - ${e}`);return i}let Tt=class extends D{constructor(t){super(t)}};ct([E({type:"String"}),lt("design:type",String)],Tt.prototype,"name",void 0),ct([T(),u(),lt("design:type",String)],Tt.prototype,"owner",void 0),ct([T(),u(),lt("design:type",String)],Tt.prototype,"symbol",void 0),ct([T(),u(),lt("design:type",Number)],Tt.prototype,"decimals",void 0),Tt=ct([B("erc20_tokens"),p(),lt("design:paramtypes",[Object])],Tt);let Bt=class extends D{constructor(t){super(t)}};ct([E({type:"String"}),lt("design:type",String)],Bt.prototype,"id",void 0),ct([T(),u(),lt("design:type",String)],Bt.prototype,"token",void 0),ct([T(),u(),lt("design:type",Number)],Bt.prototype,"balance",void 0),ct([T(),lt("design:type",String)],Bt.prototype,"captive",void 0),Bt=ct([B("erc20_wallets"),p(),lt("design:paramtypes",[Object])],Bt);let Dt=class extends D{constructor(t){super(t)}};function It(){return function(t,e,i){const r=i.value;return i.value=async function(...t){const i=t[0],s=i.clientIdentity.getID(),n=await this.tokenRepository.select(),a=await n.execute(i);if(0==a.length)throw new U("No tokens avaialble");if(a.length>1)throw new U("To many token available : "+a.length);if(a[0].owner!=s)throw new z(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Ft;ct([E({type:"String"}),T(),u(),lt("design:type",String)],Dt.prototype,"owner",void 0),ct([T(),u(),lt("design:type",String)],Dt.prototype,"spender",void 0),ct([T(),u(),lt("design:type",Number)],Dt.prototype,"value",void 0),Dt=ct([B("erc20_allowances"),p(),lt("design:paramtypes",[Object])],Dt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Ft||(Ft={}));class _t extends kt{constructor(t){super(t,Bt),_t.adapter=_t.adapter||new vt,this.walletRepository=ht.forModel(Bt,_t.adapter.alias),this.tokenRepository=ht.forModel(Tt,_t.adapter.alias),this.allowanceRepository=ht.forModel(Dt,_t.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 U(`The token ${this.getName()} does not exist`);let s=0;return r.forEach(t=>{s+=t.balance}),s}async BalanceOf(t,e){const{ctx:i}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(i),(await this.walletRepository.read(e,i)).balance}async Transfer(t,e,i){const{ctx:r}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(r);const s=r.identity.getID();if(!await this._transfer(s,e,i,r))throw new _("Failed to transfer");return!0}async TransferFrom(t,e,i,r){const{ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=s.identity.getID(),a=await this._getAllowance(e,n,s);if(!a||0>a.value)throw new zt(`spender ${n} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Rt("The spender does not have enough allowance to spend.");const c=Et(o,r),l=Object.assign({},a,{value:c});if(await this.allowanceRepository.update(l,s),!await this._transfer(e,i,r,s))throw new _("Failed to transfer");return!0}async _transfer(t,e,i,r){const s=r.logger;if(t===e)throw new z("cannot transfer to and from same client account");if(0>i)throw new Rt("transfer amount cannot be negative");const n=await this.walletRepository.read(t,r),a=n.balance;if(i>a)throw new Rt(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof L))throw new _(t);if(404!==t.code)throw new _(t.message);o=new Bt({id:e,balance:0,token:await this.TokenName(r)}),c=!0}const l=o.balance,u=Et(a,i),p=$t(l,i),h=Object.assign({},n,{balance:u});await this.walletRepository.update(h,r);const g=Object.assign({},o,{balance:p});c?await this.walletRepository.create(g,r):await this.walletRepository.update(g,r);const d={from:t,to:e,value:i};return this.repo.refresh(Tt,Ft.TRANSFER,"",d,r).catch(t=>s.error("Failed to notify transfer: "+t)),!0}async Approve(t,e,i){const{ctx:r,ctxArgs:s}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const n=r.identity.getID();let a=await this._getAllowance(n,e,r);if((await this.walletRepository.read(n,...s)).balance<i)throw new Rt(`client account ${n} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...s)):(a=new Dt({owner:n,spender:e,value:i}),await this.allowanceRepository.create(a,...s));const o={owner:n,spender:e,value:i};return this.repo.refresh(Tt,Ft.APPROVAL,"",o,r),!0}async Allowance(t,e,i){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const s=await this._getAllowance(e,i,r);if(!s)throw new zt(`spender ${i} has no allowance from ${e}`);return s.value}async _getAllowance(t,e,i){const r=x.and(x.attribute("owner").eq(t),x.attribute("spender").eq(e)),s=await this.allowanceRepository.select().where(r).execute(i);return s?.[0]}async Initialize(t,e){const{ctx:i}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(i)).length>0)throw new z("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 Pt("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 s;try{s=await this.walletRepository.read(r,i);const t=$t(s.balance,e),n=Object.assign({},s,{balance:t});await this.walletRepository.update(n,i)}catch(s){if(!(s instanceof L))throw new _(s);if(404!==s.code)throw new _(s.message);{const s=new Bt({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(s,i)}}const n={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers(Tt,Ft.TRANSFER,"",n,i)}async Burn(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const s=r.identity.getID(),n=await this.walletRepository.read(s,r),a=n.balance;if(e>a)throw new Rt("Minter has insufficient funds.");const o=Et(a,e),c=Object.assign({},n,{balance:o});await this.walletRepository.update(c,r),i.info(e+" tokens were burned");const l={from:s,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Tt,Ft.TRANSFER,"",l,r)}async BurnFrom(t,e,i){const{log:r,ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=await this.walletRepository.read(e,s),a=n.balance;if(i>a)throw new Rt(e+" has insufficient funds.");const o=Et(a,i),c=Object.assign({},n,{balance:o});await this.walletRepository.update(c,s),r.info(`${i} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:i};this.repo.ObserverHandler().updateObservers(Tt,Ft.TRANSFER,"",l,s)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=e.identity.getID(),r=await this.walletRepository.read(i,e);if(!r)throw new Rt(`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()}}ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],_t.prototype,"TokenName",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],_t.prototype,"Symbol",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],_t.prototype,"Decimals",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],_t.prototype,"TotalSupply",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String]),lt("design:returntype",Promise)],_t.prototype,"BalanceOf",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String,Number]),lt("design:returntype",Promise)],_t.prototype,"Transfer",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String,String,Number]),lt("design:returntype",Promise)],_t.prototype,"TransferFrom",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String,Number]),lt("design:returntype",Promise)],_t.prototype,"Approve",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z,String,String]),lt("design:returntype",Promise)],_t.prototype,"Allowance",null),ct([tt(),lt("design:type",Function),lt("design:paramtypes",[Z,Tt]),lt("design:returntype",Promise)],_t.prototype,"Initialize",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],_t.prototype,"CheckInitialized",null),ct([It(),tt(),lt("design:type",Function),lt("design:paramtypes",[Z,Number]),lt("design:returntype",Promise)],_t.prototype,"Mint",null),ct([It(),tt(),lt("design:type",Function),lt("design:paramtypes",[Z,Number]),lt("design:returntype",Promise)],_t.prototype,"Burn",null),ct([It(),tt(),lt("design:type",Function),lt("design:paramtypes",[Z,String,Number]),lt("design:returntype",Promise)],_t.prototype,"BurnFrom",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],_t.prototype,"ClientAccountBalance",null),ct([tt(!1),lt("design:type",Function),lt("design:paramtypes",[Z]),lt("design:returntype",Promise)],_t.prototype,"ClientAccountID",null);const jt=[_t],Jt="##VERSION##",qt="##PACKAGE##";et.registerLibrary(qt,Jt);export{mt as ContractLogger,vt as FabricContractAdapter,ut as FabricContractContext,bt as FabricContractPaginator,ht as FabricContractRepository,pt as FabricContractRepositoryObservableHandler,xt as FabricContractSequence,kt as FabricCrudContract,gt as FabricStatement,qt as PACKAGE_NAME,Ot as SerializedCrudContract,Jt as VERSION,jt as contracts,St as createdByOnFabricCreateUpdate,At 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","paginateBy","key","order","size","ref","page","bookmark","QueryError","PreparedStatementKeys","PAGE_BY","ctxArgs","paginator","verbose","tableName","override","select","where","attr","gt","orderBy","paginate","paged","serialize","statement","statements","PersistenceKeys","STATEMENT","result","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","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","model","putAnchor","require","sortKeysRecursive","preSerialize","toSerialize","metadata","modelName","error","undefined","obj","Array","isArray","ModelKeys","ANCHOR","relations","call","ContractLogger","MiniLogger","conf","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","silly","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","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","fetchedRecordsCount","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","Statement","createAll","tableLabel","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","record","transient","revert","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","self","o","bind","deserialization","className","Date","FabricCrudContract","Contract","initialized","forModel","listBy","findOneBy","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","OrderDirection","ASC","init","getName","healthcheck","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","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/FabricContractPaginator.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,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","ref","offset","limit","bookmark","QueryError","PreparedStatementKeys","PAGE_BY","ctxArgs","paginator","verbose","tableName","override","select","where","attr","gt","orderBy","paginate","paged","page","serialize","statement","statements","PersistenceKeys","STATEMENT","result","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","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","model","putAnchor","require","sortKeysRecursive","preSerialize","toSerialize","metadata","modelName","error","undefined","obj","Array","isArray","ModelKeys","ANCHOR","relations","call","ContractLogger","MiniLogger","conf","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","silly","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","UnsupportedError","typeName","FabricContractPaginator","CouchDBPaginator","size","prepare","rawStatement","isPreparedStatement","pagePrepared","_recordCount","_totalPages","Math","ceil","validatePage","_bookmark","PagingError","docs","d","revert","parseValue","direction","OrderDirection","DSC","ASC","_currentPage","createdByOnFabricCreateUpdate","data","user","getID","pkFabricOnCreate","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","Paginator","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","fetchedRecordsCount","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","Statement","createAll","tableLabel","updateAll","split","segregate","mappedProp","columnName","isReserved","record","transient","ob","createPrefix","updatePrefix","records","updateAllPrefix","reason","filter","a","clear","message","BadRequestError","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","self","o","bind","deserialization","className","Date","FabricCrudContract","Contract","initialized","forModel","listBy","findOneBy","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","init","getName","healthcheck","Ctx","overrides","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","cond","__decorate","Transaction","__metadata","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","Initialize","Mint","amount","minter","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -44,20 +44,14 @@ class FabricClientRepository extends core_1.Repository {
44
44
  forcePrepareComplexQueries: true,
45
45
  });
46
46
  }
47
- async paginateBy(key, order, size, ref = { page: 1 }, ...args) {
47
+ async paginateBy(key, order, ref = {
48
+ offset: 1,
49
+ limit: 10,
50
+ }, ...args) {
48
51
  const contextArgs = await core_1.Context.args(core_1.PreparedStatementKeys.PAGE_BY, this.class, args, this.adapter, this._overrides || {});
49
52
  const { log, ctxArgs } = this.logCtx(contextArgs.args, this.paginateBy);
50
- log.verbose(`paginating ${decorator_validation_1.Model.tableName(this.class)} with page size ${size}`);
51
- if (typeof ref === "number")
52
- ref = { page: ref };
53
- const params = {
54
- direction: order,
55
- limit: size,
56
- };
57
- if (ref.bookmark) {
58
- params.offset = ref.bookmark;
59
- }
60
- return this.statement(this.paginateBy.name, key, ref.page, params, ...ctxArgs);
53
+ log.verbose(`paginating ${decorator_validation_1.Model.tableName(this.class)} with page size ${ref.limit}`);
54
+ return this.statement(this.paginateBy.name, key, order, { limit: ref.limit, offset: ref.offset, bookmark: ref.bookmark }, ...ctxArgs);
61
55
  }
62
56
  async listBy(key, order, ...args) {
63
57
  const contextArgs = await core_1.Context.args("list", this.class, args, this.adapter, this._overrides || {});
@@ -91,7 +85,11 @@ class FabricClientRepository extends core_1.Repository {
91
85
  return result[for_couchdb_1.CouchDBKeys.TABLE] &&
92
86
  result[for_couchdb_1.CouchDBKeys.TABLE] === decorator_validation_1.Model.tableName(this.class)
93
87
  ? new this.class(result)
94
- : result;
88
+ : core_1.Paginator.isSerializedPage(result)
89
+ ? Object.assign(result, {
90
+ data: result.data.map((d) => new this.class(d)),
91
+ })
92
+ : result;
95
93
  }
96
94
  async create(model, ...args) {
97
95
  const { ctx, log, ctxArgs } = this.logCtx(args, this.create);
@@ -1,4 +1,4 @@
1
- import { OrderDirection, Repository, ContextOf, SerializedPage } from "@decaf-ts/core";
1
+ import { OrderDirection, Repository, ContextOf, SerializedPage, DirectionLimitOffset } from "@decaf-ts/core";
2
2
  import type { MaybeContextualArg } from "@decaf-ts/core";
3
3
  import { Model } from "@decaf-ts/decorator-validation";
4
4
  import { Constructor } from "@decaf-ts/decoration";
@@ -40,10 +40,7 @@ export declare class FabricClientRepository<M extends Model, A extends FabricCli
40
40
  forcePrepareComplexQueries: boolean;
41
41
  };
42
42
  constructor(adapter?: A, clazz?: Constructor<M>);
43
- paginateBy(key: keyof M, order: OrderDirection, size: number, ref?: {
44
- page?: number;
45
- bookmark?: string;
46
- } | number, ...args: MaybeContextualArg<ContextOf<A>>): Promise<SerializedPage<M>>;
43
+ paginateBy(key: keyof M, order: OrderDirection, ref?: Omit<DirectionLimitOffset, "direction">, ...args: MaybeContextualArg<ContextOf<A>>): Promise<SerializedPage<M>>;
47
44
  listBy(key: keyof M, order: OrderDirection, ...args: MaybeContextualArg<ContextOf<A>>): Promise<any>;
48
45
  findBy(key: keyof M, value: any, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[]>;
49
46
  findOneBy(key: keyof M, value: any, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
@@ -1 +1 @@
1
- {"version":3,"file":"FabricClientRepository.js","sourceRoot":"","sources":["../../src/client/FabricClientRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FabricClientRepository.js","sourceRoot":"","sources":["../../src/client/FabricClientRepository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FabricClientStatement.js","sourceRoot":"","sources":["../../src/client/FabricClientStatement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FabricClientStatement.js","sourceRoot":"","sources":["../../src/client/FabricClientStatement.ts"],"names":[],"mappings":"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"}