@decaf-ts/for-http 0.4.3 → 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 +86 -13
- 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 +86 -13
- 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){try{const t="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(t)||3>t.length)return null;const[r,s,n,a]=t;if("string"!=typeof r)return null;let o;return o=Array.isArray(a)?a.map(e=>"string"==typeof e?i.Serialization.deserialize(e):e):"string"==typeof a?i.Serialization.deserialize(a):a,[r,s+"",n,o]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.listeners=new Set}isOpen(){return void 0!==this.es}async getHeaders(){let e=this.headers;return"function"==typeof this.headers&&(e=await Promise.resolve(this.headers())),e||{}}close(e=!1){const t=this.log.for(this.close);if(this.es)if(0>=this.listeners.size||e)try{t.info("Closing EventSource connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),b.cache.delete(this.url),t.info(`EventSource connection ${this.url} closed and removed from pool`)}else t.warn(`Skipping EventSource connection close ${this.url} \u2014 ${this.listeners.size} active listener(s) remaining.`);else t.debug("Skipping EventSource close \u2014 no open connection to "+this.url)}async startListening(){const e=this.log.for(this.startListening);if(this.es)e.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`,{url:this.url,listeners:this.listeners.size});else{if(this.opening)return e.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await this.opening;this.opening=(async()=>{e.info("Opening EventSource connection to "+this.url);const t=await this.getHeaders();this.es=new o.EventSourcePlus(this.url,{...t&&{headers:t},credentials:"include"});const r=this;this.controller=this.es.listen({onResponse:()=>{e.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:t})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:t}),r.listeners.forEach(e=>e.onError((t?.message??t)+""))},onResponseError:({response:t})=>{const s=t?.status,i=t?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:s,statusText:i});const n=Error(`HTTP ${s??"unknown"} ${i??"error"}`);r.listeners.forEach(e=>e.onError(n))},onMessage:t=>{if("heartbeat"===t.event)return void e.debug("Refresh connection. Heartbeat received.");const s=t&&"object"==typeof t&&"data"in t?t.data:t,i=b.parseReceivedEvent(s);if(i)for(const t of r.listeners)try{t.onEvent(i)}catch(t){e.error("Listener handler failed on event",{err:t})}else e.warn("Failed to parse SSE message",{url:this.url,raw:s})}})})().finally(()=>{this.opening=void 0}),await this.opening}}addListener(e){const t=this.log.for(this.addListener);return t.info(`Registering listener for connection ${this.url} \u2014 ${this.listeners.size} active listener(s)`),this.listeners.add(e),this.startListening().then(()=>{t.info(`Listener registered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)}),()=>this.removeListener(e)}removeListener(e){const t=this.log.for(this.removeListener),r=this.listeners.has(e);t.info(`Unregistering listener for connection ${this.url}. Current active listeners: ${this.listeners.size}`,{listenerFound:r}),r&&(this.listeners.delete(e),t.debug(`Listener unregistered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)),0===this.listeners.size&&(t.info(`No listeners remaining. Closing EventSource connection ${this.url}.`,{url:this.url,listeners:this.listeners.size}),this.close())}}class w extends t.Dispatch{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...e){const{log:r,ctxArgs:s}=(await this.logCtx(e,t.PersistenceKeys.INITIALIZATION,!0)).for(this.initialize);this.adapter?(r.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),r.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):r.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...e){const{log:t}=this.logCtx(e,this.startListening);if(!this.initialized||!this.adapter)throw t.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");if(!this.adapter.config.events)return void t.warn("SSe events disabled");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:r,host:i,eventsListenerPath:n}=this.adapter.config;if(!n)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:r,host:i}),Error("No eventsListenerPath specified");const a=new URL(n,`${r}://${i}`).toString();t.info("Opening ServerEventConnector for url: "+a),this.connector=b.open(a,async()=>{if(!this.adapter)throw new s.InternalError("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(e){throw new s.InternalError("Failed to get event headers: "+e)}}),t.debug("ServerEventConnector opened successfully for url: "+a),this.removeConnectorListener?.(),this.removeConnectorListener=this.connector.addListener({onEvent:async e=>{const[t,r,s,...i]=e,{log:n,ctxArgs:a}=(await this.logCtx(i,r,!0)).for("onEvent");super.updateObservers(t,r,s,...a).catch(e=>n.error("ServerEventConnector failed to updateObservers",e))},onError:e=>{t.error("ServerEventConnector failed to dispatch event",{error:e,listeningUrl:a,adapter:this.adapter+""})}}),this.listening=!0,t.info(`HttpDispatcher is now listening at ${a}.`)}async close(...e){this.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),this.listening=!1}}function O(e,t,r,s){const i=s||t.name;e[i]=new Proxy(e[i],{apply:async(e,t,s)=>{let i=e.call(t,...s);return i instanceof Promise&&(i=await i),i=r.call(t,i),i instanceof Promise&&(i=await i),i}})}e.DecafHeaders=void 0,(f=e.DecafHeaders||(e.DecafHeaders={})).PENDING_TASK="x-pending-task",f.CORRELATION_ID="x-correlation-id";class S extends t.Adapter{constructor(e,t,r){super(Object.assign({},e,{headers:void 0===e.headers||e.headers,events:void 0===e.events||e.events}),t,r);const i=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{O(this,e,t=>i.parseResponse.call(i,void 0,e.name,t),e.name)}),s.wrapMethodWithContext(this,(...e)=>e,this.request,(e,t)=>{const r=i.config.parsers;return r?(r.forEach(r=>r(e,t)),e):e},this.request.name)}async flags(e,t,r){return super.flags(e,t,Object.assign({headers:r.headers??{}},r))}Dispatch(){return new w}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return m}prepare(e,...r){const{log:s}=this.logCtx(r,this.prepare),n=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(n,t.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[t.PersistenceKeys.METADATA]})),{record:e,id:e[i.Model.pk(e.constructor)]}}revert(e,r,n,...a){const{log:o}=this.logCtx(a,this.revert),c={},d="string"==typeof r?i.Model.build(c,r):new r(c);o.silly(`Rebuilding model ${d.constructor.name} id ${n}`);const l="string"==typeof r?i.Model.get(r):r;if(!l)throw new s.InternalError("Failed to retrieve model constructor for "+r);const h=new l(e),u=e[t.PersistenceKeys.METADATA];return u&&(o.silly(`Passing along ${this.flavour} persistence metadata for ${d.constructor.name} id ${n}: ${u}`),Object.defineProperty(h,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:u})),h}toTableName(e){return"string"==typeof e?e:a.toKebabCase(i.Model.tableName(e))}toHeaders(t){const r={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(r[e.DecafHeaders.CORRELATION_ID]=s)}return{...r,...t.getOrUndefined("headers")||{}}}url(e,t,r){r||t&&!Array.isArray(t)&&(r=t,t=[]),e=this.toTableName(e);const s=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return r&&Object.entries(r).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>s.searchParams.append(e,t.toString())):"object"==typeof t?s.searchParams.append(e,JSON.stringify(t)):void 0!==t&&s.searchParams.append(e,t.toString())}),s.toString()}extractIdArgs(e,t){const r=t.toString();if("string"==typeof e)return[r];const s=i.Model.composed(e,i.Model.pk(e));return s?r.split(s.separator):[r]}parseResponse(e,r,s){return e&&t.Paginator.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:r,ctx:s}=this.logCtx(t,this.raw),i=this.toRequest(e,s);return this.request(i,...r)}Sequence(e){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new E(this,e)}Paginator(e,t,r){return new v(this,e,t,r)}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...r){const i="string"==typeof e?e:e.message;return i.includes(s.NotFoundError.name)||i.includes("404")?new s.NotFoundError(e):i.includes(s.ConflictError.name)||i.includes("409")?new s.ConflictError(e):i.includes(s.BadRequestError.name)||i.includes("400")?new s.BadRequestError(e):i.includes(s.ValidationError.name)||i.includes("422")?new s.ValidationError(e):i.includes(t.QueryError.name)?new t.QueryError(e):i.includes(t.PagingError.name)?new t.PagingError(e):i.includes(t.UnsupportedError.name)?new t.UnsupportedError(e):i.includes(t.MigrationError.name)?new t.MigrationError(e):i.includes(t.ObserverError.name)?new t.ObserverError(e):i.includes(t.AuthorizationError.name)?new t.AuthorizationError(e):i.includes(t.ForbiddenError.name)?new t.ForbiddenError(e):i.includes(t.ConnectionError.name)?new t.ConnectionError(e):i.includes(s.SerializationError.name)?new s.SerializationError(e):new s.InternalError(e)}static decoration(){super.decoration(),r.Decoration.for(t.PersistenceKeys.QUERY).define({decorator:e=>(i,n,a)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,n),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const i=t,{log:a,ctxArgs:o}=(await i.logCtx(r,s.OperationKeys.READ,!0)).for(n);return a.verbose("Running prepared statement "+e.name),a.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(i,n,a)}).apply()}}S.decoration();const A="axios",P=(t,r)=>{if(t.headers&&t.headers[e.DecafHeaders.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[e.DecafHeaders.PENDING_TASK]),Object.entries(s).forEach(([e,t])=>{t.forEach(t=>r.pushPending(e,t))})}catch(s){r.logger.for(P).error(`Failed to parse pending tasks header ${t.headers[e.DecafHeaders.PENDING_TASK]}: ${s}`)}}};class _ extends S{constructor(e,t){super(e,A,t)}getClient(){return new c.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,r){let s,i;e instanceof t.Context?(i=e,s=void 0):(s=e,i=r);const n={};return i&&(n.headers={...n.headers||{},...this.toHeaders(i)}),s&&(n.method="GET",n.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),n}async request(e,...t){let r={};try{const{ctx:e}=this.logCtx(t,this.request);r=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,r))}parseResponse(e,r,i){if(!i.status&&r!==t.PersistenceKeys.STATEMENT)throw new s.InternalError("this should be impossible");if(i.status>=400)throw this.parseError(i.error||i.status);const n=this.normalizeResponseBody(i);switch(r){case s.BulkCrudOperationKeys.CREATE_ALL:case s.BulkCrudOperationKeys.READ_ALL:case s.BulkCrudOperationKeys.UPDATE_ALL:case s.BulkCrudOperationKeys.DELETE_ALL:case s.OperationKeys.CREATE:case s.OperationKeys.READ:case s.OperationKeys.UPDATE:case s.OperationKeys.DELETE:return n;case t.PreparedStatementKeys.FIND:case t.PreparedStatementKeys.PAGE:case t.PreparedStatementKeys.FIND_BY:case t.PreparedStatementKeys.LIST_BY:case t.PreparedStatementKeys.PAGE_BY:case t.PreparedStatementKeys.FIND_ONE_BY:case t.PersistenceKeys.STATEMENT:return super.parseResponse(e,r,n);case t.PreparedStatementKeys.COUNT_OF:case t.PreparedStatementKeys.MAX_OF:case t.PreparedStatementKeys.MIN_OF:case t.PreparedStatementKeys.AVG_OF:case t.PreparedStatementKeys.SUM_OF:case t.PreparedStatementKeys.DISTINCT_OF:return n;case t.PreparedStatementKeys.GROUP_OF:if(e&&"object"==typeof n&&null!==n){const t={};for(const[r,s]of Object.entries(n))t[r]=Array.isArray(s)?s.map(t=>new e(t)):s;return t}return n;default:return n}}normalizeResponseBody(e){if(!e)return e;const t=void 0!==e.body?e.body:void 0!==e.data?e.data:e;if("string"==typeof t)try{return JSON.parse(t)}catch{return t}return t}async create(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(a);return n.debug(`POSTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"POST",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},a)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(a);return n.debug(`POSTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"POST",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},a)}catch(e){throw this.parseError(e)}}async read(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.read);try{const r=this.url(e,this.extractIdArgs(e,t)),n=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"GET",...n},i)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.readAll);try{const r=this.url(e,["bulk"],{ids:t}),n=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"GET",...n},i)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(a);return n.debug(`PUTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"PUT",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},a)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(a);return n.debug(`PUTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"PUT",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},a)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,this.extractIdArgs(e,t)),n=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"DELETE",...n},i)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,["bulk"],{ids:t}),n=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"DELETE",...n},i)}catch(e){throw this.parseError(e)}}parseError(e,...t){return S.parseError(e,...t)}}_.decoration();const x="##VERSION##",N="##PACKAGE##";r.Metadata.registerLibrary(N,x),e.AxiosFlavour=A,e.AxiosHttpAdapter=_,e.HttpAdapter=S,e.HttpPaginator=v,e.HttpStatement=E,e.KeepAliveOperation="keepalive",e.PACKAGE_NAME=N,e.RestRepository=y,e.RestService=m,e.ServerEventConnector=b,e.TaskResponseParser=P,e.VERSION=x,e.suffixMethod=O},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging"),require("event-source-plus"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging","event-source-plus","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging,e.eventSourcePlus,e.axios);
|
|
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","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","Serialization","String","listeners","Set","isOpen","es","getHeaders","Promise","resolve","force","info","controller","abort","clear","delete","warn","debug","startListening","opening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","removeConnectorListener","operation","updateObservers","catch","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
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 e,Repository as t,PreparedStatementKeys as s,OrderDirection as r,PersistenceKeys as i,Paginator as n,Context as a,Statement as o,UnsupportedError as c,ContextualLoggedClass as l,Dispatch as h,Adapter as d,QueryError as u,PagingError as g,MigrationError as p,ObserverError as f,AuthorizationError as m,ForbiddenError as y,ConnectionError as v}from"@decaf-ts/core";import{Decoration as w,apply as b,methodMetadata as O,Metadata as E}from"@decaf-ts/decoration";import{OperationKeys as A,InternalError as x,wrapMethodWithContext as $,NotFoundError as S,ConflictError as N,BadRequestError as T,ValidationError as C,SerializationError as R,BulkCrudOperationKeys as P}from"@decaf-ts/db-decorators";import{Model as L,Serialization as _,ModelKeys as I}from"@decaf-ts/decorator-validation";import{__decorate as q,__metadata as D}from"tslib";import{toKebabCase as F}from"@decaf-ts/logging";import{EventSourcePlus as z}from"event-source-plus";import{Axios as j}from"axios";var B,k,U,G,J,H,M;class Y extends t{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,s){return this.adapter.url(e,t,s)}async paginateBy(e,t,r={offset:1,limit:10},...i){const{offset:n,bookmark:a,limit:o}=r,{log:c,ctxArgs:l}=(await this.logCtx(i,s.PAGE_BY,!0)).for(this.paginateBy);c.verbose(`paginating ${L.tableName(this.class)} with page size ${o}`);const h={direction:t,limit:o};return a&&(h.bookmark=a),this.statement(this.paginateBy.name,e,n,h,...l)}async listBy(e,t,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${L.tableName(this.class)} by ${e} ${t}`),await this.statement(this.listBy.name,e,{direction:t},...n)}async findBy(e,t,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${L.tableName(this.class)} with ${e} ${t}`),await this.statement(this.findBy.name,e,t,{},...n)}async findOneBy(e,t,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${L.tableName(this.class)} with ${e} ${t}`),await this.statement(this.findOneBy.name,e,t,{},...n)}async find(e,t=r.ASC,...i){const{log:n,ctxArgs:a}=(await this.logCtx(i,s.FIND,!0)).for(this.find);return n.verbose(`finding ${L.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,e,t,...a)}async page(e,t=r.ASC,i={offset:1,limit:10},...n){const{log:a,ctxArgs:o}=(await this.logCtx(n,s.PAGE,!0)).for(this.page);return a.verbose(`paging ${L.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,e,t,i,...o)}async statement(e,...t){const{log:s,ctx:r,ctxArgs:n}=(await this.logCtx(t,i.STATEMENT,!0)).for(this.statement),a=n.slice(0,-1),o=a[a.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:a.pop(),l={class:this.class,args:a,method:e,params:c},h=this.adapter.toRequest(l,r);s.verbose("Executing prepared statement "+e);const d=await this.request(h,...n),u=this.adapter.parseResponse(this.class,e,d);return this.convertStatementResult(e,u,r)}convertStatementResult(e,t,r){return t?e===s.FIND||e===s.LIST_BY||e===s.FIND_BY?Array.isArray(t)?t.map(e=>this.revertRecord(e,r)):t:e===s.FIND_ONE_BY?this.revertRecord(t,r):e===s.PAGE||e===s.PAGE_BY?this.convertPageResult(t,r):t:t}convertPageResult(e,t){if(!e)return e;let s=e;if("string"==typeof s)try{s=n.deserialize(s)}catch{return e}return n.isSerializedPage(s)?{...s,data:s.data.map(e=>this.revertRecord(e,t))}:e}revertRecord(e,t){if(!e)return e;if(e instanceof this.class)return e;const s=L.pk(this.class),r=L.columnName(this.class,s),i=s??r,n=e[r]??e[i];if(void 0!==n)try{return this.adapter.revert(e,this.class,n,void 0,t)}catch{}return Object.assign(new this.class,e)}async request(e,...t){let s;s=t.length&&t[t.length-1]instanceof a?this.logCtx(t,this.request):(await this.logCtx(t,A.READ,!0)).for(this.request);const{ctxArgs:r}=s;return this.adapter.request(e,...r)}async countOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.COUNT_OF,!0)).for(this.countOf);r.verbose(`counting ${L.tableName(this.class)}${e?" by "+e:""}`);const n=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.MAX_OF,!0)).for(this.maxOf);return r.verbose(`finding max of ${e} in ${L.tableName(this.class)}`),await this.statement(this.maxOf.name,e,{},...i)}async minOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.MIN_OF,!0)).for(this.minOf);return r.verbose(`finding min of ${e} in ${L.tableName(this.class)}`),await this.statement(this.minOf.name,e,{},...i)}async avgOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.AVG_OF,!0)).for(this.avgOf);return r.verbose(`calculating avg of ${e} in ${L.tableName(this.class)}`),await this.statement(this.avgOf.name,e,{},...i)}async sumOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.SUM_OF,!0)).for(this.sumOf);return r.verbose(`calculating sum of ${e} in ${L.tableName(this.class)}`),await this.statement(this.sumOf.name,e,{},...i)}async distinctOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.DISTINCT_OF,!0)).for(this.distinctOf);return r.verbose(`finding distinct values of ${e} in ${L.tableName(this.class)}`),await this.statement(this.distinctOf.name,e,{},...i)}async groupOf(e,...t){const{log:r,ctxArgs:i}=(await this.logCtx(t,s.GROUP_OF,!0)).for(this.groupOf);return r.verbose(`grouping ${L.tableName(this.class)} by ${e}`),await this.statement(this.groupOf.name,e,{},...i)}}q([e(),D("design:type",Function),D("design:paramtypes",[String,String,void 0]),D("design:returntype",Promise)],Y.prototype,"find",null),q([e(),D("design:type",Function),D("design:paramtypes",[String,String,Object,void 0]),D("design:returntype",Promise)],Y.prototype,"page",null),q([e(),D("design:type",Function),D("design:paramtypes",[Object,void 0]),D("design:returntype",Promise)],Y.prototype,"countOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(B="undefined"!=typeof K&&K)?B:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"maxOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(k="undefined"!=typeof K&&K)?k:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"minOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(U="undefined"!=typeof K&&K)?U:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"avgOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(G="undefined"!=typeof K&&K)?G:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"sumOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(J="undefined"!=typeof K&&K)?J:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"distinctOf",null),q([e(),D("design:type",Function),D("design:paramtypes",["function"==typeof(H="undefined"!=typeof K&&K)?H:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"groupOf",null);class Q extends Y{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return L.tableName(this.class)+" REST service"}}class V extends o{constructor(e,t){super(e,t)}build(){throw new c("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(e,...t){throw new c("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class X extends n{constructor(e,t,s,r){super(e,t,s,r)}async pagePrepared(e,...r){const i=t.forModel(this.clazz,this.adapter.alias),n=this.query,{method:a,args:o,params:l}=n,h=RegExp(`^${s.FIND_BY}|${s.LIST_BY}`,"gi");if(!a.match(h))throw new c(`Method ${a} is not supported for pagination`);h.lastIndex=0;const d=[a.replace(h,s.PAGE_BY),...o],u={direction:l.direction,limit:this.size,offset:e,bookmark:this._bookmark};d.push(u);const g=await i.statement(...d,...r);return this.apply(g)}prepare(e){throw new c("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(e=1,...t){return super.page(e,...t)}}class W extends l{static{this.cache=new Map}static get(e){if(this.cache.has(e))return this.cache.get(e);throw Error(`Server event connector not found for URL '${e}'. Did you forget to call open()?`)}static open(e,t){if(this.cache.has(e))return this.cache.get(e);const s=new W(e,t);return this.cache.set(e,s),this.cache.get(e)}static close(e){this.cache.has(e)&&this.cache.get(e).close()}static parseReceivedEvent(e){try{const t="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(t)||3>t.length)return null;const[s,r,i,n]=t;if("string"!=typeof s)return null;let a;return a=Array.isArray(n)?n.map(e=>"string"==typeof e?_.deserialize(e):e):"string"==typeof n?_.deserialize(n):n,[s,r+"",i,a]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.listeners=new Set}isOpen(){return void 0!==this.es}async getHeaders(){let e=this.headers;return"function"==typeof this.headers&&(e=await Promise.resolve(this.headers())),e||{}}close(e=!1){const t=this.log.for(this.close);if(this.es)if(0>=this.listeners.size||e)try{t.info("Closing EventSource connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),W.cache.delete(this.url),t.info(`EventSource connection ${this.url} closed and removed from pool`)}else t.warn(`Skipping EventSource connection close ${this.url} \u2014 ${this.listeners.size} active listener(s) remaining.`);else t.debug("Skipping EventSource close \u2014 no open connection to "+this.url)}async startListening(){const e=this.log.for(this.startListening);if(this.es)e.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`,{url:this.url,listeners:this.listeners.size});else{if(this.opening)return e.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await this.opening;this.opening=(async()=>{e.info("Opening EventSource connection to "+this.url);const t=await this.getHeaders();this.es=new z(this.url,{...t&&{headers:t},credentials:"include"});const s=this;this.controller=this.es.listen({onResponse:()=>{e.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:t})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:t}),s.listeners.forEach(e=>e.onError((t?.message??t)+""))},onResponseError:({response:t})=>{const r=t?.status,i=t?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:r,statusText:i});const n=Error(`HTTP ${r??"unknown"} ${i??"error"}`);s.listeners.forEach(e=>e.onError(n))},onMessage:t=>{if("heartbeat"===t.event)return void e.debug("Refresh connection. Heartbeat received.");const r=t&&"object"==typeof t&&"data"in t?t.data:t,i=W.parseReceivedEvent(r);if(i)for(const t of s.listeners)try{t.onEvent(i)}catch(t){e.error("Listener handler failed on event",{err:t})}else e.warn("Failed to parse SSE message",{url:this.url,raw:r})}})})().finally(()=>{this.opening=void 0}),await this.opening}}addListener(e){const t=this.log.for(this.addListener);return t.info(`Registering listener for connection ${this.url} \u2014 ${this.listeners.size} active listener(s)`),this.listeners.add(e),this.startListening().then(()=>{t.info(`Listener registered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)}),()=>this.removeListener(e)}removeListener(e){const t=this.log.for(this.removeListener),s=this.listeners.has(e);t.info(`Unregistering listener for connection ${this.url}. Current active listeners: ${this.listeners.size}`,{listenerFound:s}),s&&(this.listeners.delete(e),t.debug(`Listener unregistered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)),0===this.listeners.size&&(t.info(`No listeners remaining. Closing EventSource connection ${this.url}.`,{url:this.url,listeners:this.listeners.size}),this.close())}}class Z extends h{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...e){const{log:t,ctxArgs:s}=(await this.logCtx(e,i.INITIALIZATION,!0)).for(this.initialize);this.adapter?(t.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),t.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):t.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...e){const{log:t}=this.logCtx(e,this.startListening);if(!this.initialized||!this.adapter)throw t.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");if(!this.adapter.config.events)return void t.warn("SSe events disabled");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:s,host:r,eventsListenerPath:i}=this.adapter.config;if(!i)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:s,host:r}),Error("No eventsListenerPath specified");const n=new URL(i,`${s}://${r}`).toString();t.info("Opening ServerEventConnector for url: "+n),this.connector=W.open(n,async()=>{if(!this.adapter)throw new x("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(e){throw new x("Failed to get event headers: "+e)}}),t.debug("ServerEventConnector opened successfully for url: "+n),this.removeConnectorListener?.(),this.removeConnectorListener=this.connector.addListener({onEvent:async e=>{const[t,s,r,...i]=e,{log:n,ctxArgs:a}=(await this.logCtx(i,s,!0)).for("onEvent");super.updateObservers(t,s,r,...a).catch(e=>n.error("ServerEventConnector failed to updateObservers",e))},onError:e=>{t.error("ServerEventConnector failed to dispatch event",{error:e,listeningUrl:n,adapter:this.adapter+""})}}),this.listening=!0,t.info(`HttpDispatcher is now listening at ${n}.`)}async close(...e){this.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),this.listening=!1}}(e=>{e.PENDING_TASK="x-pending-task",e.CORRELATION_ID="x-correlation-id"})(M||(M={}));const ee="keepalive";function te(e,t,s,r){const i=r||t.name;e[i]=new Proxy(e[i],{apply:async(e,t,r)=>{let i=e.call(t,...r);return i instanceof Promise&&(i=await i),i=s.call(t,i),i instanceof Promise&&(i=await i),i}})}class se extends d{constructor(e,t,s){super(Object.assign({},e,{headers:void 0===e.headers||e.headers,events:void 0===e.events||e.events}),t,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{te(this,e,t=>r.parseResponse.call(r,void 0,e.name,t),e.name)}),$(this,(...e)=>e,this.request,(e,t)=>{const s=r.config.parsers;return s?(s.forEach(s=>s(e,t)),e):e},this.request.name)}async flags(e,t,s){return super.flags(e,t,Object.assign({headers:s.headers??{}},s))}Dispatch(){return new Z}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return Q}prepare(e,...t){const{log:s}=this.logCtx(t,this.prepare),r=Object.assign({},e);return e[i.METADATA]&&(s.silly("Passing along persistence metadata for "+e[i.METADATA]),Object.defineProperty(r,i.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[i.METADATA]})),{record:e,id:e[L.pk(e.constructor)]}}revert(e,t,s,...r){const{log:n}=this.logCtx(r,this.revert),a={},o="string"==typeof t?L.build(a,t):new t(a);n.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof t?L.get(t):t;if(!c)throw new x("Failed to retrieve model constructor for "+t);const l=new c(e),h=e[i.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${h}`),Object.defineProperty(l,i.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(e){return"string"==typeof e?e:F(L.tableName(e))}toHeaders(e){const t={};if(this.config.headers){const s=e.getOrUndefined("correlationId");s&&(t[M.CORRELATION_ID]=s)}return{...t,...e.getOrUndefined("headers")||{}}}url(e,t,s){s||t&&!Array.isArray(t)&&(s=t,t=[]),e=this.toTableName(e);const r=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return s&&Object.entries(s).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>r.searchParams.append(e,t.toString())):"object"==typeof t?r.searchParams.append(e,JSON.stringify(t)):void 0!==t&&r.searchParams.append(e,t.toString())}),r.toString()}extractIdArgs(e,t){const s=t.toString();if("string"==typeof e)return[s];const r=L.composed(e,L.pk(e));return r?s.split(r.separator):[s]}parseResponse(e,t,s){return e&&n.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:s,ctx:r}=this.logCtx(t,this.raw),i=this.toRequest(e,r);return this.request(i,...s)}Sequence(e){return Promise.reject(new c("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new V(this,e)}Paginator(e,t,s){return new X(this,e,t,s)}parseCondition(e){throw new c("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...t){const s="string"==typeof e?e:e.message;return s.includes(S.name)||s.includes("404")?new S(e):s.includes(N.name)||s.includes("409")?new N(e):s.includes(T.name)||s.includes("400")?new T(e):s.includes(C.name)||s.includes("422")?new C(e):s.includes(u.name)?new u(e):s.includes(g.name)?new g(e):s.includes(c.name)?new c(e):s.includes(p.name)?new p(e):s.includes(f.name)?new f(e):s.includes(m.name)?new m(e):s.includes(y.name)?new y(e):s.includes(v.name)?new v(e):s.includes(R.name)?new R(e):new x(e)}static decoration(){super.decoration(),w.for(i.QUERY).define({decorator:t=>(s,r,n)=>b(O(E.key(i.QUERY,r),t),e(),(e,t,s)=>{s.value=new Proxy(s.value,{async apply(e,t,s){const i=t,{log:n,ctxArgs:a}=(await i.logCtx(s,A.READ,!0)).for(r);return n.verbose("Running prepared statement "+e.name),n.debug("With args: "+JSON.stringify(s,null,2)),t.statement(e.name,...a)}})})(s,r,n)}).apply()}}se.decoration();const re="axios",ie=(e,t)=>{if(e.headers&&e.headers[M.PENDING_TASK]){let s;try{s=JSON.parse(e.headers[M.PENDING_TASK]),Object.entries(s).forEach(([e,s])=>{s.forEach(s=>t.pushPending(e,s))})}catch(s){t.logger.for(ie).error(`Failed to parse pending tasks header ${e.headers[M.PENDING_TASK]}: ${s}`)}}};class ne extends se{constructor(e,t){super(e,re,t)}getClient(){return new j({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,t){let s,r;e instanceof a?(r=e,s=void 0):(s=e,r=t);const n={};return r&&(n.headers={...n.headers||{},...this.toHeaders(r)}),s&&(n.method="GET",n.url=this.url(s.class,[i.STATEMENT,s.method,...s.args||[]],s.params)),n}async request(e,...t){let s={};try{const{ctx:e}=this.logCtx(t,this.request);s=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,s))}parseResponse(e,t,r){if(!r.status&&t!==i.STATEMENT)throw new x("this should be impossible");if(r.status>=400)throw this.parseError(r.error||r.status);const n=this.normalizeResponseBody(r);switch(t){case P.CREATE_ALL:case P.READ_ALL:case P.UPDATE_ALL:case P.DELETE_ALL:case A.CREATE:case A.READ:case A.UPDATE:case A.DELETE:return n;case s.FIND:case s.PAGE:case s.FIND_BY:case s.LIST_BY:case s.PAGE_BY:case s.FIND_ONE_BY:case i.STATEMENT:return super.parseResponse(e,t,n);case s.COUNT_OF:case s.MAX_OF:case s.MIN_OF:case s.AVG_OF:case s.SUM_OF:case s.DISTINCT_OF:return n;case s.GROUP_OF:if(e&&"object"==typeof n&&null!==n){const t={};for(const[s,r]of Object.entries(n))t[s]=Array.isArray(r)?r.map(t=>new e(t)):r;return t}return n;default:return n}}normalizeResponseBody(e){if(!e)return e;const t=void 0!==e.body?e.body:void 0!==e.data?e.data:e;if("string"==typeof t)try{return JSON.parse(t)}catch{return t}return t}async create(e,t,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.create);try{const r=this.url(e,this.extractIdArgs(e,t)),a=this.toRequest(n);return i.debug(`POSTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"POST",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:e.name})),...a},n)}catch(e){throw this.parseError(e)}}async createAll(e,t,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.createAll);try{const t=this.url(e,["bulk"]),r=this.toRequest(n);return i.debug(`POSTing to ${t} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:t,method:"POST",data:JSON.stringify(s.map(t=>Object.assign({},t,{[I.ANCHOR]:e.name}))),...r},n)}catch(e){throw this.parseError(e)}}async read(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.read);try{const s=this.url(e,this.extractIdArgs(e,t)),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(e){throw this.parseError(e)}}async readAll(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.readAll);try{const s=this.url(e,["bulk"],{ids:t}),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(e){throw this.parseError(e)}}async update(e,t,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.update);try{const r=this.url(e,this.extractIdArgs(e,t)),a=this.toRequest(n);return i.debug(`PUTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"PUT",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:e.name})),...a},n)}catch(e){throw this.parseError(e)}}async updateAll(e,t,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.updateAll);try{const t=this.url(e,["bulk"]),r=this.toRequest(n);return i.debug(`PUTing to ${t} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:t,method:"PUT",data:JSON.stringify(s.map(t=>Object.assign({},t,{[I.ANCHOR]:e.name}))),...r},n)}catch(e){throw this.parseError(e)}}async delete(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(e,this.extractIdArgs(e,t)),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(e,["bulk"],{ids:t}),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(e){throw this.parseError(e)}}parseError(e,...t){return se.parseError(e,...t)}}ne.decoration();const ae="##VERSION##",oe="##PACKAGE##";E.registerLibrary(oe,ae);export{re as AxiosFlavour,ne as AxiosHttpAdapter,M as DecafHeaders,se as HttpAdapter,X as HttpPaginator,V as HttpStatement,ee as KeepAliveOperation,oe as PACKAGE_NAME,Y as RestRepository,Q as RestService,W as ServerEventConnector,ie as TaskResponseParser,ae as VERSION,te as suffixMethod};
|
|
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","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","Serialization","String","listeners","Set","isOpen","es","getHeaders","Promise","resolve","force","info","controller","abort","clear","delete","warn","debug","startListening","opening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","removeConnectorListener","operation","updateObservers","catch","KeepAliveOperation","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
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) {
|
|
@@ -22,6 +23,21 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
static parseReceivedEvent(raw) {
|
|
26
|
+
const deserializePayload = (value) => {
|
|
27
|
+
if (typeof value !== "string")
|
|
28
|
+
return value;
|
|
29
|
+
try {
|
|
30
|
+
return Serialization.deserialize(value);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
try {
|
|
34
|
+
return JSON.parse(value);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
25
41
|
try {
|
|
26
42
|
const data = typeof raw === "string" ? JSON.parse(raw) : raw;
|
|
27
43
|
if (!Array.isArray(data) || data.length < 3)
|
|
@@ -31,13 +47,10 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
31
47
|
return null;
|
|
32
48
|
let payload;
|
|
33
49
|
if (Array.isArray(rawPayload)) {
|
|
34
|
-
payload = rawPayload.map((item) =>
|
|
50
|
+
payload = rawPayload.map((item) => deserializePayload(item));
|
|
35
51
|
}
|
|
36
52
|
else {
|
|
37
|
-
payload =
|
|
38
|
-
typeof rawPayload === "string"
|
|
39
|
-
? Serialization.deserialize(rawPayload)
|
|
40
|
-
: rawPayload;
|
|
53
|
+
payload = deserializePayload(rawPayload);
|
|
41
54
|
}
|
|
42
55
|
return [eventName, String(operationKey), objectId, payload];
|
|
43
56
|
}
|
|
@@ -49,11 +62,38 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
49
62
|
super();
|
|
50
63
|
this.url = url;
|
|
51
64
|
this.headers = headers;
|
|
65
|
+
this.stateLock = new Lock();
|
|
66
|
+
this.ready = false;
|
|
52
67
|
this.listeners = new Set();
|
|
53
68
|
}
|
|
54
69
|
isOpen() {
|
|
55
70
|
return this.es !== undefined;
|
|
56
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
|
+
}
|
|
57
97
|
async getHeaders() {
|
|
58
98
|
let headers = this.headers;
|
|
59
99
|
if (typeof this.headers == "function") {
|
|
@@ -79,6 +119,8 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
79
119
|
finally {
|
|
80
120
|
this.controller = undefined;
|
|
81
121
|
this.es = undefined;
|
|
122
|
+
void this.setReady(false);
|
|
123
|
+
void this.setOpening(undefined);
|
|
82
124
|
this.listeners.clear();
|
|
83
125
|
ServerEventConnector.cache.delete(this.url);
|
|
84
126
|
log.info(`EventSource connection ${this.url} closed and removed from pool`);
|
|
@@ -90,36 +132,48 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
90
132
|
*/
|
|
91
133
|
async startListening() {
|
|
92
134
|
const log = this.log.for(this.startListening);
|
|
93
|
-
if (this.es) {
|
|
135
|
+
if (this.es && (await this.isReady())) {
|
|
94
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 });
|
|
95
137
|
return;
|
|
96
138
|
}
|
|
97
|
-
|
|
139
|
+
const pendingOpen = await this.getOpening();
|
|
140
|
+
if (pendingOpen) {
|
|
98
141
|
log.debug(`Connection open already in progress for ${this.url}`, {
|
|
99
142
|
url: this.url,
|
|
100
143
|
listeners: this.listeners.size,
|
|
101
144
|
});
|
|
102
|
-
await
|
|
145
|
+
await pendingOpen;
|
|
103
146
|
return;
|
|
104
147
|
}
|
|
105
|
-
|
|
148
|
+
const openPromise = (async () => {
|
|
106
149
|
log.info(`Opening EventSource connection to ${this.url}`);
|
|
107
150
|
const headers = await this.getHeaders();
|
|
108
151
|
this.es = new EventSourcePlus(this.url, {
|
|
109
152
|
...(headers && { headers: headers }),
|
|
110
153
|
credentials: "include",
|
|
111
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
|
+
});
|
|
112
162
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
113
163
|
const self = this;
|
|
114
164
|
this.controller = this.es.listen({
|
|
115
|
-
onResponse: () => {
|
|
165
|
+
onResponse: async () => {
|
|
166
|
+
await self.setReady(true);
|
|
116
167
|
log.info(`Connected to ${this.url}. Ready to receive events`);
|
|
168
|
+
completeOpen();
|
|
117
169
|
},
|
|
118
170
|
onRequestError: ({ error }) => {
|
|
119
171
|
log.error("Failed to establish EventSource connection", {
|
|
120
172
|
url: this.url,
|
|
121
173
|
error,
|
|
122
174
|
});
|
|
175
|
+
void self.setReady(false);
|
|
176
|
+
failOpen(error);
|
|
123
177
|
self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
|
|
124
178
|
},
|
|
125
179
|
onResponseError: ({ response }) => {
|
|
@@ -131,6 +185,8 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
131
185
|
statusText,
|
|
132
186
|
});
|
|
133
187
|
const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
|
|
188
|
+
void self.setReady(false);
|
|
189
|
+
failOpen(err);
|
|
134
190
|
self.listeners.forEach((handler) => handler.onError(err));
|
|
135
191
|
},
|
|
136
192
|
onMessage: (message) => {
|
|
@@ -159,16 +215,33 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
159
215
|
}
|
|
160
216
|
},
|
|
161
217
|
});
|
|
218
|
+
await connected;
|
|
162
219
|
})().finally(() => {
|
|
163
|
-
this.
|
|
220
|
+
void this.setOpening(undefined);
|
|
164
221
|
});
|
|
165
|
-
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();
|
|
166
239
|
}
|
|
167
240
|
addListener(handlers) {
|
|
168
241
|
const log = this.log.for(this.addListener);
|
|
169
242
|
log.info(`Registering listener for connection ${this.url} — ${this.listeners.size} active listener(s)`);
|
|
170
243
|
this.listeners.add(handlers);
|
|
171
|
-
this.
|
|
244
|
+
this.ensureListening().then(() => {
|
|
172
245
|
log.info(`Listener registered for connection ${this.url} — total listener(s): ${this.listeners.size}`);
|
|
173
246
|
});
|
|
174
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) {
|
|
@@ -25,6 +26,21 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
static parseReceivedEvent(raw) {
|
|
29
|
+
const deserializePayload = (value) => {
|
|
30
|
+
if (typeof value !== "string")
|
|
31
|
+
return value;
|
|
32
|
+
try {
|
|
33
|
+
return decorator_validation_1.Serialization.deserialize(value);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
try {
|
|
37
|
+
return JSON.parse(value);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
28
44
|
try {
|
|
29
45
|
const data = typeof raw === "string" ? JSON.parse(raw) : raw;
|
|
30
46
|
if (!Array.isArray(data) || data.length < 3)
|
|
@@ -34,13 +50,10 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
34
50
|
return null;
|
|
35
51
|
let payload;
|
|
36
52
|
if (Array.isArray(rawPayload)) {
|
|
37
|
-
payload = rawPayload.map((item) =>
|
|
53
|
+
payload = rawPayload.map((item) => deserializePayload(item));
|
|
38
54
|
}
|
|
39
55
|
else {
|
|
40
|
-
payload =
|
|
41
|
-
typeof rawPayload === "string"
|
|
42
|
-
? decorator_validation_1.Serialization.deserialize(rawPayload)
|
|
43
|
-
: rawPayload;
|
|
56
|
+
payload = deserializePayload(rawPayload);
|
|
44
57
|
}
|
|
45
58
|
return [eventName, String(operationKey), objectId, payload];
|
|
46
59
|
}
|
|
@@ -52,11 +65,38 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
52
65
|
super();
|
|
53
66
|
this.url = url;
|
|
54
67
|
this.headers = headers;
|
|
68
|
+
this.stateLock = new transactional_decorators_1.Lock();
|
|
69
|
+
this.ready = false;
|
|
55
70
|
this.listeners = new Set();
|
|
56
71
|
}
|
|
57
72
|
isOpen() {
|
|
58
73
|
return this.es !== undefined;
|
|
59
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
|
+
}
|
|
60
100
|
async getHeaders() {
|
|
61
101
|
let headers = this.headers;
|
|
62
102
|
if (typeof this.headers == "function") {
|
|
@@ -82,6 +122,8 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
82
122
|
finally {
|
|
83
123
|
this.controller = undefined;
|
|
84
124
|
this.es = undefined;
|
|
125
|
+
void this.setReady(false);
|
|
126
|
+
void this.setOpening(undefined);
|
|
85
127
|
this.listeners.clear();
|
|
86
128
|
ServerEventConnector.cache.delete(this.url);
|
|
87
129
|
log.info(`EventSource connection ${this.url} closed and removed from pool`);
|
|
@@ -93,36 +135,48 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
93
135
|
*/
|
|
94
136
|
async startListening() {
|
|
95
137
|
const log = this.log.for(this.startListening);
|
|
96
|
-
if (this.es) {
|
|
138
|
+
if (this.es && (await this.isReady())) {
|
|
97
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 });
|
|
98
140
|
return;
|
|
99
141
|
}
|
|
100
|
-
|
|
142
|
+
const pendingOpen = await this.getOpening();
|
|
143
|
+
if (pendingOpen) {
|
|
101
144
|
log.debug(`Connection open already in progress for ${this.url}`, {
|
|
102
145
|
url: this.url,
|
|
103
146
|
listeners: this.listeners.size,
|
|
104
147
|
});
|
|
105
|
-
await
|
|
148
|
+
await pendingOpen;
|
|
106
149
|
return;
|
|
107
150
|
}
|
|
108
|
-
|
|
151
|
+
const openPromise = (async () => {
|
|
109
152
|
log.info(`Opening EventSource connection to ${this.url}`);
|
|
110
153
|
const headers = await this.getHeaders();
|
|
111
154
|
this.es = new event_source_plus_1.EventSourcePlus(this.url, {
|
|
112
155
|
...(headers && { headers: headers }),
|
|
113
156
|
credentials: "include",
|
|
114
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
|
+
});
|
|
115
165
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
116
166
|
const self = this;
|
|
117
167
|
this.controller = this.es.listen({
|
|
118
|
-
onResponse: () => {
|
|
168
|
+
onResponse: async () => {
|
|
169
|
+
await self.setReady(true);
|
|
119
170
|
log.info(`Connected to ${this.url}. Ready to receive events`);
|
|
171
|
+
completeOpen();
|
|
120
172
|
},
|
|
121
173
|
onRequestError: ({ error }) => {
|
|
122
174
|
log.error("Failed to establish EventSource connection", {
|
|
123
175
|
url: this.url,
|
|
124
176
|
error,
|
|
125
177
|
});
|
|
178
|
+
void self.setReady(false);
|
|
179
|
+
failOpen(error);
|
|
126
180
|
self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
|
|
127
181
|
},
|
|
128
182
|
onResponseError: ({ response }) => {
|
|
@@ -134,6 +188,8 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
134
188
|
statusText,
|
|
135
189
|
});
|
|
136
190
|
const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
|
|
191
|
+
void self.setReady(false);
|
|
192
|
+
failOpen(err);
|
|
137
193
|
self.listeners.forEach((handler) => handler.onError(err));
|
|
138
194
|
},
|
|
139
195
|
onMessage: (message) => {
|
|
@@ -162,16 +218,33 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
162
218
|
}
|
|
163
219
|
},
|
|
164
220
|
});
|
|
221
|
+
await connected;
|
|
165
222
|
})().finally(() => {
|
|
166
|
-
this.
|
|
223
|
+
void this.setOpening(undefined);
|
|
167
224
|
});
|
|
168
|
-
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();
|
|
169
242
|
}
|
|
170
243
|
addListener(handlers) {
|
|
171
244
|
const log = this.log.for(this.addListener);
|
|
172
245
|
log.info(`Registering listener for connection ${this.url} — ${this.listeners.size} active listener(s)`);
|
|
173
246
|
this.listeners.add(handlers);
|
|
174
|
-
this.
|
|
247
|
+
this.ensureListening().then(() => {
|
|
175
248
|
log.info(`Listener registered for connection ${this.url} — total listener(s): ${this.listeners.size}`);
|
|
176
249
|
});
|
|
177
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