@decaf-ts/for-fabric 0.1.37 → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- 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,PreparedStatementKeys as y,QueryError 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 N,ObserverError as O,AuthorizationError as k,ForbiddenError as R,ConnectionError as $,OrderDirection as E,pk as z,column as P,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){const n=await p.args(y.PAGE_BY,this.class,r,this.adapter,this._overrides||{}),{log:a,ctxArgs:o}=this.logCtx(n.args,this.paginateBy);return a.verbose(`paginating ${s.tableName(this.class)} with page size ${i}`),this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([t,e]).paginate(i,...o)}async statement(t,...e){if(!h.statements(this,t))throw new w("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);r.verbose(`Executing prepared statement ${t} with args ${n}`);try{return this[t](...n)}catch(e){if(e instanceof L)throw e;throw new F(`Failed to execute prepared statement ${t} with args ${n}: ${e}`)}}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){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){const e=Object.assign({},t);let i;try{i=tt.modelName(t.constructor)}catch(t){i=void 0}function r(t){return"object"!=typeof t?t:Array.isArray(t)?t.map(r):this.preSerialize(t)}return e[o.ANCHOR]=i||t.constructor.name,s.relations(t).forEach(t=>{e[t]=r.call(this,e[t])}),e}}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))}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(w.name)?new w(t):e.includes(C.name)?new C(t):e.includes(v.name)?new v(t):e.includes(N.name)?new N(t):e.includes(O.name)?new O(t):e.includes(k.name)?new k(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}function r(t){return"object"!=typeof t?t:Array.isArray(t)?t.map(r):this.preSerialize(t)}return e[o.ANCHOR]=i||t.constructor.name,s.relations(t).forEach(t=>{e[t]=r.call(this,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);return i.info("Model deserialized: "+JSON.stringify(n)),this.serialize(await super.create(r,n))}async read(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.read);return i.info("Reading id: "+e),this.serialize(await super.read(r,e))}async update(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.update);return i.info("Updating model: "+e),this.serialize(await super.update(r,e))}async delete(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.delete);return i.info("Deleting id: "+e),this.serialize(await super.delete(r,e))}async deleteAll(t,e){const i=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${i.length} entries from the table`),JSON.stringify((await super.deleteAll(n,i)).map(t=>this.serialize(t)))}async readAll(t,e){const i=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.readAll);return r.info(`reading ${i.length} entries from the table`),JSON.stringify((await super.readAll(n,i)).map(t=>this.serialize(t)))}async updateAll(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.updateAll),n=JSON.parse(e).map(t=>this.deserialize(t)).map(t=>new this.clazz(t));return i.info(`Updating ${n.length} entries to the table`),JSON.stringify((await super.updateAll(r,n)).map(t=>this.serialize(t)))}async statement(t,e,i){const{ctx:r,log:n}=await this.logCtx([t],this.statement);try{i=JSON.parse(i)}catch(t){throw new 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));return i.info(`Adding ${r.length} entries to the table`),JSON.stringify((await super.createAll(t,r)).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 Nt extends F{constructor(t){super(t,Nt.name)}}class Ot extends F{constructor(t){super(t,Ot.name)}}class kt extends F{constructor(t){super(t,kt.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 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 zt=class extends B{constructor(t){super(t)}};ot([z({type:"String"}),ct("design:type",String)],zt.prototype,"name",void 0),ot([P(),l(),ct("design:type",String)],zt.prototype,"owner",void 0),ot([P(),l(),ct("design:type",String)],zt.prototype,"symbol",void 0),ot([P(),l(),ct("design:type",Number)],zt.prototype,"decimals",void 0),zt=ot([T("erc20_tokens"),u(),ct("design:paramtypes",[Object])],zt);let Pt=class extends B{constructor(t){super(t)}};ot([z({type:"String"}),ct("design:type",String)],Pt.prototype,"id",void 0),ot([P(),l(),ct("design:type",String)],Pt.prototype,"token",void 0),ot([P(),l(),ct("design:type",Number)],Pt.prototype,"balance",void 0),ot([P(),ct("design:type",String)],Pt.prototype,"captive",void 0),Pt=ot([T("erc20_wallets"),u(),ct("design:paramtypes",[Object])],Pt);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 k(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Dt;ot([z({type:"String"}),P(),l(),ct("design:type",String)],Tt.prototype,"owner",void 0),ot([P(),l(),ct("design:type",String)],Tt.prototype,"spender",void 0),ot([P(),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,Pt),It.adapter=It.adapter||new St,this.walletRepository=pt.forModel(Pt,It.adapter.alias),this.tokenRepository=pt.forModel(zt,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 kt(`spender ${s} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Ot("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 k("cannot transfer to and from same client account");if(0>i)throw new Ot("transfer amount cannot be negative");const s=await this.walletRepository.read(t,r),a=s.balance;if(i>a)throw new Ot(`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 Pt({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(zt,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 Ot(`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(zt,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 kt(`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 k("contract options are already set, client is not authorized to change them");return e.owner=i.identity.getID(),await this.tokenRepository.create(e,i),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new 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 Pt({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(n,i)}}const s={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers(zt,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 Ot("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(zt,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 Ot(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(zt,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 Ot(`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,zt]),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,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,PreparedStatementKeys as y,QueryError 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 N,ObserverError as O,AuthorizationError as k,ForbiddenError as R,ConnectionError as $,OrderDirection as E,pk as z,column as P,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){const n=await p.args(y.PAGE_BY,this.class,r,this.adapter,this._overrides||{}),{log:a,ctxArgs:o}=this.logCtx(n.args,this.paginateBy);return a.verbose(`paginating ${s.tableName(this.class)} with page size ${i}`),this.override({forcePrepareComplexQueries:!1,forcePrepareSimpleQueries:!1}).select().orderBy([t,e]).paginate(i,...o)}async statement(t,...e){if(!h.statements(this,t))throw new w("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);r.verbose(`Executing prepared statement ${t} with args ${n}`);try{return this[t](...n)}catch(e){if(e instanceof L)throw e;throw new F(`Failed to execute prepared statement ${t} with args ${n}: ${e}`)}}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(w.name)?new w(t):e.includes(C.name)?new C(t):e.includes(v.name)?new v(t):e.includes(N.name)?new N(t):e.includes(O.name)?new O(t):e.includes(k.name)?new k(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 Nt extends F{constructor(t){super(t,Nt.name)}}class Ot extends F{constructor(t){super(t,Ot.name)}}class kt extends F{constructor(t){super(t,kt.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 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 zt=class extends B{constructor(t){super(t)}};ot([z({type:"String"}),ct("design:type",String)],zt.prototype,"name",void 0),ot([P(),l(),ct("design:type",String)],zt.prototype,"owner",void 0),ot([P(),l(),ct("design:type",String)],zt.prototype,"symbol",void 0),ot([P(),l(),ct("design:type",Number)],zt.prototype,"decimals",void 0),zt=ot([T("erc20_tokens"),u(),ct("design:paramtypes",[Object])],zt);let Pt=class extends B{constructor(t){super(t)}};ot([z({type:"String"}),ct("design:type",String)],Pt.prototype,"id",void 0),ot([P(),l(),ct("design:type",String)],Pt.prototype,"token",void 0),ot([P(),l(),ct("design:type",Number)],Pt.prototype,"balance",void 0),ot([P(),ct("design:type",String)],Pt.prototype,"captive",void 0),Pt=ot([T("erc20_wallets"),u(),ct("design:paramtypes",[Object])],Pt);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 k(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Dt;ot([z({type:"String"}),P(),l(),ct("design:type",String)],Tt.prototype,"owner",void 0),ot([P(),l(),ct("design:type",String)],Tt.prototype,"spender",void 0),ot([P(),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,Pt),It.adapter=It.adapter||new St,this.walletRepository=pt.forModel(Pt,It.adapter.alias),this.tokenRepository=pt.forModel(zt,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 kt(`spender ${s} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Ot("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 k("cannot transfer to and from same client account");if(0>i)throw new Ot("transfer amount cannot be negative");const s=await this.walletRepository.read(t,r),a=s.balance;if(i>a)throw new Ot(`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 Pt({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(zt,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 Ot(`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(zt,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 kt(`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 k("contract options are already set, client is not authorized to change them");return e.owner=i.identity.getID(),await this.tokenRepository.create(e,i),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new 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 Pt({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(n,i)}}const s={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers(zt,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 Ot("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(zt,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 Ot(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(zt,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 Ot(`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,zt]),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};
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","PreparedStatementKeys","PAGE_BY","ctxArgs","verbose","tableName","override","select","orderBy","paginate","statement","statements","QueryError","PersistenceKeys","STATEMENT","e","BaseError","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","fromSelector","Metadata","DBKeys","ID","selectSelector","r","processRecord","build","selectors","CouchDBKeys","TABLE","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","keys","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","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","bookmark","done","Reflect","SerializationError","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","index","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","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","deserialization","className","Date","FabricCrudContract","Contract","initialized","forModel","listBy","findOneBy","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","OrderDirection","ASC","init","getName","healthcheck","bind","Ctx","overrides","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","cond","__decorate","Transaction","OverflowError","BalanceError","AllowanceError","NotInitializedError","add","b","c","sub","ERC20Token","BaseModel","column","required","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/logging.ts","../src/contracts/FabricContractSequence.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","_overrides","Object","assign","ignoreValidation","ignoreHandlers","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","createAllPrefix","models","contextArgs","class","context","logger","for","ignoreValidate","length","opts","Model","sequenceFor","info","ids","type","sequenceName","Sequence","range","map","m","i","pk","InternalError","Promise","all","async","generated","enforceDBDecorators","ON","ignoredProps","errors","resolve","hasErrors","errorMessages","reduceErrorsToPrint","ValidationError","paginateBy","key","order","size","PreparedStatementKeys","PAGE_BY","ctxArgs","verbose","tableName","override","select","orderBy","paginate","statement","statements","QueryError","PersistenceKeys","STATEMENT","e","BaseError","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","fromSelector","Metadata","DBKeys","ID","selectSelector","r","processRecord","build","selectors","CouchDBKeys","TABLE","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","keys","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","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","bookmark","done","Reflect","SerializationError","getState","getQueryResult","_id","$gt","$gte","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","segregated","correlationId","getTxID","clientIdentity","index","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","docsOnly","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","where","Initialize","Mint","amount","minter","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -373,7 +373,7 @@ class FabricContractAdapter extends for_couchdb_1.CouchDBAdapter {
373
373
  let data;
374
374
  const { stub, log } = this.logCtx([ctx], this.putState);
375
375
  try {
376
- data = Buffer.from(FabricContractAdapter.serializer.serialize(model));
376
+ data = Buffer.from(FabricContractAdapter.serializer.serialize(model, false));
377
377
  }
378
378
  catch (e) {
379
379
  throw new db_decorators_1.SerializationError(`Failed to serialize record with id ${id}: ${e}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}