equipped 5.1.10 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/dbs/mongo/changes.cjs +5 -1
  3. package/dist/cjs/dbs/mongo/changes.cjs.map +1 -1
  4. package/dist/cjs/dbs/mongo/changes.min.cjs +1 -1
  5. package/dist/cjs/dbs/mongo/changes.min.cjs.map +1 -1
  6. package/dist/cjs/errors/index.cjs +1 -2
  7. package/dist/cjs/errors/index.cjs.map +1 -1
  8. package/dist/cjs/errors/index.min.cjs +1 -1
  9. package/dist/cjs/errors/index.min.cjs.map +1 -1
  10. package/dist/cjs/errors/types/tokenExpired.cjs +12 -0
  11. package/dist/cjs/errors/types/tokenExpired.cjs.map +1 -0
  12. package/dist/cjs/errors/types/{refreshTokenMisusedError.min.cjs → tokenExpired.min.cjs} +2 -2
  13. package/dist/cjs/errors/types/tokenExpired.min.cjs.map +1 -0
  14. package/dist/cjs/events/types/kafka.cjs +13 -16
  15. package/dist/cjs/events/types/kafka.cjs.map +1 -1
  16. package/dist/cjs/events/types/kafka.min.cjs +1 -1
  17. package/dist/cjs/events/types/kafka.min.cjs.map +1 -1
  18. package/dist/cjs/instance/index.cjs.map +1 -1
  19. package/dist/cjs/instance/index.min.cjs.map +1 -1
  20. package/dist/cjs/server/impls/base.cjs +17 -17
  21. package/dist/cjs/server/impls/base.cjs.map +1 -1
  22. package/dist/cjs/server/impls/base.min.cjs +1 -1
  23. package/dist/cjs/server/impls/base.min.cjs.map +1 -1
  24. package/dist/cjs/server/impls/express.cjs +2 -13
  25. package/dist/cjs/server/impls/express.cjs.map +1 -1
  26. package/dist/cjs/server/impls/express.min.cjs +1 -1
  27. package/dist/cjs/server/impls/express.min.cjs.map +1 -1
  28. package/dist/cjs/server/impls/fastify.cjs +3 -14
  29. package/dist/cjs/server/impls/fastify.cjs.map +1 -1
  30. package/dist/cjs/server/impls/fastify.min.cjs +1 -1
  31. package/dist/cjs/server/impls/fastify.min.cjs.map +1 -1
  32. package/dist/cjs/server/index.cjs +1 -1
  33. package/dist/cjs/server/index.cjs.map +1 -1
  34. package/dist/cjs/server/index.min.cjs +1 -1
  35. package/dist/cjs/server/index.min.cjs.map +1 -1
  36. package/dist/cjs/server/middlewares/requireAuthUser.cjs +9 -52
  37. package/dist/cjs/server/middlewares/requireAuthUser.cjs.map +1 -1
  38. package/dist/cjs/server/middlewares/requireAuthUser.min.cjs +1 -1
  39. package/dist/cjs/server/middlewares/requireAuthUser.min.cjs.map +1 -1
  40. package/dist/cjs/server/pipes.cjs +23 -8
  41. package/dist/cjs/server/pipes.cjs.map +1 -1
  42. package/dist/cjs/server/pipes.min.cjs +1 -1
  43. package/dist/cjs/server/pipes.min.cjs.map +1 -1
  44. package/dist/cjs/server/requests-auth-methods/apiKeys.cjs +21 -0
  45. package/dist/cjs/server/requests-auth-methods/apiKeys.cjs.map +1 -0
  46. package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs +2 -0
  47. package/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs.map +1 -0
  48. package/dist/cjs/server/requests-auth-methods/base.cjs +20 -0
  49. package/dist/cjs/server/requests-auth-methods/base.cjs.map +1 -0
  50. package/dist/cjs/server/requests-auth-methods/base.min.cjs +2 -0
  51. package/dist/cjs/server/requests-auth-methods/base.min.cjs.map +1 -0
  52. package/dist/cjs/server/{requests-auth → requests-auth-methods}/index.cjs +2 -1
  53. package/dist/cjs/server/requests-auth-methods/index.cjs.map +1 -0
  54. package/dist/cjs/server/{requests-auth → requests-auth-methods}/index.min.cjs +1 -1
  55. package/dist/cjs/server/requests-auth-methods/index.min.cjs.map +1 -0
  56. package/dist/cjs/server/requests-auth-methods/jwt.cjs +78 -0
  57. package/dist/cjs/server/requests-auth-methods/jwt.cjs.map +1 -0
  58. package/dist/cjs/server/requests-auth-methods/jwt.min.cjs +2 -0
  59. package/dist/cjs/server/requests-auth-methods/jwt.min.cjs.map +1 -0
  60. package/dist/cjs/server/requests.cjs +1 -9
  61. package/dist/cjs/server/requests.cjs.map +1 -1
  62. package/dist/cjs/server/requests.min.cjs +1 -1
  63. package/dist/cjs/server/requests.min.cjs.map +1 -1
  64. package/dist/cjs/server/routes.cjs +1 -2
  65. package/dist/cjs/server/routes.cjs.map +1 -1
  66. package/dist/cjs/server/routes.min.cjs +1 -1
  67. package/dist/cjs/server/routes.min.cjs.map +1 -1
  68. package/dist/cjs/server/sockets.cjs +2 -4
  69. package/dist/cjs/server/sockets.cjs.map +1 -1
  70. package/dist/cjs/server/sockets.min.cjs +1 -1
  71. package/dist/cjs/server/sockets.min.cjs.map +1 -1
  72. package/dist/cjs/server/types.cjs +1 -1
  73. package/dist/cjs/server/types.cjs.map +1 -1
  74. package/dist/cjs/server/types.min.cjs +1 -1
  75. package/dist/cjs/server/types.min.cjs.map +1 -1
  76. package/dist/esm/dbs/mongo/changes.min.mjs +1 -1
  77. package/dist/esm/dbs/mongo/changes.min.mjs.map +1 -1
  78. package/dist/esm/dbs/mongo/changes.mjs +5 -1
  79. package/dist/esm/dbs/mongo/changes.mjs.map +1 -1
  80. package/dist/esm/errors/index.min.mjs +1 -1
  81. package/dist/esm/errors/index.min.mjs.map +1 -1
  82. package/dist/esm/errors/index.mjs +1 -2
  83. package/dist/esm/errors/index.mjs.map +1 -1
  84. package/dist/esm/errors/types/tokenExpired.min.mjs +2 -0
  85. package/dist/esm/errors/types/tokenExpired.min.mjs.map +1 -0
  86. package/dist/esm/errors/types/tokenExpired.mjs +12 -0
  87. package/dist/esm/errors/types/tokenExpired.mjs.map +1 -0
  88. package/dist/esm/events/types/kafka.min.mjs +1 -1
  89. package/dist/esm/events/types/kafka.min.mjs.map +1 -1
  90. package/dist/esm/events/types/kafka.mjs +13 -16
  91. package/dist/esm/events/types/kafka.mjs.map +1 -1
  92. package/dist/esm/instance/index.min.mjs +1 -1
  93. package/dist/esm/instance/index.min.mjs.map +1 -1
  94. package/dist/esm/instance/index.mjs.map +1 -1
  95. package/dist/esm/server/impls/base.min.mjs +1 -1
  96. package/dist/esm/server/impls/base.min.mjs.map +1 -1
  97. package/dist/esm/server/impls/base.mjs +9 -9
  98. package/dist/esm/server/impls/base.mjs.map +1 -1
  99. package/dist/esm/server/impls/express.min.mjs +1 -1
  100. package/dist/esm/server/impls/express.min.mjs.map +1 -1
  101. package/dist/esm/server/impls/express.mjs +2 -13
  102. package/dist/esm/server/impls/express.mjs.map +1 -1
  103. package/dist/esm/server/impls/fastify.min.mjs +1 -1
  104. package/dist/esm/server/impls/fastify.min.mjs.map +1 -1
  105. package/dist/esm/server/impls/fastify.mjs +2 -13
  106. package/dist/esm/server/impls/fastify.mjs.map +1 -1
  107. package/dist/esm/server/index.min.mjs +1 -1
  108. package/dist/esm/server/index.min.mjs.map +1 -1
  109. package/dist/esm/server/index.mjs +1 -1
  110. package/dist/esm/server/index.mjs.map +1 -1
  111. package/dist/esm/server/middlewares/requireAuthUser.min.mjs +1 -1
  112. package/dist/esm/server/middlewares/requireAuthUser.min.mjs.map +1 -1
  113. package/dist/esm/server/middlewares/requireAuthUser.mjs +9 -52
  114. package/dist/esm/server/middlewares/requireAuthUser.mjs.map +1 -1
  115. package/dist/esm/server/pipes.min.mjs +1 -1
  116. package/dist/esm/server/pipes.min.mjs.map +1 -1
  117. package/dist/esm/server/pipes.mjs +23 -8
  118. package/dist/esm/server/pipes.mjs.map +1 -1
  119. package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs +2 -0
  120. package/dist/esm/server/requests-auth-methods/apiKeys.min.mjs.map +1 -0
  121. package/dist/esm/server/requests-auth-methods/apiKeys.mjs +21 -0
  122. package/dist/esm/server/requests-auth-methods/apiKeys.mjs.map +1 -0
  123. package/dist/esm/server/requests-auth-methods/base.min.mjs +2 -0
  124. package/dist/esm/server/requests-auth-methods/base.min.mjs.map +1 -0
  125. package/dist/esm/server/requests-auth-methods/base.mjs +20 -0
  126. package/dist/esm/server/requests-auth-methods/base.mjs.map +1 -0
  127. package/dist/esm/server/requests-auth-methods/index.min.mjs +2 -0
  128. package/dist/esm/server/requests-auth-methods/index.min.mjs.map +1 -0
  129. package/dist/esm/server/requests-auth-methods/index.mjs +4 -0
  130. package/dist/esm/server/requests-auth-methods/index.mjs.map +1 -0
  131. package/dist/esm/server/requests-auth-methods/jwt.min.mjs +2 -0
  132. package/dist/esm/server/requests-auth-methods/jwt.min.mjs.map +1 -0
  133. package/dist/esm/server/requests-auth-methods/jwt.mjs +78 -0
  134. package/dist/esm/server/requests-auth-methods/jwt.mjs.map +1 -0
  135. package/dist/esm/server/requests.min.mjs +1 -1
  136. package/dist/esm/server/requests.min.mjs.map +1 -1
  137. package/dist/esm/server/requests.mjs +1 -9
  138. package/dist/esm/server/requests.mjs.map +1 -1
  139. package/dist/esm/server/routes.min.mjs +1 -1
  140. package/dist/esm/server/routes.min.mjs.map +1 -1
  141. package/dist/esm/server/routes.mjs +1 -2
  142. package/dist/esm/server/routes.mjs.map +1 -1
  143. package/dist/esm/server/sockets.min.mjs +1 -1
  144. package/dist/esm/server/sockets.min.mjs.map +1 -1
  145. package/dist/esm/server/sockets.mjs +2 -4
  146. package/dist/esm/server/sockets.mjs.map +1 -1
  147. package/dist/esm/server/types.min.mjs +1 -1
  148. package/dist/esm/server/types.min.mjs.map +1 -1
  149. package/dist/esm/server/types.mjs +1 -1
  150. package/dist/esm/server/types.mjs.map +1 -1
  151. package/dist/types/cache/index.d.ts +7 -1
  152. package/dist/types/dbs/mongo/changes.js +5 -1
  153. package/dist/types/errors/index.d.ts +7 -12
  154. package/dist/types/errors/index.js +1 -2
  155. package/dist/types/errors/types/tokenExpired.js +11 -0
  156. package/dist/types/events/types/kafka.js +13 -16
  157. package/dist/types/{fastify-CDJ2WuLy.d.ts → fastify-B6FUtYe9.d.ts} +5 -4
  158. package/dist/types/index.d.ts +4 -4
  159. package/dist/types/instance/index.d.ts +63 -16
  160. package/dist/types/{requestError-DqkM5BfW.d.ts → requestError-7N-ngghg.d.ts} +97 -80
  161. package/dist/types/server/impls/base.js +9 -9
  162. package/dist/types/server/impls/express.js +2 -13
  163. package/dist/types/server/impls/fastify.js +2 -13
  164. package/dist/types/server/index.d.ts +62 -20
  165. package/dist/types/server/index.js +1 -1
  166. package/dist/types/server/middlewares/requireAuthUser.js +9 -52
  167. package/dist/types/server/pipes.js +23 -8
  168. package/dist/types/server/requests-auth-methods/apiKeys.js +20 -0
  169. package/dist/types/server/requests-auth-methods/base.js +19 -0
  170. package/dist/types/server/requests-auth-methods/index.js +3 -0
  171. package/dist/types/server/requests-auth-methods/jwt.js +77 -0
  172. package/dist/types/server/requests.js +1 -9
  173. package/dist/types/server/routes.js +1 -2
  174. package/dist/types/server/sockets.js +2 -4
  175. package/dist/types/server/types.js +1 -1
  176. package/dist/types/{validationError-BMKfV51p.d.ts → validationError-BB4cfdZa.d.ts} +1 -1
  177. package/dist/types/validations/index.d.ts +3 -9
  178. package/package.json +13 -12
  179. package/dist/cjs/errors/types/authorizationExpired.cjs +0 -12
  180. package/dist/cjs/errors/types/authorizationExpired.cjs.map +0 -1
  181. package/dist/cjs/errors/types/authorizationExpired.min.cjs +0 -2
  182. package/dist/cjs/errors/types/authorizationExpired.min.cjs.map +0 -1
  183. package/dist/cjs/errors/types/refreshTokenMisusedError.cjs +0 -12
  184. package/dist/cjs/errors/types/refreshTokenMisusedError.cjs.map +0 -1
  185. package/dist/cjs/errors/types/refreshTokenMisusedError.min.cjs.map +0 -1
  186. package/dist/cjs/server/middlewares/parseAuthUser.cjs +0 -21
  187. package/dist/cjs/server/middlewares/parseAuthUser.cjs.map +0 -1
  188. package/dist/cjs/server/middlewares/parseAuthUser.min.cjs +0 -2
  189. package/dist/cjs/server/middlewares/parseAuthUser.min.cjs.map +0 -1
  190. package/dist/cjs/server/requests-auth/apiKeys.cjs +0 -6
  191. package/dist/cjs/server/requests-auth/apiKeys.cjs.map +0 -1
  192. package/dist/cjs/server/requests-auth/apiKeys.min.cjs +0 -2
  193. package/dist/cjs/server/requests-auth/apiKeys.min.cjs.map +0 -1
  194. package/dist/cjs/server/requests-auth/index.cjs.map +0 -1
  195. package/dist/cjs/server/requests-auth/index.min.cjs.map +0 -1
  196. package/dist/cjs/server/requests-auth/tokens.cjs +0 -92
  197. package/dist/cjs/server/requests-auth/tokens.cjs.map +0 -1
  198. package/dist/cjs/server/requests-auth/tokens.min.cjs +0 -2
  199. package/dist/cjs/server/requests-auth/tokens.min.cjs.map +0 -1
  200. package/dist/esm/errors/types/authorizationExpired.min.mjs +0 -2
  201. package/dist/esm/errors/types/authorizationExpired.min.mjs.map +0 -1
  202. package/dist/esm/errors/types/authorizationExpired.mjs +0 -12
  203. package/dist/esm/errors/types/authorizationExpired.mjs.map +0 -1
  204. package/dist/esm/errors/types/refreshTokenMisusedError.min.mjs +0 -2
  205. package/dist/esm/errors/types/refreshTokenMisusedError.min.mjs.map +0 -1
  206. package/dist/esm/errors/types/refreshTokenMisusedError.mjs +0 -12
  207. package/dist/esm/errors/types/refreshTokenMisusedError.mjs.map +0 -1
  208. package/dist/esm/server/middlewares/parseAuthUser.min.mjs +0 -2
  209. package/dist/esm/server/middlewares/parseAuthUser.min.mjs.map +0 -1
  210. package/dist/esm/server/middlewares/parseAuthUser.mjs +0 -21
  211. package/dist/esm/server/middlewares/parseAuthUser.mjs.map +0 -1
  212. package/dist/esm/server/requests-auth/apiKeys.min.mjs +0 -2
  213. package/dist/esm/server/requests-auth/apiKeys.min.mjs.map +0 -1
  214. package/dist/esm/server/requests-auth/apiKeys.mjs +0 -6
  215. package/dist/esm/server/requests-auth/apiKeys.mjs.map +0 -1
  216. package/dist/esm/server/requests-auth/index.min.mjs +0 -2
  217. package/dist/esm/server/requests-auth/index.min.mjs.map +0 -1
  218. package/dist/esm/server/requests-auth/index.mjs +0 -3
  219. package/dist/esm/server/requests-auth/index.mjs.map +0 -1
  220. package/dist/esm/server/requests-auth/tokens.min.mjs +0 -2
  221. package/dist/esm/server/requests-auth/tokens.min.mjs.map +0 -1
  222. package/dist/esm/server/requests-auth/tokens.mjs +0 -92
  223. package/dist/esm/server/requests-auth/tokens.mjs.map +0 -1
  224. package/dist/types/base-8yVXb67P.d.ts +0 -8
  225. package/dist/types/errors/types/authorizationExpired.js +0 -11
  226. package/dist/types/errors/types/refreshTokenMisusedError.js +0 -11
  227. package/dist/types/server/middlewares/parseAuthUser.js +0 -20
  228. package/dist/types/server/requests-auth/apiKeys.js +0 -5
  229. package/dist/types/server/requests-auth/index.js +0 -2
  230. package/dist/types/server/requests-auth/tokens.js +0 -91
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/server/middlewares/requireAuthUser.ts"],"names":["request","error","user","NotAuthenticatedError","route","NotAuthorizedError"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/middlewares/requireAuthUser.min.cjs","sourcesContent":["import { NotAuthenticatedError, NotAuthorizedError } from '../../errors'\nimport { makeMiddleware } from '../types'\n\nexport const requireAuthUser = makeMiddleware(\n\tasync (request) => {\n\t\tconst user = request.users.access.value || request.users.apiKey.value\n\t\tconst error = request.users.access.error || request.users.apiKey.error\n\t\tif (!user && error) throw error\n\t\trequest.authUser = user\n\t\tif (!request.authUser) throw new NotAuthenticatedError()\n\t},\n\t(route) => {\n\t\troute.security ??= []\n\t\troute.security.push({ Authorization: [] }, { ApiKey: [] })\n\t\troute.descriptions ??= []\n\t\troute.descriptions.push('Requires a valid means of authentication.')\n\t},\n)\n\nexport const requireAuthorizationUser = makeMiddleware(\n\tasync (request) => {\n\t\tif (request.users.access.error) throw request.users.access.error\n\t\trequest.authUser = request.users.access.value\n\t\tif (!request.authUser) throw new NotAuthenticatedError()\n\t},\n\t(route) => {\n\t\troute.security ??= []\n\t\troute.security.push({ Authorization: [] })\n\t\troute.descriptions ??= []\n\t\troute.descriptions.push('Requires a valid authorization header.')\n\t},\n)\n\nexport const requireApiKeyUser = makeMiddleware(\n\tasync (request) => {\n\t\tif (request.users.apiKey.error) throw request.users.apiKey.error\n\t\trequest.authUser = request.users.apiKey.value\n\t\tif (!request.authUser) throw new NotAuthenticatedError()\n\t},\n\t(route) => {\n\t\troute.security ??= []\n\t\troute.security.push({ ApiKey: [] })\n\t\troute.descriptions ??= []\n\t\troute.descriptions.push('Requires a valid x-api-key header.')\n\t},\n)\n\nexport const requireRefreshTokenUser = makeMiddleware(\n\tasync (request, config) => {\n\t\tif (request.users.refresh.error) throw request.users.refresh.error\n\t\tconst refreshToken = request.headers.RefreshToken\n\t\tif (!refreshToken) throw new NotAuthorizedError('x-refresh-token header missing')\n\t\trequest.users.refresh.value = await config?.requestsAuth.tokens?.verifyRefreshToken(refreshToken)\n\t\tif (!request.users.refresh.value) throw new NotAuthorizedError()\n\t},\n\t(route) => {\n\t\troute.security ??= []\n\t\troute.security.push({ RefreshToken: [] })\n\t\troute.descriptions ??= []\n\t\troute.descriptions.push('Requires a valid x-refresh-token header.')\n\t},\n)\n"]}
1
+ {"version":3,"sources":["../../../../src/server/middlewares/requireAuthUser.ts"],"names":["makeMiddleware","request","route","method","methods","schemeName"],"mappings":"AAAA,kIAES,sEACAA,+CAKa,MAA4B,CAAA,CAAA,CAAA,EAAA,yCAAA,MAAyB,CAAA,EAAA,CAAA,EAAO,CAAA,CAC3E,CAACC,QAAQ,CAAA,MAAU,mCAAA,CAAM,OAE7BC,CAAAA,CAAAA,CAAU,CACVA,CAAAA,OAAM,CAAA,CAAA,CAAA,CAAA,CAAa,QACnB,CAAA,MAAWC,IAAUC,kCAAS,CAC7B,CAAA,CAAA,EAAA,CAAA,CAAMC,CAAAA,QAAoB,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,EAAA,GACtBA,CAAAA,CAAAA,CAAYH,MAAM,CAAA,CAAA,CAAA,CAAA,uBAGjB,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,QACA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,YAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAA,IAAA,CAAA,2CAE1B,CAAA,CAAA,CAAA,CAAA,4BAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/middlewares/requireAuthUser.min.cjs","sourcesContent":["import { NotAuthenticatedError } from '../../errors'\nimport type { AuthUser } from '../../types'\nimport { BaseRequestAuthMethod } from '../requests-auth-methods'\nimport { makeMiddleware } from '../types'\n\nexport const requireAuthUser = (methods: BaseRequestAuthMethod<AuthUser>[]) =>\n\tmakeMiddleware(\n\t\tasync (request) => {\n\t\t\trequest.authUser = await BaseRequestAuthMethod.process(methods, request.headers)\n\t\t\tif (!request.authUser) throw new NotAuthenticatedError()\n\t\t},\n\t\t(route) => {\n\t\t\troute.security ??= []\n\t\t\tfor (const method of methods) {\n\t\t\t\tconst schemeName = method.routeSecuritySchemeName()\n\t\t\t\tif (schemeName) route.security.push({ [schemeName]: [] })\n\t\t\t}\n\n\t\t\troute.descriptions ??= []\n\t\t\troute.descriptions.push('Requires a valid means of authentication.')\n\t\t},\n\t)\n"]}
@@ -1,9 +1,16 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');
2
2
  var _indexcjs = require('../events/index.cjs');
3
- var _indexcjs3 = require('./requests-auth/index.cjs');
4
- const serverConfigPipe = () => _valleyed.v.object({
5
- type: _valleyed.v.in(["fastify", "express"]),
3
+ var _indexcjs3 = require('./requests-auth-methods/index.cjs');
4
+ var _typescjs = require('./types.cjs');
5
+ const serverBasePipe = () => _valleyed.v.object({
6
6
  port: _valleyed.v.number(),
7
+ cors: _valleyed.v.optional(
8
+ _valleyed.v.object({
9
+ origin: _valleyed.v.optional(_valleyed.v.array(_valleyed.v.string())),
10
+ methods: _valleyed.v.optional(_valleyed.v.array(_valleyed.v.in(Object.values(_typescjs.Methods)))),
11
+ credentials: _valleyed.v.optional(_valleyed.v.boolean())
12
+ })
13
+ ),
7
14
  eventBus: _valleyed.v.optional(_valleyed.v.instanceOf(_indexcjs.EventBus)),
8
15
  publicPath: _valleyed.v.optional(_valleyed.v.string()),
9
16
  healthPath: _valleyed.v.optional(_valleyed.v.string()),
@@ -38,12 +45,20 @@ const serverConfigPipe = () => _valleyed.v.object({
38
45
  }),
39
46
  {}
40
47
  ),
41
- requestsAuth: _valleyed.v.defaults(
48
+ socketsAuthMethods: _valleyed.v.defaults(_valleyed.v.array(_valleyed.v.instanceOf(_indexcjs3.BaseRequestAuthMethod)), [])
49
+ });
50
+ const serverConfigPipe = () => _valleyed.v.discriminate((d) => d.type, {
51
+ fastify: _valleyed.v.merge(
52
+ serverBasePipe(),
42
53
  _valleyed.v.object({
43
- tokens: _valleyed.v.optional(_valleyed.v.instanceOf(_indexcjs3.BaseTokensUtility)),
44
- apiKey: _valleyed.v.optional(_valleyed.v.instanceOf(_indexcjs3.BaseApiKeysUtility))
45
- }),
46
- {}
54
+ type: _valleyed.v.is("fastify")
55
+ })
56
+ ),
57
+ express: _valleyed.v.merge(
58
+ serverBasePipe(),
59
+ _valleyed.v.object({
60
+ type: _valleyed.v.is("express")
61
+ })
47
62
  )
48
63
  });
49
64
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/pipes.ts","/home/runner/work/equipped/equipped/dist/cjs/server/pipes.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/pipes.cjs","sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { EventBus } from '../events'\nimport { BaseApiKeysUtility, BaseTokensUtility } from './requests-auth'\n\nexport const serverConfigPipe = () =>\n\tv.object({\n\t\ttype: v.in(['fastify', 'express'] as const),\n\t\tport: v.number(),\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\trequestsAuth: v.defaults(\n\t\t\tv.object({\n\t\t\t\ttokens: v.optional(v.instanceOf(BaseTokensUtility)),\n\t\t\t\tapiKey: v.optional(v.instanceOf(BaseApiKeysUtility)),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t})\n\nexport type ServerConfig = PipeOutput<ReturnType<typeof serverConfigPipe>>\n",null]}
1
+ {"version":3,"sources":["../../../src/server/pipes.ts","/home/runner/work/equipped/equipped/dist/cjs/server/pipes.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/pipes.cjs","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.array(v.string())),\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",null]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');var _indexmincjs = require('../events/index.min.cjs');var _indexmincjs3 = require('./requests-auth/index.min.cjs');const r=()=>_valleyed.v.object({type:_valleyed.v.in(["fastify","express"]),port:_valleyed.v.number(),eventBus:_valleyed.v.optional(_valleyed.v.instanceOf(_indexmincjs.EventBus)),publicPath:_valleyed.v.optional(_valleyed.v.string()),healthPath:_valleyed.v.optional(_valleyed.v.string()),openapi:_valleyed.v.defaults(_valleyed.v.object({docsVersion:_valleyed.v.defaults(_valleyed.v.string(),"1.0.0"),docsBaseUrl:_valleyed.v.defaults(_valleyed.v.array(_valleyed.v.string()),["/"]),docsPath:_valleyed.v.defaults(_valleyed.v.string(),"/__docs")}),{}),requests:_valleyed.v.defaults(_valleyed.v.object({log:_valleyed.v.defaults(_valleyed.v.boolean(),!0),rateLimit:_valleyed.v.defaults(_valleyed.v.object({enabled:_valleyed.v.defaults(_valleyed.v.boolean(),!1),periodInMs:_valleyed.v.defaults(_valleyed.v.number(),3600*1e3),limit:_valleyed.v.defaults(_valleyed.v.number(),5e3)}),{}),slowdown:_valleyed.v.defaults(_valleyed.v.object({enabled:_valleyed.v.defaults(_valleyed.v.boolean(),!1),periodInMs:_valleyed.v.defaults(_valleyed.v.number(),600*1e3),delayAfter:_valleyed.v.defaults(_valleyed.v.number(),2e3),delayInMs:_valleyed.v.defaults(_valleyed.v.number(),500)}),{})}),{}),requestsAuth:_valleyed.v.defaults(_valleyed.v.object({tokens:_valleyed.v.optional(_valleyed.v.instanceOf(_indexmincjs3.BaseTokensUtility)),apiKey:_valleyed.v.optional(_valleyed.v.instanceOf(_indexmincjs3.BaseApiKeysUtility))}),{})});exports.serverConfigPipe = r;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _valleyed = require('valleyed');var _indexmincjs = require('../events/index.min.cjs');var _indexmincjs3 = require('./requests-auth-methods/index.min.cjs');var _typesmincjs = require('./types.min.cjs');const t=()=>_valleyed.v.object({port:_valleyed.v.number(),cors:_valleyed.v.optional(_valleyed.v.object({origin:_valleyed.v.optional(_valleyed.v.array(_valleyed.v.string())),methods:_valleyed.v.optional(_valleyed.v.array(_valleyed.v.in(Object.values(_typesmincjs.Methods)))),credentials:_valleyed.v.optional(_valleyed.v.boolean())})),eventBus:_valleyed.v.optional(_valleyed.v.instanceOf(_indexmincjs.EventBus)),publicPath:_valleyed.v.optional(_valleyed.v.string()),healthPath:_valleyed.v.optional(_valleyed.v.string()),openapi:_valleyed.v.defaults(_valleyed.v.object({docsVersion:_valleyed.v.defaults(_valleyed.v.string(),"1.0.0"),docsBaseUrl:_valleyed.v.defaults(_valleyed.v.array(_valleyed.v.string()),["/"]),docsPath:_valleyed.v.defaults(_valleyed.v.string(),"/__docs")}),{}),requests:_valleyed.v.defaults(_valleyed.v.object({log:_valleyed.v.defaults(_valleyed.v.boolean(),!0),rateLimit:_valleyed.v.defaults(_valleyed.v.object({enabled:_valleyed.v.defaults(_valleyed.v.boolean(),!1),periodInMs:_valleyed.v.defaults(_valleyed.v.number(),3600*1e3),limit:_valleyed.v.defaults(_valleyed.v.number(),5e3)}),{}),slowdown:_valleyed.v.defaults(_valleyed.v.object({enabled:_valleyed.v.defaults(_valleyed.v.boolean(),!1),periodInMs:_valleyed.v.defaults(_valleyed.v.number(),600*1e3),delayAfter:_valleyed.v.defaults(_valleyed.v.number(),2e3),delayInMs:_valleyed.v.defaults(_valleyed.v.number(),500)}),{})}),{}),socketsAuthMethods:_valleyed.v.defaults(_valleyed.v.array(_valleyed.v.instanceOf(_indexmincjs3.BaseRequestAuthMethod)),[])}),u= exports.serverConfigPipe =()=>_valleyed.v.discriminate(s=>s.type,{fastify:_valleyed.v.merge(t(),_valleyed.v.object({type:_valleyed.v.is("fastify")})),express:_valleyed.v.merge(t(),_valleyed.v.object({type:_valleyed.v.is("express")}))});exports.serverConfigPipe = u;
2
2
  //# sourceMappingURL=pipes.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/pipes.ts"],"names":["v"],"mappings":"AAAA,6GAAmC,sDAG1B,6DAIC,MAAI,CAAA,CAAA,CAAA,CAAA,EAAA,WAAW,CAAA,MAAA,CAAA,CAAS,IAChC,CAAA,WAAA,CAAA,EAAMA,CAAE,CAAA,SACR,CAAA,SAAY,CAAA,CAAA,CAAA,IAAA,CAAA,WAASA,CAAAA,MAAE,CAAA,CAAA,CAAA,QACvB,CAAA,WAAA,CAAA,QAAYA,CAAE,WAAA,CAAA,UAAW,CAAA,qBAAA,CAAA,CAAA,CAAA,UACzB,CAAA,WAAA,CAAA,QAAc,CAAA,WAAA,CAAA,MAAW,CAAA,CAAA,CAAA,CAAA,UACzB,CAAA,WAASA,CAAAA,QAAE,CAAA,WACVA,CAAAA,MAAE,CAAA,CAAO,CACR,CAAA,OAAA,CAAA,WAAA,CAAA,QAAe,CAAA,WAAA,CAAA,MAAW,CAAA,CAAA,WAAiB,CAAA,WAC3C,CAAA,QAAA,CAAA,WAAA,CAAaA,MAAE,CAAA,CAAA,CAAA,OAAW,CAAA,CAAA,WAAgB,CAAA,WAAG,CAAC,QAC9C,CAAA,WAAA,CAAA,KAAUA,CAAE,WAAA,CAAA,MAAA,CAASA,CAAAA,CAAE,CAAA,CAAA,GAAA,CAAA,CAAO,CAAA,QAAG,CAAA,WAAS,CAC3C,QAGD,CAAA,WAAA,CAAA,MAAUA,CAAE,CAAA,CAAA,SACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACR,QAAO,CAAA,WAAA,CAAA,QAAW,CAAA,WAAA,CAAA,MAAW,CAAI,CAAA,GACjC,CAAA,WAAA,CAAA,QAAa,CAAA,WAAA,CAAA,OACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,SACCA,CAAAA,WAAE,CAAA,QAASA,CAAAA,WAAE,CAAA,MAAA,CAAQ,CAAA,OAC9B,CAAA,WAAA,CAAA,QAAc,CAAA,WAAA,CAAA,OAASA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAoB,CAAI,WAAA,CACjD,QAAS,CAAA,WAAA,CAAA,MAASA,CAAAA,CAAE,CAAA,IAAA,CAAA,GAAU,CAAA,CAAA,KAE/B,CAAC,WACF,CAAA,QACA,CAAA,WAAUA,CAAAA,MAAE,CAAA,CAAA,CAAA,GACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACR,QAASA,CAAAA,WAAE,CAAA,QAASA,CAAAA,WAAE,CAAA,MAAA,CAAQ,CAAA,OAC9B,CAAA,WAAA,CAAA,QAAc,CAAA,WAAA,CAAA,OAASA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAwB,CAAA,WACjD,CAAA,QAAA,CAAA,WAAYA,CAAAA,MAAE,CAAA,CAAA,CAAA,GAAW,CAAA,GAAA,CAAA,CAAA,UACzB,CAAA,WAAA,CAAA,QAAa,CAAA,WAAA,CAAA,MAASA,CAAE,CAAA,CAAA,GAAA,CAAA,CAAO,SAEhC,CAAC,WACF,CACD,QAGD,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAcA,GAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACfA,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,YACOA,CAAE,WAAA,CAAA,QAASA,CAAE,WAAA,CAAA,MAAA,CAAA,CAAA,MACrB,CAAA,WAAA,CAAA,QAAU,CAAA,WAAA,CAAA,UAAW,CAAA,+BAAA,CAAA,CAAA,CAAA,MACrB,CACD,WAAC,CACF,QACA,CAAA,WAAA,CAAA,UAAA,CAAA,gCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,6BAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/pipes.min.cjs","sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { EventBus } from '../events'\nimport { BaseApiKeysUtility, BaseTokensUtility } from './requests-auth'\n\nexport const serverConfigPipe = () =>\n\tv.object({\n\t\ttype: v.in(['fastify', 'express'] as const),\n\t\tport: v.number(),\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\trequestsAuth: v.defaults(\n\t\t\tv.object({\n\t\t\t\ttokens: v.optional(v.instanceOf(BaseTokensUtility)),\n\t\t\t\tapiKey: v.optional(v.instanceOf(BaseApiKeysUtility)),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t})\n\nexport type ServerConfig = PipeOutput<ReturnType<typeof serverConfigPipe>>\n"]}
1
+ {"version":3,"sources":["../../../src/server/pipes.ts"],"names":["v","Methods","EventBus"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/pipes.min.cjs","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.array(v.string())),\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"]}
@@ -0,0 +1,21 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _basecjs = require('./base.cjs');
2
+ var _indexcjs = require('../../errors/index.cjs');
3
+ class BaseApiKeyRequestAuthMethod extends _basecjs.BaseRequestAuthMethod {
4
+
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 (0, _indexcjs.NotAuthenticatedError)();
12
+ return this.verify(headerValue);
13
+ }
14
+ routeSecuritySchemeName() {
15
+ return this.headerName;
16
+ }
17
+ }
18
+
19
+
20
+ exports.BaseApiKeyRequestAuthMethod = BaseApiKeyRequestAuthMethod;
21
+ //# sourceMappingURL=apiKeys.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/apiKeys.ts","/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/apiKeys.cjs"],"names":[],"mappings":"AAEA,8GAAsC;AACtC,kDAAsC;AAE/B,MAAe,4BAAA,QAA8D,+BAAyB;AAAA,EACzF;AAAA,EAGnB,WAAA,CAAY,UAAA,EAAoB;AAC/B,IAAA,KAAA,CAAM,CAAA;AACN,IAAA,IAAA,CAAK,WAAA,EAAa,UAAA;AAAA,EACnB;AAAA,EAEA,MAAM,KAAA,CAAM,OAAA,EAA8B;AACzC,IAAA,MAAM,YAAA,EAAc,OAAA,CAAQ,IAAA,CAAK,UAAU,CAAA;AAC3C,IAAA,GAAA,CAAI,CAAC,YAAA,GAAe,OAAO,YAAA,IAAgB,QAAA,EAAU,MAAM,IAAI,oCAAA,CAAsB,CAAA;AACrF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,WAAW,CAAA;AAAA,EAC/B;AAAA,EAEA,uBAAA,CAAA,EAA0B;AACzB,IAAA,OAAO,IAAA,CAAK,UAAA;AAAA,EACb;AACD;ACNA;AACE;AACF,kEAAC","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/apiKeys.cjs","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",null]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _basemincjs = require('./base.min.cjs');var _indexmincjs = require('../../errors/index.min.cjs');class n extends _basemincjs.BaseRequestAuthMethod{constructor(e){super(),this.headerName=e}async parse(e){const t=e[this.headerName];if(!t||typeof t!="string")throw new _indexmincjs.NotAuthenticatedError;return this.verify(t)}routeSecuritySchemeName(){return this.headerName}}exports.BaseApiKeyRequestAuthMethod = n;
2
+ //# sourceMappingURL=apiKeys.min.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/apiKeys.ts"],"names":["headerName","headerValue","headers"],"mappings":"AAEA,qHACS,yDAGW,MAGnB,EAAA,QAAA,iCAAYA,CAAAA,WAEN,CAAA,CAAA,CAAA,CAAaA,KAGnB,CAAA,CAAA,CAAM,IAAA,CAAA,UACCC,CAAAA,CAAcC,CAAAA,MAAa,KAAA,CAAA,CAAA,CAAA,CAAA,MAC7B,CAACD,CAAAA,CAAAA,CAAe,IAAA,CAAA,UAAuB,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA,EAAA,OACrD,CAAA,EAAA,QAAO,CAAK,MAAA,IAGb,kCAAA,CAAA,OAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,uBACa,CACb,CACD,CAAA,OAAA,IAAA,CAAA,UAAA,CAAA,CAAA,wCAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/apiKeys.min.cjs","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"]}
@@ -0,0 +1,20 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('node:http2');
2
+ var _indexcjs = require('../../errors/index.cjs');
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 _indexcjs.RequestError ? error : new (0, _indexcjs.BadRequestError)("failed to parse auth user", error);
15
+ }
16
+ }
17
+
18
+
19
+ exports.BaseRequestAuthMethod = BaseRequestAuthMethod;
20
+ //# sourceMappingURL=base.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/base.ts","/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/base.cjs"],"names":[],"mappings":"AAAA,+FAAyC;AAEzC,kDAA8C;AAEvC,MAAe,sBAAgD;AAAA,EAIrE,OAAA,MAAa,OAAA,CAAkC,OAAA,EAAqC,OAAA,EAA8B;AACjH,IAAA,GAAA,CAAI,OAAA,CAAQ,OAAA,IAAW,CAAA,EAAG,OAAO,IAAA;AACjC,IAAA,IAAI,KAAA;AACJ,IAAA,IAAA,CAAA,MAAW,OAAA,GAAU,OAAA,EAAS;AAC7B,MAAA,IAAI;AACH,QAAA,OAAO,MAAM,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA;AAAA,MAClC,EAAA,MAAA,CAAS,GAAA,EAAK;AACb,QAAA,MAAA,EAAQ,GAAA;AAAA,MACT;AAAA,IACD;AACA,IAAA,MAAM,MAAA,WAAiB,uBAAA,EAAe,MAAA,EAAQ,IAAI,8BAAA,CAAgB,2BAAA,EAA6B,KAAK,CAAA;AAAA,EACrG;AACD;ACJA;AACE;AACF,sDAAC","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/base.cjs","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",null]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('node:http2');var _indexmincjs = require('../../errors/index.min.cjs');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 _indexmincjs.RequestError?e:new (0, _indexmincjs.BadRequestError)("failed to parse auth user",e)}}exports.BaseRequestAuthMethod = d;
2
+ //# sourceMappingURL=base.min.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/base.ts"],"names":["methods","method","err","error"],"mappings":"AAAA,+FAAyC,yDAQxC,MAAa,CAAA,CAAA,OAAkCA,MAC9C,OAAY,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,EAAG,CAAA,CAAA,CAAA,MAAO,GACjC,CAAA,CAAA,OACA,IAAA,CAAA,IAAWC,CAAAA,CAAUD,GACpB,CAAA,MACC,EAAA,GAAO,CAAA,CAAA,GAAMC,CAAO,OAAa,MAClC,CAAA,CAASC,KACAA,CACT,CAED,CAAA,CAAA,KAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAgCA,EAAQ,WAAoB,yBAAA,CAAA,CAAA,CAAA,IAAA,iCAAA,CAAA,2BAEpE,CAAA,CAAA,CAAA,CAAA,CAAA,kCAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/base.min.cjs","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"]}
@@ -1,3 +1,4 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _apiKeyscjs = require('./apiKeys.cjs'); _createStarExport(_apiKeyscjs);
2
- var _tokenscjs = require('./tokens.cjs'); _createStarExport(_tokenscjs);
2
+ var _basecjs = require('./base.cjs'); _createStarExport(_basecjs);
3
+ var _jwtcjs = require('./jwt.cjs'); _createStarExport(_jwtcjs);
3
4
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/index.ts"],"names":[],"mappings":"AAAA,4aAAc;AACd,kEAAc;AACd,+DAAc","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/index.cjs","sourcesContent":["export * from './apiKeys'\nexport * from './base'\nexport * from './jwt'\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _apiKeysmincjs = require('./apiKeys.min.cjs'); _createStarExport(_apiKeysmincjs);var _tokensmincjs = require('./tokens.min.cjs'); _createStarExport(_tokensmincjs);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _apiKeysmincjs = require('./apiKeys.min.cjs'); _createStarExport(_apiKeysmincjs);var _basemincjs = require('./base.min.cjs'); _createStarExport(_basemincjs);var _jwtmincjs = require('./jwt.min.cjs'); _createStarExport(_jwtmincjs);
2
2
  //# sourceMappingURL=index.min.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/index.ts"],"names":[],"mappings":"AAAA,sbACA,4EACc,yEAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/index.min.cjs","sourcesContent":["export * from './apiKeys'\nexport * from './base'\nexport * from './jwt'\n"]}
@@ -0,0 +1,78 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _cookie = require('@fastify/cookie'); var _cookie2 = _interopRequireDefault(_cookie);
2
+ var _jsonwebtoken = require('jsonwebtoken'); var _jsonwebtoken2 = _interopRequireDefault(_jsonwebtoken);
3
+ var _basecjs = require('./base.cjs');
4
+ var _indexcjs = require('../../errors/index.cjs');
5
+ class BaseJwtRequestAuthMethod extends _basecjs.BaseRequestAuthMethod {
6
+
7
+ constructor(options) {
8
+ super();
9
+ this.options = options;
10
+ }
11
+ #getKey(userId) {
12
+ return `${_nullishCoalesce(this.options.storagePrefix, () => ( ""))}${userId}`;
13
+ }
14
+ async createToken(payload) {
15
+ const token = _jsonwebtoken2.default.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 = _jsonwebtoken2.default.verify(token, this.options.signingKey);
23
+ if (!user) throw new (0, _indexcjs.NotAuthenticatedError)();
24
+ if (this.options.enforceSingleSession) {
25
+ const cachedToken = await this.retrieve(this.#getKey(user.id));
26
+ if (token && token !== cachedToken) throw new (0, _indexcjs.TokenExpired)();
27
+ }
28
+ return user;
29
+ } catch (err) {
30
+ if (err instanceof _indexcjs.TokenExpired) throw err;
31
+ if (err instanceof _jsonwebtoken2.default.TokenExpiredError) throw new (0, _indexcjs.TokenExpired)(void 0, err);
32
+ else throw new (0, _indexcjs.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
+
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 (0, _indexcjs.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
+
59
+ constructor(options) {
60
+ super(options);
61
+ this.options = options;
62
+ }
63
+ async parseHeader(headers) {
64
+ const cookies = _nullishCoalesce(_cookie2.default.parse(headers.cookie || ""), () => ( {}));
65
+ const value = cookies[this.options.cookieName];
66
+ if (!value || typeof value !== "string") throw new (0, _indexcjs.NotAuthenticatedError)();
67
+ return value;
68
+ }
69
+ routeSecuritySchemeName() {
70
+ return `cookie:${this.options.cookieName}`;
71
+ }
72
+ }
73
+
74
+
75
+
76
+
77
+ exports.BaseJwtCookieRequestAuthMethod = BaseJwtCookieRequestAuthMethod; exports.BaseJwtHeaderRequestAuthMethod = BaseJwtHeaderRequestAuthMethod; exports.BaseJwtRequestAuthMethod = BaseJwtRequestAuthMethod;
78
+ //# sourceMappingURL=jwt.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/jwt.ts","/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/jwt.cjs"],"names":[],"mappings":"AAEA,sWAAmB;AACnB,wGAAgB;AAEhB,qCAAsC;AACtC,kDAAoD;AAS7C,MAAe,yBAAA,QAA2D,+BAAyB;AAAA,EACtF;AAAA,EAMnB,WAAA,CAAY,OAAA,EAA0C;AACrD,IAAA,KAAA,CAAM,CAAA;AACN,IAAA,IAAA,CAAK,QAAA,EAAU,OAAA;AAAA,EAChB;AAAA,EAEA,CAAA,MAAA,CAAQ,MAAA,EAAgB;AACvB,IAAA,OAAO,CAAA,mBAAA;AACR,EAAA;AAEM,EAAA;AACC,IAAA;AACA,IAAA;AACC,IAAA;AACR,EAAA;AAEM,EAAA;AACD,IAAA;AACG,MAAA;AACA,MAAA;AACD,MAAA;AAED,MAAA;AACH,QAAA;AACI,QAAA;AACL,MAAA;AAEA,MAAA;AACD,IAAA;AACK,MAAA;AACA,MAAA;AACC,MAAA;AACN,IAAA;AACD,EAAA;AAEM,EAAA;AACE,IAAA;AACR,EAAA;AAEM,EAAA;AACC,IAAA;AACP,EAAA;AACD;AAMsB;AACF,EAAA;AAEnB,EAAA;AACO,IAAA;AACD,IAAA;AACN,EAAA;AAEM,EAAA;AACC,IAAA;AACD,IAAA;AACE,IAAA;AACR,EAAA;AAEA,EAAA;AACQ,IAAA;AACR,EAAA;AACD;AAMsB;AACF,EAAA;AAEnB,EAAA;AACO,IAAA;AACD,IAAA;AACN,EAAA;AAEM,EAAA;AACC,IAAA;AACA,IAAA;AACD,IAAA;AACE,IAAA;AACR,EAAA;AAEA,EAAA;AACQ,IAAA;AACR,EAAA;AACD;ACtCY;AACA;AACA;AACA;AACA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/jwt.cjs","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",null]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _cookie = require('@fastify/cookie'); var _cookie2 = _interopRequireDefault(_cookie);var _jsonwebtoken = require('jsonwebtoken'); var _jsonwebtoken2 = _interopRequireDefault(_jsonwebtoken);var _basemincjs = require('./base.min.cjs');var _indexmincjs = require('../../errors/index.min.cjs');class a extends _basemincjs.BaseRequestAuthMethod{constructor(e){super(),this.options=e}#e(e){return`${_nullishCoalesce(this.options.storagePrefix, () => (""))}${e}`}async createToken(e){const t=_jsonwebtoken2.default.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=_jsonwebtoken2.default.verify(t,this.options.signingKey);if(!s)throw new _indexmincjs.NotAuthenticatedError;if(this.options.enforceSingleSession){const d=await this.retrieve(this.#e(s.id));if(t&&t!==d)throw new _indexmincjs.TokenExpired}return s}catch(t){throw t instanceof _indexmincjs.TokenExpired?t:t instanceof _jsonwebtoken2.default.TokenExpiredError?new (0, _indexmincjs.TokenExpired)(void 0,t):new (0, _indexmincjs.NotAuthenticatedError)(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{constructor(e){super(e),this.options=e}async parseHeader(e){const t=e[this.options.headerName];if(!t||typeof t!="string")throw new _indexmincjs.NotAuthenticatedError;return t.startsWith("Bearer ")?t.slice(7):t}routeSecuritySchemeName(){return this.options.headerName}}class f extends a{constructor(e){super(e),this.options=e}async parseHeader(e){const s=(_nullishCoalesce(_cookie2.default.parse(e.cookie||""), () => ({})))[this.options.cookieName];if(!s||typeof s!="string")throw new _indexmincjs.NotAuthenticatedError;return s}routeSecuritySchemeName(){return`cookie:${this.options.cookieName}`}}exports.BaseJwtCookieRequestAuthMethod = f; exports.BaseJwtHeaderRequestAuthMethod = w; exports.BaseJwtRequestAuthMethod = a;
2
+ //# sourceMappingURL=jwt.min.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/server/requests-auth-methods/jwt.ts"],"names":["options","#getKey"],"mappings":"AAEA,sWAAmB,wGACH,4CAGP,yDAUW,MAMnB,EAAA,QAAsD,iCACrD,CAAA,WACK,CAAUA,CAChB,CAEAC,CAAAA,KACC,CAAA,CAAA,CAAA,IAAO,CAAA,OAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,MAAA,CAAA,mBAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests-auth-methods/jwt.min.cjs","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"]}
@@ -8,13 +8,7 @@ class Request {
8
8
 
9
9
 
10
10
 
11
-
12
- __init() {this.users = {
13
- access: {},
14
- refresh: {},
15
- apiKey: {}
16
- }}
17
-
11
+ __init() {this.authUser = null}
18
12
  constructor({
19
13
  ip,
20
14
  body,
@@ -23,7 +17,6 @@ class Request {
23
17
  query,
24
18
  method,
25
19
  path,
26
- context,
27
20
  headers,
28
21
  files
29
22
  }) {;Request.prototype.__init.call(this);
@@ -35,7 +28,6 @@ class Request {
35
28
  this.headers = headers;
36
29
  this.query = _indexcjs.parseJSONObject.call(void 0, query);
37
30
  this.body = Object.assign(_indexcjs.parseJSONObject.call(void 0, body), files);
38
- this.context = context;
39
31
  }
40
32
  pipe(stream, opts = {}) {
41
33
  return new Response({ ...opts, piped: true, body: stream });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/requests.ts","/home/runner/work/equipped/equipped/dist/cjs/server/requests.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests.cjs","sourcesContent":["import 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, RefreshUser } from '../types'\nimport { parseJSONObject } from '../utilities'\n\ntype HeaderKeys = 'Authorization' | 'RefreshToken' | 'ApiKey' | 'Referer' | 'ContentType' | 'UserAgent'\ntype ReqUser<T> = { error?: RequestError; value?: T }\ntype FallbackHeadersType = Record<string, string | string[] | undefined>\n\ntype 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: Record<HeaderKeys, string | undefined> & Def['requestHeaders'] & FallbackHeadersType\n\tcontext: Def['context']\n\tcookies: Record<string, string | undefined> & Def['requestCookies']\n\tusers: {\n\t\taccess: ReqUser<AuthUser>\n\t\trefresh: ReqUser<RefreshUser>\n\t\tapiKey: ReqUser<AuthUser>\n\t} = {\n\t\taccess: {},\n\t\trefresh: {},\n\t\tapiKey: {},\n\t}\n\tauthUser?: AuthUser\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\tcontext,\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: Record<HeaderKeys, string | undefined> & Def['requestHeaders'] & FallbackHeadersType\n\t\tfiles: Record<string, IncomingFile[]>\n\t\tmethod: MethodsEnum\n\t\tpath: string\n\t\tcontext: Def['context']\n\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\tthis.context = context\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",null]}
1
+ {"version":3,"sources":["../../../src/server/requests.ts","/home/runner/work/equipped/equipped/dist/cjs/server/requests.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests.cjs","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",null]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _indexmincjs = require('../utilities/index.min.cjs');class D{__init() {this.users={access:{},refresh:{},apiKey:{}}}constructor({ip:e,body:s,cookies:t,params:r,query:n,method:o,path:d,context:f,headers:u,files:y}){;D.prototype.__init.call(this);this.ip=e,this.method=o,this.path=d,this.params=r,this.cookies=t,this.headers=u,this.query=_indexmincjs.parseJSONObject.call(void 0, n),this.body=Object.assign(_indexmincjs.parseJSONObject.call(void 0, s),y),this.context=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{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)})}}exports.Request = D; exports.Response = i;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _indexmincjs = require('../utilities/index.min.cjs');class D{__init() {this.authUser=null}constructor({ip:e,body:s,cookies:t,params:r,query:n,method:o,path:d,headers:u,files:f}){;D.prototype.__init.call(this);this.ip=e,this.method=o,this.path=d,this.params=r,this.cookies=t,this.headers=u,this.query=_indexmincjs.parseJSONObject.call(void 0, n),this.body=Object.assign(_indexmincjs.parseJSONObject.call(void 0, 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{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)})}}exports.Request = D; exports.Response = i;
2
2
  //# sourceMappingURL=requests.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/requests.ts"],"names":["cookies","query","method","path","context","params","headers","parseJSONObject","stream","Response","status","contentType","piped","key","values","val"],"mappings":"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","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests.min.cjs","sourcesContent":["import 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, RefreshUser } from '../types'\nimport { parseJSONObject } from '../utilities'\n\ntype HeaderKeys = 'Authorization' | 'RefreshToken' | 'ApiKey' | 'Referer' | 'ContentType' | 'UserAgent'\ntype ReqUser<T> = { error?: RequestError; value?: T }\ntype FallbackHeadersType = Record<string, string | string[] | undefined>\n\ntype 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: Record<HeaderKeys, string | undefined> & Def['requestHeaders'] & FallbackHeadersType\n\tcontext: Def['context']\n\tcookies: Record<string, string | undefined> & Def['requestCookies']\n\tusers: {\n\t\taccess: ReqUser<AuthUser>\n\t\trefresh: ReqUser<RefreshUser>\n\t\tapiKey: ReqUser<AuthUser>\n\t} = {\n\t\taccess: {},\n\t\trefresh: {},\n\t\tapiKey: {},\n\t}\n\tauthUser?: AuthUser\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\tcontext,\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: Record<HeaderKeys, string | undefined> & Def['requestHeaders'] & FallbackHeadersType\n\t\tfiles: Record<string, IncomingFile[]>\n\t\tmethod: MethodsEnum\n\t\tpath: string\n\t\tcontext: Def['context']\n\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\tthis.context = context\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"]}
1
+ {"version":3,"sources":["../../../src/server/requests.ts"],"names":["cookies","query","method","path","headers","params","parseJSONObject","stream","opts","Response","status","contentType","piped","key","values","val"],"mappings":"AASA,kIAQU,MACA,CAAA,CACT,eAOA,QAAA,CAAA,KACC,WAEA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAAA,IACA,CAAA,CAAA,CAAA,OACA,CAAA,CAAA,CAAAC,MACA,CAAA,CAAA,CAAAC,KACA,CAAA,CAAAC,CAAAA,MACA,CAAA,CAAA,CAAAC,IACA,CAAA,CAAA,CAAA,OAYA,CAAA,CAAA,CAAK,KACL,CAAA,CAAA,CAAA,CAAA,gCAAK,IAAA,CAAA,EAASF,CAAAA,CACd,CAAA,IAAK,CAAA,MACL,CAAA,CAAA,CAAA,IAAK,CAAA,IAASG,CAAAA,CACd,CAAA,IAAK,CAAA,MAAA,CAAUL,CAAAA,CACf,IAAA,CAAK,OAAA,CAAUI,CAAAA,CACf,IAAA,CAAK,OAAQE,CAAgBL,CAAK,CAAA,IAClC,CAAA,KAAK,CAAY,0CAAA,CAAA,CAAA,CAAA,IAAO,CAAA,IAAOK,CAAAA,MAChC,CAEA,MAAKC,CAAkBC,0CAAAA,CAA4G,CAAA,CAAG,CACrI,CAAA,CAAA,IAAA,CAAO,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAA8D,CAAE,CAAA,OAAS,IAAO,CAAA,CAAM,CAAA,GAAA,CAAMF,CAAO,KAG/G,CAAA,CAAIF,CAAAA,CAAuD,IAC1D,CAAA,CAAA,CAAA,CAAO,CAAA,GAAII,CAAAA,CAAmB,CAAE,CAAA,OAAW,IAAO,CAAM,CAAC,CAC1D,GAEA,CAAA,CAAA,KASC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAWA,CAAAA,CAAiB,CAAE,CAAA,OAAW,IAAO,CAAM,CAAC,CACxD,GAmBM,CAAA,CAAA,KACN,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,MACA,CAAA,CAAA,WAOC,CAAAC,CAAAA,IAAc,CACd,CAAA,CAAA,MAAAN,CAAAA,CAAe,CAAC,GAChB,CAAA,OAAAJ,CAAe,CAAC,CAAA,CAChB,CAAA,CAAA,OAAQ,CAAA,CACR,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAAW,CAAAA,CAAmB,CAAA,WAAA,CAAA,CAAA,CAAA,kBAGnB,CAAA,CAAA,CAAA,IAAK,CAAA,IAASD,CAAAA,CACd,CAAA,IAAK,CAAA,MAAA,CAAA,CAAA,CAAA,IACL,CAAA,WAAK,CAAUN,CAAAA,CACf,IAAA,CAAK,OAAA,CAAUJ,CAAAA,CACf,IAAA,CAAK,OAAQY,CAER,CAAA,CAAA,IAAK,CAAA,KAAA,CAET,CAAA,CAAA,IAAK,CAAA,KAAA,EAAQ,CAAA,IAAA,CAAA,OAAc,CAAA,cAIzB,CAAA,CAAA,CAAA,CAAA,CAAA,IACH,YAAO,CAAA,CAAO,CAAA,OAAA,MAAY,CAAA,WAAO,CAAQ,MAAK,CAAA,OAAS,CAAA,IAAK,CAACC,OAAc,CAACA,CAAAA,GAAkB,CAAC,CAChG,CAEA,CAAA,CAAA,CAAA,CAAI,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAqC,YACjC,CAAA,CAAA,CAAA,CAAQC,MAAQ,CAAA,OAAUD,CAAKE,CAAG,CAAA,CAAA,OAEpC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,IAAG,CAAA,OAAK,CAAA,CAAA,CAAA,EAAW,CAAA,IAAE,CAAA,OAG5C,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,0CAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/requests.min.cjs","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"]}
@@ -13,8 +13,7 @@ function mergeSchemas(...schemas) {
13
13
  responseHeaders: "",
14
14
  responseCookies: "",
15
15
  defaultStatusCode: "",
16
- defaultContentType: "",
17
- context: ""
16
+ defaultContentType: ""
18
17
  };
19
18
  function merge(acc, cur) {
20
19
  if (!acc) return cur;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/routes.ts","/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs"],"names":[],"mappings":"AAAA,iNAAkB;AAElB;AACC;AAAA,uCAQM;AAEP,SAAS,YAAA,CAAA,GAAgB,OAAA,EAAqB;AAE7C,EAAA,MAAM,EAAA,EAAU;AAAA,IACf,MAAA,EAAQ,EAAA;AAAA,IACR,OAAA,EAAS,EAAA;AAAA,IACT,KAAA,EAAO,EAAA;AAAA,IACP,IAAA,EAAM,EAAA;AAAA,IACN,OAAA,EAAS,EAAA;AAAA,IACT,QAAA,EAAU,EAAA;AAAA,IACV,eAAA,EAAiB,EAAA;AAAA,IACjB,eAAA,EAAiB,EAAA;AAAA,IACjB,iBAAA,EAAmB,EAAA;AAAA,IACnB,kBAAA,EAAoB,EAAA;AAAA,IACpB,OAAA,EAAS;AAAA,EACV,CAAA;AACA,EAAA,SAAS,KAAA,CAAsC,GAAA,EAAe,GAAA,EAAQ;AACrE,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,UAAA,EAAY,OAAO,GAAA;AACtC,IAAA,OAAO,WAAA,CAAE,KAAA,CAAM,GAAA,EAAK,GAAU,CAAA;AAAA,EAC/B;AACA,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IACb,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAA,GAAQ;AAAA,MAC3B,GAAA;AAAA,MACA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAG,CAAyB,CAAA,CAAE,MAAA,CAAoC,KAAA,EAAO,IAAI;AAAA,IACnG,CAAC;AAAA,EACF,CAAA;AACD;AAEA,MAAM,YAAA,EAAc,CAAyC,MAAA,EAAyB,MAAA,EAAA,GACrF,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAA,GAAA,CAAW;AAAA,EACtB,GAAG,MAAA;AAAA,EACH,GAAG,KAAA;AAAA,EACH,IAAA,EAAM,CAAA,EAAA;AACN,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACC;AAEU;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACM,IAAA;AACN,EAAA;AAEM,EAAA;AACL,IAAA;AAEE,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACF,EAAA;AAEO,iBAAA;AACD,kBAAA;AACC,kBAAA;AACD,kBAAA;AACN,kBAAA;AACA,kBAAA;AACA,kBAAA;AAEA,EAAA;AACC,IAAA;AACD,EAAA;AAEI,EAAA;AACH,IAAA;AACD,EAAA;AACD;AClBS;AACA;AACA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport {\n\tMethods,\n\ttype MergeRouteDefs,\n\ttype MethodsEnum,\n\ttype Route,\n\ttype RouteConfig,\n\ttype RouteDef,\n\ttype RouteDefHandler,\n\ttype RouterConfig,\n} from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n",null]}
1
+ {"version":3,"sources":["../../../src/server/routes.ts","/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs"],"names":[],"mappings":"AAAA,iNAAkB;AAElB;AACC;AAAA,uCAQM;AAEP,SAAS,YAAA,CAAA,GAAgB,OAAA,EAAqB;AAE7C,EAAA,MAAM,EAAA,EAAU;AAAA,IACf,MAAA,EAAQ,EAAA;AAAA,IACR,OAAA,EAAS,EAAA;AAAA,IACT,KAAA,EAAO,EAAA;AAAA,IACP,IAAA,EAAM,EAAA;AAAA,IACN,OAAA,EAAS,EAAA;AAAA,IACT,QAAA,EAAU,EAAA;AAAA,IACV,eAAA,EAAiB,EAAA;AAAA,IACjB,eAAA,EAAiB,EAAA;AAAA,IACjB,iBAAA,EAAmB,EAAA;AAAA,IACnB,kBAAA,EAAoB;AAAA,EACrB,CAAA;AACA,EAAA,SAAS,KAAA,CAAsC,GAAA,EAAe,GAAA,EAAQ;AACrE,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,GAAA;AACjB,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,IAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,UAAA,EAAY,OAAO,GAAA;AACtC,IAAA,OAAO,WAAA,CAAE,KAAA,CAAM,GAAA,EAAK,GAAU,CAAA;AAAA,EAC/B;AACA,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IACb,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAA,GAAQ;AAAA,MAC3B,GAAA;AAAA,MACA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAG,CAAyB,CAAA,CAAE,MAAA,CAAoC,KAAA,EAAO,IAAI;AAAA,IACnG,CAAC;AAAA,EACF,CAAA;AACD;AAEA,MAAM,YAAA,EAAc,CAAyC,MAAA,EAAyB,MAAA,EAAA,GACrF,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAA,GAAA,CAAW;AAAA,EACtB,GAAG,MAAA;AAAA,EACH,GAAG,KAAA;AAAA,EACH,IAAA,EAAM,CAAA,EAAA;AACN,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACC;AAEU;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AACM,IAAA;AACN,EAAA;AAEM,EAAA;AACL,IAAA;AAEE,MAAA;AACA,MAAA;AACA,MAAA;AACD,IAAA;AACF,EAAA;AAEO,iBAAA;AACD,kBAAA;AACC,kBAAA;AACD,kBAAA;AACN,kBAAA;AACA,kBAAA;AACA,kBAAA;AAEA,EAAA;AACC,IAAA;AACD,EAAA;AAEI,EAAA;AACH,IAAA;AACD,EAAA;AACD;AClBS;AACA;AACA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport {\n\tMethods,\n\ttype MergeRouteDefs,\n\ttype MethodsEnum,\n\ttype Route,\n\ttype RouteConfig,\n\ttype RouteDef,\n\ttype RouteDefHandler,\n\ttype RouterConfig,\n} from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n",null]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _valleyed = require('valleyed');var _typesmincjs = require('./types.min.cjs');function a(...r){const t={params:"",headers:"",query:"",body:"",cookies:"",response:"",responseHeaders:"",responseCookies:"",defaultStatusCode:"",defaultContentType:"",context:""};function e(s,o){return s?o?typeof s=="number"||typeof s=="string"||typeof s=="function"?o:_valleyed.v.merge(s,o):s:o}return Object.fromEntries(Object.keys(t).map(s=>[s,r.map(o=>o[s]).reduce(e,null)]))}const p=(r,t)=>t.map(e=>({...r,...e,path:`${r.path}/${e.path}`,groups:[..._nullishCoalesce(r.groups, () => ([])),..._nullishCoalesce(e.groups, () => ([]))],middlewares:[..._nullishCoalesce(r.middlewares, () => ([])),..._nullishCoalesce(e.middlewares, () => ([]))],schema:a(_nullishCoalesce(r.schema, () => ({})),_nullishCoalesce(e.schema, () => ({}))),security:[..._nullishCoalesce(r.security, () => ([])),..._nullishCoalesce(e.security, () => ([]))]}));class h{#t={path:""};#s=[];#o=[];constructor(t={path:""}){;h.prototype.__init.call(this);h.prototype.__init2.call(this);h.prototype.__init3.call(this);h.prototype.__init4.call(this);h.prototype.__init5.call(this);h.prototype.__init6.call(this);h.prototype.__init7.call(this);this.#t=t}#e(t){return(e,s={})=>o=>{const n=p(this.#t,[{...s,path:e,method:t,handler:o}])[0];return this.#s.push(n),n}}__init() {this.head=this.#e(_typesmincjs.Methods.head)}__init2() {this.get=this.#e(_typesmincjs.Methods.get)}__init3() {this.post=this.#e(_typesmincjs.Methods.post)}__init4() {this.put=this.#e(_typesmincjs.Methods.put)}__init5() {this.patch=this.#e(_typesmincjs.Methods.patch)}__init6() {this.delete=this.#e(_typesmincjs.Methods.delete)}__init7() {this.options=this.#e(_typesmincjs.Methods.options)}nest(...t){t.forEach(e=>this.#o.push(e))}get routes(){return[...this.#s].concat(this.#o.flatMap(t=>p(this.#t,t.routes)))}}exports.Router = h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _valleyed = require('valleyed');var _typesmincjs = require('./types.min.cjs');function a(...r){const t={params:"",headers:"",query:"",body:"",cookies:"",response:"",responseHeaders:"",responseCookies:"",defaultStatusCode:"",defaultContentType:""};function e(s,o){return s?o?typeof s=="number"||typeof s=="string"||typeof s=="function"?o:_valleyed.v.merge(s,o):s:o}return Object.fromEntries(Object.keys(t).map(s=>[s,r.map(o=>o[s]).reduce(e,null)]))}const p=(r,t)=>t.map(e=>({...r,...e,path:`${r.path}/${e.path}`,groups:[..._nullishCoalesce(r.groups, () => ([])),..._nullishCoalesce(e.groups, () => ([]))],middlewares:[..._nullishCoalesce(r.middlewares, () => ([])),..._nullishCoalesce(e.middlewares, () => ([]))],schema:a(_nullishCoalesce(r.schema, () => ({})),_nullishCoalesce(e.schema, () => ({}))),security:[..._nullishCoalesce(r.security, () => ([])),..._nullishCoalesce(e.security, () => ([]))]}));class h{#t={path:""};#s=[];#o=[];constructor(t={path:""}){;h.prototype.__init.call(this);h.prototype.__init2.call(this);h.prototype.__init3.call(this);h.prototype.__init4.call(this);h.prototype.__init5.call(this);h.prototype.__init6.call(this);h.prototype.__init7.call(this);this.#t=t}#e(t){return(e,s={})=>o=>{const n=p(this.#t,[{...s,path:e,method:t,handler:o}])[0];return this.#s.push(n),n}}__init() {this.head=this.#e(_typesmincjs.Methods.head)}__init2() {this.get=this.#e(_typesmincjs.Methods.get)}__init3() {this.post=this.#e(_typesmincjs.Methods.post)}__init4() {this.put=this.#e(_typesmincjs.Methods.put)}__init5() {this.patch=this.#e(_typesmincjs.Methods.patch)}__init6() {this.delete=this.#e(_typesmincjs.Methods.delete)}__init7() {this.options=this.#e(_typesmincjs.Methods.options)}nest(...t){t.forEach(e=>this.#o.push(e))}get routes(){return[...this.#s].concat(this.#o.flatMap(t=>p(this.#t,t.routes)))}}exports.Router = h;
2
2
  //# sourceMappingURL=routes.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/routes.ts"],"names":["k","merge","acc","cur","key","s","groupRoutes","config","routes","route"],"mappings":"AAAA,iNAAkB,8CAalB,SAEC,CAAA,CAAA,GAAMA,CAAAA,CAAU,CACf,MAAA,CAAQ,CAAA,CAAA,MACR,CAAA,EAAS,CAAA,OACT,CAAO,EAAA,CACP,KAAM,CAAA,EACN,CAAA,IAAA,CAAA,EAAS,CAAA,OACT,CAAA,EAAA,CAAU,QACV,CAAA,EAAA,CAAA,eACA,CAAA,EAAA,CAAA,eACA,CAAA,EAAA,CAAA,iBACA,CAAA,EAAA,CAAA,kBACA,CAAA,EAAS,CAAA,OAEV,CAAA,EAAA,CAAA,CAASC,SACR,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAAA,CACAC,OACD,CAAA,CAAOD,CAAAA,CAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,UACV,CAAA,CAAMA,CAAAA,WAAKC,CAAU,KAC/B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,OAAO,MAAA,CAAA,WACN,CAAA,MAAQ,CAAA,IAAKC,CAAAA,CAAQ,CAC3BA,CAAAA,GACQ,CAAA,CAAA,EAAKC,CAAAA,CAAAA,CAAMA,CAAAA,CAAED,GAA4B,CAAE,CAAA,EAAA,CAAA,CAAA,CAAA,CAAoCH,CAAAA,CAAO,MAC9F,CACF,CACD,CAEA,IAAA,CAAA,CAAMK,CAAAA,CAAc,CAAyCC,MAC5DC,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKC,CAAAA,EAAAA,CAAW,CACtB,GAAGF,CAAAA,CACH,EAAA,CAAGE,CAAAA,GACH,CAAA,CAAA,GAAM,CAAGF,CAAAA,IAAO,CAAI,CAAA,EAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.min.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport {\n\tMethods,\n\ttype MergeRouteDefs,\n\ttype MethodsEnum,\n\ttype Route,\n\ttype RouteConfig,\n\ttype RouteDef,\n\ttype RouteDefHandler,\n\ttype RouterConfig,\n} from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t\tcontext: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../src/server/routes.ts"],"names":["k","merge","acc","cur","key","s","groupRoutes","config","routes","route"],"mappings":"AAAA,iNAAkB,8CAalB,SAEC,CAAA,CAAA,GAAMA,CAAAA,CAAU,CACf,MAAA,CAAQ,CAAA,CAAA,MACR,CAAA,EAAS,CAAA,OACT,CAAO,EAAA,CACP,KAAM,CAAA,EACN,CAAA,IAAA,CAAA,EAAS,CAAA,OACT,CAAA,EAAA,CAAU,QACV,CAAA,EAAA,CAAA,eACA,CAAA,EAAA,CAAA,eACA,CAAA,EAAA,CAAA,iBACA,CAAA,EAAA,CAAA,kBAED,CAAA,EAAA,CAAA,CAASC,SACR,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAAA,CACAC,OACD,CAAA,CAAOD,CAAAA,CAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,QACRA,EAAAA,OAAQ,CAAA,EAAA,UACV,CAAA,CAAMA,CAAAA,WAAKC,CAAU,KAC/B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,OAAO,MAAA,CAAA,WACN,CAAA,MAAQ,CAAA,IAAKC,CAAAA,CAAQ,CAC3BA,CAAAA,GACQ,CAAA,CAAA,EAAKC,CAAAA,CAAAA,CAAMA,CAAAA,CAAED,GAA4B,CAAE,CAAA,EAAA,CAAA,CAAA,CAAA,CAAoCH,CAAAA,CAAO,MAC9F,CACF,CACD,CAEA,IAAA,CAAA,CAAMK,CAAAA,CAAc,CAAyCC,MAC5DC,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKC,CAAAA,EAAAA,CAAW,CACtB,GAAGF,CAAAA,CACH,EAAA,CAAGE,CAAAA,GACH,CAAA,CAAA,GAAM,CAAGF,CAAAA,IAAO,CAAI,CAAA,EAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/server/routes.min.cjs","sourcesContent":["import { v } from 'valleyed'\n\nimport {\n\tMethods,\n\ttype MergeRouteDefs,\n\ttype MethodsEnum,\n\ttype Route,\n\ttype RouteConfig,\n\ttype RouteDef,\n\ttype RouteDefHandler,\n\ttype RouterConfig,\n} from './types'\n\nfunction mergeSchemas(...schemas: RouteDef[]) {\n\ttype Keys = Record<keyof RouteDef, string>\n\tconst k: Keys = {\n\t\tparams: '',\n\t\theaders: '',\n\t\tquery: '',\n\t\tbody: '',\n\t\tcookies: '',\n\t\tresponse: '',\n\t\tresponseHeaders: '',\n\t\tresponseCookies: '',\n\t\tdefaultStatusCode: '',\n\t\tdefaultContentType: '',\n\t}\n\tfunction merge<T extends RouteDef[keyof Keys]>(acc: T | null, cur: T) {\n\t\tif (!acc) return cur\n\t\tif (!cur) return acc\n\t\tif (typeof acc === 'number') return cur\n\t\tif (typeof acc === 'string') return cur\n\t\tif (typeof acc === 'function') return cur\n\t\treturn v.merge(acc, cur as any)\n\t}\n\treturn Object.fromEntries(\n\t\tObject.keys(k).map((key) => [\n\t\t\tkey,\n\t\t\tschemas.map((s) => s[key] as RouteDef[keyof Keys]).reduce<RouteDef[keyof Keys] | null>(merge, null),\n\t\t]),\n\t) as RouteDef\n}\n\nconst groupRoutes = <T extends RouteDef, R extends RouteDef>(config: RouterConfig<T>, routes: Route<R>[]) =>\n\troutes.map((route) => ({\n\t\t...config,\n\t\t...route,\n\t\tpath: `${config.path}/${route.path}`,\n\t\tgroups: [...(config.groups ?? []), ...(route.groups ?? [])],\n\t\tmiddlewares: [...(config.middlewares ?? []), ...(route.middlewares ?? [])],\n\t\tschema: mergeSchemas(config.schema ?? {}, route.schema ?? {}),\n\t\tsecurity: [...(config.security ?? []), ...(route.security ?? [])],\n\t})) as Route<MergeRouteDefs<T, R>>[]\n\nexport class Router<T extends RouteDef> {\n\t#config: RouterConfig<T> = { path: '' }\n\t#routes: Route<any>[] = []\n\t#children: Router<any>[] = []\n\n\tconstructor(config: RouterConfig<T> = { path: '' }) {\n\t\tthis.#config = config\n\t}\n\n\t#wrap(method: MethodsEnum) {\n\t\treturn <R extends RouteDef>(path: string, config: RouteConfig<R> = {}) =>\n\t\t\t(handler: RouteDefHandler<MergeRouteDefs<T, R>>) => {\n\t\t\t\tconst route = groupRoutes(this.#config, [{ ...config, path, method, handler: handler as any }])[0]\n\t\t\t\tthis.#routes.push(route)\n\t\t\t\treturn route\n\t\t\t}\n\t}\n\n\thead = this.#wrap(Methods.head)\n\tget = this.#wrap(Methods.get)\n\tpost = this.#wrap(Methods.post)\n\tput = this.#wrap(Methods.put)\n\tpatch = this.#wrap(Methods.patch)\n\tdelete = this.#wrap(Methods.delete)\n\toptions = this.#wrap(Methods.options)\n\n\tnest(...routers: Router<any>[]) {\n\t\trouters.forEach((router) => this.#children.push(router))\n\t}\n\n\tget routes() {\n\t\treturn [...this.#routes].concat(this.#children.flatMap((child) => groupRoutes(this.#config, child.routes)))\n\t}\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _pathtoregexp = require('path-to-regexp');
2
2
  var _indexcjs = require('../instance/index.cjs');
3
+ var _indexcjs3 = require('./requests-auth-methods/index.cjs');
3
4
  var _typescjs = require('./types.cjs');
4
5
  var EmitTypes = /* @__PURE__ */ ((EmitTypes2) => {
5
6
  EmitTypes2["created"] = "created";
@@ -73,10 +74,7 @@ class SocketEmitter {
73
74
  this.socketInstance.removeAllListeners("connection");
74
75
  this.socketInstance.on("connection", async (socket) => {
75
76
  const socketId = socket.id;
76
- let user = null;
77
- const tokensUtil = this.config.requestsAuth.tokens;
78
- if (socket.handshake.auth.authorization && tokensUtil)
79
- user = await tokensUtil.verifyAccessToken(_nullishCoalesce(socket.handshake.auth.authorization, () => ( ""))).catch(() => null);
77
+ const user = await _indexcjs3.BaseRequestAuthMethod.process(this.config.socketsAuthMethods, socket.handshake.headers).catch(() => null);
80
78
  socket.on("leave", async (data, callback) => {
81
79
  if (!data.channel)
82
80
  return typeof callback === "function" && callback({