@decaf-ts/for-http 0.3.37 → 0.3.39

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.
Files changed (52) hide show
  1. package/README.md +1 -1
  2. package/dist/for-http.cjs +1 -1
  3. package/dist/for-http.cjs.map +1 -1
  4. package/dist/for-http.js +1 -1
  5. package/dist/for-http.js.map +1 -1
  6. package/lib/HttpDispatcher.cjs +61 -0
  7. package/lib/HttpDispatcher.d.ts +17 -0
  8. package/lib/HttpDispatcher.js.map +1 -0
  9. package/lib/RestRepository.cjs +88 -0
  10. package/lib/RestRepository.d.ts +9 -1
  11. package/lib/RestRepository.js.map +1 -1
  12. package/lib/adapter.cjs +28 -25
  13. package/lib/adapter.d.ts +2 -2
  14. package/lib/adapter.js.map +1 -1
  15. package/lib/axios/axios.cjs +25 -0
  16. package/lib/axios/axios.js.map +1 -1
  17. package/lib/esm/HttpDispatcher.d.ts +17 -0
  18. package/lib/esm/HttpDispatcher.js +57 -0
  19. package/lib/esm/HttpDispatcher.js.map +1 -0
  20. package/lib/esm/RestRepository.d.ts +9 -1
  21. package/lib/esm/RestRepository.js +89 -1
  22. package/lib/esm/RestRepository.js.map +1 -1
  23. package/lib/esm/adapter.d.ts +2 -2
  24. package/lib/esm/adapter.js +5 -2
  25. package/lib/esm/adapter.js.map +1 -1
  26. package/lib/esm/axios/axios.js +25 -0
  27. package/lib/esm/axios/axios.js.map +1 -1
  28. package/lib/esm/index.d.ts +1 -1
  29. package/lib/esm/index.js +1 -1
  30. package/lib/esm/stream/ServerEventConnector.d.ts +22 -0
  31. package/lib/esm/stream/ServerEventConnector.js +103 -0
  32. package/lib/esm/stream/ServerEventConnector.js.map +1 -0
  33. package/lib/esm/stream/index.d.ts +2 -0
  34. package/lib/esm/stream/index.js +3 -0
  35. package/lib/esm/stream/index.js.map +1 -0
  36. package/lib/esm/stream/types.d.ts +11 -0
  37. package/lib/esm/stream/types.js +2 -0
  38. package/lib/esm/stream/types.js.map +1 -0
  39. package/lib/esm/types.d.ts +1 -0
  40. package/lib/index.cjs +1 -1
  41. package/lib/index.d.ts +1 -1
  42. package/lib/stream/ServerEventConnector.cjs +107 -0
  43. package/lib/stream/ServerEventConnector.d.ts +22 -0
  44. package/lib/stream/ServerEventConnector.js.map +1 -0
  45. package/lib/stream/index.cjs +19 -0
  46. package/lib/stream/index.d.ts +2 -0
  47. package/lib/stream/index.js.map +1 -0
  48. package/lib/stream/types.cjs +3 -0
  49. package/lib/stream/types.d.ts +11 -0
  50. package/lib/stream/types.js.map +1 -0
  51. package/lib/types.d.ts +1 -0
  52. package/package.json +3 -2
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: 3.6 KB kb gzipped
32
+ Minimal size: 4.2 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,a,i,n){"use strict";class o extends t.Repository{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,r){return this.adapter.url(e,t,r)}async paginateBy(e,r,s={offset:1,limit:10},...i){const{offset:n,bookmark:o,limit:c}=s,{log:d,ctxArgs:l}=(await this.logCtx(i,t.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);d.verbose(`paginating ${a.Model.tableName(this.class)} with page size ${c}`);const u={direction:r,limit:c};return o&&(u.bookmark=o),this.statement(this.paginateBy.name,e,n,u,...l)}async listBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${a.Model.tableName(this.class)} by ${e} ${r}`),await this.statement(this.listBy.name,e,{direction:r},...n)}async findBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${a.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findBy.name,e,r,{},...n)}async findOneBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${a.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findOneBy.name,e,r,{},...n)}async statement(e,...r){const{log:s,ctx:a,ctxArgs:i}=(await this.logCtx(r,t.PersistenceKeys.STATEMENT,!0)).for(this.statement),n=i.slice(0,-1),o=n[n.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:n.pop(),d={class:this.class,args:n,method:e,params:c},l=this.adapter.toRequest(d,a);return s.verbose("Executing prepared statement "+e),this.adapter.parseResponse(this.class,e,await this.request(l,...i))}async request(e,...r){let a;a=r.length&&r[r.length-1]instanceof t.Context?this.logCtx(r,this.request):(await this.logCtx(r,s.OperationKeys.READ,!0)).for(this.request);const{ctxArgs:i}=a;return this.adapter.request(e,...i)}}class c extends o{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return a.Model.tableName(this.class)+" REST service"}}class d 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 l extends t.Paginator{constructor(e,t,r,s){super(e,t,r,s)}async pagePrepared(e,...r){const s=t.Repository.forModel(this.clazz,this.adapter.alias),a=this.query,{method:i,args:n,params:o}=a,c=RegExp(`^${t.PreparedStatementKeys.FIND_BY}|${t.PreparedStatementKeys.LIST_BY}`,"gi");if(!i.match(c))throw new t.UnsupportedError(`Method ${i} is not supported for pagination`);c.lastIndex=0;const d=[i.replace(c,t.PreparedStatementKeys.PAGE_BY),...n],l={direction:o.direction,limit:this.size,offset:e,bookmark:this._bookmark};d.push(l);const u=await s.statement(...d,...r);return this.apply(u)}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)}}function u(e,t,r,s){const a=s||t.name;e[a]=new Proxy(e[a],{apply:async(e,t,s)=>{let a=e.call(t,...s);return a instanceof Promise&&(a=await a),a=r.call(t,a),a instanceof Promise&&(a=await a),a}})}class h extends t.Adapter{constructor(e,t,r){super(e,t,r);const a=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{u(this,e,t=>a.parseResponse.call(a,void 0,e.name,t),e.name)}),s.wrapMethodWithContext(this,(...e)=>e,this.request,(e,t)=>{const r=a.config.parsers;return r?(r.forEach(r=>r(e,t)),e):e},this.request.name)}async flags(e,t,r){return super.flags(e,t,Object.assign({headers:r.headers??{}},r))}repository(){return c}prepare(e,...r){const{log:s}=this.logCtx(r,this.prepare),i=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(i,t.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[t.PersistenceKeys.METADATA]})),{record:e,id:e[a.Model.pk(e.constructor)]}}revert(e,r,i,...n){const{log:o}=this.logCtx(n,this.revert),c={},d="string"==typeof r?a.Model.build(c,r):new r(c);o.silly(`Rebuilding model ${d.constructor.name} id ${i}`);const l="string"==typeof r?a.Model.get(r):r;if(!l)throw new s.InternalError("Failed to retrieve model constructor for "+r);const u=new l(e),h=e[t.PersistenceKeys.METADATA];return h&&(o.silly(`Passing along ${this.flavour} persistence metadata for ${d.constructor.name} id ${i}: ${h}`),Object.defineProperty(u,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),u}toTableName(e){return"string"==typeof e?e:i.toKebabCase(a.Model.tableName(e))}url(e,t,r){r||t&&!Array.isArray(t)&&(r=t,t=[]),e=this.toTableName(e);const s=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return r&&Object.entries(r).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>s.searchParams.append(e,t.toString())):"object"==typeof t?s.searchParams.append(e,JSON.stringify(t)):void 0!==t&&s.searchParams.append(e,t.toString())}),s.toString()}extractIdArgs(e,t){const r=t.toString();if("string"==typeof e)return[r];const s=a.Model.composed(e,a.Model.pk(e));return s?r.split(s.separator):[r]}parseResponse(e,r,s){return e&&t.Paginator.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:r,ctx:s}=this.logCtx(t,this.raw),a=this.toRequest(e,s);return this.request(a,...r)}Sequence(e){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new d(this,e)}Paginator(e,t,r){return new l(this,e,t,r)}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...r){const a="string"==typeof e?e:e.message;return a.includes(s.NotFoundError.name)||a.includes("404")?new s.NotFoundError(e):a.includes(s.ConflictError.name)||a.includes("409")?new s.ConflictError(e):a.includes(s.BadRequestError.name)||a.includes("400")?new s.BadRequestError(e):a.includes(s.ValidationError.name)||a.includes("422")?new s.ValidationError(e):a.includes(t.QueryError.name)?new t.QueryError(e):a.includes(t.PagingError.name)?new t.PagingError(e):a.includes(t.UnsupportedError.name)?new t.UnsupportedError(e):a.includes(t.MigrationError.name)?new t.MigrationError(e):a.includes(t.ObserverError.name)?new t.ObserverError(e):a.includes(t.AuthorizationError.name)?new t.AuthorizationError(e):a.includes(t.ForbiddenError.name)?new t.ForbiddenError(e):a.includes(t.ConnectionError.name)?new t.ConnectionError(e):a.includes(s.SerializationError.name)?new s.SerializationError(e):new s.InternalError(e)}static decoration(){super.decoration(),r.Decoration.for(t.PersistenceKeys.QUERY).define({decorator:e=>(a,i,n)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,i),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const a=t,{log:n,ctxArgs:o}=(await a.logCtx(r,s.OperationKeys.READ,!0)).for(i);return n.verbose("Running prepared statement "+e.name),n.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(a,i,n)}).apply()}}h.decoration();const p="axios",g=(e,t)=>{if(e.headers&&e.headers["x-pending-task"]){let r;try{r=JSON.parse(e.headers["x-pending-task"]),Object.entries(r).forEach(([e,r])=>{r.forEach(r=>t.pushPending(e,r))})}catch(r){t.logger.for(g).error(`Failed to parse pending tasks header ${e.headers["x-pending-task"]}: ${r}`)}}};class y extends h{constructor(e,t){super(e,p,t)}getClient(){return new n.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,r){let s,a;e instanceof t.Context?(a=e,s=void 0):(s=e,a=r);const i={};if(a)try{i.headers=a.get("headers")||{}}catch(e){}return s&&(i.method="GET",i.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),i}async request(e,...t){let r={};try{const{ctx:e}=this.logCtx(t,this.request);r=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,r))}parseResponse(e,r,a){if(!a.status&&r!==t.PersistenceKeys.STATEMENT)throw new s.InternalError("this should be impossible");if(a.status>=400)throw this.parseError(a.error||a.status);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.body;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.body);default:return a}}async create(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return i.debug(`POSTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"POST",data:JSON.stringify(Object.assign({},r,{[a.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return i.debug(`POSTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"POST",data:JSON.stringify(r.map(t=>Object.assign({},t,{[a.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async read(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.read);try{const r=this.url(e,this.extractIdArgs(e,t)),i=this.toRequest(a);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"GET",...i},a)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.readAll);try{const r=this.url(e,["bulk"],{ids:t}),i=this.toRequest(a);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"GET",...i},a)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return i.debug(`PUTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"PUT",data:JSON.stringify(Object.assign({},r,{[a.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return i.debug(`PUTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"PUT",data:JSON.stringify(r.map(t=>Object.assign({},t,{[a.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.delete);try{const r=this.url(e,this.extractIdArgs(e,t)),i=this.toRequest(a);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"DELETE",...i},a)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.delete);try{const r=this.url(e,["bulk"],{ids:t}),i=this.toRequest(a);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"DELETE",...i},a)}catch(e){throw this.parseError(e)}}parseError(e,...t){return h.parseError(e,...t)}}y.decoration();const f="##VERSION##",m="##PACKAGE##";r.Metadata.registerLibrary(m,f),e.AxiosFlavour=p,e.AxiosHttpAdapter=y,e.HttpAdapter=h,e.HttpPaginator=l,e.HttpStatement=d,e.PACKAGE_NAME=m,e.RestRepository=o,e.RestService=c,e.TaskResponseParser=g,e.VERSION=f,e.suffixMethod=u},"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("@decaf-ts/logging"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","@decaf-ts/logging","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.decafTsLogging,e.axios);
1
+ var e,t;e=this,t=function(e,t,r,s,a,i,n,o,c){"use strict";var d,l,p,u,h,g;class f extends t.Repository{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}url(e,t,r){return this.adapter.url(e,t,r)}async paginateBy(e,r,s={offset:1,limit:10},...i){const{offset:n,bookmark:o,limit:c}=s,{log:d,ctxArgs:l}=(await this.logCtx(i,t.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);d.verbose(`paginating ${a.Model.tableName(this.class)} with page size ${c}`);const p={direction:r,limit:c};return o&&(p.bookmark=o),this.statement(this.paginateBy.name,e,n,p,...l)}async listBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return i.verbose(`listing ${a.Model.tableName(this.class)} by ${e} ${r}`),await this.statement(this.listBy.name,e,{direction:r},...n)}async findBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return i.verbose(`finding ${a.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findBy.name,e,r,{},...n)}async findOneBy(e,r,...s){const{log:i,ctxArgs:n}=(await this.logCtx(s,t.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return i.verbose(`finding ${a.Model.tableName(this.class)} with ${e} ${r}`),await this.statement(this.findOneBy.name,e,r,{},...n)}async statement(e,...r){const{log:s,ctx:a,ctxArgs:i}=(await this.logCtx(r,t.PersistenceKeys.STATEMENT,!0)).for(this.statement),n=i.slice(0,-1),o=n[n.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:n.pop(),d={class:this.class,args:n,method:e,params:c},l=this.adapter.toRequest(d,a);return s.verbose("Executing prepared statement "+e),this.adapter.parseResponse(this.class,e,await this.request(l,...i))}async request(e,...r){let a;a=r.length&&r[r.length-1]instanceof t.Context?this.logCtx(r,this.request):(await this.logCtx(r,s.OperationKeys.READ,!0)).for(this.request);const{ctxArgs:i}=a;return this.adapter.request(e,...i)}async countOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOf);s.verbose(`counting ${a.Model.tableName(this.class)}${e?" by "+e:""}`);const n=e?[e,{}]:[{}];return await this.statement(this.countOf.name,...n,...i)}async maxOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.MAX_OF,!0)).for(this.maxOf);return s.verbose(`finding max of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.maxOf.name,e,{},...i)}async minOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.MIN_OF,!0)).for(this.minOf);return s.verbose(`finding min of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.minOf.name,e,{},...i)}async avgOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.AVG_OF,!0)).for(this.avgOf);return s.verbose(`calculating avg of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.avgOf.name,e,{},...i)}async sumOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.SUM_OF,!0)).for(this.sumOf);return s.verbose(`calculating sum of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.sumOf.name,e,{},...i)}async distinctOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.DISTINCT_OF,!0)).for(this.distinctOf);return s.verbose(`finding distinct values of ${e} in ${a.Model.tableName(this.class)}`),await this.statement(this.distinctOf.name,e,{},...i)}async groupOf(e,...r){const{log:s,ctxArgs:i}=(await this.logCtx(r,t.PreparedStatementKeys.GROUP_OF,!0)).for(this.groupOf);return s.verbose(`grouping ${a.Model.tableName(this.class)} by ${e}`),await this.statement(this.groupOf.name,e,{},...i)}}i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",[Object,void 0]),i.__metadata("design:returntype",Promise)],f.prototype,"countOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(d="undefined"!=typeof K&&K)?d:Object,void 0]),i.__metadata("design:returntype",Promise)],f.prototype,"maxOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(l="undefined"!=typeof K&&K)?l:Object,void 0]),i.__metadata("design:returntype",Promise)],f.prototype,"minOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(p="undefined"!=typeof K&&K)?p:Object,void 0]),i.__metadata("design:returntype",Promise)],f.prototype,"avgOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(u="undefined"!=typeof K&&K)?u:Object,void 0]),i.__metadata("design:returntype",Promise)],f.prototype,"sumOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(h="undefined"!=typeof K&&K)?h:Object,void 0]),i.__metadata("design:returntype",Promise)],f.prototype,"distinctOf",null),i.__decorate([t.prepared(),i.__metadata("design:type",Function),i.__metadata("design:paramtypes",["function"==typeof(g="undefined"!=typeof K&&K)?g:Object,void 0]),i.__metadata("design:returntype",Promise)],f.prototype,"groupOf",null);class y extends f{constructor(e,t){super(e,t),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return a.Model.tableName(this.class)+" REST service"}}class m 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 E extends t.Paginator{constructor(e,t,r,s){super(e,t,r,s)}async pagePrepared(e,...r){const s=t.Repository.forModel(this.clazz,this.adapter.alias),a=this.query,{method:i,args:n,params:o}=a,c=RegExp(`^${t.PreparedStatementKeys.FIND_BY}|${t.PreparedStatementKeys.LIST_BY}`,"gi");if(!i.match(c))throw new t.UnsupportedError(`Method ${i} is not supported for pagination`);c.lastIndex=0;const d=[i.replace(c,t.PreparedStatementKeys.PAGE_BY),...n],l={direction:o.direction,limit:this.size,offset:e,bookmark:this._bookmark};d.push(l);const p=await s.statement(...d,...r);return this.apply(p)}prepare(e){throw new t.UnsupportedError("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(e=1,...t){return super.page(e,...t)}}class b{static{this.cache=new Map}static get(e){if(this.cache.has(e))return this.cache.get(e);throw Error(`Server event connector not found for URL '${e}'. Did you forget to call open()?`)}static open(e){if(this.cache.has(e))return this.cache.get(e);const t=new b(e);return this.cache.set(e,t),this.cache.get(e)}static parseReceivedEvent(e){try{const t="string"==typeof e?JSON.parse(e):e;if(!Array.isArray(t)||3>t.length)return null;const[r,s,i,n]=t;return"string"!=typeof r?null:[r,s+"",i,"string"==typeof n?a.Serialization.deserialize(n):n]}catch{return null}}constructor(e){this.url=e,this.listeners=new Set}isOpen(){return void 0!==this.es}close(){if(this.es&&0>=this.listeners.size)try{this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),b.cache.delete(this.url)}}startListening(e,t){if(this.es)return;const r=this.url;this.es=new o.EventSourcePlus(r,{headers:t,credentials:"include"}),this.controller=this.es.listen({onResponse:()=>{},onRequestError:({error:t})=>{e.onError((t?.message??t)+"")},onResponseError:({response:t})=>{e.onError("HTTP "+t.status)},onMessage:t=>{const r=t&&"object"==typeof t&&"data"in t?t.data:t,s=b.parseReceivedEvent(r);s&&e.onEvent(s)}}),setInterval(()=>{this.close()},3e4)}addListener(e){this.listeners.add(e)}removeListener(e){this.listeners.delete(e)}}class O extends t.Dispatch{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...e){const{log:r,ctxArgs:s}=(await this.logCtx(e,t.PersistenceKeys.INITIALIZATION,!0)).for(this.initialize);this.adapter?(r.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s)):r.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...e){if(!this.initialized||!this.adapter)throw Error("Cannot start listening before call initialize()");const{log:t}=this.logCtx(e,this.startListening),{protocol:r,host:s,eventsListenerPath:a}=this.adapter.config;if(!a)throw Error("No eventsListenerPath specified");const i=new URL(a,`${r}://${s}`).toString();this.connector=b.open(i),this.connector.startListening({onEvent:async e=>{const[t,r,s,...a]=e,{ctxArgs:i}=(await this.logCtx(a,r,!0)).for("onEvent");super.updateObservers(t,r,s,...i).catch(e=>this.log.error("Failed to dispatch SSE event",e))},onError:e=>{}}),this.listening=!0,t.info(`Initializing event listener for adapter ${this.adapter} at ${i}.`)}async close(){this.connector?.close()}}function w(e,t,r,s){const a=s||t.name;e[a]=new Proxy(e[a],{apply:async(e,t,s)=>{let a=e.call(t,...s);return a instanceof Promise&&(a=await a),a=r.call(t,a),a instanceof Promise&&(a=await a),a}})}class A extends t.Adapter{constructor(e,t,r){super(e,t,r);const a=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(e=>{w(this,e,t=>a.parseResponse.call(a,void 0,e.name,t),e.name)}),s.wrapMethodWithContext(this,(...e)=>e,this.request,(e,t)=>{const r=a.config.parsers;return r?(r.forEach(r=>r(e,t)),e):e},this.request.name)}async flags(e,t,r){return super.flags(e,t,Object.assign({headers:r.headers??{}},r))}Dispatch(){return new O}repository(){return y}prepare(e,...r){const{log:s}=this.logCtx(r,this.prepare),i=Object.assign({},e);return e[t.PersistenceKeys.METADATA]&&(s.silly("Passing along persistence metadata for "+e[t.PersistenceKeys.METADATA]),Object.defineProperty(i,t.PersistenceKeys.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:e[t.PersistenceKeys.METADATA]})),{record:e,id:e[a.Model.pk(e.constructor)]}}revert(e,r,i,...n){const{log:o}=this.logCtx(n,this.revert),c={},d="string"==typeof r?a.Model.build(c,r):new r(c);o.silly(`Rebuilding model ${d.constructor.name} id ${i}`);const l="string"==typeof r?a.Model.get(r):r;if(!l)throw new s.InternalError("Failed to retrieve model constructor for "+r);const p=new l(e),u=e[t.PersistenceKeys.METADATA];return u&&(o.silly(`Passing along ${this.flavour} persistence metadata for ${d.constructor.name} id ${i}: ${u}`),Object.defineProperty(p,t.PersistenceKeys.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:u})),p}toTableName(e){return"string"==typeof e?e:n.toKebabCase(a.Model.tableName(e))}url(e,t,r){r||t&&!Array.isArray(t)&&(r=t,t=[]),e=this.toTableName(e);const s=new URL(`${this.config.protocol}://${this.config.host}/${e}${t&&t.length?"/"+t.join("/"):""}`);return r&&Object.entries(r).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>s.searchParams.append(e,t.toString())):"object"==typeof t?s.searchParams.append(e,JSON.stringify(t)):void 0!==t&&s.searchParams.append(e,t.toString())}),s.toString()}extractIdArgs(e,t){const r=t.toString();if("string"==typeof e)return[r];const s=a.Model.composed(e,a.Model.pk(e));return s?r.split(s.separator):[r]}parseResponse(e,r,s){return e&&t.Paginator.isSerializedPage(s)?Object.assign({},s,{data:s.data.map(t=>new e(t))}):s}raw(e,...t){const{ctxArgs:r,ctx:s}=this.logCtx(t,this.raw),a=this.toRequest(e,s);return this.request(a,...r)}Sequence(e){return Promise.reject(new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(e){return new m(this,e)}Paginator(e,t,r){return new E(this,e,t,r)}parseCondition(e){throw new t.UnsupportedError("Api is not natively available for HttpAdapters. If required, please extends this class")}static parseError(e,...r){const a="string"==typeof e?e:e.message;return a.includes(s.NotFoundError.name)||a.includes("404")?new s.NotFoundError(e):a.includes(s.ConflictError.name)||a.includes("409")?new s.ConflictError(e):a.includes(s.BadRequestError.name)||a.includes("400")?new s.BadRequestError(e):a.includes(s.ValidationError.name)||a.includes("422")?new s.ValidationError(e):a.includes(t.QueryError.name)?new t.QueryError(e):a.includes(t.PagingError.name)?new t.PagingError(e):a.includes(t.UnsupportedError.name)?new t.UnsupportedError(e):a.includes(t.MigrationError.name)?new t.MigrationError(e):a.includes(t.ObserverError.name)?new t.ObserverError(e):a.includes(t.AuthorizationError.name)?new t.AuthorizationError(e):a.includes(t.ForbiddenError.name)?new t.ForbiddenError(e):a.includes(t.ConnectionError.name)?new t.ConnectionError(e):a.includes(s.SerializationError.name)?new s.SerializationError(e):new s.InternalError(e)}static decoration(){super.decoration(),r.Decoration.for(t.PersistenceKeys.QUERY).define({decorator:e=>(a,i,n)=>r.apply(r.methodMetadata(r.Metadata.key(t.PersistenceKeys.QUERY,i),e),t.prepared(),(e,t,r)=>{r.value=new Proxy(r.value,{async apply(e,t,r){const a=t,{log:n,ctxArgs:o}=(await a.logCtx(r,s.OperationKeys.READ,!0)).for(i);return n.verbose("Running prepared statement "+e.name),n.debug("With args: "+JSON.stringify(r,null,2)),t.statement(e.name,...o)}})})(a,i,n)}).apply()}}A.decoration();const x="axios",P=(e,t)=>{if(e.headers&&e.headers["x-pending-task"]){let r;try{r=JSON.parse(e.headers["x-pending-task"]),Object.entries(r).forEach(([e,r])=>{r.forEach(r=>t.pushPending(e,r))})}catch(r){t.logger.for(P).error(`Failed to parse pending tasks header ${e.headers["x-pending-task"]}: ${r}`)}}};class _ extends A{constructor(e,t){super(e,x,t)}getClient(){return new c.Axios({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(e,r){let s,a;e instanceof t.Context?(a=e,s=void 0):(s=e,a=r);const i={};if(a)try{i.headers=a.get("headers")||{}}catch(e){}return s&&(i.method="GET",i.url=this.url(s.class,[t.PersistenceKeys.STATEMENT,s.method,...s.args||[]],s.params)),i}async request(e,...t){let r={};try{const{ctx:e}=this.logCtx(t,this.request);r=this.toRequest(e)}catch(e){}return await this.client.request(Object.assign({},e,r))}parseResponse(e,r,a){if(!a.status&&r!==t.PersistenceKeys.STATEMENT)throw new s.InternalError("this should be impossible");if(a.status>=400)throw this.parseError(a.error||a.status);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.body;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.body);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.body;case t.PreparedStatementKeys.GROUP_OF:if(e&&"object"==typeof a.body&&null!==a.body){const t={};for(const[r,s]of Object.entries(a.body))t[r]=Array.isArray(s)?s.map(t=>new e(t)):s;return t}return a.body;default:return a}}async create(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.create);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return i.debug(`POSTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"POST",data:JSON.stringify(Object.assign({},r,{[a.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async createAll(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.createAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return i.debug(`POSTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"POST",data:JSON.stringify(r.map(t=>Object.assign({},t,{[a.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async read(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.read);try{const r=this.url(e,this.extractIdArgs(e,t)),i=this.toRequest(a);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"GET",...i},a)}catch(e){throw this.parseError(e)}}async readAll(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.readAll);try{const r=this.url(e,["bulk"],{ids:t}),i=this.toRequest(a);return s.debug(`GETing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"GET",...i},a)}catch(e){throw this.parseError(e)}}async update(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.update);try{const s=this.url(e,this.extractIdArgs(e,t)),o=this.toRequest(n);return i.debug(`PUTing to ${s} with ${JSON.stringify(r)} and cfg ${JSON.stringify(o)}`),await this.request({url:s,method:"PUT",data:JSON.stringify(Object.assign({},r,{[a.ModelKeys.ANCHOR]:e.name})),...o},n)}catch(e){throw this.parseError(e)}}async updateAll(e,t,r,...s){const{log:i,ctx:n}=this.logCtx(s,this.updateAll);try{const t=this.url(e,["bulk"]),s=this.toRequest(n);return i.debug(`PUTing to ${t} with ${JSON.stringify(r)} and cfg ${JSON.stringify(s)}`),this.request({url:t,method:"PUT",data:JSON.stringify(r.map(t=>Object.assign({},t,{[a.ModelKeys.ANCHOR]:e.name}))),...s},n)}catch(e){throw this.parseError(e)}}async delete(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.delete);try{const r=this.url(e,this.extractIdArgs(e,t)),i=this.toRequest(a);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"DELETE",...i},a)}catch(e){throw this.parseError(e)}}async deleteAll(e,t,...r){const{log:s,ctx:a}=this.logCtx(r,this.delete);try{const r=this.url(e,["bulk"],{ids:t}),i=this.toRequest(a);return s.debug(`DELETEing from ${r} and cfg ${JSON.stringify(i)}`),await this.request({url:r,method:"DELETE",...i},a)}catch(e){throw this.parseError(e)}}parseError(e,...t){return A.parseError(e,...t)}}_.decoration();const S="##VERSION##",v="##PACKAGE##";r.Metadata.registerLibrary(v,S),e.AxiosFlavour=x,e.AxiosHttpAdapter=_,e.HttpAdapter=A,e.HttpPaginator=E,e.HttpStatement=m,e.PACKAGE_NAME=v,e.RestRepository=f,e.RestService=y,e.TaskResponseParser=P,e.VERSION=S,e.suffixMethod=w},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/core"),require("@decaf-ts/decoration"),require("@decaf-ts/db-decorators"),require("@decaf-ts/decorator-validation"),require("tslib"),require("@decaf-ts/logging"),require("event-source-plus"),require("axios")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/core","@decaf-ts/decoration","@decaf-ts/db-decorators","@decaf-ts/decorator-validation","tslib","@decaf-ts/logging","event-source-plus","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-http"]={},e.decafTsCore,e.decafTsDecoration,e.decafTsDbDecorators,e.decafTsDecoratorValidation,e.tslib,e.decafTsLogging,e.eventSourcePlus,e.axios);
2
2
  //# sourceMappingURL=for-http.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-http.cjs","sources":["../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.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],"names":["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","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","parseResponse","request","details","contextualizeArgs","Context","OperationKeys","READ","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","Paginator","size","pagePrepared","page","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","result","apply","prepare","rawStatement","suffixMethod","obj","before","suffix","beforeName","Proxy","async","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","config","flavour","self","create","read","update","delete","createAll","readAll","updateAll","deleteAll","forEach","res","wrapMethodWithContext","parsers","p","flags","operation","model","headers","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","record","id","pk","revert","ob","m","constr","get","InternalError","metadata","toTableName","t","toKebabCase","URL","protocol","host","join","entries","v","searchParams","append","JSON","stringify","extractIdArgs","idStr","composed","split","separator","isSerializedPage","data","map","d","raw","rawInput","Sequence","options","reject","parseError","err","msg","message","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","prepared","propertyKey","debug","AxiosFlavour","TaskResponseParser","pending","parse","pushPending","e","logger","error","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","status","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","body","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-http.cjs","sources":["../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/stream/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],"names":["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","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","parseResponse","request","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","Paginator","size","pagePrepared","page","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","result","apply","prepare","rawStatement","ServerEventConnector","cache","Map","get","has","Error","open","connector","set","parseReceivedEvent","raw","data","JSON","parse","eventName","operationKey","objectId","rawPayload","String","Serialization","deserialize","listeners","Set","isOpen","es","close","controller","abort","clear","delete","startListening","handlers","headers","EventSourcePlus","credentials","listen","onResponse","onRequestError","error","onError","message","onResponseError","response","status","onMessage","event","onEvent","setInterval","addListener","add","removeListener","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","info","protocol","host","eventsListenerPath","config","listeningUrl","URL","async","operation","id","updateObservers","catch","e","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","flavour","self","create","read","update","createAll","readAll","updateAll","deleteAll","forEach","res","wrapMethodWithContext","parsers","p","flags","model","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","record","pk","revert","ob","m","constr","InternalError","metadata","toTableName","t","toKebabCase","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","isSerializedPage","map","d","rawInput","Sequence","options","reject","parseError","err","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","debug","AxiosFlavour","TaskResponseParser","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","body","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{Repository as t,PreparedStatementKeys as e,PersistenceKeys as s,Context as r,Statement as a,UnsupportedError as i,Paginator as n,Adapter as o,QueryError as c,PagingError as l,MigrationError as h,ObserverError as d,AuthorizationError as u,ForbiddenError as g,ConnectionError as p,prepared as m}from"@decaf-ts/core";import{Decoration as f,apply as y,methodMetadata as w,Metadata as A}from"@decaf-ts/decoration";import{OperationKeys as E,wrapMethodWithContext as b,InternalError as x,NotFoundError as T,ConflictError as $,BadRequestError as O,ValidationError as S,SerializationError as N,BulkCrudOperationKeys as q}from"@decaf-ts/db-decorators";import{Model as R,ModelKeys as P}from"@decaf-ts/decorator-validation";import{toKebabCase as v}from"@decaf-ts/logging";import{Axios as C}from"axios";class B extends t{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,s,r={offset:1,limit:10},...a){const{offset:i,bookmark:n,limit:o}=r,{log:c,ctxArgs:l}=(await this.logCtx(a,e.PAGE_BY,!0)).for(this.paginateBy);c.verbose(`paginating ${R.tableName(this.class)} with page size ${o}`);const h={direction:s,limit:o};return n&&(h.bookmark=n),this.statement(this.paginateBy.name,t,i,h,...l)}async listBy(t,s,...r){const{log:a,ctxArgs:i}=(await this.logCtx(r,e.LIST_BY,!0)).for(this.listBy);return a.verbose(`listing ${R.tableName(this.class)} by ${t} ${s}`),await this.statement(this.listBy.name,t,{direction:s},...i)}async findBy(t,s,...r){const{log:a,ctxArgs:i}=(await this.logCtx(r,e.FIND_BY,!0)).for(this.findBy);return a.verbose(`finding ${R.tableName(this.class)} with ${t} ${s}`),await this.statement(this.findBy.name,t,s,{},...i)}async findOneBy(t,s,...r){const{log:a,ctxArgs:i}=(await this.logCtx(r,e.FIND_ONE_BY,!0)).for(this.findOneBy);return a.verbose(`finding ${R.tableName(this.class)} with ${t} ${s}`),await this.statement(this.findOneBy.name,t,s,{},...i)}async statement(t,...e){const{log:r,ctx:a,ctxArgs:i}=(await this.logCtx(e,s.STATEMENT,!0)).for(this.statement),n=i.slice(0,-1),o=n[n.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:n.pop(),l={class:this.class,args:n,method:t,params:c},h=this.adapter.toRequest(l,a);return r.verbose("Executing prepared statement "+t),this.adapter.parseResponse(this.class,t,await this.request(h,...i))}async request(t,...e){let s;s=e.length&&e[e.length-1]instanceof r?this.logCtx(e,this.request):(await this.logCtx(e,E.READ,!0)).for(this.request);const{ctxArgs:a}=s;return this.adapter.request(t,...a)}}class D extends B{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return R.tableName(this.class)+" REST service"}}class _ extends a{constructor(t,e){super(t,e)}build(){throw new i("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 i("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class L extends n{constructor(t,e,s,r){super(t,e,s,r)}async pagePrepared(s,...r){const a=t.forModel(this.clazz,this.adapter.alias),n=this.query,{method:o,args:c,params:l}=n,h=RegExp(`^${e.FIND_BY}|${e.LIST_BY}`,"gi");if(!o.match(h))throw new i(`Method ${o} is not supported for pagination`);h.lastIndex=0;const d=[o.replace(h,e.PAGE_BY),...c],u={direction:l.direction,limit:this.size,offset:s,bookmark:this._bookmark};d.push(u);const g=await a.statement(...d,...r);return this.apply(g)}prepare(t){throw new i("Raw query access must be implemented by a subclass. only prepared statements are natively available")}page(t=1,...e){return super.page(t,...e)}}function k(t,e,s,r){const a=r||e.name;t[a]=new Proxy(t[a],{apply:async(t,e,r)=>{let a=t.call(e,...r);return a instanceof Promise&&(a=await a),a=s.call(e,a),a instanceof Promise&&(a=await a),a}})}class I extends o{constructor(t,e,s){super(t,e,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{k(this,t,e=>r.parseResponse.call(r,void 0,t.name,e),t.name)}),b(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))}repository(){return D}prepare(t,...e){const{log:r}=this.logCtx(e,this.prepare),a=Object.assign({},t);return t[s.METADATA]&&(r.silly("Passing along persistence metadata for "+t[s.METADATA]),Object.defineProperty(a,s.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[s.METADATA]})),{record:t,id:t[R.pk(t.constructor)]}}revert(t,e,r,...a){const{log:i}=this.logCtx(a,this.revert),n={},o="string"==typeof e?R.build(n,e):new e(n);i.silly(`Rebuilding model ${o.constructor.name} id ${r}`);const c="string"==typeof e?R.get(e):e;if(!c)throw new x("Failed to retrieve model constructor for "+e);const l=new c(t),h=t[s.METADATA];return h&&(i.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${r}: ${h}`),Object.defineProperty(l,s.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(t){return"string"==typeof t?t:v(R.tableName(t))}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=R.composed(t,R.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),a=this.toRequest(t,r);return this.request(a,...s)}Sequence(t){return Promise.reject(new i("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(t){return new _(this,t)}Paginator(t,e,s){return new L(this,t,e,s)}parseCondition(t){throw new i("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(T.name)||s.includes("404")?new T(t):s.includes($.name)||s.includes("409")?new $(t):s.includes(O.name)||s.includes("400")?new O(t):s.includes(S.name)||s.includes("422")?new S(t):s.includes(c.name)?new c(t):s.includes(l.name)?new l(t):s.includes(i.name)?new i(t):s.includes(h.name)?new h(t):s.includes(d.name)?new d(t):s.includes(u.name)?new u(t):s.includes(g.name)?new g(t):s.includes(p.name)?new p(t):s.includes(N.name)?new N(t):new x(t)}static decoration(){super.decoration(),f.for(s.QUERY).define({decorator:t=>(e,r,a)=>y(w(A.key(s.QUERY,r),t),m(),(t,e,s)=>{s.value=new Proxy(s.value,{async apply(t,e,s){const a=e,{log:i,ctxArgs:n}=(await a.logCtx(s,E.READ,!0)).for(r);return i.verbose("Running prepared statement "+t.name),i.debug("With args: "+JSON.stringify(s,null,2)),e.statement(t.name,...n)}})})(e,r,a)}).apply()}}I.decoration();const J="axios",j=(t,e)=>{if(t.headers&&t.headers["x-pending-task"]){let s;try{s=JSON.parse(t.headers["x-pending-task"]),Object.entries(s).forEach(([t,s])=>{s.forEach(s=>e.pushPending(t,s))})}catch(s){e.logger.for(j).error(`Failed to parse pending tasks header ${t.headers["x-pending-task"]}: ${s}`)}}};class Y extends I{constructor(t,e){super(t,J,e)}getClient(){return new C({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(t,e){let a,i;t instanceof r?(i=t,a=void 0):(a=t,i=e);const n={};if(i)try{n.headers=i.get("headers")||{}}catch(t){}return a&&(n.method="GET",n.url=this.url(a.class,[s.STATEMENT,a.method,...a.args||[]],a.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,r,a){if(!a.status&&r!==s.STATEMENT)throw new x("this should be impossible");if(a.status>=400)throw this.parseError(a.error||a.status);switch(r){case q.CREATE_ALL:case q.READ_ALL:case q.UPDATE_ALL:case q.DELETE_ALL:case E.CREATE:case E.READ:case E.UPDATE:case E.DELETE:return a.body;case e.FIND_BY:case e.LIST_BY:case e.PAGE_BY:case e.FIND_ONE_BY:case s.STATEMENT:return super.parseResponse(t,r,a.body);default:return a}}async create(t,e,s,...r){const{log:a,ctx:i}=this.logCtx(r,this.create);try{const r=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return a.debug(`POSTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"POST",data:JSON.stringify(Object.assign({},s,{[P.ANCHOR]:t.name})),...n},i)}catch(t){throw this.parseError(t)}}async createAll(t,e,s,...r){const{log:a,ctx:i}=this.logCtx(r,this.createAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(i);return a.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,{[P.ANCHOR]:t.name}))),...r},i)}catch(t){throw this.parseError(t)}}async read(t,e,...s){const{log:r,ctx:a}=this.logCtx(s,this.read);try{const s=this.url(t,this.extractIdArgs(t,e)),i=this.toRequest(a);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(i)}`),await this.request({url:s,method:"GET",...i},a)}catch(t){throw this.parseError(t)}}async readAll(t,e,...s){const{log:r,ctx:a}=this.logCtx(s,this.readAll);try{const s=this.url(t,["bulk"],{ids:e}),i=this.toRequest(a);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(i)}`),await this.request({url:s,method:"GET",...i},a)}catch(t){throw this.parseError(t)}}async update(t,e,s,...r){const{log:a,ctx:i}=this.logCtx(r,this.update);try{const r=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return a.debug(`PUTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(n)}`),await this.request({url:r,method:"PUT",data:JSON.stringify(Object.assign({},s,{[P.ANCHOR]:t.name})),...n},i)}catch(t){throw this.parseError(t)}}async updateAll(t,e,s,...r){const{log:a,ctx:i}=this.logCtx(r,this.updateAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(i);return a.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,{[P.ANCHOR]:t.name}))),...r},i)}catch(t){throw this.parseError(t)}}async delete(t,e,...s){const{log:r,ctx:a}=this.logCtx(s,this.delete);try{const s=this.url(t,this.extractIdArgs(t,e)),i=this.toRequest(a);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(i)}`),await this.request({url:s,method:"DELETE",...i},a)}catch(t){throw this.parseError(t)}}async deleteAll(t,e,...s){const{log:r,ctx:a}=this.logCtx(s,this.delete);try{const s=this.url(t,["bulk"],{ids:e}),i=this.toRequest(a);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(i)}`),await this.request({url:s,method:"DELETE",...i},a)}catch(t){throw this.parseError(t)}}parseError(t,...e){return I.parseError(t,...e)}}Y.decoration();const M="##VERSION##",U="##PACKAGE##";A.registerLibrary(U,M);export{J as AxiosFlavour,Y as AxiosHttpAdapter,I as HttpAdapter,L as HttpPaginator,_ as HttpStatement,U as PACKAGE_NAME,B as RestRepository,D as RestService,j as TaskResponseParser,M as VERSION,k as suffixMethod};
1
+ import{prepared as t,Repository as e,PreparedStatementKeys as s,PersistenceKeys as r,Context as i,Statement as n,UnsupportedError as a,Paginator as o,Dispatch as c,Adapter as l,QueryError as h,PagingError as d,MigrationError as u,ObserverError as g,AuthorizationError as p,ForbiddenError as f,ConnectionError as m}from"@decaf-ts/core";import{Decoration as y,apply as w,methodMetadata as b,Metadata as O}from"@decaf-ts/decoration";import{OperationKeys as A,wrapMethodWithContext as E,InternalError as x,NotFoundError as v,ConflictError as $,BadRequestError as T,ValidationError as N,SerializationError as S,BulkCrudOperationKeys as R}from"@decaf-ts/db-decorators";import{Model as C,Serialization as P,ModelKeys as q}from"@decaf-ts/decorator-validation";import{__decorate as _,__metadata as I}from"tslib";import{toKebabCase as L}from"@decaf-ts/logging";import{EventSourcePlus as F}from"event-source-plus";import{Axios as j}from"axios";var D,B,k,J,M,U;class z 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 ${C.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 ${C.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 ${C.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 ${C.tableName(this.class)} with ${t} ${e}`),await this.statement(this.findOneBy.name,t,e,{},...n)}async statement(t,...e){const{log:s,ctx:i,ctxArgs:n}=(await this.logCtx(e,r.STATEMENT,!0)).for(this.statement),a=n.slice(0,-1),o=a[a.length-1],c="object"!=typeof o||null===o||Array.isArray(o)?void 0:a.pop(),l={class:this.class,args:a,method:t,params:c},h=this.adapter.toRequest(l,i);return s.verbose("Executing prepared statement "+t),this.adapter.parseResponse(this.class,t,await this.request(h,...n))}async request(t,...e){let s;s=e.length&&e[e.length-1]instanceof i?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 ${C.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 ${C.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 ${C.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 ${C.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 ${C.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 ${C.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 ${C.tableName(this.class)} by ${t}`),await this.statement(this.groupOf.name,t,{},...i)}}_([t(),I("design:type",Function),I("design:paramtypes",[Object,void 0]),I("design:returntype",Promise)],z.prototype,"countOf",null),_([t(),I("design:type",Function),I("design:paramtypes",["function"==typeof(D="undefined"!=typeof K&&K)?D:Object,void 0]),I("design:returntype",Promise)],z.prototype,"maxOf",null),_([t(),I("design:type",Function),I("design:paramtypes",["function"==typeof(B="undefined"!=typeof K&&K)?B:Object,void 0]),I("design:returntype",Promise)],z.prototype,"minOf",null),_([t(),I("design:type",Function),I("design:paramtypes",["function"==typeof(k="undefined"!=typeof K&&K)?k:Object,void 0]),I("design:returntype",Promise)],z.prototype,"avgOf",null),_([t(),I("design:type",Function),I("design:paramtypes",["function"==typeof(J="undefined"!=typeof K&&K)?J:Object,void 0]),I("design:returntype",Promise)],z.prototype,"sumOf",null),_([t(),I("design:type",Function),I("design:paramtypes",["function"==typeof(M="undefined"!=typeof K&&K)?M:Object,void 0]),I("design:returntype",Promise)],z.prototype,"distinctOf",null),_([t(),I("design:type",Function),I("design:paramtypes",["function"==typeof(U="undefined"!=typeof K&&K)?U:Object,void 0]),I("design:returntype",Promise)],z.prototype,"groupOf",null);class G extends z{constructor(t,e){super(t,e),this._overrides=Object.assign({},super._overrides,{ignoreValidation:!0,ignoreHandlers:!0,allowRawStatements:!1,forcePrepareSimpleQueries:!0,forcePrepareComplexQueries:!0})}toString(){return C.tableName(this.class)+" REST service"}}class Y extends n{constructor(t,e){super(t,e)}build(){throw new a("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 a("This method is only called is prepared statements are not used. Is so, a dedicated implementation for the native queries used is required")}}class H extends o{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:o,args:c,params:l}=n,h=RegExp(`^${s.FIND_BY}|${s.LIST_BY}`,"gi");if(!o.match(h))throw new a(`Method ${o} is not supported for pagination`);h.lastIndex=0;const d=[o.replace(h,s.PAGE_BY),...c],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 a("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 Q{static{this.cache=new Map}static get(t){if(this.cache.has(t))return this.cache.get(t);throw Error(`Server event connector not found for URL '${t}'. Did you forget to call open()?`)}static open(t){if(this.cache.has(t))return this.cache.get(t);const e=new Q(t);return this.cache.set(t,e),this.cache.get(t)}static parseReceivedEvent(t){try{const e="string"==typeof t?JSON.parse(t):t;if(!Array.isArray(e)||3>e.length)return null;const[s,r,i,n]=e;return"string"!=typeof s?null:[s,r+"",i,"string"==typeof n?P.deserialize(n):n]}catch{return null}}constructor(t){this.url=t,this.listeners=new Set}isOpen(){return void 0!==this.es}close(){if(this.es&&0>=this.listeners.size)try{this.controller?.abort()}finally{this.controller=void 0,this.es=void 0,this.listeners.clear(),Q.cache.delete(this.url)}}startListening(t,e){if(this.es)return;const s=this.url;this.es=new F(s,{headers:e,credentials:"include"}),this.controller=this.es.listen({onResponse:()=>{},onRequestError:({error:e})=>{t.onError((e?.message??e)+"")},onResponseError:({response:e})=>{t.onError("HTTP "+e.status)},onMessage:e=>{const s=e&&"object"==typeof e&&"data"in e?e.data:e,r=Q.parseReceivedEvent(s);r&&t.onEvent(r)}}),setInterval(()=>{this.close()},3e4)}addListener(t){this.listeners.add(t)}removeListener(t){this.listeners.delete(t)}}class V extends c{constructor(){super(...arguments),this.initialized=!1,this.listening=!1}async initialize(...t){const{log:e,ctxArgs:s}=(await this.logCtx(t,r.INITIALIZATION,!0)).for(this.initialize);this.adapter?(e.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`),this.initialized=!0,await this.startListening(...s)):e.verbose("No adapter observed for dispatch; skipping initialization")}async startListening(...t){if(!this.initialized||!this.adapter)throw Error("Cannot start listening before call initialize()");const{log:e}=this.logCtx(t,this.startListening),{protocol:s,host:r,eventsListenerPath:i}=this.adapter.config;if(!i)throw Error("No eventsListenerPath specified");const n=new URL(i,`${s}://${r}`).toString();this.connector=Q.open(n),this.connector.startListening({onEvent:async t=>{const[e,s,r,...i]=t,{ctxArgs:n}=(await this.logCtx(i,s,!0)).for("onEvent");super.updateObservers(e,s,r,...n).catch(t=>this.log.error("Failed to dispatch SSE event",t))},onError:t=>{}}),this.listening=!0,e.info(`Initializing event listener for adapter ${this.adapter} at ${n}.`)}async close(){this.connector?.close()}}function X(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 W extends l{constructor(t,e,s){super(t,e,s);const r=this;[this.create,this.read,this.update,this.delete,this.createAll,this.readAll,this.updateAll,this.deleteAll].forEach(t=>{X(this,t,e=>r.parseResponse.call(r,void 0,t.name,e),t.name)}),E(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 V}repository(){return G}prepare(t,...e){const{log:s}=this.logCtx(e,this.prepare),i=Object.assign({},t);return t[r.METADATA]&&(s.silly("Passing along persistence metadata for "+t[r.METADATA]),Object.defineProperty(i,r.METADATA,{enumerable:!1,writable:!1,configurable:!0,value:t[r.METADATA]})),{record:t,id:t[C.pk(t.constructor)]}}revert(t,e,s,...i){const{log:n}=this.logCtx(i,this.revert),a={},o="string"==typeof e?C.build(a,e):new e(a);n.silly(`Rebuilding model ${o.constructor.name} id ${s}`);const c="string"==typeof e?C.get(e):e;if(!c)throw new x("Failed to retrieve model constructor for "+e);const l=new c(t),h=t[r.METADATA];return h&&(n.silly(`Passing along ${this.flavour} persistence metadata for ${o.constructor.name} id ${s}: ${h}`),Object.defineProperty(l,r.METADATA,{enumerable:!1,configurable:!1,writable:!1,value:h})),l}toTableName(t){return"string"==typeof t?t:L(C.tableName(t))}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=C.composed(t,C.pk(t));return r?s.split(r.separator):[s]}parseResponse(t,e,s){return t&&o.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 a("Api is not natively available for HttpAdapters. If required, please extends this class"))}Statement(t){return new Y(this,t)}Paginator(t,e,s){return new H(this,t,e,s)}parseCondition(t){throw new a("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(v.name)||s.includes("404")?new v(t):s.includes($.name)||s.includes("409")?new $(t):s.includes(T.name)||s.includes("400")?new T(t):s.includes(N.name)||s.includes("422")?new N(t):s.includes(h.name)?new h(t):s.includes(d.name)?new d(t):s.includes(a.name)?new a(t):s.includes(u.name)?new u(t):s.includes(g.name)?new g(t):s.includes(p.name)?new p(t):s.includes(f.name)?new f(t):s.includes(m.name)?new m(t):s.includes(S.name)?new S(t):new x(t)}static decoration(){super.decoration(),y.for(r.QUERY).define({decorator:e=>(s,i,n)=>w(b(O.key(r.QUERY,i),e),t(),(t,e,s)=>{s.value=new Proxy(s.value,{async apply(t,e,s){const r=e,{log:n,ctxArgs:a}=(await r.logCtx(s,A.READ,!0)).for(i);return n.verbose("Running prepared statement "+t.name),n.debug("With args: "+JSON.stringify(s,null,2)),e.statement(t.name,...a)}})})(s,i,n)}).apply()}}W.decoration();const Z="axios",tt=(t,e)=>{if(t.headers&&t.headers["x-pending-task"]){let s;try{s=JSON.parse(t.headers["x-pending-task"]),Object.entries(s).forEach(([t,s])=>{s.forEach(s=>e.pushPending(t,s))})}catch(s){e.logger.for(tt).error(`Failed to parse pending tasks header ${t.headers["x-pending-task"]}: ${s}`)}}};class et extends W{constructor(t,e){super(t,Z,e)}getClient(){return new j({baseURL:`${this.config.protocol}://${this.config.host}`})}toRequest(t,e){let s,n;t instanceof i?(n=t,s=void 0):(s=t,n=e);const a={};if(n)try{a.headers=n.get("headers")||{}}catch(t){}return s&&(a.method="GET",a.url=this.url(s.class,[r.STATEMENT,s.method,...s.args||[]],s.params)),a}async request(t,...e){let s={};try{const{ctx:t}=this.logCtx(e,this.request);s=this.toRequest(t)}catch(t){}return await this.client.request(Object.assign({},t,s))}parseResponse(t,e,i){if(!i.status&&e!==r.STATEMENT)throw new x("this should be impossible");if(i.status>=400)throw this.parseError(i.error||i.status);switch(e){case R.CREATE_ALL:case R.READ_ALL:case R.UPDATE_ALL:case R.DELETE_ALL:case A.CREATE:case A.READ:case A.UPDATE:case A.DELETE:return i.body;case s.FIND_BY:case s.LIST_BY:case s.PAGE_BY:case s.FIND_ONE_BY:case r.STATEMENT:return super.parseResponse(t,e,i.body);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 i.body;case s.GROUP_OF:if(t&&"object"==typeof i.body&&null!==i.body){const e={};for(const[s,r]of Object.entries(i.body))e[s]=Array.isArray(r)?r.map(e=>new t(e)):r;return e}return i.body;default:return i}}async create(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.create);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`POSTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"POST",data:JSON.stringify(Object.assign({},s,{[q.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async createAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.createAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`POSTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"POST",data:JSON.stringify(s.map(e=>Object.assign({},e,{[q.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async read(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.read);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async readAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.readAll);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`GETing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"GET",...n},i)}catch(t){throw this.parseError(t)}}async update(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.update);try{const r=this.url(t,this.extractIdArgs(t,e)),a=this.toRequest(n);return i.debug(`PUTing to ${r} with ${JSON.stringify(s)} and cfg ${JSON.stringify(a)}`),await this.request({url:r,method:"PUT",data:JSON.stringify(Object.assign({},s,{[q.ANCHOR]:t.name})),...a},n)}catch(t){throw this.parseError(t)}}async updateAll(t,e,s,...r){const{log:i,ctx:n}=this.logCtx(r,this.updateAll);try{const e=this.url(t,["bulk"]),r=this.toRequest(n);return i.debug(`PUTing to ${e} with ${JSON.stringify(s)} and cfg ${JSON.stringify(r)}`),this.request({url:e,method:"PUT",data:JSON.stringify(s.map(e=>Object.assign({},e,{[q.ANCHOR]:t.name}))),...r},n)}catch(t){throw this.parseError(t)}}async delete(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,this.extractIdArgs(t,e)),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}async deleteAll(t,e,...s){const{log:r,ctx:i}=this.logCtx(s,this.delete);try{const s=this.url(t,["bulk"],{ids:e}),n=this.toRequest(i);return r.debug(`DELETEing from ${s} and cfg ${JSON.stringify(n)}`),await this.request({url:s,method:"DELETE",...n},i)}catch(t){throw this.parseError(t)}}parseError(t,...e){return W.parseError(t,...e)}}et.decoration();const st="##VERSION##",rt="##PACKAGE##";O.registerLibrary(rt,st);export{Z as AxiosFlavour,et as AxiosHttpAdapter,W as HttpAdapter,H as HttpPaginator,Y as HttpStatement,rt as PACKAGE_NAME,z as RestRepository,G as RestService,tt as TaskResponseParser,st as VERSION,X as suffixMethod};
2
2
  //# sourceMappingURL=for-http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-http.js","sources":["../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.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],"names":["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","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","parseResponse","request","details","contextualizeArgs","Context","OperationKeys","READ","RestService","ignoreValidation","ignoreHandlers","toString","HttpStatement","Statement","overrides","build","UnsupportedError","parseCondition","condition","HttpPaginator","Paginator","size","pagePrepared","page","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","result","apply","prepare","rawStatement","suffixMethod","obj","before","suffix","beforeName","Proxy","async","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","config","flavour","self","create","read","update","delete","createAll","readAll","updateAll","deleteAll","forEach","res","wrapMethodWithContext","parsers","p","flags","operation","model","headers","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","record","id","pk","revert","ob","m","constr","get","InternalError","metadata","toTableName","t","toKebabCase","URL","protocol","host","join","entries","v","searchParams","append","JSON","stringify","extractIdArgs","idStr","composed","split","separator","isSerializedPage","data","map","d","raw","rawInput","Sequence","options","reject","parseError","err","msg","message","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","prepared","propertyKey","debug","AxiosFlavour","TaskResponseParser","pending","parse","pushPending","e","logger","error","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","status","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","body","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-http.js","sources":["../src/RestRepository.ts","../src/RestService.ts","../src/HttpStatement.ts","../src/HttpPaginator.ts","../src/stream/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],"names":["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","ctx","PersistenceKeys","STATEMENT","argList","slice","lastArg","length","Array","isArray","undefined","pop","query","method","req","toRequest","parseResponse","request","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","Paginator","size","pagePrepared","page","argz","repo","forModel","alias","regexp","RegExp","match","lastIndex","preparedArgs","replace","preparedParams","_bookmark","push","result","apply","prepare","rawStatement","ServerEventConnector","cache","Map","get","has","Error","open","connector","set","parseReceivedEvent","raw","data","JSON","parse","eventName","operationKey","objectId","rawPayload","String","Serialization","deserialize","listeners","Set","isOpen","es","close","controller","abort","clear","delete","startListening","handlers","headers","EventSourcePlus","credentials","listen","onResponse","onRequestError","error","onError","message","onResponseError","response","status","onMessage","event","onEvent","setInterval","addListener","add","removeListener","HttpDispatcher","Dispatch","initialized","listening","initialize","INITIALIZATION","info","protocol","host","eventsListenerPath","config","listeningUrl","URL","async","operation","id","updateObservers","catch","e","suffixMethod","obj","before","suffix","beforeName","Proxy","target","thisArg","argArray","results","call","Promise","HttpAdapter","Adapter","flavour","self","create","read","update","createAll","readAll","updateAll","deleteAll","forEach","res","wrapMethodWithContext","parsers","p","flags","model","repository","METADATA","silly","defineProperty","enumerable","writable","configurable","record","pk","revert","ob","m","constr","InternalError","metadata","toTableName","t","toKebabCase","join","entries","v","searchParams","append","stringify","extractIdArgs","idStr","composed","split","separator","isSerializedPage","map","d","rawInput","Sequence","options","reject","parseError","err","msg","includes","NotFoundError","ConflictError","BadRequestError","ValidationError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","SerializationError","decoration","Decoration","QUERY","define","decorator","prop","descriptor","methodMetadata","Metadata","propertyKey","debug","AxiosFlavour","TaskResponseParser","pending","pushPending","logger","AxiosHttpAdapter","getClient","Axios","baseURL","ctxOrQuery","context","client","BulkCrudOperationKeys","CREATE_ALL","READ_ALL","UPDATE_ALL","DELETE_ALL","CREATE","UPDATE","DELETE","body","cfg","ModelKeys","ANCHOR","ids","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpDispatcher = void 0;
4
+ const core_1 = require("@decaf-ts/core");
5
+ const stream_1 = require("./stream/index.cjs");
6
+ class HttpDispatcher extends core_1.Dispatch {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.initialized = false;
10
+ this.listening = false;
11
+ }
12
+ /**
13
+ * Called by the base Dispatch after observe(adapter).
14
+ * We patch the Adapter's internal ObserverHandler to track how many observers exist.
15
+ */
16
+ async initialize(...args) {
17
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PersistenceKeys.INITIALIZATION, true)).for(this.initialize);
18
+ if (!this.adapter) {
19
+ // Gracefully skip initialization when no adapter is observed yet.
20
+ // Some tests or setups may construct a Dispatch before calling observe().
21
+ // Instead of throwing, we no-op so that later observe() can proceed.
22
+ log.verbose(`No adapter observed for dispatch; skipping initialization`);
23
+ return;
24
+ }
25
+ log.info(`Initializing ${this.adapter}'s event Dispatch, but not listening yet.`);
26
+ this.initialized = true;
27
+ await this.startListening(...ctxArgs);
28
+ }
29
+ /**
30
+ * Enables the dispatcher. SSE will only open and start to listening for events if there is at least one observer.
31
+ */
32
+ async startListening(...args) {
33
+ if (!this.initialized || !this.adapter)
34
+ throw new Error("Cannot start listening before call initialize()");
35
+ const { log } = this.logCtx(args, this.startListening);
36
+ // log.info(`Initializing event listener for adapter ${this.adapter}.`);
37
+ const { protocol, host, eventsListenerPath } = this.adapter
38
+ .config;
39
+ if (!eventsListenerPath)
40
+ throw new Error("No eventsListenerPath specified");
41
+ const listeningUrl = new URL(eventsListenerPath, `${protocol}://${host}`).toString();
42
+ this.connector = stream_1.ServerEventConnector.open(listeningUrl);
43
+ this.connector.startListening({
44
+ onEvent: async (event) => {
45
+ const [tableName, operation, id, ...args] = event;
46
+ const { ctxArgs } = (await this.logCtx(args, operation, true)).for("onEvent");
47
+ super
48
+ .updateObservers(tableName, operation, id, ...ctxArgs)
49
+ .catch((e) => this.log.error(`Failed to dispatch SSE event`, e));
50
+ },
51
+ onError: (e) => console.error(e),
52
+ });
53
+ this.listening = true;
54
+ log.info(`Initializing event listener for adapter ${this.adapter} at ${listeningUrl}.`);
55
+ }
56
+ async close() {
57
+ this.connector?.close();
58
+ }
59
+ }
60
+ exports.HttpDispatcher = HttpDispatcher;
61
+ //# sourceMappingURL=HttpDispatcher.js.map
@@ -0,0 +1,17 @@
1
+ import { Adapter, Context, ContextualArgs, Dispatch, MaybeContextualArg, PreparedStatement } from "@decaf-ts/core";
2
+ import { HttpConfig, HttpFlags } from "./types";
3
+ export declare class HttpDispatcher extends Dispatch<Adapter<HttpConfig, any, PreparedStatement<any>, Context<HttpFlags>>> {
4
+ private connector?;
5
+ private initialized;
6
+ private listening;
7
+ /**
8
+ * Called by the base Dispatch after observe(adapter).
9
+ * We patch the Adapter's internal ObserverHandler to track how many observers exist.
10
+ */
11
+ protected initialize(...args: MaybeContextualArg<any>): Promise<void>;
12
+ /**
13
+ * Enables the dispatcher. SSE will only open and start to listening for events if there is at least one observer.
14
+ */
15
+ startListening(...args: ContextualArgs<any>): Promise<void>;
16
+ close(): Promise<void>;
17
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpDispatcher.js","sourceRoot":"","sources":["../src/HttpDispatcher.ts"],"names":[],"mappings":";;;AAAA,yCAQwB;AACxB,+CAA6D;AAG7D,MAAa,cAAe,SAAQ,eAEnC;IAFD;;QAKU,gBAAW,GAAG,KAAK,CAAC;QACpB,cAAS,GAAG,KAAK,CAAC;IA8E5B,CAAC;IA5EC;;;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;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,GAAG,IAAyB;QAC/C,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO;YACpC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAErE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,wEAAwE;QAExE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,OAAO;aACxD,MAAoB,CAAC;QAExB,IAAI,CAAC,kBAAkB;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAE5E,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,kBAAkB,EAClB,GAAG,QAAQ,MAAM,IAAI,EAAE,CACxB,CAAC,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,6BAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,KAAkB,EAAE,EAAE;gBACpC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;gBAElD,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAChE,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,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;SACtC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,IAAI,CACN,2CAA2C,IAAI,CAAC,OAAO,OAAO,YAAY,GAAG,CAC9E,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,KAAK;QAClB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF;AApFD,wCAoFC"}
@@ -1,4 +1,14 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var _a, _b, _c, _d, _e, _f;
2
12
  Object.defineProperty(exports, "__esModule", { value: true });
3
13
  exports.RestRepository = void 0;
4
14
  const core_1 = require("@decaf-ts/core");
@@ -107,6 +117,84 @@ class RestRepository extends core_1.Repository {
107
117
  const { ctxArgs } = contextualizeArgs;
108
118
  return this.adapter.request(details, ...ctxArgs);
109
119
  }
120
+ async countOf(key, ...args) {
121
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.COUNT_OF, true)).for(this.countOf);
122
+ log.verbose(`counting ${decorator_validation_1.Model.tableName(this.class)}${key ? ` by ${key}` : ""}`);
123
+ const stmtArgs = key ? [key, {}] : [{}];
124
+ return (await this.statement(this.countOf.name, ...stmtArgs, ...ctxArgs));
125
+ }
126
+ async maxOf(key, ...args) {
127
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.MAX_OF, true)).for(this.maxOf);
128
+ log.verbose(`finding max of ${key} in ${decorator_validation_1.Model.tableName(this.class)}`);
129
+ return (await this.statement(this.maxOf.name, key, {}, ...ctxArgs));
130
+ }
131
+ async minOf(key, ...args) {
132
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.MIN_OF, true)).for(this.minOf);
133
+ log.verbose(`finding min of ${key} in ${decorator_validation_1.Model.tableName(this.class)}`);
134
+ return (await this.statement(this.minOf.name, key, {}, ...ctxArgs));
135
+ }
136
+ async avgOf(key, ...args) {
137
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.AVG_OF, true)).for(this.avgOf);
138
+ log.verbose(`calculating avg of ${key} in ${decorator_validation_1.Model.tableName(this.class)}`);
139
+ return (await this.statement(this.avgOf.name, key, {}, ...ctxArgs));
140
+ }
141
+ async sumOf(key, ...args) {
142
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.SUM_OF, true)).for(this.sumOf);
143
+ log.verbose(`calculating sum of ${key} in ${decorator_validation_1.Model.tableName(this.class)}`);
144
+ return (await this.statement(this.sumOf.name, key, {}, ...ctxArgs));
145
+ }
146
+ async distinctOf(key, ...args) {
147
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.DISTINCT_OF, true)).for(this.distinctOf);
148
+ log.verbose(`finding distinct values of ${key} in ${decorator_validation_1.Model.tableName(this.class)}`);
149
+ return (await this.statement(this.distinctOf.name, key, {}, ...ctxArgs));
150
+ }
151
+ async groupOf(key, ...args) {
152
+ const { log, ctxArgs } = (await this.logCtx(args, core_1.PreparedStatementKeys.GROUP_OF, true)).for(this.groupOf);
153
+ log.verbose(`grouping ${decorator_validation_1.Model.tableName(this.class)} by ${key}`);
154
+ return (await this.statement(this.groupOf.name, key, {}, ...ctxArgs));
155
+ }
110
156
  }
111
157
  exports.RestRepository = RestRepository;
158
+ __decorate([
159
+ (0, core_1.prepared)(),
160
+ __metadata("design:type", Function),
161
+ __metadata("design:paramtypes", [Object, void 0]),
162
+ __metadata("design:returntype", Promise)
163
+ ], RestRepository.prototype, "countOf", null);
164
+ __decorate([
165
+ (0, core_1.prepared)(),
166
+ __metadata("design:type", Function),
167
+ __metadata("design:paramtypes", [typeof (_a = typeof K !== "undefined" && K) === "function" ? _a : Object, void 0]),
168
+ __metadata("design:returntype", Promise)
169
+ ], RestRepository.prototype, "maxOf", null);
170
+ __decorate([
171
+ (0, core_1.prepared)(),
172
+ __metadata("design:type", Function),
173
+ __metadata("design:paramtypes", [typeof (_b = typeof K !== "undefined" && K) === "function" ? _b : Object, void 0]),
174
+ __metadata("design:returntype", Promise)
175
+ ], RestRepository.prototype, "minOf", null);
176
+ __decorate([
177
+ (0, core_1.prepared)(),
178
+ __metadata("design:type", Function),
179
+ __metadata("design:paramtypes", [typeof (_c = typeof K !== "undefined" && K) === "function" ? _c : Object, void 0]),
180
+ __metadata("design:returntype", Promise)
181
+ ], RestRepository.prototype, "avgOf", null);
182
+ __decorate([
183
+ (0, core_1.prepared)(),
184
+ __metadata("design:type", Function),
185
+ __metadata("design:paramtypes", [typeof (_d = typeof K !== "undefined" && K) === "function" ? _d : Object, void 0]),
186
+ __metadata("design:returntype", Promise)
187
+ ], RestRepository.prototype, "sumOf", null);
188
+ __decorate([
189
+ (0, core_1.prepared)(),
190
+ __metadata("design:type", Function),
191
+ __metadata("design:paramtypes", [typeof (_e = typeof K !== "undefined" && K) === "function" ? _e : Object, void 0]),
192
+ __metadata("design:returntype", Promise)
193
+ ], RestRepository.prototype, "distinctOf", null);
194
+ __decorate([
195
+ (0, core_1.prepared)(),
196
+ __metadata("design:type", Function),
197
+ __metadata("design:paramtypes", [typeof (_f = typeof K !== "undefined" && K) === "function" ? _f : Object, void 0]),
198
+ __metadata("design:returntype", Promise)
199
+ ], RestRepository.prototype, "groupOf", null);
112
200
  //# sourceMappingURL=RestRepository.js.map
@@ -1,4 +1,5 @@
1
- import { ContextOf, DirectionLimitOffset, MaybeContextualArg, OrderDirection, Repository, SerializedPage } from "@decaf-ts/core";
1
+ import { DirectionLimitOffset, OrderDirection, Repository } from "@decaf-ts/core";
2
+ import type { ContextOf, MaybeContextualArg, SerializedPage } from "@decaf-ts/core";
2
3
  import { Model } from "@decaf-ts/decorator-validation";
3
4
  import { Constructor } from "@decaf-ts/decoration";
4
5
  import { HttpAdapter } from "./adapter";
@@ -47,4 +48,11 @@ export declare class RestRepository<M extends Model, A extends HttpAdapter<any,
47
48
  findOneBy(key: keyof M, value: any, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M>;
48
49
  statement(name: string, ...args: MaybeContextualArg<ContextOf<A>>): Promise<any>;
49
50
  request<R>(details: Q, ...args: MaybeContextualArg<ContextOf<A>>): Promise<R>;
51
+ countOf(key?: keyof M, ...args: MaybeContextualArg<ContextOf<A>>): Promise<number>;
52
+ maxOf<K extends keyof M>(key: K, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[K]>;
53
+ minOf<K extends keyof M>(key: K, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[K]>;
54
+ avgOf<K extends keyof M>(key: K, ...args: MaybeContextualArg<ContextOf<A>>): Promise<number>;
55
+ sumOf<K extends keyof M>(key: K, ...args: MaybeContextualArg<ContextOf<A>>): Promise<number>;
56
+ distinctOf<K extends keyof M>(key: K, ...args: MaybeContextualArg<ContextOf<A>>): Promise<M[K][]>;
57
+ groupOf<K extends keyof M>(key: K, ...args: MaybeContextualArg<ContextOf<A>>): Promise<Record<string, M[]>>;
50
58
  }