equipped 5.3.0-alpha.0 → 5.3.0

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 (134) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/server/adapters/express/index.cjs +266 -4
  3. package/dist/cjs/server/adapters/express/index.cjs.map +1 -1
  4. package/dist/cjs/server/adapters/express/index.min.cjs +7 -7
  5. package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -1
  6. package/dist/cjs/server/adapters/fastify/index.cjs +269 -4
  7. package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -1
  8. package/dist/cjs/server/adapters/fastify/index.min.cjs +7 -7
  9. package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -1
  10. package/dist/cjs/server/index.cjs +215 -4
  11. package/dist/cjs/server/index.cjs.map +1 -1
  12. package/dist/cjs/server/index.min.cjs +7 -7
  13. package/dist/cjs/server/index.min.cjs.map +1 -1
  14. package/dist/esm/cache/adapters/in-memory/index.min.mjs +1 -1
  15. package/dist/esm/cache/adapters/in-memory/index.mjs +2 -2
  16. package/dist/esm/cache/adapters/redis/index.min.mjs +1 -1
  17. package/dist/esm/cache/adapters/redis/index.mjs +3 -3
  18. package/dist/esm/cache/index.min.mjs +1 -1
  19. package/dist/esm/cache/index.mjs +2 -2
  20. package/dist/esm/{chunk-WHIWTP2Z.min.mjs → chunk-4JLDXF7T.min.mjs} +2 -2
  21. package/dist/esm/{chunk-I4BB436E.mjs → chunk-4MXYZS5R.mjs} +2 -2
  22. package/dist/esm/{chunk-YTM6ZURZ.min.mjs → chunk-5VW3JAFR.min.mjs} +2 -2
  23. package/dist/esm/{chunk-YTHRK2PO.mjs → chunk-AKQBDYUO.mjs} +3 -3
  24. package/dist/esm/{chunk-MYGAF2AC.min.mjs → chunk-B5QQ32YY.min.mjs} +2 -2
  25. package/dist/esm/chunk-FLAPYQUT.min.mjs +32 -0
  26. package/dist/esm/chunk-FLAPYQUT.min.mjs.map +1 -0
  27. package/dist/esm/{chunk-KW3PBDFD.mjs → chunk-JH6EBXY4.mjs} +2 -2
  28. package/dist/esm/{chunk-2TCFNKRZ.mjs → chunk-MDQKODYQ.mjs} +216 -5
  29. package/dist/esm/chunk-MDQKODYQ.mjs.map +1 -0
  30. package/dist/esm/{chunk-ECBJ3NT3.min.mjs → chunk-PCAUXBAG.min.mjs} +2 -2
  31. package/dist/esm/{chunk-RIRBNBTC.mjs → chunk-PNZNNUMN.mjs} +3 -3
  32. package/dist/esm/{chunk-TWKHVLLT.mjs → chunk-PQCBVQL6.mjs} +2 -2
  33. package/dist/esm/{chunk-AUKXL4EA.min.mjs → chunk-QHLKB47N.min.mjs} +2 -2
  34. package/dist/esm/{chunk-6DW4GW3R.min.mjs → chunk-SGZNOYC3.min.mjs} +2 -2
  35. package/dist/esm/{chunk-6SB5M4XH.mjs → chunk-TVTYDU2D.mjs} +3 -3
  36. package/dist/esm/{chunk-IEBC3OWN.mjs → chunk-Z2TZ3KR7.mjs} +2 -2
  37. package/dist/esm/{chunk-OXI6IKAM.min.mjs → chunk-ZGMFFK6Y.min.mjs} +2 -2
  38. package/dist/esm/dbs/adapters/mongodb/index.min.mjs +1 -1
  39. package/dist/esm/dbs/adapters/mongodb/index.mjs +3 -3
  40. package/dist/esm/dbs/index.min.mjs +1 -1
  41. package/dist/esm/dbs/index.mjs +3 -3
  42. package/dist/esm/errors/index.min.mjs +1 -1
  43. package/dist/esm/errors/index.mjs +1 -1
  44. package/dist/esm/events/adapters/kafka/index.min.mjs +1 -1
  45. package/dist/esm/events/adapters/kafka/index.mjs +2 -2
  46. package/dist/esm/events/adapters/rabbitmq/index.min.mjs +1 -1
  47. package/dist/esm/events/adapters/rabbitmq/index.mjs +1 -1
  48. package/dist/esm/index.min.mjs +1 -1
  49. package/dist/esm/index.mjs +1 -1
  50. package/dist/esm/instance/index.min.mjs +1 -1
  51. package/dist/esm/instance/index.mjs +1 -1
  52. package/dist/esm/{introspection-Y7EXSYPD.mjs → introspection-32BRYKYY.mjs} +3 -3
  53. package/dist/esm/introspection-A72WMWE3.min.mjs +2 -0
  54. package/dist/esm/jobs/adapters/redis/index.min.mjs +1 -1
  55. package/dist/esm/jobs/adapters/redis/index.mjs +3 -3
  56. package/dist/esm/orm/adapters/in-memory/index.min.mjs +1 -1
  57. package/dist/esm/orm/adapters/in-memory/index.mjs +3 -3
  58. package/dist/esm/orm/adapters/json/index.min.mjs +1 -1
  59. package/dist/esm/orm/adapters/json/index.mjs +3 -3
  60. package/dist/esm/orm/adapters/mongodb/index.min.mjs +1 -1
  61. package/dist/esm/orm/adapters/mongodb/index.mjs +2 -2
  62. package/dist/esm/orm/adapters/postgresql/index.min.mjs +2 -2
  63. package/dist/esm/orm/adapters/postgresql/index.mjs +3 -3
  64. package/dist/esm/orm/index.min.mjs +1 -1
  65. package/dist/esm/orm/index.mjs +3 -3
  66. package/dist/esm/server/adapters/express/index.min.mjs +1 -1
  67. package/dist/esm/server/adapters/express/index.min.mjs.map +1 -1
  68. package/dist/esm/server/adapters/express/index.mjs +52 -1
  69. package/dist/esm/server/adapters/express/index.mjs.map +1 -1
  70. package/dist/esm/server/adapters/fastify/index.min.mjs +1 -1
  71. package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -1
  72. package/dist/esm/server/adapters/fastify/index.mjs +55 -1
  73. package/dist/esm/server/adapters/fastify/index.mjs.map +1 -1
  74. package/dist/esm/server/index.min.mjs +1 -1
  75. package/dist/esm/server/index.mjs +1 -1
  76. package/dist/esm/utilities/index.min.mjs +1 -1
  77. package/dist/esm/utilities/index.mjs +1 -1
  78. package/dist/esm/validations/index.min.mjs +1 -1
  79. package/dist/esm/validations/index.mjs +1 -1
  80. package/dist/types/{base-3PpBAx1K.d.ts → base-DVr0fHil.d.ts} +20 -2
  81. package/dist/types/cache/adapters/in-memory/index.js +2 -2
  82. package/dist/types/cache/adapters/redis/index.js +3 -3
  83. package/dist/types/cache/index.js +2 -2
  84. package/dist/types/{chunk-JZ2JTENY.js → chunk-3M4PBZAQ.js} +2 -2
  85. package/dist/types/{chunk-LWUMIHL4.js → chunk-3TKJGSCZ.js} +1 -1
  86. package/dist/types/{chunk-4LRJJSGG.js → chunk-65EHKCDZ.js} +2 -2
  87. package/dist/types/{chunk-A2MRYMCA.js → chunk-JQ2FWX4W.js} +1 -1
  88. package/dist/types/{chunk-H6JBLKX5.js → chunk-NJ2FHI3U.js} +2 -2
  89. package/dist/types/{chunk-XOU2A2Y6.js → chunk-OHFTQGQG.js} +1 -1
  90. package/dist/types/{chunk-IAHTILKJ.js → chunk-XGGGAEET.js} +1 -1
  91. package/dist/types/{chunk-32DMHN3G.js → chunk-YTY3EFNB.js} +215 -4
  92. package/dist/types/dbs/adapters/mongodb/index.js +3 -3
  93. package/dist/types/dbs/index.js +3 -3
  94. package/dist/types/errors/index.js +1 -1
  95. package/dist/types/events/adapters/kafka/index.js +2 -2
  96. package/dist/types/events/adapters/rabbitmq/index.js +1 -1
  97. package/dist/types/index.js +1 -1
  98. package/dist/types/instance/index.js +1 -1
  99. package/dist/types/{introspection-ZQCAW254.js → introspection-VOIU3XE6.js} +2 -2
  100. package/dist/types/jobs/adapters/redis/index.js +3 -3
  101. package/dist/types/orm/adapters/in-memory/index.js +3 -3
  102. package/dist/types/orm/adapters/json/index.js +3 -3
  103. package/dist/types/orm/adapters/mongodb/index.js +2 -2
  104. package/dist/types/orm/adapters/postgresql/index.js +3 -3
  105. package/dist/types/orm/index.js +3 -3
  106. package/dist/types/server/adapters/express/index.d.ts +3 -1
  107. package/dist/types/server/adapters/express/index.js +52 -1
  108. package/dist/types/server/adapters/fastify/index.d.ts +3 -1
  109. package/dist/types/server/adapters/fastify/index.js +55 -1
  110. package/dist/types/server/index.d.ts +2 -2
  111. package/dist/types/server/index.js +1 -1
  112. package/dist/types/utilities/index.js +1 -1
  113. package/dist/types/validations/index.js +1 -1
  114. package/package.json +2 -4
  115. package/dist/esm/chunk-2TCFNKRZ.mjs.map +0 -1
  116. package/dist/esm/chunk-LTDVZJYJ.min.mjs +0 -32
  117. package/dist/esm/chunk-LTDVZJYJ.min.mjs.map +0 -1
  118. package/dist/esm/introspection-GP3G26B6.min.mjs +0 -2
  119. /package/dist/esm/{chunk-WHIWTP2Z.min.mjs.map → chunk-4JLDXF7T.min.mjs.map} +0 -0
  120. /package/dist/esm/{chunk-I4BB436E.mjs.map → chunk-4MXYZS5R.mjs.map} +0 -0
  121. /package/dist/esm/{chunk-YTM6ZURZ.min.mjs.map → chunk-5VW3JAFR.min.mjs.map} +0 -0
  122. /package/dist/esm/{chunk-YTHRK2PO.mjs.map → chunk-AKQBDYUO.mjs.map} +0 -0
  123. /package/dist/esm/{chunk-MYGAF2AC.min.mjs.map → chunk-B5QQ32YY.min.mjs.map} +0 -0
  124. /package/dist/esm/{chunk-KW3PBDFD.mjs.map → chunk-JH6EBXY4.mjs.map} +0 -0
  125. /package/dist/esm/{chunk-ECBJ3NT3.min.mjs.map → chunk-PCAUXBAG.min.mjs.map} +0 -0
  126. /package/dist/esm/{chunk-RIRBNBTC.mjs.map → chunk-PNZNNUMN.mjs.map} +0 -0
  127. /package/dist/esm/{chunk-TWKHVLLT.mjs.map → chunk-PQCBVQL6.mjs.map} +0 -0
  128. /package/dist/esm/{chunk-AUKXL4EA.min.mjs.map → chunk-QHLKB47N.min.mjs.map} +0 -0
  129. /package/dist/esm/{chunk-6DW4GW3R.min.mjs.map → chunk-SGZNOYC3.min.mjs.map} +0 -0
  130. /package/dist/esm/{chunk-6SB5M4XH.mjs.map → chunk-TVTYDU2D.mjs.map} +0 -0
  131. /package/dist/esm/{chunk-IEBC3OWN.mjs.map → chunk-Z2TZ3KR7.mjs.map} +0 -0
  132. /package/dist/esm/{chunk-OXI6IKAM.min.mjs.map → chunk-ZGMFFK6Y.min.mjs.map} +0 -0
  133. /package/dist/esm/{introspection-GP3G26B6.min.mjs.map → introspection-32BRYKYY.mjs.map} +0 -0
  134. /package/dist/esm/{introspection-Y7EXSYPD.mjs.map → introspection-A72WMWE3.min.mjs.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Cache
3
- } from "../../../chunk-IEBC3OWN.mjs";
3
+ } from "../../../chunk-Z2TZ3KR7.mjs";
4
4
  import {
5
5
  Instance,
6
6
  configurable
7
- } from "../../../chunk-2TCFNKRZ.mjs";
7
+ } from "../../../chunk-MDQKODYQ.mjs";
8
8
  import "../../../chunk-VCCS7CAI.mjs";
9
9
  import "../../../chunk-J5LGTIGS.mjs";
10
10
 
@@ -1,2 +1,2 @@
1
- import{a,b}from "../../../chunk-YTM6ZURZ.min.mjs";import"../../../chunk-ECBJ3NT3.min.mjs";import"../../../chunk-LTDVZJYJ.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";export{b as RedisCache,a as redisConfigPipe};
1
+ import{a,b}from "../../../chunk-5VW3JAFR.min.mjs";import"../../../chunk-PCAUXBAG.min.mjs";import"../../../chunk-FLAPYQUT.min.mjs";import"../../../chunk-DSUJ5FUL.min.mjs";import"../../../chunk-AQY7QVYI.min.mjs";export{b as RedisCache,a as redisConfigPipe};
2
2
  //# sourceMappingURL=index.min.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  RedisCache,
3
3
  redisConfigPipe
4
- } from "../../../chunk-RIRBNBTC.mjs";
5
- import "../../../chunk-IEBC3OWN.mjs";
6
- import "../../../chunk-2TCFNKRZ.mjs";
4
+ } from "../../../chunk-PNZNNUMN.mjs";
5
+ import "../../../chunk-Z2TZ3KR7.mjs";
6
+ import "../../../chunk-MDQKODYQ.mjs";
7
7
  import "../../../chunk-VCCS7CAI.mjs";
8
8
  import "../../../chunk-J5LGTIGS.mjs";
9
9
  export {
@@ -1,2 +1,2 @@
1
- import{a as o}from "../chunk-ECBJ3NT3.min.mjs";import"../chunk-LTDVZJYJ.min.mjs";import"../chunk-DSUJ5FUL.min.mjs";import"../chunk-AQY7QVYI.min.mjs";export{o as Cache};
1
+ import{a as o}from "../chunk-PCAUXBAG.min.mjs";import"../chunk-FLAPYQUT.min.mjs";import"../chunk-DSUJ5FUL.min.mjs";import"../chunk-AQY7QVYI.min.mjs";export{o as Cache};
2
2
  //# sourceMappingURL=index.min.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Cache
3
- } from "../chunk-IEBC3OWN.mjs";
4
- import "../chunk-2TCFNKRZ.mjs";
3
+ } from "../chunk-Z2TZ3KR7.mjs";
4
+ import "../chunk-MDQKODYQ.mjs";
5
5
  import "../chunk-VCCS7CAI.mjs";
6
6
  import "../chunk-J5LGTIGS.mjs";
7
7
  export {
@@ -1,2 +1,2 @@
1
- import{K as x,a as m}from "./chunk-LTDVZJYJ.min.mjs";var f=class extends m{constructor(t,r,c,l){super(`ORM validation error (${t}) on ${r}.${c}`,{kind:t,schema:r,operation:c,failures:l});this.kind=t;this.schema=r;this.operation=c;this.failures=l}};import"valleyed";var O=class{name;path;constructor(e,t){this.name=e,this.path=t??[e]}};function p(a){return a instanceof O?a.path.join("."):a}var T=class extends O{pipe;onCreate;onUpdate;constructor(e,t,r){super(e),this.pipe=t,this.onCreate=r?.onCreate,this.onUpdate=r?.onUpdate}},P=class{constructor(e,t,r,c){this.name=e;this.pipe=t;this.deps=r;this.compute=c}};var i=class{constructor(e,t,r){this.op=t;this.value=r;this.field=p(e)}field},g=class a{constructor(e="and",t){this.op=e;this.children=t??[]}children;#e(e){return new a(this.op,[...this.children,e])}eq(e,t){return this.#e(new i(e,"eq",t))}ne(e,t){return this.#e(new i(e,"ne",t))}gt(e,t){return this.#e(new i(e,"gt",t))}gte(e,t){return this.#e(new i(e,"gte",t))}lt(e,t){return this.#e(new i(e,"lt",t))}lte(e,t){return this.#e(new i(e,"lte",t))}in(e,t){return this.#e(new i(e,"in",t))}notIn(e,t){return this.#e(new i(e,"notIn",t))}like(e,t){return this.#e(new i(e,"like",t))}exists(e){return this.#e(new i(e,"exists",!0))}notExists(e){return this.#e(new i(e,"notExists",!0))}contains(e,t){return this.#e(new i(e,"contains",t))}notContains(e,t){return this.#e(new i(e,"notContains",t))}and(e){if(e.length===0)throw new m("and() requires at least one filter factory",{op:"and"});let t=new a("and",e.map(r=>r(a.create())));return this.#e(t)}or(e){if(e.length===0)throw new m("or() requires at least one filter factory",{op:"or"});let t=new a("or",e.map(r=>r(a.create())));return this.#e(t)}clone(){return new a(this.op,this.children.map(e=>e instanceof i?new i(e.field,e.op,structuredClone(e.value)):e.clone()))}static create(){return new a}};function V(a,e,t){let r=[];t.aggregates.length===0&&r.push({cause:"At least one aggregator step is required"});let c=new Set;for(let s of t.aggregates)c.has(s.alias)&&r.push({alias:s.alias,cause:`Duplicate alias "${s.alias}"`}),c.add(s.alias),e.aggregateOps.includes(s.fn)||r.push({alias:s.alias,cause:`Undeclared aggregate op "${s.fn}"`});let l=a.fields,n=new Set(Object.keys(l));for(let s of t.groupBy)n.has(s)||r.push({field:s,cause:`Unknown groupBy field "${s}" on schema "${a.name}"`}),c.has(s)&&r.push({alias:s,cause:`Alias "${s}" collides with groupBy field name`});if(r.length>0)throw new f("aggregate",a.name,"aggregate",r);if(t.where&&E(a,t.where),t.having){let h=function(d){if(d instanceof i)s.has(d.field)||u.push({field:d.field,cause:`Unknown having field "${d.field}" \u2014 must be an aggregator alias or groupBy field`});else if(d instanceof g)for(let U of d.children)h(U)};var o=h;let s=new Set([...c,...t.groupBy]),u=[];for(let d of t.having.children)h(d);if(u.length>0)throw new f("aggregate",a.name,"aggregate",u)}}function E(a,e){let t=a.fields,r=new Set(Object.keys(t)),c=[];function l(n){if(n instanceof i)r.has(n.field)||c.push({field:n.field,cause:`Unknown field "${n.field}" on schema "${a.name}"`});else if(n instanceof g)for(let o of n.children)l(o)}for(let n of e.children)l(n);if(c.length>0)throw new f("validation",a.name,"filter",c.map(n=>({field:n.field,cause:n.cause})))}var q=class{queryableOps=[];updateOps=[];aggregateOps=[];supportedFieldTypes=[];onFatalError(e){let t=e instanceof m?e:new m("OrmAdapter fatal error",{},e);x.crash(t)}constructor(){let e=this;typeof e.connect=="function"&&x.on("start",()=>e.connect(),{class:this.constructor}),typeof e.disconnect=="function"&&x.on("close",()=>e.disconnect(),{class:this.constructor})}use(e,t){let r=this,c=async function*(){},l={findMany:(n,o)=>r.findMany?.(e,t,n,o)??Promise.resolve([]),iterateMany:(n,o)=>r.iterateMany?.(e,t,n,o)??c(),findOne:async n=>(await l.findMany(n,{limit:1}))[0]??null,count:n=>r.count?.(e,t,n)??Promise.reject(new Error("count not implemented")),createOne:async n=>(await l.createMany([n]))[0],createMany:n=>r.createMany?.(e,t,n)??Promise.resolve([]),updateMany:(n,o)=>r.updateMany?.(e,t,n,o)??Promise.resolve([]),updateOne:async(n,o)=>{let s=await l.findOne(n);if(!s)return null;let u=e.pkField.name,h=g.create().eq(u,s[u]);return(await l.updateMany(h,o))[0]??null},upsertOne:(n,o,s)=>r.upsertOne?.(e,t,n,o,s)??Promise.reject(new Error("upsertOne not implemented")),deleteOne:async n=>{let o=await l.findOne(n);if(!o)return null;let s=e.pkField.name;if(r.deleteByPk)await r.deleteByPk(e,t,o[s]);else if(r.deleteMany){let u=g.create().eq(s,o[s]);await r.deleteMany(e,t,u)}return o},deleteMany:n=>r.deleteMany?.(e,t,n)??Promise.resolve([]),raw:(...n)=>r.raw?.(e,t,...n)??Promise.reject(new Error("raw not implemented")),aggregate:n=>r.aggregate?.(e,t,n)??Promise.reject(new Error("aggregate not implemented")),aggregateOps:r.aggregateOps??[]};return l}};var y=class{constructor(e){this.values=e}kind="set"},w=class{constructor(e,t){this.field=e;this.value=t}kind="inc"},F=class{constructor(e,t){this.field=e;this.value=t}kind="mul"},S=class{constructor(e,t){this.field=e;this.value=t}kind="min"},v=class{constructor(e,t){this.field=e;this.value=t}kind="max"},k=class{constructor(e){this.field=e}kind="unset"},A=class{constructor(e,t){this.field=e;this.value=t}kind="push"},b=class{constructor(e,t){this.field=e;this.value=t}kind="pull"},B=class{constructor(e,t){this.field=e;this.value=t}kind="patch"};function Q(a){return a instanceof y||a instanceof w||a instanceof F||a instanceof S||a instanceof v||a instanceof k||a instanceof A||a instanceof b||a instanceof B}function z(a){return new y(a)}function J(a,e){return new w(p(a),e)}function X(a,e){return new F(p(a),e)}function Y(a,e){return new S(p(a),e)}function Z(a,e){return new v(p(a),e)}function ee(a){return new k(p(a))}function te(a,e){return new A(p(a),e)}function ae(a,e){return new b(p(a),e)}function ne(a,e){return new B(p(a),e)}function re(a){return a instanceof y?Object.keys(a.values):[a.field]}function se(a){let e={};for(let t of a)t instanceof y?Object.assign(e,t.values):e[t.field]=t;return e}export{f as a,O as b,p as c,T as d,P as e,i as f,g,V as h,E as i,q as j,y as k,w as l,F as m,S as n,v as o,k as p,A as q,b as r,B as s,Q as t,z as u,J as v,X as w,Y as x,Z as y,ee as z,te as A,ae as B,ne as C,re as D,se as E};
2
- //# sourceMappingURL=chunk-WHIWTP2Z.min.mjs.map
1
+ import{K as x,a as m}from "./chunk-FLAPYQUT.min.mjs";var f=class extends m{constructor(t,r,c,l){super(`ORM validation error (${t}) on ${r}.${c}`,{kind:t,schema:r,operation:c,failures:l});this.kind=t;this.schema=r;this.operation=c;this.failures=l}};import"valleyed";var O=class{name;path;constructor(e,t){this.name=e,this.path=t??[e]}};function p(a){return a instanceof O?a.path.join("."):a}var T=class extends O{pipe;onCreate;onUpdate;constructor(e,t,r){super(e),this.pipe=t,this.onCreate=r?.onCreate,this.onUpdate=r?.onUpdate}},P=class{constructor(e,t,r,c){this.name=e;this.pipe=t;this.deps=r;this.compute=c}};var i=class{constructor(e,t,r){this.op=t;this.value=r;this.field=p(e)}field},g=class a{constructor(e="and",t){this.op=e;this.children=t??[]}children;#e(e){return new a(this.op,[...this.children,e])}eq(e,t){return this.#e(new i(e,"eq",t))}ne(e,t){return this.#e(new i(e,"ne",t))}gt(e,t){return this.#e(new i(e,"gt",t))}gte(e,t){return this.#e(new i(e,"gte",t))}lt(e,t){return this.#e(new i(e,"lt",t))}lte(e,t){return this.#e(new i(e,"lte",t))}in(e,t){return this.#e(new i(e,"in",t))}notIn(e,t){return this.#e(new i(e,"notIn",t))}like(e,t){return this.#e(new i(e,"like",t))}exists(e){return this.#e(new i(e,"exists",!0))}notExists(e){return this.#e(new i(e,"notExists",!0))}contains(e,t){return this.#e(new i(e,"contains",t))}notContains(e,t){return this.#e(new i(e,"notContains",t))}and(e){if(e.length===0)throw new m("and() requires at least one filter factory",{op:"and"});let t=new a("and",e.map(r=>r(a.create())));return this.#e(t)}or(e){if(e.length===0)throw new m("or() requires at least one filter factory",{op:"or"});let t=new a("or",e.map(r=>r(a.create())));return this.#e(t)}clone(){return new a(this.op,this.children.map(e=>e instanceof i?new i(e.field,e.op,structuredClone(e.value)):e.clone()))}static create(){return new a}};function V(a,e,t){let r=[];t.aggregates.length===0&&r.push({cause:"At least one aggregator step is required"});let c=new Set;for(let s of t.aggregates)c.has(s.alias)&&r.push({alias:s.alias,cause:`Duplicate alias "${s.alias}"`}),c.add(s.alias),e.aggregateOps.includes(s.fn)||r.push({alias:s.alias,cause:`Undeclared aggregate op "${s.fn}"`});let l=a.fields,n=new Set(Object.keys(l));for(let s of t.groupBy)n.has(s)||r.push({field:s,cause:`Unknown groupBy field "${s}" on schema "${a.name}"`}),c.has(s)&&r.push({alias:s,cause:`Alias "${s}" collides with groupBy field name`});if(r.length>0)throw new f("aggregate",a.name,"aggregate",r);if(t.where&&E(a,t.where),t.having){let h=function(d){if(d instanceof i)s.has(d.field)||u.push({field:d.field,cause:`Unknown having field "${d.field}" \u2014 must be an aggregator alias or groupBy field`});else if(d instanceof g)for(let U of d.children)h(U)};var o=h;let s=new Set([...c,...t.groupBy]),u=[];for(let d of t.having.children)h(d);if(u.length>0)throw new f("aggregate",a.name,"aggregate",u)}}function E(a,e){let t=a.fields,r=new Set(Object.keys(t)),c=[];function l(n){if(n instanceof i)r.has(n.field)||c.push({field:n.field,cause:`Unknown field "${n.field}" on schema "${a.name}"`});else if(n instanceof g)for(let o of n.children)l(o)}for(let n of e.children)l(n);if(c.length>0)throw new f("validation",a.name,"filter",c.map(n=>({field:n.field,cause:n.cause})))}var q=class{queryableOps=[];updateOps=[];aggregateOps=[];supportedFieldTypes=[];onFatalError(e){let t=e instanceof m?e:new m("OrmAdapter fatal error",{},e);x.crash(t)}constructor(){let e=this;typeof e.connect=="function"&&x.on("start",()=>e.connect(),{class:this.constructor}),typeof e.disconnect=="function"&&x.on("close",()=>e.disconnect(),{class:this.constructor})}use(e,t){let r=this,c=async function*(){},l={findMany:(n,o)=>r.findMany?.(e,t,n,o)??Promise.resolve([]),iterateMany:(n,o)=>r.iterateMany?.(e,t,n,o)??c(),findOne:async n=>(await l.findMany(n,{limit:1}))[0]??null,count:n=>r.count?.(e,t,n)??Promise.reject(new Error("count not implemented")),createOne:async n=>(await l.createMany([n]))[0],createMany:n=>r.createMany?.(e,t,n)??Promise.resolve([]),updateMany:(n,o)=>r.updateMany?.(e,t,n,o)??Promise.resolve([]),updateOne:async(n,o)=>{let s=await l.findOne(n);if(!s)return null;let u=e.pkField.name,h=g.create().eq(u,s[u]);return(await l.updateMany(h,o))[0]??null},upsertOne:(n,o,s)=>r.upsertOne?.(e,t,n,o,s)??Promise.reject(new Error("upsertOne not implemented")),deleteOne:async n=>{let o=await l.findOne(n);if(!o)return null;let s=e.pkField.name;if(r.deleteByPk)await r.deleteByPk(e,t,o[s]);else if(r.deleteMany){let u=g.create().eq(s,o[s]);await r.deleteMany(e,t,u)}return o},deleteMany:n=>r.deleteMany?.(e,t,n)??Promise.resolve([]),raw:(...n)=>r.raw?.(e,t,...n)??Promise.reject(new Error("raw not implemented")),aggregate:n=>r.aggregate?.(e,t,n)??Promise.reject(new Error("aggregate not implemented")),aggregateOps:r.aggregateOps??[]};return l}};var y=class{constructor(e){this.values=e}kind="set"},w=class{constructor(e,t){this.field=e;this.value=t}kind="inc"},F=class{constructor(e,t){this.field=e;this.value=t}kind="mul"},S=class{constructor(e,t){this.field=e;this.value=t}kind="min"},v=class{constructor(e,t){this.field=e;this.value=t}kind="max"},k=class{constructor(e){this.field=e}kind="unset"},A=class{constructor(e,t){this.field=e;this.value=t}kind="push"},b=class{constructor(e,t){this.field=e;this.value=t}kind="pull"},B=class{constructor(e,t){this.field=e;this.value=t}kind="patch"};function Q(a){return a instanceof y||a instanceof w||a instanceof F||a instanceof S||a instanceof v||a instanceof k||a instanceof A||a instanceof b||a instanceof B}function z(a){return new y(a)}function J(a,e){return new w(p(a),e)}function X(a,e){return new F(p(a),e)}function Y(a,e){return new S(p(a),e)}function Z(a,e){return new v(p(a),e)}function ee(a){return new k(p(a))}function te(a,e){return new A(p(a),e)}function ae(a,e){return new b(p(a),e)}function ne(a,e){return new B(p(a),e)}function re(a){return a instanceof y?Object.keys(a.values):[a.field]}function se(a){let e={};for(let t of a)t instanceof y?Object.assign(e,t.values):e[t.field]=t;return e}export{f as a,O as b,p as c,T as d,P as e,i as f,g,V as h,E as i,q as j,y as k,w as l,F as m,S as n,v as o,k as p,A as q,b as r,B as s,Q as t,z as u,J as v,X as w,Y as x,Z as y,ee as z,te as A,ae as B,ne as C,re as D,se as E};
2
+ //# sourceMappingURL=chunk-4JLDXF7T.min.mjs.map
@@ -4,7 +4,7 @@ import {
4
4
  configurable,
5
5
  parseJSONValue,
6
6
  random_exports
7
- } from "./chunk-2TCFNKRZ.mjs";
7
+ } from "./chunk-MDQKODYQ.mjs";
8
8
  import {
9
9
  EventBus
10
10
  } from "./chunk-VCCS7CAI.mjs";
@@ -99,4 +99,4 @@ export {
99
99
  kafkaConfigPipe,
100
100
  KafkaEventBus
101
101
  };
102
- //# sourceMappingURL=chunk-I4BB436E.mjs.map
102
+ //# sourceMappingURL=chunk-4MXYZS5R.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as p}from "./chunk-ECBJ3NT3.min.mjs";import{K as n,a as c,m as r}from "./chunk-LTDVZJYJ.min.mjs";import{Cluster as d,Redis as u}from"ioredis";import{v as t}from"valleyed";var m=()=>t.meta(t.object({host:t.string(),port:t.optional(t.number()),password:t.optional(t.string()),username:t.optional(t.string()),tls:t.optional(t.boolean()),cluster:t.optional(t.boolean())}),{title:"Redis Config",$refId:"RedisConfig"}),l=class a extends r(m,p){#e;constructor(e,s){super(e);let o={...e.host?{host:e.host}:{},...e.port?{port:e.port}:{}},i={...s,...e.password?{password:e.password}:{},...e.username?{username:e.username}:{},...e.tls?{tls:{}}:{},lazyConnect:!0};this.#e=e.cluster?new d([o],{...s,redisOptions:i,lazyConnect:!0}):new u({...i,...o}),this.#e.on("error",async h=>{n.crash(new c("Redis failed with error",{},h))}),s||n.on("start",async()=>this.#e.connect(),{class:a}),n.on("close",async()=>this.#e.quit(),{class:a})}get connectionOptions(){return this.#e.options}async delete(e){await this.#e.del(this.getScopedKey(e))}async get(e){return await this.#e.get(this.getScopedKey(e))}async set(e,s,o){o?await this.#e.setex(this.getScopedKey(e),o,s):this.#e.set(this.getScopedKey(e),s)}};export{m as a,l as b};
2
- //# sourceMappingURL=chunk-YTM6ZURZ.min.mjs.map
1
+ import{a as p}from "./chunk-PCAUXBAG.min.mjs";import{K as n,a as c,m as r}from "./chunk-FLAPYQUT.min.mjs";import{Cluster as d,Redis as u}from"ioredis";import{v as t}from"valleyed";var m=()=>t.meta(t.object({host:t.string(),port:t.optional(t.number()),password:t.optional(t.string()),username:t.optional(t.string()),tls:t.optional(t.boolean()),cluster:t.optional(t.boolean())}),{title:"Redis Config",$refId:"RedisConfig"}),l=class a extends r(m,p){#e;constructor(e,s){super(e);let o={...e.host?{host:e.host}:{},...e.port?{port:e.port}:{}},i={...s,...e.password?{password:e.password}:{},...e.username?{username:e.username}:{},...e.tls?{tls:{}}:{},lazyConnect:!0};this.#e=e.cluster?new d([o],{...s,redisOptions:i,lazyConnect:!0}):new u({...i,...o}),this.#e.on("error",async h=>{n.crash(new c("Redis failed with error",{},h))}),s||n.on("start",async()=>this.#e.connect(),{class:a}),n.on("close",async()=>this.#e.quit(),{class:a})}get connectionOptions(){return this.#e.options}async delete(e){await this.#e.del(this.getScopedKey(e))}async get(e){return await this.#e.get(this.getScopedKey(e))}async set(e,s,o){o?await this.#e.setex(this.getScopedKey(e),o,s):this.#e.set(this.getScopedKey(e),s)}};export{m as a,l as b};
2
+ //# sourceMappingURL=chunk-5VW3JAFR.min.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  KafkaEventBus
3
- } from "./chunk-I4BB436E.mjs";
3
+ } from "./chunk-4MXYZS5R.mjs";
4
4
  import {
5
5
  Instance
6
- } from "./chunk-2TCFNKRZ.mjs";
6
+ } from "./chunk-MDQKODYQ.mjs";
7
7
 
8
8
  // src/dbs/adapters/base/db.ts
9
9
  var Db = class {
@@ -123,4 +123,4 @@ export {
123
123
  queryResultsPipe,
124
124
  wrapQueryParams
125
125
  };
126
- //# sourceMappingURL=chunk-YTHRK2PO.mjs.map
126
+ //# sourceMappingURL=chunk-AKQBDYUO.mjs.map
@@ -1,2 +1,2 @@
1
- import{f as S,g as F,j as O,k as q,l as C,m as I,n as R,o as P,p as B,q as D,r as T,s as K}from "./chunk-WHIWTP2Z.min.mjs";import{m as k}from "./chunk-LTDVZJYJ.min.mjs";import{AsyncLocalStorage as _}from"async_hooks";import{v as M,differ as h}from"valleyed";var j=()=>M.object({});function d(a){return structuredClone(a)}var w=(a,e)=>{a.clear();for(let[t,n]of e.entries())a.set(t,n)};function b(a){return typeof a=="object"&&a!==null&&!Array.isArray(a)}function A(a,e){return Array.isArray(a)?(Array.isArray(e)?e:[e]).every(n=>a.some(s=>h.equal(s,n))):b(a)&&b(e)?Object.entries(e).every(([t,n])=>A(a[t],n)):h.equal(a,e)}function f(a,e){if(a===e)return 0;if(a==null)return-1;if(e==null)return 1;if(typeof a=="number"&&typeof e=="number"||typeof a=="string"&&typeof e=="string")return a<e?-1:1;if(typeof a=="boolean"&&typeof e=="boolean")return a===!1?-1:1;let t=JSON.stringify(a),n=JSON.stringify(e);return t===n?0:t<n?-1:1}function L(a,e){return`${e.prefix??""}${e.table}`}function z(a,e){let t=a[e.field],n=e.value;switch(e.op){case"eq":return h.equal(t,n);case"ne":return!h.equal(t,n);case"gt":return f(t,n)>0;case"gte":return f(t,n)>=0;case"lt":return f(t,n)<0;case"lte":return f(t,n)<=0;case"in":return Array.isArray(n)?n.some(s=>h.equal(t,s)):!1;case"notIn":return Array.isArray(n)?!n.some(s=>h.equal(t,s)):!0;case"like":return String(t??"").toLowerCase().includes(String(n??"").toLowerCase());case"exists":return t!=null;case"notExists":return t==null;case"contains":return A(t,n);case"notContains":return!A(t,n);default:return!1}}function x(a,e){if(e instanceof S)return z(a,e);if(e instanceof F){if(e.op==="and")return e.children.every(t=>x(a,t));if(e.op==="or")return e.children.some(t=>x(a,t))}return!0}function y(a,e){for(let t of e.children)if(!x(a,t))return!1;return!0}function E(a,e){let t=a;if(e?.orderBy?.length&&(t=[...t].sort((n,s)=>{for(let i of e.orderBy??[]){let c=f(n[i.field],s[i.field]);if(c!==0)return i.direction==="asc"?c:-c}return 0})),e?.offset!=null&&(t=t.slice(Math.max(0,e.offset))),e?.limit!=null&&(t=t.slice(0,e.limit)),e?.select?.length){let n=new Set(e.select);t=t.map(s=>{let i={};for(let c of n)i[c]=s[c];return i})}return t}function N(a,e,t){if(t instanceof C){let n=Number(a[e]??0);a[e]=n+t.value;return}if(t instanceof I){let n=Number(a[e]??0);a[e]=n*t.value;return}if(t instanceof R){let n=a[e];a[e]=n==null||f(t.value,n)<0?t.value:n;return}if(t instanceof P){let n=a[e];a[e]=n==null||f(t.value,n)>0?t.value:n;return}if(t instanceof B){a[e]=null;return}if(t instanceof D){let n=Array.isArray(a[e])?[...a[e]]:[];n.push(d(t.value)),a[e]=n;return}if(t instanceof T){let n=Array.isArray(a[e])?a[e]:[];a[e]=n.filter(s=>!h.equal(s,t.value));return}if(t instanceof K){let n=b(a[e])?d(a[e]):{};if(b(t.value))for(let[s,i]of Object.entries(t.value))n[s]=d(i);a[e]=n;return}a[e]=d(t)}function $(a,e){let t=d(a);for(let[n,s]of Object.entries(e))N(t,n,s);return t}function v(a,e){let t=d(a);for(let n of e)if(n instanceof q)for(let[s,i]of Object.entries(n.values))t[s]=d(i);else N(t,n.field,n);return t}var U=new _,G=class extends k(j,O){schemaConfigPipe=M.object({table:M.string()});supportedFieldTypes=["string","number","boolean","null","object","array","date"];queryableOps=["eq","ne","gt","gte","lt","lte","in","notIn","like","exists","notExists","contains","notContains"];updateOps=["set","inc","mul","min","max","unset","push","pull","patch"];aggregateOps=["count","countDistinct","sum","avg","min","max"];stores=new Map;migrations=new Map;indexes=new Map;tables=new Map;foreignKeys=new Map;#t=Promise.resolve();constructor(e){super(e)}#n(e){return this.stores.has(e)||this.stores.set(e,new Map),this.stores.get(e)}#e(e,t){return this.#n(L(e,t))}#a(){let e=new Map;for(let[c,o]of this.stores.entries()){let r=new Map;for(let[l,u]of o.entries())r.set(l,d(u));e.set(c,r)}let t=new Map(this.migrations),n=new Map(this.indexes),s=new Map;for(let[c,o]of this.tables.entries())s.set(c,{pk:{...o.pk},fields:new Map(o.fields)});let i=new Map(this.foreignKeys);return{stores:e,migrations:t,indexes:n,tables:s,foreignKeys:i}}#r(e){w(this.stores,e.stores),w(this.migrations,e.migrations),w(this.indexes,e.indexes),w(this.tables,e.tables),w(this.foreignKeys,e.foreignKeys)}async findByPk(e,t,n){let i=this.#e(e,t).get(String(n));return i?d(i):null}async createMany(e,t,n){let s=e.pkField.name,i=this.#e(e,t);return n.map(c=>{let o=d(c);return i.set(String(o[s]),o),d(o)})}async deleteByPk(e,t,n){let s=this.#e(e,t),i=String(n),c=s.get(i);return c?(s.delete(i),d(c)):null}async updateByPk(e,t,n,s){let i=this.#e(e,t),c=String(n),o=i.get(c);if(!o)return null;let r=v(o,s);return i.set(c,r),d(r)}async findMany(e,t,n,s){let c=[...this.#e(e,t).values()].filter(o=>y(o,n)).map(o=>d(o));return E(c,s)}async count(e,t,n){return[...this.#e(e,t).values()].filter(i=>y(i,n)).length}async*iterateMany(e,t,n,s){let i=this.#e(e,t),c=E([...i.values()].filter(r=>y(r,n)).map(r=>d(r)),s),o=typeof s?.batchSize=="number"&&Number.isSafeInteger(s.batchSize)&&s.batchSize>0?s.batchSize:1;for(let r=0;r<c.length;r+=o)for(let l of c.slice(r,r+o))yield l}async updateMany(e,t,n,s){let i=this.#e(e,t),c=[...i.entries()].filter(([,r])=>y(r,n)).map(([r])=>r),o=[];for(let r of c){let l=i.get(r);if(!l)continue;let u=$(l,s);i.set(r,u),o.push(d(u))}return o}async deleteMany(e,t,n){let s=this.#e(e,t),i=e.pkField.name,c=[...s.values()].filter(o=>y(o,n)).map(o=>d(o));for(let o of c)s.delete(String(o[i]));return c}async upsertOne(e,t,n,s,i){let c=this.#e(e,t),o=e.pkField.name,l=[...c.values()].filter(g=>y(g,n))[0];if(l){let g=i.length>0?v(l,i):d(l);return c.set(String(g[o]),g),d(g)}let u=d(s),p=i.length>0?v(u,i):u;return c.set(String(p[o]),p),d(p)}async aggregate(e,t,n){let i=[...this.#e(e,t).values()];if(n.where){let r=n.where;i=i.filter(l=>y(l,r))}let c=new Map;if(n.groupBy.length>0)for(let r of i){let l=JSON.stringify(n.groupBy.map(u=>r[u]));c.has(l)||c.set(l,[]),c.get(l).push(r)}else c.set("__all__",i);let o=[];for(let[,r]of c){let l={};if(n.groupBy.length>0)for(let u of n.groupBy)l[u]=r[0][u];for(let u of n.aggregates)switch(u.fn){case"count":l[u.alias]=r.length;break;case"countDistinct":{let p=new Set(r.map(g=>JSON.stringify(g[u.field])));l[u.alias]=p.size;break}case"sum":l[u.alias]=r.reduce((p,g)=>p+Number(g[u.field]??0),0);break;case"avg":{let p=r.reduce((g,m)=>g+Number(m[u.field]??0),0);l[u.alias]=r.length>0?p/r.length:0;break}case"min":{let p=null;for(let g of r){let m=g[u.field];m!=null&&(p===null||f(m,p)<0)&&(p=m)}l[u.alias]=p;break}case"max":{let p=null;for(let g of r){let m=g[u.field];m!=null&&(p===null||f(m,p)>0)&&(p=m)}l[u.alias]=p;break}}o.push(l)}if(n.having){let r=n.having;return o.filter(l=>y(l,r))}return o}async loadMigrations(){return[...this.migrations.values()].map(e=>({id:e.id,appliedAt:e.appliedAt}))}async recordMigration(e,t){this.migrations.set(e,{id:e,appliedAt:t})}async applyCreateTable(e){let t=new Map;for(let n of e.fields)t.set(n.name,{...n});this.tables.set(e.name,{pk:{name:e.pk.name,type:e.pk.type},fields:t})}async applyDropTable(e){this.tables.delete(e.name)}async applyAddField(e){let t=this.tables.get(e.table);t&&t.fields.set(e.field.name,{...e.field})}async applyDropField(e){let t=this.tables.get(e.table);t&&t.fields.delete(e.name)}async applyModifyField(e){let t=this.tables.get(e.table);t&&(t.fields.delete(e.name),t.fields.set(e.to.name,{...e.to}))}async applyRenameTable(e){let t=this.tables.get(e.from);t&&(this.tables.delete(e.from),this.tables.set(e.to,t))}async applyRenameField(e){let t=this.tables.get(e.table);if(t){let n=t.fields.get(e.from);n&&(t.fields.delete(e.from),t.fields.set(e.to,{...n,name:e.to}))}}async applyAddIndex(e){let t=e.name??`${e.table}_${e.on.join("_")}_idx`;this.indexes.set(t,{table:e.table,on:e.on,unique:e.unique??!1})}async applyDropIndex(e){this.indexes.delete(e.name)}async applyAddForeignKey(e){let t=e.name??`${e.table}_${e.on}_fk`;this.foreignKeys.set(t,{table:e.table,on:e.on,references:{table:e.references.table,column:e.references.column},onDelete:e.onDelete,onUpdate:e.onUpdate})}async applyDropForeignKey(e){this.foreignKeys.delete(e.name)}async introspect(){let e=[];for(let[t,n]of this.tables.entries()){let s=[...n.fields.values()].map(o=>({name:o.name,type:o.type,nullable:o.nullable??!1,...o.default!==void 0?{default:o.default}:{},...o.unique?{unique:!0}:{}})),i=[...this.indexes.entries()].filter(([,o])=>o.table===t).map(([o,r])=>({name:o,on:r.on,unique:r.unique})),c=[...this.foreignKeys.entries()].filter(([,o])=>o.table===t).map(([o,r])=>({name:o,on:r.on,references:{table:r.references.table,column:r.references.column},...r.onDelete?{onDelete:r.onDelete}:{},...r.onUpdate?{onUpdate:r.onUpdate}:{}}));e.push({name:t,pk:{name:n.pk.name,type:n.pk.type},fields:s,indexes:i,foreignKeys:c})}return e}async acquireMigrationLock(e){let t,n=new Promise(i=>{t=i}),s=this.#t;this.#t=n,await s;try{return await e()}finally{t()}}async session(e){if(U.getStore())return e();let t=this.#a();try{return await U.run(!0,e)}catch(n){throw this.#r(t),n}}};export{G as a};
2
- //# sourceMappingURL=chunk-MYGAF2AC.min.mjs.map
1
+ import{f as S,g as F,j as O,k as q,l as C,m as I,n as R,o as P,p as B,q as D,r as T,s as K}from "./chunk-4JLDXF7T.min.mjs";import{m as k}from "./chunk-FLAPYQUT.min.mjs";import{AsyncLocalStorage as _}from"async_hooks";import{v as M,differ as h}from"valleyed";var j=()=>M.object({});function d(a){return structuredClone(a)}var w=(a,e)=>{a.clear();for(let[t,n]of e.entries())a.set(t,n)};function b(a){return typeof a=="object"&&a!==null&&!Array.isArray(a)}function A(a,e){return Array.isArray(a)?(Array.isArray(e)?e:[e]).every(n=>a.some(s=>h.equal(s,n))):b(a)&&b(e)?Object.entries(e).every(([t,n])=>A(a[t],n)):h.equal(a,e)}function f(a,e){if(a===e)return 0;if(a==null)return-1;if(e==null)return 1;if(typeof a=="number"&&typeof e=="number"||typeof a=="string"&&typeof e=="string")return a<e?-1:1;if(typeof a=="boolean"&&typeof e=="boolean")return a===!1?-1:1;let t=JSON.stringify(a),n=JSON.stringify(e);return t===n?0:t<n?-1:1}function L(a,e){return`${e.prefix??""}${e.table}`}function z(a,e){let t=a[e.field],n=e.value;switch(e.op){case"eq":return h.equal(t,n);case"ne":return!h.equal(t,n);case"gt":return f(t,n)>0;case"gte":return f(t,n)>=0;case"lt":return f(t,n)<0;case"lte":return f(t,n)<=0;case"in":return Array.isArray(n)?n.some(s=>h.equal(t,s)):!1;case"notIn":return Array.isArray(n)?!n.some(s=>h.equal(t,s)):!0;case"like":return String(t??"").toLowerCase().includes(String(n??"").toLowerCase());case"exists":return t!=null;case"notExists":return t==null;case"contains":return A(t,n);case"notContains":return!A(t,n);default:return!1}}function x(a,e){if(e instanceof S)return z(a,e);if(e instanceof F){if(e.op==="and")return e.children.every(t=>x(a,t));if(e.op==="or")return e.children.some(t=>x(a,t))}return!0}function y(a,e){for(let t of e.children)if(!x(a,t))return!1;return!0}function E(a,e){let t=a;if(e?.orderBy?.length&&(t=[...t].sort((n,s)=>{for(let i of e.orderBy??[]){let c=f(n[i.field],s[i.field]);if(c!==0)return i.direction==="asc"?c:-c}return 0})),e?.offset!=null&&(t=t.slice(Math.max(0,e.offset))),e?.limit!=null&&(t=t.slice(0,e.limit)),e?.select?.length){let n=new Set(e.select);t=t.map(s=>{let i={};for(let c of n)i[c]=s[c];return i})}return t}function N(a,e,t){if(t instanceof C){let n=Number(a[e]??0);a[e]=n+t.value;return}if(t instanceof I){let n=Number(a[e]??0);a[e]=n*t.value;return}if(t instanceof R){let n=a[e];a[e]=n==null||f(t.value,n)<0?t.value:n;return}if(t instanceof P){let n=a[e];a[e]=n==null||f(t.value,n)>0?t.value:n;return}if(t instanceof B){a[e]=null;return}if(t instanceof D){let n=Array.isArray(a[e])?[...a[e]]:[];n.push(d(t.value)),a[e]=n;return}if(t instanceof T){let n=Array.isArray(a[e])?a[e]:[];a[e]=n.filter(s=>!h.equal(s,t.value));return}if(t instanceof K){let n=b(a[e])?d(a[e]):{};if(b(t.value))for(let[s,i]of Object.entries(t.value))n[s]=d(i);a[e]=n;return}a[e]=d(t)}function $(a,e){let t=d(a);for(let[n,s]of Object.entries(e))N(t,n,s);return t}function v(a,e){let t=d(a);for(let n of e)if(n instanceof q)for(let[s,i]of Object.entries(n.values))t[s]=d(i);else N(t,n.field,n);return t}var U=new _,G=class extends k(j,O){schemaConfigPipe=M.object({table:M.string()});supportedFieldTypes=["string","number","boolean","null","object","array","date"];queryableOps=["eq","ne","gt","gte","lt","lte","in","notIn","like","exists","notExists","contains","notContains"];updateOps=["set","inc","mul","min","max","unset","push","pull","patch"];aggregateOps=["count","countDistinct","sum","avg","min","max"];stores=new Map;migrations=new Map;indexes=new Map;tables=new Map;foreignKeys=new Map;#t=Promise.resolve();constructor(e){super(e)}#n(e){return this.stores.has(e)||this.stores.set(e,new Map),this.stores.get(e)}#e(e,t){return this.#n(L(e,t))}#a(){let e=new Map;for(let[c,o]of this.stores.entries()){let r=new Map;for(let[l,u]of o.entries())r.set(l,d(u));e.set(c,r)}let t=new Map(this.migrations),n=new Map(this.indexes),s=new Map;for(let[c,o]of this.tables.entries())s.set(c,{pk:{...o.pk},fields:new Map(o.fields)});let i=new Map(this.foreignKeys);return{stores:e,migrations:t,indexes:n,tables:s,foreignKeys:i}}#r(e){w(this.stores,e.stores),w(this.migrations,e.migrations),w(this.indexes,e.indexes),w(this.tables,e.tables),w(this.foreignKeys,e.foreignKeys)}async findByPk(e,t,n){let i=this.#e(e,t).get(String(n));return i?d(i):null}async createMany(e,t,n){let s=e.pkField.name,i=this.#e(e,t);return n.map(c=>{let o=d(c);return i.set(String(o[s]),o),d(o)})}async deleteByPk(e,t,n){let s=this.#e(e,t),i=String(n),c=s.get(i);return c?(s.delete(i),d(c)):null}async updateByPk(e,t,n,s){let i=this.#e(e,t),c=String(n),o=i.get(c);if(!o)return null;let r=v(o,s);return i.set(c,r),d(r)}async findMany(e,t,n,s){let c=[...this.#e(e,t).values()].filter(o=>y(o,n)).map(o=>d(o));return E(c,s)}async count(e,t,n){return[...this.#e(e,t).values()].filter(i=>y(i,n)).length}async*iterateMany(e,t,n,s){let i=this.#e(e,t),c=E([...i.values()].filter(r=>y(r,n)).map(r=>d(r)),s),o=typeof s?.batchSize=="number"&&Number.isSafeInteger(s.batchSize)&&s.batchSize>0?s.batchSize:1;for(let r=0;r<c.length;r+=o)for(let l of c.slice(r,r+o))yield l}async updateMany(e,t,n,s){let i=this.#e(e,t),c=[...i.entries()].filter(([,r])=>y(r,n)).map(([r])=>r),o=[];for(let r of c){let l=i.get(r);if(!l)continue;let u=$(l,s);i.set(r,u),o.push(d(u))}return o}async deleteMany(e,t,n){let s=this.#e(e,t),i=e.pkField.name,c=[...s.values()].filter(o=>y(o,n)).map(o=>d(o));for(let o of c)s.delete(String(o[i]));return c}async upsertOne(e,t,n,s,i){let c=this.#e(e,t),o=e.pkField.name,l=[...c.values()].filter(g=>y(g,n))[0];if(l){let g=i.length>0?v(l,i):d(l);return c.set(String(g[o]),g),d(g)}let u=d(s),p=i.length>0?v(u,i):u;return c.set(String(p[o]),p),d(p)}async aggregate(e,t,n){let i=[...this.#e(e,t).values()];if(n.where){let r=n.where;i=i.filter(l=>y(l,r))}let c=new Map;if(n.groupBy.length>0)for(let r of i){let l=JSON.stringify(n.groupBy.map(u=>r[u]));c.has(l)||c.set(l,[]),c.get(l).push(r)}else c.set("__all__",i);let o=[];for(let[,r]of c){let l={};if(n.groupBy.length>0)for(let u of n.groupBy)l[u]=r[0][u];for(let u of n.aggregates)switch(u.fn){case"count":l[u.alias]=r.length;break;case"countDistinct":{let p=new Set(r.map(g=>JSON.stringify(g[u.field])));l[u.alias]=p.size;break}case"sum":l[u.alias]=r.reduce((p,g)=>p+Number(g[u.field]??0),0);break;case"avg":{let p=r.reduce((g,m)=>g+Number(m[u.field]??0),0);l[u.alias]=r.length>0?p/r.length:0;break}case"min":{let p=null;for(let g of r){let m=g[u.field];m!=null&&(p===null||f(m,p)<0)&&(p=m)}l[u.alias]=p;break}case"max":{let p=null;for(let g of r){let m=g[u.field];m!=null&&(p===null||f(m,p)>0)&&(p=m)}l[u.alias]=p;break}}o.push(l)}if(n.having){let r=n.having;return o.filter(l=>y(l,r))}return o}async loadMigrations(){return[...this.migrations.values()].map(e=>({id:e.id,appliedAt:e.appliedAt}))}async recordMigration(e,t){this.migrations.set(e,{id:e,appliedAt:t})}async applyCreateTable(e){let t=new Map;for(let n of e.fields)t.set(n.name,{...n});this.tables.set(e.name,{pk:{name:e.pk.name,type:e.pk.type},fields:t})}async applyDropTable(e){this.tables.delete(e.name)}async applyAddField(e){let t=this.tables.get(e.table);t&&t.fields.set(e.field.name,{...e.field})}async applyDropField(e){let t=this.tables.get(e.table);t&&t.fields.delete(e.name)}async applyModifyField(e){let t=this.tables.get(e.table);t&&(t.fields.delete(e.name),t.fields.set(e.to.name,{...e.to}))}async applyRenameTable(e){let t=this.tables.get(e.from);t&&(this.tables.delete(e.from),this.tables.set(e.to,t))}async applyRenameField(e){let t=this.tables.get(e.table);if(t){let n=t.fields.get(e.from);n&&(t.fields.delete(e.from),t.fields.set(e.to,{...n,name:e.to}))}}async applyAddIndex(e){let t=e.name??`${e.table}_${e.on.join("_")}_idx`;this.indexes.set(t,{table:e.table,on:e.on,unique:e.unique??!1})}async applyDropIndex(e){this.indexes.delete(e.name)}async applyAddForeignKey(e){let t=e.name??`${e.table}_${e.on}_fk`;this.foreignKeys.set(t,{table:e.table,on:e.on,references:{table:e.references.table,column:e.references.column},onDelete:e.onDelete,onUpdate:e.onUpdate})}async applyDropForeignKey(e){this.foreignKeys.delete(e.name)}async introspect(){let e=[];for(let[t,n]of this.tables.entries()){let s=[...n.fields.values()].map(o=>({name:o.name,type:o.type,nullable:o.nullable??!1,...o.default!==void 0?{default:o.default}:{},...o.unique?{unique:!0}:{}})),i=[...this.indexes.entries()].filter(([,o])=>o.table===t).map(([o,r])=>({name:o,on:r.on,unique:r.unique})),c=[...this.foreignKeys.entries()].filter(([,o])=>o.table===t).map(([o,r])=>({name:o,on:r.on,references:{table:r.references.table,column:r.references.column},...r.onDelete?{onDelete:r.onDelete}:{},...r.onUpdate?{onUpdate:r.onUpdate}:{}}));e.push({name:t,pk:{name:n.pk.name,type:n.pk.type},fields:s,indexes:i,foreignKeys:c})}return e}async acquireMigrationLock(e){let t,n=new Promise(i=>{t=i}),s=this.#t;this.#t=n,await s;try{return await e()}finally{t()}}async session(e){if(U.getStore())return e();let t=this.#a();try{return await U.run(!0,e)}catch(n){throw this.#r(t),n}}};export{G as a};
2
+ //# sourceMappingURL=chunk-B5QQ32YY.min.mjs.map
@@ -0,0 +1,32 @@
1
+ import{a as te}from "./chunk-DSUJ5FUL.min.mjs";import{a as M}from "./chunk-AQY7QVYI.min.mjs";export*from"valleyed";var Pe={};M(Pe,{incomingFile:()=>rt,incomingFiles:()=>nt,requestLocalStorage:()=>K,responseLocalStorage:()=>W,withRequest:()=>at,withResponse:()=>it});import{AsyncLocalStorage as Te}from"async_hooks";import{PipeError as ot,v as E}from"valleyed";import I from"pino";import{ulid as st}from"ulid";import{v as Ce}from"valleyed";var h=class extends Error{constructor(t,o,n){super(t,{cause:n});this.message=t;this.context=o;this.cause=n}};var x=class extends h{constructor(t,o,n){super(t,{serializedErrors:o},n);this.message=t;this.serializedErrors=o}};import"http";import"@fastify/cors";import"cors";import{Server as ze}from"socket.io";import _e from"supertest";import{PipeError as Qe,v as i}from"valleyed";import{convert as j}from"@openapi-contrib/json-schema-to-openapi-schema";import{capitalize as Ee}from"valleyed";import{v as Ae}from"valleyed";var C={head:"head",get:"get",post:"post",put:"put",patch:"patch",delete:"delete",options:"options"},m={Ok:200,Found:302,BadRequest:400,NotAuthenticated:401,NotAuthorized:403,NotFound:404,ValidationError:422,TooManyRequests:429,TokenExpired:461};function Q(s,e){return{cb:s,onSetup:e}}var se=(...s)=>Q(...s),lt=(...s)=>Q(...s),ft=(...s)=>Q(...s);function Se(...s){let e={params:"",headers:"",query:"",body:"",cookies:"",response:"",responseHeaders:"",responseCookies:"",defaultStatusCode:"",defaultContentType:""};function t(o,n){return o?n?typeof o=="number"||typeof o=="string"||typeof o=="function"?n:Ae.merge(o,n):o:n}return Object.fromEntries(Object.keys(e).map(o=>[o,s.map(n=>n[o]).reduce(t,null)]))}var oe=(s,e)=>e.map(t=>({...s,...t,path:`${s.path}/${t.path}`,groups:[...s.groups??[],...t.groups??[]],middlewares:[...s.middlewares??[],...t.middlewares??[]],responseMiddlewares:[...s.responseMiddlewares??[],...t.responseMiddlewares??[]],schema:Se(s.schema??{},t.schema??{}),security:[...s.security??[],...t.security??[]]})),N=class{#e={path:""};#t=[];#o=[];constructor(e={path:""}){this.#e=e}#s(e){return(t,o={})=>n=>{let r=oe(this.#e,[{...o,path:t,method:e,handler:n}])[0];return this.#t.push(r),r}}head=this.#s(C.head);get=this.#s(C.get);post=this.#s(C.post);put=this.#s(C.put);patch=this.#s(C.patch);delete=this.#s(C.delete);options=this.#s(C.options);nest(...e){e.forEach(t=>this.#o.push(t))}get routes(){return[...this.#t].concat(this.#o.flatMap(e=>oe(this.#e,e.routes)))}};var re=s=>{let e=H.get(),{app:t}=e.settings,o={openapi:"3.0.0",info:{title:`${t.name} ${e.id}`,version:s.openapi.docsVersion??""},servers:s.openapi.docsBaseUrl?.map(a=>({url:a})),paths:{},components:{schemas:{},securitySchemes:{Authorization:{type:"apiKey",name:"authorization",in:"header"},RefreshToken:{type:"apiKey",name:"x-refresh-token",in:"header"},ApiKey:{type:"apiKey",name:"x-api-key",in:"header"}}},tags:[],"x-tagGroups":[]},n={},r={},c=a=>{let{allOf:p,oneOf:l,anyOf:f,...D}=a;return p?p.flatMap(k=>c(k)):[D]},u=a=>{if(!a||typeof a!="object")return a;if(typeof a.$refId=="string"){let{$refId:p,...l}=a,f=u(l);return o.components?.schemas?(o.components.schemas[p]=f,{$ref:`#/components/schemas/${p}`}):f}return Array.isArray(a)?a.map(p=>u(p)):Object.fromEntries(Object.entries(a).map(([p,l])=>[p,u(l)]))},y=a=>{if(!a.length)return;let p=a.map(k=>typeof k=="string"?{name:k}:k),l=p.map(k=>k.name).join(" > "),f=p.at(-1)?.name??"",D=p.map(k=>k.description?.trim()??"").filter(Boolean).join(`
2
+
3
+
4
+
5
+ `);if(!n[l]){n[l]=!0,o.tags.push({name:l,"x-displayName":f,description:D});let w=p.slice(0,-1).map(A=>A.name).join(" > ")||"default";if(!r[w]){let A={name:w,tags:[]};o["x-tagGroups"].push(A),r[w]=A}r[w].tags=[...new Set([...r[w].tags,l])]}return l},d=async(a,p,l,f)=>{if(l.response.response?.length){f.responses??={};for(let w of l.response.response){f.responses[w.status]??={description:"",content:{}};let A=f.responses[w.status];A.content[w.contentType]={schema:await j(u(w.schema))}}}if(l.response.responseHeaders?.length){f.responses??={};for(let w of l.response.responseHeaders){f.responses[w.status]??={description:"",content:{}},f.responses[w.status];let A=f.responses[w.status];A.headers={schema:await j(u(w.schema))}}}l.request.body&&(f.requestBody={required:!0,content:{"application/json":{schema:await j(u(l.request.body))}}});let D=[],k=async(w,A)=>{if(!A)return;let De=c(A);for(let _ of De)if(_.properties)for(let[ee,qe]of Object.entries(_.properties))D.push({name:ee,in:w,schema:await j(u(qe)),required:(_.required||[]).includes(ee)})};await Promise.all([k("query",l.request.query),k("path",l.request.params),k("header",l.request.headers)]),D.length&&(f.parameters=D),o.paths||(o.paths={}),o.paths[a]||(o.paths[a]={}),o.paths[a][p]=f},R=a=>`
6
+ <!doctype html>
7
+ <html>
8
+ <head>
9
+ <title>${Ee(`${t.name} ${e.id}`)}</title>
10
+ <meta charset="utf-8" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style>
13
+ .darklight-reference {
14
+ display: none;
15
+ }
16
+ </style>
17
+ </head>
18
+ <body>
19
+ <script id="api-reference" data-url="${a}"></script>
20
+ <script>
21
+ const configuration = { theme: 'purple' };
22
+ document.getElementById('api-reference').dataset.configuration = JSON.stringify(configuration);
23
+ </script>
24
+ <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.38.0"></script>
25
+ </body>
26
+ </html>
27
+ `,g=a=>{let p=a.replace(/(\/\s*)+/g,"/");return p.startsWith("/")||(p=`/${p}`),p!=="/"&&p.endsWith("/")&&(p=p.slice(0,-1)),p},b=async(a,p)=>{if(a.hide)return;let l=y(a.groups??[]),f=g(a.path),D=`(${a.method.toUpperCase()}) ${f}`;await d(f,a.method.toLowerCase(),p,{operationId:D,summary:a.title??f,description:a.descriptions?.join(`
28
+
29
+ `),tags:l?[l]:void 0,security:a.security})},v="/openapi.json",B=new N({path:s.openapi.docsPath??"/",hide:!0});return B.get("/index.html")(a=>a.res({body:R(`.${v}`),contentType:"text/html"})),B.get(v)(a=>a.res({body:o})),{router:B,register:b,cleanPath:g}};var ie={};M(ie,{signinWithApple:()=>Ie,signinWithFacebook:()=>Me,signinWithGoogle:()=>Oe});import ae from"axios";import ne from"jsonwebtoken";import Be from"jwks-rsa";var Oe=async s=>{let e=`https://oauth2.googleapis.com/tokeninfo?id_token=${s}`,{data:t}=await ae.get(e).catch(o=>{throw new h("Failed to sign in with google",{idToken:s},o)});return t.first_name=t.given_name,t.last_name=t.family_name,t},Ie=async s=>{try{let e="https://appleid.apple.com",t=ne.decode(s,{complete:!0});if(!t?.header)throw new h("Missing JWT header",{idToken:s,json:t});let{kid:o,alg:n}=t.header,r=await Be({jwksUri:`${e}/auth/keys`,cache:!0}).getSigningKey(o).then(u=>u.getPublicKey()).catch(()=>null);if(!r)throw new h("no publicKey",{idToken:s,publicKey:r,json:t});let c=ne.verify(s,r,{algorithms:[n]});if(!c)throw new h("no data",{idToken:s,data:c});if(c.iss!==e)throw new h("iss doesnt match",{idToken:s,data:c});if(c.exp*1e3<Date.now())throw new h("expired idToken",{idToken:s,data:c});return c}catch(e){throw new h("Failed to sign in with apple",{idToken:s},e)}},Me=async(s,e=[])=>{e=[...new Set([...e,"name","picture","email"])];let{data:t}=await ae.request({method:"get",url:"https://graph.facebook.com/v15.0/me",params:{fields:e.join(","),access_token:s}}).catch(n=>{throw new h("Failed to sign in with facebook",{accessToken:s,fields:e},n)});if(!e.every(n=>n in t))throw new h("Incomplete scope for access token",{accessToken:s,fields:e,data:t});return t.email_verified="true",t};import{v as pe}from"valleyed";function Dt(s,e){let t=s();pe.compile(t);class o extends e{constructor(c,...u){super(...u);this.config=c}static create(c,...u){let y=pe.validate(t,c);if(!y.valid)throw y.error;return new this(y.value,...u)}}return o}var ce={};M(ce,{compare:()=>je,hash:()=>Ne});import*as F from"bcryptjs";var Ne=async s=>(s=s.trim(),s?await F.hash(s,H.get().settings.utils.hashSaltRounds):""),je=async(s,e)=>(s=s.trim(),!s&&s===e?!0:await F.compare(s,e));var Fe=s=>{try{return s?.constructor?.name!=="String"?s:JSON.parse(s)}catch{return s}};function X(s){return Object.fromEntries(Object.entries(s).map(([e,t])=>[e,Fe(t)]))}import{parseBuffer as Le}from"music-metadata";var Bt=async s=>{try{return(await Le(s)).format.duration??0}catch{return 0}};var de={};M(de,{number:()=>Ve,string:()=>$e});import ue from"crypto";function $e(s=20){return ue.randomBytes(s).toString("hex").slice(0,s)}function Ve(s=0,e=2**48-1){return ue.randomInt(s,e)}var Ge=s=>new Promise(e=>setTimeout(e,s)),Ke=async(s,e,t)=>{if(e<=0)throw new h("out of tries",{tries:e,waitTimeInMs:t});let o=await s();return o.done===!0?o.value:(await Ge(t),await Ke(s,e-1,t))};var le=class{ip;method;path;body;params;query;headers;cookies;authUser=null;constructor({ip:e,body:t,cookies:o,params:n,query:r,method:c,path:u,headers:y,files:d}){this.ip=e,this.method=c,this.path=u,this.params=n,this.cookies=o,this.headers=y,this.query=X(r),this.body=Object.assign(X(t),d)}pipe(e,t={}){return new P({...t,piped:!0,body:e})}res(e){return new P({...e,piped:!1})}error(e){return new P({...e,piped:!1})}},P=class{body;headers;cookies;status;contentType;piped;constructor({body:e,status:t=200,headers:o={},cookies:n={},piped:r=!1,contentType:c="application/json"}){this.body=e,this.status=t,this.contentType=c,this.headers=o,this.cookies=n,this.piped=r,this.piped||(this.headers["Content-Type"]=c)}get cookieValues(){return Object.fromEntries(Object.entries(this.cookies).map(([e,t])=>[e,t]))}set cookieValues(e){Object.entries(e).forEach(([t,o])=>{this.cookies[t]&&(this.cookies[t].value=o)})}};import"http2";var q=class{static async process(e,t){if(e.length===0)return null;let o;for(let n of e)try{return await n.parse(t)}catch(r){o=r}throw o instanceof x?o:new L("failed to parse auth user",o)}};var fe=class extends q{headerName;constructor(e){super(),this.headerName=e}async parse(e){let t=e[this.headerName];if(!t||typeof t!="string")throw new S;return this.verify(t)}routeSecuritySchemeName(){return this.headerName}};import We from"@fastify/cookie";import Y from"jsonwebtoken";var $=class extends q{options;constructor(e){super(),this.options=e}#e(e){return`${this.options.storagePrefix??""}${e}`}async createToken(e){let t=Y.sign(e,this.options.signingKey,{expiresIn:this.options.storageTTL});return await this.store(this.#e(e.id),t,this.options.storageTTL),t}async parse(e){try{let t=await this.parseHeader(e),o=Y.verify(t,this.options.signingKey);if(!o)throw new S;if(this.options.enforceSingleSession){let n=await this.retrieve(this.#e(o.id));if(t&&t!==n)throw new O}return o}catch(t){throw t instanceof O?t:t instanceof Y.TokenExpiredError?new O(void 0,t):new S(void 0,t)}}async retrieveFor(e){return this.retrieve(this.#e(e))}async deleteFor(e){await this.delete(this.#e(e))}},he=class extends ${options;constructor(e){super(e),this.options=e}async parseHeader(e){let t=e[this.options.headerName];if(!t||typeof t!="string")throw new S;return t.startsWith("Bearer ")?t.slice(7):t}routeSecuritySchemeName(){return this.options.headerName}},ye=class extends ${options;constructor(e){super(e),this.options=e}async parseHeader(e){let o=(We.parse(e.cookie||"")??{})[this.options.cookieName];if(!o||typeof o!="string")throw new S;return o}routeSecuritySchemeName(){return`cookie:${this.options.cookieName}`}};import{match as Je}from"path-to-regexp";var Ue="__listener_emitter",me="*",V=class{constructor(e,t){this.config=t;this.socketInstance=e,this.#r(),H.on("setup",()=>{let o=t.eventBus?.stream(Ue,{fanout:!0});this.#o=o?o.publish:async n=>{e.to(n.channel).emit(n.channel,n)},o?.subscribe(async n=>{e.to(n.channel).emit(n.channel,n)})})}socketInstance;#e={onConnect:async()=>{},onDisconnect:async()=>{}};#t={};#o=async()=>{};async created(e,t,o){await this.#s(e,"created",{after:t.toJSON(),before:null},o)}async updated(e,{after:t,before:o},n){await this.#s(e,"updated",{after:t.toJSON(),before:o.toJSON()},n)}async deleted(e,t,o){await this.#s(e,"deleted",{before:t.toJSON(),after:null},o)}async#s(e,t,{before:o,after:n},r){let c=Array.isArray(r)?r:[r??me],u=e.flatMap(y=>c.map(d=>`${d}:${y}`));await Promise.all(u.map(async y=>this.#o({channel:y,type:t,before:o,after:n})))}set connectionCallbacks(e){this.#e=e,this.#r()}register(e,t){return this.#t[e]=t,this.#t[e+"/:id"]=t,this}#n(e){let t=r=>Je(r)(e),o=Object.keys(this.#t).find(t)??null;if(!o)return null;let n=t(o);return n?{config:this.#t[o],params:n.params}:null}#r=()=>{this.socketInstance.removeAllListeners("connection"),this.socketInstance.on("connection",async e=>{let t=e.id,o=await q.process(this.config.socketsAuthMethods,e.handshake.headers).catch(()=>null);e.on("leave",async(n,r)=>n.channel?(e.leave(n.channel),typeof r=="function"&&r({code:m.Ok,message:"",channel:n.channel})):typeof r=="function"&&r({code:m.ValidationError,message:"channel is required",channel:""})),e.on("join",async(n,r)=>{if(!n.channel)return typeof r=="function"&&r({code:m.ValidationError,message:"channel is required",channel:""});let c=n.channel,u=this.#n(c)??null;if(!u)return typeof r=="function"&&r({code:m.BadRequest,message:"unknown channel",channel:c});let d=`${await u.config({channel:c,user:o},u.params,n.query??{})??me}:${c}`;return e.join(d),typeof r=="function"&&r({code:m.Ok,message:"",channel:d})}),o&&await this.#e.onConnect(o.id,t),e.on("disconnect",async()=>{o&&await this.#e.onDisconnect(o.id,t)})})}};var Ts=()=>i.object({port:i.number(),cors:i.optional(i.object({origin:i.optional(i.or([i.array(i.string()),i.is(!0)])),methods:i.optional(i.array(i.in(Object.values(C)))),credentials:i.optional(i.boolean())})),eventBus:i.optional(i.instanceOf(te)),publicPath:i.optional(i.string()),healthPath:i.optional(i.string()),openapi:i.defaults(i.object({docsVersion:i.defaults(i.string(),"1.0.0"),docsBaseUrl:i.defaults(i.array(i.string()),["/"]),docsPath:i.defaults(i.string(),"/__docs")}),{}),requests:i.defaults(i.object({log:i.defaults(i.boolean(),!0),rateLimit:i.defaults(i.object({enabled:i.defaults(i.boolean(),!1),periodInMs:i.defaults(i.number(),3600*1e3),limit:i.defaults(i.number(),5e3)}),{}),slowdown:i.defaults(i.object({enabled:i.defaults(i.boolean(),!1),periodInMs:i.defaults(i.number(),600*1e3),delayAfter:i.defaults(i.number(),2e3),delayInMs:i.defaults(i.number(),500)}),{})}),{}),socketsAuthMethods:i.defaults(i.array(i.instanceOf(q)),[])}),be=Symbol("rawResponseHandled"),ge=Object.freeze({[be]:!0}),Xe="Raw not-found handler did not start or complete a response";function Ye(s){return!!(s&&typeof s=="object"&&be in s)}function Z(s){return s.headersSent||s.writableEnded}function Re(s,e){if(Z(s))return;s.statusCode=m.BadRequest,s.setHeader("Content-Type","application/json");let t=e instanceof Error?e.message:`${e}`;s.end(JSON.stringify([{message:t}]))}var Ze=Object.entries(m).filter(([,s])=>s>399).map(([s,e])=>({status:e,contentType:"application/json",pipe:i.meta(i.array(i.object({message:i.string(),field:i.optional(i.string())})),{$refId:`Errors.${s}Response`,description:`${s} Response`})})),we=class{socket;cors;#e;#t;#o;#s=[];#n=new Set;#r=!1;#a=null;setup(e,t){this.#e=e,this.#o=t,this.cors={origin:t.cors?.origin?(n,r)=>r(null,!0):t.cors?.origin,methods:(t.cors?.methods??Object.values(C)).filter(n=>n!==C.options).map(n=>n.toUpperCase()),credentials:t.cors?.credentials},this.#t=re(t);let o=new ze(e,{cors:this.cors});this.socket=new V(o,t),this.addRouter(this.#t.router)}addRouter(...e){e.map(t=>t.routes).forEach(t=>this.addRoute(...t))}addRoute(...e){e.forEach(t=>{this.#s.push(async()=>{let{method:o,path:n,schema:r={},onError:c,middlewares:u=[],responseMiddlewares:y=[]}=t,d=`(${o.toUpperCase()}) ${this.#t.cleanPath(n)}`;if(this.#n.has(d))throw new h(`Route key ${d} already registered. All route keys must be unique`,{route:t,key:d});u.forEach(v=>v.onSetup?.(t)),c?.onSetup?.(t),y.forEach(v=>v.onSetup?.(t));let{validateRequest:R,validateResponse:g,jsonSchema:b}=this.#p(o,r);this.#n.add(d),await this.#t.register(t,b),this.registerRoute(o,this.#t.cleanPath(n),async(v,B)=>{let a=await R(await this.parseRequest(v));try{for(let f of u)await f.cb(a);let p=await t.handler(a),l=p instanceof P?p:new P({body:p,status:m.Ok,headers:{},piped:!1});for(let f of y)await f.cb(a,l);return await this.handleResponse(B,await g(l))}catch(p){if(c?.cb){let l=await c.cb(a,p),f=l instanceof P?l:new P({body:l,status:m.BadRequest,headers:{}});return await this.handleResponse(B,await g(f))}throw p}})})})}setNotFoundHandler(e){if(this.#r)throw new h("Cannot set not-found handler after server has started",{});return this.#a=e,this}test(){return _e(this.#e)}async start(){this.#r=!0;let e=this.#o,t=H.get(),{app:o}=t.settings;e.healthPath&&this.addRoute({method:C.get,path:e.healthPath,handler:async r=>r.res({body:`${t.id}(${o.name}) service running`,contentType:"text/plain"})}),await Promise.all(this.#s.map(r=>r())),this.registerNotFoundHandler(async(r,c)=>await this.#i(r,c)),this.registerErrorHandler(async(r,c,u)=>{r instanceof h||H.get().log.error({error:r},"Uncaught error in route handler");let y=r instanceof x?new P({body:r.serializedErrors,status:r.statusCode}):r instanceof h?new P({body:[{message:r.message}],status:m.BadRequest}):new P({body:[{message:"Something went wrong",data:r.message}],status:m.BadRequest});return await this.handleResponse(u,y)});let n=await this.startServer(e.port);return n&&H.get().log.info(`${t.id}(${o.name}) service listening on port ${e.port}`),n}createNodeRawResponder(e){return async t=>{e.beforeHandle?.();try{await t(e.request,e.response)}catch(o){if(!Z(e.response))return Re(e.response,o),ge;throw o}return Z(e.response)||Re(e.response,new h(Xe,{})),ge}}async#i(e,t){let o=await this.parseRequest(e);if(!this.#a)throw new J(`Route ${o.path} not found`);let n=await this.#a({request:o,respondWithRaw:this.createRawResponder(e,t)});if(!Ye(n)){if(n instanceof P)return await this.handleResponse(t,n);throw new h("Not-found handler must return a Response or respondWithRaw(...)",{})}}#p(e,t){let o=t?.defaultStatusCode??m.Ok,n=t?.defaultContentType??"application/json",r=o,c=n,u={response:{},request:{}},y={},d={};[{key:"params",type:"request"},{key:"headers",type:"request"},{key:"cookies",type:"request"},{key:"query",type:"request"},{key:"body",type:"request",skip:![C.post,C.put,C.patch].includes(e)},{key:"response",type:"response"},{key:"responseHeaders",type:"response"},{key:"responseCookies",type:"response"}].forEach(a=>{let p=t[a.key]??i.any();if(!a.skip&&(a.type==="request"&&(y[a.key]=p,u.request[a.key]=i.schema(p)),a.type==="response")){let l=Ze.concat({status:o,contentType:c,pipe:p});d[a.key]=i.any().pipe(f=>{let D=l.find(w=>w.status===r)?.pipe;if(!D)throw Qe.root(`schema not defined for status code: ${r}`,f);let k=i.validate(D,f);if(!k.valid)throw k.error;return k.value}),u.response[a.key]=l.map(f=>({status:f.status,contentType:f.contentType,schema:i.schema(f.pipe)}))}});let g=i.object(y);i.compile(g,{allErrors:!0});let b=i.object(d);return i.compile(b,{allErrors:!0}),{jsonSchema:u,validateRequest:async a=>{if(!Object.keys(y))return a;let p=K.run(a,()=>i.validate(g,{params:a.params,headers:a.headers,query:a.query,body:a.body,cookies:a.cookies}));if(!p.valid)throw G(p.error);return a.params=p.value.params,a.headers=p.value.headers,a.query=p.value.query,a.body=p.value.body,a.cookies=p.value.cookies,a},validateResponse:async a=>{if(!Object.keys(d))return a;r=a.status,c=a.contentType;let p=W.run(a,()=>i.validate(b,{responseHeaders:a.headers,responseCookies:Object.fromEntries(Object.entries(a.cookies).map(([l,f])=>[l,f.value])),response:a.body}));if(!p.valid)throw G(p.error);return a.body=p.value.response,a.headers=p.value.responseHeaders,a.cookieValues=p.value.responseCookies,a}}}};var As=s=>se(async e=>{if(e.authUser=await q.process(s,e.headers),!e.authUser)throw new S},e=>{e.security??=[];for(let t of s){let o=t.routeSecuritySchemeName();o&&e.security.push({[o]:[]})}e.descriptions??=[],e.descriptions.push("Requires a valid means of authentication.")});var L=class extends x{statusCode=m.BadRequest;constructor(e,t){super(e,[{message:e}],t)}};var S=class extends x{statusCode=m.NotAuthenticated;constructor(e="Not authenticated",t){super(e,[{message:e}],t)}};var ke=class extends x{statusCode=m.NotAuthorized;constructor(e="Not authorized",t){super(e,[{message:e}],t)}};var J=class extends x{statusCode=m.NotFound;constructor(e="Not found",t){super(e,[{message:e}],t)}};var O=class extends x{statusCode=m.TokenExpired;constructor(e="Token expired",t){super(e,[{message:e}],t)}};var U=class extends x{statusCode=m.ValidationError;constructor(e,t){super("Unprocessable Entity",e.flatMap(({field:o,messages:n})=>n.map(r=>({message:r,field:o}))),t)}};function xe(s,e){for(let t of e.after)if(!s.some(o=>o.class===t)){let o=t.name||"unknown",n=e.class?.name||"anonymous";throw new Error(`Missing dependency: ${n} declares after: [${o}], but ${o} is not registered`)}if(e.class){let t=[...s,e];et(t)}s.push(e)}function et(s){let e=new Map;for(let r of s){if(!r.class)continue;let c=e.get(r.class);if(c)for(let u of r.after)c.includes(u)||c.push(u);else e.set(r.class,[...r.after])}let t=new Set,o=new Set;function n(r,c){if(o.has(r)){let u=c.indexOf(r),d=[...c.slice(u),r].map(R=>R.name||"unknown");throw new Error(`Cycle detected: ${d.join(" \u2192 ")}`)}if(!t.has(r)){o.add(r),c.push(r);for(let u of e.get(r)??[])n(u,c);c.pop(),o.delete(r),t.add(r)}}for(let r of e.keys())n(r,[])}function tt(s,e=!1){if(s.length===0)return[];let t=new Map,o=[];for(let d of s)if(d.class){let R=t.get(d.class);R?R.push(d):t.set(d.class,[d])}else o.push(d);let n=[...t.keys()],r=new Map,c=new Map;for(let d of n)r.set(d,0),c.set(d,[]);for(let d of s)if(d.class)for(let R of d.after){let[g,b]=e?[d.class,R]:[R,d.class],v=c.get(g);v.includes(b)||(v.push(b),r.set(b,r.get(b)+1))}let u=[],y=n.filter(d=>r.get(d)===0);for(;y.length>0;){let d=[],R=[];for(let g of y)d.push(...t.get(g)??[]);u.push(d);for(let g of y)for(let b of c.get(g)??[]){let v=r.get(b)-1;r.set(b,v),v===0&&R.push(b)}y=R}if(o.length>0){let d=o.filter(g=>g.after.length>0),R=o.filter(g=>g.after.length===0);if(d.length>0){let g=-1;for(let v of d)for(let B of v.after){let a=u.findIndex(p=>p.some(l=>l.class===B));a>g&&(g=a)}let b=g+1;b<u.length?u[b].push(...d):u.push(d)}R.length>0&&(u.length>0?u[u.length-1].push(...R):u.push(R))}return u}async function z(s,e=o=>{throw o},t=!1){let o=tt(s,t);for(let n of o)await Promise.all(n.map(async r=>{try{return typeof r.cb=="function"?await r.cb():await r.cb}catch(c){return e(c instanceof Error?c:new Error(`${c}`))}}))}import{v as T}from"valleyed";var ve=()=>T.object({app:T.object({name:T.string()}),log:T.defaults(T.object({level:T.defaults(T.in(["fatal","error","warn","info","debug","trace","silent"]),"info")}),{}),utils:T.defaults(T.object({hashSaltRounds:T.defaults(T.number(),10),paginationDefaultLimit:T.defaults(T.number(),100),maxFileUploadSizeInMb:T.defaults(T.number(),500)}),{})});var H=class s{static#e;static#t;static#o={};settings;log;constructor(e){s.#t=this,this.settings=Object.freeze(e),this.log=I({level:this.settings.log.level,serializers:{err:I.stdSerializers.err,error:I.stdSerializers.err,req:I.stdSerializers.req,res:I.stdSerializers.res},mixin:()=>({instanceId:s.#e})}),s.#s()}alias(e){if(s.#e!==void 0)return s.crash(new h("Instance already has an alias",{}));s.#e=e}get id(){return s.#e===void 0?s.crash(new h("Instance doesnt have an alias yet",{})):s.#e}getScopedName(e,t="."){return[this.settings.app.name,e].join(t)}async start(){try{await z(s.#o.setup??[]),await z(s.#o.start??[])}catch(e){s.crash(new h("Error starting instance",{},e))}}static envs(e){let t=Ce.validate(e,process.env);return t.valid||s.crash(new h(`Environment variables are not valid
30
+ ${t.error.toString()}`,{messages:t.error.messages})),t.value}static create(e){if(s.#t)return s.crash(new h("Instance has been initialized already",{}));let t=Ce.validate(ve(),e);return t.valid||s.crash(new h(`Settings are not valid
31
+ ${t.error.toString()}`,{messages:t.error.messages})),new s(t.value)}static get(){return s.#t?s.#t:s.crash(new h("Has not been initialized. Make sure an instance has been created before you get an instance",{}))}static maybeGet(){return s.#t}static on(e,t,o){s.#o[e]??=[];let n={cb:t,class:o?.class,after:o?.after??[]};xe(s.#o[e],n)}static#s(){Object.entries({SIGHUP:1,SIGINT:2,SIGTERM:15}).forEach(([t,o])=>{process.on(t,async()=>{await z(s.#o.close??[],()=>{},!0),process.exit(128+o)})})}static resolveBeforeCrash(e){let t=e();return s.on("close",async()=>await t),t}static crash(e){console.error(e),process.exit(1)}static createId(e){return`${e?.prefix??""}${st(e?.time?.getTime())}`}};var He=s=>E.array(E.file(s).pipe(e=>{let t=`is larger than allowed limit of ${H.get().settings.utils.maxFileUploadSizeInMb}mb`;if(e?!e.isTruncated:!0)return e;throw ot.root(t,e)})),rt=s=>E.define(E.compile(He(s).pipe(E.min(1,"no file provided")).pipe(e=>e[0])),{schema:()=>({type:"string",format:"binary"})}),nt=s=>E.define(E.compile(He(s)),{schema:()=>({type:"string",format:"binary"})}),K=new Te,W=new Te,at=s=>E.define(e=>{let t=K.getStore();if(!t)throw new Error("Request not found in context");let o=E.validate(s(t),e);return o.valid?o.value:o.error}),it=s=>E.define(e=>{let t=W.getStore();if(!t)throw new Error("Response not found in context");let o=E.validate(s(t),e);return o.valid?o.value:o.error});import{v as pt}from"valleyed";function G(s){let e=s.messages.reduce((t,{path:o="",message:n})=>(t[o]?t[o].messages.push(n):t[o]={field:o,messages:[n]},t),{});return new U(Object.values(e))}function qo(s,e){let t=pt.validate(s,e);if(t.valid)return t.value;throw G(t.error)}export{h as a,x as b,Pe as c,G as d,qo as e,C as f,m as g,se as h,lt as i,ft as j,N as k,ie as l,Dt as m,ce as n,Fe as o,X as p,Bt as q,de as r,Ge as s,Ke as t,le as u,P as v,q as w,fe as x,$ as y,he as z,ye as A,Ts as B,we as C,As as D,L as E,S as F,ke as G,J as H,O as I,U as J,H as K};
32
+ //# sourceMappingURL=chunk-FLAPYQUT.min.mjs.map