fastify 4.27.0 → 5.0.0-alpha.2

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 (328) hide show
  1. package/.markdownlint-cli2.yaml +1 -1
  2. package/.tap/processinfo/09002e93-10ad-430c-bc86-c0576928b0ed.json +241 -0
  3. package/.tap/processinfo/ee66c5ab-635d-48b5-8be6-3dc3ceea5bfc.json +268 -0
  4. package/.tap/test-results/test/404s.test.js.tap +623 -0
  5. package/.tap/test-results/test/500s.test.js.tap +64 -0
  6. package/.tap/test-results/test/allowUnsafeRegex.test.js.tap +36 -0
  7. package/.tap/test-results/test/als.test.js.tap +15 -0
  8. package/.tap/test-results/test/async-await.test.js.tap +184 -0
  9. package/.tap/test-results/test/async-dispose.test.js.tap +8 -0
  10. package/.tap/test-results/test/async_hooks.test.js.tap +10 -0
  11. package/.tap/test-results/test/bodyLimit.test.js.tap +48 -0
  12. package/.tap/test-results/test/buffer.test.js.tap +20 -0
  13. package/.tap/test-results/test/build/error-serializer.test.js.tap +12 -0
  14. package/.tap/test-results/test/build/version.test.js.tap +7 -0
  15. package/.tap/test-results/test/case-insensitive.test.js.tap +36 -0
  16. package/.tap/test-results/test/chainable.test.js.tap +17 -0
  17. package/.tap/test-results/test/check.test.js.tap +10 -0
  18. package/.tap/test-results/test/childLoggerFactory.test.js.tap +23 -0
  19. package/.tap/test-results/test/client-timeout.test.js.tap +7 -0
  20. package/.tap/test-results/test/close-pipelining.test.js.tap +15 -0
  21. package/.tap/test-results/test/close.test.js.tap +172 -0
  22. package/.tap/test-results/test/connectionTimeout.test.js.tap +12 -0
  23. package/.tap/test-results/test/constrained-routes.test.js.tap +173 -0
  24. package/.tap/test-results/test/content-length.test.js.tap +46 -0
  25. package/.tap/test-results/test/content-parser.test.js.tap +266 -0
  26. package/.tap/test-results/test/content-type.test.js.tap +14 -0
  27. package/.tap/test-results/test/context-config.test.js.tap +41 -0
  28. package/.tap/test-results/test/copy.test.js.tap +14 -0
  29. package/.tap/test-results/test/custom-http-server.test.js.tap +30 -0
  30. package/.tap/test-results/test/custom-parser-async.test.js.tap +21 -0
  31. package/.tap/test-results/test/custom-parser.0.test.js.tap +199 -0
  32. package/.tap/test-results/test/custom-parser.1.test.js.tap +90 -0
  33. package/.tap/test-results/test/custom-parser.2.test.js.tap +22 -0
  34. package/.tap/test-results/test/custom-parser.3.test.js.tap +53 -0
  35. package/.tap/test-results/test/custom-parser.4.test.js.tap +45 -0
  36. package/.tap/test-results/test/custom-parser.5.test.js.tap +41 -0
  37. package/.tap/test-results/test/custom-querystring-parser.test.js.tap +46 -0
  38. package/.tap/test-results/test/decorator.test.js.tap +465 -0
  39. package/.tap/test-results/test/delete.test.js.tap +110 -0
  40. package/.tap/test-results/test/diagnostics-channel/404.test.js.tap +15 -0
  41. package/.tap/test-results/test/diagnostics-channel/async-delay-request.test.js.tap +25 -0
  42. package/.tap/test-results/test/diagnostics-channel/async-request.test.js.tap +24 -0
  43. package/.tap/test-results/test/diagnostics-channel/error-before-handler.test.js.tap +9 -0
  44. package/.tap/test-results/test/diagnostics-channel/error-request.test.js.tap +20 -0
  45. package/.tap/test-results/test/diagnostics-channel/error-status.test.js.tap +10 -0
  46. package/.tap/test-results/test/diagnostics-channel/init.test.js.tap +14 -0
  47. package/.tap/test-results/test/diagnostics-channel/sync-delay-request.test.js.tap +16 -0
  48. package/.tap/test-results/test/diagnostics-channel/sync-request-reply.test.js.tap +16 -0
  49. package/.tap/test-results/test/diagnostics-channel/sync-request.test.js.tap +19 -0
  50. package/.tap/test-results/test/encapsulated-child-logger-factory.test.js.tap +18 -0
  51. package/.tap/test-results/test/encapsulated-error-handler.test.js.tap +243 -0
  52. package/.tap/test-results/test/esm/errorCodes.test.mjs.tap +9 -0
  53. package/.tap/test-results/test/esm/esm.test.mjs.tap +8 -0
  54. package/.tap/test-results/test/esm/index.test.js.tap +8 -0
  55. package/.tap/test-results/test/fastify-instance.test.js.tap +114 -0
  56. package/.tap/test-results/test/findRoute.test.js.tap +37 -0
  57. package/.tap/test-results/test/fluent-schema.test.js.tap +36 -0
  58. package/.tap/test-results/test/genReqId.test.js.tap +106 -0
  59. package/.tap/test-results/test/get.test.js.tap +151 -0
  60. package/.tap/test-results/test/handler-context.test.js.tap +19 -0
  61. package/.tap/test-results/test/has-route.test.js.tap +30 -0
  62. package/.tap/test-results/test/head.test.js.tap +130 -0
  63. package/.tap/test-results/test/header-overflow.test.js.tap +16 -0
  64. package/.tap/test-results/test/hooks-async.test.js.tap +286 -0
  65. package/.tap/test-results/test/hooks.on-listen.test.js.tap +311 -0
  66. package/.tap/test-results/test/hooks.on-ready.test.js.tap +151 -0
  67. package/.tap/test-results/test/hooks.test.js.tap +966 -0
  68. package/.tap/test-results/test/http2/closing.test.js.tap +35 -0
  69. package/.tap/test-results/test/http2/constraint.test.js.tap +32 -0
  70. package/.tap/test-results/test/http2/head.test.js.tap +9 -0
  71. package/.tap/test-results/test/http2/missing-http2-module.test.js.tap +8 -0
  72. package/.tap/test-results/test/http2/plain.test.js.tap +22 -0
  73. package/.tap/test-results/test/http2/secure-with-fallback.test.js.tap +40 -0
  74. package/.tap/test-results/test/http2/secure.test.js.tap +27 -0
  75. package/.tap/test-results/test/http2/unknown-http-method.test.js.tap +9 -0
  76. package/.tap/test-results/test/https/custom-https-server.test.js.tap +10 -0
  77. package/.tap/test-results/test/https/https.test.js.tap +45 -0
  78. package/.tap/test-results/test/imports.test.js.tap +14 -0
  79. package/.tap/test-results/test/inject.test.js.tap +165 -0
  80. package/.tap/test-results/test/internals/all.test.js.tap +42 -0
  81. package/.tap/test-results/test/internals/contentTypeParser.test.js.tap +14 -0
  82. package/.tap/test-results/test/internals/context.test.js.tap +14 -0
  83. package/.tap/test-results/test/internals/decorator.test.js.tap +51 -0
  84. package/.tap/test-results/test/internals/errors.test.js.tap +1212 -0
  85. package/.tap/test-results/test/internals/handleRequest.test.js.tap +69 -0
  86. package/.tap/test-results/test/internals/hookRunner.test.js.tap +143 -0
  87. package/.tap/test-results/test/internals/hooks.test.js.tap +45 -0
  88. package/.tap/test-results/test/internals/initialConfig.test.js.tap +125 -0
  89. package/.tap/test-results/test/internals/logger.test.js.tap +71 -0
  90. package/.tap/test-results/test/internals/plugin.test.js.tap +48 -0
  91. package/.tap/test-results/test/internals/reply-serialize.test.js.tap +166 -0
  92. package/.tap/test-results/test/internals/reply.test.js.tap +688 -0
  93. package/.tap/test-results/test/internals/reqIdGenFactory.test.js.tap +74 -0
  94. package/.tap/test-results/test/internals/request-validate.test.js.tap +384 -0
  95. package/.tap/test-results/test/internals/request.test.js.tap +163 -0
  96. package/.tap/test-results/test/internals/server.test.js.tap +30 -0
  97. package/.tap/test-results/test/internals/validation.test.js.tap +121 -0
  98. package/.tap/test-results/test/keepAliveTimeout.test.js.tap +12 -0
  99. package/.tap/test-results/test/listen.1.test.js.tap +31 -0
  100. package/.tap/test-results/test/listen.2.test.js.tap +46 -0
  101. package/.tap/test-results/test/listen.3.test.js.tap +25 -0
  102. package/.tap/test-results/test/listen.4.test.js.tap +51 -0
  103. package/.tap/test-results/test/lock.test.js.tap +29 -0
  104. package/.tap/test-results/test/logger/instantiation.test.js.tap +92 -0
  105. package/.tap/test-results/test/logger/logging.test.js.tap +117 -0
  106. package/.tap/test-results/test/logger/options.test.js.tap +165 -0
  107. package/.tap/test-results/test/logger/request.test.js.tap +82 -0
  108. package/.tap/test-results/test/logger/response.test.js.tap +38 -0
  109. package/.tap/test-results/test/maxRequestsPerSocket.test.js.tap +44 -0
  110. package/.tap/test-results/test/method-missing.test.js.tap +8 -0
  111. package/.tap/test-results/test/middleware.test.js.tap +17 -0
  112. package/.tap/test-results/test/mkcalendar.test.js.tap +43 -0
  113. package/.tap/test-results/test/mkcol.test.js.tap +14 -0
  114. package/.tap/test-results/test/move.test.js.tap +15 -0
  115. package/.tap/test-results/test/noop-set.test.js.tap +8 -0
  116. package/.tap/test-results/test/nullable-validation.test.js.tap +36 -0
  117. package/.tap/test-results/test/options.error-handler.test.js.tap +186 -0
  118. package/.tap/test-results/test/options.test.js.tap +174 -0
  119. package/.tap/test-results/test/output-validation.test.js.tap +66 -0
  120. package/.tap/test-results/test/patch.error-handler.test.js.tap +206 -0
  121. package/.tap/test-results/test/patch.test.js.tap +182 -0
  122. package/.tap/test-results/test/plugin.1.test.js.tap +78 -0
  123. package/.tap/test-results/test/plugin.2.test.js.tap +102 -0
  124. package/.tap/test-results/test/plugin.3.test.js.tap +58 -0
  125. package/.tap/test-results/test/plugin.4.test.js.tap +164 -0
  126. package/.tap/test-results/test/post-empty-body.test.js.tap +8 -0
  127. package/.tap/test-results/test/pretty-print.test.js.tap +82 -0
  128. package/.tap/test-results/test/promises.test.js.tap +46 -0
  129. package/.tap/test-results/test/propfind.test.js.tap +43 -0
  130. package/.tap/test-results/test/proppatch.test.js.tap +29 -0
  131. package/.tap/test-results/test/proto-poisoning.test.js.tap +47 -0
  132. package/.tap/test-results/test/put.error-handler.test.js.tap +206 -0
  133. package/.tap/test-results/test/put.test.js.tap +182 -0
  134. package/.tap/test-results/test/register.test.js.tap +61 -0
  135. package/.tap/test-results/test/reply-code.test.js.tap +40 -0
  136. package/.tap/test-results/test/reply-earlyHints.test.js.tap +22 -0
  137. package/.tap/test-results/test/reply-error.test.js.tap +643 -0
  138. package/.tap/test-results/test/reply-trailers.test.js.tap +176 -0
  139. package/.tap/test-results/test/report.test.js.tap +43 -0
  140. package/.tap/test-results/test/request-error.test.js.tap +98 -0
  141. package/.tap/test-results/test/request-id.test.js.tap +38 -0
  142. package/.tap/test-results/test/request.deprecated.test.js.tap +13 -0
  143. package/.tap/test-results/test/requestTimeout.test.js.tap +21 -0
  144. package/.tap/test-results/test/route-hooks.test.js.tap +498 -0
  145. package/.tap/test-results/test/route-prefix.test.js.tap +195 -0
  146. package/.tap/test-results/test/route-shorthand.test.js.tap +190 -0
  147. package/.tap/test-results/test/route.1.test.js.tap +93 -0
  148. package/.tap/test-results/test/route.2.test.js.tap +28 -0
  149. package/.tap/test-results/test/route.3.test.js.tap +39 -0
  150. package/.tap/test-results/test/route.4.test.js.tap +32 -0
  151. package/.tap/test-results/test/route.5.test.js.tap +54 -0
  152. package/.tap/test-results/test/route.6.test.js.tap +81 -0
  153. package/.tap/test-results/test/route.7.test.js.tap +93 -0
  154. package/.tap/test-results/test/route.8.test.js.tap +38 -0
  155. package/.tap/test-results/test/router-options.test.js.tap +104 -0
  156. package/.tap/test-results/test/same-shape.test.js.tap +22 -0
  157. package/.tap/test-results/test/schema-examples.test.js.tap +85 -0
  158. package/.tap/test-results/test/schema-feature.test.js.tap +445 -0
  159. package/.tap/test-results/test/schema-serialization.test.js.tap +194 -0
  160. package/.tap/test-results/test/schema-special-usage.test.js.tap +186 -0
  161. package/.tap/test-results/test/schema-validation.test.js.tap +199 -0
  162. package/.tap/test-results/test/search.test.js.tap +77 -0
  163. package/.tap/test-results/test/serialize-response.test.js.tap +26 -0
  164. package/.tap/test-results/test/server.test.js.tap +65 -0
  165. package/.tap/test-results/test/set-error-handler.test.js.tap +7 -0
  166. package/.tap/test-results/test/skip-reply-send.test.js.tap +272 -0
  167. package/.tap/test-results/test/stream.1.test.js.tap +36 -0
  168. package/.tap/test-results/test/stream.2.test.js.tap +20 -0
  169. package/.tap/test-results/test/stream.3.test.js.tap +34 -0
  170. package/.tap/test-results/test/stream.4.test.js.tap +40 -0
  171. package/.tap/test-results/test/stream.5.test.js.tap +37 -0
  172. package/.tap/test-results/test/sync-routes.test.js.tap +19 -0
  173. package/.tap/test-results/test/throw.test.js.tap +116 -0
  174. package/.tap/test-results/test/trace.test.js.tap +7 -0
  175. package/.tap/test-results/test/trust-proxy.test.js.tap +109 -0
  176. package/.tap/test-results/test/type-provider.test.js.tap +12 -0
  177. package/.tap/test-results/test/unlock.test.js.tap +14 -0
  178. package/.tap/test-results/test/upgrade.test.js.tap +8 -0
  179. package/.tap/test-results/test/url-rewriting.test.js.tap +39 -0
  180. package/.tap/test-results/test/useSemicolonDelimiter.test.js.tap +33 -0
  181. package/.tap/test-results/test/validation-error-handling.test.js.tap +180 -0
  182. package/.tap/test-results/test/versioned-routes.test.js.tap +151 -0
  183. package/.tap/test-results/test/web-api.test.js.tap +51 -0
  184. package/.tap/test-results/test/wrapThenable.test.js.tap +11 -0
  185. package/.taprc +4 -8
  186. package/README.md +3 -6
  187. package/build/build-error-serializer.js +4 -1
  188. package/build/build-validation.js +5 -4
  189. package/docs/Guides/Database.md +1 -1
  190. package/docs/Guides/Delay-Accepting-Requests.md +3 -3
  191. package/docs/Guides/Ecosystem.md +2 -0
  192. package/docs/Guides/Migration-Guide-V5.md +20 -0
  193. package/docs/Guides/Write-Type-Provider.md +4 -2
  194. package/docs/Reference/ContentTypeParser.md +30 -1
  195. package/docs/Reference/Decorators.md +42 -16
  196. package/docs/Reference/Errors.md +10 -2
  197. package/docs/Reference/Hooks.md +48 -14
  198. package/docs/Reference/Logging.md +5 -5
  199. package/docs/Reference/Reply.md +29 -24
  200. package/docs/Reference/Request.md +5 -1
  201. package/docs/Reference/Routes.md +24 -28
  202. package/docs/Reference/Server.md +14 -53
  203. package/docs/Reference/Type-Providers.md +21 -26
  204. package/docs/Reference/TypeScript.md +46 -29
  205. package/docs/Reference/Warnings.md +2 -8
  206. package/eslint.config.js +27 -0
  207. package/examples/typescript-server.ts +14 -14
  208. package/fastify.d.ts +15 -14
  209. package/fastify.js +41 -15
  210. package/lib/configValidator.js +94 -76
  211. package/lib/contentTypeParser.js +54 -88
  212. package/lib/decorate.js +3 -7
  213. package/lib/error-serializer.js +77 -19
  214. package/lib/errors.js +31 -6
  215. package/lib/handleRequest.js +70 -39
  216. package/lib/httpMethods.js +34 -18
  217. package/lib/logger.js +24 -6
  218. package/lib/pluginUtils.js +5 -5
  219. package/lib/reply.js +16 -13
  220. package/lib/request.js +37 -19
  221. package/lib/route.js +7 -31
  222. package/lib/server.js +62 -123
  223. package/lib/warnings.js +28 -27
  224. package/lib/wrapThenable.js +46 -22
  225. package/package.json +38 -58
  226. package/test/404s.test.js +8 -12
  227. package/test/async-await.test.js +46 -2
  228. package/test/build/error-serializer.test.js +4 -2
  229. package/test/check.test.js +225 -0
  230. package/test/close-pipelining.test.js +2 -34
  231. package/test/close.test.js +1 -41
  232. package/test/content-parser.test.js +69 -117
  233. package/test/custom-parser.1.test.js +40 -1
  234. package/test/decorator-namespace.test._js_ +31 -0
  235. package/test/decorator.test.js +92 -43
  236. package/test/delete.test.js +21 -1
  237. package/test/diagnostics-channel/404.test.js +57 -0
  238. package/test/diagnostics-channel/async-delay-request.test.js +74 -0
  239. package/test/diagnostics-channel/async-request.test.js +72 -0
  240. package/test/diagnostics-channel/error-before-handler.test.js +36 -0
  241. package/test/diagnostics-channel/error-request.test.js +61 -0
  242. package/test/diagnostics-channel/error-status.test.js +39 -0
  243. package/test/{diagnostics-channel.test.js → diagnostics-channel/init.test.js} +6 -16
  244. package/test/diagnostics-channel/sync-delay-request.test.js +58 -0
  245. package/test/diagnostics-channel/sync-request-reply.test.js +58 -0
  246. package/test/diagnostics-channel/sync-request.test.js +61 -0
  247. package/test/encapsulated-error-handler.test.js +201 -14
  248. package/test/esm/index.test.js +2 -12
  249. package/test/findRoute.test.js +16 -0
  250. package/test/genReqId.test.js +9 -0
  251. package/test/get.test.js +28 -0
  252. package/test/has-route.test.js +18 -2
  253. package/test/helper.js +1 -5
  254. package/test/hooks.test.js +0 -4
  255. package/test/http2/constraint.test.js +22 -1
  256. package/test/http2/plain.test.js +21 -6
  257. package/test/http2/secure.test.js +12 -1
  258. package/test/https/https.test.js +57 -0
  259. package/test/inject.test.js +1 -2
  260. package/test/internals/decorator.test.js +0 -2
  261. package/test/internals/errors.test.js +57 -17
  262. package/test/internals/handleRequest.test.js +5 -1
  263. package/test/internals/initialConfig.test.js +5 -5
  264. package/test/internals/logger.test.js +31 -2
  265. package/test/internals/reply.test.js +38 -80
  266. package/test/internals/request.test.js +13 -11
  267. package/test/listen.1.test.js +5 -15
  268. package/test/listen.5.test.js +88 -0
  269. package/test/logger/instantiation.test.js +8 -8
  270. package/test/logger/logging.test.js +4 -4
  271. package/test/logger/options.test.js +102 -21
  272. package/test/logger/response.test.js +6 -6
  273. package/test/maxRequestsPerSocket.test.js +2 -5
  274. package/test/method-missing.test.js +24 -0
  275. package/test/plugin.1.test.js +2 -4
  276. package/test/plugin.2.test.js +0 -2
  277. package/test/plugin.3.test.js +0 -2
  278. package/test/plugin.4.test.js +92 -56
  279. package/test/register.test.js +2 -4
  280. package/test/reply-earlyHints.test.js +98 -0
  281. package/test/reply-error.test.js +0 -2
  282. package/test/route-hooks.test.js +0 -1
  283. package/test/route-shorthand.test.js +60 -0
  284. package/test/schema-special-usage.test.js +1 -1
  285. package/test/server.test.js +17 -2
  286. package/test/stream.2.test.js +1 -1
  287. package/test/stream.4.test.js +0 -42
  288. package/test/stream.5.test.js +2 -2
  289. package/test/trust-proxy.test.js +33 -27
  290. package/test/types/errors.test-d.ts +0 -2
  291. package/test/types/fastify.test-d.ts +14 -12
  292. package/test/types/hooks.test-d.ts +1 -0
  293. package/test/types/import.ts +1 -0
  294. package/test/types/instance.test-d.ts +10 -51
  295. package/test/types/logger.test-d.ts +43 -6
  296. package/test/types/plugin.test-d.ts +5 -2
  297. package/test/types/register.test-d.ts +2 -2
  298. package/test/types/reply.test-d.ts +13 -12
  299. package/test/types/request.test-d.ts +19 -8
  300. package/test/types/route.test-d.ts +30 -2
  301. package/test/types/schema.test-d.ts +2 -2
  302. package/test/types/serverFactory.test-d.ts +1 -1
  303. package/test/types/type-provider.test-d.ts +60 -13
  304. package/test/types/using.test-d.ts +4 -1
  305. package/test/url-rewriting.test.js +3 -2
  306. package/test/useSemicolonDelimiter.test.js +3 -6
  307. package/test/versioned-routes.test.js +1 -1
  308. package/test/web-api.test.js +0 -6
  309. package/types/content-type-parser.d.ts +3 -3
  310. package/types/context.d.ts +0 -1
  311. package/types/errors.d.ts +1 -0
  312. package/types/hooks.d.ts +6 -6
  313. package/types/instance.d.ts +28 -41
  314. package/types/logger.d.ts +3 -3
  315. package/types/plugin.d.ts +3 -3
  316. package/types/reply.d.ts +13 -14
  317. package/types/request.d.ts +5 -3
  318. package/types/route.d.ts +29 -29
  319. package/types/schema.d.ts +3 -3
  320. package/types/serverFactory.d.ts +2 -2
  321. package/types/type-provider.d.ts +22 -12
  322. package/types/utils.d.ts +18 -18
  323. package/.c8rc.json +0 -8
  324. package/.eslintrc +0 -4
  325. package/test/default-route.test.js +0 -88
  326. package/test/listen.deprecated.test.js +0 -229
  327. package/test/unsupported-httpversion.test.js +0 -31
  328. package/types/.eslintrc.json +0 -48
@@ -0,0 +1,74 @@
1
+ TAP version 14
2
+ # Subtest: should create incremental ids deterministically
3
+ 1..1
4
+ ok 1 - (unnamed test)
5
+ ok 1 - should create incremental ids deterministically # time=9.41ms
6
+
7
+ # Subtest: should have prefix "req-"
8
+ 1..1
9
+ ok 1 - should be equal
10
+ ok 2 - should have prefix "req-" # time=0.67ms
11
+
12
+ # Subtest: different id generator functions should have separate internal counters
13
+ 1..5
14
+ ok 1 - should be equal
15
+ ok 2 - should be equal
16
+ ok 3 - should be equal
17
+ ok 4 - should be equal
18
+ ok 5 - should be equal
19
+ ok 3 - different id generator functions should have separate internal counters # time=0.607ms
20
+
21
+ # Subtest: should start counting with 1
22
+ 1..1
23
+ ok 1 - should be equal
24
+ ok 4 - should start counting with 1 # time=0.23ms
25
+
26
+ # Subtest: should handle requestIdHeader and return provided id in header
27
+ 1..1
28
+ ok 1 - should be equal
29
+ ok 5 - should handle requestIdHeader and return provided id in header # time=0.251ms
30
+
31
+ # Subtest: should handle requestIdHeader and fallback if id is not provided in header
32
+ 1..1
33
+ ok 1 - should be equal
34
+ ok 6 - should handle requestIdHeader and fallback if id is not provided in header # time=0.685ms
35
+
36
+ # Subtest: should handle requestIdHeader and increment internal counter if no header was provided
37
+ 1..4
38
+ ok 1 - should be equal
39
+ ok 2 - should be equal
40
+ ok 3 - should be equal
41
+ ok 4 - should be equal
42
+ ok 7 - should handle requestIdHeader and increment internal counter if no header was provided # time=0.353ms
43
+
44
+ # Subtest: should use optGenReqId to generate ids
45
+ 1..4
46
+ ok 1 - should be equal
47
+ ok 2 - should be equal
48
+ ok 3 - should be equal
49
+ ok 4 - should be equal
50
+ ok 8 - should use optGenReqId to generate ids # time=0.323ms
51
+
52
+ # Subtest: should use optGenReqId to generate ids if requestIdHeader is used but not provided
53
+ 1..4
54
+ ok 1 - should be equal
55
+ ok 2 - should be equal
56
+ ok 3 - should be equal
57
+ ok 4 - should be equal
58
+ ok 9 - should use optGenReqId to generate ids if requestIdHeader is used but not provided # time=6.708ms
59
+
60
+ # Subtest: should not use optGenReqId to generate ids if requestIdHeader is used and provided
61
+ 1..2
62
+ ok 1 - should be equal
63
+ ok 2 - should be equal
64
+ ok 10 - should not use optGenReqId to generate ids if requestIdHeader is used and provided # time=0.293ms
65
+
66
+ # Subtest: should fallback to use optGenReqId to generate ids if requestIdHeader is sometimes provided
67
+ 1..4
68
+ ok 1 - should be equal
69
+ ok 2 - should be equal
70
+ ok 3 - should be equal
71
+ ok 4 - should be equal
72
+ ok 11 - should fallback to use optGenReqId to generate ids if requestIdHeader is sometimes provided # time=0.324ms
73
+
74
+ 1..11
@@ -0,0 +1,384 @@
1
+ TAP version 14
2
+ # Subtest: \#compileValidationSchema
3
+ 1..7
4
+ # Subtest: Should return a function - Route without schema
5
+ 1..3
6
+ ok 1 - type is Function
7
+ ok 2 - should be equal
8
+ ok 3 - should be equal
9
+ ok 1 - Should return a function - Route without schema # time=41.136ms
10
+
11
+ # Subtest: Validate function errors property should be null after validation when input is valid
12
+ 1..3
13
+ ok 1 - should be equal
14
+ ok 2 - should be equal
15
+ ok 3 - should be equal
16
+ ok 2 - Validate function errors property should be null after validation when input is valid # time=9.933ms
17
+
18
+ # Subtest: Validate function errors property should be an array of errors after validation when input is valid
19
+ 1..4
20
+ ok 1 - should be equal
21
+ ok 2 - should be equal
22
+ ok 3 - should be equal
23
+ ok 4 - should be equal
24
+ ok 3 - Validate function errors property should be an array of errors after validation when input is valid # time=29.349ms
25
+
26
+ # Subtest: Should reuse the validate fn across multiple invocations - Route without schema
27
+ 1..16
28
+ ok 1 - type is Function
29
+ ok 2 - should be equal
30
+ ok 3 - should be equal
31
+ ok 4 - Are the same validate function
32
+ ok 5 - type is Function
33
+ ok 6 - should be equal
34
+ ok 7 - should be equal
35
+ ok 8 - Are the same validate function
36
+ ok 9 - type is Function
37
+ ok 10 - should be equal
38
+ ok 11 - should be equal
39
+ ok 12 - Are the same validate function
40
+ ok 13 - type is Function
41
+ ok 14 - should be equal
42
+ ok 15 - should be equal
43
+ ok 16 - should be equal
44
+ ok 4 - Should reuse the validate fn across multiple invocations - Route without schema # time=15.675ms
45
+
46
+ # Subtest: Should return a function - Route with schema
47
+ 1..3
48
+ ok 1 - type is Function
49
+ ok 2 - should be equal
50
+ ok 3 - should be equal
51
+ ok 5 - Should return a function - Route with schema # time=17.215ms
52
+
53
+ # Subtest: Should use the custom validator compiler for the route
54
+ 1..10
55
+ ok 1 - should be equal
56
+ ok 2 - should be equal
57
+ ok 3 - should be equal
58
+ ok 4 - should be equal
59
+ ok 5 - should be equal
60
+ ok 6 - should be equivalent
61
+ ok 7 - should be equal
62
+ ok 8 - should be equivalent
63
+ ok 9 - should be equal
64
+ ok 10 - should be equal
65
+ ok 6 - Should use the custom validator compiler for the route # time=2.806ms
66
+
67
+ # Subtest: Should instantiate a WeakMap when executed for first time
68
+ 1..5
69
+ ok 1 - should be equal
70
+ ok 2 - type is Function
71
+ ok 3 - type is WeakMap
72
+ ok 4 - type is Function
73
+ ok 5 - type is WeakMap
74
+ ok 7 - Should instantiate a WeakMap when executed for first time # time=7.26ms
75
+
76
+ ok 1 - \#compileValidationSchema # time=131.788ms
77
+
78
+ # Subtest: \#getValidationFunction
79
+ 1..6
80
+ # Subtest: Should return a validation function
81
+ 1..1
82
+ ok 1 - should be equal
83
+ ok 1 - Should return a validation function # time=11.956ms
84
+
85
+ # Subtest: Validate function errors property should be null after validation when input is valid
86
+ 1..3
87
+ ok 1 - should be equal
88
+ ok 2 - should be equal
89
+ ok 3 - should be equal
90
+ ok 2 - Validate function errors property should be null after validation when input is valid # time=6.218ms
91
+
92
+ # Subtest: Validate function errors property should be an array of errors after validation when input is valid
93
+ 1..4
94
+ ok 1 - should be equal
95
+ ok 2 - should be equal
96
+ ok 3 - should be equal
97
+ ok 4 - should be equal
98
+ ok 3 - Validate function errors property should be an array of errors after validation when input is valid # time=5.93ms
99
+
100
+ # Subtest: Should return undefined if no schema compiled
101
+ 1..2
102
+ ok 1 - should be equal
103
+ ok 2 - should be equal
104
+ ok 4 - Should return undefined if no schema compiled # time=1.474ms
105
+
106
+ # Subtest: Should return the validation function from each HTTP part
107
+ 1..15
108
+ ok 1 - should be equal
109
+ ok 2 - should be equal
110
+ ok 3 - should be equal
111
+ ok 4 - should be equal
112
+ ok 5 - should be equal
113
+ ok 6 - should be equal
114
+ ok 7 - should be equal
115
+ ok 8 - should be equal
116
+ ok 9 - should be equal
117
+ ok 10 - should be equal
118
+ ok 11 - should be equal
119
+ ok 12 - should be equal
120
+ ok 13 - should be equal
121
+ ok 14 - should be equal
122
+ ok 15 - should be equal
123
+ ok 5 - Should return the validation function from each HTTP part # time=20.381ms
124
+
125
+ # Subtest: Should not set a WeakMap if there is no schema
126
+ 1..1
127
+ ok 1 - should be equal
128
+ ok 6 - Should not set a WeakMap if there is no schema # time=1.323ms
129
+
130
+ ok 2 - \#getValidationFunction # time=61.742ms
131
+
132
+ # Subtest: \#validate
133
+ 1..7
134
+ # Subtest: Should return true/false if input valid - Route without schema
135
+ 1..2
136
+ ok 1 - should be equal
137
+ ok 2 - should be equal
138
+ ok 1 - Should return true/false if input valid - Route without schema # time=7.759ms
139
+
140
+ # Subtest: Should use the custom validator compiler for the route
141
+ 1..9
142
+ ok 1 - should be equal
143
+ ok 2 - should be equal
144
+ ok 3 - should be equal
145
+ ok 4 - should be equal
146
+ ok 5 - should be equivalent
147
+ ok 6 - should be equivalent
148
+ ok 7 - should be equal
149
+ ok 8 - should be equal
150
+ ok 9 - should be equal
151
+ ok 2 - Should use the custom validator compiler for the route # time=5.558ms
152
+
153
+ # Subtest: Should return true/false if input valid - With Schema for Route defined
154
+ 1..8
155
+ ok 1 - should be equal
156
+ ok 2 - should be equal
157
+ ok 3 - should be equal
158
+ ok 4 - should be equal
159
+ ok 5 - should be equal
160
+ ok 6 - should be equal
161
+ ok 7 - should be equal
162
+ ok 8 - should be equal
163
+ ok 3 - Should return true/false if input valid - With Schema for Route defined # time=13.571ms
164
+
165
+ # Subtest: Should throw if missing validation fn for HTTP part and not schema provided
166
+ 1..10
167
+ ok 1 - should be equal
168
+ ok 2 - should be equal
169
+ ok 3 - should be equal
170
+ ok 4 - should be equal
171
+ ok 5 - should be equal
172
+ ok 6 - should be equal
173
+ ok 7 - should be equal
174
+ ok 8 - should be equal
175
+ ok 9 - should be equal
176
+ ok 10 - should be equal
177
+ ok 4 - Should throw if missing validation fn for HTTP part and not schema provided # time=3.108ms
178
+
179
+ # Subtest: Should throw if missing validation fn for HTTP part and not valid schema provided
180
+ 1..10
181
+ ok 1 - should be equal
182
+ ok 2 - should be equal
183
+ ok 3 - should be equal
184
+ ok 4 - should be equal
185
+ ok 5 - should be equal
186
+ ok 6 - should be equal
187
+ ok 7 - should be equal
188
+ ok 8 - should be equal
189
+ ok 9 - should be equal
190
+ ok 10 - should be equal
191
+ ok 5 - Should throw if missing validation fn for HTTP part and not valid schema provided # time=2.711ms
192
+
193
+ # Subtest: Should throw if invalid schema passed
194
+ 1..10
195
+ ok 1 - should be equal
196
+ ok 2 - should be equal
197
+ ok 3 - should be equal
198
+ ok 4 - should be equal
199
+ ok 5 - should be equal
200
+ ok 6 - should be equal
201
+ ok 7 - should be equal
202
+ ok 8 - should be equal
203
+ ok 9 - should be equal
204
+ ok 10 - should be equal
205
+ ok 6 - Should throw if invalid schema passed # time=2.029ms
206
+
207
+ # Subtest: Should set a WeakMap if compiling the very first schema
208
+ 1..3
209
+ ok 1 - should be equal
210
+ ok 2 - should be equal
211
+ ok 3 - type is WeakMap
212
+ ok 7 - Should set a WeakMap if compiling the very first schema # time=5.915ms
213
+
214
+ ok 3 - \#validate # time=43.838ms
215
+
216
+ # Subtest: Nested Context
217
+ 1..1
218
+ # Subtest: Level_1
219
+ 1..3
220
+ # Subtest: \#compileValidationSchema
221
+ 1..5
222
+ # Subtest: Should return a function - Route without schema
223
+ 1..3
224
+ ok 1 - type is Function
225
+ ok 2 - should be equal
226
+ ok 3 - should be equal
227
+ ok 1 - Should return a function - Route without schema # time=19.871ms
228
+
229
+ # Subtest: Should reuse the validate fn across multiple invocations - Route without schema
230
+ 1..16
231
+ ok 1 - type is Function
232
+ ok 2 - should be equal
233
+ ok 3 - should be equal
234
+ ok 4 - Are the same validate function
235
+ ok 5 - type is Function
236
+ ok 6 - should be equal
237
+ ok 7 - should be equal
238
+ ok 8 - Are the same validate function
239
+ ok 9 - type is Function
240
+ ok 10 - should be equal
241
+ ok 11 - should be equal
242
+ ok 12 - Are the same validate function
243
+ ok 13 - type is Function
244
+ ok 14 - should be equal
245
+ ok 15 - should be equal
246
+ ok 16 - should be equal
247
+ ok 2 - Should reuse the validate fn across multiple invocations - Route without schema # time=12.268ms
248
+
249
+ # Subtest: Should return a function - Route with schema
250
+ 1..3
251
+ ok 1 - type is Function
252
+ ok 2 - should be equal
253
+ ok 3 - should be equal
254
+ ok 3 - Should return a function - Route with schema # time=6.664ms
255
+
256
+ # Subtest: Should use the custom validator compiler for the route
257
+ 1..10
258
+ ok 1 - should be equal
259
+ ok 2 - should be equal
260
+ ok 3 - should be equal
261
+ ok 4 - should be equal
262
+ ok 5 - should be equal
263
+ ok 6 - should be equivalent
264
+ ok 7 - should be equal
265
+ ok 8 - should be equivalent
266
+ ok 9 - should be equal
267
+ ok 10 - should be equal
268
+ ok 4 - Should use the custom validator compiler for the route # time=2.558ms
269
+
270
+ # Subtest: Should compile the custom validation - nested with schema.headers
271
+ 1..4
272
+ ok 1 - should be equal
273
+ ok 2 - should be equal
274
+ ok 3 - should be equal
275
+ ok 4 - should be equal
276
+ ok 5 - Should compile the custom validation - nested with schema.headers # time=1.96ms
277
+
278
+ ok 1 - \#compileValidationSchema # time=49.167ms
279
+
280
+ # Subtest: \#getValidationFunction
281
+ 1..6
282
+ # Subtest: Should return a validation function
283
+ 1..1
284
+ ok 1 - should be equal
285
+ ok 1 - Should return a validation function # time=10.419ms
286
+
287
+ # Subtest: Should return undefined if no schema compiled
288
+ 1..1
289
+ ok 1 - should be equal
290
+ ok 2 - Should return undefined if no schema compiled # time=1.67ms
291
+
292
+ # Subtest: Should return the validation function from each HTTP part
293
+ 1..15
294
+ ok 1 - should be equal
295
+ ok 2 - should be equal
296
+ ok 3 - should be equal
297
+ ok 4 - should be equal
298
+ ok 5 - should be equal
299
+ ok 6 - should be equal
300
+ ok 7 - should be equal
301
+ ok 8 - should be equal
302
+ ok 9 - should be equal
303
+ ok 10 - should be equal
304
+ ok 11 - should be equal
305
+ ok 12 - should be equal
306
+ ok 13 - should be equal
307
+ ok 14 - should be equal
308
+ ok 15 - should be equal
309
+ ok 3 - Should return the validation function from each HTTP part # time=8.655ms
310
+
311
+ # Subtest: Should return a validation function - nested
312
+ 1..6
313
+ ok 1 - should be equal
314
+ ok 2 - should be equal
315
+ ok 3 - should be equal
316
+ ok 4 - should be equal
317
+ ok 5 - should be equal
318
+ ok 6 - should be equal
319
+ ok 4 - Should return a validation function - nested # time=1.757ms
320
+
321
+ # Subtest: Should return undefined if no schema compiled - nested
322
+ 1..3
323
+ ok 1 - should be equal
324
+ ok 2 - should be equal
325
+ ok 3 - should be equal
326
+ ok 5 - Should return undefined if no schema compiled - nested # time=6.547ms
327
+
328
+ # Subtest: Should per-route defined validation compiler
329
+ 1..5
330
+ ok 1 - should be equal
331
+ ok 2 - should be equal
332
+ ok 3 - should not be equal
333
+ ok 4 - should be equal
334
+ ok 5 - should be equal
335
+ ok 6 - Should per-route defined validation compiler # time=2.26ms
336
+
337
+ ok 2 - \#getValidationFunction # time=33.624ms
338
+
339
+ # Subtest: \#validate
340
+ 1..3
341
+ # Subtest: Should return true/false if input valid - Route without schema
342
+ 1..2
343
+ ok 1 - should be equal
344
+ ok 2 - should be equal
345
+ ok 1 - Should return true/false if input valid - Route without schema # time=10.732ms
346
+
347
+ # Subtest: Should use the custom validator compiler for the route
348
+ 1..10
349
+ ok 1 - should be equal
350
+ ok 2 - should be equal
351
+ ok 3 - should be equal
352
+ ok 4 - should be equal
353
+ ok 5 - should be equivalent
354
+ ok 6 - should be equivalent
355
+ ok 7 - should be equal
356
+ ok 8 - should be equal
357
+ ok 9 - should be equal
358
+ ok 10 - should be equal
359
+ ok 2 - Should use the custom validator compiler for the route # time=2.186ms
360
+
361
+ # Subtest: Should return true/false if input valid - With Schema for Route defined and scoped validator compiler
362
+ 1..13
363
+ ok 1 - should be equal
364
+ ok 2 - should be equal
365
+ ok 3 - should be equal
366
+ ok 4 - should be equal
367
+ ok 5 - should be equal
368
+ ok 6 - should be equal
369
+ ok 7 - should be equal
370
+ ok 8 - should be equal
371
+ ok 9 - should be equal
372
+ ok 10 - should be equal
373
+ ok 11 - should be equal
374
+ ok 12 - should be equal
375
+ ok 13 - should be equal
376
+ ok 3 - Should return true/false if input valid - With Schema for Route defined and scoped validator compiler # time=24.968ms
377
+
378
+ ok 3 - \#validate # time=39.25ms
379
+
380
+ ok 1 - Level_1 # time=123.338ms
381
+
382
+ ok 4 - Nested Context # time=124.264ms
383
+
384
+ 1..4
@@ -0,0 +1,163 @@
1
+ TAP version 14
2
+ # Subtest: Regular request
3
+ ok 1 - type is Request
4
+ ok 2 - type is Function
5
+ ok 3 - type is Function
6
+ ok 4 - type is Function
7
+ ok 5 - should be equal
8
+ ok 6 - should be equal
9
+ ok 7 - should be equal
10
+ ok 8 - should be equal
11
+ ok 9 - should be equal
12
+ ok 10 - should be equal
13
+ ok 11 - should be equal
14
+ ok 12 - should be equal
15
+ ok 13 - should be equal
16
+ ok 14 - should be equal
17
+ ok 15 - should be equal
18
+ ok 16 - should be equal
19
+ ok 17 - should be equal
20
+ ok 18 - should be equal
21
+ ok 19 - should be equal
22
+ ok 20 - should be equal
23
+ ok 21 - should be equal
24
+ ok 22 - should be equal
25
+ ok 23 - should be equal
26
+ ok 24 - should be equal
27
+ ok 25 - should be equal
28
+ 1..25
29
+ ok 1 - Regular request # time=3.417ms
30
+
31
+ # Subtest: Request with undefined config
32
+ ok 1 - type is Request
33
+ ok 2 - type is Function
34
+ ok 3 - type is Function
35
+ ok 4 - type is Function
36
+ ok 5 - should be equal
37
+ ok 6 - should be equal
38
+ ok 7 - should be equal
39
+ ok 8 - should be equal
40
+ ok 9 - should be equal
41
+ ok 10 - should be equal
42
+ ok 11 - should be equal
43
+ ok 12 - should be equal
44
+ ok 13 - should be equal
45
+ ok 14 - should be equal
46
+ ok 15 - should be equal
47
+ ok 16 - should be equal
48
+ ok 17 - should be equal
49
+ ok 18 - should be equal
50
+ ok 19 - should be equal
51
+ ok 20 - should be equal
52
+ ok 21 - should be equal
53
+ ok 22 - should be equal
54
+ ok 23 - should be equal
55
+ ok 24 - should be equal
56
+ ok 25 - should be equal
57
+ 1..25
58
+ ok 2 - Request with undefined config # time=1.418ms
59
+
60
+ # Subtest: Regular request - hostname from authority
61
+ 1..3
62
+ ok 1 - type is Request
63
+ ok 2 - should be equal
64
+ ok 3 - should be equal
65
+ ok 3 - Regular request - hostname from authority # time=2.296ms
66
+
67
+ # Subtest: Regular request - host header has precedence over authority
68
+ 1..3
69
+ ok 1 - type is Request
70
+ ok 2 - should be equal
71
+ ok 3 - should be equal
72
+ ok 4 - Regular request - host header has precedence over authority # time=0.315ms
73
+
74
+ # Subtest: Request with trust proxy
75
+ 1..22
76
+ ok 1 - type is _Request
77
+ ok 2 - should be equal
78
+ ok 3 - should be equal
79
+ ok 4 - should be equivalent
80
+ ok 5 - should be equal
81
+ ok 6 - should be equal
82
+ ok 7 - should be equal
83
+ ok 8 - should be equal
84
+ ok 9 - should be equivalent
85
+ ok 10 - should be equal
86
+ ok 11 - should be equal
87
+ ok 12 - should be equal
88
+ ok 13 - should be equal
89
+ ok 14 - should be equal
90
+ ok 15 - should be equal
91
+ ok 16 - type is Function
92
+ ok 17 - type is Function
93
+ ok 18 - type is Function
94
+ ok 19 - should be equal
95
+ ok 20 - should be equal
96
+ ok 21 - should be equal
97
+ ok 22 - should be equal
98
+ ok 5 - Request with trust proxy # time=1.936ms
99
+
100
+ # Subtest: Request with trust proxy, encrypted
101
+ 1..2
102
+ ok 1 - type is _Request
103
+ ok 2 - should be equal
104
+ ok 6 - Request with trust proxy, encrypted # time=0.55ms
105
+
106
+ # Subtest: Request with trust proxy - no x-forwarded-host header
107
+ 1..2
108
+ ok 1 - type is _Request
109
+ ok 2 - should be equal
110
+ ok 7 - Request with trust proxy - no x-forwarded-host header # time=0.468ms
111
+
112
+ # Subtest: Request with trust proxy - no x-forwarded-host header and fallback to authority
113
+ 1..2
114
+ ok 1 - type is _Request
115
+ ok 2 - should be equal
116
+ ok 8 - Request with trust proxy - no x-forwarded-host header and fallback to authority # time=0.272ms
117
+
118
+ # Subtest: Request with trust proxy - x-forwarded-host header has precedence over host
119
+ 1..2
120
+ ok 1 - type is _Request
121
+ ok 2 - should be equal
122
+ ok 9 - Request with trust proxy - x-forwarded-host header has precedence over host # time=0.263ms
123
+
124
+ # Subtest: Request with trust proxy - handles multiple entries in x-forwarded-host/proto
125
+ 1..3
126
+ ok 1 - type is _Request
127
+ ok 2 - should be equal
128
+ ok 3 - should be equal
129
+ ok 10 - Request with trust proxy - handles multiple entries in x-forwarded-host/proto # time=0.283ms
130
+
131
+ # Subtest: Request with trust proxy - plain
132
+ 1..1
133
+ ok 1 - should be equivalent
134
+ ok 11 - Request with trust proxy - plain # time=0.218ms
135
+
136
+ # Subtest: Request with undefined socket
137
+ 1..18
138
+ ok 1 - type is Request
139
+ ok 2 - should be equal
140
+ ok 3 - should be equal
141
+ ok 4 - should be equivalent
142
+ ok 5 - should be equal
143
+ ok 6 - should be equal
144
+ ok 7 - should be equal
145
+ ok 8 - should be equal
146
+ ok 9 - should be equal
147
+ ok 10 - should be equal
148
+ ok 11 - should be equivalent
149
+ ok 12 - should be equal
150
+ ok 13 - should be equal
151
+ ok 14 - should be equal
152
+ ok 15 - should be equivalent
153
+ ok 16 - type is Function
154
+ ok 17 - type is Function
155
+ ok 18 - type is Function
156
+ ok 12 - Request with undefined socket # time=0.65ms
157
+
158
+ # Subtest: Request with trust proxy and undefined socket
159
+ 1..1
160
+ ok 1 - should be equivalent
161
+ ok 13 - Request with trust proxy and undefined socket # time=0.218ms
162
+
163
+ 1..13
@@ -0,0 +1,30 @@
1
+ TAP version 14
2
+ # Subtest: start listening
3
+ ok 1 - server started
4
+ 1..1
5
+ ok 1 - start listening # time=25.375ms
6
+
7
+ # Subtest: DNS errors does not stop the main server on localhost - promise interface
8
+ ok 1 - server started
9
+ 1..1
10
+ ok 2 - DNS errors does not stop the main server on localhost - promise interface # time=4.235ms
11
+
12
+ # Subtest: DNS errors does not stop the main server on localhost - callback interface
13
+ 1..2
14
+ ok 1 - should not error
15
+ ok 2 - server started
16
+ ok 3 - DNS errors does not stop the main server on localhost - callback interface # time=6.35ms
17
+
18
+ # Subtest: DNS returns empty binding
19
+ 1..2
20
+ ok 1 - should not error
21
+ ok 2 - server started
22
+ ok 4 - DNS returns empty binding # time=5.554ms
23
+
24
+ # Subtest: DNS returns more than two binding
25
+ 1..2
26
+ ok 1 - should not error
27
+ ok 2 - server started
28
+ ok 5 - DNS returns more than two binding # time=4.272ms
29
+
30
+ 1..5