equipped 5.2.8 → 5.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +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 +1705 -0
- package/dist/cjs/server/adapters/express/index.cjs.map +1 -0
- package/dist/cjs/server/adapters/express/index.min.cjs +32 -0
- package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -0
- package/dist/cjs/server/adapters/fastify/index.cjs +1709 -0
- package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -0
- package/dist/cjs/server/adapters/fastify/index.min.cjs +32 -0
- package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -0
- package/dist/cjs/server/index.cjs +1600 -9
- package/dist/cjs/server/index.cjs.map +1 -1
- package/dist/cjs/server/index.min.cjs +31 -1
- package/dist/cjs/server/index.min.cjs.map +1 -1
- package/dist/cjs/types/index.cjs +18 -1
- package/dist/cjs/types/index.cjs.map +1 -1
- package/dist/cjs/types/index.min.cjs +1 -1
- package/dist/cjs/types/index.min.cjs.map +1 -1
- package/dist/cjs/utilities/index.cjs +862 -7
- package/dist/cjs/utilities/index.cjs.map +1 -1
- package/dist/cjs/utilities/index.min.cjs +3 -1
- package/dist/cjs/utilities/index.min.cjs.map +1 -1
- package/dist/cjs/validations/index.cjs +679 -10
- package/dist/cjs/validations/index.cjs.map +1 -1
- package/dist/cjs/validations/index.min.cjs +3 -1
- package/dist/cjs/validations/index.min.cjs.map +1 -1
- package/dist/esm/cache/adapters/in-memory/index.min.mjs +2 -0
- package/dist/esm/cache/adapters/in-memory/index.min.mjs.map +1 -0
- package/dist/esm/cache/adapters/in-memory/index.mjs +93 -0
- package/dist/esm/cache/adapters/in-memory/index.mjs.map +1 -0
- package/dist/esm/cache/adapters/redis/index.min.mjs +2 -0
- package/dist/esm/cache/adapters/redis/index.mjs +13 -0
- package/dist/esm/cache/index.min.mjs +1 -1
- package/dist/esm/cache/index.min.mjs.map +1 -1
- package/dist/esm/cache/index.mjs +9 -4
- package/dist/esm/cache/index.mjs.map +1 -1
- package/dist/esm/chunk-2TCFNKRZ.mjs +1824 -0
- package/dist/esm/chunk-2TCFNKRZ.mjs.map +1 -0
- package/dist/esm/chunk-6DW4GW3R.min.mjs +2 -0
- package/dist/esm/chunk-6DW4GW3R.min.mjs.map +1 -0
- package/dist/esm/chunk-6SB5M4XH.mjs +795 -0
- package/dist/esm/chunk-6SB5M4XH.mjs.map +1 -0
- package/dist/esm/chunk-AQY7QVYI.min.mjs +2 -0
- package/dist/esm/chunk-AUKXL4EA.min.mjs +2 -0
- package/dist/esm/chunk-AUKXL4EA.min.mjs.map +1 -0
- package/dist/esm/chunk-BJNIUCPT.min.mjs +2 -0
- package/dist/esm/chunk-BJNIUCPT.min.mjs.map +1 -0
- package/dist/esm/chunk-DKPZJIIR.mjs +29 -0
- package/dist/esm/chunk-DKPZJIIR.mjs.map +1 -0
- package/dist/esm/chunk-DSUJ5FUL.min.mjs +2 -0
- package/dist/esm/chunk-DSUJ5FUL.min.mjs.map +1 -0
- package/dist/esm/chunk-ECBJ3NT3.min.mjs +2 -0
- package/dist/esm/chunk-ECBJ3NT3.min.mjs.map +1 -0
- package/dist/{types/events/types/kafka.js → esm/chunk-I4BB436E.mjs} +60 -37
- package/dist/esm/chunk-I4BB436E.mjs.map +1 -0
- package/dist/esm/chunk-IEBC3OWN.mjs +22 -0
- package/dist/esm/chunk-IEBC3OWN.mjs.map +1 -0
- package/dist/esm/chunk-J5LGTIGS.mjs +10 -0
- package/dist/esm/chunk-KW3PBDFD.mjs +53 -0
- package/dist/esm/chunk-KW3PBDFD.mjs.map +1 -0
- package/dist/esm/chunk-LTDVZJYJ.min.mjs +32 -0
- package/dist/esm/chunk-LTDVZJYJ.min.mjs.map +1 -0
- package/dist/esm/chunk-MYGAF2AC.min.mjs +2 -0
- package/dist/esm/chunk-MYGAF2AC.min.mjs.map +1 -0
- package/dist/esm/chunk-OXI6IKAM.min.mjs +2 -0
- package/dist/esm/chunk-OXI6IKAM.min.mjs.map +1 -0
- package/dist/esm/chunk-RIRBNBTC.mjs +113 -0
- package/dist/esm/chunk-RIRBNBTC.mjs.map +1 -0
- package/dist/esm/chunk-TWKHVLLT.mjs +1280 -0
- package/dist/esm/chunk-TWKHVLLT.mjs.map +1 -0
- package/dist/esm/chunk-VCCS7CAI.mjs +8 -0
- package/dist/esm/chunk-VCCS7CAI.mjs.map +1 -0
- package/dist/esm/chunk-WHIWTP2Z.min.mjs +2 -0
- package/dist/esm/chunk-WHIWTP2Z.min.mjs.map +1 -0
- package/dist/esm/chunk-YTHRK2PO.mjs +126 -0
- package/dist/esm/chunk-YTHRK2PO.mjs.map +1 -0
- package/dist/esm/chunk-YTM6ZURZ.min.mjs +2 -0
- package/dist/esm/chunk-YTM6ZURZ.min.mjs.map +1 -0
- package/dist/esm/dbs/adapters/mongodb/index.min.mjs +2 -0
- package/dist/esm/dbs/adapters/mongodb/index.min.mjs.map +1 -0
- package/dist/esm/dbs/adapters/mongodb/index.mjs +419 -0
- package/dist/esm/dbs/adapters/mongodb/index.mjs.map +1 -0
- package/dist/esm/dbs/index.min.mjs +1 -1
- package/dist/esm/dbs/index.min.mjs.map +1 -1
- package/dist/esm/dbs/index.mjs +22 -6
- package/dist/esm/dbs/index.mjs.map +1 -1
- package/dist/esm/errors/index.min.mjs +1 -1
- package/dist/esm/errors/index.min.mjs.map +1 -1
- package/dist/esm/errors/index.mjs +22 -8
- package/dist/esm/errors/index.mjs.map +1 -1
- package/dist/esm/events/adapters/kafka/index.min.mjs +2 -0
- package/dist/esm/events/adapters/kafka/index.min.mjs.map +1 -0
- package/dist/esm/events/adapters/kafka/index.mjs +12 -0
- package/dist/esm/events/adapters/kafka/index.mjs.map +1 -0
- package/dist/esm/events/adapters/rabbitmq/index.min.mjs +2 -0
- package/dist/esm/events/adapters/rabbitmq/index.min.mjs.map +1 -0
- package/dist/esm/events/adapters/rabbitmq/index.mjs +92 -0
- package/dist/esm/events/adapters/rabbitmq/index.mjs.map +1 -0
- package/dist/esm/events/index.min.mjs +1 -1
- package/dist/esm/events/index.min.mjs.map +1 -1
- package/dist/esm/events/index.mjs +7 -4
- package/dist/esm/events/index.mjs.map +1 -1
- package/dist/esm/index.min.mjs +1 -1
- package/dist/esm/index.min.mjs.map +1 -1
- package/dist/esm/index.mjs +8 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/instance/index.min.mjs +1 -3
- package/dist/esm/instance/index.min.mjs.map +1 -1
- package/dist/esm/instance/index.mjs +4 -132
- package/dist/esm/instance/index.mjs.map +1 -1
- package/dist/esm/introspection-GP3G26B6.min.mjs +2 -0
- package/dist/esm/introspection-GP3G26B6.min.mjs.map +1 -0
- package/dist/esm/introspection-Y7EXSYPD.mjs +10 -0
- package/dist/esm/introspection-Y7EXSYPD.mjs.map +1 -0
- package/dist/esm/jobs/adapters/redis/index.min.mjs +2 -0
- package/dist/esm/jobs/adapters/redis/index.min.mjs.map +1 -0
- package/dist/esm/jobs/{types/redis.mjs → adapters/redis/index.mjs} +71 -56
- package/dist/esm/jobs/adapters/redis/index.mjs.map +1 -0
- package/dist/esm/jobs/index.min.mjs +1 -1
- package/dist/esm/jobs/index.min.mjs.map +1 -1
- package/dist/esm/jobs/index.mjs +9 -2
- package/dist/esm/jobs/index.mjs.map +1 -1
- package/dist/esm/orm/adapters/in-memory/index.min.mjs +2 -0
- package/dist/esm/orm/adapters/in-memory/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/in-memory/index.mjs +11 -0
- package/dist/esm/orm/adapters/in-memory/index.mjs.map +1 -0
- package/dist/esm/orm/adapters/json/index.min.mjs +2 -0
- package/dist/esm/orm/adapters/json/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/json/index.mjs +980 -0
- package/dist/esm/orm/adapters/json/index.mjs.map +1 -0
- package/dist/esm/orm/adapters/mongodb/index.min.mjs +2 -0
- package/dist/esm/orm/adapters/mongodb/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/mongodb/index.mjs +1539 -0
- package/dist/esm/orm/adapters/mongodb/index.mjs.map +1 -0
- package/dist/esm/orm/adapters/postgresql/index.min.mjs +47 -0
- package/dist/esm/orm/adapters/postgresql/index.min.mjs.map +1 -0
- package/dist/esm/orm/adapters/postgresql/index.mjs +2070 -0
- package/dist/esm/orm/adapters/postgresql/index.mjs.map +1 -0
- package/dist/esm/orm/index.min.mjs +2 -0
- package/dist/esm/orm/index.min.mjs.map +1 -0
- package/dist/esm/orm/index.mjs +7326 -0
- package/dist/esm/orm/index.mjs.map +1 -0
- package/dist/esm/server/adapters/express/index.min.mjs +2 -0
- package/dist/esm/server/adapters/express/index.min.mjs.map +1 -0
- package/dist/esm/server/adapters/express/index.mjs +126 -0
- package/dist/esm/server/adapters/express/index.mjs.map +1 -0
- package/dist/esm/server/adapters/fastify/index.min.mjs +2 -0
- package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -0
- package/dist/{types/server/impls/fastify.js → esm/server/adapters/fastify/index.mjs} +56 -45
- package/dist/esm/server/adapters/fastify/index.mjs.map +1 -0
- package/dist/esm/server/index.min.mjs +1 -1
- package/dist/esm/server/index.min.mjs.map +1 -1
- package/dist/esm/server/index.mjs +38 -9
- package/dist/esm/server/index.mjs.map +1 -1
- package/dist/esm/types/index.min.mjs +0 -1
- package/dist/esm/types/index.min.mjs.map +1 -1
- package/dist/esm/types/index.mjs +0 -1
- package/dist/esm/types/index.mjs.map +1 -1
- package/dist/esm/utilities/index.min.mjs +1 -1
- package/dist/esm/utilities/index.min.mjs.map +1 -1
- package/dist/esm/utilities/index.mjs +22 -9
- package/dist/esm/utilities/index.mjs.map +1 -1
- package/dist/esm/validations/index.min.mjs +1 -1
- package/dist/esm/validations/index.min.mjs.map +1 -1
- package/dist/esm/validations/index.mjs +8 -18
- package/dist/esm/validations/index.mjs.map +1 -1
- package/dist/types/adapter-Coap9ISX.d.ts +1435 -0
- package/dist/types/{fastify-DLPUK3vD.d.ts → base-3PpBAx1K.d.ts} +58 -143
- package/dist/types/cache/adapters/in-memory/index.d.ts +21 -0
- package/dist/types/cache/adapters/in-memory/index.js +92 -0
- package/dist/types/cache/adapters/redis/index.d.ts +73 -0
- package/dist/types/cache/adapters/redis/index.js +12 -0
- package/dist/types/cache/index.d.ts +2 -42
- package/dist/types/cache/index.js +9 -4
- package/dist/types/chunk-32DMHN3G.js +1823 -0
- package/dist/types/chunk-4LRJJSGG.js +112 -0
- package/dist/types/chunk-A2MRYMCA.js +1279 -0
- package/dist/types/chunk-H6JBLKX5.js +794 -0
- package/dist/{esm/events/types/kafka.mjs → types/chunk-IAHTILKJ.js} +59 -38
- package/dist/types/chunk-JZ2JTENY.js +125 -0
- package/dist/types/chunk-KZKFYO4V.js +7 -0
- package/dist/types/chunk-LN3A6R4Y.js +28 -0
- package/dist/types/chunk-LWUMIHL4.js +21 -0
- package/dist/types/chunk-MLKGABMK.js +9 -0
- package/dist/types/chunk-XOU2A2Y6.js +52 -0
- package/dist/types/{core-BrkNSwvc.d.ts → core-tNlIMH9Y.d.ts} +48 -38
- package/dist/types/dbs/adapters/mongodb/index.d.ts +43 -0
- package/dist/types/dbs/adapters/mongodb/index.js +418 -0
- package/dist/types/dbs/index.d.ts +14 -12
- package/dist/types/dbs/index.js +22 -6
- package/dist/types/equippedError-Cmo60Kn-.d.ts +8 -0
- package/dist/types/errors/index.d.ts +3 -3
- package/dist/types/errors/index.js +22 -8
- package/dist/types/events/adapters/kafka/index.d.ts +83 -0
- package/dist/types/events/adapters/kafka/index.js +11 -0
- package/dist/types/events/adapters/rabbitmq/index.d.ts +41 -0
- package/dist/types/events/adapters/rabbitmq/index.js +91 -0
- package/dist/types/events/index.d.ts +11 -11
- package/dist/types/events/index.js +7 -4
- package/dist/types/index.d.ts +2 -25
- package/dist/types/index.js +8 -1
- package/dist/types/instance/index.d.ts +12 -179
- package/dist/types/instance/index.js +4 -132
- package/dist/types/introspection-ZQCAW254.js +9 -0
- package/dist/types/jobs/adapters/redis/index.d.ts +93 -0
- package/dist/types/jobs/{types/redis.js → adapters/redis/index.js} +70 -55
- package/dist/types/jobs/index.d.ts +19 -35
- package/dist/types/jobs/index.js +9 -2
- package/dist/types/orm/adapters/in-memory/index.d.ts +92 -0
- package/dist/types/orm/adapters/in-memory/index.js +10 -0
- package/dist/types/orm/adapters/json/index.d.ts +72 -0
- package/dist/types/orm/adapters/json/index.js +979 -0
- package/dist/types/orm/adapters/mongodb/index.d.ts +74 -0
- package/dist/types/orm/adapters/mongodb/index.js +1538 -0
- package/dist/types/orm/adapters/postgresql/index.d.ts +112 -0
- package/dist/types/orm/adapters/postgresql/index.js +2069 -0
- package/dist/types/orm/index.d.ts +160 -0
- package/dist/types/orm/index.js +7325 -0
- package/dist/types/{requestError-C2PNWUrt.d.ts → requestError-DdaL8hc3.d.ts} +2 -8
- package/dist/types/server/adapters/express/index.d.ts +194 -0
- package/dist/types/server/adapters/express/index.js +125 -0
- package/dist/types/server/adapters/fastify/index.d.ts +219 -0
- package/dist/{esm/server/impls/fastify.mjs → types/server/adapters/fastify/index.js} +55 -46
- package/dist/types/server/index.d.ts +10 -11
- package/dist/types/server/index.js +38 -9
- package/dist/types/types/index.js +0 -1
- package/dist/types/utilities/index.d.ts +22 -9
- package/dist/types/utilities/index.js +22 -9
- package/dist/types/{validationError-Bw8OYv5s.d.ts → validationError-oigtHqBi.d.ts} +1 -1
- package/dist/types/validations/index.d.ts +3 -2
- package/dist/types/validations/index.js +8 -18
- package/package.json +154 -15
- package/dist/cjs/audit/events.cjs +0 -101
- package/dist/cjs/audit/events.cjs.map +0 -1
- package/dist/cjs/audit/events.min.cjs +0 -2
- package/dist/cjs/audit/events.min.cjs.map +0 -1
- package/dist/cjs/audit/index.cjs +0 -2
- package/dist/cjs/audit/index.cjs.map +0 -1
- package/dist/cjs/audit/index.min.cjs +0 -2
- package/dist/cjs/audit/index.min.cjs.map +0 -1
- package/dist/cjs/cache/base.cjs +0 -6
- package/dist/cjs/cache/base.cjs.map +0 -1
- package/dist/cjs/cache/base.min.cjs +0 -2
- package/dist/cjs/cache/base.min.cjs.map +0 -1
- package/dist/cjs/cache/pipes.cjs +0 -16
- package/dist/cjs/cache/pipes.cjs.map +0 -1
- package/dist/cjs/cache/pipes.min.cjs +0 -2
- package/dist/cjs/cache/pipes.min.cjs.map +0 -1
- package/dist/cjs/cache/types/in-memory.cjs +0 -47
- package/dist/cjs/cache/types/in-memory.cjs.map +0 -1
- package/dist/cjs/cache/types/in-memory.min.cjs +0 -2
- package/dist/cjs/cache/types/in-memory.min.cjs.map +0 -1
- package/dist/cjs/cache/types/redis.cjs +0 -55
- package/dist/cjs/cache/types/redis.cjs.map +0 -1
- package/dist/cjs/cache/types/redis.min.cjs +0 -2
- package/dist/cjs/cache/types/redis.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/changes.cjs +0 -36
- package/dist/cjs/dbs/base/changes.cjs.map +0 -1
- package/dist/cjs/dbs/base/changes.min.cjs +0 -2
- package/dist/cjs/dbs/base/changes.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/core.cjs +0 -1
- package/dist/cjs/dbs/base/core.cjs.map +0 -1
- package/dist/cjs/dbs/base/core.min.cjs +0 -1
- package/dist/cjs/dbs/base/core.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/db.cjs +0 -14
- package/dist/cjs/dbs/base/db.cjs.map +0 -1
- package/dist/cjs/dbs/base/db.min.cjs +0 -2
- package/dist/cjs/dbs/base/db.min.cjs.map +0 -1
- package/dist/cjs/dbs/base/types.cjs +0 -2
- package/dist/cjs/dbs/base/types.cjs.map +0 -1
- package/dist/cjs/dbs/base/types.min.cjs +0 -2
- package/dist/cjs/dbs/base/types.min.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/changes.cjs +0 -81
- package/dist/cjs/dbs/mongo/changes.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/changes.min.cjs +0 -2
- package/dist/cjs/dbs/mongo/changes.min.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/db.cjs +0 -225
- package/dist/cjs/dbs/mongo/db.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/db.min.cjs +0 -2
- package/dist/cjs/dbs/mongo/db.min.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/query.cjs +0 -66
- package/dist/cjs/dbs/mongo/query.cjs.map +0 -1
- package/dist/cjs/dbs/mongo/query.min.cjs +0 -2
- package/dist/cjs/dbs/mongo/query.min.cjs.map +0 -1
- package/dist/cjs/dbs/pipes.cjs +0 -104
- package/dist/cjs/dbs/pipes.cjs.map +0 -1
- package/dist/cjs/dbs/pipes.min.cjs +0 -2
- package/dist/cjs/dbs/pipes.min.cjs.map +0 -1
- package/dist/cjs/errors/equippedError.cjs +0 -12
- package/dist/cjs/errors/equippedError.cjs.map +0 -1
- package/dist/cjs/errors/equippedError.min.cjs +0 -2
- package/dist/cjs/errors/equippedError.min.cjs.map +0 -1
- package/dist/cjs/errors/requestError.cjs +0 -12
- package/dist/cjs/errors/requestError.cjs.map +0 -1
- package/dist/cjs/errors/requestError.min.cjs +0 -2
- package/dist/cjs/errors/requestError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/badRequestError.cjs +0 -12
- package/dist/cjs/errors/types/badRequestError.cjs.map +0 -1
- package/dist/cjs/errors/types/badRequestError.min.cjs +0 -2
- package/dist/cjs/errors/types/badRequestError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthenticatedError.cjs +0 -12
- package/dist/cjs/errors/types/notAuthenticatedError.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthenticatedError.min.cjs +0 -2
- package/dist/cjs/errors/types/notAuthenticatedError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthorizedError.cjs +0 -12
- package/dist/cjs/errors/types/notAuthorizedError.cjs.map +0 -1
- package/dist/cjs/errors/types/notAuthorizedError.min.cjs +0 -2
- package/dist/cjs/errors/types/notAuthorizedError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/notFoundError.cjs +0 -12
- package/dist/cjs/errors/types/notFoundError.cjs.map +0 -1
- package/dist/cjs/errors/types/notFoundError.min.cjs +0 -2
- package/dist/cjs/errors/types/notFoundError.min.cjs.map +0 -1
- package/dist/cjs/errors/types/tokenExpired.cjs +0 -12
- package/dist/cjs/errors/types/tokenExpired.cjs.map +0 -1
- package/dist/cjs/errors/types/tokenExpired.min.cjs +0 -2
- package/dist/cjs/errors/types/tokenExpired.min.cjs.map +0 -1
- package/dist/cjs/errors/types/validationError.cjs +0 -16
- package/dist/cjs/errors/types/validationError.cjs.map +0 -1
- package/dist/cjs/errors/types/validationError.min.cjs +0 -2
- package/dist/cjs/errors/types/validationError.min.cjs.map +0 -1
- package/dist/cjs/events/base.cjs +0 -6
- package/dist/cjs/events/base.cjs.map +0 -1
- package/dist/cjs/events/base.min.cjs +0 -2
- package/dist/cjs/events/base.min.cjs.map +0 -1
- package/dist/cjs/events/pipes.cjs +0 -28
- package/dist/cjs/events/pipes.cjs.map +0 -1
- package/dist/cjs/events/pipes.min.cjs +0 -2
- package/dist/cjs/events/pipes.min.cjs.map +0 -1
- package/dist/cjs/events/types/kafka.cjs +0 -80
- package/dist/cjs/events/types/kafka.cjs.map +0 -1
- package/dist/cjs/events/types/kafka.min.cjs +0 -2
- package/dist/cjs/events/types/kafka.min.cjs.map +0 -1
- package/dist/cjs/events/types/rabbitmq.cjs +0 -54
- package/dist/cjs/events/types/rabbitmq.cjs.map +0 -1
- package/dist/cjs/events/types/rabbitmq.min.cjs +0 -2
- package/dist/cjs/events/types/rabbitmq.min.cjs.map +0 -1
- package/dist/cjs/instance/hooks.cjs +0 -26
- package/dist/cjs/instance/hooks.cjs.map +0 -1
- package/dist/cjs/instance/hooks.min.cjs +0 -2
- package/dist/cjs/instance/hooks.min.cjs.map +0 -1
- package/dist/cjs/instance/settings.cjs +0 -57
- package/dist/cjs/instance/settings.cjs.map +0 -1
- package/dist/cjs/instance/settings.min.cjs +0 -2
- package/dist/cjs/instance/settings.min.cjs.map +0 -1
- package/dist/cjs/jobs/pipes.cjs +0 -13
- package/dist/cjs/jobs/pipes.cjs.map +0 -1
- package/dist/cjs/jobs/pipes.min.cjs +0 -2
- package/dist/cjs/jobs/pipes.min.cjs.map +0 -1
- package/dist/cjs/jobs/types/redis.cjs +0 -106
- package/dist/cjs/jobs/types/redis.cjs.map +0 -1
- package/dist/cjs/jobs/types/redis.min.cjs +0 -2
- package/dist/cjs/jobs/types/redis.min.cjs.map +0 -1
- package/dist/cjs/server/impls/base.cjs +0 -211
- package/dist/cjs/server/impls/base.cjs.map +0 -1
- package/dist/cjs/server/impls/base.min.cjs +0 -2
- package/dist/cjs/server/impls/base.min.cjs.map +0 -1
- package/dist/cjs/server/impls/express.cjs +0 -111
- package/dist/cjs/server/impls/express.cjs.map +0 -1
- package/dist/cjs/server/impls/express.min.cjs +0 -2
- package/dist/cjs/server/impls/express.min.cjs.map +0 -1
- package/dist/cjs/server/impls/fastify.cjs +0 -121
- package/dist/cjs/server/impls/fastify.cjs.map +0 -1
- package/dist/cjs/server/impls/fastify.min.cjs +0 -2
- package/dist/cjs/server/impls/fastify.min.cjs.map +0 -1
- package/dist/cjs/server/middlewares/index.cjs +0 -2
- package/dist/cjs/server/middlewares/index.cjs.map +0 -1
- package/dist/cjs/server/middlewares/index.min.cjs +0 -2
- package/dist/cjs/server/middlewares/index.min.cjs.map +0 -1
- package/dist/cjs/server/middlewares/requireAuthUser.cjs +0 -22
- package/dist/cjs/server/middlewares/requireAuthUser.cjs.map +0 -1
- package/dist/cjs/server/middlewares/requireAuthUser.min.cjs +0 -2
- package/dist/cjs/server/middlewares/requireAuthUser.min.cjs.map +0 -1
- package/dist/cjs/server/openapi.cjs +0 -191
- package/dist/cjs/server/openapi.cjs.map +0 -1
- package/dist/cjs/server/openapi.min.cjs +0 -30
- package/dist/cjs/server/openapi.min.cjs.map +0 -1
- package/dist/cjs/server/pipes.cjs +0 -67
- package/dist/cjs/server/pipes.cjs.map +0 -1
- package/dist/cjs/server/pipes.min.cjs +0 -2
- package/dist/cjs/server/pipes.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/apiKeys.cjs +0 -21
- package/dist/cjs/server/requests-auth-methods/apiKeys.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/base.cjs +0 -20
- package/dist/cjs/server/requests-auth-methods/base.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/base.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/base.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/index.cjs +0 -4
- package/dist/cjs/server/requests-auth-methods/index.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/index.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/index.min.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/jwt.cjs +0 -78
- package/dist/cjs/server/requests-auth-methods/jwt.cjs.map +0 -1
- package/dist/cjs/server/requests-auth-methods/jwt.min.cjs +0 -2
- package/dist/cjs/server/requests-auth-methods/jwt.min.cjs.map +0 -1
- package/dist/cjs/server/requests.cjs +0 -80
- package/dist/cjs/server/requests.cjs.map +0 -1
- package/dist/cjs/server/requests.min.cjs +0 -2
- package/dist/cjs/server/requests.min.cjs.map +0 -1
- package/dist/cjs/server/routes.cjs +0 -74
- package/dist/cjs/server/routes.cjs.map +0 -1
- package/dist/cjs/server/routes.min.cjs +0 -2
- package/dist/cjs/server/routes.min.cjs.map +0 -1
- package/dist/cjs/server/sockets.cjs +0 -126
- package/dist/cjs/server/sockets.cjs.map +0 -1
- package/dist/cjs/server/sockets.min.cjs +0 -2
- package/dist/cjs/server/sockets.min.cjs.map +0 -1
- package/dist/cjs/server/types.cjs +0 -34
- package/dist/cjs/server/types.cjs.map +0 -1
- package/dist/cjs/server/types.min.cjs +0 -2
- package/dist/cjs/server/types.min.cjs.map +0 -1
- package/dist/cjs/types/overrides.cjs +0 -1
- package/dist/cjs/types/overrides.cjs.map +0 -1
- package/dist/cjs/types/overrides.min.cjs +0 -1
- package/dist/cjs/types/overrides.min.cjs.map +0 -1
- package/dist/cjs/utilities/authProviders.cjs +0 -53
- package/dist/cjs/utilities/authProviders.cjs.map +0 -1
- package/dist/cjs/utilities/authProviders.min.cjs +0 -2
- package/dist/cjs/utilities/authProviders.min.cjs.map +0 -1
- package/dist/cjs/utilities/hash.cjs +0 -17
- package/dist/cjs/utilities/hash.cjs.map +0 -1
- package/dist/cjs/utilities/hash.min.cjs +0 -2
- package/dist/cjs/utilities/hash.min.cjs.map +0 -1
- package/dist/cjs/utilities/json.cjs +0 -16
- package/dist/cjs/utilities/json.cjs.map +0 -1
- package/dist/cjs/utilities/json.min.cjs +0 -2
- package/dist/cjs/utilities/json.min.cjs.map +0 -1
- package/dist/cjs/utilities/media.cjs +0 -13
- package/dist/cjs/utilities/media.cjs.map +0 -1
- package/dist/cjs/utilities/media.min.cjs +0 -2
- package/dist/cjs/utilities/media.min.cjs.map +0 -1
- package/dist/cjs/utilities/random.cjs +0 -12
- package/dist/cjs/utilities/random.cjs.map +0 -1
- package/dist/cjs/utilities/random.min.cjs +0 -2
- package/dist/cjs/utilities/random.min.cjs.map +0 -1
- package/dist/cjs/utilities/retry.cjs +0 -14
- package/dist/cjs/utilities/retry.cjs.map +0 -1
- package/dist/cjs/utilities/retry.min.cjs +0 -2
- package/dist/cjs/utilities/retry.min.cjs.map +0 -1
- package/dist/cjs/validations/valleyed.cjs +0 -43
- package/dist/cjs/validations/valleyed.cjs.map +0 -1
- package/dist/cjs/validations/valleyed.min.cjs +0 -2
- package/dist/cjs/validations/valleyed.min.cjs.map +0 -1
- package/dist/esm/audit/events.min.mjs +0 -2
- package/dist/esm/audit/events.min.mjs.map +0 -1
- package/dist/esm/audit/events.mjs +0 -101
- package/dist/esm/audit/events.mjs.map +0 -1
- package/dist/esm/audit/index.min.mjs +0 -2
- package/dist/esm/audit/index.min.mjs.map +0 -1
- package/dist/esm/audit/index.mjs +0 -2
- package/dist/esm/audit/index.mjs.map +0 -1
- package/dist/esm/cache/base.min.mjs +0 -2
- package/dist/esm/cache/base.min.mjs.map +0 -1
- package/dist/esm/cache/base.mjs +0 -6
- package/dist/esm/cache/base.mjs.map +0 -1
- package/dist/esm/cache/pipes.min.mjs +0 -2
- package/dist/esm/cache/pipes.min.mjs.map +0 -1
- package/dist/esm/cache/pipes.mjs +0 -16
- package/dist/esm/cache/pipes.mjs.map +0 -1
- package/dist/esm/cache/types/in-memory.min.mjs +0 -2
- package/dist/esm/cache/types/in-memory.min.mjs.map +0 -1
- package/dist/esm/cache/types/in-memory.mjs +0 -47
- package/dist/esm/cache/types/in-memory.mjs.map +0 -1
- package/dist/esm/cache/types/redis.min.mjs +0 -2
- package/dist/esm/cache/types/redis.min.mjs.map +0 -1
- package/dist/esm/cache/types/redis.mjs +0 -55
- package/dist/esm/cache/types/redis.mjs.map +0 -1
- package/dist/esm/dbs/base/changes.min.mjs +0 -2
- package/dist/esm/dbs/base/changes.min.mjs.map +0 -1
- package/dist/esm/dbs/base/changes.mjs +0 -36
- package/dist/esm/dbs/base/changes.mjs.map +0 -1
- package/dist/esm/dbs/base/core.min.mjs +0 -1
- package/dist/esm/dbs/base/core.mjs +0 -1
- package/dist/esm/dbs/base/db.min.mjs +0 -2
- package/dist/esm/dbs/base/db.min.mjs.map +0 -1
- package/dist/esm/dbs/base/db.mjs +0 -14
- package/dist/esm/dbs/base/db.mjs.map +0 -1
- package/dist/esm/dbs/base/types.min.mjs +0 -2
- package/dist/esm/dbs/base/types.min.mjs.map +0 -1
- package/dist/esm/dbs/base/types.mjs +0 -2
- package/dist/esm/dbs/base/types.mjs.map +0 -1
- package/dist/esm/dbs/mongo/changes.min.mjs +0 -2
- package/dist/esm/dbs/mongo/changes.min.mjs.map +0 -1
- package/dist/esm/dbs/mongo/changes.mjs +0 -81
- package/dist/esm/dbs/mongo/changes.mjs.map +0 -1
- package/dist/esm/dbs/mongo/db.min.mjs +0 -2
- package/dist/esm/dbs/mongo/db.min.mjs.map +0 -1
- package/dist/esm/dbs/mongo/db.mjs +0 -225
- package/dist/esm/dbs/mongo/db.mjs.map +0 -1
- package/dist/esm/dbs/mongo/query.min.mjs +0 -2
- package/dist/esm/dbs/mongo/query.min.mjs.map +0 -1
- package/dist/esm/dbs/mongo/query.mjs +0 -66
- package/dist/esm/dbs/mongo/query.mjs.map +0 -1
- package/dist/esm/dbs/pipes.min.mjs +0 -2
- package/dist/esm/dbs/pipes.min.mjs.map +0 -1
- package/dist/esm/dbs/pipes.mjs +0 -104
- package/dist/esm/dbs/pipes.mjs.map +0 -1
- package/dist/esm/errors/equippedError.min.mjs +0 -2
- package/dist/esm/errors/equippedError.min.mjs.map +0 -1
- package/dist/esm/errors/equippedError.mjs +0 -12
- package/dist/esm/errors/equippedError.mjs.map +0 -1
- package/dist/esm/errors/requestError.min.mjs +0 -2
- package/dist/esm/errors/requestError.min.mjs.map +0 -1
- package/dist/esm/errors/requestError.mjs +0 -12
- package/dist/esm/errors/requestError.mjs.map +0 -1
- package/dist/esm/errors/types/badRequestError.min.mjs +0 -2
- package/dist/esm/errors/types/badRequestError.min.mjs.map +0 -1
- package/dist/esm/errors/types/badRequestError.mjs +0 -12
- package/dist/esm/errors/types/badRequestError.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthenticatedError.min.mjs +0 -2
- package/dist/esm/errors/types/notAuthenticatedError.min.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthenticatedError.mjs +0 -12
- package/dist/esm/errors/types/notAuthenticatedError.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthorizedError.min.mjs +0 -2
- package/dist/esm/errors/types/notAuthorizedError.min.mjs.map +0 -1
- package/dist/esm/errors/types/notAuthorizedError.mjs +0 -12
- package/dist/esm/errors/types/notAuthorizedError.mjs.map +0 -1
- package/dist/esm/errors/types/notFoundError.min.mjs +0 -2
- package/dist/esm/errors/types/notFoundError.min.mjs.map +0 -1
- package/dist/esm/errors/types/notFoundError.mjs +0 -12
- package/dist/esm/errors/types/notFoundError.mjs.map +0 -1
- package/dist/esm/errors/types/tokenExpired.min.mjs +0 -2
- package/dist/esm/errors/types/tokenExpired.min.mjs.map +0 -1
- package/dist/esm/errors/types/tokenExpired.mjs +0 -12
- package/dist/esm/errors/types/tokenExpired.mjs.map +0 -1
- package/dist/esm/errors/types/validationError.min.mjs +0 -2
- package/dist/esm/errors/types/validationError.min.mjs.map +0 -1
- package/dist/esm/errors/types/validationError.mjs +0 -16
- package/dist/esm/errors/types/validationError.mjs.map +0 -1
- package/dist/esm/events/base.min.mjs +0 -2
- package/dist/esm/events/base.min.mjs.map +0 -1
- package/dist/esm/events/base.mjs +0 -6
- package/dist/esm/events/base.mjs.map +0 -1
- package/dist/esm/events/pipes.min.mjs +0 -2
- package/dist/esm/events/pipes.min.mjs.map +0 -1
- package/dist/esm/events/pipes.mjs +0 -28
- package/dist/esm/events/pipes.mjs.map +0 -1
- package/dist/esm/events/types/kafka.min.mjs +0 -2
- package/dist/esm/events/types/kafka.min.mjs.map +0 -1
- package/dist/esm/events/types/kafka.mjs.map +0 -1
- package/dist/esm/events/types/rabbitmq.min.mjs +0 -2
- package/dist/esm/events/types/rabbitmq.min.mjs.map +0 -1
- package/dist/esm/events/types/rabbitmq.mjs +0 -54
- package/dist/esm/events/types/rabbitmq.mjs.map +0 -1
- package/dist/esm/instance/hooks.min.mjs +0 -2
- package/dist/esm/instance/hooks.min.mjs.map +0 -1
- package/dist/esm/instance/hooks.mjs +0 -26
- package/dist/esm/instance/hooks.mjs.map +0 -1
- package/dist/esm/instance/settings.min.mjs +0 -2
- package/dist/esm/instance/settings.min.mjs.map +0 -1
- package/dist/esm/instance/settings.mjs +0 -57
- package/dist/esm/instance/settings.mjs.map +0 -1
- package/dist/esm/jobs/pipes.min.mjs +0 -2
- package/dist/esm/jobs/pipes.min.mjs.map +0 -1
- package/dist/esm/jobs/pipes.mjs +0 -13
- package/dist/esm/jobs/pipes.mjs.map +0 -1
- package/dist/esm/jobs/types/redis.min.mjs +0 -2
- package/dist/esm/jobs/types/redis.min.mjs.map +0 -1
- package/dist/esm/jobs/types/redis.mjs.map +0 -1
- package/dist/esm/server/impls/base.min.mjs +0 -2
- package/dist/esm/server/impls/base.min.mjs.map +0 -1
- package/dist/esm/server/impls/base.mjs +0 -211
- package/dist/esm/server/impls/base.mjs.map +0 -1
- package/dist/esm/server/impls/express.min.mjs +0 -2
- package/dist/esm/server/impls/express.min.mjs.map +0 -1
- package/dist/esm/server/impls/express.mjs +0 -111
- package/dist/esm/server/impls/express.mjs.map +0 -1
- package/dist/esm/server/impls/fastify.min.mjs +0 -2
- package/dist/esm/server/impls/fastify.min.mjs.map +0 -1
- package/dist/esm/server/impls/fastify.mjs.map +0 -1
- package/dist/esm/server/middlewares/index.min.mjs +0 -2
- package/dist/esm/server/middlewares/index.min.mjs.map +0 -1
- package/dist/esm/server/middlewares/index.mjs +0 -2
- package/dist/esm/server/middlewares/index.mjs.map +0 -1
- package/dist/esm/server/middlewares/requireAuthUser.min.mjs +0 -2
- package/dist/esm/server/middlewares/requireAuthUser.min.mjs.map +0 -1
- package/dist/esm/server/middlewares/requireAuthUser.mjs +0 -22
- package/dist/esm/server/middlewares/requireAuthUser.mjs.map +0 -1
- package/dist/esm/server/openapi.min.mjs +0 -30
- package/dist/esm/server/openapi.min.mjs.map +0 -1
- package/dist/esm/server/openapi.mjs +0 -191
- package/dist/esm/server/openapi.mjs.map +0 -1
- package/dist/esm/server/pipes.min.mjs +0 -2
- package/dist/esm/server/pipes.min.mjs.map +0 -1
- package/dist/esm/server/pipes.mjs +0 -67
- package/dist/esm/server/pipes.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/apiKeys.mjs +0 -21
- package/dist/esm/server/requests-auth-methods/apiKeys.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/base.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/base.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/base.mjs +0 -20
- package/dist/esm/server/requests-auth-methods/base.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/index.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/index.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/index.mjs +0 -4
- package/dist/esm/server/requests-auth-methods/index.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/jwt.min.mjs +0 -2
- package/dist/esm/server/requests-auth-methods/jwt.min.mjs.map +0 -1
- package/dist/esm/server/requests-auth-methods/jwt.mjs +0 -78
- package/dist/esm/server/requests-auth-methods/jwt.mjs.map +0 -1
- package/dist/esm/server/requests.min.mjs +0 -2
- package/dist/esm/server/requests.min.mjs.map +0 -1
- package/dist/esm/server/requests.mjs +0 -80
- package/dist/esm/server/requests.mjs.map +0 -1
- package/dist/esm/server/routes.min.mjs +0 -2
- package/dist/esm/server/routes.min.mjs.map +0 -1
- package/dist/esm/server/routes.mjs +0 -74
- package/dist/esm/server/routes.mjs.map +0 -1
- package/dist/esm/server/sockets.min.mjs +0 -2
- package/dist/esm/server/sockets.min.mjs.map +0 -1
- package/dist/esm/server/sockets.mjs +0 -126
- package/dist/esm/server/sockets.mjs.map +0 -1
- package/dist/esm/server/types.min.mjs +0 -2
- package/dist/esm/server/types.min.mjs.map +0 -1
- package/dist/esm/server/types.mjs +0 -34
- package/dist/esm/server/types.mjs.map +0 -1
- package/dist/esm/types/overrides.min.mjs +0 -1
- package/dist/esm/types/overrides.mjs +0 -1
- package/dist/esm/utilities/authProviders.min.mjs +0 -2
- package/dist/esm/utilities/authProviders.min.mjs.map +0 -1
- package/dist/esm/utilities/authProviders.mjs +0 -53
- package/dist/esm/utilities/authProviders.mjs.map +0 -1
- package/dist/esm/utilities/hash.min.mjs +0 -2
- package/dist/esm/utilities/hash.min.mjs.map +0 -1
- package/dist/esm/utilities/hash.mjs +0 -17
- package/dist/esm/utilities/hash.mjs.map +0 -1
- package/dist/esm/utilities/json.min.mjs +0 -2
- package/dist/esm/utilities/json.min.mjs.map +0 -1
- package/dist/esm/utilities/json.mjs +0 -16
- package/dist/esm/utilities/json.mjs.map +0 -1
- package/dist/esm/utilities/media.min.mjs +0 -2
- package/dist/esm/utilities/media.min.mjs.map +0 -1
- package/dist/esm/utilities/media.mjs +0 -13
- package/dist/esm/utilities/media.mjs.map +0 -1
- package/dist/esm/utilities/random.min.mjs +0 -2
- package/dist/esm/utilities/random.min.mjs.map +0 -1
- package/dist/esm/utilities/random.mjs +0 -12
- package/dist/esm/utilities/random.mjs.map +0 -1
- package/dist/esm/utilities/retry.min.mjs +0 -2
- package/dist/esm/utilities/retry.min.mjs.map +0 -1
- package/dist/esm/utilities/retry.mjs +0 -14
- package/dist/esm/utilities/retry.mjs.map +0 -1
- package/dist/esm/validations/valleyed.min.mjs +0 -2
- package/dist/esm/validations/valleyed.min.mjs.map +0 -1
- package/dist/esm/validations/valleyed.mjs +0 -43
- package/dist/esm/validations/valleyed.mjs.map +0 -1
- package/dist/types/audit/events.js +0 -100
- package/dist/types/audit/index.d.ts +0 -44
- package/dist/types/audit/index.js +0 -1
- package/dist/types/cache/base.js +0 -5
- package/dist/types/cache/pipes.js +0 -15
- package/dist/types/cache/types/in-memory.js +0 -46
- package/dist/types/cache/types/redis.js +0 -54
- package/dist/types/db-C8YY1yTO.d.ts +0 -14
- package/dist/types/db-Dj1SGto0.d.ts +0 -24
- package/dist/types/dbs/base/changes.js +0 -35
- package/dist/types/dbs/base/core.js +0 -0
- package/dist/types/dbs/base/db.js +0 -13
- package/dist/types/dbs/base/types.js +0 -1
- package/dist/types/dbs/mongo/changes.js +0 -80
- package/dist/types/dbs/mongo/db.js +0 -224
- package/dist/types/dbs/mongo/query.js +0 -65
- package/dist/types/dbs/pipes.js +0 -103
- package/dist/types/errors/equippedError.js +0 -11
- package/dist/types/errors/requestError.js +0 -11
- package/dist/types/errors/types/badRequestError.js +0 -11
- package/dist/types/errors/types/notAuthenticatedError.js +0 -11
- package/dist/types/errors/types/notAuthorizedError.js +0 -11
- package/dist/types/errors/types/notFoundError.js +0 -11
- package/dist/types/errors/types/tokenExpired.js +0 -11
- package/dist/types/errors/types/validationError.js +0 -15
- package/dist/types/events/base.js +0 -5
- package/dist/types/events/pipes.js +0 -27
- package/dist/types/events/types/rabbitmq.js +0 -53
- package/dist/types/instance/hooks.js +0 -25
- package/dist/types/instance/settings.js +0 -56
- package/dist/types/jobs/pipes.js +0 -12
- package/dist/types/kafka-Cf-TUJgv.d.ts +0 -54
- package/dist/types/server/impls/base.js +0 -210
- package/dist/types/server/impls/express.js +0 -110
- package/dist/types/server/middlewares/index.js +0 -1
- package/dist/types/server/middlewares/requireAuthUser.js +0 -21
- package/dist/types/server/openapi.js +0 -190
- package/dist/types/server/pipes.js +0 -66
- package/dist/types/server/requests-auth-methods/apiKeys.js +0 -20
- package/dist/types/server/requests-auth-methods/base.js +0 -19
- package/dist/types/server/requests-auth-methods/index.js +0 -3
- package/dist/types/server/requests-auth-methods/jwt.js +0 -77
- package/dist/types/server/requests.js +0 -79
- package/dist/types/server/routes.js +0 -73
- package/dist/types/server/sockets.js +0 -125
- package/dist/types/server/types.js +0 -33
- package/dist/types/types/overrides.js +0 -0
- package/dist/types/utilities/authProviders.js +0 -52
- package/dist/types/utilities/hash.js +0 -16
- package/dist/types/utilities/json.js +0 -15
- package/dist/types/utilities/media.js +0 -12
- package/dist/types/utilities/random.js +0 -11
- package/dist/types/utilities/retry.js +0 -13
- package/dist/types/validations/valleyed.js +0 -42
- /package/dist/esm/{dbs/base/core.min.mjs.map → cache/adapters/redis/index.min.mjs.map} +0 -0
- /package/dist/esm/{dbs/base/core.mjs.map → cache/adapters/redis/index.mjs.map} +0 -0
- /package/dist/esm/{types/overrides.min.mjs.map → chunk-AQY7QVYI.min.mjs.map} +0 -0
- /package/dist/esm/{types/overrides.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import{convert as c}from"@openapi-contrib/json-schema-to-openapi-schema";import{capitalize as d}from"valleyed";import{Instance as u}from "../instance/index.min.mjs";import{Router as y}from "./routes.min.mjs";class b{constructor(t){this.config=t;const e=u.get(),{app:s}=e.settings;this.#e={openapi:"3.0.0",info:{title:`${s.name} ${e.id}`,version:t.openapi.docsVersion??""},servers:t.openapi.docsBaseUrl?.map(n=>({url:n})),paths:{},components:{schemas:{},securitySchemes:{Authorization:{type:"apiKey",name:"authorization",in:"header"},RefreshToken:{type:"apiKey",name:"x-refresh-token",in:"header"},ApiKey:{type:"apiKey",name:"x-api-key",in:"header"}}},tags:[],"x-tagGroups":[]}}#n={};#s={};#e;cleanPath(t){let e=t.replace(/(\/\s*)+/g,"/");return e.startsWith("/")||(e=`/${e}`),e!=="/"&&e.endsWith("/")&&(e=e.slice(0,-1)),e}async register(t,e){if(t.hide)return;const s=this.#i(t.groups??[]),n=this.cleanPath(t.path),o=`(${t.method.toUpperCase()}) ${n}`;await this.#a(n,t.method.toLowerCase(),e,{operationId:o,summary:t.title??n,description:t.descriptions?.join(`
|
|
2
|
-
|
|
3
|
-
`),tags:s?[s]:void 0,security:t.security})}async#a(t,e,s,n){if(s.response.response?.length){n.responses??={};for(const r of s.response.response){n.responses[r.status]??={description:"",content:{}};const p=n.responses[r.status];p.content[r.contentType]={schema:await c(this.#t(r.schema))}}}if(s.response.responseHeaders?.length){n.responses??={};for(const r of s.response.responseHeaders){n.responses[r.status]??={description:"",content:{}},n.responses[r.status];const p=n.responses[r.status];p.headers={schema:await c(this.#t(r.schema))}}}s.request.body&&(n.requestBody={required:!0,content:{"application/json":{schema:await c(this.#t(s.request.body))}}});const o=[],a=async(r,p)=>{if(!p)return;const l=this.#r(p);for(const h of l)if(h.properties)for(const[m,f]of Object.entries(h.properties))o.push({name:m,in:r,schema:await c(this.#t(f)),required:(h.required||[]).includes(m)})};await Promise.all([a("query",s.request.query),a("path",s.request.params),a("header",s.request.headers)]),o.length&&(n.parameters=o);const i=this.#e;i.paths||(i.paths={}),i.paths[t]||(i.paths[t]={}),i.paths[t][e]=n}router(){const t="/openapi.json",e=new y({path:this.config.openapi.docsPath??"/",hide:!0});return e.get("/index.html")(s=>s.res({body:this.#o(`.${t}`),contentType:"text/html"})),e.get(t)(s=>s.res({body:this.#e})),e}#r(t){const{allOf:e,oneOf:s,anyOf:n,...o}=t;return e?e.flatMap(a=>this.#r(a)):[o]}#t(t){if(!t||typeof t!="object")return t;if(typeof t.$refId=="string"){const{$refId:e,...s}=t,n=this.#t(s);return this.#e.components?.schemas?(this.#e.components.schemas[e]=n,{$ref:`#/components/schemas/${e}`}):n}return Array.isArray(t)?t.map(e=>this.#t(e)):Object.fromEntries(Object.entries(t).map(([e,s])=>[e,this.#t(s)]))}#i(t){if(!t.length)return;const e=t.map(a=>typeof a=="string"?{name:a}:a),s=e.map(a=>a.name).join(" > "),n=e.at(-1)?.name??"",o=e.map(a=>a.description?.trim()??"").filter(Boolean).join(`
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
`);if(!this.#n[s]){this.#n[s]=!0,this.#e.tags.push({name:s,"x-displayName":n,description:o});const i=e.slice(0,-1).map(r=>r.name).join(" > ")||"default";if(!this.#s[i]){const r={name:i,tags:[]};this.#e["x-tagGroups"].push(r),this.#s[i]=r}this.#s[i].tags=[...new Set([...this.#s[i].tags,s])]}return s}#o(t){const e=u.get();return`
|
|
8
|
-
<!doctype html>
|
|
9
|
-
<html>
|
|
10
|
-
<head>
|
|
11
|
-
<title>${d(`${e.settings.app.name} ${e.id}`)}</title>
|
|
12
|
-
<meta charset="utf-8" />
|
|
13
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
14
|
-
<style>
|
|
15
|
-
.darklight-reference {
|
|
16
|
-
display: none;
|
|
17
|
-
}
|
|
18
|
-
</style>
|
|
19
|
-
</head>
|
|
20
|
-
<body>
|
|
21
|
-
<script id="api-reference" data-url="${t}"></script>
|
|
22
|
-
<script>
|
|
23
|
-
const configuration = { theme: 'purple' };
|
|
24
|
-
document.getElementById('api-reference').dataset.configuration = JSON.stringify(configuration);
|
|
25
|
-
</script>
|
|
26
|
-
<script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.38.0"></script>
|
|
27
|
-
</body>
|
|
28
|
-
</html>
|
|
29
|
-
`}}export{b as OpenApi};
|
|
30
|
-
//# sourceMappingURL=openapi.min.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/openapi.ts"],"sourcesContent":["import { convert } from '@openapi-contrib/json-schema-to-openapi-schema'\nimport type { OpenAPIV3_1 } from 'openapi-types'\nimport { capitalize, type JsonSchema } from 'valleyed'\n\nimport { Instance } from '../instance'\nimport type { ServerConfig } from './pipes'\nimport { Router } from './routes'\nimport type { Route } from './types'\n\ndeclare module 'openapi-types' {\n\tnamespace OpenAPIV3 {\n\t\tinterface Document {\n\t\t\t'x-tagGroups': { name: string; tags: string[] }[]\n\t\t}\n\t\tinterface TagObject {\n\t\t\t'x-displayName': string\n\t\t}\n\t}\n}\n\nexport type OpenApiSchemaDef = {\n\trequest: Partial<Record<'body' | 'query' | 'params' | 'headers' | 'response', JsonSchema>>\n\tresponse: Partial<Record<'response' | 'responseHeaders', { status: number; schema: JsonSchema; contentType: string }[]>>\n}\n\nexport class OpenApi {\n\t#registeredTags: Record<string, boolean> = {}\n\t#registeredTagGroups: Record<string, { name: string; tags: string[] }> = {}\n\t#baseOpenapiDoc: OpenAPIV3_1.Document\n\n\tconstructor(private config: ServerConfig) {\n\t\tconst instance = Instance.get()\n\t\tconst { app } = instance.settings\n\t\tthis.#baseOpenapiDoc = {\n\t\t\topenapi: '3.0.0',\n\t\t\tinfo: {\n\t\t\t\ttitle: `${app.name} ${instance.id}`,\n\t\t\t\tversion: config.openapi.docsVersion ?? '',\n\t\t\t},\n\t\t\tservers: config.openapi.docsBaseUrl?.map((url) => ({ url })),\n\t\t\tpaths: {},\n\t\t\tcomponents: {\n\t\t\t\tschemas: {},\n\t\t\t\tsecuritySchemes: {\n\t\t\t\t\tAuthorization: {\n\t\t\t\t\t\ttype: 'apiKey',\n\t\t\t\t\t\tname: 'authorization',\n\t\t\t\t\t\tin: 'header',\n\t\t\t\t\t},\n\t\t\t\t\tRefreshToken: {\n\t\t\t\t\t\ttype: 'apiKey',\n\t\t\t\t\t\tname: 'x-refresh-token',\n\t\t\t\t\t\tin: 'header',\n\t\t\t\t\t},\n\t\t\t\t\tApiKey: {\n\t\t\t\t\t\ttype: 'apiKey',\n\t\t\t\t\t\tname: 'x-api-key',\n\t\t\t\t\t\tin: 'header',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\ttags: [],\n\t\t\t'x-tagGroups': [],\n\t\t}\n\t}\n\n\tcleanPath(path: string) {\n\t\tlet cleaned = path.replace(/(\\/\\s*)+/g, '/')\n\t\tif (!cleaned.startsWith('/')) cleaned = `/${cleaned}`\n\t\tif (cleaned !== '/' && cleaned.endsWith('/')) cleaned = cleaned.slice(0, -1)\n\t\treturn cleaned\n\t}\n\n\tasync register(route: Route<any>, def: OpenApiSchemaDef) {\n\t\tif (route.hide) return\n\n\t\tconst tag = this.#buildTag(route.groups ?? [])\n\n\t\tconst cleanPath = this.cleanPath(route.path)\n\t\tconst operationId = `(${route.method.toUpperCase()}) ${cleanPath}`\n\t\tawait this.#addRouteToOpenApiDoc(cleanPath, route.method.toLowerCase(), def, {\n\t\t\toperationId,\n\t\t\tsummary: route.title ?? cleanPath,\n\t\t\tdescription: route.descriptions?.join('\\n\\n'),\n\t\t\ttags: tag ? [tag] : undefined,\n\t\t\tsecurity: route.security,\n\t\t})\n\t}\n\n\tasync #addRouteToOpenApiDoc(path: string, method: string, def: OpenApiSchemaDef, methodObj: OpenAPIV3_1.OperationObject) {\n\t\tif (def.response.response?.length) {\n\t\t\tmethodObj.responses ??= {}\n\t\t\tfor (const resp of def.response.response) {\n\t\t\t\tmethodObj.responses[resp.status] ??= { description: '', content: {} }\n\t\t\t\tconst res = methodObj.responses[resp.status] as OpenAPIV3_1.ResponseObject\n\t\t\t\tres.content![resp.contentType] = { schema: await convert(this.#visit(resp.schema)) }\n\t\t\t}\n\t\t}\n\n\t\tif (def.response.responseHeaders?.length) {\n\t\t\tmethodObj.responses ??= {}\n\t\t\tfor (const resp of def.response.responseHeaders) {\n\t\t\t\tmethodObj.responses[resp.status] ??= { description: '', content: {} }\n\t\t\t\tmethodObj.responses[resp.status] as OpenAPIV3_1.ResponseObject\n\t\t\t\tconst res = methodObj.responses[resp.status] as OpenAPIV3_1.ResponseObject\n\t\t\t\tres.headers = { schema: (await convert(this.#visit(resp.schema))) as any }\n\t\t\t}\n\t\t}\n\n\t\tif (def.request.body)\n\t\t\tmethodObj.requestBody = {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: {\n\t\t\t\t\t'application/json': { schema: await convert(this.#visit(def.request.body)) },\n\t\t\t\t},\n\t\t\t}\n\n\t\tconst parameters: OpenAPIV3_1.ParameterObject[] = []\n\n\t\tconst addParams = async (location: 'query' | 'path' | 'header', schema: JsonSchema | undefined) => {\n\t\t\tif (!schema) return\n\t\t\tconst flat = this.#flattenForParameters(schema)\n\t\t\tfor (const schema of flat) {\n\t\t\t\tif (!schema.properties) continue\n\t\t\t\tfor (const [name, value] of Object.entries(schema.properties))\n\t\t\t\t\tparameters.push({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tin: location,\n\t\t\t\t\t\tschema: await convert(this.#visit(value)),\n\t\t\t\t\t\trequired: (schema.required || []).includes(name),\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tawait Promise.all([\n\t\t\taddParams('query', def.request.query),\n\t\t\taddParams('path', def.request.params),\n\t\t\taddParams('header', def.request.headers),\n\t\t])\n\t\tif (parameters.length) methodObj.parameters = parameters\n\n\t\tconst base = this.#baseOpenapiDoc\n\t\tif (!base.paths) base.paths = {}\n\t\tif (!base.paths[path]) base.paths[path] = {}\n\t\tbase.paths[path]![method] = methodObj\n\t}\n\n\trouter() {\n\t\tconst jsonPath = '/openapi.json'\n\t\tconst router = new Router({ path: this.config.openapi.docsPath ?? '/', hide: true })\n\t\trouter.get('/index.html')((req) => req.res({ body: this.#html(`.${jsonPath}`), contentType: 'text/html' }))\n\t\trouter.get(jsonPath)((req) => req.res({ body: this.#baseOpenapiDoc }))\n\t\treturn router\n\t}\n\n\t#flattenForParameters(node: JsonSchema): JsonSchema[] {\n\t\tconst { allOf, oneOf, anyOf, ...schema } = node\n\t\tif (allOf) return allOf.flatMap((n) => this.#flattenForParameters(n))\n\t\treturn [schema]\n\t}\n\n\t#visit(node: JsonSchema) {\n\t\tif (!node || typeof node !== 'object') return node\n\t\tif (typeof node.$refId === 'string') {\n\t\t\tconst { $refId: id, ...rest } = node\n\t\t\tconst res = this.#visit(rest)\n\t\t\tif (this.#baseOpenapiDoc.components?.schemas) {\n\t\t\t\tthis.#baseOpenapiDoc.components.schemas[id] = res\n\t\t\t\treturn { $ref: `#/components/schemas/${id}` }\n\t\t\t} else return res\n\t\t}\n\n\t\tif (Array.isArray(node)) return node.map((n) => this.#visit(n)) as any\n\t\treturn Object.fromEntries(Object.entries(node).map(([key, value]) => [key, this.#visit(value as any)]))\n\t}\n\n\t#buildTag(groups: NonNullable<Route<any>['groups']>) {\n\t\tif (!groups.length) return undefined\n\t\tconst parsed = groups.map((g) => (typeof g === 'string' ? { name: g } : g))\n\t\tconst name = parsed.map((g) => g.name).join(' > ')\n\t\tconst displayName = parsed.at(-1)?.name ?? ''\n\t\tconst description = parsed\n\t\t\t.map((g) => g.description?.trim() ?? '')\n\t\t\t.filter(Boolean)\n\t\t\t.join('\\n\\n\\n\\n')\n\n\t\tif (!this.#registeredTags[name]) {\n\t\t\tthis.#registeredTags[name] = true\n\t\t\tthis.#baseOpenapiDoc.tags!.push({ name, 'x-displayName': displayName, description })\n\n\t\t\tconst tagGroups = parsed.slice(0, -1)\n\t\t\tconst groupName = tagGroups.map((g) => g.name).join(' > ') || 'default'\n\t\t\tif (!this.#registeredTagGroups[groupName]) {\n\t\t\t\tconst group = { name: groupName, tags: [] }\n\t\t\t\tthis.#baseOpenapiDoc['x-tagGroups'].push(group)\n\t\t\t\tthis.#registeredTagGroups[groupName] = group\n\t\t\t}\n\t\t\tthis.#registeredTagGroups[groupName].tags = [...new Set([...this.#registeredTagGroups[groupName].tags, name])]\n\t\t}\n\n\t\treturn name\n\t}\n\n\t#html(jsonPath: string) {\n\t\tconst instance = Instance.get()\n\t\tconst title = capitalize(`${instance.settings.app.name} ${instance.id}`)\n\t\treturn `\n<!doctype html>\n<html>\n <head>\n <title>${title}</title>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t<style>\n .darklight-reference {\n display: none;\n }\n </style>\n </head>\n <body>\n <script id=\"api-reference\" data-url=\"${jsonPath}\"></script>\n <script>\n const configuration = { theme: 'purple' };\n document.getElementById('api-reference').dataset.configuration = JSON.stringify(configuration);\n </script>\n <script src=\"https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.38.0\"></script>\n </body>\n</html>\n`\n\t}\n}\n"],"mappings":"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","names":["convert","capitalize","Instance","Router","OpenApi","config","instance","app","#baseOpenapiDoc","url","#registeredTags","#registeredTagGroups","path","cleaned","route","def","tag","#buildTag","cleanPath","operationId","#addRouteToOpenApiDoc","method","methodObj","resp","res","#visit","parameters","addParams","location","schema","flat","#flattenForParameters","name","value","base","jsonPath","router","req","#html","node","allOf","oneOf","anyOf","n","id","rest","key","groups","parsed","g","displayName","description","groupName","group"]}
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { convert } from "@openapi-contrib/json-schema-to-openapi-schema";
|
|
2
|
-
import { capitalize } from "valleyed";
|
|
3
|
-
import { Instance } from "../instance/index.mjs";
|
|
4
|
-
import { Router } from "./routes.mjs";
|
|
5
|
-
class OpenApi {
|
|
6
|
-
constructor(config) {
|
|
7
|
-
this.config = config;
|
|
8
|
-
const instance = Instance.get();
|
|
9
|
-
const { app } = instance.settings;
|
|
10
|
-
this.#baseOpenapiDoc = {
|
|
11
|
-
openapi: "3.0.0",
|
|
12
|
-
info: {
|
|
13
|
-
title: `${app.name} ${instance.id}`,
|
|
14
|
-
version: config.openapi.docsVersion ?? ""
|
|
15
|
-
},
|
|
16
|
-
servers: config.openapi.docsBaseUrl?.map((url) => ({ url })),
|
|
17
|
-
paths: {},
|
|
18
|
-
components: {
|
|
19
|
-
schemas: {},
|
|
20
|
-
securitySchemes: {
|
|
21
|
-
Authorization: {
|
|
22
|
-
type: "apiKey",
|
|
23
|
-
name: "authorization",
|
|
24
|
-
in: "header"
|
|
25
|
-
},
|
|
26
|
-
RefreshToken: {
|
|
27
|
-
type: "apiKey",
|
|
28
|
-
name: "x-refresh-token",
|
|
29
|
-
in: "header"
|
|
30
|
-
},
|
|
31
|
-
ApiKey: {
|
|
32
|
-
type: "apiKey",
|
|
33
|
-
name: "x-api-key",
|
|
34
|
-
in: "header"
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
tags: [],
|
|
39
|
-
"x-tagGroups": []
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
#registeredTags = {};
|
|
43
|
-
#registeredTagGroups = {};
|
|
44
|
-
#baseOpenapiDoc;
|
|
45
|
-
cleanPath(path) {
|
|
46
|
-
let cleaned = path.replace(/(\/\s*)+/g, "/");
|
|
47
|
-
if (!cleaned.startsWith("/")) cleaned = `/${cleaned}`;
|
|
48
|
-
if (cleaned !== "/" && cleaned.endsWith("/")) cleaned = cleaned.slice(0, -1);
|
|
49
|
-
return cleaned;
|
|
50
|
-
}
|
|
51
|
-
async register(route, def) {
|
|
52
|
-
if (route.hide) return;
|
|
53
|
-
const tag = this.#buildTag(route.groups ?? []);
|
|
54
|
-
const cleanPath = this.cleanPath(route.path);
|
|
55
|
-
const operationId = `(${route.method.toUpperCase()}) ${cleanPath}`;
|
|
56
|
-
await this.#addRouteToOpenApiDoc(cleanPath, route.method.toLowerCase(), def, {
|
|
57
|
-
operationId,
|
|
58
|
-
summary: route.title ?? cleanPath,
|
|
59
|
-
description: route.descriptions?.join("\n\n"),
|
|
60
|
-
tags: tag ? [tag] : void 0,
|
|
61
|
-
security: route.security
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
async #addRouteToOpenApiDoc(path, method, def, methodObj) {
|
|
65
|
-
if (def.response.response?.length) {
|
|
66
|
-
methodObj.responses ??= {};
|
|
67
|
-
for (const resp of def.response.response) {
|
|
68
|
-
methodObj.responses[resp.status] ??= { description: "", content: {} };
|
|
69
|
-
const res = methodObj.responses[resp.status];
|
|
70
|
-
res.content[resp.contentType] = { schema: await convert(this.#visit(resp.schema)) };
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
if (def.response.responseHeaders?.length) {
|
|
74
|
-
methodObj.responses ??= {};
|
|
75
|
-
for (const resp of def.response.responseHeaders) {
|
|
76
|
-
methodObj.responses[resp.status] ??= { description: "", content: {} };
|
|
77
|
-
methodObj.responses[resp.status];
|
|
78
|
-
const res = methodObj.responses[resp.status];
|
|
79
|
-
res.headers = { schema: await convert(this.#visit(resp.schema)) };
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (def.request.body)
|
|
83
|
-
methodObj.requestBody = {
|
|
84
|
-
required: true,
|
|
85
|
-
content: {
|
|
86
|
-
"application/json": { schema: await convert(this.#visit(def.request.body)) }
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
const parameters = [];
|
|
90
|
-
const addParams = async (location, schema) => {
|
|
91
|
-
if (!schema) return;
|
|
92
|
-
const flat = this.#flattenForParameters(schema);
|
|
93
|
-
for (const schema2 of flat) {
|
|
94
|
-
if (!schema2.properties) continue;
|
|
95
|
-
for (const [name, value] of Object.entries(schema2.properties))
|
|
96
|
-
parameters.push({
|
|
97
|
-
name,
|
|
98
|
-
in: location,
|
|
99
|
-
schema: await convert(this.#visit(value)),
|
|
100
|
-
required: (schema2.required || []).includes(name)
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
await Promise.all([
|
|
105
|
-
addParams("query", def.request.query),
|
|
106
|
-
addParams("path", def.request.params),
|
|
107
|
-
addParams("header", def.request.headers)
|
|
108
|
-
]);
|
|
109
|
-
if (parameters.length) methodObj.parameters = parameters;
|
|
110
|
-
const base = this.#baseOpenapiDoc;
|
|
111
|
-
if (!base.paths) base.paths = {};
|
|
112
|
-
if (!base.paths[path]) base.paths[path] = {};
|
|
113
|
-
base.paths[path][method] = methodObj;
|
|
114
|
-
}
|
|
115
|
-
router() {
|
|
116
|
-
const jsonPath = "/openapi.json";
|
|
117
|
-
const router = new Router({ path: this.config.openapi.docsPath ?? "/", hide: true });
|
|
118
|
-
router.get("/index.html")((req) => req.res({ body: this.#html(`.${jsonPath}`), contentType: "text/html" }));
|
|
119
|
-
router.get(jsonPath)((req) => req.res({ body: this.#baseOpenapiDoc }));
|
|
120
|
-
return router;
|
|
121
|
-
}
|
|
122
|
-
#flattenForParameters(node) {
|
|
123
|
-
const { allOf, oneOf, anyOf, ...schema } = node;
|
|
124
|
-
if (allOf) return allOf.flatMap((n) => this.#flattenForParameters(n));
|
|
125
|
-
return [schema];
|
|
126
|
-
}
|
|
127
|
-
#visit(node) {
|
|
128
|
-
if (!node || typeof node !== "object") return node;
|
|
129
|
-
if (typeof node.$refId === "string") {
|
|
130
|
-
const { $refId: id, ...rest } = node;
|
|
131
|
-
const res = this.#visit(rest);
|
|
132
|
-
if (this.#baseOpenapiDoc.components?.schemas) {
|
|
133
|
-
this.#baseOpenapiDoc.components.schemas[id] = res;
|
|
134
|
-
return { $ref: `#/components/schemas/${id}` };
|
|
135
|
-
} else return res;
|
|
136
|
-
}
|
|
137
|
-
if (Array.isArray(node)) return node.map((n) => this.#visit(n));
|
|
138
|
-
return Object.fromEntries(Object.entries(node).map(([key, value]) => [key, this.#visit(value)]));
|
|
139
|
-
}
|
|
140
|
-
#buildTag(groups) {
|
|
141
|
-
if (!groups.length) return void 0;
|
|
142
|
-
const parsed = groups.map((g) => typeof g === "string" ? { name: g } : g);
|
|
143
|
-
const name = parsed.map((g) => g.name).join(" > ");
|
|
144
|
-
const displayName = parsed.at(-1)?.name ?? "";
|
|
145
|
-
const description = parsed.map((g) => g.description?.trim() ?? "").filter(Boolean).join("\n\n\n\n");
|
|
146
|
-
if (!this.#registeredTags[name]) {
|
|
147
|
-
this.#registeredTags[name] = true;
|
|
148
|
-
this.#baseOpenapiDoc.tags.push({ name, "x-displayName": displayName, description });
|
|
149
|
-
const tagGroups = parsed.slice(0, -1);
|
|
150
|
-
const groupName = tagGroups.map((g) => g.name).join(" > ") || "default";
|
|
151
|
-
if (!this.#registeredTagGroups[groupName]) {
|
|
152
|
-
const group = { name: groupName, tags: [] };
|
|
153
|
-
this.#baseOpenapiDoc["x-tagGroups"].push(group);
|
|
154
|
-
this.#registeredTagGroups[groupName] = group;
|
|
155
|
-
}
|
|
156
|
-
this.#registeredTagGroups[groupName].tags = [.../* @__PURE__ */ new Set([...this.#registeredTagGroups[groupName].tags, name])];
|
|
157
|
-
}
|
|
158
|
-
return name;
|
|
159
|
-
}
|
|
160
|
-
#html(jsonPath) {
|
|
161
|
-
const instance = Instance.get();
|
|
162
|
-
const title = capitalize(`${instance.settings.app.name} ${instance.id}`);
|
|
163
|
-
return `
|
|
164
|
-
<!doctype html>
|
|
165
|
-
<html>
|
|
166
|
-
<head>
|
|
167
|
-
<title>${title}</title>
|
|
168
|
-
<meta charset="utf-8" />
|
|
169
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
170
|
-
<style>
|
|
171
|
-
.darklight-reference {
|
|
172
|
-
display: none;
|
|
173
|
-
}
|
|
174
|
-
</style>
|
|
175
|
-
</head>
|
|
176
|
-
<body>
|
|
177
|
-
<script id="api-reference" data-url="${jsonPath}"></script>
|
|
178
|
-
<script>
|
|
179
|
-
const configuration = { theme: 'purple' };
|
|
180
|
-
document.getElementById('api-reference').dataset.configuration = JSON.stringify(configuration);
|
|
181
|
-
</script>
|
|
182
|
-
<script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.38.0"></script>
|
|
183
|
-
</body>
|
|
184
|
-
</html>
|
|
185
|
-
`;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
export {
|
|
189
|
-
OpenApi
|
|
190
|
-
};
|
|
191
|
-
//# sourceMappingURL=openapi.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/openapi.ts"],"sourcesContent":["import { convert } from '@openapi-contrib/json-schema-to-openapi-schema'\nimport type { OpenAPIV3_1 } from 'openapi-types'\nimport { capitalize, type JsonSchema } from 'valleyed'\n\nimport { Instance } from '../instance'\nimport type { ServerConfig } from './pipes'\nimport { Router } from './routes'\nimport type { Route } from './types'\n\ndeclare module 'openapi-types' {\n\tnamespace OpenAPIV3 {\n\t\tinterface Document {\n\t\t\t'x-tagGroups': { name: string; tags: string[] }[]\n\t\t}\n\t\tinterface TagObject {\n\t\t\t'x-displayName': string\n\t\t}\n\t}\n}\n\nexport type OpenApiSchemaDef = {\n\trequest: Partial<Record<'body' | 'query' | 'params' | 'headers' | 'response', JsonSchema>>\n\tresponse: Partial<Record<'response' | 'responseHeaders', { status: number; schema: JsonSchema; contentType: string }[]>>\n}\n\nexport class OpenApi {\n\t#registeredTags: Record<string, boolean> = {}\n\t#registeredTagGroups: Record<string, { name: string; tags: string[] }> = {}\n\t#baseOpenapiDoc: OpenAPIV3_1.Document\n\n\tconstructor(private config: ServerConfig) {\n\t\tconst instance = Instance.get()\n\t\tconst { app } = instance.settings\n\t\tthis.#baseOpenapiDoc = {\n\t\t\topenapi: '3.0.0',\n\t\t\tinfo: {\n\t\t\t\ttitle: `${app.name} ${instance.id}`,\n\t\t\t\tversion: config.openapi.docsVersion ?? '',\n\t\t\t},\n\t\t\tservers: config.openapi.docsBaseUrl?.map((url) => ({ url })),\n\t\t\tpaths: {},\n\t\t\tcomponents: {\n\t\t\t\tschemas: {},\n\t\t\t\tsecuritySchemes: {\n\t\t\t\t\tAuthorization: {\n\t\t\t\t\t\ttype: 'apiKey',\n\t\t\t\t\t\tname: 'authorization',\n\t\t\t\t\t\tin: 'header',\n\t\t\t\t\t},\n\t\t\t\t\tRefreshToken: {\n\t\t\t\t\t\ttype: 'apiKey',\n\t\t\t\t\t\tname: 'x-refresh-token',\n\t\t\t\t\t\tin: 'header',\n\t\t\t\t\t},\n\t\t\t\t\tApiKey: {\n\t\t\t\t\t\ttype: 'apiKey',\n\t\t\t\t\t\tname: 'x-api-key',\n\t\t\t\t\t\tin: 'header',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\ttags: [],\n\t\t\t'x-tagGroups': [],\n\t\t}\n\t}\n\n\tcleanPath(path: string) {\n\t\tlet cleaned = path.replace(/(\\/\\s*)+/g, '/')\n\t\tif (!cleaned.startsWith('/')) cleaned = `/${cleaned}`\n\t\tif (cleaned !== '/' && cleaned.endsWith('/')) cleaned = cleaned.slice(0, -1)\n\t\treturn cleaned\n\t}\n\n\tasync register(route: Route<any>, def: OpenApiSchemaDef) {\n\t\tif (route.hide) return\n\n\t\tconst tag = this.#buildTag(route.groups ?? [])\n\n\t\tconst cleanPath = this.cleanPath(route.path)\n\t\tconst operationId = `(${route.method.toUpperCase()}) ${cleanPath}`\n\t\tawait this.#addRouteToOpenApiDoc(cleanPath, route.method.toLowerCase(), def, {\n\t\t\toperationId,\n\t\t\tsummary: route.title ?? cleanPath,\n\t\t\tdescription: route.descriptions?.join('\\n\\n'),\n\t\t\ttags: tag ? [tag] : undefined,\n\t\t\tsecurity: route.security,\n\t\t})\n\t}\n\n\tasync #addRouteToOpenApiDoc(path: string, method: string, def: OpenApiSchemaDef, methodObj: OpenAPIV3_1.OperationObject) {\n\t\tif (def.response.response?.length) {\n\t\t\tmethodObj.responses ??= {}\n\t\t\tfor (const resp of def.response.response) {\n\t\t\t\tmethodObj.responses[resp.status] ??= { description: '', content: {} }\n\t\t\t\tconst res = methodObj.responses[resp.status] as OpenAPIV3_1.ResponseObject\n\t\t\t\tres.content![resp.contentType] = { schema: await convert(this.#visit(resp.schema)) }\n\t\t\t}\n\t\t}\n\n\t\tif (def.response.responseHeaders?.length) {\n\t\t\tmethodObj.responses ??= {}\n\t\t\tfor (const resp of def.response.responseHeaders) {\n\t\t\t\tmethodObj.responses[resp.status] ??= { description: '', content: {} }\n\t\t\t\tmethodObj.responses[resp.status] as OpenAPIV3_1.ResponseObject\n\t\t\t\tconst res = methodObj.responses[resp.status] as OpenAPIV3_1.ResponseObject\n\t\t\t\tres.headers = { schema: (await convert(this.#visit(resp.schema))) as any }\n\t\t\t}\n\t\t}\n\n\t\tif (def.request.body)\n\t\t\tmethodObj.requestBody = {\n\t\t\t\trequired: true,\n\t\t\t\tcontent: {\n\t\t\t\t\t'application/json': { schema: await convert(this.#visit(def.request.body)) },\n\t\t\t\t},\n\t\t\t}\n\n\t\tconst parameters: OpenAPIV3_1.ParameterObject[] = []\n\n\t\tconst addParams = async (location: 'query' | 'path' | 'header', schema: JsonSchema | undefined) => {\n\t\t\tif (!schema) return\n\t\t\tconst flat = this.#flattenForParameters(schema)\n\t\t\tfor (const schema of flat) {\n\t\t\t\tif (!schema.properties) continue\n\t\t\t\tfor (const [name, value] of Object.entries(schema.properties))\n\t\t\t\t\tparameters.push({\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tin: location,\n\t\t\t\t\t\tschema: await convert(this.#visit(value)),\n\t\t\t\t\t\trequired: (schema.required || []).includes(name),\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tawait Promise.all([\n\t\t\taddParams('query', def.request.query),\n\t\t\taddParams('path', def.request.params),\n\t\t\taddParams('header', def.request.headers),\n\t\t])\n\t\tif (parameters.length) methodObj.parameters = parameters\n\n\t\tconst base = this.#baseOpenapiDoc\n\t\tif (!base.paths) base.paths = {}\n\t\tif (!base.paths[path]) base.paths[path] = {}\n\t\tbase.paths[path]![method] = methodObj\n\t}\n\n\trouter() {\n\t\tconst jsonPath = '/openapi.json'\n\t\tconst router = new Router({ path: this.config.openapi.docsPath ?? '/', hide: true })\n\t\trouter.get('/index.html')((req) => req.res({ body: this.#html(`.${jsonPath}`), contentType: 'text/html' }))\n\t\trouter.get(jsonPath)((req) => req.res({ body: this.#baseOpenapiDoc }))\n\t\treturn router\n\t}\n\n\t#flattenForParameters(node: JsonSchema): JsonSchema[] {\n\t\tconst { allOf, oneOf, anyOf, ...schema } = node\n\t\tif (allOf) return allOf.flatMap((n) => this.#flattenForParameters(n))\n\t\treturn [schema]\n\t}\n\n\t#visit(node: JsonSchema) {\n\t\tif (!node || typeof node !== 'object') return node\n\t\tif (typeof node.$refId === 'string') {\n\t\t\tconst { $refId: id, ...rest } = node\n\t\t\tconst res = this.#visit(rest)\n\t\t\tif (this.#baseOpenapiDoc.components?.schemas) {\n\t\t\t\tthis.#baseOpenapiDoc.components.schemas[id] = res\n\t\t\t\treturn { $ref: `#/components/schemas/${id}` }\n\t\t\t} else return res\n\t\t}\n\n\t\tif (Array.isArray(node)) return node.map((n) => this.#visit(n)) as any\n\t\treturn Object.fromEntries(Object.entries(node).map(([key, value]) => [key, this.#visit(value as any)]))\n\t}\n\n\t#buildTag(groups: NonNullable<Route<any>['groups']>) {\n\t\tif (!groups.length) return undefined\n\t\tconst parsed = groups.map((g) => (typeof g === 'string' ? { name: g } : g))\n\t\tconst name = parsed.map((g) => g.name).join(' > ')\n\t\tconst displayName = parsed.at(-1)?.name ?? ''\n\t\tconst description = parsed\n\t\t\t.map((g) => g.description?.trim() ?? '')\n\t\t\t.filter(Boolean)\n\t\t\t.join('\\n\\n\\n\\n')\n\n\t\tif (!this.#registeredTags[name]) {\n\t\t\tthis.#registeredTags[name] = true\n\t\t\tthis.#baseOpenapiDoc.tags!.push({ name, 'x-displayName': displayName, description })\n\n\t\t\tconst tagGroups = parsed.slice(0, -1)\n\t\t\tconst groupName = tagGroups.map((g) => g.name).join(' > ') || 'default'\n\t\t\tif (!this.#registeredTagGroups[groupName]) {\n\t\t\t\tconst group = { name: groupName, tags: [] }\n\t\t\t\tthis.#baseOpenapiDoc['x-tagGroups'].push(group)\n\t\t\t\tthis.#registeredTagGroups[groupName] = group\n\t\t\t}\n\t\t\tthis.#registeredTagGroups[groupName].tags = [...new Set([...this.#registeredTagGroups[groupName].tags, name])]\n\t\t}\n\n\t\treturn name\n\t}\n\n\t#html(jsonPath: string) {\n\t\tconst instance = Instance.get()\n\t\tconst title = capitalize(`${instance.settings.app.name} ${instance.id}`)\n\t\treturn `\n<!doctype html>\n<html>\n <head>\n <title>${title}</title>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t<style>\n .darklight-reference {\n display: none;\n }\n </style>\n </head>\n <body>\n <script id=\"api-reference\" data-url=\"${jsonPath}\"></script>\n <script>\n const configuration = { theme: 'purple' };\n document.getElementById('api-reference').dataset.configuration = JSON.stringify(configuration);\n </script>\n <script src=\"https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.38.0\"></script>\n </body>\n</html>\n`\n\t}\n}\n"],"mappings":"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","names":["schema"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{v as e}from"valleyed";import{EventBus as o}from "../events/index.min.mjs";import{BaseRequestAuthMethod as r}from "./requests-auth-methods/index.min.mjs";import{Methods as a}from "./types.min.mjs";const t=()=>e.object({port:e.number(),cors:e.optional(e.object({origin:e.optional(e.or([e.array(e.string()),e.is(!0)])),methods:e.optional(e.array(e.in(Object.values(a)))),credentials:e.optional(e.boolean())})),eventBus:e.optional(e.instanceOf(o)),publicPath:e.optional(e.string()),healthPath:e.optional(e.string()),openapi:e.defaults(e.object({docsVersion:e.defaults(e.string(),"1.0.0"),docsBaseUrl:e.defaults(e.array(e.string()),["/"]),docsPath:e.defaults(e.string(),"/__docs")}),{}),requests:e.defaults(e.object({log:e.defaults(e.boolean(),!0),rateLimit:e.defaults(e.object({enabled:e.defaults(e.boolean(),!1),periodInMs:e.defaults(e.number(),3600*1e3),limit:e.defaults(e.number(),5e3)}),{}),slowdown:e.defaults(e.object({enabled:e.defaults(e.boolean(),!1),periodInMs:e.defaults(e.number(),600*1e3),delayAfter:e.defaults(e.number(),2e3),delayInMs:e.defaults(e.number(),500)}),{})}),{}),socketsAuthMethods:e.defaults(e.array(e.instanceOf(r)),[])}),p=()=>e.discriminate(s=>s.type,{fastify:e.merge(t(),e.object({type:e.is("fastify")})),express:e.merge(t(),e.object({type:e.is("express")}))});export{p as serverConfigPipe};
|
|
2
|
-
//# sourceMappingURL=pipes.min.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/pipes.ts"],"sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { EventBus } from '../events'\nimport type { AuthUser } from '../types'\nimport { BaseRequestAuthMethod } from './requests-auth-methods'\nimport { Methods } from './types'\n\nconst serverBasePipe = () =>\n\tv.object({\n\t\tport: v.number(),\n\t\tcors: v.optional(\n\t\t\tv.object({\n\t\t\t\torigin: v.optional(v.or([v.array(v.string()), v.is(true as const)])),\n\t\t\t\tmethods: v.optional(v.array(v.in(Object.values(Methods)))),\n\t\t\t\tcredentials: v.optional(v.boolean()),\n\t\t\t}),\n\t\t),\n\t\teventBus: v.optional(v.instanceOf(EventBus)),\n\t\tpublicPath: v.optional(v.string()),\n\t\thealthPath: v.optional(v.string()),\n\t\topenapi: v.defaults(\n\t\t\tv.object({\n\t\t\t\tdocsVersion: v.defaults(v.string(), '1.0.0'),\n\t\t\t\tdocsBaseUrl: v.defaults(v.array(v.string()), ['/']),\n\t\t\t\tdocsPath: v.defaults(v.string(), '/__docs'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\trequests: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlog: v.defaults(v.boolean(), true),\n\t\t\t\trateLimit: v.defaults(\n\t\t\t\t\tv.object({\n\t\t\t\t\t\tenabled: v.defaults(v.boolean(), false),\n\t\t\t\t\t\tperiodInMs: v.defaults(v.number(), 60 * 60 * 1000),\n\t\t\t\t\t\tlimit: v.defaults(v.number(), 5000),\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t\tslowdown: v.defaults(\n\t\t\t\t\tv.object({\n\t\t\t\t\t\tenabled: v.defaults(v.boolean(), false),\n\t\t\t\t\t\tperiodInMs: v.defaults(v.number(), 10 * 60 * 1000),\n\t\t\t\t\t\tdelayAfter: v.defaults(v.number(), 2000),\n\t\t\t\t\t\tdelayInMs: v.defaults(v.number(), 500),\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tsocketsAuthMethods: v.defaults(v.array(v.instanceOf(BaseRequestAuthMethod<AuthUser>)), []),\n\t})\n\nexport const serverConfigPipe = () =>\n\tv.discriminate((d: any) => d.type, {\n\t\tfastify: v.merge(\n\t\t\tserverBasePipe(),\n\t\t\tv.object({\n\t\t\t\ttype: v.is('fastify' as const),\n\t\t\t}),\n\t\t),\n\t\texpress: v.merge(\n\t\t\tserverBasePipe(),\n\t\t\tv.object({\n\t\t\t\ttype: v.is('express' as const),\n\t\t\t}),\n\t\t),\n\t})\n\nexport type ServerConfig = PipeOutput<ReturnType<typeof serverConfigPipe>>\n"],"mappings":"AAAA,OAA0B,KAAAA,MAAS,WAEnC,OAAS,YAAAC,MAAgB,YAEzB,OAAS,yBAAAC,MAA6B,0BACtC,OAAS,WAAAC,MAAe,UAExB,MAAMC,EAAiB,IACtBJ,EAAE,OAAO,CACR,KAAMA,EAAE,OAAO,EACf,KAAMA,EAAE,SACPA,EAAE,OAAO,CACR,OAAQA,EAAE,SAASA,EAAE,GAAG,CAACA,EAAE,MAAMA,EAAE,OAAO,CAAC,EAAGA,EAAE,GAAG,EAAa,CAAC,CAAC,CAAC,EACnE,QAASA,EAAE,SAASA,EAAE,MAAMA,EAAE,GAAG,OAAO,OAAOG,CAAO,CAAC,CAAC,CAAC,EACzD,YAAaH,EAAE,SAASA,EAAE,QAAQ,CAAC,CACpC,CAAC,CACF,EACA,SAAUA,EAAE,SAASA,EAAE,WAAWC,CAAQ,CAAC,EAC3C,WAAYD,EAAE,SAASA,EAAE,OAAO,CAAC,EACjC,WAAYA,EAAE,SAASA,EAAE,OAAO,CAAC,EACjC,QAASA,EAAE,SACVA,EAAE,OAAO,CACR,YAAaA,EAAE,SAASA,EAAE,OAAO,EAAG,OAAO,EAC3C,YAAaA,EAAE,SAASA,EAAE,MAAMA,EAAE,OAAO,CAAC,EAAG,CAAC,GAAG,CAAC,EAClD,SAAUA,EAAE,SAASA,EAAE,OAAO,EAAG,SAAS,CAC3C,CAAC,EACD,CAAC,CACF,EACA,SAAUA,EAAE,SACXA,EAAE,OAAO,CACR,IAAKA,EAAE,SAASA,EAAE,QAAQ,EAAG,EAAI,EACjC,UAAWA,EAAE,SACZA,EAAE,OAAO,CACR,QAASA,EAAE,SAASA,EAAE,QAAQ,EAAG,EAAK,EACtC,WAAYA,EAAE,SAASA,EAAE,OAAO,EAAG,KAAU,GAAI,EACjD,MAAOA,EAAE,SAASA,EAAE,OAAO,EAAG,GAAI,CACnC,CAAC,EACD,CAAC,CACF,EACA,SAAUA,EAAE,SACXA,EAAE,OAAO,CACR,QAASA,EAAE,SAASA,EAAE,QAAQ,EAAG,EAAK,EACtC,WAAYA,EAAE,SAASA,EAAE,OAAO,EAAG,IAAU,GAAI,EACjD,WAAYA,EAAE,SAASA,EAAE,OAAO,EAAG,GAAI,EACvC,UAAWA,EAAE,SAASA,EAAE,OAAO,EAAG,GAAG,CACtC,CAAC,EACD,CAAC,CACF,CACD,CAAC,EACD,CAAC,CACF,EACA,mBAAoBA,EAAE,SAASA,EAAE,MAAMA,EAAE,WAAWE,CAA+B,CAAC,EAAG,CAAC,CAAC,CAC1F,CAAC,EAEWG,EAAmB,IAC/BL,EAAE,aAAcM,GAAWA,EAAE,KAAM,CAClC,QAASN,EAAE,MACVI,EAAe,EACfJ,EAAE,OAAO,CACR,KAAMA,EAAE,GAAG,SAAkB,CAC9B,CAAC,CACF,EACA,QAASA,EAAE,MACVI,EAAe,EACfJ,EAAE,OAAO,CACR,KAAMA,EAAE,GAAG,SAAkB,CAC9B,CAAC,CACF,CACD,CAAC","names":["v","EventBus","BaseRequestAuthMethod","Methods","serverBasePipe","serverConfigPipe","d"]}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { v } from "valleyed";
|
|
2
|
-
import { EventBus } from "../events/index.mjs";
|
|
3
|
-
import { BaseRequestAuthMethod } from "./requests-auth-methods/index.mjs";
|
|
4
|
-
import { Methods } from "./types.mjs";
|
|
5
|
-
const serverBasePipe = () => v.object({
|
|
6
|
-
port: v.number(),
|
|
7
|
-
cors: v.optional(
|
|
8
|
-
v.object({
|
|
9
|
-
origin: v.optional(v.or([v.array(v.string()), v.is(true)])),
|
|
10
|
-
methods: v.optional(v.array(v.in(Object.values(Methods)))),
|
|
11
|
-
credentials: v.optional(v.boolean())
|
|
12
|
-
})
|
|
13
|
-
),
|
|
14
|
-
eventBus: v.optional(v.instanceOf(EventBus)),
|
|
15
|
-
publicPath: v.optional(v.string()),
|
|
16
|
-
healthPath: v.optional(v.string()),
|
|
17
|
-
openapi: v.defaults(
|
|
18
|
-
v.object({
|
|
19
|
-
docsVersion: v.defaults(v.string(), "1.0.0"),
|
|
20
|
-
docsBaseUrl: v.defaults(v.array(v.string()), ["/"]),
|
|
21
|
-
docsPath: v.defaults(v.string(), "/__docs")
|
|
22
|
-
}),
|
|
23
|
-
{}
|
|
24
|
-
),
|
|
25
|
-
requests: v.defaults(
|
|
26
|
-
v.object({
|
|
27
|
-
log: v.defaults(v.boolean(), true),
|
|
28
|
-
rateLimit: v.defaults(
|
|
29
|
-
v.object({
|
|
30
|
-
enabled: v.defaults(v.boolean(), false),
|
|
31
|
-
periodInMs: v.defaults(v.number(), 60 * 60 * 1e3),
|
|
32
|
-
limit: v.defaults(v.number(), 5e3)
|
|
33
|
-
}),
|
|
34
|
-
{}
|
|
35
|
-
),
|
|
36
|
-
slowdown: v.defaults(
|
|
37
|
-
v.object({
|
|
38
|
-
enabled: v.defaults(v.boolean(), false),
|
|
39
|
-
periodInMs: v.defaults(v.number(), 10 * 60 * 1e3),
|
|
40
|
-
delayAfter: v.defaults(v.number(), 2e3),
|
|
41
|
-
delayInMs: v.defaults(v.number(), 500)
|
|
42
|
-
}),
|
|
43
|
-
{}
|
|
44
|
-
)
|
|
45
|
-
}),
|
|
46
|
-
{}
|
|
47
|
-
),
|
|
48
|
-
socketsAuthMethods: v.defaults(v.array(v.instanceOf(BaseRequestAuthMethod)), [])
|
|
49
|
-
});
|
|
50
|
-
const serverConfigPipe = () => v.discriminate((d) => d.type, {
|
|
51
|
-
fastify: v.merge(
|
|
52
|
-
serverBasePipe(),
|
|
53
|
-
v.object({
|
|
54
|
-
type: v.is("fastify")
|
|
55
|
-
})
|
|
56
|
-
),
|
|
57
|
-
express: v.merge(
|
|
58
|
-
serverBasePipe(),
|
|
59
|
-
v.object({
|
|
60
|
-
type: v.is("express")
|
|
61
|
-
})
|
|
62
|
-
)
|
|
63
|
-
});
|
|
64
|
-
export {
|
|
65
|
-
serverConfigPipe
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=pipes.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/pipes.ts"],"sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { EventBus } from '../events'\nimport type { AuthUser } from '../types'\nimport { BaseRequestAuthMethod } from './requests-auth-methods'\nimport { Methods } from './types'\n\nconst serverBasePipe = () =>\n\tv.object({\n\t\tport: v.number(),\n\t\tcors: v.optional(\n\t\t\tv.object({\n\t\t\t\torigin: v.optional(v.or([v.array(v.string()), v.is(true as const)])),\n\t\t\t\tmethods: v.optional(v.array(v.in(Object.values(Methods)))),\n\t\t\t\tcredentials: v.optional(v.boolean()),\n\t\t\t}),\n\t\t),\n\t\teventBus: v.optional(v.instanceOf(EventBus)),\n\t\tpublicPath: v.optional(v.string()),\n\t\thealthPath: v.optional(v.string()),\n\t\topenapi: v.defaults(\n\t\t\tv.object({\n\t\t\t\tdocsVersion: v.defaults(v.string(), '1.0.0'),\n\t\t\t\tdocsBaseUrl: v.defaults(v.array(v.string()), ['/']),\n\t\t\t\tdocsPath: v.defaults(v.string(), '/__docs'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\trequests: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlog: v.defaults(v.boolean(), true),\n\t\t\t\trateLimit: v.defaults(\n\t\t\t\t\tv.object({\n\t\t\t\t\t\tenabled: v.defaults(v.boolean(), false),\n\t\t\t\t\t\tperiodInMs: v.defaults(v.number(), 60 * 60 * 1000),\n\t\t\t\t\t\tlimit: v.defaults(v.number(), 5000),\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t\tslowdown: v.defaults(\n\t\t\t\t\tv.object({\n\t\t\t\t\t\tenabled: v.defaults(v.boolean(), false),\n\t\t\t\t\t\tperiodInMs: v.defaults(v.number(), 10 * 60 * 1000),\n\t\t\t\t\t\tdelayAfter: v.defaults(v.number(), 2000),\n\t\t\t\t\t\tdelayInMs: v.defaults(v.number(), 500),\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tsocketsAuthMethods: v.defaults(v.array(v.instanceOf(BaseRequestAuthMethod<AuthUser>)), []),\n\t})\n\nexport const serverConfigPipe = () =>\n\tv.discriminate((d: any) => d.type, {\n\t\tfastify: v.merge(\n\t\t\tserverBasePipe(),\n\t\t\tv.object({\n\t\t\t\ttype: v.is('fastify' as const),\n\t\t\t}),\n\t\t),\n\t\texpress: v.merge(\n\t\t\tserverBasePipe(),\n\t\t\tv.object({\n\t\t\t\ttype: v.is('express' as const),\n\t\t\t}),\n\t\t),\n\t})\n\nexport type ServerConfig = PipeOutput<ReturnType<typeof serverConfigPipe>>\n"],"mappings":"AAAA,SAA0B,SAAS;AAEnC,SAAS,gBAAgB;AAEzB,SAAS,6BAA6B;AACtC,SAAS,eAAe;AAExB,MAAM,iBAAiB,MACtB,EAAE,OAAO;AAAA,EACR,MAAM,EAAE,OAAO;AAAA,EACf,MAAM,EAAE;AAAA,IACP,EAAE,OAAO;AAAA,MACR,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,IAAa,CAAC,CAAC,CAAC;AAAA,MACnE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC;AAAA,MACzD,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,IACpC,CAAC;AAAA,EACF;AAAA,EACA,UAAU,EAAE,SAAS,EAAE,WAAW,QAAQ,CAAC;AAAA,EAC3C,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,EACjC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC;AAAA,EACjC,SAAS,EAAE;AAAA,IACV,EAAE,OAAO;AAAA,MACR,aAAa,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO;AAAA,MAC3C,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAAA,MAClD,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS;AAAA,IAC3C,CAAC;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EACA,UAAU,EAAE;AAAA,IACX,EAAE,OAAO;AAAA,MACR,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI;AAAA,MACjC,WAAW,EAAE;AAAA,QACZ,EAAE,OAAO;AAAA,UACR,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;AAAA,UACtC,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,KAAK,GAAI;AAAA,UACjD,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,GAAI;AAAA,QACnC,CAAC;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MACA,UAAU,EAAE;AAAA,QACX,EAAE,OAAO;AAAA,UACR,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;AAAA,UACtC,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,KAAK,GAAI;AAAA,UACjD,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,GAAI;AAAA,UACvC,WAAW,EAAE,SAAS,EAAE,OAAO,GAAG,GAAG;AAAA,QACtC,CAAC;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD,CAAC;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EACA,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,qBAA+B,CAAC,GAAG,CAAC,CAAC;AAC1F,CAAC;AAEK,MAAM,mBAAmB,MAC/B,EAAE,aAAa,CAAC,MAAW,EAAE,MAAM;AAAA,EAClC,SAAS,EAAE;AAAA,IACV,eAAe;AAAA,IACf,EAAE,OAAO;AAAA,MACR,MAAM,EAAE,GAAG,SAAkB;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EACA,SAAS,EAAE;AAAA,IACV,eAAe;AAAA,IACf,EAAE,OAAO;AAAA,MACR,MAAM,EAAE,GAAG,SAAkB;AAAA,IAC9B,CAAC;AAAA,EACF;AACD,CAAC;","names":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{BaseRequestAuthMethod as r}from "./base.min.mjs";import{NotAuthenticatedError as s}from "../../errors/index.min.mjs";class n extends r{headerName;constructor(e){super(),this.headerName=e}async parse(e){const t=e[this.headerName];if(!t||typeof t!="string")throw new s;return this.verify(t)}routeSecuritySchemeName(){return this.headerName}}export{n as BaseApiKeyRequestAuthMethod};
|
|
2
|
-
//# sourceMappingURL=apiKeys.min.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/apiKeys.ts"],"sourcesContent":["import type { IncomingHttpHeaders } from 'node:http2'\n\nimport { BaseRequestAuthMethod } from './base'\nimport { NotAuthenticatedError } from '../../errors'\n\nexport abstract class BaseApiKeyRequestAuthMethod<T extends { id: string }> extends BaseRequestAuthMethod<T> {\n\tprotected readonly headerName: string\n\tprotected abstract verify(apiKey: string): Promise<T>\n\n\tconstructor(headerName: string) {\n\t\tsuper()\n\t\tthis.headerName = headerName\n\t}\n\n\tasync parse(headers: IncomingHttpHeaders) {\n\t\tconst headerValue = headers[this.headerName]\n\t\tif (!headerValue || typeof headerValue !== 'string') throw new NotAuthenticatedError()\n\t\treturn this.verify(headerValue)\n\t}\n\n\trouteSecuritySchemeName() {\n\t\treturn this.headerName\n\t}\n}\n"],"mappings":"AAEA,OAAS,yBAAAA,MAA6B,SACtC,OAAS,yBAAAC,MAA6B,eAE/B,MAAeC,UAA8DF,CAAyB,CACzF,WAGnB,YAAYG,EAAoB,CAC/B,MAAM,EACN,KAAK,WAAaA,CACnB,CAEA,MAAM,MAAMC,EAA8B,CACzC,MAAMC,EAAcD,EAAQ,KAAK,UAAU,EAC3C,GAAI,CAACC,GAAe,OAAOA,GAAgB,SAAU,MAAM,IAAIJ,EAC/D,OAAO,KAAK,OAAOI,CAAW,CAC/B,CAEA,yBAA0B,CACzB,OAAO,KAAK,UACb,CACD","names":["BaseRequestAuthMethod","NotAuthenticatedError","BaseApiKeyRequestAuthMethod","headerName","headers","headerValue"]}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BaseRequestAuthMethod } from "./base.mjs";
|
|
2
|
-
import { NotAuthenticatedError } from "../../errors/index.mjs";
|
|
3
|
-
class BaseApiKeyRequestAuthMethod extends BaseRequestAuthMethod {
|
|
4
|
-
headerName;
|
|
5
|
-
constructor(headerName) {
|
|
6
|
-
super();
|
|
7
|
-
this.headerName = headerName;
|
|
8
|
-
}
|
|
9
|
-
async parse(headers) {
|
|
10
|
-
const headerValue = headers[this.headerName];
|
|
11
|
-
if (!headerValue || typeof headerValue !== "string") throw new NotAuthenticatedError();
|
|
12
|
-
return this.verify(headerValue);
|
|
13
|
-
}
|
|
14
|
-
routeSecuritySchemeName() {
|
|
15
|
-
return this.headerName;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export {
|
|
19
|
-
BaseApiKeyRequestAuthMethod
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=apiKeys.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/apiKeys.ts"],"sourcesContent":["import type { IncomingHttpHeaders } from 'node:http2'\n\nimport { BaseRequestAuthMethod } from './base'\nimport { NotAuthenticatedError } from '../../errors'\n\nexport abstract class BaseApiKeyRequestAuthMethod<T extends { id: string }> extends BaseRequestAuthMethod<T> {\n\tprotected readonly headerName: string\n\tprotected abstract verify(apiKey: string): Promise<T>\n\n\tconstructor(headerName: string) {\n\t\tsuper()\n\t\tthis.headerName = headerName\n\t}\n\n\tasync parse(headers: IncomingHttpHeaders) {\n\t\tconst headerValue = headers[this.headerName]\n\t\tif (!headerValue || typeof headerValue !== 'string') throw new NotAuthenticatedError()\n\t\treturn this.verify(headerValue)\n\t}\n\n\trouteSecuritySchemeName() {\n\t\treturn this.headerName\n\t}\n}\n"],"mappings":"AAEA,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AAE/B,MAAe,oCAA8D,sBAAyB;AAAA,EACzF;AAAA,EAGnB,YAAY,YAAoB;AAC/B,UAAM;AACN,SAAK,aAAa;AAAA,EACnB;AAAA,EAEA,MAAM,MAAM,SAA8B;AACzC,UAAM,cAAc,QAAQ,KAAK,UAAU;AAC3C,QAAI,CAAC,eAAe,OAAO,gBAAgB,SAAU,OAAM,IAAI,sBAAsB;AACrF,WAAO,KAAK,OAAO,WAAW;AAAA,EAC/B;AAAA,EAEA,0BAA0B;AACzB,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"node:http2";import{BadRequestError as o,RequestError as n}from "../../errors/index.min.mjs";class d{static async process(r,t){if(r.length===0)return null;let e;for(const s of r)try{return await s.parse(t)}catch(a){e=a}throw e instanceof n?e:new o("failed to parse auth user",e)}}export{d as BaseRequestAuthMethod};
|
|
2
|
-
//# sourceMappingURL=base.min.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/base.ts"],"sourcesContent":["import { type IncomingHttpHeaders } from 'node:http2'\n\nimport { BadRequestError, RequestError } from '../../errors'\n\nexport abstract class BaseRequestAuthMethod<T extends { id: string }> {\n\tpublic abstract parse(headers: IncomingHttpHeaders): Promise<T>\n\tpublic abstract routeSecuritySchemeName(): string | null\n\n\tstatic async process<T extends { id: string }>(methods: BaseRequestAuthMethod<T>[], headers: IncomingHttpHeaders) {\n\t\tif (methods.length === 0) return null\n\t\tlet error: Error | undefined\n\t\tfor (const method of methods) {\n\t\t\ttry {\n\t\t\t\treturn await method.parse(headers)\n\t\t\t} catch (err) {\n\t\t\t\terror = err as Error\n\t\t\t}\n\t\t}\n\t\tthrow error instanceof RequestError ? error : new BadRequestError('failed to parse auth user', error)\n\t}\n}\n"],"mappings":"AAAA,MAAyC,aAEzC,OAAS,mBAAAA,EAAiB,gBAAAC,MAAoB,eAEvC,MAAeC,CAAgD,CAIrE,aAAa,QAAkCC,EAAqCC,EAA8B,CACjH,GAAID,EAAQ,SAAW,EAAG,OAAO,KACjC,IAAIE,EACJ,UAAWC,KAAUH,EACpB,GAAI,CACH,OAAO,MAAMG,EAAO,MAAMF,CAAO,CAClC,OAASG,EAAK,CACbF,EAAQE,CACT,CAED,MAAMF,aAAiBJ,EAAeI,EAAQ,IAAIL,EAAgB,4BAA6BK,CAAK,CACrG,CACD","names":["BadRequestError","RequestError","BaseRequestAuthMethod","methods","headers","error","method","err"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import {} from "node:http2";
|
|
2
|
-
import { BadRequestError, RequestError } from "../../errors/index.mjs";
|
|
3
|
-
class BaseRequestAuthMethod {
|
|
4
|
-
static async process(methods, headers) {
|
|
5
|
-
if (methods.length === 0) return null;
|
|
6
|
-
let error;
|
|
7
|
-
for (const method of methods) {
|
|
8
|
-
try {
|
|
9
|
-
return await method.parse(headers);
|
|
10
|
-
} catch (err) {
|
|
11
|
-
error = err;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
throw error instanceof RequestError ? error : new BadRequestError("failed to parse auth user", error);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export {
|
|
18
|
-
BaseRequestAuthMethod
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=base.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/base.ts"],"sourcesContent":["import { type IncomingHttpHeaders } from 'node:http2'\n\nimport { BadRequestError, RequestError } from '../../errors'\n\nexport abstract class BaseRequestAuthMethod<T extends { id: string }> {\n\tpublic abstract parse(headers: IncomingHttpHeaders): Promise<T>\n\tpublic abstract routeSecuritySchemeName(): string | null\n\n\tstatic async process<T extends { id: string }>(methods: BaseRequestAuthMethod<T>[], headers: IncomingHttpHeaders) {\n\t\tif (methods.length === 0) return null\n\t\tlet error: Error | undefined\n\t\tfor (const method of methods) {\n\t\t\ttry {\n\t\t\t\treturn await method.parse(headers)\n\t\t\t} catch (err) {\n\t\t\t\terror = err as Error\n\t\t\t}\n\t\t}\n\t\tthrow error instanceof RequestError ? error : new BadRequestError('failed to parse auth user', error)\n\t}\n}\n"],"mappings":"AAAA,eAAyC;AAEzC,SAAS,iBAAiB,oBAAoB;AAEvC,MAAe,sBAAgD;AAAA,EAIrE,aAAa,QAAkC,SAAqC,SAA8B;AACjH,QAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QAAI;AACJ,eAAW,UAAU,SAAS;AAC7B,UAAI;AACH,eAAO,MAAM,OAAO,MAAM,OAAO;AAAA,MAClC,SAAS,KAAK;AACb,gBAAQ;AAAA,MACT;AAAA,IACD;AACA,UAAM,iBAAiB,eAAe,QAAQ,IAAI,gBAAgB,6BAA6B,KAAK;AAAA,EACrG;AACD;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/index.ts"],"sourcesContent":["export * from './apiKeys'\nexport * from './base'\nexport * from './jwt'\n"],"mappings":"AAAA,WAAc,YACd,WAAc,SACd,WAAc","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/index.ts"],"sourcesContent":["export * from './apiKeys'\nexport * from './base'\nexport * from './jwt'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import h from"@fastify/cookie";import r from"jsonwebtoken";import{BaseRequestAuthMethod as c}from "./base.min.mjs";import{NotAuthenticatedError as o,TokenExpired as i}from "../../errors/index.min.mjs";class a extends c{options;constructor(e){super(),this.options=e}#e(e){return`${this.options.storagePrefix??""}${e}`}async createToken(e){const t=r.sign(e,this.options.signingKey,{expiresIn:this.options.storageTTL});return await this.store(this.#e(e.id),t,this.options.storageTTL),t}async parse(e){try{const t=await this.parseHeader(e),s=r.verify(t,this.options.signingKey);if(!s)throw new o;if(this.options.enforceSingleSession){const d=await this.retrieve(this.#e(s.id));if(t&&t!==d)throw new i}return s}catch(t){throw t instanceof i?t:t instanceof r.TokenExpiredError?new i(void 0,t):new o(void 0,t)}}async retrieveFor(e){return this.retrieve(this.#e(e))}async deleteFor(e){await this.delete(this.#e(e))}}class w extends a{options;constructor(e){super(e),this.options=e}async parseHeader(e){const t=e[this.options.headerName];if(!t||typeof t!="string")throw new o;return t.startsWith("Bearer ")?t.slice(7):t}routeSecuritySchemeName(){return this.options.headerName}}class f extends a{options;constructor(e){super(e),this.options=e}async parseHeader(e){const s=(h.parse(e.cookie||"")??{})[this.options.cookieName];if(!s||typeof s!="string")throw new o;return s}routeSecuritySchemeName(){return`cookie:${this.options.cookieName}`}}export{f as BaseJwtCookieRequestAuthMethod,w as BaseJwtHeaderRequestAuthMethod,a as BaseJwtRequestAuthMethod};
|
|
2
|
-
//# sourceMappingURL=jwt.min.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/jwt.ts"],"sourcesContent":["import type { IncomingHttpHeaders } from 'node:http2'\n\nimport cookie from '@fastify/cookie'\nimport jwt from 'jsonwebtoken'\n\nimport { BaseRequestAuthMethod } from './base'\nimport { NotAuthenticatedError, TokenExpired } from '../../errors'\n\nexport interface BaseJwtRequestAuthMethodOptions {\n\tsigningKey: string\n\tstorageTTL: number\n\tstoragePrefix?: string\n\tenforceSingleSession?: boolean\n}\n\nexport abstract class BaseJwtRequestAuthMethod<T extends { id: string }> extends BaseRequestAuthMethod<T> {\n\tprotected readonly options: BaseJwtRequestAuthMethodOptions\n\tprotected abstract parseHeader(headers: IncomingHttpHeaders): Promise<string>\n\tprotected abstract store(key: string, token: string, ttl: number): Promise<void>\n\tprotected abstract retrieve(key: string): Promise<string | null>\n\tprotected abstract delete(key: string): Promise<void>\n\n\tconstructor(options: BaseJwtRequestAuthMethodOptions) {\n\t\tsuper()\n\t\tthis.options = options\n\t}\n\n\t#getKey(userId: string) {\n\t\treturn `${this.options.storagePrefix ?? ''}${userId}`\n\t}\n\n\tasync createToken(payload: T) {\n\t\tconst token = jwt.sign(payload, this.options.signingKey, { expiresIn: this.options.storageTTL })\n\t\tawait this.store(this.#getKey(payload.id), token, this.options.storageTTL)\n\t\treturn token\n\t}\n\n\tasync parse(headers: IncomingHttpHeaders) {\n\t\ttry {\n\t\t\tconst token = await this.parseHeader(headers)\n\t\t\tconst user = jwt.verify(token, this.options.signingKey) as T\n\t\t\tif (!user) throw new NotAuthenticatedError()\n\n\t\t\tif (this.options.enforceSingleSession) {\n\t\t\t\tconst cachedToken = await this.retrieve(this.#getKey(user.id))\n\t\t\t\tif (token && token !== cachedToken) throw new TokenExpired()\n\t\t\t}\n\n\t\t\treturn user\n\t\t} catch (err) {\n\t\t\tif (err instanceof TokenExpired) throw err\n\t\t\tif (err instanceof jwt.TokenExpiredError) throw new TokenExpired(undefined, err)\n\t\t\telse throw new NotAuthenticatedError(undefined, err)\n\t\t}\n\t}\n\n\tasync retrieveFor(userId: string) {\n\t\treturn this.retrieve(this.#getKey(userId))\n\t}\n\n\tasync deleteFor(userId: string) {\n\t\tawait this.delete(this.#getKey(userId))\n\t}\n}\n\ninterface BaseJwtHeaderRequestAuthMethodOptions<T extends string> extends BaseJwtRequestAuthMethodOptions {\n\theaderName: T\n}\n\nexport abstract class BaseJwtHeaderRequestAuthMethod<T extends { id: string }, Name extends string = string> extends BaseJwtRequestAuthMethod<T> {\n\tprotected readonly options: BaseJwtHeaderRequestAuthMethodOptions<Name>\n\n\tconstructor(options: BaseJwtHeaderRequestAuthMethodOptions<Name>) {\n\t\tsuper(options)\n\t\tthis.options = options\n\t}\n\n\tasync parseHeader(headers: IncomingHttpHeaders) {\n\t\tconst value = headers[this.options.headerName]\n\t\tif (!value || typeof value !== 'string') throw new NotAuthenticatedError()\n\t\treturn value.startsWith('Bearer ') ? value.slice(7) : value\n\t}\n\n\trouteSecuritySchemeName() {\n\t\treturn this.options.headerName\n\t}\n}\n\ninterface BaseJwtCookieRequestAuthMethodOptions<T extends string> extends BaseJwtRequestAuthMethodOptions {\n\tcookieName: T\n}\n\nexport abstract class BaseJwtCookieRequestAuthMethod<T extends { id: string }, Name extends string = string> extends BaseJwtRequestAuthMethod<T> {\n\tprotected readonly options: BaseJwtCookieRequestAuthMethodOptions<Name>\n\n\tconstructor(options: BaseJwtCookieRequestAuthMethodOptions<Name>) {\n\t\tsuper(options)\n\t\tthis.options = options\n\t}\n\n\tasync parseHeader(headers: IncomingHttpHeaders) {\n\t\tconst cookies = cookie.parse(headers.cookie || '') ?? {}\n\t\tconst value = cookies[this.options.cookieName]\n\t\tif (!value || typeof value !== 'string') throw new NotAuthenticatedError()\n\t\treturn value\n\t}\n\n\trouteSecuritySchemeName() {\n\t\treturn `cookie:${this.options.cookieName}`\n\t}\n}\n"],"mappings":"AAEA,OAAOA,MAAY,kBACnB,OAAOC,MAAS,eAEhB,OAAS,yBAAAC,MAA6B,SACtC,OAAS,yBAAAC,EAAuB,gBAAAC,MAAoB,eAS7C,MAAeC,UAA2DH,CAAyB,CACtF,QAMnB,YAAYI,EAA0C,CACrD,MAAM,EACN,KAAK,QAAUA,CAChB,CAEAC,GAAQC,EAAgB,CACvB,MAAO,GAAG,KAAK,QAAQ,eAAiB,EAAE,GAAGA,CAAM,EACpD,CAEA,MAAM,YAAYC,EAAY,CAC7B,MAAMC,EAAQT,EAAI,KAAKQ,EAAS,KAAK,QAAQ,WAAY,CAAE,UAAW,KAAK,QAAQ,UAAW,CAAC,EAC/F,aAAM,KAAK,MAAM,KAAKF,GAAQE,EAAQ,EAAE,EAAGC,EAAO,KAAK,QAAQ,UAAU,EAClEA,CACR,CAEA,MAAM,MAAMC,EAA8B,CACzC,GAAI,CACH,MAAMD,EAAQ,MAAM,KAAK,YAAYC,CAAO,EACtCC,EAAOX,EAAI,OAAOS,EAAO,KAAK,QAAQ,UAAU,EACtD,GAAI,CAACE,EAAM,MAAM,IAAIT,EAErB,GAAI,KAAK,QAAQ,qBAAsB,CACtC,MAAMU,EAAc,MAAM,KAAK,SAAS,KAAKN,GAAQK,EAAK,EAAE,CAAC,EAC7D,GAAIF,GAASA,IAAUG,EAAa,MAAM,IAAIT,CAC/C,CAEA,OAAOQ,CACR,OAASE,EAAK,CACb,MAAIA,aAAeV,EAAoBU,EACnCA,aAAeb,EAAI,kBAAyB,IAAIG,EAAa,OAAWU,CAAG,EACpE,IAAIX,EAAsB,OAAWW,CAAG,CACpD,CACD,CAEA,MAAM,YAAYN,EAAgB,CACjC,OAAO,KAAK,SAAS,KAAKD,GAAQC,CAAM,CAAC,CAC1C,CAEA,MAAM,UAAUA,EAAgB,CAC/B,MAAM,KAAK,OAAO,KAAKD,GAAQC,CAAM,CAAC,CACvC,CACD,CAMO,MAAeO,UAA+FV,CAA4B,CAC7H,QAEnB,YAAYC,EAAsD,CACjE,MAAMA,CAAO,EACb,KAAK,QAAUA,CAChB,CAEA,MAAM,YAAYK,EAA8B,CAC/C,MAAMK,EAAQL,EAAQ,KAAK,QAAQ,UAAU,EAC7C,GAAI,CAACK,GAAS,OAAOA,GAAU,SAAU,MAAM,IAAIb,EACnD,OAAOa,EAAM,WAAW,SAAS,EAAIA,EAAM,MAAM,CAAC,EAAIA,CACvD,CAEA,yBAA0B,CACzB,OAAO,KAAK,QAAQ,UACrB,CACD,CAMO,MAAeC,UAA+FZ,CAA4B,CAC7H,QAEnB,YAAYC,EAAsD,CACjE,MAAMA,CAAO,EACb,KAAK,QAAUA,CAChB,CAEA,MAAM,YAAYK,EAA8B,CAE/C,MAAMK,GADUhB,EAAO,MAAMW,EAAQ,QAAU,EAAE,GAAK,CAAC,GACjC,KAAK,QAAQ,UAAU,EAC7C,GAAI,CAACK,GAAS,OAAOA,GAAU,SAAU,MAAM,IAAIb,EACnD,OAAOa,CACR,CAEA,yBAA0B,CACzB,MAAO,UAAU,KAAK,QAAQ,UAAU,EACzC,CACD","names":["cookie","jwt","BaseRequestAuthMethod","NotAuthenticatedError","TokenExpired","BaseJwtRequestAuthMethod","options","#getKey","userId","payload","token","headers","user","cachedToken","err","BaseJwtHeaderRequestAuthMethod","value","BaseJwtCookieRequestAuthMethod"]}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import cookie from "@fastify/cookie";
|
|
2
|
-
import jwt from "jsonwebtoken";
|
|
3
|
-
import { BaseRequestAuthMethod } from "./base.mjs";
|
|
4
|
-
import { NotAuthenticatedError, TokenExpired } from "../../errors/index.mjs";
|
|
5
|
-
class BaseJwtRequestAuthMethod extends BaseRequestAuthMethod {
|
|
6
|
-
options;
|
|
7
|
-
constructor(options) {
|
|
8
|
-
super();
|
|
9
|
-
this.options = options;
|
|
10
|
-
}
|
|
11
|
-
#getKey(userId) {
|
|
12
|
-
return `${this.options.storagePrefix ?? ""}${userId}`;
|
|
13
|
-
}
|
|
14
|
-
async createToken(payload) {
|
|
15
|
-
const token = jwt.sign(payload, this.options.signingKey, { expiresIn: this.options.storageTTL });
|
|
16
|
-
await this.store(this.#getKey(payload.id), token, this.options.storageTTL);
|
|
17
|
-
return token;
|
|
18
|
-
}
|
|
19
|
-
async parse(headers) {
|
|
20
|
-
try {
|
|
21
|
-
const token = await this.parseHeader(headers);
|
|
22
|
-
const user = jwt.verify(token, this.options.signingKey);
|
|
23
|
-
if (!user) throw new NotAuthenticatedError();
|
|
24
|
-
if (this.options.enforceSingleSession) {
|
|
25
|
-
const cachedToken = await this.retrieve(this.#getKey(user.id));
|
|
26
|
-
if (token && token !== cachedToken) throw new TokenExpired();
|
|
27
|
-
}
|
|
28
|
-
return user;
|
|
29
|
-
} catch (err) {
|
|
30
|
-
if (err instanceof TokenExpired) throw err;
|
|
31
|
-
if (err instanceof jwt.TokenExpiredError) throw new TokenExpired(void 0, err);
|
|
32
|
-
else throw new NotAuthenticatedError(void 0, err);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async retrieveFor(userId) {
|
|
36
|
-
return this.retrieve(this.#getKey(userId));
|
|
37
|
-
}
|
|
38
|
-
async deleteFor(userId) {
|
|
39
|
-
await this.delete(this.#getKey(userId));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
class BaseJwtHeaderRequestAuthMethod extends BaseJwtRequestAuthMethod {
|
|
43
|
-
options;
|
|
44
|
-
constructor(options) {
|
|
45
|
-
super(options);
|
|
46
|
-
this.options = options;
|
|
47
|
-
}
|
|
48
|
-
async parseHeader(headers) {
|
|
49
|
-
const value = headers[this.options.headerName];
|
|
50
|
-
if (!value || typeof value !== "string") throw new NotAuthenticatedError();
|
|
51
|
-
return value.startsWith("Bearer ") ? value.slice(7) : value;
|
|
52
|
-
}
|
|
53
|
-
routeSecuritySchemeName() {
|
|
54
|
-
return this.options.headerName;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
class BaseJwtCookieRequestAuthMethod extends BaseJwtRequestAuthMethod {
|
|
58
|
-
options;
|
|
59
|
-
constructor(options) {
|
|
60
|
-
super(options);
|
|
61
|
-
this.options = options;
|
|
62
|
-
}
|
|
63
|
-
async parseHeader(headers) {
|
|
64
|
-
const cookies = cookie.parse(headers.cookie || "") ?? {};
|
|
65
|
-
const value = cookies[this.options.cookieName];
|
|
66
|
-
if (!value || typeof value !== "string") throw new NotAuthenticatedError();
|
|
67
|
-
return value;
|
|
68
|
-
}
|
|
69
|
-
routeSecuritySchemeName() {
|
|
70
|
-
return `cookie:${this.options.cookieName}`;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
export {
|
|
74
|
-
BaseJwtCookieRequestAuthMethod,
|
|
75
|
-
BaseJwtHeaderRequestAuthMethod,
|
|
76
|
-
BaseJwtRequestAuthMethod
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=jwt.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/requests-auth-methods/jwt.ts"],"sourcesContent":["import type { IncomingHttpHeaders } from 'node:http2'\n\nimport cookie from '@fastify/cookie'\nimport jwt from 'jsonwebtoken'\n\nimport { BaseRequestAuthMethod } from './base'\nimport { NotAuthenticatedError, TokenExpired } from '../../errors'\n\nexport interface BaseJwtRequestAuthMethodOptions {\n\tsigningKey: string\n\tstorageTTL: number\n\tstoragePrefix?: string\n\tenforceSingleSession?: boolean\n}\n\nexport abstract class BaseJwtRequestAuthMethod<T extends { id: string }> extends BaseRequestAuthMethod<T> {\n\tprotected readonly options: BaseJwtRequestAuthMethodOptions\n\tprotected abstract parseHeader(headers: IncomingHttpHeaders): Promise<string>\n\tprotected abstract store(key: string, token: string, ttl: number): Promise<void>\n\tprotected abstract retrieve(key: string): Promise<string | null>\n\tprotected abstract delete(key: string): Promise<void>\n\n\tconstructor(options: BaseJwtRequestAuthMethodOptions) {\n\t\tsuper()\n\t\tthis.options = options\n\t}\n\n\t#getKey(userId: string) {\n\t\treturn `${this.options.storagePrefix ?? ''}${userId}`\n\t}\n\n\tasync createToken(payload: T) {\n\t\tconst token = jwt.sign(payload, this.options.signingKey, { expiresIn: this.options.storageTTL })\n\t\tawait this.store(this.#getKey(payload.id), token, this.options.storageTTL)\n\t\treturn token\n\t}\n\n\tasync parse(headers: IncomingHttpHeaders) {\n\t\ttry {\n\t\t\tconst token = await this.parseHeader(headers)\n\t\t\tconst user = jwt.verify(token, this.options.signingKey) as T\n\t\t\tif (!user) throw new NotAuthenticatedError()\n\n\t\t\tif (this.options.enforceSingleSession) {\n\t\t\t\tconst cachedToken = await this.retrieve(this.#getKey(user.id))\n\t\t\t\tif (token && token !== cachedToken) throw new TokenExpired()\n\t\t\t}\n\n\t\t\treturn user\n\t\t} catch (err) {\n\t\t\tif (err instanceof TokenExpired) throw err\n\t\t\tif (err instanceof jwt.TokenExpiredError) throw new TokenExpired(undefined, err)\n\t\t\telse throw new NotAuthenticatedError(undefined, err)\n\t\t}\n\t}\n\n\tasync retrieveFor(userId: string) {\n\t\treturn this.retrieve(this.#getKey(userId))\n\t}\n\n\tasync deleteFor(userId: string) {\n\t\tawait this.delete(this.#getKey(userId))\n\t}\n}\n\ninterface BaseJwtHeaderRequestAuthMethodOptions<T extends string> extends BaseJwtRequestAuthMethodOptions {\n\theaderName: T\n}\n\nexport abstract class BaseJwtHeaderRequestAuthMethod<T extends { id: string }, Name extends string = string> extends BaseJwtRequestAuthMethod<T> {\n\tprotected readonly options: BaseJwtHeaderRequestAuthMethodOptions<Name>\n\n\tconstructor(options: BaseJwtHeaderRequestAuthMethodOptions<Name>) {\n\t\tsuper(options)\n\t\tthis.options = options\n\t}\n\n\tasync parseHeader(headers: IncomingHttpHeaders) {\n\t\tconst value = headers[this.options.headerName]\n\t\tif (!value || typeof value !== 'string') throw new NotAuthenticatedError()\n\t\treturn value.startsWith('Bearer ') ? value.slice(7) : value\n\t}\n\n\trouteSecuritySchemeName() {\n\t\treturn this.options.headerName\n\t}\n}\n\ninterface BaseJwtCookieRequestAuthMethodOptions<T extends string> extends BaseJwtRequestAuthMethodOptions {\n\tcookieName: T\n}\n\nexport abstract class BaseJwtCookieRequestAuthMethod<T extends { id: string }, Name extends string = string> extends BaseJwtRequestAuthMethod<T> {\n\tprotected readonly options: BaseJwtCookieRequestAuthMethodOptions<Name>\n\n\tconstructor(options: BaseJwtCookieRequestAuthMethodOptions<Name>) {\n\t\tsuper(options)\n\t\tthis.options = options\n\t}\n\n\tasync parseHeader(headers: IncomingHttpHeaders) {\n\t\tconst cookies = cookie.parse(headers.cookie || '') ?? {}\n\t\tconst value = cookies[this.options.cookieName]\n\t\tif (!value || typeof value !== 'string') throw new NotAuthenticatedError()\n\t\treturn value\n\t}\n\n\trouteSecuritySchemeName() {\n\t\treturn `cookie:${this.options.cookieName}`\n\t}\n}\n"],"mappings":"AAEA,OAAO,YAAY;AACnB,OAAO,SAAS;AAEhB,SAAS,6BAA6B;AACtC,SAAS,uBAAuB,oBAAoB;AAS7C,MAAe,iCAA2D,sBAAyB;AAAA,EACtF;AAAA,EAMnB,YAAY,SAA0C;AACrD,UAAM;AACN,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,QAAQ,QAAgB;AACvB,WAAO,GAAG,KAAK,QAAQ,iBAAiB,EAAE,GAAG,MAAM;AAAA,EACpD;AAAA,EAEA,MAAM,YAAY,SAAY;AAC7B,UAAM,QAAQ,IAAI,KAAK,SAAS,KAAK,QAAQ,YAAY,EAAE,WAAW,KAAK,QAAQ,WAAW,CAAC;AAC/F,UAAM,KAAK,MAAM,KAAK,QAAQ,QAAQ,EAAE,GAAG,OAAO,KAAK,QAAQ,UAAU;AACzE,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,MAAM,SAA8B;AACzC,QAAI;AACH,YAAM,QAAQ,MAAM,KAAK,YAAY,OAAO;AAC5C,YAAM,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,UAAU;AACtD,UAAI,CAAC,KAAM,OAAM,IAAI,sBAAsB;AAE3C,UAAI,KAAK,QAAQ,sBAAsB;AACtC,cAAM,cAAc,MAAM,KAAK,SAAS,KAAK,QAAQ,KAAK,EAAE,CAAC;AAC7D,YAAI,SAAS,UAAU,YAAa,OAAM,IAAI,aAAa;AAAA,MAC5D;AAEA,aAAO;AAAA,IACR,SAAS,KAAK;AACb,UAAI,eAAe,aAAc,OAAM;AACvC,UAAI,eAAe,IAAI,kBAAmB,OAAM,IAAI,aAAa,QAAW,GAAG;AAAA,UAC1E,OAAM,IAAI,sBAAsB,QAAW,GAAG;AAAA,IACpD;AAAA,EACD;AAAA,EAEA,MAAM,YAAY,QAAgB;AACjC,WAAO,KAAK,SAAS,KAAK,QAAQ,MAAM,CAAC;AAAA,EAC1C;AAAA,EAEA,MAAM,UAAU,QAAgB;AAC/B,UAAM,KAAK,OAAO,KAAK,QAAQ,MAAM,CAAC;AAAA,EACvC;AACD;AAMO,MAAe,uCAA+F,yBAA4B;AAAA,EAC7H;AAAA,EAEnB,YAAY,SAAsD;AACjE,UAAM,OAAO;AACb,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAM,YAAY,SAA8B;AAC/C,UAAM,QAAQ,QAAQ,KAAK,QAAQ,UAAU;AAC7C,QAAI,CAAC,SAAS,OAAO,UAAU,SAAU,OAAM,IAAI,sBAAsB;AACzE,WAAO,MAAM,WAAW,SAAS,IAAI,MAAM,MAAM,CAAC,IAAI;AAAA,EACvD;AAAA,EAEA,0BAA0B;AACzB,WAAO,KAAK,QAAQ;AAAA,EACrB;AACD;AAMO,MAAe,uCAA+F,yBAA4B;AAAA,EAC7H;AAAA,EAEnB,YAAY,SAAsD;AACjE,UAAM,OAAO;AACb,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAM,YAAY,SAA8B;AAC/C,UAAM,UAAU,OAAO,MAAM,QAAQ,UAAU,EAAE,KAAK,CAAC;AACvD,UAAM,QAAQ,QAAQ,KAAK,QAAQ,UAAU;AAC7C,QAAI,CAAC,SAAS,OAAO,UAAU,SAAU,OAAM,IAAI,sBAAsB;AACzE,WAAO;AAAA,EACR;AAAA,EAEA,0BAA0B;AACzB,WAAO,UAAU,KAAK,QAAQ,UAAU;AAAA,EACzC;AACD;","names":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{parseJSONObject as a}from "../utilities/index.min.mjs";class D{ip;method;path;body;params;query;headers;cookies;authUser=null;constructor({ip:e,body:s,cookies:t,params:r,query:n,method:o,path:d,headers:u,files:f}){this.ip=e,this.method=o,this.path=d,this.params=r,this.cookies=t,this.headers=u,this.query=a(n),this.body=Object.assign(a(s),f)}pipe(e,s={}){return new i({...s,piped:!0,body:e})}res(e){return new i({...e,piped:!1})}error(e){return new i({...e,piped:!1})}}class i{body;headers;cookies;status;contentType;piped;constructor({body:e,status:s=200,headers:t={},cookies:r={},piped:n=!1,contentType:o="application/json"}){this.body=e,this.status=s,this.contentType=o,this.headers=t,this.cookies=r,this.piped=n,this.piped||(this.headers["Content-Type"]=o)}get cookieValues(){return Object.fromEntries(Object.entries(this.cookies).map(([e,s])=>[e,s]))}set cookieValues(e){Object.entries(e).forEach(([s,t])=>{this.cookies[s]&&(this.cookies[s].value=t)})}}export{D as Request,i as Response};
|
|
2
|
-
//# sourceMappingURL=requests.min.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/requests.ts"],"sourcesContent":["import type { IncomingHttpHeaders } from 'node:http2'\nimport type { Readable } from 'node:stream'\n\nimport type { SerializeOptions } from '@fastify/cookie'\nimport type { DistributiveOmit, IsInTypeList } from 'valleyed'\n\nimport type { RequestError } from '../errors'\nimport type { DefaultCookies, DefaultHeaders, IncomingFile, MethodsEnum, RouteDef, RouteDefToReqRes } from './types'\nimport type { AuthUser } from '../types'\nimport { parseJSONObject } from '../utilities'\n\nexport type CookieVal<C extends DefaultCookies> = {\n\t[K in keyof C]: SerializeOptions & { value: C[K] }\n}\n\nexport class Request<Def extends RouteDefToReqRes<any>> {\n\treadonly ip: string | undefined\n\treadonly method: MethodsEnum\n\treadonly path: string\n\tbody: Def['body']\n\tparams: Def['params']\n\tquery: Def['query']\n\theaders: IncomingHttpHeaders & Def['requestHeaders']\n\tcookies: Record<string, string | undefined> & Def['requestCookies']\n\tauthUser: AuthUser | null = null\n\n\tconstructor({\n\t\tip,\n\t\tbody,\n\t\tcookies,\n\t\tparams,\n\t\tquery,\n\t\tmethod,\n\t\tpath,\n\t\theaders,\n\t\tfiles,\n\t}: {\n\t\tip: string | undefined\n\t\tbody: Def['body']\n\t\tparams: Def['params']\n\t\tquery: Def['query']\n\t\tcookies: Record<string, string | undefined> & Def['requestCookies']\n\t\theaders: IncomingHttpHeaders\n\t\tfiles: Record<string, IncomingFile[]>\n\t\tmethod: MethodsEnum\n\t\tpath: string\n\t\t}) {\n\t\tthis.ip = ip\n\t\tthis.method = method\n\t\tthis.path = path\n\t\tthis.params = params\n\t\tthis.cookies = cookies\n\t\tthis.headers = headers\n\t\tthis.query = parseJSONObject(query)\n\t\tthis.body = <any>Object.assign(parseJSONObject(body), files)\n\t}\n\n\tpipe(stream: Readable, opts: { headers?: Def['responseHeaders']; cookies?: Def['responseCookies']; status?: Def['statusCode'] } = {}) {\n\t\treturn new Response<Omit<Def, 'response'> & { response: Readable }>(<any>{ ...opts, piped: true, body: stream })\n\t}\n\n\tres(params: DistributiveOmit<RequestParams<Def>, 'piped'>) {\n\t\treturn new Response<Def>(<any>{ ...params, piped: false })\n\t}\n\n\terror<\n\t\tT extends Omit<Def, 'response' | 'statusCode' | 'responseHeaders' | 'responseCookies' | 'contentType'> & {\n\t\t\tresponse: RequestError['serializedErrors']\n\t\t\tstatusCode: RequestError['statusCode']\n\t\t\tresponseHeaders: DefaultHeaders\n\t\t\tresponseCookies: DefaultCookies\n\t\t\tcontentType: 'application/json'\n\t\t},\n\t>(params: DistributiveOmit<RequestParams<T>, 'piped'>) {\n\t\treturn new Response<T>(<any>{ ...params, piped: false })\n\t}\n}\n\ntype RequestParams<Def extends RouteDefToReqRes<any>, T = Def['response']> = { body: T; piped?: boolean } & (IsInTypeList<\n\tDef['statusCode'],\n\t[NonNullable<RouteDef['defaultStatusCode']>, 200]\n> extends true\n\t? { status?: Def['statusCode'] }\n\t: { status: Def['statusCode'] }) &\n\t(IsInTypeList<Def['contentType'], [NonNullable<RouteDef['defaultContentType']>, 'application/json']> extends true\n\t\t? { contentType?: Def['contentType'] }\n\t\t: { contentType: Def['contentType'] }) &\n\t(IsInTypeList<Def['responseHeaders'], [DefaultHeaders]> extends true\n\t\t? { headers?: Def['responseHeaders'] }\n\t\t: { headers: Def['responseHeaders'] }) &\n\t(IsInTypeList<Def['responseCookies'], [DefaultCookies]> extends true\n\t\t? { cookies?: CookieVal<Def['responseCookies']> }\n\t\t: { cookies: CookieVal<Def['responseCookies']> })\n\nexport class Response<Def extends RouteDefToReqRes<any>> {\n\tbody: Def['response'] | undefined\n\theaders: Def['responseHeaders']\n\tcookies: CookieVal<Def['responseCookies']>\n\treadonly status: Def['statusCode']\n\treadonly contentType: Def['contentType']\n\treadonly piped: boolean\n\n\tconstructor({\n\t\tbody,\n\t\tstatus = <any>200,\n\t\theaders = <any>{},\n\t\tcookies = <any>{},\n\t\tpiped = false,\n\t\tcontentType = <any>'application/json',\n\t}: RequestParams<Def>) {\n\t\tthis.body = body\n\t\tthis.status = status\n\t\tthis.contentType = contentType\n\t\tthis.headers = headers\n\t\tthis.cookies = cookies\n\t\tthis.piped = piped\n\n\t\tif (!this.piped) {\n\t\t\t// @ts-expect-error indexing on generic\n\t\t\tthis.headers['Content-Type'] = contentType\n\t\t}\n\t}\n\n\tget cookieValues() {\n\t\treturn Object.fromEntries(Object.entries(this.cookies).map(([key, val]) => [key, val] as const))\n\t}\n\n\tset cookieValues(values: DefaultCookies) {\n\t\tObject.entries(values).forEach(([key, val]) => {\n\t\t\t// @ts-expect-error indexing on generic\n\t\t\tif (this.cookies[key]) this.cookies[key].value = val\n\t\t})\n\t}\n}\n"],"mappings":"AASA,OAAS,mBAAAA,MAAuB,eAMzB,MAAMC,CAA2C,CAC9C,GACA,OACA,KACT,KACA,OACA,MACA,QACA,QACA,SAA4B,KAE5B,YAAY,CACX,GAAAC,EACA,KAAAC,EACA,QAAAC,EACA,OAAAC,EACA,MAAAC,EACA,OAAAC,EACA,KAAAC,EACA,QAAAC,EACA,MAAAC,CACD,EAUI,CACH,KAAK,GAAKR,EACV,KAAK,OAASK,EACd,KAAK,KAAOC,EACZ,KAAK,OAASH,EACd,KAAK,QAAUD,EACf,KAAK,QAAUK,EACf,KAAK,MAAQT,EAAgBM,CAAK,EAClC,KAAK,KAAY,OAAO,OAAON,EAAgBG,CAAI,EAAGO,CAAK,CAC5D,CAEA,KAAKC,EAAkBC,EAA2G,CAAC,EAAG,CACrI,OAAO,IAAIC,EAA8D,CAAE,GAAGD,EAAM,MAAO,GAAM,KAAMD,CAAO,CAAC,CAChH,CAEA,IAAIN,EAAuD,CAC1D,OAAO,IAAIQ,EAAmB,CAAE,GAAGR,EAAQ,MAAO,EAAM,CAAC,CAC1D,CAEA,MAQEA,EAAqD,CACtD,OAAO,IAAIQ,EAAiB,CAAE,GAAGR,EAAQ,MAAO,EAAM,CAAC,CACxD,CACD,CAkBO,MAAMQ,CAA4C,CACxD,KACA,QACA,QACS,OACA,YACA,MAET,YAAY,CACX,KAAAV,EACA,OAAAW,EAAc,IACd,QAAAL,EAAe,CAAC,EAChB,QAAAL,EAAe,CAAC,EAChB,MAAAW,EAAQ,GACR,YAAAC,EAAmB,kBACpB,EAAuB,CACtB,KAAK,KAAOb,EACZ,KAAK,OAASW,EACd,KAAK,YAAcE,EACnB,KAAK,QAAUP,EACf,KAAK,QAAUL,EACf,KAAK,MAAQW,EAER,KAAK,QAET,KAAK,QAAQ,cAAc,EAAIC,EAEjC,CAEA,IAAI,cAAe,CAClB,OAAO,OAAO,YAAY,OAAO,QAAQ,KAAK,OAAO,EAAE,IAAI,CAAC,CAACC,EAAKC,CAAG,IAAM,CAACD,EAAKC,CAAG,CAAU,CAAC,CAChG,CAEA,IAAI,aAAaC,EAAwB,CACxC,OAAO,QAAQA,CAAM,EAAE,QAAQ,CAAC,CAACF,EAAKC,CAAG,IAAM,CAE1C,KAAK,QAAQD,CAAG,IAAG,KAAK,QAAQA,CAAG,EAAE,MAAQC,EAClD,CAAC,CACF,CACD","names":["parseJSONObject","Request","ip","body","cookies","params","query","method","path","headers","files","stream","opts","Response","status","piped","contentType","key","val","values"]}
|