@decaf-ts/for-http 0.3.50 → 0.3.52
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.
- package/dist/for-http.cjs +1 -1
- package/dist/for-http.cjs.map +1 -1
- package/dist/for-http.js +1 -1
- package/dist/for-http.js.map +1 -1
- package/lib/HttpDispatcher.cjs +3 -9
- package/lib/HttpDispatcher.d.ts +1 -0
- package/lib/HttpDispatcher.js.map +1 -1
- package/lib/esm/HttpDispatcher.d.ts +1 -0
- package/lib/esm/HttpDispatcher.js +3 -9
- package/lib/esm/HttpDispatcher.js.map +1 -1
- package/lib/esm/event/ServerEventConnector.d.ts +8 -6
- package/lib/esm/event/ServerEventConnector.js +69 -31
- package/lib/esm/event/ServerEventConnector.js.map +1 -1
- package/lib/esm/event/types.d.ts +19 -4
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/event/ServerEventConnector.cjs +69 -31
- package/lib/event/ServerEventConnector.d.ts +8 -6
- package/lib/event/ServerEventConnector.js.map +1 -1
- package/lib/event/types.d.ts +19 -4
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/for-http.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,s,a,i,n,o,c){"use strict";var d,l,p,u,h,g,f;class y extends t.Repository{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,r){return this.adapter.url(e,t,r)}async paginateBy(e,r,s={offset:1,limit:10},...i){const{offset:n,bookmark:o,limit:c}=s,{log:d,ctxArgs:l}=(await this.logCtx(i,t.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);d.verbose(`paginating ${a.Model.tableName(this.class)} with page size ${c}`);const p={direction:r,limit:c};return o&&(p.bookmark=o),this.statement(this.paginateBy.name,e,n,p,...l)}async listBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${a.Model.tableName(this.class)} by ${e} ${r}`),await this.statement(this.listBy.name,e,{direction:r},...n)}async findBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${a.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findBy.name,e,r,{},...n)}async findOneBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${a.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findOneBy.name,e,r,{},...n)}async find(e,r=t.OrderDirection.ASC,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND,!0)).for(this.find);return i.verbose(`finding ${a.Model.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,e,r,...n)}async page(e,r=t.OrderDirection.ASC,s={offset:1,limit:10},...i){const{log:n,ctxArgs:o}=(await this.logCtx(i,t.PreparedStatementKeys.PAGE,!0)).for(this.page);return n.verbose(`paging ${a.Model.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,e,r,s,...o)}async statement(e,...r){const{log:s,ctx:a,ctxArgs:i}=(await this.logCtx(r,t.PersistenceKeys.STATEMENT,!0)).for(this.statement),n=i.slice(0,-1),o=n[n.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:n.pop(),d={class:this.class,args:n,method:e,params:c},l=this.adapter.toRequest(d,a);s.verbose("Executing prepared statement "+e);const p=await this.request(l,...i),u=this.adapter.parseResponse(this.class,e,p);return this.convertStatementResult(e,u,a)}convertStatementResult(e,r,s){return r?e===t.PreparedStatementKeys.FIND||e===t.PreparedStatementKeys.LIST_BY||e===t.PreparedStatementKeys.FIND_BY?Array.isArray(r)?r.map(e=>this.revertRecord(e,s)):r:e===t.PreparedStatementKeys.FIND_ONE_BY?this.revertRecord(r,s):e===t.PreparedStatementKeys.PAGE||e===t.PreparedStatementKeys.PAGE_BY?this.convertPageResult(r,s):r:r}convertPageResult(e,r){if(!e)return e;let s=e;if("string"==typeof s)try{s=t.Paginator.deserialize(s)}catch{return e}return t.Paginator.isSerializedPage(s)?{...s,data:s.data.map(e=>this.revertRecord(e,r))}:e}revertRecord(e,t){if(!e)return e;if(e instanceof this.class)return e;const r=a.Model.pk(this.class),s=a.Model.columnName(this.class,r),i=r??s,n=e[s]??e[i];if(void 0!==n)try{return this.adapter.revert(e,this.class,n,void 0,t)}catch{}return Object.assign(new this.class,e)}async request(e,...r){let a;a=r.length&&r[r.length-1]instanceof t.Context?this.logCtx(r,this.request):(await this.logCtx(r,s.OperationKeys.READ,!0)).for(this.request);const{ctxArgs:i}=a;return this.adapter.request(e,...i)}async countOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOf);s.verbose(`counting ${a.Model.tableName(this.class)}${e?" by "+e:""}`);const n=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.MAX_OF,!0)).for(this.maxOf);return s.verbose(`finding max of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.maxOf.name,e,{},...i)}async minOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.MIN_OF,!0)).for(this.minOf);return s.verbose(`finding min of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.minOf.name,e,{},...i)}async avgOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.AVG_OF,!0)).for(this.avgOf);return s.verbose(`calculating avg of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.avgOf.name,e,{},...i)}async sumOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.SUM_OF,!0)).for(this.sumOf);return s.verbose(`calculating sum of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.sumOf.name,e,{},...i)}async distinctOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.DISTINCT_OF,!0)).for(this.distinctOf);return s.verbose(`finding distinct values of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.distinctOf.name,e,{},...i)}async groupOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.GROUP_OF,!0)).for(this.groupOf);return s.verbose(`grouping ${a.Model.tableName(this.class)} by ${e}`),await this.statement(this.groupOf.name,e,{},...i)}}i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[String,String,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"find",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[String,String,Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"page",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"countOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(d="undefined"!=typeof K&&K)?d:Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"maxOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(l="undefined"!=typeof K&&K)?l:Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"minOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(p="undefined"!=typeof K&&K)?p:Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"avgOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(u="undefined"!=typeof K&&K)?u:Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"sumOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(h="undefined"!=typeof K&&K)?h:Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"distinctOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(g="undefined"!=typeof K&&K)?g:Object,void 0]),i.__metadata("design:returntype",Promise)],y.prototype,"groupOf",null);class m extends y{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return a.Model.tableName(this.class)+" REST service"}}class E extends t.Statement{constructor(e,t){super(e,t)}build(){throw new t.UnsupportedError("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(e,...r){throw new t.UnsupportedError("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class v extends t.Paginator{constructor(e,t,r,s){super(e,t,r,s)}async pagePrepared(e,...r){const s=t.Repository.forModel(this.clazz,this.adapter.alias),a=this.query,{method:i,args:n,params:o}=a,c=RegExp(`^${t.PreparedStatementKeys.FIND_BY}|${t.PreparedStatementKeys.LIST_BY}`,"gi");if(!i.match(c))throw new t.UnsupportedError(`Method ${i} is not supported for pagination`);c.lastIndex=0;const d=[i.replace(c,t.PreparedStatementKeys.PAGE_BY),...n],l={direction:o.direction,limit:this.size,offset:e,bookmark:this._bookmark};d.push(l);const p=await s.statement(...d,...r);return this.apply(p)}prepare(e){throw new t.UnsupportedError("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(e=1,...t){return super.page(e,...t)}}class O extends t.ContextualLoggedClass{static{this.cache=new Map}static get(e){if(this.cache.has(e))return this.cache.get(e);throw Error(`Server event connector not found for URL '${e}'. Did you forget to call open()?`)}static open(e){if(this.cache.has(e))return this.cache.get(e);const t=new O(e);return this.cache.set(e,t),this.cache.get(e)}static close(e){this.cache.has(e)&&this.cache.get(e).close()}static parseReceivedEvent(e){try{const t="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(t)||3>t.length)return null;const[r,s,i,n]=t;return"string"!=typeof r?null:[r,s+"",i,"string"==typeof n?a.Serialization.deserialize(n):n]}catch{return null}}constructor(e){super(),this.url=e,this.listeners=new Set}isOpen(){return void 0!==this.es}close(){const e=this.log.for(this.close);if(this.es)if(this.listeners.size>0)e.warn("Skipping connector close because still has active listeners",{url:this.url,listeners:this.listeners.size});else try{e.info("ServerEventConnector closing event source connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),O.cache.delete(this.url),e.info("ServerEventConnector closed connection and removed from active pool for URL "+this.url)}else e.debug(`Skipping connector close because connector for ${this.url} is not open`)}startListening(e,t){const r=this.log.for(this.startListening);this.es?r.info("ServerEventConnector already in pool and listening",{url:this.url,listeners:this.listeners.size}):(r.info("Opening event source connection for "+this.url),this.es=new o.EventSourcePlus(this.url,{headers:t,credentials:"include"}),this.controller=this.es.listen({onResponse:()=>{r.info("ServerEventConnector listening events from "+this.url)},onRequestError:({error:t})=>{r.error("ServerEventConnector error on request",{url:this.url,error:t}),e.onError((t?.message??t)+"")},onResponseError:({response:t})=>{r.error("ServerEventConnector received an error response",{url:this.url,status:t?.status,statusText:t?.statusText}),e.onError(`HTTP Error Response: ${t.status} ${t.statusText}`)},onMessage:t=>{const s=t&&"object"==typeof t&&"data"in t?t.data:t,a=O.parseReceivedEvent(s);a?e.onEvent(a):r.warn("Failed to parse SSE message",{url:this.url,raw:s})}}))}addListener(e){this.listeners.add(e)}removeListener(e){this.listeners.delete(e)}}e.DecafHeaders=void 0,(f=e.DecafHeaders||(e.DecafHeaders={})).PENDING_TASK="x-pending-task",f.CORRELATION_ID="x-correlation-id";const b="keepalive";class S extends t.Dispatch{constructor(){super(...arguments),this.listening=!1}async initialize(...e){const{log:r,ctxArgs:s}=(await this.logCtx(e,t.PersistenceKeys.INITIALIZATION,!0)).for(this.initialize);this.adapter?(r.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),r.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):r.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...e){const{log:t}=this.logCtx(e,this.startListening);if(!this.initialized||!this.adapter)throw t.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:r,host:s,eventsListenerPath:a}=this.adapter.config;if(!a)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:r,host:s}),Error("No eventsListenerPath specified");const i=new URL(a,`${r}://${s}`).toString();t.info("Opening ServerEventConnector for url: "+i),this.connector=O.open(i),t.debug("ServerEventConnector opened successfully for url: "+i),this.connector.startListening({onEvent:async e=>{const[t,r,s,...a]=e,{log:i,ctxArgs:n}=(await this.logCtx(a,r,!0)).for("onEvent");r!==b?super.updateObservers(t,r,s,...n).catch(e=>i.error("ServerEventConnector failed to updateObservers",e)):i.debug("keep alive received - discarding")},onError:e=>{t.error("ServerEventConnector failed to dispatch event",{error:e,listeningUrl:i,adapter:this.adapter+""})}}),this.listening=!0,t.info(`HttpDispatcher is now listening at ${i}.`)}async close(...e){this.connector?.close(),this.listening=!1}}function A(e,t,r,s){const a=s||t.name;e[a]=new Proxy(e[a],{apply:async(e,t,s)=>{let a=e.call(t,...s);return a instanceof Promise&&(a=await a),a=r.call(t,a),a instanceof Promise&&(a=await a),a}})}class w extends t.Adapter{constructor(e,t,r){super(Object.assign({},e,{headers:void 0===e.headers||e.headers}),t,r);const a=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{A(this,e,t=>a.parseResponse.call(a,void 0,e.name,t),e.name)}),s.wrapMethodWithContext(this,(...e)=>e,this.request,(e,t)=>{const r=a.config.parsers;return r?(r.forEach(r=>r(e,t)),e):e},this.request.name)}async flags(e,t,r){return super.flags(e,t,Object.assign({headers:r.headers??{}},r))}Dispatch(){return new S}repository(){return m}prepare(e,...r){const{log:s}=this.logCtx(r,this.prepare),i=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(i,t.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[t.PersistenceKeys.METADATA]})),{record:e,id:e[a.Model.pk(e.constructor)]}}revert(e,r,i,...n){const{log:o}=this.logCtx(n,this.revert),c={},d="string"==typeof r?a.Model.build(c,r):new r(c);o.silly(`Rebuilding model ${d.constructor.name} id ${i}`);const l="string"==typeof r?a.Model.get(r):r;if(!l)throw new s.InternalError("Failed to retrieve model constructor for "+r);const p=new l(e),u=e[t.PersistenceKeys.METADATA];return u&&(o.silly(`Passing along ${this.flavour} persistence metadata for ${d.constructor.name} id ${i}: ${u}`),Object.defineProperty(p,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:u})),p}toTableName(e){return"string"==typeof e?e:n.toKebabCase(a.Model.tableName(e))}toHeaders(t){const r={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(r[e.DecafHeaders.CORRELATION_ID]=s)}return{...r,...t.getOrUndefined("headers")||{}}}url(e,t,r){r||t&&!Array.isArray(t)&&(r=t,t=[]),e=this.toTableName(e);const s=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return r&&Object.entries(r).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>s.searchParams.append(e,t.toString())):"object"==typeof t?s.searchParams.append(e,JSON.stringify(t)):void 0!==t&&s.searchParams.append(e,t.toString())}),s.toString()}extractIdArgs(e,t){const r=t.toString();if("string"==typeof e)return[r];const s=a.Model.composed(e,a.Model.pk(e));return s?r.split(s.separator):[r]}parseResponse(e,r,s){return e&&t.Paginator.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:r,ctx:s}=this.logCtx(t,this.raw),a=this.toRequest(e,s);return this.request(a,...r)}Sequence(e){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new E(this,e)}Paginator(e,t,r){return new v(this,e,t,r)}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...r){const a="string"==typeof e?e:e.message;return a.includes(s.NotFoundError.name)||a.includes("404")?new s.NotFoundError(e):a.includes(s.ConflictError.name)||a.includes("409")?new s.ConflictError(e):a.includes(s.BadRequestError.name)||a.includes("400")?new s.BadRequestError(e):a.includes(s.ValidationError.name)||a.includes("422")?new s.ValidationError(e):a.includes(t.QueryError.name)?new t.QueryError(e):a.includes(t.PagingError.name)?new t.PagingError(e):a.includes(t.UnsupportedError.name)?new t.UnsupportedError(e):a.includes(t.MigrationError.name)?new t.MigrationError(e):a.includes(t.ObserverError.name)?new t.ObserverError(e):a.includes(t.AuthorizationError.name)?new t.AuthorizationError(e):a.includes(t.ForbiddenError.name)?new t.ForbiddenError(e):a.includes(t.ConnectionError.name)?new t.ConnectionError(e):a.includes(s.SerializationError.name)?new s.SerializationError(e):new s.InternalError(e)}static decoration(){super.decoration(),r.Decoration.for(t.PersistenceKeys.QUERY).define({decorator:e=>(a,i,n)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,i),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const a=t,{log:n,ctxArgs:o}=(await a.logCtx(r,s.OperationKeys.READ,!0)).for(i);return n.verbose("Running prepared statement "+e.name),n.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(a,i,n)}).apply()}}w.decoration();const _="axios",P=(t,r)=>{if(t.headers&&t.headers[e.DecafHeaders.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[e.DecafHeaders.PENDING_TASK]),Object.entries(s).forEach(([e,t])=>{t.forEach(t=>r.pushPending(e,t))})}catch(s){r.logger.for(P).error(`Failed to parse pending tasks header ${t.headers[e.DecafHeaders.PENDING_TASK]}: ${s}`)}}};class x extends w{constructor(e,t){super(e,_,t)}getClient(){return new c.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,r){let s,a;e instanceof t.Context?(a=e,s=void 0):(s=e,a=r);const i={};return a&&(i.headers={...i.headers||{},...this.toHeaders(a)}),s&&(i.method="GET",i.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),i}async request(e,...t){let r={};try{const{ctx:e}=this.logCtx(t,this.request);r=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,r))}parseResponse(e,r,a){if(!a.status&&r!==t.PersistenceKeys.STATEMENT)throw new s.InternalError("this should be impossible");if(a.status>=400)throw this.parseError(a.error||a.status);const i=this.normalizeResponseBody(a);switch(r){case s.BulkCrudOperationKeys.CREATE_ALL:case s.BulkCrudOperationKeys.READ_ALL:case s.BulkCrudOperationKeys.UPDATE_ALL:case s.BulkCrudOperationKeys.DELETE_ALL:case s.OperationKeys.CREATE:case s.OperationKeys.READ:case s.OperationKeys.UPDATE:case s.OperationKeys.DELETE:return i;case t.PreparedStatementKeys.FIND:case t.PreparedStatementKeys.PAGE:case t.PreparedStatementKeys.FIND_BY:case t.PreparedStatementKeys.LIST_BY:case t.PreparedStatementKeys.PAGE_BY:case t.PreparedStatementKeys.FIND_ONE_BY:case t.PersistenceKeys.STATEMENT:return super.parseResponse(e,r,i);case t.PreparedStatementKeys.COUNT_OF:case t.PreparedStatementKeys.MAX_OF:case t.PreparedStatementKeys.MIN_OF:case t.PreparedStatementKeys.AVG_OF:case t.PreparedStatementKeys.SUM_OF:case t.PreparedStatementKeys.DISTINCT_OF:return i;case t.PreparedStatementKeys.GROUP_OF:if(e&&"object"==typeof i&&null!==i){const t={};for(const[r,s]of Object.entries(i))t[r]=Array.isArray(s)?s.map(t=>new e(t)):s;return t}return i;default:return i}}normalizeResponseBody(e){if(!e)return e;const t=void 0!==e.body?e.body:void 0!==e.data?e.data:e;if("string"==typeof t)try{return JSON.parse(t)}catch{return t}return t}async create(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return i.debug(`POSTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"POST",data:JSON.stringify(Object.assign({},r,{[a.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return i.debug(`POSTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"POST",data:JSON.stringify(r.map(t=>Object.assign({},t,{[a.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async read(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.read);try{const r=this.url(e,this.extractIdArgs(e,t)),i=this.toRequest(a);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"GET",...i},a)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.readAll);try{const r=this.url(e,["bulk"],{ids:t}),i=this.toRequest(a);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"GET",...i},a)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return i.debug(`PUTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"PUT",data:JSON.stringify(Object.assign({},r,{[a.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return i.debug(`PUTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"PUT",data:JSON.stringify(r.map(t=>Object.assign({},t,{[a.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.delete);try{const r=this.url(e,this.extractIdArgs(e,t)),i=this.toRequest(a);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"DELETE",...i},a)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.delete);try{const r=this.url(e,["bulk"],{ids:t}),i=this.toRequest(a);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"DELETE",...i},a)}catch(e){throw this.parseError(e)}}parseError(e,...t){return w.parseError(e,...t)}}x.decoration();const N="##VERSION##",T="##PACKAGE##";r.Metadata.registerLibrary(T,N),e.AxiosFlavour=_,e.AxiosHttpAdapter=x,e.HttpAdapter=w,e.HttpPaginator=v,e.HttpStatement=E,e.KeepAliveOperation=b,e.PACKAGE_NAME=T,e.RestRepository=y,e.RestService=m,e.ServerEventConnector=O,e.TaskResponseParser=P,e.VERSION=N,e.suffixMethod=A},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging"),require("event-source-plus"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging","event-source-plus","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging,e.eventSourcePlus,e.axios);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,s,i,a,n,o,c){"use strict";var d,l,h,u,p,g,f;class y extends t.Repository{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,r){return this.adapter.url(e,t,r)}async paginateBy(e,r,s={offset:1,limit:10},...a){const{offset:n,bookmark:o,limit:c}=s,{log:d,ctxArgs:l}=(await this.logCtx(a,t.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);d.verbose(`paginating ${i.Model.tableName(this.class)} with page size ${c}`);const h={direction:r,limit:c};return o&&(h.bookmark=o),this.statement(this.paginateBy.name,e,n,h,...l)}async listBy(e,r,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return a.verbose(`listing ${i.Model.tableName(this.class)} by ${e} ${r}`),await this.statement(this.listBy.name,e,{direction:r},...n)}async findBy(e,r,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return a.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findBy.name,e,r,{},...n)}async findOneBy(e,r,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return a.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findOneBy.name,e,r,{},...n)}async find(e,r=t.OrderDirection.ASC,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND,!0)).for(this.find);return a.verbose(`finding ${i.Model.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,e,r,...n)}async page(e,r=t.OrderDirection.ASC,s={offset:1,limit:10},...a){const{log:n,ctxArgs:o}=(await this.logCtx(a,t.PreparedStatementKeys.PAGE,!0)).for(this.page);return n.verbose(`paging ${i.Model.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,e,r,s,...o)}async statement(e,...r){const{log:s,ctx:i,ctxArgs:a}=(await this.logCtx(r,t.PersistenceKeys.STATEMENT,!0)).for(this.statement),n=a.slice(0,-1),o=n[n.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:n.pop(),d={class:this.class,args:n,method:e,params:c},l=this.adapter.toRequest(d,i);s.verbose("Executing prepared statement "+e);const h=await this.request(l,...a),u=this.adapter.parseResponse(this.class,e,h);return this.convertStatementResult(e,u,i)}convertStatementResult(e,r,s){return r?e===t.PreparedStatementKeys.FIND||e===t.PreparedStatementKeys.LIST_BY||e===t.PreparedStatementKeys.FIND_BY?Array.isArray(r)?r.map(e=>this.revertRecord(e,s)):r:e===t.PreparedStatementKeys.FIND_ONE_BY?this.revertRecord(r,s):e===t.PreparedStatementKeys.PAGE||e===t.PreparedStatementKeys.PAGE_BY?this.convertPageResult(r,s):r:r}convertPageResult(e,r){if(!e)return e;let s=e;if("string"==typeof s)try{s=t.Paginator.deserialize(s)}catch{return e}return t.Paginator.isSerializedPage(s)?{...s,data:s.data.map(e=>this.revertRecord(e,r))}:e}revertRecord(e,t){if(!e)return e;if(e instanceof this.class)return e;const r=i.Model.pk(this.class),s=i.Model.columnName(this.class,r),a=r??s,n=e[s]??e[a];if(void 0!==n)try{return this.adapter.revert(e,this.class,n,void 0,t)}catch{}return Object.assign(new this.class,e)}async request(e,...r){let i;i=r.length&&r[r.length-1]instanceof t.Context?this.logCtx(r,this.request):(await this.logCtx(r,s.OperationKeys.READ,!0)).for(this.request);const{ctxArgs:a}=i;return this.adapter.request(e,...a)}async countOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOf);s.verbose(`counting ${i.Model.tableName(this.class)}${e?" by "+e:""}`);const n=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...n,...a)}async maxOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.MAX_OF,!0)).for(this.maxOf);return s.verbose(`finding max of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.maxOf.name,e,{},...a)}async minOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.MIN_OF,!0)).for(this.minOf);return s.verbose(`finding min of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.minOf.name,e,{},...a)}async avgOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.AVG_OF,!0)).for(this.avgOf);return s.verbose(`calculating avg of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.avgOf.name,e,{},...a)}async sumOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.SUM_OF,!0)).for(this.sumOf);return s.verbose(`calculating sum of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.sumOf.name,e,{},...a)}async distinctOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.DISTINCT_OF,!0)).for(this.distinctOf);return s.verbose(`finding distinct values of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.distinctOf.name,e,{},...a)}async groupOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.GROUP_OF,!0)).for(this.groupOf);return s.verbose(`grouping ${i.Model.tableName(this.class)} by ${e}`),await this.statement(this.groupOf.name,e,{},...a)}}a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,String,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"find",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,String,Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"page",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"countOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(d="undefined"!=typeof K&&K)?d:Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"maxOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(l="undefined"!=typeof K&&K)?l:Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"minOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(h="undefined"!=typeof K&&K)?h:Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"avgOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(u="undefined"!=typeof K&&K)?u:Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"sumOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(p="undefined"!=typeof K&&K)?p:Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"distinctOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(g="undefined"!=typeof K&&K)?g:Object,void 0]),a.__metadata("design:returntype",Promise)],y.prototype,"groupOf",null);class m extends y{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return i.Model.tableName(this.class)+" REST service"}}class E extends t.Statement{constructor(e,t){super(e,t)}build(){throw new t.UnsupportedError("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(e,...r){throw new t.UnsupportedError("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class b extends t.Paginator{constructor(e,t,r,s){super(e,t,r,s)}async pagePrepared(e,...r){const s=t.Repository.forModel(this.clazz,this.adapter.alias),i=this.query,{method:a,args:n,params:o}=i,c=RegExp(`^${t.PreparedStatementKeys.FIND_BY}|${t.PreparedStatementKeys.LIST_BY}`,"gi");if(!a.match(c))throw new t.UnsupportedError(`Method ${a} is not supported for pagination`);c.lastIndex=0;const d=[a.replace(c,t.PreparedStatementKeys.PAGE_BY),...n],l={direction:o.direction,limit:this.size,offset:e,bookmark:this._bookmark};d.push(l);const h=await s.statement(...d,...r);return this.apply(h)}prepare(e){throw new t.UnsupportedError("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(e=1,...t){return super.page(e,...t)}}class v extends t.ContextualLoggedClass{static{this.cache=new Map}static get(e){if(this.cache.has(e))return this.cache.get(e);throw Error(`Server event connector not found for URL '${e}'. Did you forget to call open()?`)}static open(e,t){if(this.cache.has(e))return this.cache.get(e);const r=new v(e,t);return this.cache.set(e,r),this.cache.get(e)}static close(e){this.cache.has(e)&&this.cache.get(e).close()}static parseReceivedEvent(e){try{const t="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(t)||3>t.length)return null;const[r,s,a,n]=t;if("string"!=typeof r)return null;let o;return o=Array.isArray(n)?n.map(e=>"string"==typeof e?i.Serialization.deserialize(e):e):"string"==typeof n?i.Serialization.deserialize(n):n,[r,s+"",a,o]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.listeners=new Set}isOpen(){return void 0!==this.es}close(e=!1){const t=this.log.for(this.close);if(this.es)if(0>=this.listeners.size||e)try{t.info("Closing EventSource connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),v.cache.delete(this.url),t.info(`EventSource connection ${this.url} closed and removed from pool`)}else t.warn(`Skipping EventSource connection close ${this.url} \u2014 ${this.listeners.size} active listener(s) remaining.`);else t.debug("Skipping EventSource close \u2014 no open connection to "+this.url)}startListening(){const e=this.log.for(this.startListening);if(this.es)return void e.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`,{url:this.url,listeners:this.listeners.size});e.info("Opening EventSource connection to "+this.url),this.es=new o.EventSourcePlus(this.url,{...this.headers&&{headers:this.headers},credentials:"include"});const t=this;this.controller=this.es.listen({onResponse:()=>{e.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:r})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:r}),t.listeners.forEach(e=>e.onError((r?.message??r)+""))},onResponseError:({response:r})=>{const s=r?.status,i=r?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:s,statusText:i});const a=Error(`HTTP ${s??"unknown"} ${i??"error"}`);t.listeners.forEach(e=>e.onError(a))},onMessage:r=>{if("heartbeat"===r.event)return void e.debug("Refresh connection. Heartbeat received.");const s=r&&"object"==typeof r&&"data"in r?r.data:r,i=v.parseReceivedEvent(s);if(i)for(const r of t.listeners)try{r.onEvent(i)}catch(t){e.error("Listener handler failed on event",{err:t})}else e.warn("Failed to parse SSE message",{url:this.url,raw:s})}})}addListener(e){const t=this.log.for(this.addListener);return t.info(`Registering listener for connection ${this.url} \u2014 ${this.listeners.size} active listener(s)`),this.startListening(),this.listeners.add(e),t.info(`Listener registered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`),()=>this.removeListener(e)}removeListener(e){const t=this.log.for(this.removeListener),r=this.listeners.has(e);t.info(`Unregistering listener for connection ${this.url}. Current active listeners: ${this.listeners.size}`,{listenerFound:r}),r&&(this.listeners.delete(e),t.debug(`Listener unregistered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)),0===this.listeners.size&&(t.info(`No listeners remaining. Closing EventSource connection ${this.url}.`,{url:this.url,listeners:this.listeners.size}),this.close())}}class O extends t.Dispatch{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...e){const{log:r,ctxArgs:s}=(await this.logCtx(e,t.PersistenceKeys.INITIALIZATION,!0)).for(this.initialize);this.adapter?(r.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),r.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):r.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...e){const{log:t}=this.logCtx(e,this.startListening);if(!this.initialized||!this.adapter)throw t.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:r,host:s,eventsListenerPath:i}=this.adapter.config;if(!i)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:r,host:s}),Error("No eventsListenerPath specified");const a=new URL(i,`${r}://${s}`).toString();t.info("Opening ServerEventConnector for url: "+a),this.connector=v.open(a),t.debug("ServerEventConnector opened successfully for url: "+a),this.connector.addListener({onEvent:async e=>{const[t,r,s,...i]=e,{log:a,ctxArgs:n}=(await this.logCtx(i,r,!0)).for("onEvent");super.updateObservers(t,r,s,...n).catch(e=>a.error("ServerEventConnector failed to updateObservers",e))},onError:e=>{t.error("ServerEventConnector failed to dispatch event",{error:e,listeningUrl:a,adapter:this.adapter+""})}}),this.listening=!0,t.info(`HttpDispatcher is now listening at ${a}.`)}async close(...e){this.connector?.close(),this.listening=!1}}function S(e,t,r,s){const i=s||t.name;e[i]=new Proxy(e[i],{apply:async(e,t,s)=>{let i=e.call(t,...s);return i instanceof Promise&&(i=await i),i=r.call(t,i),i instanceof Promise&&(i=await i),i}})}e.DecafHeaders=void 0,(f=e.DecafHeaders||(e.DecafHeaders={})).PENDING_TASK="x-pending-task",f.CORRELATION_ID="x-correlation-id";class A extends t.Adapter{constructor(e,t,r){super(Object.assign({},e,{headers:void 0===e.headers||e.headers}),t,r);const i=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{S(this,e,t=>i.parseResponse.call(i,void 0,e.name,t),e.name)}),s.wrapMethodWithContext(this,(...e)=>e,this.request,(e,t)=>{const r=i.config.parsers;return r?(r.forEach(r=>r(e,t)),e):e},this.request.name)}async flags(e,t,r){return super.flags(e,t,Object.assign({headers:r.headers??{}},r))}Dispatch(){return new O}repository(){return m}prepare(e,...r){const{log:s}=this.logCtx(r,this.prepare),a=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(a,t.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[t.PersistenceKeys.METADATA]})),{record:e,id:e[i.Model.pk(e.constructor)]}}revert(e,r,a,...n){const{log:o}=this.logCtx(n,this.revert),c={},d="string"==typeof r?i.Model.build(c,r):new r(c);o.silly(`Rebuilding model ${d.constructor.name} id ${a}`);const l="string"==typeof r?i.Model.get(r):r;if(!l)throw new s.InternalError("Failed to retrieve model constructor for "+r);const h=new l(e),u=e[t.PersistenceKeys.METADATA];return u&&(o.silly(`Passing along ${this.flavour} persistence metadata for ${d.constructor.name} id ${a}: ${u}`),Object.defineProperty(h,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:u})),h}toTableName(e){return"string"==typeof e?e:n.toKebabCase(i.Model.tableName(e))}toHeaders(t){const r={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(r[e.DecafHeaders.CORRELATION_ID]=s)}return{...r,...t.getOrUndefined("headers")||{}}}url(e,t,r){r||t&&!Array.isArray(t)&&(r=t,t=[]),e=this.toTableName(e);const s=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return r&&Object.entries(r).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>s.searchParams.append(e,t.toString())):"object"==typeof t?s.searchParams.append(e,JSON.stringify(t)):void 0!==t&&s.searchParams.append(e,t.toString())}),s.toString()}extractIdArgs(e,t){const r=t.toString();if("string"==typeof e)return[r];const s=i.Model.composed(e,i.Model.pk(e));return s?r.split(s.separator):[r]}parseResponse(e,r,s){return e&&t.Paginator.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:r,ctx:s}=this.logCtx(t,this.raw),i=this.toRequest(e,s);return this.request(i,...r)}Sequence(e){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new E(this,e)}Paginator(e,t,r){return new b(this,e,t,r)}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...r){const i="string"==typeof e?e:e.message;return i.includes(s.NotFoundError.name)||i.includes("404")?new s.NotFoundError(e):i.includes(s.ConflictError.name)||i.includes("409")?new s.ConflictError(e):i.includes(s.BadRequestError.name)||i.includes("400")?new s.BadRequestError(e):i.includes(s.ValidationError.name)||i.includes("422")?new s.ValidationError(e):i.includes(t.QueryError.name)?new t.QueryError(e):i.includes(t.PagingError.name)?new t.PagingError(e):i.includes(t.UnsupportedError.name)?new t.UnsupportedError(e):i.includes(t.MigrationError.name)?new t.MigrationError(e):i.includes(t.ObserverError.name)?new t.ObserverError(e):i.includes(t.AuthorizationError.name)?new t.AuthorizationError(e):i.includes(t.ForbiddenError.name)?new t.ForbiddenError(e):i.includes(t.ConnectionError.name)?new t.ConnectionError(e):i.includes(s.SerializationError.name)?new s.SerializationError(e):new s.InternalError(e)}static decoration(){super.decoration(),r.Decoration.for(t.PersistenceKeys.QUERY).define({decorator:e=>(i,a,n)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,a),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const i=t,{log:n,ctxArgs:o}=(await i.logCtx(r,s.OperationKeys.READ,!0)).for(a);return n.verbose("Running prepared statement "+e.name),n.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(i,a,n)}).apply()}}A.decoration();const w="axios",P=(t,r)=>{if(t.headers&&t.headers[e.DecafHeaders.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[e.DecafHeaders.PENDING_TASK]),Object.entries(s).forEach(([e,t])=>{t.forEach(t=>r.pushPending(e,t))})}catch(s){r.logger.for(P).error(`Failed to parse pending tasks header ${t.headers[e.DecafHeaders.PENDING_TASK]}: ${s}`)}}};class _ extends A{constructor(e,t){super(e,w,t)}getClient(){return new c.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,r){let s,i;e instanceof t.Context?(i=e,s=void 0):(s=e,i=r);const a={};return i&&(a.headers={...a.headers||{},...this.toHeaders(i)}),s&&(a.method="GET",a.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),a}async request(e,...t){let r={};try{const{ctx:e}=this.logCtx(t,this.request);r=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,r))}parseResponse(e,r,i){if(!i.status&&r!==t.PersistenceKeys.STATEMENT)throw new s.InternalError("this should be impossible");if(i.status>=400)throw this.parseError(i.error||i.status);const a=this.normalizeResponseBody(i);switch(r){case s.BulkCrudOperationKeys.CREATE_ALL:case s.BulkCrudOperationKeys.READ_ALL:case s.BulkCrudOperationKeys.UPDATE_ALL:case s.BulkCrudOperationKeys.DELETE_ALL:case s.OperationKeys.CREATE:case s.OperationKeys.READ:case s.OperationKeys.UPDATE:case s.OperationKeys.DELETE:return a;case t.PreparedStatementKeys.FIND:case t.PreparedStatementKeys.PAGE:case t.PreparedStatementKeys.FIND_BY:case t.PreparedStatementKeys.LIST_BY:case t.PreparedStatementKeys.PAGE_BY:case t.PreparedStatementKeys.FIND_ONE_BY:case t.PersistenceKeys.STATEMENT:return super.parseResponse(e,r,a);case t.PreparedStatementKeys.COUNT_OF:case t.PreparedStatementKeys.MAX_OF:case t.PreparedStatementKeys.MIN_OF:case t.PreparedStatementKeys.AVG_OF:case t.PreparedStatementKeys.SUM_OF:case t.PreparedStatementKeys.DISTINCT_OF:return a;case t.PreparedStatementKeys.GROUP_OF:if(e&&"object"==typeof a&&null!==a){const t={};for(const[r,s]of Object.entries(a))t[r]=Array.isArray(s)?s.map(t=>new e(t)):s;return t}return a;default:return a}}normalizeResponseBody(e){if(!e)return e;const t=void 0!==e.body?e.body:void 0!==e.data?e.data:e;if("string"==typeof t)try{return JSON.parse(t)}catch{return t}return t}async create(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return a.debug(`POSTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"POST",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return a.debug(`POSTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"POST",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async read(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.read);try{const r=this.url(e,this.extractIdArgs(e,t)),a=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"GET",...a},i)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.readAll);try{const r=this.url(e,["bulk"],{ids:t}),a=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"GET",...a},i)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return a.debug(`PUTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"PUT",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return a.debug(`PUTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"PUT",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,this.extractIdArgs(e,t)),a=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"DELETE",...a},i)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,["bulk"],{ids:t}),a=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"DELETE",...a},i)}catch(e){throw this.parseError(e)}}parseError(e,...t){return A.parseError(e,...t)}}_.decoration();const x="##VERSION##",N="##PACKAGE##";r.Metadata.registerLibrary(N,x),e.AxiosFlavour=w,e.AxiosHttpAdapter=_,e.HttpAdapter=A,e.HttpPaginator=b,e.HttpStatement=E,e.KeepAliveOperation="keepalive",e.PACKAGE_NAME=N,e.RestRepository=y,e.RestService=m,e.ServerEventConnector=v,e.TaskResponseParser=P,e.VERSION=x,e.suffixMethod=S},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging"),require("event-source-plus"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging","event-source-plus","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging,e.eventSourcePlus,e.axios);
|
|
2
2
|
//# sourceMappingURL=for-http.cjs.map
|
package/dist/for-http.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-http.cjs","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","connector","set","close","parseReceivedEvent","raw","JSON","parse","eventName","operationKey","objectId","rawPayload","String","Serialization","listeners","Set","isOpen","es","warn","info","controller","abort","clear","delete","debug","startListening","handlers","headers","EventSourcePlus","credentials","listen","onResponse","onRequestError","error","onError","message","onResponseError","status","statusText","onMessage","event","onEvent","addListener","add","removeListener","KeepAliveOperation","HttpDispatcher","Dispatch","listening","initialize","INITIALIZATION","initialized","hasAdapter","protocol","host","eventsListenerPath","config","listeningUrl","URL","async","operation","updateObservers","catch","e","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","flavour","self","create","read","update","createAll","readAll","updateAll","deleteAll","forEach","res","wrapMethodWithContext","parsers","p","flags","model","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","InternalError","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","err","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-http.cjs","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","Serialization","String","listeners","Set","isOpen","es","force","info","controller","abort","clear","delete","warn","debug","startListening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","addListener","handlers","add","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","protocol","host","eventsListenerPath","config","listeningUrl","URL","async","operation","updateObservers","catch","e","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","InternalError","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/dist/for-http.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{prepared as t,Repository as e,PreparedStatementKeys as s,OrderDirection as r,PersistenceKeys as i,Paginator as n,Context as a,Statement as o,UnsupportedError as c,ContextualLoggedClass as l,Dispatch as h,Adapter as d,QueryError as u,PagingError as g,MigrationError as p,ObserverError as f,AuthorizationError as m,ForbiddenError as y,ConnectionError as v}from"@decaf-ts/core";import{Decoration as w,apply as b,methodMetadata as O,Metadata as A}from"@decaf-ts/decoration";import{OperationKeys as E,wrapMethodWithContext as x,InternalError as N,NotFoundError as S,ConflictError as T,BadRequestError as $,ValidationError as C,SerializationError as R,BulkCrudOperationKeys as P}from"@decaf-ts/db-decorators";import{Model as _,Serialization as I,ModelKeys as q}from"@decaf-ts/decorator-validation";import{__decorate as D,__metadata as L}from"tslib";import{toKebabCase as F}from"@decaf-ts/logging";import{EventSourcePlus as j}from"event-source-plus";import{Axios as B}from"axios";var z,k,U,G,J,M,Y;class H extends e{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(t,e,s){return this.adapter.url(t,e,s)}async paginateBy(t,e,r={offset:1,limit:10},...i){const{offset:n,bookmark:a,limit:o}=r,{log:c,ctxArgs:l}=(await this.logCtx(i,s.PAGE_BY,!0)).for(this.paginateBy);c.verbose(`paginating ${_.tableName(this.class)} with page size ${o}`);const h={direction:e,limit:o};return a&&(h.bookmark=a),this.statement(this.paginateBy.name,t,n,h,...l)}async listBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${_.tableName(this.class)} by ${t} ${e}`),await this.statement(this.listBy.name,t,{direction:e},...n)}async findBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${_.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findBy.name,t,e,{},...n)}async findOneBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${_.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findOneBy.name,t,e,{},...n)}async find(t,e=r.ASC,...i){const{log:n,ctxArgs:a}=(await this.logCtx(i,s.FIND,!0)).for(this.find);return n.verbose(`finding ${_.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,t,e,...a)}async page(t,e=r.ASC,i={offset:1,limit:10},...n){const{log:a,ctxArgs:o}=(await this.logCtx(n,s.PAGE,!0)).for(this.page);return a.verbose(`paging ${_.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,t,e,i,...o)}async statement(t,...e){const{log:s,ctx:r,ctxArgs:n}=(await this.logCtx(e,i.STATEMENT,!0)).for(this.statement),a=n.slice(0,-1),o=a[a.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:a.pop(),l={class:this.class,args:a,method:t,params:c},h=this.adapter.toRequest(l,r);s.verbose("Executing prepared statement "+t);const d=await this.request(h,...n),u=this.adapter.parseResponse(this.class,t,d);return this.convertStatementResult(t,u,r)}convertStatementResult(t,e,r){return e?t===s.FIND||t===s.LIST_BY||t===s.FIND_BY?Array.isArray(e)?e.map(t=>this.revertRecord(t,r)):e:t===s.FIND_ONE_BY?this.revertRecord(e,r):t===s.PAGE||t===s.PAGE_BY?this.convertPageResult(e,r):e:e}convertPageResult(t,e){if(!t)return t;let s=t;if("string"==typeof s)try{s=n.deserialize(s)}catch{return t}return n.isSerializedPage(s)?{...s,data:s.data.map(t=>this.revertRecord(t,e))}:t}revertRecord(t,e){if(!t)return t;if(t instanceof this.class)return t;const s=_.pk(this.class),r=_.columnName(this.class,s),i=s??r,n=t[r]??t[i];if(void 0!==n)try{return this.adapter.revert(t,this.class,n,void 0,e)}catch{}return Object.assign(new this.class,t)}async request(t,...e){let s;s=e.length&&e[e.length-1]instanceof a?this.logCtx(e,this.request):(await this.logCtx(e,E.READ,!0)).for(this.request);const{ctxArgs:r}=s;return this.adapter.request(t,...r)}async countOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.COUNT_OF,!0)).for(this.countOf);r.verbose(`counting ${_.tableName(this.class)}${t?" by "+t:""}`);const n=t?[t,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MAX_OF,!0)).for(this.maxOf);return r.verbose(`finding max of ${t} in ${_.tableName(this.class)}`),await this.statement(this.maxOf.name,t,{},...i)}async minOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MIN_OF,!0)).for(this.minOf);return r.verbose(`finding min of ${t} in ${_.tableName(this.class)}`),await this.statement(this.minOf.name,t,{},...i)}async avgOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.AVG_OF,!0)).for(this.avgOf);return r.verbose(`calculating avg of ${t} in ${_.tableName(this.class)}`),await this.statement(this.avgOf.name,t,{},...i)}async sumOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.SUM_OF,!0)).for(this.sumOf);return r.verbose(`calculating sum of ${t} in ${_.tableName(this.class)}`),await this.statement(this.sumOf.name,t,{},...i)}async distinctOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.DISTINCT_OF,!0)).for(this.distinctOf);return r.verbose(`finding distinct values of ${t} in ${_.tableName(this.class)}`),await this.statement(this.distinctOf.name,t,{},...i)}async groupOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.GROUP_OF,!0)).for(this.groupOf);return r.verbose(`grouping ${_.tableName(this.class)} by ${t}`),await this.statement(this.groupOf.name,t,{},...i)}}D([t(),L("design:type",Function),L("design:paramtypes",[String,String,void 0]),L("design:returntype",Promise)],H.prototype,"find",null),D([t(),L("design:type",Function),L("design:paramtypes",[String,String,Object,void 0]),L("design:returntype",Promise)],H.prototype,"page",null),D([t(),L("design:type",Function),L("design:paramtypes",[Object,void 0]),L("design:returntype",Promise)],H.prototype,"countOf",null),D([t(),L("design:type",Function),L("design:paramtypes",["function"==typeof(z="undefined"!=typeof K&&K)?z:Object,void 0]),L("design:returntype",Promise)],H.prototype,"maxOf",null),D([t(),L("design:type",Function),L("design:paramtypes",["function"==typeof(k="undefined"!=typeof K&&K)?k:Object,void 0]),L("design:returntype",Promise)],H.prototype,"minOf",null),D([t(),L("design:type",Function),L("design:paramtypes",["function"==typeof(U="undefined"!=typeof K&&K)?U:Object,void 0]),L("design:returntype",Promise)],H.prototype,"avgOf",null),D([t(),L("design:type",Function),L("design:paramtypes",["function"==typeof(G="undefined"!=typeof K&&K)?G:Object,void 0]),L("design:returntype",Promise)],H.prototype,"sumOf",null),D([t(),L("design:type",Function),L("design:paramtypes",["function"==typeof(J="undefined"!=typeof K&&K)?J:Object,void 0]),L("design:returntype",Promise)],H.prototype,"distinctOf",null),D([t(),L("design:type",Function),L("design:paramtypes",["function"==typeof(M="undefined"!=typeof K&&K)?M:Object,void 0]),L("design:returntype",Promise)],H.prototype,"groupOf",null);class Q extends H{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return _.tableName(this.class)+" REST service"}}class V extends o{constructor(t,e){super(t,e)}build(){throw new c("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(t,...e){throw new c("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class X extends n{constructor(t,e,s,r){super(t,e,s,r)}async pagePrepared(t,...r){const i=e.forModel(this.clazz,this.adapter.alias),n=this.query,{method:a,args:o,params:l}=n,h=RegExp(`^${s.FIND_BY}|${s.LIST_BY}`,"gi");if(!a.match(h))throw new c(`Method ${a} is not supported for pagination`);h.lastIndex=0;const d=[a.replace(h,s.PAGE_BY),...o],u={direction:l.direction,limit:this.size,offset:t,bookmark:this._bookmark};d.push(u);const g=await i.statement(...d,...r);return this.apply(g)}prepare(t){throw new c("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(t=1,...e){return super.page(t,...e)}}class W extends l{static{this.cache=new Map}static get(t){if(this.cache.has(t))return this.cache.get(t);throw Error(`Server event connector not found for URL '${t}'. Did you forget to call open()?`)}static open(t){if(this.cache.has(t))return this.cache.get(t);const e=new W(t);return this.cache.set(t,e),this.cache.get(t)}static close(t){this.cache.has(t)&&this.cache.get(t).close()}static parseReceivedEvent(t){try{const e="string"==typeof t?JSON.parse(t):t;if(!Array.isArray(e)||3>e.length)return null;const[s,r,i,n]=e;return"string"!=typeof s?null:[s,r+"",i,"string"==typeof n?I.deserialize(n):n]}catch{return null}}constructor(t){super(),this.url=t,this.listeners=new Set}isOpen(){return void 0!==this.es}close(){const t=this.log.for(this.close);if(this.es)if(this.listeners.size>0)t.warn("Skipping connector close because still has active listeners",{url:this.url,listeners:this.listeners.size});else try{t.info("ServerEventConnector closing event source connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),W.cache.delete(this.url),t.info("ServerEventConnector closed connection and removed from active pool for URL "+this.url)}else t.debug(`Skipping connector close because connector for ${this.url} is not open`)}startListening(t,e){const s=this.log.for(this.startListening);this.es?s.info("ServerEventConnector already in pool and listening",{url:this.url,listeners:this.listeners.size}):(s.info("Opening event source connection for "+this.url),this.es=new j(this.url,{headers:e,credentials:"include"}),this.controller=this.es.listen({onResponse:()=>{s.info("ServerEventConnector listening events from "+this.url)},onRequestError:({error:e})=>{s.error("ServerEventConnector error on request",{url:this.url,error:e}),t.onError((e?.message??e)+"")},onResponseError:({response:e})=>{s.error("ServerEventConnector received an error response",{url:this.url,status:e?.status,statusText:e?.statusText}),t.onError(`HTTP Error Response: ${e.status} ${e.statusText}`)},onMessage:e=>{const r=e&&"object"==typeof e&&"data"in e?e.data:e,i=W.parseReceivedEvent(r);i?t.onEvent(i):s.warn("Failed to parse SSE message",{url:this.url,raw:r})}}))}addListener(t){this.listeners.add(t)}removeListener(t){this.listeners.delete(t)}}(t=>{t.PENDING_TASK="x-pending-task",t.CORRELATION_ID="x-correlation-id"})(Y||(Y={}));const Z="keepalive";class tt extends h{constructor(){super(...arguments),this.listening=!1}async initialize(...t){const{log:e,ctxArgs:s}=(await this.logCtx(t,i.INITIALIZATION,!0)).for(this.initialize);this.adapter?(e.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),e.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):e.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...t){const{log:e}=this.logCtx(t,this.startListening);if(!this.initialized||!this.adapter)throw e.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");this.listening&&e.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:s,host:r,eventsListenerPath:i}=this.adapter.config;if(!i)throw e.error("Cannot start listening: no eventsListenerPath specified",{protocol:s,host:r}),Error("No eventsListenerPath specified");const n=new URL(i,`${s}://${r}`).toString();e.info("Opening ServerEventConnector for url: "+n),this.connector=W.open(n),e.debug("ServerEventConnector opened successfully for url: "+n),this.connector.startListening({onEvent:async t=>{const[e,s,r,...i]=t,{log:n,ctxArgs:a}=(await this.logCtx(i,s,!0)).for("onEvent");s!==Z?super.updateObservers(e,s,r,...a).catch(t=>n.error("ServerEventConnector failed to updateObservers",t)):n.debug("keep alive received - discarding")},onError:t=>{e.error("ServerEventConnector failed to dispatch event",{error:t,listeningUrl:n,adapter:this.adapter+""})}}),this.listening=!0,e.info(`HttpDispatcher is now listening at ${n}.`)}async close(...t){this.connector?.close(),this.listening=!1}}function et(t,e,s,r){const i=r||e.name;t[i]=new Proxy(t[i],{apply:async(t,e,r)=>{let i=t.call(e,...r);return i instanceof Promise&&(i=await i),i=s.call(e,i),i instanceof Promise&&(i=await i),i}})}class st extends d{constructor(t,e,s){super(Object.assign({},t,{headers:void 0===t.headers||t.headers}),e,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{et(this,t,e=>r.parseResponse.call(r,void 0,t.name,e),t.name)}),x(this,(...t)=>t,this.request,(t,e)=>{const s=r.config.parsers;return s?(s.forEach(s=>s(t,e)),t):t},this.request.name)}async flags(t,e,s){return super.flags(t,e,Object.assign({headers:s.headers??{}},s))}Dispatch(){return new tt}repository(){return Q}prepare(t,...e){const{log:s}=this.logCtx(e,this.prepare),r=Object.assign({},t);return t[i.METADATA]&&(s.silly("Passing along persistence metadata for "+t[i.METADATA]),Object.defineProperty(r,i.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[i.METADATA]})),{record:t,id:t[_.pk(t.constructor)]}}revert(t,e,s,...r){const{log:n}=this.logCtx(r,this.revert),a={},o="string"==typeof e?_.build(a,e):new e(a);n.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof e?_.get(e):e;if(!c)throw new N("Failed to retrieve model constructor for "+e);const l=new c(t),h=t[i.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${h}`),Object.defineProperty(l,i.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(t){return"string"==typeof t?t:F(_.tableName(t))}toHeaders(t){const e={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(e[Y.CORRELATION_ID]=s)}return{...e,...t.getOrUndefined("headers")||{}}}url(t,e,s){s||e&&!Array.isArray(e)&&(s=e,e=[]),t=this.toTableName(t);const r=new URL(`${this.config.protocol}://${this.config.host}/${t}${e&&e.length?"/"+e.join("/"):""}`);return s&&Object.entries(s).forEach(([t,e])=>{Array.isArray(e)?e.forEach(e=>r.searchParams.append(t,e.toString())):"object"==typeof e?r.searchParams.append(t,JSON.stringify(e)):void 0!==e&&r.searchParams.append(t,e.toString())}),r.toString()}extractIdArgs(t,e){const s=e.toString();if("string"==typeof t)return[s];const r=_.composed(t,_.pk(t));return r?s.split(r.separator):[s]}parseResponse(t,e,s){return t&&n.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(e=>new t(e))}):s}raw(t,...e){const{ctxArgs:s,ctx:r}=this.logCtx(e,this.raw),i=this.toRequest(t,r);return this.request(i,...s)}Sequence(t){return Promise.reject(new c("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(t){return new V(this,t)}Paginator(t,e,s){return new X(this,t,e,s)}parseCondition(t){throw new c("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(t,...e){const s="string"==typeof t?t:t.message;return s.includes(S.name)||s.includes("404")?new S(t):s.includes(T.name)||s.includes("409")?new T(t):s.includes($.name)||s.includes("400")?new $(t):s.includes(C.name)||s.includes("422")?new C(t):s.includes(u.name)?new u(t):s.includes(g.name)?new g(t):s.includes(c.name)?new c(t):s.includes(p.name)?new p(t):s.includes(f.name)?new f(t):s.includes(m.name)?new m(t):s.includes(y.name)?new y(t):s.includes(v.name)?new v(t):s.includes(R.name)?new R(t):new N(t)}static decoration(){super.decoration(),w.for(i.QUERY).define({decorator:e=>(s,r,n)=>b(O(A.key(i.QUERY,r),e),t(),(t,e,s)=>{s.value=new Proxy(s.value,{async apply(t,e,s){const i=e,{log:n,ctxArgs:a}=(await i.logCtx(s,E.READ,!0)).for(r);return n.verbose("Running prepared statement "+t.name),n.debug("With args: "+JSON.stringify(s,null,2)),e.statement(t.name,...a)}})})(s,r,n)}).apply()}}st.decoration();const rt="axios",it=(t,e)=>{if(t.headers&&t.headers[Y.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[Y.PENDING_TASK]),Object.entries(s).forEach(([t,s])=>{s.forEach(s=>e.pushPending(t,s))})}catch(s){e.logger.for(it).error(`Failed to parse pending tasks header ${t.headers[Y.PENDING_TASK]}: ${s}`)}}};class nt extends st{constructor(t,e){super(t,rt,e)}getClient(){return new B({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(t,e){let s,r;t instanceof a?(r=t,s=void 0):(s=t,r=e);const n={};return r&&(n.headers={...n.headers||{},...this.toHeaders(r)}),s&&(n.method="GET",n.url=this.url(s.class,[i.STATEMENT,s.method,...s.args||[]],s.params)),n}async request(t,...e){let s={};try{const{ctx:t}=this.logCtx(e,this.request);s=this.toRequest(t)}catch(t){}return await this.client.request(Object.assign({},t,s))}parseResponse(t,e,r){if(!r.status&&e!==i.STATEMENT)throw new N("this should be impossible");if(r.status>=400)throw this.parseError(r.error||r.status);const n=this.normalizeResponseBody(r);switch(e){case P.CREATE_ALL:case P.READ_ALL:case P.UPDATE_ALL:case P.DELETE_ALL:case E.CREATE:case E.READ:case E.UPDATE:case E.DELETE:return n;case s.FIND:case s.PAGE:case s.FIND_BY:case s.LIST_BY:case s.PAGE_BY:case s.FIND_ONE_BY:case i.STATEMENT:return super.parseResponse(t,e,n);case s.COUNT_OF:case s.MAX_OF:case s.MIN_OF:case s.AVG_OF:case s.SUM_OF:case s.DISTINCT_OF:return n;case s.GROUP_OF:if(t&&"object"==typeof n&&null!==n){const e={};for(const[s,r]of Object.entries(n))e[s]=Array.isArray(r)?r.map(e=>new t(e)):r;return e}return n;default:return n}}normalizeResponseBody(t){if(!t)return t;const e=void 0!==t.body?t.body:void 0!==t.data?t.data:t;if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}async create(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.create);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`POSTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"POST",data:JSON.stringify(Object.assign({},s,{[q.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async createAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.createAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`POSTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"POST",data:JSON.stringify(s.map(e=>Object.assign({},e,{[q.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async read(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.read);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async readAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.readAll);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async update(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.update);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`PUTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"PUT",data:JSON.stringify(Object.assign({},s,{[q.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async updateAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.updateAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`PUTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"PUT",data:JSON.stringify(s.map(e=>Object.assign({},e,{[q.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async delete(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}async deleteAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}parseError(t,...e){return st.parseError(t,...e)}}nt.decoration();const at="##VERSION##",ot="##PACKAGE##";A.registerLibrary(ot,at);export{rt as AxiosFlavour,nt as AxiosHttpAdapter,Y as DecafHeaders,st as HttpAdapter,X as HttpPaginator,V as HttpStatement,Z as KeepAliveOperation,ot as PACKAGE_NAME,H as RestRepository,Q as RestService,W as ServerEventConnector,it as TaskResponseParser,at as VERSION,et as suffixMethod};
|
|
1
|
+
import{prepared as t,Repository as e,PreparedStatementKeys as s,OrderDirection as r,PersistenceKeys as i,Paginator as n,Context as a,Statement as o,UnsupportedError as c,ContextualLoggedClass as l,Dispatch as h,Adapter as d,QueryError as u,PagingError as g,MigrationError as p,ObserverError as f,AuthorizationError as m,ForbiddenError as y,ConnectionError as w}from"@decaf-ts/core";import{Decoration as b,apply as v,methodMetadata as O,Metadata as E}from"@decaf-ts/decoration";import{OperationKeys as A,wrapMethodWithContext as x,InternalError as $,NotFoundError as S,ConflictError as N,BadRequestError as T,ValidationError as R,SerializationError as C,BulkCrudOperationKeys as P}from"@decaf-ts/db-decorators";import{Model as L,Serialization as _,ModelKeys as I}from"@decaf-ts/decorator-validation";import{__decorate as q,__metadata as D}from"tslib";import{toKebabCase as F}from"@decaf-ts/logging";import{EventSourcePlus as z}from"event-source-plus";import{Axios as j}from"axios";var B,k,U,G,J,M,Y;class H extends e{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(t,e,s){return this.adapter.url(t,e,s)}async paginateBy(t,e,r={offset:1,limit:10},...i){const{offset:n,bookmark:a,limit:o}=r,{log:c,ctxArgs:l}=(await this.logCtx(i,s.PAGE_BY,!0)).for(this.paginateBy);c.verbose(`paginating ${L.tableName(this.class)} with page size ${o}`);const h={direction:e,limit:o};return a&&(h.bookmark=a),this.statement(this.paginateBy.name,t,n,h,...l)}async listBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${L.tableName(this.class)} by ${t} ${e}`),await this.statement(this.listBy.name,t,{direction:e},...n)}async findBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findBy.name,t,e,{},...n)}async findOneBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findOneBy.name,t,e,{},...n)}async find(t,e=r.ASC,...i){const{log:n,ctxArgs:a}=(await this.logCtx(i,s.FIND,!0)).for(this.find);return n.verbose(`finding ${L.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,t,e,...a)}async page(t,e=r.ASC,i={offset:1,limit:10},...n){const{log:a,ctxArgs:o}=(await this.logCtx(n,s.PAGE,!0)).for(this.page);return a.verbose(`paging ${L.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,t,e,i,...o)}async statement(t,...e){const{log:s,ctx:r,ctxArgs:n}=(await this.logCtx(e,i.STATEMENT,!0)).for(this.statement),a=n.slice(0,-1),o=a[a.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:a.pop(),l={class:this.class,args:a,method:t,params:c},h=this.adapter.toRequest(l,r);s.verbose("Executing prepared statement "+t);const d=await this.request(h,...n),u=this.adapter.parseResponse(this.class,t,d);return this.convertStatementResult(t,u,r)}convertStatementResult(t,e,r){return e?t===s.FIND||t===s.LIST_BY||t===s.FIND_BY?Array.isArray(e)?e.map(t=>this.revertRecord(t,r)):e:t===s.FIND_ONE_BY?this.revertRecord(e,r):t===s.PAGE||t===s.PAGE_BY?this.convertPageResult(e,r):e:e}convertPageResult(t,e){if(!t)return t;let s=t;if("string"==typeof s)try{s=n.deserialize(s)}catch{return t}return n.isSerializedPage(s)?{...s,data:s.data.map(t=>this.revertRecord(t,e))}:t}revertRecord(t,e){if(!t)return t;if(t instanceof this.class)return t;const s=L.pk(this.class),r=L.columnName(this.class,s),i=s??r,n=t[r]??t[i];if(void 0!==n)try{return this.adapter.revert(t,this.class,n,void 0,e)}catch{}return Object.assign(new this.class,t)}async request(t,...e){let s;s=e.length&&e[e.length-1]instanceof a?this.logCtx(e,this.request):(await this.logCtx(e,A.READ,!0)).for(this.request);const{ctxArgs:r}=s;return this.adapter.request(t,...r)}async countOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.COUNT_OF,!0)).for(this.countOf);r.verbose(`counting ${L.tableName(this.class)}${t?" by "+t:""}`);const n=t?[t,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MAX_OF,!0)).for(this.maxOf);return r.verbose(`finding max of ${t} in ${L.tableName(this.class)}`),await this.statement(this.maxOf.name,t,{},...i)}async minOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MIN_OF,!0)).for(this.minOf);return r.verbose(`finding min of ${t} in ${L.tableName(this.class)}`),await this.statement(this.minOf.name,t,{},...i)}async avgOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.AVG_OF,!0)).for(this.avgOf);return r.verbose(`calculating avg of ${t} in ${L.tableName(this.class)}`),await this.statement(this.avgOf.name,t,{},...i)}async sumOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.SUM_OF,!0)).for(this.sumOf);return r.verbose(`calculating sum of ${t} in ${L.tableName(this.class)}`),await this.statement(this.sumOf.name,t,{},...i)}async distinctOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.DISTINCT_OF,!0)).for(this.distinctOf);return r.verbose(`finding distinct values of ${t} in ${L.tableName(this.class)}`),await this.statement(this.distinctOf.name,t,{},...i)}async groupOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.GROUP_OF,!0)).for(this.groupOf);return r.verbose(`grouping ${L.tableName(this.class)} by ${t}`),await this.statement(this.groupOf.name,t,{},...i)}}q([t(),D("design:type",Function),D("design:paramtypes",[String,String,void 0]),D("design:returntype",Promise)],H.prototype,"find",null),q([t(),D("design:type",Function),D("design:paramtypes",[String,String,Object,void 0]),D("design:returntype",Promise)],H.prototype,"page",null),q([t(),D("design:type",Function),D("design:paramtypes",[Object,void 0]),D("design:returntype",Promise)],H.prototype,"countOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(B="undefined"!=typeof K&&K)?B:Object,void 0]),D("design:returntype",Promise)],H.prototype,"maxOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(k="undefined"!=typeof K&&K)?k:Object,void 0]),D("design:returntype",Promise)],H.prototype,"minOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(U="undefined"!=typeof K&&K)?U:Object,void 0]),D("design:returntype",Promise)],H.prototype,"avgOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(G="undefined"!=typeof K&&K)?G:Object,void 0]),D("design:returntype",Promise)],H.prototype,"sumOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(J="undefined"!=typeof K&&K)?J:Object,void 0]),D("design:returntype",Promise)],H.prototype,"distinctOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(M="undefined"!=typeof K&&K)?M:Object,void 0]),D("design:returntype",Promise)],H.prototype,"groupOf",null);class Q extends H{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return L.tableName(this.class)+" REST service"}}class V extends o{constructor(t,e){super(t,e)}build(){throw new c("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(t,...e){throw new c("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class X extends n{constructor(t,e,s,r){super(t,e,s,r)}async pagePrepared(t,...r){const i=e.forModel(this.clazz,this.adapter.alias),n=this.query,{method:a,args:o,params:l}=n,h=RegExp(`^${s.FIND_BY}|${s.LIST_BY}`,"gi");if(!a.match(h))throw new c(`Method ${a} is not supported for pagination`);h.lastIndex=0;const d=[a.replace(h,s.PAGE_BY),...o],u={direction:l.direction,limit:this.size,offset:t,bookmark:this._bookmark};d.push(u);const g=await i.statement(...d,...r);return this.apply(g)}prepare(t){throw new c("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(t=1,...e){return super.page(t,...e)}}class W extends l{static{this.cache=new Map}static get(t){if(this.cache.has(t))return this.cache.get(t);throw Error(`Server event connector not found for URL '${t}'. Did you forget to call open()?`)}static open(t,e){if(this.cache.has(t))return this.cache.get(t);const s=new W(t,e);return this.cache.set(t,s),this.cache.get(t)}static close(t){this.cache.has(t)&&this.cache.get(t).close()}static parseReceivedEvent(t){try{const e="string"==typeof t?JSON.parse(t):t;if(!Array.isArray(e)||3>e.length)return null;const[s,r,i,n]=e;if("string"!=typeof s)return null;let a;return a=Array.isArray(n)?n.map(t=>"string"==typeof t?_.deserialize(t):t):"string"==typeof n?_.deserialize(n):n,[s,r+"",i,a]}catch{return null}}constructor(t,e){super(),this.url=t,this.headers=e,this.listeners=new Set}isOpen(){return void 0!==this.es}close(t=!1){const e=this.log.for(this.close);if(this.es)if(0>=this.listeners.size||t)try{e.info("Closing EventSource connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),W.cache.delete(this.url),e.info(`EventSource connection ${this.url} closed and removed from pool`)}else e.warn(`Skipping EventSource connection close ${this.url} \u2014 ${this.listeners.size} active listener(s) remaining.`);else e.debug("Skipping EventSource close \u2014 no open connection to "+this.url)}startListening(){const t=this.log.for(this.startListening);if(this.es)return void t.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`,{url:this.url,listeners:this.listeners.size});t.info("Opening EventSource connection to "+this.url),this.es=new z(this.url,{...this.headers&&{headers:this.headers},credentials:"include"});const e=this;this.controller=this.es.listen({onResponse:()=>{t.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:s})=>{t.error("Failed to establish EventSource connection",{url:this.url,error:s}),e.listeners.forEach(t=>t.onError((s?.message??s)+""))},onResponseError:({response:s})=>{const r=s?.status,i=s?.statusText;t.error("Listening failed with HTTP error response",{url:this.url,status:r,statusText:i});const n=Error(`HTTP ${r??"unknown"} ${i??"error"}`);e.listeners.forEach(t=>t.onError(n))},onMessage:s=>{if("heartbeat"===s.event)return void t.debug("Refresh connection. Heartbeat received.");const r=s&&"object"==typeof s&&"data"in s?s.data:s,i=W.parseReceivedEvent(r);if(i)for(const s of e.listeners)try{s.onEvent(i)}catch(e){t.error("Listener handler failed on event",{err:e})}else t.warn("Failed to parse SSE message",{url:this.url,raw:r})}})}addListener(t){const e=this.log.for(this.addListener);return e.info(`Registering listener for connection ${this.url} \u2014 ${this.listeners.size} active listener(s)`),this.startListening(),this.listeners.add(t),e.info(`Listener registered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`),()=>this.removeListener(t)}removeListener(t){const e=this.log.for(this.removeListener),s=this.listeners.has(t);e.info(`Unregistering listener for connection ${this.url}. Current active listeners: ${this.listeners.size}`,{listenerFound:s}),s&&(this.listeners.delete(t),e.debug(`Listener unregistered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)),0===this.listeners.size&&(e.info(`No listeners remaining. Closing EventSource connection ${this.url}.`,{url:this.url,listeners:this.listeners.size}),this.close())}}class Z extends h{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...t){const{log:e,ctxArgs:s}=(await this.logCtx(t,i.INITIALIZATION,!0)).for(this.initialize);this.adapter?(e.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),e.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):e.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...t){const{log:e}=this.logCtx(t,this.startListening);if(!this.initialized||!this.adapter)throw e.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");this.listening&&e.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:s,host:r,eventsListenerPath:i}=this.adapter.config;if(!i)throw e.error("Cannot start listening: no eventsListenerPath specified",{protocol:s,host:r}),Error("No eventsListenerPath specified");const n=new URL(i,`${s}://${r}`).toString();e.info("Opening ServerEventConnector for url: "+n),this.connector=W.open(n),e.debug("ServerEventConnector opened successfully for url: "+n),this.connector.addListener({onEvent:async t=>{const[e,s,r,...i]=t,{log:n,ctxArgs:a}=(await this.logCtx(i,s,!0)).for("onEvent");super.updateObservers(e,s,r,...a).catch(t=>n.error("ServerEventConnector failed to updateObservers",t))},onError:t=>{e.error("ServerEventConnector failed to dispatch event",{error:t,listeningUrl:n,adapter:this.adapter+""})}}),this.listening=!0,e.info(`HttpDispatcher is now listening at ${n}.`)}async close(...t){this.connector?.close(),this.listening=!1}}(t=>{t.PENDING_TASK="x-pending-task",t.CORRELATION_ID="x-correlation-id"})(Y||(Y={}));const tt="keepalive";function et(t,e,s,r){const i=r||e.name;t[i]=new Proxy(t[i],{apply:async(t,e,r)=>{let i=t.call(e,...r);return i instanceof Promise&&(i=await i),i=s.call(e,i),i instanceof Promise&&(i=await i),i}})}class st extends d{constructor(t,e,s){super(Object.assign({},t,{headers:void 0===t.headers||t.headers}),e,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{et(this,t,e=>r.parseResponse.call(r,void 0,t.name,e),t.name)}),x(this,(...t)=>t,this.request,(t,e)=>{const s=r.config.parsers;return s?(s.forEach(s=>s(t,e)),t):t},this.request.name)}async flags(t,e,s){return super.flags(t,e,Object.assign({headers:s.headers??{}},s))}Dispatch(){return new Z}repository(){return Q}prepare(t,...e){const{log:s}=this.logCtx(e,this.prepare),r=Object.assign({},t);return t[i.METADATA]&&(s.silly("Passing along persistence metadata for "+t[i.METADATA]),Object.defineProperty(r,i.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[i.METADATA]})),{record:t,id:t[L.pk(t.constructor)]}}revert(t,e,s,...r){const{log:n}=this.logCtx(r,this.revert),a={},o="string"==typeof e?L.build(a,e):new e(a);n.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof e?L.get(e):e;if(!c)throw new $("Failed to retrieve model constructor for "+e);const l=new c(t),h=t[i.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${h}`),Object.defineProperty(l,i.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(t){return"string"==typeof t?t:F(L.tableName(t))}toHeaders(t){const e={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(e[Y.CORRELATION_ID]=s)}return{...e,...t.getOrUndefined("headers")||{}}}url(t,e,s){s||e&&!Array.isArray(e)&&(s=e,e=[]),t=this.toTableName(t);const r=new URL(`${this.config.protocol}://${this.config.host}/${t}${e&&e.length?"/"+e.join("/"):""}`);return s&&Object.entries(s).forEach(([t,e])=>{Array.isArray(e)?e.forEach(e=>r.searchParams.append(t,e.toString())):"object"==typeof e?r.searchParams.append(t,JSON.stringify(e)):void 0!==e&&r.searchParams.append(t,e.toString())}),r.toString()}extractIdArgs(t,e){const s=e.toString();if("string"==typeof t)return[s];const r=L.composed(t,L.pk(t));return r?s.split(r.separator):[s]}parseResponse(t,e,s){return t&&n.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(e=>new t(e))}):s}raw(t,...e){const{ctxArgs:s,ctx:r}=this.logCtx(e,this.raw),i=this.toRequest(t,r);return this.request(i,...s)}Sequence(t){return Promise.reject(new c("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(t){return new V(this,t)}Paginator(t,e,s){return new X(this,t,e,s)}parseCondition(t){throw new c("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(t,...e){const s="string"==typeof t?t:t.message;return s.includes(S.name)||s.includes("404")?new S(t):s.includes(N.name)||s.includes("409")?new N(t):s.includes(T.name)||s.includes("400")?new T(t):s.includes(R.name)||s.includes("422")?new R(t):s.includes(u.name)?new u(t):s.includes(g.name)?new g(t):s.includes(c.name)?new c(t):s.includes(p.name)?new p(t):s.includes(f.name)?new f(t):s.includes(m.name)?new m(t):s.includes(y.name)?new y(t):s.includes(w.name)?new w(t):s.includes(C.name)?new C(t):new $(t)}static decoration(){super.decoration(),b.for(i.QUERY).define({decorator:e=>(s,r,n)=>v(O(E.key(i.QUERY,r),e),t(),(t,e,s)=>{s.value=new Proxy(s.value,{async apply(t,e,s){const i=e,{log:n,ctxArgs:a}=(await i.logCtx(s,A.READ,!0)).for(r);return n.verbose("Running prepared statement "+t.name),n.debug("With args: "+JSON.stringify(s,null,2)),e.statement(t.name,...a)}})})(s,r,n)}).apply()}}st.decoration();const rt="axios",it=(t,e)=>{if(t.headers&&t.headers[Y.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[Y.PENDING_TASK]),Object.entries(s).forEach(([t,s])=>{s.forEach(s=>e.pushPending(t,s))})}catch(s){e.logger.for(it).error(`Failed to parse pending tasks header ${t.headers[Y.PENDING_TASK]}: ${s}`)}}};class nt extends st{constructor(t,e){super(t,rt,e)}getClient(){return new j({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(t,e){let s,r;t instanceof a?(r=t,s=void 0):(s=t,r=e);const n={};return r&&(n.headers={...n.headers||{},...this.toHeaders(r)}),s&&(n.method="GET",n.url=this.url(s.class,[i.STATEMENT,s.method,...s.args||[]],s.params)),n}async request(t,...e){let s={};try{const{ctx:t}=this.logCtx(e,this.request);s=this.toRequest(t)}catch(t){}return await this.client.request(Object.assign({},t,s))}parseResponse(t,e,r){if(!r.status&&e!==i.STATEMENT)throw new $("this should be impossible");if(r.status>=400)throw this.parseError(r.error||r.status);const n=this.normalizeResponseBody(r);switch(e){case P.CREATE_ALL:case P.READ_ALL:case P.UPDATE_ALL:case P.DELETE_ALL:case A.CREATE:case A.READ:case A.UPDATE:case A.DELETE:return n;case s.FIND:case s.PAGE:case s.FIND_BY:case s.LIST_BY:case s.PAGE_BY:case s.FIND_ONE_BY:case i.STATEMENT:return super.parseResponse(t,e,n);case s.COUNT_OF:case s.MAX_OF:case s.MIN_OF:case s.AVG_OF:case s.SUM_OF:case s.DISTINCT_OF:return n;case s.GROUP_OF:if(t&&"object"==typeof n&&null!==n){const e={};for(const[s,r]of Object.entries(n))e[s]=Array.isArray(r)?r.map(e=>new t(e)):r;return e}return n;default:return n}}normalizeResponseBody(t){if(!t)return t;const e=void 0!==t.body?t.body:void 0!==t.data?t.data:t;if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}async create(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.create);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`POSTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"POST",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async createAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.createAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`POSTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"POST",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async read(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.read);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async readAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.readAll);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async update(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.update);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`PUTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"PUT",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async updateAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.updateAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`PUTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"PUT",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async delete(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}async deleteAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}parseError(t,...e){return st.parseError(t,...e)}}nt.decoration();const at="##VERSION##",ot="##PACKAGE##";E.registerLibrary(ot,at);export{rt as AxiosFlavour,nt as AxiosHttpAdapter,Y as DecafHeaders,st as HttpAdapter,X as HttpPaginator,V as HttpStatement,tt as KeepAliveOperation,ot as PACKAGE_NAME,H as RestRepository,Q as RestService,W as ServerEventConnector,it as TaskResponseParser,at as VERSION,et as suffixMethod};
|
|
2
2
|
//# sourceMappingURL=for-http.js.map
|
package/dist/for-http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-http.js","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","connector","set","close","parseReceivedEvent","raw","JSON","parse","eventName","operationKey","objectId","rawPayload","String","Serialization","listeners","Set","isOpen","es","warn","info","controller","abort","clear","delete","debug","startListening","handlers","headers","EventSourcePlus","credentials","listen","onResponse","onRequestError","error","onError","message","onResponseError","status","statusText","onMessage","event","onEvent","addListener","add","removeListener","KeepAliveOperation","HttpDispatcher","Dispatch","listening","initialize","INITIALIZATION","initialized","hasAdapter","protocol","host","eventsListenerPath","config","listeningUrl","URL","async","operation","updateObservers","catch","e","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","flavour","self","create","read","update","createAll","readAll","updateAll","deleteAll","forEach","res","wrapMethodWithContext","parsers","p","flags","model","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","InternalError","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","err","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"o+BAAYA,ECkDN,MAAOC,UAIHC,EAOR,WAAAC,CAAYC,EAAYC,GACtBC,MAAMF,EAASC,GAPEE,KAAAC,WAAaC,OAAOC,OAAO,CAAA,EAAIJ,MAAkB,WAAG,CACrEK,oBAAoB,EACpBC,2BAA2B,EAC3BC,4BAA4B,GAK9B,CAWA,GAAAC,CACEC,EACAC,EACAC,GAEA,OAAOV,KAAKH,QAAQU,IAAIC,EAAWC,EAAmBC,EACxD,CAES,gBAAMC,CACbC,EACAC,EACAC,EAA+C,CAC7CC,OAAQ,EACRC,MAAO,OAENC,GAEH,MAAMF,OAAEA,EAAMG,SAAEA,EAAQF,MAAEA,GAAUF,GAC9BK,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBC,SAAS,IACvDC,IAAIxB,KAAKW,YACXQ,EAAIM,QACF,cAAcC,EAAMlB,UAAUR,KAAK2B,yBAAyBX,KAG9D,MAAMY,EAA+B,CACnCC,UAAWhB,EACXG,MAAOA,GAKT,OAHIE,IACFU,EAAOV,SAAWA,GAEblB,KAAK8B,UACV9B,KAAKW,WAAWoB,KAChBnB,EACAG,EACAa,KACGR,EAEP,CAES,YAAMY,CACbpB,EACAC,KACGI,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBW,SAAS,IACvDT,IAAIxB,KAAKgC,QAIX,OAHAb,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,aAAaf,KAAiBC,WAElDb,KAAK8B,UACjB9B,KAAKgC,OAAOD,KACZnB,EACA,CAAEiB,UAAWhB,MACVO,EAEP,CAES,YAAMc,CACbtB,EACAuB,KACGlB,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBc,SAAS,IACvDZ,IAAIxB,KAAKkC,QAIX,OAHAf,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,eAAef,KAAiBuB,WAEpDnC,KAAK8B,UACjB9B,KAAKkC,OAAOH,KACZnB,EACAuB,EACA,MACGf,EAEP,CAES,eAAMiB,CACbzB,EACAuB,KACGlB,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBgB,aAAa,IAC3Dd,IAAIxB,KAAKqC,WAIX,OAHAlB,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,eAAef,KAAiBuB,WAEpDnC,KAAK8B,UACjB9B,KAAKqC,UAAUN,KACfnB,EACAuB,EACA,MACGf,EAEP,CAGS,UAAMmB,CACbJ,EACAtB,EAAwB2B,EAAeC,OACpCxB,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBoB,MAAM,IACpDlB,IAAIxB,KAAKuC,MAIX,OAHApB,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,4CAEpB3B,KAAK8B,UACjB9B,KAAKuC,KAAKR,KACVI,EACAtB,KACGO,EAEP,CAGe,UAAAuB,CACbR,EACAN,EAA4BW,EAAeC,IAC3C3B,EAA+C,CAC7CC,OAAQ,EACRC,MAAO,OAENC,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBsB,MAAM,IACpDpB,IAAIxB,KAAK2C,MAIX,OAHAxB,EAAIM,QACF,UAAUC,EAAMlB,UAAUR,KAAK2B,4CAEnB3B,KAAK8B,UACjB9B,KAAK2C,KAAKZ,KACVI,EACAN,EACAf,KACGM,EAEP,CAES,eAAMU,CACbC,KACGd,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,EAAGzB,QAAEA,UACVpB,KAAKqB,OAAOJ,EAAM6B,EAAgBC,WAAW,IACnDvB,IAAIxB,KAAK8B,WACLkB,EAAU5B,EAAQ6B,MAAM,GAAG,GAC3BC,EAAUF,EAAQA,EAAQG,OAAS,GAKnCvB,EAHe,iBAAZsB,GACK,OAAZA,GACCE,MAAMC,QAAQH,QAGbI,EADCN,EAAQO,MAEPC,EAAgC,CACpC7B,MAAO3B,KAAK2B,MACZV,KAAM+B,EACNS,OAAQ1B,EACRH,OAAQA,GAEJ8B,EAAM1D,KAAKH,QAAQ8D,UAAUH,EAAOX,GAC1C1B,EAAIM,QAAQ,gCAAgCM,GAC5C,MAAM6B,QAAiB5D,KAAK6D,QAAQH,KAAQtC,GACtC0C,EAAS9D,KAAKH,QAAQkE,cAC1B/D,KAAK2B,MACLI,EACA6B,GAEF,OAAO5D,KAAKgE,uBAAuBjC,EAAM+B,EAAQjB,EACnD,CAEQ,sBAAAmB,CACNjC,EACAkC,EACApB,GAEA,OAAKoB,EAGHlC,IAAST,EAAsBoB,MAC/BX,IAAST,EAAsBW,SAC/BF,IAAST,EAAsBc,QAExBgB,MAAMC,QAAQY,GACjBA,EAAOC,IAAKC,GAAWnE,KAAKoE,aAAaD,EAAQtB,IACjDoB,EAGFlC,IAAST,EAAsBgB,YAC1BtC,KAAKoE,aAAaH,EAAQpB,GAIjCd,IAAST,EAAsBsB,MAC/Bb,IAAST,EAAsBC,QAExBvB,KAAKqE,kBAAkBJ,EAAQpB,GAGjCoB,EAvBaA,CAwBtB,CAEQ,iBAAAI,CACN1B,EACAE,GAEA,IAAKF,EAAM,OAAOA,EAElB,IAAI2B,EAA4C3B,EAChD,GAA6B,iBAAlB2B,EACT,IACEA,EAAgBC,EAAUC,YAAeF,EAC3C,CAAE,MACA,OAAO3B,CACT,CAGF,OAAI4B,EAAUE,iBAAiBH,GACtB,IACFA,EACHI,KAAMJ,EAAcI,KAAKR,IAAKC,GAC5BnE,KAAKoE,aAAaD,EAAQtB,KAKzBF,CACT,CAEQ,YAAAyB,CAAaD,EAAatB,GAChC,IAAKsB,EAAQ,OAAOA,EACpB,GAAIA,aAAkBnE,KAAK2B,MAAO,OAAOwC,EAEzC,MAAMQ,EAASjD,EAAMkD,GAAG5E,KAAK2B,OACvBkD,EAAQnD,EAAMoD,WAAW9E,KAAK2B,MAAOgD,GACrCI,EAAYJ,GAAqBE,EACjCG,EAAKb,EAAOU,IAAUV,EAAOY,GAEnC,QAAkB,IAAPC,EACT,IACE,OAAOhF,KAAKH,QAAQoF,OAAOd,EAAQnE,KAAK2B,MAAOqD,OAAI1B,EAAWT,EAChE,CAAE,MAEF,CAGF,OAAO3C,OAAOC,OAAO,IAAIH,KAAK2B,MAASwC,EACzC,CAEA,aAAMN,CACJqB,KACGjE,GAEH,IAAIkE,EAGFA,EADElE,EAAKkC,QAAUlC,EAAKA,EAAKkC,OAAS,aAAciC,EAC9BpF,KAAKqB,OAAOJ,EAAMjB,KAAK6D,gBAGnC7D,KAAKqB,OAAOJ,EAAMoE,EAAcC,MAAM,IAC5C9D,IAAIxB,KAAK6D,SAEb,MAAMzC,QAAEA,GAAY+D,EAEpB,OAAOnF,KAAKH,QAAQgE,QAAWqB,KAAY9D,EAC7C,CAGS,aAAMmE,CACb3E,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBkE,UAAU,IACxDhE,IAAIxB,KAAKuF,SACXpE,EAAIM,QACF,YAAYC,EAAMlB,UAAUR,KAAK2B,SAASf,EAAM,OAAOA,EAAkB,MAE3E,MAAM6E,EAAkB7E,EAAM,CAACA,EAAK,CAAA,GAAM,CAAC,IAC3C,aAAcZ,KAAK8B,UACjB9B,KAAKuF,QAAQxD,QACV0D,KACArE,EAEP,CAGS,WAAMsE,CACb9E,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBqE,QAAQ,IACtDnE,IAAIxB,KAAK0F,OAEX,OADAvE,EAAIM,QAAQ,kBAAkBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBACzD3B,KAAK8B,UAAU9B,KAAK0F,MAAM3D,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,WAAMwE,CACbhF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBuE,QAAQ,IACtDrE,IAAIxB,KAAK4F,OAEX,OADAzE,EAAIM,QAAQ,kBAAkBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBACzD3B,KAAK8B,UAAU9B,KAAK4F,MAAM7D,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,WAAM0E,CACblF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsByE,QAAQ,IACtDvE,IAAIxB,KAAK8F,OAEX,OADA3E,EAAIM,QAAQ,sBAAsBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBAC7D3B,KAAK8B,UAAU9B,KAAK8F,MAAM/D,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,WAAM4E,CACbpF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsB2E,QAAQ,IACtDzE,IAAIxB,KAAKgG,OAEX,OADA7E,EAAIM,QAAQ,sBAAsBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBAC7D3B,KAAK8B,UAAU9B,KAAKgG,MAAMjE,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,gBAAM8E,CACbtF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsB6E,aAAa,IAC3D3E,IAAIxB,KAAKkG,YAIX,OAHA/E,EAAIM,QACF,8BAA8Bb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBAE3D3B,KAAK8B,UACjB9B,KAAKkG,WAAWnE,KAChBnB,EACA,MACGQ,EAEP,CAGS,aAAMgF,CACbxF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsB+E,UAAU,IACxD7E,IAAIxB,KAAKoG,SAEX,OADAjF,EAAIM,QAAQ,YAAYC,EAAMlB,UAAUR,KAAK2B,aAAaf,WAC5CZ,KAAK8B,UACjB9B,KAAKoG,QAAQrE,KACbnB,EACA,MACGQ,EAEP,EAlRekF,EAAA,CADdC,4GAkBA7G,EAAA8G,UAAA,OAAA,MAGcF,EAAA,CADdC,mHAuBA7G,EAAA8G,UAAA,OAAA,MAoIcF,EAAA,CADdC,qGAiBA7G,EAAA8G,UAAA,UAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADC,sBAAAC,GAAAA,GAACD,EAAAxG,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADG,sBAAAD,GAAAA,GAACC,EAAA1G,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADI,sBAAAF,GAAAA,GAACE,EAAA3G,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADK,sBAAAH,GAAAA,GAACG,EAAA5G,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADM,sBAAAJ,GAAAA,GAACI,EAAA7G,YAAA,oCAePR,EAAA8G,UAAA,aAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADO,sBAAAL,GAAAA,GAACK,EAAA9G,YAAA,oCAaPR,EAAA8G,UAAA,UAAA,MC5YG,MAAOS,UAIHvH,EAgBR,WAAAE,CAAYC,EAAYC,GACtBC,MAAMF,EAASC,GAhBEE,KAAAC,WAAaC,OAAOC,OAAO,CAAA,EAAIJ,MAAkB,WAAG,CACrEmH,kBAAkB,EAClBC,gBAAgB,EAChB/G,oBAAoB,EACpBC,2BAA2B,EAC3BC,4BAA4B,GAY9B,CAES,QAAA8G,GACP,OAAU1F,EAAMlB,UAAUR,KAAK2B,OAAxB,eACT,ECvEI,MAAO0F,UAIHC,EACR,WAAA1H,CAAYC,EAAY0H,GACtBxH,MAAMF,EAAS0H,EACjB,CAEmB,KAAAC,GACjB,MAAM,IAAIC,EACR,4IAEJ,CAEmB,cAAAC,CAEjBC,KAEG1G,GAEH,MAAM,IAAIwG,EACR,4IAEJ,EClBI,MAAOG,UAIHrD,EACR,WAAA3E,CAAYC,EAAY2D,EAAUqE,EAAc/H,GAC9CC,MAAMF,EAAS2D,EAAOqE,EAAM/H,EAC9B,CAEmB,kBAAMgI,CACvBnF,KACGoF,GAEH,MAAMC,EAAOrI,EAAWsI,SAASjI,KAAKF,MAAOE,KAAKH,QAAQqI,OACpDpG,EAAY9B,KAAKwD,OACjBC,OAAEA,EAAMxC,KAAEA,EAAIW,OAAEA,GAAWE,EAC3BqG,EAAaC,OACjB,IAAI9G,EAAsBc,WAAWd,EAAsBW,UAC3D,MAEF,IAAKwB,EAAO4E,MAAMF,GAChB,MAAM,IAAIV,EACR,UAAUhE,qCAEd0E,EAAOG,UAAY,EACnB,MAEMC,EAAe,CAFD9E,EAAO+E,QAAQL,EAAQ7G,EAAsBC,YAE3BN,GAChCwH,EAAuC,CAC3C5G,UAAWD,EAAOC,UAClBb,MAAOhB,KAAK6H,KACZ9G,OAAQ4B,EACRzB,SAAUlB,KAAK0I,WAGjBH,EAAaI,KAAKF,GAElB,MAAMxE,QAAe+D,EAAKlG,aACpByG,KACDR,GAEL,OAAO/H,KAAK4I,MAAM3E,EACpB,CAEU,OAAA4E,CAAQC,GAChB,MAAM,IAAIrB,EACR,sGAEJ,CAES,IAAA9E,CACPA,EAAe,KACZ1B,GAEH,OAAOlB,MAAM4C,KAAKA,KAAS1B,EAC7B,EChEI,MAAO8H,UAA6BC,SAChBhJ,KAAAiJ,MAAQ,IAAIC,GAAoC,CAExE,UAAOC,CAAI5I,GACT,GAAIP,KAAKiJ,MAAMG,IAAI7I,GAAM,OAAOP,KAAKiJ,MAAME,IAAI5I,GAE/C,MAAU8I,MACR,6CAA6C9I,qCAEjD,CAEA,WAAO+I,CAAK/I,GACV,GAAIP,KAAKiJ,MAAMG,IAAI7I,GAAM,OAAOP,KAAKiJ,MAAME,IAAI5I,GAE/C,MAAMgJ,EAAY,IAAIR,EAAqBxI,GAE3C,OADAP,KAAKiJ,MAAMO,IAAIjJ,EAAKgJ,GACbvJ,KAAKiJ,MAAME,IAAI5I,EACxB,CAEA,YAAOkJ,CAAMlJ,GACPP,KAAKiJ,MAAMG,IAAI7I,IACCP,KAAKiJ,MAAME,IAAI5I,GACvBkJ,OAEd,CAEQ,yBAAOC,CAAmBC,GAChC,IACE,MAAMjF,EAAsB,iBAARiF,EAAmBC,KAAKC,MAAMF,GAAOA,EACzD,IAAKvG,MAAMC,QAAQqB,IAAuB,EAAdA,EAAKvB,OAAY,OAAO,KAEpD,MAAO2G,EAAWC,EAAcC,EAAUC,GAAcvF,EACxD,MAAyB,iBAAdoF,EAA+B,KAOnC,CAACA,EAAkBC,EAAPG,GAAsBF,EAJjB,iBAAfC,EACHE,EAAc3F,YAAYyF,GAC1BA,EAGR,CAAE,MACA,OAAO,IACT,CACF,CAQA,WAAArK,CAA6BW,GAC3BR,QAD2BC,KAAAO,IAAAA,EAFrBP,KAAAoK,UAAgC,IAAIC,GAI5C,CAEA,MAAAC,GACE,YAAmBhH,IAAZtD,KAAKuK,EACd,CAEA,KAAAd,GACE,MAAMtI,EAAMnB,KAAKmB,IAAIK,IAAIxB,KAAKyJ,OAE9B,GAAKzJ,KAAKuK,GAOV,GAAIvK,KAAKoK,UAAUvC,KAAO,EACxB1G,EAAIqJ,KAAK,8DAA+D,CACtEjK,IAAKP,KAAKO,IACV6J,UAAWpK,KAAKoK,UAAUvC,YAM9B,IACE1G,EAAIsJ,KACF,0EAA0EzK,KAAKO,KAEjFP,KAAK0K,YAAYC,OACnB,SACE3K,KAAK0K,gBAAapH,EAClBtD,KAAKuK,QAAKjH,EACVtD,KAAKoK,UAAUQ,QACf7B,EAAqBE,MAAM4B,OAAO7K,KAAKO,KACvCY,EAAIsJ,KACF,+EAA+EzK,KAAKO,IAExF,MA5BEY,EAAI2J,MACF,kDAAkD9K,KAAKO,kBA4B7D,CAMA,cAAAwK,CACEC,EACAC,GAIA,MAAM9J,EAAMnB,KAAKmB,IAAIK,IAAIxB,KAAK+K,gBAE1B/K,KAAKuK,GACPpJ,EAAIsJ,KAAK,qDAAsD,CAC7DlK,IAAKP,KAAKO,IACV6J,UAAWpK,KAAKoK,UAAUvC,QAK9B1G,EAAIsJ,KAAK,uCAAuCzK,KAAKO,KACrDP,KAAKuK,GAAK,IAAIW,EAAgBlL,KAAKO,IAAK,CACtC0K,UACAE,YAAa,YAGfnL,KAAK0K,WAAa1K,KAAKuK,GAAGa,OAAO,CAC/BC,WAAY,KACVlK,EAAIsJ,KAAK,8CAA8CzK,KAAKO,MAE9D+K,eAAgB,EAAGC,YACjBpK,EAAIoK,MAAM,wCAAyC,CACjDhL,IAAKP,KAAKO,IACVgL,UAEFP,EAASQ,SAAgBD,GAAeE,SAAWF,GAAlCrB,KAEnBwB,gBAAiB,EAAG9H,eAClBzC,EAAIoK,MAAM,kDAAmD,CAC3DhL,IAAKP,KAAKO,IACVoL,OAAQ/H,GAAU+H,OAClBC,WAAYhI,GAAUgI,aAExBZ,EAASQ,QACP,wBAAwB5H,EAAS+H,UAAU/H,EAASgI,eAGxDC,UAAYJ,IACV,MAAM9B,EACJ8B,GAA8B,iBAAZA,GAAwB,SAAUA,EAChDA,EAAQ/G,KACR+G,EAEAK,EAAQ/C,EAAqBW,mBAAmBC,GACjDmC,EAOLd,EAASe,QAAQD,GANf3K,EAAIqJ,KAAK,8BAA+B,CACtCjK,IAAKP,KAAKO,IACVoJ,WAOV,CAEQ,WAAAqC,CAAYhB,GAClBhL,KAAKoK,UAAU6B,IAAIjB,EACrB,CAEQ,cAAAkB,CAAelB,GACrBhL,KAAKoK,UAAUS,OAAOG,EACxB,EL3KF,CAAYvL,IACVA,EAAA,aAAA,iBACAA,EAAA,eAAA,kBACD,EAHD,CAAYA,IAAAA,EAAY,CAAA,IAKjB,MAAM0M,EAAqB,YMQ5B,MAAOC,WAAuBC,EAApC,WAAAzM,uBAKUI,KAAAsM,WAAY,CA6HtB,CAvHqB,gBAAMC,IACpBtL,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAM6B,EAAgB0J,gBAAgB,IACxDhL,IAAIxB,KAAKuM,YAENvM,KAAKH,SAQVsB,EAAIsJ,KACF,gBAAgBzK,KAAKH,oDAEvBG,KAAKyM,aAAc,QACbzM,KAAK+K,kBAAkB3J,GAE7BD,EAAIsJ,KAAK,0CAA0CzK,KAAKH,aAVtDsB,EAAIM,QAAQ,4DAWhB,CAKA,oBAAMsJ,IAAkB9J,GACtB,MAAME,IAAEA,GAAQnB,KAAKqB,OAAOJ,EAAMjB,KAAK+K,gBACvC,IAAK/K,KAAKyM,cAAgBzM,KAAKH,QAQ7B,MAPAsB,EAAIoK,MACF,8EACA,CACEkB,YAAazM,KAAKyM,YAClBC,aAAc1M,KAAKH,UAGbwJ,MAAM,mDAGdrJ,KAAKsM,WACPnL,EAAIqJ,KAAK,4DAA6D,CACpE3K,QAAgBG,KAAKH,QAAZqK,KAIb,MAAMyC,SAAEA,EAAQC,KAAEA,EAAIC,mBAAEA,GAAuB7M,KAAKH,QACjDiN,OAEH,IAAKD,EAKH,MAJA1L,EAAIoK,MAAM,0DAA2D,CACnEoB,WACAC,SAEQvD,MAAM,mCAGlB,MAAM0D,EAAe,IAAIC,IACvBH,EACA,GAAGF,OAAcC,KACjBxF,WAEFjG,EAAIsJ,KAAK,yCAAyCsC,GAClD/M,KAAKuJ,UAAYR,EAAqBO,KAAKyD,GAE3C5L,EAAI2J,MACF,qDAAqDiC,GAEvD/M,KAAKuJ,UAAUwB,eAAe,CAC5BgB,QAASkB,MAAOnB,IACd,MAAOtL,EAAW0M,EAAWlI,KAAO/D,GAAQ6K,GACtC3K,IAAEA,EAAGC,QAAEA,UAAmBpB,KAAKqB,OAAOJ,EAAMiM,GAAW,IAAO1L,IAClE,WAGE0L,IAAcf,EAIlBpM,MACGoN,gBACC3M,EACA0M,EACAlI,KACI5D,GAELgM,MAAOC,GACNlM,EAAIoK,MAAM,iDAAkD8B,IAX9DlM,EAAI2J,MAAM,qCAcdU,QAAU6B,IACRlM,EAAIoK,MAAM,gDAAiD,CACzDA,MAAO8B,EACPN,eACAlN,QAAgBG,KAAKH,QAAZqK,QAKflK,KAAKsM,WAAY,EACjBnL,EAAIsJ,KAAK,sCAAsCsC,KACjD,CAES,WAAMtD,IAEVxI,GAWHjB,KAAKuJ,WAAWE,QAChBzJ,KAAKsM,WAAY,CACnB,ECvFI,SAAUgB,GACdC,EACAC,EACAC,EACAC,GAEA,MAAM3L,EAAO2L,GAA0BF,EAAOzL,KAC9CwL,EAAIxL,GAAQ,IAAI4L,MAAMJ,EAAIxL,GAAO,CAC/B6G,MAAOqE,MAAOW,EAAQC,EAASC,KAC7B,IAAIC,EAAUH,EAAOI,KAAKH,KAAYC,GAOtC,OANIC,aAAmBE,UAASF,QAAgBA,GAEhDA,EAAUN,EAAOO,KAAKH,EAASE,GAE3BA,aAAmBE,UAASF,QAAgBA,GAEzCA,IAGb,CAiCM,MAAgBG,WAMZC,EACR,WAAAvO,CAAsBkN,EAAcsB,EAAiBlG,GACnDnI,MACEG,OAAOC,OAAO,CAAA,EAAI2M,EAAQ,CACxB7B,aAAmC,IAAnB6B,EAAO7B,SAAiC6B,EAAO7B,UAEjEmD,EACAlG,GAIF,MAAMmG,EAAOrO,KACb,CACEA,KAAKsO,OACLtO,KAAKuO,KACLvO,KAAKwO,OACLxO,KAAK6K,OACL7K,KAAKyO,UACLzO,KAAK0O,QACL1O,KAAK2O,UACL3O,KAAK4O,WACLC,QAASpL,IACT6J,GACEtN,KACAyD,EACCqL,GACCT,EAAKtK,cAAciK,KAAKK,OAAM/K,EAAWG,EAAO1B,KAAM+M,GACxDrL,EAAO1B,QAGXgN,EACE/O,KACA,IAAIiB,IAAgBA,EACpBjB,KAAK6D,QACL,CAACiL,EAAUjM,KACT,MAAMmM,EAAUX,EAAKvB,OAAOkC,QAC5B,OAAKA,GACLA,EAAQH,QAASI,GAAMA,EAAEH,EAAKjM,IACvBiM,GAFcA,GAIvB9O,KAAK6D,QAAQ9B,KAEjB,CAYmB,WAAMmN,CACvBhC,EACAiC,EACA5H,GAEA,OAAOxH,MAAMmP,MACXhC,EACAiC,EACAjP,OAAOC,OACL,CACE8K,QAAS1D,EAAU0D,SAAW,CAAA,GAEhC1D,GAGN,CAEmB,QAAA8E,GACjB,OAAO,IAAID,EACb,CASS,UAAAgD,GAGP,OAAOnI,CACT,CAYS,OAAA4B,CACPsG,KACGlO,GAEH,MAAME,IAAEA,GAAQnB,KAAKqB,OAAOJ,EAAMjB,KAAK6I,SACjC5E,EAAS/D,OAAOC,OAAO,CAAA,EAAIgP,GAajC,OAZKA,EAAcrM,EAAgBuM,YACjClO,EAAImO,MACF,0CAA2CH,EAAcrM,EAAgBuM,WAE3EnP,OAAOqP,eAAetL,EAAQnB,EAAgBuM,SAAU,CACtDG,YAAY,EACZC,UAAU,EACVC,cAAc,EACdvN,MAAQgN,EAAcrM,EAAgBuM,aAInC,CACLlL,OAAQgL,EACRnK,GAAImK,EAAMzN,EAAMkD,GAAGuK,EAAMvP,cAE7B,CAaS,MAAAqF,CACPsI,EACAzN,EACAkF,KACG/D,GAEH,MAAME,IAAEA,GAAQnB,KAAKqB,OAAOJ,EAAMjB,KAAKiF,QACjC0K,EAA0B,CAAA,EAC1BC,EACa,iBAAV9P,EAAqB4B,EAAM8F,MAAMmI,EAAI7P,GAAS,IAAIA,EAAM6P,GAEjExO,EAAImO,MAAM,oBAAoBM,EAAEhQ,YAAYmC,WAAWiD,KACvD,MAAM6K,EAA0B,iBAAV/P,EAAqB4B,EAAMyH,IAAIrJ,GAASA,EAC9D,IAAK+P,EACH,MAAM,IAAIC,EACR,4CAA4ChQ,GAEhD,MAAMmE,EAAS,IAAK4L,EAA0BtC,GACxCwC,EAAWxC,EAAIzK,EAAgBuM,UAarC,OAZIU,IACF5O,EAAImO,MACF,iBAAiBtP,KAAKoO,oCAAoCwB,EAAEhQ,YAAYmC,WAAWiD,MAAO+K,KAE5F7P,OAAOqP,eAAetL,EAAQnB,EAAgBuM,SAAU,CACtDG,YAAY,EACZE,cAAc,EACdD,UAAU,EACVtN,MAAO4N,KAIJ9L,CACT,CAEU,WAAA+L,CAA6BC,GACrC,MAAoB,iBAANA,EAAiBA,EAAIC,EAAYxO,EAAMlB,UAAUyP,GACjE,CAEU,SAAAE,CAAUtN,GAClB,MAAMuN,EAA+B,CAAA,EACrC,GAAIpQ,KAAK8M,OAAO7B,QAAS,CACvB,MAAMoF,EAAgBxN,EAAIyN,eAAe,iBACrCD,IAAeD,EAAQ3Q,EAAa8Q,gBAAkBF,EAC5D,CACA,MAAO,IAAKD,KAAavN,EAAIyN,eAAe,YAAc,CAAA,EAC5D,CAgDA,GAAA/P,CACEC,EACAC,EACAC,GAEKA,GACCD,IAAe2C,MAAMC,QAAQ5C,KAC/BC,EAAcD,EACdA,EAAa,IAIjBD,EAAYR,KAAKgQ,YAAYxP,GAC7B,MAAMD,EAAM,IAAIyM,IACd,GAAGhN,KAAK8M,OAAOH,cAAc3M,KAAK8M,OAAOF,QAAQpM,IAAYC,GAAcA,EAAW0C,OAAS,IAAK1C,EAAwB+P,KAAK,KAAS,MAa5I,OAXI9P,GACFR,OAAOuQ,QAAQ/P,GAAamO,QAAQ,EAAEjO,EAAKuB,MACrCiB,MAAMC,QAAQlB,GAChBA,EAAM0M,QAAS6B,GAAMnQ,EAAIoQ,aAAaC,OAAOhQ,EAAK8P,EAAEtJ,aAC1B,iBAAVjF,EAChB5B,EAAIoQ,aAAaC,OAAOhQ,EAAKgJ,KAAKiH,UAAU1O,SAClB,IAAVA,GAChB5B,EAAIoQ,aAAaC,OAAOhQ,EAAKuB,EAAMiF,cAIlC7G,EAAI6G,UACb,CAiBU,aAAA0J,CACR3B,EACAnK,GAEA,MAAM+L,EAAQ/L,EAAGoC,WACjB,GAAqB,iBAAV+H,EAAoB,MAAO,CAAC4B,GACvC,MAAMC,EAAWtP,EAAMsP,SAAS7B,EAAOzN,EAAMkD,GAAGuK,IAChD,OAAK6B,EACED,EAAME,MAAMD,EAASE,WADN,CAACH,EAEzB,CAEA,aAAAhN,CACEjE,EACA2D,EACAqL,GAEA,OAAIhP,GAASyE,EAAUE,iBAAiBqK,GAC/B5O,OAAOC,OAAO,CAAA,EAAI2O,EAAK,CAC5BpK,KAAMoK,EAAIpK,KAAKR,IAAKiN,GAAW,IAAIrR,EAAMqR,MAGtCrC,CACT,CA8EA,GAAAnF,CAAOyH,KAAgBnQ,GACrB,MAAMG,QAAEA,EAAOyB,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK2J,KAC1CjG,EAAM1D,KAAK2D,UAAUyN,EAAUvO,GACrC,OAAO7C,KAAK6D,QAAQH,KAAQtC,EAC9B,CAYS,QAAAiQ,CAASC,GAChB,OAAOrD,QAAQsD,OACb,IAAI9J,EACF,0FAGN,CAYS,SAAAH,CACPC,GAEA,OAAO,IAAIF,EAAcrH,KAAMuH,EACjC,CAES,SAAAhD,CACPf,EACAqE,EACA/H,GAEA,OAAO,IAAI8H,EACT5H,KACAwD,EACAqE,EACA/H,EAEJ,CAYA,cAAA4H,CAAeC,GACb,MAAM,IAAIF,EACR,yFAEJ,CAEA,iBAAO+J,CACLC,KAEGxQ,GAEH,MAAMyQ,EAAqB,iBAARD,EAAmBA,EAAMA,EAAIhG,QAChD,OAAIiG,EAAIC,SAASC,EAAc7P,OAAS2P,EAAIC,SAAS,OAC5C,IAAIC,EAAcH,GACvBC,EAAIC,SAASE,EAAc9P,OAAS2P,EAAIC,SAAS,OAC5C,IAAIE,EAAcJ,GACvBC,EAAIC,SAASG,EAAgB/P,OAAS2P,EAAIC,SAAS,OAC9C,IAAIG,EAAgBL,GACzBC,EAAIC,SAASI,EAAgBhQ,OAAS2P,EAAIC,SAAS,OAC9C,IAAII,EAAgBN,GACzBC,EAAIC,SAASK,EAAWjQ,MAAc,IAAIiQ,EAAWP,GACrDC,EAAIC,SAASM,EAAYlQ,MAAc,IAAIkQ,EAAYR,GACvDC,EAAIC,SAASlK,EAAiB1F,MACzB,IAAI0F,EAAiBgK,GAC1BC,EAAIC,SAASO,EAAenQ,MAAc,IAAImQ,EAAeT,GAC7DC,EAAIC,SAASQ,EAAcpQ,MAAc,IAAIoQ,EAAcV,GAC3DC,EAAIC,SAASS,EAAmBrQ,MAC3B,IAAIqQ,EAAmBX,GAC5BC,EAAIC,SAASU,EAAetQ,MAAc,IAAIsQ,EAAeZ,GAC7DC,EAAIC,SAASW,EAAgBvQ,MACxB,IAAIuQ,EAAgBb,GACzBC,EAAIC,SAASY,EAAmBxQ,MAC3B,IAAIwQ,EAAmBd,GACzB,IAAI3B,EAAc2B,EAC3B,CAEA,iBAAgBe,GACdzS,MAAMyS,aA0CNC,EAAWjR,IAAIsB,EAAgB4P,OAC5BC,OAAO,CACNC,UA3CWtB,GACN,CAAe/D,EAAasF,EAAYC,IAgCtClK,EACLmK,EAAeC,EAASpS,IAAIkC,EAAgB4P,MAAOG,GAAOvB,GAC1D/K,IA/BO,CACLgH,EACA0F,EACAH,KAECA,EAA4C3Q,MAAQ,IAAIwL,MACtDmF,EAA4C3Q,MAC7C,CACE,WAAMyG,CACJgF,EACAC,EACA5M,GAEA,MAAM+G,EAAO6F,GACP1M,IAAEA,EAAGC,QAAEA,UACL4G,EAAa,OAAE/G,EAAMoE,EAAcC,MAAM,IAC/C9D,IAAIqR,GAGN,OAFA1R,EAAIM,QAAQ,8BAA8BmM,EAAO7L,MACjDZ,EAAI2J,MAAM,cAAclB,KAAKiH,UAAU5P,EAAM,KAAM,IAC3C4M,EAAiC/L,UACvC8L,EAAO7L,QACJX,EAEP,GAGN,EAGKwH,CAIL2E,EAAKsF,EAAMC,KAQdlK,OACL,EAGFsF,GAAYsE,aC/mBL,MAAMU,GAAe,QAEfC,GAAqC,CAChDrE,EACAjM,KAEA,GAAIiM,EAAI7D,SAAW6D,EAAI7D,QAAQxL,EAAa2T,cAAe,CACzD,IAAIC,EACJ,IACEA,EAAUzJ,KAAKC,MAAMiF,EAAI7D,QAAQxL,EAAa2T,eAC9ClT,OAAOuQ,QAAQ4C,GAASxE,QAAQ,EAAEjO,EAAKuB,MACrCA,EAAM0M,QAAS6B,GAAM7N,EAAIyQ,YAAY1S,EAAK8P,KAE9C,CAAE,MAAOrD,GACPxK,EAAI0Q,OACD/R,IAAI2R,IACJ5H,MACC,wCAAwCuD,EAAI7D,QAAQxL,EAAa2T,kBAAkB/F,IAEzF,CACF,GCsCI,MAAOmG,WAAyBtF,GAOpC,WAAAtO,CAAYkN,EAAoB5E,GAC9BnI,MAAM+M,EAAQoG,GAAchL,EAC9B,CAEmB,SAAAuL,GACjB,OAAO,IAAIC,EAAM,CACfC,QAAS,GAAG3T,KAAK8M,OAAOH,cAAc3M,KAAK8M,OAAOF,QAEtD,CAQS,SAAAjJ,CACPiQ,EACA/Q,GAEA,IAAIW,EACAqQ,EAEAD,aAAsBxO,GACxByO,EAAUD,EACVpQ,OAAQF,IAERE,EAAQoQ,EACRC,EAAUhR,GAGZ,MAAMa,EAA0B,CAAA,EAYhC,OAXImQ,IACFnQ,EAAIuH,QAAU,IAAMvH,EAAIuH,SAAW,MAAQjL,KAAKmQ,UAAU0D,KAExDrQ,IACFE,EAAID,OAAS,MACbC,EAAInD,IAAMP,KAAKO,IACbiD,EAAM7B,MACN,CAACmB,EAAgBC,UAAWS,EAAMC,UAAYD,EAAMvC,MAAQ,IAC5DuC,EAAM5B,SAGH8B,CACT,CASS,aAAMG,CACbqB,KACGjE,GAEH,IAAIsG,EAAY,CAAA,EAChB,IACE,MAAM1E,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK6D,SACvC0D,EAAYvH,KAAK2D,UAAUd,EAE7B,CAAE,MAAOwK,GAET,CAKA,aAHuBrN,KAAK8T,OAAOjQ,QACjC3D,OAAOC,OAAO,CAAA,EAAI+E,EAASqC,GAG/B,CAES,aAAAxD,CACPjE,EACA2D,EACAqL,GAEA,IAAKA,EAAInD,QAAUlI,IAAWX,EAAgBC,UAC5C,MAAM,IAAI+M,EAAc,6BAC1B,GAAIhB,EAAInD,QAAU,IAChB,MAAM3L,KAAKwR,WAAY1C,EAAIvD,OAAoBuD,EAAInD,QACrD,MAAMoI,EAAO/T,KAAKgU,sBAAsBlF,GACxC,OAAQrL,GACN,KAAKwQ,EAAsBC,WAC3B,KAAKD,EAAsBE,SAC3B,KAAKF,EAAsBG,WAC3B,KAAKH,EAAsBI,WAC3B,KAAKhP,EAAciP,OACnB,KAAKjP,EAAcC,KACnB,KAAKD,EAAckP,OACnB,KAAKlP,EAAcmP,OACjB,OAAOT,EACT,KAAKzS,EAAsBoB,KAC3B,KAAKpB,EAAsBsB,KAC3B,KAAKtB,EAAsBc,QAC3B,KAAKd,EAAsBW,QAC3B,KAAKX,EAAsBC,QAC3B,KAAKD,EAAsBgB,YAC3B,KAAKQ,EAAgBC,UACnB,OAAOhD,MAAMgE,cAAcjE,EAAO2D,EAAQsQ,GAC5C,KAAKzS,EAAsBkE,SAC3B,KAAKlE,EAAsBqE,OAC3B,KAAKrE,EAAsBuE,OAC3B,KAAKvE,EAAsByE,OAC3B,KAAKzE,EAAsB2E,OAG3B,KAAK3E,EAAsB6E,YAEzB,OAAO4N,EACT,KAAKzS,EAAsB+E,SAEzB,GAAIvG,GAAyB,iBAATiU,GAA8B,OAATA,EAAe,CACtD,MAAM9P,EAA8B,CAAA,EACpC,IAAK,MAAOrD,EAAKuB,KAAUjC,OAAOuQ,QAAQsD,GAEtC9P,EAAOrD,GADLwC,MAAMC,QAAQlB,GACFA,EAAM+B,IAAKiN,GAAW,IAAIrR,EAAMqR,IAEhChP,EAGlB,OAAO8B,CACT,CACA,OAAO8P,EACT,QACE,OAAOA,EAEb,CAEQ,qBAAAC,CAAsBlF,GAC5B,IAAKA,EAAK,OAAOA,EACjB,MAAM2F,OACgB,IAAb3F,EAAIiF,KACPjF,EAAIiF,UACgB,IAAbjF,EAAIpK,KACToK,EAAIpK,KACJoK,EACR,GAAyB,iBAAd2F,EACT,IACE,OAAO7K,KAAKC,MAAM4K,EACpB,CAAE,MACA,OAAOA,CACT,CAEF,OAAOA,CACT,CAWS,YAAMnG,CACb9N,EACAwE,EACAmK,KACGlO,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAKsO,QAC5C,IACE,MAAM/N,EAAMP,KAAKO,IACfC,EACAR,KAAK8Q,cAActQ,EAAWwE,IAE1B0P,EAAM1U,KAAK2D,UAAUd,GAiB3B,OAhBA1B,EAAI2J,MACF,cAAcvK,UAAYqJ,KAAKiH,UAAU1B,cAAkBvF,KAAKiH,UAAU6D,YAEvD1U,KAAK6D,QACxB,CACEtD,MACAkD,OAAQ,OACRiB,KAAMkF,KAAKiH,UACT3Q,OAAOC,OAAO,CAAA,EAAIgP,EAAO,CACvB,CAACwF,EAAUC,QAASpU,EAAUuB,WAG/B2S,GAEL7R,EAGJ,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CAES,eAAMoB,CACb3O,EACAkF,EACAmK,KACGlO,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAKyO,WAC5C,IACE,MAAMlO,EAAMP,KAAKO,IAAIT,EAAO,CAAC,SACvB4U,EAAM1U,KAAK2D,UAAUd,GAI3B,OAHA1B,EAAI2J,MACF,cAAcvK,UAAYqJ,KAAKiH,UAAU1B,cAAkBvF,KAAKiH,UAAU6D,MAErE1U,KAAK6D,QACV,CACEtD,MACAkD,OAAQ,OACRiB,KAAMkF,KAAKiH,UACT1B,EAAMjL,IAAK0L,GACT1P,OAAOC,OAAO,CAAA,EAAIyP,EAAG,CACnB,CAAC+E,EAAUC,QAAS9U,EAAMiC,YAI7B2S,GAEL7R,EAEJ,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CAUS,UAAMkB,CACb/N,EACAwE,KACG/D,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAKuO,MAC5C,IACE,MAAMhO,EAAMP,KAAKO,IACfC,EACAR,KAAK8Q,cAActQ,EAAWwE,IAE1B0P,EAAM1U,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI2J,MAAM,eAAevK,aAAeqJ,KAAKiH,UAAU6D,YAC1C1U,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,SAAUiR,GAAO7R,EAC5D,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CACS,aAAMqB,CACblO,EACAqU,KACG5T,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK0O,SAC5C,IACE,MAAMnO,EAAMP,KAAKO,IAAIC,EAAW,CAAC,QAAS,CAAEqU,IAAKA,IAC3CH,EAAM1U,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI2J,MAAM,eAAevK,aAAeqJ,KAAKiH,UAAU6D,YAC1C1U,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,SAAUiR,GAAO7R,EAC5D,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CAWS,YAAMmB,CACbhO,EACAwE,EACAmK,KACGlO,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAKwO,QAC5C,IACE,MAAMjO,EAAMP,KAAKO,IACfC,EACAR,KAAK8Q,cAActQ,EAAWwE,IAE1B0P,EAAM1U,KAAK2D,UAAUd,GAI3B,OAHA1B,EAAI2J,MACF,aAAavK,UAAYqJ,KAAKiH,UAAU1B,cAAkBvF,KAAKiH,UAAU6D,YAE9D1U,KAAK6D,QAChB,CACEtD,MACAkD,OAAQ,MACRiB,KAAMkF,KAAKiH,UACT3Q,OAAOC,OAAO,CAAA,EAAIgP,EAAO,CACvB,CAACwF,EAAUC,QAA+BpU,EAAUuB,WAGrD2S,GAEL7R,EAEJ,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CAES,eAAMsB,CACbnO,EACAqU,EACA1F,KACGlO,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK2O,WAC5C,IACE,MAAMpO,EAAMP,KAAKO,IAAIC,EAAW,CAAC,SAC3BkU,EAAM1U,KAAK2D,UAAUd,GAI3B,OAHA1B,EAAI2J,MACF,aAAavK,UAAYqJ,KAAKiH,UAAU1B,cAAkBvF,KAAKiH,UAAU6D,MAEpE1U,KAAK6D,QACV,CACEtD,MACAkD,OAAQ,MACRiB,KAAMkF,KAAKiH,UACT1B,EAAMjL,IAAK0L,GACT1P,OAAOC,OAAO,CAAA,EAAIyP,EAAG,CACnB,CAAC+E,EAAUC,QAASpU,EAAUuB,YAIjC2S,GAEL7R,EAEJ,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CAUS,YAAM,CACb7M,EACAwE,KACG/D,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK6K,QAC5C,IACE,MAAMtK,EAAMP,KAAKO,IACfC,EACAR,KAAK8Q,cAActQ,EAAWwE,IAE1B0P,EAAM1U,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI2J,MAAM,kBAAkBvK,aAAeqJ,KAAKiH,UAAU6D,YAC7C1U,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,YAAaiR,GAAO7R,EAC/D,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CAES,eAAMuB,CACbpO,EACAqU,KACG5T,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK6K,QAC5C,IACE,MAAMtK,EAAMP,KAAKO,IAAIC,EAAW,CAAC,QAAS,CAAEqU,IAAKA,IAC3CH,EAAM1U,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI2J,MAAM,kBAAkBvK,aAAeqJ,KAAKiH,UAAU6D,YAC7C1U,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,YAAaiR,GAAO7R,EAC/D,CAAE,MAAOwK,GACP,MAAMrN,KAAKwR,WAAWnE,EACxB,CACF,CAES,UAAAmE,CAAgCC,KAAexQ,GACtD,OAAOiN,GAAYsD,WAAWC,KAAQxQ,EACxC,ECncFuS,GAAiBhB,aCcV,MAAMsC,GAAU,cAEVC,GAAe,cAE5B/B,EAASgC,gBAAgBD,GAAcD"}
|
|
1
|
+
{"version":3,"file":"for-http.js","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","Serialization","String","listeners","Set","isOpen","es","force","info","controller","abort","clear","delete","warn","debug","startListening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","addListener","handlers","add","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","protocol","host","eventsListenerPath","config","listeningUrl","URL","async","operation","updateObservers","catch","e","KeepAliveOperation","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","InternalError","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/HttpDispatcher.cjs
CHANGED
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HttpDispatcher = void 0;
|
|
4
4
|
const core_1 = require("@decaf-ts/core");
|
|
5
5
|
const event_1 = require("./event/index.cjs");
|
|
6
|
-
const constants_1 = require("./constants.cjs");
|
|
7
6
|
class HttpDispatcher extends core_1.Dispatch {
|
|
8
7
|
constructor() {
|
|
9
8
|
super(...arguments);
|
|
9
|
+
this.initialized = false;
|
|
10
10
|
this.listening = false;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
@@ -57,14 +57,10 @@ class HttpDispatcher extends core_1.Dispatch {
|
|
|
57
57
|
log.info(`Opening ServerEventConnector for url: ${listeningUrl}`);
|
|
58
58
|
this.connector = event_1.ServerEventConnector.open(listeningUrl);
|
|
59
59
|
log.debug(`ServerEventConnector opened successfully for url: ${listeningUrl}`);
|
|
60
|
-
this.connector.
|
|
60
|
+
this.connector.addListener({
|
|
61
61
|
onEvent: async (event) => {
|
|
62
62
|
const [tableName, operation, id, ...args] = event;
|
|
63
63
|
const { log, ctxArgs } = (await this.logCtx(args, operation, true)).for("onEvent");
|
|
64
|
-
if (operation === constants_1.KeepAliveOperation) {
|
|
65
|
-
log.debug(`keep alive received - discarding`);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
64
|
super
|
|
69
65
|
.updateObservers(tableName, operation, id, ...ctxArgs)
|
|
70
66
|
.catch((e) => log.error(`ServerEventConnector failed to updateObservers`, e));
|
|
@@ -80,9 +76,7 @@ class HttpDispatcher extends core_1.Dispatch {
|
|
|
80
76
|
this.listening = true;
|
|
81
77
|
log.info(`HttpDispatcher is now listening at ${listeningUrl}.`);
|
|
82
78
|
}
|
|
83
|
-
async close(
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
85
|
-
...args) {
|
|
79
|
+
async close(...args) {
|
|
86
80
|
// const { log } = this.logCtx(args, this.close);
|
|
87
81
|
//
|
|
88
82
|
// log.debug(`Closing HttpDispatcher`, {
|
package/lib/HttpDispatcher.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Adapter, Context, ContextualArgs, Dispatch, MaybeContextualArg, Prepare
|
|
|
2
2
|
import { HttpConfig, HttpFlags } from "./types";
|
|
3
3
|
export declare class HttpDispatcher extends Dispatch<Adapter<HttpConfig, any, PreparedStatement<any>, Context<HttpFlags>>> {
|
|
4
4
|
private connector?;
|
|
5
|
+
protected initialized: boolean;
|
|
5
6
|
private listening;
|
|
6
7
|
/**
|
|
7
8
|
* Called by the base Dispatch after observe(adapter).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../src/HttpDispatcher.ts"],"names":[],"mappings":";;;AAAA,yCAQwB;AACxB,6CAA4D;
|
|
1
|
+
{"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../src/HttpDispatcher.ts"],"names":[],"mappings":"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"}
|