jishushell 0.6.18 → 0.7.3

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 (343) hide show
  1. package/apps/anythingllm-container.yaml +1 -0
  2. package/apps/browserless-chromium-container.yaml +1 -0
  3. package/apps/filebrowser-container.yaml +1 -0
  4. package/apps/hermes-container.yaml +1 -7
  5. package/apps/immich-container-lite.yaml +337 -0
  6. package/apps/immich-container.yaml +371 -0
  7. package/apps/jishu-kb-container.yaml +26 -21
  8. package/apps/ollama-binary.yaml +1 -0
  9. package/apps/ollama-cpu-container.yaml +1 -0
  10. package/apps/ollama-with-hollama-binary.yaml +2 -0
  11. package/apps/openclaw-binary.yaml +4 -8
  12. package/apps/openclaw-container.yaml +1 -7
  13. package/apps/openclaw-with-ollama-container.yaml +1 -0
  14. package/apps/openclaw-with-searxng-container.yaml +20 -0
  15. package/apps/searxng-container.yaml +20 -0
  16. package/apps/weknora-container.yaml +5 -0
  17. package/dependencies/jishushell-panel-0.7.3.tgz +0 -0
  18. package/dist/cli/core.js +1 -1
  19. package/dist/cli/core.js.map +1 -1
  20. package/dist/cli/doctor.js +96 -0
  21. package/dist/cli/doctor.js.map +1 -1
  22. package/dist/config.d.ts +9 -1
  23. package/dist/config.js +72 -2
  24. package/dist/config.js.map +1 -1
  25. package/dist/install.js +60 -19
  26. package/dist/install.js.map +1 -1
  27. package/dist/routes/admin.d.ts +2 -0
  28. package/dist/routes/admin.js +72 -0
  29. package/dist/routes/admin.js.map +1 -0
  30. package/dist/routes/docker.d.ts +2 -0
  31. package/dist/routes/docker.js +58 -0
  32. package/dist/routes/docker.js.map +1 -0
  33. package/dist/routes/file-mounts.js +5 -8
  34. package/dist/routes/file-mounts.js.map +1 -1
  35. package/dist/routes/instances.d.ts +0 -14
  36. package/dist/routes/instances.js +44 -1184
  37. package/dist/routes/instances.js.map +1 -1
  38. package/dist/server.d.ts +6 -0
  39. package/dist/server.js +53 -20
  40. package/dist/server.js.map +1 -1
  41. package/dist/services/app-common/catalog-service.js +15 -5
  42. package/dist/services/app-common/catalog-service.js.map +1 -1
  43. package/dist/services/app-common/delete-service.js +5 -0
  44. package/dist/services/app-common/delete-service.js.map +1 -1
  45. package/dist/services/app-common/instance-store.js +3 -0
  46. package/dist/services/app-common/instance-store.js.map +1 -1
  47. package/dist/services/app-common/lifecycle-service.js +12 -4
  48. package/dist/services/app-common/lifecycle-service.js.map +1 -1
  49. package/dist/services/app-common/ownership.d.ts +3 -0
  50. package/dist/services/app-common/ownership.js +11 -0
  51. package/dist/services/app-common/ownership.js.map +1 -0
  52. package/dist/services/app-common/runtime-facts.js +2 -0
  53. package/dist/services/app-common/runtime-facts.js.map +1 -1
  54. package/dist/services/app-common/spec-materializer.d.ts +0 -1
  55. package/dist/services/app-common/spec-materializer.js +21 -87
  56. package/dist/services/app-common/spec-materializer.js.map +1 -1
  57. package/dist/services/app-common/status-refresh.js +25 -13
  58. package/dist/services/app-common/status-refresh.js.map +1 -1
  59. package/dist/services/app-modules/browserless/routes.js +5 -3
  60. package/dist/services/app-modules/browserless/routes.js.map +1 -1
  61. package/dist/services/capabilities/contract.d.ts +1 -2
  62. package/dist/services/capabilities/contract.js +0 -10
  63. package/dist/services/capabilities/contract.js.map +1 -1
  64. package/dist/services/capabilities/endpoint-validator.js +0 -1
  65. package/dist/services/capabilities/endpoint-validator.js.map +1 -1
  66. package/dist/services/capabilities/health.js +1 -1
  67. package/dist/services/capabilities/health.js.map +1 -1
  68. package/dist/services/capability-proxy/http.d.ts +7 -0
  69. package/dist/services/capability-proxy/http.js +555 -0
  70. package/dist/services/capability-proxy/http.js.map +1 -0
  71. package/dist/services/capability-proxy/terminal.d.ts +4 -0
  72. package/dist/services/capability-proxy/terminal.js +179 -0
  73. package/dist/services/capability-proxy/terminal.js.map +1 -0
  74. package/dist/services/connections/admin.js +19 -9
  75. package/dist/services/connections/admin.js.map +1 -1
  76. package/dist/services/connections/apply.d.ts +3 -9
  77. package/dist/services/connections/apply.js +0 -29
  78. package/dist/services/connections/apply.js.map +1 -1
  79. package/dist/services/connections/transactor.js +2 -2
  80. package/dist/services/connections/transactor.js.map +1 -1
  81. package/dist/services/files/bootstrap.d.ts +7 -0
  82. package/dist/services/files/bootstrap.js +16 -0
  83. package/dist/services/files/bootstrap.js.map +1 -0
  84. package/dist/services/files/photos/upload-page.d.ts +2 -0
  85. package/dist/services/files/photos/upload-page.js +248 -0
  86. package/dist/services/files/photos/upload-page.js.map +1 -0
  87. package/dist/services/files/photos/upload-store.d.ts +74 -0
  88. package/dist/services/files/photos/upload-store.js +432 -0
  89. package/dist/services/files/photos/upload-store.js.map +1 -0
  90. package/dist/services/http/proxy-utils.d.ts +7 -0
  91. package/dist/services/http/proxy-utils.js +29 -0
  92. package/dist/services/http/proxy-utils.js.map +1 -0
  93. package/dist/services/http/request-utils.d.ts +3 -0
  94. package/dist/services/http/request-utils.js +23 -0
  95. package/dist/services/http/request-utils.js.map +1 -0
  96. package/dist/services/instances/manager.d.ts +6 -5
  97. package/dist/services/instances/manager.js +45 -51
  98. package/dist/services/instances/manager.js.map +1 -1
  99. package/dist/services/instances/pairing.d.ts +17 -0
  100. package/dist/services/instances/pairing.js +53 -0
  101. package/dist/services/instances/pairing.js.map +1 -0
  102. package/dist/services/instances/status.d.ts +2 -0
  103. package/dist/services/instances/status.js +11 -0
  104. package/dist/services/instances/status.js.map +1 -0
  105. package/dist/services/integrations/hermes/integration.d.ts +1 -1
  106. package/dist/services/integrations/hermes/integration.js +7 -8
  107. package/dist/services/integrations/hermes/integration.js.map +1 -1
  108. package/dist/services/integrations/immich/client.d.ts +93 -0
  109. package/dist/services/integrations/immich/client.js +458 -0
  110. package/dist/services/integrations/immich/client.js.map +1 -0
  111. package/dist/services/integrations/immich/config.d.ts +15 -0
  112. package/dist/services/integrations/immich/config.js +178 -0
  113. package/dist/services/integrations/immich/config.js.map +1 -0
  114. package/dist/services/integrations/immich/discovery.d.ts +9 -0
  115. package/dist/services/integrations/immich/discovery.js +101 -0
  116. package/dist/services/integrations/immich/discovery.js.map +1 -0
  117. package/dist/services/integrations/immich/gallery-renderer.d.ts +5 -0
  118. package/dist/services/integrations/immich/gallery-renderer.js +150 -0
  119. package/dist/services/integrations/immich/gallery-renderer.js.map +1 -0
  120. package/dist/services/integrations/immich/immich-shim.d.ts +11 -0
  121. package/dist/services/integrations/immich/immich-shim.js +439 -0
  122. package/dist/services/integrations/immich/immich-shim.js.map +1 -0
  123. package/dist/services/integrations/immich/integration.d.ts +18 -0
  124. package/dist/services/integrations/immich/integration.js +64 -0
  125. package/dist/services/integrations/immich/integration.js.map +1 -0
  126. package/dist/services/integrations/immich/photo-library.d.ts +4 -0
  127. package/dist/services/integrations/immich/photo-library.js +63 -0
  128. package/dist/services/integrations/immich/photo-library.js.map +1 -0
  129. package/dist/services/integrations/immich/review-executor.d.ts +3 -0
  130. package/dist/services/integrations/immich/review-executor.js +41 -0
  131. package/dist/services/integrations/immich/review-executor.js.map +1 -0
  132. package/dist/services/integrations/immich/review-session-service.d.ts +27 -0
  133. package/dist/services/integrations/immich/review-session-service.js +206 -0
  134. package/dist/services/integrations/immich/review-session-service.js.map +1 -0
  135. package/dist/services/integrations/immich/review-store.d.ts +47 -0
  136. package/dist/services/integrations/immich/review-store.js +347 -0
  137. package/dist/services/integrations/immich/review-store.js.map +1 -0
  138. package/dist/services/integrations/immich/routes.d.ts +7 -0
  139. package/dist/services/integrations/immich/routes.js +363 -0
  140. package/dist/services/integrations/immich/routes.js.map +1 -0
  141. package/dist/services/integrations/immich/types.d.ts +186 -0
  142. package/dist/services/integrations/immich/types.js +2 -0
  143. package/dist/services/integrations/immich/types.js.map +1 -0
  144. package/dist/services/integrations/index.d.ts +1 -0
  145. package/dist/services/integrations/index.js +1 -0
  146. package/dist/services/integrations/index.js.map +1 -1
  147. package/dist/services/integrations/installable/installers/integration.js +113 -7
  148. package/dist/services/integrations/installable/installers/integration.js.map +1 -1
  149. package/dist/services/integrations/jishukb/integration.d.ts +3 -1
  150. package/dist/services/integrations/jishukb/integration.js +121 -10
  151. package/dist/services/integrations/jishukb/integration.js.map +1 -1
  152. package/dist/services/integrations/openclaw/integration.d.ts +21 -7
  153. package/dist/services/integrations/openclaw/integration.js +385 -158
  154. package/dist/services/integrations/openclaw/integration.js.map +1 -1
  155. package/dist/services/integrations/openclaw/jishukb-native-mcp.d.ts +58 -0
  156. package/dist/services/integrations/openclaw/jishukb-native-mcp.js +373 -0
  157. package/dist/services/integrations/openclaw/jishukb-native-mcp.js.map +1 -0
  158. package/dist/services/integrations/openclaw/jishukb-shim.d.ts +8 -4
  159. package/dist/services/integrations/openclaw/jishukb-shim.js +624 -17
  160. package/dist/services/integrations/openclaw/jishukb-shim.js.map +1 -1
  161. package/dist/services/integrations/openclaw/mcporter.d.ts +13 -0
  162. package/dist/services/integrations/openclaw/mcporter.js +31 -0
  163. package/dist/services/integrations/openclaw/mcporter.js.map +1 -1
  164. package/dist/services/integrations/openclaw/native-mcp.d.ts +48 -0
  165. package/dist/services/integrations/openclaw/native-mcp.js +125 -0
  166. package/dist/services/integrations/openclaw/native-mcp.js.map +1 -0
  167. package/dist/services/integrations/openclaw/routes.js +4 -1
  168. package/dist/services/integrations/openclaw/routes.js.map +1 -1
  169. package/dist/services/integrations/types.d.ts +5 -17
  170. package/dist/services/repair/runtime-repair.js +68 -1
  171. package/dist/services/repair/runtime-repair.js.map +1 -1
  172. package/dist/services/runtime/docker-network.d.ts +8 -0
  173. package/dist/services/runtime/docker-network.js +123 -0
  174. package/dist/services/runtime/docker-network.js.map +1 -0
  175. package/dist/services/runtime/driver-registry.d.ts +4 -0
  176. package/dist/services/runtime/driver-registry.js.map +1 -1
  177. package/dist/services/runtime/drivers/nomad.d.ts +1 -0
  178. package/dist/services/runtime/drivers/nomad.js +35 -5
  179. package/dist/services/runtime/drivers/nomad.js.map +1 -1
  180. package/dist/services/runtime/service-manager.d.ts +2 -0
  181. package/dist/services/runtime/service-manager.js +18 -0
  182. package/dist/services/runtime/service-manager.js.map +1 -0
  183. package/dist/services/runtime/types.d.ts +1 -0
  184. package/dist/services/runtime/workload-compiler.js +29 -4
  185. package/dist/services/runtime/workload-compiler.js.map +1 -1
  186. package/dist/services/setup/setup-manager.js +29 -73
  187. package/dist/services/setup/setup-manager.js.map +1 -1
  188. package/dist/services/system/runtime-ownership.d.ts +36 -0
  189. package/dist/services/system/runtime-ownership.js +250 -0
  190. package/dist/services/system/runtime-ownership.js.map +1 -0
  191. package/dist/services/system/system-reconciler.js +53 -0
  192. package/dist/services/system/system-reconciler.js.map +1 -1
  193. package/dist/types.d.ts +19 -3
  194. package/dist/utils/path-safety.js +1 -1
  195. package/dist/utils/service-user.d.ts +13 -0
  196. package/dist/utils/service-user.js +129 -0
  197. package/dist/utils/service-user.js.map +1 -0
  198. package/install/jishu-install.sh +0 -1
  199. package/node_modules/brace-expansion/dist/commonjs/index.js +24 -14
  200. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  201. package/node_modules/brace-expansion/dist/esm/index.js +24 -14
  202. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  203. package/node_modules/brace-expansion/package.json +2 -2
  204. package/node_modules/fast-uri/index.js +1 -1
  205. package/node_modules/fast-uri/package.json +1 -1
  206. package/node_modules/fast-uri/test/security.test.js +28 -0
  207. package/node_modules/fastify/SECURITY.md +1 -1
  208. package/node_modules/fastify/SPONSORS.md +6 -4
  209. package/node_modules/fastify/docs/Guides/Database.md +0 -28
  210. package/node_modules/fastify/docs/Guides/Ecosystem.md +13 -2
  211. package/node_modules/fastify/docs/Guides/Serverless.md +2 -2
  212. package/node_modules/fastify/docs/Guides/Write-Plugin.md +1 -1
  213. package/node_modules/fastify/docs/Reference/Encapsulation.md +27 -26
  214. package/node_modules/fastify/docs/Reference/Errors.md +10 -4
  215. package/node_modules/fastify/docs/Reference/HTTP2.md +10 -10
  216. package/node_modules/fastify/docs/Reference/Hooks.md +4 -4
  217. package/node_modules/fastify/docs/Reference/Index.md +14 -16
  218. package/node_modules/fastify/docs/Reference/LTS.md +12 -13
  219. package/node_modules/fastify/docs/Reference/Lifecycle.md +9 -8
  220. package/node_modules/fastify/docs/Reference/Logging.md +44 -39
  221. package/node_modules/fastify/docs/Reference/Middleware.md +21 -25
  222. package/node_modules/fastify/docs/Reference/Principles.md +2 -2
  223. package/node_modules/fastify/docs/Reference/Reply.md +6 -1
  224. package/node_modules/fastify/docs/Reference/Request.md +27 -16
  225. package/node_modules/fastify/docs/Reference/Routes.md +5 -2
  226. package/node_modules/fastify/docs/Reference/Server.md +31 -3
  227. package/node_modules/fastify/docs/Reference/Type-Providers.md +29 -5
  228. package/node_modules/fastify/docs/Reference/Validation-and-Serialization.md +15 -2
  229. package/node_modules/fastify/docs/Reference/Warnings.md +7 -6
  230. package/node_modules/fastify/eslint.config.js +7 -2
  231. package/node_modules/fastify/fastify.d.ts +8 -3
  232. package/node_modules/fastify/fastify.js +43 -14
  233. package/node_modules/fastify/lib/content-type-parser.js +13 -1
  234. package/node_modules/fastify/lib/decorate.js +11 -3
  235. package/node_modules/fastify/lib/error-handler.js +4 -3
  236. package/node_modules/fastify/lib/error-serializer.js +59 -59
  237. package/node_modules/fastify/lib/errors.js +16 -1
  238. package/node_modules/fastify/lib/four-oh-four.js +14 -9
  239. package/node_modules/fastify/lib/handle-request.js +11 -5
  240. package/node_modules/fastify/lib/plugin-override.js +2 -1
  241. package/node_modules/fastify/lib/plugin-utils.js +5 -5
  242. package/node_modules/fastify/lib/reply.js +63 -8
  243. package/node_modules/fastify/lib/request.js +14 -4
  244. package/node_modules/fastify/lib/route.js +20 -6
  245. package/node_modules/fastify/lib/schema-controller.js +1 -1
  246. package/node_modules/fastify/lib/schemas.js +37 -30
  247. package/node_modules/fastify/lib/symbols.js +3 -1
  248. package/node_modules/fastify/lib/validation.js +1 -13
  249. package/node_modules/fastify/lib/warnings.js +3 -3
  250. package/node_modules/fastify/package.json +13 -15
  251. package/node_modules/fastify/scripts/validate-ecosystem-links.js +1 -0
  252. package/node_modules/fastify/test/bundler/esbuild/package.json +1 -1
  253. package/node_modules/fastify/test/close-pipelining.test.js +1 -2
  254. package/node_modules/fastify/test/custom-http-server.test.js +38 -0
  255. package/node_modules/fastify/test/decorator-instance-properties.test.js +63 -0
  256. package/node_modules/fastify/test/diagnostics-channel/async-error-handler.test.js +74 -0
  257. package/node_modules/fastify/test/hooks.test.js +23 -0
  258. package/node_modules/fastify/test/http-methods/get.test.js +1 -1
  259. package/node_modules/fastify/test/http2/plain.test.js +135 -0
  260. package/node_modules/fastify/test/http2/secure-with-fallback.test.js +1 -1
  261. package/node_modules/fastify/test/https/https.test.js +1 -2
  262. package/node_modules/fastify/test/internals/errors.test.js +31 -1
  263. package/node_modules/fastify/test/internals/plugin.test.js +3 -1
  264. package/node_modules/fastify/test/internals/request.test.js +27 -3
  265. package/node_modules/fastify/test/internals/schema-controller-perf.test.js +33 -0
  266. package/node_modules/fastify/test/logger/logging.test.js +18 -1
  267. package/node_modules/fastify/test/logger/options.test.js +38 -1
  268. package/node_modules/fastify/test/reply-error.test.js +1 -1
  269. package/node_modules/fastify/test/reply-trailers.test.js +70 -0
  270. package/node_modules/fastify/test/request-media-type.test.js +105 -0
  271. package/node_modules/fastify/test/route-prefix.test.js +34 -0
  272. package/node_modules/fastify/test/router-options.test.js +222 -11
  273. package/node_modules/fastify/test/schema-serialization.test.js +108 -0
  274. package/node_modules/fastify/test/schema-validation.test.js +24 -0
  275. package/node_modules/fastify/test/scripts/validate-ecosystem-links.test.js +40 -57
  276. package/node_modules/fastify/test/throw.test.js +14 -0
  277. package/node_modules/fastify/test/trust-proxy.test.js +21 -0
  278. package/node_modules/fastify/test/types/content-type-parser.tst.ts +70 -0
  279. package/node_modules/fastify/test/types/{decorate-request-reply.test-d.ts → decorate-request-reply.tst.ts} +4 -4
  280. package/node_modules/fastify/test/types/{dummy-plugin.ts → dummy-plugin.mts} +1 -1
  281. package/node_modules/fastify/test/types/errors.tst.ts +91 -0
  282. package/node_modules/fastify/test/types/fastify.tst.ts +351 -0
  283. package/node_modules/fastify/test/types/hooks.tst.ts +578 -0
  284. package/node_modules/fastify/test/types/instance.tst.ts +597 -0
  285. package/node_modules/fastify/test/types/{logger.test-d.ts → logger.tst.ts} +61 -62
  286. package/node_modules/fastify/test/types/plugin.tst.ts +96 -0
  287. package/node_modules/fastify/test/types/register.tst.ts +245 -0
  288. package/node_modules/fastify/test/types/reply.tst.ts +297 -0
  289. package/node_modules/fastify/test/types/request.tst.ts +199 -0
  290. package/node_modules/fastify/test/types/route.tst.ts +576 -0
  291. package/node_modules/fastify/test/types/{schema.test-d.ts → schema.tst.ts} +22 -22
  292. package/node_modules/fastify/test/types/{serverFactory.test-d.ts → serverFactory.tst.ts} +4 -4
  293. package/node_modules/fastify/test/types/tsconfig.json +9 -0
  294. package/node_modules/fastify/test/types/{type-provider.test-d.ts → type-provider.tst.ts} +256 -250
  295. package/node_modules/fastify/test/types/using.tst.ts +14 -0
  296. package/node_modules/fastify/types/errors.d.ts +3 -0
  297. package/node_modules/fastify/types/request.d.ts +23 -2
  298. package/node_modules/jishushell-panel/output/public/assets/{ApiKeyField-NKcbHjNz.js → ApiKeyField-Ce5d1xna.js} +1 -1
  299. package/node_modules/jishushell-panel/output/public/assets/{Dashboard-Da1fL38t.js → Dashboard-BXame3yg.js} +1 -1
  300. package/node_modules/jishushell-panel/output/public/assets/{HermesChatPanel-DZvmYsoh.js → HermesChatPanel-BHZtPCJd.js} +1 -1
  301. package/node_modules/jishushell-panel/output/public/assets/{HermesConfigForm-BLUWlKwm.js → HermesConfigForm-CB3GbNX9.js} +1 -1
  302. package/node_modules/jishushell-panel/output/public/assets/{InitPassword-BAKsshzk.js → InitPassword-Boab9F6g.js} +1 -1
  303. package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-DrIWCqo-.js +14 -0
  304. package/node_modules/jishushell-panel/output/public/assets/{Login-DHeOmwI8.js → Login-CzpOkNau.js} +1 -1
  305. package/node_modules/jishushell-panel/output/public/assets/NewInstance-CANXyCcL.js +1 -0
  306. package/node_modules/jishushell-panel/output/public/assets/{ProviderRecommendations-H0ByEYF0.js → ProviderRecommendations-BABo9VOC.js} +1 -1
  307. package/node_modules/jishushell-panel/output/public/assets/Settings-CKp5XxFh.js +1 -0
  308. package/node_modules/jishushell-panel/output/public/assets/Setup-C7xVDPow.js +1 -0
  309. package/node_modules/jishushell-panel/output/public/assets/{WeixinLoginPanel-D-T6BxkQ.js → WeixinLoginPanel-B765Xz4C.js} +1 -1
  310. package/node_modules/jishushell-panel/output/public/assets/{index-ERt6_ngA.js → index-Bs6DSbiR.js} +6 -6
  311. package/node_modules/jishushell-panel/output/public/assets/{registry-DF93EzIb.js → registry-sWIZsIEF.js} +2 -2
  312. package/node_modules/jishushell-panel/output/public/assets/{usePolling-DeoThIQn.js → usePolling-D4IDOQd_.js} +1 -1
  313. package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-Df8aUdv8.js +1 -0
  314. package/node_modules/jishushell-panel/output/public/assets/{vendor-react-Cc84NArf.js → vendor-react-0L0rjmYG.js} +3 -3
  315. package/node_modules/jishushell-panel/output/public/index.html +3 -3
  316. package/node_modules/jishushell-panel/package.json +1 -1
  317. package/node_modules/semver/classes/range.js +6 -2
  318. package/node_modules/semver/package.json +1 -1
  319. package/package.json +4 -4
  320. package/scripts/check-app-spec.mjs +4 -12
  321. package/scripts/check-architecture-boundaries.mjs +178 -0
  322. package/scripts/pack-gui-and-send-pi.sh +5 -3
  323. package/dependencies/jishushell-panel-0.6.18.tgz +0 -0
  324. package/dist/services/connections/suggestions.d.ts +0 -27
  325. package/dist/services/connections/suggestions.js +0 -124
  326. package/dist/services/connections/suggestions.js.map +0 -1
  327. package/node_modules/fastify/test/types/content-type-parser.test-d.ts +0 -72
  328. package/node_modules/fastify/test/types/errors.test-d.ts +0 -90
  329. package/node_modules/fastify/test/types/fastify.test-d.ts +0 -352
  330. package/node_modules/fastify/test/types/hooks.test-d.ts +0 -550
  331. package/node_modules/fastify/test/types/import.ts +0 -2
  332. package/node_modules/fastify/test/types/instance.test-d.ts +0 -588
  333. package/node_modules/fastify/test/types/plugin.test-d.ts +0 -97
  334. package/node_modules/fastify/test/types/register.test-d.ts +0 -237
  335. package/node_modules/fastify/test/types/reply.test-d.ts +0 -254
  336. package/node_modules/fastify/test/types/request.test-d.ts +0 -188
  337. package/node_modules/fastify/test/types/route.test-d.ts +0 -553
  338. package/node_modules/fastify/test/types/using.test-d.ts +0 -17
  339. package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-Dgyc_TX5.js +0 -14
  340. package/node_modules/jishushell-panel/output/public/assets/NewInstance-CIy0cYtp.js +0 -1
  341. package/node_modules/jishushell-panel/output/public/assets/Settings-DAT-UMfP.js +0 -1
  342. package/node_modules/jishushell-panel/output/public/assets/Setup-g3uckFYR.js +0 -1
  343. package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-CS8DFbkQ.js +0 -1
@@ -1,3 +1,7 @@
1
+ import { IncomingHttpHeaders } from 'node:http'
2
+ import { FromSchema, JSONSchema } from 'json-schema-to-ts'
3
+ import { Type, TSchema, Static } from 'typebox'
4
+ import { expect } from 'tstyche'
1
5
  import fastify, {
2
6
  FastifyTypeProvider,
3
7
  HookHandlerDoneFunction,
@@ -6,11 +10,7 @@ import fastify, {
6
10
  FastifyInstance,
7
11
  FastifyError,
8
12
  SafePromiseLike
9
- } from '../../fastify'
10
- import { expectAssignable, expectError, expectType } from 'tsd'
11
- import { IncomingHttpHeaders } from 'node:http'
12
- import { Type, TSchema, Static } from 'typebox'
13
- import { FromSchema, JSONSchema } from 'json-schema-to-ts'
13
+ } from '../../fastify.js'
14
14
 
15
15
  const server = fastify()
16
16
 
@@ -18,7 +18,7 @@ const server = fastify()
18
18
  // Default (unknown)
19
19
  // -------------------------------------------------------------------
20
20
 
21
- expectAssignable(server.get('/', (req) => expectType<unknown>(req.body)))
21
+ server.get('/', (req) => expect(req.body).type.toBe<unknown>())
22
22
 
23
23
  // -------------------------------------------------------------------
24
24
  // Remapping
@@ -29,7 +29,7 @@ interface NumberProvider extends FastifyTypeProvider {
29
29
  serializer: number
30
30
  } // remap all schemas to numbers
31
31
 
32
- expectAssignable(server.withTypeProvider<NumberProvider>().get(
32
+ server.withTypeProvider<NumberProvider>().get(
33
33
  '/',
34
34
  {
35
35
  schema: {
@@ -40,12 +40,12 @@ expectAssignable(server.withTypeProvider<NumberProvider>().get(
40
40
  }
41
41
  },
42
42
  (req) => {
43
- expectType<number & IncomingHttpHeaders>(req.headers)
44
- expectType<number>(req.body)
45
- expectType<number>(req.query)
46
- expectType<number>(req.params)
43
+ expect(req.headers).type.toBe<number & IncomingHttpHeaders>()
44
+ expect(req.body).type.toBe<number>()
45
+ expect(req.query).type.toBe<number>()
46
+ expect(req.params).type.toBe<number>()
47
47
  }
48
- ))
48
+ )
49
49
 
50
50
  // -------------------------------------------------------------------
51
51
  // Override
@@ -53,7 +53,7 @@ expectAssignable(server.withTypeProvider<NumberProvider>().get(
53
53
 
54
54
  interface OverriddenProvider extends FastifyTypeProvider { validator: 'inferenced' }
55
55
 
56
- expectAssignable(server.withTypeProvider<OverriddenProvider>().get<{ Body: 'override' }>(
56
+ server.withTypeProvider<OverriddenProvider>().get<{ Body: 'override' }>(
57
57
  '/',
58
58
  {
59
59
  schema: {
@@ -65,9 +65,9 @@ expectAssignable(server.withTypeProvider<OverriddenProvider>().get<{ Body: 'over
65
65
  }
66
66
  },
67
67
  (req) => {
68
- expectType<'override'>(req.body)
68
+ expect(req.body).type.toBe<'override'>()
69
69
  }
70
- ))
70
+ )
71
71
 
72
72
  // -------------------------------------------------------------------
73
73
  // TypeBox
@@ -78,7 +78,7 @@ interface TypeBoxProvider extends FastifyTypeProvider {
78
78
  serializer: this['schema'] extends TSchema ? Static<this['schema']> : unknown
79
79
  }
80
80
 
81
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
81
+ server.withTypeProvider<TypeBoxProvider>().get(
82
82
  '/',
83
83
  {
84
84
  schema: {
@@ -89,22 +89,22 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
89
89
  })
90
90
  },
91
91
  errorHandler: (error, request, reply) => {
92
- expectType<FastifyError>(error)
93
- expectAssignable<FastifyRequest>(request)
94
- expectType<number>(request.body.x)
95
- expectType<number>(request.body.y)
96
- expectType<number>(request.body.z)
97
- expectAssignable<FastifyReply>(reply)
92
+ expect(error).type.toBe<FastifyError>()
93
+ expect(request).type.toBeAssignableTo<FastifyRequest>()
94
+ expect(request.body.x).type.toBe<number>()
95
+ expect(request.body.y).type.toBe<number>()
96
+ expect(request.body.z).type.toBe<number>()
97
+ expect(reply).type.toBeAssignableTo<FastifyReply>()
98
98
  }
99
99
  },
100
100
  (req) => {
101
- expectType<number>(req.body.x)
102
- expectType<number>(req.body.y)
103
- expectType<number>(req.body.z)
101
+ expect(req.body.x).type.toBe<number>()
102
+ expect(req.body.y).type.toBe<number>()
103
+ expect(req.body.z).type.toBe<number>()
104
104
  }
105
- ))
105
+ )
106
106
 
107
- expectAssignable<FastifyInstance>(server.withTypeProvider<TypeBoxProvider>())
107
+ expect(server.withTypeProvider<TypeBoxProvider>()).type.toBeAssignableTo<FastifyInstance>()
108
108
 
109
109
  // -------------------------------------------------------------------
110
110
  // JsonSchemaToTs
@@ -117,7 +117,7 @@ interface JsonSchemaToTsProvider extends FastifyTypeProvider {
117
117
 
118
118
  // explicitly setting schema `as const`
119
119
 
120
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
120
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
121
121
  '/',
122
122
  {
123
123
  schema: {
@@ -131,22 +131,22 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
131
131
  } as const
132
132
  },
133
133
  errorHandler: (error, request, reply) => {
134
- expectType<FastifyError>(error)
135
- expectAssignable<FastifyRequest>(request)
136
- expectType<number | undefined>(request.body.x)
137
- expectType<string | undefined>(request.body.y)
138
- expectType<boolean | undefined>(request.body.z)
139
- expectAssignable<FastifyReply>(reply)
134
+ expect(error).type.toBe<FastifyError>()
135
+ expect(request).type.toBeAssignableTo<FastifyRequest>()
136
+ expect(request.body.x).type.toBe<number | undefined>()
137
+ expect(request.body.y).type.toBe<string | undefined>()
138
+ expect(request.body.z).type.toBe<boolean | undefined>()
139
+ expect(reply).type.toBeAssignableTo<FastifyReply>()
140
140
  }
141
141
  },
142
142
  (req) => {
143
- expectType<number | undefined>(req.body.x)
144
- expectType<string | undefined>(req.body.y)
145
- expectType<boolean | undefined>(req.body.z)
143
+ expect(req.body.x).type.toBe<number | undefined>()
144
+ expect(req.body.y).type.toBe<string | undefined>()
145
+ expect(req.body.z).type.toBe<boolean | undefined>()
146
146
  }
147
- ))
147
+ )
148
148
 
149
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().route({
149
+ server.withTypeProvider<JsonSchemaToTsProvider>().route({
150
150
  url: '/',
151
151
  method: 'POST',
152
152
  schema: {
@@ -160,23 +160,23 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().route({
160
160
  }
161
161
  } as const,
162
162
  errorHandler: (error, request, reply) => {
163
- expectType<FastifyError>(error)
164
- expectAssignable<FastifyRequest>(request)
165
- expectType<number | undefined>(request.body.x)
166
- expectType<string | undefined>(request.body.y)
167
- expectType<boolean | undefined>(request.body.z)
168
- expectAssignable<FastifyReply>(reply)
163
+ expect(error).type.toBe<FastifyError>()
164
+ expect(request).type.toBeAssignableTo<FastifyRequest>()
165
+ expect(request.body.x).type.toBe<number | undefined>()
166
+ expect(request.body.y).type.toBe<string | undefined>()
167
+ expect(request.body.z).type.toBe<boolean | undefined>()
168
+ expect(reply).type.toBeAssignableTo<FastifyReply>()
169
169
  },
170
170
  handler: (req) => {
171
- expectType<number | undefined>(req.body.x)
172
- expectType<string | undefined>(req.body.y)
173
- expectType<boolean | undefined>(req.body.z)
171
+ expect(req.body.x).type.toBe<number | undefined>()
172
+ expect(req.body.y).type.toBe<string | undefined>()
173
+ expect(req.body.z).type.toBe<boolean | undefined>()
174
174
  }
175
- }))
175
+ })
176
176
 
177
177
  // inferring schema `as const`
178
178
 
179
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
179
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
180
180
  '/',
181
181
  {
182
182
  schema: {
@@ -190,22 +190,22 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
190
190
  }
191
191
  },
192
192
  errorHandler: (error, request, reply) => {
193
- expectType<FastifyError>(error)
194
- expectAssignable<FastifyRequest>(request)
195
- expectType<number | undefined>(request.body.x)
196
- expectType<string | undefined>(request.body.y)
197
- expectType<boolean | undefined>(request.body.z)
198
- expectAssignable<FastifyReply>(reply)
193
+ expect(error).type.toBe<FastifyError>()
194
+ expect(request).type.toBeAssignableTo<FastifyRequest>()
195
+ expect(request.body.x).type.toBe<number | undefined>()
196
+ expect(request.body.y).type.toBe<string | undefined>()
197
+ expect(request.body.z).type.toBe<boolean | undefined>()
198
+ expect(reply).type.toBeAssignableTo<FastifyReply>()
199
199
  }
200
200
  },
201
201
  (req) => {
202
- expectType<number | undefined>(req.body.x)
203
- expectType<string | undefined>(req.body.y)
204
- expectType<boolean | undefined>(req.body.z)
202
+ expect(req.body.x).type.toBe<number | undefined>()
203
+ expect(req.body.y).type.toBe<string | undefined>()
204
+ expect(req.body.z).type.toBe<boolean | undefined>()
205
205
  }
206
- ))
206
+ )
207
207
 
208
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().route({
208
+ server.withTypeProvider<JsonSchemaToTsProvider>().route({
209
209
  url: '/',
210
210
  method: 'POST',
211
211
  schema: {
@@ -219,27 +219,27 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().route({
219
219
  }
220
220
  },
221
221
  errorHandler: (error, request, reply) => {
222
- expectType<FastifyError>(error)
223
- expectAssignable<FastifyRequest>(request)
224
- expectType<number | undefined>(request.body.x)
225
- expectType<string | undefined>(request.body.y)
226
- expectType<boolean | undefined>(request.body.z)
227
- expectAssignable<FastifyReply>(reply)
222
+ expect(error).type.toBe<FastifyError>()
223
+ expect(request).type.toBeAssignableTo<FastifyRequest>()
224
+ expect(request.body.x).type.toBe<number | undefined>()
225
+ expect(request.body.y).type.toBe<string | undefined>()
226
+ expect(request.body.z).type.toBe<boolean | undefined>()
227
+ expect(reply).type.toBeAssignableTo<FastifyReply>()
228
228
  },
229
229
  handler: (req) => {
230
- expectType<number | undefined>(req.body.x)
231
- expectType<string | undefined>(req.body.y)
232
- expectType<boolean | undefined>(req.body.z)
230
+ expect(req.body.x).type.toBe<number | undefined>()
231
+ expect(req.body.y).type.toBe<string | undefined>()
232
+ expect(req.body.z).type.toBe<boolean | undefined>()
233
233
  }
234
- }))
234
+ })
235
235
 
236
- expectAssignable<FastifyInstance>(server.withTypeProvider<JsonSchemaToTsProvider>())
236
+ expect(server.withTypeProvider<JsonSchemaToTsProvider>()).type.toBeAssignableTo<FastifyInstance>()
237
237
 
238
238
  // -------------------------------------------------------------------
239
239
  // Instance Type Remappable
240
240
  // -------------------------------------------------------------------
241
241
 
242
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().withTypeProvider<JsonSchemaToTsProvider>().get(
242
+ server.withTypeProvider<TypeBoxProvider>().withTypeProvider<JsonSchemaToTsProvider>().get(
243
243
  '/',
244
244
  {
245
245
  schema: {
@@ -253,20 +253,20 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().withTypeProvider<Jso
253
253
  } as const
254
254
  },
255
255
  errorHandler: (error, request, reply) => {
256
- expectType<FastifyError>(error)
257
- expectAssignable<FastifyRequest>(request)
258
- expectType<number | undefined>(request.body.x)
259
- expectType<string | undefined>(request.body.y)
260
- expectType<boolean | undefined>(request.body.z)
261
- expectAssignable<FastifyReply>(reply)
256
+ expect(error).type.toBe<FastifyError>()
257
+ expect(request).type.toBeAssignableTo<FastifyRequest>()
258
+ expect(request.body.x).type.toBe<number | undefined>()
259
+ expect(request.body.y).type.toBe<string | undefined>()
260
+ expect(request.body.z).type.toBe<boolean | undefined>()
261
+ expect(reply).type.toBeAssignableTo<FastifyReply>()
262
262
  }
263
263
  },
264
264
  (req) => {
265
- expectType<number | undefined>(req.body.x)
266
- expectType<string | undefined>(req.body.y)
267
- expectType<boolean | undefined>(req.body.z)
265
+ expect(req.body.x).type.toBe<number | undefined>()
266
+ expect(req.body.y).type.toBe<string | undefined>()
267
+ expect(req.body.z).type.toBe<boolean | undefined>()
268
268
  }
269
- ))
269
+ )
270
270
 
271
271
  // -------------------------------------------------------------------
272
272
  // Request Hooks
@@ -274,7 +274,7 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().withTypeProvider<Jso
274
274
 
275
275
  // Sync handlers
276
276
 
277
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
277
+ server.withTypeProvider<TypeBoxProvider>().get(
278
278
  '/',
279
279
  {
280
280
  schema: {
@@ -285,61 +285,61 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
285
285
  })
286
286
  },
287
287
  preHandler: (req, reply, done) => {
288
- expectType<number>(req.body.x)
289
- expectType<string>(req.body.y)
290
- expectType<boolean>(req.body.z)
288
+ expect(req.body.x).type.toBe<number>()
289
+ expect(req.body.y).type.toBe<string>()
290
+ expect(req.body.z).type.toBe<boolean>()
291
291
  },
292
292
  preParsing: (req, reply, payload, done) => {
293
- expectType<number>(req.body.x)
294
- expectType<string>(req.body.y)
295
- expectType<boolean>(req.body.z)
293
+ expect(req.body.x).type.toBe<number>()
294
+ expect(req.body.y).type.toBe<string>()
295
+ expect(req.body.z).type.toBe<boolean>()
296
296
  },
297
297
  preSerialization: (req, reply, payload, done) => {
298
- expectType<number>(req.body.x)
299
- expectType<string>(req.body.y)
300
- expectType<boolean>(req.body.z)
298
+ expect(req.body.x).type.toBe<number>()
299
+ expect(req.body.y).type.toBe<string>()
300
+ expect(req.body.z).type.toBe<boolean>()
301
301
  },
302
302
  preValidation: (req, reply, done) => {
303
- expectType<number>(req.body.x)
304
- expectType<string>(req.body.y)
305
- expectType<boolean>(req.body.z)
303
+ expect(req.body.x).type.toBe<number>()
304
+ expect(req.body.y).type.toBe<string>()
305
+ expect(req.body.z).type.toBe<boolean>()
306
306
  },
307
307
  onError: (req, reply, error, done) => {
308
- expectType<number>(req.body.x)
309
- expectType<string>(req.body.y)
310
- expectType<boolean>(req.body.z)
308
+ expect(req.body.x).type.toBe<number>()
309
+ expect(req.body.y).type.toBe<string>()
310
+ expect(req.body.z).type.toBe<boolean>()
311
311
  },
312
312
  onRequest: (req, reply, done) => {
313
- expectType<number>(req.body.x)
314
- expectType<string>(req.body.y)
315
- expectType<boolean>(req.body.z)
313
+ expect(req.body.x).type.toBe<number>()
314
+ expect(req.body.y).type.toBe<string>()
315
+ expect(req.body.z).type.toBe<boolean>()
316
316
  },
317
317
  onResponse: (req, reply, done) => {
318
- expectType<number>(req.body.x)
319
- expectType<string>(req.body.y)
320
- expectType<boolean>(req.body.z)
318
+ expect(req.body.x).type.toBe<number>()
319
+ expect(req.body.y).type.toBe<string>()
320
+ expect(req.body.z).type.toBe<boolean>()
321
321
  },
322
322
  onTimeout: (req, reply, done) => {
323
- expectType<number>(req.body.x)
324
- expectType<string>(req.body.y)
325
- expectType<boolean>(req.body.z)
323
+ expect(req.body.x).type.toBe<number>()
324
+ expect(req.body.y).type.toBe<string>()
325
+ expect(req.body.z).type.toBe<boolean>()
326
326
  },
327
327
  onSend: (req, reply, payload, done) => {
328
- expectType<number>(req.body.x)
329
- expectType<string>(req.body.y)
330
- expectType<boolean>(req.body.z)
328
+ expect(req.body.x).type.toBe<number>()
329
+ expect(req.body.y).type.toBe<string>()
330
+ expect(req.body.z).type.toBe<boolean>()
331
331
  }
332
332
  },
333
333
  req => {
334
- expectType<number>(req.body.x)
335
- expectType<string>(req.body.y)
336
- expectType<boolean>(req.body.z)
334
+ expect(req.body.x).type.toBe<number>()
335
+ expect(req.body.y).type.toBe<string>()
336
+ expect(req.body.z).type.toBe<boolean>()
337
337
  }
338
- ))
338
+ )
339
339
 
340
340
  // Async handlers
341
341
 
342
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
342
+ server.withTypeProvider<TypeBoxProvider>().get(
343
343
  '/',
344
344
  {
345
345
  schema: {
@@ -350,64 +350,64 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
350
350
  })
351
351
  },
352
352
  preHandler: async (req, reply, done) => {
353
- expectType<number>(req.body.x)
354
- expectType<string>(req.body.y)
355
- expectType<boolean>(req.body.z)
353
+ expect(req.body.x).type.toBe<number>()
354
+ expect(req.body.y).type.toBe<string>()
355
+ expect(req.body.z).type.toBe<boolean>()
356
356
  },
357
357
  preParsing: async (req, reply, payload, done) => {
358
- expectType<number>(req.body.x)
359
- expectType<string>(req.body.y)
360
- expectType<boolean>(req.body.z)
358
+ expect(req.body.x).type.toBe<number>()
359
+ expect(req.body.y).type.toBe<string>()
360
+ expect(req.body.z).type.toBe<boolean>()
361
361
  },
362
362
  preSerialization: async (req, reply, payload, done) => {
363
- expectType<number>(req.body.x)
364
- expectType<string>(req.body.y)
365
- expectType<boolean>(req.body.z)
363
+ expect(req.body.x).type.toBe<number>()
364
+ expect(req.body.y).type.toBe<string>()
365
+ expect(req.body.z).type.toBe<boolean>()
366
366
  },
367
367
  preValidation: async (req, reply, done) => {
368
- expectType<number>(req.body.x)
369
- expectType<string>(req.body.y)
370
- expectType<boolean>(req.body.z)
368
+ expect(req.body.x).type.toBe<number>()
369
+ expect(req.body.y).type.toBe<string>()
370
+ expect(req.body.z).type.toBe<boolean>()
371
371
  },
372
372
  onError: async (req, reply, error, done) => {
373
- expectType<number>(req.body.x)
374
- expectType<string>(req.body.y)
375
- expectType<boolean>(req.body.z)
373
+ expect(req.body.x).type.toBe<number>()
374
+ expect(req.body.y).type.toBe<string>()
375
+ expect(req.body.z).type.toBe<boolean>()
376
376
  },
377
377
  onRequest: async (req, reply, done) => {
378
- expectType<number>(req.body.x)
379
- expectType<string>(req.body.y)
380
- expectType<boolean>(req.body.z)
378
+ expect(req.body.x).type.toBe<number>()
379
+ expect(req.body.y).type.toBe<string>()
380
+ expect(req.body.z).type.toBe<boolean>()
381
381
  },
382
382
  onResponse: async (req, reply, done) => {
383
- expectType<number>(req.body.x)
384
- expectType<string>(req.body.y)
385
- expectType<boolean>(req.body.z)
383
+ expect(req.body.x).type.toBe<number>()
384
+ expect(req.body.y).type.toBe<string>()
385
+ expect(req.body.z).type.toBe<boolean>()
386
386
  },
387
387
  onTimeout: async (req, reply, done) => {
388
- expectType<number>(req.body.x)
389
- expectType<string>(req.body.y)
390
- expectType<boolean>(req.body.z)
388
+ expect(req.body.x).type.toBe<number>()
389
+ expect(req.body.y).type.toBe<string>()
390
+ expect(req.body.z).type.toBe<boolean>()
391
391
  },
392
392
  onSend: async (req, reply, payload, done) => {
393
- expectType<number>(req.body.x)
394
- expectType<string>(req.body.y)
395
- expectType<boolean>(req.body.z)
393
+ expect(req.body.x).type.toBe<number>()
394
+ expect(req.body.y).type.toBe<string>()
395
+ expect(req.body.z).type.toBe<boolean>()
396
396
  }
397
397
  },
398
398
  req => {
399
- expectType<number>(req.body.x)
400
- expectType<string>(req.body.y)
401
- expectType<boolean>(req.body.z)
399
+ expect(req.body.x).type.toBe<number>()
400
+ expect(req.body.y).type.toBe<string>()
401
+ expect(req.body.z).type.toBe<boolean>()
402
402
  }
403
- ))
403
+ )
404
404
 
405
405
  // -------------------------------------------------------------------
406
406
  // Request headers
407
407
  // -------------------------------------------------------------------
408
408
 
409
409
  // JsonSchemaToTsProvider
410
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
410
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
411
411
  '/',
412
412
  {
413
413
  schema: {
@@ -425,17 +425,17 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
425
425
  }
426
426
  },
427
427
  (req) => {
428
- expectType<string>(req.headers.lowercase)
429
- expectType<string | string[] | undefined>(req.headers.UPPERCASE)
430
- expectType<number>(req.headers.uppercase)
431
- expectType<boolean>(req.headers.camelcase)
432
- expectType<boolean>(req.headers['kebab-case'])
433
- expectType<number | undefined>(req.headers.preserve_optional)
428
+ expect(req.headers.lowercase).type.toBe<string>()
429
+ expect(req.headers.UPPERCASE).type.toBe<string | string[] | undefined>()
430
+ expect(req.headers.uppercase).type.toBe<number>()
431
+ expect(req.headers.camelcase).type.toBe<boolean>()
432
+ expect(req.headers['kebab-case']).type.toBe<boolean>()
433
+ expect(req.headers.preserve_optional).type.toBe<number | undefined>()
434
434
  }
435
- ))
435
+ )
436
436
 
437
437
  // TypeBoxProvider
438
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
438
+ server.withTypeProvider<TypeBoxProvider>().get(
439
439
  '/',
440
440
  {
441
441
  schema: {
@@ -449,20 +449,20 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
449
449
  }
450
450
  },
451
451
  (req) => {
452
- expectType<string>(req.headers.lowercase)
453
- expectType<string | string[] | undefined>(req.headers.UPPERCASE)
454
- expectType<number>(req.headers.uppercase)
455
- expectType<boolean>(req.headers.camelcase)
456
- expectType<boolean>(req.headers['kebab-case'])
457
- expectType<number | undefined>(req.headers.preserve_optional)
452
+ expect(req.headers.lowercase).type.toBe<string>()
453
+ expect(req.headers.UPPERCASE).type.toBe<string | string[] | undefined>()
454
+ expect(req.headers.uppercase).type.toBe<number>()
455
+ expect(req.headers.camelcase).type.toBe<boolean>()
456
+ expect(req.headers['kebab-case']).type.toBe<boolean>()
457
+ expect(req.headers.preserve_optional).type.toBe<number | undefined>()
458
458
  }
459
- ))
459
+ )
460
460
 
461
461
  // -------------------------------------------------------------------
462
462
  // TypeBox Reply Type
463
463
  // -------------------------------------------------------------------
464
464
 
465
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
465
+ server.withTypeProvider<TypeBoxProvider>().get(
466
466
  '/',
467
467
  {
468
468
  schema: {
@@ -479,18 +479,17 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
479
479
  res.send('hello')
480
480
  res.send(42)
481
481
  res.send({ error: 'error' })
482
- expectType<((...args: [payload: string]) => typeof res)>(res.code(200).send)
483
- expectType<((...args: [payload: number]) => typeof res)>(res.code(400).send)
484
- expectType<((...args: [payload: { error: string }]) => typeof res)>(res.code(500).send)
485
- expectError<(payload?: unknown) => typeof res>(res.code(200).send)
482
+ expect(res.code(200).send).type.toBe<((...args: [payload: string]) => typeof res)>()
483
+ expect(res.code(400).send).type.toBe<((...args: [payload: number]) => typeof res)>()
484
+ expect(res.code(500).send).type.toBe<((...args: [payload: { error: string }]) => typeof res)>()
486
485
  }
487
- ))
486
+ )
488
487
 
489
488
  // -------------------------------------------------------------------
490
489
  // TypeBox Reply Type (Different Content-types)
491
490
  // -------------------------------------------------------------------
492
491
 
493
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
492
+ server.withTypeProvider<TypeBoxProvider>().get(
494
493
  '/',
495
494
  {
496
495
  schema: {
@@ -518,13 +517,13 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
518
517
  res.send({ msg: 'hello' })
519
518
  res.send({ error: 'error' })
520
519
  }
521
- ))
520
+ )
522
521
 
523
522
  // -------------------------------------------------------------------
524
523
  // TypeBox Reply Type: Non Assignable
525
524
  // -------------------------------------------------------------------
526
525
 
527
- expectError(server.withTypeProvider<TypeBoxProvider>().get(
526
+ server.withTypeProvider<TypeBoxProvider>().get(
528
527
  '/',
529
528
  {
530
529
  schema: {
@@ -538,15 +537,15 @@ expectError(server.withTypeProvider<TypeBoxProvider>().get(
538
537
  }
539
538
  },
540
539
  async (_, res) => {
541
- res.send(false)
540
+ expect(res.send).type.not.toBeCallableWith(false)
542
541
  }
543
- ))
542
+ )
544
543
 
545
544
  // -------------------------------------------------------------------
546
545
  // TypeBox Reply Type: Non Assignable (Different Content-types)
547
546
  // -------------------------------------------------------------------
548
547
 
549
- expectError(server.withTypeProvider<TypeBoxProvider>().get(
548
+ server.withTypeProvider<TypeBoxProvider>().get(
550
549
  '/',
551
550
  {
552
551
  schema: {
@@ -570,15 +569,15 @@ expectError(server.withTypeProvider<TypeBoxProvider>().get(
570
569
  }
571
570
  },
572
571
  async (_, res) => {
573
- res.send(false)
572
+ expect(res.send).type.not.toBeCallableWith(false)
574
573
  }
575
- ))
574
+ )
576
575
 
577
576
  // -------------------------------------------------------------------
578
577
  // TypeBox Reply Return Type
579
578
  // -------------------------------------------------------------------
580
579
 
581
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
580
+ server.withTypeProvider<TypeBoxProvider>().get(
582
581
  '/',
583
582
  {
584
583
  schema: {
@@ -599,13 +598,13 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
599
598
  case 3: return { error: 'error' }
600
599
  }
601
600
  }
602
- ))
601
+ )
603
602
 
604
603
  // -------------------------------------------------------------------
605
604
  // TypeBox Reply Return Type (Different Content-types)
606
605
  // -------------------------------------------------------------------
607
606
 
608
- expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
607
+ server.withTypeProvider<TypeBoxProvider>().get(
609
608
  '/',
610
609
  {
611
610
  schema: {
@@ -636,13 +635,13 @@ expectAssignable(server.withTypeProvider<TypeBoxProvider>().get(
636
635
  case 3: return { error: 'error' }
637
636
  }
638
637
  }
639
- ))
638
+ )
640
639
 
641
640
  // -------------------------------------------------------------------
642
641
  // TypeBox Reply Return Type: Non Assignable
643
642
  // -------------------------------------------------------------------
644
643
 
645
- expectError(server.withTypeProvider<TypeBoxProvider>().get(
644
+ server.withTypeProvider<TypeBoxProvider>().get(
646
645
  '/',
647
646
  {
648
647
  schema: {
@@ -655,16 +654,17 @@ expectError(server.withTypeProvider<TypeBoxProvider>().get(
655
654
  }
656
655
  }
657
656
  },
657
+ // @ts-expect-error Type 'boolean' is not assignable to type 'string | number | void | { error: string; }'.
658
658
  async (_, res) => {
659
659
  return false
660
660
  }
661
- ))
661
+ )
662
662
 
663
663
  // -------------------------------------------------------------------
664
664
  // TypeBox Reply Return Type: Non Assignable (Different Content-types)
665
665
  // -------------------------------------------------------------------
666
666
 
667
- expectError(server.withTypeProvider<TypeBoxProvider>().get(
667
+ server.withTypeProvider<TypeBoxProvider>().get(
668
668
  '/',
669
669
  {
670
670
  schema: {
@@ -687,16 +687,17 @@ expectError(server.withTypeProvider<TypeBoxProvider>().get(
687
687
  }
688
688
  }
689
689
  },
690
+ // @ts-expect-error Type 'boolean' is not assignable to type 'string | void | { msg: string; } | { error: string; }'.
690
691
  async (_, res) => {
691
692
  return false
692
693
  }
693
- ))
694
+ )
694
695
 
695
696
  // -------------------------------------------------------------------
696
697
  // JsonSchemaToTs Reply Type
697
698
  // -------------------------------------------------------------------
698
699
 
699
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
700
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
700
701
  '/',
701
702
  {
702
703
  schema: {
@@ -711,18 +712,19 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
711
712
  res.send('hello')
712
713
  res.send(42)
713
714
  res.send({ error: 'error' })
714
- expectType<((...args: [payload: string]) => typeof res)>(res.code(200).send)
715
- expectType<((...args: [payload: number]) => typeof res)>(res.code(400).send)
716
- expectType<((...args: [payload: { [x: string]: unknown; error?: string }]) => typeof res)>(res.code(500).send)
717
- expectError<(payload?: unknown) => typeof res>(res.code(200).send)
715
+ expect(res.code(200).send).type.toBe<((...args: [payload: string]) => typeof res)>()
716
+ expect(res.code(400).send).type.toBe<((...args: [payload: number]) => typeof res)>()
717
+ expect(res.code(500).send).type.toBe<
718
+ ((...args: [payload: { [x: string]: unknown; error?: string }]) => typeof res)
719
+ >()
718
720
  }
719
- ))
721
+ )
720
722
 
721
723
  // -------------------------------------------------------------------
722
724
  // JsonSchemaToTs Reply Type (Different Content-types)
723
725
  // -------------------------------------------------------------------
724
726
 
725
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
727
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
726
728
  '/',
727
729
  {
728
730
  schema: {
@@ -746,13 +748,13 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
746
748
  res.send({ msg: 'hello' })
747
749
  res.send({ error: 'error' })
748
750
  }
749
- ))
751
+ )
750
752
 
751
753
  // -------------------------------------------------------------------
752
754
  // JsonSchemaToTs Reply Type: Non Assignable
753
755
  // -------------------------------------------------------------------
754
756
 
755
- expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
757
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
756
758
  '/',
757
759
  {
758
760
  schema: {
@@ -764,15 +766,15 @@ expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
764
766
  }
765
767
  },
766
768
  async (_, res) => {
767
- res.send(false)
769
+ expect(res.send).type.not.toBeCallableWith(false)
768
770
  }
769
- ))
771
+ )
770
772
 
771
773
  // -------------------------------------------------------------------
772
774
  // JsonSchemaToTs Reply Type: Non Assignable (Different Content-types)
773
775
  // -------------------------------------------------------------------
774
776
 
775
- expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
777
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
776
778
  '/',
777
779
  {
778
780
  schema: {
@@ -792,15 +794,15 @@ expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
792
794
  }
793
795
  },
794
796
  async (_, res) => {
795
- res.send(false)
797
+ expect(res.send).type.not.toBeCallableWith(false)
796
798
  }
797
- ))
799
+ )
798
800
 
799
801
  // -------------------------------------------------------------------
800
802
  // JsonSchemaToTs Reply Type Return
801
803
  // -------------------------------------------------------------------
802
804
 
803
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
805
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
804
806
  '/',
805
807
  {
806
808
  schema: {
@@ -819,13 +821,13 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
819
821
  case 3: return { error: 'error' }
820
822
  }
821
823
  }
822
- ))
824
+ )
823
825
 
824
826
  // -------------------------------------------------------------------
825
827
  // JsonSchemaToTs Reply Type Return (Different Content-types)
826
828
  // -------------------------------------------------------------------
827
829
 
828
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
830
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
829
831
  '/',
830
832
  {
831
833
  schema: {
@@ -852,13 +854,13 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
852
854
  case 3: return { error: 'error' }
853
855
  }
854
856
  }
855
- ))
857
+ )
856
858
 
857
859
  // -------------------------------------------------------------------
858
860
  // JsonSchemaToTs Reply Type Return: Non Assignable
859
861
  // -------------------------------------------------------------------
860
862
 
861
- expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
863
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
862
864
  '/',
863
865
  {
864
866
  schema: {
@@ -869,27 +871,29 @@ expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
869
871
  } as const
870
872
  }
871
873
  },
874
+ // @ts-expect-error Type 'boolean' is not assignable to type 'string | number | void | { [x: string]: unknown; error?: string | undefined; }'.
872
875
  async (_, res) => {
873
876
  return false
874
877
  }
875
- ))
878
+ )
876
879
 
877
880
  // https://github.com/fastify/fastify/issues/4088
878
- expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get('/', {
881
+ server.withTypeProvider<JsonSchemaToTsProvider>().get('/', {
879
882
  schema: {
880
883
  response: {
881
884
  200: { type: 'string' }
882
885
  }
883
886
  } as const
887
+ // @ts-expect-error Type '{ foo: number; }' is not assignable to type 'string | void | Promise<string | void>'.
884
888
  }, (_, res) => {
885
889
  return { foo: 555 }
886
- }))
890
+ })
887
891
 
888
892
  // -------------------------------------------------------------------
889
893
  // JsonSchemaToTs Reply Type Return: Non Assignable (Different Content-types)
890
894
  // -------------------------------------------------------------------
891
895
 
892
- expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
896
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
893
897
  '/',
894
898
  {
895
899
  schema: {
@@ -908,16 +912,17 @@ expectError(server.withTypeProvider<JsonSchemaToTsProvider>().get(
908
912
  } as const
909
913
  }
910
914
  },
915
+ // @ts-expect-error Type 'Promise<boolean>' is not assignable to type 'string | void | { [x: string]: unknown; msg?: string | undefined; } | { [x: string]: unknown; error?: string | undefined; } | Promise<string | void | { [x: string]: unknown; msg?: string | undefined; } | { [x: string]: unknown; error?: string | undefined; }>'.
911
916
  async (_, res) => {
912
917
  return false
913
918
  }
914
- ))
919
+ )
915
920
 
916
921
  // -------------------------------------------------------------------
917
922
  // Reply Type Override
918
923
  // -------------------------------------------------------------------
919
924
 
920
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
925
+ server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
921
926
  '/',
922
927
  {
923
928
  schema: {
@@ -931,13 +936,13 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply:
931
936
  async (_, res) => {
932
937
  res.send(true)
933
938
  }
934
- ))
939
+ )
935
940
 
936
941
  // -------------------------------------------------------------------
937
942
  // Reply Type Override (Different Content-types)
938
943
  // -------------------------------------------------------------------
939
944
 
940
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
945
+ server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
941
946
  '/',
942
947
  {
943
948
  schema: {
@@ -959,13 +964,13 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply:
959
964
  async (_, res) => {
960
965
  res.send(true)
961
966
  }
962
- ))
967
+ )
963
968
 
964
969
  // -------------------------------------------------------------------
965
970
  // Reply Type Return Override
966
971
  // -------------------------------------------------------------------
967
972
 
968
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
973
+ server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
969
974
  '/',
970
975
  {
971
976
  schema: {
@@ -979,13 +984,13 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply:
979
984
  async (_, res) => {
980
985
  return true
981
986
  }
982
- ))
987
+ )
983
988
 
984
989
  // -------------------------------------------------------------------
985
990
  // Reply Type Return Override (Different Content-types)
986
991
  // -------------------------------------------------------------------
987
992
 
988
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
993
+ server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply: boolean }>(
989
994
  '/',
990
995
  {
991
996
  schema: {
@@ -1007,13 +1012,13 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get<{ Reply:
1007
1012
  async (_, res) => {
1008
1013
  return true
1009
1014
  }
1010
- ))
1015
+ )
1011
1016
 
1012
1017
  // -------------------------------------------------------------------
1013
1018
  // Reply Status Code (Different Status Codes)
1014
1019
  // -------------------------------------------------------------------
1015
1020
 
1016
- expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
1021
+ server.withTypeProvider<JsonSchemaToTsProvider>().get(
1017
1022
  '/',
1018
1023
  {
1019
1024
  schema: {
@@ -1035,16 +1040,16 @@ expectAssignable(server.withTypeProvider<JsonSchemaToTsProvider>().get(
1035
1040
  async (_, res) => {
1036
1041
  res.code(200)
1037
1042
  res.code(500)
1038
- expectError(() => res.code(201))
1039
- expectError(() => res.code(400))
1043
+ expect(res.code).type.not.toBeCallableWith(201)
1044
+ expect(res.code).type.not.toBeCallableWith(400)
1040
1045
  }
1041
- ))
1046
+ )
1042
1047
 
1043
1048
  // -------------------------------------------------------------------
1044
1049
  // RouteGeneric Reply Type Return (Different Status Codes)
1045
1050
  // -------------------------------------------------------------------
1046
1051
 
1047
- expectAssignable(server.get<{
1052
+ server.get<{
1048
1053
  Reply: {
1049
1054
  200: string | { msg: string }
1050
1055
  400: number
@@ -1061,13 +1066,13 @@ expectAssignable(server.get<{
1061
1066
  case 4: return { error: 'error' }
1062
1067
  }
1063
1068
  }
1064
- ))
1069
+ )
1065
1070
 
1066
1071
  // -------------------------------------------------------------------
1067
1072
  // RouteGeneric Status Code (Different Status Codes)
1068
1073
  // -------------------------------------------------------------------
1069
1074
 
1070
- expectAssignable(server.get<{
1075
+ server.get<{
1071
1076
  Reply: {
1072
1077
  200: string | { msg: string }
1073
1078
  400: number
@@ -1080,18 +1085,18 @@ expectAssignable(server.get<{
1080
1085
  res.code(400)
1081
1086
  res.code(500)
1082
1087
  res.code(502)
1083
- expectError(() => res.code(201))
1084
- expectError(() => res.code(300))
1085
- expectError(() => res.code(404))
1088
+ expect(res.code).type.not.toBeCallableWith(201)
1089
+ expect(res.code).type.not.toBeCallableWith(300)
1090
+ expect(res.code).type.not.toBeCallableWith(404)
1086
1091
  return 'hello'
1087
1092
  }
1088
- ))
1093
+ )
1089
1094
 
1090
1095
  // -------------------------------------------------------------------
1091
1096
  // RouteGeneric Reply Type Return: Non Assignable (Different Status Codes)
1092
1097
  // -------------------------------------------------------------------
1093
1098
 
1094
- expectError(server.get<{
1099
+ server.get<{
1095
1100
  Reply: {
1096
1101
  200: string | { msg: string }
1097
1102
  400: number
@@ -1099,10 +1104,11 @@ expectError(server.get<{
1099
1104
  }
1100
1105
  }>(
1101
1106
  '/',
1107
+ // @ts-expect-error Type 'boolean' is not assignable to type 'string | number | void | { msg: string; } | { error: string; } | { 200: string | { msg: string; }; 400: number; '5xx': { error: string; }; }'.
1102
1108
  async (_, res) => {
1103
1109
  return true
1104
1110
  }
1105
- ))
1111
+ )
1106
1112
 
1107
1113
  // -------------------------------------------------------------------
1108
1114
  // FastifyPlugin: Auxiliary
@@ -1112,26 +1118,26 @@ interface AuxiliaryPluginProvider extends FastifyTypeProvider { validator: 'plug
1112
1118
 
1113
1119
  // Auxiliary plugins may have varying server types per application. Recommendation would be to explicitly remap instance provider context within plugin if required.
1114
1120
  function plugin<T extends FastifyInstance> (instance: T) {
1115
- expectAssignable(instance.withTypeProvider<AuxiliaryPluginProvider>().get(
1121
+ instance.withTypeProvider<AuxiliaryPluginProvider>().get(
1116
1122
  '/',
1117
1123
  {
1118
1124
  schema: { body: null }
1119
1125
  },
1120
1126
  (req) => {
1121
- expectType<'plugin-auxiliary'>(req.body)
1127
+ expect(req.body).type.toBe<'plugin-auxiliary'>()
1122
1128
  }
1123
- ))
1129
+ )
1124
1130
  }
1125
1131
 
1126
- expectAssignable(server.withTypeProvider<AuxiliaryPluginProvider>().register(plugin).get(
1132
+ server.withTypeProvider<AuxiliaryPluginProvider>().register(plugin).get(
1127
1133
  '/',
1128
1134
  {
1129
1135
  schema: { body: null }
1130
1136
  },
1131
1137
  (req) => {
1132
- expectType<'plugin-auxiliary'>(req.body)
1138
+ expect(req.body).type.toBe<'plugin-auxiliary'>()
1133
1139
  }
1134
- ))
1140
+ )
1135
1141
 
1136
1142
  // -------------------------------------------------------------------
1137
1143
  // Handlers: Inline
@@ -1140,18 +1146,18 @@ expectAssignable(server.withTypeProvider<AuxiliaryPluginProvider>().register(plu
1140
1146
  interface InlineHandlerProvider extends FastifyTypeProvider { validator: 'handler-inline' }
1141
1147
 
1142
1148
  // Inline handlers should infer for the request parameters (non-shared)
1143
- expectAssignable(server.withTypeProvider<InlineHandlerProvider>().get(
1149
+ server.withTypeProvider<InlineHandlerProvider>().get(
1144
1150
  '/',
1145
1151
  {
1146
1152
  onRequest: (req, res, done) => {
1147
- expectType<'handler-inline'>(req.body)
1153
+ expect(req.body).type.toBe<'handler-inline'>()
1148
1154
  },
1149
1155
  schema: { body: null }
1150
1156
  },
1151
1157
  (req) => {
1152
- expectType<'handler-inline'>(req.body)
1158
+ expect(req.body).type.toBe<'handler-inline'>()
1153
1159
  }
1154
- ))
1160
+ )
1155
1161
 
1156
1162
  // -------------------------------------------------------------------
1157
1163
  // Handlers: Auxiliary
@@ -1161,19 +1167,19 @@ interface AuxiliaryHandlerProvider extends FastifyTypeProvider { validator: 'han
1161
1167
 
1162
1168
  // Auxiliary handlers are likely shared for multiple routes and thus should infer as unknown due to potential varying parameters
1163
1169
  function auxiliaryHandler (request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction): void {
1164
- expectType<unknown>(request.body)
1170
+ expect(request.body).type.toBe<unknown>()
1165
1171
  }
1166
1172
 
1167
- expectAssignable(server.withTypeProvider<AuxiliaryHandlerProvider>().get(
1173
+ server.withTypeProvider<AuxiliaryHandlerProvider>().get(
1168
1174
  '/',
1169
1175
  {
1170
1176
  onRequest: auxiliaryHandler,
1171
1177
  schema: { body: 'handler-auxiliary' }
1172
1178
  },
1173
1179
  (req) => {
1174
- expectType<'handler-auxiliary'>(req.body)
1180
+ expect(req.body).type.toBe<'handler-auxiliary'>()
1175
1181
  }
1176
- ))
1182
+ )
1177
1183
 
1178
1184
  // -------------------------------------------------------------------
1179
1185
  // SafePromiseLike
@@ -1182,9 +1188,9 @@ const safePromiseLike = {
1182
1188
  then: new Promise<string>(resolve => resolve('')).then,
1183
1189
  __linterBrands: 'SafePromiseLike' as const
1184
1190
  }
1185
- expectAssignable<SafePromiseLike<string>>(safePromiseLike)
1186
- expectAssignable<PromiseLike<string>>(safePromiseLike)
1187
- expectError<Promise<string>>(safePromiseLike)
1191
+ expect(safePromiseLike).type.toBeAssignableTo<SafePromiseLike<string>>()
1192
+ expect(safePromiseLike).type.toBeAssignableTo<PromiseLike<string>>()
1193
+ expect(safePromiseLike).type.not.toBeAssignableTo<Promise<string>>()
1188
1194
 
1189
1195
  // -------------------------------------------------------------------
1190
1196
  // Separate Providers
@@ -1195,7 +1201,7 @@ interface SeparateProvider extends FastifyTypeProvider {
1195
1201
  serializer: Date
1196
1202
  }
1197
1203
 
1198
- expectAssignable(server.withTypeProvider<SeparateProvider>().get(
1204
+ server.withTypeProvider<SeparateProvider>().get(
1199
1205
  '/',
1200
1206
  {
1201
1207
  schema: {
@@ -1206,8 +1212,8 @@ expectAssignable(server.withTypeProvider<SeparateProvider>().get(
1206
1212
  }
1207
1213
  },
1208
1214
  (req, res) => {
1209
- expectType<string>(req.body)
1215
+ expect(req.body).type.toBe<string>()
1210
1216
 
1211
1217
  res.send(new Date())
1212
1218
  }
1213
- ))
1219
+ )