@decaf-ts/for-http 0.4.4 → 0.4.5
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/README.md +1 -1
- package/dist/for-http.cjs +1 -1
- package/dist/for-http.cjs.map +1 -1
- package/dist/for-http.js +1 -1
- package/dist/for-http.js.map +1 -1
- package/lib/HttpDispatcher.cjs +2 -0
- package/lib/HttpDispatcher.js.map +1 -1
- package/lib/esm/HttpDispatcher.js +2 -0
- package/lib/esm/HttpDispatcher.js.map +1 -1
- package/lib/esm/event/ServerEventConnector.d.ts +12 -0
- package/lib/esm/event/ServerEventConnector.js +69 -8
- package/lib/esm/event/ServerEventConnector.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/event/ServerEventConnector.cjs +69 -8
- package/lib/event/ServerEventConnector.d.ts +12 -0
- package/lib/event/ServerEventConnector.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ A lightweight HTTP adapter layer for decaf-ts that enables CRUD-style repositori
|
|
|
29
29
|
|
|
30
30
|
Documentation available [here](https://decaf-ts.github.io/for-http/)
|
|
31
31
|
|
|
32
|
-
Minimal size: 6.
|
|
32
|
+
Minimal size: 6.8 KB kb gzipped
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
# decaf-ts/for-http — Detailed Description
|
package/dist/for-http.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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){const t=e=>{if("string"!=typeof e)return e;try{return i.Serialization.deserialize(e)}catch{try{return JSON.parse(e)}catch{return e}}};try{const r="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(r)||3>r.length)return null;const[s,i,n,a]=r;if("string"!=typeof s)return null;let o;return o=Array.isArray(a)?a.map(e=>t(e)):t(a),[s,i+"",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);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,s,i,a,n,o,c,d){"use strict";var l,h,u,p,g,f,y;class m 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)],m.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)],m.prototype,"page",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"countOf",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)],m.prototype,"maxOf",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)],m.prototype,"minOf",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)],m.prototype,"avgOf",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)],m.prototype,"sumOf",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)],m.prototype,"distinctOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(f="undefined"!=typeof K&&K)?f:Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"groupOf",null);class v extends m{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 w 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 O extends t.ContextualLoggedClass{static{this.cache=new Map}static get(e){if(this.cache.has(e))return this.cache.get(e);throw Error(`Server event connector not found for URL '${e}'. Did you forget to call open()?`)}static open(e,t){if(this.cache.has(e))return this.cache.get(e);const r=new O(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){const t=e=>{if("string"!=typeof e)return e;try{return i.Serialization.deserialize(e)}catch{try{return JSON.parse(e)}catch{return e}}};try{const r="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(r)||3>r.length)return null;const[s,i,a,n]=r;if("string"!=typeof s)return null;let o;return o=Array.isArray(n)?n.map(e=>t(e)):t(n),[s,i+"",a,o]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.stateLock=new c.Lock,this.ready=!1,this.listeners=new Set}isOpen(){return void 0!==this.es}async withStateLock(e){await this.stateLock.acquire();try{return await Promise.resolve(e())}finally{this.stateLock.release()}}async getOpening(){return this.withStateLock(()=>this.opening)}async setOpening(e){await this.withStateLock(()=>{this.opening=e})}async isReady(){return this.withStateLock(()=>this.ready)}async setReady(e){await this.withStateLock(()=>{this.ready=e})}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.setReady(!1),this.setOpening(void 0),this.listeners.clear(),O.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&&await this.isReady())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});const t=await this.getOpening();if(t)return e.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await t;const r=(async()=>{e.info("Opening EventSource connection to "+this.url);const t=await this.getHeaders();let r,s;this.es=new o.EventSourcePlus(this.url,{...t&&{headers:t},credentials:"include"}),await this.setReady(!1);const i=new Promise((e,t)=>{r=e,s=t}),a=this;this.controller=this.es.listen({onResponse:async()=>{await a.setReady(!0),e.info(`Connected to ${this.url}. Ready to receive events`),r()},onRequestError:({error:t})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:t}),a.setReady(!1),s(t),a.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"}`);a.setReady(!1),s(n),a.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,s=O.parseReceivedEvent(r);if(s)for(const t of a.listeners)try{t.onEvent(s)}catch(t){e.error("Listener handler failed on event",{err:t})}else e.warn("Failed to parse SSE message",{url:this.url,raw:r})}}),await i})().finally(()=>{this.setOpening(void 0)});await this.setOpening(r);try{await r}catch(e){throw this.controller=void 0,this.es=void 0,await this.setReady(!1),e}}async ensureListening(){await this.startListening()}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.ensureListening().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 b 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=O.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.removeConnectorListener?.(),this.removeConnectorListener=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+""})}}),await this.connector.ensureListening(),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}}function S(e,t,r,s){const i=s||t.name;e[i]=new Proxy(e[i],{apply:async(e,t,s)=>{let i=e.call(t,...s);return i instanceof Promise&&(i=await i),i=r.call(t,i),i instanceof Promise&&(i=await i),i}})}e.DecafHeaders=void 0,(y=e.DecafHeaders||(e.DecafHeaders={})).PENDING_TASK="x-pending-task",y.CORRELATION_ID="x-correlation-id";class A extends t.Adapter{constructor(e,t,r){super(Object.assign({},e,{headers:void 0===e.headers||e.headers,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=>{S(this,e,t=>i.parseResponse.call(i,void 0,e.name,t),e.name)}),s.wrapMethodWithContext(this,(...e)=>e,this.request,(e,t)=>{const r=i.config.parsers;return r?(r.forEach(r=>r(e,t)),e):e},this.request.name)}async flags(e,t,r){return super.flags(e,t,Object.assign({headers:r.headers??{}},r))}Dispatch(){return new b}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return v}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 w(this,e,t,r)}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...r){const i="string"==typeof e?e:e.message;return i.includes(s.NotFoundError.name)||i.includes("404")?new s.NotFoundError(e):i.includes(s.ConflictError.name)||i.includes("409")?new s.ConflictError(e):i.includes(s.BadRequestError.name)||i.includes("400")?new s.BadRequestError(e):i.includes(s.ValidationError.name)||i.includes("422")?new s.ValidationError(e):i.includes(t.QueryError.name)?new t.QueryError(e):i.includes(t.PagingError.name)?new t.PagingError(e):i.includes(t.UnsupportedError.name)?new t.UnsupportedError(e):i.includes(t.MigrationError.name)?new t.MigrationError(e):i.includes(t.ObserverError.name)?new t.ObserverError(e):i.includes(t.AuthorizationError.name)?new t.AuthorizationError(e):i.includes(t.ForbiddenError.name)?new t.ForbiddenError(e):i.includes(t.ConnectionError.name)?new t.ConnectionError(e):i.includes(s.SerializationError.name)?new s.SerializationError(e):new s.InternalError(e)}static decoration(){super.decoration(),r.Decoration.for(t.PersistenceKeys.QUERY).define({decorator:e=>(i,a,n)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,a),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const i=t,{log:n,ctxArgs:o}=(await i.logCtx(r,s.OperationKeys.READ,!0)).for(a);return n.verbose("Running prepared statement "+e.name),n.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(i,a,n)}).apply()}}A.decoration();const P="axios",_=(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(_).error(`Failed to parse pending tasks header ${t.headers[e.DecafHeaders.PENDING_TASK]}: ${s}`)}}};class x extends A{constructor(e,t){super(e,P,t)}getClient(){return new d.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,r){let s,i;e instanceof t.Context?(i=e,s=void 0):(s=e,i=r);const a={};return i&&(a.headers={...a.headers||{},...this.toHeaders(i)}),s&&(a.method="GET",a.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),a}async request(e,...t){let r={};try{const{ctx:e}=this.logCtx(t,this.request);r=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,r))}parseResponse(e,r,i){if(!i.status&&r!==t.PersistenceKeys.STATEMENT)throw new s.InternalError("this should be impossible");if(i.status>=400)throw this.parseError(i.error||i.status);const a=this.normalizeResponseBody(i);switch(r){case s.BulkCrudOperationKeys.CREATE_ALL:case s.BulkCrudOperationKeys.READ_ALL:case s.BulkCrudOperationKeys.UPDATE_ALL:case s.BulkCrudOperationKeys.DELETE_ALL:case s.OperationKeys.CREATE:case s.OperationKeys.READ:case s.OperationKeys.UPDATE:case s.OperationKeys.DELETE:return a;case t.PreparedStatementKeys.FIND:case t.PreparedStatementKeys.PAGE:case t.PreparedStatementKeys.FIND_BY:case t.PreparedStatementKeys.LIST_BY:case t.PreparedStatementKeys.PAGE_BY:case t.PreparedStatementKeys.FIND_ONE_BY:case t.PersistenceKeys.STATEMENT:return super.parseResponse(e,r,a);case t.PreparedStatementKeys.COUNT_OF:case t.PreparedStatementKeys.MAX_OF:case t.PreparedStatementKeys.MIN_OF:case t.PreparedStatementKeys.AVG_OF:case t.PreparedStatementKeys.SUM_OF:case t.PreparedStatementKeys.DISTINCT_OF:return a;case t.PreparedStatementKeys.GROUP_OF:if(e&&"object"==typeof a&&null!==a){const t={};for(const[r,s]of Object.entries(a))t[r]=Array.isArray(s)?s.map(t=>new e(t)):s;return t}return a;default:return a}}normalizeResponseBody(e){if(!e)return e;const t=void 0!==e.body?e.body:void 0!==e.data?e.data:e;if("string"==typeof t)try{return JSON.parse(t)}catch{return t}return t}async create(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return a.debug(`POSTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"POST",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return a.debug(`POSTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"POST",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async read(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.read);try{const r=this.url(e,this.extractIdArgs(e,t)),a=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"GET",...a},i)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.readAll);try{const r=this.url(e,["bulk"],{ids:t}),a=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"GET",...a},i)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return a.debug(`PUTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"PUT",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:a,ctx:n}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return a.debug(`PUTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"PUT",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,this.extractIdArgs(e,t)),a=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"DELETE",...a},i)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,["bulk"],{ids:t}),a=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"DELETE",...a},i)}catch(e){throw this.parseError(e)}}parseError(e,...t){return A.parseError(e,...t)}}x.decoration();const N="##VERSION##",R="##PACKAGE##";r.Metadata.registerLibrary(R,N),e.AxiosFlavour=P,e.AxiosHttpAdapter=x,e.HttpAdapter=A,e.HttpPaginator=w,e.HttpStatement=E,e.KeepAliveOperation="keepalive",e.PACKAGE_NAME=R,e.RestRepository=m,e.RestService=v,e.ServerEventConnector=O,e.TaskResponseParser=_,e.VERSION=N,e.suffixMethod=S},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging"),require("event-source-plus"),require("@decaf-ts/transactional-decorators"),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","@decaf-ts/transactional-decorators","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.decafTsTransactionalDecorators,e.axios);
|
|
2
2
|
//# sourceMappingURL=for-http.cjs.map
|
package/dist/for-http.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-http.cjs","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","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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"}
|
|
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","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","String","stateLock","Lock","ready","listeners","Set","isOpen","es","withStateLock","fn","acquire","Promise","resolve","release","getOpening","opening","setOpening","isReady","setReady","getHeaders","force","info","controller","abort","clear","delete","warn","debug","startListening","pendingOpen","openPromise","completeOpen","failOpen","EventSourcePlus","credentials","connected","reject","self","listen","onResponse","async","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","ensureListening","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","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","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 S,NotFoundError as $,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,J,G,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(J="undefined"!=typeof K&&K)?J:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"sumOf",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,"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){const e=t=>{if("string"!=typeof t)return t;try{return _.deserialize(t)}catch{try{return JSON.parse(t)}catch{return t}}};try{const s="string"==typeof t?JSON.parse(t):t;if(!Array.isArray(s)||3>s.length)return null;const[r,i,n,a]=s;if("string"!=typeof r)return null;let o;return o=Array.isArray(a)?a.map(t=>e(t)):e(a),[r,i+"",n,o]}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)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});else{if(this.opening)return t.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await this.opening;this.opening=(async()=>{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})}})})().finally(()=>{this.opening=void 0}),await this.opening}}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.removeConnectorListener?.(),this.removeConnectorListener=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.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),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)}),S(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($.name)||s.includes("404")?new $(t):s.includes(N.name)||s.includes("409")?new N(t):s.includes(T.name)||s.includes("400")?new T(t):s.includes(C.name)||s.includes("422")?new C(t):s.includes(u.name)?new u(t):s.includes(g.name)?new g(t):s.includes(c.name)?new c(t):s.includes(p.name)?new p(t):s.includes(f.name)?new f(t):s.includes(m.name)?new m(t):s.includes(y.name)?new y(t):s.includes(v.name)?new v(t):s.includes(R.name)?new R(t):new 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 t,Repository as e,PreparedStatementKeys as s,OrderDirection as i,PersistenceKeys as r,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 y,ForbiddenError as m,ConnectionError as w}from"@decaf-ts/core";import{Decoration as v,apply as O,methodMetadata as b,Metadata as E}from"@decaf-ts/decoration";import{OperationKeys as A,InternalError as x,wrapMethodWithContext as S,NotFoundError as $,ConflictError as N,BadRequestError as R,ValidationError as T,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{Lock as k}from"@decaf-ts/transactional-decorators";import{Axios as j}from"axios";var B,U,J,G,H,M,Y;class Q 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,i={offset:1,limit:10},...r){const{offset:n,bookmark:a,limit:o}=i,{log:c,ctxArgs:l}=(await this.logCtx(r,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,...i){const{log:r,ctxArgs:n}=(await this.logCtx(i,s.LIST_BY,!0)).for(this.listBy);return r.verbose(`listing ${L.tableName(this.class)} by ${t} ${e}`),await this.statement(this.listBy.name,t,{direction:e},...n)}async findBy(t,e,...i){const{log:r,ctxArgs:n}=(await this.logCtx(i,s.FIND_BY,!0)).for(this.findBy);return r.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findBy.name,t,e,{},...n)}async findOneBy(t,e,...i){const{log:r,ctxArgs:n}=(await this.logCtx(i,s.FIND_ONE_BY,!0)).for(this.findOneBy);return r.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findOneBy.name,t,e,{},...n)}async find(t,e=i.ASC,...r){const{log:n,ctxArgs:a}=(await this.logCtx(r,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=i.ASC,r={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,r,...o)}async statement(t,...e){const{log:s,ctx:i,ctxArgs:n}=(await this.logCtx(e,r.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,i);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,i)}convertStatementResult(t,e,i){return e?t===s.FIND||t===s.LIST_BY||t===s.FIND_BY?Array.isArray(e)?e.map(t=>this.revertRecord(t,i)):e:t===s.FIND_ONE_BY?this.revertRecord(e,i):t===s.PAGE||t===s.PAGE_BY?this.convertPageResult(e,i):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),i=L.columnName(this.class,s),r=s??i,n=t[i]??t[r];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:i}=s;return this.adapter.request(t,...i)}async countOf(t,...e){const{log:i,ctxArgs:r}=(await this.logCtx(e,s.COUNT_OF,!0)).for(this.countOf);i.verbose(`counting ${L.tableName(this.class)}${t?" by "+t:""}`);const n=t?[t,{}]:[{}];return await this.statement(this.countOf.name,...n,...r)}async maxOf(t,...e){const{log:i,ctxArgs:r}=(await this.logCtx(e,s.MAX_OF,!0)).for(this.maxOf);return i.verbose(`finding max of ${t} in ${L.tableName(this.class)}`),await this.statement(this.maxOf.name,t,{},...r)}async minOf(t,...e){const{log:i,ctxArgs:r}=(await this.logCtx(e,s.MIN_OF,!0)).for(this.minOf);return i.verbose(`finding min of ${t} in ${L.tableName(this.class)}`),await this.statement(this.minOf.name,t,{},...r)}async avgOf(t,...e){const{log:i,ctxArgs:r}=(await this.logCtx(e,s.AVG_OF,!0)).for(this.avgOf);return i.verbose(`calculating avg of ${t} in ${L.tableName(this.class)}`),await this.statement(this.avgOf.name,t,{},...r)}async sumOf(t,...e){const{log:i,ctxArgs:r}=(await this.logCtx(e,s.SUM_OF,!0)).for(this.sumOf);return i.verbose(`calculating sum of ${t} in ${L.tableName(this.class)}`),await this.statement(this.sumOf.name,t,{},...r)}async distinctOf(t,...e){const{log:i,ctxArgs:r}=(await this.logCtx(e,s.DISTINCT_OF,!0)).for(this.distinctOf);return i.verbose(`finding distinct values of ${t} in ${L.tableName(this.class)}`),await this.statement(this.distinctOf.name,t,{},...r)}async groupOf(t,...e){const{log:i,ctxArgs:r}=(await this.logCtx(e,s.GROUP_OF,!0)).for(this.groupOf);return i.verbose(`grouping ${L.tableName(this.class)} by ${t}`),await this.statement(this.groupOf.name,t,{},...r)}}q([t(),D("design:type",Function),D("design:paramtypes",[String,String,void 0]),D("design:returntype",Promise)],Q.prototype,"find",null),q([t(),D("design:type",Function),D("design:paramtypes",[String,String,Object,void 0]),D("design:returntype",Promise)],Q.prototype,"page",null),q([t(),D("design:type",Function),D("design:paramtypes",[Object,void 0]),D("design:returntype",Promise)],Q.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)],Q.prototype,"maxOf",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)],Q.prototype,"minOf",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)],Q.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)],Q.prototype,"sumOf",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)],Q.prototype,"distinctOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(M="undefined"!=typeof K&&K)?M:Object,void 0]),D("design:returntype",Promise)],Q.prototype,"groupOf",null);class V extends Q{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 X 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 W extends n{constructor(t,e,s,i){super(t,e,s,i)}async pagePrepared(t,...i){const r=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 r.statement(...d,...i);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 Z 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 Z(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){const e=t=>{if("string"!=typeof t)return t;try{return _.deserialize(t)}catch{try{return JSON.parse(t)}catch{return t}}};try{const s="string"==typeof t?JSON.parse(t):t;if(!Array.isArray(s)||3>s.length)return null;const[i,r,n,a]=s;if("string"!=typeof i)return null;let o;return o=Array.isArray(a)?a.map(t=>e(t)):e(a),[i,r+"",n,o]}catch{return null}}constructor(t,e){super(),this.url=t,this.headers=e,this.stateLock=new k,this.ready=!1,this.listeners=new Set}isOpen(){return void 0!==this.es}async withStateLock(t){await this.stateLock.acquire();try{return await Promise.resolve(t())}finally{this.stateLock.release()}}async getOpening(){return this.withStateLock(()=>this.opening)}async setOpening(t){await this.withStateLock(()=>{this.opening=t})}async isReady(){return this.withStateLock(()=>this.ready)}async setReady(t){await this.withStateLock(()=>{this.ready=t})}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.setReady(!1),this.setOpening(void 0),this.listeners.clear(),Z.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&&await this.isReady())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});const e=await this.getOpening();if(e)return t.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await e;const s=(async()=>{t.info("Opening EventSource connection to "+this.url);const e=await this.getHeaders();let s,i;this.es=new z(this.url,{...e&&{headers:e},credentials:"include"}),await this.setReady(!1);const r=new Promise((t,e)=>{s=t,i=e}),n=this;this.controller=this.es.listen({onResponse:async()=>{await n.setReady(!0),t.info(`Connected to ${this.url}. Ready to receive events`),s()},onRequestError:({error:e})=>{t.error("Failed to establish EventSource connection",{url:this.url,error:e}),n.setReady(!1),i(e),n.listeners.forEach(t=>t.onError((e?.message??e)+""))},onResponseError:({response:e})=>{const s=e?.status,r=e?.statusText;t.error("Listening failed with HTTP error response",{url:this.url,status:s,statusText:r});const a=Error(`HTTP ${s??"unknown"} ${r??"error"}`);n.setReady(!1),i(a),n.listeners.forEach(t=>t.onError(a))},onMessage:e=>{if("heartbeat"===e.event)return void t.debug("Refresh connection. Heartbeat received.");const s=e&&"object"==typeof e&&"data"in e?e.data:e,i=Z.parseReceivedEvent(s);if(i)for(const e of n.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:s})}}),await r})().finally(()=>{this.setOpening(void 0)});await this.setOpening(s);try{await s}catch(t){throw this.controller=void 0,this.es=void 0,await this.setReady(!1),t}}async ensureListening(){await this.startListening()}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.ensureListening().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 tt extends h{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...t){const{log:e,ctxArgs:s}=(await this.logCtx(t,r.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:i,eventsListenerPath:r}=this.adapter.config;if(!r)throw e.error("Cannot start listening: no eventsListenerPath specified",{protocol:s,host:i}),Error("No eventsListenerPath specified");const n=new URL(r,`${s}://${i}`).toString();e.info("Opening ServerEventConnector for url: "+n),this.connector=Z.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.removeConnectorListener?.(),this.removeConnectorListener=this.connector.addListener({onEvent:async t=>{const[e,s,i,...r]=t,{log:n,ctxArgs:a}=(await this.logCtx(r,s,!0)).for("onEvent");super.updateObservers(e,s,i,...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+""})}}),await this.connector.ensureListening(),this.listening=!0,e.info(`HttpDispatcher is now listening at ${n}.`)}async close(...t){this.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),this.listening=!1}}(t=>{t.PENDING_TASK="x-pending-task",t.CORRELATION_ID="x-correlation-id"})(Y||(Y={}));const et="keepalive";function st(t,e,s,i){const r=i||e.name;t[r]=new Proxy(t[r],{apply:async(t,e,i)=>{let r=t.call(e,...i);return r instanceof Promise&&(r=await r),r=s.call(e,r),r instanceof Promise&&(r=await r),r}})}class it 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 i=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{st(this,t,e=>i.parseResponse.call(i,void 0,t.name,e),t.name)}),S(this,(...t)=>t,this.request,(t,e)=>{const s=i.config.parsers;return s?(s.forEach(s=>s(t,e)),t):t},this.request.name)}async flags(t,e,s){return super.flags(t,e,Object.assign({headers:s.headers??{}},s))}Dispatch(){return new tt}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return V}prepare(t,...e){const{log:s}=this.logCtx(e,this.prepare),i=Object.assign({},t);return t[r.METADATA]&&(s.silly("Passing along persistence metadata for "+t[r.METADATA]),Object.defineProperty(i,r.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[r.METADATA]})),{record:t,id:t[L.pk(t.constructor)]}}revert(t,e,s,...i){const{log:n}=this.logCtx(i,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[r.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${h}`),Object.defineProperty(l,r.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(t){return"string"==typeof t?t:F(L.tableName(t))}toHeaders(t){const e={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(e[Y.CORRELATION_ID]=s)}return{...e,...t.getOrUndefined("headers")||{}}}url(t,e,s){s||e&&!Array.isArray(e)&&(s=e,e=[]),t=this.toTableName(t);const i=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=>i.searchParams.append(t,e.toString())):"object"==typeof e?i.searchParams.append(t,JSON.stringify(e)):void 0!==e&&i.searchParams.append(t,e.toString())}),i.toString()}extractIdArgs(t,e){const s=e.toString();if("string"==typeof t)return[s];const i=L.composed(t,L.pk(t));return i?s.split(i.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:i}=this.logCtx(e,this.raw),r=this.toRequest(t,i);return this.request(r,...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 X(this,t)}Paginator(t,e,s){return new W(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($.name)||s.includes("404")?new $(t):s.includes(N.name)||s.includes("409")?new N(t):s.includes(R.name)||s.includes("400")?new R(t):s.includes(T.name)||s.includes("422")?new T(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(y.name)?new y(t):s.includes(m.name)?new m(t):s.includes(w.name)?new w(t):s.includes(C.name)?new C(t):new x(t)}static decoration(){super.decoration(),v.for(r.QUERY).define({decorator:e=>(s,i,n)=>O(b(E.key(r.QUERY,i),e),t(),(t,e,s)=>{s.value=new Proxy(s.value,{async apply(t,e,s){const r=e,{log:n,ctxArgs:a}=(await r.logCtx(s,A.READ,!0)).for(i);return n.verbose("Running prepared statement "+t.name),n.debug("With args: "+JSON.stringify(s,null,2)),e.statement(t.name,...a)}})})(s,i,n)}).apply()}}it.decoration();const rt="axios",nt=(t,e)=>{if(t.headers&&t.headers[Y.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[Y.PENDING_TASK]),Object.entries(s).forEach(([t,s])=>{s.forEach(s=>e.pushPending(t,s))})}catch(s){e.logger.for(nt).error(`Failed to parse pending tasks header ${t.headers[Y.PENDING_TASK]}: ${s}`)}}};class at extends it{constructor(t,e){super(t,rt,e)}getClient(){return new j({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(t,e){let s,i;t instanceof a?(i=t,s=void 0):(s=t,i=e);const n={};return i&&(n.headers={...n.headers||{},...this.toHeaders(i)}),s&&(n.method="GET",n.url=this.url(s.class,[r.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,i){if(!i.status&&e!==r.STATEMENT)throw new x("this should be impossible");if(i.status>=400)throw this.parseError(i.error||i.status);const n=this.normalizeResponseBody(i);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 r.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,i]of Object.entries(n))e[s]=Array.isArray(i)?i.map(e=>new t(e)):i;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,...i){const{log:r,ctx:n}=this.logCtx(i,this.create);try{const i=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return r.debug(`POSTing to ${i} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:i,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,...i){const{log:r,ctx:n}=this.logCtx(i,this.createAll);try{const e=this.url(t,["bulk"]),i=this.toRequest(n);return r.debug(`POSTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(i)}`),this.request({url:e,method:"POST",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...i},n)}catch(t){throw this.parseError(t)}}async read(t,e,...s){const{log:i,ctx:r}=this.logCtx(s,this.read);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(r);return i.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},r)}catch(t){throw this.parseError(t)}}async readAll(t,e,...s){const{log:i,ctx:r}=this.logCtx(s,this.readAll);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(r);return i.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},r)}catch(t){throw this.parseError(t)}}async update(t,e,s,...i){const{log:r,ctx:n}=this.logCtx(i,this.update);try{const i=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return r.debug(`PUTing to ${i} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:i,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,...i){const{log:r,ctx:n}=this.logCtx(i,this.updateAll);try{const e=this.url(t,["bulk"]),i=this.toRequest(n);return r.debug(`PUTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(i)}`),this.request({url:e,method:"PUT",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...i},n)}catch(t){throw this.parseError(t)}}async delete(t,e,...s){const{log:i,ctx:r}=this.logCtx(s,this.delete);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(r);return i.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},r)}catch(t){throw this.parseError(t)}}async deleteAll(t,e,...s){const{log:i,ctx:r}=this.logCtx(s,this.delete);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(r);return i.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},r)}catch(t){throw this.parseError(t)}}parseError(t,...e){return it.parseError(t,...e)}}at.decoration();const ot="##VERSION##",ct="##PACKAGE##";E.registerLibrary(ct,ot);export{rt as AxiosFlavour,at as AxiosHttpAdapter,Y as DecafHeaders,it as HttpAdapter,W as HttpPaginator,X as HttpStatement,et as KeepAliveOperation,ct as PACKAGE_NAME,Q as RestRepository,V as RestService,Z as ServerEventConnector,nt as TaskResponseParser,ot as VERSION,st as suffixMethod};
|
|
2
2
|
//# sourceMappingURL=for-http.js.map
|
package/dist/for-http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-http.js","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","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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"}
|
|
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","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","String","stateLock","Lock","ready","listeners","Set","isOpen","es","withStateLock","fn","acquire","Promise","resolve","release","getOpening","opening","setOpening","isReady","setReady","getHeaders","force","info","controller","abort","clear","delete","warn","debug","startListening","pendingOpen","openPromise","completeOpen","failOpen","EventSourcePlus","credentials","connected","reject","self","listen","onResponse","async","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","ensureListening","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","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","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/HttpDispatcher.cjs
CHANGED
|
@@ -89,6 +89,8 @@ class HttpDispatcher extends core_1.Dispatch {
|
|
|
89
89
|
});
|
|
90
90
|
},
|
|
91
91
|
});
|
|
92
|
+
// Avoid races where writes happen before the SSE stream finishes connecting.
|
|
93
|
+
await this.connector.ensureListening();
|
|
92
94
|
this.listening = true;
|
|
93
95
|
log.info(`HttpDispatcher is now listening at ${listeningUrl}.`);
|
|
94
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../src/HttpDispatcher.ts"],"names":[],"mappings":";;;AAAA,yCAQwB;AACxB,6CAA4D;AAE5D,2DAAwD;AAExD,MAAa,cAAe,SAAQ,eAEnC;IAFD;;QAMqB,gBAAW,GAAG,KAAK,CAAC;QAC/B,cAAS,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../src/HttpDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,8 @@ export class HttpDispatcher extends Dispatch {
|
|
|
86
86
|
});
|
|
87
87
|
},
|
|
88
88
|
});
|
|
89
|
+
// Avoid races where writes happen before the SSE stream finishes connecting.
|
|
90
|
+
await this.connector.ensureListening();
|
|
89
91
|
this.listening = true;
|
|
90
92
|
log.info(`HttpDispatcher is now listening at ${listeningUrl}.`);
|
|
91
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../../src/HttpDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,EAER,eAAe,GAEhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAe,oBAAoB,EAAE,yBAAgB;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,OAAO,cAAe,SAAQ,QAEnC;IAFD;;QAMqB,gBAAW,GAAG,KAAK,CAAC;QAC/B,cAAS,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../../src/HttpDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,17 @@ 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 readonly stateLock;
|
|
15
16
|
private opening?;
|
|
17
|
+
private ready;
|
|
16
18
|
private listeners;
|
|
17
19
|
constructor(url: string, headers?: ServerEventConnectorHeaders | undefined);
|
|
18
20
|
isOpen(): boolean;
|
|
21
|
+
private withStateLock;
|
|
22
|
+
private getOpening;
|
|
23
|
+
private setOpening;
|
|
24
|
+
private isReady;
|
|
25
|
+
private setReady;
|
|
19
26
|
protected getHeaders(): Promise<ServerEventConnectorHeaders>;
|
|
20
27
|
close(force?: boolean): void;
|
|
21
28
|
/**
|
|
@@ -23,6 +30,11 @@ export declare class ServerEventConnector extends ContextualLoggedClass<Context<
|
|
|
23
30
|
* This method must be called only on the shared singleton instance.
|
|
24
31
|
*/
|
|
25
32
|
private startListening;
|
|
33
|
+
/**
|
|
34
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
35
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
36
|
+
*/
|
|
37
|
+
ensureListening(): Promise<void>;
|
|
26
38
|
addListener(handlers: EventHandlers): () => void;
|
|
27
39
|
removeListener(handlers: EventHandlers): void;
|
|
28
40
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventSourcePlus } from "event-source-plus";
|
|
2
2
|
import { Serialization } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { ContextualLoggedClass } from "@decaf-ts/core";
|
|
4
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
4
5
|
export class ServerEventConnector extends ContextualLoggedClass {
|
|
5
6
|
static { this.cache = new Map(); }
|
|
6
7
|
static get(url) {
|
|
@@ -61,11 +62,38 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
61
62
|
super();
|
|
62
63
|
this.url = url;
|
|
63
64
|
this.headers = headers;
|
|
65
|
+
this.stateLock = new Lock();
|
|
66
|
+
this.ready = false;
|
|
64
67
|
this.listeners = new Set();
|
|
65
68
|
}
|
|
66
69
|
isOpen() {
|
|
67
70
|
return this.es !== undefined;
|
|
68
71
|
}
|
|
72
|
+
async withStateLock(fn) {
|
|
73
|
+
await this.stateLock.acquire();
|
|
74
|
+
try {
|
|
75
|
+
return await Promise.resolve(fn());
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
this.stateLock.release();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async getOpening() {
|
|
82
|
+
return this.withStateLock(() => this.opening);
|
|
83
|
+
}
|
|
84
|
+
async setOpening(opening) {
|
|
85
|
+
await this.withStateLock(() => {
|
|
86
|
+
this.opening = opening;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
async isReady() {
|
|
90
|
+
return this.withStateLock(() => this.ready);
|
|
91
|
+
}
|
|
92
|
+
async setReady(ready) {
|
|
93
|
+
await this.withStateLock(() => {
|
|
94
|
+
this.ready = ready;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
69
97
|
async getHeaders() {
|
|
70
98
|
let headers = this.headers;
|
|
71
99
|
if (typeof this.headers == "function") {
|
|
@@ -91,6 +119,8 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
91
119
|
finally {
|
|
92
120
|
this.controller = undefined;
|
|
93
121
|
this.es = undefined;
|
|
122
|
+
void this.setReady(false);
|
|
123
|
+
void this.setOpening(undefined);
|
|
94
124
|
this.listeners.clear();
|
|
95
125
|
ServerEventConnector.cache.delete(this.url);
|
|
96
126
|
log.info(`EventSource connection ${this.url} closed and removed from pool`);
|
|
@@ -102,36 +132,48 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
102
132
|
*/
|
|
103
133
|
async startListening() {
|
|
104
134
|
const log = this.log.for(this.startListening);
|
|
105
|
-
if (this.es) {
|
|
135
|
+
if (this.es && (await this.isReady())) {
|
|
106
136
|
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 });
|
|
107
137
|
return;
|
|
108
138
|
}
|
|
109
|
-
|
|
139
|
+
const pendingOpen = await this.getOpening();
|
|
140
|
+
if (pendingOpen) {
|
|
110
141
|
log.debug(`Connection open already in progress for ${this.url}`, {
|
|
111
142
|
url: this.url,
|
|
112
143
|
listeners: this.listeners.size,
|
|
113
144
|
});
|
|
114
|
-
await
|
|
145
|
+
await pendingOpen;
|
|
115
146
|
return;
|
|
116
147
|
}
|
|
117
|
-
|
|
148
|
+
const openPromise = (async () => {
|
|
118
149
|
log.info(`Opening EventSource connection to ${this.url}`);
|
|
119
150
|
const headers = await this.getHeaders();
|
|
120
151
|
this.es = new EventSourcePlus(this.url, {
|
|
121
152
|
...(headers && { headers: headers }),
|
|
122
153
|
credentials: "include",
|
|
123
154
|
});
|
|
155
|
+
await this.setReady(false);
|
|
156
|
+
let completeOpen;
|
|
157
|
+
let failOpen;
|
|
158
|
+
const connected = new Promise((resolve, reject) => {
|
|
159
|
+
completeOpen = resolve;
|
|
160
|
+
failOpen = reject;
|
|
161
|
+
});
|
|
124
162
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
125
163
|
const self = this;
|
|
126
164
|
this.controller = this.es.listen({
|
|
127
|
-
onResponse: () => {
|
|
165
|
+
onResponse: async () => {
|
|
166
|
+
await self.setReady(true);
|
|
128
167
|
log.info(`Connected to ${this.url}. Ready to receive events`);
|
|
168
|
+
completeOpen();
|
|
129
169
|
},
|
|
130
170
|
onRequestError: ({ error }) => {
|
|
131
171
|
log.error("Failed to establish EventSource connection", {
|
|
132
172
|
url: this.url,
|
|
133
173
|
error,
|
|
134
174
|
});
|
|
175
|
+
void self.setReady(false);
|
|
176
|
+
failOpen(error);
|
|
135
177
|
self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
|
|
136
178
|
},
|
|
137
179
|
onResponseError: ({ response }) => {
|
|
@@ -143,6 +185,8 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
143
185
|
statusText,
|
|
144
186
|
});
|
|
145
187
|
const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
|
|
188
|
+
void self.setReady(false);
|
|
189
|
+
failOpen(err);
|
|
146
190
|
self.listeners.forEach((handler) => handler.onError(err));
|
|
147
191
|
},
|
|
148
192
|
onMessage: (message) => {
|
|
@@ -171,16 +215,33 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
171
215
|
}
|
|
172
216
|
},
|
|
173
217
|
});
|
|
218
|
+
await connected;
|
|
174
219
|
})().finally(() => {
|
|
175
|
-
this.
|
|
220
|
+
void this.setOpening(undefined);
|
|
176
221
|
});
|
|
177
|
-
await this.
|
|
222
|
+
await this.setOpening(openPromise);
|
|
223
|
+
try {
|
|
224
|
+
await openPromise;
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
this.controller = undefined;
|
|
228
|
+
this.es = undefined;
|
|
229
|
+
await this.setReady(false);
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
235
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
236
|
+
*/
|
|
237
|
+
async ensureListening() {
|
|
238
|
+
await this.startListening();
|
|
178
239
|
}
|
|
179
240
|
addListener(handlers) {
|
|
180
241
|
const log = this.log.for(this.addListener);
|
|
181
242
|
log.info(`Registering listener for connection ${this.url} — ${this.listeners.size} active listener(s)`);
|
|
182
243
|
this.listeners.add(handlers);
|
|
183
|
-
this.
|
|
244
|
+
this.ensureListening().then(() => {
|
|
184
245
|
log.info(`Listener registered for connection ${this.url} — total listener(s): ${this.listeners.size}`);
|
|
185
246
|
});
|
|
186
247
|
return () => this.removeListener(handlers);
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"ServerEventConnector.js","sourceRoot":"","sources":["../../../src/event/ServerEventConnector.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
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.
|
|
25
|
+
export const VERSION = "0.4.4";
|
|
26
26
|
export const PACKAGE_NAME = "@decaf-ts/for-http";
|
|
27
27
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -4,6 +4,7 @@ exports.ServerEventConnector = void 0;
|
|
|
4
4
|
const event_source_plus_1 = require("event-source-plus");
|
|
5
5
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
6
6
|
const core_1 = require("@decaf-ts/core");
|
|
7
|
+
const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
|
|
7
8
|
class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
8
9
|
static { this.cache = new Map(); }
|
|
9
10
|
static get(url) {
|
|
@@ -64,11 +65,38 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
64
65
|
super();
|
|
65
66
|
this.url = url;
|
|
66
67
|
this.headers = headers;
|
|
68
|
+
this.stateLock = new transactional_decorators_1.Lock();
|
|
69
|
+
this.ready = false;
|
|
67
70
|
this.listeners = new Set();
|
|
68
71
|
}
|
|
69
72
|
isOpen() {
|
|
70
73
|
return this.es !== undefined;
|
|
71
74
|
}
|
|
75
|
+
async withStateLock(fn) {
|
|
76
|
+
await this.stateLock.acquire();
|
|
77
|
+
try {
|
|
78
|
+
return await Promise.resolve(fn());
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
this.stateLock.release();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async getOpening() {
|
|
85
|
+
return this.withStateLock(() => this.opening);
|
|
86
|
+
}
|
|
87
|
+
async setOpening(opening) {
|
|
88
|
+
await this.withStateLock(() => {
|
|
89
|
+
this.opening = opening;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async isReady() {
|
|
93
|
+
return this.withStateLock(() => this.ready);
|
|
94
|
+
}
|
|
95
|
+
async setReady(ready) {
|
|
96
|
+
await this.withStateLock(() => {
|
|
97
|
+
this.ready = ready;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
72
100
|
async getHeaders() {
|
|
73
101
|
let headers = this.headers;
|
|
74
102
|
if (typeof this.headers == "function") {
|
|
@@ -94,6 +122,8 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
94
122
|
finally {
|
|
95
123
|
this.controller = undefined;
|
|
96
124
|
this.es = undefined;
|
|
125
|
+
void this.setReady(false);
|
|
126
|
+
void this.setOpening(undefined);
|
|
97
127
|
this.listeners.clear();
|
|
98
128
|
ServerEventConnector.cache.delete(this.url);
|
|
99
129
|
log.info(`EventSource connection ${this.url} closed and removed from pool`);
|
|
@@ -105,36 +135,48 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
105
135
|
*/
|
|
106
136
|
async startListening() {
|
|
107
137
|
const log = this.log.for(this.startListening);
|
|
108
|
-
if (this.es) {
|
|
138
|
+
if (this.es && (await this.isReady())) {
|
|
109
139
|
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 });
|
|
110
140
|
return;
|
|
111
141
|
}
|
|
112
|
-
|
|
142
|
+
const pendingOpen = await this.getOpening();
|
|
143
|
+
if (pendingOpen) {
|
|
113
144
|
log.debug(`Connection open already in progress for ${this.url}`, {
|
|
114
145
|
url: this.url,
|
|
115
146
|
listeners: this.listeners.size,
|
|
116
147
|
});
|
|
117
|
-
await
|
|
148
|
+
await pendingOpen;
|
|
118
149
|
return;
|
|
119
150
|
}
|
|
120
|
-
|
|
151
|
+
const openPromise = (async () => {
|
|
121
152
|
log.info(`Opening EventSource connection to ${this.url}`);
|
|
122
153
|
const headers = await this.getHeaders();
|
|
123
154
|
this.es = new event_source_plus_1.EventSourcePlus(this.url, {
|
|
124
155
|
...(headers && { headers: headers }),
|
|
125
156
|
credentials: "include",
|
|
126
157
|
});
|
|
158
|
+
await this.setReady(false);
|
|
159
|
+
let completeOpen;
|
|
160
|
+
let failOpen;
|
|
161
|
+
const connected = new Promise((resolve, reject) => {
|
|
162
|
+
completeOpen = resolve;
|
|
163
|
+
failOpen = reject;
|
|
164
|
+
});
|
|
127
165
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
128
166
|
const self = this;
|
|
129
167
|
this.controller = this.es.listen({
|
|
130
|
-
onResponse: () => {
|
|
168
|
+
onResponse: async () => {
|
|
169
|
+
await self.setReady(true);
|
|
131
170
|
log.info(`Connected to ${this.url}. Ready to receive events`);
|
|
171
|
+
completeOpen();
|
|
132
172
|
},
|
|
133
173
|
onRequestError: ({ error }) => {
|
|
134
174
|
log.error("Failed to establish EventSource connection", {
|
|
135
175
|
url: this.url,
|
|
136
176
|
error,
|
|
137
177
|
});
|
|
178
|
+
void self.setReady(false);
|
|
179
|
+
failOpen(error);
|
|
138
180
|
self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
|
|
139
181
|
},
|
|
140
182
|
onResponseError: ({ response }) => {
|
|
@@ -146,6 +188,8 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
146
188
|
statusText,
|
|
147
189
|
});
|
|
148
190
|
const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
|
|
191
|
+
void self.setReady(false);
|
|
192
|
+
failOpen(err);
|
|
149
193
|
self.listeners.forEach((handler) => handler.onError(err));
|
|
150
194
|
},
|
|
151
195
|
onMessage: (message) => {
|
|
@@ -174,16 +218,33 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
174
218
|
}
|
|
175
219
|
},
|
|
176
220
|
});
|
|
221
|
+
await connected;
|
|
177
222
|
})().finally(() => {
|
|
178
|
-
this.
|
|
223
|
+
void this.setOpening(undefined);
|
|
179
224
|
});
|
|
180
|
-
await this.
|
|
225
|
+
await this.setOpening(openPromise);
|
|
226
|
+
try {
|
|
227
|
+
await openPromise;
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
this.controller = undefined;
|
|
231
|
+
this.es = undefined;
|
|
232
|
+
await this.setReady(false);
|
|
233
|
+
throw error;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
238
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
239
|
+
*/
|
|
240
|
+
async ensureListening() {
|
|
241
|
+
await this.startListening();
|
|
181
242
|
}
|
|
182
243
|
addListener(handlers) {
|
|
183
244
|
const log = this.log.for(this.addListener);
|
|
184
245
|
log.info(`Registering listener for connection ${this.url} — ${this.listeners.size} active listener(s)`);
|
|
185
246
|
this.listeners.add(handlers);
|
|
186
|
-
this.
|
|
247
|
+
this.ensureListening().then(() => {
|
|
187
248
|
log.info(`Listener registered for connection ${this.url} — total listener(s): ${this.listeners.size}`);
|
|
188
249
|
});
|
|
189
250
|
return () => this.removeListener(handlers);
|
|
@@ -12,10 +12,17 @@ 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 readonly stateLock;
|
|
15
16
|
private opening?;
|
|
17
|
+
private ready;
|
|
16
18
|
private listeners;
|
|
17
19
|
constructor(url: string, headers?: ServerEventConnectorHeaders | undefined);
|
|
18
20
|
isOpen(): boolean;
|
|
21
|
+
private withStateLock;
|
|
22
|
+
private getOpening;
|
|
23
|
+
private setOpening;
|
|
24
|
+
private isReady;
|
|
25
|
+
private setReady;
|
|
19
26
|
protected getHeaders(): Promise<ServerEventConnectorHeaders>;
|
|
20
27
|
close(force?: boolean): void;
|
|
21
28
|
/**
|
|
@@ -23,6 +30,11 @@ export declare class ServerEventConnector extends ContextualLoggedClass<Context<
|
|
|
23
30
|
* This method must be called only on the shared singleton instance.
|
|
24
31
|
*/
|
|
25
32
|
private startListening;
|
|
33
|
+
/**
|
|
34
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
35
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
36
|
+
*/
|
|
37
|
+
ensureListening(): Promise<void>;
|
|
26
38
|
addListener(handlers: EventHandlers): () => void;
|
|
27
39
|
removeListener(handlers: EventHandlers): void;
|
|
28
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerEventConnector.js","sourceRoot":"","sources":["../../src/event/ServerEventConnector.ts"],"names":[],"mappings":";;;AACA,yDAAoD;AACpD,yEAA+D;AAC/D,yCAAgE;
|
|
1
|
+
{"version":3,"file":"ServerEventConnector.js","sourceRoot":"","sources":["../../src/event/ServerEventConnector.ts"],"names":[],"mappings":"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"}
|
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.
|
|
42
|
+
exports.VERSION = "0.4.4";
|
|
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