equipped 5.0.30 → 5.0.31

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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [5.0.31](https://github.com/kevinand11/equipped/compare/v5.0.30...v5.0.31) (2025-10-02)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * type errors ([c945f0b](https://github.com/kevinand11/equipped/commit/c945f0b0e2324c74748214eb9ad8262eb8d9e4e5))
11
+
5
12
  ### [5.0.30](https://github.com/kevinand11/equipped/compare/v5.0.29...v5.0.30) (2025-10-02)
6
13
 
7
14
 
@@ -6,8 +6,10 @@ function mergeSchemas(...schemas) {
6
6
  headers: "",
7
7
  query: "",
8
8
  body: "",
9
+ cookies: "",
9
10
  response: "",
10
11
  responseHeaders: "",
12
+ responseCookies: "",
11
13
  defaultStatusCode: "",
12
14
  defaultContentType: "",
13
15
  context: ""
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/routes.ts","/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs"],"names":[],"mappings":"AAAA,iNAAkB;AAElB,uCAAkH;AAElH,SAAS,YAAA,CAAA,GAAgB,OAAA,EAAqB;AAE7C,EAAA,MAAM,EAAA,EAAU;AAAA,IACf,MAAA,EAAQ,EAAA;AAAA,IACR,OAAA,EAAS,EAAA;AAAA,IACT,KAAA,EAAO,EAAA;AAAA,IACP,IAAA,EAAM,EAAA;AAAA,IACN,QAAA,EAAU,EAAA;AAAA,IACV,eAAA,EAAiB,EAAA;AAAA,IACjB,iBAAA,EAAmB,EAAA;AAAA,IACnB,kBAAA,EAAoB,EAAA;AAAA,IACpB,OAAA,EAAS;AAAA,EACV,CAAA;AACA,EAAA,SAAS,KAAA,CAAsC,GAAA,EAAe,GAAA,EAAQ;AACrE,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,UAAA,EAAY,OAAO,GAAA;AACtC,IAAA,OAAO,WAAA,CAAE,KAAA,CAAM,GAAA,EAAK,GAAU,CAAA;AAAA,EAC/B;AACA,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IACb,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAA,GAAQ;AAAA,MAC3B,GAAA;AAAA,MACA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAG,CAAyB,CAAA,CAAE,MAAA,CAAoC,KAAA,EAAO,IAAI;AAAA,IACnG,CAAC;AAAA,EACF,CAAA;AACD;AAEA,MAAM,YAAA,EAAc,CAAyC,MAAA,EAAyB,MAAA,EAAA,GACrF,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAA,GAAA,CAAW;AAAA,EACtB,GAAG,MAAA;AAAA,EACH,GAAG,KAAA;AAAA,EACH,IAAA,EAAM,CAAA,EAAA;AACN,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACC;AAEU;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACM,IAAA;AACN,EAAA;AAEM,EAAA;AACL,IAAA;AAEE,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACF,EAAA;AAEO,iBAAA;AACD,kBAAA;AACC,kBAAA;AACD,kBAAA;AACN,kBAAA;AACA,kBAAA;AACA,kBAAA;AAEA,EAAA;AACC,IAAA;AACD,EAAA;AAEI,EAAA;AACH,IAAA;AACD,EAAA;AACD;ACXS;AACA;AACA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n",null]}
1
+ {"version":3,"sources":["../../../src/server/routes.ts","/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs"],"names":[],"mappings":"AAAA,iNAAkB;AAElB,uCAAkH;AAElH,SAAS,YAAA,CAAA,GAAgB,OAAA,EAAqB;AAE7C,EAAA,MAAM,EAAA,EAAU;AAAA,IACf,MAAA,EAAQ,EAAA;AAAA,IACR,OAAA,EAAS,EAAA;AAAA,IACT,KAAA,EAAO,EAAA;AAAA,IACP,IAAA,EAAM,EAAA;AAAA,IACN,OAAA,EAAS,EAAA;AAAA,IACT,QAAA,EAAU,EAAA;AAAA,IACV,eAAA,EAAiB,EAAA;AAAA,IACjB,eAAA,EAAiB,EAAA;AAAA,IACjB,iBAAA,EAAmB,EAAA;AAAA,IACnB,kBAAA,EAAoB,EAAA;AAAA,IACpB,OAAA,EAAS;AAAA,EACV,CAAA;AACA,EAAA,SAAS,KAAA,CAAsC,GAAA,EAAe,GAAA,EAAQ;AACrE,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,UAAA,EAAY,OAAO,GAAA;AACtC,IAAA,OAAO,WAAA,CAAE,KAAA,CAAM,GAAA,EAAK,GAAU,CAAA;AAAA,EAC/B;AACA,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IACb,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAA,GAAQ;AAAA,MAC3B,GAAA;AAAA,MACA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAG,CAAyB,CAAA,CAAE,MAAA,CAAoC,KAAA,EAAO,IAAI;AAAA,IACnG,CAAC;AAAA,EACF,CAAA;AACD;AAEA,MAAM,YAAA,EAAc,CAAyC,MAAA,EAAyB,MAAA,EAAA,GACrF,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAA,GAAA,CAAW;AAAA,EACtB,GAAG,MAAA;AAAA,EACH,GAAG,KAAA;AAAA,EACH,IAAA,EAAM,CAAA,EAAA;AACN,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACC;AAEU;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACM,IAAA;AACN,EAAA;AAEM,EAAA;AACL,IAAA;AAEE,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACF,EAAA;AAEO,iBAAA;AACD,kBAAA;AACC,kBAAA;AACD,kBAAA;AACN,kBAAA;AACA,kBAAA;AACA,kBAAA;AAEA,EAAA;AACC,IAAA;AACD,EAAA;AAEI,EAAA;AACH,IAAA;AACD,EAAA;AACD;ACXS;AACA;AACA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n",null]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _valleyed = require('valleyed');var _typesmincjs = require('./types.min.cjs');function i(...r){const t={params:"",headers:"",query:"",body:"",response:"",responseHeaders:"",defaultStatusCode:"",defaultContentType:"",context:""};function e(s,o){return s?o?typeof s=="number"||typeof s=="string"||typeof s=="function"?o:_valleyed.v.merge(s,o):s:o}return Object.fromEntries(Object.keys(t).map(s=>[s,r.map(o=>o[s]).reduce(e,null)]))}const a=(r,t)=>t.map(e=>({...r,...e,path:`${r.path}/${e.path}`,groups:[..._nullishCoalesce(r.groups, () => ([])),..._nullishCoalesce(e.groups, () => ([]))],middlewares:[..._nullishCoalesce(r.middlewares, () => ([])),..._nullishCoalesce(e.middlewares, () => ([]))],schema:i(_nullishCoalesce(r.schema, () => ({})),_nullishCoalesce(e.schema, () => ({}))),security:[..._nullishCoalesce(r.security, () => ([])),..._nullishCoalesce(e.security, () => ([]))]}));class T{#t={path:""};#s=[];#o=[];constructor(t={path:""}){;T.prototype.__init.call(this);T.prototype.__init2.call(this);T.prototype.__init3.call(this);T.prototype.__init4.call(this);T.prototype.__init5.call(this);T.prototype.__init6.call(this);T.prototype.__init7.call(this);this.#t=t}#e(t){return(e,s={})=>o=>{const n=a(this.#t,[{...s,path:e,method:t,handler:o}])[0];return this.#s.push(n),n}}__init() {this.head=this.#e(_typesmincjs.Methods.head)}__init2() {this.get=this.#e(_typesmincjs.Methods.get)}__init3() {this.post=this.#e(_typesmincjs.Methods.post)}__init4() {this.put=this.#e(_typesmincjs.Methods.put)}__init5() {this.patch=this.#e(_typesmincjs.Methods.patch)}__init6() {this.delete=this.#e(_typesmincjs.Methods.delete)}__init7() {this.options=this.#e(_typesmincjs.Methods.options)}nest(...t){t.forEach(e=>this.#o.push(e))}get routes(){return[...this.#s].concat(this.#o.flatMap(t=>a(this.#t,t.routes)))}}exports.Router = T;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _valleyed = require('valleyed');var _typesmincjs = require('./types.min.cjs');function f(...r){const t={params:"",headers:"",query:"",body:"",cookies:"",response:"",responseHeaders:"",responseCookies:"",defaultStatusCode:"",defaultContentType:"",context:""};function e(s,o){return s?o?typeof s=="number"||typeof s=="string"||typeof s=="function"?o:_valleyed.v.merge(s,o):s:o}return Object.fromEntries(Object.keys(t).map(s=>[s,r.map(o=>o[s]).reduce(e,null)]))}const i=(r,t)=>t.map(e=>({...r,...e,path:`${r.path}/${e.path}`,groups:[..._nullishCoalesce(r.groups, () => ([])),..._nullishCoalesce(e.groups, () => ([]))],middlewares:[..._nullishCoalesce(r.middlewares, () => ([])),..._nullishCoalesce(e.middlewares, () => ([]))],schema:f(_nullishCoalesce(r.schema, () => ({})),_nullishCoalesce(e.schema, () => ({}))),security:[..._nullishCoalesce(r.security, () => ([])),..._nullishCoalesce(e.security, () => ([]))]}));class T{#t={path:""};#s=[];#o=[];constructor(t={path:""}){;T.prototype.__init.call(this);T.prototype.__init2.call(this);T.prototype.__init3.call(this);T.prototype.__init4.call(this);T.prototype.__init5.call(this);T.prototype.__init6.call(this);T.prototype.__init7.call(this);this.#t=t}#e(t){return(e,s={})=>o=>{const n=i(this.#t,[{...s,path:e,method:t,handler:o}])[0];return this.#s.push(n),n}}__init() {this.head=this.#e(_typesmincjs.Methods.head)}__init2() {this.get=this.#e(_typesmincjs.Methods.get)}__init3() {this.post=this.#e(_typesmincjs.Methods.post)}__init4() {this.put=this.#e(_typesmincjs.Methods.put)}__init5() {this.patch=this.#e(_typesmincjs.Methods.patch)}__init6() {this.delete=this.#e(_typesmincjs.Methods.delete)}__init7() {this.options=this.#e(_typesmincjs.Methods.options)}nest(...t){t.forEach(e=>this.#o.push(e))}get routes(){return[...this.#s].concat(this.#o.flatMap(t=>i(this.#t,t.routes)))}}exports.Router = T;
2
2
  //# sourceMappingURL=routes.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/routes.ts"],"names":["k","merge","acc","cur","key","s","groupRoutes","config","routes","route"],"mappings":"AAAA,iNAAkB,8CAIlB,SAEC,CAAA,CAAA,GAAMA,CAAAA,CAAU,CACf,MAAA,CAAQ,CAAA,CAAA,MACR,CAAA,EAAS,CAAA,OACT,CAAO,EAAA,CACP,KAAM,CAAA,EACN,CAAA,IAAA,CAAA,EAAA,CAAU,QACV,CAAA,EAAA,CAAA,eACA,CAAA,EAAA,CAAA,iBACA,CAAA,EAAA,CAAA,kBACA,CAAA,EAAS,CAAA,OAEV,CAAA,EAAA,CAAA,CAASC,SACR,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAAA,CACAC,OACD,CAAA,CAAOD,CAAAA,CAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,UACV,CAAA,CAAMA,CAAAA,WAAKC,CAAU,KAC/B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,OAAO,MAAA,CAAA,WACN,CAAA,MAAQ,CAAA,IAAKC,CAAAA,CAAQ,CAC3BA,CAAAA,GACQ,CAAA,CAAA,EAAKC,CAAAA,CAAAA,CAAMA,CAAAA,CAAED,GAA4B,CAAE,CAAA,EAAA,CAAA,CAAA,CAAA,CAAoCH,CAAAA,CAAO,MAC9F,CACF,CACD,CAEA,IAAA,CAAA,CAAMK,CAAAA,CAAc,CAAyCC,MAC5DC,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKC,CAAAA,EAAAA,CAAW,CACtB,GAAGF,CAAAA,CACH,EAAA,CAAGE,CAAAA,GACH,CAAA,CAAA,GAAM,CAAGF,CAAAA,IAAO,CAAI,CAAA,EAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.min.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/server/routes.ts"],"names":["k","merge","acc","cur","key","s","groupRoutes","config","routes","route"],"mappings":"AAAA,iNAAkB,8CAIlB,SAEC,CAAA,CAAA,GAAMA,CAAAA,CAAU,CACf,MAAA,CAAQ,CAAA,CAAA,MACR,CAAA,EAAS,CAAA,OACT,CAAO,EAAA,CACP,KAAM,CAAA,EACN,CAAA,IAAA,CAAA,EAAS,CAAA,OACT,CAAA,EAAA,CAAU,QACV,CAAA,EAAA,CAAA,eACA,CAAA,EAAA,CAAA,eACA,CAAA,EAAA,CAAA,iBACA,CAAA,EAAA,CAAA,kBACA,CAAA,EAAS,CAAA,OAEV,CAAA,EAAA,CAAA,CAASC,SACR,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAAA,CACAC,OACD,CAAA,CAAOD,CAAAA,CAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,UACV,CAAA,CAAMA,CAAAA,WAAKC,CAAU,KAC/B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,OAAO,MAAA,CAAA,WACN,CAAA,MAAQ,CAAA,IAAKC,CAAAA,CAAQ,CAC3BA,CAAAA,GACQ,CAAA,CAAA,EAAKC,CAAAA,CAAAA,CAAMA,CAAAA,CAAED,GAA4B,CAAE,CAAA,EAAA,CAAA,CAAA,CAAA,CAAoCH,CAAAA,CAAO,MAC9F,CACF,CACD,CAEA,IAAA,CAAA,CAAMK,CAAAA,CAAc,CAAyCC,MAC5DC,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKC,CAAAA,EAAAA,CAAW,CACtB,GAAGF,CAAAA,CACH,EAAA,CAAGE,CAAAA,GACH,CAAA,CAAA,GAAM,CAAGF,CAAAA,IAAO,CAAI,CAAA,EAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.min.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{v as f}from"valleyed";import{Methods as u}from "./types.min.mjs";function i(...r){const t={params:"",headers:"",query:"",body:"",response:"",responseHeaders:"",defaultStatusCode:"",defaultContentType:"",context:""};function e(s,o){return s?o?typeof s=="number"||typeof s=="string"||typeof s=="function"?o:f.merge(s,o):s:o}return Object.fromEntries(Object.keys(t).map(s=>[s,r.map(o=>o[s]).reduce(e,null)]))}const a=(r,t)=>t.map(e=>({...r,...e,path:`${r.path}/${e.path}`,groups:[...r.groups??[],...e.groups??[]],middlewares:[...r.middlewares??[],...e.middlewares??[]],schema:i(r.schema??{},e.schema??{}),security:[...r.security??[],...e.security??[]]}));class T{#t={path:""};#s=[];#o=[];constructor(t={path:""}){this.#t=t}#e(t){return(e,s={})=>o=>{const n=a(this.#t,[{...s,path:e,method:t,handler:o}])[0];return this.#s.push(n),n}}head=this.#e(u.head);get=this.#e(u.get);post=this.#e(u.post);put=this.#e(u.put);patch=this.#e(u.patch);delete=this.#e(u.delete);options=this.#e(u.options);nest(...t){t.forEach(e=>this.#o.push(e))}get routes(){return[...this.#s].concat(this.#o.flatMap(t=>a(this.#t,t.routes)))}}export{T as Router};
1
+ import{v as a}from"valleyed";import{Methods as u}from "./types.min.mjs";function f(...r){const t={params:"",headers:"",query:"",body:"",cookies:"",response:"",responseHeaders:"",responseCookies:"",defaultStatusCode:"",defaultContentType:"",context:""};function e(s,o){return s?o?typeof s=="number"||typeof s=="string"||typeof s=="function"?o:a.merge(s,o):s:o}return Object.fromEntries(Object.keys(t).map(s=>[s,r.map(o=>o[s]).reduce(e,null)]))}const i=(r,t)=>t.map(e=>({...r,...e,path:`${r.path}/${e.path}`,groups:[...r.groups??[],...e.groups??[]],middlewares:[...r.middlewares??[],...e.middlewares??[]],schema:f(r.schema??{},e.schema??{}),security:[...r.security??[],...e.security??[]]}));class T{#t={path:""};#s=[];#o=[];constructor(t={path:""}){this.#t=t}#e(t){return(e,s={})=>o=>{const n=i(this.#t,[{...s,path:e,method:t,handler:o}])[0];return this.#s.push(n),n}}head=this.#e(u.head);get=this.#e(u.get);post=this.#e(u.post);put=this.#e(u.put);patch=this.#e(u.patch);delete=this.#e(u.delete);options=this.#e(u.options);nest(...t){t.forEach(e=>this.#o.push(e))}get routes(){return[...this.#s].concat(this.#o.flatMap(t=>i(this.#t,t.routes)))}}export{T as Router};
2
2
  //# sourceMappingURL=routes.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/routes.ts"],"sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"],"mappings":"AAAA,OAAS,KAAAA,MAAS,WAElB,OAAS,WAAAC,MAAyG,UAElH,SAASC,KAAgBC,EAAqB,CAE7C,MAAMC,EAAU,CACf,OAAQ,GACR,QAAS,GACT,MAAO,GACP,KAAM,GACN,SAAU,GACV,gBAAiB,GACjB,kBAAmB,GACnB,mBAAoB,GACpB,QAAS,EACV,EACA,SAASC,EAAsCC,EAAeC,EAAQ,CACrE,OAAKD,EACAC,EACD,OAAOD,GAAQ,UACf,OAAOA,GAAQ,UACf,OAAOA,GAAQ,WAAmBC,EAC/BP,EAAE,MAAMM,EAAKC,CAAU,EAJbD,EADAC,CAMlB,CACA,OAAO,OAAO,YACb,OAAO,KAAKH,CAAC,EAAE,IAAKI,GAAQ,CAC3BA,EACAL,EAAQ,IAAKM,GAAMA,EAAED,CAAG,CAAyB,EAAE,OAAoCH,EAAO,IAAI,CACnG,CAAC,CACF,CACD,CAEA,MAAMK,EAAc,CAAyCC,EAAyBC,IACrFA,EAAO,IAAKC,IAAW,CACtB,GAAGF,EACH,GAAGE,EACH,KAAM,GAAGF,EAAO,IAAI,IAAIE,EAAM,IAAI,GAClC,OAAQ,CAAC,GAAIF,EAAO,QAAU,CAAC,EAAI,GAAIE,EAAM,QAAU,CAAC,CAAE,EAC1D,YAAa,CAAC,GAAIF,EAAO,aAAe,CAAC,EAAI,GAAIE,EAAM,aAAe,CAAC,CAAE,EACzE,OAAQX,EAAaS,EAAO,QAAU,CAAC,EAAGE,EAAM,QAAU,CAAC,CAAC,EAC5D,SAAU,CAAC,GAAIF,EAAO,UAAY,CAAC,EAAI,GAAIE,EAAM,UAAY,CAAC,CAAE,CACjE,EAAE,EAEI,MAAMC,CAA2B,CACvCC,GAA2B,CAAE,KAAM,EAAG,EACtCC,GAAwB,CAAC,EACzBC,GAA2B,CAAC,EAE5B,YAAYN,EAA0B,CAAE,KAAM,EAAG,EAAG,CACnD,KAAKI,GAAUJ,CAChB,CAEAO,GAAMC,EAAqB,CAC1B,MAAO,CAAqBC,EAAcT,EAAyB,CAAC,IAClEU,GAAmD,CACnD,MAAMR,EAAQH,EAAY,KAAKK,GAAS,CAAC,CAAE,GAAGJ,EAAQ,KAAAS,EAAM,OAAAD,EAAQ,QAASE,CAAe,CAAC,CAAC,EAAE,CAAC,EACjG,YAAKL,GAAQ,KAAKH,CAAK,EAChBA,CACR,CACF,CAEA,KAAO,KAAKK,GAAMjB,EAAQ,IAAI,EAC9B,IAAM,KAAKiB,GAAMjB,EAAQ,GAAG,EAC5B,KAAO,KAAKiB,GAAMjB,EAAQ,IAAI,EAC9B,IAAM,KAAKiB,GAAMjB,EAAQ,GAAG,EAC5B,MAAQ,KAAKiB,GAAMjB,EAAQ,KAAK,EAChC,OAAS,KAAKiB,GAAMjB,EAAQ,MAAM,EAClC,QAAU,KAAKiB,GAAMjB,EAAQ,OAAO,EAEpC,QAAQqB,EAAwB,CAC/BA,EAAQ,QAASC,GAAW,KAAKN,GAAU,KAAKM,CAAM,CAAC,CACxD,CAEA,IAAI,QAAS,CACZ,MAAO,CAAC,GAAG,KAAKP,EAAO,EAAE,OAAO,KAAKC,GAAU,QAASO,GAAUd,EAAY,KAAKK,GAASS,EAAM,MAAM,CAAC,CAAC,CAC3G,CACD","names":["v","Methods","mergeSchemas","schemas","k","merge","acc","cur","key","s","groupRoutes","config","routes","route","Router","#config","#routes","#children","#wrap","method","path","handler","routers","router","child"]}
1
+ {"version":3,"sources":["../../../src/server/routes.ts"],"sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"],"mappings":"AAAA,OAAS,KAAAA,MAAS,WAElB,OAAS,WAAAC,MAAyG,UAElH,SAASC,KAAgBC,EAAqB,CAE7C,MAAMC,EAAU,CACf,OAAQ,GACR,QAAS,GACT,MAAO,GACP,KAAM,GACN,QAAS,GACT,SAAU,GACV,gBAAiB,GACjB,gBAAiB,GACjB,kBAAmB,GACnB,mBAAoB,GACpB,QAAS,EACV,EACA,SAASC,EAAsCC,EAAeC,EAAQ,CACrE,OAAKD,EACAC,EACD,OAAOD,GAAQ,UACf,OAAOA,GAAQ,UACf,OAAOA,GAAQ,WAAmBC,EAC/BP,EAAE,MAAMM,EAAKC,CAAU,EAJbD,EADAC,CAMlB,CACA,OAAO,OAAO,YACb,OAAO,KAAKH,CAAC,EAAE,IAAKI,GAAQ,CAC3BA,EACAL,EAAQ,IAAKM,GAAMA,EAAED,CAAG,CAAyB,EAAE,OAAoCH,EAAO,IAAI,CACnG,CAAC,CACF,CACD,CAEA,MAAMK,EAAc,CAAyCC,EAAyBC,IACrFA,EAAO,IAAKC,IAAW,CACtB,GAAGF,EACH,GAAGE,EACH,KAAM,GAAGF,EAAO,IAAI,IAAIE,EAAM,IAAI,GAClC,OAAQ,CAAC,GAAIF,EAAO,QAAU,CAAC,EAAI,GAAIE,EAAM,QAAU,CAAC,CAAE,EAC1D,YAAa,CAAC,GAAIF,EAAO,aAAe,CAAC,EAAI,GAAIE,EAAM,aAAe,CAAC,CAAE,EACzE,OAAQX,EAAaS,EAAO,QAAU,CAAC,EAAGE,EAAM,QAAU,CAAC,CAAC,EAC5D,SAAU,CAAC,GAAIF,EAAO,UAAY,CAAC,EAAI,GAAIE,EAAM,UAAY,CAAC,CAAE,CACjE,EAAE,EAEI,MAAMC,CAA2B,CACvCC,GAA2B,CAAE,KAAM,EAAG,EACtCC,GAAwB,CAAC,EACzBC,GAA2B,CAAC,EAE5B,YAAYN,EAA0B,CAAE,KAAM,EAAG,EAAG,CACnD,KAAKI,GAAUJ,CAChB,CAEAO,GAAMC,EAAqB,CAC1B,MAAO,CAAqBC,EAAcT,EAAyB,CAAC,IAClEU,GAAmD,CACnD,MAAMR,EAAQH,EAAY,KAAKK,GAAS,CAAC,CAAE,GAAGJ,EAAQ,KAAAS,EAAM,OAAAD,EAAQ,QAASE,CAAe,CAAC,CAAC,EAAE,CAAC,EACjG,YAAKL,GAAQ,KAAKH,CAAK,EAChBA,CACR,CACF,CAEA,KAAO,KAAKK,GAAMjB,EAAQ,IAAI,EAC9B,IAAM,KAAKiB,GAAMjB,EAAQ,GAAG,EAC5B,KAAO,KAAKiB,GAAMjB,EAAQ,IAAI,EAC9B,IAAM,KAAKiB,GAAMjB,EAAQ,GAAG,EAC5B,MAAQ,KAAKiB,GAAMjB,EAAQ,KAAK,EAChC,OAAS,KAAKiB,GAAMjB,EAAQ,MAAM,EAClC,QAAU,KAAKiB,GAAMjB,EAAQ,OAAO,EAEpC,QAAQqB,EAAwB,CAC/BA,EAAQ,QAASC,GAAW,KAAKN,GAAU,KAAKM,CAAM,CAAC,CACxD,CAEA,IAAI,QAAS,CACZ,MAAO,CAAC,GAAG,KAAKP,EAAO,EAAE,OAAO,KAAKC,GAAU,QAASO,GAAUd,EAAY,KAAKK,GAASS,EAAM,MAAM,CAAC,CAAC,CAC3G,CACD","names":["v","Methods","mergeSchemas","schemas","k","merge","acc","cur","key","s","groupRoutes","config","routes","route","Router","#config","#routes","#children","#wrap","method","path","handler","routers","router","child"]}
@@ -6,8 +6,10 @@ function mergeSchemas(...schemas) {
6
6
  headers: "",
7
7
  query: "",
8
8
  body: "",
9
+ cookies: "",
9
10
  response: "",
10
11
  responseHeaders: "",
12
+ responseCookies: "",
11
13
  defaultStatusCode: "",
12
14
  defaultContentType: "",
13
15
  context: ""
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/routes.ts"],"sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,eAAyG;AAElH,SAAS,gBAAgB,SAAqB;AAE7C,QAAM,IAAU;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,SAAS;AAAA,EACV;AACA,WAAS,MAAsC,KAAe,KAAQ;AACrE,QAAI,CAAC,IAAK,QAAO;AACjB,QAAI,CAAC,IAAK,QAAO;AACjB,QAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,QAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,QAAI,OAAO,QAAQ,WAAY,QAAO;AACtC,WAAO,EAAE,MAAM,KAAK,GAAU;AAAA,EAC/B;AACA,SAAO,OAAO;AAAA,IACb,OAAO,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ;AAAA,MAC3B;AAAA,MACA,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG,CAAyB,EAAE,OAAoC,OAAO,IAAI;AAAA,IACnG,CAAC;AAAA,EACF;AACD;AAEA,MAAM,cAAc,CAAyC,QAAyB,WACrF,OAAO,IAAI,CAAC,WAAW;AAAA,EACtB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,GAAG,OAAO,IAAI,IAAI,MAAM,IAAI;AAAA,EAClC,QAAQ,CAAC,GAAI,OAAO,UAAU,CAAC,GAAI,GAAI,MAAM,UAAU,CAAC,CAAE;AAAA,EAC1D,aAAa,CAAC,GAAI,OAAO,eAAe,CAAC,GAAI,GAAI,MAAM,eAAe,CAAC,CAAE;AAAA,EACzE,QAAQ,aAAa,OAAO,UAAU,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC;AAAA,EAC5D,UAAU,CAAC,GAAI,OAAO,YAAY,CAAC,GAAI,GAAI,MAAM,YAAY,CAAC,CAAE;AACjE,EAAE;AAEI,MAAM,OAA2B;AAAA,EACvC,UAA2B,EAAE,MAAM,GAAG;AAAA,EACtC,UAAwB,CAAC;AAAA,EACzB,YAA2B,CAAC;AAAA,EAE5B,YAAY,SAA0B,EAAE,MAAM,GAAG,GAAG;AACnD,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAM,QAAqB;AAC1B,WAAO,CAAqB,MAAc,SAAyB,CAAC,MACnE,CAAC,YAAmD;AACnD,YAAM,QAAQ,YAAY,KAAK,SAAS,CAAC,EAAE,GAAG,QAAQ,MAAM,QAAQ,QAAwB,CAAC,CAAC,EAAE,CAAC;AACjG,WAAK,QAAQ,KAAK,KAAK;AACvB,aAAO;AAAA,IACR;AAAA,EACF;AAAA,EAEA,OAAO,KAAK,MAAM,QAAQ,IAAI;AAAA,EAC9B,MAAM,KAAK,MAAM,QAAQ,GAAG;AAAA,EAC5B,OAAO,KAAK,MAAM,QAAQ,IAAI;AAAA,EAC9B,MAAM,KAAK,MAAM,QAAQ,GAAG;AAAA,EAC5B,QAAQ,KAAK,MAAM,QAAQ,KAAK;AAAA,EAChC,SAAS,KAAK,MAAM,QAAQ,MAAM;AAAA,EAClC,UAAU,KAAK,MAAM,QAAQ,OAAO;AAAA,EAEpC,QAAQ,SAAwB;AAC/B,YAAQ,QAAQ,CAAC,WAAW,KAAK,UAAU,KAAK,MAAM,CAAC;AAAA,EACxD;AAAA,EAEA,IAAI,SAAS;AACZ,WAAO,CAAC,GAAG,KAAK,OAAO,EAAE,OAAO,KAAK,UAAU,QAAQ,CAAC,UAAU,YAAY,KAAK,SAAS,MAAM,MAAM,CAAC,CAAC;AAAA,EAC3G;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/server/routes.ts"],"sourcesContent":["import { v } from 'valleyed'\n\nimport { Methods, RouteDefHandler, RouterConfig, Route, MethodsEnum, RouteConfig, RouteDef, MergeRouteDefs } from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,eAAyG;AAElH,SAAS,gBAAgB,SAAqB;AAE7C,QAAM,IAAU;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,SAAS;AAAA,EACV;AACA,WAAS,MAAsC,KAAe,KAAQ;AACrE,QAAI,CAAC,IAAK,QAAO;AACjB,QAAI,CAAC,IAAK,QAAO;AACjB,QAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,QAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,QAAI,OAAO,QAAQ,WAAY,QAAO;AACtC,WAAO,EAAE,MAAM,KAAK,GAAU;AAAA,EAC/B;AACA,SAAO,OAAO;AAAA,IACb,OAAO,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ;AAAA,MAC3B;AAAA,MACA,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG,CAAyB,EAAE,OAAoC,OAAO,IAAI;AAAA,IACnG,CAAC;AAAA,EACF;AACD;AAEA,MAAM,cAAc,CAAyC,QAAyB,WACrF,OAAO,IAAI,CAAC,WAAW;AAAA,EACtB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM,GAAG,OAAO,IAAI,IAAI,MAAM,IAAI;AAAA,EAClC,QAAQ,CAAC,GAAI,OAAO,UAAU,CAAC,GAAI,GAAI,MAAM,UAAU,CAAC,CAAE;AAAA,EAC1D,aAAa,CAAC,GAAI,OAAO,eAAe,CAAC,GAAI,GAAI,MAAM,eAAe,CAAC,CAAE;AAAA,EACzE,QAAQ,aAAa,OAAO,UAAU,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC;AAAA,EAC5D,UAAU,CAAC,GAAI,OAAO,YAAY,CAAC,GAAI,GAAI,MAAM,YAAY,CAAC,CAAE;AACjE,EAAE;AAEI,MAAM,OAA2B;AAAA,EACvC,UAA2B,EAAE,MAAM,GAAG;AAAA,EACtC,UAAwB,CAAC;AAAA,EACzB,YAA2B,CAAC;AAAA,EAE5B,YAAY,SAA0B,EAAE,MAAM,GAAG,GAAG;AACnD,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAM,QAAqB;AAC1B,WAAO,CAAqB,MAAc,SAAyB,CAAC,MACnE,CAAC,YAAmD;AACnD,YAAM,QAAQ,YAAY,KAAK,SAAS,CAAC,EAAE,GAAG,QAAQ,MAAM,QAAQ,QAAwB,CAAC,CAAC,EAAE,CAAC;AACjG,WAAK,QAAQ,KAAK,KAAK;AACvB,aAAO;AAAA,IACR;AAAA,EACF;AAAA,EAEA,OAAO,KAAK,MAAM,QAAQ,IAAI;AAAA,EAC9B,MAAM,KAAK,MAAM,QAAQ,GAAG;AAAA,EAC5B,OAAO,KAAK,MAAM,QAAQ,IAAI;AAAA,EAC9B,MAAM,KAAK,MAAM,QAAQ,GAAG;AAAA,EAC5B,QAAQ,KAAK,MAAM,QAAQ,KAAK;AAAA,EAChC,SAAS,KAAK,MAAM,QAAQ,MAAM;AAAA,EAClC,UAAU,KAAK,MAAM,QAAQ,OAAO;AAAA,EAEpC,QAAQ,SAAwB;AAC/B,YAAQ,QAAQ,CAAC,WAAW,KAAK,UAAU,KAAK,MAAM,CAAC;AAAA,EACxD;AAAA,EAEA,IAAI,SAAS;AACZ,WAAO,CAAC,GAAG,KAAK,OAAO,EAAE,OAAO,KAAK,UAAU,QAAQ,CAAC,UAAU,YAAY,KAAK,SAAS,MAAM,MAAM,CAAC,CAAC;AAAA,EAC3G;AACD;","names":[]}
@@ -0,0 +1,30 @@
1
+ import { Pipe, PipeInput } from 'valleyed';
2
+ import { D as Db } from '../db-Bh0mF2ja.js';
3
+ import '../core-BuPovjLX.js';
4
+ import 'mongodb';
5
+ import '../kafka-zsC3c8ar.js';
6
+ import '../overrides-6Hxg764S.js';
7
+ import '../base-CfeyC14V.js';
8
+
9
+ type EventDefinition<P, R> = {
10
+ pipe: Pipe<any, P>;
11
+ handle: (payload: P, context: {
12
+ idempotencyKey: string;
13
+ idempotencyDate: Date;
14
+ }) => Promise<R>;
15
+ };
16
+ declare class EventAudit<E extends Record<string, EventDefinition<any, any>>> {
17
+ #private;
18
+ private db;
19
+ private handlers;
20
+ private table;
21
+ constructor(db: Db<any>, dbName: string, handlers: E);
22
+ createSync<K extends keyof E & string>(type: K, payload: PipeInput<E[K]['pipe']>): Promise<E[K] extends EventDefinition<any, infer R> ? R : never>;
23
+ createAsync<K extends keyof E & string>(type: K, payload: PipeInput<E[K]['pipe']>): Promise<void>;
24
+ replay(from?: Date): Promise<void>;
25
+ rerun(key: string): Promise<void>;
26
+ createId(): string;
27
+ static defineHandler<P, R>(def: EventDefinition<P, R>): EventDefinition<P, R>;
28
+ }
29
+
30
+ export { EventAudit };
@@ -0,0 +1,8 @@
1
+ declare abstract class Cache {
2
+ abstract set(key: string, data: string, ttlInSecs?: number): Promise<void>;
3
+ abstract get(key: string): Promise<string | null>;
4
+ abstract delete(key: string): Promise<void>;
5
+ abstract getOrSet<T>(key: string, fn: () => Promise<T>, ttlInSecs?: number): Promise<T>;
6
+ }
7
+
8
+ export { Cache as C };
@@ -0,0 +1,14 @@
1
+ import { E as Events } from './overrides-6Hxg764S.js';
2
+
3
+ type StreamOptions = {
4
+ skipScope?: boolean;
5
+ fanout: boolean;
6
+ };
7
+ declare abstract class EventBus {
8
+ abstract createStream<Event extends Events[keyof Events]>(topic: Event['topic'], options?: Partial<StreamOptions>): {
9
+ publish: (data: Event['data']) => Promise<boolean>;
10
+ subscribe: (onMessage: (data: Event['data']) => Promise<void>) => void;
11
+ };
12
+ }
13
+
14
+ export { EventBus as E, type StreamOptions as S };
@@ -0,0 +1,43 @@
1
+ import { C as Cache } from '../base-8yVXb67P.js';
2
+ import * as valleyed from 'valleyed';
3
+ import { PipeOutput } from 'valleyed';
4
+ import { Redis, Cluster, RedisOptions } from 'ioredis';
5
+
6
+ declare const redisConfigPipe: () => valleyed.Pipe<{
7
+ host: string;
8
+ port: number | undefined;
9
+ password: string | undefined;
10
+ username: string | undefined;
11
+ tls: boolean | undefined;
12
+ cluster: boolean | undefined;
13
+ }, {
14
+ host: string;
15
+ port: number | undefined;
16
+ password: string | undefined;
17
+ username: string | undefined;
18
+ tls: boolean | undefined;
19
+ cluster: boolean | undefined;
20
+ }>;
21
+ type RedisConfig = PipeOutput<ReturnType<typeof redisConfigPipe>>;
22
+
23
+ declare class InMemoryCache extends Cache {
24
+ private readonly cache;
25
+ constructor();
26
+ private getScopedKey;
27
+ delete(key: string): Promise<void>;
28
+ get(key: string): Promise<string | null>;
29
+ set(key: string, data: string, ttlInSecs?: number): Promise<void>;
30
+ getOrSet<T>(key: string, fn: () => Promise<T>, ttlInSecs?: number): Promise<T>;
31
+ }
32
+
33
+ declare class RedisCache extends Cache {
34
+ client: Redis | Cluster;
35
+ constructor(settings: RedisConfig, extraConfig?: Partial<RedisOptions>);
36
+ private getScopedKey;
37
+ delete(key: string): Promise<void>;
38
+ get(key: string): Promise<string | null>;
39
+ set(key: string, data: string, ttlInSecs?: number): Promise<void>;
40
+ getOrSet<T>(key: string, fn: () => Promise<T>, ttlInSecs?: number): Promise<any>;
41
+ }
42
+
43
+ export { Cache, InMemoryCache, RedisCache, type RedisConfig, redisConfigPipe };
@@ -0,0 +1,253 @@
1
+ import { Filter, UpdateFilter } from 'mongodb';
2
+ import { PipeOutput, Pipe, PipeInput, ConditionalObjectKeys, DistributiveOmit, DeepPartial } from 'valleyed';
3
+ import { K as KafkaEventBus } from './kafka-zsC3c8ar.js';
4
+
5
+ declare enum QueryKeys {
6
+ and = "and",
7
+ or = "or"
8
+ }
9
+ declare enum Conditions {
10
+ lt = "lt",
11
+ lte = "lte",
12
+ gt = "gt",
13
+ gte = "gte",
14
+ eq = "eq",
15
+ ne = "ne",
16
+ in = "in",
17
+ nin = "nin",
18
+ exists = "exists"
19
+ }
20
+ declare const queryKeys: Pipe<QueryKeys | undefined, QueryKeys>;
21
+ declare const queryWhere: Pipe<{
22
+ field: string;
23
+ value: any;
24
+ condition: Conditions | undefined;
25
+ }, {
26
+ field: string;
27
+ value: any;
28
+ condition: Conditions;
29
+ }>;
30
+ declare function queryParamsPipe(): Pipe<{
31
+ all: boolean | undefined;
32
+ limit: number | undefined;
33
+ page: number | undefined;
34
+ search: {
35
+ value: string;
36
+ fields: string[];
37
+ } | null | undefined;
38
+ sort: {
39
+ field: string;
40
+ desc: boolean | undefined;
41
+ }[] | undefined;
42
+ whereType: QueryKeys | undefined;
43
+ where: ({
44
+ field: string;
45
+ value: any;
46
+ condition: Conditions | undefined;
47
+ } | {
48
+ condition: PipeInput<typeof queryKeys>;
49
+ value: PipeInput<typeof queryWhere>[];
50
+ })[] | undefined;
51
+ }, {
52
+ auth: ({
53
+ field: string;
54
+ value: any;
55
+ condition: Conditions;
56
+ } | {
57
+ condition: PipeOutput<typeof queryKeys>;
58
+ value: PipeOutput<typeof queryWhere>[];
59
+ })[];
60
+ authType: QueryKeys;
61
+ all: boolean;
62
+ limit: number;
63
+ page: number;
64
+ search: {
65
+ value: string;
66
+ fields: string[];
67
+ } | null;
68
+ sort: {
69
+ field: string;
70
+ desc: boolean;
71
+ }[];
72
+ whereType: QueryKeys;
73
+ where: ({
74
+ field: string;
75
+ value: any;
76
+ condition: Conditions;
77
+ } | {
78
+ condition: PipeOutput<typeof queryKeys>;
79
+ value: PipeOutput<typeof queryWhere>[];
80
+ })[];
81
+ }>;
82
+ declare function queryResultsPipe<T>(model: Pipe<any, T>): Pipe<{
83
+ pages: {
84
+ current: number;
85
+ start: number;
86
+ last: number;
87
+ previous: number | null;
88
+ next: number | null;
89
+ };
90
+ docs: {
91
+ limit: number;
92
+ total: number;
93
+ count: number;
94
+ };
95
+ results: any[];
96
+ }, {
97
+ pages: {
98
+ current: number;
99
+ start: number;
100
+ last: number;
101
+ previous: number | null;
102
+ next: number | null;
103
+ };
104
+ docs: {
105
+ limit: number;
106
+ total: number;
107
+ count: number;
108
+ };
109
+ results: T[];
110
+ }>;
111
+ declare function wrapQueryParams(params: QueryParamsInput): QueryParams;
112
+ type QueryParams = PipeOutput<ReturnType<typeof queryParamsPipe>>;
113
+ type QueryParamsInput = ConditionalObjectKeys<PipeInput<ReturnType<typeof queryParamsPipe>>>;
114
+ type QueryWhereClause = QueryParams['where'][number];
115
+ type QueryWhere = Extract<QueryWhereClause, {
116
+ field: string;
117
+ }>;
118
+ type QueryWhereBlock = Exclude<QueryWhereClause, {
119
+ field: string;
120
+ }>;
121
+ type QueryResults<T> = PipeOutput<ReturnType<typeof queryResultsPipe<T>>>;
122
+ declare const mongoDbConfigPipe: () => Pipe<{
123
+ uri: string;
124
+ }, {
125
+ uri: string;
126
+ }>;
127
+ type MongoDbConfig = PipeOutput<ReturnType<typeof mongoDbConfigPipe>>;
128
+
129
+ type DbChangeConfig = {
130
+ eventBus: KafkaEventBus;
131
+ debeziumUrl: string;
132
+ };
133
+ type DbConfig = {
134
+ changes?: DbChangeConfig;
135
+ };
136
+
137
+ declare abstract class DbChange<Model extends Model<IdType>, Entity extends Entity> {
138
+ protected config: DbChangeConfig;
139
+ protected callbacks: DbChangeCallbacks<Model, Entity>;
140
+ protected mapper: (model: Model) => Entity;
141
+ constructor(config: DbChangeConfig, callbacks: DbChangeCallbacks<Model, Entity>, mapper: (model: Model) => Entity);
142
+ protected configureConnector(key: string, data: Record<string, string>): Promise<any>;
143
+ }
144
+
145
+ type IdType = {
146
+ _id: string;
147
+ } | {
148
+ id: string;
149
+ };
150
+ type Entity = {
151
+ toJSON: () => Record<string, unknown>;
152
+ };
153
+ type ModelId<T> = T extends Model<infer Id> ? Id[keyof Id] : never;
154
+ type Model<IdKey extends IdType> = IdKey & {
155
+ createdAt?: number;
156
+ updatedAt?: number;
157
+ };
158
+ type Sort = NonNullable<QueryParams['sort']>[number];
159
+ type Table<Id extends IdType, T extends Model<Id>, E extends Entity, Extras extends Record<string, unknown> = {}> = {
160
+ query: (query: QueryParams) => Promise<QueryResults<E>>;
161
+ findMany: (filter: Filter<T>, options?: {
162
+ limit?: number;
163
+ sort?: Sort | Sort[];
164
+ }) => Promise<E[]>;
165
+ findOne: (filter: Filter<T>) => Promise<E | null>;
166
+ findById: (id: ModelId<T>) => Promise<E | null>;
167
+ insertOne: (values: CreateInput<T>, options?: {
168
+ makeId?: () => string;
169
+ getTime?: () => Date;
170
+ }) => Promise<E>;
171
+ insertMany: (values: CreateInput<T>[], options?: {
172
+ makeId?: (i: number) => string;
173
+ getTime?: () => Date;
174
+ }) => Promise<E[]>;
175
+ updateMany: (filter: Filter<T>, values: UpdateInput<T>, options?: {
176
+ getTime?: () => Date;
177
+ }) => Promise<E[]>;
178
+ updateOne: (filter: Filter<T>, values: UpdateInput<T>, options?: {
179
+ getTime?: () => Date;
180
+ }) => Promise<E | null>;
181
+ updateById: (id: ModelId<T>, values: UpdateInput<T>, options?: {
182
+ getTime?: () => Date;
183
+ }) => Promise<E | null>;
184
+ upsertOne: (filter: Filter<T>, values: {
185
+ insert: CreateInput<T>;
186
+ } | {
187
+ insert: Partial<CreateInput<T>>;
188
+ update: UpdateInput<T>;
189
+ }, options?: {
190
+ makeId?: () => string;
191
+ getTime?: () => Date;
192
+ }) => Promise<E>;
193
+ deleteOne: (filter: Filter<T>) => Promise<E | null>;
194
+ deleteById: (id: ModelId<T>) => Promise<E | null>;
195
+ deleteMany: (filter: Filter<T>) => Promise<E[]>;
196
+ bulkWrite: (operations: BulkWriteOperation<T>[], options?: {
197
+ getTime?: () => Date;
198
+ }) => Promise<void>;
199
+ readonly config: Config<T, E>;
200
+ readonly extras: Extras;
201
+ watch: (callbacks: DbChangeCallbacks<T, E>) => DbChange<T, E>;
202
+ };
203
+
204
+ type AllKeys<T> = T extends any ? keyof T : never;
205
+ type EntityInput<T extends Model<any>> = ConditionalObjectKeys<DistributiveOmit<T, AllKeys<IdType> | keyof Model<IdType>>>;
206
+ type CreateInput<T extends Model<any>> = EntityInput<T>;
207
+ type UpdateInput<T extends Model<any>> = DistributiveOmit<UpdateFilter<CreateInput<T>>, '$setOnInsert'>;
208
+ type BulkWriteOperation<T extends Model<any>> = {
209
+ op: 'insert';
210
+ value: CreateInput<T>;
211
+ makeId?: (i: number) => string;
212
+ } | {
213
+ op: 'update';
214
+ filter: Filter<T>;
215
+ value: UpdateInput<T>;
216
+ } | ({
217
+ op: 'upsert';
218
+ filter: Filter<T>;
219
+ makeId?: (i: number) => string;
220
+ } & ({
221
+ insert: CreateInput<T>;
222
+ } | {
223
+ insert: Partial<CreateInput<T>>;
224
+ update: UpdateInput<T>;
225
+ })) | {
226
+ op: 'delete';
227
+ filter: Filter<T>;
228
+ };
229
+ type DbChangeCallbacks<M extends Model<IdType>, E extends Entity> = {
230
+ created?: (data: {
231
+ before: null;
232
+ after: E;
233
+ }) => Promise<void>;
234
+ updated?: (data: {
235
+ before: E;
236
+ after: E;
237
+ changes: DeepPartial<M>;
238
+ }) => Promise<void>;
239
+ deleted?: (data: {
240
+ before: E;
241
+ after: null;
242
+ }) => Promise<void>;
243
+ };
244
+ type Config<M extends Model<IdType>, E extends Entity> = {
245
+ db: string;
246
+ col: string;
247
+ mapper: (model: M) => E;
248
+ options?: {
249
+ skipAudit?: boolean;
250
+ };
251
+ };
252
+
253
+ export { type BulkWriteOperation as B, type CreateInput as C, DbChange as D, type Entity as E, type IdType as I, type Model as M, QueryKeys as Q, type Table as T, type UpdateInput as U, type MongoDbConfig as a, type DbChangeConfig as b, type DbChangeCallbacks as c, type EntityInput as d, type Config as e, type DbConfig as f, Conditions as g, queryResultsPipe as h, type QueryParams as i, type QueryParamsInput as j, type QueryWhereClause as k, type QueryWhere as l, type QueryWhereBlock as m, type QueryResults as n, mongoDbConfigPipe as o, queryParamsPipe as q, wrapQueryParams as w };
@@ -0,0 +1,24 @@
1
+ import { MongoClient, ObjectId, Collection } from 'mongodb';
2
+ import { a as MongoDbConfig, f as DbConfig, M as Model, E as Entity, e as Config, T as Table } from './core-BuPovjLX.js';
3
+ import { D as Db } from './db-Bh0mF2ja.js';
4
+
5
+ type IdType = {
6
+ _id: string;
7
+ };
8
+ declare class MongoDb extends Db<{
9
+ _id: string;
10
+ }> {
11
+ #private;
12
+ private mongoConfig;
13
+ client: MongoClient;
14
+ constructor(mongoConfig: MongoDbConfig, dbConfig: DbConfig);
15
+ session<T>(callback: () => Promise<T>): Promise<T>;
16
+ id(): ObjectId;
17
+ use<Model extends Model<{
18
+ _id: string;
19
+ }>, Entity extends Entity>(config: Config<Model, Entity>): Table<IdType, Model, Entity, {
20
+ collection: Collection<Model>;
21
+ }>;
22
+ }
23
+
24
+ export { MongoDb as M };
@@ -0,0 +1,14 @@
1
+ import { I as IdType, f as DbConfig, M as Model, E as Entity, e as Config, T as Table } from './core-BuPovjLX.js';
2
+
3
+ type TableOptions = {
4
+ skipAudit?: boolean;
5
+ };
6
+ declare abstract class Db<IdKey extends IdType> {
7
+ protected config: DbConfig;
8
+ constructor(config: DbConfig);
9
+ protected getScopedDb(db: string): string;
10
+ abstract use<Model extends Model<IdKey>, Entity extends Entity>(config: Config<Model, Entity>): Table<IdKey, Model, Entity>;
11
+ abstract session<T>(callback: () => Promise<T>): Promise<T>;
12
+ }
13
+
14
+ export { Db as D, type TableOptions as T };
@@ -0,0 +1,19 @@
1
+ import { M as Model, E as Entity, D as DbChange, a as MongoDbConfig, b as DbChangeConfig, c as DbChangeCallbacks } from '../core-BuPovjLX.js';
2
+ export { B as BulkWriteOperation, g as Conditions, e as Config, C as CreateInput, f as DbConfig, d as EntityInput, I as IdType, Q as QueryKeys, i as QueryParams, j as QueryParamsInput, n as QueryResults, l as QueryWhere, m as QueryWhereBlock, k as QueryWhereClause, T as Table, U as UpdateInput, o as mongoDbConfigPipe, q as queryParamsPipe, h as queryResultsPipe, w as wrapQueryParams } from '../core-BuPovjLX.js';
3
+ export { D as Db, T as TableOptions } from '../db-Bh0mF2ja.js';
4
+ import { Collection } from 'mongodb';
5
+ export { Filter } from 'mongodb';
6
+ export { M as MongoDb } from '../db-B3v890eW.js';
7
+ import 'valleyed';
8
+ import '../kafka-zsC3c8ar.js';
9
+ import '../overrides-6Hxg764S.js';
10
+ import '../base-CfeyC14V.js';
11
+
12
+ declare class MongoDbChange<Model extends Model<{
13
+ _id: string;
14
+ }>, Entity extends Entity> extends DbChange<Model, Entity> {
15
+ #private;
16
+ constructor(config: MongoDbConfig, change: DbChangeConfig, collection: Collection<Model>, callbacks: DbChangeCallbacks<Model, Entity>, mapper: (model: Model) => Entity);
17
+ }
18
+
19
+ export { DbChangeCallbacks, DbChangeConfig, Entity, Model, MongoDbChange, MongoDbConfig };
@@ -0,0 +1,42 @@
1
+ import { p as RequestError } from '../requests-HlupG2_s.js';
2
+ export { E as EquippedError } from '../requests-HlupG2_s.js';
3
+ export { V as ValidationError } from '../validationError-Ztplzq8d.js';
4
+ import 'node:stream';
5
+ import '@fastify/cookie';
6
+ import 'valleyed';
7
+ import '../overrides-6Hxg764S.js';
8
+ import '../types/index.js';
9
+ import '../base-CfeyC14V.js';
10
+ import '../base-8yVXb67P.js';
11
+
12
+ declare class AuthorizationExpired extends RequestError {
13
+ statusCode: 461;
14
+ constructor(message?: string, cause?: unknown);
15
+ }
16
+
17
+ declare class BadRequestError extends RequestError {
18
+ statusCode: 400;
19
+ constructor(message: string, cause?: unknown);
20
+ }
21
+
22
+ declare class NotAuthenticatedError extends RequestError {
23
+ statusCode: 401;
24
+ constructor(message?: string, cause?: unknown);
25
+ }
26
+
27
+ declare class NotAuthorizedError extends RequestError {
28
+ statusCode: 403;
29
+ constructor(message?: string, cause?: unknown);
30
+ }
31
+
32
+ declare class NotFoundError extends RequestError {
33
+ statusCode: 404;
34
+ constructor(message?: string, cause?: unknown);
35
+ }
36
+
37
+ declare class RefreshTokenMisusedError extends RequestError {
38
+ statusCode: 401;
39
+ constructor(message?: string, cause?: unknown);
40
+ }
41
+
42
+ export { AuthorizationExpired, BadRequestError, NotAuthenticatedError, NotAuthorizedError, NotFoundError, RefreshTokenMisusedError, RequestError };
@@ -0,0 +1,16 @@
1
+ import { E as EventBus, S as StreamOptions } from '../base-CfeyC14V.js';
2
+ import { R as RabbitMQConfig } from '../kafka-zsC3c8ar.js';
3
+ export { a as KafkaConfig, K as KafkaEventBus, k as kafkaConfigPipe, r as rabbitmqConfigPipe } from '../kafka-zsC3c8ar.js';
4
+ import { E as Events } from '../overrides-6Hxg764S.js';
5
+ import 'valleyed';
6
+
7
+ declare class RabbitMQEventBus extends EventBus {
8
+ #private;
9
+ constructor(config: RabbitMQConfig);
10
+ createStream<Event extends Events[keyof Events]>(topicName: Event['topic'], options?: Partial<StreamOptions>): {
11
+ publish: (data: Event["data"]) => Promise<boolean>;
12
+ subscribe: (onMessage: (data: Event["data"]) => Promise<void>) => Promise<void>;
13
+ };
14
+ }
15
+
16
+ export { EventBus, RabbitMQConfig, RabbitMQEventBus, StreamOptions };