@decaf-ts/for-http 0.4.2 → 0.4.3

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 CHANGED
@@ -1,2 +1,2 @@
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 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),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 b 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 b(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}async getHeaders(){let e=this.headers;return"function"==typeof this.headers&&(e=await Promise.resolve(this.headers())),e||{}}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(),b.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)}async 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);const t=await this.getHeaders();this.es=new o.EventSourcePlus(this.url,{...t&&{headers:t},credentials:"include"});const r=this;this.controller=this.es.listen({onResponse:()=>{e.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:t})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:t}),r.listeners.forEach(e=>e.onError((t?.message??t)+""))},onResponseError:({response:t})=>{const s=t?.status,i=t?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:s,statusText:i});const a=Error(`HTTP ${s??"unknown"} ${i??"error"}`);r.listeners.forEach(e=>e.onError(a))},onMessage:t=>{if("heartbeat"===t.event)return void e.debug("Refresh connection. Heartbeat received.");const s=t&&"object"==typeof t&&"data"in t?t.data:t,i=b.parseReceivedEvent(s);if(i)for(const t of r.listeners)try{t.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.listeners.add(e),this.startListening().then(()=>{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()");if(!this.adapter.config.events)return void t.warn("SSe events disabled");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:r,host:i,eventsListenerPath:a}=this.adapter.config;if(!a)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:r,host:i}),Error("No eventsListenerPath specified");const n=new URL(a,`${r}://${i}`).toString();t.info("Opening ServerEventConnector for url: "+n),this.connector=b.open(n,async()=>{if(!this.adapter)throw new s.InternalError("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(e){throw new s.InternalError("Failed to get event headers: "+e)}}),t.debug("ServerEventConnector opened successfully for url: "+n),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:n,adapter:this.adapter+""})}}),this.listening=!0,t.info(`HttpDispatcher is now listening at ${n}.`)}async close(...e){this.connector?.close(!0),this.listening=!1}}function w(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 S extends t.Adapter{constructor(e,t,r){super(Object.assign({},e,{headers:void 0===e.headers||e.headers,events:void 0===e.events||e.events}),t,r);const i=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{w(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}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}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 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 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()}}S.decoration();const A="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 S{constructor(e,t){super(e,A,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 S.parseError(e,...t)}}_.decoration();const x="##VERSION##",N="##PACKAGE##";r.Metadata.registerLibrary(N,x),e.AxiosFlavour=A,e.AxiosHttpAdapter=_,e.HttpAdapter=S,e.HttpPaginator=v,e.HttpStatement=E,e.KeepAliveOperation="keepalive",e.PACKAGE_NAME=N,e.RestRepository=y,e.RestService=m,e.ServerEventConnector=b,e.TaskResponseParser=P,e.VERSION=x,e.suffixMethod=w},"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,n,a,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},...n){const{offset:a,bookmark:o,limit:c}=s,{log:d,ctxArgs:l}=(await this.logCtx(n,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,a,h,...l)}async listBy(e,r,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return n.verbose(`listing ${i.Model.tableName(this.class)} by ${e} ${r}`),await this.statement(this.listBy.name,e,{direction:r},...a)}async findBy(e,r,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return n.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findBy.name,e,r,{},...a)}async findOneBy(e,r,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return n.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findOneBy.name,e,r,{},...a)}async find(e,r=t.OrderDirection.ASC,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.FIND,!0)).for(this.find);return n.verbose(`finding ${i.Model.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,e,r,...a)}async page(e,r=t.OrderDirection.ASC,s={offset:1,limit:10},...n){const{log:a,ctxArgs:o}=(await this.logCtx(n,t.PreparedStatementKeys.PAGE,!0)).for(this.page);return a.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:n}=(await this.logCtx(r,t.PersistenceKeys.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(),d={class:this.class,args:a,method:e,params:c},l=this.adapter.toRequest(d,i);s.verbose("Executing prepared statement "+e);const h=await this.request(l,...n),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),n=r??s,a=e[s]??e[n];if(void 0!==a)try{return this.adapter.revert(e,this.class,a,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:n}=i;return this.adapter.request(e,...n)}async countOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOf);s.verbose(`counting ${i.Model.tableName(this.class)}${e?" by "+e:""}`);const a=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...a,...n)}async maxOf(e,...r){const{log:s,ctxArgs:n}=(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,{},...n)}async minOf(e,...r){const{log:s,ctxArgs:n}=(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,{},...n)}async avgOf(e,...r){const{log:s,ctxArgs:n}=(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,{},...n)}async sumOf(e,...r){const{log:s,ctxArgs:n}=(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,{},...n)}async distinctOf(e,...r){const{log:s,ctxArgs:n}=(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,{},...n)}async groupOf(e,...r){const{log:s,ctxArgs:n}=(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,{},...n)}}n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,String,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"find",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,String,Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"page",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"countOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(d="undefined"!=typeof K&&K)?d:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"maxOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(l="undefined"!=typeof K&&K)?l:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"minOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(h="undefined"!=typeof K&&K)?h:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"avgOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(u="undefined"!=typeof K&&K)?u:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"sumOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(p="undefined"!=typeof K&&K)?p:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"distinctOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(g="undefined"!=typeof K&&K)?g:Object,void 0]),n.__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 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),i=this.query,{method:n,args:a,params:o}=i,c=RegExp(`^${t.PreparedStatementKeys.FIND_BY}|${t.PreparedStatementKeys.LIST_BY}`,"gi");if(!n.match(c))throw new t.UnsupportedError(`Method ${n} is not supported for pagination`);c.lastIndex=0;const d=[n.replace(c,t.PreparedStatementKeys.PAGE_BY),...a],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 b 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 b(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,n,a]=t;if("string"!=typeof r)return null;let o;return o=Array.isArray(a)?a.map(e=>"string"==typeof e?i.Serialization.deserialize(e):e):"string"==typeof a?i.Serialization.deserialize(a):a,[r,s+"",n,o]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.listeners=new Set}isOpen(){return void 0!==this.es}async getHeaders(){let e=this.headers;return"function"==typeof this.headers&&(e=await Promise.resolve(this.headers())),e||{}}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(),b.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)}async startListening(){const e=this.log.for(this.startListening);if(this.es)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});else{if(this.opening)return e.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await this.opening;this.opening=(async()=>{e.info("Opening EventSource connection to "+this.url);const t=await this.getHeaders();this.es=new o.EventSourcePlus(this.url,{...t&&{headers:t},credentials:"include"});const r=this;this.controller=this.es.listen({onResponse:()=>{e.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:t})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:t}),r.listeners.forEach(e=>e.onError((t?.message??t)+""))},onResponseError:({response:t})=>{const s=t?.status,i=t?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:s,statusText:i});const n=Error(`HTTP ${s??"unknown"} ${i??"error"}`);r.listeners.forEach(e=>e.onError(n))},onMessage:t=>{if("heartbeat"===t.event)return void e.debug("Refresh connection. Heartbeat received.");const s=t&&"object"==typeof t&&"data"in t?t.data:t,i=b.parseReceivedEvent(s);if(i)for(const t of r.listeners)try{t.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})}})})().finally(()=>{this.opening=void 0}),await this.opening}}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.listeners.add(e),this.startListening().then(()=>{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 w 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()");if(!this.adapter.config.events)return void t.warn("SSe events disabled");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:r,host:i,eventsListenerPath:n}=this.adapter.config;if(!n)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:r,host:i}),Error("No eventsListenerPath specified");const a=new URL(n,`${r}://${i}`).toString();t.info("Opening ServerEventConnector for url: "+a),this.connector=b.open(a,async()=>{if(!this.adapter)throw new s.InternalError("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(e){throw new s.InternalError("Failed to get event headers: "+e)}}),t.debug("ServerEventConnector opened successfully for url: "+a),this.removeConnectorListener?.(),this.removeConnectorListener=this.connector.addListener({onEvent:async e=>{const[t,r,s,...i]=e,{log:n,ctxArgs:a}=(await this.logCtx(i,r,!0)).for("onEvent");super.updateObservers(t,r,s,...a).catch(e=>n.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.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),this.listening=!1}}function O(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 S extends t.Adapter{constructor(e,t,r){super(Object.assign({},e,{headers:void 0===e.headers||e.headers,events:void 0===e.events||e.events}),t,r);const i=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{O(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 w}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return m}prepare(e,...r){const{log:s}=this.logCtx(r,this.prepare),n=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(n,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,n,...a){const{log:o}=this.logCtx(a,this.revert),c={},d="string"==typeof r?i.Model.build(c,r):new r(c);o.silly(`Rebuilding model ${d.constructor.name} id ${n}`);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 ${n}: ${u}`),Object.defineProperty(h,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:u})),h}toTableName(e){return"string"==typeof e?e:a.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 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 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,n,a)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,n),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const i=t,{log:a,ctxArgs:o}=(await i.logCtx(r,s.OperationKeys.READ,!0)).for(n);return a.verbose("Running prepared statement "+e.name),a.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(i,n,a)}).apply()}}S.decoration();const A="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 S{constructor(e,t){super(e,A,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 n={};return i&&(n.headers={...n.headers||{},...this.toHeaders(i)}),s&&(n.method="GET",n.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),n}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 n=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 n;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,n);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 n;case t.PreparedStatementKeys.GROUP_OF:if(e&&"object"==typeof n&&null!==n){const t={};for(const[r,s]of Object.entries(n))t[r]=Array.isArray(s)?s.map(t=>new e(t)):s;return t}return n;default:return n}}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:n,ctx:a}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(a);return n.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},a)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(a);return n.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},a)}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)),n=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"GET",...n},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}),n=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"GET",...n},i)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(a);return n.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},a)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(a);return n.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},a)}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)),n=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"DELETE",...n},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}),n=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"DELETE",...n},i)}catch(e){throw this.parseError(e)}}parseError(e,...t){return S.parseError(e,...t)}}_.decoration();const x="##VERSION##",N="##PACKAGE##";r.Metadata.registerLibrary(N,x),e.AxiosFlavour=A,e.AxiosHttpAdapter=_,e.HttpAdapter=S,e.HttpPaginator=v,e.HttpStatement=E,e.KeepAliveOperation="keepalive",e.PACKAGE_NAME=N,e.RestRepository=y,e.RestService=m,e.ServerEventConnector=b,e.TaskResponseParser=P,e.VERSION=x,e.suffixMethod=O},"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
@@ -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","headers","connector","set","close","parseReceivedEvent","raw","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","Serialization","String","listeners","Set","isOpen","es","getHeaders","Promise","resolve","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","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","operation","updateObservers","catch","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","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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"}
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","getHeaders","Promise","resolve","force","info","controller","abort","clear","delete","warn","debug","startListening","opening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","removeConnectorListener","operation","updateObservers","catch","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","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 E}from"@decaf-ts/decoration";import{OperationKeys as A,InternalError as x,wrapMethodWithContext 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,H,M;class Y 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)],Y.prototype,"find",null),q([t(),D("design:type",Function),D("design:paramtypes",[String,String,Object,void 0]),D("design:returntype",Promise)],Y.prototype,"page",null),q([t(),D("design:type",Function),D("design:paramtypes",[Object,void 0]),D("design:returntype",Promise)],Y.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)],Y.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)],Y.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)],Y.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)],Y.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)],Y.prototype,"distinctOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(H="undefined"!=typeof K&&K)?H:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"groupOf",null);class Q extends Y{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}async getHeaders(){let t=this.headers;return"function"==typeof this.headers&&(t=await Promise.resolve(this.headers())),t||{}}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)}async 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);const e=await this.getHeaders();this.es=new z(this.url,{...e&&{headers:e},credentials:"include"});const s=this;this.controller=this.es.listen({onResponse:()=>{t.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:e})=>{t.error("Failed to establish EventSource connection",{url:this.url,error:e}),s.listeners.forEach(t=>t.onError((e?.message??e)+""))},onResponseError:({response:e})=>{const r=e?.status,i=e?.statusText;t.error("Listening failed with HTTP error response",{url:this.url,status:r,statusText:i});const n=Error(`HTTP ${r??"unknown"} ${i??"error"}`);s.listeners.forEach(t=>t.onError(n))},onMessage:e=>{if("heartbeat"===e.event)return void t.debug("Refresh connection. Heartbeat received.");const r=e&&"object"==typeof e&&"data"in e?e.data:e,i=W.parseReceivedEvent(r);if(i)for(const e of s.listeners)try{e.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.listeners.add(t),this.startListening().then(()=>{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()");if(!this.adapter.config.events)return void e.warn("SSe events disabled");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,async()=>{if(!this.adapter)throw new x("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(t){throw new x("Failed to get event headers: "+t)}}),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(!0),this.listening=!1}}(t=>{t.PENDING_TASK="x-pending-task",t.CORRELATION_ID="x-correlation-id"})(M||(M={}));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,events:void 0===t.events||t.events}),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)}),$(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}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}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 x("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[M.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(v.name)?new v(t):s.includes(C.name)?new C(t):new x(t)}static decoration(){super.decoration(),w.for(i.QUERY).define({decorator:e=>(s,r,n)=>b(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[M.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[M.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[M.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 x("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,M as DecafHeaders,st as HttpAdapter,X as HttpPaginator,V as HttpStatement,tt as KeepAliveOperation,ot as PACKAGE_NAME,Y as RestRepository,Q as RestService,W as ServerEventConnector,it as TaskResponseParser,at as VERSION,et as suffixMethod};
1
+ import{prepared as e,Repository as t,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 E}from"@decaf-ts/decoration";import{OperationKeys as A,InternalError as x,wrapMethodWithContext as $,NotFoundError as S,ConflictError as N,BadRequestError as T,ValidationError as C,SerializationError as R,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,H,M;class Y extends t{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,s){return this.adapter.url(e,t,s)}async paginateBy(e,t,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:t,limit:o};return a&&(h.bookmark=a),this.statement(this.paginateBy.name,e,n,h,...l)}async listBy(e,t,...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 ${e} ${t}`),await this.statement(this.listBy.name,e,{direction:t},...n)}async findBy(e,t,...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 ${e} ${t}`),await this.statement(this.findBy.name,e,t,{},...n)}async findOneBy(e,t,...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 ${e} ${t}`),await this.statement(this.findOneBy.name,e,t,{},...n)}async find(e,t=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,e,t,...a)}async page(e,t=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,e,t,i,...o)}async statement(e,...t){const{log:s,ctx:r,ctxArgs:n}=(await this.logCtx(t,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:e,params:c},h=this.adapter.toRequest(l,r);s.verbose("Executing prepared statement "+e);const d=await this.request(h,...n),u=this.adapter.parseResponse(this.class,e,d);return this.convertStatementResult(e,u,r)}convertStatementResult(e,t,r){return t?e===s.FIND||e===s.LIST_BY||e===s.FIND_BY?Array.isArray(t)?t.map(e=>this.revertRecord(e,r)):t:e===s.FIND_ONE_BY?this.revertRecord(t,r):e===s.PAGE||e===s.PAGE_BY?this.convertPageResult(t,r):t:t}convertPageResult(e,t){if(!e)return e;let s=e;if("string"==typeof s)try{s=n.deserialize(s)}catch{return e}return n.isSerializedPage(s)?{...s,data:s.data.map(e=>this.revertRecord(e,t))}:e}revertRecord(e,t){if(!e)return e;if(e instanceof this.class)return e;const s=L.pk(this.class),r=L.columnName(this.class,s),i=s??r,n=e[r]??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,...t){let s;s=t.length&&t[t.length-1]instanceof a?this.logCtx(t,this.request):(await this.logCtx(t,A.READ,!0)).for(this.request);const{ctxArgs:r}=s;return this.adapter.request(e,...r)}async countOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.COUNT_OF,!0)).for(this.countOf);r.verbose(`counting ${L.tableName(this.class)}${e?" by "+e:""}`);const n=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.MAX_OF,!0)).for(this.maxOf);return r.verbose(`finding max of ${e} in ${L.tableName(this.class)}`),await this.statement(this.maxOf.name,e,{},...i)}async minOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.MIN_OF,!0)).for(this.minOf);return r.verbose(`finding min of ${e} in ${L.tableName(this.class)}`),await this.statement(this.minOf.name,e,{},...i)}async avgOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.AVG_OF,!0)).for(this.avgOf);return r.verbose(`calculating avg of ${e} in ${L.tableName(this.class)}`),await this.statement(this.avgOf.name,e,{},...i)}async sumOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.SUM_OF,!0)).for(this.sumOf);return r.verbose(`calculating sum of ${e} in ${L.tableName(this.class)}`),await this.statement(this.sumOf.name,e,{},...i)}async distinctOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.DISTINCT_OF,!0)).for(this.distinctOf);return r.verbose(`finding distinct values of ${e} in ${L.tableName(this.class)}`),await this.statement(this.distinctOf.name,e,{},...i)}async groupOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.GROUP_OF,!0)).for(this.groupOf);return r.verbose(`grouping ${L.tableName(this.class)} by ${e}`),await this.statement(this.groupOf.name,e,{},...i)}}q([e(),D("design:type",Function),D("design:paramtypes",[String,String,void 0]),D("design:returntype",Promise)],Y.prototype,"find",null),q([e(),D("design:type",Function),D("design:paramtypes",[String,String,Object,void 0]),D("design:returntype",Promise)],Y.prototype,"page",null),q([e(),D("design:type",Function),D("design:paramtypes",[Object,void 0]),D("design:returntype",Promise)],Y.prototype,"countOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(B="undefined"!=typeof K&&K)?B:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"maxOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(k="undefined"!=typeof K&&K)?k:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"minOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(U="undefined"!=typeof K&&K)?U:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"avgOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(G="undefined"!=typeof K&&K)?G:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"sumOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(J="undefined"!=typeof K&&K)?J:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"distinctOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(H="undefined"!=typeof K&&K)?H:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"groupOf",null);class Q 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 L.tableName(this.class)+" REST service"}}class V extends o{constructor(e,t){super(e,t)}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(e,...t){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(e,t,s,r){super(e,t,s,r)}async pagePrepared(e,...r){const i=t.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:e,bookmark:this._bookmark};d.push(u);const g=await i.statement(...d,...r);return this.apply(g)}prepare(e){throw new c("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 W extends l{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 s=new W(e,t);return this.cache.set(e,s),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[s,r,i,n]=t;if("string"!=typeof s)return null;let a;return a=Array.isArray(n)?n.map(e=>"string"==typeof e?_.deserialize(e):e):"string"==typeof n?_.deserialize(n):n,[s,r+"",i,a]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.listeners=new Set}isOpen(){return void 0!==this.es}async getHeaders(){let e=this.headers;return"function"==typeof this.headers&&(e=await Promise.resolve(this.headers())),e||{}}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(),W.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)}async startListening(){const e=this.log.for(this.startListening);if(this.es)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});else{if(this.opening)return e.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await this.opening;this.opening=(async()=>{e.info("Opening EventSource connection to "+this.url);const t=await this.getHeaders();this.es=new z(this.url,{...t&&{headers:t},credentials:"include"});const s=this;this.controller=this.es.listen({onResponse:()=>{e.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:t})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:t}),s.listeners.forEach(e=>e.onError((t?.message??t)+""))},onResponseError:({response:t})=>{const r=t?.status,i=t?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:r,statusText:i});const n=Error(`HTTP ${r??"unknown"} ${i??"error"}`);s.listeners.forEach(e=>e.onError(n))},onMessage:t=>{if("heartbeat"===t.event)return void e.debug("Refresh connection. Heartbeat received.");const r=t&&"object"==typeof t&&"data"in t?t.data:t,i=W.parseReceivedEvent(r);if(i)for(const t of s.listeners)try{t.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:r})}})})().finally(()=>{this.opening=void 0}),await this.opening}}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.listeners.add(e),this.startListening().then(()=>{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),s=this.listeners.has(e);t.info(`Unregistering listener for connection ${this.url}. Current active listeners: ${this.listeners.size}`,{listenerFound:s}),s&&(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 Z extends h{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...e){const{log:t,ctxArgs:s}=(await this.logCtx(e,i.INITIALIZATION,!0)).for(this.initialize);this.adapter?(t.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),t.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):t.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()");if(!this.adapter.config.events)return void t.warn("SSe events disabled");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:s,host:r,eventsListenerPath:i}=this.adapter.config;if(!i)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:s,host:r}),Error("No eventsListenerPath specified");const n=new URL(i,`${s}://${r}`).toString();t.info("Opening ServerEventConnector for url: "+n),this.connector=W.open(n,async()=>{if(!this.adapter)throw new x("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(e){throw new x("Failed to get event headers: "+e)}}),t.debug("ServerEventConnector opened successfully for url: "+n),this.removeConnectorListener?.(),this.removeConnectorListener=this.connector.addListener({onEvent:async e=>{const[t,s,r,...i]=e,{log:n,ctxArgs:a}=(await this.logCtx(i,s,!0)).for("onEvent");super.updateObservers(t,s,r,...a).catch(e=>n.error("ServerEventConnector failed to updateObservers",e))},onError:e=>{t.error("ServerEventConnector failed to dispatch event",{error:e,listeningUrl:n,adapter:this.adapter+""})}}),this.listening=!0,t.info(`HttpDispatcher is now listening at ${n}.`)}async close(...e){this.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),this.listening=!1}}(e=>{e.PENDING_TASK="x-pending-task",e.CORRELATION_ID="x-correlation-id"})(M||(M={}));const ee="keepalive";function te(e,t,s,r){const i=r||t.name;e[i]=new Proxy(e[i],{apply:async(e,t,r)=>{let i=e.call(t,...r);return i instanceof Promise&&(i=await i),i=s.call(t,i),i instanceof Promise&&(i=await i),i}})}class se extends d{constructor(e,t,s){super(Object.assign({},e,{headers:void 0===e.headers||e.headers,events:void 0===e.events||e.events}),t,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{te(this,e,t=>r.parseResponse.call(r,void 0,e.name,t),e.name)}),$(this,(...e)=>e,this.request,(e,t)=>{const s=r.config.parsers;return s?(s.forEach(s=>s(e,t)),e):e},this.request.name)}async flags(e,t,s){return super.flags(e,t,Object.assign({headers:s.headers??{}},s))}Dispatch(){return new Z}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return Q}prepare(e,...t){const{log:s}=this.logCtx(t,this.prepare),r=Object.assign({},e);return e[i.METADATA]&&(s.silly("Passing along persistence metadata for "+e[i.METADATA]),Object.defineProperty(r,i.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[i.METADATA]})),{record:e,id:e[L.pk(e.constructor)]}}revert(e,t,s,...r){const{log:n}=this.logCtx(r,this.revert),a={},o="string"==typeof t?L.build(a,t):new t(a);n.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof t?L.get(t):t;if(!c)throw new x("Failed to retrieve model constructor for "+t);const l=new c(e),h=e[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(e){return"string"==typeof e?e:F(L.tableName(e))}toHeaders(e){const t={};if(this.config.headers){const s=e.getOrUndefined("correlationId");s&&(t[M.CORRELATION_ID]=s)}return{...t,...e.getOrUndefined("headers")||{}}}url(e,t,s){s||t&&!Array.isArray(t)&&(s=t,t=[]),e=this.toTableName(e);const r=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return s&&Object.entries(s).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>r.searchParams.append(e,t.toString())):"object"==typeof t?r.searchParams.append(e,JSON.stringify(t)):void 0!==t&&r.searchParams.append(e,t.toString())}),r.toString()}extractIdArgs(e,t){const s=t.toString();if("string"==typeof e)return[s];const r=L.composed(e,L.pk(e));return r?s.split(r.separator):[s]}parseResponse(e,t,s){return e&&n.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:s,ctx:r}=this.logCtx(t,this.raw),i=this.toRequest(e,r);return this.request(i,...s)}Sequence(e){return Promise.reject(new c("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new V(this,e)}Paginator(e,t,s){return new X(this,e,t,s)}parseCondition(e){throw new c("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...t){const s="string"==typeof e?e:e.message;return s.includes(S.name)||s.includes("404")?new S(e):s.includes(N.name)||s.includes("409")?new N(e):s.includes(T.name)||s.includes("400")?new T(e):s.includes(C.name)||s.includes("422")?new C(e):s.includes(u.name)?new u(e):s.includes(g.name)?new g(e):s.includes(c.name)?new c(e):s.includes(p.name)?new p(e):s.includes(f.name)?new f(e):s.includes(m.name)?new m(e):s.includes(y.name)?new y(e):s.includes(v.name)?new v(e):s.includes(R.name)?new R(e):new x(e)}static decoration(){super.decoration(),w.for(i.QUERY).define({decorator:t=>(s,r,n)=>b(O(E.key(i.QUERY,r),t),e(),(e,t,s)=>{s.value=new Proxy(s.value,{async apply(e,t,s){const i=t,{log:n,ctxArgs:a}=(await i.logCtx(s,A.READ,!0)).for(r);return n.verbose("Running prepared statement "+e.name),n.debug("With args: "+JSON.stringify(s,null,2)),t.statement(e.name,...a)}})})(s,r,n)}).apply()}}se.decoration();const re="axios",ie=(e,t)=>{if(e.headers&&e.headers[M.PENDING_TASK]){let s;try{s=JSON.parse(e.headers[M.PENDING_TASK]),Object.entries(s).forEach(([e,s])=>{s.forEach(s=>t.pushPending(e,s))})}catch(s){t.logger.for(ie).error(`Failed to parse pending tasks header ${e.headers[M.PENDING_TASK]}: ${s}`)}}};class ne extends se{constructor(e,t){super(e,re,t)}getClient(){return new j({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,t){let s,r;e instanceof a?(r=e,s=void 0):(s=e,r=t);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(e,...t){let s={};try{const{ctx:e}=this.logCtx(t,this.request);s=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,s))}parseResponse(e,t,r){if(!r.status&&t!==i.STATEMENT)throw new x("this should be impossible");if(r.status>=400)throw this.parseError(r.error||r.status);const n=this.normalizeResponseBody(r);switch(t){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(e,t,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(e&&"object"==typeof n&&null!==n){const t={};for(const[s,r]of Object.entries(n))t[s]=Array.isArray(r)?r.map(t=>new e(t)):r;return t}return n;default:return n}}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,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.create);try{const r=this.url(e,this.extractIdArgs(e,t)),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]:e.name})),...a},n)}catch(e){throw this.parseError(e)}}async createAll(e,t,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.createAll);try{const t=this.url(e,["bulk"]),r=this.toRequest(n);return i.debug(`POSTing to ${t} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:t,method:"POST",data:JSON.stringify(s.map(t=>Object.assign({},t,{[I.ANCHOR]:e.name}))),...r},n)}catch(e){throw this.parseError(e)}}async read(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.read);try{const s=this.url(e,this.extractIdArgs(e,t)),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(e){throw this.parseError(e)}}async readAll(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.readAll);try{const s=this.url(e,["bulk"],{ids:t}),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(e){throw this.parseError(e)}}async update(e,t,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.update);try{const r=this.url(e,this.extractIdArgs(e,t)),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]:e.name})),...a},n)}catch(e){throw this.parseError(e)}}async updateAll(e,t,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.updateAll);try{const t=this.url(e,["bulk"]),r=this.toRequest(n);return i.debug(`PUTing to ${t} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:t,method:"PUT",data:JSON.stringify(s.map(t=>Object.assign({},t,{[I.ANCHOR]:e.name}))),...r},n)}catch(e){throw this.parseError(e)}}async delete(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(e,this.extractIdArgs(e,t)),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(e){throw this.parseError(e)}}async deleteAll(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(e,["bulk"],{ids:t}),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(e){throw this.parseError(e)}}parseError(e,...t){return se.parseError(e,...t)}}ne.decoration();const ae="##VERSION##",oe="##PACKAGE##";E.registerLibrary(oe,ae);export{re as AxiosFlavour,ne as AxiosHttpAdapter,M as DecafHeaders,se as HttpAdapter,X as HttpPaginator,V as HttpStatement,ee as KeepAliveOperation,oe as PACKAGE_NAME,Y as RestRepository,Q as RestService,W as ServerEventConnector,ie as TaskResponseParser,ae as VERSION,te as suffixMethod};
2
2
  //# sourceMappingURL=for-http.js.map
@@ -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","headers","connector","set","close","parseReceivedEvent","raw","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","Serialization","String","listeners","Set","isOpen","es","getHeaders","Promise","resolve","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","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","operation","updateObservers","catch","KeepAliveOperation","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","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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"}
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","getHeaders","Promise","resolve","force","info","controller","abort","clear","delete","warn","debug","startListening","opening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","removeConnectorListener","operation","updateObservers","catch","KeepAliveOperation","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","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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"}
@@ -72,7 +72,8 @@ class HttpDispatcher extends core_1.Dispatch {
72
72
  }
73
73
  });
74
74
  log.debug(`ServerEventConnector opened successfully for url: ${listeningUrl}`);
75
- this.connector.addListener({
75
+ this.removeConnectorListener?.();
76
+ this.removeConnectorListener = this.connector.addListener({
76
77
  onEvent: async (event) => {
77
78
  const [tableName, operation, id, ...args] = event;
78
79
  const { log, ctxArgs } = (await this.logCtx(args, operation, true)).for("onEvent");
@@ -102,7 +103,9 @@ class HttpDispatcher extends core_1.Dispatch {
102
103
  // initialized: this.initialized,
103
104
  // adapter: this.adapter ? String(this.adapter) : undefined,
104
105
  // });
105
- this.connector?.close(true);
106
+ this.removeConnectorListener?.();
107
+ this.removeConnectorListener = undefined;
108
+ this.connector?.close();
106
109
  this.listening = false;
107
110
  }
108
111
  }
@@ -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
+ private removeConnectorListener?;
5
6
  protected initialized: boolean;
6
7
  private listening;
7
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../src/HttpDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../src/HttpDispatcher.ts"],"names":[],"mappings":"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"}
@@ -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
+ private removeConnectorListener?;
5
6
  protected initialized: boolean;
6
7
  private listening;
7
8
  /**
@@ -69,7 +69,8 @@ export class HttpDispatcher extends Dispatch {
69
69
  }
70
70
  });
71
71
  log.debug(`ServerEventConnector opened successfully for url: ${listeningUrl}`);
72
- this.connector.addListener({
72
+ this.removeConnectorListener?.();
73
+ this.removeConnectorListener = this.connector.addListener({
73
74
  onEvent: async (event) => {
74
75
  const [tableName, operation, id, ...args] = event;
75
76
  const { log, ctxArgs } = (await this.logCtx(args, operation, true)).for("onEvent");
@@ -99,7 +100,9 @@ export class HttpDispatcher extends Dispatch {
99
100
  // initialized: this.initialized,
100
101
  // adapter: this.adapter ? String(this.adapter) : undefined,
101
102
  // });
102
- this.connector?.close(true);
103
+ this.removeConnectorListener?.();
104
+ this.removeConnectorListener = undefined;
105
+ this.connector?.close();
103
106
  this.listening = false;
104
107
  }
105
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../../src/HttpDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../../src/HttpDispatcher.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare class ServerEventConnector extends ContextualLoggedClass<Context<
12
12
  /** Shared connection state (cached singleton instance). */
13
13
  private es?;
14
14
  private controller?;
15
+ private opening?;
15
16
  private listeners;
16
17
  constructor(url: string, headers?: ServerEventConnectorHeaders | undefined);
17
18
  isOpen(): boolean;
@@ -94,62 +94,75 @@ export class ServerEventConnector extends ContextualLoggedClass {
94
94
  log.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`, { url: this.url, listeners: this.listeners.size });
95
95
  return;
96
96
  }
97
- log.info(`Opening EventSource connection to ${this.url}`);
98
- const headers = await this.getHeaders();
99
- this.es = new EventSourcePlus(this.url, {
100
- ...(headers && { headers: headers }),
101
- credentials: "include",
102
- });
103
- // eslint-disable-next-line @typescript-eslint/no-this-alias
104
- const self = this;
105
- this.controller = this.es.listen({
106
- onResponse: () => {
107
- log.info(`Connected to ${this.url}. Ready to receive events`);
108
- },
109
- onRequestError: ({ error }) => {
110
- log.error("Failed to establish EventSource connection", {
111
- url: this.url,
112
- error,
113
- });
114
- self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
115
- },
116
- onResponseError: ({ response }) => {
117
- const status = response?.status;
118
- const statusText = response?.statusText;
119
- log.error("Listening failed with HTTP error response", {
120
- url: this.url,
121
- status,
122
- statusText,
123
- });
124
- const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
125
- self.listeners.forEach((handler) => handler.onError(err));
126
- },
127
- onMessage: (message) => {
128
- if (message.event === "heartbeat") {
129
- log.debug(`Refresh connection. Heartbeat received.`);
130
- return;
131
- }
132
- const raw = message && typeof message === "object" && "data" in message
133
- ? message.data
134
- : message;
135
- const event = ServerEventConnector.parseReceivedEvent(raw);
136
- if (!event) {
137
- log.warn(`Failed to parse SSE message`, {
97
+ if (this.opening) {
98
+ log.debug(`Connection open already in progress for ${this.url}`, {
99
+ url: this.url,
100
+ listeners: this.listeners.size,
101
+ });
102
+ await this.opening;
103
+ return;
104
+ }
105
+ this.opening = (async () => {
106
+ log.info(`Opening EventSource connection to ${this.url}`);
107
+ const headers = await this.getHeaders();
108
+ this.es = new EventSourcePlus(this.url, {
109
+ ...(headers && { headers: headers }),
110
+ credentials: "include",
111
+ });
112
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
113
+ const self = this;
114
+ this.controller = this.es.listen({
115
+ onResponse: () => {
116
+ log.info(`Connected to ${this.url}. Ready to receive events`);
117
+ },
118
+ onRequestError: ({ error }) => {
119
+ log.error("Failed to establish EventSource connection", {
120
+ url: this.url,
121
+ error,
122
+ });
123
+ self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
124
+ },
125
+ onResponseError: ({ response }) => {
126
+ const status = response?.status;
127
+ const statusText = response?.statusText;
128
+ log.error("Listening failed with HTTP error response", {
138
129
  url: this.url,
139
- raw,
130
+ status,
131
+ statusText,
140
132
  });
141
- return;
142
- }
143
- for (const handler of self.listeners) {
144
- try {
145
- handler.onEvent(event);
133
+ const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
134
+ self.listeners.forEach((handler) => handler.onError(err));
135
+ },
136
+ onMessage: (message) => {
137
+ if (message.event === "heartbeat") {
138
+ log.debug(`Refresh connection. Heartbeat received.`);
139
+ return;
146
140
  }
147
- catch (err) {
148
- log.error("Listener handler failed on event", { err });
141
+ const raw = message && typeof message === "object" && "data" in message
142
+ ? message.data
143
+ : message;
144
+ const event = ServerEventConnector.parseReceivedEvent(raw);
145
+ if (!event) {
146
+ log.warn(`Failed to parse SSE message`, {
147
+ url: this.url,
148
+ raw,
149
+ });
150
+ return;
149
151
  }
150
- }
151
- },
152
+ for (const handler of self.listeners) {
153
+ try {
154
+ handler.onEvent(event);
155
+ }
156
+ catch (err) {
157
+ log.error("Listener handler failed on event", { err });
158
+ }
159
+ }
160
+ },
161
+ });
162
+ })().finally(() => {
163
+ this.opening = undefined;
152
164
  });
165
+ await this.opening;
153
166
  }
154
167
  addListener(handlers) {
155
168
  const log = this.log.for(this.addListener);
@@ -1 +1 @@
1
- {"version":3,"file":"ServerEventConnector.js","sourceRoot":"","sources":["../../../src/event/ServerEventConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAW,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,OAAO,oBAAqB,SAAQ,qBAAmC;aACnD,UAAK,GAAG,IAAI,GAAG,EAAgC,AAA1C,CAA2C;IAExE,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;QAE5E,MAAM,IAAI,KAAK,CACb,6CAA6C,GAAG,mCAAmC,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAW,EACX,OAAqC;QAErC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;QAE5E,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW;QACtB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;YAC9D,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,GAAY;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEzD,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;YAC7D,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAE/C,IAAI,OAAyD,CAAC;YAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAClE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,OAAO,UAAU,KAAK,QAAQ;wBAC5B,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC;wBACvC,CAAC,CAAC,UAAU,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAOD,YACmB,GAAW,EACX,OAAqC;QAEtD,KAAK,EAAE,CAAC;QAHS,QAAG,GAAH,GAAG,CAAQ;QACX,YAAO,GAAP,OAAO,CAA8B;QAJhD,cAAS,GAAuB,IAAI,GAAG,EAAE,CAAC;IAOlD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;IAC/B,CAAC;IAES,KAAK,CAAC,UAAU;QACxB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE3B,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YACtC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAiB,KAAK;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CACP,sDAAsD,IAAI,CAAC,GAAG,EAAE,CACjE,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CACN,yCAAyC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,gCAAgC,CAC3G,CAAC;YACF,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,oDAAoD,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CACN,0BAA0B,IAAI,CAAC,GAAG,+BAA+B,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CACN,qBAAqB,IAAI,CAAC,GAAG,2EAA2E,EACxG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAClD,CAAC;YACF,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,EAAE,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE;YACtC,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YACpC,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,IAAI,GAAyB,IAAI,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAC/B,UAAU,EAAE,GAAG,EAAE;gBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;YAChE,CAAC;YACD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5B,GAAG,CAAC,KAAK,CAAC,4CAA4C,EAAE;oBACtD,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,KAAK;iBACN,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACjC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAE,KAAa,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,CAC1D,CAAC;YACJ,CAAC;YACD,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;gBAChC,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC;gBACxC,GAAG,CAAC,KAAK,CAAC,2CAA2C,EAAE;oBACrD,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,MAAM;oBACN,UAAU;iBACX,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,QAAQ,MAAM,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,EAAE,CACvD,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,SAAS,EAAE,CAAC,OAAyB,EAAE,EAAE;gBACvC,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBAClC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;gBAED,MAAM,GAAG,GACP,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO;oBACzD,CAAC,CAAC,OAAO,CAAC,IAAI;oBACd,CAAC,CAAC,OAAO,CAAC;gBAEd,MAAM,KAAK,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE;wBACtC,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,GAAG;qBACJ,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,QAAuB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,GAAG,CAAC,IAAI,CACN,uCAAuC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAC9F,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC9B,GAAG,CAAC,IAAI,CACN,sCAAsC,IAAI,CAAC,GAAG,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAC7F,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,QAAuB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CACN,yCAAyC,IAAI,CAAC,GAAG,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EACrG;YACE,aAAa,EAAE,OAAO;SACvB,CACF,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,GAAG,CAAC,KAAK,CACP,wCAAwC,IAAI,CAAC,GAAG,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CACN,0DAA0D,IAAI,CAAC,GAAG,GAAG,EACrE;gBACE,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;aAC/B,CACF,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"ServerEventConnector.js","sourceRoot":"","sources":["../../../src/event/ServerEventConnector.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,5 @@ export * from "./event";
21
21
  * @summary Version identifier for the module
22
22
  * @const VERSION
23
23
  */
24
- export declare const VERSION = "0.4.1";
24
+ export declare const VERSION = "0.4.2";
25
25
  export declare const PACKAGE_NAME = "@decaf-ts/for-http";
package/lib/esm/index.js CHANGED
@@ -22,7 +22,7 @@ export * from "./event/index.js";
22
22
  * @summary Version identifier for the module
23
23
  * @const VERSION
24
24
  */
25
- export const VERSION = "0.4.1";
25
+ export const VERSION = "0.4.2";
26
26
  export const PACKAGE_NAME = "@decaf-ts/for-http";
27
27
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
28
28
  //# sourceMappingURL=index.js.map
@@ -97,62 +97,75 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
97
97
  log.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`, { url: this.url, listeners: this.listeners.size });
98
98
  return;
99
99
  }
100
- log.info(`Opening EventSource connection to ${this.url}`);
101
- const headers = await this.getHeaders();
102
- this.es = new event_source_plus_1.EventSourcePlus(this.url, {
103
- ...(headers && { headers: headers }),
104
- credentials: "include",
105
- });
106
- // eslint-disable-next-line @typescript-eslint/no-this-alias
107
- const self = this;
108
- this.controller = this.es.listen({
109
- onResponse: () => {
110
- log.info(`Connected to ${this.url}. Ready to receive events`);
111
- },
112
- onRequestError: ({ error }) => {
113
- log.error("Failed to establish EventSource connection", {
114
- url: this.url,
115
- error,
116
- });
117
- self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
118
- },
119
- onResponseError: ({ response }) => {
120
- const status = response?.status;
121
- const statusText = response?.statusText;
122
- log.error("Listening failed with HTTP error response", {
123
- url: this.url,
124
- status,
125
- statusText,
126
- });
127
- const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
128
- self.listeners.forEach((handler) => handler.onError(err));
129
- },
130
- onMessage: (message) => {
131
- if (message.event === "heartbeat") {
132
- log.debug(`Refresh connection. Heartbeat received.`);
133
- return;
134
- }
135
- const raw = message && typeof message === "object" && "data" in message
136
- ? message.data
137
- : message;
138
- const event = ServerEventConnector.parseReceivedEvent(raw);
139
- if (!event) {
140
- log.warn(`Failed to parse SSE message`, {
100
+ if (this.opening) {
101
+ log.debug(`Connection open already in progress for ${this.url}`, {
102
+ url: this.url,
103
+ listeners: this.listeners.size,
104
+ });
105
+ await this.opening;
106
+ return;
107
+ }
108
+ this.opening = (async () => {
109
+ log.info(`Opening EventSource connection to ${this.url}`);
110
+ const headers = await this.getHeaders();
111
+ this.es = new event_source_plus_1.EventSourcePlus(this.url, {
112
+ ...(headers && { headers: headers }),
113
+ credentials: "include",
114
+ });
115
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
116
+ const self = this;
117
+ this.controller = this.es.listen({
118
+ onResponse: () => {
119
+ log.info(`Connected to ${this.url}. Ready to receive events`);
120
+ },
121
+ onRequestError: ({ error }) => {
122
+ log.error("Failed to establish EventSource connection", {
123
+ url: this.url,
124
+ error,
125
+ });
126
+ self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
127
+ },
128
+ onResponseError: ({ response }) => {
129
+ const status = response?.status;
130
+ const statusText = response?.statusText;
131
+ log.error("Listening failed with HTTP error response", {
141
132
  url: this.url,
142
- raw,
133
+ status,
134
+ statusText,
143
135
  });
144
- return;
145
- }
146
- for (const handler of self.listeners) {
147
- try {
148
- handler.onEvent(event);
136
+ const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
137
+ self.listeners.forEach((handler) => handler.onError(err));
138
+ },
139
+ onMessage: (message) => {
140
+ if (message.event === "heartbeat") {
141
+ log.debug(`Refresh connection. Heartbeat received.`);
142
+ return;
149
143
  }
150
- catch (err) {
151
- log.error("Listener handler failed on event", { err });
144
+ const raw = message && typeof message === "object" && "data" in message
145
+ ? message.data
146
+ : message;
147
+ const event = ServerEventConnector.parseReceivedEvent(raw);
148
+ if (!event) {
149
+ log.warn(`Failed to parse SSE message`, {
150
+ url: this.url,
151
+ raw,
152
+ });
153
+ return;
152
154
  }
153
- }
154
- },
155
+ for (const handler of self.listeners) {
156
+ try {
157
+ handler.onEvent(event);
158
+ }
159
+ catch (err) {
160
+ log.error("Listener handler failed on event", { err });
161
+ }
162
+ }
163
+ },
164
+ });
165
+ })().finally(() => {
166
+ this.opening = undefined;
155
167
  });
168
+ await this.opening;
156
169
  }
157
170
  addListener(handlers) {
158
171
  const log = this.log.for(this.addListener);
@@ -12,6 +12,7 @@ export declare class ServerEventConnector extends ContextualLoggedClass<Context<
12
12
  /** Shared connection state (cached singleton instance). */
13
13
  private es?;
14
14
  private controller?;
15
+ private opening?;
15
16
  private listeners;
16
17
  constructor(url: string, headers?: ServerEventConnectorHeaders | undefined);
17
18
  isOpen(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ServerEventConnector.js","sourceRoot":"","sources":["../../src/event/ServerEventConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerEventConnector.js","sourceRoot":"","sources":["../../src/event/ServerEventConnector.ts"],"names":[],"mappings":";;;AACA,yDAAoD;AACpD,yEAA+D;AAC/D,yCAAgE;AAMhE,MAAa,oBAAqB,SAAQ,4BAAmC;aACnD,UAAK,GAAG,IAAI,GAAG,EAAgC,AAA1C,CAA2C;IAExE,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;QAE5E,MAAM,IAAI,KAAK,CACb,6CAA6C,GAAG,mCAAmC,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAW,EACX,OAAqC;QAErC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;QAE5E,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAW;QACtB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;YAC9D,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,GAAY;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEzD,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;YAC7D,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAE/C,IAAI,OAAyD,CAAC;YAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oCAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAClE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,OAAO,UAAU,KAAK,QAAQ;wBAC5B,CAAC,CAAC,oCAAa,CAAC,WAAW,CAAC,UAAU,CAAC;wBACvC,CAAC,CAAC,UAAU,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAQD,YACmB,GAAW,EACX,OAAqC;QAEtD,KAAK,EAAE,CAAC;QAHS,QAAG,GAAH,GAAG,CAAQ;QACX,YAAO,GAAP,OAAO,CAA8B;QAJhD,cAAS,GAAuB,IAAI,GAAG,EAAE,CAAC;IAOlD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;IAC/B,CAAC;IAES,KAAK,CAAC,UAAU;QACxB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE3B,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YACtC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAiB,KAAK;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CACP,sDAAsD,IAAI,CAAC,GAAG,EAAE,CACjE,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CACN,yCAAyC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,gCAAgC,CAC3G,CAAC;YACF,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,oDAAoD,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CACN,0BAA0B,IAAI,CAAC,GAAG,+BAA+B,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CACN,qBAAqB,IAAI,CAAC,GAAG,2EAA2E,EACxG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAClD,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,KAAK,CAAC,2CAA2C,IAAI,CAAC,GAAG,EAAE,EAAE;gBAC/D,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;aAC/B,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,GAAG,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,EAAE,GAAG,IAAI,mCAAe,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtC,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBACpC,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YAEH,4DAA4D;YAC5D,MAAM,IAAI,GAAyB,IAAI,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;gBAC/B,UAAU,EAAE,GAAG,EAAE;oBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;gBAChE,CAAC;gBACD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC5B,GAAG,CAAC,KAAK,CAAC,4CAA4C,EAAE;wBACtD,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK;qBACN,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACjC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAE,KAAa,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,CAC1D,CAAC;gBACJ,CAAC;gBACD,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;oBAChC,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;oBAChC,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC;oBACxC,GAAG,CAAC,KAAK,CAAC,2CAA2C,EAAE;wBACrD,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,MAAM;wBACN,UAAU;qBACX,CAAC,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,QAAQ,MAAM,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,EAAE,CACvD,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBACD,SAAS,EAAE,CAAC,OAAyB,EAAE,EAAE;oBACvC,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBAClC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;wBACrD,OAAO;oBACT,CAAC;oBAED,MAAM,GAAG,GACP,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO;wBACzD,CAAC,CAAC,OAAO,CAAC,IAAI;wBACd,CAAC,CAAC,OAAO,CAAC;oBAEd,MAAM,KAAK,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE;4BACtC,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,GAAG;yBACJ,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACrC,IAAI,CAAC;4BACH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzB,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,QAAuB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,GAAG,CAAC,IAAI,CACN,uCAAuC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAC9F,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC9B,GAAG,CAAC,IAAI,CACN,sCAAsC,IAAI,CAAC,GAAG,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAC7F,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,QAAuB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CACN,yCAAyC,IAAI,CAAC,GAAG,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EACrG;YACE,aAAa,EAAE,OAAO;SACvB,CACF,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,GAAG,CAAC,KAAK,CACP,wCAAwC,IAAI,CAAC,GAAG,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CACN,0DAA0D,IAAI,CAAC,GAAG,GAAG,EACrE;gBACE,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;aAC/B,CACF,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;;AA1PH,oDA2PC"}
package/lib/index.cjs CHANGED
@@ -39,7 +39,7 @@ __exportStar(require("./event/index.cjs"), exports);
39
39
  * @summary Version identifier for the module
40
40
  * @const VERSION
41
41
  */
42
- exports.VERSION = "0.4.1";
42
+ exports.VERSION = "0.4.2";
43
43
  exports.PACKAGE_NAME = "@decaf-ts/for-http";
44
44
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
45
45
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -21,5 +21,5 @@ export * from "./event";
21
21
  * @summary Version identifier for the module
22
22
  * @const VERSION
23
23
  */
24
- export declare const VERSION = "0.4.1";
24
+ export declare const VERSION = "0.4.2";
25
25
  export declare const PACKAGE_NAME = "@decaf-ts/for-http";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-http",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "http wrappers for decaf-ts",
5
5
  "type": "module",
6
6
  "exports": {