equipped 5.2.9 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +95 -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 +1967 -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 +1974 -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 +1811 -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-4JLDXF7T.min.mjs +2 -0
- package/dist/esm/chunk-4JLDXF7T.min.mjs.map +1 -0
- package/dist/{types/events/types/kafka.js → esm/chunk-4MXYZS5R.mjs} +60 -37
- package/dist/esm/chunk-4MXYZS5R.mjs.map +1 -0
- package/dist/esm/chunk-5VW3JAFR.min.mjs +2 -0
- package/dist/esm/chunk-5VW3JAFR.min.mjs.map +1 -0
- package/dist/esm/chunk-AKQBDYUO.mjs +126 -0
- package/dist/esm/chunk-AKQBDYUO.mjs.map +1 -0
- package/dist/esm/chunk-AQY7QVYI.min.mjs +2 -0
- package/dist/esm/chunk-B5QQ32YY.min.mjs +2 -0
- package/dist/esm/chunk-B5QQ32YY.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-FLAPYQUT.min.mjs +32 -0
- package/dist/esm/chunk-FLAPYQUT.min.mjs.map +1 -0
- package/dist/esm/chunk-J5LGTIGS.mjs +10 -0
- package/dist/esm/chunk-JH6EBXY4.mjs +53 -0
- package/dist/esm/chunk-JH6EBXY4.mjs.map +1 -0
- package/dist/esm/chunk-MDQKODYQ.mjs +2035 -0
- package/dist/esm/chunk-MDQKODYQ.mjs.map +1 -0
- package/dist/esm/chunk-PCAUXBAG.min.mjs +2 -0
- package/dist/esm/chunk-PCAUXBAG.min.mjs.map +1 -0
- package/dist/esm/chunk-PNZNNUMN.mjs +113 -0
- package/dist/esm/chunk-PNZNNUMN.mjs.map +1 -0
- package/dist/esm/chunk-PQCBVQL6.mjs +1280 -0
- package/dist/esm/chunk-PQCBVQL6.mjs.map +1 -0
- package/dist/esm/chunk-QHLKB47N.min.mjs +2 -0
- package/dist/esm/chunk-QHLKB47N.min.mjs.map +1 -0
- package/dist/esm/chunk-SGZNOYC3.min.mjs +2 -0
- package/dist/esm/chunk-SGZNOYC3.min.mjs.map +1 -0
- package/dist/esm/chunk-TVTYDU2D.mjs +795 -0
- package/dist/esm/chunk-TVTYDU2D.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-Z2TZ3KR7.mjs +22 -0
- package/dist/esm/chunk-Z2TZ3KR7.mjs.map +1 -0
- package/dist/esm/chunk-ZGMFFK6Y.min.mjs +2 -0
- package/dist/esm/chunk-ZGMFFK6Y.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-32BRYKYY.mjs +10 -0
- package/dist/esm/introspection-32BRYKYY.mjs.map +1 -0
- package/dist/esm/introspection-A72WMWE3.min.mjs +2 -0
- package/dist/esm/introspection-A72WMWE3.min.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 +177 -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/esm/server/adapters/fastify/index.mjs +185 -0
- 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-DVr0fHil.d.ts} +76 -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-3M4PBZAQ.js +125 -0
- package/dist/types/chunk-3TKJGSCZ.js +21 -0
- package/dist/types/chunk-65EHKCDZ.js +112 -0
- package/dist/types/chunk-JQ2FWX4W.js +1279 -0
- package/dist/types/chunk-KZKFYO4V.js +7 -0
- package/dist/types/chunk-LN3A6R4Y.js +28 -0
- package/dist/types/chunk-MLKGABMK.js +9 -0
- package/dist/types/chunk-NJ2FHI3U.js +794 -0
- package/dist/types/chunk-OHFTQGQG.js +52 -0
- package/dist/{esm/events/types/kafka.mjs → types/chunk-XGGGAEET.js} +59 -38
- package/dist/types/chunk-YTY3EFNB.js +2034 -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-VOIU3XE6.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 +196 -0
- package/dist/types/server/adapters/express/index.js +176 -0
- package/dist/types/server/adapters/fastify/index.d.ts +221 -0
- package/dist/types/server/adapters/fastify/index.js +184 -0
- 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 +155 -18
- 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 +0 -121
- 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/impls/fastify.js +0 -120
- 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,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"]}
|
|
@@ -1,111 +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; }var _http = require('http'); var _http2 = _interopRequireDefault(_http);
|
|
2
|
-
var _cookieparser = require('cookie-parser'); var _cookieparser2 = _interopRequireDefault(_cookieparser);
|
|
3
|
-
var _cors = require('cors'); var _cors2 = _interopRequireDefault(_cors);
|
|
4
|
-
var _express = require('express'); var _express2 = _interopRequireDefault(_express);
|
|
5
|
-
var _expressfileupload = require('express-fileupload'); var _expressfileupload2 = _interopRequireDefault(_expressfileupload);
|
|
6
|
-
var _expressratelimit = require('express-rate-limit');
|
|
7
|
-
var _helmet = require('helmet'); var _helmet2 = _interopRequireDefault(_helmet);
|
|
8
|
-
var _pinohttp = require('pino-http');
|
|
9
|
-
var _indexcjs = require('../../instance/index.cjs');
|
|
10
|
-
var _indexcjs3 = require('../../utilities/index.cjs');
|
|
11
|
-
var _requestscjs = require('../requests.cjs');
|
|
12
|
-
var _typescjs = require('../types.cjs');
|
|
13
|
-
var _basecjs = require('./base.cjs');
|
|
14
|
-
class ExpressServer extends _basecjs.Server {
|
|
15
|
-
constructor(config) {
|
|
16
|
-
const app = _express2.default.call(void 0, );
|
|
17
|
-
const instance = _indexcjs.Instance.get();
|
|
18
|
-
super(_http2.default.createServer(app), config, {
|
|
19
|
-
parseRequest: async (req) => {
|
|
20
|
-
const files = Object.fromEntries(
|
|
21
|
-
await Promise.all(
|
|
22
|
-
Object.entries(_nullishCoalesce(req.files, () => ( {}))).map(async ([key, file]) => {
|
|
23
|
-
const uploads = Array.isArray(file) ? file : [file];
|
|
24
|
-
const fileArray = await Promise.all(
|
|
25
|
-
uploads.map(async (f) => ({
|
|
26
|
-
name: f.name,
|
|
27
|
-
type: f.mimetype,
|
|
28
|
-
size: f.size,
|
|
29
|
-
isTruncated: f.truncated,
|
|
30
|
-
data: f.data,
|
|
31
|
-
duration: await _indexcjs3.getMediaDuration.call(void 0, f.data)
|
|
32
|
-
}))
|
|
33
|
-
);
|
|
34
|
-
return [key, fileArray];
|
|
35
|
-
})
|
|
36
|
-
)
|
|
37
|
-
);
|
|
38
|
-
return new (0, _requestscjs.Request)({
|
|
39
|
-
ip: req.ip,
|
|
40
|
-
body: _nullishCoalesce(req.body, () => ( {})),
|
|
41
|
-
cookies: _nullishCoalesce(req.cookies, () => ( {})),
|
|
42
|
-
params: _nullishCoalesce(req.params, () => ( {})),
|
|
43
|
-
query: _nullishCoalesce(req.query, () => ( {})),
|
|
44
|
-
method: req.method,
|
|
45
|
-
path: req.path,
|
|
46
|
-
headers: req.headers,
|
|
47
|
-
files
|
|
48
|
-
});
|
|
49
|
-
},
|
|
50
|
-
handleResponse: async (res, response) => {
|
|
51
|
-
if (!response.piped) {
|
|
52
|
-
Object.entries(response.headers).forEach(([key, value]) => res.header(key, value));
|
|
53
|
-
Object.entries(response.cookies).forEach(([key, { value, ...opts }]) => res.cookie(key, value, opts));
|
|
54
|
-
const type = response.body === null || response.body === void 0 ? "json" : "send";
|
|
55
|
-
res.status(response.status)[type](response.body).end();
|
|
56
|
-
} else {
|
|
57
|
-
response.body.pipe(res);
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
registerRoute: (method, path, cb) => {
|
|
61
|
-
_optionalChain([app, 'access', _2 => _2[method], 'optionalCall', _3 => _3(path, async (req, res) => cb(req, res))]);
|
|
62
|
-
},
|
|
63
|
-
registerErrorHandler: (cb) => {
|
|
64
|
-
app.use(async (err, req, res, _next) => cb(err, req, res));
|
|
65
|
-
},
|
|
66
|
-
registerNotFoundHandler: (cb) => {
|
|
67
|
-
app.use(async (req, res, _next) => cb(req, res));
|
|
68
|
-
},
|
|
69
|
-
start: async (port) => new Promise((resolve, reject) => {
|
|
70
|
-
try {
|
|
71
|
-
const app2 = this.server.listen({ host: "0.0.0.0", port }, async () => resolve(true));
|
|
72
|
-
_indexcjs.Instance.on("close", app2.close, 1);
|
|
73
|
-
} catch (err) {
|
|
74
|
-
reject(err);
|
|
75
|
-
}
|
|
76
|
-
})
|
|
77
|
-
});
|
|
78
|
-
app.disable("x-powered-by");
|
|
79
|
-
if (config.requests.log) app.use(_pinohttp.pinoHttp.call(void 0, { logger: instance.log }));
|
|
80
|
-
app.use(_express2.default.json());
|
|
81
|
-
app.use(_express2.default.text());
|
|
82
|
-
app.use(_cookieparser2.default.call(void 0, ));
|
|
83
|
-
app.use(
|
|
84
|
-
_helmet2.default.call(void 0, {
|
|
85
|
-
crossOriginResourcePolicy: { policy: "cross-origin" },
|
|
86
|
-
contentSecurityPolicy: false
|
|
87
|
-
})
|
|
88
|
-
);
|
|
89
|
-
app.use(_cors2.default.call(void 0, this.cors));
|
|
90
|
-
app.use(_express2.default.urlencoded({ extended: false }));
|
|
91
|
-
if (config.publicPath) app.use(_express2.default.static(config.publicPath));
|
|
92
|
-
app.use(
|
|
93
|
-
_expressfileupload2.default.call(void 0, {
|
|
94
|
-
limits: { fileSize: instance.settings.utils.maxFileUploadSizeInMb * 1024 * 1024 },
|
|
95
|
-
useTempFiles: false
|
|
96
|
-
})
|
|
97
|
-
);
|
|
98
|
-
if (config.requests.rateLimit.enabled)
|
|
99
|
-
app.use(
|
|
100
|
-
_expressratelimit.rateLimit.call(void 0, {
|
|
101
|
-
windowMs: config.requests.rateLimit.periodInMs,
|
|
102
|
-
limit: config.requests.rateLimit.limit,
|
|
103
|
-
handler: (_, res) => res.status(_typescjs.StatusCodes.TooManyRequests).json([{ message: "Too Many Requests" }])
|
|
104
|
-
})
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
exports.ExpressServer = ExpressServer;
|
|
111
|
-
//# sourceMappingURL=express.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/impls/express.ts","/home/runner/work/equipped/equipped/dist/cjs/server/impls/express.cjs"],"names":["app"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/impls/express.cjs","sourcesContent":["import http from 'http'\n\nimport cookie from 'cookie-parser'\nimport cors from 'cors'\nimport express from 'express'\nimport fileUpload from 'express-fileupload'\nimport { rateLimit } from 'express-rate-limit'\n// import slowDown from 'express-slow-down'\nimport helmet from 'helmet'\nimport { pinoHttp } from 'pino-http'\n\nimport { Instance } from '../../instance'\nimport { getMediaDuration } from '../../utilities'\nimport type { ServerConfig } from '../pipes'\nimport { Request } from '../requests'\nimport { type IncomingFile, StatusCodes } from '../types'\nimport { Server } from './base'\n\nexport class ExpressServer extends Server<express.Request, express.Response> {\n\tconstructor(config: ServerConfig) {\n\t\tconst app = express()\n\t\tconst instance = Instance.get()\n\t\tsuper(http.createServer(app), config, {\n\t\t\tparseRequest: async (req) => {\n\t\t\t\tconst files = Object.fromEntries(\n\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\tObject.entries(req.files ?? {}).map(async ([key, file]) => {\n\t\t\t\t\t\t\tconst uploads = Array.isArray(file) ? file : [file]\n\t\t\t\t\t\t\tconst fileArray: IncomingFile[] = await Promise.all(\n\t\t\t\t\t\t\t\tuploads.map(async (f) => ({\n\t\t\t\t\t\t\t\t\tname: f.name,\n\t\t\t\t\t\t\t\t\ttype: f.mimetype,\n\t\t\t\t\t\t\t\t\tsize: f.size,\n\t\t\t\t\t\t\t\t\tisTruncated: f.truncated,\n\t\t\t\t\t\t\t\t\tdata: f.data,\n\t\t\t\t\t\t\t\t\tduration: await getMediaDuration(f.data),\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn <const>[key, fileArray]\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t)\n\n\t\t\t\treturn new Request<any>({\n\t\t\t\t\tip: req.ip,\n\t\t\t\t\tbody: req.body ?? {},\n\t\t\t\t\tcookies: req.cookies ?? {},\n\t\t\t\t\tparams: req.params ?? {},\n\t\t\t\t\tquery: req.query ?? {},\n\t\t\t\t\tmethod: <any>req.method,\n\t\t\t\t\tpath: req.path,\n\t\t\t\t\theaders: req.headers,\n\t\t\t\t\tfiles,\n\t\t\t\t})\n\t\t\t},\n\t\t\thandleResponse: async (res, response) => {\n\t\t\t\tif (!response.piped) {\n\t\t\t\t\tObject.entries(response.headers).forEach(([key, value]) => res.header(key, value as string))\n\t\t\t\t\tObject.entries(response.cookies).forEach(([key, { value, ...opts }]) => res.cookie(key, value, opts))\n\t\t\t\t\tconst type = response.body === null || response.body === undefined ? 'json' : 'send'\n\t\t\t\t\tres.status(response.status)[type](response.body).end()\n\t\t\t\t} else {\n\t\t\t\t\tresponse.body.pipe(res)\n\t\t\t\t}\n\t\t\t},\n\t\t\tregisterRoute: (method, path, cb) => {\n\t\t\t\tapp[method]?.(path, async (req, res) => cb(req, res))\n\t\t\t},\n\t\t\tregisterErrorHandler: (cb) => {\n\t\t\t\tapp.use(async (err, req, res, _next) => cb(err, req, res))\n\t\t\t},\n\t\t\tregisterNotFoundHandler: (cb) => {\n\t\t\t\tapp.use(async (req, res, _next) => cb(req, res))\n\t\t\t},\n\t\t\tstart: async (port) =>\n\t\t\t\tnew Promise((resolve: (s: boolean) => void, reject: (e: Error) => void) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst app = this.server.listen({ host: '0.0.0.0', port }, async () => resolve(true))\n\t\t\t\t\t\tInstance.on('close', app.close, 1)\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject(<Error>err)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t})\n\n\t\tapp.disable('x-powered-by')\n\t\tif (config.requests.log) app.use(pinoHttp({ logger: instance.log }))\n\t\tapp.use(express.json())\n\t\tapp.use(express.text())\n\t\tapp.use(cookie())\n\t\tapp.use(\n\t\t\thelmet({\n\t\t\t\tcrossOriginResourcePolicy: { policy: 'cross-origin' },\n\t\t\t\tcontentSecurityPolicy: false,\n\t\t\t}),\n\t\t)\n\t\tapp.use(cors(this.cors))\n\t\tapp.use(express.urlencoded({ extended: false }))\n\t\tif (config.publicPath) app.use(express.static(config.publicPath))\n\t\tapp.use(\n\t\t\tfileUpload({\n\t\t\t\tlimits: { fileSize: instance.settings.utils.maxFileUploadSizeInMb * 1024 * 1024 },\n\t\t\t\tuseTempFiles: false,\n\t\t\t}),\n\t\t)\n\t\tif (config.requests.rateLimit.enabled)\n\t\t\tapp.use(\n\t\t\t\trateLimit({\n\t\t\t\t\twindowMs: config.requests.rateLimit.periodInMs,\n\t\t\t\t\tlimit: config.requests.rateLimit.limit,\n\t\t\t\t\thandler: (_: express.Request, res: express.Response) =>\n\t\t\t\t\t\tres.status(StatusCodes.TooManyRequests).json([{ message: 'Too Many Requests' }]),\n\t\t\t\t}),\n\t\t\t)\n\t\t/* if (this.settings.slowdown.enabled) app.use(slowDown({\n\t\t\twindowMs: this.settings.slowdown.periodInMs,\n\t\t\tdelayAfter: this.settings.slowdown.delayAfter,\n\t\t\tdelayMs: this.settings.slowdown.delayInMs\n\t\t})) */\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; }var _http = require('http'); var _http2 = _interopRequireDefault(_http);var _cookieparser = require('cookie-parser'); var _cookieparser2 = _interopRequireDefault(_cookieparser);var _cors = require('cors'); var _cors2 = _interopRequireDefault(_cors);var _express = require('express'); var _express2 = _interopRequireDefault(_express);var _expressfileupload = require('express-fileupload'); var _expressfileupload2 = _interopRequireDefault(_expressfileupload);var _expressratelimit = require('express-rate-limit');var _helmet = require('helmet'); var _helmet2 = _interopRequireDefault(_helmet);var _pinohttp = require('pino-http');var _indexmincjs = require('../../instance/index.min.cjs');var _indexmincjs3 = require('../../utilities/index.min.cjs');var _requestsmincjs = require('../requests.min.cjs');var _typesmincjs = require('../types.min.cjs');var _basemincjs = require('./base.min.cjs');class C extends _basemincjs.Server{constructor(a){const r=_express2.default.call(void 0, ),c=_indexmincjs.Instance.get();super(_http2.default.createServer(r),a,{parseRequest:async e=>{const s=Object.fromEntries(await Promise.all(Object.entries(_nullishCoalesce(e.files, () => ({}))).map(async([o,t])=>{const i=Array.isArray(t)?t:[t],p=await Promise.all(i.map(async n=>({name:n.name,type:n.mimetype,size:n.size,isTruncated:n.truncated,data:n.data,duration:await _indexmincjs3.getMediaDuration.call(void 0, n.data)})));return[o,p]})));return new (0, _requestsmincjs.Request)({ip:e.ip,body:_nullishCoalesce(e.body, () => ({})),cookies:_nullishCoalesce(e.cookies, () => ({})),params:_nullishCoalesce(e.params, () => ({})),query:_nullishCoalesce(e.query, () => ({})),method:e.method,path:e.path,headers:e.headers,files:s})},handleResponse:async(e,s)=>{if(s.piped)s.body.pipe(e);else{Object.entries(s.headers).forEach(([t,i])=>e.header(t,i)),Object.entries(s.cookies).forEach(([t,{value:i,...p}])=>e.cookie(t,i,p));const o=s.body===null||s.body===void 0?"json":"send";e.status(s.status)[o](s.body).end()}},registerRoute:(e,s,o)=>{_optionalChain([r, 'access', _ => _[e], 'optionalCall', _2 => _2(s,async(t,i)=>o(t,i))])},registerErrorHandler:e=>{r.use(async(s,o,t,i)=>e(s,o,t))},registerNotFoundHandler:e=>{r.use(async(s,o,t)=>e(s,o))},start:async e=>new Promise((s,o)=>{try{const t=this.server.listen({host:"0.0.0.0",port:e},async()=>s(!0));_indexmincjs.Instance.on("close",t.close,1)}catch(t){o(t)}})}),r.disable("x-powered-by"),a.requests.log&&r.use(_pinohttp.pinoHttp.call(void 0, {logger:c.log})),r.use(_express2.default.json()),r.use(_express2.default.text()),r.use(_cookieparser2.default.call(void 0, )),r.use(_helmet2.default.call(void 0, {crossOriginResourcePolicy:{policy:"cross-origin"},contentSecurityPolicy:!1})),r.use(_cors2.default.call(void 0, this.cors)),r.use(_express2.default.urlencoded({extended:!1})),a.publicPath&&r.use(_express2.default.static(a.publicPath)),r.use(_expressfileupload2.default.call(void 0, {limits:{fileSize:c.settings.utils.maxFileUploadSizeInMb*1024*1024},useTempFiles:!1})),a.requests.rateLimit.enabled&&r.use(_expressratelimit.rateLimit.call(void 0, {windowMs:a.requests.rateLimit.periodInMs,limit:a.requests.rateLimit.limit,handler:(e,s)=>s.status(_typesmincjs.StatusCodes.TooManyRequests).json([{message:"Too Many Requests"}])}))}}exports.ExpressServer = C;
|
|
2
|
-
//# sourceMappingURL=express.min.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/impls/express.ts"],"names":["ExpressServer","req","files","key","uploads","file","fileArray","f","getMediaDuration","Request","res","response","value","opts","path","cb","app","_next","err","resolve","reject","port","config","pinoHttp","instance","cookie","helmet","cors","express","fileUpload","rateLimit","StatusCodes"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/impls/express.min.cjs","sourcesContent":["import http from 'http'\n\nimport cookie from 'cookie-parser'\nimport cors from 'cors'\nimport express from 'express'\nimport fileUpload from 'express-fileupload'\nimport { rateLimit } from 'express-rate-limit'\n// import slowDown from 'express-slow-down'\nimport helmet from 'helmet'\nimport { pinoHttp } from 'pino-http'\n\nimport { Instance } from '../../instance'\nimport { getMediaDuration } from '../../utilities'\nimport type { ServerConfig } from '../pipes'\nimport { Request } from '../requests'\nimport { type IncomingFile, StatusCodes } from '../types'\nimport { Server } from './base'\n\nexport class ExpressServer extends Server<express.Request, express.Response> {\n\tconstructor(config: ServerConfig) {\n\t\tconst app = express()\n\t\tconst instance = Instance.get()\n\t\tsuper(http.createServer(app), config, {\n\t\t\tparseRequest: async (req) => {\n\t\t\t\tconst files = Object.fromEntries(\n\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\tObject.entries(req.files ?? {}).map(async ([key, file]) => {\n\t\t\t\t\t\t\tconst uploads = Array.isArray(file) ? file : [file]\n\t\t\t\t\t\t\tconst fileArray: IncomingFile[] = await Promise.all(\n\t\t\t\t\t\t\t\tuploads.map(async (f) => ({\n\t\t\t\t\t\t\t\t\tname: f.name,\n\t\t\t\t\t\t\t\t\ttype: f.mimetype,\n\t\t\t\t\t\t\t\t\tsize: f.size,\n\t\t\t\t\t\t\t\t\tisTruncated: f.truncated,\n\t\t\t\t\t\t\t\t\tdata: f.data,\n\t\t\t\t\t\t\t\t\tduration: await getMediaDuration(f.data),\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn <const>[key, fileArray]\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t)\n\n\t\t\t\treturn new Request<any>({\n\t\t\t\t\tip: req.ip,\n\t\t\t\t\tbody: req.body ?? {},\n\t\t\t\t\tcookies: req.cookies ?? {},\n\t\t\t\t\tparams: req.params ?? {},\n\t\t\t\t\tquery: req.query ?? {},\n\t\t\t\t\tmethod: <any>req.method,\n\t\t\t\t\tpath: req.path,\n\t\t\t\t\theaders: req.headers,\n\t\t\t\t\tfiles,\n\t\t\t\t})\n\t\t\t},\n\t\t\thandleResponse: async (res, response) => {\n\t\t\t\tif (!response.piped) {\n\t\t\t\t\tObject.entries(response.headers).forEach(([key, value]) => res.header(key, value as string))\n\t\t\t\t\tObject.entries(response.cookies).forEach(([key, { value, ...opts }]) => res.cookie(key, value, opts))\n\t\t\t\t\tconst type = response.body === null || response.body === undefined ? 'json' : 'send'\n\t\t\t\t\tres.status(response.status)[type](response.body).end()\n\t\t\t\t} else {\n\t\t\t\t\tresponse.body.pipe(res)\n\t\t\t\t}\n\t\t\t},\n\t\t\tregisterRoute: (method, path, cb) => {\n\t\t\t\tapp[method]?.(path, async (req, res) => cb(req, res))\n\t\t\t},\n\t\t\tregisterErrorHandler: (cb) => {\n\t\t\t\tapp.use(async (err, req, res, _next) => cb(err, req, res))\n\t\t\t},\n\t\t\tregisterNotFoundHandler: (cb) => {\n\t\t\t\tapp.use(async (req, res, _next) => cb(req, res))\n\t\t\t},\n\t\t\tstart: async (port) =>\n\t\t\t\tnew Promise((resolve: (s: boolean) => void, reject: (e: Error) => void) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst app = this.server.listen({ host: '0.0.0.0', port }, async () => resolve(true))\n\t\t\t\t\t\tInstance.on('close', app.close, 1)\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject(<Error>err)\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t})\n\n\t\tapp.disable('x-powered-by')\n\t\tif (config.requests.log) app.use(pinoHttp({ logger: instance.log }))\n\t\tapp.use(express.json())\n\t\tapp.use(express.text())\n\t\tapp.use(cookie())\n\t\tapp.use(\n\t\t\thelmet({\n\t\t\t\tcrossOriginResourcePolicy: { policy: 'cross-origin' },\n\t\t\t\tcontentSecurityPolicy: false,\n\t\t\t}),\n\t\t)\n\t\tapp.use(cors(this.cors))\n\t\tapp.use(express.urlencoded({ extended: false }))\n\t\tif (config.publicPath) app.use(express.static(config.publicPath))\n\t\tapp.use(\n\t\t\tfileUpload({\n\t\t\t\tlimits: { fileSize: instance.settings.utils.maxFileUploadSizeInMb * 1024 * 1024 },\n\t\t\t\tuseTempFiles: false,\n\t\t\t}),\n\t\t)\n\t\tif (config.requests.rateLimit.enabled)\n\t\t\tapp.use(\n\t\t\t\trateLimit({\n\t\t\t\t\twindowMs: config.requests.rateLimit.periodInMs,\n\t\t\t\t\tlimit: config.requests.rateLimit.limit,\n\t\t\t\t\thandler: (_: express.Request, res: express.Response) =>\n\t\t\t\t\t\tres.status(StatusCodes.TooManyRequests).json([{ message: 'Too Many Requests' }]),\n\t\t\t\t}),\n\t\t\t)\n\t\t/* if (this.settings.slowdown.enabled) app.use(slowDown({\n\t\t\twindowMs: this.settings.slowdown.periodInMs,\n\t\t\tdelayAfter: this.settings.slowdown.delayAfter,\n\t\t\tdelayMs: this.settings.slowdown.delayInMs\n\t\t})) */\n\t}\n}\n"]}
|
|
@@ -1,121 +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; }var _cookie = require('@fastify/cookie'); var _cookie2 = _interopRequireDefault(_cookie);
|
|
2
|
-
var _cors = require('@fastify/cors'); var _cors2 = _interopRequireDefault(_cors);
|
|
3
|
-
var _formbody = require('@fastify/formbody'); var _formbody2 = _interopRequireDefault(_formbody);
|
|
4
|
-
var _helmet = require('@fastify/helmet'); var _helmet2 = _interopRequireDefault(_helmet);
|
|
5
|
-
var _multipart = require('@fastify/multipart'); var _multipart2 = _interopRequireDefault(_multipart);
|
|
6
|
-
var _ratelimit = require('@fastify/rate-limit'); var _ratelimit2 = _interopRequireDefault(_ratelimit);
|
|
7
|
-
var _static = require('@fastify/static'); var _static2 = _interopRequireDefault(_static);
|
|
8
|
-
var _fastify = require('fastify'); var _fastify2 = _interopRequireDefault(_fastify);
|
|
9
|
-
var _qs = require('qs'); var _qs2 = _interopRequireDefault(_qs);
|
|
10
|
-
var _indexcjs = require('../../errors/index.cjs');
|
|
11
|
-
var _indexcjs3 = require('../../instance/index.cjs');
|
|
12
|
-
var _indexcjs5 = require('../../utilities/index.cjs');
|
|
13
|
-
var _requestscjs = require('../requests.cjs');
|
|
14
|
-
var _typescjs = require('../types.cjs');
|
|
15
|
-
var _basecjs = require('./base.cjs');
|
|
16
|
-
class FastifyServer extends _basecjs.Server {
|
|
17
|
-
constructor(config) {
|
|
18
|
-
const instance = _indexcjs3.Instance.get();
|
|
19
|
-
const app = _fastify2.default.call(void 0, {
|
|
20
|
-
disableRequestLogging: !config.requests.log,
|
|
21
|
-
loggerInstance: config.requests.log ? instance.log : void 0,
|
|
22
|
-
ajv: { customOptions: { coerceTypes: false } },
|
|
23
|
-
routerOptions: {
|
|
24
|
-
ignoreTrailingSlash: true,
|
|
25
|
-
caseSensitive: false
|
|
26
|
-
},
|
|
27
|
-
schemaErrorFormatter: (errors, data) => new (0, _indexcjs.ValidationError)(
|
|
28
|
-
errors.map((error) => ({
|
|
29
|
-
messages: [_nullishCoalesce(error.message, () => ( ""))],
|
|
30
|
-
field: `${data}${error.instancePath}`.replaceAll("/", ".")
|
|
31
|
-
}))
|
|
32
|
-
)
|
|
33
|
-
});
|
|
34
|
-
super(app.server, config, {
|
|
35
|
-
parseRequest: async (req) => {
|
|
36
|
-
const { body, files } = excludeBufferKeys(_nullishCoalesce(req.body, () => ( {})));
|
|
37
|
-
return new (0, _requestscjs.Request)({
|
|
38
|
-
ip: req.ip,
|
|
39
|
-
body,
|
|
40
|
-
cookies: _nullishCoalesce(req.cookies, () => ( {})),
|
|
41
|
-
params: _nullishCoalesce(req.params, () => ( {})),
|
|
42
|
-
query: _nullishCoalesce(req.query, () => ( {})),
|
|
43
|
-
method: req.method,
|
|
44
|
-
path: req.url,
|
|
45
|
-
headers: req.headers,
|
|
46
|
-
files
|
|
47
|
-
});
|
|
48
|
-
},
|
|
49
|
-
handleResponse: async (res, response) => {
|
|
50
|
-
for (const [key, { value, ...opts }] of Object.entries(response.cookies)) res = res.setCookie(key, value, opts);
|
|
51
|
-
await res.status(response.status).headers(response.headers).send(response.body);
|
|
52
|
-
},
|
|
53
|
-
registerRoute: (method, path, cb) => {
|
|
54
|
-
app.register(async (inst) => {
|
|
55
|
-
inst.route({ url: path, method, handler: cb });
|
|
56
|
-
});
|
|
57
|
-
},
|
|
58
|
-
registerErrorHandler: (cb) => {
|
|
59
|
-
app.setErrorHandler(cb);
|
|
60
|
-
},
|
|
61
|
-
registerNotFoundHandler: (cb) => {
|
|
62
|
-
app.setNotFoundHandler(cb);
|
|
63
|
-
},
|
|
64
|
-
start: async (port) => {
|
|
65
|
-
await app.ready();
|
|
66
|
-
await app.listen({ port, host: "0.0.0.0" });
|
|
67
|
-
_indexcjs3.Instance.on("close", app.close, 1);
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
app.decorateRequest("savedReq", null);
|
|
72
|
-
app.setValidatorCompiler(() => () => true);
|
|
73
|
-
app.setSerializerCompiler(() => (data) => JSON.stringify(data));
|
|
74
|
-
if (config.publicPath) app.register(_static2.default, { root: config.publicPath });
|
|
75
|
-
app.register(_cookie2.default, {});
|
|
76
|
-
app.register(_cors2.default, this.cors);
|
|
77
|
-
app.register(_formbody2.default, { parser: (str) => _qs2.default.parse(str) });
|
|
78
|
-
app.register(_helmet2.default, { crossOriginResourcePolicy: { policy: "cross-origin" }, contentSecurityPolicy: false });
|
|
79
|
-
app.register(_multipart2.default, {
|
|
80
|
-
attachFieldsToBody: "keyValues",
|
|
81
|
-
throwFileSizeLimit: false,
|
|
82
|
-
limits: { fileSize: instance.settings.utils.maxFileUploadSizeInMb * 1024 * 1024 },
|
|
83
|
-
onFile: async (f) => {
|
|
84
|
-
const buffer = await f.toBuffer();
|
|
85
|
-
const parsed = {
|
|
86
|
-
name: f.filename,
|
|
87
|
-
type: f.mimetype,
|
|
88
|
-
size: buffer.byteLength,
|
|
89
|
-
isTruncated: f.file.truncated,
|
|
90
|
-
data: buffer,
|
|
91
|
-
duration: await _indexcjs5.getMediaDuration.call(void 0, buffer)
|
|
92
|
-
};
|
|
93
|
-
f.value = parsed;
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
if (config.requests.rateLimit.enabled)
|
|
97
|
-
app.register(_ratelimit2.default, {
|
|
98
|
-
max: config.requests.rateLimit.limit,
|
|
99
|
-
timeWindow: config.requests.rateLimit.periodInMs,
|
|
100
|
-
errorResponseBuilder: (_, context) => ({
|
|
101
|
-
statusCode: _typescjs.StatusCodes.TooManyRequests,
|
|
102
|
-
message: JSON.stringify([{ message: `Too Many Requests. Retry in ${context.after}` }])
|
|
103
|
-
})
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
function excludeBufferKeys(body) {
|
|
108
|
-
if (typeof body !== "object") return { body, files: {} };
|
|
109
|
-
const entries = Object.entries(_nullishCoalesce(body, () => ( {})));
|
|
110
|
-
const isFile = (val) => Array.isArray(val) ? isFile(val.at(0)) : Buffer.isBuffer(_optionalChain([val, 'optionalAccess', _2 => _2.data]));
|
|
111
|
-
const fileEntries = entries.filter(([_, value]) => isFile(value)).map(([key, value]) => [key, Array.isArray(value) ? value : [value]]);
|
|
112
|
-
const nonFileEntries = entries.filter(([_, value]) => !isFile(value));
|
|
113
|
-
return {
|
|
114
|
-
body: Object.fromEntries(nonFileEntries),
|
|
115
|
-
files: Object.fromEntries(fileEntries)
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
exports.FastifyServer = FastifyServer;
|
|
121
|
-
//# sourceMappingURL=fastify.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/impls/fastify.ts","/home/runner/work/equipped/equipped/dist/cjs/server/impls/fastify.cjs"],"names":[],"mappings":"AAAA,02BAA0B;AAC1B,iFAAwB;AACxB,iGAA4B;AAC5B,yFAA0B;AAC1B,qGAA6B;AAC7B,sGAA6B;AAC7B,yFAA0B;AAE1B,oFAAoB;AAEpB,gEAAe;AAEf,kDAAgC;AAChC,qDAAyB;AACzB,sDAAiC;AAEjC,8CAAwB;AACxB,wCAA+C;AAC/C,qCAAuB;AAEhB,MAAM,cAAA,QAAsB,gBAAqC;AAAA,EACvE,WAAA,CAAY,MAAA,EAAsB;AACjC,IAAA,MAAM,SAAA,EAAW,mBAAA,CAAS,GAAA,CAAI,CAAA;AAC9B,IAAA,MAAM,IAAA,EAAM,+BAAA;AAAQ,MACnB,qBAAA,EAAuB,CAAC,MAAA,CAAO,QAAA,CAAS,GAAA;AAAA,MACxC,cAAA,EAAgB,MAAA,CAAO,QAAA,CAAS,IAAA,EAAM,QAAA,CAAS,IAAA,EAAM,KAAA,CAAA;AAAA,MACrD,GAAA,EAAK,EAAE,aAAA,EAAe,EAAE,WAAA,EAAa,MAAM,EAAE,CAAA;AAAA,MAC7C,aAAA,EAAe;AAAA,QACd,mBAAA,EAAqB,IAAA;AAAA,QACrB,aAAA,EAAe;AAAA,MAChB,CAAA;AAAA,MACA,oBAAA,EAAsB,CAAC,MAAA,EAAQ,IAAA,EAAA,GAC9B,IAAI,8BAAA;AAAA,QACH,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAA,GAAA,CAAW;AAAA,UACtB,QAAA,EAAU,kBAAC,KAAA,CAAM,OAAA,UAAW,IAAE,CAAA;AAAA,UAC9B,KAAA,EAAO,CAAA,EAAA;AACN,QAAA;AACH,MAAA;AACD,IAAA;AACS,IAAA;AACT,MAAA;AACS,QAAA;AAED,QAAA;AACE,UAAA;AACR,UAAA;AACA,UAAA;AACQ,UAAA;AACD,UAAA;AACM,UAAA;AACP,UAAA;AACN,UAAA;AACA,UAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACC,QAAA;AACU,QAAA;AACX,MAAA;AACA,MAAA;AACK,QAAA;AACE,UAAA;AACL,QAAA;AACF,MAAA;AACA,MAAA;AACK,QAAA;AACL,MAAA;AACA,MAAA;AACK,QAAA;AACL,MAAA;AACO,MAAA;AACI,QAAA;AACA,QAAA;AACD,QAAA;AACF,QAAA;AACR,MAAA;AACA,IAAA;AAEG,IAAA;AACA,IAAA;AACA,IAAA;AACO,IAAA;AACE,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACZ,MAAA;AACA,MAAA;AACU,MAAA;AACF,MAAA;AACD,QAAA;AACA,QAAA;AACG,UAAA;AACA,UAAA;AACF,UAAA;AACN,UAAA;AACM,UAAA;AACN,UAAA;AACD,QAAA;AAEU,QAAA;AACX,MAAA;AACA,IAAA;AAMU,IAAA;AACN,MAAA;AACE,QAAA;AACL,QAAA;AACA,QAAA;AACC,UAAA;AACA,UAAA;AACD,QAAA;AACA,MAAA;AACH,EAAA;AACD;AAES;AACG,EAAA;AACK,EAAA;AACA,EAAA;AACV,EAAA;AACA,EAAA;AACC,EAAA;AACU,IAAA;AAC8B,IAAA;AAC/C,EAAA;AACD;ACdkB;AACA;AACA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/impls/fastify.cjs","sourcesContent":["import fastifyCookie from '@fastify/cookie'\nimport fastifyCors from '@fastify/cors'\nimport fastifyFormBody from '@fastify/formbody'\nimport fastifyHelmet from '@fastify/helmet'\nimport fastifyMultipart from '@fastify/multipart'\nimport fastifyRateLimit from '@fastify/rate-limit'\nimport fastifyStatic from '@fastify/static'\nimport type { FastifyReply, FastifyRequest } from 'fastify'\nimport Fastify from 'fastify'\n// import fastifySlowDown from 'fastify-slow-down'\nimport qs from 'qs'\n\nimport { ValidationError } from '../../errors'\nimport { Instance } from '../../instance'\nimport { getMediaDuration } from '../../utilities'\nimport type { ServerConfig } from '../pipes'\nimport { Request } from '../requests'\nimport { type IncomingFile, StatusCodes } from '../types'\nimport { Server } from './base'\n\nexport class FastifyServer extends Server<FastifyRequest, FastifyReply> {\n\tconstructor(config: ServerConfig) {\n\t\tconst instance = Instance.get()\n\t\tconst app = Fastify({\n\t\t\tdisableRequestLogging: !config.requests.log,\n\t\t\tloggerInstance: config.requests.log ? instance.log : undefined,\n\t\t\tajv: { customOptions: { coerceTypes: false } },\n\t\t\trouterOptions: {\n\t\t\t\tignoreTrailingSlash: true,\n\t\t\t\tcaseSensitive: false,\n\t\t\t},\n\t\t\tschemaErrorFormatter: (errors, data) =>\n\t\t\t\tnew ValidationError(\n\t\t\t\t\terrors.map((error) => ({\n\t\t\t\t\t\tmessages: [error.message ?? ''],\n\t\t\t\t\t\tfield: `${data}${error.instancePath}`.replaceAll('/', '.'),\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t})\n\t\tsuper(app.server, config, {\n\t\t\tparseRequest: async (req) => {\n\t\t\t\tconst { body, files } = excludeBufferKeys(req.body ?? {})\n\n\t\t\t\treturn new Request({\n\t\t\t\t\tip: req.ip,\n\t\t\t\t\tbody,\n\t\t\t\t\tcookies: req.cookies ?? {},\n\t\t\t\t\tparams: req.params ?? <any>{},\n\t\t\t\t\tquery: req.query ?? {},\n\t\t\t\t\tmethod: <any>req.method,\n\t\t\t\t\tpath: req.url,\n\t\t\t\t\theaders: req.headers,\n\t\t\t\t\tfiles,\n\t\t\t\t})\n\t\t\t},\n\t\t\thandleResponse: async (res, response) => {\n\t\t\t\tfor (const [key, { value, ...opts }] of Object.entries(response.cookies)) res = res.setCookie(key, value, opts)\n\t\t\t\tawait res.status(response.status).headers(response.headers).send(response.body)\n\t\t\t},\n\t\t\tregisterRoute: (method, path, cb) => {\n\t\t\t\tapp.register(async (inst) => {\n\t\t\t\t\tinst.route({ url: path, method, handler: cb })\n\t\t\t\t})\n\t\t\t},\n\t\t\tregisterErrorHandler: (cb) => {\n\t\t\t\tapp.setErrorHandler(cb)\n\t\t\t},\n\t\t\tregisterNotFoundHandler: (cb) => {\n\t\t\t\tapp.setNotFoundHandler(cb)\n\t\t\t},\n\t\t\tstart: async (port) => {\n\t\t\t\tawait app.ready()\n\t\t\t\tawait app.listen({ port, host: '0.0.0.0' })\n\t\t\t\tInstance.on('close', app.close, 1)\n\t\t\t\treturn true\n\t\t\t},\n\t\t})\n\n\t\tapp.decorateRequest('savedReq', null)\n\t\tapp.setValidatorCompiler(() => () => true)\n\t\tapp.setSerializerCompiler(() => (data) => JSON.stringify(data))\n\t\tif (config.publicPath) app.register(fastifyStatic, { root: config.publicPath })\n\t\tapp.register(fastifyCookie, {})\n\t\tapp.register(fastifyCors, this.cors)\n\t\tapp.register(fastifyFormBody, { parser: (str) => qs.parse(str) })\n\t\tapp.register(fastifyHelmet, { crossOriginResourcePolicy: { policy: 'cross-origin' }, contentSecurityPolicy: false })\n\t\tapp.register(fastifyMultipart, {\n\t\t\tattachFieldsToBody: 'keyValues',\n\t\t\tthrowFileSizeLimit: false,\n\t\t\tlimits: { fileSize: instance.settings.utils.maxFileUploadSizeInMb * 1024 * 1024 },\n\t\t\tonFile: async (f) => {\n\t\t\t\tconst buffer = await f.toBuffer()\n\t\t\t\tconst parsed: IncomingFile = {\n\t\t\t\t\tname: f.filename,\n\t\t\t\t\ttype: f.mimetype,\n\t\t\t\t\tsize: buffer.byteLength,\n\t\t\t\t\tisTruncated: f.file.truncated,\n\t\t\t\t\tdata: buffer,\n\t\t\t\t\tduration: await getMediaDuration(buffer),\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tf.value = parsed\n\t\t\t},\n\t\t})\n\t\t/* if (this.settings.slowdown.enabled) app.register(fastifySlowDown, {\n\t\t\ttimeWindow: this.settings.slowdown.periodInMs,\n\t\t\tdelayAfter: this.settings.slowdown.delayAfter,\n\t\t\tdelay: this.settings.slowdown.delayInMs\n\t\t}) */\n\t\tif (config.requests.rateLimit.enabled)\n\t\t\tapp.register(fastifyRateLimit, {\n\t\t\t\tmax: config.requests.rateLimit.limit,\n\t\t\t\ttimeWindow: config.requests.rateLimit.periodInMs,\n\t\t\t\terrorResponseBuilder: (_, context) => ({\n\t\t\t\t\tstatusCode: StatusCodes.TooManyRequests,\n\t\t\t\t\tmessage: JSON.stringify([{ message: `Too Many Requests. Retry in ${context.after}` }]),\n\t\t\t\t}),\n\t\t\t})\n\t}\n}\n\nfunction excludeBufferKeys<T>(body: T) {\n\tif (typeof body !== 'object') return { body, files: {} }\n\tconst entries = Object.entries(body ?? {})\n\tconst isFile = (val: any) => (Array.isArray(val) ? isFile(val.at(0)) : Buffer.isBuffer(val?.data))\n\tconst fileEntries = entries.filter(([_, value]) => isFile(value)).map(([key, value]) => [key, Array.isArray(value) ? value : [value]])\n\tconst nonFileEntries = entries.filter(([_, value]) => !isFile(value))\n\treturn {\n\t\tbody: <T>Object.fromEntries(nonFileEntries),\n\t\tfiles: <Record<string, IncomingFile[]>>Object.fromEntries(fileEntries),\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; }var _cookie = require('@fastify/cookie'); var _cookie2 = _interopRequireDefault(_cookie);var _cors = require('@fastify/cors'); var _cors2 = _interopRequireDefault(_cors);var _formbody = require('@fastify/formbody'); var _formbody2 = _interopRequireDefault(_formbody);var _helmet = require('@fastify/helmet'); var _helmet2 = _interopRequireDefault(_helmet);var _multipart = require('@fastify/multipart'); var _multipart2 = _interopRequireDefault(_multipart);var _ratelimit = require('@fastify/rate-limit'); var _ratelimit2 = _interopRequireDefault(_ratelimit);var _static = require('@fastify/static'); var _static2 = _interopRequireDefault(_static);var _fastify = require('fastify'); var _fastify2 = _interopRequireDefault(_fastify);var _qs = require('qs'); var _qs2 = _interopRequireDefault(_qs);var _indexmincjs = require('../../errors/index.min.cjs');var _indexmincjs3 = require('../../instance/index.min.cjs');var _indexmincjs5 = require('../../utilities/index.min.cjs');var _requestsmincjs = require('../requests.min.cjs');var _typesmincjs = require('../types.min.cjs');var _basemincjs = require('./base.min.cjs');class N extends _basemincjs.Server{constructor(i){const o=_indexmincjs3.Instance.get(),r=_fastify2.default.call(void 0, {disableRequestLogging:!i.requests.log,loggerInstance:i.requests.log?o.log:void 0,ajv:{customOptions:{coerceTypes:!1}},routerOptions:{ignoreTrailingSlash:!0,caseSensitive:!1},schemaErrorFormatter:(e,t)=>new (0, _indexmincjs.ValidationError)(e.map(s=>({messages:[_nullishCoalesce(s.message, () => (""))],field:`${t}${s.instancePath}`.replaceAll("/",".")})))});super(r.server,i,{parseRequest:async e=>{const{body:t,files:s}=C(_nullishCoalesce(e.body, () => ({})));return new (0, _requestsmincjs.Request)({ip:e.ip,body:t,cookies:_nullishCoalesce(e.cookies, () => ({})),params:_nullishCoalesce(e.params, () => ({})),query:_nullishCoalesce(e.query, () => ({})),method:e.method,path:e.url,headers:e.headers,files:s})},handleResponse:async(e,t)=>{for(const[s,{value:n,...f}]of Object.entries(t.cookies))e=e.setCookie(s,n,f);await e.status(t.status).headers(t.headers).send(t.body)},registerRoute:(e,t,s)=>{r.register(async n=>{n.route({url:t,method:e,handler:s})})},registerErrorHandler:e=>{r.setErrorHandler(e)},registerNotFoundHandler:e=>{r.setNotFoundHandler(e)},start:async e=>(await r.ready(),await r.listen({port:e,host:"0.0.0.0"}),_indexmincjs3.Instance.on("close",r.close,1),!0)}),r.decorateRequest("savedReq",null),r.setValidatorCompiler(()=>()=>!0),r.setSerializerCompiler(()=>e=>JSON.stringify(e)),i.publicPath&&r.register(_static2.default,{root:i.publicPath}),r.register(_cookie2.default,{}),r.register(_cors2.default,this.cors),r.register(_formbody2.default,{parser:e=>_qs2.default.parse(e)}),r.register(_helmet2.default,{crossOriginResourcePolicy:{policy:"cross-origin"},contentSecurityPolicy:!1}),r.register(_multipart2.default,{attachFieldsToBody:"keyValues",throwFileSizeLimit:!1,limits:{fileSize:o.settings.utils.maxFileUploadSizeInMb*1024*1024},onFile:async e=>{const t=await e.toBuffer(),s={name:e.filename,type:e.mimetype,size:t.byteLength,isTruncated:e.file.truncated,data:t,duration:await _indexmincjs5.getMediaDuration.call(void 0, t)};e.value=s}}),i.requests.rateLimit.enabled&&r.register(_ratelimit2.default,{max:i.requests.rateLimit.limit,timeWindow:i.requests.rateLimit.periodInMs,errorResponseBuilder:(e,t)=>({statusCode:_typesmincjs.StatusCodes.TooManyRequests,message:JSON.stringify([{message:`Too Many Requests. Retry in ${t.after}`}])})})}}function C(a){if(typeof a!="object")return{body:a,files:{}};const i=Object.entries(_nullishCoalesce(a, () => ({}))),o=t=>Array.isArray(t)?o(t.at(0)):Buffer.isBuffer(_optionalChain([t, 'optionalAccess', _ => _.data])),r=i.filter(([t,s])=>o(s)).map(([t,s])=>[t,Array.isArray(s)?s:[s]]),e=i.filter(([t,s])=>!o(s));return{body:Object.fromEntries(e),files:Object.fromEntries(r)}}exports.FastifyServer = N;
|
|
2
|
-
//# sourceMappingURL=fastify.min.cjs.map
|