fastify 4.26.2 → 4.28.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 (432) hide show
  1. package/.tap/processinfo/029eb7a1-1942-40bc-98e2-cef3b7a14b5e.json +268 -0
  2. package/.tap/processinfo/03c196c6-01c3-4268-a9b5-298dff18a873.json +269 -0
  3. package/.tap/processinfo/04bbabba-8611-4908-9092-dfa9fcc13327.json +268 -0
  4. package/.tap/processinfo/05d8a743-3edf-4e2d-ae5a-dc99d0855ba5.json +272 -0
  5. package/.tap/processinfo/07718963-36a8-4d87-82ad-366c877a5247.json +268 -0
  6. package/.tap/processinfo/08fe3bde-5814-4308-9158-cdf1e47391b7.json +268 -0
  7. package/.tap/processinfo/0a3e3fb0-eabf-4532-ae80-20434da22678.json +268 -0
  8. package/.tap/processinfo/0caf2a75-4b3a-46c4-9b41-c7e450e5e15f.json +268 -0
  9. package/.tap/processinfo/0cf35d52-e5b2-4884-bcf0-b0ab3017b689.json +268 -0
  10. package/.tap/processinfo/0e666134-5013-4ecd-9ee6-59b22716c39c.json +268 -0
  11. package/.tap/processinfo/1087b811-4ec4-4f91-92b4-a78a51a437de.json +268 -0
  12. package/.tap/processinfo/13709ed3-b68c-42cf-8472-b0c4b8a89d2b.json +268 -0
  13. package/.tap/processinfo/13ac2f18-d0e0-439f-bc86-2ff0119af857.json +268 -0
  14. package/.tap/processinfo/13e47e0e-f6e8-4381-8a42-923b661f4a4f.json +268 -0
  15. package/.tap/processinfo/143f7d43-b8e8-4666-b482-f28fb37160ee.json +268 -0
  16. package/.tap/processinfo/14f3801d-03ab-4db3-9df5-c5d47e0a8cf0.json +270 -0
  17. package/.tap/processinfo/15a07dad-4bcd-442c-95e0-30c31f2b9818.json +273 -0
  18. package/.tap/processinfo/191ad3ad-04d8-4fb9-b119-ad2811f9b925.json +243 -0
  19. package/.tap/processinfo/1b25d54b-62d3-44cd-b581-31e705522fae.json +268 -0
  20. package/.tap/processinfo/1b7cb260-f04b-4135-a4fe-093081c4706f.json +268 -0
  21. package/.tap/processinfo/1e395d63-4815-4c77-aa47-df3709cc0ef9.json +268 -0
  22. package/.tap/processinfo/1e7f6a54-3abf-4771-863a-585cba110aec.json +268 -0
  23. package/.tap/processinfo/21a15e1d-0b41-47d8-b03d-0ba130969034.json +244 -0
  24. package/.tap/processinfo/21e02016-9ecd-4983-8417-9c74d224644f.json +269 -0
  25. package/.tap/processinfo/2327d941-d0d5-4762-b386-02a9a27ad28e.json +268 -0
  26. package/.tap/processinfo/23d39204-eac9-4f57-8db4-ffa996227fbd.json +268 -0
  27. package/.tap/processinfo/2493875a-0ac6-4d53-993c-f44471fd0678.json +268 -0
  28. package/.tap/processinfo/2698669f-f1e7-4a12-a687-8d58177be2b0.json +269 -0
  29. package/.tap/processinfo/2862b053-0a3d-46d7-9381-ffcb06287609.json +268 -0
  30. package/.tap/processinfo/2ac1b8d6-ac92-40e2-a59a-7681069f487c.json +268 -0
  31. package/.tap/processinfo/2c75e5f7-c4ef-47e4-a1c4-105eef6c0fab.json +242 -0
  32. package/.tap/processinfo/2e2c45cd-718b-4e5a-bf88-f801630f2803.json +268 -0
  33. package/.tap/processinfo/2f9ca478-3e03-4cce-a0bc-fcdc86d7c316.json +268 -0
  34. package/.tap/processinfo/30e3117f-fb74-456f-8f02-527e9eb9fcc3.json +268 -0
  35. package/.tap/processinfo/332be679-63c7-4b49-8b87-ef55995ada2d.json +268 -0
  36. package/.tap/processinfo/37c36f95-07f9-4ef0-8ab4-9e107d51b605.json +269 -0
  37. package/.tap/processinfo/3874eae2-f3db-44ef-9a9f-c8169d4b2b76.json +268 -0
  38. package/.tap/processinfo/38a7c3da-a411-41d0-8993-9deefd23500d.json +268 -0
  39. package/.tap/processinfo/3a7b6dbd-e153-4ce5-b557-21fb82009983.json +269 -0
  40. package/.tap/processinfo/3c6731ec-936d-470f-b7b0-0c87b54be051.json +268 -0
  41. package/.tap/processinfo/3c850ea9-4ef0-4044-a3fd-fbadfa9d543e.json +268 -0
  42. package/.tap/processinfo/3e4e15e0-a325-46f0-be57-5fd374560b7a.json +269 -0
  43. package/.tap/processinfo/3ed868e0-887c-402a-9f22-b1fdb74b4da0.json +268 -0
  44. package/.tap/processinfo/405498d7-5854-4ce1-a7dc-06920932f26d.json +268 -0
  45. package/.tap/processinfo/40b7eb19-ae35-4490-8a11-eb91a573c590.json +268 -0
  46. package/.tap/processinfo/40bb1260-d856-4248-8939-a0a05e322041.json +268 -0
  47. package/.tap/processinfo/41252e0b-7f69-44cc-b356-dd94bcbfdb29.json +268 -0
  48. package/.tap/processinfo/418fa710-e2fd-4508-b533-c179958da464.json +269 -0
  49. package/.tap/processinfo/433ef009-63aa-48fe-8e5d-c725228fa2fc.json +268 -0
  50. package/.tap/processinfo/44bf577c-9c01-4197-bd29-2e1ae888c4d4.json +268 -0
  51. package/.tap/processinfo/458fb7f2-20b9-48a2-8853-403c9851f605.json +268 -0
  52. package/.tap/processinfo/46b9892b-bb23-4b86-b0fa-9297f08c611a.json +268 -0
  53. package/.tap/processinfo/46bd9aaf-6cf3-4bd5-b90d-e136a7299a8e.json +268 -0
  54. package/.tap/processinfo/4779aa5f-e57a-4fcc-87e2-7d0bd4fca27f.json +268 -0
  55. package/.tap/processinfo/47b73f4b-ab31-49e1-97fd-8436dbe4bdf3.json +269 -0
  56. package/.tap/processinfo/49dba52e-e0c9-445d-8e9d-6d9ebe3ce6c4.json +268 -0
  57. package/.tap/processinfo/4b1dbc61-4e65-4c56-9784-2036f369038a.json +268 -0
  58. package/.tap/processinfo/4b6f0b40-43ef-4668-83a0-e07e28509df5.json +268 -0
  59. package/.tap/processinfo/4c236f70-f532-460b-8f7a-dd973301d493.json +268 -0
  60. package/.tap/processinfo/4d92b707-a268-48b8-885b-004d3a288c41.json +269 -0
  61. package/.tap/processinfo/4ff10bae-7c97-4c0a-b712-6c0d2f8c0e8e.json +270 -0
  62. package/.tap/processinfo/50f95bd5-ae12-4d83-99f4-ae9b0690c6a8.json +268 -0
  63. package/.tap/processinfo/557e4a49-d99c-4a63-b2f2-f33d897ab874.json +268 -0
  64. package/.tap/processinfo/589fd21a-8319-4abf-8cf7-82cb4a463a4b.json +269 -0
  65. package/.tap/processinfo/5a872f3a-949f-40be-8004-d739d034255c.json +272 -0
  66. package/.tap/processinfo/5abc301a-23da-424d-891e-3afbaff9156c.json +269 -0
  67. package/.tap/processinfo/5c31614c-a766-4837-ab59-dd6977166f72.json +253 -0
  68. package/.tap/processinfo/5d1e90c8-d819-4901-b022-f9ea4cd81978.json +268 -0
  69. package/.tap/processinfo/5d283e67-f31d-4fa8-a559-a1d8e82ee046.json +269 -0
  70. package/.tap/processinfo/5df505bc-6a4b-4c41-822f-51e2d7111de8.json +268 -0
  71. package/.tap/processinfo/5eaf64a2-fbfd-40e7-b391-c30f744b2bf1.json +269 -0
  72. package/.tap/processinfo/5ef5ede0-6436-4938-8401-d32ad4bffd5d.json +268 -0
  73. package/.tap/processinfo/606f05c0-8293-41db-bc92-eea82123697f.json +269 -0
  74. package/.tap/processinfo/6446806d-6cab-4c1d-a9ed-6bccaf3c4ea9.json +268 -0
  75. package/.tap/processinfo/64da7e08-925d-444d-98de-6568c6115d8d.json +269 -0
  76. package/.tap/processinfo/6917da6d-d2dc-466a-a893-7fb7412dde96.json +268 -0
  77. package/.tap/processinfo/69bbeee0-c398-4ccf-98b3-fb625a63bab4.json +268 -0
  78. package/.tap/processinfo/6da6ea8f-3370-4703-b230-90159531f766.json +268 -0
  79. package/.tap/processinfo/6ecffe1f-3016-4c11-9294-b488baced99f.json +268 -0
  80. package/.tap/processinfo/6f23f41f-ccbd-48cb-9ab6-311db0cfb65c.json +270 -0
  81. package/.tap/processinfo/70168912-9bb2-4334-bb89-041f1764cddf.json +268 -0
  82. package/.tap/processinfo/713a674e-40e1-46b4-866e-949d57c1a9f9.json +270 -0
  83. package/.tap/processinfo/730254d4-eacb-4cdf-80f4-8da22341cde5.json +268 -0
  84. package/.tap/processinfo/7344e559-c546-416f-8f1b-0f9fe12c6f02.json +268 -0
  85. package/.tap/processinfo/7556217a-0155-448f-b4d4-bec1bb0f6040.json +269 -0
  86. package/.tap/processinfo/7572079c-166c-4c4c-85ff-89b9430b214f.json +268 -0
  87. package/.tap/processinfo/7808180f-1974-47cd-bba2-2d6b8b711d65.json +273 -0
  88. package/.tap/processinfo/796dde83-da66-4db2-8d27-d45a3627c9c7.json +268 -0
  89. package/.tap/processinfo/7979819f-3723-48be-9f55-be700e689441.json +270 -0
  90. package/.tap/processinfo/7a664d39-d7f5-42f9-89df-15563048fab6.json +268 -0
  91. package/.tap/processinfo/7b047b72-01d9-4217-857c-93341651b4b3.json +269 -0
  92. package/.tap/processinfo/7ce41af6-7961-45ae-8c6f-b6e1c5692a48.json +268 -0
  93. package/.tap/processinfo/7e1de1c6-127e-463d-9357-081ee33ef5ce.json +269 -0
  94. package/.tap/processinfo/81ac7a7f-b0c0-4ef6-82cb-c718ea84e152.json +268 -0
  95. package/.tap/processinfo/851a058f-a497-4b10-a0b7-c9182d9c4d5a.json +268 -0
  96. package/.tap/processinfo/86502974-c245-4194-ade4-d9c6fdbb757e.json +268 -0
  97. package/.tap/processinfo/86b9786f-4a98-43b8-882a-5f936b876f08.json +241 -0
  98. package/.tap/processinfo/8a3fe726-86ab-4300-8d73-7eacbbc02a05.json +268 -0
  99. package/.tap/processinfo/8adf928b-c963-4ba0-9c35-606fcbd8a2aa.json +272 -0
  100. package/.tap/processinfo/8b31a6d8-1a33-4a27-93ca-1c5b364be068.json +240 -0
  101. package/.tap/processinfo/8ec12773-6b18-49a2-8e52-874c797df965.json +833 -0
  102. package/.tap/processinfo/8edb9502-3420-42fb-a602-e5de93be2df1.json +268 -0
  103. package/.tap/processinfo/8fc572e6-9828-4f98-a49c-9e081b2193c4.json +242 -0
  104. package/.tap/processinfo/8fee2d30-c5dd-4fae-9cf2-2ef8dd0f90de.json +834 -0
  105. package/.tap/processinfo/92cc0496-5f26-4370-8212-18136b972f99.json +268 -0
  106. package/.tap/processinfo/93a3f064-3f6e-4f49-becb-f7925f2961a9.json +268 -0
  107. package/.tap/processinfo/967e3697-8310-4a19-8dd5-927ac8bd6c79.json +269 -0
  108. package/.tap/processinfo/97225e23-9d30-4287-b3f5-72bccebec50b.json +268 -0
  109. package/.tap/processinfo/9a363bc6-4e65-47e8-94ca-26a9db428fb4.json +268 -0
  110. package/.tap/processinfo/9d2fe462-57fa-43f1-b02c-d188f15de30b.json +270 -0
  111. package/.tap/processinfo/a00b6cda-feb7-4b8a-8179-4c43bc29d670.json +269 -0
  112. package/.tap/processinfo/a017cbd5-4ac7-49e1-8c77-1bf4f6e7f2a6.json +271 -0
  113. package/.tap/processinfo/a1277309-1984-48f8-b60b-f5e8639736be.json +271 -0
  114. package/.tap/processinfo/a16bf53e-4337-48ff-88fa-67f55738e0f5.json +268 -0
  115. package/.tap/processinfo/a3a9848f-440e-41bb-9b0b-568bcfee0ddc.json +268 -0
  116. package/.tap/processinfo/a468c11f-f2f1-4e92-9ba0-6d28b6569b72.json +268 -0
  117. package/.tap/processinfo/a5880465-68f1-46b3-84a5-0da389d0bc67.json +268 -0
  118. package/.tap/processinfo/a666f394-39b4-44ad-8e74-abebf74dde3b.json +270 -0
  119. package/.tap/processinfo/af09d8ca-7053-4410-b514-b22c47f5979f.json +268 -0
  120. package/.tap/processinfo/af203309-28aa-459d-a56e-d88833695521.json +268 -0
  121. package/.tap/processinfo/afa2f7b6-dcd2-4d90-bf3c-54ba8b6800eb.json +268 -0
  122. package/.tap/processinfo/b231291d-ef14-4ff0-85f9-38a73a5408f8.json +268 -0
  123. package/.tap/processinfo/b3d3f2a1-a9fc-4d88-b122-fae90248cd59.json +268 -0
  124. package/.tap/processinfo/b834bf83-26c4-403a-8e91-eb15fe4b0b5d.json +268 -0
  125. package/.tap/processinfo/b8786fd7-47df-4ac1-8d6f-2d4c7623c681.json +268 -0
  126. package/.tap/processinfo/b9758f53-7f5a-4b03-8684-8a42ad644e5a.json +268 -0
  127. package/.tap/processinfo/bd194ea2-a21a-4604-b225-ee48abf1e607.json +242 -0
  128. package/.tap/processinfo/bd7ced53-3872-43b7-ad73-3352e50b728b.json +268 -0
  129. package/.tap/processinfo/be50295b-7e50-46cd-8bf1-637bf222699c.json +268 -0
  130. package/.tap/processinfo/bec61dd9-aa52-4e6c-8e37-5c9c10e935fd.json +268 -0
  131. package/.tap/processinfo/c015adf9-1d60-447e-87b5-b2031fe55bba.json +268 -0
  132. package/.tap/processinfo/c0666afa-7f64-45bd-97fb-145df1380157.json +268 -0
  133. package/.tap/processinfo/c2c0c012-c1c0-4457-84d6-dadba8396c94.json +268 -0
  134. package/.tap/processinfo/c3dd3ecd-737b-47ce-a917-54341c7bbed3.json +268 -0
  135. package/.tap/processinfo/c41ac06d-64b8-4bb3-bf56-0551f5a48f4b.json +268 -0
  136. package/.tap/processinfo/c4235bfb-a2aa-4271-9c6b-3ceb370219b1.json +268 -0
  137. package/.tap/processinfo/c4e6f24f-288c-493c-b6f0-02924aeb6758.json +270 -0
  138. package/.tap/processinfo/c54227bb-4a7b-40bb-bfe6-b54fe55078f3.json +268 -0
  139. package/.tap/processinfo/c699de91-3b0b-4466-9418-6910a3eb640a.json +269 -0
  140. package/.tap/processinfo/c74e2f37-451a-4577-ac18-e597fbd9a1d4.json +269 -0
  141. package/.tap/processinfo/c90cccec-5b4b-445f-a935-ac22859675d0.json +252 -0
  142. package/.tap/processinfo/c9dd6c7d-0d16-45e5-87ae-117388bf2994.json +268 -0
  143. package/.tap/processinfo/ca2e48fb-58c5-47fc-ad2e-263838aea42c.json +272 -0
  144. package/.tap/processinfo/ca87351d-c710-45c1-838a-16bccac59874.json +273 -0
  145. package/.tap/processinfo/cdb4a671-5776-4944-91b9-c456c58841ef.json +268 -0
  146. package/.tap/processinfo/cf10fdc8-6a87-447a-9e12-45f447af61f3.json +244 -0
  147. package/.tap/processinfo/cf3f1f08-643e-4f24-82ca-40f7a349c3d1.json +268 -0
  148. package/.tap/processinfo/d091172a-06a5-469b-82a9-8fefe3dd99da.json +240 -0
  149. package/.tap/processinfo/d1675431-61d6-45f8-a010-6e654112a00a.json +272 -0
  150. package/.tap/processinfo/d2d54aa2-c221-4ad4-b6b7-0c58e3c3679c.json +269 -0
  151. package/.tap/processinfo/d4f3c95a-ddbe-419d-bce0-dd6acceee21f.json +268 -0
  152. package/.tap/processinfo/d54ed8f1-43c3-478a-90d3-2c8aced723f2.json +269 -0
  153. package/.tap/processinfo/d6e5a2a6-4647-4d98-916c-aec4ace54a65.json +268 -0
  154. package/.tap/processinfo/d7280c64-45e6-4b12-affc-3ac9a5d4014a.json +268 -0
  155. package/.tap/processinfo/d82c8367-d825-4405-88df-07298f6ef840.json +269 -0
  156. package/.tap/processinfo/d8f97e53-e921-4d33-9c8d-2f7e807a9425.json +268 -0
  157. package/.tap/processinfo/da546a73-9714-4f8c-bdbb-e42730edbcfa.json +268 -0
  158. package/.tap/processinfo/da7fb7fb-1da4-49f8-a3ee-d4ea623c01a5.json +268 -0
  159. package/.tap/processinfo/daa6a016-4f0c-4050-923c-2022e0bb21d8.json +268 -0
  160. package/.tap/processinfo/db9a251d-8540-4719-b464-e7d5febd97d1.json +240 -0
  161. package/.tap/processinfo/dc10c603-8e58-4611-baa3-44da2578d07a.json +268 -0
  162. package/.tap/processinfo/dde56c1a-858c-47cc-b0bb-61279620ac17.json +268 -0
  163. package/.tap/processinfo/e0d9c4ea-f7c7-4c64-8ced-66dc6f0ac5d2.json +271 -0
  164. package/.tap/processinfo/e121454f-5dfa-4209-ba15-4c39840871f2.json +831 -0
  165. package/.tap/processinfo/e1f43e40-c3fe-4eb8-a713-d5910cc6b25a.json +268 -0
  166. package/.tap/processinfo/e4575e7a-f00e-488b-94e1-8f877b54725e.json +268 -0
  167. package/.tap/processinfo/e9ad667e-8603-4488-af64-449cc9532803.json +268 -0
  168. package/.tap/processinfo/eb26a697-e5e2-4730-aeea-bcb9c49afd4d.json +268 -0
  169. package/.tap/processinfo/eb29d1c3-feaf-4744-9d84-cf257e8269b0.json +268 -0
  170. package/.tap/processinfo/ee720c0a-ed64-4e7e-8c0a-139c7b9725d2.json +268 -0
  171. package/.tap/processinfo/ef88c13a-87b2-49e4-a683-7b812505cd6f.json +268 -0
  172. package/.tap/processinfo/f4ed6948-dac0-4128-9f86-d083b6918ea7.json +268 -0
  173. package/.tap/processinfo/f7544c01-8ac7-4e42-8ad5-c4d62e094d1f.json +270 -0
  174. package/.tap/processinfo/f7cee4b3-7bcc-4591-a628-5629b0b41c9e.json +268 -0
  175. package/.tap/processinfo/f9c0a1f7-c1a4-44d3-ae3f-8c1eb42cd746.json +269 -0
  176. package/.tap/processinfo/fc46b4da-79db-4201-af7e-34bb17f92d69.json +270 -0
  177. package/.tap/processinfo/fccc0056-03c4-40cb-9d0b-2db4bbe573c1.json +268 -0
  178. package/.tap/processinfo/fd2df572-54d7-4ce7-b7aa-a2b4b00d4127.json +254 -0
  179. package/.tap/processinfo/fea9377f-b473-484d-bee6-ac7f49e50937.json +269 -0
  180. package/.tap/processinfo/feb516dc-abda-46e6-9b42-d37adfc63366.json +268 -0
  181. package/.tap/processinfo/ff0fda4c-aa2e-4236-906e-fdfb6bd6632e.json +269 -0
  182. package/.tap/test-results/test/404s.test.js.tap +623 -0
  183. package/.tap/test-results/test/500s.test.js.tap +64 -0
  184. package/.tap/test-results/test/allowUnsafeRegex.test.js.tap +36 -0
  185. package/.tap/test-results/test/als.test.js.tap +15 -0
  186. package/.tap/test-results/test/async-await.test.js.tap +184 -0
  187. package/.tap/test-results/test/async-dispose.test.js.tap +8 -0
  188. package/.tap/test-results/test/async_hooks.test.js.tap +10 -0
  189. package/.tap/test-results/test/bodyLimit.test.js.tap +48 -0
  190. package/.tap/test-results/test/buffer.test.js.tap +20 -0
  191. package/.tap/test-results/test/build/error-serializer.test.js.tap +8 -0
  192. package/.tap/test-results/test/build/version.test.js.tap +7 -0
  193. package/.tap/test-results/test/case-insensitive.test.js.tap +36 -0
  194. package/.tap/test-results/test/chainable.test.js.tap +17 -0
  195. package/.tap/test-results/test/check.test.js.tap +10 -0
  196. package/.tap/test-results/test/childLoggerFactory.test.js.tap +23 -0
  197. package/.tap/test-results/test/client-timeout.test.js.tap +7 -0
  198. package/.tap/test-results/test/close-pipelining.test.js.tap +15 -0
  199. package/.tap/test-results/test/close.test.js.tap +172 -0
  200. package/.tap/test-results/test/connectionTimeout.test.js.tap +12 -0
  201. package/.tap/test-results/test/constrained-routes.test.js.tap +173 -0
  202. package/.tap/test-results/test/content-length.test.js.tap +46 -0
  203. package/.tap/test-results/test/content-parser.test.js.tap +266 -0
  204. package/.tap/test-results/test/content-type.test.js.tap +14 -0
  205. package/.tap/test-results/test/context-config.test.js.tap +41 -0
  206. package/.tap/test-results/test/copy.test.js.tap +14 -0
  207. package/.tap/test-results/test/custom-http-server.test.js.tap +30 -0
  208. package/.tap/test-results/test/custom-parser-async.test.js.tap +21 -0
  209. package/.tap/test-results/test/custom-parser.0.test.js.tap +199 -0
  210. package/.tap/test-results/test/custom-parser.1.test.js.tap +90 -0
  211. package/.tap/test-results/test/custom-parser.2.test.js.tap +22 -0
  212. package/.tap/test-results/test/custom-parser.3.test.js.tap +53 -0
  213. package/.tap/test-results/test/custom-parser.4.test.js.tap +45 -0
  214. package/.tap/test-results/test/custom-parser.5.test.js.tap +41 -0
  215. package/.tap/test-results/test/custom-querystring-parser.test.js.tap +46 -0
  216. package/.tap/test-results/test/decorator.test.js.tap +465 -0
  217. package/.tap/test-results/test/delete.test.js.tap +110 -0
  218. package/.tap/test-results/test/diagnostics-channel/404.test.js.tap +15 -0
  219. package/.tap/test-results/test/diagnostics-channel/async-delay-request.test.js.tap +25 -0
  220. package/.tap/test-results/test/diagnostics-channel/async-request.test.js.tap +24 -0
  221. package/.tap/test-results/test/diagnostics-channel/error-before-handler.test.js.tap +9 -0
  222. package/.tap/test-results/test/diagnostics-channel/error-request.test.js.tap +20 -0
  223. package/.tap/test-results/test/diagnostics-channel/error-status.test.js.tap +10 -0
  224. package/.tap/test-results/test/diagnostics-channel/init.test.js.tap +14 -0
  225. package/.tap/test-results/test/diagnostics-channel/sync-delay-request.test.js.tap +16 -0
  226. package/.tap/test-results/test/diagnostics-channel/sync-request-reply.test.js.tap +16 -0
  227. package/.tap/test-results/test/diagnostics-channel/sync-request.test.js.tap +19 -0
  228. package/.tap/test-results/test/encapsulated-child-logger-factory.test.js.tap +18 -0
  229. package/.tap/test-results/test/encapsulated-error-handler.test.js.tap +243 -0
  230. package/.tap/test-results/test/esm/errorCodes.test.mjs.tap +9 -0
  231. package/.tap/test-results/test/esm/esm.test.mjs.tap +8 -0
  232. package/.tap/test-results/test/esm/index.test.js.tap +8 -0
  233. package/.tap/test-results/test/fastify-instance.test.js.tap +114 -0
  234. package/.tap/test-results/test/findRoute.test.js.tap +37 -0
  235. package/.tap/test-results/test/fluent-schema.test.js.tap +36 -0
  236. package/.tap/test-results/test/genReqId.test.js.tap +106 -0
  237. package/.tap/test-results/test/get.test.js.tap +151 -0
  238. package/.tap/test-results/test/handler-context.test.js.tap +19 -0
  239. package/.tap/test-results/test/has-route.test.js.tap +30 -0
  240. package/.tap/test-results/test/head.test.js.tap +130 -0
  241. package/.tap/test-results/test/header-overflow.test.js.tap +16 -0
  242. package/.tap/test-results/test/hooks-async.test.js.tap +286 -0
  243. package/.tap/test-results/test/hooks.on-listen.test.js.tap +311 -0
  244. package/.tap/test-results/test/hooks.on-ready.test.js.tap +151 -0
  245. package/.tap/test-results/test/hooks.test.js.tap +966 -0
  246. package/.tap/test-results/test/http2/closing.test.js.tap +35 -0
  247. package/.tap/test-results/test/http2/constraint.test.js.tap +32 -0
  248. package/.tap/test-results/test/http2/head.test.js.tap +9 -0
  249. package/.tap/test-results/test/http2/missing-http2-module.test.js.tap +8 -0
  250. package/.tap/test-results/test/http2/plain.test.js.tap +22 -0
  251. package/.tap/test-results/test/http2/secure-with-fallback.test.js.tap +40 -0
  252. package/.tap/test-results/test/http2/secure.test.js.tap +27 -0
  253. package/.tap/test-results/test/http2/unknown-http-method.test.js.tap +9 -0
  254. package/.tap/test-results/test/https/custom-https-server.test.js.tap +10 -0
  255. package/.tap/test-results/test/https/https.test.js.tap +45 -0
  256. package/.tap/test-results/test/imports.test.js.tap +14 -0
  257. package/.tap/test-results/test/inject.test.js.tap +165 -0
  258. package/.tap/test-results/test/internals/all.test.js.tap +42 -0
  259. package/.tap/test-results/test/internals/contentTypeParser.test.js.tap +14 -0
  260. package/.tap/test-results/test/internals/context.test.js.tap +14 -0
  261. package/.tap/test-results/test/internals/decorator.test.js.tap +51 -0
  262. package/.tap/test-results/test/internals/errors.test.js.tap +1212 -0
  263. package/.tap/test-results/test/internals/handleRequest.test.js.tap +69 -0
  264. package/.tap/test-results/test/internals/hookRunner.test.js.tap +143 -0
  265. package/.tap/test-results/test/internals/hooks.test.js.tap +45 -0
  266. package/.tap/test-results/test/internals/initialConfig.test.js.tap +125 -0
  267. package/.tap/test-results/test/internals/logger.test.js.tap +71 -0
  268. package/.tap/test-results/test/internals/plugin.test.js.tap +48 -0
  269. package/.tap/test-results/test/internals/reply-serialize.test.js.tap +166 -0
  270. package/.tap/test-results/test/internals/reply.test.js.tap +688 -0
  271. package/.tap/test-results/test/internals/reqIdGenFactory.test.js.tap +74 -0
  272. package/.tap/test-results/test/internals/request-validate.test.js.tap +384 -0
  273. package/.tap/test-results/test/internals/request.test.js.tap +163 -0
  274. package/.tap/test-results/test/internals/server.test.js.tap +30 -0
  275. package/.tap/test-results/test/internals/validation.test.js.tap +121 -0
  276. package/.tap/test-results/test/keepAliveTimeout.test.js.tap +12 -0
  277. package/.tap/test-results/test/listen.1.test.js.tap +31 -0
  278. package/.tap/test-results/test/listen.2.test.js.tap +46 -0
  279. package/.tap/test-results/test/listen.3.test.js.tap +25 -0
  280. package/.tap/test-results/test/listen.4.test.js.tap +51 -0
  281. package/.tap/test-results/test/lock.test.js.tap +29 -0
  282. package/.tap/test-results/test/logger/instantiation.test.js.tap +92 -0
  283. package/.tap/test-results/test/logger/logging.test.js.tap +117 -0
  284. package/.tap/test-results/test/logger/options.test.js.tap +165 -0
  285. package/.tap/test-results/test/logger/request.test.js.tap +82 -0
  286. package/.tap/test-results/test/logger/response.test.js.tap +38 -0
  287. package/.tap/test-results/test/maxRequestsPerSocket.test.js.tap +44 -0
  288. package/.tap/test-results/test/method-missing.test.js.tap +8 -0
  289. package/.tap/test-results/test/middleware.test.js.tap +17 -0
  290. package/.tap/test-results/test/mkcalendar.test.js.tap +43 -0
  291. package/.tap/test-results/test/mkcol.test.js.tap +14 -0
  292. package/.tap/test-results/test/move.test.js.tap +15 -0
  293. package/.tap/test-results/test/noop-set.test.js.tap +8 -0
  294. package/.tap/test-results/test/nullable-validation.test.js.tap +36 -0
  295. package/.tap/test-results/test/options.error-handler.test.js.tap +186 -0
  296. package/.tap/test-results/test/options.test.js.tap +174 -0
  297. package/.tap/test-results/test/output-validation.test.js.tap +66 -0
  298. package/.tap/test-results/test/patch.error-handler.test.js.tap +206 -0
  299. package/.tap/test-results/test/patch.test.js.tap +182 -0
  300. package/.tap/test-results/test/plugin.1.test.js.tap +78 -0
  301. package/.tap/test-results/test/plugin.2.test.js.tap +102 -0
  302. package/.tap/test-results/test/plugin.3.test.js.tap +58 -0
  303. package/.tap/test-results/test/plugin.4.test.js.tap +164 -0
  304. package/.tap/test-results/test/post-empty-body.test.js.tap +8 -0
  305. package/.tap/test-results/test/pretty-print.test.js.tap +82 -0
  306. package/.tap/test-results/test/promises.test.js.tap +46 -0
  307. package/.tap/test-results/test/propfind.test.js.tap +43 -0
  308. package/.tap/test-results/test/proppatch.test.js.tap +29 -0
  309. package/.tap/test-results/test/proto-poisoning.test.js.tap +47 -0
  310. package/.tap/test-results/test/put.error-handler.test.js.tap +206 -0
  311. package/.tap/test-results/test/put.test.js.tap +182 -0
  312. package/.tap/test-results/test/register.test.js.tap +61 -0
  313. package/.tap/test-results/test/reply-code.test.js.tap +40 -0
  314. package/.tap/test-results/test/reply-earlyHints.test.js.tap +22 -0
  315. package/.tap/test-results/test/reply-error.test.js.tap +643 -0
  316. package/.tap/test-results/test/reply-trailers.test.js.tap +176 -0
  317. package/.tap/test-results/test/report.test.js.tap +43 -0
  318. package/.tap/test-results/test/request-error.test.js.tap +98 -0
  319. package/.tap/test-results/test/request-id.test.js.tap +38 -0
  320. package/.tap/test-results/test/request.deprecated.test.js.tap +13 -0
  321. package/.tap/test-results/test/requestTimeout.test.js.tap +21 -0
  322. package/.tap/test-results/test/route-hooks.test.js.tap +498 -0
  323. package/.tap/test-results/test/route-prefix.test.js.tap +195 -0
  324. package/.tap/test-results/test/route-shorthand.test.js.tap +190 -0
  325. package/.tap/test-results/test/route.1.test.js.tap +93 -0
  326. package/.tap/test-results/test/route.2.test.js.tap +28 -0
  327. package/.tap/test-results/test/route.3.test.js.tap +39 -0
  328. package/.tap/test-results/test/route.4.test.js.tap +32 -0
  329. package/.tap/test-results/test/route.5.test.js.tap +54 -0
  330. package/.tap/test-results/test/route.6.test.js.tap +81 -0
  331. package/.tap/test-results/test/route.7.test.js.tap +93 -0
  332. package/.tap/test-results/test/route.8.test.js.tap +38 -0
  333. package/.tap/test-results/test/router-options.test.js.tap +104 -0
  334. package/.tap/test-results/test/same-shape.test.js.tap +22 -0
  335. package/.tap/test-results/test/schema-examples.test.js.tap +85 -0
  336. package/.tap/test-results/test/schema-feature.test.js.tap +445 -0
  337. package/.tap/test-results/test/schema-serialization.test.js.tap +194 -0
  338. package/.tap/test-results/test/schema-special-usage.test.js.tap +186 -0
  339. package/.tap/test-results/test/schema-validation.test.js.tap +199 -0
  340. package/.tap/test-results/test/search.test.js.tap +77 -0
  341. package/.tap/test-results/test/serialize-response.test.js.tap +26 -0
  342. package/.tap/test-results/test/server.test.js.tap +65 -0
  343. package/.tap/test-results/test/set-error-handler.test.js.tap +7 -0
  344. package/.tap/test-results/test/skip-reply-send.test.js.tap +272 -0
  345. package/.tap/test-results/test/stream.1.test.js.tap +36 -0
  346. package/.tap/test-results/test/stream.2.test.js.tap +20 -0
  347. package/.tap/test-results/test/stream.3.test.js.tap +34 -0
  348. package/.tap/test-results/test/stream.4.test.js.tap +40 -0
  349. package/.tap/test-results/test/stream.5.test.js.tap +37 -0
  350. package/.tap/test-results/test/sync-routes.test.js.tap +19 -0
  351. package/.tap/test-results/test/throw.test.js.tap +116 -0
  352. package/.tap/test-results/test/trace.test.js.tap +7 -0
  353. package/.tap/test-results/test/trust-proxy.test.js.tap +109 -0
  354. package/.tap/test-results/test/type-provider.test.js.tap +12 -0
  355. package/.tap/test-results/test/unlock.test.js.tap +14 -0
  356. package/.tap/test-results/test/upgrade.test.js.tap +8 -0
  357. package/.tap/test-results/test/url-rewriting.test.js.tap +39 -0
  358. package/.tap/test-results/test/useSemicolonDelimiter.test.js.tap +33 -0
  359. package/.tap/test-results/test/validation-error-handling.test.js.tap +180 -0
  360. package/.tap/test-results/test/versioned-routes.test.js.tap +151 -0
  361. package/.tap/test-results/test/web-api.test.js.tap +51 -0
  362. package/.tap/test-results/test/wrapThenable.test.js.tap +11 -0
  363. package/.taprc +1 -0
  364. package/README.md +4 -0
  365. package/SPONSORS.md +1 -1
  366. package/docs/Guides/Database.md +2 -2
  367. package/docs/Guides/Delay-Accepting-Requests.md +1 -1
  368. package/docs/Guides/Detecting-When-Clients-Abort.md +6 -4
  369. package/docs/Guides/Ecosystem.md +21 -11
  370. package/docs/Guides/Getting-Started.md +2 -0
  371. package/docs/Guides/Plugins-Guide.md +1 -1
  372. package/docs/Guides/Prototype-Poisoning.md +1 -1
  373. package/docs/Reference/Errors.md +2 -3
  374. package/docs/Reference/Hooks.md +5 -3
  375. package/docs/Reference/LTS.md +32 -20
  376. package/docs/Reference/Logging.md +1 -1
  377. package/docs/Reference/Reply.md +8 -8
  378. package/docs/Reference/Request.md +2 -2
  379. package/docs/Reference/Routes.md +3 -2
  380. package/docs/Reference/Server.md +11 -5
  381. package/docs/Reference/Type-Providers.md +10 -4
  382. package/docs/Reference/TypeScript.md +25 -24
  383. package/docs/Reference/Validation-and-Serialization.md +1 -1
  384. package/docs/Reference/Warnings.md +2 -0
  385. package/fastify.js +3 -4
  386. package/lib/error-handler.js +34 -21
  387. package/lib/error-serializer.js +75 -18
  388. package/lib/fourOhFour.js +5 -3
  389. package/lib/handleRequest.js +2 -1
  390. package/lib/httpMethods.js +3 -1
  391. package/lib/reply.js +10 -4
  392. package/lib/route.js +5 -1
  393. package/lib/warnings.js +6 -0
  394. package/lib/wrapThenable.js +2 -0
  395. package/package.json +3 -3
  396. package/test/404s.test.js +2 -2
  397. package/test/500s.test.js +32 -0
  398. package/test/close-pipelining.test.js +11 -4
  399. package/test/close.test.js +1 -1
  400. package/test/encapsulated-error-handler.test.js +1 -1
  401. package/test/esm/errorCodes.test.mjs +10 -0
  402. package/test/esm/named-exports.mjs +1 -0
  403. package/test/esm/other.mjs +1 -0
  404. package/test/esm/plugin.mjs +1 -0
  405. package/test/has-route.test.js +17 -1
  406. package/test/hooks.test.js +2 -2
  407. package/test/internals/handleRequest.test.js +2 -2
  408. package/test/internals/reply.test.js +33 -3
  409. package/test/lock.test.js +43 -10
  410. package/test/logger/instantiation.test.js +1 -1
  411. package/test/logger/logging.test.js +37 -16
  412. package/test/logger/options.test.js +1 -1
  413. package/test/mkcalendar.test.js +165 -0
  414. package/test/propfind.test.js +40 -8
  415. package/test/proppatch.test.js +48 -18
  416. package/test/report.test.js +161 -0
  417. package/test/schema-examples.test.js +1 -1
  418. package/test/schema-feature.test.js +6 -6
  419. package/test/schema-serialization.test.js +2 -2
  420. package/test/schema-special-usage.test.js +1 -1
  421. package/test/skip-reply-send.test.js +1 -1
  422. package/test/stream.5.test.js +2 -2
  423. package/test/types/instance.test-d.ts +1 -1
  424. package/test/types/reply.test-d.ts +3 -3
  425. package/test/types/request.test-d.ts +2 -2
  426. package/test/types/type-provider.test-d.ts +9 -5
  427. package/types/reply.d.ts +10 -6
  428. package/types/request.d.ts +2 -2
  429. package/types/route.d.ts +26 -26
  430. package/types/type-provider.d.ts +1 -1
  431. package/types/utils.d.ts +6 -1
  432. /package/test/esm/{esm.mjs → esm.test.mjs} +0 -0
@@ -0,0 +1,109 @@
1
+ TAP version 14
2
+ # Subtest: trust proxy, not add properties to node req
3
+ 1..14
4
+ ok 1 - should not error
5
+ ok 2 - ip is defined
6
+ ok 3 - gets ip from x-forwarded-for
7
+ ok 4 - host is defined
8
+ ok 5 - gets host from x-forwarded-host
9
+ ok 6 - should be equal
10
+ ok 7 - gets hostname from x-forwarded-host
11
+ ok 8 - port is defined
12
+ ok 9 - port is taken from x-forwarded-for or host
13
+ ok 10 - ip is defined
14
+ ok 11 - gets ip from x-forwarded-for
15
+ ok 12 - gets ips from x-forwarded-for
16
+ ok 13 - port is defined
17
+ ok 14 - port is taken from x-forwarded-for or host
18
+ ok 1 - trust proxy, not add properties to node req # time=29.578ms
19
+
20
+ # Subtest: trust proxy chain
21
+ 1..9
22
+ ok 1 - should not error
23
+ ok 2 - ip is defined
24
+ ok 3 - gets ip from x-forwarded-for
25
+ ok 4 - host is defined
26
+ ok 5 - gets host from x-forwarded-host
27
+ ok 6 - should be equal
28
+ ok 7 - gets hostname from x-forwarded-host
29
+ ok 8 - port is defined
30
+ ok 9 - port is taken from x-forwarded-for or host
31
+ ok 2 - trust proxy chain # time=7.178ms
32
+
33
+ # Subtest: trust proxy function
34
+ 1..9
35
+ ok 1 - should not error
36
+ ok 2 - ip is defined
37
+ ok 3 - gets ip from x-forwarded-for
38
+ ok 4 - host is defined
39
+ ok 5 - gets host from x-forwarded-host
40
+ ok 6 - should be equal
41
+ ok 7 - gets hostname from x-forwarded-host
42
+ ok 8 - port is defined
43
+ ok 9 - port is taken from x-forwarded-for or host
44
+ ok 3 - trust proxy function # time=8.164ms
45
+
46
+ # Subtest: trust proxy number
47
+ 1..10
48
+ ok 1 - should not error
49
+ ok 2 - ip is defined
50
+ ok 3 - gets ip from x-forwarded-for
51
+ ok 4 - host is defined
52
+ ok 5 - gets host from x-forwarded-host
53
+ ok 6 - should be equal
54
+ ok 7 - gets hostname from x-forwarded-host
55
+ ok 8 - gets ips from x-forwarded-for
56
+ ok 9 - port is defined
57
+ ok 10 - port is taken from x-forwarded-for or host
58
+ ok 4 - trust proxy number # time=5.26ms
59
+
60
+ # Subtest: trust proxy IP addresses
61
+ 1..10
62
+ ok 1 - should not error
63
+ ok 2 - ip is defined
64
+ ok 3 - gets ip from x-forwarded-for
65
+ ok 4 - host is defined
66
+ ok 5 - gets host from x-forwarded-host
67
+ ok 6 - should be equal
68
+ ok 7 - gets hostname from x-forwarded-host
69
+ ok 8 - gets ips from x-forwarded-for
70
+ ok 9 - port is defined
71
+ ok 10 - port is taken from x-forwarded-for or host
72
+ ok 5 - trust proxy IP addresses # time=8.978ms
73
+
74
+ # Subtest: trust proxy protocol
75
+ 1..31
76
+ ok 1 - should not error
77
+ ok 2 - ip is defined
78
+ ok 3 - gets ip from x-forwarded-for
79
+ ok 4 - host is defined
80
+ ok 5 - gets host from x-forwarded-host
81
+ ok 6 - should be equal
82
+ ok 7 - gets hostname from x-forwarded-host
83
+ ok 8 - protocol is defined
84
+ ok 9 - gets protocol from x-forwarded-proto
85
+ ok 10 - port is defined
86
+ ok 11 - port is taken from x-forwarded-for or host
87
+ ok 12 - ip is defined
88
+ ok 13 - gets ip from x-forwarded-for
89
+ ok 14 - host is defined
90
+ ok 15 - gets host from x-forwarded-host
91
+ ok 16 - should be equal
92
+ ok 17 - gets hostname from x-forwarded-host
93
+ ok 18 - protocol is defined
94
+ ok 19 - gets protocol from x-forwarded-proto
95
+ ok 20 - port is defined
96
+ ok 21 - port is taken from x-forwarded-for or host
97
+ ok 22 - ip is defined
98
+ ok 23 - gets ip from x-forwarded-for
99
+ ok 24 - host is defined
100
+ ok 25 - gets host from x-forwarded-host
101
+ ok 26 - should be equal
102
+ ok 27 - gets hostname from x-forwarded-host
103
+ ok 28 - protocol is defined
104
+ ok 29 - gets protocol from x-forwarded-proto
105
+ ok 30 - port is defined
106
+ ok 31 - port is taken from x-forwarded-for or host
107
+ ok 6 - trust proxy protocol # time=9.601ms
108
+
109
+ 1..6
@@ -0,0 +1,12 @@
1
+ TAP version 14
2
+ # Subtest: Should export withTypeProvider function
3
+ 1..1
4
+ ok 1 - (unnamed test)
5
+ ok 1 - Should export withTypeProvider function # time=8.425ms
6
+
7
+ # Subtest: Should return same instance
8
+ 1..1
9
+ ok 1 - should be equal
10
+ ok 2 - Should return same instance # time=0.746ms
11
+
12
+ 1..2
@@ -0,0 +1,14 @@
1
+ TAP version 14
2
+ # Subtest: can be created - unlock
3
+ 1..1
4
+ ok 1 - (unnamed test)
5
+ ok 1 - can be created - unlock # time=6.734ms
6
+
7
+ ok 2 - should not error
8
+ # Subtest: request - unlock
9
+ 1..2
10
+ ok 1 - should not error
11
+ ok 2 - should be equal
12
+ ok 3 - request - unlock # time=9.21ms
13
+
14
+ 1..3
@@ -0,0 +1,8 @@
1
+ TAP version 14
2
+ # Subtest: upgrade to both servers
3
+ 1..2
4
+ ok 1 - upgrade event {"address":"127.0.0.1","family":"IPv4","port":51916}
5
+ ok 2 - upgrade event {"address":"::1","family":"IPv6","port":51916}
6
+ ok 1 - upgrade to both servers # time=28.465ms
7
+
8
+ 1..1
@@ -0,0 +1,39 @@
1
+ TAP version 14
2
+ # Subtest: Should rewrite url
3
+ 1..5
4
+ ok 1 - should not error
5
+ ok 2 - should be equal
6
+ ok 3 - should not error
7
+ ok 4 - should be equivalent
8
+ ok 5 - should be equal
9
+ ok 1 - Should rewrite url # time=38.251ms
10
+
11
+ # Subtest: Should not rewrite if the url is the same
12
+ 1..4
13
+ ok 1 - should not error
14
+ ok 2 - should be equal
15
+ ok 3 - should not error
16
+ ok 4 - should be equal
17
+ ok 2 - Should not rewrite if the url is the same # time=5.228ms
18
+
19
+ # Subtest: Should throw an error
20
+ 1..5
21
+ ok 1 - should not error
22
+ ok 2 - should be equal
23
+ ok 3 - should be equal
24
+ ok 4 - should be equal
25
+ ok 5 - should be equal
26
+ ok 3 - Should throw an error # time=8.587ms
27
+
28
+ # Subtest: Should rewrite url but keep originalUrl unchanged
29
+ 1..7
30
+ ok 1 - should not error
31
+ ok 2 - should be equal
32
+ ok 3 - should be equal
33
+ ok 4 - should be equal
34
+ ok 5 - should not error
35
+ ok 6 - should be equivalent
36
+ ok 7 - should be equal
37
+ ok 4 - Should rewrite url but keep originalUrl unchanged # time=4.347ms
38
+
39
+ 1..4
@@ -0,0 +1,33 @@
1
+ TAP version 14
2
+ # Subtest: use semicolon delimiter default false
3
+ 1..4
4
+ ok 1 - should not error
5
+ ok 2 - should not error
6
+ ok 3 - should be equal
7
+ ok 4 - should be equivalent
8
+ ok 1 - use semicolon delimiter default false # time=34.406ms
9
+
10
+ # Subtest: use semicolon delimiter set to true
11
+ 1..4
12
+ ok 1 - should not error
13
+ ok 2 - should not error
14
+ ok 3 - should be equal
15
+ ok 4 - should be equivalent
16
+ ok 2 - use semicolon delimiter set to true # time=4.572ms
17
+
18
+ # Subtest: use semicolon delimiter set to false
19
+ 1..4
20
+ ok 1 - should not error
21
+ ok 2 - should not error
22
+ ok 3 - should be equal
23
+ ok 4 - should be equivalent
24
+ ok 3 - use semicolon delimiter set to false # time=3.693ms
25
+
26
+ # Subtest: use semicolon delimiter set to false return 404
27
+ 1..3
28
+ ok 1 - should not error
29
+ ok 2 - should not error
30
+ ok 3 - should be equal
31
+ ok 4 - use semicolon delimiter set to false return 404 # time=10.561ms
32
+
33
+ 1..4
@@ -0,0 +1,180 @@
1
+ TAP version 14
2
+ # Subtest: should work with valid payload
3
+ 1..3
4
+ ok 1 - should not error
5
+ ok 2 - should be equivalent
6
+ ok 3 - should be equal
7
+ ok 1 - should work with valid payload # time=42.047ms
8
+
9
+ # Subtest: should fail immediately with invalid payload
10
+ 1..3
11
+ ok 1 - should not error
12
+ ok 2 - should be equivalent
13
+ ok 3 - should be equal
14
+ ok 2 - should fail immediately with invalid payload # time=12.976ms
15
+
16
+ # Subtest: should be able to use setErrorHandler specify custom validation error
17
+ 1..3
18
+ ok 1 - should not error
19
+ ok 2 - should be equivalent
20
+ ok 3 - should be equal
21
+ ok 3 - should be able to use setErrorHandler specify custom validation error # time=8.806ms
22
+
23
+ # Subtest: validation error has 400 statusCode set
24
+ 1..3
25
+ ok 1 - should not error
26
+ ok 2 - should be equivalent
27
+ ok 3 - should be equal
28
+ ok 4 - validation error has 400 statusCode set # time=7.87ms
29
+
30
+ # Subtest: error inside custom error handler should have validationContext
31
+ 1..1
32
+ ok 1 - should be equal
33
+ ok 5 - error inside custom error handler should have validationContext # time=1.389ms
34
+
35
+ # Subtest: error inside custom error handler should have validationContext if specified by custom error handler
36
+ 1..1
37
+ ok 1 - should be equal
38
+ ok 6 - error inside custom error handler should have validationContext if specified by custom error handler # time=1.284ms
39
+
40
+ # Subtest: should be able to attach validation to request
41
+ 1..3
42
+ ok 1 - should not error
43
+ ok 2 - should be equivalent
44
+ ok 3 - should be equal
45
+ ok 7 - should be able to attach validation to request # time=12.039ms
46
+
47
+ # Subtest: should respect when attachValidation is explicitly set to false
48
+ 1..3
49
+ ok 1 - should not error
50
+ ok 2 - should be equivalent
51
+ ok 3 - should be equal
52
+ ok 8 - should respect when attachValidation is explicitly set to false # time=6.77ms
53
+
54
+ # Subtest: Attached validation error should take precedence over setErrorHandler
55
+ 1..3
56
+ ok 1 - should not error
57
+ ok 2 - should be equivalent
58
+ ok 3 - should be equal
59
+ ok 9 - Attached validation error should take precedence over setErrorHandler # time=6.239ms
60
+
61
+ # Subtest: should handle response validation error
62
+ 1..2
63
+ ok 1 - should not error
64
+ ok 2 - should be equal
65
+ ok 10 - should handle response validation error # time=4.118ms
66
+
67
+ # Subtest: should handle response validation error with promises
68
+ 1..2
69
+ ok 1 - should not error
70
+ ok 2 - should be equal
71
+ ok 11 - should handle response validation error with promises # time=2.008ms
72
+
73
+ # Subtest: should return a defined output message parsing AJV errors
74
+ 1..2
75
+ ok 1 - should not error
76
+ ok 2 - should be equal
77
+ ok 12 - should return a defined output message parsing AJV errors # time=6.6ms
78
+
79
+ # Subtest: should return a defined output message parsing JOI errors
80
+ 1..2
81
+ ok 1 - should not error
82
+ ok 2 - should be equal
83
+ ok 13 - should return a defined output message parsing JOI errors # time=5.083ms
84
+
85
+ # Subtest: should return a defined output message parsing JOI error details
86
+ 1..2
87
+ ok 1 - should not error
88
+ ok 2 - should be equal
89
+ ok 14 - should return a defined output message parsing JOI error details # time=1.832ms
90
+
91
+ # Subtest: the custom error formatter context must be the server instance
92
+ 1..4
93
+ ok 1 - should be equivalent
94
+ ok 2 - should not error
95
+ ok 3 - should be equivalent
96
+ ok 4 - should be equal
97
+ ok 15 - the custom error formatter context must be the server instance # time=6.03ms
98
+
99
+ # Subtest: the custom error formatter context must be the server instance in options
100
+ 1..4
101
+ ok 1 - should be equivalent
102
+ ok 2 - should not error
103
+ ok 3 - should be equivalent
104
+ ok 4 - should be equal
105
+ ok 16 - the custom error formatter context must be the server instance in options # time=5.754ms
106
+
107
+ # Subtest: should call custom error formatter
108
+ 1..9
109
+ ok 1 - should be equal
110
+ ok 2 - should be equal
111
+ ok 3 - should be equal
112
+ ok 4 - should be equal
113
+ ok 5 - should be equivalent
114
+ ok 6 - should be equal
115
+ ok 7 - should not error
116
+ ok 8 - should be equivalent
117
+ ok 9 - should be equal
118
+ ok 17 - should call custom error formatter # time=6.88ms
119
+
120
+ # Subtest: should catch error inside formatter and return message
121
+ 1..3
122
+ ok 1 - should not error
123
+ ok 2 - should be equivalent
124
+ ok 3 - should be equal
125
+ ok 18 - should catch error inside formatter and return message # time=7.526ms
126
+
127
+ # Subtest: cannot create a fastify instance with wrong type of errorFormatter
128
+ 1..3
129
+ ok 1 - should be equal
130
+ ok 2 - should be equal
131
+ ok 3 - should be equal
132
+ ok 19 - cannot create a fastify instance with wrong type of errorFormatter # time=1.017ms
133
+
134
+ # Subtest: should register a route based schema error formatter
135
+ 1..3
136
+ ok 1 - should not error
137
+ ok 2 - should be equivalent
138
+ ok 3 - should be equal
139
+ ok 20 - should register a route based schema error formatter # time=5.838ms
140
+
141
+ # Subtest: prefer route based error formatter over global one
142
+ 1..9
143
+ ok 1 - should not error
144
+ ok 2 - should be equivalent
145
+ ok 3 - should be equal
146
+ ok 4 - should not error
147
+ ok 5 - should be equivalent
148
+ ok 6 - should be equal
149
+ ok 7 - should not error
150
+ ok 8 - should be equivalent
151
+ ok 9 - should be equal
152
+ ok 21 - prefer route based error formatter over global one # time=7.855ms
153
+
154
+ # Subtest: adding schemaErrorFormatter
155
+ 1..3
156
+ ok 1 - should not error
157
+ ok 2 - should be equivalent
158
+ ok 3 - should be equal
159
+ ok 22 - adding schemaErrorFormatter # time=6.377ms
160
+
161
+ # Subtest: plugin override
162
+ 1..15
163
+ ok 1 - should not error
164
+ ok 2 - should be equivalent
165
+ ok 3 - should be equal
166
+ ok 4 - should not error
167
+ ok 5 - should be equivalent
168
+ ok 6 - should be equal
169
+ ok 7 - should not error
170
+ ok 8 - should be equivalent
171
+ ok 9 - should be equal
172
+ ok 10 - should not error
173
+ ok 11 - should be equivalent
174
+ ok 12 - should be equal
175
+ ok 13 - should not error
176
+ ok 14 - should be equivalent
177
+ ok 15 - should be equal
178
+ ok 23 - plugin override # time=10.139ms
179
+
180
+ 1..23
@@ -0,0 +1,151 @@
1
+ TAP version 14
2
+ # Subtest: Should register a versioned route
3
+ 1..11
4
+ ok 1 - should not error
5
+ ok 2 - should be equivalent
6
+ ok 3 - should be equal
7
+ ok 4 - should not error
8
+ ok 5 - should be equivalent
9
+ ok 6 - should be equal
10
+ ok 7 - should not error
11
+ ok 8 - should be equivalent
12
+ ok 9 - should be equal
13
+ ok 10 - should not error
14
+ ok 11 - should be equal
15
+ ok 1 - Should register a versioned route # time=20.923ms
16
+
17
+ # Subtest: Should register a versioned route via route constraints
18
+ 1..6
19
+ ok 1 - should not error
20
+ ok 2 - should be equivalent
21
+ ok 3 - should be equal
22
+ ok 4 - should not error
23
+ ok 5 - should be equivalent
24
+ ok 6 - should be equal
25
+ ok 2 - Should register a versioned route via route constraints # time=1.942ms
26
+
27
+ # Subtest: Should register the same route with different versions
28
+ 1..8
29
+ ok 1 - should not error
30
+ ok 2 - should be equal
31
+ ok 3 - should be equal
32
+ ok 4 - should not error
33
+ ok 5 - should be equal
34
+ ok 6 - should be equal
35
+ ok 7 - should not error
36
+ ok 8 - should be equal
37
+ ok 3 - Should register the same route with different versions # time=2.04ms
38
+
39
+ # Subtest: The versioned route should take precedence
40
+ 1..3
41
+ ok 1 - should not error
42
+ ok 2 - should be equivalent
43
+ ok 3 - should be equal
44
+ ok 4 - The versioned route should take precedence # time=1.453ms
45
+
46
+ # Subtest: Versioned route but not version header should return a 404
47
+ 1..2
48
+ ok 1 - should not error
49
+ ok 2 - should be equal
50
+ ok 5 - Versioned route but not version header should return a 404 # time=1.25ms
51
+
52
+ # Subtest: Should register a versioned route
53
+ 1..6
54
+ ok 1 - should not error
55
+ ok 2 - should not error
56
+ ok 3 - should be equal
57
+ ok 4 - should be equivalent
58
+ ok 5 - should not error
59
+ ok 6 - should be equal
60
+ ok 6 - Should register a versioned route # time=13.091ms
61
+
62
+ # Subtest: Shorthand route declaration
63
+ 1..5
64
+ ok 1 - should not error
65
+ ok 2 - should be equivalent
66
+ ok 3 - should be equal
67
+ ok 4 - should not error
68
+ ok 5 - should be equal
69
+ ok 7 - Shorthand route declaration # time=3.041ms
70
+
71
+ # Subtest: The not found handler should not erase the Accept-Version header
72
+ 1..13
73
+ ok 1 - should be equivalent
74
+ ok 2 - should be equivalent
75
+ ok 3 - should be equivalent
76
+ ok 4 - should be equivalent
77
+ ok 5 - should be equivalent
78
+ ok 6 - should be equivalent
79
+ ok 7 - should be equivalent
80
+ ok 8 - should be equivalent
81
+ ok 9 - should be equivalent
82
+ ok 10 - should be equivalent
83
+ ok 11 - should not error
84
+ ok 12 - should be equivalent
85
+ ok 13 - should be equal
86
+ ok 8 - The not found handler should not erase the Accept-Version header # time=2.467ms
87
+
88
+ # Subtest: Bad accept version (inject)
89
+ 1..4
90
+ ok 1 - should not error
91
+ ok 2 - should be equal
92
+ ok 3 - should not error
93
+ ok 4 - should be equal
94
+ ok 9 - Bad accept version (inject) # time=1.613ms
95
+
96
+ # Subtest: Bad accept version (server)
97
+ 1..5
98
+ ok 1 - should not error
99
+ ok 2 - should not error
100
+ ok 3 - should be equal
101
+ ok 4 - should not error
102
+ ok 5 - should be equal
103
+ ok 10 - Bad accept version (server) # time=4.188ms
104
+
105
+ # Subtest: test log stream
106
+ 1..3
107
+ ok 1 - should not error
108
+ ok 2 - should be equal
109
+ ok 3 - should be equal
110
+ ok 11 - test log stream # time=5.422ms
111
+
112
+ # Subtest: Should register a versioned route with custom versioning strategy
113
+ 1..8
114
+ ok 1 - should not error
115
+ ok 2 - should be equivalent
116
+ ok 3 - should be equal
117
+ ok 4 - should not error
118
+ ok 5 - should be equivalent
119
+ ok 6 - should be equal
120
+ ok 7 - should not error
121
+ ok 8 - should be equal
122
+ ok 12 - Should register a versioned route with custom versioning strategy # time=3.232ms
123
+
124
+ # Subtest: Should get error using an invalid a versioned route, using default validation (deprecated versioning option)
125
+ 1..3
126
+ ok 1 - should be equal
127
+ ok 2 - should not error
128
+ ok 3 - should be equal
129
+ ok 13 - Should get error using an invalid a versioned route, using default validation (deprecated versioning option) # time=1.832ms
130
+
131
+ # Subtest: Vary header check (for documentation example)
132
+ 1..8
133
+ ok 1 - should not error
134
+ ok 2 - should be equivalent
135
+ ok 3 - should be equal
136
+ ok 4 - should be equal
137
+ ok 5 - should not error
138
+ ok 6 - should be equivalent
139
+ ok 7 - should be equal
140
+ ok 8 - should be equal
141
+ ok 14 - Vary header check (for documentation example) # time=2.336ms
142
+
143
+ # Subtest: Should trigger a warning when a versioned route is registered via version option
144
+ 1..4
145
+ ok 1 - FSTDEP008 has been emitted
146
+ ok 2 - should not error
147
+ ok 3 - should be equivalent
148
+ ok 4 - should be equal
149
+ ok 15 - Should trigger a warning when a versioned route is registered via version option # time=10.462ms
150
+
151
+ 1..15
@@ -0,0 +1,51 @@
1
+ TAP version 14
2
+ # Subtest: should response with a ReadableStream
3
+ 1..2
4
+ ok 1 - should be equal
5
+ ok 2 - should be equal
6
+ ok 1 - should response with a ReadableStream # time=22.905ms
7
+
8
+ # Subtest: should response with a Response
9
+ 1..3
10
+ ok 1 - should be equal
11
+ ok 2 - should be equal
12
+ ok 3 - should be equal
13
+ ok 2 - should response with a Response # time=14.387ms
14
+
15
+ # Subtest: able to use in onSend hook - ReadableStream
16
+ 1..4
17
+ ok 1 - should be equal
18
+ ok 2 - should be equal
19
+ ok 3 - should be equal
20
+ ok 4 - should be equal
21
+ ok 3 - able to use in onSend hook - ReadableStream # time=2.646ms
22
+
23
+ # Subtest: able to use in onSend hook - Response
24
+ 1..4
25
+ ok 1 - should be equal
26
+ ok 2 - should be equal
27
+ ok 3 - should be equal
28
+ ok 4 - should be equal
29
+ ok 4 - able to use in onSend hook - Response # time=2.512ms
30
+
31
+ # Subtest: Error when Response.bodyUsed
32
+ 1..4
33
+ ok 1 - should be equal
34
+ ok 2 - should be equal
35
+ ok 3 - should be equal
36
+ ok 4 - should be equal
37
+ ok 5 - Error when Response.bodyUsed # time=3.136ms
38
+
39
+ # Subtest: allow to pipe with fetch
40
+ 1..2
41
+ ok 1 - should be equal
42
+ ok 2 - should be equivalent
43
+ ok 6 - allow to pipe with fetch # time=22.354ms
44
+
45
+ # Subtest: allow to pipe with undici.fetch
46
+ 1..2
47
+ ok 1 - should be equal
48
+ ok 2 - should be equivalent
49
+ ok 7 - allow to pipe with undici.fetch # time=8.49ms
50
+
51
+ 1..7
@@ -0,0 +1,11 @@
1
+ TAP version 14
2
+ # Subtest: should resolve immediately when reply[kReplyHijacked] is true
3
+ 1..0
4
+ ok 1 - should resolve immediately when reply[kReplyHijacked] is true # time=1.028ms
5
+
6
+ # Subtest: should reject immediately when reply[kReplyHijacked] is true
7
+ 1..1
8
+ ok 1 - should be equal
9
+ ok 2 - should reject immediately when reply[kReplyHijacked] is true # time=3.683ms
10
+
11
+ 1..2
package/.taprc CHANGED
@@ -8,3 +8,4 @@ node-arg: --allow-natives-syntax
8
8
 
9
9
  files:
10
10
  - 'test/**/*.test.js'
11
+ - 'test/**/*.test.mjs'
package/README.md CHANGED
@@ -125,6 +125,7 @@ yarn add fastify
125
125
 
126
126
  // ESM
127
127
  import Fastify from 'fastify'
128
+
128
129
  const fastify = Fastify({
129
130
  logger: true
130
131
  })
@@ -150,6 +151,7 @@ with async-await:
150
151
  ```js
151
152
  // ESM
152
153
  import Fastify from 'fastify'
154
+
153
155
  const fastify = Fastify({
154
156
  logger: true
155
157
  })
@@ -323,6 +325,8 @@ listed in alphabetical order.
323
325
  <https://twitter.com/jsumners79>, <https://www.npmjs.com/~jsumners>
324
326
  * [__Aras Abbasi__](https://github.com/uzlopak),
325
327
  <https://www.npmjs.com/~uzlopak>
328
+ * [__Gürgün Dayıoğlu__](https://github.com/gurgunday),
329
+ <https://www.npmjs.com/~gurgunday>
326
330
 
327
331
  ### Fastify Plugins team
328
332
  * [__Matteo Collina__](https://github.com/mcollina),
package/SPONSORS.md CHANGED
@@ -13,7 +13,7 @@ _Be the first!_
13
13
 
14
14
  ## Tier 3
15
15
 
16
- _Be the first!_
16
+ - [Mercedes-Benz Group](https://github.com/mercedes-benz)
17
17
 
18
18
  ## Tier 2
19
19
 
@@ -237,14 +237,14 @@ development. Migrations provide a repeatable and testable way to modify a
237
237
  database's schema and prevent data loss.
238
238
 
239
239
  As stated at the beginning of the guide, Fastify is database agnostic and any
240
- NodeJS database migration tool can be used with it. We will give an example of
240
+ Node.js database migration tool can be used with it. We will give an example of
241
241
  using [Postgrator](https://www.npmjs.com/package/postgrator) which has support
242
242
  for Postgres, MySQL, SQL Server and SQLite. For MongoDB migrations, please check
243
243
  [migrate-mongo](https://www.npmjs.com/package/migrate-mongo).
244
244
 
245
245
  #### [Postgrator](https://www.npmjs.com/package/postgrator)
246
246
 
247
- Postgrator is NodeJS SQL migration tool that uses a directory of SQL scripts to
247
+ Postgrator is Node.js SQL migration tool that uses a directory of SQL scripts to
248
248
  alter the database schema. Each file an migrations folder need to follow the
249
249
  pattern: ` [version].[action].[optional-description].sql`.
250
250
 
@@ -49,7 +49,7 @@ That will be achieved by wrapping into a custom plugin two main features:
49
49
 
50
50
  1. the mechanism for authenticating with the provider
51
51
  [decorating](../Reference/Decorators.md) the `fastify` object with the
52
- authentication key (`magicKey` from here onwards)
52
+ authentication key (`magicKey` from here onward)
53
53
  1. the mechanism for denying requests that would, otherwise, fail
54
54
 
55
55
  ### Hands-on