@decaf-ts/for-fabric 0.1.18 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var t,e;t=this,e=function(t,e,a,r,n,i,o,s,c){"use strict";class l extends r.Context{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 d extends i.ObserverHandler{constructor(t=[r.OperationKeys.CREATE,r.OperationKeys.UPDATE,r.OperationKeys.DELETE,r.BulkCrudOperationKeys.CREATE_ALL,r.BulkCrudOperationKeys.UPDATE_ALL,r.BulkCrudOperationKeys.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,a,...r){const{log:n,ctx:o}=i.Adapter.logCtx(r,this.updateObservers),{stub:s}=o,[c,l]=r,d="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){n.debug(`Emitting ${e} event`);const t=((t,e,a)=>{const r=[t,e];return a&&r.push(a),r.join("_")})(d,e,c);s.setEvent(t,Buffer.from(JSON.stringify({id:a})))}else s.setEvent(e,Buffer.from(JSON.stringify(l)))}}class u extends i.Repository{constructor(t,e,a){super(t,e),this.trackedEvents=a}ObserverHandler(){return new d}async updateObservers(t,e,a,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,a,...r)}}class p extends e.CouchDBStatement{constructor(t){super(t)}async raw(t,...e){const{ctx:n}=this.logCtx(e,this.raw),i=await this.adapter.raw(t,!0,n),s=a.Model.pk(this.fromSelector),c=o.Metadata.get(this.fromSelector,o.Metadata.key(r.DBKeys.ID,s))?.type;return this.selectSelector?i:i.map((t=>this.processRecord(t,s,c,n)))}build(){const t={};t[e.CouchDBKeys.TABLE]={},t[e.CouchDBKeys.TABLE]=a.Model.tableName(this.fromSelector);const r={selector:t};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(i.Condition.and(this.whereCondition,i.Condition.attribute(e.CouchDBKeys.TABLE).eq(r.selector[e.CouchDBKeys.TABLE]))).selector,a=Object.keys(t);if(1===a.length&&-1!==Object.values(e.CouchDBGroupOperator).indexOf(a[0]))switch(a[0]){case e.CouchDBGroupOperator.AND:t[e.CouchDBGroupOperator.AND]=[...Object.values(t[e.CouchDBGroupOperator.AND]).reduce(((t,a)=>{const r=Object.keys(a);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const n=r[0];return n===e.CouchDBGroupOperator.AND?t.push(...a[n]):t.push(a),t}),[])],r.selector=t;break;case e.CouchDBGroupOperator.OR:{const a={};a[e.CouchDBGroupOperator.AND]=[t,...Object.entries(r.selector).map((([t,e])=>{const a={};return a[t]=e,a}))],r.selector=a;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach((([t,e])=>{r.selector[t],r.selector[t]=e}))}if(this.orderBySelector){r.sort=r.sort||[],r.selector=r.selector||{};const[t,a]=this.orderBySelector,n={};n[t]=a,r.sort.push(n),r.selector[t]||(r.selector[t]={},r.selector[t][e.CouchDBOperator.BIGGER]=null)}return this.limitSelector&&(r.limit=this.limitSelector),this.offsetSelector&&(r.skip=this.offsetSelector),r}}var g,h;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(g||(g={})),(t=>{t.X509="X.509"})(h||(h={}));const y="hlf-fabric";class m extends a.JSONSerializer{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function f(t,e,n,o){const s=o[n];if(!s)return;if("object"!=typeof s){const e=i.repositoryFromTypeMetadata(o,n,this.adapter.alias),a=await e.read(s,t);return await i.cacheModelForPopulate(t,o,n,s,a),void(o[n]=s)}e.class="string"==typeof e.class?e.class:e.class().name;const c=a.Model.get(e.class);if(!c)throw new r.InternalError("Could not find model "+e.class);const l=i.Repository.forModel(c,this.adapter.alias),d=await l.create(s,t),u=a.Model.pk(d);await i.cacheModelForPopulate(t,o,n,d[u],d),o[n]=d[u]}async function w(t,e,r,n){const o=n[r];if(!o)return;if(e.cascade.update!==i.Cascade.CASCADE)return;if("object"!=typeof o){const e=i.repositoryFromTypeMetadata(n,r,this.adapter.alias),a=await e.read(o,t);return await i.cacheModelForPopulate(t,n,r,o,a),void(n[r]=o)}const s=await i.createOrUpdate(n[r],t,this.adapter.alias),c=a.Model.pk(s);await i.cacheModelForPopulate(t,n,r,s[c],s),n[r]=s[c]}async function _(t,e,r,n){const o=n[r];if(!o)return;if(e.cascade.update!==i.Cascade.CASCADE)return;const s=i.repositoryFromTypeMetadata(n,r,this.adapter.alias);let c;c=o instanceof a.Model?await s.delete(n[r][a.Model.pk(s.class)],t):await s.delete(n[r],t),await i.cacheModelForPopulate(t,n,r,c[a.Model.pk(s.class)],c)}async function x(t,e,n,o){const s=o[n];if(!s||!s.length)return;const c=typeof s[0];if(!s.every((t=>typeof t===c)))throw new r.InternalError(`Invalid operation. All elements of property ${n} must match the same type.`);const l=new Set([...s]);if("object"!==c){const e=i.repositoryFromTypeMetadata(o,n,this.adapter.alias);for(const a of l){const r=await e.read(a,t);await i.cacheModelForPopulate(t,o,n,a,r)}return void(o[n]=[...l])}const d=a.Model.pk(s[0]),u=new Set;for(const e of s){const a=await i.createOrUpdate(e,t,this.adapter.alias);await i.cacheModelForPopulate(t,o,n,a[d],a),u.add(a[d])}o[n]=[...u]}async function b(t,e,n,o){if(e.cascade.delete!==i.Cascade.CASCADE)return;const s=o[n];if(!s||!s.length)return;const c=typeof s[0];if(!s.every((t=>typeof t===c)))throw new r.InternalError(`Invalid operation. All elements of property ${n} must match the same type.`);const l="object"===c,d=l?i.Repository.forModel(s[0],this.adapter.alias):i.repositoryFromTypeMetadata(o,n,this.adapter.alias),u=new Set([...l?s.map((t=>t[a.Model.pk(this.class)])):s]);for(const e of u.values()){const a=await d.delete(e,t);await i.cacheModelForPopulate(t,o,n,e,a)}o[n]=[...u]}async function C(t,e,a,n){if(!e.populate)return;const o=n[a],s=Array.isArray(o);if(void 0===o||s&&0===o.length)return;const c=await(async(e,a,n,o,s)=>{let c,l;const d=[];for(const u of o){c=i.getPopulateKey(a.constructor.name,n,u);try{l=await e.get(c)}catch(e){const o=i.repositoryFromTypeMetadata(a,n,s);if(!o)throw new r.InternalError("Could not find repo");l=await o.read(u,t)}d.push(l)}return d})(t,n,a,s?o:[o],this.adapter.alias);n[a]=s?c:c[0]}class A extends s.MiniLogger{constructor(t,e,a){super(t,e),this.logger=a?a.logging.getLogger(t):new s.MiniLogger(t,e)}log(t,e,a){if(s.NumericLogLevels[this.config("level")]<s.NumericLogLevels[t])return;let n;switch(t){case s.LogLevel.info:n=this.logger.info;break;case s.LogLevel.verbose:n=this.logger.verbose;break;case s.LogLevel.debug:n=this.logger.debug;break;case s.LogLevel.error:n=this.logger.error;break;case s.LogLevel.silly:n=this.logger.silly;break;default:throw new r.InternalError("Invalid log level")}n.call(this.logger,this.createLog(t,e,a))}}async function E(t,e,a,r){try{const e=t.get("identity");r[a]=e.getID()}catch(t){throw new i.UnsupportedError("No User found in context. Please provide a user in the context")}}async function v(t,e,n,i){if(!e.type||i[n])return;let o;e.name||(e.name=a.Model.sequenceName(i,"pk"));try{o=await this.adapter.Sequence(e)}catch(t){throw new r.InternalError(`Failed to instantiate Sequence ${e.name}: ${t}`)}const s=await o.next(t);Object.defineProperty(i,n,{enumerable:!0,writable:!1,configurable:!0,value:s})}s.Logging.setFactory(((t,e,a)=>new A(t||A.name,e||{},a)));class S extends e.CouchDBAdapter{getClient(){throw new i.UnsupportedError("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new m}repository(){return u}constructor(t,e){super(t,y,e),this.Context=l}for(t,...e){return super.for(t,...e)}async create(t,e,r,...n){const{ctx:i,log:o,stub:s}=this.logCtx(n,this.create);o.info("in ADAPTER create with args "+n);const c=a.Model.tableName(t);try{o.info(`adding entry to ${c} table with pk ${e}`);const t=s.createCompositeKey(c,[e+""]);r=await this.putState(t,r,i)}catch(t){throw this.parseError(t)}return r}async read(t,e,...r){const{ctx:n,log:i,stub:o}=this.logCtx(r,this.read);i.info("in ADAPTER read with args "+r);const s=a.Model.tableName(t);let c;try{const t=o.createCompositeKey(s,[e+""]);c=await this.readState(t,n)}catch(t){throw this.parseError(t)}return c}async update(t,e,r,...n){const{ctx:i,log:o,stub:s}=this.logCtx(n,this.update),c=a.Model.tableName(t);try{o.verbose(`updating entry to ${c} table with pk ${e}`);const t=s.createCompositeKey(c,[e+""]);r=await this.putState(t,r,i)}catch(t){throw this.parseError(t)}return r}async delete(t,e,...r){const{ctx:n,log:i,ctxArgs:o,stub:s}=this.logCtx(r,this.delete),c=a.Model.tableName(t);let l;try{const a=s.createCompositeKey(c,[e+""]);l=await this.read(t,e,...o),i.verbose(`deleting entry with pk ${e} from ${c} table`),await this.deleteState(a,n)}catch(t){throw this.parseError(t)}return l}async deleteState(t,e){const{stub:a}=this.logCtx([e],this.deleteState);await a.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:(a,n,i)=>e.includes(n)?new Proxy(a[n],{async apply(e,a,i){switch(n){case"putState":{const[e,a,r]=i;return await e.putPrivateData(t,a.toString(),r),r}case"deleteState":{const[e,a]=i;return e.deletePrivateData(t,a)}case"readState":{const[e,a]=i;return e.getPrivateData(t,a)}case"queryResult":{const[e,a]=i;return e.getPrivateDataQueryResult(t,a)}case"queryResultPaginated":{const[e,a,r,n]=i,o=await e.getPrivateDataQueryResult(t,a),s=[];let c=0,l=!n,d=null;for(;;){const t=await o.next();if(t.value&&t.value.value.toString()){const e=t.value.key,a=t.value.value.toString("utf8");if(!l){e===n?.toString()&&(l=!0);continue}if(s.push({Key:e,Record:JSON.parse(a)}),d=e,c++,c>=r)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:d}}}if(t.done)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:""}}}}default:throw new r.InternalError("Unsupported method override "+n)}}}):Reflect.get(a,n,i)})}async putState(t,e,a){let n;const{stub:i,log:o}=this.logCtx([a],this.putState);try{n=Buffer.from(S.serializer.serialize(e))}catch(e){throw new r.SerializationError(`Failed to serialize record with id ${t}: ${e}`)}return await i.putState(t.toString(),n),o.silly("state stored under id "+t),e}async readState(t,e){let a;const{stub:n,log:i}=this.logCtx([e],this.readState),o=(await n.getState(t)).toString();if(!o)throw new r.NotFoundError(`Record with id ${t} not found`);i.silly("Read state for id "+t);try{a=S.serializer.deserialize(o.toString())}catch(t){throw new r.SerializationError("Failed to parse record: "+t)}return a}async queryResult(t,e,...a){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,a=250,r,...n){return await t.getQueryResultWithPagination(JSON.stringify(e),a,r?.toString())}mergeModels(t){const e=t=>Object.entries(t).reduce(((t,[e,a])=>(void 0!==a&&(t[e]=a),t)),{});let a=t.pop();for(const r of t)a=Object.assign({},e(a),e(r));return a}decode(t){return S.textDecoder.decode(t)}async flags(t,e,a,r,...n){const i={stub:r.stub};if(r instanceof l)Object.assign(i,{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()});else{const n=r instanceof l?r.logger:r.logging.getLogger();n.info("In flags"),n.info(`${t} - ${e.name} - ${JSON.stringify(a)} - ${JSON.stringify(r)}`),n.info("flags: "+Object.keys(a)),n.info("ctx: "+r.constructor.name),Object.assign(i,{identity:r.clientIdentity,logger:new A(this,void 0,r),correlationId:r.stub.getTxID()})}return await super.flags(t,e,i,...n)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,a=!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")),a){e.TxId=n.value.txId,e.Timestamp=n.value.timestamp;try{e.Value=JSON.parse(n.value.value.toString("utf8"))}catch(a){t.error(a),e.Value=n.value.value.toString("utf8")}}else try{e=JSON.parse(n.value.value.toString("utf8"))}catch(a){t.error(a),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){const{log:a,ctxArgs:r,stub:n}=this.logCtx(e,this.raw);"boolean"==typeof r[0]&&r.shift();const{skip:i,limit:o}=t;let s;o||i?(delete t.limit,delete t.skip,a.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${i}`),s=(await this.queryResultPaginated(n,t,o||250,i?.toString())).iterator):(a.debug("Retrieving iterator"),s=await this.queryResult(n,t)),a.debug("Iterator acquired");const c=await this.resultIterator(a,s);return a.debug("returning {0} results",""+(Array.isArray(c)?c.length:1)),c}Statement(){return new p(this)}async createAll(t,e,n,...i){if(e.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.createAll),c=a.Model.tableName(t);return o.debug(`Creating ${e.length} entries ${c} table`),Promise.all(e.map(((e,a)=>this.create(t,e,n[a],...s))))}async updateAll(t,e,n,...i){if(e.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.updateAll),c=a.Model.tableName(t);return o.debug(`Updating ${e.length} entries ${c} table`),Promise.all(e.map(((e,a)=>this.update(t,e,n[a],...s))))}prepare(t,...e){const{log:n}=this.logCtx(e,this.prepare),i=a.Model.tableName(t.constructor),o=a.Model.pk(t.constructor),s=a.Model.segregate(t),c=Object.entries(s.model).reduce(((e,[n,i])=>{if(void 0===i)return e;const o=a.Model.columnName(t,n);if(this.isReserved(o))throw new r.InternalError(`Property name ${o} is reserved`);return e[o]=i,e}),{});return n.silly(`Preparing record for ${i} table with pk ${t[o]}`),{record:c,id:t[o],transient:s.transient}}revert(t,e,n,i,...o){const{log:s}=this.logCtx(o,this.revert),c={};c[a.Model.pk(e)]=n;const l="string"==typeof e?a.Model.build(c,e):new e(c);s.silly(`Rebuilding model ${l.constructor.name} id ${n}`);const d=Object.keys(l).reduce(((e,r)=>(e[r]=t[a.Model.columnName(e,r)],e)),l);return i&&(s.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach((([t,e])=>{if(t in d&&void 0!==d[t])throw new r.InternalError(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);d[t]=e}))),d}createPrefix(t,r,n,...i){const{ctxArgs:o}=this.logCtx(i,this.createPrefix),s={};return s[e.CouchDBKeys.TABLE]=a.Model.tableName(t),Object.assign(s,n),[t,r,s,...o]}updatePrefix(t,r,n,...i){const{ctxArgs:o}=this.logCtx(i,this.updatePrefix),s={};return s[e.CouchDBKeys.TABLE]=a.Model.tableName(t),Object.assign(s,n),[t,r,s,...o]}createAllPrefix(t,a,n,...i){if(a.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const o=i.pop(),s=a.map(((a,r)=>{const i={};return i[e.CouchDBKeys.TABLE]=t,Object.assign(i,n[r]),i}));return[t,a,s,o]}updateAllPrefix(t,a,n,...i){if(a.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const o=i.pop(),s=a.map(((a,r)=>{const i={};return i[e.CouchDBKeys.TABLE]=t,Object.assign(i,n[r]),i}));return[t,a,s,o]}parseError(t,e){return S.parseError(e||t)}logCtx(t,e){return S.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new r.InternalError("No context provided");const a=t.pop();if(!(a instanceof r.Context))throw new r.InternalError("No context provided");if(t.filter((t=>t instanceof r.Context)).length>1)throw Error("here");const n=this?a.logger.for(this).for(e):a.logger.clear().for(this).for(e);return{ctx:a,log:e?n.for(e):n,stub:a.stub,identity:a.identity,ctxArgs:[...t,a]}}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(r.NotFoundError.name)?new r.NotFoundError(t):e.includes(r.ConflictError.name)?new r.ConflictError(t):e.includes(r.BadRequestError.name)?new r.BadRequestError(t):e.includes(i.QueryError.name)?new i.QueryError(t):e.includes(i.PagingError.name)?new i.PagingError(t):e.includes(i.UnsupportedError.name)?new i.UnsupportedError(t):e.includes(i.MigrationError.name)?new i.MigrationError(t):e.includes(i.ObserverError.name)?new i.ObserverError(t):e.includes(i.AuthorizationError.name)?new i.AuthorizationError(t):e.includes(i.ForbiddenError.name)?new i.ForbiddenError(t):e.includes(i.ConnectionError.name)?new i.ConnectionError(t):e.includes(r.SerializationError.name)?new r.SerializationError(t):new r.InternalError(t)}static decoration(){super.decoration(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.CREATED_BY).define(r.onCreate(E),o.propMetadata(i.PersistenceKeys.CREATED_BY,{})).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.UPDATED_BY).define(r.onCreateUpdate(E),o.propMetadata(i.PersistenceKeys.UPDATED_BY,{})).apply(),o.Decoration.flavouredAs(y).for(r.DBKeys.ID).define({decorator:(t,e)=>(n,i)=>o.apply(a.required(),r.readonly(),o.propMetadata(o.Metadata.key(r.DBKeys.ID,i),t),r.onCreate(v,t,e))(n,i)}).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.COLUMN).extend(n.Property()).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.TABLE).extend((t=>n.Object()(t))).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.ONE_TO_ONE).define({decorator:(t,e,n,s,c)=>{const l={class:t,cascade:e,populate:n};return s&&(l.joinTable=s),c&&(l.name=c),o.apply(o.prop(),i.relation(i.PersistenceKeys.ONE_TO_ONE,l),a.type([t,String,Number,BigInt]),r.onCreate(f,l),r.onUpdate(w,l),r.onDelete(_,l),r.afterAny(C,l),o.propMetadata(i.PersistenceKeys.ONE_TO_ONE,l))}}).apply(),o.Decoration.for(i.PersistenceKeys.ONE_TO_MANY).define({decorator:(t,e,n,s,c)=>{const l={class:t,cascade:e,populate:n};return s&&(l.joinTable=s),c&&(l.name=c),o.apply(o.prop(),i.relation(i.PersistenceKeys.ONE_TO_MANY,l),a.list([t,String,Number]),r.onCreate(x,l),r.onUpdate(i.oneToManyOnUpdate,l),r.onDelete(b,l),r.afterAny(C,l),o.propMetadata(i.PersistenceKeys.ONE_TO_MANY,l))}}).apply()}}S.decoration(),i.Adapter.setCurrent(y);class O extends a.JSONSerializer{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class T extends n.Contract{static{this.adapter=new S}static{this.serializer=new O}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=i.Repository.forModel(e)}async listBy(t,e,a,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.listBy);return this.repo.listBy(e,a,...n)}async paginateBy(t,e,a,r,...n){const{ctxArgs:i}=await this.logCtx([...n,t],this.paginateBy);return this.repo.paginateBy(e,a,r,...i)}async findOneBy(t,e,a,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.findOneBy);return this.repo.findOneBy(e,a,...n)}async statement(t,e,...a){const{ctxArgs:r}=await this.logCtx([...a,t],this.statement);return this.repo.statement(e,...r)}async create(t,e,...r){const{log:n,ctxArgs:i}=await this.logCtx([...r,t],this.create);n.info("CONTRACT CREATE, "+i),"string"==typeof e&&(e=this.deserialize(e)),n.info("Creating model: "+JSON.stringify(e));const o=this.getTransientData(t);return n.info("Merging transient data..."),e=a.Model.merge(e,o,this.clazz),this.repo.create(e,...i)}async read(t,e,...a){const{log:r,ctxArgs:n}=await this.logCtx([...a,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...n)}getTransientData(t){const e=t.stub.getTransient();let a={};return e.has(this.repo.tableName)&&(a=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),a}async update(t,e,...r){const{log:n,ctxArgs:i}=await this.logCtx([...r,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),n.info("Updating model: "+JSON.stringify(e));const o=this.getTransientData(t);return n.info("Merging transient data..."),e=a.Model.merge(e,o,this.clazz),this.repo.update(e,...i)}async delete(t,e,...a){const{log:r,ctxArgs:n}=await this.logCtx([...a,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...n)}async deleteAll(t,e,...a){const{ctxArgs:r}=await this.logCtx([...a,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...r)}async readAll(t,e,...a){const{ctxArgs:r}=await this.logCtx([...a,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...r)}async updateAll(t,e,...a){const{log:r,ctxArgs:n}=await this.logCtx([...a,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 raw(t,e,a,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),T.adapter.raw(e,a,...n)}serialize(t){return T.serializer.serialize(t)}deserialize(t){return T.serializer.deserialize(t)}async init(t){t.logging.getLogger("tst").info("in init");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){t.logging.getLogger("test").info("in healthcheck");const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...a){const{log:r}=await this.logCtx([...a,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),r.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...a)}async logCtx(t,e){return T.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new r.InternalError("No context provided");const a=t.pop();if(a instanceof l)return{ctx:a,log:a.logger.clear().for(this).for(e),ctxArgs:[...t,a],stub:a.stub,identity:a.identity};if(!(a instanceof n.Context))throw new r.InternalError("No valid context provided");const i=a.logging.getLogger(),o={correlationId:a.stub.getTxID()};i.info(`Getting context with ${JSON.stringify(o)} and ctx`);const s=await T.adapter.context((()=>{if(i.info("Getting op for "+("string"==typeof e?e:e.name)),"string"==typeof e)return e;switch(e.name){case r.OperationKeys.CREATE:case r.OperationKeys.READ:case r.OperationKeys.UPDATE:case r.OperationKeys.DELETE:case r.BulkCrudOperationKeys.CREATE_ALL:case r.BulkCrudOperationKeys.READ_ALL:case r.BulkCrudOperationKeys.UPDATE_ALL:case r.BulkCrudOperationKeys.DELETE_ALL:}return e.name})(),o,this.clazz,a);i.info(`retrieve ctx: stub: ${!!s.stub}, identity: ${!!s.identity}, logger: ${s.logger instanceof A}`);const c=this?s.logger.for(this).for(e):s.logger.clear().for(this).for(e);return{ctx:s,log:c,stub:s.stub,identity:s.identity,ctxArgs:[...t,s]}}}class N extends T{constructor(t,e){super(t,e)}async create(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.create);a.info("Creating model: "+e);const n=this.deserialize(e);return a.info("Model deserialized: "+JSON.stringify(n)),this.serialize(await super.create(r,n))}async read(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.read);return a.info("Reading id: "+e),this.serialize(await super.read(r,e))}async update(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.update);return a.info("Updating model: "+e),this.serialize(await super.update(r,e))}async delete(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.delete);return a.info("Deleting id: "+e),this.serialize(await super.delete(r,e))}async deleteAll(t,e){const a=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${a.length} entries from the table`),JSON.stringify((await super.deleteAll(n,a)).map((t=>this.serialize(t))))}async readAll(t,e){const a=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.readAll);return r.info(`reading ${a.length} entries from the table`),JSON.stringify((await super.readAll(n,a)).map((t=>this.serialize(t))))}async updateAll(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.updateAll),n=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return a.info(`Updating ${n.length} entries to the table`),JSON.stringify((await super.updateAll(r,n)).map((t=>this.serialize(t))))}async statement(t,e){const{ctx:a}=await this.logCtx([t],this.statement);return super.statement(a,e)}async raw(t,e,a){const{ctx:r}=await this.logCtx([t],this.raw),n=JSON.parse(e);return super.raw(r,n,a)}async init(t){await super.init(t)}async healthcheck(t){const{log:e,ctx:a}=await this.logCtx([t],this.updateAll);return e.debug(`Running Healthcheck: ${this.initialized}...`),JSON.stringify(await super.healthcheck(a))}async createAll(t,e){const{log:a}=await this.logCtx([t],this.createAll),r=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return a.info(`Adding ${r.length} entries to the table`),JSON.stringify((await super.createAll(t,r)).map((t=>this.serialize(t))))}}c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"create",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"read",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"update",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"delete",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"deleteAll",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"readAll",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"updateAll",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"statement",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Boolean]),c.__metadata("design:returntype",Promise)],N.prototype,"raw",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],N.prototype,"init",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],N.prototype,"healthcheck",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],N.prototype,"createAll",null);class k extends r.InternalError{constructor(t){super(t,k.name)}}class z extends r.InternalError{constructor(t){super(t,z.name)}}class D extends r.InternalError{constructor(t){super(t,D.name)}}class R extends r.BaseError{constructor(t){super(R.name,t,409)}}function P(t,e){const a=t+e;if(t!==a-e||e!==a-t)throw new k(`Addition overflow: ${t} + ${e}`);return a}function I(t,e){const a=t-e;if(t!==a+e||e!==t-a)throw new k(`Subtraction overflow: ${t} - ${e}`);return a}let B=class extends i.BaseModel{constructor(t){super(t)}};c.__decorate([i.pk({type:"String"}),c.__metadata("design:type",String)],B.prototype,"name",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],B.prototype,"owner",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],B.prototype,"symbol",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",Number)],B.prototype,"decimals",void 0),B=c.__decorate([i.table("erc20_tokens"),a.model(),c.__metadata("design:paramtypes",[Object])],B);let F=class extends i.BaseModel{constructor(t){super(t)}};c.__decorate([i.pk({type:"String"}),c.__metadata("design:type",String)],F.prototype,"id",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],F.prototype,"token",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",Number)],F.prototype,"balance",void 0),c.__decorate([i.column(),c.__metadata("design:type",String)],F.prototype,"captive",void 0),F=c.__decorate([i.table("erc20_wallets"),a.model(),c.__metadata("design:paramtypes",[Object])],F);let M=class extends i.BaseModel{constructor(t){super(t)}};function $(){return function(t,e,a){const n=a.value;return a.value=async function(...t){const a=t[0],o=a.clientIdentity.getID(),s=await this.tokenRepository.select(),c=await s.execute(a);if(0==c.length)throw new r.NotFoundError("No tokens avaialble");if(c.length>1)throw new r.NotFoundError("To many token available : "+c.length);if(c[0].owner!=o)throw new i.AuthorizationError(`User not authorized to run ${e} on the token`);return await n.apply(this,t)},a}}var L;c.__decorate([i.pk({type:"String"}),i.column(),a.required(),c.__metadata("design:type",String)],M.prototype,"owner",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],M.prototype,"spender",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",Number)],M.prototype,"value",void 0),M=c.__decorate([i.table("erc20_allowances"),a.model(),c.__metadata("design:paramtypes",[Object])],M),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(L||(L={}));class K extends T{constructor(t){super(t,F),K.adapter=K.adapter||new S,this.walletRepository=u.forModel(F,K.adapter.alias),this.tokenRepository=u.forModel(B,K.adapter.alias),this.allowanceRepository=u.forModel(M,K.adapter.alias)}async TokenName(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.tokenRepository.select();return(await a.execute(e))[0].name}async Symbol(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.tokenRepository.select();return(await a.execute(e))[0].symbol}async Decimals(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.tokenRepository.select();return(await a.execute(e))[0].decimals}async TotalSupply(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.walletRepository.select(),n=await a.execute(e);if(0==n.length)throw new r.NotFoundError(`The token ${this.getName()} does not exist`);let i=0;return n.forEach((t=>{i+=t.balance})),i}async BalanceOf(t,e){const{ctx:a}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(a),(await this.walletRepository.read(e,a)).balance}async Transfer(t,e,a){const{ctx:n}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(n);const i=n.identity.getID();if(!await this._transfer(i,e,a,n))throw new r.InternalError("Failed to transfer");return!0}async TransferFrom(t,e,a,n){const{ctx:i}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(i);const o=i.identity.getID(),s=await this._getAllowance(e,o,i);if(!s||0>s.value)throw new D(`spender ${o} has no allowance from ${e}`);const c=s.value;if(n>c)throw new z("The spender does not have enough allowance to spend.");const l=I(c,n),d=Object.assign({},s,{value:l});if(await this.allowanceRepository.update(d,i),!await this._transfer(e,a,n,i))throw new r.InternalError("Failed to transfer");return!0}async _transfer(t,e,a,n){const o=n.logger;if(t===e)throw new i.AuthorizationError("cannot transfer to and from same client account");if(0>a)throw new z("transfer amount cannot be negative");const s=await this.walletRepository.read(t,n),c=s.balance;if(a>c)throw new z(`client account ${t} has insufficient funds.`);let l,d=!1;try{l=await this.walletRepository.read(e,n)}catch(t){if(!(t instanceof r.BaseError))throw new r.InternalError(t);if(404!==t.code)throw new r.InternalError(t.message);l=new F({id:e,balance:0,token:await this.TokenName(n)}),d=!0}const u=l.balance,p=I(c,a),g=P(u,a),h=Object.assign({},s,{balance:p});await this.walletRepository.update(h,n);const y=Object.assign({},l,{balance:g});d?await this.walletRepository.create(y,n):await this.walletRepository.update(y,n);const m={from:t,to:e,value:a};return this.repo.refresh(B,L.TRANSFER,"",m,n).catch((t=>o.error("Failed to notify transfer: "+t))),!0}async Approve(t,e,a){const{ctx:r,ctxArgs:n}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const i=r.identity.getID();let o=await this._getAllowance(i,e,r);if((await this.walletRepository.read(i,...n)).balance<a)throw new z(`client account ${i} has insufficient funds.`);o?(o.value=a,await this.allowanceRepository.update(o,...n)):(o=new M({owner:i,spender:e,value:a}),await this.allowanceRepository.create(o,...n));const s={owner:i,spender:e,value:a};return this.repo.refresh(B,L.APPROVAL,"",s,r),!0}async Allowance(t,e,a){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const n=await this._getAllowance(e,a,r);if(!n)throw new D(`spender ${a} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,a){const r=i.Condition.and(i.Condition.attribute("owner").eq(t),i.Condition.attribute("spender").eq(e)),n=await this.allowanceRepository.select().where(r).execute(a);return n?.[0]}async Initialize(t,e){const{ctx:a}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(a)).length>0)throw new i.AuthorizationError("contract options are already set, client is not authorized to change them");return e.owner=a.identity.getID(),await this.tokenRepository.create(e,a),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new R("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){const{ctx:a}=await this.logCtx([t],this.Mint);await this.CheckInitialized(a);const n=a.identity.getID();if(0>=e)throw new r.ValidationError("mint amount must be a positive integer");let i;try{i=await this.walletRepository.read(n,a);const t=P(i.balance,e),r=Object.assign({},i,{balance:t});await this.walletRepository.update(r,a)}catch(i){if(!(i instanceof r.BaseError))throw new r.InternalError(i);if(404!==i.code)throw new r.InternalError(i.message);{const r=new F({id:n,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(r,a)}}const o={from:"0x0",to:n,value:e};this.repo.ObserverHandler().updateObservers(B,L.TRANSFER,"",o,a)}async Burn(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const n=r.identity.getID(),i=await this.walletRepository.read(n,r),o=i.balance;if(e>o)throw new z("Minter has insufficient funds.");const s=I(o,e),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,r),a.info(e+" tokens were burned");const l={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(B,L.TRANSFER,"",l,r)}async BurnFrom(t,e,a){const{log:r,ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const i=await this.walletRepository.read(e,n),o=i.balance;if(a>o)throw new z(e+" has insufficient funds.");const s=I(o,a),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,n),r.info(`${a} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:a};this.repo.ObserverHandler().updateObservers(B,L.TRANSFER,"",l,n)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=e.identity.getID(),r=await this.walletRepository.read(a,e);if(!r)throw new z(`The account ${a} 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()}}c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"TokenName",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"Symbol",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"Decimals",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"TotalSupply",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],K.prototype,"BalanceOf",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Transfer",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"TransferFrom",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Approve",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,String]),c.__metadata("design:returntype",Promise)],K.prototype,"Allowance",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,B]),c.__metadata("design:returntype",Promise)],K.prototype,"Initialize",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"CheckInitialized",null),c.__decorate([$(),n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Mint",null),c.__decorate([$(),n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Burn",null),c.__decorate([$(),n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"BurnFrom",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"ClientAccountBalance",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"ClientAccountID",null);const j=[K],q="##VERSION##",J="##PACKAGE##";o.Metadata.registerLibrary(J,q),t.ContractLogger=A,t.FabricContractAdapter=S,t.FabricContractContext=l,t.FabricContractRepository=u,t.FabricContractRepositoryObservableHandler=d,t.FabricCrudContract=T,t.FabricStatement=p,t.PACKAGE_NAME=J,t.SerializedCrudContract=N,t.VERSION=q,t.contracts=j,t.createdByOnFabricCreateUpdate=E,t.pkFabricOnCreate=v},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/for-couchdb"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/db-decorators"),require("fabric-contract-api"),require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/logging"),require("tslib")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/for-couchdb","@decaf-ts/decorator-validation","@decaf-ts/db-decorators","fabric-contract-api","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/logging","tslib"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["for-fabric"]={},t.decafTsForCouchdb,t.decafTsDecoratorValidation,t.decafTsDbDecorators,t.fabricContractApi,t.decafTsCore,t.decafTsDecoration,t.decafTsLogging,t.tslib);
1
+ var t,e;t=this,e=function(t,e,a,r,n,i,o,s,c){"use strict";class l extends r.Context{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 d extends i.ObserverHandler{constructor(t=[r.OperationKeys.CREATE,r.OperationKeys.UPDATE,r.OperationKeys.DELETE,r.BulkCrudOperationKeys.CREATE_ALL,r.BulkCrudOperationKeys.UPDATE_ALL,r.BulkCrudOperationKeys.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,a,...r){const{log:n,ctx:o}=i.Adapter.logCtx(r,this.updateObservers),{stub:s}=o,[c,l]=r,d="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){n.debug(`Emitting ${e} event`);const t=((t,e,a)=>{const r=[t,e];return a&&r.push(a),r.join("_")})(d,e,c);s.setEvent(t,Buffer.from(JSON.stringify({id:a})))}else s.setEvent(e,Buffer.from(JSON.stringify(l)))}}class u extends i.Repository{constructor(t,e,a){super(t,e),this.trackedEvents=a}ObserverHandler(){return new d}async updateObservers(t,e,a,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,a,...r)}}class p extends e.CouchDBStatement{constructor(t){super(t)}async raw(t,...e){const{ctx:n}=this.logCtx(e,this.raw),i=await this.adapter.raw(t,!0,n),s=a.Model.pk(this.fromSelector),c=o.Metadata.get(this.fromSelector,o.Metadata.key(r.DBKeys.ID,s))?.type;return this.selectSelector?i:i.map((t=>this.processRecord(t,s,c,n)))}build(){const t={};t[e.CouchDBKeys.TABLE]={},t[e.CouchDBKeys.TABLE]=a.Model.tableName(this.fromSelector);const r={selector:t};if(this.selectSelector&&(r.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(i.Condition.and(this.whereCondition,i.Condition.attribute(e.CouchDBKeys.TABLE).eq(r.selector[e.CouchDBKeys.TABLE]))).selector,a=Object.keys(t);if(1===a.length&&-1!==Object.values(e.CouchDBGroupOperator).indexOf(a[0]))switch(a[0]){case e.CouchDBGroupOperator.AND:t[e.CouchDBGroupOperator.AND]=[...Object.values(t[e.CouchDBGroupOperator.AND]).reduce(((t,a)=>{const r=Object.keys(a);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const n=r[0];return n===e.CouchDBGroupOperator.AND?t.push(...a[n]):t.push(a),t}),[])],r.selector=t;break;case e.CouchDBGroupOperator.OR:{const a={};a[e.CouchDBGroupOperator.AND]=[t,...Object.entries(r.selector).map((([t,e])=>{const a={};return a[t]=e,a}))],r.selector=a;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach((([t,e])=>{r.selector[t],r.selector[t]=e}))}if(this.orderBySelector){r.sort=r.sort||[],r.selector=r.selector||{};const[t,a]=this.orderBySelector,n={};n[t]=a,r.sort.push(n),r.selector[t]||(r.selector[t]={},r.selector[t][e.CouchDBOperator.BIGGER]=null)}return this.limitSelector&&(r.limit=this.limitSelector),this.offsetSelector&&(r.skip=this.offsetSelector),r}}var g,h;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(g||(g={})),(t=>{t.X509="X.509"})(h||(h={}));const y="hlf-fabric";class m extends a.JSONSerializer{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function f(t,e,n,o){const s=o[n];if(!s)return;if("object"!=typeof s){const e=i.repositoryFromTypeMetadata(o,n,this.adapter.alias),a=await e.read(s,t);return await i.cacheModelForPopulate(t,o,n,s,a),void(o[n]=s)}e.class="string"==typeof e.class?e.class:e.class().name;const c=a.Model.get(e.class);if(!c)throw new r.InternalError("Could not find model "+e.class);const l=i.Repository.forModel(c,this.adapter.alias),d=await l.create(s,t),u=a.Model.pk(d);await i.cacheModelForPopulate(t,o,n,d[u],d),o[n]=d[u]}async function w(t,e,r,n){const o=n[r];if(!o)return;if(e.cascade.update!==i.Cascade.CASCADE)return;if("object"!=typeof o){const e=i.repositoryFromTypeMetadata(n,r,this.adapter.alias),a=await e.read(o,t);return await i.cacheModelForPopulate(t,n,r,o,a),void(n[r]=o)}const s=await i.createOrUpdate(n[r],t,this.adapter.alias),c=a.Model.pk(s);await i.cacheModelForPopulate(t,n,r,s[c],s),n[r]=s[c]}async function _(t,e,r,n){const o=n[r];if(!o)return;if(e.cascade.update!==i.Cascade.CASCADE)return;const s=i.repositoryFromTypeMetadata(n,r,this.adapter.alias);let c;c=o instanceof a.Model?await s.delete(n[r][a.Model.pk(s.class)],t):await s.delete(n[r],t),await i.cacheModelForPopulate(t,n,r,c[a.Model.pk(s.class)],c)}async function x(t,e,n,o){const s=o[n];if(!s||!s.length)return;const c=typeof s[0];if(!s.every((t=>typeof t===c)))throw new r.InternalError(`Invalid operation. All elements of property ${n} must match the same type.`);const l=new Set([...s]);if("object"!==c){const e=i.repositoryFromTypeMetadata(o,n,this.adapter.alias);for(const a of l){const r=await e.read(a,t);await i.cacheModelForPopulate(t,o,n,a,r)}return void(o[n]=[...l])}const d=a.Model.pk(s[0]),u=new Set;for(const e of s){const a=await i.createOrUpdate(e,t,this.adapter.alias);await i.cacheModelForPopulate(t,o,n,a[d],a),u.add(a[d])}o[n]=[...u]}async function b(t,e,n,o){if(e.cascade.delete!==i.Cascade.CASCADE)return;const s=o[n];if(!s||!s.length)return;const c=typeof s[0];if(!s.every((t=>typeof t===c)))throw new r.InternalError(`Invalid operation. All elements of property ${n} must match the same type.`);const l="object"===c,d=l?i.Repository.forModel(s[0],this.adapter.alias):i.repositoryFromTypeMetadata(o,n,this.adapter.alias),u=new Set([...l?s.map((t=>t[a.Model.pk(this.class)])):s]);for(const e of u.values()){const a=await d.delete(e,t);await i.cacheModelForPopulate(t,o,n,e,a)}o[n]=[...u]}async function C(t,e,a,n){if(!e.populate)return;const o=n[a],s=Array.isArray(o);if(void 0===o||s&&0===o.length)return;const c=await(async(e,a,n,o,s)=>{let c,l;const d=[];for(const u of o){c=i.getPopulateKey(a.constructor.name,n,u);try{l=await e.get(c)}catch(e){const o=i.repositoryFromTypeMetadata(a,n,s);if(!o)throw new r.InternalError("Could not find repo");l=await o.read(u,t)}d.push(l)}return d})(t,n,a,s?o:[o],this.adapter.alias);n[a]=s?c:c[0]}class A extends s.MiniLogger{constructor(t,e,a){super(t,e),this.logger=a?a.logging.getLogger(t):new s.MiniLogger(t,e)}log(t,e,a){if(s.NumericLogLevels[this.config("level")]<s.NumericLogLevels[t])return;let n;switch(t){case s.LogLevel.info:n=this.logger.info;break;case s.LogLevel.verbose:n=this.logger.verbose;break;case s.LogLevel.debug:n=this.logger.debug;break;case s.LogLevel.error:n=this.logger.error;break;case s.LogLevel.silly:n=this.logger.silly;break;default:throw new r.InternalError("Invalid log level")}n.call(this.logger,this.createLog(t,e,a))}}async function E(t,e,a,r){try{const e=t.get("identity");r[a]=e.getID()}catch(t){throw new i.UnsupportedError("No User found in context. Please provide a user in the context")}}async function v(t,e,n,i){if(!e.type||i[n])return;let o;e.name||(e.name=a.Model.sequenceName(i,"pk"));try{o=await this.adapter.Sequence(e)}catch(t){throw new r.InternalError(`Failed to instantiate Sequence ${e.name}: ${t}`)}const s=await o.next(t);Object.defineProperty(i,n,{enumerable:!0,writable:!1,configurable:!0,value:s})}s.Logging.setFactory(((t,e,a)=>new A(t||A.name,e||{},a)));class S extends e.CouchDBAdapter{getClient(){throw new i.UnsupportedError("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new m}repository(){return u}constructor(t,e){super(t,y,e),this.Context=l}for(t,...e){return super.for(t,...e)}async create(t,e,r,...n){const{ctx:i,log:o,stub:s}=this.logCtx(n,this.create);o.info("in ADAPTER create with args "+n);const c=a.Model.tableName(t);try{o.info(`adding entry to ${c} table with pk ${e}`);const t=s.createCompositeKey(c,[e+""]);r=await this.putState(t,r,i)}catch(t){throw this.parseError(t)}return r}async read(t,e,...r){const{ctx:n,log:i,stub:o}=this.logCtx(r,this.read);i.info("in ADAPTER read with args "+r);const s=a.Model.tableName(t);let c;try{const t=o.createCompositeKey(s,[e+""]);c=await this.readState(t,n)}catch(t){throw this.parseError(t)}return c}async update(t,e,r,...n){const{ctx:i,log:o,stub:s}=this.logCtx(n,this.update),c=a.Model.tableName(t);try{o.verbose(`updating entry to ${c} table with pk ${e}`);const t=s.createCompositeKey(c,[e+""]);r=await this.putState(t,r,i)}catch(t){throw this.parseError(t)}return r}async delete(t,e,...r){const{ctx:n,log:i,ctxArgs:o,stub:s}=this.logCtx(r,this.delete),c=a.Model.tableName(t);let l;try{const a=s.createCompositeKey(c,[e+""]);l=await this.read(t,e,...o),i.verbose(`deleting entry with pk ${e} from ${c} table`),await this.deleteState(a,n)}catch(t){throw this.parseError(t)}return l}async deleteState(t,e){const{stub:a}=this.logCtx([e],this.deleteState);await a.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:(a,n,i)=>e.includes(n)?new Proxy(a[n],{async apply(e,a,i){switch(n){case"putState":{const[e,a,r]=i;return await e.putPrivateData(t,a.toString(),r),r}case"deleteState":{const[e,a]=i;return e.deletePrivateData(t,a)}case"readState":{const[e,a]=i;return e.getPrivateData(t,a)}case"queryResult":{const[e,a]=i;return e.getPrivateDataQueryResult(t,a)}case"queryResultPaginated":{const[e,a,r,n]=i,o=await e.getPrivateDataQueryResult(t,a),s=[];let c=0,l=!n,d=null;for(;;){const t=await o.next();if(t.value&&t.value.value.toString()){const e=t.value.key,a=t.value.value.toString("utf8");if(!l){e===n?.toString()&&(l=!0);continue}if(s.push({Key:e,Record:JSON.parse(a)}),d=e,c++,c>=r)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:d}}}if(t.done)return await o.close(),{iterator:s,metadata:{fetchedRecordsCount:s.length,bookmark:""}}}}default:throw new r.InternalError("Unsupported method override "+n)}}}):Reflect.get(a,n,i)})}async putState(t,e,a){let n;const{stub:i,log:o}=this.logCtx([a],this.putState);try{n=Buffer.from(S.serializer.serialize(e))}catch(e){throw new r.SerializationError(`Failed to serialize record with id ${t}: ${e}`)}return await i.putState(t.toString(),n),o.silly("state stored under id "+t),e}async readState(t,e){let a;const{stub:n,log:i}=this.logCtx([e],this.readState),o=(await n.getState(t)).toString();if(!o)throw new r.NotFoundError(`Record with id ${t} not found`);i.silly("Read state for id "+t);try{a=S.serializer.deserialize(o.toString())}catch(t){throw new r.SerializationError("Failed to parse record: "+t)}return a}async queryResult(t,e,...a){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,a=250,r,...n){return await t.getQueryResultWithPagination(JSON.stringify(e),a,r?.toString())}mergeModels(t){const e=t=>Object.entries(t).reduce(((t,[e,a])=>(void 0!==a&&(t[e]=a),t)),{});let a=t.pop();for(const r of t)a=Object.assign({},e(a),e(r));return a}decode(t){return S.textDecoder.decode(t)}async flags(t,e,a,r,...n){const i={stub:r.stub};if(r instanceof l)Object.assign(i,{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()});else{const n=r instanceof l?r.logger:r.logging.getLogger();n.info("In flags"),n.info(`${t} - ${e.name} - ${JSON.stringify(a)} - ${JSON.stringify(r)}`),n.info("flags: "+Object.keys(a)),n.info("ctx: "+r.constructor.name),Object.assign(i,{identity:r.clientIdentity,logger:new A(this,void 0,r),correlationId:r.stub.getTxID()})}return await super.flags(t,e,i,...n)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,a=!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")),a){e.TxId=n.value.txId,e.Timestamp=n.value.timestamp;try{e.Value=JSON.parse(n.value.value.toString("utf8"))}catch(a){t.error(a),e.Value=n.value.value.toString("utf8")}}else try{e=JSON.parse(n.value.value.toString("utf8"))}catch(a){t.error(a),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){const{log:a,ctxArgs:r,stub:n}=this.logCtx(e,this.raw);"boolean"==typeof r[0]&&r.shift();const{skip:i,limit:o}=t;let s;o||i?(delete t.limit,delete t.skip,a.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${i}`),s=(await this.queryResultPaginated(n,t,o||250,i?.toString())).iterator):(a.debug("Retrieving iterator"),s=await this.queryResult(n,t)),a.debug("Iterator acquired");const c=await this.resultIterator(a,s);return a.debug("returning {0} results",""+(Array.isArray(c)?c.length:1)),c}Statement(){return new p(this)}async createAll(t,e,n,...i){if(e.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.createAll),c=a.Model.tableName(t);return o.debug(`Creating ${e.length} entries ${c} table`),Promise.all(e.map(((e,a)=>this.create(t,e,n[a],...s))))}async updateAll(t,e,n,...i){if(e.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const{log:o,ctxArgs:s}=this.logCtx(i,this.updateAll),c=a.Model.tableName(t);return o.debug(`Updating ${e.length} entries ${c} table`),Promise.all(e.map(((e,a)=>this.update(t,e,n[a],...s))))}prepare(t,...e){const{log:n}=this.logCtx(e,this.prepare),i=a.Model.tableName(t.constructor),o=a.Model.pk(t.constructor),s=a.Model.segregate(t),c=Object.entries(s.model).reduce(((e,[n,i])=>{if(void 0===i)return e;const o=a.Model.columnName(t,n);if(this.isReserved(o))throw new r.InternalError(`Property name ${o} is reserved`);return e[o]=i,e}),{});return n.silly(`Preparing record for ${i} table with pk ${t[o]}`),{record:c,id:t[o],transient:s.transient}}revert(t,e,n,i,...o){const{log:s}=this.logCtx(o,this.revert),c={};c[a.Model.pk(e)]=n;const l="string"==typeof e?a.Model.build(c,e):new e(c);s.silly(`Rebuilding model ${l.constructor.name} id ${n}`);const d=Object.keys(l).reduce(((e,r)=>(e[r]=t[a.Model.columnName(e,r)],e)),l);return i&&(s.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach((([t,e])=>{if(t in d&&void 0!==d[t])throw new r.InternalError(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);d[t]=e}))),d}createPrefix(t,r,n,...i){const{ctxArgs:o}=this.logCtx(i,this.createPrefix),s={};return s[e.CouchDBKeys.TABLE]=a.Model.tableName(t),Object.assign(s,n),[t,r,s,...o]}updatePrefix(t,r,n,...i){const{ctxArgs:o}=this.logCtx(i,this.updatePrefix),s={};return s[e.CouchDBKeys.TABLE]=a.Model.tableName(t),Object.assign(s,n),[t,r,s,...o]}createAllPrefix(t,a,n,...i){if(a.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const o=i.pop(),s=a.map(((a,r)=>{const i={};return i[e.CouchDBKeys.TABLE]=t,Object.assign(i,n[r]),i}));return[t,a,s,o]}updateAllPrefix(t,a,n,...i){if(a.length!==n.length)throw new r.InternalError("Ids and models must have the same length");const o=i.pop(),s=a.map(((a,r)=>{const i={};return i[e.CouchDBKeys.TABLE]=t,Object.assign(i,n[r]),i}));return[t,a,s,o]}parseError(t,e){return S.parseError(e||t)}logCtx(t,e){return S.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new r.InternalError("No context provided");const a=t.pop();if(!(a instanceof r.Context))throw new r.InternalError("No context provided");if(t.filter((t=>t instanceof r.Context)).length>1)throw Error("here");const n=this?a.logger.for(this).for(e):a.logger.clear().for(this).for(e);return{ctx:a,log:e?n.for(e):n,stub:a.stub,identity:a.identity,ctxArgs:[...t,a]}}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(r.NotFoundError.name)?new r.NotFoundError(t):e.includes(r.ConflictError.name)?new r.ConflictError(t):e.includes(r.BadRequestError.name)?new r.BadRequestError(t):e.includes(i.QueryError.name)?new i.QueryError(t):e.includes(i.PagingError.name)?new i.PagingError(t):e.includes(i.UnsupportedError.name)?new i.UnsupportedError(t):e.includes(i.MigrationError.name)?new i.MigrationError(t):e.includes(i.ObserverError.name)?new i.ObserverError(t):e.includes(i.AuthorizationError.name)?new i.AuthorizationError(t):e.includes(i.ForbiddenError.name)?new i.ForbiddenError(t):e.includes(i.ConnectionError.name)?new i.ConnectionError(t):e.includes(r.SerializationError.name)?new r.SerializationError(t):new r.InternalError(t)}static decoration(){super.decoration(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.CREATED_BY).define(r.onCreate(E),o.propMetadata(i.PersistenceKeys.CREATED_BY,{})).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.UPDATED_BY).define(r.onCreateUpdate(E),o.propMetadata(i.PersistenceKeys.UPDATED_BY,{})).apply(),o.Decoration.flavouredAs(y).for(r.DBKeys.ID).define({decorator:(t,e)=>(n,i)=>o.apply(a.required(),r.readonly(),o.propMetadata(o.Metadata.key(r.DBKeys.ID,i),t),r.onCreate(v,t,e))(n,i)}).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.COLUMN).extend(n.Property()).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.TABLE).extend((t=>n.Object()(t))).apply(),o.Decoration.flavouredAs(y).for(i.PersistenceKeys.ONE_TO_ONE).define({decorator:(t,e,n,s,c)=>{const l={class:t,cascade:e,populate:n};return s&&(l.joinTable=s),c&&(l.name=c),o.apply(o.prop(),i.relation(i.PersistenceKeys.ONE_TO_ONE,l),a.type([t,String,Number,BigInt]),r.onCreate(f,l),r.onUpdate(w,l),r.onDelete(_,l),r.afterAny(C,l),o.propMetadata(i.PersistenceKeys.ONE_TO_ONE,l))}}).apply(),o.Decoration.for(i.PersistenceKeys.ONE_TO_MANY).define({decorator:(t,e,n,s,c)=>{const l={class:t,cascade:e,populate:n};return s&&(l.joinTable=s),c&&(l.name=c),o.apply(o.prop(),i.relation(i.PersistenceKeys.ONE_TO_MANY,l),a.list([t,String,Number]),r.onCreate(x,l),r.onUpdate(i.oneToManyOnUpdate,l),r.onDelete(b,l),r.afterAny(C,l),o.propMetadata(i.PersistenceKeys.ONE_TO_MANY,l))}}).apply()}}S.decoration(),i.Adapter.setCurrent(y);class O extends a.JSONSerializer{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class T extends n.Contract{static{this.adapter=new S}static{this.serializer=new O}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=i.Repository.forModel(e)}async listBy(t,e,a,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.listBy);return this.repo.listBy(e,a,...n)}async paginateBy(t,e,a,r,...n){const{ctxArgs:i}=await this.logCtx([...n,t],this.paginateBy);return this.repo.paginateBy(e,a,r,...i)}async findOneBy(t,e,a,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.findOneBy);return this.repo.findOneBy(e,a,...n)}async statement(t,e,...a){const{ctxArgs:r}=await this.logCtx([...a,t],this.statement);return this.repo.statement(e,...r)}async create(t,e,...r){const{log:n,ctxArgs:i}=await this.logCtx([...r,t],this.create);n.info("CONTRACT CREATE, "+i),"string"==typeof e&&(e=this.deserialize(e)),n.info("Creating model: "+JSON.stringify(e));const o=this.getTransientData(t);return n.info("Merging transient data..."),e=a.Model.merge(e,o,this.clazz),this.repo.create(e,...i)}async read(t,e,...a){const{log:r,ctxArgs:n}=await this.logCtx([...a,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...n)}getTransientData(t){const e=t.stub.getTransient();let a={};return e.has(this.repo.tableName)&&(a=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),a}async update(t,e,...r){const{log:n,ctxArgs:i}=await this.logCtx([...r,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),n.info("Updating model: "+JSON.stringify(e));const o=this.getTransientData(t);return n.info("Merging transient data..."),e=a.Model.merge(e,o,this.clazz),this.repo.update(e,...i)}async delete(t,e,...a){const{log:r,ctxArgs:n}=await this.logCtx([...a,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...n)}async deleteAll(t,e,...a){const{ctxArgs:r}=await this.logCtx([...a,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...r)}async readAll(t,e,...a){const{ctxArgs:r}=await this.logCtx([...a,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...r)}async updateAll(t,e,...a){const{log:r,ctxArgs:n}=await this.logCtx([...a,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 raw(t,e,a,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),T.adapter.raw(e,a,...n)}serialize(t){return T.serializer.serialize(t)}deserialize(t){return T.serializer.deserialize(t)}async init(t){t.logging.getLogger("tst").info("in init");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){t.logging.getLogger("test").info("in healthcheck");const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...a){const{log:r}=await this.logCtx([...a,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),r.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...a)}async logCtx(t,e){return T.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new r.InternalError("No context provided");const a=t.pop();if(a instanceof l)return{ctx:a,log:a.logger.clear().for(this).for(e),ctxArgs:[...t,a],stub:a.stub,identity:a.identity};if(!(a instanceof n.Context))throw new r.InternalError("No valid context provided");const i=a.logging.getLogger(),o={correlationId:a.stub.getTxID()};i.info(`Getting context with ${Object.keys(o)} and ctx`);const s=await T.adapter.context((()=>{if(i.info("Getting op for "+("string"==typeof e?e:e.name)),"string"==typeof e)return e;switch(e.name){case r.OperationKeys.CREATE:case r.OperationKeys.READ:case r.OperationKeys.UPDATE:case r.OperationKeys.DELETE:case r.BulkCrudOperationKeys.CREATE_ALL:case r.BulkCrudOperationKeys.READ_ALL:case r.BulkCrudOperationKeys.UPDATE_ALL:case r.BulkCrudOperationKeys.DELETE_ALL:}return e.name})(),o,this.clazz,a);i.info(`retrieve ctx: stub: ${!!s.stub}, identity: ${!!s.identity}, logger: ${s.logger instanceof A}`);const c=this?s.logger.for(this).for(e):s.logger.clear().for(this).for(e);return{ctx:s,log:c,stub:s.stub,identity:s.identity,ctxArgs:[...t,s]}}}class k extends T{constructor(t,e){super(t,e)}async create(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.create);a.info("Creating model: "+e);const n=this.deserialize(e);return a.info("Model deserialized: "+JSON.stringify(n)),this.serialize(await super.create(r,n))}async read(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.read);return a.info("Reading id: "+e),this.serialize(await super.read(r,e))}async update(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.update);return a.info("Updating model: "+e),this.serialize(await super.update(r,e))}async delete(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.delete);return a.info("Deleting id: "+e),this.serialize(await super.delete(r,e))}async deleteAll(t,e){const a=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${a.length} entries from the table`),JSON.stringify((await super.deleteAll(n,a)).map((t=>this.serialize(t))))}async readAll(t,e){const a=JSON.parse(e),{log:r,ctx:n}=await this.logCtx([t],this.readAll);return r.info(`reading ${a.length} entries from the table`),JSON.stringify((await super.readAll(n,a)).map((t=>this.serialize(t))))}async updateAll(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.updateAll),n=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return a.info(`Updating ${n.length} entries to the table`),JSON.stringify((await super.updateAll(r,n)).map((t=>this.serialize(t))))}async statement(t,e){const{ctx:a}=await this.logCtx([t],this.statement);return super.statement(a,e)}async raw(t,e,a){const{ctx:r}=await this.logCtx([t],this.raw),n=JSON.parse(e);return super.raw(r,n,a)}async init(t){await super.init(t)}async healthcheck(t){const{log:e,ctx:a}=await this.logCtx([t],this.updateAll);return e.debug(`Running Healthcheck: ${this.initialized}...`),JSON.stringify(await super.healthcheck(a))}async createAll(t,e){const{log:a}=await this.logCtx([t],this.createAll),r=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return a.info(`Adding ${r.length} entries to the table`),JSON.stringify((await super.createAll(t,r)).map((t=>this.serialize(t))))}}c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"create",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"read",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"update",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"delete",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"deleteAll",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"readAll",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"updateAll",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"statement",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Boolean]),c.__metadata("design:returntype",Promise)],k.prototype,"raw",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],k.prototype,"init",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],k.prototype,"healthcheck",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],k.prototype,"createAll",null);class N extends r.InternalError{constructor(t){super(t,N.name)}}class z extends r.InternalError{constructor(t){super(t,z.name)}}class D extends r.InternalError{constructor(t){super(t,D.name)}}class R extends r.BaseError{constructor(t){super(R.name,t,409)}}function P(t,e){const a=t+e;if(t!==a-e||e!==a-t)throw new N(`Addition overflow: ${t} + ${e}`);return a}function I(t,e){const a=t-e;if(t!==a+e||e!==t-a)throw new N(`Subtraction overflow: ${t} - ${e}`);return a}let B=class extends i.BaseModel{constructor(t){super(t)}};c.__decorate([i.pk({type:"String"}),c.__metadata("design:type",String)],B.prototype,"name",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],B.prototype,"owner",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],B.prototype,"symbol",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",Number)],B.prototype,"decimals",void 0),B=c.__decorate([i.table("erc20_tokens"),a.model(),c.__metadata("design:paramtypes",[Object])],B);let F=class extends i.BaseModel{constructor(t){super(t)}};c.__decorate([i.pk({type:"String"}),c.__metadata("design:type",String)],F.prototype,"id",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],F.prototype,"token",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",Number)],F.prototype,"balance",void 0),c.__decorate([i.column(),c.__metadata("design:type",String)],F.prototype,"captive",void 0),F=c.__decorate([i.table("erc20_wallets"),a.model(),c.__metadata("design:paramtypes",[Object])],F);let M=class extends i.BaseModel{constructor(t){super(t)}};function $(){return function(t,e,a){const n=a.value;return a.value=async function(...t){const a=t[0],o=a.clientIdentity.getID(),s=await this.tokenRepository.select(),c=await s.execute(a);if(0==c.length)throw new r.NotFoundError("No tokens avaialble");if(c.length>1)throw new r.NotFoundError("To many token available : "+c.length);if(c[0].owner!=o)throw new i.AuthorizationError(`User not authorized to run ${e} on the token`);return await n.apply(this,t)},a}}var L;c.__decorate([i.pk({type:"String"}),i.column(),a.required(),c.__metadata("design:type",String)],M.prototype,"owner",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",String)],M.prototype,"spender",void 0),c.__decorate([i.column(),a.required(),c.__metadata("design:type",Number)],M.prototype,"value",void 0),M=c.__decorate([i.table("erc20_allowances"),a.model(),c.__metadata("design:paramtypes",[Object])],M),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(L||(L={}));class K extends T{constructor(t){super(t,F),K.adapter=K.adapter||new S,this.walletRepository=u.forModel(F,K.adapter.alias),this.tokenRepository=u.forModel(B,K.adapter.alias),this.allowanceRepository=u.forModel(M,K.adapter.alias)}async TokenName(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.tokenRepository.select();return(await a.execute(e))[0].name}async Symbol(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.tokenRepository.select();return(await a.execute(e))[0].symbol}async Decimals(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.tokenRepository.select();return(await a.execute(e))[0].decimals}async TotalSupply(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=this.walletRepository.select(),n=await a.execute(e);if(0==n.length)throw new r.NotFoundError(`The token ${this.getName()} does not exist`);let i=0;return n.forEach((t=>{i+=t.balance})),i}async BalanceOf(t,e){const{ctx:a}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(a),(await this.walletRepository.read(e,a)).balance}async Transfer(t,e,a){const{ctx:n}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(n);const i=n.identity.getID();if(!await this._transfer(i,e,a,n))throw new r.InternalError("Failed to transfer");return!0}async TransferFrom(t,e,a,n){const{ctx:i}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(i);const o=i.identity.getID(),s=await this._getAllowance(e,o,i);if(!s||0>s.value)throw new D(`spender ${o} has no allowance from ${e}`);const c=s.value;if(n>c)throw new z("The spender does not have enough allowance to spend.");const l=I(c,n),d=Object.assign({},s,{value:l});if(await this.allowanceRepository.update(d,i),!await this._transfer(e,a,n,i))throw new r.InternalError("Failed to transfer");return!0}async _transfer(t,e,a,n){const o=n.logger;if(t===e)throw new i.AuthorizationError("cannot transfer to and from same client account");if(0>a)throw new z("transfer amount cannot be negative");const s=await this.walletRepository.read(t,n),c=s.balance;if(a>c)throw new z(`client account ${t} has insufficient funds.`);let l,d=!1;try{l=await this.walletRepository.read(e,n)}catch(t){if(!(t instanceof r.BaseError))throw new r.InternalError(t);if(404!==t.code)throw new r.InternalError(t.message);l=new F({id:e,balance:0,token:await this.TokenName(n)}),d=!0}const u=l.balance,p=I(c,a),g=P(u,a),h=Object.assign({},s,{balance:p});await this.walletRepository.update(h,n);const y=Object.assign({},l,{balance:g});d?await this.walletRepository.create(y,n):await this.walletRepository.update(y,n);const m={from:t,to:e,value:a};return this.repo.refresh(B,L.TRANSFER,"",m,n).catch((t=>o.error("Failed to notify transfer: "+t))),!0}async Approve(t,e,a){const{ctx:r,ctxArgs:n}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const i=r.identity.getID();let o=await this._getAllowance(i,e,r);if((await this.walletRepository.read(i,...n)).balance<a)throw new z(`client account ${i} has insufficient funds.`);o?(o.value=a,await this.allowanceRepository.update(o,...n)):(o=new M({owner:i,spender:e,value:a}),await this.allowanceRepository.create(o,...n));const s={owner:i,spender:e,value:a};return this.repo.refresh(B,L.APPROVAL,"",s,r),!0}async Allowance(t,e,a){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const n=await this._getAllowance(e,a,r);if(!n)throw new D(`spender ${a} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,a){const r=i.Condition.and(i.Condition.attribute("owner").eq(t),i.Condition.attribute("spender").eq(e)),n=await this.allowanceRepository.select().where(r).execute(a);return n?.[0]}async Initialize(t,e){const{ctx:a}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(a)).length>0)throw new i.AuthorizationError("contract options are already set, client is not authorized to change them");return e.owner=a.identity.getID(),await this.tokenRepository.create(e,a),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new R("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){const{ctx:a}=await this.logCtx([t],this.Mint);await this.CheckInitialized(a);const n=a.identity.getID();if(0>=e)throw new r.ValidationError("mint amount must be a positive integer");let i;try{i=await this.walletRepository.read(n,a);const t=P(i.balance,e),r=Object.assign({},i,{balance:t});await this.walletRepository.update(r,a)}catch(i){if(!(i instanceof r.BaseError))throw new r.InternalError(i);if(404!==i.code)throw new r.InternalError(i.message);{const r=new F({id:n,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(r,a)}}const o={from:"0x0",to:n,value:e};this.repo.ObserverHandler().updateObservers(B,L.TRANSFER,"",o,a)}async Burn(t,e){const{log:a,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const n=r.identity.getID(),i=await this.walletRepository.read(n,r),o=i.balance;if(e>o)throw new z("Minter has insufficient funds.");const s=I(o,e),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,r),a.info(e+" tokens were burned");const l={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(B,L.TRANSFER,"",l,r)}async BurnFrom(t,e,a){const{log:r,ctx:n}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(n);const i=await this.walletRepository.read(e,n),o=i.balance;if(a>o)throw new z(e+" has insufficient funds.");const s=I(o,a),c=Object.assign({},i,{balance:s});await this.walletRepository.update(c,n),r.info(`${a} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:a};this.repo.ObserverHandler().updateObservers(B,L.TRANSFER,"",l,n)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const a=e.identity.getID(),r=await this.walletRepository.read(a,e);if(!r)throw new z(`The account ${a} 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()}}c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"TokenName",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"Symbol",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"Decimals",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"TotalSupply",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String]),c.__metadata("design:returntype",Promise)],K.prototype,"BalanceOf",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Transfer",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"TransferFrom",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Approve",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,String]),c.__metadata("design:returntype",Promise)],K.prototype,"Allowance",null),c.__decorate([n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,B]),c.__metadata("design:returntype",Promise)],K.prototype,"Initialize",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"CheckInitialized",null),c.__decorate([$(),n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Mint",null),c.__decorate([$(),n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"Burn",null),c.__decorate([$(),n.Transaction(),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context,String,Number]),c.__metadata("design:returntype",Promise)],K.prototype,"BurnFrom",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"ClientAccountBalance",null),c.__decorate([n.Transaction(!1),c.__metadata("design:type",Function),c.__metadata("design:paramtypes",[n.Context]),c.__metadata("design:returntype",Promise)],K.prototype,"ClientAccountID",null);const j=[K],q="##VERSION##",J="##PACKAGE##";o.Metadata.registerLibrary(J,q),t.ContractLogger=A,t.FabricContractAdapter=S,t.FabricContractContext=l,t.FabricContractRepository=u,t.FabricContractRepositoryObservableHandler=d,t.FabricCrudContract=T,t.FabricStatement=p,t.PACKAGE_NAME=J,t.SerializedCrudContract=k,t.VERSION=q,t.contracts=j,t.createdByOnFabricCreateUpdate=E,t.pkFabricOnCreate=v},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/for-couchdb"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/db-decorators"),require("fabric-contract-api"),require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/logging"),require("tslib")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/for-couchdb","@decaf-ts/decorator-validation","@decaf-ts/db-decorators","fabric-contract-api","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/logging","tslib"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["for-fabric"]={},t.decafTsForCouchdb,t.decafTsDecoratorValidation,t.decafTsDbDecorators,t.fabricContractApi,t.decafTsCore,t.decafTsDecoration,t.decafTsLogging,t.tslib);
2
2
  //# sourceMappingURL=for-fabric.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-fabric.cjs","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/logging.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","context","data","propertyValue","innerRepo","repositoryFromTypeMetadata","alias","read","cacheModelForPopulate","class","InternalError","repo","forModel","created","create","oneToOneOnUpdate","cascade","update","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","e","fetchPopulateValues","ContractLogger","MiniLogger","conf","logger","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","info","verbose","error","silly","call","createLog","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequence","sequenceName","Sequence","next","defineProperty","enumerable","writable","configurable","Logging","setFactory","object","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","for","composedKey","createCompositeKey","String","putState","parseError","readState","ctxArgs","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","count","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","NotFoundError","getQueryResult","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","correlationId","getTxID","LOG","clientIdentity","undefined","index","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","shift","Statement","createAll","tableLabel","all","i","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","options","groupsort","attr","required","readonly","COLUMN","extend","FabricProperty","Property","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","BigInt","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","listBy","order","paginateBy","size","findOneBy","statement","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","getName","healthcheck","bind","overrides","READ","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","__decorate","Transaction","Ctx","prototype","Boolean","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","b","sub","ERC20Token","BaseModel","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-fabric.cjs","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/logging.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","context","data","propertyValue","innerRepo","repositoryFromTypeMetadata","alias","read","cacheModelForPopulate","class","InternalError","repo","forModel","created","create","oneToOneOnUpdate","cascade","update","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","e","fetchPopulateValues","ContractLogger","MiniLogger","conf","logger","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","info","verbose","error","silly","call","createLog","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequence","sequenceName","Sequence","next","defineProperty","enumerable","writable","configurable","Logging","setFactory","object","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","for","composedKey","createCompositeKey","String","putState","parseError","readState","ctxArgs","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","count","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","NotFoundError","getQueryResult","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","correlationId","getTxID","LOG","clientIdentity","undefined","index","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","shift","Statement","createAll","tableLabel","all","i","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","options","groupsort","attr","required","readonly","COLUMN","extend","FabricProperty","Property","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","BigInt","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","listBy","order","paginateBy","size","findOneBy","statement","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","getName","healthcheck","bind","overrides","READ","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","__decorate","Transaction","Ctx","prototype","Boolean","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","b","sub","ERC20Token","BaseModel","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -1,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,required as o,type as l,list as c,model as u}from"@decaf-ts/decorator-validation";import{Context as d,OperationKeys as p,BulkCrudOperationKeys as g,DBKeys as h,InternalError as y,SerializationError as w,NotFoundError as f,ConflictError as m,BadRequestError as b,onCreate as x,onCreateUpdate as A,readonly as v,onUpdate as S,onDelete as C,afterAny as O,BaseError as N,ValidationError as k}from"@decaf-ts/db-decorators";import{Property as E,Object as R,Contract as z,Context as T,Transaction as P}from"fabric-contract-api";import{ObserverHandler as I,Adapter as D,Repository as $,Condition as F,repositoryFromTypeMetadata as B,cacheModelForPopulate as j,Cascade as L,createOrUpdate as _,getPopulateKey as J,UnsupportedError as q,QueryError as M,PagingError as U,MigrationError as Y,ObserverError as H,AuthorizationError as K,ForbiddenError as V,ConnectionError as G,PersistenceKeys as Q,relation as W,oneToManyOnUpdate as X,pk as Z,column as tt,table as et,BaseModel as it}from"@decaf-ts/core";import{Metadata as rt,Decoration as nt,propMetadata as st,apply as at,prop as ot}from"@decaf-ts/decoration";import{Logging as lt,MiniLogger as ct,NumericLogLevels as ut,LogLevel as dt}from"@decaf-ts/logging";import{__decorate as pt,__metadata as gt}from"tslib";class ht extends d{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class yt extends I{constructor(t=[p.CREATE,p.UPDATE,p.DELETE,g.CREATE_ALL,g.UPDATE_ALL,g.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,l]=r,c="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("_")})(c,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:i})))}else a.setEvent(e,Buffer.from(JSON.stringify(l)))}}class wt extends ${constructor(t,e,i){super(t,e),this.trackedEvents=i}ObserverHandler(){return new yt}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class ft 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=rt.get(this.fromSelector,rt.key(h.ID,n))?.type;return this.selectSelector?r:r.map((t=>this.processRecord(t,n,a,i)))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=s.tableName(this.fromSelector);const n={selector:t};if(this.selectSelector&&(n.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(F.and(this.whereCondition,F.attribute(e.TABLE).eq(n.selector[e.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(i).indexOf(r[0]))switch(r[0]){case i.AND:t[i.AND]=[...Object.values(t[i.AND]).reduce(((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const n=r[0];return n===i.AND?t.push(...e[n]):t.push(e),t}),[])],n.selector=t;break;case i.OR:{const e={};e[i.AND]=[t,...Object.entries(n.selector).map((([t,e])=>{const i={};return i[t]=e,i}))],n.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach((([t,e])=>{n.selector[t],n.selector[t]=e}))}if(this.orderBySelector){n.sort=n.sort||[],n.selector=n.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,n.sort.push(i),n.selector[t]||(n.selector[t]={},n.selector[t][r.BIGGER]=null)}return this.limitSelector&&(n.limit=this.limitSelector),this.offsetSelector&&(n.skip=this.offsetSelector),n}}var mt,bt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(mt||(mt={})),(t=>{t.X509="X.509"})(bt||(bt={}));const xt="hlf-fabric";class At extends a{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function vt(t,e,i,r){const n=r[i];if(!n)return;if("object"!=typeof n){const e=B(r,i,this.adapter.alias),s=await e.read(n,t);return await j(t,r,i,n,s),void(r[i]=n)}e.class="string"==typeof e.class?e.class:e.class().name;const a=s.get(e.class);if(!a)throw new y("Could not find model "+e.class);const o=$.forModel(a,this.adapter.alias),l=await o.create(n,t),c=s.pk(l);await j(t,r,i,l[c],l),r[i]=l[c]}async function St(t,e,i,r){const n=r[i];if(!n)return;if(e.cascade.update!==L.CASCADE)return;if("object"!=typeof n){const e=B(r,i,this.adapter.alias),s=await e.read(n,t);return await j(t,r,i,n,s),void(r[i]=n)}const a=await _(r[i],t,this.adapter.alias),o=s.pk(a);await j(t,r,i,a[o],a),r[i]=a[o]}async function Ct(t,e,i,r){const n=r[i];if(!n)return;if(e.cascade.update!==L.CASCADE)return;const a=B(r,i,this.adapter.alias);let o;o=n instanceof s?await a.delete(r[i][s.pk(a.class)],t):await a.delete(r[i],t),await j(t,r,i,o[s.pk(a.class)],o)}async function Ot(t,e,i,r){const n=r[i];if(!n||!n.length)return;const a=typeof n[0];if(!n.every((t=>typeof t===a)))throw new y(`Invalid operation. All elements of property ${i} must match the same type.`);const o=new Set([...n]);if("object"!==a){const e=B(r,i,this.adapter.alias);for(const n of o){const s=await e.read(n,t);await j(t,r,i,n,s)}return void(r[i]=[...o])}const l=s.pk(n[0]),c=new Set;for(const e of n){const n=await _(e,t,this.adapter.alias);await j(t,r,i,n[l],n),c.add(n[l])}r[i]=[...c]}async function Nt(t,e,i,r){if(e.cascade.delete!==L.CASCADE)return;const n=r[i];if(!n||!n.length)return;const a=typeof n[0];if(!n.every((t=>typeof t===a)))throw new y(`Invalid operation. All elements of property ${i} must match the same type.`);const o="object"===a,l=o?$.forModel(n[0],this.adapter.alias):B(r,i,this.adapter.alias),c=new Set([...o?n.map((t=>t[s.pk(this.class)])):n]);for(const e of c.values()){const n=await l.delete(e,t);await j(t,r,i,e,n)}r[i]=[...c]}async function kt(t,e,i,r){if(!e.populate)return;const n=r[i],s=Array.isArray(n);if(void 0===n||s&&0===n.length)return;const a=await(async(e,i,r,n,s)=>{let a,o;const l=[];for(const c of n){a=J(i.constructor.name,r,c);try{o=await e.get(a)}catch(e){const n=B(i,r,s);if(!n)throw new y("Could not find repo");o=await n.read(c,t)}l.push(o)}return l})(t,r,i,s?n:[n],this.adapter.alias);r[i]=s?a:a[0]}class Et extends ct{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new ct(t,e)}log(t,e,i){if(ut[this.config("level")]<ut[t])return;let r;switch(t){case dt.info:r=this.logger.info;break;case dt.verbose:r=this.logger.verbose;break;case dt.debug:r=this.logger.debug;break;case dt.error:r=this.logger.error;break;case dt.silly:r=this.logger.silly;break;default:throw new y("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}async function Rt(t,e,i,r){try{const e=t.get("identity");r[i]=e.getID()}catch(t){throw new q("No User found in context. Please provide a user in the context")}}async function zt(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 y(`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})}lt.setFactory(((t,e,i)=>new Et(t||Et.name,e||{},i)));class Tt extends n{getClient(){throw new q("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new At}repository(){return wt}constructor(t,e){super(t,xt,e),this.Context=ht}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 l=s.tableName(t);try{a.info(`adding entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,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 l;try{const t=a.createCompositeKey(o,[e+""]);l=await this.readState(t,r)}catch(t){throw this.parseError(t)}return l}async update(t,e,i,...r){const{ctx:n,log:a,stub:o}=this.logCtx(r,this.update),l=s.tableName(t);try{a.verbose(`updating entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,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),l=s.tableName(t);let c;try{const i=o.createCompositeKey(l,[e+""]);c=await this.read(t,e,...a),n.verbose(`deleting entry with pk ${e} from ${l} table`),await this.deleteState(i,r)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{stub:i}=this.logCtx([e],this.deleteState);await i.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map((t=>t.name));return new Proxy(this,{get:(i,r,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 l=0,c=!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(!c){e===s?.toString()&&(c=!0);continue}if(o.push({Key:e,Record:JSON.parse(i)}),u=e,l++,l>=r)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new y("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(Tt.serializer.serialize(e))}catch(e){throw new w(`Failed to serialize record with id ${t}: ${e}`)}return await n.putState(t.toString(),r),s.silly("state stored under id "+t),e}async readState(t,e){let i;const{stub:r,log:n}=this.logCtx([e],this.readState),s=(await r.getState(t)).toString();if(!s)throw new f(`Record with id ${t} not found`);n.silly("Read state for id "+t);try{i=Tt.serializer.deserialize(s.toString())}catch(t){throw new w("Failed to parse record: "+t)}return i}async queryResult(t,e,...i){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,i=250,r,...n){return await t.getQueryResultWithPagination(JSON.stringify(e),i,r?.toString())}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 Tt.textDecoder.decode(t)}async flags(t,e,i,r,...n){const s={stub:r.stub};if(r instanceof ht)Object.assign(s,{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()});else{const n=r instanceof ht?r.logger:r.logging.getLogger();n.info("In flags"),n.info(`${t} - ${e.name} - ${JSON.stringify(i)} - ${JSON.stringify(r)}`),n.info("flags: "+Object.keys(i)),n.info("ctx: "+r.constructor.name),Object.assign(s,{identity:r.clientIdentity,logger:new Et(this,void 0,r),correlationId:r.stub.getTxID()})}return 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){const{log:i,ctxArgs:r,stub:n}=this.logCtx(e,this.raw);"boolean"==typeof r[0]&&r.shift();const{skip:s,limit:a}=t;let o;a||s?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${a}/ skip: ${s}`),o=(await this.queryResultPaginated(n,t,a||250,s?.toString())).iterator):(i.debug("Retrieving iterator"),o=await this.queryResult(n,t)),i.debug("Iterator acquired");const l=await this.resultIterator(i,o);return i.debug("returning {0} results",""+(Array.isArray(l)?l.length:1)),l}Statement(){return new ft(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new y("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 y("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 y(`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 l="string"==typeof e?s.build(o,e):new e(o);a.silly(`Rebuilding model ${l.constructor.name} id ${i}`);const c=Object.keys(l).reduce(((e,i)=>(e[i]=t[s.columnName(e,i)],e)),l);return r&&(a.debug("re-adding transient properties: "+Object.keys(r).join(", ")),Object.entries(r).forEach((([t,e])=>{if(t in c&&void 0!==c[t])throw new y(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);c[t]=e}))),c}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 y("Ids and models must have the same length");const s=n.pop(),a=i.map(((i,n)=>{const s={};return s[e.TABLE]=t,Object.assign(s,r[n]),s}));return[t,i,a,s]}updateAllPrefix(t,i,r,...n){if(i.length!==r.length)throw new y("Ids and models must have the same length");const s=n.pop(),a=i.map(((i,n)=>{const s={};return s[e.TABLE]=t,Object.assign(s,r[n]),s}));return[t,i,a,s]}parseError(t,e){return Tt.parseError(e||t)}logCtx(t,e){return Tt.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new y("No context provided");const i=t.pop();if(!(i instanceof d))throw new y("No context provided");if(t.filter((t=>t instanceof d)).length>1)throw Error("here");const r=this?i.logger.for(this).for(e):i.logger.clear().for(this).for(e);return{ctx:i,log:e?r.for(e):r,stub:i.stub,identity:i.identity,ctxArgs:[...t,i]}}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(f.name)?new f(t):e.includes(m.name)?new m(t):e.includes(b.name)?new b(t):e.includes(M.name)?new M(t):e.includes(U.name)?new U(t):e.includes(q.name)?new q(t):e.includes(Y.name)?new Y(t):e.includes(H.name)?new H(t):e.includes(K.name)?new K(t):e.includes(V.name)?new V(t):e.includes(G.name)?new G(t):e.includes(w.name)?new w(t):new y(t)}static decoration(){super.decoration(),nt.flavouredAs(xt).for(Q.CREATED_BY).define(x(Rt),st(Q.CREATED_BY,{})).apply(),nt.flavouredAs(xt).for(Q.UPDATED_BY).define(A(Rt),st(Q.UPDATED_BY,{})).apply(),nt.flavouredAs(xt).for(h.ID).define({decorator:(t,e)=>(i,r)=>at(o(),v(),st(rt.key(h.ID,r),t),x(zt,t,e))(i,r)}).apply(),nt.flavouredAs(xt).for(Q.COLUMN).extend(E()).apply(),nt.flavouredAs(xt).for(Q.TABLE).extend((t=>R()(t))).apply(),nt.flavouredAs(xt).for(Q.ONE_TO_ONE).define({decorator:(t,e,i,r,n)=>{const s={class:t,cascade:e,populate:i};return r&&(s.joinTable=r),n&&(s.name=n),at(ot(),W(Q.ONE_TO_ONE,s),l([t,String,Number,BigInt]),x(vt,s),S(St,s),C(Ct,s),O(kt,s),st(Q.ONE_TO_ONE,s))}}).apply(),nt.for(Q.ONE_TO_MANY).define({decorator:(t,e,i,r,n)=>{const s={class:t,cascade:e,populate:i};return r&&(s.joinTable=r),n&&(s.name=n),at(ot(),W(Q.ONE_TO_MANY,s),c([t,String,Number]),x(Ot,s),S(X,s),C(Nt,s),O(kt,s),st(Q.ONE_TO_MANY,s))}}).apply()}}Tt.decoration(),D.setCurrent(xt);class Pt extends a{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class It extends z{static{this.adapter=new Tt}static{this.serializer=new Pt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=$.forModel(e)}async listBy(t,e,i,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.listBy);return this.repo.listBy(e,i,...n)}async paginateBy(t,e,i,r,...n){const{ctxArgs:s}=await this.logCtx([...n,t],this.paginateBy);return this.repo.paginateBy(e,i,r,...s)}async findOneBy(t,e,i,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.findOneBy);return this.repo.findOneBy(e,i,...n)}async statement(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.statement);return this.repo.statement(e,...r)}async create(t,e,...i){const{log:r,ctxArgs: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 raw(t,e,i,...r){const{ctxArgs:n}=await this.logCtx([...r,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),It.adapter.raw(e,i,...n)}serialize(t){return It.serializer.serialize(t)}deserialize(t){return It.serializer.deserialize(t)}async init(t){t.logging.getLogger("tst").info("in init");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){t.logging.getLogger("test").info("in healthcheck");const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...i){const{log:r}=await this.logCtx([...i,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),r.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...i)}async logCtx(t,e){return It.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new y("No context provided");const i=t.pop();if(i instanceof ht)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof T))throw new y("No valid context provided");const r=i.logging.getLogger(),n={correlationId:i.stub.getTxID()};r.info(`Getting context with ${JSON.stringify(n)} and ctx`);const s=await It.adapter.context((()=>{if(r.info("Getting op for "+("string"==typeof e?e:e.name)),"string"==typeof e)return e;switch(e.name){case p.CREATE:case p.READ:case p.UPDATE:case p.DELETE:case g.CREATE_ALL:case g.READ_ALL:case g.UPDATE_ALL:case g.DELETE_ALL:}return e.name})(),n,this.clazz,i);r.info(`retrieve ctx: stub: ${!!s.stub}, identity: ${!!s.identity}, logger: ${s.logger instanceof Et}`);const a=this?s.logger.for(this).for(e):s.logger.clear().for(this).for(e);return{ctx:s,log:a,stub:s.stub,identity:s.identity,ctxArgs:[...t,s]}}}class Dt extends It{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){const{ctx:i}=await this.logCtx([t],this.statement);return super.statement(i,e)}async raw(t,e,i){const{ctx:r}=await this.logCtx([t],this.raw),n=JSON.parse(e);return super.raw(r,n,i)}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))))}}pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"create",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"read",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"update",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"delete",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"deleteAll",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"readAll",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"updateAll",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"statement",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String,Boolean]),gt("design:returntype",Promise)],Dt.prototype,"raw",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Dt.prototype,"init",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Dt.prototype,"healthcheck",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"createAll",null);class $t extends y{constructor(t){super(t,$t.name)}}class Ft extends y{constructor(t){super(t,Ft.name)}}class Bt extends y{constructor(t){super(t,Bt.name)}}class jt extends N{constructor(t){super(jt.name,t,409)}}function Lt(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new $t(`Addition overflow: ${t} + ${e}`);return i}function _t(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new $t(`Subtraction overflow: ${t} - ${e}`);return i}let Jt=class extends it{constructor(t){super(t)}};pt([Z({type:"String"}),gt("design:type",String)],Jt.prototype,"name",void 0),pt([tt(),o(),gt("design:type",String)],Jt.prototype,"owner",void 0),pt([tt(),o(),gt("design:type",String)],Jt.prototype,"symbol",void 0),pt([tt(),o(),gt("design:type",Number)],Jt.prototype,"decimals",void 0),Jt=pt([et("erc20_tokens"),u(),gt("design:paramtypes",[Object])],Jt);let qt=class extends it{constructor(t){super(t)}};pt([Z({type:"String"}),gt("design:type",String)],qt.prototype,"id",void 0),pt([tt(),o(),gt("design:type",String)],qt.prototype,"token",void 0),pt([tt(),o(),gt("design:type",Number)],qt.prototype,"balance",void 0),pt([tt(),gt("design:type",String)],qt.prototype,"captive",void 0),qt=pt([et("erc20_wallets"),u(),gt("design:paramtypes",[Object])],qt);let Mt=class extends it{constructor(t){super(t)}};function Ut(){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 f("No tokens avaialble");if(a.length>1)throw new f("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 Yt;pt([Z({type:"String"}),tt(),o(),gt("design:type",String)],Mt.prototype,"owner",void 0),pt([tt(),o(),gt("design:type",String)],Mt.prototype,"spender",void 0),pt([tt(),o(),gt("design:type",Number)],Mt.prototype,"value",void 0),Mt=pt([et("erc20_allowances"),u(),gt("design:paramtypes",[Object])],Mt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Yt||(Yt={}));class Ht extends It{constructor(t){super(t,qt),Ht.adapter=Ht.adapter||new Tt,this.walletRepository=wt.forModel(qt,Ht.adapter.alias),this.tokenRepository=wt.forModel(Jt,Ht.adapter.alias),this.allowanceRepository=wt.forModel(Mt,Ht.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 f(`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 y("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 Bt(`spender ${s} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Ft("The spender does not have enough allowance to spend.");const l=_t(o,r),c=Object.assign({},a,{value:l});if(await this.allowanceRepository.update(c,n),!await this._transfer(e,i,r,n))throw new y("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 Ft("transfer amount cannot be negative");const s=await this.walletRepository.read(t,r),a=s.balance;if(i>a)throw new Ft(`client account ${t} has insufficient funds.`);let o,l=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof N))throw new y(t);if(404!==t.code)throw new y(t.message);o=new qt({id:e,balance:0,token:await this.TokenName(r)}),l=!0}const c=o.balance,u=_t(a,i),d=Lt(c,i),p=Object.assign({},s,{balance:u});await this.walletRepository.update(p,r);const g=Object.assign({},o,{balance:d});l?await this.walletRepository.create(g,r):await this.walletRepository.update(g,r);const h={from:t,to:e,value:i};return this.repo.refresh(Jt,Yt.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 Ft(`client account ${s} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...n)):(a=new Mt({owner:s,spender:e,value:i}),await this.allowanceRepository.create(a,...n));const o={owner:s,spender:e,value:i};return this.repo.refresh(Jt,Yt.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 Bt(`spender ${i} has no allowance from ${e}`);return n.value}async _getAllowance(t,e,i){const r=F.and(F.attribute("owner").eq(t),F.attribute("spender").eq(e)),n=await this.allowanceRepository.select().where(r).execute(i);return n?.[0]}async Initialize(t,e){const{ctx:i}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(i)).length>0)throw new 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 jt("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 k("mint amount must be a positive integer");let n;try{n=await this.walletRepository.read(r,i);const t=Lt(n.balance,e),s=Object.assign({},n,{balance:t});await this.walletRepository.update(s,i)}catch(n){if(!(n instanceof N))throw new y(n);if(404!==n.code)throw new y(n.message);{const n=new qt({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(Jt,Yt.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 Ft("Minter has insufficient funds.");const o=_t(a,e),l=Object.assign({},s,{balance:o});await this.walletRepository.update(l,r),i.info(e+" tokens were burned");const c={from:n,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Jt,Yt.TRANSFER,"",c,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 Ft(e+" has insufficient funds.");const o=_t(a,i),l=Object.assign({},s,{balance:o});await this.walletRepository.update(l,n),r.info(`${i} tokens were burned from ${e}`);const c={from:e,to:"0x0",value:i};this.repo.ObserverHandler().updateObservers(Jt,Yt.TRANSFER,"",c,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 Ft(`The account ${i} does not exist`);return r.balance}async ClientAccountID(t){const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return await this.CheckInitialized(e),e.identity.getID()}}pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"TokenName",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"Symbol",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"Decimals",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"TotalSupply",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Ht.prototype,"BalanceOf",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"Transfer",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"TransferFrom",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"Approve",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String,String]),gt("design:returntype",Promise)],Ht.prototype,"Allowance",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,Jt]),gt("design:returntype",Promise)],Ht.prototype,"Initialize",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"CheckInitialized",null),pt([Ut(),P(),gt("design:type",Function),gt("design:paramtypes",[T,Number]),gt("design:returntype",Promise)],Ht.prototype,"Mint",null),pt([Ut(),P(),gt("design:type",Function),gt("design:paramtypes",[T,Number]),gt("design:returntype",Promise)],Ht.prototype,"Burn",null),pt([Ut(),P(),gt("design:type",Function),gt("design:paramtypes",[T,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"BurnFrom",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"ClientAccountBalance",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"ClientAccountID",null);const Kt=[Ht],Vt="##VERSION##",Gt="##PACKAGE##";rt.registerLibrary(Gt,Vt);export{Et as ContractLogger,Tt as FabricContractAdapter,ht as FabricContractContext,wt as FabricContractRepository,yt as FabricContractRepositoryObservableHandler,It as FabricCrudContract,ft as FabricStatement,Gt as PACKAGE_NAME,Dt as SerializedCrudContract,Vt as VERSION,Kt as contracts,Rt as createdByOnFabricCreateUpdate,zt as pkFabricOnCreate};
1
+ import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as i,CouchDBOperator as r,CouchDBAdapter as s}from"@decaf-ts/for-couchdb";import{Model as n,JSONSerializer as a,required as o,type as l,list as c,model as u}from"@decaf-ts/decorator-validation";import{Context as d,OperationKeys as p,BulkCrudOperationKeys as g,DBKeys as h,InternalError as y,SerializationError as w,NotFoundError as f,ConflictError as m,BadRequestError as b,onCreate as x,onCreateUpdate as A,readonly as v,onUpdate as S,onDelete as C,afterAny as O,BaseError as k,ValidationError as N}from"@decaf-ts/db-decorators";import{Property as E,Object as R,Contract as z,Context as T,Transaction as P}from"fabric-contract-api";import{ObserverHandler as I,Adapter as D,Repository as $,Condition as F,repositoryFromTypeMetadata as B,cacheModelForPopulate as j,Cascade as L,createOrUpdate as _,getPopulateKey as J,UnsupportedError as q,QueryError as M,PagingError as U,MigrationError as Y,ObserverError as H,AuthorizationError as K,ForbiddenError as V,ConnectionError as G,PersistenceKeys as Q,relation as W,oneToManyOnUpdate as X,pk as Z,column as tt,table as et,BaseModel as it}from"@decaf-ts/core";import{Metadata as rt,Decoration as st,propMetadata as nt,apply as at,prop as ot}from"@decaf-ts/decoration";import{Logging as lt,MiniLogger as ct,NumericLogLevels as ut,LogLevel as dt}from"@decaf-ts/logging";import{__decorate as pt,__metadata as gt}from"tslib";class ht extends d{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class yt extends I{constructor(t=[p.CREATE,p.UPDATE,p.DELETE,g.CREATE_ALL,g.UPDATE_ALL,g.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,i,...r){const{log:s,ctx:n}=D.logCtx(r,this.updateObservers),{stub:a}=n,[o,l]=r,c="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){s.debug(`Emitting ${e} event`);const t=((t,e,i)=>{const r=[t,e];return i&&r.push(i),r.join("_")})(c,e,o);a.setEvent(t,Buffer.from(JSON.stringify({id:i})))}else a.setEvent(e,Buffer.from(JSON.stringify(l)))}}class wt extends ${constructor(t,e,i){super(t,e),this.trackedEvents=i}ObserverHandler(){return new yt}async updateObservers(t,e,i,...r){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,i,...r)}}class ft extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:i}=this.logCtx(e,this.raw),r=await this.adapter.raw(t,!0,i),s=n.pk(this.fromSelector),a=rt.get(this.fromSelector,rt.key(h.ID,s))?.type;return this.selectSelector?r:r.map((t=>this.processRecord(t,s,a,i)))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=n.tableName(this.fromSelector);const s={selector:t};if(this.selectSelector&&(s.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(F.and(this.whereCondition,F.attribute(e.TABLE).eq(s.selector[e.TABLE]))).selector,r=Object.keys(t);if(1===r.length&&-1!==Object.values(i).indexOf(r[0]))switch(r[0]){case i.AND:t[i.AND]=[...Object.values(t[i.AND]).reduce(((t,e)=>{const r=Object.keys(e);if(1!==r.length)throw Error("Too many keys in query selector. should be one");const s=r[0];return s===i.AND?t.push(...e[s]):t.push(e),t}),[])],s.selector=t;break;case i.OR:{const e={};e[i.AND]=[t,...Object.entries(s.selector).map((([t,e])=>{const i={};return i[t]=e,i}))],s.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach((([t,e])=>{s.selector[t],s.selector[t]=e}))}if(this.orderBySelector){s.sort=s.sort||[],s.selector=s.selector||{};const[t,e]=this.orderBySelector,i={};i[t]=e,s.sort.push(i),s.selector[t]||(s.selector[t]={},s.selector[t][r.BIGGER]=null)}return this.limitSelector&&(s.limit=this.limitSelector),this.offsetSelector&&(s.skip=this.offsetSelector),s}}var mt,bt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(mt||(mt={})),(t=>{t.X509="X.509"})(bt||(bt={}));const xt="hlf-fabric";class At extends a{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function vt(t,e,i,r){const s=r[i];if(!s)return;if("object"!=typeof s){const e=B(r,i,this.adapter.alias),n=await e.read(s,t);return await j(t,r,i,s,n),void(r[i]=s)}e.class="string"==typeof e.class?e.class:e.class().name;const a=n.get(e.class);if(!a)throw new y("Could not find model "+e.class);const o=$.forModel(a,this.adapter.alias),l=await o.create(s,t),c=n.pk(l);await j(t,r,i,l[c],l),r[i]=l[c]}async function St(t,e,i,r){const s=r[i];if(!s)return;if(e.cascade.update!==L.CASCADE)return;if("object"!=typeof s){const e=B(r,i,this.adapter.alias),n=await e.read(s,t);return await j(t,r,i,s,n),void(r[i]=s)}const a=await _(r[i],t,this.adapter.alias),o=n.pk(a);await j(t,r,i,a[o],a),r[i]=a[o]}async function Ct(t,e,i,r){const s=r[i];if(!s)return;if(e.cascade.update!==L.CASCADE)return;const a=B(r,i,this.adapter.alias);let o;o=s instanceof n?await a.delete(r[i][n.pk(a.class)],t):await a.delete(r[i],t),await j(t,r,i,o[n.pk(a.class)],o)}async function Ot(t,e,i,r){const s=r[i];if(!s||!s.length)return;const a=typeof s[0];if(!s.every((t=>typeof t===a)))throw new y(`Invalid operation. All elements of property ${i} must match the same type.`);const o=new Set([...s]);if("object"!==a){const e=B(r,i,this.adapter.alias);for(const s of o){const n=await e.read(s,t);await j(t,r,i,s,n)}return void(r[i]=[...o])}const l=n.pk(s[0]),c=new Set;for(const e of s){const s=await _(e,t,this.adapter.alias);await j(t,r,i,s[l],s),c.add(s[l])}r[i]=[...c]}async function kt(t,e,i,r){if(e.cascade.delete!==L.CASCADE)return;const s=r[i];if(!s||!s.length)return;const a=typeof s[0];if(!s.every((t=>typeof t===a)))throw new y(`Invalid operation. All elements of property ${i} must match the same type.`);const o="object"===a,l=o?$.forModel(s[0],this.adapter.alias):B(r,i,this.adapter.alias),c=new Set([...o?s.map((t=>t[n.pk(this.class)])):s]);for(const e of c.values()){const s=await l.delete(e,t);await j(t,r,i,e,s)}r[i]=[...c]}async function Nt(t,e,i,r){if(!e.populate)return;const s=r[i],n=Array.isArray(s);if(void 0===s||n&&0===s.length)return;const a=await(async(e,i,r,s,n)=>{let a,o;const l=[];for(const c of s){a=J(i.constructor.name,r,c);try{o=await e.get(a)}catch(e){const s=B(i,r,n);if(!s)throw new y("Could not find repo");o=await s.read(c,t)}l.push(o)}return l})(t,r,i,n?s:[s],this.adapter.alias);r[i]=n?a:a[0]}class Et extends ct{constructor(t,e,i){super(t,e),this.logger=i?i.logging.getLogger(t):new ct(t,e)}log(t,e,i){if(ut[this.config("level")]<ut[t])return;let r;switch(t){case dt.info:r=this.logger.info;break;case dt.verbose:r=this.logger.verbose;break;case dt.debug:r=this.logger.debug;break;case dt.error:r=this.logger.error;break;case dt.silly:r=this.logger.silly;break;default:throw new y("Invalid log level")}r.call(this.logger,this.createLog(t,e,i))}}async function Rt(t,e,i,r){try{const e=t.get("identity");r[i]=e.getID()}catch(t){throw new q("No User found in context. Please provide a user in the context")}}async function zt(t,e,i,r){if(!e.type||r[i])return;let s;e.name||(e.name=n.sequenceName(r,"pk"));try{s=await this.adapter.Sequence(e)}catch(t){throw new y(`Failed to instantiate Sequence ${e.name}: ${t}`)}const a=await s.next(t);Object.defineProperty(r,i,{enumerable:!0,writable:!1,configurable:!0,value:a})}lt.setFactory(((t,e,i)=>new Et(t||Et.name,e||{},i)));class Tt extends s{getClient(){throw new q("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new At}repository(){return wt}constructor(t,e){super(t,xt,e),this.Context=ht}for(t,...e){return super.for(t,...e)}async create(t,e,i,...r){const{ctx:s,log:a,stub:o}=this.logCtx(r,this.create);a.info("in ADAPTER create with args "+r);const l=n.tableName(t);try{a.info(`adding entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async read(t,e,...i){const{ctx:r,log:s,stub:a}=this.logCtx(i,this.read);s.info("in ADAPTER read with args "+i);const o=n.tableName(t);let l;try{const t=a.createCompositeKey(o,[e+""]);l=await this.readState(t,r)}catch(t){throw this.parseError(t)}return l}async update(t,e,i,...r){const{ctx:s,log:a,stub:o}=this.logCtx(r,this.update),l=n.tableName(t);try{a.verbose(`updating entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);i=await this.putState(t,i,s)}catch(t){throw this.parseError(t)}return i}async delete(t,e,...i){const{ctx:r,log:s,ctxArgs:a,stub:o}=this.logCtx(i,this.delete),l=n.tableName(t);let c;try{const i=o.createCompositeKey(l,[e+""]);c=await this.read(t,e,...a),s.verbose(`deleting entry with pk ${e} from ${l} table`),await this.deleteState(i,r)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{stub:i}=this.logCtx([e],this.deleteState);await i.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map((t=>t.name));return new Proxy(this,{get:(i,r,s)=>e.includes(r)?new Proxy(i[r],{async apply(e,i,s){switch(r){case"putState":{const[e,i,r]=s;return await e.putPrivateData(t,i.toString(),r),r}case"deleteState":{const[e,i]=s;return e.deletePrivateData(t,i)}case"readState":{const[e,i]=s;return e.getPrivateData(t,i)}case"queryResult":{const[e,i]=s;return e.getPrivateDataQueryResult(t,i)}case"queryResultPaginated":{const[e,i,r,n]=s,a=await e.getPrivateDataQueryResult(t,i),o=[];let l=0,c=!n,u=null;for(;;){const t=await a.next();if(t.value&&t.value.value.toString()){const e=t.value.key,i=t.value.value.toString("utf8");if(!c){e===n?.toString()&&(c=!0);continue}if(o.push({Key:e,Record:JSON.parse(i)}),u=e,l++,l>=r)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await a.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new y("Unsupported method override "+r)}}}):Reflect.get(i,r,s)})}async putState(t,e,i){let r;const{stub:s,log:n}=this.logCtx([i],this.putState);try{r=Buffer.from(Tt.serializer.serialize(e))}catch(e){throw new w(`Failed to serialize record with id ${t}: ${e}`)}return await s.putState(t.toString(),r),n.silly("state stored under id "+t),e}async readState(t,e){let i;const{stub:r,log:s}=this.logCtx([e],this.readState),n=(await r.getState(t)).toString();if(!n)throw new f(`Record with id ${t} not found`);s.silly("Read state for id "+t);try{i=Tt.serializer.deserialize(n.toString())}catch(t){throw new w("Failed to parse record: "+t)}return i}async queryResult(t,e,...i){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,i=250,r,...s){return await t.getQueryResultWithPagination(JSON.stringify(e),i,r?.toString())}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 Tt.textDecoder.decode(t)}async flags(t,e,i,r,...s){const n={stub:r.stub};if(r instanceof ht)Object.assign(n,{logger:r.logger,identity:r.identity,correlationId:r.stub.getTxID()});else{const s=r instanceof ht?r.logger:r.logging.getLogger();s.info("In flags"),s.info(`${t} - ${e.name} - ${JSON.stringify(i)} - ${JSON.stringify(r)}`),s.info("flags: "+Object.keys(i)),s.info("ctx: "+r.constructor.name),Object.assign(n,{identity:r.clientIdentity,logger:new Et(this,void 0,r),correlationId:r.stub.getTxID()})}return await super.flags(t,e,n,...s)}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,i=!1){const r=[];let s=await e.next();for(;!s.done;){if(s.value&&s.value.value.toString()){let e={};if(t.debug(s.value.value.toString("utf8")),i){e.TxId=s.value.txId,e.Timestamp=s.value.timestamp;try{e.Value=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e.Value=s.value.value.toString("utf8")}}else try{e=JSON.parse(s.value.value.toString("utf8"))}catch(i){t.error(i),e=s.value.value.toString("utf8")}r.push(e)}s=await e.next()}return t.debug(`Closing iterator after ${r.length} results`),e.close(),r}async raw(t,...e){const{log:i,ctxArgs:r,stub:s}=this.logCtx(e,this.raw);"boolean"==typeof r[0]&&r.shift();const{skip:n,limit:a}=t;let o;a||n?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${a}/ skip: ${n}`),o=(await this.queryResultPaginated(s,t,a||250,n?.toString())).iterator):(i.debug("Retrieving iterator"),o=await this.queryResult(s,t)),i.debug("Iterator acquired");const l=await this.resultIterator(i,o);return i.debug("returning {0} results",""+(Array.isArray(l)?l.length:1)),l}Statement(){return new ft(this)}async createAll(t,e,i,...r){if(e.length!==i.length)throw new y("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(r,this.createAll),o=n.tableName(t);return s.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map(((e,r)=>this.create(t,e,i[r],...a))))}async updateAll(t,e,i,...r){if(e.length!==i.length)throw new y("Ids and models must have the same length");const{log:s,ctxArgs:a}=this.logCtx(r,this.updateAll),o=n.tableName(t);return s.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map(((e,r)=>this.update(t,e,i[r],...a))))}prepare(t,...e){const{log:i}=this.logCtx(e,this.prepare),r=n.tableName(t.constructor),s=n.pk(t.constructor),a=n.segregate(t),o=Object.entries(a.model).reduce(((e,[i,r])=>{if(void 0===r)return e;const s=n.columnName(t,i);if(this.isReserved(s))throw new y(`Property name ${s} is reserved`);return e[s]=r,e}),{});return i.silly(`Preparing record for ${r} table with pk ${t[s]}`),{record:o,id:t[s],transient:a.transient}}revert(t,e,i,r,...s){const{log:a}=this.logCtx(s,this.revert),o={};o[n.pk(e)]=i;const l="string"==typeof e?n.build(o,e):new e(o);a.silly(`Rebuilding model ${l.constructor.name} id ${i}`);const c=Object.keys(l).reduce(((e,i)=>(e[i]=t[n.columnName(e,i)],e)),l);return r&&(a.debug("re-adding transient properties: "+Object.keys(r).join(", ")),Object.entries(r).forEach((([t,e])=>{if(t in c&&void 0!==c[t])throw new y(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);c[t]=e}))),c}createPrefix(t,i,r,...s){const{ctxArgs:a}=this.logCtx(s,this.createPrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,r),[t,i,o,...a]}updatePrefix(t,i,r,...s){const{ctxArgs:a}=this.logCtx(s,this.updatePrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,r),[t,i,o,...a]}createAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new y("Ids and models must have the same length");const n=s.pop(),a=i.map(((i,s)=>{const n={};return n[e.TABLE]=t,Object.assign(n,r[s]),n}));return[t,i,a,n]}updateAllPrefix(t,i,r,...s){if(i.length!==r.length)throw new y("Ids and models must have the same length");const n=s.pop(),a=i.map(((i,s)=>{const n={};return n[e.TABLE]=t,Object.assign(n,r[s]),n}));return[t,i,a,n]}parseError(t,e){return Tt.parseError(e||t)}logCtx(t,e){return Tt.logCtx.call(this,t,e)}static logCtx(t,e){if(1>t.length)throw new y("No context provided");const i=t.pop();if(!(i instanceof d))throw new y("No context provided");if(t.filter((t=>t instanceof d)).length>1)throw Error("here");const r=this?i.logger.for(this).for(e):i.logger.clear().for(this).for(e);return{ctx:i,log:e?r.for(e):r,stub:i.stub,identity:i.identity,ctxArgs:[...t,i]}}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(f.name)?new f(t):e.includes(m.name)?new m(t):e.includes(b.name)?new b(t):e.includes(M.name)?new M(t):e.includes(U.name)?new U(t):e.includes(q.name)?new q(t):e.includes(Y.name)?new Y(t):e.includes(H.name)?new H(t):e.includes(K.name)?new K(t):e.includes(V.name)?new V(t):e.includes(G.name)?new G(t):e.includes(w.name)?new w(t):new y(t)}static decoration(){super.decoration(),st.flavouredAs(xt).for(Q.CREATED_BY).define(x(Rt),nt(Q.CREATED_BY,{})).apply(),st.flavouredAs(xt).for(Q.UPDATED_BY).define(A(Rt),nt(Q.UPDATED_BY,{})).apply(),st.flavouredAs(xt).for(h.ID).define({decorator:(t,e)=>(i,r)=>at(o(),v(),nt(rt.key(h.ID,r),t),x(zt,t,e))(i,r)}).apply(),st.flavouredAs(xt).for(Q.COLUMN).extend(E()).apply(),st.flavouredAs(xt).for(Q.TABLE).extend((t=>R()(t))).apply(),st.flavouredAs(xt).for(Q.ONE_TO_ONE).define({decorator:(t,e,i,r,s)=>{const n={class:t,cascade:e,populate:i};return r&&(n.joinTable=r),s&&(n.name=s),at(ot(),W(Q.ONE_TO_ONE,n),l([t,String,Number,BigInt]),x(vt,n),S(St,n),C(Ct,n),O(Nt,n),nt(Q.ONE_TO_ONE,n))}}).apply(),st.for(Q.ONE_TO_MANY).define({decorator:(t,e,i,r,s)=>{const n={class:t,cascade:e,populate:i};return r&&(n.joinTable=r),s&&(n.name=s),at(ot(),W(Q.ONE_TO_MANY,n),c([t,String,Number]),x(Ot,n),S(X,n),C(kt,n),O(Nt,n),nt(Q.ONE_TO_MANY,n))}}).apply()}}Tt.decoration(),D.setCurrent(xt);class Pt extends a{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class It extends z{static{this.adapter=new Tt}static{this.serializer=new Pt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=$.forModel(e)}async listBy(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.listBy);return this.repo.listBy(e,i,...s)}async paginateBy(t,e,i,r,...s){const{ctxArgs:n}=await this.logCtx([...s,t],this.paginateBy);return this.repo.paginateBy(e,i,r,...n)}async findOneBy(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.findOneBy);return this.repo.findOneBy(e,i,...s)}async statement(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.statement);return this.repo.statement(e,...r)}async create(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.create);r.info("CONTRACT CREATE, "+s),"string"==typeof e&&(e=this.deserialize(e)),r.info("Creating model: "+JSON.stringify(e));const a=this.getTransientData(t);return r.info("Merging transient data..."),e=n.merge(e,a,this.clazz),this.repo.create(e,...s)}async read(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.read);return r.info(`reading entry with pk ${e} `),this.repo.read(e,...s)}getTransientData(t){const e=t.stub.getTransient();let i={};return e.has(this.repo.tableName)&&(i=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),i}async update(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),r.info("Updating model: "+JSON.stringify(e));const a=this.getTransientData(t);return r.info("Merging transient data..."),e=n.merge(e,a,this.clazz),this.repo.update(e,...s)}async delete(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.delete);return r.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...s)}async deleteAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...r)}async readAll(t,e,...i){const{ctxArgs:r}=await this.logCtx([...i,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...r)}async updateAll(t,e,...i){const{log:r,ctxArgs:s}=await this.logCtx([...i,t],this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),r.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...s)}async raw(t,e,i,...r){const{ctxArgs:s}=await this.logCtx([...r,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),It.adapter.raw(e,i,...s)}serialize(t){return It.serializer.serialize(t)}deserialize(t){return It.serializer.deserialize(t)}async init(t){t.logging.getLogger("tst").info("in init");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){t.logging.getLogger("test").info("in healthcheck");const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...i){const{log:r}=await this.logCtx([...i,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),r.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...i)}async logCtx(t,e){return It.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new y("No context provided");const i=t.pop();if(i instanceof ht)return{ctx:i,log:i.logger.clear().for(this).for(e),ctxArgs:[...t,i],stub:i.stub,identity:i.identity};if(!(i instanceof T))throw new y("No valid context provided");const r=i.logging.getLogger(),s={correlationId:i.stub.getTxID()};r.info(`Getting context with ${Object.keys(s)} and ctx`);const n=await It.adapter.context((()=>{if(r.info("Getting op for "+("string"==typeof e?e:e.name)),"string"==typeof e)return e;switch(e.name){case p.CREATE:case p.READ:case p.UPDATE:case p.DELETE:case g.CREATE_ALL:case g.READ_ALL:case g.UPDATE_ALL:case g.DELETE_ALL:}return e.name})(),s,this.clazz,i);r.info(`retrieve ctx: stub: ${!!n.stub}, identity: ${!!n.identity}, logger: ${n.logger instanceof Et}`);const a=this?n.logger.for(this).for(e):n.logger.clear().for(this).for(e);return{ctx:n,log:a,stub:n.stub,identity:n.identity,ctxArgs:[...t,n]}}}class Dt extends It{constructor(t,e){super(t,e)}async create(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.create);i.info("Creating model: "+e);const s=this.deserialize(e);return i.info("Model deserialized: "+JSON.stringify(s)),this.serialize(await super.create(r,s))}async read(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.read);return i.info("Reading id: "+e),this.serialize(await super.read(r,e))}async update(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.update);return i.info("Updating model: "+e),this.serialize(await super.update(r,e))}async delete(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.delete);return i.info("Deleting id: "+e),this.serialize(await super.delete(r,e))}async deleteAll(t,e){const i=JSON.parse(e),{log:r,ctx:s}=await this.logCtx([t],this.deleteAll);return r.info(`deleting ${i.length} entries from the table`),JSON.stringify((await super.deleteAll(s,i)).map((t=>this.serialize(t))))}async readAll(t,e){const i=JSON.parse(e),{log:r,ctx:s}=await this.logCtx([t],this.readAll);return r.info(`reading ${i.length} entries from the table`),JSON.stringify((await super.readAll(s,i)).map((t=>this.serialize(t))))}async updateAll(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.updateAll),s=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return i.info(`Updating ${s.length} entries to the table`),JSON.stringify((await super.updateAll(r,s)).map((t=>this.serialize(t))))}async statement(t,e){const{ctx:i}=await this.logCtx([t],this.statement);return super.statement(i,e)}async raw(t,e,i){const{ctx:r}=await this.logCtx([t],this.raw),s=JSON.parse(e);return super.raw(r,s,i)}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))))}}pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"create",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"read",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"update",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"delete",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"deleteAll",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"readAll",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"updateAll",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"statement",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String,Boolean]),gt("design:returntype",Promise)],Dt.prototype,"raw",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Dt.prototype,"init",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Dt.prototype,"healthcheck",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Dt.prototype,"createAll",null);class $t extends y{constructor(t){super(t,$t.name)}}class Ft extends y{constructor(t){super(t,Ft.name)}}class Bt extends y{constructor(t){super(t,Bt.name)}}class jt extends k{constructor(t){super(jt.name,t,409)}}function Lt(t,e){const i=t+e;if(t!==i-e||e!==i-t)throw new $t(`Addition overflow: ${t} + ${e}`);return i}function _t(t,e){const i=t-e;if(t!==i+e||e!==t-i)throw new $t(`Subtraction overflow: ${t} - ${e}`);return i}let Jt=class extends it{constructor(t){super(t)}};pt([Z({type:"String"}),gt("design:type",String)],Jt.prototype,"name",void 0),pt([tt(),o(),gt("design:type",String)],Jt.prototype,"owner",void 0),pt([tt(),o(),gt("design:type",String)],Jt.prototype,"symbol",void 0),pt([tt(),o(),gt("design:type",Number)],Jt.prototype,"decimals",void 0),Jt=pt([et("erc20_tokens"),u(),gt("design:paramtypes",[Object])],Jt);let qt=class extends it{constructor(t){super(t)}};pt([Z({type:"String"}),gt("design:type",String)],qt.prototype,"id",void 0),pt([tt(),o(),gt("design:type",String)],qt.prototype,"token",void 0),pt([tt(),o(),gt("design:type",Number)],qt.prototype,"balance",void 0),pt([tt(),gt("design:type",String)],qt.prototype,"captive",void 0),qt=pt([et("erc20_wallets"),u(),gt("design:paramtypes",[Object])],qt);let Mt=class extends it{constructor(t){super(t)}};function Ut(){return function(t,e,i){const r=i.value;return i.value=async function(...t){const i=t[0],s=i.clientIdentity.getID(),n=await this.tokenRepository.select(),a=await n.execute(i);if(0==a.length)throw new f("No tokens avaialble");if(a.length>1)throw new f("To many token available : "+a.length);if(a[0].owner!=s)throw new K(`User not authorized to run ${e} on the token`);return await r.apply(this,t)},i}}var Yt;pt([Z({type:"String"}),tt(),o(),gt("design:type",String)],Mt.prototype,"owner",void 0),pt([tt(),o(),gt("design:type",String)],Mt.prototype,"spender",void 0),pt([tt(),o(),gt("design:type",Number)],Mt.prototype,"value",void 0),Mt=pt([et("erc20_allowances"),u(),gt("design:paramtypes",[Object])],Mt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Yt||(Yt={}));class Ht extends It{constructor(t){super(t,qt),Ht.adapter=Ht.adapter||new Tt,this.walletRepository=wt.forModel(qt,Ht.adapter.alias),this.tokenRepository=wt.forModel(Jt,Ht.adapter.alias),this.allowanceRepository=wt.forModel(Mt,Ht.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 f(`The token ${this.getName()} does not exist`);let s=0;return r.forEach((t=>{s+=t.balance})),s}async BalanceOf(t,e){const{ctx:i}=await this.logCtx([t],this.TokenName);return await this.CheckInitialized(i),(await this.walletRepository.read(e,i)).balance}async Transfer(t,e,i){const{ctx:r}=await this.logCtx([t],this.Transfer);await this.CheckInitialized(r);const s=r.identity.getID();if(!await this._transfer(s,e,i,r))throw new y("Failed to transfer");return!0}async TransferFrom(t,e,i,r){const{ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=s.identity.getID(),a=await this._getAllowance(e,n,s);if(!a||0>a.value)throw new Bt(`spender ${n} has no allowance from ${e}`);const o=a.value;if(r>o)throw new Ft("The spender does not have enough allowance to spend.");const l=_t(o,r),c=Object.assign({},a,{value:l});if(await this.allowanceRepository.update(c,s),!await this._transfer(e,i,r,s))throw new y("Failed to transfer");return!0}async _transfer(t,e,i,r){const s=r.logger;if(t===e)throw new K("cannot transfer to and from same client account");if(0>i)throw new Ft("transfer amount cannot be negative");const n=await this.walletRepository.read(t,r),a=n.balance;if(i>a)throw new Ft(`client account ${t} has insufficient funds.`);let o,l=!1;try{o=await this.walletRepository.read(e,r)}catch(t){if(!(t instanceof k))throw new y(t);if(404!==t.code)throw new y(t.message);o=new qt({id:e,balance:0,token:await this.TokenName(r)}),l=!0}const c=o.balance,u=_t(a,i),d=Lt(c,i),p=Object.assign({},n,{balance:u});await this.walletRepository.update(p,r);const g=Object.assign({},o,{balance:d});l?await this.walletRepository.create(g,r):await this.walletRepository.update(g,r);const h={from:t,to:e,value:i};return this.repo.refresh(Jt,Yt.TRANSFER,"",h,r).catch((t=>s.error("Failed to notify transfer: "+t))),!0}async Approve(t,e,i){const{ctx:r,ctxArgs:s}=await this.logCtx([t],this.Approve);await this.CheckInitialized(r);const n=r.identity.getID();let a=await this._getAllowance(n,e,r);if((await this.walletRepository.read(n,...s)).balance<i)throw new Ft(`client account ${n} has insufficient funds.`);a?(a.value=i,await this.allowanceRepository.update(a,...s)):(a=new Mt({owner:n,spender:e,value:i}),await this.allowanceRepository.create(a,...s));const o={owner:n,spender:e,value:i};return this.repo.refresh(Jt,Yt.APPROVAL,"",o,r),!0}async Allowance(t,e,i){const{ctx:r}=await this.logCtx([t],this.Allowance);await this.CheckInitialized(r);const s=await this._getAllowance(e,i,r);if(!s)throw new Bt(`spender ${i} has no allowance from ${e}`);return s.value}async _getAllowance(t,e,i){const r=F.and(F.attribute("owner").eq(t),F.attribute("spender").eq(e)),s=await this.allowanceRepository.select().where(r).execute(i);return s?.[0]}async Initialize(t,e){const{ctx:i}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(i)).length>0)throw new 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 jt("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 N("mint amount must be a positive integer");let s;try{s=await this.walletRepository.read(r,i);const t=Lt(s.balance,e),n=Object.assign({},s,{balance:t});await this.walletRepository.update(n,i)}catch(s){if(!(s instanceof k))throw new y(s);if(404!==s.code)throw new y(s.message);{const s=new qt({id:r,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(s,i)}}const n={from:"0x0",to:r,value:e};this.repo.ObserverHandler().updateObservers(Jt,Yt.TRANSFER,"",n,i)}async Burn(t,e){const{log:i,ctx:r}=await this.logCtx([t],this.Burn);await this.CheckInitialized(r);const s=r.identity.getID(),n=await this.walletRepository.read(s,r),a=n.balance;if(e>a)throw new Ft("Minter has insufficient funds.");const o=_t(a,e),l=Object.assign({},n,{balance:o});await this.walletRepository.update(l,r),i.info(e+" tokens were burned");const c={from:s,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Jt,Yt.TRANSFER,"",c,r)}async BurnFrom(t,e,i){const{log:r,ctx:s}=await this.logCtx([t],this.BurnFrom);await this.CheckInitialized(s);const n=await this.walletRepository.read(e,s),a=n.balance;if(i>a)throw new Ft(e+" has insufficient funds.");const o=_t(a,i),l=Object.assign({},n,{balance:o});await this.walletRepository.update(l,s),r.info(`${i} tokens were burned from ${e}`);const c={from:e,to:"0x0",value:i};this.repo.ObserverHandler().updateObservers(Jt,Yt.TRANSFER,"",c,s)}async ClientAccountBalance(t){const{ctx:e}=await this.logCtx([t],this.TokenName);await this.CheckInitialized(e);const i=e.identity.getID(),r=await this.walletRepository.read(i,e);if(!r)throw new Ft(`The account ${i} does not exist`);return r.balance}async ClientAccountID(t){const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return await this.CheckInitialized(e),e.identity.getID()}}pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"TokenName",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"Symbol",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"Decimals",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"TotalSupply",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String]),gt("design:returntype",Promise)],Ht.prototype,"BalanceOf",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"Transfer",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"TransferFrom",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"Approve",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T,String,String]),gt("design:returntype",Promise)],Ht.prototype,"Allowance",null),pt([P(),gt("design:type",Function),gt("design:paramtypes",[T,Jt]),gt("design:returntype",Promise)],Ht.prototype,"Initialize",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"CheckInitialized",null),pt([Ut(),P(),gt("design:type",Function),gt("design:paramtypes",[T,Number]),gt("design:returntype",Promise)],Ht.prototype,"Mint",null),pt([Ut(),P(),gt("design:type",Function),gt("design:paramtypes",[T,Number]),gt("design:returntype",Promise)],Ht.prototype,"Burn",null),pt([Ut(),P(),gt("design:type",Function),gt("design:paramtypes",[T,String,Number]),gt("design:returntype",Promise)],Ht.prototype,"BurnFrom",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"ClientAccountBalance",null),pt([P(!1),gt("design:type",Function),gt("design:paramtypes",[T]),gt("design:returntype",Promise)],Ht.prototype,"ClientAccountID",null);const Kt=[Ht],Vt="##VERSION##",Gt="##PACKAGE##";rt.registerLibrary(Gt,Vt);export{Et as ContractLogger,Tt as FabricContractAdapter,ht as FabricContractContext,wt as FabricContractRepository,yt as FabricContractRepositoryObservableHandler,It as FabricCrudContract,ft as FabricStatement,Gt as PACKAGE_NAME,Dt as SerializedCrudContract,Vt as VERSION,Kt as contracts,Rt as createdByOnFabricCreateUpdate,zt as pkFabricOnCreate};
2
2
  //# sourceMappingURL=for-fabric.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/logging.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","context","data","propertyValue","innerRepo","repositoryFromTypeMetadata","alias","read","cacheModelForPopulate","class","InternalError","repo","forModel","created","create","oneToOneOnUpdate","cascade","update","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","e","fetchPopulateValues","ContractLogger","MiniLogger","conf","logger","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","info","verbose","error","silly","call","createLog","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequence","sequenceName","Sequence","next","defineProperty","enumerable","writable","configurable","Logging","setFactory","object","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","for","composedKey","createCompositeKey","String","putState","parseError","readState","ctxArgs","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","count","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","NotFoundError","getQueryResult","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","correlationId","getTxID","LOG","clientIdentity","undefined","index","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","shift","Statement","createAll","tableLabel","all","i","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","options","groupsort","attr","required","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","BigInt","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","listBy","order","paginateBy","size","findOneBy","statement","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","getName","healthcheck","bind","overrides","READ","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","__decorate","Transaction","Ctx","prototype","Boolean","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","b","sub","ERC20Token","BaseModel","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/logging.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","context","data","propertyValue","innerRepo","repositoryFromTypeMetadata","alias","read","cacheModelForPopulate","class","InternalError","repo","forModel","created","create","oneToOneOnUpdate","cascade","update","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","e","fetchPopulateValues","ContractLogger","MiniLogger","conf","logger","logging","getLogger","level","msg","stack","NumericLogLevels","config","method","LogLevel","info","verbose","error","silly","call","createLog","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequence","sequenceName","Sequence","next","defineProperty","enumerable","writable","configurable","Logging","setFactory","object","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","for","composedKey","createCompositeKey","String","putState","parseError","readState","ctxArgs","deleteState","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","count","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","getState","NotFoundError","getQueryResult","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","baseFlags","correlationId","getTxID","LOG","clientIdentity","undefined","index","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","shift","Statement","createAll","tableLabel","all","i","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","filter","a","clear","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","options","groupsort","attr","required","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","BigInt","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","listBy","order","paginateBy","size","findOneBy","statement","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","getName","healthcheck","bind","overrides","READ","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","__decorate","Transaction","Ctx","prototype","Boolean","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","b","sub","ERC20Token","BaseModel","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -299,7 +299,7 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
299
299
  const overrides = {
300
300
  correlationId: ctx.stub.getTxID(),
301
301
  };
302
- LOG.info(`Getting context with ${JSON.stringify(overrides)} and ctx`);
302
+ LOG.info(`Getting context with ${Object.keys(overrides)} and ctx`);
303
303
  const context = await FabricCrudContract.adapter.context(getOp(), overrides, this.clazz, ctx);
304
304
  LOG.info(`retrieve ctx: stub: ${!!context.stub}, identity: ${!!context.identity}, logger: ${context.logger instanceof logging_1.ContractLogger}`);
305
305
  const log = (this
@@ -1 +1 @@
1
- {"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"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"}
@@ -296,7 +296,7 @@ export class FabricCrudContract extends Contract {
296
296
  const overrides = {
297
297
  correlationId: ctx.stub.getTxID(),
298
298
  };
299
- LOG.info(`Getting context with ${JSON.stringify(overrides)} and ctx`);
299
+ LOG.info(`Getting context with ${Object.keys(overrides)} and ctx`);
300
300
  const context = await FabricCrudContract.adapter.context(getOp(), overrides, this.clazz, ctx);
301
301
  LOG.info(`retrieve ctx: stub: ${!!context.stub}, identity: ${!!context.identity}, logger: ${context.logger instanceof ContractLogger}`);
302
302
  const log = (this
@@ -1 +1 @@
1
- {"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gCAA2B;AAC3D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,KAAK,EAAc,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAIL,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,kDAA6C;AAI/E,OAAO,EAAE,qBAAqB,EAAE,gCAA2B;AAC3D,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,GAEd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,wBAAmB;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,OAAgB,kBACpB,SAAQ,QAAQ;IAGhB;;OAEG;aACc,YAAO,GAA0B,IAAI,qBAAqB,EAAE,AAArD,CAAsD;aAIpD,eAAU,GAAG,IAAI,uBAAuB,EAAE,AAAhC,CAAiC;IAIrE;;;;;OAKG;IACH,YACE,IAAY,EACO,KAAqB;QAExC,KAAK,CAAC,IAAI,CAAC,CAAC;QAFO,UAAK,GAAL,KAAK,CAAgB;QAVhC,gBAAW,GAAY,KAAK,CAAC;QAarC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAgC,EAChC,GAAY,EACZ,KAAa,EACb,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAuB,EAAE,GAAG,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAgC,EAChC,GAAY,EACZ,KAAa,EACb,IAAY,EACZ,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAY,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAgC,EAChC,GAAY,EACZ,KAAU,EACV,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAgC,EAChC,MAAc,EACd,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAgC,EAChC,KAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAExC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAI,KAAK,CAAM,CAAC;QAEvE,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACtC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAM,CAAC;QAEvD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CACR,GAAgC,EAChC,GAA4B,EAC5B,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtE,GAAG,CAAC,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;IACzC,CAAC;IAES,gBAAgB,CAAC,GAAgC;QACzD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7C,IAAI,SAAS,GAAQ,EAAE,CAAC;QAExB,IAAI,YAAY,CAAC,GAAG,CAAE,IAAI,CAAC,IAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,SAAS,GAAG,IAAI,CAAC,KAAK,CACnB,YAAY,CAAC,GAAG,CAAE,IAAI,CAAC,IAAY,CAAC,SAAS,CAAY,EAAE,QAAQ,CAClE,MAAM,CACG,CACZ,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAgC,EAChC,KAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAExE,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAI,KAAK,CAAM,CAAC;QAEvE,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACtC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAM,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAgC,EAChC,GAA4B,EAC5B,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,GAAgC,EAChC,IAA+B,EAC/B,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACX,GAAgC,EAChC,IAA+B,EAC/B,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,GAAgC,EAChC,MAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAQ;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAQ,CAAC;QAE1C,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAwB,EAAE,GAAG,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CACP,GAAgC,EAChC,QAA6B,EAC7B,QAAiB,EACjB,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC9B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAe,CAAC;QAChD,OAAO,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC;IACxE,CAAC;IAES,SAAS,CAAC,KAAQ;QAC1B,OAAO,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAES,WAAW,CAAkB,GAAW;QAChD,OACE,kBAAkB,CAAC,UACpB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,GAAgC;QACnD,MAAM,GAAG,GAAI,GAAW,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,GAAgC;QAEhC,MAAM,GAAG,GAAI,GAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;QACxD,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CACb,GAAgC,EAChC,MAAoB,EACpB,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAElE,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,GAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAQ;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAQ,CAAC;QAE1C,GAAG,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAwB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAU,EACV,MAA0C;QAO1C,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAa,CAAC,CAAC;IACnE,CAAC;IAsBS,MAAM,CAAC,KAAK,CAAC,MAAM,CAE3B,IAAU,EACV,MAA0C;QAO1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAqC,CAAC;QAC1D,IAAI,GAAG,YAAY,qBAAqB;YACtC,OAAO;gBACL,GAAG;gBACH,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC7C,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC;gBACvB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC;QAEJ,IAAI,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACpC,SAAS,KAAK;YACZ,GAAG,CAAC,IAAI,CACN,kBAAkB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CACtE,CAAC;YACF,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAC9C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,aAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,aAAa,CAAC,IAAI,CAAC;gBACxB,KAAK,aAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,aAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,qBAAqB,CAAC,UAAU,CAAC;gBACtC,KAAK,qBAAqB,CAAC,QAAQ,CAAC;gBACpC,KAAK,qBAAqB,CAAC,UAAU,CAAC;gBACtC,KAAK,qBAAqB,CAAC,UAAU;oBACnC,OAAO,MAAM,CAAC,IAAI,CAAC;gBACrB;oBACE,OAAO,MAAM,CAAC,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG;YAChB,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;SAClC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CACtD,KAAK,EAAE,EACP,SAAgB,EAChB,IAAI,CAAC,KAAK,EACV,GAAG,CACJ,CAAC;QACF,GAAG,CAAC,IAAI,CACN,uBAAuB,CAAC,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,QAAQ,aAAa,OAAO,CAAC,MAAM,YAAY,cAAc,EAAE,CAC9H,CAAC;QACF,MAAM,GAAG,GAAG,CACV,IAAI;YACF,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CACd,CAAC;QACrC,OAAO;YACL,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;SAC5B,CAAC;IACJ,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.17";
1
+ export declare const VERSION = "0.1.19";
2
2
  export declare const PACKAGE_NAME = "@decaf-ts/for-fabric";
@@ -1,5 +1,5 @@
1
1
  import { Metadata } from "@decaf-ts/decoration";
2
- export const VERSION = "0.1.17";
2
+ export const VERSION = "0.1.19";
3
3
  export const PACKAGE_NAME = "@decaf-ts/for-fabric";
4
4
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
5
5
  //# sourceMappingURL=version.js.map
package/lib/version.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE_NAME = exports.VERSION = void 0;
4
4
  const decoration_1 = require("@decaf-ts/decoration");
5
- exports.VERSION = "0.1.17";
5
+ exports.VERSION = "0.1.19";
6
6
  exports.PACKAGE_NAME = "@decaf-ts/for-fabric";
7
7
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
8
8
  //# sourceMappingURL=version.js.map
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.17";
1
+ export declare const VERSION = "0.1.19";
2
2
  export declare const PACKAGE_NAME = "@decaf-ts/for-fabric";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-fabric",
3
- "version": "0.1.18",
3
+ "version": "0.1.20",
4
4
  "description": "Abstracts fabric logic",
5
5
  "type": "module",
6
6
  "exports": {
@@ -70,7 +70,7 @@
70
70
  "uml": "cd workdocs/uml && for FILE in ./*.puml; do docker run --rm -v $(pwd):/work -w /work miy4/plantuml -DPLANTUML_LIMIT_SIZE=8192 -tpng $FILE; done && cd ../.. && cp -fr workdocs/uml/*.png workdocs/resources/",
71
71
  "docs": "npx rimraf ./docs && mkdir docs && npx build-scripts --docs",
72
72
  "infrastructure:up": "docker compose -f ./docker/infrastructure/docker-compose.yaml up -d",
73
- "infrastructure:down": "docker compose -f ./docker/infrastructure/docker-compose.yaml down --rmi local -v && rm -f ./tests/integration/chaincodeTrackers/*.count",
73
+ "infrastructure:down": "docker compose -f ./docker/infrastructure/docker-compose.yaml down --rmi local -v && rm -rf ./docker/docker-data && rm -f ./tests/integration/chaincodeTrackers/*.count",
74
74
  "infrastructure-hsm:up": "docker compose -f ./docker/infrastructure/docker-compose-hsm.yaml up -d",
75
75
  "infrastructure-hsm:down": "docker compose -f ./docker/infrastructure/docker-compose-hsm.yaml down --rmi local -v",
76
76
  "publish-docs": "docker run -it --rm --user $(id -u):$(id -g) -v \"$(pwd)/workdocs/confluence:/content\" -e ATLASSIAN_API_TOKEN=$(cat .confluence-token) ghcr.io/markdown-confluence/publish:latest",