equipped 5.2.9 → 5.3.0-alpha.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.
- package/CHANGELOG.md +88 -0
- package/README.md +362 -34
- package/dist/cjs/cache/adapters/in-memory/index.cjs +824 -0
- package/dist/cjs/cache/adapters/in-memory/index.cjs.map +1 -0
- package/dist/cjs/cache/adapters/in-memory/index.min.cjs +4 -0
- package/dist/cjs/cache/adapters/in-memory/index.min.cjs.map +1 -0
- package/dist/cjs/cache/adapters/redis/index.cjs +844 -0
- package/dist/cjs/cache/adapters/redis/index.cjs.map +1 -0
- package/dist/cjs/cache/adapters/redis/index.min.cjs +4 -0
- package/dist/cjs/cache/adapters/redis/index.min.cjs.map +1 -0
- package/dist/cjs/cache/index.cjs +602 -4
- package/dist/cjs/cache/index.cjs.map +1 -1
- package/dist/cjs/cache/index.min.cjs +3 -1
- package/dist/cjs/cache/index.min.cjs.map +1 -1
- package/dist/cjs/dbs/adapters/mongodb/index.cjs +1314 -0
- package/dist/cjs/dbs/adapters/mongodb/index.cjs.map +1 -0
- package/dist/cjs/dbs/adapters/mongodb/index.min.cjs +4 -0
- package/dist/cjs/dbs/adapters/mongodb/index.min.cjs.map +1 -0
- package/dist/cjs/dbs/index.cjs +965 -6
- package/dist/cjs/dbs/index.cjs.map +1 -1
- package/dist/cjs/dbs/index.min.cjs +3 -1
- package/dist/cjs/dbs/index.min.cjs.map +1 -1
- package/dist/cjs/errors/index.cjs +127 -8
- package/dist/cjs/errors/index.cjs.map +1 -1
- package/dist/cjs/errors/index.min.cjs +1 -1
- package/dist/cjs/errors/index.min.cjs.map +1 -1
- package/dist/cjs/events/adapters/kafka/index.cjs +845 -0
- package/dist/cjs/events/adapters/kafka/index.cjs.map +1 -0
- package/dist/cjs/events/adapters/kafka/index.min.cjs +4 -0
- package/dist/cjs/events/adapters/kafka/index.min.cjs.map +1 -0
- package/dist/cjs/events/adapters/rabbitmq/index.cjs +836 -0
- package/dist/cjs/events/adapters/rabbitmq/index.cjs.map +1 -0
- package/dist/cjs/events/adapters/rabbitmq/index.min.cjs +4 -0
- package/dist/cjs/events/adapters/rabbitmq/index.min.cjs.map +1 -0
- package/dist/cjs/events/index.cjs +33 -4
- package/dist/cjs/events/index.cjs.map +1 -1
- package/dist/cjs/events/index.min.cjs +1 -1
- package/dist/cjs/events/index.min.cjs.map +1 -1
- package/dist/cjs/index.cjs +588 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.min.cjs +3 -1
- package/dist/cjs/index.min.cjs.map +1 -1
- package/dist/cjs/instance/index.cjs +514 -64
- package/dist/cjs/instance/index.cjs.map +1 -1
- package/dist/cjs/instance/index.min.cjs +3 -3
- package/dist/cjs/instance/index.min.cjs.map +1 -1
- package/dist/cjs/jobs/adapters/redis/index.cjs +979 -0
- package/dist/cjs/jobs/adapters/redis/index.cjs.map +1 -0
- package/dist/cjs/jobs/adapters/redis/index.min.cjs +4 -0
- package/dist/cjs/jobs/adapters/redis/index.min.cjs.map +1 -0
- package/dist/cjs/jobs/index.cjs +55 -2
- package/dist/cjs/jobs/index.cjs.map +1 -1
- package/dist/cjs/jobs/index.min.cjs +1 -1
- package/dist/cjs/jobs/index.min.cjs.map +1 -1
- package/dist/cjs/orm/adapters/in-memory/index.cjs +2551 -0
- package/dist/cjs/orm/adapters/in-memory/index.cjs.map +1 -0
- package/dist/cjs/orm/adapters/in-memory/index.min.cjs +4 -0
- package/dist/cjs/orm/adapters/in-memory/index.min.cjs.map +1 -0
- package/dist/cjs/orm/adapters/json/index.cjs +3518 -0
- package/dist/cjs/orm/adapters/json/index.cjs.map +1 -0
- package/dist/cjs/orm/adapters/json/index.min.cjs +4 -0
- package/dist/cjs/orm/adapters/json/index.min.cjs.map +1 -0
- package/dist/cjs/orm/adapters/mongodb/index.cjs +3299 -0
- package/dist/cjs/orm/adapters/mongodb/index.cjs.map +1 -0
- package/dist/cjs/orm/adapters/mongodb/index.min.cjs +4 -0
- package/dist/cjs/orm/adapters/mongodb/index.min.cjs.map +1 -0
- package/dist/cjs/orm/adapters/postgresql/index.cjs +4114 -0
- package/dist/cjs/orm/adapters/postgresql/index.cjs.map +1 -0
- package/dist/cjs/orm/adapters/postgresql/index.min.cjs +49 -0
- package/dist/cjs/orm/adapters/postgresql/index.min.cjs.map +1 -0
- package/dist/cjs/orm/index.cjs +9216 -0
- package/dist/cjs/orm/index.cjs.map +1 -0
- package/dist/cjs/orm/index.min.cjs +4 -0
- package/dist/cjs/orm/index.min.cjs.map +1 -0
- package/dist/cjs/server/adapters/express/index.cjs +1705 -0
- package/dist/cjs/server/adapters/express/index.cjs.map +1 -0
- package/dist/cjs/server/adapters/express/index.min.cjs +32 -0
- package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -0
- package/dist/cjs/server/adapters/fastify/index.cjs +1709 -0
- package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -0
- package/dist/cjs/server/adapters/fastify/index.min.cjs +32 -0
- package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -0
- package/dist/cjs/server/index.cjs +1600 -9
- package/dist/cjs/server/index.cjs.map +1 -1
- package/dist/cjs/server/index.min.cjs +31 -1
- package/dist/cjs/server/index.min.cjs.map +1 -1
- package/dist/cjs/types/index.cjs +18 -1
- package/dist/cjs/types/index.cjs.map +1 -1
- package/dist/cjs/types/index.min.cjs +1 -1
- package/dist/cjs/types/index.min.cjs.map +1 -1
- package/dist/cjs/utilities/index.cjs +862 -7
- package/dist/cjs/utilities/index.cjs.map +1 -1
- package/dist/cjs/utilities/index.min.cjs +3 -1
- package/dist/cjs/utilities/index.min.cjs.map +1 -1
- package/dist/cjs/validations/index.cjs +679 -10
- package/dist/cjs/validations/index.cjs.map +1 -1
- package/dist/cjs/validations/index.min.cjs +3 -1
- package/dist/cjs/validations/index.min.cjs.map +1 -1
- package/dist/esm/cache/adapters/in-memory/index.min.mjs +2 -0
- package/dist/esm/cache/adapters/in-memory/index.min.mjs.map +1 -0
- package/dist/esm/cache/adapters/in-memory/index.mjs +93 -0
- package/dist/esm/cache/adapters/in-memory/index.mjs.map +1 -0
- package/dist/esm/cache/adapters/redis/index.min.mjs +2 -0
- package/dist/esm/cache/adapters/redis/index.mjs +13 -0
- package/dist/esm/cache/index.min.mjs +1 -1
- package/dist/esm/cache/index.min.mjs.map +1 -1
- package/dist/esm/cache/index.mjs +9 -4
- package/dist/esm/cache/index.mjs.map +1 -1
- package/dist/esm/chunk-2TCFNKRZ.mjs +1824 -0
- package/dist/esm/chunk-2TCFNKRZ.mjs.map +1 -0
- package/dist/esm/chunk-6DW4GW3R.min.mjs +2 -0
- package/dist/esm/chunk-6DW4GW3R.min.mjs.map +1 -0
- package/dist/esm/chunk-6SB5M4XH.mjs +795 -0
- package/dist/esm/chunk-6SB5M4XH.mjs.map +1 -0
- package/dist/esm/chunk-AQY7QVYI.min.mjs +2 -0
- package/dist/esm/chunk-AUKXL4EA.min.mjs +2 -0
- package/dist/esm/chunk-AUKXL4EA.min.mjs.map +1 -0
- package/dist/esm/chunk-BJNIUCPT.min.mjs +2 -0
- package/dist/esm/chunk-BJNIUCPT.min.mjs.map +1 -0
- package/dist/esm/chunk-DKPZJIIR.mjs +29 -0
- package/dist/esm/chunk-DKPZJIIR.mjs.map +1 -0
- package/dist/esm/chunk-DSUJ5FUL.min.mjs +2 -0
- package/dist/esm/chunk-DSUJ5FUL.min.mjs.map +1 -0
- package/dist/esm/chunk-ECBJ3NT3.min.mjs +2 -0
- package/dist/esm/chunk-ECBJ3NT3.min.mjs.map +1 -0
- package/dist/{types/events/types/kafka.js → esm/chunk-I4BB436E.mjs} +60 -37
- package/dist/esm/chunk-I4BB436E.mjs.map +1 -0
- package/dist/esm/chunk-IEBC3OWN.mjs +22 -0
- package/dist/esm/chunk-IEBC3OWN.mjs.map +1 -0
- package/dist/esm/chunk-J5LGTIGS.mjs +10 -0
- package/dist/esm/chunk-KW3PBDFD.mjs +53 -0
- package/dist/esm/chunk-KW3PBDFD.mjs.map +1 -0
- package/dist/esm/chunk-LTDVZJYJ.min.mjs +32 -0
- package/dist/esm/chunk-LTDVZJYJ.min.mjs.map +1 -0
- package/dist/esm/chunk-MYGAF2AC.min.mjs +2 -0
- package/dist/esm/chunk-MYGAF2AC.min.mjs.map +1 -0
- package/dist/esm/chunk-OXI6IKAM.min.mjs +2 -0
- package/dist/esm/chunk-OXI6IKAM.min.mjs.map +1 -0
- package/dist/esm/chunk-RIRBNBTC.mjs +113 -0
- package/dist/esm/chunk-RIRBNBTC.mjs.map +1 -0
- package/dist/esm/chunk-TWKHVLLT.mjs +1280 -0
- package/dist/esm/chunk-TWKHVLLT.mjs.map +1 -0
- package/dist/esm/chunk-VCCS7CAI.mjs +8 -0
- package/dist/esm/chunk-VCCS7CAI.mjs.map +1 -0
- package/dist/esm/chunk-WHIWTP2Z.min.mjs +2 -0
- package/dist/esm/chunk-WHIWTP2Z.min.mjs.map +1 -0
- package/dist/esm/chunk-YTHRK2PO.mjs +126 -0
- package/dist/esm/chunk-YTHRK2PO.mjs.map +1 -0
- package/dist/esm/chunk-YTM6ZURZ.min.mjs +2 -0
- package/dist/esm/chunk-YTM6ZURZ.min.mjs.map +1 -0
- package/dist/esm/dbs/adapters/mongodb/index.min.mjs +2 -0
- package/dist/esm/dbs/adapters/mongodb/index.min.mjs.map +1 -0
- package/dist/esm/dbs/adapters/mongodb/index.mjs +419 -0
- package/dist/esm/dbs/adapters/mongodb/index.mjs.map +1 -0
- package/dist/esm/dbs/index.min.mjs +1 -1
- package/dist/esm/dbs/index.min.mjs.map +1 -1
- package/dist/esm/dbs/index.mjs +22 -6
- package/dist/esm/dbs/index.mjs.map +1 -1
- package/dist/esm/errors/index.min.mjs +1 -1
- package/dist/esm/errors/index.min.mjs.map +1 -1
- package/dist/esm/errors/index.mjs +22 -8
- package/dist/esm/errors/index.mjs.map +1 -1
- package/dist/esm/events/adapters/kafka/index.min.mjs +2 -0
- package/dist/esm/events/adapters/kafka/index.min.mjs.map +1 -0
- package/dist/esm/events/adapters/kafka/index.mjs +12 -0
- package/dist/esm/events/adapters/kafka/index.mjs.map +1 -0
- package/dist/esm/events/adapters/rabbitmq/index.min.mjs +2 -0
- package/dist/esm/events/adapters/rabbitmq/index.min.mjs.map +1 -0
- package/dist/esm/events/adapters/rabbitmq/index.mjs +92 -0
- package/dist/esm/events/adapters/rabbitmq/index.mjs.map +1 -0
- package/dist/esm/events/index.min.mjs +1 -1
- package/dist/esm/events/index.min.mjs.map +1 -1
- package/dist/esm/events/index.mjs +7 -4
- package/dist/esm/events/index.mjs.map +1 -1
- package/dist/esm/index.min.mjs +1 -1
- package/dist/esm/index.min.mjs.map +1 -1
- package/dist/esm/index.mjs +8 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/instance/index.min.mjs +1 -3
- package/dist/esm/instance/index.min.mjs.map +1 -1
- package/dist/esm/instance/index.mjs +4 -132
- package/dist/esm/instance/index.mjs.map +1 -1
- package/dist/esm/introspection-GP3G26B6.min.mjs +2 -0
- package/dist/esm/introspection-GP3G26B6.min.mjs.map +1 -0
- package/dist/esm/introspection-Y7EXSYPD.mjs +10 -0
- package/dist/esm/introspection-Y7EXSYPD.mjs.map +1 -0
- package/dist/esm/jobs/adapters/redis/index.min.mjs +2 -0
- package/dist/esm/jobs/adapters/redis/index.min.mjs.map +1 -0
- package/dist/esm/jobs/{types/redis.mjs → adapters/redis/index.mjs} +71 -56
- package/dist/esm/jobs/adapters/redis/index.mjs.map +1 -0
- package/dist/esm/jobs/index.min.mjs +1 -1
- package/dist/esm/jobs/index.min.mjs.map +1 -1
- package/dist/esm/jobs/index.mjs +9 -2
- package/dist/esm/jobs/index.mjs.map +1 -1
- package/dist/esm/orm/adapters/in-memory/index.min.mjs +2 -0
- package/dist/esm/orm/adapters/in-memory/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/in-memory/index.mjs +11 -0
- package/dist/esm/orm/adapters/in-memory/index.mjs.map +1 -0
- package/dist/esm/orm/adapters/json/index.min.mjs +2 -0
- package/dist/esm/orm/adapters/json/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/json/index.mjs +980 -0
- package/dist/esm/orm/adapters/json/index.mjs.map +1 -0
- package/dist/esm/orm/adapters/mongodb/index.min.mjs +2 -0
- package/dist/esm/orm/adapters/mongodb/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/mongodb/index.mjs +1539 -0
- package/dist/esm/orm/adapters/mongodb/index.mjs.map +1 -0
- package/dist/esm/orm/adapters/postgresql/index.min.mjs +47 -0
- package/dist/esm/orm/adapters/postgresql/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/postgresql/index.mjs +2070 -0
- package/dist/esm/orm/adapters/postgresql/index.mjs.map +1 -0
- package/dist/esm/orm/index.min.mjs +2 -0
- package/dist/esm/orm/index.min.mjs.map +1 -0
- package/dist/esm/orm/index.mjs +7326 -0
- package/dist/esm/orm/index.mjs.map +1 -0
- package/dist/esm/server/adapters/express/index.min.mjs +2 -0
- package/dist/esm/server/adapters/express/index.min.mjs.map +1 -0
- package/dist/esm/server/adapters/express/index.mjs +126 -0
- package/dist/esm/server/adapters/express/index.mjs.map +1 -0
- package/dist/esm/server/adapters/fastify/index.min.mjs +2 -0
- package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -0
- package/dist/{types/server/impls/fastify.js → esm/server/adapters/fastify/index.mjs} +56 -45
- package/dist/esm/server/adapters/fastify/index.mjs.map +1 -0
- package/dist/esm/server/index.min.mjs +1 -1
- package/dist/esm/server/index.min.mjs.map +1 -1
- package/dist/esm/server/index.mjs +38 -9
- package/dist/esm/server/index.mjs.map +1 -1
- package/dist/esm/types/index.min.mjs +0 -1
- package/dist/esm/types/index.min.mjs.map +1 -1
- package/dist/esm/types/index.mjs +0 -1
- package/dist/esm/types/index.mjs.map +1 -1
- package/dist/esm/utilities/index.min.mjs +1 -1
- package/dist/esm/utilities/index.min.mjs.map +1 -1
- package/dist/esm/utilities/index.mjs +22 -9
- package/dist/esm/utilities/index.mjs.map +1 -1
- package/dist/esm/validations/index.min.mjs +1 -1
- package/dist/esm/validations/index.min.mjs.map +1 -1
- package/dist/esm/validations/index.mjs +8 -18
- package/dist/esm/validations/index.mjs.map +1 -1
- package/dist/types/adapter-Coap9ISX.d.ts +1435 -0
- package/dist/types/{fastify-DLPUK3vD.d.ts → base-3PpBAx1K.d.ts} +58 -143
- package/dist/types/cache/adapters/in-memory/index.d.ts +21 -0
- package/dist/types/cache/adapters/in-memory/index.js +92 -0
- package/dist/types/cache/adapters/redis/index.d.ts +73 -0
- package/dist/types/cache/adapters/redis/index.js +12 -0
- package/dist/types/cache/index.d.ts +2 -42
- package/dist/types/cache/index.js +9 -4
- package/dist/types/chunk-32DMHN3G.js +1823 -0
- package/dist/types/chunk-4LRJJSGG.js +112 -0
- package/dist/types/chunk-A2MRYMCA.js +1279 -0
- package/dist/types/chunk-H6JBLKX5.js +794 -0
- package/dist/{esm/events/types/kafka.mjs → types/chunk-IAHTILKJ.js} +59 -38
- package/dist/types/chunk-JZ2JTENY.js +125 -0
- package/dist/types/chunk-KZKFYO4V.js +7 -0
- package/dist/types/chunk-LN3A6R4Y.js +28 -0
- package/dist/types/chunk-LWUMIHL4.js +21 -0
- package/dist/types/chunk-MLKGABMK.js +9 -0
- package/dist/types/chunk-XOU2A2Y6.js +52 -0
- package/dist/types/{core-BrkNSwvc.d.ts → core-tNlIMH9Y.d.ts} +48 -38
- package/dist/types/dbs/adapters/mongodb/index.d.ts +43 -0
- package/dist/types/dbs/adapters/mongodb/index.js +418 -0
- package/dist/types/dbs/index.d.ts +14 -12
- package/dist/types/dbs/index.js +22 -6
- package/dist/types/equippedError-Cmo60Kn-.d.ts +8 -0
- package/dist/types/errors/index.d.ts +3 -3
- package/dist/types/errors/index.js +22 -8
- package/dist/types/events/adapters/kafka/index.d.ts +83 -0
- package/dist/types/events/adapters/kafka/index.js +11 -0
- package/dist/types/events/adapters/rabbitmq/index.d.ts +41 -0
- package/dist/types/events/adapters/rabbitmq/index.js +91 -0
- package/dist/types/events/index.d.ts +11 -11
- package/dist/types/events/index.js +7 -4
- package/dist/types/index.d.ts +2 -25
- package/dist/types/index.js +8 -1
- package/dist/types/instance/index.d.ts +12 -179
- package/dist/types/instance/index.js +4 -132
- package/dist/types/introspection-ZQCAW254.js +9 -0
- package/dist/types/jobs/adapters/redis/index.d.ts +93 -0
- package/dist/types/jobs/{types/redis.js → adapters/redis/index.js} +70 -55
- package/dist/types/jobs/index.d.ts +19 -35
- package/dist/types/jobs/index.js +9 -2
- package/dist/types/orm/adapters/in-memory/index.d.ts +92 -0
- package/dist/types/orm/adapters/in-memory/index.js +10 -0
- package/dist/types/orm/adapters/json/index.d.ts +72 -0
- package/dist/types/orm/adapters/json/index.js +979 -0
- package/dist/types/orm/adapters/mongodb/index.d.ts +74 -0
- package/dist/types/orm/adapters/mongodb/index.js +1538 -0
- package/dist/types/orm/adapters/postgresql/index.d.ts +112 -0
- package/dist/types/orm/adapters/postgresql/index.js +2069 -0
- package/dist/types/orm/index.d.ts +160 -0
- package/dist/types/orm/index.js +7325 -0
- package/dist/types/{requestError-C2PNWUrt.d.ts → requestError-DdaL8hc3.d.ts} +2 -8
- package/dist/types/server/adapters/express/index.d.ts +194 -0
- package/dist/types/server/adapters/express/index.js +125 -0
- package/dist/types/server/adapters/fastify/index.d.ts +219 -0
- package/dist/{esm/server/impls/fastify.mjs → types/server/adapters/fastify/index.js} +55 -46
- package/dist/types/server/index.d.ts +10 -11
- package/dist/types/server/index.js +38 -9
- package/dist/types/types/index.js +0 -1
- package/dist/types/utilities/index.d.ts +22 -9
- package/dist/types/utilities/index.js +22 -9
- package/dist/types/{validationError-Bw8OYv5s.d.ts → validationError-oigtHqBi.d.ts} +1 -1
- package/dist/types/validations/index.d.ts +3 -2
- package/dist/types/validations/index.js +8 -18
- package/package.json +154 -15
- package/dist/cjs/audit/events.cjs +0 -101
- package/dist/cjs/audit/events.cjs.map +0 -1
- package/dist/cjs/audit/events.min.cjs +0 -2
- package/dist/cjs/audit/events.min.cjs.map +0 -1
- package/dist/cjs/audit/index.cjs +0 -2
- package/dist/cjs/audit/index.cjs.map +0 -1
- package/dist/cjs/audit/index.min.cjs +0 -2
- package/dist/cjs/audit/index.min.cjs.map +0 -1
- package/dist/cjs/cache/base.cjs +0 -6
- package/dist/cjs/cache/base.cjs.map +0 -1
- package/dist/cjs/cache/base.min.cjs +0 -2
- package/dist/cjs/cache/base.min.cjs.map +0 -1
- package/dist/cjs/cache/pipes.cjs +0 -16
- package/dist/cjs/cache/pipes.cjs.map +0 -1
- package/dist/cjs/cache/pipes.min.cjs +0 -2
- package/dist/cjs/cache/pipes.min.cjs.map +0 -1
- package/dist/cjs/cache/types/in-memory.cjs +0 -47
- package/dist/cjs/cache/types/in-memory.cjs.map +0 -1
- package/dist/cjs/cache/types/in-memory.min.cjs +0 -2
- package/dist/cjs/cache/types/in-memory.min.cjs.map +0 -1
- package/dist/cjs/cache/types/redis.cjs +0 -55
- package/dist/cjs/cache/types/redis.cjs.map +0 -1
- package/dist/cjs/cache/types/redis.min.cjs +0 -2
- package/dist/cjs/cache/types/redis.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/changes.cjs +0 -36
- package/dist/cjs/dbs/base/changes.cjs.map +0 -1
- package/dist/cjs/dbs/base/changes.min.cjs +0 -2
- package/dist/cjs/dbs/base/changes.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/core.cjs +0 -1
- package/dist/cjs/dbs/base/core.cjs.map +0 -1
- package/dist/cjs/dbs/base/core.min.cjs +0 -1
- package/dist/cjs/dbs/base/core.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/db.cjs +0 -14
- package/dist/cjs/dbs/base/db.cjs.map +0 -1
- package/dist/cjs/dbs/base/db.min.cjs +0 -2
- package/dist/cjs/dbs/base/db.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/types.cjs +0 -2
- package/dist/cjs/dbs/base/types.cjs.map +0 -1
- package/dist/cjs/dbs/base/types.min.cjs +0 -2
- package/dist/cjs/dbs/base/types.min.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/changes.cjs +0 -81
- package/dist/cjs/dbs/mongo/changes.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/changes.min.cjs +0 -2
- package/dist/cjs/dbs/mongo/changes.min.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/db.cjs +0 -225
- package/dist/cjs/dbs/mongo/db.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/db.min.cjs +0 -2
- package/dist/cjs/dbs/mongo/db.min.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/query.cjs +0 -66
- package/dist/cjs/dbs/mongo/query.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/query.min.cjs +0 -2
- package/dist/cjs/dbs/mongo/query.min.cjs.map +0 -1
- package/dist/cjs/dbs/pipes.cjs +0 -104
- package/dist/cjs/dbs/pipes.cjs.map +0 -1
- package/dist/cjs/dbs/pipes.min.cjs +0 -2
- package/dist/cjs/dbs/pipes.min.cjs.map +0 -1
- package/dist/cjs/errors/equippedError.cjs +0 -12
- package/dist/cjs/errors/equippedError.cjs.map +0 -1
- package/dist/cjs/errors/equippedError.min.cjs +0 -2
- package/dist/cjs/errors/equippedError.min.cjs.map +0 -1
- package/dist/cjs/errors/requestError.cjs +0 -12
- package/dist/cjs/errors/requestError.cjs.map +0 -1
- package/dist/cjs/errors/requestError.min.cjs +0 -2
- package/dist/cjs/errors/requestError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/badRequestError.cjs +0 -12
- package/dist/cjs/errors/types/badRequestError.cjs.map +0 -1
- package/dist/cjs/errors/types/badRequestError.min.cjs +0 -2
- package/dist/cjs/errors/types/badRequestError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthenticatedError.cjs +0 -12
- package/dist/cjs/errors/types/notAuthenticatedError.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthenticatedError.min.cjs +0 -2
- package/dist/cjs/errors/types/notAuthenticatedError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthorizedError.cjs +0 -12
- package/dist/cjs/errors/types/notAuthorizedError.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthorizedError.min.cjs +0 -2
- package/dist/cjs/errors/types/notAuthorizedError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/notFoundError.cjs +0 -12
- package/dist/cjs/errors/types/notFoundError.cjs.map +0 -1
- package/dist/cjs/errors/types/notFoundError.min.cjs +0 -2
- package/dist/cjs/errors/types/notFoundError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/tokenExpired.cjs +0 -12
- package/dist/cjs/errors/types/tokenExpired.cjs.map +0 -1
- package/dist/cjs/errors/types/tokenExpired.min.cjs +0 -2
- package/dist/cjs/errors/types/tokenExpired.min.cjs.map +0 -1
- package/dist/cjs/errors/types/validationError.cjs +0 -16
- package/dist/cjs/errors/types/validationError.cjs.map +0 -1
- package/dist/cjs/errors/types/validationError.min.cjs +0 -2
- package/dist/cjs/errors/types/validationError.min.cjs.map +0 -1
- package/dist/cjs/events/base.cjs +0 -6
- package/dist/cjs/events/base.cjs.map +0 -1
- package/dist/cjs/events/base.min.cjs +0 -2
- package/dist/cjs/events/base.min.cjs.map +0 -1
- package/dist/cjs/events/pipes.cjs +0 -28
- package/dist/cjs/events/pipes.cjs.map +0 -1
- package/dist/cjs/events/pipes.min.cjs +0 -2
- package/dist/cjs/events/pipes.min.cjs.map +0 -1
- package/dist/cjs/events/types/kafka.cjs +0 -80
- package/dist/cjs/events/types/kafka.cjs.map +0 -1
- package/dist/cjs/events/types/kafka.min.cjs +0 -2
- package/dist/cjs/events/types/kafka.min.cjs.map +0 -1
- package/dist/cjs/events/types/rabbitmq.cjs +0 -54
- package/dist/cjs/events/types/rabbitmq.cjs.map +0 -1
- package/dist/cjs/events/types/rabbitmq.min.cjs +0 -2
- package/dist/cjs/events/types/rabbitmq.min.cjs.map +0 -1
- package/dist/cjs/instance/hooks.cjs +0 -26
- package/dist/cjs/instance/hooks.cjs.map +0 -1
- package/dist/cjs/instance/hooks.min.cjs +0 -2
- package/dist/cjs/instance/hooks.min.cjs.map +0 -1
- package/dist/cjs/instance/settings.cjs +0 -57
- package/dist/cjs/instance/settings.cjs.map +0 -1
- package/dist/cjs/instance/settings.min.cjs +0 -2
- package/dist/cjs/instance/settings.min.cjs.map +0 -1
- package/dist/cjs/jobs/pipes.cjs +0 -13
- package/dist/cjs/jobs/pipes.cjs.map +0 -1
- package/dist/cjs/jobs/pipes.min.cjs +0 -2
- package/dist/cjs/jobs/pipes.min.cjs.map +0 -1
- package/dist/cjs/jobs/types/redis.cjs +0 -106
- package/dist/cjs/jobs/types/redis.cjs.map +0 -1
- package/dist/cjs/jobs/types/redis.min.cjs +0 -2
- package/dist/cjs/jobs/types/redis.min.cjs.map +0 -1
- package/dist/cjs/server/impls/base.cjs +0 -211
- package/dist/cjs/server/impls/base.cjs.map +0 -1
- package/dist/cjs/server/impls/base.min.cjs +0 -2
- package/dist/cjs/server/impls/base.min.cjs.map +0 -1
- package/dist/cjs/server/impls/express.cjs +0 -111
- package/dist/cjs/server/impls/express.cjs.map +0 -1
- package/dist/cjs/server/impls/express.min.cjs +0 -2
- package/dist/cjs/server/impls/express.min.cjs.map +0 -1
- package/dist/cjs/server/impls/fastify.cjs +0 -121
- package/dist/cjs/server/impls/fastify.cjs.map +0 -1
- package/dist/cjs/server/impls/fastify.min.cjs +0 -2
- package/dist/cjs/server/impls/fastify.min.cjs.map +0 -1
- package/dist/cjs/server/middlewares/index.cjs +0 -2
- package/dist/cjs/server/middlewares/index.cjs.map +0 -1
- package/dist/cjs/server/middlewares/index.min.cjs +0 -2
- package/dist/cjs/server/middlewares/index.min.cjs.map +0 -1
- package/dist/cjs/server/middlewares/requireAuthUser.cjs +0 -22
- package/dist/cjs/server/middlewares/requireAuthUser.cjs.map +0 -1
- package/dist/cjs/server/middlewares/requireAuthUser.min.cjs +0 -2
- package/dist/cjs/server/middlewares/requireAuthUser.min.cjs.map +0 -1
- package/dist/cjs/server/openapi.cjs +0 -191
- package/dist/cjs/server/openapi.cjs.map +0 -1
- package/dist/cjs/server/openapi.min.cjs +0 -30
- package/dist/cjs/server/openapi.min.cjs.map +0 -1
- package/dist/cjs/server/pipes.cjs +0 -67
- package/dist/cjs/server/pipes.cjs.map +0 -1
- package/dist/cjs/server/pipes.min.cjs +0 -2
- package/dist/cjs/server/pipes.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/apiKeys.cjs +0 -21
- package/dist/cjs/server/requests-auth-methods/apiKeys.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/base.cjs +0 -20
- package/dist/cjs/server/requests-auth-methods/base.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/base.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/base.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/index.cjs +0 -4
- package/dist/cjs/server/requests-auth-methods/index.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/index.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/index.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/jwt.cjs +0 -78
- package/dist/cjs/server/requests-auth-methods/jwt.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/jwt.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/jwt.min.cjs.map +0 -1
- package/dist/cjs/server/requests.cjs +0 -80
- package/dist/cjs/server/requests.cjs.map +0 -1
- package/dist/cjs/server/requests.min.cjs +0 -2
- package/dist/cjs/server/requests.min.cjs.map +0 -1
- package/dist/cjs/server/routes.cjs +0 -74
- package/dist/cjs/server/routes.cjs.map +0 -1
- package/dist/cjs/server/routes.min.cjs +0 -2
- package/dist/cjs/server/routes.min.cjs.map +0 -1
- package/dist/cjs/server/sockets.cjs +0 -126
- package/dist/cjs/server/sockets.cjs.map +0 -1
- package/dist/cjs/server/sockets.min.cjs +0 -2
- package/dist/cjs/server/sockets.min.cjs.map +0 -1
- package/dist/cjs/server/types.cjs +0 -34
- package/dist/cjs/server/types.cjs.map +0 -1
- package/dist/cjs/server/types.min.cjs +0 -2
- package/dist/cjs/server/types.min.cjs.map +0 -1
- package/dist/cjs/types/overrides.cjs +0 -1
- package/dist/cjs/types/overrides.cjs.map +0 -1
- package/dist/cjs/types/overrides.min.cjs +0 -1
- package/dist/cjs/types/overrides.min.cjs.map +0 -1
- package/dist/cjs/utilities/authProviders.cjs +0 -53
- package/dist/cjs/utilities/authProviders.cjs.map +0 -1
- package/dist/cjs/utilities/authProviders.min.cjs +0 -2
- package/dist/cjs/utilities/authProviders.min.cjs.map +0 -1
- package/dist/cjs/utilities/hash.cjs +0 -17
- package/dist/cjs/utilities/hash.cjs.map +0 -1
- package/dist/cjs/utilities/hash.min.cjs +0 -2
- package/dist/cjs/utilities/hash.min.cjs.map +0 -1
- package/dist/cjs/utilities/json.cjs +0 -16
- package/dist/cjs/utilities/json.cjs.map +0 -1
- package/dist/cjs/utilities/json.min.cjs +0 -2
- package/dist/cjs/utilities/json.min.cjs.map +0 -1
- package/dist/cjs/utilities/media.cjs +0 -13
- package/dist/cjs/utilities/media.cjs.map +0 -1
- package/dist/cjs/utilities/media.min.cjs +0 -2
- package/dist/cjs/utilities/media.min.cjs.map +0 -1
- package/dist/cjs/utilities/random.cjs +0 -12
- package/dist/cjs/utilities/random.cjs.map +0 -1
- package/dist/cjs/utilities/random.min.cjs +0 -2
- package/dist/cjs/utilities/random.min.cjs.map +0 -1
- package/dist/cjs/utilities/retry.cjs +0 -14
- package/dist/cjs/utilities/retry.cjs.map +0 -1
- package/dist/cjs/utilities/retry.min.cjs +0 -2
- package/dist/cjs/utilities/retry.min.cjs.map +0 -1
- package/dist/cjs/validations/valleyed.cjs +0 -43
- package/dist/cjs/validations/valleyed.cjs.map +0 -1
- package/dist/cjs/validations/valleyed.min.cjs +0 -2
- package/dist/cjs/validations/valleyed.min.cjs.map +0 -1
- package/dist/esm/audit/events.min.mjs +0 -2
- package/dist/esm/audit/events.min.mjs.map +0 -1
- package/dist/esm/audit/events.mjs +0 -101
- package/dist/esm/audit/events.mjs.map +0 -1
- package/dist/esm/audit/index.min.mjs +0 -2
- package/dist/esm/audit/index.min.mjs.map +0 -1
- package/dist/esm/audit/index.mjs +0 -2
- package/dist/esm/audit/index.mjs.map +0 -1
- package/dist/esm/cache/base.min.mjs +0 -2
- package/dist/esm/cache/base.min.mjs.map +0 -1
- package/dist/esm/cache/base.mjs +0 -6
- package/dist/esm/cache/base.mjs.map +0 -1
- package/dist/esm/cache/pipes.min.mjs +0 -2
- package/dist/esm/cache/pipes.min.mjs.map +0 -1
- package/dist/esm/cache/pipes.mjs +0 -16
- package/dist/esm/cache/pipes.mjs.map +0 -1
- package/dist/esm/cache/types/in-memory.min.mjs +0 -2
- package/dist/esm/cache/types/in-memory.min.mjs.map +0 -1
- package/dist/esm/cache/types/in-memory.mjs +0 -47
- package/dist/esm/cache/types/in-memory.mjs.map +0 -1
- package/dist/esm/cache/types/redis.min.mjs +0 -2
- package/dist/esm/cache/types/redis.min.mjs.map +0 -1
- package/dist/esm/cache/types/redis.mjs +0 -55
- package/dist/esm/cache/types/redis.mjs.map +0 -1
- package/dist/esm/dbs/base/changes.min.mjs +0 -2
- package/dist/esm/dbs/base/changes.min.mjs.map +0 -1
- package/dist/esm/dbs/base/changes.mjs +0 -36
- package/dist/esm/dbs/base/changes.mjs.map +0 -1
- package/dist/esm/dbs/base/core.min.mjs +0 -1
- package/dist/esm/dbs/base/core.mjs +0 -1
- package/dist/esm/dbs/base/db.min.mjs +0 -2
- package/dist/esm/dbs/base/db.min.mjs.map +0 -1
- package/dist/esm/dbs/base/db.mjs +0 -14
- package/dist/esm/dbs/base/db.mjs.map +0 -1
- package/dist/esm/dbs/base/types.min.mjs +0 -2
- package/dist/esm/dbs/base/types.min.mjs.map +0 -1
- package/dist/esm/dbs/base/types.mjs +0 -2
- package/dist/esm/dbs/base/types.mjs.map +0 -1
- package/dist/esm/dbs/mongo/changes.min.mjs +0 -2
- package/dist/esm/dbs/mongo/changes.min.mjs.map +0 -1
- package/dist/esm/dbs/mongo/changes.mjs +0 -81
- package/dist/esm/dbs/mongo/changes.mjs.map +0 -1
- package/dist/esm/dbs/mongo/db.min.mjs +0 -2
- package/dist/esm/dbs/mongo/db.min.mjs.map +0 -1
- package/dist/esm/dbs/mongo/db.mjs +0 -225
- package/dist/esm/dbs/mongo/db.mjs.map +0 -1
- package/dist/esm/dbs/mongo/query.min.mjs +0 -2
- package/dist/esm/dbs/mongo/query.min.mjs.map +0 -1
- package/dist/esm/dbs/mongo/query.mjs +0 -66
- package/dist/esm/dbs/mongo/query.mjs.map +0 -1
- package/dist/esm/dbs/pipes.min.mjs +0 -2
- package/dist/esm/dbs/pipes.min.mjs.map +0 -1
- package/dist/esm/dbs/pipes.mjs +0 -104
- package/dist/esm/dbs/pipes.mjs.map +0 -1
- package/dist/esm/errors/equippedError.min.mjs +0 -2
- package/dist/esm/errors/equippedError.min.mjs.map +0 -1
- package/dist/esm/errors/equippedError.mjs +0 -12
- package/dist/esm/errors/equippedError.mjs.map +0 -1
- package/dist/esm/errors/requestError.min.mjs +0 -2
- package/dist/esm/errors/requestError.min.mjs.map +0 -1
- package/dist/esm/errors/requestError.mjs +0 -12
- package/dist/esm/errors/requestError.mjs.map +0 -1
- package/dist/esm/errors/types/badRequestError.min.mjs +0 -2
- package/dist/esm/errors/types/badRequestError.min.mjs.map +0 -1
- package/dist/esm/errors/types/badRequestError.mjs +0 -12
- package/dist/esm/errors/types/badRequestError.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthenticatedError.min.mjs +0 -2
- package/dist/esm/errors/types/notAuthenticatedError.min.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthenticatedError.mjs +0 -12
- package/dist/esm/errors/types/notAuthenticatedError.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthorizedError.min.mjs +0 -2
- package/dist/esm/errors/types/notAuthorizedError.min.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthorizedError.mjs +0 -12
- package/dist/esm/errors/types/notAuthorizedError.mjs.map +0 -1
- package/dist/esm/errors/types/notFoundError.min.mjs +0 -2
- package/dist/esm/errors/types/notFoundError.min.mjs.map +0 -1
- package/dist/esm/errors/types/notFoundError.mjs +0 -12
- package/dist/esm/errors/types/notFoundError.mjs.map +0 -1
- package/dist/esm/errors/types/tokenExpired.min.mjs +0 -2
- package/dist/esm/errors/types/tokenExpired.min.mjs.map +0 -1
- package/dist/esm/errors/types/tokenExpired.mjs +0 -12
- package/dist/esm/errors/types/tokenExpired.mjs.map +0 -1
- package/dist/esm/errors/types/validationError.min.mjs +0 -2
- package/dist/esm/errors/types/validationError.min.mjs.map +0 -1
- package/dist/esm/errors/types/validationError.mjs +0 -16
- package/dist/esm/errors/types/validationError.mjs.map +0 -1
- package/dist/esm/events/base.min.mjs +0 -2
- package/dist/esm/events/base.min.mjs.map +0 -1
- package/dist/esm/events/base.mjs +0 -6
- package/dist/esm/events/base.mjs.map +0 -1
- package/dist/esm/events/pipes.min.mjs +0 -2
- package/dist/esm/events/pipes.min.mjs.map +0 -1
- package/dist/esm/events/pipes.mjs +0 -28
- package/dist/esm/events/pipes.mjs.map +0 -1
- package/dist/esm/events/types/kafka.min.mjs +0 -2
- package/dist/esm/events/types/kafka.min.mjs.map +0 -1
- package/dist/esm/events/types/kafka.mjs.map +0 -1
- package/dist/esm/events/types/rabbitmq.min.mjs +0 -2
- package/dist/esm/events/types/rabbitmq.min.mjs.map +0 -1
- package/dist/esm/events/types/rabbitmq.mjs +0 -54
- package/dist/esm/events/types/rabbitmq.mjs.map +0 -1
- package/dist/esm/instance/hooks.min.mjs +0 -2
- package/dist/esm/instance/hooks.min.mjs.map +0 -1
- package/dist/esm/instance/hooks.mjs +0 -26
- package/dist/esm/instance/hooks.mjs.map +0 -1
- package/dist/esm/instance/settings.min.mjs +0 -2
- package/dist/esm/instance/settings.min.mjs.map +0 -1
- package/dist/esm/instance/settings.mjs +0 -57
- package/dist/esm/instance/settings.mjs.map +0 -1
- package/dist/esm/jobs/pipes.min.mjs +0 -2
- package/dist/esm/jobs/pipes.min.mjs.map +0 -1
- package/dist/esm/jobs/pipes.mjs +0 -13
- package/dist/esm/jobs/pipes.mjs.map +0 -1
- package/dist/esm/jobs/types/redis.min.mjs +0 -2
- package/dist/esm/jobs/types/redis.min.mjs.map +0 -1
- package/dist/esm/jobs/types/redis.mjs.map +0 -1
- package/dist/esm/server/impls/base.min.mjs +0 -2
- package/dist/esm/server/impls/base.min.mjs.map +0 -1
- package/dist/esm/server/impls/base.mjs +0 -211
- package/dist/esm/server/impls/base.mjs.map +0 -1
- package/dist/esm/server/impls/express.min.mjs +0 -2
- package/dist/esm/server/impls/express.min.mjs.map +0 -1
- package/dist/esm/server/impls/express.mjs +0 -111
- package/dist/esm/server/impls/express.mjs.map +0 -1
- package/dist/esm/server/impls/fastify.min.mjs +0 -2
- package/dist/esm/server/impls/fastify.min.mjs.map +0 -1
- package/dist/esm/server/impls/fastify.mjs.map +0 -1
- package/dist/esm/server/middlewares/index.min.mjs +0 -2
- package/dist/esm/server/middlewares/index.min.mjs.map +0 -1
- package/dist/esm/server/middlewares/index.mjs +0 -2
- package/dist/esm/server/middlewares/index.mjs.map +0 -1
- package/dist/esm/server/middlewares/requireAuthUser.min.mjs +0 -2
- package/dist/esm/server/middlewares/requireAuthUser.min.mjs.map +0 -1
- package/dist/esm/server/middlewares/requireAuthUser.mjs +0 -22
- package/dist/esm/server/middlewares/requireAuthUser.mjs.map +0 -1
- package/dist/esm/server/openapi.min.mjs +0 -30
- package/dist/esm/server/openapi.min.mjs.map +0 -1
- package/dist/esm/server/openapi.mjs +0 -191
- package/dist/esm/server/openapi.mjs.map +0 -1
- package/dist/esm/server/pipes.min.mjs +0 -2
- package/dist/esm/server/pipes.min.mjs.map +0 -1
- package/dist/esm/server/pipes.mjs +0 -67
- package/dist/esm/server/pipes.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/apiKeys.mjs +0 -21
- package/dist/esm/server/requests-auth-methods/apiKeys.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/base.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/base.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/base.mjs +0 -20
- package/dist/esm/server/requests-auth-methods/base.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/index.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/index.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/index.mjs +0 -4
- package/dist/esm/server/requests-auth-methods/index.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/jwt.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/jwt.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/jwt.mjs +0 -78
- package/dist/esm/server/requests-auth-methods/jwt.mjs.map +0 -1
- package/dist/esm/server/requests.min.mjs +0 -2
- package/dist/esm/server/requests.min.mjs.map +0 -1
- package/dist/esm/server/requests.mjs +0 -80
- package/dist/esm/server/requests.mjs.map +0 -1
- package/dist/esm/server/routes.min.mjs +0 -2
- package/dist/esm/server/routes.min.mjs.map +0 -1
- package/dist/esm/server/routes.mjs +0 -74
- package/dist/esm/server/routes.mjs.map +0 -1
- package/dist/esm/server/sockets.min.mjs +0 -2
- package/dist/esm/server/sockets.min.mjs.map +0 -1
- package/dist/esm/server/sockets.mjs +0 -126
- package/dist/esm/server/sockets.mjs.map +0 -1
- package/dist/esm/server/types.min.mjs +0 -2
- package/dist/esm/server/types.min.mjs.map +0 -1
- package/dist/esm/server/types.mjs +0 -34
- package/dist/esm/server/types.mjs.map +0 -1
- package/dist/esm/types/overrides.min.mjs +0 -1
- package/dist/esm/types/overrides.mjs +0 -1
- package/dist/esm/utilities/authProviders.min.mjs +0 -2
- package/dist/esm/utilities/authProviders.min.mjs.map +0 -1
- package/dist/esm/utilities/authProviders.mjs +0 -53
- package/dist/esm/utilities/authProviders.mjs.map +0 -1
- package/dist/esm/utilities/hash.min.mjs +0 -2
- package/dist/esm/utilities/hash.min.mjs.map +0 -1
- package/dist/esm/utilities/hash.mjs +0 -17
- package/dist/esm/utilities/hash.mjs.map +0 -1
- package/dist/esm/utilities/json.min.mjs +0 -2
- package/dist/esm/utilities/json.min.mjs.map +0 -1
- package/dist/esm/utilities/json.mjs +0 -16
- package/dist/esm/utilities/json.mjs.map +0 -1
- package/dist/esm/utilities/media.min.mjs +0 -2
- package/dist/esm/utilities/media.min.mjs.map +0 -1
- package/dist/esm/utilities/media.mjs +0 -13
- package/dist/esm/utilities/media.mjs.map +0 -1
- package/dist/esm/utilities/random.min.mjs +0 -2
- package/dist/esm/utilities/random.min.mjs.map +0 -1
- package/dist/esm/utilities/random.mjs +0 -12
- package/dist/esm/utilities/random.mjs.map +0 -1
- package/dist/esm/utilities/retry.min.mjs +0 -2
- package/dist/esm/utilities/retry.min.mjs.map +0 -1
- package/dist/esm/utilities/retry.mjs +0 -14
- package/dist/esm/utilities/retry.mjs.map +0 -1
- package/dist/esm/validations/valleyed.min.mjs +0 -2
- package/dist/esm/validations/valleyed.min.mjs.map +0 -1
- package/dist/esm/validations/valleyed.mjs +0 -43
- package/dist/esm/validations/valleyed.mjs.map +0 -1
- package/dist/types/audit/events.js +0 -100
- package/dist/types/audit/index.d.ts +0 -44
- package/dist/types/audit/index.js +0 -1
- package/dist/types/cache/base.js +0 -5
- package/dist/types/cache/pipes.js +0 -15
- package/dist/types/cache/types/in-memory.js +0 -46
- package/dist/types/cache/types/redis.js +0 -54
- package/dist/types/db-C8YY1yTO.d.ts +0 -14
- package/dist/types/db-Dj1SGto0.d.ts +0 -24
- package/dist/types/dbs/base/changes.js +0 -35
- package/dist/types/dbs/base/core.js +0 -0
- package/dist/types/dbs/base/db.js +0 -13
- package/dist/types/dbs/base/types.js +0 -1
- package/dist/types/dbs/mongo/changes.js +0 -80
- package/dist/types/dbs/mongo/db.js +0 -224
- package/dist/types/dbs/mongo/query.js +0 -65
- package/dist/types/dbs/pipes.js +0 -103
- package/dist/types/errors/equippedError.js +0 -11
- package/dist/types/errors/requestError.js +0 -11
- package/dist/types/errors/types/badRequestError.js +0 -11
- package/dist/types/errors/types/notAuthenticatedError.js +0 -11
- package/dist/types/errors/types/notAuthorizedError.js +0 -11
- package/dist/types/errors/types/notFoundError.js +0 -11
- package/dist/types/errors/types/tokenExpired.js +0 -11
- package/dist/types/errors/types/validationError.js +0 -15
- package/dist/types/events/base.js +0 -5
- package/dist/types/events/pipes.js +0 -27
- package/dist/types/events/types/rabbitmq.js +0 -53
- package/dist/types/instance/hooks.js +0 -25
- package/dist/types/instance/settings.js +0 -56
- package/dist/types/jobs/pipes.js +0 -12
- package/dist/types/kafka-Cf-TUJgv.d.ts +0 -54
- package/dist/types/server/impls/base.js +0 -210
- package/dist/types/server/impls/express.js +0 -110
- package/dist/types/server/middlewares/index.js +0 -1
- package/dist/types/server/middlewares/requireAuthUser.js +0 -21
- package/dist/types/server/openapi.js +0 -190
- package/dist/types/server/pipes.js +0 -66
- package/dist/types/server/requests-auth-methods/apiKeys.js +0 -20
- package/dist/types/server/requests-auth-methods/base.js +0 -19
- package/dist/types/server/requests-auth-methods/index.js +0 -3
- package/dist/types/server/requests-auth-methods/jwt.js +0 -77
- package/dist/types/server/requests.js +0 -79
- package/dist/types/server/routes.js +0 -73
- package/dist/types/server/sockets.js +0 -125
- package/dist/types/server/types.js +0 -33
- package/dist/types/types/overrides.js +0 -0
- package/dist/types/utilities/authProviders.js +0 -52
- package/dist/types/utilities/hash.js +0 -16
- package/dist/types/utilities/json.js +0 -15
- package/dist/types/utilities/media.js +0 -12
- package/dist/types/utilities/random.js +0 -11
- package/dist/types/utilities/retry.js +0 -13
- package/dist/types/validations/valleyed.js +0 -42
- /package/dist/esm/{dbs/base/core.min.mjs.map → cache/adapters/redis/index.min.mjs.map} +0 -0
- /package/dist/esm/{dbs/base/core.mjs.map → cache/adapters/redis/index.mjs.map} +0 -0
- /package/dist/esm/{types/overrides.min.mjs.map → chunk-AQY7QVYI.min.mjs.map} +0 -0
- /package/dist/esm/{types/overrides.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/instance/settings.ts","/home/runner/work/equipped/equipped/dist/cjs/instance/settings.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/instance/settings.cjs","sourcesContent":["import { type ConditionalObjectKeys, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { InMemoryCache, RedisCache, redisConfigPipe } from '../cache'\nimport { MongoDb, mongoDbConfigPipe } from '../dbs'\nimport { KafkaEventBus, RabbitMQEventBus, kafkaConfigPipe, rabbitmqConfigPipe } from '../events'\nimport { RedisJob, redisJobsConfigPipe } from '../jobs'\nimport { ExpressServer, FastifyServer, serverConfigPipe } from '../server'\n\nexport const instanceSettingsPipe = () =>\n\tv.object({\n\t\tapp: v.object({\n\t\t\tname: v.string(),\n\t\t}),\n\t\tlog: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlevel: v.defaults(v.in(['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent'] as const), 'info'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tutils: v.defaults(\n\t\t\tv.object({\n\t\t\t\thashSaltRounds: v.defaults(v.number(), 10),\n\t\t\t\tpaginationDefaultLimit: v.defaults(v.number(), 100),\n\t\t\t\tmaxFileUploadSizeInMb: v.defaults(v.number(), 500),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t})\n\nexport type Settings = PipeOutput<ReturnType<typeof instanceSettingsPipe>>\nexport type SettingsInput = ConditionalObjectKeys<PipeInput<ReturnType<typeof instanceSettingsPipe>>>\n\nexport type CacheTypes = {\n\t'in-memory': InMemoryCache\n\tredis: RedisCache\n}\n\nexport const cachePipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\t'in-memory': v.object({ type: v.is('in-memory' as const) }).pipe(() => new InMemoryCache()),\n\t\tredis: v\n\t\t\t.merge(redisConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisCache(config)),\n\t})\n\nexport type JobTypes = {\n\tredis: RedisJob\n}\n\nexport const jobsPipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\tredis: v\n\t\t\t.merge(redisJobsConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisJob(config)),\n\t})\n\nexport type EventBusTypes = {\n\tkafka: KafkaEventBus\n\trabbitmq: RabbitMQEventBus\n}\n\nexport const eventBusPipe = () =>\n\tv.discriminate((e: any) => e?.type, {\n\t\tkafka: v\n\t\t\t.merge(kafkaConfigPipe(), v.object({ type: v.is('kafka' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new KafkaEventBus(config)),\n\t\trabbitmq: v\n\t\t\t.merge(rabbitmqConfigPipe(), v.object({ type: v.is('rabbitmq' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RabbitMQEventBus(config)),\n\t})\n\nexport type DbTypes = {\n\tmongo: MongoDb\n}\n\nexport const dbPipe = () =>\n\tv\n\t\t.object({\n\t\t\tdb: v.discriminate((e) => e?.type, {\n\t\t\t\tmongo: v.merge(mongoDbConfigPipe(), v.object({ type: v.is('mongo' as const) })),\n\t\t\t}),\n\t\t\tchanges: v.optional(\n\t\t\t\tv.object({\n\t\t\t\t\tdebeziumUrl: v.string(),\n\t\t\t\t\teventBus: v.instanceOf(KafkaEventBus),\n\t\t\t\t}),\n\t\t\t),\n\t\t})\n\t\t.pipe((config) => new MongoDb(config.db, { changes: config.changes }))\n\nexport type ServerTypes = {\n\texpress: ExpressServer\n\tfastify: FastifyServer\n}\n\nexport const serverTypePipe = () =>\n\tserverConfigPipe().pipe((config) => (config.type === 'express' ? new ExpressServer(config) : new FastifyServer(config)))\n",null]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _valleyed = require('valleyed');var _indexmincjs = require('../cache/index.min.cjs');var _indexmincjs3 = require('../dbs/index.min.cjs');var _indexmincjs5 = require('../events/index.min.cjs');var _indexmincjs7 = require('../jobs/index.min.cjs');var _indexmincjs9 = require('../server/index.min.cjs');const S=()=>_valleyed.v.object({app:_valleyed.v.object({name:_valleyed.v.string()}),log:_valleyed.v.defaults(_valleyed.v.object({level:_valleyed.v.defaults(_valleyed.v.in(["fatal","error","warn","info","debug","trace","silent"]),"info")}),{}),utils:_valleyed.v.defaults(_valleyed.v.object({hashSaltRounds:_valleyed.v.defaults(_valleyed.v.number(),10),paginationDefaultLimit:_valleyed.v.defaults(_valleyed.v.number(),100),maxFileUploadSizeInMb:_valleyed.v.defaults(_valleyed.v.number(),500)}),{})}),h= exports.cachePipe =()=>_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _ => _.type]),{"in-memory":_valleyed.v.object({type:_valleyed.v.is("in-memory")}).pipe(()=>new _indexmincjs.InMemoryCache),redis:_valleyed.v.merge(_indexmincjs.redisConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("redis")})).pipe(({type:t,...i})=>new (0, _indexmincjs.RedisCache)(i))}),k= exports.jobsPipe =()=>_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _2 => _2.type]),{redis:_valleyed.v.merge(_indexmincjs7.redisJobsConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("redis")})).pipe(({type:t,...i})=>new (0, _indexmincjs7.RedisJob)(i))}),w= exports.eventBusPipe =()=>_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _3 => _3.type]),{kafka:_valleyed.v.merge(_indexmincjs5.kafkaConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("kafka")})).pipe(({type:t,...i})=>new (0, _indexmincjs5.KafkaEventBus)(i)),rabbitmq:_valleyed.v.merge(_indexmincjs5.rabbitmqConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("rabbitmq")})).pipe(({type:t,...i})=>new (0, _indexmincjs5.RabbitMQEventBus)(i))}),R= exports.dbPipe =()=>_valleyed.v.object({db:_valleyed.v.discriminate(t=>_optionalChain([t, 'optionalAccess', _4 => _4.type]),{mongo:_valleyed.v.merge(_indexmincjs3.mongoDbConfigPipe.call(void 0, ),_valleyed.v.object({type:_valleyed.v.is("mongo")}))}),changes:_valleyed.v.optional(_valleyed.v.object({debeziumUrl:_valleyed.v.string(),eventBus:_valleyed.v.instanceOf(_indexmincjs5.KafkaEventBus)}))}).pipe(t=>new (0, _indexmincjs3.MongoDb)(t.db,{changes:t.changes})),T= exports.serverTypePipe =()=>_indexmincjs9.serverConfigPipe.call(void 0, ).pipe(t=>t.type==="express"?new (0, _indexmincjs9.ExpressServer)(t):new (0, _indexmincjs9.FastifyServer)(t));exports.cachePipe = h; exports.dbPipe = R; exports.eventBusPipe = w; exports.instanceSettingsPipe = S; exports.jobsPipe = k; exports.serverTypePipe = T;
|
|
2
|
-
//# sourceMappingURL=settings.min.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/instance/settings.ts"],"names":["redisJobsConfigPipe","v","cachePipe","_","e","config","kafkaConfigPipe","RabbitMQEventBus","dbPipe","mongoDbConfigPipe","KafkaEventBus","MongoDb","serverTypePipe","ExpressServer","FastifyServer"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/instance/settings.min.cjs","sourcesContent":["import { type ConditionalObjectKeys, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { InMemoryCache, RedisCache, redisConfigPipe } from '../cache'\nimport { MongoDb, mongoDbConfigPipe } from '../dbs'\nimport { KafkaEventBus, RabbitMQEventBus, kafkaConfigPipe, rabbitmqConfigPipe } from '../events'\nimport { RedisJob, redisJobsConfigPipe } from '../jobs'\nimport { ExpressServer, FastifyServer, serverConfigPipe } from '../server'\n\nexport const instanceSettingsPipe = () =>\n\tv.object({\n\t\tapp: v.object({\n\t\t\tname: v.string(),\n\t\t}),\n\t\tlog: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlevel: v.defaults(v.in(['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent'] as const), 'info'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tutils: v.defaults(\n\t\t\tv.object({\n\t\t\t\thashSaltRounds: v.defaults(v.number(), 10),\n\t\t\t\tpaginationDefaultLimit: v.defaults(v.number(), 100),\n\t\t\t\tmaxFileUploadSizeInMb: v.defaults(v.number(), 500),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t})\n\nexport type Settings = PipeOutput<ReturnType<typeof instanceSettingsPipe>>\nexport type SettingsInput = ConditionalObjectKeys<PipeInput<ReturnType<typeof instanceSettingsPipe>>>\n\nexport type CacheTypes = {\n\t'in-memory': InMemoryCache\n\tredis: RedisCache\n}\n\nexport const cachePipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\t'in-memory': v.object({ type: v.is('in-memory' as const) }).pipe(() => new InMemoryCache()),\n\t\tredis: v\n\t\t\t.merge(redisConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisCache(config)),\n\t})\n\nexport type JobTypes = {\n\tredis: RedisJob\n}\n\nexport const jobsPipe = () =>\n\tv.discriminate((e) => e?.type, {\n\t\tredis: v\n\t\t\t.merge(redisJobsConfigPipe(), v.object({ type: v.is('redis' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RedisJob(config)),\n\t})\n\nexport type EventBusTypes = {\n\tkafka: KafkaEventBus\n\trabbitmq: RabbitMQEventBus\n}\n\nexport const eventBusPipe = () =>\n\tv.discriminate((e: any) => e?.type, {\n\t\tkafka: v\n\t\t\t.merge(kafkaConfigPipe(), v.object({ type: v.is('kafka' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new KafkaEventBus(config)),\n\t\trabbitmq: v\n\t\t\t.merge(rabbitmqConfigPipe(), v.object({ type: v.is('rabbitmq' as const) }))\n\t\t\t.pipe(({ type: _, ...config }) => new RabbitMQEventBus(config)),\n\t})\n\nexport type DbTypes = {\n\tmongo: MongoDb\n}\n\nexport const dbPipe = () =>\n\tv\n\t\t.object({\n\t\t\tdb: v.discriminate((e) => e?.type, {\n\t\t\t\tmongo: v.merge(mongoDbConfigPipe(), v.object({ type: v.is('mongo' as const) })),\n\t\t\t}),\n\t\t\tchanges: v.optional(\n\t\t\t\tv.object({\n\t\t\t\t\tdebeziumUrl: v.string(),\n\t\t\t\t\teventBus: v.instanceOf(KafkaEventBus),\n\t\t\t\t}),\n\t\t\t),\n\t\t})\n\t\t.pipe((config) => new MongoDb(config.db, { changes: config.changes }))\n\nexport type ServerTypes = {\n\texpress: ExpressServer\n\tfastify: FastifyServer\n}\n\nexport const serverTypePipe = () =>\n\tserverConfigPipe().pipe((config) => (config.type === 'express' ? new ExpressServer(config) : new FastifyServer(config)))\n"]}
|
package/dist/cjs/jobs/pipes.cjs
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');
|
|
2
|
-
var _indexcjs = require('../cache/index.cjs');
|
|
3
|
-
const redisJobsConfigPipe = () => _valleyed.v.meta(
|
|
4
|
-
_valleyed.v.object({
|
|
5
|
-
redisConfig: _indexcjs.redisConfigPipe.call(void 0, ),
|
|
6
|
-
queueName: _valleyed.v.string()
|
|
7
|
-
}),
|
|
8
|
-
{ title: "Redis Jobs Config", $refId: "RedisJobsConfig" }
|
|
9
|
-
);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
exports.redisJobsConfigPipe = redisJobsConfigPipe;
|
|
13
|
-
//# sourceMappingURL=pipes.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/jobs/pipes.ts","/home/runner/work/equipped/equipped/dist/cjs/jobs/pipes.cjs"],"names":[],"mappings":"AAAA,6GAAmC;AAEnC,8CAAgC;AAEzB,MAAM,oBAAA,EAAsB,CAAA,EAAA,GAClC,WAAA,CAAE,IAAA;AAAA,EACD,WAAA,CAAE,MAAA,CAAO;AAAA,IACR,WAAA,EAAa,uCAAA,CAAgB;AAAA,IAC7B,SAAA,EAAW,WAAA,CAAE,MAAA,CAAO;AAAA,EACrB,CAAC,CAAA;AAAA,EACD,EAAE,KAAA,EAAO,mBAAA,EAAqB,MAAA,EAAQ,kBAAkB;AACzD,CAAA;ACFD;AACE;AACF,kDAAC","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/pipes.cjs","sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { redisConfigPipe } from '../cache'\n\nexport const redisJobsConfigPipe = () =>\n\tv.meta(\n\t\tv.object({\n\t\t\tredisConfig: redisConfigPipe(),\n\t\t\tqueueName: v.string(),\n\t\t}),\n\t\t{ title: 'Redis Jobs Config', $refId: 'RedisJobsConfig' },\n\t)\n\nexport type RedisJobConfig = PipeOutput<ReturnType<typeof redisJobsConfigPipe>>\n",null]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');var _indexmincjs = require('../cache/index.min.cjs');const p=()=>_valleyed.v.meta(_valleyed.v.object({redisConfig:_indexmincjs.redisConfigPipe.call(void 0, ),queueName:_valleyed.v.string()}),{title:"Redis Jobs Config",$refId:"RedisJobsConfig"});exports.redisJobsConfigPipe = p;
|
|
2
|
-
//# sourceMappingURL=pipes.min.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/jobs/pipes.ts"],"names":["redisConfigPipe","v"],"mappings":"AAAA,6GAAmC,qDAKhC,MACC,CAAA,CAAA,CAAA,CAAA,EAAA,WAAO,CACR,IAAA,CAAA,WAAA,CAAA,MAAaA,CAAgB,CAAA,WAClBC,CAAAA,0CAAE,CAAA,CAAA,SAEZ,CAAA,WAAA,CAAA,MAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,mBAA6B,CAAA,MAAA,CAAA,iBACvC,CAAA,CAAA,CAAA,gCAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/pipes.min.cjs","sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { redisConfigPipe } from '../cache'\n\nexport const redisJobsConfigPipe = () =>\n\tv.meta(\n\t\tv.object({\n\t\t\tredisConfig: redisConfigPipe(),\n\t\t\tqueueName: v.string(),\n\t\t}),\n\t\t{ title: 'Redis Jobs Config', $refId: 'RedisJobsConfig' },\n\t)\n\nexport type RedisJobConfig = PipeOutput<ReturnType<typeof redisJobsConfigPipe>>\n"]}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _bullmq = require('bullmq');
|
|
2
|
-
var _rediscjs = require('../../cache/types/redis.cjs');
|
|
3
|
-
var _indexcjs = require('../../instance/index.cjs');
|
|
4
|
-
var _indexcjs3 = require('../../utilities/index.cjs');
|
|
5
|
-
var JobNames = /* @__PURE__ */ ((JobNames2) => {
|
|
6
|
-
JobNames2["CronJob"] = "CronJob";
|
|
7
|
-
JobNames2["RepeatableJob"] = "RepeatableJob";
|
|
8
|
-
JobNames2["DelayedJob"] = "DelayedJob";
|
|
9
|
-
return JobNames2;
|
|
10
|
-
})(JobNames || {});
|
|
11
|
-
class RedisJob {
|
|
12
|
-
#queue;
|
|
13
|
-
#callbacks = {};
|
|
14
|
-
#crons = [];
|
|
15
|
-
constructor(config) {
|
|
16
|
-
const redisCache = new (0, _rediscjs.RedisCache)(config.redisConfig, {
|
|
17
|
-
maxRetriesPerRequest: null,
|
|
18
|
-
enableReadyCheck: false
|
|
19
|
-
});
|
|
20
|
-
const queueName = _indexcjs.Instance.get().getScopedName(config.queueName);
|
|
21
|
-
this.#queue = new (0, _bullmq.Queue)(queueName, { connection: redisCache.client.options, skipVersionCheck: true });
|
|
22
|
-
const worker = new (0, _bullmq.Worker)(
|
|
23
|
-
queueName,
|
|
24
|
-
async (job) => {
|
|
25
|
-
switch (job.name) {
|
|
26
|
-
case "DelayedJob" /* DelayedJob */:
|
|
27
|
-
return _optionalChain([this, 'access', _ => _.#callbacks, 'access', _2 => _2.onDelayed, 'optionalCall', _3 => _3(job.data)]);
|
|
28
|
-
case "CronJob" /* CronJob */:
|
|
29
|
-
return _optionalChain([this, 'access', _4 => _4.#callbacks, 'access', _5 => _5.onCron, 'optionalCall', _6 => _6(job.data.type)]);
|
|
30
|
-
case "RepeatableJob" /* RepeatableJob */:
|
|
31
|
-
return _optionalChain([this, 'access', _7 => _7.#callbacks, 'access', _8 => _8.onRepeatable, 'optionalCall', _9 => _9(job.data)]);
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
{ connection: redisCache.client.options, autorun: false, skipVersionCheck: true }
|
|
35
|
-
);
|
|
36
|
-
_indexcjs.Instance.on(
|
|
37
|
-
"start",
|
|
38
|
-
async () => {
|
|
39
|
-
await this.#cleanup();
|
|
40
|
-
await Promise.all(this.#crons.map(({ cron, name }) => this.#addCron(name, cron)));
|
|
41
|
-
worker.run();
|
|
42
|
-
},
|
|
43
|
-
10
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
set callbacks(callbacks) {
|
|
47
|
-
this.#callbacks = callbacks;
|
|
48
|
-
}
|
|
49
|
-
set crons(crons) {
|
|
50
|
-
this.#crons = crons;
|
|
51
|
-
}
|
|
52
|
-
static #getNewId() {
|
|
53
|
-
return [Date.now(), _indexcjs3.Random.string()].join("_");
|
|
54
|
-
}
|
|
55
|
-
async addDelayed(data, delayInMs) {
|
|
56
|
-
const job = await this.#queue.add("DelayedJob" /* DelayedJob */, data, {
|
|
57
|
-
jobId: RedisJob.#getNewId(),
|
|
58
|
-
delay: delayInMs,
|
|
59
|
-
removeOnComplete: true,
|
|
60
|
-
backoff: 1e3,
|
|
61
|
-
attempts: 3
|
|
62
|
-
});
|
|
63
|
-
return job.id.toString();
|
|
64
|
-
}
|
|
65
|
-
async addRepeatable(data, cron, tz) {
|
|
66
|
-
const job = await this.#queue.add("RepeatableJob" /* RepeatableJob */, data, {
|
|
67
|
-
jobId: RedisJob.#getNewId(),
|
|
68
|
-
repeat: { pattern: cron, ...tz ? { tz } : {} },
|
|
69
|
-
removeOnComplete: true,
|
|
70
|
-
backoff: 1e3,
|
|
71
|
-
attempts: 3
|
|
72
|
-
});
|
|
73
|
-
return _nullishCoalesce(_optionalChain([job, 'access', _10 => _10.opts, 'optionalAccess', _11 => _11.repeat, 'optionalAccess', _12 => _12.key]), () => ( ""));
|
|
74
|
-
}
|
|
75
|
-
async removeDelayed(jobId) {
|
|
76
|
-
const job = await this.#queue.getJob(jobId);
|
|
77
|
-
if (job) await job.remove();
|
|
78
|
-
}
|
|
79
|
-
async retryAllFailedJobs() {
|
|
80
|
-
const failedJobs = await this.#queue.getFailed();
|
|
81
|
-
await Promise.all(failedJobs.map((job) => job.retry()));
|
|
82
|
-
}
|
|
83
|
-
async #addCron(type, cron) {
|
|
84
|
-
const job = await this.#queue.add(
|
|
85
|
-
"CronJob" /* CronJob */,
|
|
86
|
-
{ type },
|
|
87
|
-
{
|
|
88
|
-
jobId: RedisJob.#getNewId(),
|
|
89
|
-
repeat: { pattern: cron },
|
|
90
|
-
removeOnComplete: true,
|
|
91
|
-
backoff: 1e3,
|
|
92
|
-
attempts: 3
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
return job.id.toString();
|
|
96
|
-
}
|
|
97
|
-
async #cleanup() {
|
|
98
|
-
await this.retryAllFailedJobs();
|
|
99
|
-
const repeatableJobs = await this.#queue.getJobSchedulers();
|
|
100
|
-
await Promise.all(repeatableJobs.map((job) => this.#queue.removeJobScheduler(job.key)));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
exports.RedisJob = RedisJob;
|
|
106
|
-
//# sourceMappingURL=redis.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/jobs/types/redis.ts","/home/runner/work/equipped/equipped/dist/cjs/jobs/types/redis.cjs"],"names":["JobNames"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/types/redis.cjs","sourcesContent":["import { Queue, Worker } from 'bullmq'\n\nimport { RedisCache } from '../../cache/types/redis'\nimport { Instance } from '../../instance'\nimport type { CronTypes, DelayedJobs, RepeatableJobs } from '../../types'\nimport { Random } from '../../utilities'\nimport type { RedisJobConfig } from '../pipes'\n\nenum JobNames {\n\tCronJob = 'CronJob',\n\tRepeatableJob = 'RepeatableJob',\n\tDelayedJob = 'DelayedJob',\n}\n\ntype Cron = CronTypes[keyof CronTypes]\ntype DelayedJobEvent = DelayedJobs[keyof DelayedJobs]\ntype RepeatableJobEvent = RepeatableJobs[keyof RepeatableJobs]\ntype DelayedJobCallback = (data: DelayedJobEvent) => Promise<void> | void\ntype CronJobCallback = (name: CronTypes[keyof CronTypes]) => Promise<void> | void\ntype RepeatableJobCallback = (data: RepeatableJobEvent) => Promise<void> | void\n\ntype JobCallbacks = { onDelayed?: DelayedJobCallback; onCron?: CronJobCallback; onRepeatable?: RepeatableJobCallback }\n\nexport class RedisJob {\n\t#queue: Queue\n\t#callbacks: JobCallbacks = {}\n\t#crons: { name: Cron; cron: string }[] = []\n\n\tconstructor(config: RedisJobConfig) {\n\t\tconst redisCache = new RedisCache(config.redisConfig, {\n\t\t\tmaxRetriesPerRequest: null,\n\t\t\tenableReadyCheck: false,\n\t\t})\n\t\tconst queueName = Instance.get().getScopedName(config.queueName)\n\t\tthis.#queue = new Queue(queueName, { connection: redisCache.client.options, skipVersionCheck: true })\n\t\tconst worker = new Worker(\n\t\t\tqueueName,\n\t\t\tasync (job) => {\n\t\t\t\tswitch (job.name) {\n\t\t\t\t\tcase JobNames.DelayedJob:\n\t\t\t\t\t\treturn (this.#callbacks.onDelayed as any)?.(job.data)\n\t\t\t\t\tcase JobNames.CronJob:\n\t\t\t\t\t\treturn (this.#callbacks.onCron as any)?.(job.data.type)\n\t\t\t\t\tcase JobNames.RepeatableJob:\n\t\t\t\t\t\treturn (this.#callbacks.onRepeatable as any)?.(job.data)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ connection: redisCache.client.options, autorun: false, skipVersionCheck: true },\n\t\t)\n\n\t\tInstance.on(\n\t\t\t'start',\n\t\t\tasync () => {\n\t\t\t\tawait this.#cleanup()\n\t\t\t\tawait Promise.all(this.#crons.map(({ cron, name }) => this.#addCron(name, cron)))\n\t\t\t\tworker.run()\n\t\t\t},\n\t\t\t10,\n\t\t)\n\t}\n\n\tset callbacks(callbacks: JobCallbacks) {\n\t\tthis.#callbacks = callbacks\n\t}\n\n\tset crons(crons: { name: Cron; cron: string }[]) {\n\t\tthis.#crons = crons\n\t}\n\n\tstatic #getNewId() {\n\t\treturn [Date.now(), Random.string()].join('_')\n\t}\n\n\tasync addDelayed(data: DelayedJobEvent, delayInMs: number): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.DelayedJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\tdelay: delayInMs,\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.id!.toString()\n\t}\n\n\tasync addRepeatable(data: RepeatableJobEvent, cron: string, tz?: string): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.RepeatableJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\trepeat: { pattern: cron, ...(tz ? { tz } : {}) },\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.opts?.repeat?.key ?? ''\n\t}\n\n\tasync removeDelayed(jobId: string) {\n\t\tconst job = await this.#queue.getJob(jobId)\n\t\tif (job) await job.remove()\n\t}\n\n\tasync retryAllFailedJobs() {\n\t\tconst failedJobs = await this.#queue.getFailed()\n\t\tawait Promise.all(failedJobs.map((job) => job.retry()))\n\t}\n\n\tasync #addCron(type: Cron | string, cron: string): Promise<string> {\n\t\tconst job = await this.#queue.add(\n\t\t\tJobNames.CronJob,\n\t\t\t{ type },\n\t\t\t{\n\t\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\t\trepeat: { pattern: cron },\n\t\t\t\tremoveOnComplete: true,\n\t\t\t\tbackoff: 1000,\n\t\t\t\tattempts: 3,\n\t\t\t},\n\t\t)\n\t\treturn job.id!.toString()\n\t}\n\n\tasync #cleanup() {\n\t\tawait this.retryAllFailedJobs()\n\t\tconst repeatableJobs = await this.#queue.getJobSchedulers()\n\t\tawait Promise.all(repeatableJobs.map((job) => this.#queue.removeJobScheduler(job.key)))\n\t}\n}\n",null]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _bullmq = require('bullmq');var _redismincjs = require('../../cache/types/redis.min.cjs');var _indexmincjs = require('../../instance/index.min.cjs');var _indexmincjs3 = require('../../utilities/index.min.cjs');var d=(t=>(t.CronJob="CronJob",t.RepeatableJob="RepeatableJob",t.DelayedJob="DelayedJob",t))(d||{});class n{#e;#a={};#o=[];constructor(e){const a=new (0, _redismincjs.RedisCache)(e.redisConfig,{maxRetriesPerRequest:null,enableReadyCheck:!1}),t=_indexmincjs.Instance.get().getScopedName(e.queueName);this.#e=new (0, _bullmq.Queue)(t,{connection:a.client.options,skipVersionCheck:!0});const s=new (0, _bullmq.Worker)(t,async o=>{switch(o.name){case"DelayedJob":return _optionalChain([this, 'access', _ => _.#a, 'access', _2 => _2.onDelayed, 'optionalCall', _3 => _3(o.data)]);case"CronJob":return _optionalChain([this, 'access', _4 => _4.#a, 'access', _5 => _5.onCron, 'optionalCall', _6 => _6(o.data.type)]);case"RepeatableJob":return _optionalChain([this, 'access', _7 => _7.#a, 'access', _8 => _8.onRepeatable, 'optionalCall', _9 => _9(o.data)])}},{connection:a.client.options,autorun:!1,skipVersionCheck:!0});_indexmincjs.Instance.on("start",async()=>{await this.#s(),await Promise.all(this.#o.map(({cron:o,name:i})=>this.#n(i,o))),s.run()},10)}set callbacks(e){this.#a=e}set crons(e){this.#o=e}static#t(){return[Date.now(),_indexmincjs3.Random.string()].join("_")}async addDelayed(e,a){return(await this.#e.add("DelayedJob",e,{jobId:n.#t(),delay:a,removeOnComplete:!0,backoff:1e3,attempts:3})).id.toString()}async addRepeatable(e,a,t){returnawait _asyncNullishCoalesce(await _asyncOptionalChain([(await this.#e.add("RepeatableJob",e,{jobId:n.#t(),repeat:{pattern:a,...t?{tz:t}:{}},removeOnComplete:!0,backoff:1e3,attempts:3})), 'access', async _10 => _10.opts, 'optionalAccess', async _11 => _11.repeat, 'optionalAccess', async _12 => _12.key]), async () => (""))}async removeDelayed(e){const a=await this.#e.getJob(e);a&&await a.remove()}async retryAllFailedJobs(){const e=await this.#e.getFailed();await Promise.all(e.map(a=>a.retry()))}async#n(e,a){return(await this.#e.add("CronJob",{type:e},{jobId:n.#t(),repeat:{pattern:a},removeOnComplete:!0,backoff:1e3,attempts:3})).id.toString()}async#s(){await this.retryAllFailedJobs();const e=await this.#e.getJobSchedulers();await Promise.all(e.map(a=>this.#e.removeJobScheduler(a.key)))}}exports.RedisJob = n;
|
|
2
|
-
//# sourceMappingURL=redis.min.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/jobs/types/redis.ts"],"names":["config","redisCache","RedisCache","#queue","Queue","job","#callbacks","#cleanup","#crons","cron","#addCron","name","worker","callbacks","crons","#getNewId","Random","data","delayInMs","tz","jobId","failedJobs","RedisJob","repeatableJobs"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/jobs/types/redis.min.cjs","sourcesContent":["import { Queue, Worker } from 'bullmq'\n\nimport { RedisCache } from '../../cache/types/redis'\nimport { Instance } from '../../instance'\nimport type { CronTypes, DelayedJobs, RepeatableJobs } from '../../types'\nimport { Random } from '../../utilities'\nimport type { RedisJobConfig } from '../pipes'\n\nenum JobNames {\n\tCronJob = 'CronJob',\n\tRepeatableJob = 'RepeatableJob',\n\tDelayedJob = 'DelayedJob',\n}\n\ntype Cron = CronTypes[keyof CronTypes]\ntype DelayedJobEvent = DelayedJobs[keyof DelayedJobs]\ntype RepeatableJobEvent = RepeatableJobs[keyof RepeatableJobs]\ntype DelayedJobCallback = (data: DelayedJobEvent) => Promise<void> | void\ntype CronJobCallback = (name: CronTypes[keyof CronTypes]) => Promise<void> | void\ntype RepeatableJobCallback = (data: RepeatableJobEvent) => Promise<void> | void\n\ntype JobCallbacks = { onDelayed?: DelayedJobCallback; onCron?: CronJobCallback; onRepeatable?: RepeatableJobCallback }\n\nexport class RedisJob {\n\t#queue: Queue\n\t#callbacks: JobCallbacks = {}\n\t#crons: { name: Cron; cron: string }[] = []\n\n\tconstructor(config: RedisJobConfig) {\n\t\tconst redisCache = new RedisCache(config.redisConfig, {\n\t\t\tmaxRetriesPerRequest: null,\n\t\t\tenableReadyCheck: false,\n\t\t})\n\t\tconst queueName = Instance.get().getScopedName(config.queueName)\n\t\tthis.#queue = new Queue(queueName, { connection: redisCache.client.options, skipVersionCheck: true })\n\t\tconst worker = new Worker(\n\t\t\tqueueName,\n\t\t\tasync (job) => {\n\t\t\t\tswitch (job.name) {\n\t\t\t\t\tcase JobNames.DelayedJob:\n\t\t\t\t\t\treturn (this.#callbacks.onDelayed as any)?.(job.data)\n\t\t\t\t\tcase JobNames.CronJob:\n\t\t\t\t\t\treturn (this.#callbacks.onCron as any)?.(job.data.type)\n\t\t\t\t\tcase JobNames.RepeatableJob:\n\t\t\t\t\t\treturn (this.#callbacks.onRepeatable as any)?.(job.data)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ connection: redisCache.client.options, autorun: false, skipVersionCheck: true },\n\t\t)\n\n\t\tInstance.on(\n\t\t\t'start',\n\t\t\tasync () => {\n\t\t\t\tawait this.#cleanup()\n\t\t\t\tawait Promise.all(this.#crons.map(({ cron, name }) => this.#addCron(name, cron)))\n\t\t\t\tworker.run()\n\t\t\t},\n\t\t\t10,\n\t\t)\n\t}\n\n\tset callbacks(callbacks: JobCallbacks) {\n\t\tthis.#callbacks = callbacks\n\t}\n\n\tset crons(crons: { name: Cron; cron: string }[]) {\n\t\tthis.#crons = crons\n\t}\n\n\tstatic #getNewId() {\n\t\treturn [Date.now(), Random.string()].join('_')\n\t}\n\n\tasync addDelayed(data: DelayedJobEvent, delayInMs: number): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.DelayedJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\tdelay: delayInMs,\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.id!.toString()\n\t}\n\n\tasync addRepeatable(data: RepeatableJobEvent, cron: string, tz?: string): Promise<string> {\n\t\tconst job = await this.#queue.add(JobNames.RepeatableJob, data, {\n\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\trepeat: { pattern: cron, ...(tz ? { tz } : {}) },\n\t\t\tremoveOnComplete: true,\n\t\t\tbackoff: 1000,\n\t\t\tattempts: 3,\n\t\t})\n\t\treturn job.opts?.repeat?.key ?? ''\n\t}\n\n\tasync removeDelayed(jobId: string) {\n\t\tconst job = await this.#queue.getJob(jobId)\n\t\tif (job) await job.remove()\n\t}\n\n\tasync retryAllFailedJobs() {\n\t\tconst failedJobs = await this.#queue.getFailed()\n\t\tawait Promise.all(failedJobs.map((job) => job.retry()))\n\t}\n\n\tasync #addCron(type: Cron | string, cron: string): Promise<string> {\n\t\tconst job = await this.#queue.add(\n\t\t\tJobNames.CronJob,\n\t\t\t{ type },\n\t\t\t{\n\t\t\t\tjobId: RedisJob.#getNewId(),\n\t\t\t\trepeat: { pattern: cron },\n\t\t\t\tremoveOnComplete: true,\n\t\t\t\tbackoff: 1000,\n\t\t\t\tattempts: 3,\n\t\t\t},\n\t\t)\n\t\treturn job.id!.toString()\n\t}\n\n\tasync #cleanup() {\n\t\tawait this.retryAllFailedJobs()\n\t\tconst repeatableJobs = await this.#queue.getJobSchedulers()\n\t\tawait Promise.all(repeatableJobs.map((job) => this.#queue.removeJobScheduler(job.key)))\n\t}\n}\n"]}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('@fastify/cors');
|
|
2
|
-
require('cors');
|
|
3
|
-
var _socketio = require('socket.io');
|
|
4
|
-
var _supertest = require('supertest'); var _supertest2 = _interopRequireDefault(_supertest);
|
|
5
|
-
var _valleyed = require('valleyed');
|
|
6
|
-
var _indexcjs = require('../../errors/index.cjs');
|
|
7
|
-
var _indexcjs3 = require('../../instance/index.cjs');
|
|
8
|
-
var _indexcjs5 = require('../../validations/index.cjs');
|
|
9
|
-
var _valleyedcjs = require('../../validations/valleyed.cjs');
|
|
10
|
-
var _openapicjs = require('../openapi.cjs');
|
|
11
|
-
var _requestscjs = require('../requests.cjs');
|
|
12
|
-
var _routescjs = require('../routes.cjs');
|
|
13
|
-
var _socketscjs = require('../sockets.cjs');
|
|
14
|
-
var _typescjs = require('../types.cjs');
|
|
15
|
-
const errorsSchemas = Object.entries(_typescjs.StatusCodes).filter(([, value]) => value > 399).map(([key, value]) => ({
|
|
16
|
-
status: value,
|
|
17
|
-
contentType: "application/json",
|
|
18
|
-
pipe: _valleyed.v.meta(_valleyed.v.array(_valleyed.v.object({ message: _valleyed.v.string(), field: _valleyed.v.optional(_valleyed.v.string()) })), {
|
|
19
|
-
$refId: `Errors.${key}Response`,
|
|
20
|
-
description: `${key} Response`
|
|
21
|
-
})
|
|
22
|
-
}));
|
|
23
|
-
class Server {
|
|
24
|
-
constructor(server, config, implementations) {
|
|
25
|
-
this.config = config;
|
|
26
|
-
this.implementations = implementations;
|
|
27
|
-
this.server = server;
|
|
28
|
-
this.#openapi = new (0, _openapicjs.OpenApi)(config);
|
|
29
|
-
const socketInstance = new (0, _socketio.Server)(server, { cors: this.cors });
|
|
30
|
-
this.socket = new (0, _socketscjs.SocketEmitter)(socketInstance, config);
|
|
31
|
-
this.addRouter(this.#openapi.router());
|
|
32
|
-
}
|
|
33
|
-
#queue = [];
|
|
34
|
-
#routesByKey = /* @__PURE__ */ new Map();
|
|
35
|
-
#openapi;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
get cors() {
|
|
39
|
-
return {
|
|
40
|
-
origin: _optionalChain([this, 'access', _2 => _2.config, 'access', _3 => _3.cors, 'optionalAccess', _4 => _4.origin]) ? (_, cb) => cb(null, true) : _optionalChain([this, 'access', _5 => _5.config, 'access', _6 => _6.cors, 'optionalAccess', _7 => _7.origin]),
|
|
41
|
-
methods: (_nullishCoalesce(_optionalChain([this, 'access', _8 => _8.config, 'access', _9 => _9.cors, 'optionalAccess', _10 => _10.methods]), () => ( Object.values(_typescjs.Methods)))).filter((m) => m !== _typescjs.Methods.options).map((m) => m.toUpperCase()),
|
|
42
|
-
credentials: _optionalChain([this, 'access', _11 => _11.config, 'access', _12 => _12.cors, 'optionalAccess', _13 => _13.credentials])
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
addRouter(...routers) {
|
|
46
|
-
routers.map((router) => router.routes).forEach((routes) => this.addRoute(...routes));
|
|
47
|
-
}
|
|
48
|
-
addRoute(...routes) {
|
|
49
|
-
routes.forEach((route) => {
|
|
50
|
-
this.#queue.push(async () => {
|
|
51
|
-
const { method, path, schema = {}, onError, middlewares = [], responseMiddlewares = [] } = route;
|
|
52
|
-
const key = `(${method.toUpperCase()}) ${this.#openapi.cleanPath(path)}`;
|
|
53
|
-
if (this.#routesByKey.get(key))
|
|
54
|
-
throw new (0, _indexcjs.EquippedError)(`Route key ${key} already registered. All route keys must be unique`, { route, key });
|
|
55
|
-
middlewares.forEach((m) => _optionalChain([m, 'access', _14 => _14.onSetup, 'optionalCall', _15 => _15(route)]));
|
|
56
|
-
_optionalChain([onError, 'optionalAccess', _16 => _16.onSetup, 'optionalCall', _17 => _17(route)]);
|
|
57
|
-
responseMiddlewares.forEach((m) => _optionalChain([m, 'access', _18 => _18.onSetup, 'optionalCall', _19 => _19(route)]));
|
|
58
|
-
const { validateRequest, validateResponse, jsonSchema } = this.#resolveSchema(method, schema);
|
|
59
|
-
this.#routesByKey.set(key, true);
|
|
60
|
-
await this.#openapi.register(route, jsonSchema);
|
|
61
|
-
this.implementations.registerRoute(method, this.#openapi.cleanPath(path), async (req, res) => {
|
|
62
|
-
const request = await validateRequest(await this.implementations.parseRequest(req));
|
|
63
|
-
try {
|
|
64
|
-
for (const middleware of middlewares) await middleware.cb(request);
|
|
65
|
-
const rawRes = await route.handler(request);
|
|
66
|
-
const response = rawRes instanceof _requestscjs.Response ? rawRes : new (0, _requestscjs.Response)({ body: rawRes, status: _typescjs.StatusCodes.Ok, headers: {}, piped: false });
|
|
67
|
-
for (const middleware of responseMiddlewares) await middleware.cb(request, response);
|
|
68
|
-
return await this.implementations.handleResponse(res, await validateResponse(response));
|
|
69
|
-
} catch (error) {
|
|
70
|
-
if (_optionalChain([onError, 'optionalAccess', _20 => _20.cb])) {
|
|
71
|
-
const rawResponse = await onError.cb(request, error);
|
|
72
|
-
const response = rawResponse instanceof _requestscjs.Response ? rawResponse : new (0, _requestscjs.Response)({ body: rawResponse, status: _typescjs.StatusCodes.BadRequest, headers: {} });
|
|
73
|
-
return await this.implementations.handleResponse(res, await validateResponse(response));
|
|
74
|
-
}
|
|
75
|
-
throw error;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
#resolveSchema(method, schema) {
|
|
82
|
-
const defaultStatusCode = _nullishCoalesce(_optionalChain([schema, 'optionalAccess', _21 => _21.defaultStatusCode]), () => ( _typescjs.StatusCodes.Ok));
|
|
83
|
-
const defaultContentType = _nullishCoalesce(_optionalChain([schema, 'optionalAccess', _22 => _22.defaultContentType]), () => ( "application/json"));
|
|
84
|
-
let status = defaultStatusCode;
|
|
85
|
-
let contentType = defaultContentType;
|
|
86
|
-
const jsonSchema = { response: {}, request: {} };
|
|
87
|
-
const requestPipeDefs = {};
|
|
88
|
-
const responsePipeDefs = {};
|
|
89
|
-
const defs = [
|
|
90
|
-
{ key: "params", type: "request" },
|
|
91
|
-
{ key: "headers", type: "request" },
|
|
92
|
-
{ key: "cookies", type: "request" },
|
|
93
|
-
{ key: "query", type: "request" },
|
|
94
|
-
{ key: "body", type: "request", skip: ![_typescjs.Methods.post, _typescjs.Methods.put, _typescjs.Methods.patch].includes(method) },
|
|
95
|
-
{ key: "response", type: "response" },
|
|
96
|
-
{ key: "responseHeaders", type: "response" },
|
|
97
|
-
{ key: "responseCookies", type: "response" }
|
|
98
|
-
];
|
|
99
|
-
defs.forEach((def) => {
|
|
100
|
-
const pipe = _nullishCoalesce(schema[def.key], () => ( _valleyed.v.any()));
|
|
101
|
-
if (def.skip) return;
|
|
102
|
-
if (def.type === "request") {
|
|
103
|
-
requestPipeDefs[def.key] = pipe;
|
|
104
|
-
jsonSchema.request[def.key] = _valleyed.v.schema(pipe);
|
|
105
|
-
}
|
|
106
|
-
if (def.type === "response") {
|
|
107
|
-
const pipeRecords = errorsSchemas.concat({ status: defaultStatusCode, contentType, pipe });
|
|
108
|
-
responsePipeDefs[def.key] = _valleyed.v.any().pipe((input) => {
|
|
109
|
-
const p = _optionalChain([pipeRecords, 'access', _23 => _23.find, 'call', _24 => _24((r) => r.status === status), 'optionalAccess', _25 => _25.pipe]);
|
|
110
|
-
if (!p) throw _valleyed.PipeError.root(`schema not defined for status code: ${status}`, input);
|
|
111
|
-
return _valleyed.v.assert(p, input);
|
|
112
|
-
});
|
|
113
|
-
jsonSchema.response[def.key] = pipeRecords.map((record) => ({
|
|
114
|
-
status: record.status,
|
|
115
|
-
contentType: record.contentType,
|
|
116
|
-
schema: _valleyed.v.schema(record.pipe)
|
|
117
|
-
}));
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
const requestPipe = _valleyed.v.object(requestPipeDefs);
|
|
121
|
-
_valleyed.v.compile(requestPipe, { allErrors: true });
|
|
122
|
-
const responsePipe = _valleyed.v.object(responsePipeDefs);
|
|
123
|
-
_valleyed.v.compile(responsePipe, { allErrors: true });
|
|
124
|
-
const validateRequest = async (request) => {
|
|
125
|
-
if (!Object.keys(requestPipeDefs)) return request;
|
|
126
|
-
const validity = _valleyedcjs.requestLocalStorage.run(
|
|
127
|
-
request,
|
|
128
|
-
() => _valleyed.v.validate(requestPipe, {
|
|
129
|
-
params: request.params,
|
|
130
|
-
headers: request.headers,
|
|
131
|
-
query: request.query,
|
|
132
|
-
body: request.body,
|
|
133
|
-
cookies: request.cookies
|
|
134
|
-
})
|
|
135
|
-
);
|
|
136
|
-
if (!validity.valid) throw _indexcjs5.pipeErrorToValidationError.call(void 0, validity.error);
|
|
137
|
-
request.params = validity.value.params;
|
|
138
|
-
request.headers = validity.value.headers;
|
|
139
|
-
request.query = validity.value.query;
|
|
140
|
-
request.body = validity.value.body;
|
|
141
|
-
request.cookies = validity.value.cookies;
|
|
142
|
-
return request;
|
|
143
|
-
};
|
|
144
|
-
const validateResponse = async (response) => {
|
|
145
|
-
if (!Object.keys(responsePipeDefs)) return response;
|
|
146
|
-
status = response.status;
|
|
147
|
-
contentType = response.contentType;
|
|
148
|
-
const validity = _valleyedcjs.responseLocalStorage.run(
|
|
149
|
-
response,
|
|
150
|
-
() => _valleyed.v.validate(responsePipe, {
|
|
151
|
-
responseHeaders: response.headers,
|
|
152
|
-
responseCookies: Object.fromEntries(Object.entries(response.cookies).map(([key, val]) => [key, val.value])),
|
|
153
|
-
response: response.body
|
|
154
|
-
})
|
|
155
|
-
);
|
|
156
|
-
if (!validity.valid) throw _indexcjs5.pipeErrorToValidationError.call(void 0, validity.error);
|
|
157
|
-
response.body = validity.value.response;
|
|
158
|
-
response.headers = validity.value.responseHeaders;
|
|
159
|
-
response.cookieValues = validity.value.responseCookies;
|
|
160
|
-
return response;
|
|
161
|
-
};
|
|
162
|
-
return {
|
|
163
|
-
jsonSchema,
|
|
164
|
-
validateRequest,
|
|
165
|
-
validateResponse
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
test() {
|
|
169
|
-
return _supertest2.default.call(void 0, this.server);
|
|
170
|
-
}
|
|
171
|
-
async start() {
|
|
172
|
-
const port = this.config.port;
|
|
173
|
-
const instance = _indexcjs3.Instance.get();
|
|
174
|
-
const { app } = instance.settings;
|
|
175
|
-
if (this.config.healthPath)
|
|
176
|
-
this.addRoute({
|
|
177
|
-
method: _typescjs.Methods.get,
|
|
178
|
-
path: this.config.healthPath,
|
|
179
|
-
handler: async (req) => req.res({
|
|
180
|
-
body: `${instance.id}(${app.name}) service running`,
|
|
181
|
-
contentType: "text/plain"
|
|
182
|
-
})
|
|
183
|
-
});
|
|
184
|
-
await Promise.all(this.#queue.map((cb) => cb()));
|
|
185
|
-
this.implementations.registerNotFoundHandler(async (req) => {
|
|
186
|
-
const request = await this.implementations.parseRequest(req);
|
|
187
|
-
throw new (0, _indexcjs.NotFoundError)(`Route ${request.path} not found`);
|
|
188
|
-
});
|
|
189
|
-
this.implementations.registerErrorHandler(async (error, _, res) => {
|
|
190
|
-
if (!(error instanceof _indexcjs.EquippedError)) _indexcjs3.Instance.get().log.error({ error }, "Uncaught error in route handler");
|
|
191
|
-
const response = error instanceof _indexcjs.RequestError ? new (0, _requestscjs.Response)({
|
|
192
|
-
body: error.serializedErrors,
|
|
193
|
-
status: error.statusCode
|
|
194
|
-
}) : error instanceof _indexcjs.EquippedError ? new (0, _requestscjs.Response)({
|
|
195
|
-
body: [{ message: error.message }],
|
|
196
|
-
status: _typescjs.StatusCodes.BadRequest
|
|
197
|
-
}) : new (0, _requestscjs.Response)({
|
|
198
|
-
body: [{ message: "Something went wrong", data: error.message }],
|
|
199
|
-
status: _typescjs.StatusCodes.BadRequest
|
|
200
|
-
});
|
|
201
|
-
return await this.implementations.handleResponse(res, response);
|
|
202
|
-
});
|
|
203
|
-
const started = await this.implementations.start(port);
|
|
204
|
-
if (started) _indexcjs3.Instance.get().log.info(`${instance.id}(${app.name}) service listening on port ${port}`);
|
|
205
|
-
return started;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
exports.Server = Server;
|
|
211
|
-
//# sourceMappingURL=base.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/impls/base.ts","/home/runner/work/equipped/equipped/dist/cjs/server/impls/base.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/impls/base.cjs","sourcesContent":["import type http from 'node:http'\n\nimport { type FastifyCorsOptions } from '@fastify/cors'\nimport { type CorsOptions } from 'cors'\nimport { Server as SocketServer } from 'socket.io'\nimport supertest from 'supertest'\nimport { type Pipe, PipeError, v } from 'valleyed'\n\nimport { EquippedError, NotFoundError, RequestError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { pipeErrorToValidationError } from '../../validations'\nimport { requestLocalStorage, responseLocalStorage } from '../../validations/valleyed'\nimport { OpenApi, type OpenApiSchemaDef } from '../openapi'\nimport type { ServerConfig } from '../pipes'\nimport { type Request, Response } from '../requests'\nimport { Router } from '../routes'\nimport { SocketEmitter } from '../sockets'\nimport { Methods, type MethodsEnum, type Route, type RouteDef, StatusCodes } from '../types'\n\ntype RequestValidator = (req: Request<any>) => Promise<Request<any>>\ntype ResponseValidator = (res: Response<any>) => Promise<Response<any>>\n\nconst errorsSchemas = Object.entries(StatusCodes)\n\t.filter(([, value]) => value > 399)\n\t.map(([key, value]) => ({\n\t\tstatus: value,\n\t\tcontentType: 'application/json',\n\t\tpipe: v.meta(v.array(v.object({ message: v.string(), field: v.optional(v.string()) })), {\n\t\t\t$refId: `Errors.${key}Response`,\n\t\t\tdescription: `${key} Response`,\n\t\t}) as Pipe<any, any>,\n\t}))\n\nexport abstract class Server<Req = any, Res = any> {\n\t#queue: (() => void | Promise<void>)[] = []\n\t#routesByKey = new Map<string, boolean>()\n\t#openapi: OpenApi\n\tsocket: SocketEmitter\n\tprotected server: http.Server\n\tprotected get cors(): CorsOptions & FastifyCorsOptions {\n\t\treturn {\n\t\t\torigin: this.config.cors?.origin ? (_, cb) => cb(null, true) : this.config.cors?.origin,\n\t\t\tmethods: (this.config.cors?.methods ?? Object.values(Methods)).filter((m) => m !== Methods.options).map((m) => m.toUpperCase()),\n\t\t\tcredentials: this.config.cors?.credentials,\n\t\t}\n\t}\n\n\tconstructor(\n\t\tserver: http.Server,\n\t\tprivate config: ServerConfig,\n\t\tprivate implementations: {\n\t\t\tparseRequest: (req: Req) => Promise<Request<any>>\n\t\t\thandleResponse: (res: Res, response: Response<any>) => Promise<void>\n\t\t\tregisterRoute: (method: MethodsEnum, path: string, cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterErrorHandler: (cb: (error: Error, req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterNotFoundHandler: (cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tstart: (port: number) => Promise<boolean>\n\t\t},\n\t) {\n\t\tthis.server = server\n\t\tthis.#openapi = new OpenApi(config)\n\t\tconst socketInstance = new SocketServer(server, { cors: this.cors })\n\t\tthis.socket = new SocketEmitter(socketInstance, config)\n\t\tthis.addRouter(this.#openapi.router())\n\t}\n\n\taddRouter(...routers: Router<any>[]) {\n\t\trouters.map((router) => router.routes).forEach((routes) => this.addRoute(...routes))\n\t}\n\n\taddRoute<T extends RouteDef>(...routes: Route<T>[]) {\n\t\troutes.forEach((route) => {\n\t\t\tthis.#queue.push(async () => {\n\t\t\t\tconst { method, path, schema = {}, onError, middlewares = [], responseMiddlewares = [] } = route\n\n\t\t\t\tconst key = `(${method.toUpperCase()}) ${this.#openapi.cleanPath(path)}`\n\t\t\t\tif (this.#routesByKey.get(key))\n\t\t\t\t\tthrow new EquippedError(`Route key ${key} already registered. All route keys must be unique`, { route, key })\n\n\t\t\t\tmiddlewares.forEach((m) => m.onSetup?.(route as any))\n\t\t\t\tonError?.onSetup?.(route as any)\n\t\t\t\tresponseMiddlewares.forEach((m) => m.onSetup?.(route as any))\n\n\t\t\t\tconst { validateRequest, validateResponse, jsonSchema } = this.#resolveSchema(method, schema)\n\n\t\t\t\tthis.#routesByKey.set(key, true)\n\t\t\t\tawait this.#openapi.register(route, jsonSchema)\n\t\t\t\tthis.implementations.registerRoute(method, this.#openapi.cleanPath(path), async (req: Req, res: Res) => {\n\t\t\t\t\tconst request = await validateRequest(await this.implementations.parseRequest(req))\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (const middleware of middlewares) await middleware.cb(request)\n\t\t\t\t\t\tconst rawRes = await route.handler(request)\n\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\trawRes instanceof Response\n\t\t\t\t\t\t\t\t? rawRes\n\t\t\t\t\t\t\t\t: new Response({ body: rawRes, status: StatusCodes.Ok, headers: {}, piped: false })\n\t\t\t\t\t\tfor (const middleware of responseMiddlewares) await middleware.cb(request, response)\n\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (onError?.cb) {\n\t\t\t\t\t\t\tconst rawResponse = await onError.cb(request, error as Error)\n\t\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\t\trawResponse instanceof Response\n\t\t\t\t\t\t\t\t\t? rawResponse\n\t\t\t\t\t\t\t\t\t: new Response({ body: rawResponse, status: StatusCodes.BadRequest, headers: {} })\n\t\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t#resolveSchema(method: MethodsEnum, schema: RouteDef) {\n\t\tconst defaultStatusCode = schema?.defaultStatusCode ?? StatusCodes.Ok\n\t\tconst defaultContentType = schema?.defaultContentType ?? 'application/json'\n\t\tlet status = defaultStatusCode\n\t\tlet contentType = defaultContentType\n\t\tconst jsonSchema: OpenApiSchemaDef = { response: {}, request: {} }\n\t\tconst requestPipeDefs: Pick<RouteDef, 'body' | 'headers' | 'query' | 'params' | 'cookies'> = {}\n\t\tconst responsePipeDefs: Pick<RouteDef, 'response' | 'responseHeaders' | 'responseCookies'> = {}\n\n\t\tconst defs: {\n\t\t\tkey: Exclude<keyof RouteDef, `default${string}` | 'context'>\n\t\t\ttype: keyof OpenApiSchemaDef\n\t\t\tskip?: boolean\n\t\t}[] = [\n\t\t\t{ key: 'params', type: 'request' },\n\t\t\t{ key: 'headers', type: 'request' },\n\t\t\t{ key: 'cookies', type: 'request' },\n\t\t\t{ key: 'query', type: 'request' },\n\t\t\t{ key: 'body', type: 'request', skip: !(<MethodsEnum[]>[Methods.post, Methods.put, Methods.patch]).includes(method) },\n\t\t\t{ key: 'response', type: 'response' },\n\t\t\t{ key: 'responseHeaders', type: 'response' },\n\t\t\t{ key: 'responseCookies', type: 'response' },\n\t\t]\n\t\tdefs.forEach((def) => {\n\t\t\tconst pipe = schema[def.key] ?? v.any()\n\t\t\tif (def.skip) return\n\n\t\t\tif (def.type === 'request') {\n\t\t\t\trequestPipeDefs[def.key] = pipe\n\t\t\t\tjsonSchema.request[def.key as keyof typeof jsonSchema.request] = v.schema(pipe)\n\t\t\t}\n\t\t\tif (def.type === 'response') {\n\t\t\t\tconst pipeRecords = errorsSchemas.concat({ status: defaultStatusCode, contentType, pipe })\n\t\t\t\tresponsePipeDefs[def.key] = v.any().pipe((input) => {\n\t\t\t\t\tconst p = pipeRecords.find((r) => r.status === status)?.pipe\n\t\t\t\t\tif (!p) throw PipeError.root(`schema not defined for status code: ${status}`, input)\n\t\t\t\t\treturn v.assert(p, input)\n\t\t\t\t})\n\t\t\t\tjsonSchema.response[def.key as keyof typeof jsonSchema.response] = pipeRecords.map((record) => ({\n\t\t\t\t\tstatus: record.status,\n\t\t\t\t\tcontentType: record.contentType,\n\t\t\t\t\tschema: v.schema(record.pipe),\n\t\t\t\t}))\n\t\t\t}\n\t\t})\n\t\tconst requestPipe = v.object(requestPipeDefs)\n\t\tv.compile(requestPipe, { allErrors: true })\n\t\tconst responsePipe = v.object(responsePipeDefs)\n\t\tv.compile(responsePipe, { allErrors: true })\n\t\tconst validateRequest: RequestValidator = async (request) => {\n\t\t\tif (!Object.keys(requestPipeDefs)) return request\n\t\t\tconst validity = requestLocalStorage.run(request, () =>\n\t\t\t\tv.validate(requestPipe, {\n\t\t\t\t\tparams: request.params,\n\t\t\t\t\theaders: request.headers,\n\t\t\t\t\tquery: request.query,\n\t\t\t\t\tbody: request.body,\n\t\t\t\t\tcookies: request.cookies,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\trequest.params = validity.value.params!\n\t\t\trequest.headers = validity.value.headers!\n\t\t\trequest.query = validity.value.query!\n\t\t\trequest.body = validity.value.body!\n\t\t\trequest.cookies = validity.value.cookies!\n\t\t\treturn request\n\t\t}\n\t\tconst validateResponse: ResponseValidator = async (response) => {\n\t\t\tif (!Object.keys(responsePipeDefs)) return response\n\t\t\tstatus = response.status\n\t\t\tcontentType = response.contentType\n\n\t\t\tconst validity = responseLocalStorage.run(response, () =>\n\t\t\t\tv.validate(responsePipe, {\n\t\t\t\t\tresponseHeaders: response.headers,\n\t\t\t\t\tresponseCookies: Object.fromEntries(Object.entries(response.cookies).map(([key, val]) => [key, val.value] as const)),\n\t\t\t\t\tresponse: response.body,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\tresponse.body = validity.value.response!\n\t\t\tresponse.headers = validity.value.responseHeaders!\n\t\t\tresponse.cookieValues = validity.value.responseCookies!\n\t\t\treturn response\n\t\t}\n\t\treturn {\n\t\t\tjsonSchema,\n\t\t\tvalidateRequest,\n\t\t\tvalidateResponse,\n\t\t}\n\t}\n\n\ttest() {\n\t\treturn supertest(this.server)\n\t}\n\n\tasync start() {\n\t\tconst port = this.config.port\n\t\tconst instance = Instance.get()\n\t\tconst { app } = instance.settings\n\t\tif (this.config.healthPath)\n\t\t\tthis.addRoute({\n\t\t\t\tmethod: Methods.get,\n\t\t\t\tpath: this.config.healthPath,\n\t\t\t\thandler: async (req) =>\n\t\t\t\t\treq.res({\n\t\t\t\t\t\tbody: `${instance.id}(${app.name}) service running`,\n\t\t\t\t\t\tcontentType: 'text/plain',\n\t\t\t\t\t}),\n\t\t\t})\n\n\t\tawait Promise.all(this.#queue.map((cb) => cb()))\n\n\t\tthis.implementations.registerNotFoundHandler(async (req) => {\n\t\t\tconst request = await this.implementations.parseRequest(req)\n\t\t\tthrow new NotFoundError(`Route ${request.path} not found`)\n\t\t})\n\t\tthis.implementations.registerErrorHandler(async (error, _, res) => {\n\t\t\tif (!(error instanceof EquippedError)) Instance.get().log.error({ error }, 'Uncaught error in route handler')\n\t\t\tconst response =\n\t\t\t\terror instanceof RequestError\n\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\tbody: error.serializedErrors,\n\t\t\t\t\t\t\tstatus: error.statusCode,\n\t\t\t\t\t\t})\n\t\t\t\t\t: error instanceof EquippedError\n\t\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: 'Something went wrong', data: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\treturn await this.implementations.handleResponse(res, response)\n\t\t})\n\n\t\tconst started = await this.implementations.start(port)\n\t\tif (started) Instance.get().log.info(`${instance.id}(${app.name}) service listening on port ${port}`)\n\t\treturn started\n\t}\n}\n",null]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('@fastify/cors');require('cors');var _socketio = require('socket.io');var _supertest = require('supertest'); var _supertest2 = _interopRequireDefault(_supertest);var _valleyed = require('valleyed');var _indexmincjs = require('../../errors/index.min.cjs');var _indexmincjs3 = require('../../instance/index.min.cjs');var _indexmincjs5 = require('../../validations/index.min.cjs');var _valleyedmincjs = require('../../validations/valleyed.min.cjs');var _openapimincjs = require('../openapi.min.cjs');var _requestsmincjs = require('../requests.min.cjs');require('../routes');var _socketsmincjs = require('../sockets.min.cjs');var _typesmincjs = require('../types.min.cjs');const x=Object.entries(_typesmincjs.StatusCodes).filter(([,k])=>k>399).map(([k,r])=>({status:r,contentType:"application/json",pipe:_valleyed.v.meta(_valleyed.v.array(_valleyed.v.object({message:_valleyed.v.string(),field:_valleyed.v.optional(_valleyed.v.string())})),{$refId:`Errors.${k}Response`,description:`${k} Response`})}));class Z{constructor(r,t,p){this.config=t;this.implementations=p;this.server=r,this.#e=new (0, _openapimincjs.OpenApi)(t);const c=new (0, _socketio.Server)(r,{cors:this.cors});this.socket=new (0, _socketsmincjs.SocketEmitter)(c,t),this.addRouter(this.#e.router())}#t=[];#s=new Map;#e;get cors(){return{origin:_optionalChain([this, 'access', _ => _.config, 'access', _2 => _2.cors, 'optionalAccess', _3 => _3.origin])?(r,t)=>t(null,!0):_optionalChain([this, 'access', _4 => _4.config, 'access', _5 => _5.cors, 'optionalAccess', _6 => _6.origin]),methods:(_nullishCoalesce(_optionalChain([this, 'access', _7 => _7.config, 'access', _8 => _8.cors, 'optionalAccess', _9 => _9.methods]), () => (Object.values(_typesmincjs.Methods)))).filter(r=>r!==_typesmincjs.Methods.options).map(r=>r.toUpperCase()),credentials:_optionalChain([this, 'access', _10 => _10.config, 'access', _11 => _11.cors, 'optionalAccess', _12 => _12.credentials])}}addRouter(...r){r.map(t=>t.routes).forEach(t=>this.addRoute(...t))}addRoute(...r){r.forEach(t=>{this.#t.push(async()=>{const{method:p,path:c,schema:o={},onError:d,middlewares:u=[],responseMiddlewares:m=[]}=t,y=`(${p.toUpperCase()}) ${this.#e.cleanPath(c)}`;if(this.#s.get(y))throw new (0, _indexmincjs.EquippedError)(`Route key ${y} already registered. All route keys must be unique`,{route:t,key:y});u.forEach(l=>_optionalChain([l, 'access', _13 => _13.onSetup, 'optionalCall', _14 => _14(t)])),_optionalChain([d, 'optionalAccess', _15 => _15.onSetup, 'optionalCall', _16 => _16(t)]),m.forEach(l=>_optionalChain([l, 'access', _17 => _17.onSetup, 'optionalCall', _18 => _18(t)]));const{validateRequest:E,validateResponse:v,jsonSchema:g}=this.#o(p,o);this.#s.set(y,!0),await this.#e.register(t,g),this.implementations.registerRoute(p,this.#e.cleanPath(c),async(l,w)=>{const e=await E(await this.implementations.parseRequest(l));try{for(const n of u)await n.cb(e);const s=await t.handler(e),i=s instanceof _requestsmincjs.Response?s:new (0, _requestsmincjs.Response)({body:s,status:_typesmincjs.StatusCodes.Ok,headers:{},piped:!1});for(const n of m)await n.cb(e,i);return await this.implementations.handleResponse(w,await v(i))}catch(s){if(_optionalChain([d, 'optionalAccess', _19 => _19.cb])){const i=await d.cb(e,s),n=i instanceof _requestsmincjs.Response?i:new (0, _requestsmincjs.Response)({body:i,status:_typesmincjs.StatusCodes.BadRequest,headers:{}});return await this.implementations.handleResponse(w,await v(n))}throw s}})})})}#o(r,t){const p=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _20 => _20.defaultStatusCode]), () => (_typesmincjs.StatusCodes.Ok)),c=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _21 => _21.defaultContentType]), () => ("application/json"));let o=p,d=c;const u={response:{},request:{}},m={},y={};[{key:"params",type:"request"},{key:"headers",type:"request"},{key:"cookies",type:"request"},{key:"query",type:"request"},{key:"body",type:"request",skip:![_typesmincjs.Methods.post,_typesmincjs.Methods.put,_typesmincjs.Methods.patch].includes(r)},{key:"response",type:"response"},{key:"responseHeaders",type:"response"},{key:"responseCookies",type:"response"}].forEach(e=>{const s=_nullishCoalesce(t[e.key], () => (_valleyed.v.any()));if(!e.skip&&(e.type==="request"&&(m[e.key]=s,u.request[e.key]=_valleyed.v.schema(s)),e.type==="response")){const i=x.concat({status:p,contentType:d,pipe:s});y[e.key]=_valleyed.v.any().pipe(n=>{const S=_optionalChain([i, 'access', _22 => _22.find, 'call', _23 => _23(C=>C.status===o), 'optionalAccess', _24 => _24.pipe]);if(!S)throw _valleyed.PipeError.root(`schema not defined for status code: ${o}`,n);return _valleyed.v.assert(S,n)}),u.response[e.key]=i.map(n=>({status:n.status,contentType:n.contentType,schema:_valleyed.v.schema(n.pipe)}))}});const v=_valleyed.v.object(m);_valleyed.v.compile(v,{allErrors:!0});const g=_valleyed.v.object(y);return _valleyed.v.compile(g,{allErrors:!0}),{jsonSchema:u,validateRequest:async e=>{if(!Object.keys(m))return e;const s=_valleyedmincjs.requestLocalStorage.run(e,()=>_valleyed.v.validate(v,{params:e.params,headers:e.headers,query:e.query,body:e.body,cookies:e.cookies}));if(!s.valid)throw _indexmincjs5.pipeErrorToValidationError.call(void 0, s.error);return e.params=s.value.params,e.headers=s.value.headers,e.query=s.value.query,e.body=s.value.body,e.cookies=s.value.cookies,e},validateResponse:async e=>{if(!Object.keys(y))return e;o=e.status,d=e.contentType;const s=_valleyedmincjs.responseLocalStorage.run(e,()=>_valleyed.v.validate(g,{responseHeaders:e.headers,responseCookies:Object.fromEntries(Object.entries(e.cookies).map(([i,n])=>[i,n.value])),response:e.body}));if(!s.valid)throw _indexmincjs5.pipeErrorToValidationError.call(void 0, s.error);return e.body=s.value.response,e.headers=s.value.responseHeaders,e.cookieValues=s.value.responseCookies,e}}}test(){return _supertest2.default.call(void 0, this.server)}async start(){const r=this.config.port,t=_indexmincjs3.Instance.get(),{app:p}=t.settings;this.config.healthPath&&this.addRoute({method:_typesmincjs.Methods.get,path:this.config.healthPath,handler:async o=>o.res({body:`${t.id}(${p.name}) service running`,contentType:"text/plain"})}),await Promise.all(this.#t.map(o=>o())),this.implementations.registerNotFoundHandler(async o=>{const d=await this.implementations.parseRequest(o);throw new (0, _indexmincjs.NotFoundError)(`Route ${d.path} not found`)}),this.implementations.registerErrorHandler(async(o,d,u)=>{o instanceof _indexmincjs.EquippedError||_indexmincjs3.Instance.get().log.error({error:o},"Uncaught error in route handler");const m=o instanceof _indexmincjs.RequestError?new (0, _requestsmincjs.Response)({body:o.serializedErrors,status:o.statusCode}):o instanceof _indexmincjs.EquippedError?new (0, _requestsmincjs.Response)({body:[{message:o.message}],status:_typesmincjs.StatusCodes.BadRequest}):new (0, _requestsmincjs.Response)({body:[{message:"Something went wrong",data:o.message}],status:_typesmincjs.StatusCodes.BadRequest});return await this.implementations.handleResponse(u,m)});const c=await this.implementations.start(r);return c&&_indexmincjs3.Instance.get().log.info(`${t.id}(${p.name}) service listening on port ${r}`),c}}exports.Server = Z;
|
|
2
|
-
//# sourceMappingURL=base.min.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/impls/base.ts"],"names":["v","server","config","implementations"],"mappings":"AAEA,0yBAAwC,gBACP,qCACM,4FACjB,oCACkB,yDAG/B,4DACA,+DACqB,oEAGP,mDAEvB,qDACS,qBAAsD,mDAM7D,+CAGa,MAAA,CAAA,CAAA,MACb,CAAA,OAAQ,CAAA,wBAAA,CAAKA,CAAAA,MAAE,CAAMA,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,EAAA,CAAO,CAAE,GAAA,CAAA,CAAA,GAASA,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAG,CAAA,MAAOA,CAAE,CAAA,CAAA,WAAW,CAAA,kBAChE,CAAA,IAAA,CAAA,WAAA,CAAA,IAAa,CAAA,WAAA,CAAA,KAAA,CAAA,WACrB,CAAA,MAAA,CAAA,CAAA,OAAmB,CAAA,WAAA,CAAA,MAAA,CAAA,CACpB,CAAC,KAGI,CAAA,WAAA,CAAA,QAcN,CAAA,WAAA,CAAA,MACCC,CAAAA,CACQC,CAAAA,CACAC,CAAAA,CAQP,CATO,CAAA,MAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,QAAA,CAAA,CAAA,WASR,CAAK,CAAA,EAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/impls/base.min.cjs","sourcesContent":["import type http from 'node:http'\n\nimport { type FastifyCorsOptions } from '@fastify/cors'\nimport { type CorsOptions } from 'cors'\nimport { Server as SocketServer } from 'socket.io'\nimport supertest from 'supertest'\nimport { type Pipe, PipeError, v } from 'valleyed'\n\nimport { EquippedError, NotFoundError, RequestError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { pipeErrorToValidationError } from '../../validations'\nimport { requestLocalStorage, responseLocalStorage } from '../../validations/valleyed'\nimport { OpenApi, type OpenApiSchemaDef } from '../openapi'\nimport type { ServerConfig } from '../pipes'\nimport { type Request, Response } from '../requests'\nimport { Router } from '../routes'\nimport { SocketEmitter } from '../sockets'\nimport { Methods, type MethodsEnum, type Route, type RouteDef, StatusCodes } from '../types'\n\ntype RequestValidator = (req: Request<any>) => Promise<Request<any>>\ntype ResponseValidator = (res: Response<any>) => Promise<Response<any>>\n\nconst errorsSchemas = Object.entries(StatusCodes)\n\t.filter(([, value]) => value > 399)\n\t.map(([key, value]) => ({\n\t\tstatus: value,\n\t\tcontentType: 'application/json',\n\t\tpipe: v.meta(v.array(v.object({ message: v.string(), field: v.optional(v.string()) })), {\n\t\t\t$refId: `Errors.${key}Response`,\n\t\t\tdescription: `${key} Response`,\n\t\t}) as Pipe<any, any>,\n\t}))\n\nexport abstract class Server<Req = any, Res = any> {\n\t#queue: (() => void | Promise<void>)[] = []\n\t#routesByKey = new Map<string, boolean>()\n\t#openapi: OpenApi\n\tsocket: SocketEmitter\n\tprotected server: http.Server\n\tprotected get cors(): CorsOptions & FastifyCorsOptions {\n\t\treturn {\n\t\t\torigin: this.config.cors?.origin ? (_, cb) => cb(null, true) : this.config.cors?.origin,\n\t\t\tmethods: (this.config.cors?.methods ?? Object.values(Methods)).filter((m) => m !== Methods.options).map((m) => m.toUpperCase()),\n\t\t\tcredentials: this.config.cors?.credentials,\n\t\t}\n\t}\n\n\tconstructor(\n\t\tserver: http.Server,\n\t\tprivate config: ServerConfig,\n\t\tprivate implementations: {\n\t\t\tparseRequest: (req: Req) => Promise<Request<any>>\n\t\t\thandleResponse: (res: Res, response: Response<any>) => Promise<void>\n\t\t\tregisterRoute: (method: MethodsEnum, path: string, cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterErrorHandler: (cb: (error: Error, req: Req, res: Res) => Promise<void>) => void\n\t\t\tregisterNotFoundHandler: (cb: (req: Req, res: Res) => Promise<void>) => void\n\t\t\tstart: (port: number) => Promise<boolean>\n\t\t},\n\t) {\n\t\tthis.server = server\n\t\tthis.#openapi = new OpenApi(config)\n\t\tconst socketInstance = new SocketServer(server, { cors: this.cors })\n\t\tthis.socket = new SocketEmitter(socketInstance, config)\n\t\tthis.addRouter(this.#openapi.router())\n\t}\n\n\taddRouter(...routers: Router<any>[]) {\n\t\trouters.map((router) => router.routes).forEach((routes) => this.addRoute(...routes))\n\t}\n\n\taddRoute<T extends RouteDef>(...routes: Route<T>[]) {\n\t\troutes.forEach((route) => {\n\t\t\tthis.#queue.push(async () => {\n\t\t\t\tconst { method, path, schema = {}, onError, middlewares = [], responseMiddlewares = [] } = route\n\n\t\t\t\tconst key = `(${method.toUpperCase()}) ${this.#openapi.cleanPath(path)}`\n\t\t\t\tif (this.#routesByKey.get(key))\n\t\t\t\t\tthrow new EquippedError(`Route key ${key} already registered. All route keys must be unique`, { route, key })\n\n\t\t\t\tmiddlewares.forEach((m) => m.onSetup?.(route as any))\n\t\t\t\tonError?.onSetup?.(route as any)\n\t\t\t\tresponseMiddlewares.forEach((m) => m.onSetup?.(route as any))\n\n\t\t\t\tconst { validateRequest, validateResponse, jsonSchema } = this.#resolveSchema(method, schema)\n\n\t\t\t\tthis.#routesByKey.set(key, true)\n\t\t\t\tawait this.#openapi.register(route, jsonSchema)\n\t\t\t\tthis.implementations.registerRoute(method, this.#openapi.cleanPath(path), async (req: Req, res: Res) => {\n\t\t\t\t\tconst request = await validateRequest(await this.implementations.parseRequest(req))\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (const middleware of middlewares) await middleware.cb(request)\n\t\t\t\t\t\tconst rawRes = await route.handler(request)\n\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\trawRes instanceof Response\n\t\t\t\t\t\t\t\t? rawRes\n\t\t\t\t\t\t\t\t: new Response({ body: rawRes, status: StatusCodes.Ok, headers: {}, piped: false })\n\t\t\t\t\t\tfor (const middleware of responseMiddlewares) await middleware.cb(request, response)\n\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (onError?.cb) {\n\t\t\t\t\t\t\tconst rawResponse = await onError.cb(request, error as Error)\n\t\t\t\t\t\t\tconst response =\n\t\t\t\t\t\t\t\trawResponse instanceof Response\n\t\t\t\t\t\t\t\t\t? rawResponse\n\t\t\t\t\t\t\t\t\t: new Response({ body: rawResponse, status: StatusCodes.BadRequest, headers: {} })\n\t\t\t\t\t\t\treturn await this.implementations.handleResponse(res, await validateResponse(response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\t#resolveSchema(method: MethodsEnum, schema: RouteDef) {\n\t\tconst defaultStatusCode = schema?.defaultStatusCode ?? StatusCodes.Ok\n\t\tconst defaultContentType = schema?.defaultContentType ?? 'application/json'\n\t\tlet status = defaultStatusCode\n\t\tlet contentType = defaultContentType\n\t\tconst jsonSchema: OpenApiSchemaDef = { response: {}, request: {} }\n\t\tconst requestPipeDefs: Pick<RouteDef, 'body' | 'headers' | 'query' | 'params' | 'cookies'> = {}\n\t\tconst responsePipeDefs: Pick<RouteDef, 'response' | 'responseHeaders' | 'responseCookies'> = {}\n\n\t\tconst defs: {\n\t\t\tkey: Exclude<keyof RouteDef, `default${string}` | 'context'>\n\t\t\ttype: keyof OpenApiSchemaDef\n\t\t\tskip?: boolean\n\t\t}[] = [\n\t\t\t{ key: 'params', type: 'request' },\n\t\t\t{ key: 'headers', type: 'request' },\n\t\t\t{ key: 'cookies', type: 'request' },\n\t\t\t{ key: 'query', type: 'request' },\n\t\t\t{ key: 'body', type: 'request', skip: !(<MethodsEnum[]>[Methods.post, Methods.put, Methods.patch]).includes(method) },\n\t\t\t{ key: 'response', type: 'response' },\n\t\t\t{ key: 'responseHeaders', type: 'response' },\n\t\t\t{ key: 'responseCookies', type: 'response' },\n\t\t]\n\t\tdefs.forEach((def) => {\n\t\t\tconst pipe = schema[def.key] ?? v.any()\n\t\t\tif (def.skip) return\n\n\t\t\tif (def.type === 'request') {\n\t\t\t\trequestPipeDefs[def.key] = pipe\n\t\t\t\tjsonSchema.request[def.key as keyof typeof jsonSchema.request] = v.schema(pipe)\n\t\t\t}\n\t\t\tif (def.type === 'response') {\n\t\t\t\tconst pipeRecords = errorsSchemas.concat({ status: defaultStatusCode, contentType, pipe })\n\t\t\t\tresponsePipeDefs[def.key] = v.any().pipe((input) => {\n\t\t\t\t\tconst p = pipeRecords.find((r) => r.status === status)?.pipe\n\t\t\t\t\tif (!p) throw PipeError.root(`schema not defined for status code: ${status}`, input)\n\t\t\t\t\treturn v.assert(p, input)\n\t\t\t\t})\n\t\t\t\tjsonSchema.response[def.key as keyof typeof jsonSchema.response] = pipeRecords.map((record) => ({\n\t\t\t\t\tstatus: record.status,\n\t\t\t\t\tcontentType: record.contentType,\n\t\t\t\t\tschema: v.schema(record.pipe),\n\t\t\t\t}))\n\t\t\t}\n\t\t})\n\t\tconst requestPipe = v.object(requestPipeDefs)\n\t\tv.compile(requestPipe, { allErrors: true })\n\t\tconst responsePipe = v.object(responsePipeDefs)\n\t\tv.compile(responsePipe, { allErrors: true })\n\t\tconst validateRequest: RequestValidator = async (request) => {\n\t\t\tif (!Object.keys(requestPipeDefs)) return request\n\t\t\tconst validity = requestLocalStorage.run(request, () =>\n\t\t\t\tv.validate(requestPipe, {\n\t\t\t\t\tparams: request.params,\n\t\t\t\t\theaders: request.headers,\n\t\t\t\t\tquery: request.query,\n\t\t\t\t\tbody: request.body,\n\t\t\t\t\tcookies: request.cookies,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\trequest.params = validity.value.params!\n\t\t\trequest.headers = validity.value.headers!\n\t\t\trequest.query = validity.value.query!\n\t\t\trequest.body = validity.value.body!\n\t\t\trequest.cookies = validity.value.cookies!\n\t\t\treturn request\n\t\t}\n\t\tconst validateResponse: ResponseValidator = async (response) => {\n\t\t\tif (!Object.keys(responsePipeDefs)) return response\n\t\t\tstatus = response.status\n\t\t\tcontentType = response.contentType\n\n\t\t\tconst validity = responseLocalStorage.run(response, () =>\n\t\t\t\tv.validate(responsePipe, {\n\t\t\t\t\tresponseHeaders: response.headers,\n\t\t\t\t\tresponseCookies: Object.fromEntries(Object.entries(response.cookies).map(([key, val]) => [key, val.value] as const)),\n\t\t\t\t\tresponse: response.body,\n\t\t\t\t}),\n\t\t\t)\n\n\t\t\tif (!validity.valid) throw pipeErrorToValidationError(validity.error)\n\t\t\tresponse.body = validity.value.response!\n\t\t\tresponse.headers = validity.value.responseHeaders!\n\t\t\tresponse.cookieValues = validity.value.responseCookies!\n\t\t\treturn response\n\t\t}\n\t\treturn {\n\t\t\tjsonSchema,\n\t\t\tvalidateRequest,\n\t\t\tvalidateResponse,\n\t\t}\n\t}\n\n\ttest() {\n\t\treturn supertest(this.server)\n\t}\n\n\tasync start() {\n\t\tconst port = this.config.port\n\t\tconst instance = Instance.get()\n\t\tconst { app } = instance.settings\n\t\tif (this.config.healthPath)\n\t\t\tthis.addRoute({\n\t\t\t\tmethod: Methods.get,\n\t\t\t\tpath: this.config.healthPath,\n\t\t\t\thandler: async (req) =>\n\t\t\t\t\treq.res({\n\t\t\t\t\t\tbody: `${instance.id}(${app.name}) service running`,\n\t\t\t\t\t\tcontentType: 'text/plain',\n\t\t\t\t\t}),\n\t\t\t})\n\n\t\tawait Promise.all(this.#queue.map((cb) => cb()))\n\n\t\tthis.implementations.registerNotFoundHandler(async (req) => {\n\t\t\tconst request = await this.implementations.parseRequest(req)\n\t\t\tthrow new NotFoundError(`Route ${request.path} not found`)\n\t\t})\n\t\tthis.implementations.registerErrorHandler(async (error, _, res) => {\n\t\t\tif (!(error instanceof EquippedError)) Instance.get().log.error({ error }, 'Uncaught error in route handler')\n\t\t\tconst response =\n\t\t\t\terror instanceof RequestError\n\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\tbody: error.serializedErrors,\n\t\t\t\t\t\t\tstatus: error.statusCode,\n\t\t\t\t\t\t})\n\t\t\t\t\t: error instanceof EquippedError\n\t\t\t\t\t\t? new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: new Response({\n\t\t\t\t\t\t\t\tbody: [{ message: 'Something went wrong', data: error.message }],\n\t\t\t\t\t\t\t\tstatus: StatusCodes.BadRequest,\n\t\t\t\t\t\t\t})\n\t\t\treturn await this.implementations.handleResponse(res, response)\n\t\t})\n\n\t\tconst started = await this.implementations.start(port)\n\t\tif (started) Instance.get().log.info(`${instance.id}(${app.name}) service listening on port ${port}`)\n\t\treturn started\n\t}\n}\n"]}
|