fastify 5.0.0-alpha.2 → 5.0.0-alpha.4

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 (290) hide show
  1. package/README.md +2 -2
  2. package/SPONSORS.md +2 -0
  3. package/build/build-validation.js +3 -15
  4. package/docs/Guides/Ecosystem.md +4 -0
  5. package/docs/Guides/Getting-Started.md +0 -2
  6. package/docs/Guides/Migration-Guide-V4.md +48 -0
  7. package/docs/Guides/Recommendations.md +8 -6
  8. package/docs/Reference/Errors.md +0 -2
  9. package/docs/Reference/Hooks.md +5 -9
  10. package/docs/Reference/Logging.md +1 -1
  11. package/docs/Reference/Reply.md +9 -11
  12. package/docs/Reference/Request.md +0 -11
  13. package/docs/Reference/Routes.md +4 -23
  14. package/docs/Reference/Server.md +30 -40
  15. package/docs/Reference/Type-Providers.md +2 -2
  16. package/docs/Reference/TypeScript.md +16 -18
  17. package/docs/Reference/Validation-and-Serialization.md +62 -27
  18. package/docs/Reference/Warnings.md +0 -26
  19. package/eslint.config.js +9 -25
  20. package/fastify.d.ts +10 -23
  21. package/fastify.js +60 -61
  22. package/lib/configValidator.js +130 -182
  23. package/lib/context.js +1 -22
  24. package/lib/decorate.js +2 -2
  25. package/lib/errors.js +0 -6
  26. package/lib/handleRequest.js +5 -5
  27. package/lib/reply.js +34 -74
  28. package/lib/request.js +0 -45
  29. package/lib/route.js +12 -27
  30. package/lib/schemas.js +27 -22
  31. package/lib/server.js +6 -11
  32. package/lib/symbols.js +1 -1
  33. package/lib/validation.js +27 -6
  34. package/lib/warnings.js +1 -92
  35. package/lib/wrapThenable.js +1 -1
  36. package/package.json +14 -15
  37. package/test/decorator.test.js +1 -1
  38. package/test/diagnostics-channel/404.test.js +1 -1
  39. package/test/diagnostics-channel/async-delay-request.test.js +1 -1
  40. package/test/diagnostics-channel/async-request.test.js +1 -1
  41. package/test/diagnostics-channel/error-before-handler.test.js +1 -1
  42. package/test/diagnostics-channel/error-request.test.js +1 -1
  43. package/test/diagnostics-channel/error-status.test.js +1 -1
  44. package/test/diagnostics-channel/init.test.js +2 -2
  45. package/test/diagnostics-channel/sync-delay-request.test.js +1 -1
  46. package/test/diagnostics-channel/sync-request-reply.test.js +1 -1
  47. package/test/diagnostics-channel/sync-request.test.js +1 -1
  48. package/test/{copy.test.js → http-methods/copy.test.js} +2 -1
  49. package/test/http-methods/custom-http-methods.test.js +111 -0
  50. package/test/{get.test.js → http-methods/get.test.js} +1 -1
  51. package/test/{head.test.js → http-methods/head.test.js} +7 -87
  52. package/test/{lock.test.js → http-methods/lock.test.js} +2 -1
  53. package/test/{mkcalendar.test.js → http-methods/mkcalendar.test.js} +2 -1
  54. package/test/{mkcol.test.js → http-methods/mkcol.test.js} +2 -1
  55. package/test/{move.test.js → http-methods/move.test.js} +2 -1
  56. package/test/{propfind.test.js → http-methods/propfind.test.js} +2 -1
  57. package/test/{proppatch.test.js → http-methods/proppatch.test.js} +2 -1
  58. package/test/{report.test.js → http-methods/report.test.js} +2 -1
  59. package/test/{search.test.js → http-methods/search.test.js} +2 -1
  60. package/test/{trace.test.js → http-methods/trace.test.js} +2 -1
  61. package/test/{unlock.test.js → http-methods/unlock.test.js} +2 -1
  62. package/test/internals/all.test.js +3 -3
  63. package/test/internals/decorator.test.js +2 -2
  64. package/test/internals/errors.test.js +7 -17
  65. package/test/internals/initialConfig.test.js +0 -31
  66. package/test/internals/reply-serialize.test.js +25 -10
  67. package/test/internals/reply.test.js +31 -153
  68. package/test/internals/request-validate.test.js +21 -12
  69. package/test/internals/request.test.js +1 -18
  70. package/test/internals/validation.test.js +49 -56
  71. package/test/listen.1.test.js +66 -14
  72. package/test/listen.5.test.js +11 -0
  73. package/test/reply-trailers.test.js +1 -32
  74. package/test/route-shorthand.test.js +3 -1
  75. package/test/route.3.test.js +4 -1
  76. package/test/route.7.test.js +2 -12
  77. package/test/route.8.test.js +34 -5
  78. package/test/router-options.test.js +6 -3
  79. package/test/schema-examples.test.js +15 -6
  80. package/test/schema-feature.test.js +178 -35
  81. package/test/schema-serialization.test.js +125 -21
  82. package/test/schema-validation.test.js +154 -3
  83. package/test/skip-reply-send.test.js +6 -6
  84. package/test/stream-serializers.test.js +37 -0
  85. package/test/throw.test.js +2 -14
  86. package/test/types/errors.test-d.ts +1 -2
  87. package/test/types/fastify.test-d.ts +23 -34
  88. package/test/types/hooks.test-d.ts +56 -56
  89. package/test/types/instance.test-d.ts +3 -3
  90. package/test/types/reply.test-d.ts +7 -8
  91. package/test/types/request.test-d.ts +2 -12
  92. package/test/types/route.test-d.ts +158 -158
  93. package/test/types/schema.test-d.ts +22 -5
  94. package/test/versioned-routes.test.js +0 -90
  95. package/test/web-api.test.js +75 -0
  96. package/types/errors.d.ts +78 -79
  97. package/types/hooks.d.ts +18 -18
  98. package/types/instance.d.ts +1 -1
  99. package/types/logger.d.ts +7 -7
  100. package/types/reply.d.ts +18 -22
  101. package/types/request.d.ts +8 -14
  102. package/types/route.d.ts +5 -6
  103. package/types/type-provider.d.ts +1 -1
  104. package/.tap/processinfo/09002e93-10ad-430c-bc86-c0576928b0ed.json +0 -241
  105. package/.tap/processinfo/ee66c5ab-635d-48b5-8be6-3dc3ceea5bfc.json +0 -268
  106. package/.tap/test-results/test/404s.test.js.tap +0 -623
  107. package/.tap/test-results/test/500s.test.js.tap +0 -64
  108. package/.tap/test-results/test/allowUnsafeRegex.test.js.tap +0 -36
  109. package/.tap/test-results/test/als.test.js.tap +0 -15
  110. package/.tap/test-results/test/async-await.test.js.tap +0 -184
  111. package/.tap/test-results/test/async-dispose.test.js.tap +0 -8
  112. package/.tap/test-results/test/async_hooks.test.js.tap +0 -10
  113. package/.tap/test-results/test/bodyLimit.test.js.tap +0 -48
  114. package/.tap/test-results/test/buffer.test.js.tap +0 -20
  115. package/.tap/test-results/test/build/error-serializer.test.js.tap +0 -12
  116. package/.tap/test-results/test/build/version.test.js.tap +0 -7
  117. package/.tap/test-results/test/case-insensitive.test.js.tap +0 -36
  118. package/.tap/test-results/test/chainable.test.js.tap +0 -17
  119. package/.tap/test-results/test/check.test.js.tap +0 -10
  120. package/.tap/test-results/test/childLoggerFactory.test.js.tap +0 -23
  121. package/.tap/test-results/test/client-timeout.test.js.tap +0 -7
  122. package/.tap/test-results/test/close-pipelining.test.js.tap +0 -15
  123. package/.tap/test-results/test/close.test.js.tap +0 -172
  124. package/.tap/test-results/test/connectionTimeout.test.js.tap +0 -12
  125. package/.tap/test-results/test/constrained-routes.test.js.tap +0 -173
  126. package/.tap/test-results/test/content-length.test.js.tap +0 -46
  127. package/.tap/test-results/test/content-parser.test.js.tap +0 -266
  128. package/.tap/test-results/test/content-type.test.js.tap +0 -14
  129. package/.tap/test-results/test/context-config.test.js.tap +0 -41
  130. package/.tap/test-results/test/copy.test.js.tap +0 -14
  131. package/.tap/test-results/test/custom-http-server.test.js.tap +0 -30
  132. package/.tap/test-results/test/custom-parser-async.test.js.tap +0 -21
  133. package/.tap/test-results/test/custom-parser.0.test.js.tap +0 -199
  134. package/.tap/test-results/test/custom-parser.1.test.js.tap +0 -90
  135. package/.tap/test-results/test/custom-parser.2.test.js.tap +0 -22
  136. package/.tap/test-results/test/custom-parser.3.test.js.tap +0 -53
  137. package/.tap/test-results/test/custom-parser.4.test.js.tap +0 -45
  138. package/.tap/test-results/test/custom-parser.5.test.js.tap +0 -41
  139. package/.tap/test-results/test/custom-querystring-parser.test.js.tap +0 -46
  140. package/.tap/test-results/test/decorator.test.js.tap +0 -465
  141. package/.tap/test-results/test/delete.test.js.tap +0 -110
  142. package/.tap/test-results/test/diagnostics-channel/404.test.js.tap +0 -15
  143. package/.tap/test-results/test/diagnostics-channel/async-delay-request.test.js.tap +0 -25
  144. package/.tap/test-results/test/diagnostics-channel/async-request.test.js.tap +0 -24
  145. package/.tap/test-results/test/diagnostics-channel/error-before-handler.test.js.tap +0 -9
  146. package/.tap/test-results/test/diagnostics-channel/error-request.test.js.tap +0 -20
  147. package/.tap/test-results/test/diagnostics-channel/error-status.test.js.tap +0 -10
  148. package/.tap/test-results/test/diagnostics-channel/init.test.js.tap +0 -14
  149. package/.tap/test-results/test/diagnostics-channel/sync-delay-request.test.js.tap +0 -16
  150. package/.tap/test-results/test/diagnostics-channel/sync-request-reply.test.js.tap +0 -16
  151. package/.tap/test-results/test/diagnostics-channel/sync-request.test.js.tap +0 -19
  152. package/.tap/test-results/test/encapsulated-child-logger-factory.test.js.tap +0 -18
  153. package/.tap/test-results/test/encapsulated-error-handler.test.js.tap +0 -243
  154. package/.tap/test-results/test/esm/errorCodes.test.mjs.tap +0 -9
  155. package/.tap/test-results/test/esm/esm.test.mjs.tap +0 -8
  156. package/.tap/test-results/test/esm/index.test.js.tap +0 -8
  157. package/.tap/test-results/test/fastify-instance.test.js.tap +0 -114
  158. package/.tap/test-results/test/findRoute.test.js.tap +0 -37
  159. package/.tap/test-results/test/fluent-schema.test.js.tap +0 -36
  160. package/.tap/test-results/test/genReqId.test.js.tap +0 -106
  161. package/.tap/test-results/test/get.test.js.tap +0 -151
  162. package/.tap/test-results/test/handler-context.test.js.tap +0 -19
  163. package/.tap/test-results/test/has-route.test.js.tap +0 -30
  164. package/.tap/test-results/test/head.test.js.tap +0 -130
  165. package/.tap/test-results/test/header-overflow.test.js.tap +0 -16
  166. package/.tap/test-results/test/hooks-async.test.js.tap +0 -286
  167. package/.tap/test-results/test/hooks.on-listen.test.js.tap +0 -311
  168. package/.tap/test-results/test/hooks.on-ready.test.js.tap +0 -151
  169. package/.tap/test-results/test/hooks.test.js.tap +0 -966
  170. package/.tap/test-results/test/http2/closing.test.js.tap +0 -35
  171. package/.tap/test-results/test/http2/constraint.test.js.tap +0 -32
  172. package/.tap/test-results/test/http2/head.test.js.tap +0 -9
  173. package/.tap/test-results/test/http2/missing-http2-module.test.js.tap +0 -8
  174. package/.tap/test-results/test/http2/plain.test.js.tap +0 -22
  175. package/.tap/test-results/test/http2/secure-with-fallback.test.js.tap +0 -40
  176. package/.tap/test-results/test/http2/secure.test.js.tap +0 -27
  177. package/.tap/test-results/test/http2/unknown-http-method.test.js.tap +0 -9
  178. package/.tap/test-results/test/https/custom-https-server.test.js.tap +0 -10
  179. package/.tap/test-results/test/https/https.test.js.tap +0 -45
  180. package/.tap/test-results/test/imports.test.js.tap +0 -14
  181. package/.tap/test-results/test/inject.test.js.tap +0 -165
  182. package/.tap/test-results/test/internals/all.test.js.tap +0 -42
  183. package/.tap/test-results/test/internals/contentTypeParser.test.js.tap +0 -14
  184. package/.tap/test-results/test/internals/context.test.js.tap +0 -14
  185. package/.tap/test-results/test/internals/decorator.test.js.tap +0 -51
  186. package/.tap/test-results/test/internals/errors.test.js.tap +0 -1212
  187. package/.tap/test-results/test/internals/handleRequest.test.js.tap +0 -69
  188. package/.tap/test-results/test/internals/hookRunner.test.js.tap +0 -143
  189. package/.tap/test-results/test/internals/hooks.test.js.tap +0 -45
  190. package/.tap/test-results/test/internals/initialConfig.test.js.tap +0 -125
  191. package/.tap/test-results/test/internals/logger.test.js.tap +0 -71
  192. package/.tap/test-results/test/internals/plugin.test.js.tap +0 -48
  193. package/.tap/test-results/test/internals/reply-serialize.test.js.tap +0 -166
  194. package/.tap/test-results/test/internals/reply.test.js.tap +0 -688
  195. package/.tap/test-results/test/internals/reqIdGenFactory.test.js.tap +0 -74
  196. package/.tap/test-results/test/internals/request-validate.test.js.tap +0 -384
  197. package/.tap/test-results/test/internals/request.test.js.tap +0 -163
  198. package/.tap/test-results/test/internals/server.test.js.tap +0 -30
  199. package/.tap/test-results/test/internals/validation.test.js.tap +0 -121
  200. package/.tap/test-results/test/keepAliveTimeout.test.js.tap +0 -12
  201. package/.tap/test-results/test/listen.1.test.js.tap +0 -31
  202. package/.tap/test-results/test/listen.2.test.js.tap +0 -46
  203. package/.tap/test-results/test/listen.3.test.js.tap +0 -25
  204. package/.tap/test-results/test/listen.4.test.js.tap +0 -51
  205. package/.tap/test-results/test/lock.test.js.tap +0 -29
  206. package/.tap/test-results/test/logger/instantiation.test.js.tap +0 -92
  207. package/.tap/test-results/test/logger/logging.test.js.tap +0 -117
  208. package/.tap/test-results/test/logger/options.test.js.tap +0 -165
  209. package/.tap/test-results/test/logger/request.test.js.tap +0 -82
  210. package/.tap/test-results/test/logger/response.test.js.tap +0 -38
  211. package/.tap/test-results/test/maxRequestsPerSocket.test.js.tap +0 -44
  212. package/.tap/test-results/test/method-missing.test.js.tap +0 -8
  213. package/.tap/test-results/test/middleware.test.js.tap +0 -17
  214. package/.tap/test-results/test/mkcalendar.test.js.tap +0 -43
  215. package/.tap/test-results/test/mkcol.test.js.tap +0 -14
  216. package/.tap/test-results/test/move.test.js.tap +0 -15
  217. package/.tap/test-results/test/noop-set.test.js.tap +0 -8
  218. package/.tap/test-results/test/nullable-validation.test.js.tap +0 -36
  219. package/.tap/test-results/test/options.error-handler.test.js.tap +0 -186
  220. package/.tap/test-results/test/options.test.js.tap +0 -174
  221. package/.tap/test-results/test/output-validation.test.js.tap +0 -66
  222. package/.tap/test-results/test/patch.error-handler.test.js.tap +0 -206
  223. package/.tap/test-results/test/patch.test.js.tap +0 -182
  224. package/.tap/test-results/test/plugin.1.test.js.tap +0 -78
  225. package/.tap/test-results/test/plugin.2.test.js.tap +0 -102
  226. package/.tap/test-results/test/plugin.3.test.js.tap +0 -58
  227. package/.tap/test-results/test/plugin.4.test.js.tap +0 -164
  228. package/.tap/test-results/test/post-empty-body.test.js.tap +0 -8
  229. package/.tap/test-results/test/pretty-print.test.js.tap +0 -82
  230. package/.tap/test-results/test/promises.test.js.tap +0 -46
  231. package/.tap/test-results/test/propfind.test.js.tap +0 -43
  232. package/.tap/test-results/test/proppatch.test.js.tap +0 -29
  233. package/.tap/test-results/test/proto-poisoning.test.js.tap +0 -47
  234. package/.tap/test-results/test/put.error-handler.test.js.tap +0 -206
  235. package/.tap/test-results/test/put.test.js.tap +0 -182
  236. package/.tap/test-results/test/register.test.js.tap +0 -61
  237. package/.tap/test-results/test/reply-code.test.js.tap +0 -40
  238. package/.tap/test-results/test/reply-earlyHints.test.js.tap +0 -22
  239. package/.tap/test-results/test/reply-error.test.js.tap +0 -643
  240. package/.tap/test-results/test/reply-trailers.test.js.tap +0 -176
  241. package/.tap/test-results/test/report.test.js.tap +0 -43
  242. package/.tap/test-results/test/request-error.test.js.tap +0 -98
  243. package/.tap/test-results/test/request-id.test.js.tap +0 -38
  244. package/.tap/test-results/test/request.deprecated.test.js.tap +0 -13
  245. package/.tap/test-results/test/requestTimeout.test.js.tap +0 -21
  246. package/.tap/test-results/test/route-hooks.test.js.tap +0 -498
  247. package/.tap/test-results/test/route-prefix.test.js.tap +0 -195
  248. package/.tap/test-results/test/route-shorthand.test.js.tap +0 -190
  249. package/.tap/test-results/test/route.1.test.js.tap +0 -93
  250. package/.tap/test-results/test/route.2.test.js.tap +0 -28
  251. package/.tap/test-results/test/route.3.test.js.tap +0 -39
  252. package/.tap/test-results/test/route.4.test.js.tap +0 -32
  253. package/.tap/test-results/test/route.5.test.js.tap +0 -54
  254. package/.tap/test-results/test/route.6.test.js.tap +0 -81
  255. package/.tap/test-results/test/route.7.test.js.tap +0 -93
  256. package/.tap/test-results/test/route.8.test.js.tap +0 -38
  257. package/.tap/test-results/test/router-options.test.js.tap +0 -104
  258. package/.tap/test-results/test/same-shape.test.js.tap +0 -22
  259. package/.tap/test-results/test/schema-examples.test.js.tap +0 -85
  260. package/.tap/test-results/test/schema-feature.test.js.tap +0 -445
  261. package/.tap/test-results/test/schema-serialization.test.js.tap +0 -194
  262. package/.tap/test-results/test/schema-special-usage.test.js.tap +0 -186
  263. package/.tap/test-results/test/schema-validation.test.js.tap +0 -199
  264. package/.tap/test-results/test/search.test.js.tap +0 -77
  265. package/.tap/test-results/test/serialize-response.test.js.tap +0 -26
  266. package/.tap/test-results/test/server.test.js.tap +0 -65
  267. package/.tap/test-results/test/set-error-handler.test.js.tap +0 -7
  268. package/.tap/test-results/test/skip-reply-send.test.js.tap +0 -272
  269. package/.tap/test-results/test/stream.1.test.js.tap +0 -36
  270. package/.tap/test-results/test/stream.2.test.js.tap +0 -20
  271. package/.tap/test-results/test/stream.3.test.js.tap +0 -34
  272. package/.tap/test-results/test/stream.4.test.js.tap +0 -40
  273. package/.tap/test-results/test/stream.5.test.js.tap +0 -37
  274. package/.tap/test-results/test/sync-routes.test.js.tap +0 -19
  275. package/.tap/test-results/test/throw.test.js.tap +0 -116
  276. package/.tap/test-results/test/trace.test.js.tap +0 -7
  277. package/.tap/test-results/test/trust-proxy.test.js.tap +0 -109
  278. package/.tap/test-results/test/type-provider.test.js.tap +0 -12
  279. package/.tap/test-results/test/unlock.test.js.tap +0 -14
  280. package/.tap/test-results/test/upgrade.test.js.tap +0 -8
  281. package/.tap/test-results/test/url-rewriting.test.js.tap +0 -39
  282. package/.tap/test-results/test/useSemicolonDelimiter.test.js.tap +0 -33
  283. package/.tap/test-results/test/validation-error-handling.test.js.tap +0 -180
  284. package/.tap/test-results/test/versioned-routes.test.js.tap +0 -151
  285. package/.tap/test-results/test/web-api.test.js.tap +0 -51
  286. package/.tap/test-results/test/wrapThenable.test.js.tap +0 -11
  287. package/EXPENSE_POLICY.md +0 -105
  288. package/lib/httpMethods.js +0 -40
  289. package/test/method-missing.test.js +0 -24
  290. package/test/request.deprecated.test.js +0 -38
@@ -3,7 +3,7 @@
3
3
  "use strict";
4
4
  module.exports = validate10;
5
5
  module.exports.default = validate10;
6
- const schema11 = {"type":"object","additionalProperties":false,"properties":{"connectionTimeout":{"type":"integer","default":0},"keepAliveTimeout":{"type":"integer","default":72000},"forceCloseConnections":{"oneOf":[{"type":"string","pattern":"idle"},{"type":"boolean"}]},"maxRequestsPerSocket":{"type":"integer","default":0,"nullable":true},"requestTimeout":{"type":"integer","default":0},"bodyLimit":{"type":"integer","default":1048576},"caseSensitive":{"type":"boolean","default":true},"allowUnsafeRegex":{"type":"boolean","default":false},"http2":{"type":"boolean"},"https":{"if":{"not":{"oneOf":[{"type":"boolean"},{"type":"null"},{"type":"object","additionalProperties":false,"required":["allowHTTP1"],"properties":{"allowHTTP1":{"type":"boolean"}}}]}},"then":{"setDefaultValue":true}},"ignoreTrailingSlash":{"type":"boolean","default":false},"ignoreDuplicateSlashes":{"type":"boolean","default":false},"disableRequestLogging":{"type":"boolean","default":false},"jsonShorthand":{"type":"boolean","default":true},"maxParamLength":{"type":"integer","default":100},"onProtoPoisoning":{"type":"string","default":"error"},"onConstructorPoisoning":{"type":"string","default":"error"},"pluginTimeout":{"type":"integer","default":10000},"requestIdHeader":{"anyOf":[{"type":"boolean"},{"type":"string"}],"default":false},"requestIdLogLabel":{"type":"string","default":"reqId"},"http2SessionTimeout":{"type":"integer","default":72000},"exposeHeadRoutes":{"type":"boolean","default":true},"useSemicolonDelimiter":{"type":"boolean","default":false},"versioning":{"type":"object","additionalProperties":true,"required":["storage","deriveVersion"],"properties":{"storage":{},"deriveVersion":{}}},"constraints":{"type":"object","additionalProperties":{"type":"object","required":["name","storage","validate","deriveConstraint"],"additionalProperties":true,"properties":{"name":{"type":"string"},"storage":{},"validate":{},"deriveConstraint":{}}}}}};
6
+ const schema11 = {"type":"object","additionalProperties":false,"properties":{"connectionTimeout":{"type":"integer","default":0},"keepAliveTimeout":{"type":"integer","default":72000},"forceCloseConnections":{"oneOf":[{"type":"string","pattern":"idle"},{"type":"boolean"}]},"maxRequestsPerSocket":{"type":"integer","default":0,"nullable":true},"requestTimeout":{"type":"integer","default":0},"bodyLimit":{"type":"integer","default":1048576},"caseSensitive":{"type":"boolean","default":true},"allowUnsafeRegex":{"type":"boolean","default":false},"http2":{"type":"boolean"},"https":{"if":{"not":{"oneOf":[{"type":"boolean"},{"type":"null"},{"type":"object","additionalProperties":false,"required":["allowHTTP1"],"properties":{"allowHTTP1":{"type":"boolean"}}}]}},"then":{"setDefaultValue":true}},"ignoreTrailingSlash":{"type":"boolean","default":false},"ignoreDuplicateSlashes":{"type":"boolean","default":false},"disableRequestLogging":{"type":"boolean","default":false},"maxParamLength":{"type":"integer","default":100},"onProtoPoisoning":{"type":"string","default":"error"},"onConstructorPoisoning":{"type":"string","default":"error"},"pluginTimeout":{"type":"integer","default":10000},"requestIdHeader":{"anyOf":[{"type":"boolean"},{"type":"string"}],"default":false},"requestIdLogLabel":{"type":"string","default":"reqId"},"http2SessionTimeout":{"type":"integer","default":72000},"exposeHeadRoutes":{"type":"boolean","default":true},"useSemicolonDelimiter":{"type":"boolean","default":false},"constraints":{"type":"object","additionalProperties":{"type":"object","required":["name","storage","validate","deriveConstraint"],"additionalProperties":true,"properties":{"name":{"type":"string"},"storage":{},"validate":{},"deriveConstraint":{}}}}}};
7
7
  const func2 = Object.prototype.hasOwnProperty;
8
8
  const pattern0 = new RegExp("idle", "u");
9
9
 
@@ -42,9 +42,6 @@ data.ignoreDuplicateSlashes = false;
42
42
  if(data.disableRequestLogging === undefined){
43
43
  data.disableRequestLogging = false;
44
44
  }
45
- if(data.jsonShorthand === undefined){
46
- data.jsonShorthand = true;
47
- }
48
45
  if(data.maxParamLength === undefined){
49
46
  data.maxParamLength = 100;
50
47
  }
@@ -713,56 +710,57 @@ data["disableRequestLogging"] = coerced15;
713
710
  }
714
711
  var valid0 = _errs45 === errors;
715
712
  if(valid0){
716
- let data14 = data.jsonShorthand;
713
+ let data14 = data.maxParamLength;
717
714
  const _errs47 = errors;
718
- if(typeof data14 !== "boolean"){
715
+ if(!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){
716
+ let dataType16 = typeof data14;
719
717
  let coerced16 = undefined;
720
718
  if(!(coerced16 !== undefined)){
721
- if(data14 === "false" || data14 === 0 || data14 === null){
722
- coerced16 = false;
723
- }
724
- else if(data14 === "true" || data14 === 1){
725
- coerced16 = true;
719
+ if(dataType16 === "boolean" || data14 === null
720
+ || (dataType16 === "string" && data14 && data14 == +data14 && !(data14 % 1))){
721
+ coerced16 = +data14;
726
722
  }
727
723
  else {
728
- validate10.errors = [{instancePath:instancePath+"/jsonShorthand",schemaPath:"#/properties/jsonShorthand/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];
724
+ validate10.errors = [{instancePath:instancePath+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];
729
725
  return false;
730
726
  }
731
727
  }
732
728
  if(coerced16 !== undefined){
733
729
  data14 = coerced16;
734
730
  if(data !== undefined){
735
- data["jsonShorthand"] = coerced16;
731
+ data["maxParamLength"] = coerced16;
736
732
  }
737
733
  }
738
734
  }
739
735
  var valid0 = _errs47 === errors;
740
736
  if(valid0){
741
- let data15 = data.maxParamLength;
737
+ let data15 = data.onProtoPoisoning;
742
738
  const _errs49 = errors;
743
- if(!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))){
739
+ if(typeof data15 !== "string"){
744
740
  let dataType17 = typeof data15;
745
741
  let coerced17 = undefined;
746
742
  if(!(coerced17 !== undefined)){
747
- if(dataType17 === "boolean" || data15 === null
748
- || (dataType17 === "string" && data15 && data15 == +data15 && !(data15 % 1))){
749
- coerced17 = +data15;
743
+ if(dataType17 == "number" || dataType17 == "boolean"){
744
+ coerced17 = "" + data15;
745
+ }
746
+ else if(data15 === null){
747
+ coerced17 = "";
750
748
  }
751
749
  else {
752
- validate10.errors = [{instancePath:instancePath+"/maxParamLength",schemaPath:"#/properties/maxParamLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];
750
+ validate10.errors = [{instancePath:instancePath+"/onProtoPoisoning",schemaPath:"#/properties/onProtoPoisoning/type",keyword:"type",params:{type: "string"},message:"must be string"}];
753
751
  return false;
754
752
  }
755
753
  }
756
754
  if(coerced17 !== undefined){
757
755
  data15 = coerced17;
758
756
  if(data !== undefined){
759
- data["maxParamLength"] = coerced17;
757
+ data["onProtoPoisoning"] = coerced17;
760
758
  }
761
759
  }
762
760
  }
763
761
  var valid0 = _errs49 === errors;
764
762
  if(valid0){
765
- let data16 = data.onProtoPoisoning;
763
+ let data16 = data.onConstructorPoisoning;
766
764
  const _errs51 = errors;
767
765
  if(typeof data16 !== "string"){
768
766
  let dataType18 = typeof data16;
@@ -775,82 +773,56 @@ else if(data16 === null){
775
773
  coerced18 = "";
776
774
  }
777
775
  else {
778
- validate10.errors = [{instancePath:instancePath+"/onProtoPoisoning",schemaPath:"#/properties/onProtoPoisoning/type",keyword:"type",params:{type: "string"},message:"must be string"}];
776
+ validate10.errors = [{instancePath:instancePath+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type: "string"},message:"must be string"}];
779
777
  return false;
780
778
  }
781
779
  }
782
780
  if(coerced18 !== undefined){
783
781
  data16 = coerced18;
784
782
  if(data !== undefined){
785
- data["onProtoPoisoning"] = coerced18;
783
+ data["onConstructorPoisoning"] = coerced18;
786
784
  }
787
785
  }
788
786
  }
789
787
  var valid0 = _errs51 === errors;
790
788
  if(valid0){
791
- let data17 = data.onConstructorPoisoning;
789
+ let data17 = data.pluginTimeout;
792
790
  const _errs53 = errors;
793
- if(typeof data17 !== "string"){
791
+ if(!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))){
794
792
  let dataType19 = typeof data17;
795
793
  let coerced19 = undefined;
796
794
  if(!(coerced19 !== undefined)){
797
- if(dataType19 == "number" || dataType19 == "boolean"){
798
- coerced19 = "" + data17;
799
- }
800
- else if(data17 === null){
801
- coerced19 = "";
795
+ if(dataType19 === "boolean" || data17 === null
796
+ || (dataType19 === "string" && data17 && data17 == +data17 && !(data17 % 1))){
797
+ coerced19 = +data17;
802
798
  }
803
799
  else {
804
- validate10.errors = [{instancePath:instancePath+"/onConstructorPoisoning",schemaPath:"#/properties/onConstructorPoisoning/type",keyword:"type",params:{type: "string"},message:"must be string"}];
800
+ validate10.errors = [{instancePath:instancePath+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];
805
801
  return false;
806
802
  }
807
803
  }
808
804
  if(coerced19 !== undefined){
809
805
  data17 = coerced19;
810
806
  if(data !== undefined){
811
- data["onConstructorPoisoning"] = coerced19;
807
+ data["pluginTimeout"] = coerced19;
812
808
  }
813
809
  }
814
810
  }
815
811
  var valid0 = _errs53 === errors;
816
812
  if(valid0){
817
- let data18 = data.pluginTimeout;
813
+ let data18 = data.requestIdHeader;
818
814
  const _errs55 = errors;
819
- if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){
820
- let dataType20 = typeof data18;
815
+ const _errs56 = errors;
816
+ let valid6 = false;
817
+ const _errs57 = errors;
818
+ if(typeof data18 !== "boolean"){
821
819
  let coerced20 = undefined;
822
820
  if(!(coerced20 !== undefined)){
823
- if(dataType20 === "boolean" || data18 === null
824
- || (dataType20 === "string" && data18 && data18 == +data18 && !(data18 % 1))){
825
- coerced20 = +data18;
821
+ if(data18 === "false" || data18 === 0 || data18 === null){
822
+ coerced20 = false;
826
823
  }
827
- else {
828
- validate10.errors = [{instancePath:instancePath+"/pluginTimeout",schemaPath:"#/properties/pluginTimeout/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];
829
- return false;
830
- }
831
- }
832
- if(coerced20 !== undefined){
833
- data18 = coerced20;
834
- if(data !== undefined){
835
- data["pluginTimeout"] = coerced20;
836
- }
837
- }
838
- }
839
- var valid0 = _errs55 === errors;
840
- if(valid0){
841
- let data19 = data.requestIdHeader;
842
- const _errs57 = errors;
843
- const _errs58 = errors;
844
- let valid6 = false;
845
- const _errs59 = errors;
846
- if(typeof data19 !== "boolean"){
847
- let coerced21 = undefined;
848
- if(!(coerced21 !== undefined)){
849
- if(data19 === "false" || data19 === 0 || data19 === null){
850
- coerced21 = false;
851
- }
852
- else if(data19 === "true" || data19 === 1){
853
- coerced21 = true;
824
+ else if(data18 === "true" || data18 === 1){
825
+ coerced20 = true;
854
826
  }
855
827
  else {
856
828
  const err12 = {instancePath:instancePath+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};
@@ -863,26 +835,26 @@ vErrors.push(err12);
863
835
  errors++;
864
836
  }
865
837
  }
866
- if(coerced21 !== undefined){
867
- data19 = coerced21;
838
+ if(coerced20 !== undefined){
839
+ data18 = coerced20;
868
840
  if(data !== undefined){
869
- data["requestIdHeader"] = coerced21;
841
+ data["requestIdHeader"] = coerced20;
870
842
  }
871
843
  }
872
844
  }
873
- var _valid3 = _errs59 === errors;
845
+ var _valid3 = _errs57 === errors;
874
846
  valid6 = valid6 || _valid3;
875
847
  if(!valid6){
876
- const _errs61 = errors;
877
- if(typeof data19 !== "string"){
878
- let dataType22 = typeof data19;
879
- let coerced22 = undefined;
880
- if(!(coerced22 !== undefined)){
881
- if(dataType22 == "number" || dataType22 == "boolean"){
882
- coerced22 = "" + data19;
848
+ const _errs59 = errors;
849
+ if(typeof data18 !== "string"){
850
+ let dataType21 = typeof data18;
851
+ let coerced21 = undefined;
852
+ if(!(coerced21 !== undefined)){
853
+ if(dataType21 == "number" || dataType21 == "boolean"){
854
+ coerced21 = "" + data18;
883
855
  }
884
- else if(data19 === null){
885
- coerced22 = "";
856
+ else if(data18 === null){
857
+ coerced21 = "";
886
858
  }
887
859
  else {
888
860
  const err13 = {instancePath:instancePath+"/requestIdHeader",schemaPath:"#/properties/requestIdHeader/anyOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};
@@ -895,14 +867,14 @@ vErrors.push(err13);
895
867
  errors++;
896
868
  }
897
869
  }
898
- if(coerced22 !== undefined){
899
- data19 = coerced22;
870
+ if(coerced21 !== undefined){
871
+ data18 = coerced21;
900
872
  if(data !== undefined){
901
- data["requestIdHeader"] = coerced22;
873
+ data["requestIdHeader"] = coerced21;
902
874
  }
903
875
  }
904
876
  }
905
- var _valid3 = _errs61 === errors;
877
+ var _valid3 = _errs59 === errors;
906
878
  valid6 = valid6 || _valid3;
907
879
  }
908
880
  if(!valid6){
@@ -918,69 +890,94 @@ validate10.errors = vErrors;
918
890
  return false;
919
891
  }
920
892
  else {
921
- errors = _errs58;
893
+ errors = _errs56;
922
894
  if(vErrors !== null){
923
- if(_errs58){
924
- vErrors.length = _errs58;
895
+ if(_errs56){
896
+ vErrors.length = _errs56;
925
897
  }
926
898
  else {
927
899
  vErrors = null;
928
900
  }
929
901
  }
930
902
  }
931
- var valid0 = _errs57 === errors;
903
+ var valid0 = _errs55 === errors;
904
+ if(valid0){
905
+ let data19 = data.requestIdLogLabel;
906
+ const _errs61 = errors;
907
+ if(typeof data19 !== "string"){
908
+ let dataType22 = typeof data19;
909
+ let coerced22 = undefined;
910
+ if(!(coerced22 !== undefined)){
911
+ if(dataType22 == "number" || dataType22 == "boolean"){
912
+ coerced22 = "" + data19;
913
+ }
914
+ else if(data19 === null){
915
+ coerced22 = "";
916
+ }
917
+ else {
918
+ validate10.errors = [{instancePath:instancePath+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];
919
+ return false;
920
+ }
921
+ }
922
+ if(coerced22 !== undefined){
923
+ data19 = coerced22;
924
+ if(data !== undefined){
925
+ data["requestIdLogLabel"] = coerced22;
926
+ }
927
+ }
928
+ }
929
+ var valid0 = _errs61 === errors;
932
930
  if(valid0){
933
- let data20 = data.requestIdLogLabel;
931
+ let data20 = data.http2SessionTimeout;
934
932
  const _errs63 = errors;
935
- if(typeof data20 !== "string"){
933
+ if(!(((typeof data20 == "number") && (!(data20 % 1) && !isNaN(data20))) && (isFinite(data20)))){
936
934
  let dataType23 = typeof data20;
937
935
  let coerced23 = undefined;
938
936
  if(!(coerced23 !== undefined)){
939
- if(dataType23 == "number" || dataType23 == "boolean"){
940
- coerced23 = "" + data20;
941
- }
942
- else if(data20 === null){
943
- coerced23 = "";
937
+ if(dataType23 === "boolean" || data20 === null
938
+ || (dataType23 === "string" && data20 && data20 == +data20 && !(data20 % 1))){
939
+ coerced23 = +data20;
944
940
  }
945
941
  else {
946
- validate10.errors = [{instancePath:instancePath+"/requestIdLogLabel",schemaPath:"#/properties/requestIdLogLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];
942
+ validate10.errors = [{instancePath:instancePath+"/http2SessionTimeout",schemaPath:"#/properties/http2SessionTimeout/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];
947
943
  return false;
948
944
  }
949
945
  }
950
946
  if(coerced23 !== undefined){
951
947
  data20 = coerced23;
952
948
  if(data !== undefined){
953
- data["requestIdLogLabel"] = coerced23;
949
+ data["http2SessionTimeout"] = coerced23;
954
950
  }
955
951
  }
956
952
  }
957
953
  var valid0 = _errs63 === errors;
958
954
  if(valid0){
959
- let data21 = data.http2SessionTimeout;
955
+ let data21 = data.exposeHeadRoutes;
960
956
  const _errs65 = errors;
961
- if(!(((typeof data21 == "number") && (!(data21 % 1) && !isNaN(data21))) && (isFinite(data21)))){
962
- let dataType24 = typeof data21;
957
+ if(typeof data21 !== "boolean"){
963
958
  let coerced24 = undefined;
964
959
  if(!(coerced24 !== undefined)){
965
- if(dataType24 === "boolean" || data21 === null
966
- || (dataType24 === "string" && data21 && data21 == +data21 && !(data21 % 1))){
967
- coerced24 = +data21;
960
+ if(data21 === "false" || data21 === 0 || data21 === null){
961
+ coerced24 = false;
962
+ }
963
+ else if(data21 === "true" || data21 === 1){
964
+ coerced24 = true;
968
965
  }
969
966
  else {
970
- validate10.errors = [{instancePath:instancePath+"/http2SessionTimeout",schemaPath:"#/properties/http2SessionTimeout/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];
967
+ validate10.errors = [{instancePath:instancePath+"/exposeHeadRoutes",schemaPath:"#/properties/exposeHeadRoutes/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];
971
968
  return false;
972
969
  }
973
970
  }
974
971
  if(coerced24 !== undefined){
975
972
  data21 = coerced24;
976
973
  if(data !== undefined){
977
- data["http2SessionTimeout"] = coerced24;
974
+ data["exposeHeadRoutes"] = coerced24;
978
975
  }
979
976
  }
980
977
  }
981
978
  var valid0 = _errs65 === errors;
982
979
  if(valid0){
983
- let data22 = data.exposeHeadRoutes;
980
+ let data22 = data.useSemicolonDelimiter;
984
981
  const _errs67 = errors;
985
982
  if(typeof data22 !== "boolean"){
986
983
  let coerced25 = undefined;
@@ -992,103 +989,56 @@ else if(data22 === "true" || data22 === 1){
992
989
  coerced25 = true;
993
990
  }
994
991
  else {
995
- validate10.errors = [{instancePath:instancePath+"/exposeHeadRoutes",schemaPath:"#/properties/exposeHeadRoutes/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];
992
+ validate10.errors = [{instancePath:instancePath+"/useSemicolonDelimiter",schemaPath:"#/properties/useSemicolonDelimiter/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];
996
993
  return false;
997
994
  }
998
995
  }
999
996
  if(coerced25 !== undefined){
1000
997
  data22 = coerced25;
1001
998
  if(data !== undefined){
1002
- data["exposeHeadRoutes"] = coerced25;
999
+ data["useSemicolonDelimiter"] = coerced25;
1003
1000
  }
1004
1001
  }
1005
1002
  }
1006
1003
  var valid0 = _errs67 === errors;
1007
1004
  if(valid0){
1008
- let data23 = data.useSemicolonDelimiter;
1005
+ if(data.constraints !== undefined){
1006
+ let data23 = data.constraints;
1009
1007
  const _errs69 = errors;
1010
- if(typeof data23 !== "boolean"){
1011
- let coerced26 = undefined;
1012
- if(!(coerced26 !== undefined)){
1013
- if(data23 === "false" || data23 === 0 || data23 === null){
1014
- coerced26 = false;
1015
- }
1016
- else if(data23 === "true" || data23 === 1){
1017
- coerced26 = true;
1018
- }
1019
- else {
1020
- validate10.errors = [{instancePath:instancePath+"/useSemicolonDelimiter",schemaPath:"#/properties/useSemicolonDelimiter/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];
1021
- return false;
1022
- }
1023
- }
1024
- if(coerced26 !== undefined){
1025
- data23 = coerced26;
1026
- if(data !== undefined){
1027
- data["useSemicolonDelimiter"] = coerced26;
1028
- }
1029
- }
1030
- }
1031
- var valid0 = _errs69 === errors;
1032
- if(valid0){
1033
- if(data.versioning !== undefined){
1034
- let data24 = data.versioning;
1035
- const _errs71 = errors;
1036
- if(errors === _errs71){
1008
+ if(errors === _errs69){
1009
+ if(data23 && typeof data23 == "object" && !Array.isArray(data23)){
1010
+ for(const key2 in data23){
1011
+ let data24 = data23[key2];
1012
+ const _errs72 = errors;
1013
+ if(errors === _errs72){
1037
1014
  if(data24 && typeof data24 == "object" && !Array.isArray(data24)){
1038
1015
  let missing1;
1039
- if(((data24.storage === undefined) && (missing1 = "storage")) || ((data24.deriveVersion === undefined) && (missing1 = "deriveVersion"))){
1040
- validate10.errors = [{instancePath:instancePath+"/versioning",schemaPath:"#/properties/versioning/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];
1041
- return false;
1042
- }
1043
- }
1044
- else {
1045
- validate10.errors = [{instancePath:instancePath+"/versioning",schemaPath:"#/properties/versioning/type",keyword:"type",params:{type: "object"},message:"must be object"}];
1016
+ if(((((data24.name === undefined) && (missing1 = "name")) || ((data24.storage === undefined) && (missing1 = "storage"))) || ((data24.validate === undefined) && (missing1 = "validate"))) || ((data24.deriveConstraint === undefined) && (missing1 = "deriveConstraint"))){
1017
+ validate10.errors = [{instancePath:instancePath+"/constraints/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/constraints/additionalProperties/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];
1046
1018
  return false;
1047
1019
  }
1048
- }
1049
- var valid0 = _errs71 === errors;
1050
- }
1051
1020
  else {
1052
- var valid0 = true;
1053
- }
1054
- if(valid0){
1055
- if(data.constraints !== undefined){
1056
- let data25 = data.constraints;
1057
- const _errs74 = errors;
1058
- if(errors === _errs74){
1059
- if(data25 && typeof data25 == "object" && !Array.isArray(data25)){
1060
- for(const key2 in data25){
1061
- let data26 = data25[key2];
1062
- const _errs77 = errors;
1063
- if(errors === _errs77){
1064
- if(data26 && typeof data26 == "object" && !Array.isArray(data26)){
1065
- let missing2;
1066
- if(((((data26.name === undefined) && (missing2 = "name")) || ((data26.storage === undefined) && (missing2 = "storage"))) || ((data26.validate === undefined) && (missing2 = "validate"))) || ((data26.deriveConstraint === undefined) && (missing2 = "deriveConstraint"))){
1067
- validate10.errors = [{instancePath:instancePath+"/constraints/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/constraints/additionalProperties/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];
1068
- return false;
1069
- }
1070
- else {
1071
- if(data26.name !== undefined){
1072
- let data27 = data26.name;
1073
- if(typeof data27 !== "string"){
1074
- let dataType27 = typeof data27;
1075
- let coerced27 = undefined;
1076
- if(!(coerced27 !== undefined)){
1077
- if(dataType27 == "number" || dataType27 == "boolean"){
1078
- coerced27 = "" + data27;
1021
+ if(data24.name !== undefined){
1022
+ let data25 = data24.name;
1023
+ if(typeof data25 !== "string"){
1024
+ let dataType26 = typeof data25;
1025
+ let coerced26 = undefined;
1026
+ if(!(coerced26 !== undefined)){
1027
+ if(dataType26 == "number" || dataType26 == "boolean"){
1028
+ coerced26 = "" + data25;
1079
1029
  }
1080
- else if(data27 === null){
1081
- coerced27 = "";
1030
+ else if(data25 === null){
1031
+ coerced26 = "";
1082
1032
  }
1083
1033
  else {
1084
1034
  validate10.errors = [{instancePath:instancePath+"/constraints/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/name",schemaPath:"#/properties/constraints/additionalProperties/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];
1085
1035
  return false;
1086
1036
  }
1087
1037
  }
1088
- if(coerced27 !== undefined){
1089
- data27 = coerced27;
1090
- if(data26 !== undefined){
1091
- data26["name"] = coerced27;
1038
+ if(coerced26 !== undefined){
1039
+ data25 = coerced26;
1040
+ if(data24 !== undefined){
1041
+ data24["name"] = coerced26;
1092
1042
  }
1093
1043
  }
1094
1044
  }
@@ -1100,7 +1050,7 @@ validate10.errors = [{instancePath:instancePath+"/constraints/" + key2.replace(/
1100
1050
  return false;
1101
1051
  }
1102
1052
  }
1103
- var valid7 = _errs77 === errors;
1053
+ var valid7 = _errs72 === errors;
1104
1054
  if(!valid7){
1105
1055
  break;
1106
1056
  }
@@ -1111,7 +1061,7 @@ validate10.errors = [{instancePath:instancePath+"/constraints",schemaPath:"#/pro
1111
1061
  return false;
1112
1062
  }
1113
1063
  }
1114
- var valid0 = _errs74 === errors;
1064
+ var valid0 = _errs69 === errors;
1115
1065
  }
1116
1066
  else {
1117
1067
  var valid0 = true;
@@ -1140,8 +1090,6 @@ var valid0 = true;
1140
1090
  }
1141
1091
  }
1142
1092
  }
1143
- }
1144
- }
1145
1093
  else {
1146
1094
  validate10.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];
1147
1095
  return false;
@@ -1152,5 +1100,5 @@ return errors === 0;
1152
1100
  }
1153
1101
 
1154
1102
 
1155
- module.exports.defaultInitOptions = {"connectionTimeout":0,"keepAliveTimeout":72000,"maxRequestsPerSocket":0,"requestTimeout":0,"bodyLimit":1048576,"caseSensitive":true,"allowUnsafeRegex":false,"disableRequestLogging":false,"jsonShorthand":true,"ignoreTrailingSlash":false,"ignoreDuplicateSlashes":false,"maxParamLength":100,"onProtoPoisoning":"error","onConstructorPoisoning":"error","pluginTimeout":10000,"requestIdHeader":false,"requestIdLogLabel":"reqId","http2SessionTimeout":72000,"exposeHeadRoutes":true,"useSemicolonDelimiter":false}
1103
+ module.exports.defaultInitOptions = {"connectionTimeout":0,"keepAliveTimeout":72000,"maxRequestsPerSocket":0,"requestTimeout":0,"bodyLimit":1048576,"caseSensitive":true,"allowUnsafeRegex":false,"disableRequestLogging":false,"ignoreTrailingSlash":false,"ignoreDuplicateSlashes":false,"maxParamLength":100,"onProtoPoisoning":"error","onConstructorPoisoning":"error","pluginTimeout":10000,"requestIdHeader":false,"requestIdLogLabel":"reqId","http2SessionTimeout":72000,"exposeHeadRoutes":true,"useSemicolonDelimiter":false}
1156
1104
  /* c8 ignore stop */
package/lib/context.js CHANGED
@@ -14,8 +14,7 @@ const {
14
14
  kContentTypeParser,
15
15
  kRouteByFastify,
16
16
  kRequestCacheValidateFns,
17
- kReplyCacheSerializeFns,
18
- kPublicRouteContext
17
+ kReplyCacheSerializeFns
19
18
  } = require('./symbols.js')
20
19
 
21
20
  // Object that holds the context of every request
@@ -79,29 +78,9 @@ function Context ({
79
78
  this.validatorCompiler = validatorCompiler || null
80
79
  this.serializerCompiler = serializerCompiler || null
81
80
 
82
- // Route + Userland configurations for the route
83
- this[kPublicRouteContext] = getPublicRouteContext(this)
84
-
85
81
  this.server = server
86
82
  }
87
83
 
88
- function getPublicRouteContext (context) {
89
- return Object.create(null, {
90
- schema: {
91
- enumerable: true,
92
- get () {
93
- return context.schema
94
- }
95
- },
96
- config: {
97
- enumerable: true,
98
- get () {
99
- return context.config
100
- }
101
- }
102
- })
103
- }
104
-
105
84
  function defaultSchemaErrorFormatter (errors, dataVar) {
106
85
  let text = ''
107
86
  const separator = ', '
package/lib/decorate.js CHANGED
@@ -16,7 +16,7 @@ const {
16
16
  } = require('./errors')
17
17
 
18
18
  function decorate (instance, name, fn, dependencies) {
19
- if (Object.prototype.hasOwnProperty.call(instance, name)) {
19
+ if (Object.hasOwn(instance, name)) {
20
20
  throw new FST_ERR_DEC_ALREADY_PRESENT(name)
21
21
  }
22
22
 
@@ -34,7 +34,7 @@ function decorate (instance, name, fn, dependencies) {
34
34
 
35
35
  function decorateConstructor (konstructor, name, fn, dependencies) {
36
36
  const instance = konstructor.prototype
37
- if (Object.prototype.hasOwnProperty.call(instance, name) || hasKey(konstructor, name)) {
37
+ if (Object.hasOwn(instance, name) || hasKey(konstructor, name)) {
38
38
  throw new FST_ERR_DEC_ALREADY_PRESENT(name)
39
39
  }
40
40
 
package/lib/errors.js CHANGED
@@ -47,12 +47,6 @@ const codes = {
47
47
  500,
48
48
  TypeError
49
49
  ),
50
- FST_ERR_VERSION_CONSTRAINT_NOT_STR: createError(
51
- 'FST_ERR_VERSION_CONSTRAINT_NOT_STR',
52
- 'Version constraint should be a string.',
53
- 500,
54
- TypeError
55
- ),
56
50
  FST_ERR_VALIDATION: createError(
57
51
  'FST_ERR_VALIDATION',
58
52
  '%s',
@@ -1,14 +1,14 @@
1
1
  'use strict'
2
2
 
3
- const { bodylessMethods, bodyMethods } = require('./httpMethods')
4
- const diagnostics = require('dc-polyfill')
3
+ const diagnostics = require('node:diagnostics_channel')
5
4
  const { validate: validateSchema } = require('./validation')
6
5
  const { preValidationHookRunner, preHandlerHookRunner } = require('./hooks')
7
6
  const wrapThenable = require('./wrapThenable')
8
7
  const {
9
8
  kReplyIsError,
10
9
  kRouteContext,
11
- kFourOhFourContext
10
+ kFourOhFourContext,
11
+ kSupportedHTTPMethods
12
12
  } = require('./symbols')
13
13
 
14
14
  const channels = diagnostics.tracingChannel('fastify.request.handler')
@@ -25,12 +25,12 @@ function handleRequest (err, request, reply) {
25
25
  const headers = request.headers
26
26
  const context = request[kRouteContext]
27
27
 
28
- if (bodylessMethods.has(method)) {
28
+ if (this[kSupportedHTTPMethods].bodyless.has(method)) {
29
29
  handler(request, reply)
30
30
  return
31
31
  }
32
32
 
33
- if (bodyMethods.has(method)) {
33
+ if (this[kSupportedHTTPMethods].bodywith.has(method)) {
34
34
  const contentType = headers['content-type']
35
35
  const contentLength = headers['content-length']
36
36
  const transferEncoding = headers['transfer-encoding']