@decaf-ts/for-http 0.4.4 → 0.4.6
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 +11 -0
- package/lib/esm/event/ServerEventConnector.js +89 -12
- 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 +89 -12
- package/lib/event/ServerEventConnector.d.ts +11 -0
- package/lib/event/ServerEventConnector.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ A lightweight HTTP adapter layer for decaf-ts that enables CRUD-style repositori
|
|
|
29
29
|
|
|
30
30
|
Documentation available [here](https://decaf-ts.github.io/for-http/)
|
|
31
31
|
|
|
32
|
-
Minimal size: 6.
|
|
32
|
+
Minimal size: 6.8 KB kb gzipped
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
# decaf-ts/for-http — Detailed Description
|
package/dist/for-http.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,s,i,n,a,o,c){"use strict";var d,l,h,u,p,g,f;class y extends t.Repository{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,r){return this.adapter.url(e,t,r)}async paginateBy(e,r,s={offset:1,limit:10},...n){const{offset:a,bookmark:o,limit:c}=s,{log:d,ctxArgs:l}=(await this.logCtx(n,t.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);d.verbose(`paginating ${i.Model.tableName(this.class)} with page size ${c}`);const h={direction:r,limit:c};return o&&(h.bookmark=o),this.statement(this.paginateBy.name,e,a,h,...l)}async listBy(e,r,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return n.verbose(`listing ${i.Model.tableName(this.class)} by ${e} ${r}`),await this.statement(this.listBy.name,e,{direction:r},...a)}async findBy(e,r,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return n.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findBy.name,e,r,{},...a)}async findOneBy(e,r,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return n.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findOneBy.name,e,r,{},...a)}async find(e,r=t.OrderDirection.ASC,...s){const{log:n,ctxArgs:a}=(await this.logCtx(s,t.PreparedStatementKeys.FIND,!0)).for(this.find);return n.verbose(`finding ${i.Model.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,e,r,...a)}async page(e,r=t.OrderDirection.ASC,s={offset:1,limit:10},...n){const{log:a,ctxArgs:o}=(await this.logCtx(n,t.PreparedStatementKeys.PAGE,!0)).for(this.page);return a.verbose(`paging ${i.Model.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,e,r,s,...o)}async statement(e,...r){const{log:s,ctx:i,ctxArgs:n}=(await this.logCtx(r,t.PersistenceKeys.STATEMENT,!0)).for(this.statement),a=n.slice(0,-1),o=a[a.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:a.pop(),d={class:this.class,args:a,method:e,params:c},l=this.adapter.toRequest(d,i);s.verbose("Executing prepared statement "+e);const h=await this.request(l,...n),u=this.adapter.parseResponse(this.class,e,h);return this.convertStatementResult(e,u,i)}convertStatementResult(e,r,s){return r?e===t.PreparedStatementKeys.FIND||e===t.PreparedStatementKeys.LIST_BY||e===t.PreparedStatementKeys.FIND_BY?Array.isArray(r)?r.map(e=>this.revertRecord(e,s)):r:e===t.PreparedStatementKeys.FIND_ONE_BY?this.revertRecord(r,s):e===t.PreparedStatementKeys.PAGE||e===t.PreparedStatementKeys.PAGE_BY?this.convertPageResult(r,s):r:r}convertPageResult(e,r){if(!e)return e;let s=e;if("string"==typeof s)try{s=t.Paginator.deserialize(s)}catch{return e}return t.Paginator.isSerializedPage(s)?{...s,data:s.data.map(e=>this.revertRecord(e,r))}:e}revertRecord(e,t){if(!e)return e;if(e instanceof this.class)return e;const r=i.Model.pk(this.class),s=i.Model.columnName(this.class,r),n=r??s,a=e[s]??e[n];if(void 0!==a)try{return this.adapter.revert(e,this.class,a,void 0,t)}catch{}return Object.assign(new this.class,e)}async request(e,...r){let i;i=r.length&&r[r.length-1]instanceof t.Context?this.logCtx(r,this.request):(await this.logCtx(r,s.OperationKeys.READ,!0)).for(this.request);const{ctxArgs:n}=i;return this.adapter.request(e,...n)}async countOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOf);s.verbose(`counting ${i.Model.tableName(this.class)}${e?" by "+e:""}`);const a=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...a,...n)}async maxOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.MAX_OF,!0)).for(this.maxOf);return s.verbose(`finding max of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.maxOf.name,e,{},...n)}async minOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.MIN_OF,!0)).for(this.minOf);return s.verbose(`finding min of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.minOf.name,e,{},...n)}async avgOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.AVG_OF,!0)).for(this.avgOf);return s.verbose(`calculating avg of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.avgOf.name,e,{},...n)}async sumOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.SUM_OF,!0)).for(this.sumOf);return s.verbose(`calculating sum of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.sumOf.name,e,{},...n)}async distinctOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.DISTINCT_OF,!0)).for(this.distinctOf);return s.verbose(`finding distinct values of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.distinctOf.name,e,{},...n)}async groupOf(e,...r){const{log:s,ctxArgs:n}=(await this.logCtx(r,t.PreparedStatementKeys.GROUP_OF,!0)).for(this.groupOf);return s.verbose(`grouping ${i.Model.tableName(this.class)} by ${e}`),await this.statement(this.groupOf.name,e,{},...n)}}n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,String,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"find",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,String,Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"page",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"countOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(d="undefined"!=typeof K&&K)?d:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"maxOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(l="undefined"!=typeof K&&K)?l:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"minOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(h="undefined"!=typeof K&&K)?h:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"avgOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(u="undefined"!=typeof K&&K)?u:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"sumOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(p="undefined"!=typeof K&&K)?p:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"distinctOf",null),n.__decorate([t.prepared(),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",["function"==typeof(g="undefined"!=typeof K&&K)?g:Object,void 0]),n.__metadata("design:returntype",Promise)],y.prototype,"groupOf",null);class m extends y{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return i.Model.tableName(this.class)+" REST service"}}class E extends t.Statement{constructor(e,t){super(e,t)}build(){throw new t.UnsupportedError("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(e,...r){throw new t.UnsupportedError("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class v extends t.Paginator{constructor(e,t,r,s){super(e,t,r,s)}async pagePrepared(e,...r){const s=t.Repository.forModel(this.clazz,this.adapter.alias),i=this.query,{method:n,args:a,params:o}=i,c=RegExp(`^${t.PreparedStatementKeys.FIND_BY}|${t.PreparedStatementKeys.LIST_BY}`,"gi");if(!n.match(c))throw new t.UnsupportedError(`Method ${n} is not supported for pagination`);c.lastIndex=0;const d=[n.replace(c,t.PreparedStatementKeys.PAGE_BY),...a],l={direction:o.direction,limit:this.size,offset:e,bookmark:this._bookmark};d.push(l);const h=await s.statement(...d,...r);return this.apply(h)}prepare(e){throw new t.UnsupportedError("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(e=1,...t){return super.page(e,...t)}}class b extends t.ContextualLoggedClass{static{this.cache=new Map}static get(e){if(this.cache.has(e))return this.cache.get(e);throw Error(`Server event connector not found for URL '${e}'. Did you forget to call open()?`)}static open(e,t){if(this.cache.has(e))return this.cache.get(e);const r=new b(e,t);return this.cache.set(e,r),this.cache.get(e)}static close(e){this.cache.has(e)&&this.cache.get(e).close()}static parseReceivedEvent(e){const t=e=>{if("string"!=typeof e)return e;try{return i.Serialization.deserialize(e)}catch{try{return JSON.parse(e)}catch{return e}}};try{const r="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(r)||3>r.length)return null;const[s,i,n,a]=r;if("string"!=typeof s)return null;let o;return o=Array.isArray(a)?a.map(e=>t(e)):t(a),[s,i+"",n,o]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.listeners=new Set}isOpen(){return void 0!==this.es}async getHeaders(){let e=this.headers;return"function"==typeof this.headers&&(e=await Promise.resolve(this.headers())),e||{}}close(e=!1){const t=this.log.for(this.close);if(this.es)if(0>=this.listeners.size||e)try{t.info("Closing EventSource connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),b.cache.delete(this.url),t.info(`EventSource connection ${this.url} closed and removed from pool`)}else t.warn(`Skipping EventSource connection close ${this.url} \u2014 ${this.listeners.size} active listener(s) remaining.`);else t.debug("Skipping EventSource close \u2014 no open connection to "+this.url)}async startListening(){const e=this.log.for(this.startListening);if(this.es)e.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`,{url:this.url,listeners:this.listeners.size});else{if(this.opening)return e.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await this.opening;this.opening=(async()=>{e.info("Opening EventSource connection to "+this.url);const t=await this.getHeaders();this.es=new o.EventSourcePlus(this.url,{...t&&{headers:t},credentials:"include"});const r=this;this.controller=this.es.listen({onResponse:()=>{e.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:t})=>{e.error("Failed to establish EventSource connection",{url:this.url,error:t}),r.listeners.forEach(e=>e.onError((t?.message??t)+""))},onResponseError:({response:t})=>{const s=t?.status,i=t?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:s,statusText:i});const n=Error(`HTTP ${s??"unknown"} ${i??"error"}`);r.listeners.forEach(e=>e.onError(n))},onMessage:t=>{if("heartbeat"===t.event)return void e.debug("Refresh connection. Heartbeat received.");const s=t&&"object"==typeof t&&"data"in t?t.data:t,i=b.parseReceivedEvent(s);if(i)for(const t of r.listeners)try{t.onEvent(i)}catch(t){e.error("Listener handler failed on event",{err:t})}else e.warn("Failed to parse SSE message",{url:this.url,raw:s})}})})().finally(()=>{this.opening=void 0}),await this.opening}}addListener(e){const t=this.log.for(this.addListener);return t.info(`Registering listener for connection ${this.url} \u2014 ${this.listeners.size} active listener(s)`),this.listeners.add(e),this.startListening().then(()=>{t.info(`Listener registered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)}),()=>this.removeListener(e)}removeListener(e){const t=this.log.for(this.removeListener),r=this.listeners.has(e);t.info(`Unregistering listener for connection ${this.url}. Current active listeners: ${this.listeners.size}`,{listenerFound:r}),r&&(this.listeners.delete(e),t.debug(`Listener unregistered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)),0===this.listeners.size&&(t.info(`No listeners remaining. Closing EventSource connection ${this.url}.`,{url:this.url,listeners:this.listeners.size}),this.close())}}class w extends t.Dispatch{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...e){const{log:r,ctxArgs:s}=(await this.logCtx(e,t.PersistenceKeys.INITIALIZATION,!0)).for(this.initialize);this.adapter?(r.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),r.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):r.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...e){const{log:t}=this.logCtx(e,this.startListening);if(!this.initialized||!this.adapter)throw t.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");if(!this.adapter.config.events)return void t.warn("SSe events disabled");this.listening&&t.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:r,host:i,eventsListenerPath:n}=this.adapter.config;if(!n)throw t.error("Cannot start listening: no eventsListenerPath specified",{protocol:r,host:i}),Error("No eventsListenerPath specified");const a=new URL(n,`${r}://${i}`).toString();t.info("Opening ServerEventConnector for url: "+a),this.connector=b.open(a,async()=>{if(!this.adapter)throw new s.InternalError("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(e){throw new s.InternalError("Failed to get event headers: "+e)}}),t.debug("ServerEventConnector opened successfully for url: "+a),this.removeConnectorListener?.(),this.removeConnectorListener=this.connector.addListener({onEvent:async e=>{const[t,r,s,...i]=e,{log:n,ctxArgs:a}=(await this.logCtx(i,r,!0)).for("onEvent");super.updateObservers(t,r,s,...a).catch(e=>n.error("ServerEventConnector failed to updateObservers",e))},onError:e=>{t.error("ServerEventConnector failed to dispatch event",{error:e,listeningUrl:a,adapter:this.adapter+""})}}),this.listening=!0,t.info(`HttpDispatcher is now listening at ${a}.`)}async close(...e){this.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),this.listening=!1}}function O(e,t,r,s){const i=s||t.name;e[i]=new Proxy(e[i],{apply:async(e,t,s)=>{let i=e.call(t,...s);return i instanceof Promise&&(i=await i),i=r.call(t,i),i instanceof Promise&&(i=await i),i}})}e.DecafHeaders=void 0,(f=e.DecafHeaders||(e.DecafHeaders={})).PENDING_TASK="x-pending-task",f.CORRELATION_ID="x-correlation-id";class S extends t.Adapter{constructor(e,t,r){super(Object.assign({},e,{headers:void 0===e.headers||e.headers,events:void 0===e.events||e.events}),t,r);const i=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{O(this,e,t=>i.parseResponse.call(i,void 0,e.name,t),e.name)}),s.wrapMethodWithContext(this,(...e)=>e,this.request,(e,t)=>{const r=i.config.parsers;return r?(r.forEach(r=>r(e,t)),e):e},this.request.name)}async flags(e,t,r){return super.flags(e,t,Object.assign({headers:r.headers??{}},r))}Dispatch(){return new w}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return m}prepare(e,...r){const{log:s}=this.logCtx(r,this.prepare),n=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(n,t.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[t.PersistenceKeys.METADATA]})),{record:e,id:e[i.Model.pk(e.constructor)]}}revert(e,r,n,...a){const{log:o}=this.logCtx(a,this.revert),c={},d="string"==typeof r?i.Model.build(c,r):new r(c);o.silly(`Rebuilding model ${d.constructor.name} id ${n}`);const l="string"==typeof r?i.Model.get(r):r;if(!l)throw new s.InternalError("Failed to retrieve model constructor for "+r);const h=new l(e),u=e[t.PersistenceKeys.METADATA];return u&&(o.silly(`Passing along ${this.flavour} persistence metadata for ${d.constructor.name} id ${n}: ${u}`),Object.defineProperty(h,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:u})),h}toTableName(e){return"string"==typeof e?e:a.toKebabCase(i.Model.tableName(e))}toHeaders(t){const r={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(r[e.DecafHeaders.CORRELATION_ID]=s)}return{...r,...t.getOrUndefined("headers")||{}}}url(e,t,r){r||t&&!Array.isArray(t)&&(r=t,t=[]),e=this.toTableName(e);const s=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return r&&Object.entries(r).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>s.searchParams.append(e,t.toString())):"object"==typeof t?s.searchParams.append(e,JSON.stringify(t)):void 0!==t&&s.searchParams.append(e,t.toString())}),s.toString()}extractIdArgs(e,t){const r=t.toString();if("string"==typeof e)return[r];const s=i.Model.composed(e,i.Model.pk(e));return s?r.split(s.separator):[r]}parseResponse(e,r,s){return e&&t.Paginator.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:r,ctx:s}=this.logCtx(t,this.raw),i=this.toRequest(e,s);return this.request(i,...r)}Sequence(e){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new E(this,e)}Paginator(e,t,r){return new v(this,e,t,r)}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...r){const i="string"==typeof e?e:e.message;return i.includes(s.NotFoundError.name)||i.includes("404")?new s.NotFoundError(e):i.includes(s.ConflictError.name)||i.includes("409")?new s.ConflictError(e):i.includes(s.BadRequestError.name)||i.includes("400")?new s.BadRequestError(e):i.includes(s.ValidationError.name)||i.includes("422")?new s.ValidationError(e):i.includes(t.QueryError.name)?new t.QueryError(e):i.includes(t.PagingError.name)?new t.PagingError(e):i.includes(t.UnsupportedError.name)?new t.UnsupportedError(e):i.includes(t.MigrationError.name)?new t.MigrationError(e):i.includes(t.ObserverError.name)?new t.ObserverError(e):i.includes(t.AuthorizationError.name)?new t.AuthorizationError(e):i.includes(t.ForbiddenError.name)?new t.ForbiddenError(e):i.includes(t.ConnectionError.name)?new t.ConnectionError(e):i.includes(s.SerializationError.name)?new s.SerializationError(e):new s.InternalError(e)}static decoration(){super.decoration(),r.Decoration.for(t.PersistenceKeys.QUERY).define({decorator:e=>(i,n,a)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,n),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const i=t,{log:a,ctxArgs:o}=(await i.logCtx(r,s.OperationKeys.READ,!0)).for(n);return a.verbose("Running prepared statement "+e.name),a.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(i,n,a)}).apply()}}S.decoration();const A="axios",P=(t,r)=>{if(t.headers&&t.headers[e.DecafHeaders.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[e.DecafHeaders.PENDING_TASK]),Object.entries(s).forEach(([e,t])=>{t.forEach(t=>r.pushPending(e,t))})}catch(s){r.logger.for(P).error(`Failed to parse pending tasks header ${t.headers[e.DecafHeaders.PENDING_TASK]}: ${s}`)}}};class _ extends S{constructor(e,t){super(e,A,t)}getClient(){return new c.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,r){let s,i;e instanceof t.Context?(i=e,s=void 0):(s=e,i=r);const n={};return i&&(n.headers={...n.headers||{},...this.toHeaders(i)}),s&&(n.method="GET",n.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),n}async request(e,...t){let r={};try{const{ctx:e}=this.logCtx(t,this.request);r=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,r))}parseResponse(e,r,i){if(!i.status&&r!==t.PersistenceKeys.STATEMENT)throw new s.InternalError("this should be impossible");if(i.status>=400)throw this.parseError(i.error||i.status);const n=this.normalizeResponseBody(i);switch(r){case s.BulkCrudOperationKeys.CREATE_ALL:case s.BulkCrudOperationKeys.READ_ALL:case s.BulkCrudOperationKeys.UPDATE_ALL:case s.BulkCrudOperationKeys.DELETE_ALL:case s.OperationKeys.CREATE:case s.OperationKeys.READ:case s.OperationKeys.UPDATE:case s.OperationKeys.DELETE:return n;case t.PreparedStatementKeys.FIND:case t.PreparedStatementKeys.PAGE:case t.PreparedStatementKeys.FIND_BY:case t.PreparedStatementKeys.LIST_BY:case t.PreparedStatementKeys.PAGE_BY:case t.PreparedStatementKeys.FIND_ONE_BY:case t.PersistenceKeys.STATEMENT:return super.parseResponse(e,r,n);case t.PreparedStatementKeys.COUNT_OF:case t.PreparedStatementKeys.MAX_OF:case t.PreparedStatementKeys.MIN_OF:case t.PreparedStatementKeys.AVG_OF:case t.PreparedStatementKeys.SUM_OF:case t.PreparedStatementKeys.DISTINCT_OF:return n;case t.PreparedStatementKeys.GROUP_OF:if(e&&"object"==typeof n&&null!==n){const t={};for(const[r,s]of Object.entries(n))t[r]=Array.isArray(s)?s.map(t=>new e(t)):s;return t}return n;default:return n}}normalizeResponseBody(e){if(!e)return e;const t=void 0!==e.body?e.body:void 0!==e.data?e.data:e;if("string"==typeof t)try{return JSON.parse(t)}catch{return t}return t}async create(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(a);return n.debug(`POSTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"POST",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},a)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(a);return n.debug(`POSTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"POST",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},a)}catch(e){throw this.parseError(e)}}async read(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.read);try{const r=this.url(e,this.extractIdArgs(e,t)),n=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"GET",...n},i)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.readAll);try{const r=this.url(e,["bulk"],{ids:t}),n=this.toRequest(i);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"GET",...n},i)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(a);return n.debug(`PUTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"PUT",data:JSON.stringify(Object.assign({},r,{[i.ModelKeys.ANCHOR]:e.name})),...o},a)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:n,ctx:a}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(a);return n.debug(`PUTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"PUT",data:JSON.stringify(r.map(t=>Object.assign({},t,{[i.ModelKeys.ANCHOR]:e.name}))),...s},a)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,this.extractIdArgs(e,t)),n=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"DELETE",...n},i)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...r){const{log:s,ctx:i}=this.logCtx(r,this.delete);try{const r=this.url(e,["bulk"],{ids:t}),n=this.toRequest(i);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"DELETE",...n},i)}catch(e){throw this.parseError(e)}}parseError(e,...t){return S.parseError(e,...t)}}_.decoration();const x="##VERSION##",N="##PACKAGE##";r.Metadata.registerLibrary(N,x),e.AxiosFlavour=A,e.AxiosHttpAdapter=_,e.HttpAdapter=S,e.HttpPaginator=v,e.HttpStatement=E,e.KeepAliveOperation="keepalive",e.PACKAGE_NAME=N,e.RestRepository=y,e.RestService=m,e.ServerEventConnector=b,e.TaskResponseParser=P,e.VERSION=x,e.suffixMethod=O},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging"),require("event-source-plus"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging","event-source-plus","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging,e.eventSourcePlus,e.axios);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,s,i,a,n,o,c,d){"use strict";var l,h,u,p,g,f,y;class m extends t.Repository{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,r){return this.adapter.url(e,t,r)}async paginateBy(e,r,s={offset:1,limit:10},...a){const{offset:n,bookmark:o,limit:c}=s,{log:d,ctxArgs:l}=(await this.logCtx(a,t.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);d.verbose(`paginating ${i.Model.tableName(this.class)} with page size ${c}`);const h={direction:r,limit:c};return o&&(h.bookmark=o),this.statement(this.paginateBy.name,e,n,h,...l)}async listBy(e,r,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return a.verbose(`listing ${i.Model.tableName(this.class)} by ${e} ${r}`),await this.statement(this.listBy.name,e,{direction:r},...n)}async findBy(e,r,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return a.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findBy.name,e,r,{},...n)}async findOneBy(e,r,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return a.verbose(`finding ${i.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findOneBy.name,e,r,{},...n)}async find(e,r=t.OrderDirection.ASC,...s){const{log:a,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND,!0)).for(this.find);return a.verbose(`finding ${i.Model.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,e,r,...n)}async page(e,r=t.OrderDirection.ASC,s={offset:1,limit:10},...a){const{log:n,ctxArgs:o}=(await this.logCtx(a,t.PreparedStatementKeys.PAGE,!0)).for(this.page);return n.verbose(`paging ${i.Model.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,e,r,s,...o)}async statement(e,...r){const{log:s,ctx:i,ctxArgs:a}=(await this.logCtx(r,t.PersistenceKeys.STATEMENT,!0)).for(this.statement),n=a.slice(0,-1),o=n[n.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:n.pop(),d={class:this.class,args:n,method:e,params:c},l=this.adapter.toRequest(d,i);s.verbose("Executing prepared statement "+e);const h=await this.request(l,...a),u=this.adapter.parseResponse(this.class,e,h);return this.convertStatementResult(e,u,i)}convertStatementResult(e,r,s){return r?e===t.PreparedStatementKeys.FIND||e===t.PreparedStatementKeys.LIST_BY||e===t.PreparedStatementKeys.FIND_BY?Array.isArray(r)?r.map(e=>this.revertRecord(e,s)):r:e===t.PreparedStatementKeys.FIND_ONE_BY?this.revertRecord(r,s):e===t.PreparedStatementKeys.PAGE||e===t.PreparedStatementKeys.PAGE_BY?this.convertPageResult(r,s):r:r}convertPageResult(e,r){if(!e)return e;let s=e;if("string"==typeof s)try{s=t.Paginator.deserialize(s)}catch{return e}return t.Paginator.isSerializedPage(s)?{...s,data:s.data.map(e=>this.revertRecord(e,r))}:e}revertRecord(e,t){if(!e)return e;if(e instanceof this.class)return e;const r=i.Model.pk(this.class),s=i.Model.columnName(this.class,r),a=r??s,n=e[s]??e[a];if(void 0!==n)try{return this.adapter.revert(e,this.class,n,void 0,t)}catch{}return Object.assign(new this.class,e)}async request(e,...r){let i;i=r.length&&r[r.length-1]instanceof t.Context?this.logCtx(r,this.request):(await this.logCtx(r,s.OperationKeys.READ,!0)).for(this.request);const{ctxArgs:a}=i;return this.adapter.request(e,...a)}async countOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOf);s.verbose(`counting ${i.Model.tableName(this.class)}${e?" by "+e:""}`);const n=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...n,...a)}async maxOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.MAX_OF,!0)).for(this.maxOf);return s.verbose(`finding max of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.maxOf.name,e,{},...a)}async minOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.MIN_OF,!0)).for(this.minOf);return s.verbose(`finding min of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.minOf.name,e,{},...a)}async avgOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.AVG_OF,!0)).for(this.avgOf);return s.verbose(`calculating avg of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.avgOf.name,e,{},...a)}async sumOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.SUM_OF,!0)).for(this.sumOf);return s.verbose(`calculating sum of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.sumOf.name,e,{},...a)}async distinctOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.DISTINCT_OF,!0)).for(this.distinctOf);return s.verbose(`finding distinct values of ${e} in ${i.Model.tableName(this.class)}`),await this.statement(this.distinctOf.name,e,{},...a)}async groupOf(e,...r){const{log:s,ctxArgs:a}=(await this.logCtx(r,t.PreparedStatementKeys.GROUP_OF,!0)).for(this.groupOf);return s.verbose(`grouping ${i.Model.tableName(this.class)} by ${e}`),await this.statement(this.groupOf.name,e,{},...a)}}a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,String,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"find",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[String,String,Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"page",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",[Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"countOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(l="undefined"!=typeof K&&K)?l:Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"maxOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(h="undefined"!=typeof K&&K)?h:Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"minOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(u="undefined"!=typeof K&&K)?u:Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"avgOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(p="undefined"!=typeof K&&K)?p:Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"sumOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(g="undefined"!=typeof K&&K)?g:Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"distinctOf",null),a.__decorate([t.prepared(),a.__metadata("design:type",Function),a.__metadata("design:paramtypes",["function"==typeof(f="undefined"!=typeof K&&K)?f:Object,void 0]),a.__metadata("design:returntype",Promise)],m.prototype,"groupOf",null);class v extends m{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return i.Model.tableName(this.class)+" REST service"}}class E extends t.Statement{constructor(e,t){super(e,t)}build(){throw new t.UnsupportedError("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(e,...r){throw new t.UnsupportedError("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class w extends t.Paginator{constructor(e,t,r,s){super(e,t,r,s)}async pagePrepared(e,...r){const s=t.Repository.forModel(this.clazz,this.adapter.alias),i=this.query,{method:a,args:n,params:o}=i,c=RegExp(`^${t.PreparedStatementKeys.FIND_BY}|${t.PreparedStatementKeys.LIST_BY}`,"gi");if(!a.match(c))throw new t.UnsupportedError(`Method ${a} is not supported for pagination`);c.lastIndex=0;const d=[a.replace(c,t.PreparedStatementKeys.PAGE_BY),...n],l={direction:o.direction,limit:this.size,offset:e,bookmark:this._bookmark};d.push(l);const h=await s.statement(...d,...r);return this.apply(h)}prepare(e){throw new t.UnsupportedError("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(e=1,...t){return super.page(e,...t)}}class O extends t.ContextualLoggedClass{static{this.cache=new Map}static get(e){if(this.cache.has(e))return this.cache.get(e);throw Error(`Server event connector not found for URL '${e}'. Did you forget to call open()?`)}static open(e,t){if(this.cache.has(e))return this.cache.get(e);const r=new O(e,t);return this.cache.set(e,r),this.cache.get(e)}static close(e){this.cache.has(e)&&this.cache.get(e).close()}static parseReceivedEvent(e){const t=e=>{if("string"!=typeof e)return e;try{return i.Serialization.deserialize(e)}catch{try{return JSON.parse(e)}catch{return e}}};try{const r="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(r)||3>r.length)return null;const[s,i,a,n]=r;if("string"!=typeof s)return null;let o;return o=Array.isArray(n)?n.map(e=>t(e)):t(n),[s,i+"",a,o]}catch{return null}}constructor(e,t){super(),this.url=e,this.headers=t,this.stateLock=new c.Lock,this.ready=!1,this.listeners=new Set}isOpen(){return void 0!==this.es}async withStateLock(e){await this.stateLock.acquire();try{return await Promise.resolve(e())}finally{this.stateLock.release()}}async 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);let t,r,s,i=!1;const a=new Promise((e,t)=>{r=e,s=t});if(await this.withStateLock(()=>{this.es&&this.ready?t=Promise.resolve():this.opening?t=this.opening:(this.ready=!1,this.opening=a,t=a,i=!0)}),!i)return e.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await t;(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"}),await this.setReady(!1);let i=!1;const a=this;this.controller=this.es.listen({onResponse:async()=>{i||(i=!0,await a.setReady(!0),e.info(`Connected to ${this.url}. Ready to receive events`),r())},onRequestError:({error:t})=>{i||(i=!0,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})=>{if(i)return;i=!0;const r=t?.status,n=t?.statusText;e.error("Listening failed with HTTP error response",{url:this.url,status:r,statusText:n});const o=Error(`HTTP ${r??"unknown"} ${n??"error"}`);a.setReady(!1),s(o),a.listeners.forEach(e=>e.onError(o))},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})}})})().catch(async e=>{this.controller=void 0,this.es=void 0,await this.setReady(!1),s(e)});try{await t}finally{await this.setOpening(void 0)}}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##",T="##PACKAGE##";r.Metadata.registerLibrary(T,N),e.AxiosFlavour=P,e.AxiosHttpAdapter=x,e.HttpAdapter=A,e.HttpPaginator=w,e.HttpStatement=E,e.KeepAliveOperation="keepalive",e.PACKAGE_NAME=T,e.RestRepository=m,e.RestService=v,e.ServerEventConnector=O,e.TaskResponseParser=_,e.VERSION=N,e.suffixMethod=S},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging"),require("event-source-plus"),require("@decaf-ts/transactional-decorators"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging","event-source-plus","@decaf-ts/transactional-decorators","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging,e.eventSourcePlus,e.decafTsTransactionalDecorators,e.axios);
|
|
2
2
|
//# sourceMappingURL=for-http.cjs.map
|
package/dist/for-http.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-http.cjs","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","String","listeners","Set","isOpen","es","getHeaders","Promise","resolve","force","info","controller","abort","clear","delete","warn","debug","startListening","opening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","removeConnectorListener","operation","updateObservers","catch","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-http.cjs","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","String","stateLock","Lock","ready","listeners","Set","isOpen","es","withStateLock","fn","acquire","Promise","resolve","release","setOpening","opening","isReady","setReady","getHeaders","force","info","controller","abort","clear","delete","warn","debug","startListening","openPromise","resolveOpen","rejectOpen","owner","deferredOpen","reject","EventSourcePlus","credentials","settled","self","listen","onResponse","async","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","catch","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","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/dist/for-http.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{prepared as t,Repository as e,PreparedStatementKeys as s,OrderDirection as r,PersistenceKeys as i,Paginator as n,Context as a,Statement as o,UnsupportedError as c,ContextualLoggedClass as l,Dispatch as h,Adapter as d,QueryError as u,PagingError as g,MigrationError as p,ObserverError as f,AuthorizationError as m,ForbiddenError as y,ConnectionError as v}from"@decaf-ts/core";import{Decoration as w,apply as b,methodMetadata as O,Metadata as E}from"@decaf-ts/decoration";import{OperationKeys as A,InternalError as x,wrapMethodWithContext as S,NotFoundError as $,ConflictError as N,BadRequestError as T,ValidationError as C,SerializationError as R,BulkCrudOperationKeys as P}from"@decaf-ts/db-decorators";import{Model as L,Serialization as _,ModelKeys as I}from"@decaf-ts/decorator-validation";import{__decorate as q,__metadata as D}from"tslib";import{toKebabCase as F}from"@decaf-ts/logging";import{EventSourcePlus as z}from"event-source-plus";import{Axios as j}from"axios";var B,k,U,J,G,H,M;class Y extends e{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(t,e,s){return this.adapter.url(t,e,s)}async paginateBy(t,e,r={offset:1,limit:10},...i){const{offset:n,bookmark:a,limit:o}=r,{log:c,ctxArgs:l}=(await this.logCtx(i,s.PAGE_BY,!0)).for(this.paginateBy);c.verbose(`paginating ${L.tableName(this.class)} with page size ${o}`);const h={direction:e,limit:o};return a&&(h.bookmark=a),this.statement(this.paginateBy.name,t,n,h,...l)}async listBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${L.tableName(this.class)} by ${t} ${e}`),await this.statement(this.listBy.name,t,{direction:e},...n)}async findBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findBy.name,t,e,{},...n)}async findOneBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findOneBy.name,t,e,{},...n)}async find(t,e=r.ASC,...i){const{log:n,ctxArgs:a}=(await this.logCtx(i,s.FIND,!0)).for(this.find);return n.verbose(`finding ${L.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,t,e,...a)}async page(t,e=r.ASC,i={offset:1,limit:10},...n){const{log:a,ctxArgs:o}=(await this.logCtx(n,s.PAGE,!0)).for(this.page);return a.verbose(`paging ${L.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,t,e,i,...o)}async statement(t,...e){const{log:s,ctx:r,ctxArgs:n}=(await this.logCtx(e,i.STATEMENT,!0)).for(this.statement),a=n.slice(0,-1),o=a[a.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:a.pop(),l={class:this.class,args:a,method:t,params:c},h=this.adapter.toRequest(l,r);s.verbose("Executing prepared statement "+t);const d=await this.request(h,...n),u=this.adapter.parseResponse(this.class,t,d);return this.convertStatementResult(t,u,r)}convertStatementResult(t,e,r){return e?t===s.FIND||t===s.LIST_BY||t===s.FIND_BY?Array.isArray(e)?e.map(t=>this.revertRecord(t,r)):e:t===s.FIND_ONE_BY?this.revertRecord(e,r):t===s.PAGE||t===s.PAGE_BY?this.convertPageResult(e,r):e:e}convertPageResult(t,e){if(!t)return t;let s=t;if("string"==typeof s)try{s=n.deserialize(s)}catch{return t}return n.isSerializedPage(s)?{...s,data:s.data.map(t=>this.revertRecord(t,e))}:t}revertRecord(t,e){if(!t)return t;if(t instanceof this.class)return t;const s=L.pk(this.class),r=L.columnName(this.class,s),i=s??r,n=t[r]??t[i];if(void 0!==n)try{return this.adapter.revert(t,this.class,n,void 0,e)}catch{}return Object.assign(new this.class,t)}async request(t,...e){let s;s=e.length&&e[e.length-1]instanceof a?this.logCtx(e,this.request):(await this.logCtx(e,A.READ,!0)).for(this.request);const{ctxArgs:r}=s;return this.adapter.request(t,...r)}async countOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.COUNT_OF,!0)).for(this.countOf);r.verbose(`counting ${L.tableName(this.class)}${t?" by "+t:""}`);const n=t?[t,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MAX_OF,!0)).for(this.maxOf);return r.verbose(`finding max of ${t} in ${L.tableName(this.class)}`),await this.statement(this.maxOf.name,t,{},...i)}async minOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MIN_OF,!0)).for(this.minOf);return r.verbose(`finding min of ${t} in ${L.tableName(this.class)}`),await this.statement(this.minOf.name,t,{},...i)}async avgOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.AVG_OF,!0)).for(this.avgOf);return r.verbose(`calculating avg of ${t} in ${L.tableName(this.class)}`),await this.statement(this.avgOf.name,t,{},...i)}async sumOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.SUM_OF,!0)).for(this.sumOf);return r.verbose(`calculating sum of ${t} in ${L.tableName(this.class)}`),await this.statement(this.sumOf.name,t,{},...i)}async distinctOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.DISTINCT_OF,!0)).for(this.distinctOf);return r.verbose(`finding distinct values of ${t} in ${L.tableName(this.class)}`),await this.statement(this.distinctOf.name,t,{},...i)}async groupOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.GROUP_OF,!0)).for(this.groupOf);return r.verbose(`grouping ${L.tableName(this.class)} by ${t}`),await this.statement(this.groupOf.name,t,{},...i)}}q([t(),D("design:type",Function),D("design:paramtypes",[String,String,void 0]),D("design:returntype",Promise)],Y.prototype,"find",null),q([t(),D("design:type",Function),D("design:paramtypes",[String,String,Object,void 0]),D("design:returntype",Promise)],Y.prototype,"page",null),q([t(),D("design:type",Function),D("design:paramtypes",[Object,void 0]),D("design:returntype",Promise)],Y.prototype,"countOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(B="undefined"!=typeof K&&K)?B:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"maxOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(k="undefined"!=typeof K&&K)?k:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"minOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(U="undefined"!=typeof K&&K)?U:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"avgOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(J="undefined"!=typeof K&&K)?J:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"sumOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(G="undefined"!=typeof K&&K)?G:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"distinctOf",null),q([t(),D("design:type",Function),D("design:paramtypes",["function"==typeof(H="undefined"!=typeof K&&K)?H:Object,void 0]),D("design:returntype",Promise)],Y.prototype,"groupOf",null);class Q extends Y{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return L.tableName(this.class)+" REST service"}}class V extends o{constructor(t,e){super(t,e)}build(){throw new c("This method is only called is prepared statements are not used. If so, a dedicated implementation for the native queries used is required")}parseCondition(t,...e){throw new c("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class X extends n{constructor(t,e,s,r){super(t,e,s,r)}async pagePrepared(t,...r){const i=e.forModel(this.clazz,this.adapter.alias),n=this.query,{method:a,args:o,params:l}=n,h=RegExp(`^${s.FIND_BY}|${s.LIST_BY}`,"gi");if(!a.match(h))throw new c(`Method ${a} is not supported for pagination`);h.lastIndex=0;const d=[a.replace(h,s.PAGE_BY),...o],u={direction:l.direction,limit:this.size,offset:t,bookmark:this._bookmark};d.push(u);const g=await i.statement(...d,...r);return this.apply(g)}prepare(t){throw new c("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(t=1,...e){return super.page(t,...e)}}class W extends l{static{this.cache=new Map}static get(t){if(this.cache.has(t))return this.cache.get(t);throw Error(`Server event connector not found for URL '${t}'. Did you forget to call open()?`)}static open(t,e){if(this.cache.has(t))return this.cache.get(t);const s=new W(t,e);return this.cache.set(t,s),this.cache.get(t)}static close(t){this.cache.has(t)&&this.cache.get(t).close()}static parseReceivedEvent(t){const e=t=>{if("string"!=typeof t)return t;try{return _.deserialize(t)}catch{try{return JSON.parse(t)}catch{return t}}};try{const s="string"==typeof t?JSON.parse(t):t;if(!Array.isArray(s)||3>s.length)return null;const[r,i,n,a]=s;if("string"!=typeof r)return null;let o;return o=Array.isArray(a)?a.map(t=>e(t)):e(a),[r,i+"",n,o]}catch{return null}}constructor(t,e){super(),this.url=t,this.headers=e,this.listeners=new Set}isOpen(){return void 0!==this.es}async getHeaders(){let t=this.headers;return"function"==typeof this.headers&&(t=await Promise.resolve(this.headers())),t||{}}close(t=!1){const e=this.log.for(this.close);if(this.es)if(0>=this.listeners.size||t)try{e.info("Closing EventSource connection for listening URL "+this.url),this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),W.cache.delete(this.url),e.info(`EventSource connection ${this.url} closed and removed from pool`)}else e.warn(`Skipping EventSource connection close ${this.url} \u2014 ${this.listeners.size} active listener(s) remaining.`);else e.debug("Skipping EventSource close \u2014 no open connection to "+this.url)}async startListening(){const t=this.log.for(this.startListening);if(this.es)t.info(`Listening address ${this.url} is already in the pool and listening. Skipping opening a new connection.`,{url:this.url,listeners:this.listeners.size});else{if(this.opening)return t.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await this.opening;this.opening=(async()=>{t.info("Opening EventSource connection to "+this.url);const e=await this.getHeaders();this.es=new z(this.url,{...e&&{headers:e},credentials:"include"});const s=this;this.controller=this.es.listen({onResponse:()=>{t.info(`Connected to ${this.url}. Ready to receive events`)},onRequestError:({error:e})=>{t.error("Failed to establish EventSource connection",{url:this.url,error:e}),s.listeners.forEach(t=>t.onError((e?.message??e)+""))},onResponseError:({response:e})=>{const r=e?.status,i=e?.statusText;t.error("Listening failed with HTTP error response",{url:this.url,status:r,statusText:i});const n=Error(`HTTP ${r??"unknown"} ${i??"error"}`);s.listeners.forEach(t=>t.onError(n))},onMessage:e=>{if("heartbeat"===e.event)return void t.debug("Refresh connection. Heartbeat received.");const r=e&&"object"==typeof e&&"data"in e?e.data:e,i=W.parseReceivedEvent(r);if(i)for(const e of s.listeners)try{e.onEvent(i)}catch(e){t.error("Listener handler failed on event",{err:e})}else t.warn("Failed to parse SSE message",{url:this.url,raw:r})}})})().finally(()=>{this.opening=void 0}),await this.opening}}addListener(t){const e=this.log.for(this.addListener);return e.info(`Registering listener for connection ${this.url} \u2014 ${this.listeners.size} active listener(s)`),this.listeners.add(t),this.startListening().then(()=>{e.info(`Listener registered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)}),()=>this.removeListener(t)}removeListener(t){const e=this.log.for(this.removeListener),s=this.listeners.has(t);e.info(`Unregistering listener for connection ${this.url}. Current active listeners: ${this.listeners.size}`,{listenerFound:s}),s&&(this.listeners.delete(t),e.debug(`Listener unregistered for connection ${this.url} \u2014 total listener(s): ${this.listeners.size}`)),0===this.listeners.size&&(e.info(`No listeners remaining. Closing EventSource connection ${this.url}.`,{url:this.url,listeners:this.listeners.size}),this.close())}}class Z extends h{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...t){const{log:e,ctxArgs:s}=(await this.logCtx(t,i.INITIALIZATION,!0)).for(this.initialize);this.adapter?(e.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),e.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):e.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...t){const{log:e}=this.logCtx(t,this.startListening);if(!this.initialized||!this.adapter)throw e.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");if(!this.adapter.config.events)return void e.warn("SSe events disabled");this.listening&&e.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:s,host:r,eventsListenerPath:i}=this.adapter.config;if(!i)throw e.error("Cannot start listening: no eventsListenerPath specified",{protocol:s,host:r}),Error("No eventsListenerPath specified");const n=new URL(i,`${s}://${r}`).toString();e.info("Opening ServerEventConnector for url: "+n),this.connector=W.open(n,async()=>{if(!this.adapter)throw new x("Adapter not initialized");try{return this.adapter.getEventHeaders()}catch(t){throw new x("Failed to get event headers: "+t)}}),e.debug("ServerEventConnector opened successfully for url: "+n),this.removeConnectorListener?.(),this.removeConnectorListener=this.connector.addListener({onEvent:async t=>{const[e,s,r,...i]=t,{log:n,ctxArgs:a}=(await this.logCtx(i,s,!0)).for("onEvent");super.updateObservers(e,s,r,...a).catch(t=>n.error("ServerEventConnector failed to updateObservers",t))},onError:t=>{e.error("ServerEventConnector failed to dispatch event",{error:t,listeningUrl:n,adapter:this.adapter+""})}}),this.listening=!0,e.info(`HttpDispatcher is now listening at ${n}.`)}async close(...t){this.removeConnectorListener?.(),this.removeConnectorListener=void 0,this.connector?.close(),this.listening=!1}}(t=>{t.PENDING_TASK="x-pending-task",t.CORRELATION_ID="x-correlation-id"})(M||(M={}));const tt="keepalive";function et(t,e,s,r){const i=r||e.name;t[i]=new Proxy(t[i],{apply:async(t,e,r)=>{let i=t.call(e,...r);return i instanceof Promise&&(i=await i),i=s.call(e,i),i instanceof Promise&&(i=await i),i}})}class st extends d{constructor(t,e,s){super(Object.assign({},t,{headers:void 0===t.headers||t.headers,events:void 0===t.events||t.events}),e,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{et(this,t,e=>r.parseResponse.call(r,void 0,t.name,e),t.name)}),S(this,(...t)=>t,this.request,(t,e)=>{const s=r.config.parsers;return s?(s.forEach(s=>s(t,e)),t):t},this.request.name)}async flags(t,e,s){return super.flags(t,e,Object.assign({headers:s.headers??{}},s))}Dispatch(){return new Z}async getEventHeaders(){return this.config.eventHeaderResolver&&await Promise.resolve(this.config.eventHeaderResolver)||{}}repository(){return Q}prepare(t,...e){const{log:s}=this.logCtx(e,this.prepare),r=Object.assign({},t);return t[i.METADATA]&&(s.silly("Passing along persistence metadata for "+t[i.METADATA]),Object.defineProperty(r,i.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[i.METADATA]})),{record:t,id:t[L.pk(t.constructor)]}}revert(t,e,s,...r){const{log:n}=this.logCtx(r,this.revert),a={},o="string"==typeof e?L.build(a,e):new e(a);n.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof e?L.get(e):e;if(!c)throw new x("Failed to retrieve model constructor for "+e);const l=new c(t),h=t[i.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${h}`),Object.defineProperty(l,i.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(t){return"string"==typeof t?t:F(L.tableName(t))}toHeaders(t){const e={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(e[M.CORRELATION_ID]=s)}return{...e,...t.getOrUndefined("headers")||{}}}url(t,e,s){s||e&&!Array.isArray(e)&&(s=e,e=[]),t=this.toTableName(t);const r=new URL(`${this.config.protocol}://${this.config.host}/${t}${e&&e.length?"/"+e.join("/"):""}`);return s&&Object.entries(s).forEach(([t,e])=>{Array.isArray(e)?e.forEach(e=>r.searchParams.append(t,e.toString())):"object"==typeof e?r.searchParams.append(t,JSON.stringify(e)):void 0!==e&&r.searchParams.append(t,e.toString())}),r.toString()}extractIdArgs(t,e){const s=e.toString();if("string"==typeof t)return[s];const r=L.composed(t,L.pk(t));return r?s.split(r.separator):[s]}parseResponse(t,e,s){return t&&n.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(e=>new t(e))}):s}raw(t,...e){const{ctxArgs:s,ctx:r}=this.logCtx(e,this.raw),i=this.toRequest(t,r);return this.request(i,...s)}Sequence(t){return Promise.reject(new c("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(t){return new V(this,t)}Paginator(t,e,s){return new X(this,t,e,s)}parseCondition(t){throw new c("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(t,...e){const s="string"==typeof t?t:t.message;return s.includes($.name)||s.includes("404")?new $(t):s.includes(N.name)||s.includes("409")?new N(t):s.includes(T.name)||s.includes("400")?new T(t):s.includes(C.name)||s.includes("422")?new C(t):s.includes(u.name)?new u(t):s.includes(g.name)?new g(t):s.includes(c.name)?new c(t):s.includes(p.name)?new p(t):s.includes(f.name)?new f(t):s.includes(m.name)?new m(t):s.includes(y.name)?new y(t):s.includes(v.name)?new v(t):s.includes(R.name)?new R(t):new x(t)}static decoration(){super.decoration(),w.for(i.QUERY).define({decorator:e=>(s,r,n)=>b(O(E.key(i.QUERY,r),e),t(),(t,e,s)=>{s.value=new Proxy(s.value,{async apply(t,e,s){const i=e,{log:n,ctxArgs:a}=(await i.logCtx(s,A.READ,!0)).for(r);return n.verbose("Running prepared statement "+t.name),n.debug("With args: "+JSON.stringify(s,null,2)),e.statement(t.name,...a)}})})(s,r,n)}).apply()}}st.decoration();const rt="axios",it=(t,e)=>{if(t.headers&&t.headers[M.PENDING_TASK]){let s;try{s=JSON.parse(t.headers[M.PENDING_TASK]),Object.entries(s).forEach(([t,s])=>{s.forEach(s=>e.pushPending(t,s))})}catch(s){e.logger.for(it).error(`Failed to parse pending tasks header ${t.headers[M.PENDING_TASK]}: ${s}`)}}};class nt extends st{constructor(t,e){super(t,rt,e)}getClient(){return new j({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(t,e){let s,r;t instanceof a?(r=t,s=void 0):(s=t,r=e);const n={};return r&&(n.headers={...n.headers||{},...this.toHeaders(r)}),s&&(n.method="GET",n.url=this.url(s.class,[i.STATEMENT,s.method,...s.args||[]],s.params)),n}async request(t,...e){let s={};try{const{ctx:t}=this.logCtx(e,this.request);s=this.toRequest(t)}catch(t){}return await this.client.request(Object.assign({},t,s))}parseResponse(t,e,r){if(!r.status&&e!==i.STATEMENT)throw new x("this should be impossible");if(r.status>=400)throw this.parseError(r.error||r.status);const n=this.normalizeResponseBody(r);switch(e){case P.CREATE_ALL:case P.READ_ALL:case P.UPDATE_ALL:case P.DELETE_ALL:case A.CREATE:case A.READ:case A.UPDATE:case A.DELETE:return n;case s.FIND:case s.PAGE:case s.FIND_BY:case s.LIST_BY:case s.PAGE_BY:case s.FIND_ONE_BY:case i.STATEMENT:return super.parseResponse(t,e,n);case s.COUNT_OF:case s.MAX_OF:case s.MIN_OF:case s.AVG_OF:case s.SUM_OF:case s.DISTINCT_OF:return n;case s.GROUP_OF:if(t&&"object"==typeof n&&null!==n){const e={};for(const[s,r]of Object.entries(n))e[s]=Array.isArray(r)?r.map(e=>new t(e)):r;return e}return n;default:return n}}normalizeResponseBody(t){if(!t)return t;const e=void 0!==t.body?t.body:void 0!==t.data?t.data:t;if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}async create(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.create);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`POSTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"POST",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async createAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.createAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`POSTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"POST",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async read(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.read);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async readAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.readAll);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async update(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.update);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`PUTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"PUT",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async updateAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.updateAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`PUTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"PUT",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async delete(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}async deleteAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}parseError(t,...e){return st.parseError(t,...e)}}nt.decoration();const at="##VERSION##",ot="##PACKAGE##";E.registerLibrary(ot,at);export{rt as AxiosFlavour,nt as AxiosHttpAdapter,M as DecafHeaders,st as HttpAdapter,X as HttpPaginator,V as HttpStatement,tt as KeepAliveOperation,ot as PACKAGE_NAME,Y as RestRepository,Q as RestService,W as ServerEventConnector,it as TaskResponseParser,at as VERSION,et as suffixMethod};
|
|
1
|
+
import{prepared as t,Repository as e,PreparedStatementKeys as s,OrderDirection as 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 y,ForbiddenError as m,ConnectionError as w}from"@decaf-ts/core";import{Decoration as v,apply as b,methodMetadata as O,Metadata as E}from"@decaf-ts/decoration";import{OperationKeys as A,InternalError as x,wrapMethodWithContext as S,NotFoundError as $,ConflictError as N,BadRequestError as 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 j}from"@decaf-ts/transactional-decorators";import{Axios as k}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,r={offset:1,limit:10},...i){const{offset:n,bookmark:a,limit:o}=r,{log:c,ctxArgs:l}=(await this.logCtx(i,s.PAGE_BY,!0)).for(this.paginateBy);c.verbose(`paginating ${L.tableName(this.class)} with page size ${o}`);const h={direction:e,limit:o};return a&&(h.bookmark=a),this.statement(this.paginateBy.name,t,n,h,...l)}async listBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${L.tableName(this.class)} by ${t} ${e}`),await this.statement(this.listBy.name,t,{direction:e},...n)}async findBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findBy.name,t,e,{},...n)}async findOneBy(t,e,...r){const{log:i,ctxArgs:n}=(await this.logCtx(r,s.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${L.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findOneBy.name,t,e,{},...n)}async find(t,e=r.ASC,...i){const{log:n,ctxArgs:a}=(await this.logCtx(i,s.FIND,!0)).for(this.find);return n.verbose(`finding ${L.tableName(this.class)} by default query attributes`),await this.statement(this.find.name,t,e,...a)}async page(t,e=r.ASC,i={offset:1,limit:10},...n){const{log:a,ctxArgs:o}=(await this.logCtx(n,s.PAGE,!0)).for(this.page);return a.verbose(`paging ${L.tableName(this.class)} by default query attributes`),await this.statement(this.page.name,t,e,i,...o)}async statement(t,...e){const{log:s,ctx:r,ctxArgs:n}=(await this.logCtx(e,i.STATEMENT,!0)).for(this.statement),a=n.slice(0,-1),o=a[a.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:a.pop(),l={class:this.class,args:a,method:t,params:c},h=this.adapter.toRequest(l,r);s.verbose("Executing prepared statement "+t);const d=await this.request(h,...n),u=this.adapter.parseResponse(this.class,t,d);return this.convertStatementResult(t,u,r)}convertStatementResult(t,e,r){return e?t===s.FIND||t===s.LIST_BY||t===s.FIND_BY?Array.isArray(e)?e.map(t=>this.revertRecord(t,r)):e:t===s.FIND_ONE_BY?this.revertRecord(e,r):t===s.PAGE||t===s.PAGE_BY?this.convertPageResult(e,r):e:e}convertPageResult(t,e){if(!t)return t;let s=t;if("string"==typeof s)try{s=n.deserialize(s)}catch{return t}return n.isSerializedPage(s)?{...s,data:s.data.map(t=>this.revertRecord(t,e))}:t}revertRecord(t,e){if(!t)return t;if(t instanceof this.class)return t;const s=L.pk(this.class),r=L.columnName(this.class,s),i=s??r,n=t[r]??t[i];if(void 0!==n)try{return this.adapter.revert(t,this.class,n,void 0,e)}catch{}return Object.assign(new this.class,t)}async request(t,...e){let s;s=e.length&&e[e.length-1]instanceof a?this.logCtx(e,this.request):(await this.logCtx(e,A.READ,!0)).for(this.request);const{ctxArgs:r}=s;return this.adapter.request(t,...r)}async countOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.COUNT_OF,!0)).for(this.countOf);r.verbose(`counting ${L.tableName(this.class)}${t?" by "+t:""}`);const n=t?[t,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MAX_OF,!0)).for(this.maxOf);return r.verbose(`finding max of ${t} in ${L.tableName(this.class)}`),await this.statement(this.maxOf.name,t,{},...i)}async minOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.MIN_OF,!0)).for(this.minOf);return r.verbose(`finding min of ${t} in ${L.tableName(this.class)}`),await this.statement(this.minOf.name,t,{},...i)}async avgOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.AVG_OF,!0)).for(this.avgOf);return r.verbose(`calculating avg of ${t} in ${L.tableName(this.class)}`),await this.statement(this.avgOf.name,t,{},...i)}async sumOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.SUM_OF,!0)).for(this.sumOf);return r.verbose(`calculating sum of ${t} in ${L.tableName(this.class)}`),await this.statement(this.sumOf.name,t,{},...i)}async distinctOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.DISTINCT_OF,!0)).for(this.distinctOf);return r.verbose(`finding distinct values of ${t} in ${L.tableName(this.class)}`),await this.statement(this.distinctOf.name,t,{},...i)}async groupOf(t,...e){const{log:r,ctxArgs:i}=(await this.logCtx(e,s.GROUP_OF,!0)).for(this.groupOf);return r.verbose(`grouping ${L.tableName(this.class)} by ${t}`),await this.statement(this.groupOf.name,t,{},...i)}}q([t(),D("design:type",Function),D("design:paramtypes",[String,String,void 0]),D("design:returntype",Promise)],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,r){super(t,e,s,r)}async pagePrepared(t,...r){const i=e.forModel(this.clazz,this.adapter.alias),n=this.query,{method:a,args:o,params:l}=n,h=RegExp(`^${s.FIND_BY}|${s.LIST_BY}`,"gi");if(!a.match(h))throw new c(`Method ${a} is not supported for pagination`);h.lastIndex=0;const d=[a.replace(h,s.PAGE_BY),...o],u={direction:l.direction,limit:this.size,offset:t,bookmark:this._bookmark};d.push(u);const g=await i.statement(...d,...r);return this.apply(g)}prepare(t){throw new c("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(t=1,...e){return super.page(t,...e)}}class 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[r,i,n,a]=s;if("string"!=typeof r)return null;let o;return o=Array.isArray(a)?a.map(t=>e(t)):e(a),[r,i+"",n,o]}catch{return null}}constructor(t,e){super(),this.url=t,this.headers=e,this.stateLock=new j,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 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);let e,s,r,i=!1;const n=new Promise((t,e)=>{s=t,r=e});if(await this.withStateLock(()=>{this.es&&this.ready?e=Promise.resolve():this.opening?e=this.opening:(this.ready=!1,this.opening=n,e=n,i=!0)}),!i)return t.debug("Connection open already in progress for "+this.url,{url:this.url,listeners:this.listeners.size}),void await e;(async()=>{t.info("Opening EventSource connection to "+this.url);const e=await this.getHeaders();this.es=new z(this.url,{...e&&{headers:e},credentials:"include"}),await this.setReady(!1);let i=!1;const n=this;this.controller=this.es.listen({onResponse:async()=>{i||(i=!0,await n.setReady(!0),t.info(`Connected to ${this.url}. Ready to receive events`),s())},onRequestError:({error:e})=>{i||(i=!0,t.error("Failed to establish EventSource connection",{url:this.url,error:e}),n.setReady(!1),r(e),n.listeners.forEach(t=>t.onError((e?.message??e)+"")))},onResponseError:({response:e})=>{if(i)return;i=!0;const s=e?.status,a=e?.statusText;t.error("Listening failed with HTTP error response",{url:this.url,status:s,statusText:a});const o=Error(`HTTP ${s??"unknown"} ${a??"error"}`);n.setReady(!1),r(o),n.listeners.forEach(t=>t.onError(o))},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,r=Z.parseReceivedEvent(s);if(r)for(const e of n.listeners)try{e.onEvent(r)}catch(e){t.error("Listener handler failed on event",{err:e})}else t.warn("Failed to parse SSE message",{url:this.url,raw:s})}})})().catch(async t=>{this.controller=void 0,this.es=void 0,await this.setReady(!1),r(t)});try{await e}finally{await this.setOpening(void 0)}}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,i.INITIALIZATION,!0)).for(this.initialize);this.adapter?(e.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s),e.info(`HttpDispatcher initialized for adapter ${this.adapter}.`)):e.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...t){const{log:e}=this.logCtx(t,this.startListening);if(!this.initialized||!this.adapter)throw e.error("Cannot start listening: dispatcher is not initialized or adapter is missing",{initialized:this.initialized,hasAdapter:!!this.adapter}),Error("Cannot start listening before call initialize()");if(!this.adapter.config.events)return void e.warn("SSe events disabled");this.listening&&e.warn("startListening called but dispatcher is already listening",{adapter:this.adapter+""});const{protocol:s,host:r,eventsListenerPath:i}=this.adapter.config;if(!i)throw e.error("Cannot start listening: no eventsListenerPath specified",{protocol:s,host:r}),Error("No eventsListenerPath specified");const n=new URL(i,`${s}://${r}`).toString();e.info("Opening ServerEventConnector for url: "+n),this.connector=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,r,...i]=t,{log:n,ctxArgs:a}=(await this.logCtx(i,s,!0)).for("onEvent");super.updateObservers(e,s,r,...a).catch(t=>n.error("ServerEventConnector failed to updateObservers",t))},onError:t=>{e.error("ServerEventConnector failed to dispatch event",{error:t,listeningUrl:n,adapter:this.adapter+""})}}),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,r){const i=r||e.name;t[i]=new Proxy(t[i],{apply:async(t,e,r)=>{let i=t.call(e,...r);return i instanceof Promise&&(i=await i),i=s.call(e,i),i instanceof Promise&&(i=await i),i}})}class rt extends d{constructor(t,e,s){super(Object.assign({},t,{headers:void 0===t.headers||t.headers,events:void 0===t.events||t.events}),e,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{st(this,t,e=>r.parseResponse.call(r,void 0,t.name,e),t.name)}),S(this,(...t)=>t,this.request,(t,e)=>{const s=r.config.parsers;return s?(s.forEach(s=>s(t,e)),t):t},this.request.name)}async flags(t,e,s){return super.flags(t,e,Object.assign({headers:s.headers??{}},s))}Dispatch(){return new 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),r=Object.assign({},t);return t[i.METADATA]&&(s.silly("Passing along persistence metadata for "+t[i.METADATA]),Object.defineProperty(r,i.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[i.METADATA]})),{record:t,id:t[L.pk(t.constructor)]}}revert(t,e,s,...r){const{log:n}=this.logCtx(r,this.revert),a={},o="string"==typeof e?L.build(a,e):new e(a);n.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof e?L.get(e):e;if(!c)throw new x("Failed to retrieve model constructor for "+e);const l=new c(t),h=t[i.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${h}`),Object.defineProperty(l,i.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(t){return"string"==typeof t?t:F(L.tableName(t))}toHeaders(t){const e={};if(this.config.headers){const s=t.getOrUndefined("correlationId");s&&(e[Y.CORRELATION_ID]=s)}return{...e,...t.getOrUndefined("headers")||{}}}url(t,e,s){s||e&&!Array.isArray(e)&&(s=e,e=[]),t=this.toTableName(t);const r=new URL(`${this.config.protocol}://${this.config.host}/${t}${e&&e.length?"/"+e.join("/"):""}`);return s&&Object.entries(s).forEach(([t,e])=>{Array.isArray(e)?e.forEach(e=>r.searchParams.append(t,e.toString())):"object"==typeof e?r.searchParams.append(t,JSON.stringify(e)):void 0!==e&&r.searchParams.append(t,e.toString())}),r.toString()}extractIdArgs(t,e){const s=e.toString();if("string"==typeof t)return[s];const r=L.composed(t,L.pk(t));return r?s.split(r.separator):[s]}parseResponse(t,e,s){return t&&n.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(e=>new t(e))}):s}raw(t,...e){const{ctxArgs:s,ctx:r}=this.logCtx(e,this.raw),i=this.toRequest(t,r);return this.request(i,...s)}Sequence(t){return Promise.reject(new c("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(t){return new 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(i.QUERY).define({decorator:e=>(s,r,n)=>b(O(E.key(i.QUERY,r),e),t(),(t,e,s)=>{s.value=new Proxy(s.value,{async apply(t,e,s){const i=e,{log:n,ctxArgs:a}=(await i.logCtx(s,A.READ,!0)).for(r);return n.verbose("Running prepared statement "+t.name),n.debug("With args: "+JSON.stringify(s,null,2)),e.statement(t.name,...a)}})})(s,r,n)}).apply()}}rt.decoration();const it="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 rt{constructor(t,e){super(t,it,e)}getClient(){return new k({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(t,e){let s,r;t instanceof a?(r=t,s=void 0):(s=t,r=e);const n={};return r&&(n.headers={...n.headers||{},...this.toHeaders(r)}),s&&(n.method="GET",n.url=this.url(s.class,[i.STATEMENT,s.method,...s.args||[]],s.params)),n}async request(t,...e){let s={};try{const{ctx:t}=this.logCtx(e,this.request);s=this.toRequest(t)}catch(t){}return await this.client.request(Object.assign({},t,s))}parseResponse(t,e,r){if(!r.status&&e!==i.STATEMENT)throw new x("this should be impossible");if(r.status>=400)throw this.parseError(r.error||r.status);const n=this.normalizeResponseBody(r);switch(e){case P.CREATE_ALL:case P.READ_ALL:case P.UPDATE_ALL:case P.DELETE_ALL:case A.CREATE:case A.READ:case A.UPDATE:case A.DELETE:return n;case s.FIND:case s.PAGE:case s.FIND_BY:case s.LIST_BY:case s.PAGE_BY:case s.FIND_ONE_BY:case i.STATEMENT:return super.parseResponse(t,e,n);case s.COUNT_OF:case s.MAX_OF:case s.MIN_OF:case s.AVG_OF:case s.SUM_OF:case s.DISTINCT_OF:return n;case s.GROUP_OF:if(t&&"object"==typeof n&&null!==n){const e={};for(const[s,r]of Object.entries(n))e[s]=Array.isArray(r)?r.map(e=>new t(e)):r;return e}return n;default:return n}}normalizeResponseBody(t){if(!t)return t;const e=void 0!==t.body?t.body:void 0!==t.data?t.data:t;if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}async create(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.create);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`POSTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"POST",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async createAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.createAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`POSTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"POST",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async read(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.read);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async readAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.readAll);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async update(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.update);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`PUTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"PUT",data:JSON.stringify(Object.assign({},s,{[I.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async updateAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.updateAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`PUTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"PUT",data:JSON.stringify(s.map(e=>Object.assign({},e,{[I.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async delete(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}async deleteAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}parseError(t,...e){return rt.parseError(t,...e)}}at.decoration();const ot="##VERSION##",ct="##PACKAGE##";E.registerLibrary(ct,ot);export{it as AxiosFlavour,at as AxiosHttpAdapter,Y as DecafHeaders,rt as HttpAdapter,W as HttpPaginator,X as HttpStatement,et as KeepAliveOperation,ct as PACKAGE_NAME,Q as RestRepository,V as RestService,Z as ServerEventConnector,nt as TaskResponseParser,ot as VERSION,st as suffixMethod};
|
|
2
2
|
//# sourceMappingURL=for-http.js.map
|
package/dist/for-http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-http.js","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","String","listeners","Set","isOpen","es","getHeaders","Promise","resolve","force","info","controller","abort","clear","delete","warn","debug","startListening","opening","EventSourcePlus","credentials","self","listen","onResponse","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","finally","addListener","handlers","add","then","removeListener","existed","listenerFound","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","hasAdapter","config","events","protocol","host","eventsListenerPath","listeningUrl","URL","async","InternalError","getEventHeaders","e","removeConnectorListener","operation","updateObservers","catch","KeepAliveOperation","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","HttpAdapter","Adapter","flavour","create","read","update","createAll","readAll","updateAll","deleteAll","res","wrapMethodWithContext","parsers","p","flags","model","eventHeaderResolver","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","ob","m","constr","metadata","toTableName","t","toKebabCase","toHeaders","fromCtx","correlationId","getOrUndefined","CORRELATION_ID","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","d","rawInput","Sequence","options","reject","parseError","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","AxiosFlavour","TaskResponseParser","PENDING_TASK","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","body","normalizeResponseBody","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","candidate","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-http.js","sources":["../src/constants.ts","../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/event/ServerEventConnector.ts","../src/HttpDispatcher.ts","../src/adapter.ts","../src/axios/constants.ts","../src/axios/axios.ts","../src/axios/index.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["DecafHeaders","RestRepository","Repository","constructor","adapter","clazz","super","this","_overrides","Object","assign","allowRawStatements","forcePrepareSimpleQueries","forcePrepareComplexQueries","url","tableName","pathParams","queryParams","paginateBy","key","order","ref","offset","limit","args","bookmark","log","ctxArgs","logCtx","PreparedStatementKeys","PAGE_BY","for","verbose","Model","class","params","direction","statement","name","listBy","LIST_BY","findBy","value","FIND_BY","findOneBy","FIND_ONE_BY","find","OrderDirection","ASC","FIND","page","PAGE","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","response","request","parsed","parseResponse","convertStatementResult","result","map","record","revertRecord","convertPageResult","serialization","Paginator","deserialize","isSerializedPage","data","pkAttr","pk","pkKey","columnName","fallback","id","revert","details","contextualizeArgs","Context","OperationKeys","READ","countOf","COUNT_OF","stmtArgs","maxOf","MAX_OF","minOf","MIN_OF","avgOf","AVG_OF","sumOf","SUM_OF","distinctOf","DISTINCT_OF","groupOf","GROUP_OF","__decorate","prepared","prototype","__metadata","_a","K","_b","_c","_d","_e","_f","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","size","pagePrepared","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","apply","prepare","rawStatement","ServerEventConnector","ContextualLoggedClass","cache","Map","get","has","Error","open","headers","connector","set","close","parseReceivedEvent","raw","deserializePayload","Serialization","JSON","parse","eventName","operationKey","objectId","rawPayload","payload","item","String","stateLock","Lock","ready","listeners","Set","isOpen","es","withStateLock","fn","acquire","Promise","resolve","release","setOpening","opening","isReady","setReady","getHeaders","force","info","controller","abort","clear","delete","warn","debug","startListening","openPromise","resolveOpen","rejectOpen","owner","deferredOpen","reject","EventSourcePlus","credentials","settled","self","listen","onResponse","async","onRequestError","error","forEach","handler","onError","message","onResponseError","status","statusText","err","onMessage","event","onEvent","catch","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","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":"8hCAAYA,ECkDN,MAAOC,UAIHC,EAOR,WAAAC,CAAYC,EAAYC,GACtBC,MAAMF,EAASC,GAPEE,KAAAC,WAAaC,OAAOC,OAAO,CAAA,EAAIJ,MAAkB,WAAG,CACrEK,oBAAoB,EACpBC,2BAA2B,EAC3BC,4BAA4B,GAK9B,CAWA,GAAAC,CACEC,EACAC,EACAC,GAEA,OAAOV,KAAKH,QAAQU,IAAIC,EAAWC,EAAmBC,EACxD,CAES,gBAAMC,CACbC,EACAC,EACAC,EAA+C,CAC7CC,OAAQ,EACRC,MAAO,OAENC,GAEH,MAAMF,OAAEA,EAAMG,SAAEA,EAAQF,MAAEA,GAAUF,GAC9BK,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBC,SAAS,IACvDC,IAAIxB,KAAKW,YACXQ,EAAIM,QACF,cAAcC,EAAMlB,UAAUR,KAAK2B,yBAAyBX,KAG9D,MAAMY,EAA+B,CACnCC,UAAWhB,EACXG,MAAOA,GAKT,OAHIE,IACFU,EAAOV,SAAWA,GAEblB,KAAK8B,UACV9B,KAAKW,WAAWoB,KAChBnB,EACAG,EACAa,KACGR,EAEP,CAES,YAAMY,CACbpB,EACAC,KACGI,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBW,SAAS,IACvDT,IAAIxB,KAAKgC,QAIX,OAHAb,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,aAAaf,KAAiBC,WAElDb,KAAK8B,UACjB9B,KAAKgC,OAAOD,KACZnB,EACA,CAAEiB,UAAWhB,MACVO,EAEP,CAES,YAAMc,CACbtB,EACAuB,KACGlB,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBc,SAAS,IACvDZ,IAAIxB,KAAKkC,QAIX,OAHAf,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,eAAef,KAAiBuB,WAEpDnC,KAAK8B,UACjB9B,KAAKkC,OAAOH,KACZnB,EACAuB,EACA,MACGf,EAEP,CAES,eAAMiB,CACbzB,EACAuB,KACGlB,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBgB,aAAa,IAC3Dd,IAAIxB,KAAKqC,WAIX,OAHAlB,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,eAAef,KAAiBuB,WAEpDnC,KAAK8B,UACjB9B,KAAKqC,UAAUN,KACfnB,EACAuB,EACA,MACGf,EAEP,CAGS,UAAMmB,CACbJ,EACAtB,EAAwB2B,EAAeC,OACpCxB,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBoB,MAAM,IACpDlB,IAAIxB,KAAKuC,MAIX,OAHApB,EAAIM,QACF,WAAWC,EAAMlB,UAAUR,KAAK2B,4CAEpB3B,KAAK8B,UACjB9B,KAAKuC,KAAKR,KACVI,EACAtB,KACGO,EAEP,CAGe,UAAAuB,CACbR,EACAN,EAA4BW,EAAeC,IAC3C3B,EAA+C,CAC7CC,OAAQ,EACRC,MAAO,OAENC,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBsB,MAAM,IACpDpB,IAAIxB,KAAK2C,MAIX,OAHAxB,EAAIM,QACF,UAAUC,EAAMlB,UAAUR,KAAK2B,4CAEnB3B,KAAK8B,UACjB9B,KAAK2C,KAAKZ,KACVI,EACAN,EACAf,KACGM,EAEP,CAES,eAAMU,CACbC,KACGd,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,EAAGzB,QAAEA,UACVpB,KAAKqB,OAAOJ,EAAM6B,EAAgBC,WAAW,IACnDvB,IAAIxB,KAAK8B,WACLkB,EAAU5B,EAAQ6B,MAAM,GAAG,GAC3BC,EAAUF,EAAQA,EAAQG,OAAS,GAKnCvB,EAHe,iBAAZsB,GACK,OAAZA,GACCE,MAAMC,QAAQH,QAGbI,EADCN,EAAQO,MAEPC,EAAgC,CACpC7B,MAAO3B,KAAK2B,MACZV,KAAM+B,EACNS,OAAQ1B,EACRH,OAAQA,GAEJ8B,EAAM1D,KAAKH,QAAQ8D,UAAUH,EAAOX,GAC1C1B,EAAIM,QAAQ,gCAAgCM,GAC5C,MAAM6B,QAAiB5D,KAAK6D,QAAQH,KAAQtC,GACtC0C,EAAS9D,KAAKH,QAAQkE,cAC1B/D,KAAK2B,MACLI,EACA6B,GAEF,OAAO5D,KAAKgE,uBAAuBjC,EAAM+B,EAAQjB,EACnD,CAEQ,sBAAAmB,CACNjC,EACAkC,EACApB,GAEA,OAAKoB,EAGHlC,IAAST,EAAsBoB,MAC/BX,IAAST,EAAsBW,SAC/BF,IAAST,EAAsBc,QAExBgB,MAAMC,QAAQY,GACjBA,EAAOC,IAAKC,GAAWnE,KAAKoE,aAAaD,EAAQtB,IACjDoB,EAGFlC,IAAST,EAAsBgB,YAC1BtC,KAAKoE,aAAaH,EAAQpB,GAIjCd,IAAST,EAAsBsB,MAC/Bb,IAAST,EAAsBC,QAExBvB,KAAKqE,kBAAkBJ,EAAQpB,GAGjCoB,EAvBaA,CAwBtB,CAEQ,iBAAAI,CACN1B,EACAE,GAEA,IAAKF,EAAM,OAAOA,EAElB,IAAI2B,EAA4C3B,EAChD,GAA6B,iBAAlB2B,EACT,IACEA,EAAgBC,EAAUC,YAAeF,EAC3C,CAAE,MACA,OAAO3B,CACT,CAGF,OAAI4B,EAAUE,iBAAiBH,GACtB,IACFA,EACHI,KAAMJ,EAAcI,KAAKR,IAAKC,GAC5BnE,KAAKoE,aAAaD,EAAQtB,KAKzBF,CACT,CAEQ,YAAAyB,CAAaD,EAAatB,GAChC,IAAKsB,EAAQ,OAAOA,EACpB,GAAIA,aAAkBnE,KAAK2B,MAAO,OAAOwC,EAEzC,MAAMQ,EAASjD,EAAMkD,GAAG5E,KAAK2B,OACvBkD,EAAQnD,EAAMoD,WAAW9E,KAAK2B,MAAOgD,GACrCI,EAAYJ,GAAqBE,EACjCG,EAAKb,EAAOU,IAAUV,EAAOY,GAEnC,QAAkB,IAAPC,EACT,IACE,OAAOhF,KAAKH,QAAQoF,OAAOd,EAAQnE,KAAK2B,MAAOqD,OAAI1B,EAAWT,EAChE,CAAE,MAEF,CAGF,OAAO3C,OAAOC,OAAO,IAAIH,KAAK2B,MAASwC,EACzC,CAEA,aAAMN,CACJqB,KACGjE,GAEH,IAAIkE,EAGFA,EADElE,EAAKkC,QAAUlC,EAAKA,EAAKkC,OAAS,aAAciC,EAC9BpF,KAAKqB,OAAOJ,EAAMjB,KAAK6D,gBAGnC7D,KAAKqB,OAAOJ,EAAMoE,EAAcC,MAAM,IAC5C9D,IAAIxB,KAAK6D,SAEb,MAAMzC,QAAEA,GAAY+D,EAEpB,OAAOnF,KAAKH,QAAQgE,QAAWqB,KAAY9D,EAC7C,CAGS,aAAMmE,CACb3E,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBkE,UAAU,IACxDhE,IAAIxB,KAAKuF,SACXpE,EAAIM,QACF,YAAYC,EAAMlB,UAAUR,KAAK2B,SAASf,EAAM,OAAOA,EAAkB,MAE3E,MAAM6E,EAAkB7E,EAAM,CAACA,EAAK,CAAA,GAAM,CAAC,IAC3C,aAAcZ,KAAK8B,UACjB9B,KAAKuF,QAAQxD,QACV0D,KACArE,EAEP,CAGS,WAAMsE,CACb9E,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBqE,QAAQ,IACtDnE,IAAIxB,KAAK0F,OAEX,OADAvE,EAAIM,QAAQ,kBAAkBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBACzD3B,KAAK8B,UAAU9B,KAAK0F,MAAM3D,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,WAAMwE,CACbhF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsBuE,QAAQ,IACtDrE,IAAIxB,KAAK4F,OAEX,OADAzE,EAAIM,QAAQ,kBAAkBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBACzD3B,KAAK8B,UAAU9B,KAAK4F,MAAM7D,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,WAAM0E,CACblF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsByE,QAAQ,IACtDvE,IAAIxB,KAAK8F,OAEX,OADA3E,EAAIM,QAAQ,sBAAsBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBAC7D3B,KAAK8B,UAAU9B,KAAK8F,MAAM/D,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,WAAM4E,CACbpF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsB2E,QAAQ,IACtDzE,IAAIxB,KAAKgG,OAEX,OADA7E,EAAIM,QAAQ,sBAAsBb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBAC7D3B,KAAK8B,UAAU9B,KAAKgG,MAAMjE,KAAMnB,EAAK,MAAOQ,EAC5D,CAGS,gBAAM8E,CACbtF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsB6E,aAAa,IAC3D3E,IAAIxB,KAAKkG,YAIX,OAHA/E,EAAIM,QACF,8BAA8Bb,QAAoBc,EAAMlB,UAAUR,KAAK2B,gBAE3D3B,KAAK8B,UACjB9B,KAAKkG,WAAWnE,KAChBnB,EACA,MACGQ,EAEP,CAGS,aAAMgF,CACbxF,KACGK,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAMK,EAAsB+E,UAAU,IACxD7E,IAAIxB,KAAKoG,SAEX,OADAjF,EAAIM,QAAQ,YAAYC,EAAMlB,UAAUR,KAAK2B,aAAaf,WAC5CZ,KAAK8B,UACjB9B,KAAKoG,QAAQrE,KACbnB,EACA,MACGQ,EAEP,EAlRekF,EAAA,CADdC,4GAkBA7G,EAAA8G,UAAA,OAAA,MAGcF,EAAA,CADdC,mHAuBA7G,EAAA8G,UAAA,OAAA,MAoIcF,EAAA,CADdC,qGAiBA7G,EAAA8G,UAAA,UAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADC,sBAAAC,GAAAA,GAACD,EAAAxG,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADG,sBAAAD,GAAAA,GAACC,EAAA1G,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADI,sBAAAF,GAAAA,GAACE,EAAA3G,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADK,sBAAAH,GAAAA,GAACG,EAAA5G,YAAA,oCAQPR,EAAA8G,UAAA,QAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADM,sBAAAJ,GAAAA,GAACI,EAAA7G,YAAA,oCAePR,EAAA8G,UAAA,aAAA,MAGcF,EAAA,CADdC,8BAEME,EAAA,oBAAA,CAAC,mBAADO,sBAAAL,GAAAA,GAACK,EAAA9G,YAAA,oCAaPR,EAAA8G,UAAA,UAAA,MC5YG,MAAOS,UAIHvH,EAgBR,WAAAE,CAAYC,EAAYC,GACtBC,MAAMF,EAASC,GAhBEE,KAAAC,WAAaC,OAAOC,OAAO,CAAA,EAAIJ,MAAkB,WAAG,CACrEmH,kBAAkB,EAClBC,gBAAgB,EAChB/G,oBAAoB,EACpBC,2BAA2B,EAC3BC,4BAA4B,GAY9B,CAES,QAAA8G,GACP,OAAU1F,EAAMlB,UAAUR,KAAK2B,OAAxB,eACT,ECvEI,MAAO0F,UAIHC,EACR,WAAA1H,CAAYC,EAAY0H,GACtBxH,MAAMF,EAAS0H,EACjB,CAEmB,KAAAC,GACjB,MAAM,IAAIC,EACR,4IAEJ,CAEmB,cAAAC,CAEjBC,KAEG1G,GAEH,MAAM,IAAIwG,EACR,4IAEJ,EClBI,MAAOG,UAIHrD,EACR,WAAA3E,CAAYC,EAAY2D,EAAUqE,EAAc/H,GAC9CC,MAAMF,EAAS2D,EAAOqE,EAAM/H,EAC9B,CAEmB,kBAAMgI,CACvBnF,KACGoF,GAEH,MAAMC,EAAOrI,EAAWsI,SAASjI,KAAKF,MAAOE,KAAKH,QAAQqI,OACpDpG,EAAY9B,KAAKwD,OACjBC,OAAEA,EAAMxC,KAAEA,EAAIW,OAAEA,GAAWE,EAC3BqG,EAAaC,OACjB,IAAI9G,EAAsBc,WAAWd,EAAsBW,UAC3D,MAEF,IAAKwB,EAAO4E,MAAMF,GAChB,MAAM,IAAIV,EACR,UAAUhE,qCAEd0E,EAAOG,UAAY,EACnB,MAEMC,EAAe,CAFD9E,EAAO+E,QAAQL,EAAQ7G,EAAsBC,YAE3BN,GAChCwH,EAAuC,CAC3C5G,UAAWD,EAAOC,UAClBb,MAAOhB,KAAK6H,KACZ9G,OAAQ4B,EACRzB,SAAUlB,KAAK0I,WAGjBH,EAAaI,KAAKF,GAElB,MAAMxE,QAAe+D,EAAKlG,aACpByG,KACDR,GAEL,OAAO/H,KAAK4I,MAAM3E,EACpB,CAEU,OAAA4E,CAAQC,GAChB,MAAM,IAAIrB,EACR,sGAEJ,CAES,IAAA9E,CACPA,EAAe,KACZ1B,GAEH,OAAOlB,MAAM4C,KAAKA,KAAS1B,EAC7B,EC3DI,MAAO8H,UAA6BC,SAChBhJ,KAAAiJ,MAAQ,IAAIC,GAAoC,CAExE,UAAOC,CAAI5I,GACT,GAAIP,KAAKiJ,MAAMG,IAAI7I,GAAM,OAAOP,KAAKiJ,MAAME,IAAI5I,GAE/C,MAAU8I,MACR,6CAA6C9I,qCAEjD,CAEA,WAAO+I,CACL/I,EACAgJ,GAEA,GAAIvJ,KAAKiJ,MAAMG,IAAI7I,GAAM,OAAOP,KAAKiJ,MAAME,IAAI5I,GAE/C,MAAMiJ,EAAY,IAAIT,EAAqBxI,EAAKgJ,GAEhD,OADAvJ,KAAKiJ,MAAMQ,IAAIlJ,EAAKiJ,GACbxJ,KAAKiJ,MAAME,IAAI5I,EACxB,CAEA,YAAOmJ,CAAMnJ,GACPP,KAAKiJ,MAAMG,IAAI7I,IACCP,KAAKiJ,MAAME,IAAI5I,GACvBmJ,OAEd,CAEQ,yBAAOC,CAAmBC,GAChC,MAAMC,EAAsB1H,IAC1B,GAAqB,iBAAVA,EAAoB,OAAOA,EACtC,IACE,OAAO2H,EAActF,YAAYrC,EACnC,CAAE,MACA,IACE,OAAO4H,KAAKC,MAAM7H,EACpB,CAAE,MACA,OAAOA,CACT,CACF,GAEF,IACE,MAAMuC,EAAsB,iBAARkF,EAAmBG,KAAKC,MAAMJ,GAAOA,EACzD,IAAKxG,MAAMC,QAAQqB,IAAuB,EAAdA,EAAKvB,OAAY,OAAO,KAEpD,MAAO8G,EAAWC,EAAcC,EAAUC,GAAc1F,EACxD,GAAyB,iBAAduF,EAAwB,OAAO,KAE1C,IAAII,EAMJ,OAJEA,EADEjH,MAAMC,QAAQ+G,GACNA,EAAWlG,IAAKoG,GAAST,EAAmBS,IAE5CT,EAAmBO,GAExB,CAACH,EAAkBC,EAAPK,GAAsBJ,EAAUE,EACrD,CAAE,MACA,OAAO,IACT,CACF,CAUA,WAAAzK,CACmBW,EACAgJ,GAEjBxJ,QAHiBC,KAAAO,IAAAA,EACAP,KAAAuJ,QAAAA,EAPFvJ,KAAAwK,UAAY,IAAIC,EAEzBzK,KAAA0K,OAAQ,EACR1K,KAAA2K,UAAgC,IAAIC,GAO5C,CAEA,MAAAC,GACE,YAAmBvH,IAAZtD,KAAK8K,EACd,CAEQ,mBAAMC,CAAiBC,SACvBhL,KAAKwK,UAAUS,UACrB,IACE,aAAaC,QAAQC,QAAQH,IAC/B,SACEhL,KAAKwK,UAAUY,SACjB,CACF,CAEQ,gBAAMC,CAAWC,SACjBtL,KAAK+K,cAAc,KACvB/K,KAAKsL,QAAUA,GAEnB,CAEQ,aAAMC,GACZ,OAAOvL,KAAK+K,cAAc,IAAM/K,KAAK0K,MACvC,CAEQ,cAAMc,CAASd,SACf1K,KAAK+K,cAAc,KACvB/K,KAAK0K,MAAQA,GAEjB,CAEU,gBAAMe,GACd,IAAIlC,EAAUvJ,KAAKuJ,QAMnB,MAJ2B,mBAAhBvJ,KAAKuJ,UACdA,QAAgB2B,QAAQC,QAAQnL,KAAKuJ,YAGhCA,GAAW,CAAA,CACpB,CAEA,KAAAG,CAAMgC,GAAiB,GACrB,MAAMvK,EAAMnB,KAAKmB,IAAIK,IAAIxB,KAAK0J,OAE9B,GAAK1J,KAAK8K,GAOV,GAA0B,GAAtB9K,KAAK2K,UAAU9C,MAAa6D,EAQhC,IACEvK,EAAIwK,KAAK,oDAAoD3L,KAAKO,KAClEP,KAAK4L,YAAYC,OACnB,SACE7L,KAAK4L,gBAAatI,EAClBtD,KAAK8K,QAAKxH,EACLtD,KAAKwL,UAAS,GACdxL,KAAKqL,gBAAW/H,GACrBtD,KAAK2K,UAAUmB,QACf/C,EAAqBE,MAAM8C,OAAO/L,KAAKO,KACvCY,EAAIwK,KACF,0BAA0B3L,KAAKO,mCAEnC,MApBEY,EAAI6K,KACF,yCAAyChM,KAAKO,cAASP,KAAK2K,UAAU9C,2CARxE1G,EAAI8K,MACF,2DAAsDjM,KAAKO,IA2BjE,CAMQ,oBAAM2L,GACZ,MAAM/K,EAAMnB,KAAKmB,IAAIK,IAAIxB,KAAKkM,gBAC9B,IACIC,EACAC,EACAC,EAHAC,GAAQ,EAIZ,MAAMC,EAAe,IAAIrB,QAAc,CAACC,EAASqB,KAC/CJ,EAAcjB,EACdkB,EAAaG,IAkBf,SAfMxM,KAAK+K,cAAc,KACnB/K,KAAK8K,IAAM9K,KAAK0K,MAClByB,EAAcjB,QAAQC,UAGpBnL,KAAKsL,QACPa,EAAcnM,KAAKsL,SAGrBtL,KAAK0K,OAAQ,EACb1K,KAAKsL,QAAUiB,EACfJ,EAAcI,EACdD,GAAQ,MAGLA,EAMH,OALAnL,EAAI8K,MAAM,2CAA2CjM,KAAKO,IAAO,CAC/DA,IAAKP,KAAKO,IACVoK,UAAW3K,KAAK2K,UAAU9C,kBAEtBsE,EAIR,WACEhL,EAAIwK,KAAK,qCAAqC3L,KAAKO,KACnD,MAAMgJ,QAAgBvJ,KAAKyL,aAC3BzL,KAAK8K,GAAK,IAAI2B,EAAgBzM,KAAKO,IAAK,IAClCgJ,GAAW,CAAEA,QAASA,GAC1BmD,YAAa,kBAET1M,KAAKwL,UAAS,GACpB,IAAImB,GAAU,EAGd,MAAMC,EAA6B5M,KACnCA,KAAK4L,WAAa5L,KAAK8K,GAAG+B,OAAO,CAC/BC,WAAYC,UACNJ,IACJA,GAAU,QACJC,EAAKpB,UAAS,GACpBrK,EAAIwK,KAAK,gBAAgB3L,KAAKO,gCAC9B6L,MAEFY,eAAgB,EAAGC,YACbN,IACJA,GAAU,EACVxL,EAAI8L,MAAM,6CAA8C,CACtD1M,IAAKP,KAAKO,IACV0M,UAGGL,EAAKpB,UAAS,GACnBa,EAAWY,GACXL,EAAKjC,UAAUuC,QAASC,GACtBA,EAAQC,SAAgBH,GAAeI,SAAWJ,GAAlC1C,OAGpB+C,gBAAiB,EAAG1J,eAClB,GAAI+I,EAAS,OACbA,GAAU,EACV,MAAMY,EAAS3J,GAAU2J,OACnBC,EAAa5J,GAAU4J,WAC7BrM,EAAI8L,MAAM,4CAA6C,CACrD1M,IAAKP,KAAKO,IACVgN,SACAC,eAEF,MAAMC,EAAUpE,MACd,QAAQkE,GAAU,aAAaC,GAAc,WAE1CZ,EAAKpB,UAAS,GACnBa,EAAWoB,GACXb,EAAKjC,UAAUuC,QAASC,GAAYA,EAAQC,QAAQK,KAEtDC,UAAYL,IACV,GAAsB,cAAlBA,EAAQM,MAEV,YADAxM,EAAI8K,MAAM,2CAIZ,MAAMrC,EACJyD,GAA8B,iBAAZA,GAAwB,SAAUA,EAChDA,EAAQ3I,KACR2I,EAEAM,EAAQ5E,EAAqBY,mBAAmBC,GACtD,GAAK+D,EAQL,IAAK,MAAMR,KAAWP,EAAKjC,UACzB,IACEwC,EAAQS,QAAQD,EAClB,CAAE,MAAOF,GACPtM,EAAI8L,MAAM,mCAAoC,CAAEQ,OAClD,MAZAtM,EAAI6K,KAAK,8BAA+B,CACtCzL,IAAKP,KAAKO,IACVqJ,UAcT,EAhFD,GAgFKiE,MAAMd,MAAOE,IAChBjN,KAAK4L,gBAAatI,EAClBtD,KAAK8K,QAAKxH,QACJtD,KAAKwL,UAAS,GACpBa,EAAWY,KAEb,UACQd,CACR,eACQnM,KAAKqL,gBAAW/H,EACxB,CACF,CAMA,qBAAMwK,SACE9N,KAAKkM,gBACb,CAEA,WAAA6B,CAAYC,GACV,MAAM7M,EAAMnB,KAAKmB,IAAIK,IAAIxB,KAAK+N,aAW9B,OAVA5M,EAAIwK,KACF,uCAAuC3L,KAAKO,cAASP,KAAK2K,UAAU9C,2BAGtE7H,KAAK2K,UAAUsD,IAAID,GACnBhO,KAAK8N,kBAAkBI,KAAK,KAC1B/M,EAAIwK,KACF,sCAAsC3L,KAAKO,iCAA4BP,KAAK2K,UAAU9C,UAGnF,IAAM7H,KAAKmO,eAAeH,EACnC,CAEA,cAAAG,CAAeH,GACb,MAAM7M,EAAMnB,KAAKmB,IAAIK,IAAIxB,KAAKmO,gBACxBC,EAAUpO,KAAK2K,UAAUvB,IAAI4E,GAEnC7M,EAAIwK,KACF,yCAAyC3L,KAAKO,kCAAkCP,KAAK2K,UAAU9C,OAC/F,CACEwG,cAAeD,IAIfA,IACFpO,KAAK2K,UAAUoB,OAAOiC,GACtB7M,EAAI8K,MACF,wCAAwCjM,KAAKO,iCAA4BP,KAAK2K,UAAU9C,SAIhE,IAAxB7H,KAAK2K,UAAU9C,OACjB1G,EAAIwK,KACF,0DAA0D3L,KAAKO,OAC/D,CACEA,IAAKP,KAAKO,IACVoK,UAAW3K,KAAK2K,UAAU9C,OAG9B7H,KAAK0J,QAET,ECzUI,MAAO4E,WAAuBC,EAApC,WAAA3O,uBAMqBI,KAAAwO,aAAc,EACzBxO,KAAAyO,WAAY,CA4ItB,CAtIqB,gBAAMC,IACpBzN,GAEH,MAAME,IAAEA,EAAGC,QAAEA,UACLpB,KAAKqB,OAAOJ,EAAM6B,EAAgB6L,gBAAgB,IACxDnN,IAAIxB,KAAK0O,YAEN1O,KAAKH,SAQVsB,EAAIwK,KACF,gBAAgB3L,KAAKH,oDAEvBG,KAAKwO,aAAc,QACbxO,KAAKkM,kBAAkB9K,GAE7BD,EAAIwK,KAAK,0CAA0C3L,KAAKH,aAVtDsB,EAAIM,QAAQ,4DAWhB,CAKA,oBAAMyK,IAAkBjL,GACtB,MAAME,IAAEA,GAAQnB,KAAKqB,OAAOJ,EAAMjB,KAAKkM,gBACvC,IAAKlM,KAAKwO,cAAgBxO,KAAKH,QAQ7B,MAPAsB,EAAI8L,MACF,8EACA,CACEuB,YAAaxO,KAAKwO,YAClBI,aAAc5O,KAAKH,UAGbwJ,MAAM,mDAKlB,IAFarJ,KAAKH,QAAQgP,OAEhBC,OAER,YADA3N,EAAI6K,KAAK,uBAGPhM,KAAKyO,WACPtN,EAAI6K,KAAK,4DAA6D,CACpEnM,QAAgBG,KAAKH,QAAZ0K,KAIb,MAAMwE,SAAEA,EAAQC,KAAEA,EAAIC,mBAAEA,GAAuBjP,KAAKH,QACjDgP,OAEH,IAAKI,EAKH,MAJA9N,EAAI8L,MAAM,0DAA2D,CACnE8B,WACAC,SAEQ3F,MAAM,mCAGlB,MAAM6F,EAAe,IAAIC,IACvBF,EACA,GAAGF,OAAcC,KACjB5H,WAEFjG,EAAIwK,KAAK,yCAAyCuD,GAClDlP,KAAKwJ,UAAYT,EAAqBO,KAAK4F,EAAcnC,UACvD,IAAK/M,KAAKH,QAAS,MAAM,IAAIuP,EAAc,2BAC3C,IACE,OAAQpP,KAAKH,QAAgBwP,iBAC/B,CAAE,MAAOC,GACP,MAAM,IAAIF,EAAc,gCAAgCE,EAC1D,IAGFnO,EAAI8K,MACF,qDAAqDiD,GAEvDlP,KAAKuP,4BACLvP,KAAKuP,wBAA0BvP,KAAKwJ,UAAUuE,YAAY,CACxDH,QAASb,MAAOY,IACd,MAAOnN,EAAWgP,EAAWxK,KAAO/D,GAAQ0M,GACtCxM,IAAEA,EAAGC,QAAEA,UAAmBpB,KAAKqB,OAAOJ,EAAMuO,GAAW,IAAOhO,IAClE,WAGFzB,MACG0P,gBACCjP,EACAgP,EACAxK,KACI5D,GAELyM,MAAOyB,GACNnO,EAAI8L,MAAM,iDAAkDqC,KAGlElC,QAAUkC,IACRnO,EAAI8L,MAAM,gDAAiD,CACzDA,MAAOqC,EACPJ,eACArP,QAAgBG,KAAKH,QAAZ0K,cAMTvK,KAAKwJ,UAAUsE,kBAErB9N,KAAKyO,WAAY,EACjBtN,EAAIwK,KAAK,sCAAsCuD,KACjD,CAES,WAAMxF,IAEVzI,GAWHjB,KAAKuP,4BACLvP,KAAKuP,6BAA0BjM,EAC/BtD,KAAKwJ,WAAWE,QAChB1J,KAAKyO,WAAY,CACnB,EN/JF,CAAYhP,IACVA,EAAA,aAAA,iBACAA,EAAA,eAAA,kBACD,EAHD,CAAYA,IAAAA,EAAY,CAAA,IAKjB,MAAMiQ,GAAqB,YOkD5B,SAAUC,GACdC,EACAC,EACAC,EACAC,GAEA,MAAMhO,EAAOgO,GAA0BF,EAAO9N,KAC9C6N,EAAI7N,GAAQ,IAAIiO,MAAMJ,EAAI7N,GAAO,CAC/B6G,MAAOmE,MAAOkD,EAAQC,EAASC,KAC7B,IAAIC,EAAUH,EAAOI,KAAKH,KAAYC,GAOtC,OANIC,aAAmBlF,UAASkF,QAAgBA,GAEhDA,EAAUN,EAAOO,KAAKH,EAASE,GAE3BA,aAAmBlF,UAASkF,QAAgBA,GAEzCA,IAGb,CAiCM,MAAgBE,WAMZC,EACR,WAAA3Q,CAAsBiP,EAAc2B,EAAiBtI,GACnDnI,MACEG,OAAOC,OAAO,CAAA,EAAI0O,EAAQ,CACxBtF,aAAmC,IAAnBsF,EAAOtF,SAAiCsF,EAAOtF,QAC/DuF,YAAiC,IAAlBD,EAAOC,QAAgCD,EAAOC,SAE/D0B,EACAtI,GAIF,MAAM0E,EAAO5M,KACb,CACEA,KAAKyQ,OACLzQ,KAAK0Q,KACL1Q,KAAK2Q,OACL3Q,KAAK+L,OACL/L,KAAK4Q,UACL5Q,KAAK6Q,QACL7Q,KAAK8Q,UACL9Q,KAAK+Q,WACL7D,QAASzJ,IACTkM,GACE3P,KACAyD,EACCuN,GACCpE,EAAK7I,cAAcsM,KAAKzD,OAAMtJ,EAAWG,EAAO1B,KAAMiP,GACxDvN,EAAO1B,QAGXkP,EACEjR,KACA,IAAIiB,IAAgBA,EACpBjB,KAAK6D,QACL,CAACmN,EAAUnO,KACT,MAAMqO,EAAUtE,EAAKiC,OAAOqC,QAC5B,OAAKA,GACLA,EAAQhE,QAASiE,GAAMA,EAAEH,EAAKnO,IACvBmO,GAFcA,GAIvBhR,KAAK6D,QAAQ9B,KAEjB,CAYmB,WAAMqP,CACvB5B,EACA6B,EACA9J,GAEA,OAAOxH,MAAMqR,MACX5B,EACA6B,EACAnR,OAAOC,OACL,CACEoJ,QAAShC,EAAUgC,SAAW,CAAA,GAEhChC,GAGN,CAEmB,QAAAgH,GACjB,OAAO,IAAID,EACb,CAEU,qBAAMe,GACd,OAAKrP,KAAK6O,OAAOyC,2BAEKpG,QAAQC,QAAQnL,KAAK6O,OAAOyC,sBAFL,CAAA,CAI/C,CASS,UAAAC,GAGP,OAAOtK,CACT,CAYS,OAAA4B,CACPwI,KACGpQ,GAEH,MAAME,IAAEA,GAAQnB,KAAKqB,OAAOJ,EAAMjB,KAAK6I,SACjC5E,EAAS/D,OAAOC,OAAO,CAAA,EAAIkR,GAajC,OAZKA,EAAcvO,EAAgB0O,YACjCrQ,EAAIsQ,MACF,0CAA2CJ,EAAcvO,EAAgB0O,WAE3EtR,OAAOwR,eAAezN,EAAQnB,EAAgB0O,SAAU,CACtDG,YAAY,EACZC,UAAU,EACVC,cAAc,EACd1P,MAAQkP,EAAcvO,EAAgB0O,aAInC,CACLrN,OAAQkN,EACRrM,GAAIqM,EAAM3P,EAAMkD,GAAGyM,EAAMzR,cAE7B,CAaS,MAAAqF,CACP2K,EACA9P,EACAkF,KACG/D,GAEH,MAAME,IAAEA,GAAQnB,KAAKqB,OAAOJ,EAAMjB,KAAKiF,QACjC6M,EAA0B,CAAA,EAC1BC,EACa,iBAAVjS,EAAqB4B,EAAM8F,MAAMsK,EAAIhS,GAAS,IAAIA,EAAMgS,GAEjE3Q,EAAIsQ,MAAM,oBAAoBM,EAAEnS,YAAYmC,WAAWiD,KACvD,MAAMgN,EAA0B,iBAAVlS,EAAqB4B,EAAMyH,IAAIrJ,GAASA,EAC9D,IAAKkS,EACH,MAAM,IAAI5C,EACR,4CAA4CtP,GAEhD,MAAMmE,EAAS,IAAK+N,EAA0BpC,GACxCqC,EAAWrC,EAAI9M,EAAgB0O,UAarC,OAZIS,IACF9Q,EAAIsQ,MACF,iBAAiBzR,KAAKwQ,oCAAoCuB,EAAEnS,YAAYmC,WAAWiD,MAAOiN,KAE5F/R,OAAOwR,eAAezN,EAAQnB,EAAgB0O,SAAU,CACtDG,YAAY,EACZE,cAAc,EACdD,UAAU,EACVzP,MAAO8P,KAIJhO,CACT,CAEU,WAAAiO,CAA6BC,GACrC,MAAoB,iBAANA,EAAiBA,EAAIC,EAAY1Q,EAAMlB,UAAU2R,GACjE,CAEU,SAAAE,CAAUxP,GAClB,MAAMyP,EAA+B,CAAA,EACrC,GAAItS,KAAK6O,OAAOtF,QAAS,CACvB,MAAMgJ,EAAgB1P,EAAI2P,eAAe,iBACrCD,IAAeD,EAAQ7S,EAAagT,gBAAkBF,EAC5D,CACA,MAAO,IAAKD,KAAazP,EAAI2P,eAAe,YAAc,CAAA,EAC5D,CAgDA,GAAAjS,CACEC,EACAC,EACAC,GAEKA,GACCD,IAAe2C,MAAMC,QAAQ5C,KAC/BC,EAAcD,EACdA,EAAa,IAIjBD,EAAYR,KAAKkS,YAAY1R,GAC7B,MAAMD,EAAM,IAAI4O,IACd,GAAGnP,KAAK6O,OAAOE,cAAc/O,KAAK6O,OAAOG,QAAQxO,IAAYC,GAAcA,EAAW0C,OAAS,IAAK1C,EAAwBiS,KAAK,KAAS,MAa5I,OAXIhS,GACFR,OAAOyS,QAAQjS,GAAawM,QAAQ,EAAEtM,EAAKuB,MACrCiB,MAAMC,QAAQlB,GAChBA,EAAM+K,QAAS0F,GAAMrS,EAAIsS,aAAaC,OAAOlS,EAAKgS,EAAExL,aAC1B,iBAAVjF,EAChB5B,EAAIsS,aAAaC,OAAOlS,EAAKmJ,KAAKgJ,UAAU5Q,SAClB,IAAVA,GAChB5B,EAAIsS,aAAaC,OAAOlS,EAAKuB,EAAMiF,cAIlC7G,EAAI6G,UACb,CAiBU,aAAA4L,CACR3B,EACArM,GAEA,MAAMiO,EAAQjO,EAAGoC,WACjB,GAAqB,iBAAViK,EAAoB,MAAO,CAAC4B,GACvC,MAAMC,EAAWxR,EAAMwR,SAAS7B,EAAO3P,EAAMkD,GAAGyM,IAChD,OAAK6B,EACED,EAAME,MAAMD,EAASE,WADN,CAACH,EAEzB,CAEA,aAAAlP,CACEjE,EACA2D,EACAuN,GAEA,OAAIlR,GAASyE,EAAUE,iBAAiBuM,GAC/B9Q,OAAOC,OAAO,CAAA,EAAI6Q,EAAK,CAC5BtM,KAAMsM,EAAItM,KAAKR,IAAKmP,GAAW,IAAIvT,EAAMuT,MAGtCrC,CACT,CA8EA,GAAApH,CAAO0J,KAAgBrS,GACrB,MAAMG,QAAEA,EAAOyB,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK4J,KAC1ClG,EAAM1D,KAAK2D,UAAU2P,EAAUzQ,GACrC,OAAO7C,KAAK6D,QAAQH,KAAQtC,EAC9B,CAYS,QAAAmS,CAASC,GAChB,OAAOtI,QAAQsB,OACb,IAAI/E,EACF,0FAGN,CAYS,SAAAH,CACPC,GAEA,OAAO,IAAIF,EAAcrH,KAAMuH,EACjC,CAES,SAAAhD,CACPf,EACAqE,EACA/H,GAEA,OAAO,IAAI8H,EACT5H,KACAwD,EACAqE,EACA/H,EAEJ,CAYA,cAAA4H,CAAeC,GACb,MAAM,IAAIF,EACR,yFAEJ,CAEA,iBAAOgM,CACLhG,KAEGxM,GAEH,MAAMyS,EAAqB,iBAARjG,EAAmBA,EAAMA,EAAIJ,QAChD,OAAIqG,EAAIC,SAASC,EAAc7R,OAAS2R,EAAIC,SAAS,OAC5C,IAAIC,EAAcnG,GACvBiG,EAAIC,SAASE,EAAc9R,OAAS2R,EAAIC,SAAS,OAC5C,IAAIE,EAAcpG,GACvBiG,EAAIC,SAASG,EAAgB/R,OAAS2R,EAAIC,SAAS,OAC9C,IAAIG,EAAgBrG,GACzBiG,EAAIC,SAASI,EAAgBhS,OAAS2R,EAAIC,SAAS,OAC9C,IAAII,EAAgBtG,GACzBiG,EAAIC,SAASK,EAAWjS,MAAc,IAAIiS,EAAWvG,GACrDiG,EAAIC,SAASM,EAAYlS,MAAc,IAAIkS,EAAYxG,GACvDiG,EAAIC,SAASlM,EAAiB1F,MACzB,IAAI0F,EAAiBgG,GAC1BiG,EAAIC,SAASO,EAAenS,MAAc,IAAImS,EAAezG,GAC7DiG,EAAIC,SAASQ,EAAcpS,MAAc,IAAIoS,EAAc1G,GAC3DiG,EAAIC,SAASS,EAAmBrS,MAC3B,IAAIqS,EAAmB3G,GAC5BiG,EAAIC,SAASU,EAAetS,MAAc,IAAIsS,EAAe5G,GAC7DiG,EAAIC,SAASW,EAAgBvS,MACxB,IAAIuS,EAAgB7G,GACzBiG,EAAIC,SAASY,EAAmBxS,MAC3B,IAAIwS,EAAmB9G,GACzB,IAAI2B,EAAc3B,EAC3B,CAEA,iBAAgB+G,GACdzU,MAAMyU,aA0CNC,EAAWjT,IAAIsB,EAAgB4R,OAC5BC,OAAO,CACNC,UA3CWpB,GACN,CAAe5D,EAAaiF,EAAYC,IAgCtClM,EACLmM,EAAeC,EAASpU,IAAIkC,EAAgB4R,MAAOG,GAAOrB,GAC1DjN,IA/BO,CACLqJ,EACAqF,EACAH,KAECA,EAA4C3S,MAAQ,IAAI6N,MACtD8E,EAA4C3S,MAC7C,CACE,WAAMyG,CACJqH,EACAC,EACAjP,GAEA,MAAM+G,EAAOkI,GACP/O,IAAEA,EAAGC,QAAEA,UACL4G,EAAa,OAAE/G,EAAMoE,EAAcC,MAAM,IAC/C9D,IAAIqT,GAGN,OAFA1T,EAAIM,QAAQ,8BAA8BwO,EAAOlO,MACjDZ,EAAI8K,MAAM,cAAclC,KAAKgJ,UAAU9R,EAAM,KAAM,IAC3CiP,EAAiCpO,UACvCmO,EAAOlO,QACJX,EAEP,GAGN,EAGKwH,CAILgH,EAAKiF,EAAMC,KAQdlM,OACL,EAGF0H,GAAYkE,aCvnBL,MAAMU,GAAe,QAEfC,GAAqC,CAChDnE,EACAnO,KAEA,GAAImO,EAAIzH,SAAWyH,EAAIzH,QAAQ9J,EAAa2V,cAAe,CACzD,IAAIC,EACJ,IACEA,EAAUtL,KAAKC,MAAMgH,EAAIzH,QAAQ9J,EAAa2V,eAC9ClV,OAAOyS,QAAQ0C,GAASnI,QAAQ,EAAEtM,EAAKuB,MACrCA,EAAM+K,QAAS0F,GAAM/P,EAAIyS,YAAY1U,EAAKgS,KAE9C,CAAE,MAAOtD,GACPzM,EAAI0S,OACD/T,IAAI2T,IACJlI,MACC,wCAAwC+D,EAAIzH,QAAQ9J,EAAa2V,kBAAkB9F,IAEzF,CACF,GCsCI,MAAOkG,WAAyBlF,GAOpC,WAAA1Q,CAAYiP,EAAoB3G,GAC9BnI,MAAM8O,EAAQqG,GAAchN,EAC9B,CAEmB,SAAAuN,GACjB,OAAO,IAAIC,EAAM,CACfC,QAAS,GAAG3V,KAAK6O,OAAOE,cAAc/O,KAAK6O,OAAOG,QAEtD,CAQS,SAAArL,CACPiS,EACA/S,GAEA,IAAIW,EACAqS,EAEAD,aAAsBxQ,GACxByQ,EAAUD,EACVpS,OAAQF,IAERE,EAAQoS,EACRC,EAAUhT,GAGZ,MAAMa,EAA0B,CAAA,EAYhC,OAXImS,IACFnS,EAAI6F,QAAU,IAAM7F,EAAI6F,SAAW,MAAQvJ,KAAKqS,UAAUwD,KAExDrS,IACFE,EAAID,OAAS,MACbC,EAAInD,IAAMP,KAAKO,IACbiD,EAAM7B,MACN,CAACmB,EAAgBC,UAAWS,EAAMC,UAAYD,EAAMvC,MAAQ,IAC5DuC,EAAM5B,SAGH8B,CACT,CASS,aAAMG,CACbqB,KACGjE,GAEH,IAAIsG,EAAY,CAAA,EAChB,IACE,MAAM1E,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK6D,SACvC0D,EAAYvH,KAAK2D,UAAUd,EAE7B,CAAE,MAAOyM,GAET,CAKA,aAHuBtP,KAAK8V,OAAOjS,QACjC3D,OAAOC,OAAO,CAAA,EAAI+E,EAASqC,GAG/B,CAES,aAAAxD,CACPjE,EACA2D,EACAuN,GAEA,IAAKA,EAAIzD,QAAU9J,IAAWX,EAAgBC,UAC5C,MAAM,IAAIqM,EAAc,6BAC1B,GAAI4B,EAAIzD,QAAU,IAChB,MAAMvN,KAAKyT,WAAYzC,EAAI/D,OAAoB+D,EAAIzD,QACrD,MAAMwI,EAAO/V,KAAKgW,sBAAsBhF,GACxC,OAAQvN,GACN,KAAKwS,EAAsBC,WAC3B,KAAKD,EAAsBE,SAC3B,KAAKF,EAAsBG,WAC3B,KAAKH,EAAsBI,WAC3B,KAAKhR,EAAciR,OACnB,KAAKjR,EAAcC,KACnB,KAAKD,EAAckR,OACnB,KAAKlR,EAAcmR,OACjB,OAAOT,EACT,KAAKzU,EAAsBoB,KAC3B,KAAKpB,EAAsBsB,KAC3B,KAAKtB,EAAsBc,QAC3B,KAAKd,EAAsBW,QAC3B,KAAKX,EAAsBC,QAC3B,KAAKD,EAAsBgB,YAC3B,KAAKQ,EAAgBC,UACnB,OAAOhD,MAAMgE,cAAcjE,EAAO2D,EAAQsS,GAC5C,KAAKzU,EAAsBkE,SAC3B,KAAKlE,EAAsBqE,OAC3B,KAAKrE,EAAsBuE,OAC3B,KAAKvE,EAAsByE,OAC3B,KAAKzE,EAAsB2E,OAG3B,KAAK3E,EAAsB6E,YAEzB,OAAO4P,EACT,KAAKzU,EAAsB+E,SAEzB,GAAIvG,GAAyB,iBAATiW,GAA8B,OAATA,EAAe,CACtD,MAAM9R,EAA8B,CAAA,EACpC,IAAK,MAAOrD,EAAKuB,KAAUjC,OAAOyS,QAAQoD,GAEtC9R,EAAOrD,GADLwC,MAAMC,QAAQlB,GACFA,EAAM+B,IAAKmP,GAAW,IAAIvT,EAAMuT,IAEhClR,EAGlB,OAAO8B,CACT,CACA,OAAO8R,EACT,QACE,OAAOA,EAEb,CAEQ,qBAAAC,CAAsBhF,GAC5B,IAAKA,EAAK,OAAOA,EACjB,MAAMyF,OACgB,IAAbzF,EAAI+E,KACP/E,EAAI+E,UACgB,IAAb/E,EAAItM,KACTsM,EAAItM,KACJsM,EACR,GAAyB,iBAAdyF,EACT,IACE,OAAO1M,KAAKC,MAAMyM,EACpB,CAAE,MACA,OAAOA,CACT,CAEF,OAAOA,CACT,CAWS,YAAMhG,CACbjQ,EACAwE,EACAqM,KACGpQ,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAKyQ,QAC5C,IACE,MAAMlQ,EAAMP,KAAKO,IACfC,EACAR,KAAKgT,cAAcxS,EAAWwE,IAE1B0R,EAAM1W,KAAK2D,UAAUd,GAiB3B,OAhBA1B,EAAI8K,MACF,cAAc1L,UAAYwJ,KAAKgJ,UAAU1B,cAAkBtH,KAAKgJ,UAAU2D,YAEvD1W,KAAK6D,QACxB,CACEtD,MACAkD,OAAQ,OACRiB,KAAMqF,KAAKgJ,UACT7S,OAAOC,OAAO,CAAA,EAAIkR,EAAO,CACvB,CAACsF,EAAUC,QAASpW,EAAUuB,WAG/B2U,GAEL7T,EAGJ,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CAES,eAAMsB,CACb9Q,EACAkF,EACAqM,KACGpQ,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK4Q,WAC5C,IACE,MAAMrQ,EAAMP,KAAKO,IAAIT,EAAO,CAAC,SACvB4W,EAAM1W,KAAK2D,UAAUd,GAI3B,OAHA1B,EAAI8K,MACF,cAAc1L,UAAYwJ,KAAKgJ,UAAU1B,cAAkBtH,KAAKgJ,UAAU2D,MAErE1W,KAAK6D,QACV,CACEtD,MACAkD,OAAQ,OACRiB,KAAMqF,KAAKgJ,UACT1B,EAAMnN,IAAK6N,GACT7R,OAAOC,OAAO,CAAA,EAAI4R,EAAG,CACnB,CAAC4E,EAAUC,QAAS9W,EAAMiC,YAI7B2U,GAEL7T,EAEJ,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CAUS,UAAMoB,CACblQ,EACAwE,KACG/D,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK0Q,MAC5C,IACE,MAAMnQ,EAAMP,KAAKO,IACfC,EACAR,KAAKgT,cAAcxS,EAAWwE,IAE1B0R,EAAM1W,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI8K,MAAM,eAAe1L,aAAewJ,KAAKgJ,UAAU2D,YAC1C1W,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,SAAUiT,GAAO7T,EAC5D,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CACS,aAAMuB,CACbrQ,EACAqW,KACG5V,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK6Q,SAC5C,IACE,MAAMtQ,EAAMP,KAAKO,IAAIC,EAAW,CAAC,QAAS,CAAEqW,IAAKA,IAC3CH,EAAM1W,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI8K,MAAM,eAAe1L,aAAewJ,KAAKgJ,UAAU2D,YAC1C1W,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,SAAUiT,GAAO7T,EAC5D,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CAWS,YAAMqB,CACbnQ,EACAwE,EACAqM,KACGpQ,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK2Q,QAC5C,IACE,MAAMpQ,EAAMP,KAAKO,IACfC,EACAR,KAAKgT,cAAcxS,EAAWwE,IAE1B0R,EAAM1W,KAAK2D,UAAUd,GAI3B,OAHA1B,EAAI8K,MACF,aAAa1L,UAAYwJ,KAAKgJ,UAAU1B,cAAkBtH,KAAKgJ,UAAU2D,YAE9D1W,KAAK6D,QAChB,CACEtD,MACAkD,OAAQ,MACRiB,KAAMqF,KAAKgJ,UACT7S,OAAOC,OAAO,CAAA,EAAIkR,EAAO,CACvB,CAACsF,EAAUC,QAA+BpW,EAAUuB,WAGrD2U,GAEL7T,EAEJ,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CAES,eAAMwB,CACbtQ,EACAqW,EACAxF,KACGpQ,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK8Q,WAC5C,IACE,MAAMvQ,EAAMP,KAAKO,IAAIC,EAAW,CAAC,SAC3BkW,EAAM1W,KAAK2D,UAAUd,GAI3B,OAHA1B,EAAI8K,MACF,aAAa1L,UAAYwJ,KAAKgJ,UAAU1B,cAAkBtH,KAAKgJ,UAAU2D,MAEpE1W,KAAK6D,QACV,CACEtD,MACAkD,OAAQ,MACRiB,KAAMqF,KAAKgJ,UACT1B,EAAMnN,IAAK6N,GACT7R,OAAOC,OAAO,CAAA,EAAI4R,EAAG,CACnB,CAAC4E,EAAUC,QAASpW,EAAUuB,YAIjC2U,GAEL7T,EAEJ,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CAUS,YAAM,CACb9O,EACAwE,KACG/D,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK+L,QAC5C,IACE,MAAMxL,EAAMP,KAAKO,IACfC,EACAR,KAAKgT,cAAcxS,EAAWwE,IAE1B0R,EAAM1W,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI8K,MAAM,kBAAkB1L,aAAewJ,KAAKgJ,UAAU2D,YAC7C1W,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,YAAaiT,GAAO7T,EAC/D,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CAES,eAAMyB,CACbvQ,EACAqW,KACG5V,GAEH,MAAME,IAAEA,EAAG0B,IAAEA,GAAQ7C,KAAKqB,OAAOJ,EAAMjB,KAAK+L,QAC5C,IACE,MAAMxL,EAAMP,KAAKO,IAAIC,EAAW,CAAC,QAAS,CAAEqW,IAAKA,IAC3CH,EAAM1W,KAAK2D,UAAUd,GAE3B,OADA1B,EAAI8K,MAAM,kBAAkB1L,aAAewJ,KAAKgJ,UAAU2D,YAC7C1W,KAAK6D,QAAQ,CAAEtD,MAAKkD,OAAQ,YAAaiT,GAAO7T,EAC/D,CAAE,MAAOyM,GACP,MAAMtP,KAAKyT,WAAWnE,EACxB,CACF,CAES,UAAAmE,CAAgChG,KAAexM,GACtD,OAAOqP,GAAYmD,WAAWhG,KAAQxM,EACxC,ECncFuU,GAAiBhB,aCcV,MAAMsC,GAAU,cAEVC,GAAe,cAE5B/B,EAASgC,gBAAgBD,GAAcD"}
|
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":";;;AAAA,yCAQwB;AACxB,6CAA4D;AAE5D,2DAAwD;AAExD,MAAa,cAAe,SAAQ,eAEnC;IAFD;;QAMqB,gBAAW,GAAG,KAAK,CAAC;QAC/B,cAAS,GAAG,KAAK,CAAC;IA4I5B,CAAC;IA1IC;;;OAGG;IACgB,KAAK,CAAC,UAAU,CACjC,GAAG,IAA6B;QAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CACvB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,kEAAkE;YAClE,0EAA0E;YAC1E,qEAAqE;YACrE,GAAG,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CACN,gBAAgB,IAAI,CAAC,OAAO,2CAA2C,CACxE,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC;QAEtC,GAAG,CAAC,IAAI,CAAC,0CAA0C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,GAAG,IAAyB;QAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,GAAG,CAAC,KAAK,CACP,6EAA6E,EAC7E;gBACE,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;aAC3B,CACF,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAoB,CAAC;QAE/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,2DAA2D,EAAE;gBACpE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,OAAO;aACxD,MAAoB,CAAC;QAExB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,yDAAyD,EAAE;gBACnE,QAAQ;gBACR,IAAI;aACL,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,kBAAkB,EAClB,GAAG,QAAQ,MAAM,IAAI,EAAE,CACxB,CAAC,QAAQ,EAAE,CAAC;QAEb,GAAG,CAAC,IAAI,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,4BAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,6BAAa,CAAC,yBAAyB,CAAC,CAAC;YACtE,IAAI,CAAC;gBACH,OAAQ,IAAI,CAAC,OAAe,CAAC,eAAe,EAAE,CAAC;YACjD,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,6BAAa,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CACP,qDAAqD,YAAY,EAAE,CACpE,CAAC;QACF,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACxD,OAAO,EAAE,KAAK,EAAE,KAAuB,EAAE,EAAE;gBACzC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;gBAClD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CACrE,SAAS,CACV,CAAC;gBAEF,KAAK;qBACF,eAAe,CACd,SAAS,EACT,SAAS,EACT,EAAE,EACF,GAAI,OAA0C,CAC/C;qBACA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACX,GAAG,CAAC,KAAK,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAC/D,CAAC;YACN,CAAC;YACD,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;gBAClB,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE;oBACzD,KAAK,EAAE,CAAC;oBACR,YAAY;oBACZ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,6EAA6E;QAC7E,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAEvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,sCAAsC,YAAY,GAAG,CAAC,CAAC;IAClE,CAAC;IAEQ,KAAK,CAAC,KAAK;IAClB,6DAA6D;IAC7D,GAAG,IAAwC;QAE3C,iDAAiD;QACjD,EAAE;QACF,wCAAwC;QACxC,oCAAoC;QACpC,+BAA+B;QAC/B,mCAAmC;QACnC,8DAA8D;QAC9D,MAAM;QAEN,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;CACF;AAnJD,wCAmJC"}
|
|
@@ -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,16 @@ 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 setOpening;
|
|
23
|
+
private isReady;
|
|
24
|
+
private setReady;
|
|
19
25
|
protected getHeaders(): Promise<ServerEventConnectorHeaders>;
|
|
20
26
|
close(force?: boolean): void;
|
|
21
27
|
/**
|
|
@@ -23,6 +29,11 @@ export declare class ServerEventConnector extends ContextualLoggedClass<Context<
|
|
|
23
29
|
* This method must be called only on the shared singleton instance.
|
|
24
30
|
*/
|
|
25
31
|
private startListening;
|
|
32
|
+
/**
|
|
33
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
34
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
35
|
+
*/
|
|
36
|
+
ensureListening(): Promise<void>;
|
|
26
37
|
addListener(handlers: EventHandlers): () => void;
|
|
27
38
|
removeListener(handlers: EventHandlers): void;
|
|
28
39
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventSourcePlus } from "event-source-plus";
|
|
2
2
|
import { Serialization } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { ContextualLoggedClass } from "@decaf-ts/core";
|
|
4
|
+
import { Lock } from "@decaf-ts/transactional-decorators";
|
|
4
5
|
export class ServerEventConnector extends ContextualLoggedClass {
|
|
5
6
|
static { this.cache = new Map(); }
|
|
6
7
|
static get(url) {
|
|
@@ -61,11 +62,35 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
61
62
|
super();
|
|
62
63
|
this.url = url;
|
|
63
64
|
this.headers = headers;
|
|
65
|
+
this.stateLock = new Lock();
|
|
66
|
+
this.ready = false;
|
|
64
67
|
this.listeners = new Set();
|
|
65
68
|
}
|
|
66
69
|
isOpen() {
|
|
67
70
|
return this.es !== undefined;
|
|
68
71
|
}
|
|
72
|
+
async withStateLock(fn) {
|
|
73
|
+
await this.stateLock.acquire();
|
|
74
|
+
try {
|
|
75
|
+
return await Promise.resolve(fn());
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
this.stateLock.release();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async setOpening(opening) {
|
|
82
|
+
await this.withStateLock(() => {
|
|
83
|
+
this.opening = opening;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async isReady() {
|
|
87
|
+
return this.withStateLock(() => this.ready);
|
|
88
|
+
}
|
|
89
|
+
async setReady(ready) {
|
|
90
|
+
await this.withStateLock(() => {
|
|
91
|
+
this.ready = ready;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
69
94
|
async getHeaders() {
|
|
70
95
|
let headers = this.headers;
|
|
71
96
|
if (typeof this.headers == "function") {
|
|
@@ -91,6 +116,8 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
91
116
|
finally {
|
|
92
117
|
this.controller = undefined;
|
|
93
118
|
this.es = undefined;
|
|
119
|
+
void this.setReady(false);
|
|
120
|
+
void this.setOpening(undefined);
|
|
94
121
|
this.listeners.clear();
|
|
95
122
|
ServerEventConnector.cache.delete(this.url);
|
|
96
123
|
log.info(`EventSource connection ${this.url} closed and removed from pool`);
|
|
@@ -102,39 +129,72 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
102
129
|
*/
|
|
103
130
|
async startListening() {
|
|
104
131
|
const log = this.log.for(this.startListening);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
132
|
+
let owner = false;
|
|
133
|
+
let openPromise;
|
|
134
|
+
let resolveOpen;
|
|
135
|
+
let rejectOpen;
|
|
136
|
+
const deferredOpen = new Promise((resolve, reject) => {
|
|
137
|
+
resolveOpen = resolve;
|
|
138
|
+
rejectOpen = reject;
|
|
139
|
+
});
|
|
140
|
+
await this.withStateLock(() => {
|
|
141
|
+
if (this.es && this.ready) {
|
|
142
|
+
openPromise = Promise.resolve();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (this.opening) {
|
|
146
|
+
openPromise = this.opening;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this.ready = false;
|
|
150
|
+
this.opening = deferredOpen;
|
|
151
|
+
openPromise = deferredOpen;
|
|
152
|
+
owner = true;
|
|
153
|
+
});
|
|
154
|
+
if (!owner) {
|
|
110
155
|
log.debug(`Connection open already in progress for ${this.url}`, {
|
|
111
156
|
url: this.url,
|
|
112
157
|
listeners: this.listeners.size,
|
|
113
158
|
});
|
|
114
|
-
await
|
|
159
|
+
await openPromise;
|
|
115
160
|
return;
|
|
116
161
|
}
|
|
117
|
-
|
|
162
|
+
(async () => {
|
|
118
163
|
log.info(`Opening EventSource connection to ${this.url}`);
|
|
119
164
|
const headers = await this.getHeaders();
|
|
120
165
|
this.es = new EventSourcePlus(this.url, {
|
|
121
166
|
...(headers && { headers: headers }),
|
|
122
167
|
credentials: "include",
|
|
123
168
|
});
|
|
169
|
+
await this.setReady(false);
|
|
170
|
+
let settled = false;
|
|
124
171
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
125
172
|
const self = this;
|
|
126
173
|
this.controller = this.es.listen({
|
|
127
|
-
onResponse: () => {
|
|
174
|
+
onResponse: async () => {
|
|
175
|
+
if (settled)
|
|
176
|
+
return;
|
|
177
|
+
settled = true;
|
|
178
|
+
await self.setReady(true);
|
|
128
179
|
log.info(`Connected to ${this.url}. Ready to receive events`);
|
|
180
|
+
resolveOpen();
|
|
129
181
|
},
|
|
130
182
|
onRequestError: ({ error }) => {
|
|
183
|
+
if (settled)
|
|
184
|
+
return;
|
|
185
|
+
settled = true;
|
|
131
186
|
log.error("Failed to establish EventSource connection", {
|
|
132
187
|
url: this.url,
|
|
133
188
|
error,
|
|
134
189
|
});
|
|
190
|
+
void self.setReady(false);
|
|
191
|
+
rejectOpen(error);
|
|
135
192
|
self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
|
|
136
193
|
},
|
|
137
194
|
onResponseError: ({ response }) => {
|
|
195
|
+
if (settled)
|
|
196
|
+
return;
|
|
197
|
+
settled = true;
|
|
138
198
|
const status = response?.status;
|
|
139
199
|
const statusText = response?.statusText;
|
|
140
200
|
log.error("Listening failed with HTTP error response", {
|
|
@@ -143,6 +203,8 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
143
203
|
statusText,
|
|
144
204
|
});
|
|
145
205
|
const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
|
|
206
|
+
void self.setReady(false);
|
|
207
|
+
rejectOpen(err);
|
|
146
208
|
self.listeners.forEach((handler) => handler.onError(err));
|
|
147
209
|
},
|
|
148
210
|
onMessage: (message) => {
|
|
@@ -171,16 +233,31 @@ export class ServerEventConnector extends ContextualLoggedClass {
|
|
|
171
233
|
}
|
|
172
234
|
},
|
|
173
235
|
});
|
|
174
|
-
})().
|
|
175
|
-
this.
|
|
236
|
+
})().catch(async (error) => {
|
|
237
|
+
this.controller = undefined;
|
|
238
|
+
this.es = undefined;
|
|
239
|
+
await this.setReady(false);
|
|
240
|
+
rejectOpen(error);
|
|
176
241
|
});
|
|
177
|
-
|
|
242
|
+
try {
|
|
243
|
+
await openPromise;
|
|
244
|
+
}
|
|
245
|
+
finally {
|
|
246
|
+
await this.setOpening(undefined);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
251
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
252
|
+
*/
|
|
253
|
+
async ensureListening() {
|
|
254
|
+
await this.startListening();
|
|
178
255
|
}
|
|
179
256
|
addListener(handlers) {
|
|
180
257
|
const log = this.log.for(this.addListener);
|
|
181
258
|
log.info(`Registering listener for connection ${this.url} — ${this.listeners.size} active listener(s)`);
|
|
182
259
|
this.listeners.add(handlers);
|
|
183
|
-
this.
|
|
260
|
+
this.ensureListening().then(() => {
|
|
184
261
|
log.info(`Listener registered for connection ${this.url} — total listener(s): ${this.listeners.size}`);
|
|
185
262
|
});
|
|
186
263
|
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.5";
|
|
26
26
|
export const PACKAGE_NAME = "@decaf-ts/for-http";
|
|
27
27
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -4,6 +4,7 @@ exports.ServerEventConnector = void 0;
|
|
|
4
4
|
const event_source_plus_1 = require("event-source-plus");
|
|
5
5
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
6
6
|
const core_1 = require("@decaf-ts/core");
|
|
7
|
+
const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
|
|
7
8
|
class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
8
9
|
static { this.cache = new Map(); }
|
|
9
10
|
static get(url) {
|
|
@@ -64,11 +65,35 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
64
65
|
super();
|
|
65
66
|
this.url = url;
|
|
66
67
|
this.headers = headers;
|
|
68
|
+
this.stateLock = new transactional_decorators_1.Lock();
|
|
69
|
+
this.ready = false;
|
|
67
70
|
this.listeners = new Set();
|
|
68
71
|
}
|
|
69
72
|
isOpen() {
|
|
70
73
|
return this.es !== undefined;
|
|
71
74
|
}
|
|
75
|
+
async withStateLock(fn) {
|
|
76
|
+
await this.stateLock.acquire();
|
|
77
|
+
try {
|
|
78
|
+
return await Promise.resolve(fn());
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
this.stateLock.release();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async 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
|
+
}
|
|
72
97
|
async getHeaders() {
|
|
73
98
|
let headers = this.headers;
|
|
74
99
|
if (typeof this.headers == "function") {
|
|
@@ -94,6 +119,8 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
94
119
|
finally {
|
|
95
120
|
this.controller = undefined;
|
|
96
121
|
this.es = undefined;
|
|
122
|
+
void this.setReady(false);
|
|
123
|
+
void this.setOpening(undefined);
|
|
97
124
|
this.listeners.clear();
|
|
98
125
|
ServerEventConnector.cache.delete(this.url);
|
|
99
126
|
log.info(`EventSource connection ${this.url} closed and removed from pool`);
|
|
@@ -105,39 +132,72 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
105
132
|
*/
|
|
106
133
|
async startListening() {
|
|
107
134
|
const log = this.log.for(this.startListening);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
135
|
+
let owner = false;
|
|
136
|
+
let openPromise;
|
|
137
|
+
let resolveOpen;
|
|
138
|
+
let rejectOpen;
|
|
139
|
+
const deferredOpen = new Promise((resolve, reject) => {
|
|
140
|
+
resolveOpen = resolve;
|
|
141
|
+
rejectOpen = reject;
|
|
142
|
+
});
|
|
143
|
+
await this.withStateLock(() => {
|
|
144
|
+
if (this.es && this.ready) {
|
|
145
|
+
openPromise = Promise.resolve();
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (this.opening) {
|
|
149
|
+
openPromise = this.opening;
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
this.ready = false;
|
|
153
|
+
this.opening = deferredOpen;
|
|
154
|
+
openPromise = deferredOpen;
|
|
155
|
+
owner = true;
|
|
156
|
+
});
|
|
157
|
+
if (!owner) {
|
|
113
158
|
log.debug(`Connection open already in progress for ${this.url}`, {
|
|
114
159
|
url: this.url,
|
|
115
160
|
listeners: this.listeners.size,
|
|
116
161
|
});
|
|
117
|
-
await
|
|
162
|
+
await openPromise;
|
|
118
163
|
return;
|
|
119
164
|
}
|
|
120
|
-
|
|
165
|
+
(async () => {
|
|
121
166
|
log.info(`Opening EventSource connection to ${this.url}`);
|
|
122
167
|
const headers = await this.getHeaders();
|
|
123
168
|
this.es = new event_source_plus_1.EventSourcePlus(this.url, {
|
|
124
169
|
...(headers && { headers: headers }),
|
|
125
170
|
credentials: "include",
|
|
126
171
|
});
|
|
172
|
+
await this.setReady(false);
|
|
173
|
+
let settled = false;
|
|
127
174
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
128
175
|
const self = this;
|
|
129
176
|
this.controller = this.es.listen({
|
|
130
|
-
onResponse: () => {
|
|
177
|
+
onResponse: async () => {
|
|
178
|
+
if (settled)
|
|
179
|
+
return;
|
|
180
|
+
settled = true;
|
|
181
|
+
await self.setReady(true);
|
|
131
182
|
log.info(`Connected to ${this.url}. Ready to receive events`);
|
|
183
|
+
resolveOpen();
|
|
132
184
|
},
|
|
133
185
|
onRequestError: ({ error }) => {
|
|
186
|
+
if (settled)
|
|
187
|
+
return;
|
|
188
|
+
settled = true;
|
|
134
189
|
log.error("Failed to establish EventSource connection", {
|
|
135
190
|
url: this.url,
|
|
136
191
|
error,
|
|
137
192
|
});
|
|
193
|
+
void self.setReady(false);
|
|
194
|
+
rejectOpen(error);
|
|
138
195
|
self.listeners.forEach((handler) => handler.onError(String(error?.message ?? error)));
|
|
139
196
|
},
|
|
140
197
|
onResponseError: ({ response }) => {
|
|
198
|
+
if (settled)
|
|
199
|
+
return;
|
|
200
|
+
settled = true;
|
|
141
201
|
const status = response?.status;
|
|
142
202
|
const statusText = response?.statusText;
|
|
143
203
|
log.error("Listening failed with HTTP error response", {
|
|
@@ -146,6 +206,8 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
146
206
|
statusText,
|
|
147
207
|
});
|
|
148
208
|
const err = new Error(`HTTP ${status ?? "unknown"} ${statusText ?? "error"}`);
|
|
209
|
+
void self.setReady(false);
|
|
210
|
+
rejectOpen(err);
|
|
149
211
|
self.listeners.forEach((handler) => handler.onError(err));
|
|
150
212
|
},
|
|
151
213
|
onMessage: (message) => {
|
|
@@ -174,16 +236,31 @@ class ServerEventConnector extends core_1.ContextualLoggedClass {
|
|
|
174
236
|
}
|
|
175
237
|
},
|
|
176
238
|
});
|
|
177
|
-
})().
|
|
178
|
-
this.
|
|
239
|
+
})().catch(async (error) => {
|
|
240
|
+
this.controller = undefined;
|
|
241
|
+
this.es = undefined;
|
|
242
|
+
await this.setReady(false);
|
|
243
|
+
rejectOpen(error);
|
|
179
244
|
});
|
|
180
|
-
|
|
245
|
+
try {
|
|
246
|
+
await openPromise;
|
|
247
|
+
}
|
|
248
|
+
finally {
|
|
249
|
+
await this.setOpening(undefined);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
254
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
255
|
+
*/
|
|
256
|
+
async ensureListening() {
|
|
257
|
+
await this.startListening();
|
|
181
258
|
}
|
|
182
259
|
addListener(handlers) {
|
|
183
260
|
const log = this.log.for(this.addListener);
|
|
184
261
|
log.info(`Registering listener for connection ${this.url} — ${this.listeners.size} active listener(s)`);
|
|
185
262
|
this.listeners.add(handlers);
|
|
186
|
-
this.
|
|
263
|
+
this.ensureListening().then(() => {
|
|
187
264
|
log.info(`Listener registered for connection ${this.url} — total listener(s): ${this.listeners.size}`);
|
|
188
265
|
});
|
|
189
266
|
return () => this.removeListener(handlers);
|
|
@@ -12,10 +12,16 @@ 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 setOpening;
|
|
23
|
+
private isReady;
|
|
24
|
+
private setReady;
|
|
19
25
|
protected getHeaders(): Promise<ServerEventConnectorHeaders>;
|
|
20
26
|
close(force?: boolean): void;
|
|
21
27
|
/**
|
|
@@ -23,6 +29,11 @@ export declare class ServerEventConnector extends ContextualLoggedClass<Context<
|
|
|
23
29
|
* This method must be called only on the shared singleton instance.
|
|
24
30
|
*/
|
|
25
31
|
private startListening;
|
|
32
|
+
/**
|
|
33
|
+
* Ensures the shared connection has completed its async open sequence.
|
|
34
|
+
* Callers that need "ready before proceeding" semantics should await this.
|
|
35
|
+
*/
|
|
36
|
+
ensureListening(): Promise<void>;
|
|
26
37
|
addListener(handlers: EventHandlers): () => void;
|
|
27
38
|
removeListener(handlers: EventHandlers): void;
|
|
28
39
|
}
|
|
@@ -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.5";
|
|
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