grafserv 0.1.1-beta.8 → 1.0.0-rc.1

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 (86) hide show
  1. package/CHANGELOG.md +658 -0
  2. package/README.md +0 -4
  3. package/dist/accept.d.ts.map +1 -1
  4. package/dist/accept.js +3 -4
  5. package/dist/accept.js.map +1 -1
  6. package/dist/core/base.d.ts +21 -5
  7. package/dist/core/base.d.ts.map +1 -1
  8. package/dist/core/base.js +412 -108
  9. package/dist/core/base.js.map +1 -1
  10. package/dist/envelop/index.d.ts +19 -0
  11. package/dist/envelop/index.d.ts.map +1 -0
  12. package/dist/envelop/index.js +71 -0
  13. package/dist/envelop/index.js.map +1 -0
  14. package/dist/hooks.d.ts +6 -2
  15. package/dist/hooks.d.ts.map +1 -1
  16. package/dist/hooks.js +63 -10
  17. package/dist/hooks.js.map +1 -1
  18. package/dist/index.d.ts +41 -8
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/interfaces.d.ts +66 -8
  23. package/dist/interfaces.d.ts.map +1 -1
  24. package/dist/interfaces.js.map +1 -1
  25. package/dist/mapIterator.d.ts.map +1 -1
  26. package/dist/mapIterator.js +4 -2
  27. package/dist/mapIterator.js.map +1 -1
  28. package/dist/middleware/graphiql.d.ts +4 -1
  29. package/dist/middleware/graphiql.d.ts.map +1 -1
  30. package/dist/middleware/graphiql.js +88 -25
  31. package/dist/middleware/graphiql.js.map +1 -1
  32. package/dist/middleware/graphql.d.ts +4 -6
  33. package/dist/middleware/graphql.d.ts.map +1 -1
  34. package/dist/middleware/graphql.js +57 -74
  35. package/dist/middleware/graphql.js.map +1 -1
  36. package/dist/options.d.ts +5 -2
  37. package/dist/options.d.ts.map +1 -1
  38. package/dist/options.js +20 -9
  39. package/dist/options.js.map +1 -1
  40. package/dist/servers/express/v4/index.d.ts +0 -2
  41. package/dist/servers/express/v4/index.d.ts.map +1 -1
  42. package/dist/servers/express/v4/index.js +2 -2
  43. package/dist/servers/express/v4/index.js.map +1 -1
  44. package/dist/servers/fastify/v4/index.d.ts +1 -2
  45. package/dist/servers/fastify/v4/index.d.ts.map +1 -1
  46. package/dist/servers/fastify/v4/index.js +23 -5
  47. package/dist/servers/fastify/v4/index.js.map +1 -1
  48. package/dist/servers/h3/v1/index.d.ts +8 -16
  49. package/dist/servers/h3/v1/index.d.ts.map +1 -1
  50. package/dist/servers/h3/v1/index.js +49 -42
  51. package/dist/servers/h3/v1/index.js.map +1 -1
  52. package/dist/servers/hono/v4/index.d.ts +36 -0
  53. package/dist/servers/hono/v4/index.d.ts.map +1 -0
  54. package/dist/servers/hono/v4/index.js +284 -0
  55. package/dist/servers/hono/v4/index.js.map +1 -0
  56. package/dist/servers/koa/v2/index.d.ts +3 -5
  57. package/dist/servers/koa/v2/index.d.ts.map +1 -1
  58. package/dist/servers/koa/v2/index.js +5 -2
  59. package/dist/servers/koa/v2/index.js.map +1 -1
  60. package/dist/servers/lambda/v1/index.d.ts +1 -1
  61. package/dist/servers/lambda/v1/index.d.ts.map +1 -1
  62. package/dist/servers/lambda/v1/index.js +3 -3
  63. package/dist/servers/lambda/v1/index.js.map +1 -1
  64. package/dist/servers/node/index.d.ts +13 -5
  65. package/dist/servers/node/index.d.ts.map +1 -1
  66. package/dist/servers/node/index.js +11 -6
  67. package/dist/servers/node/index.js.map +1 -1
  68. package/dist/servers/whatwg-node__server/v0/index.d.ts +27 -0
  69. package/dist/servers/whatwg-node__server/v0/index.d.ts.map +1 -0
  70. package/dist/servers/whatwg-node__server/v0/index.js +135 -0
  71. package/dist/servers/whatwg-node__server/v0/index.js.map +1 -0
  72. package/dist/utils.d.ts +26 -5
  73. package/dist/utils.d.ts.map +1 -1
  74. package/dist/utils.js +151 -92
  75. package/dist/utils.js.map +1 -1
  76. package/dist/version.d.ts +2 -0
  77. package/dist/version.d.ts.map +1 -0
  78. package/dist/version.js +6 -0
  79. package/dist/version.js.map +1 -0
  80. package/dist/websocketKeepalive.d.ts +4 -0
  81. package/dist/websocketKeepalive.d.ts.map +1 -0
  82. package/dist/websocketKeepalive.js +61 -0
  83. package/dist/websocketKeepalive.js.map +1 -0
  84. package/fwd/ruru/static/index.d.ts +1 -0
  85. package/fwd/ruru/static/index.js +1 -0
  86. package/package.json +69 -28
package/CHANGELOG.md CHANGED
@@ -1,5 +1,663 @@
1
1
  # grafserv
2
2
 
3
+ ## 1.0.0-rc.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2777](https://github.com/graphile/crystal/pull/2777)
8
+ [`6a4e3b9`](https://github.com/graphile/crystal/commit/6a4e3b9ec182f7d066600aee0f8cc21d451b0ae2)
9
+ Thanks [@benjie](https://github.com/benjie)! - Implement queue for
10
+ `watchGather`/`watchSchema`/etc and integrate with grafserv's `setPreset`
11
+ middleware. Promises returned by such now delay schema application, preventing
12
+ growing concurrent work.
13
+
14
+ - [#2777](https://github.com/graphile/crystal/pull/2777)
15
+ [`c6cbe61`](https://github.com/graphile/crystal/commit/c6cbe6175b0f1f034db59d42cbe594e7d329aba6)
16
+ Thanks [@benjie](https://github.com/benjie)! - Tighten our public API surface
17
+ by:
18
+ - renaming `EventStreamHeandlerResult` to the correctly spelt
19
+ `EventStreamHandlerResult` (and keeping only a deprecated alias for the old
20
+ name)
21
+ - dropping the long-deprecated Grafast exports `InterfaceOrUnionPlans` (use
22
+ `InterfacePlan` or `UnionPlan` as appropriate), `deepEval` (should be
23
+ `applyTransforms`) and `DeepEvalStep` (should be `ApplyTransformsStep`)
24
+ - removing the `PgAdaptorOptions` alias in favour of `PgAdaptorSettings`
25
+ - deleting the PostGraphile preset aliases `postgraphilePresetAmber` should be
26
+ `PostGraphileAmberPreset`) and `PgRelayPreset` (should be
27
+ `PostGraphileRelayPreset`), and updating all first-party usage to the
28
+ canonical names
29
+
30
+ - [#2792](https://github.com/graphile/crystal/pull/2792)
31
+ [`f23e0e0`](https://github.com/graphile/crystal/commit/f23e0e0da9105a973dd8ac76f8ae519345d0a5b1)
32
+ Thanks [@malyzeli](https://github.com/malyzeli)! - Add support for event
33
+ streams (e.g. schema watch mode) to Hono Grafserv adaptor. (Thanks @malyzeli!)
34
+
35
+ - [`8a5a7c5`](https://github.com/graphile/crystal/commit/8a5a7c536fc4b9b702600c5cc3d413724670c327)
36
+ Thanks [@benjie](https://github.com/benjie)! - Bump to release candidate
37
+
38
+ - Updated dependencies
39
+ [[`abb623d`](https://github.com/graphile/crystal/commit/abb623d59e517c0949f0fef5440b817103c685bf),
40
+ [`7b86454`](https://github.com/graphile/crystal/commit/7b864546fa81803ce0e573a2efa2e7f0905b2040),
41
+ [`42a0785`](https://github.com/graphile/crystal/commit/42a0785ddabf58812a22d764eeddfde9362974e5),
42
+ [`d196d60`](https://github.com/graphile/crystal/commit/d196d60664fbc9ffd410c11645db27554b22ac0b),
43
+ [`c6cbe61`](https://github.com/graphile/crystal/commit/c6cbe6175b0f1f034db59d42cbe594e7d329aba6),
44
+ [`d4ac603`](https://github.com/graphile/crystal/commit/d4ac603da7df6ea01aaa483a7cb29b1e514a90cd),
45
+ [`8a5a7c5`](https://github.com/graphile/crystal/commit/8a5a7c536fc4b9b702600c5cc3d413724670c327),
46
+ [`ea0135f`](https://github.com/graphile/crystal/commit/ea0135fac3f43850b65828f2ff2b01a34cfdff15),
47
+ [`b6821f5`](https://github.com/graphile/crystal/commit/b6821f5f4dc13abd0b605be7396c1b3c36e66177)]:
48
+ - grafast@1.0.0-rc.1
49
+ - graphile-config@1.0.0-rc.1
50
+ - ruru@2.0.0-rc.1
51
+ - @graphile/lru@5.0.0-rc.1
52
+
53
+ ## 0.1.1-beta.29
54
+
55
+ ### Patch Changes
56
+
57
+ - [#2730](https://github.com/graphile/crystal/pull/2730)
58
+ [`4c3cf22`](https://github.com/graphile/crystal/commit/4c3cf22592f44cb28e399434474ca5fcef0e1a3b)
59
+ Thanks [@benjie](https://github.com/benjie)! - Update `graphql` version range
60
+
61
+ - [#2713](https://github.com/graphile/crystal/pull/2713)
62
+ [`a26ad3e`](https://github.com/graphile/crystal/commit/a26ad3ebcc008acb9a6f5216e3f27ef74f138953)
63
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug with error masking (or
64
+ lack thereof!) in subscriptions
65
+
66
+ - [#2142](https://github.com/graphile/crystal/pull/2142)
67
+ [`ab96e5f`](https://github.com/graphile/crystal/commit/ab96e5f58aa3315db9b85b452b048f600cb8353e)
68
+ Thanks [@benjie](https://github.com/benjie)! - Support for `@defer` and
69
+ `@stream` no longer requires `graphql@16.1.0-experimental-stream-defer.6`.
70
+ `graphql@^16.9.0` should now work, since we ponyfill everything we need.
71
+ - Updated dependencies
72
+ [[`4c3cf22`](https://github.com/graphile/crystal/commit/4c3cf22592f44cb28e399434474ca5fcef0e1a3b),
73
+ [`71e0af2`](https://github.com/graphile/crystal/commit/71e0af265c90e9d9d0dc764cc552f7470e860251),
74
+ [`ab96e5f`](https://github.com/graphile/crystal/commit/ab96e5f58aa3315db9b85b452b048f600cb8353e),
75
+ [`278b4d3`](https://github.com/graphile/crystal/commit/278b4d398eb7db1935caba4155e1d1727284a370),
76
+ [`eaa771b`](https://github.com/graphile/crystal/commit/eaa771b34dbdac1c4d701faa8fb5947e9cf1d1be),
77
+ [`d0c15cc`](https://github.com/graphile/crystal/commit/d0c15ccc32ed8dec19ff068f851529132dc93302),
78
+ [`bffbb77`](https://github.com/graphile/crystal/commit/bffbb775ea76d1add85422866a6b7e904d2311af),
79
+ [`c48ca48`](https://github.com/graphile/crystal/commit/c48ca4840227b8e5e6a1dc198a189cfd911a602b)]:
80
+ - grafast@0.1.1-beta.27
81
+ - ruru@2.0.0-beta.31
82
+
83
+ ## 0.1.1-beta.28
84
+
85
+ ### Patch Changes
86
+
87
+ - [#2690](https://github.com/graphile/crystal/pull/2690)
88
+ [`208364f`](https://github.com/graphile/crystal/commit/208364f9423abd240a0772b661986aae6e185c47)
89
+ Thanks [@benjie](https://github.com/benjie)! - Add keepalive to grafserv
90
+ websocket connections.
91
+
92
+ - [#2694](https://github.com/graphile/crystal/pull/2694)
93
+ [`13513dd`](https://github.com/graphile/crystal/commit/13513ddaea15ad9498a77de7c4e92679498f99ca)
94
+ Thanks [@benjie](https://github.com/benjie)! - Add support for `onError` RFC
95
+ with `PROPAGATE`, `NULL` and `HALT` behaviors implemented.
96
+
97
+ - [#2678](https://github.com/graphile/crystal/pull/2678)
98
+ [`6dafac1`](https://github.com/graphile/crystal/commit/6dafac162955291e5147c21e57734b44e30acb98)
99
+ Thanks [@benjie](https://github.com/benjie)! - Remove peer dependency
100
+ optionality in an attempt to satisfy pnpm's installation algorithms
101
+
102
+ - [#2666](https://github.com/graphile/crystal/pull/2666)
103
+ [`33c7784`](https://github.com/graphile/crystal/commit/33c7784a8c81ac29c1e2e4a8733d04c30ef7035b)
104
+ Thanks [@valerii15298](https://github.com/valerii15298)! - Fix support for
105
+ HTTP 304 in @whatwg/node adaptor, thereby fixing serving of static assets with
106
+ ETag headers (thanks @valerii15298!)
107
+
108
+ - [#2657](https://github.com/graphile/crystal/pull/2657)
109
+ [`f83b191`](https://github.com/graphile/crystal/commit/f83b191f39c9d521fd12563cca6aa20d1a6f0494)
110
+ Thanks [@dependabot](https://github.com/apps/dependabot)! - Add support for
111
+ Koa v3 (via v2 code) and update package exports.
112
+
113
+ - Updated dependencies
114
+ [[`cfd4c3c`](https://github.com/graphile/crystal/commit/cfd4c3cff0ef40ed87a2c700b7719c1ca0e73588),
115
+ [`c3f9c38`](https://github.com/graphile/crystal/commit/c3f9c38cb00ad4553e4bc3c04e16a7c77bd16142),
116
+ [`13513dd`](https://github.com/graphile/crystal/commit/13513ddaea15ad9498a77de7c4e92679498f99ca),
117
+ [`bc2b188`](https://github.com/graphile/crystal/commit/bc2b188a50e00f153dc68df6955399c5917130bd),
118
+ [`c13813e`](https://github.com/graphile/crystal/commit/c13813eecb42c0d9a6703540c022e318e18c5751),
119
+ [`4a9072b`](https://github.com/graphile/crystal/commit/4a9072bfa3d3e86c6013caf2b89a31e87f2bb421),
120
+ [`6dafac1`](https://github.com/graphile/crystal/commit/6dafac162955291e5147c21e57734b44e30acb98),
121
+ [`e15f886`](https://github.com/graphile/crystal/commit/e15f886cae1041416b44b74b75426f8d43000dcf),
122
+ [`34efed0`](https://github.com/graphile/crystal/commit/34efed09892d4b6533f40026de4a6b0a8a35035d),
123
+ [`185d449`](https://github.com/graphile/crystal/commit/185d449ed30d29c9134cc898b50a1473ab2910a2)]:
124
+ - graphile-config@0.0.1-beta.18
125
+ - grafast@0.1.1-beta.26
126
+ - ruru@2.0.0-beta.30
127
+
128
+ ## 0.1.1-beta.27
129
+
130
+ ### Patch Changes
131
+
132
+ - [#2578](https://github.com/graphile/crystal/pull/2578)
133
+ [`1d76d2f`](https://github.com/graphile/crystal/commit/1d76d2f0d19b4d56895ee9988440a35d2c60f9f9)
134
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 **Ruru has been "rebuilt"!
135
+ The loading methods and APIs have changed!**
136
+
137
+ Ruru is now built on top of GraphiQL v5, which moves to using the Monaco
138
+ editor (the same editor used in VSCode) enabling more familiar keybindings and
139
+ more features (e.g. press F1 in the editor to see the command palette, and you
140
+ can now add comments in the variables JSON). This has required a
141
+ rearchitecture to Ruru's previously "single file" approach since Monaco uses
142
+ workers which require additional files.
143
+
144
+ In this release we have embraced the bundle splitting approach. We now bundle
145
+ both `prettier` and `mermaid`, and they are now loaded on-demand.
146
+
147
+ Usage instructions for all environments have had to change since we can no
148
+ longer serve Ruru as a single HTML file. We now include helpers for serving
149
+ Ruru's static files from whatever JS-based webserver you are using.
150
+
151
+ We've also added some additional improvements:
152
+ - Formatting with prettier now maintains the cursor position
153
+ (`Ctrl-Shift-P`/`Meta-Shift-P`/`Cmd-Shift-P` depending on platform)
154
+ - All editors are now formatted, not just the GraphQL editor
155
+ - Prettier and mermaid should now work offline
156
+ - Even more GraphiQL props are now passed through, including
157
+ `inputValueDeprecation` and `schemaDeprecation` which you can set to false
158
+ if your GraphQL server is, _ahem_, a little behind the GraphQL spec draft.
159
+
160
+ 🚨 **Changes you need to make:** 🚨
161
+ - If you are using Ruru directly (i.e. importing from `ruru/server`), please
162
+ see the new Ruru README for setup instructions, you'll want to switch out
163
+ your previous setup. In particular, `ruru/bundle` no longer exists and you
164
+ now need to serve the static files (via `ruru/static`).
165
+ - `defaultHTMLParts` is no more; instead `config.htmlParts` (also
166
+ `preset.ruru.htmlParts` for Graphile Config users) now allows the entries to
167
+ be callback functions reducing boilerplate:
168
+ ```diff
169
+ -import { defaultHTMLParts } from "ruru/server";
170
+ const config = {
171
+ htmlParts: {
172
+ - metaTags: defaultHTMLParts.metaTags + "<!-- local override -->",
173
+ + metaTags: (base) => base + "<!-- local override -->",
174
+ }
175
+ }
176
+ ```
177
+ (alternatively you can use `makeHTMLParts(config)`)
178
+ - Grafserv users: `plugin.grafserv.middleware.ruruHTMLParts` is renamed to
179
+ `ruruHTML` and wraps the generation of the HTML - simply trim `Parts` from
180
+ the name and be sure calling `next()` is the final line of the function
181
+ ```diff
182
+ const plugin = {
183
+ grafserv: {
184
+ middleware: {
185
+ - ruruHTMLParts(next, event) {
186
+ + ruruHTML(next, event) {
187
+ const { htmlParts, request } = event;
188
+ htmlParts.titleTag = `<title>${escapeHTML(
189
+ "Ruru | " + request.getHeader("host"),
190
+ )}</title>`;
191
+ return next();
192
+ },
193
+ },
194
+ },
195
+ };
196
+ ```
197
+
198
+ Additional changes:
199
+ - `RuruConfig.clientConfig` has been added for props to explicitly pass to
200
+ Ruru making it explicit that these will be sent to the client
201
+ - `RuruServerConfig` has deprecated the client options `editorTheme`,
202
+ `debugTools` and `eventSourceInit` at the top level; instead these should be
203
+ passed via `RuruServerConfig.clientConfig` making it explicit these will be
204
+ sent to the client and expanding to cover more props
205
+ ```diff
206
+ const config = {
207
+ endpoint: "/graphql",
208
+ + clientConfig: {
209
+ editorTheme: "dark",
210
+ + },
211
+ }
212
+ ```
213
+
214
+ - [#2622](https://github.com/graphile/crystal/pull/2622)
215
+ [`a480f6d`](https://github.com/graphile/crystal/commit/a480f6d22605fbb0d0fcdf6845cbdf294d3194b5)
216
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 Since Ruru now needs to
217
+ serve static assets due to the upgrade to GraphiQL v5 and Monaco, we've had to
218
+ extend Grafserv to do so. We've (theoretically) added support in the H3, Hono
219
+ and Fastify adaptors, along with the base node adaptor (used by Node, Express,
220
+ Koa); however - if you have your own adaptor for a different server, you'll
221
+ need to be sure to call the `.graphiqlStaticHandler` for URLs that start with
222
+ `dynamicOptions.graphiqlStaticPath`.
223
+
224
+ Whilst at it, we've added more places where headers can be added, and we've
225
+ added a new "raw" ResultType which can be used to serve a Node Buffer with
226
+ entirely custom headers (e.g. set your own `Content-Type`).
227
+
228
+ - [#2600](https://github.com/graphile/crystal/pull/2600)
229
+ [`ad588ec`](https://github.com/graphile/crystal/commit/ad588ecde230359f56800e414b7c5fa1aed14957)
230
+ Thanks [@benjie](https://github.com/benjie)! - Mark all
231
+ peerDependencies=dependencies modules as optional peerDependencies to make
232
+ pnpm marginally happier hopefully.
233
+ - Updated dependencies
234
+ [[`1d76d2f`](https://github.com/graphile/crystal/commit/1d76d2f0d19b4d56895ee9988440a35d2c60f9f9),
235
+ [`c54c6db`](https://github.com/graphile/crystal/commit/c54c6db320b3967ab16784a504770c9b5ef24494),
236
+ [`24d379a`](https://github.com/graphile/crystal/commit/24d379ae4b8a3c0afe3f1a309d87806a05e8d00d),
237
+ [`ad588ec`](https://github.com/graphile/crystal/commit/ad588ecde230359f56800e414b7c5fa1aed14957)]:
238
+ - ruru@2.0.0-beta.25
239
+ - grafast@0.1.1-beta.24
240
+
241
+ ## 0.1.1-beta.26
242
+
243
+ ### Patch Changes
244
+
245
+ - [#2577](https://github.com/graphile/crystal/pull/2577)
246
+ [`0c6b1f1`](https://github.com/graphile/crystal/commit/0c6b1f1e188f6e2913832adfed9ca76dfdc25c47)
247
+ Thanks [@benjie](https://github.com/benjie)! - Update dependencies
248
+
249
+ - [#2577](https://github.com/graphile/crystal/pull/2577)
250
+ [`1f4544d`](https://github.com/graphile/crystal/commit/1f4544d011a1442688c4e34b677f7123f3ae6927)
251
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug in Hono adaptor where
252
+ Content-Type header might be set more than once.
253
+
254
+ - [#2583](https://github.com/graphile/crystal/pull/2583)
255
+ [`faee38b`](https://github.com/graphile/crystal/commit/faee38bbff0421bbccfaa77c0dffa5c2d44e2b92)
256
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 Upgrade to graphql-ws v6
257
+
258
+ - Updated dependencies
259
+ [[`00b3b8b`](https://github.com/graphile/crystal/commit/00b3b8baea55f0f8cb90c769baf63b408a593182),
260
+ [`0c6b1f1`](https://github.com/graphile/crystal/commit/0c6b1f1e188f6e2913832adfed9ca76dfdc25c47),
261
+ [`826f2cb`](https://github.com/graphile/crystal/commit/826f2cbff651273098d6b0d8c343aefeacfb5a14),
262
+ [`5311f9c`](https://github.com/graphile/crystal/commit/5311f9c8206fb3287b6aae6c4e7668ae920a4441),
263
+ [`e0cdabe`](https://github.com/graphile/crystal/commit/e0cdabe25c8894da550546c93bc03b895585544c),
264
+ [`faee38b`](https://github.com/graphile/crystal/commit/faee38bbff0421bbccfaa77c0dffa5c2d44e2b92)]:
265
+ - ruru@2.0.0-beta.24
266
+ - graphile-config@0.0.1-beta.17
267
+ - grafast@0.1.1-beta.23
268
+
269
+ ## 0.1.1-beta.25
270
+
271
+ ### Patch Changes
272
+
273
+ - [#2444](https://github.com/graphile/crystal/pull/2444)
274
+ [`192a27e08763ea26607344a2ea6c7f5c595cc2a3`](https://github.com/graphile/crystal/commit/192a27e08763ea26607344a2ea6c7f5c595cc2a3)
275
+ Thanks [@benjie](https://github.com/benjie)! - Upgrade to Mermaid 11, and
276
+ reduce verbosity of polymorphism in plan diagrams.
277
+
278
+ - [#2433](https://github.com/graphile/crystal/pull/2433)
279
+ [`6ef6abce15936a896156d5316020df55cf7d18e3`](https://github.com/graphile/crystal/commit/6ef6abce15936a896156d5316020df55cf7d18e3)
280
+ Thanks [@benjie](https://github.com/benjie)! - Add
281
+ `ctx.ws?.normalizedConnectionParams` which can be treated as headers (i.e. has
282
+ lower-cased keys).
283
+
284
+ - [#2437](https://github.com/graphile/crystal/pull/2437)
285
+ [`873b24dc70cea68e236e5dcf5bc7ff8f46fa43fe`](https://github.com/graphile/crystal/commit/873b24dc70cea68e236e5dcf5bc7ff8f46fa43fe)
286
+ Thanks [@benjie](https://github.com/benjie)! - Naked GraphQL errors (such as
287
+ those you'd see from coercion) are now treated as safe to output.
288
+
289
+ - [#2288](https://github.com/graphile/crystal/pull/2288)
290
+ [`eb771be5e8b06a0cd53476cb36495e7e1aca56b7`](https://github.com/graphile/crystal/commit/eb771be5e8b06a0cd53476cb36495e7e1aca56b7)
291
+ Thanks [@kzlar](https://github.com/kzlar)! - Add `@whatwg-node/server` HTTP
292
+ adaptor, thanks to @kzlar 🎉
293
+
294
+ - [#2482](https://github.com/graphile/crystal/pull/2482)
295
+ [`459e1869a2ec58925b2bac5458af487c52a8ca37`](https://github.com/graphile/crystal/commit/459e1869a2ec58925b2bac5458af487c52a8ca37)
296
+ Thanks [@benjie](https://github.com/benjie)! - Minimum version of Node.js
297
+ bumped to Node 22 (the latest LTS).
298
+
299
+ - Updated dependencies
300
+ [[`0e36cb9077c76710d2e407830323f86c5038126e`](https://github.com/graphile/crystal/commit/0e36cb9077c76710d2e407830323f86c5038126e),
301
+ [`c0c3f48fa9f60cb9a4436ea135979b779ecc71ec`](https://github.com/graphile/crystal/commit/c0c3f48fa9f60cb9a4436ea135979b779ecc71ec),
302
+ [`cef9a37f846b4af105ac20960530d65c9f44afa9`](https://github.com/graphile/crystal/commit/cef9a37f846b4af105ac20960530d65c9f44afa9),
303
+ [`56ce94a847c6a4094643665cbf5d3712f56140b6`](https://github.com/graphile/crystal/commit/56ce94a847c6a4094643665cbf5d3712f56140b6),
304
+ [`192a27e08763ea26607344a2ea6c7f5c595cc2a3`](https://github.com/graphile/crystal/commit/192a27e08763ea26607344a2ea6c7f5c595cc2a3),
305
+ [`6ef6abce15936a896156d5316020df55cf7d18e3`](https://github.com/graphile/crystal/commit/6ef6abce15936a896156d5316020df55cf7d18e3),
306
+ [`0239c2d519300a72f545e0db7c371adae4ade2a9`](https://github.com/graphile/crystal/commit/0239c2d519300a72f545e0db7c371adae4ade2a9),
307
+ [`0ea439d33ccef7f8d01ac5f54893ab2bbf1cbd4d`](https://github.com/graphile/crystal/commit/0ea439d33ccef7f8d01ac5f54893ab2bbf1cbd4d),
308
+ [`997c49648b62a93e5b915c65c49cdad1654bef3e`](https://github.com/graphile/crystal/commit/997c49648b62a93e5b915c65c49cdad1654bef3e),
309
+ [`8034614d1078b1bd177b6e7fcc949420614e3245`](https://github.com/graphile/crystal/commit/8034614d1078b1bd177b6e7fcc949420614e3245),
310
+ [`459e1869a2ec58925b2bac5458af487c52a8ca37`](https://github.com/graphile/crystal/commit/459e1869a2ec58925b2bac5458af487c52a8ca37),
311
+ [`c350e49e372ec12a4cbf04fb6b4260e01832d12b`](https://github.com/graphile/crystal/commit/c350e49e372ec12a4cbf04fb6b4260e01832d12b),
312
+ [`3176ea3e57d626b39613a73117ef97627370ec83`](https://github.com/graphile/crystal/commit/3176ea3e57d626b39613a73117ef97627370ec83),
313
+ [`46a42f5547c041289aa98657ebc6815f4b6c8539`](https://github.com/graphile/crystal/commit/46a42f5547c041289aa98657ebc6815f4b6c8539),
314
+ [`be3f174c5aae8fe78a240e1bc4e1de7f18644b43`](https://github.com/graphile/crystal/commit/be3f174c5aae8fe78a240e1bc4e1de7f18644b43),
315
+ [`576fb8bad56cb940ab444574d752e914d462018a`](https://github.com/graphile/crystal/commit/576fb8bad56cb940ab444574d752e914d462018a),
316
+ [`9f459101fa4428aa4bac71531e75f99e33da8e17`](https://github.com/graphile/crystal/commit/9f459101fa4428aa4bac71531e75f99e33da8e17),
317
+ [`921665df8babe2651ab3b5886ab68bb518f2125b`](https://github.com/graphile/crystal/commit/921665df8babe2651ab3b5886ab68bb518f2125b),
318
+ [`78bb1a615754d772a5fda000e96073c91fa9eba7`](https://github.com/graphile/crystal/commit/78bb1a615754d772a5fda000e96073c91fa9eba7),
319
+ [`ab0bcda5fc3c136eea09493a7d9ed4542975858e`](https://github.com/graphile/crystal/commit/ab0bcda5fc3c136eea09493a7d9ed4542975858e),
320
+ [`455f4811d37ad8fff91183c7a88621bcf9d79acf`](https://github.com/graphile/crystal/commit/455f4811d37ad8fff91183c7a88621bcf9d79acf),
321
+ [`45adaff886e7cd72b864150927be6c0cb4a7dfe8`](https://github.com/graphile/crystal/commit/45adaff886e7cd72b864150927be6c0cb4a7dfe8)]:
322
+ - grafast@0.1.1-beta.22
323
+ - ruru@2.0.0-beta.23
324
+ - graphile-config@0.0.1-beta.16
325
+ - @graphile/lru@5.0.0-beta.4
326
+
327
+ ## 0.1.1-beta.24
328
+
329
+ ### Patch Changes
330
+
331
+ - Updated dependencies
332
+ [[`658d46c9a5b246e3beb4ba2a004334278f7bb24d`](https://github.com/graphile/crystal/commit/658d46c9a5b246e3beb4ba2a004334278f7bb24d)]:
333
+ - ruru@2.0.0-beta.22
334
+
335
+ ## 0.1.1-beta.23
336
+
337
+ ### Patch Changes
338
+
339
+ - Updated dependencies
340
+ [[`d34014a9a3c469154cc796086ba13719954731e5`](https://github.com/graphile/crystal/commit/d34014a9a3c469154cc796086ba13719954731e5),
341
+ [`98516379ac355a0833a64e002f3717cc3a1d6473`](https://github.com/graphile/crystal/commit/98516379ac355a0833a64e002f3717cc3a1d6473),
342
+ [`f8602d05eed3247c90b87c55d7af580d1698effc`](https://github.com/graphile/crystal/commit/f8602d05eed3247c90b87c55d7af580d1698effc),
343
+ [`65df25534fa3f787ba2ab7fd9547d295ff2b1288`](https://github.com/graphile/crystal/commit/65df25534fa3f787ba2ab7fd9547d295ff2b1288),
344
+ [`1b3c76efd27df73eab3a5a1d221ce13de4cd6b1a`](https://github.com/graphile/crystal/commit/1b3c76efd27df73eab3a5a1d221ce13de4cd6b1a),
345
+ [`3c0a925f26f10cae627a23c49c75ccd8d76b60c8`](https://github.com/graphile/crystal/commit/3c0a925f26f10cae627a23c49c75ccd8d76b60c8),
346
+ [`fcaeb48844156e258a037f420ea1505edb50c52a`](https://github.com/graphile/crystal/commit/fcaeb48844156e258a037f420ea1505edb50c52a),
347
+ [`68926abc31c32ce527327ffbb1ede4b0b7be446b`](https://github.com/graphile/crystal/commit/68926abc31c32ce527327ffbb1ede4b0b7be446b),
348
+ [`4b49dbd2df3b339a2ba3f1e9ff400fa1a125298b`](https://github.com/graphile/crystal/commit/4b49dbd2df3b339a2ba3f1e9ff400fa1a125298b),
349
+ [`d7950e8e28ec6106a4ce2f7fe5e35d88b10eac48`](https://github.com/graphile/crystal/commit/d7950e8e28ec6106a4ce2f7fe5e35d88b10eac48),
350
+ [`c8f1971ea4198633ec97f72f82abf65089f71a88`](https://github.com/graphile/crystal/commit/c8f1971ea4198633ec97f72f82abf65089f71a88),
351
+ [`dd3d22eab73a8554715bf1111e30586251f69a88`](https://github.com/graphile/crystal/commit/dd3d22eab73a8554715bf1111e30586251f69a88),
352
+ [`a120a8e43b24dfc174950cdbb69e481272a0b45e`](https://github.com/graphile/crystal/commit/a120a8e43b24dfc174950cdbb69e481272a0b45e),
353
+ [`84f06eafa051e907a3050237ac6ee5aefb184652`](https://github.com/graphile/crystal/commit/84f06eafa051e907a3050237ac6ee5aefb184652),
354
+ [`4a3aeaa77c8b8d2e39c1a9d05581d0c613b812cf`](https://github.com/graphile/crystal/commit/4a3aeaa77c8b8d2e39c1a9d05581d0c613b812cf),
355
+ [`0fc2db95d90df918cf5c59ef85f22ac78d8000d3`](https://github.com/graphile/crystal/commit/0fc2db95d90df918cf5c59ef85f22ac78d8000d3),
356
+ [`90e81a5deeae554a8be2dd55dcd01489860e96e6`](https://github.com/graphile/crystal/commit/90e81a5deeae554a8be2dd55dcd01489860e96e6),
357
+ [`c59132eb7a93bc82493d2f1ca050db8aaea9f4d1`](https://github.com/graphile/crystal/commit/c59132eb7a93bc82493d2f1ca050db8aaea9f4d1),
358
+ [`7c38cdeffe034c9b4f5cdd03a8f7f446bd52dcb7`](https://github.com/graphile/crystal/commit/7c38cdeffe034c9b4f5cdd03a8f7f446bd52dcb7),
359
+ [`728888b28fcd2a6fc481e0ccdfe20d41181a091f`](https://github.com/graphile/crystal/commit/728888b28fcd2a6fc481e0ccdfe20d41181a091f),
360
+ [`f4f39092d7a51517668384945895d3b450237cce`](https://github.com/graphile/crystal/commit/f4f39092d7a51517668384945895d3b450237cce),
361
+ [`5cf3dc9d158891eaf324b2cd4f485d1d4bbb6b5e`](https://github.com/graphile/crystal/commit/5cf3dc9d158891eaf324b2cd4f485d1d4bbb6b5e),
362
+ [`83d3b533e702cc875b46ba2ca02bf3642b421be8`](https://github.com/graphile/crystal/commit/83d3b533e702cc875b46ba2ca02bf3642b421be8),
363
+ [`7001138c38e09822ad13db1018c62d2cac37941e`](https://github.com/graphile/crystal/commit/7001138c38e09822ad13db1018c62d2cac37941e),
364
+ [`e9e7e33665e22ec397e9ead054d2e4aad3eadc8c`](https://github.com/graphile/crystal/commit/e9e7e33665e22ec397e9ead054d2e4aad3eadc8c),
365
+ [`bb6ec8d834e3e630e28316196246f514114a2296`](https://github.com/graphile/crystal/commit/bb6ec8d834e3e630e28316196246f514114a2296),
366
+ [`2b1918d053f590cdc534c8cb81f7e74e96c1bbe6`](https://github.com/graphile/crystal/commit/2b1918d053f590cdc534c8cb81f7e74e96c1bbe6),
367
+ [`d1ecb39693a341f85762b27012ec4ea013857b0c`](https://github.com/graphile/crystal/commit/d1ecb39693a341f85762b27012ec4ea013857b0c),
368
+ [`042ebafe11fcf7e2ecac9b131265a55dddd42a6d`](https://github.com/graphile/crystal/commit/042ebafe11fcf7e2ecac9b131265a55dddd42a6d),
369
+ [`fa005eb0783c58a2476add984fbdd462e0e91dbe`](https://github.com/graphile/crystal/commit/fa005eb0783c58a2476add984fbdd462e0e91dbe),
370
+ [`df0e5a0f968cf6f9ae97b68745a9a2f391324bf5`](https://github.com/graphile/crystal/commit/df0e5a0f968cf6f9ae97b68745a9a2f391324bf5),
371
+ [`ef4cf75acd80e6b9c700c2b5a7ace899e565ef7f`](https://github.com/graphile/crystal/commit/ef4cf75acd80e6b9c700c2b5a7ace899e565ef7f),
372
+ [`c041fd250372c57601188b65a6411c8f440afab6`](https://github.com/graphile/crystal/commit/c041fd250372c57601188b65a6411c8f440afab6),
373
+ [`629b45aab49151810f6efc18ac18f7d735626433`](https://github.com/graphile/crystal/commit/629b45aab49151810f6efc18ac18f7d735626433),
374
+ [`6d19724330d50d076aab9442660fa8abddd095cb`](https://github.com/graphile/crystal/commit/6d19724330d50d076aab9442660fa8abddd095cb),
375
+ [`ca5bc1a834df7b894088fb8602a12f9fcff55b38`](https://github.com/graphile/crystal/commit/ca5bc1a834df7b894088fb8602a12f9fcff55b38),
376
+ [`da6f3c04efe3d8634c0bc3fcf93ac2518de85322`](https://github.com/graphile/crystal/commit/da6f3c04efe3d8634c0bc3fcf93ac2518de85322),
377
+ [`00d79e6f5608affc3f36bb0ce4ca2547230174e7`](https://github.com/graphile/crystal/commit/00d79e6f5608affc3f36bb0ce4ca2547230174e7),
378
+ [`f0bc64b71914dfdd3612f4b65370401fd85b97bc`](https://github.com/graphile/crystal/commit/f0bc64b71914dfdd3612f4b65370401fd85b97bc)]:
379
+ - grafast@0.1.1-beta.21
380
+ - graphile-config@0.0.1-beta.15
381
+ - ruru@2.0.0-beta.21
382
+
383
+ ## 0.1.1-beta.22
384
+
385
+ ### Patch Changes
386
+
387
+ - Updated dependencies
388
+ [[`fc9d64eb8`](https://github.com/graphile/crystal/commit/fc9d64eb8002d3b72625bc505ed76c07f4296d68),
389
+ [`a2dbad945`](https://github.com/graphile/crystal/commit/a2dbad9457195bec797d72e4e6d45f45278f9f69),
390
+ [`31078842a`](https://github.com/graphile/crystal/commit/31078842ad0eeaa7111491fa9eb5e3bd026fb38a),
391
+ [`5a0ec31de`](https://github.com/graphile/crystal/commit/5a0ec31deae91f1dd17a77a4bb7c1a911a27e26a),
392
+ [`ba2847f3e`](https://github.com/graphile/crystal/commit/ba2847f3e87b3c081e4b9fc4e62a81cc8bd8bb15)]:
393
+ - grafast@0.1.1-beta.20
394
+ - ruru@2.0.0-beta.20
395
+
396
+ ## 0.1.1-beta.21
397
+
398
+ ### Patch Changes
399
+
400
+ - Updated dependencies
401
+ [[`83c546509`](https://github.com/graphile/crystal/commit/83c546509d24be2955a56120981363ad3c3a5f3f)]:
402
+ - graphile-config@0.0.1-beta.14
403
+ - grafast@0.1.1-beta.19
404
+ - ruru@2.0.0-beta.19
405
+
406
+ ## 0.1.1-beta.20
407
+
408
+ ### Patch Changes
409
+
410
+ - Updated dependencies
411
+ [[`7580bc16a`](https://github.com/graphile/crystal/commit/7580bc16a050fd8d916c6dabe9d1ded980090349),
412
+ [`b336a5829`](https://github.com/graphile/crystal/commit/b336a58291cfec7aef884d3843172d408abfaf3c)]:
413
+ - graphile-config@0.0.1-beta.13
414
+ - grafast@0.1.1-beta.18
415
+ - ruru@2.0.0-beta.18
416
+
417
+ ## 0.1.1-beta.19
418
+
419
+ ### Patch Changes
420
+
421
+ - [#2252](https://github.com/graphile/crystal/pull/2252)
422
+ [`866673e14`](https://github.com/graphile/crystal/commit/866673e14f7ad76b6f6d83d1b4e3a4eff8fdba37)
423
+ Thanks [@benjie](https://github.com/benjie)! - Overhaul maskError types to
424
+ return GraphQLFormattedError.
425
+
426
+ - [#2240](https://github.com/graphile/crystal/pull/2240)
427
+ [`9a0f9e78c`](https://github.com/graphile/crystal/commit/9a0f9e78c4ee46f50f49bb068baddef7e1de4119)
428
+ Thanks [@benjie](https://github.com/benjie)! - Adopt new MiddlewareHandlers
429
+ type for simplicity, and in doing so fix type of middleware (for plugins) that
430
+ incorrectly unwrapped promise resulting in TypeScript incorrectly suggesting
431
+ that `await` was not necessary.
432
+ - Updated dependencies
433
+ [[`69ab227b5`](https://github.com/graphile/crystal/commit/69ab227b5e1c057a6fc8ebba87bde80d5aa7f3c8),
434
+ [`38163c86a`](https://github.com/graphile/crystal/commit/38163c86ae628fed84cf38fc6a1cc76a7bc7932a),
435
+ [`d13b76f0f`](https://github.com/graphile/crystal/commit/d13b76f0fef2a58466ecb44880af62d25910e83e),
436
+ [`b167bd849`](https://github.com/graphile/crystal/commit/b167bd8499be5866b71bac6594d55bd768fda1d0),
437
+ [`6a13ecbd4`](https://github.com/graphile/crystal/commit/6a13ecbd45534c39c846c1d8bc58242108426dd1)]:
438
+ - grafast@0.1.1-beta.17
439
+ - ruru@2.0.0-beta.17
440
+ - graphile-config@0.0.1-beta.12
441
+
442
+ ## 0.1.1-beta.18
443
+
444
+ ### Patch Changes
445
+
446
+ - [#2204](https://github.com/graphile/crystal/pull/2204)
447
+ [`bf2a2e72a`](https://github.com/graphile/crystal/commit/bf2a2e72ab78a01f5aba6cda97b5a125563b1f3d)
448
+ Thanks [@Dodobibi](https://github.com/Dodobibi)! - Overhaul websocket support
449
+ in nuxt/h3 server adaptor. Removes experimental methods since they are no
450
+ longer needed. Docs have been updated - please follow the docs. Any issues,
451
+ please let us know (or better: open a PR!)
452
+ - Updated dependencies
453
+ [[`5626c7d36`](https://github.com/graphile/crystal/commit/5626c7d3649285e11fe9857dfa319d2883d027eb),
454
+ [`76c7340b7`](https://github.com/graphile/crystal/commit/76c7340b74d257c454beec883384d19ef078b21e)]:
455
+ - graphile-config@0.0.1-beta.11
456
+ - grafast@0.1.1-beta.16
457
+ - ruru@2.0.0-beta.16
458
+
459
+ ## 0.1.1-beta.17
460
+
461
+ ### Patch Changes
462
+
463
+ - Updated dependencies
464
+ [[`d5834def1`](https://github.com/graphile/crystal/commit/d5834def1fb84f3e2c0c0a6f146f8249a6df890a),
465
+ [`42b982463`](https://github.com/graphile/crystal/commit/42b9824637a6c05e02935f2b05b5e8e0c61965a6),
466
+ [`884a4b429`](https://github.com/graphile/crystal/commit/884a4b4297af90fdadaf73addd524f1fbbcfdcce),
467
+ [`38835313a`](https://github.com/graphile/crystal/commit/38835313ad93445206dccdd4cf07b90c5a6e4377),
468
+ [`cc0941731`](https://github.com/graphile/crystal/commit/cc0941731a1679bc04ce7b7fd4254009bb5f1f62),
469
+ [`b0865d169`](https://github.com/graphile/crystal/commit/b0865d1691105b5419009954c98c8109a27a5d81),
470
+ [`8b472cd51`](https://github.com/graphile/crystal/commit/8b472cd51cd66d8227f9f2722d09c0a774792b0f),
471
+ [`9cd9bb522`](https://github.com/graphile/crystal/commit/9cd9bb5222a9f0398ee4b8bfa4f741b6de2a2192)]:
472
+ - grafast@0.1.1-beta.15
473
+ - graphile-config@0.0.1-beta.10
474
+ - ruru@2.0.0-beta.15
475
+
476
+ ## 0.1.1-beta.16
477
+
478
+ ### Patch Changes
479
+
480
+ - Updated dependencies
481
+ [[`871d32b2a`](https://github.com/graphile/crystal/commit/871d32b2a18df0d257880fc54a61d9e68c4607d6),
482
+ [`a26e3a30c`](https://github.com/graphile/crystal/commit/a26e3a30c02f963f8f5e9c9d021e871f33689e1b),
483
+ [`02c11a4d4`](https://github.com/graphile/crystal/commit/02c11a4d42bf434dffc9354b300e8d791c4eeb2d)]:
484
+ - grafast@0.1.1-beta.14
485
+ - ruru@2.0.0-beta.14
486
+
487
+ ## 0.1.1-beta.15
488
+
489
+ ### Patch Changes
490
+
491
+ - Updated dependencies
492
+ [[`807650035`](https://github.com/graphile/crystal/commit/8076500354a3e2bc2de1b6c4e947bd710cc5bddc)]:
493
+ - grafast@0.1.1-beta.13
494
+ - ruru@2.0.0-beta.14
495
+
496
+ ## 0.1.1-beta.14
497
+
498
+ ### Patch Changes
499
+
500
+ - [#2097](https://github.com/graphile/crystal/pull/2097)
501
+ [`61f8bbca5`](https://github.com/graphile/crystal/commit/61f8bbca5badda5b27872e0ee01a2d4c1372210d)
502
+ Thanks [@FelixZY](https://github.com/FelixZY)! - Improve logging of masked
503
+ errors (thanks @FelixZY)
504
+
505
+ - Updated dependencies
506
+ [[`1bd50b61e`](https://github.com/graphile/crystal/commit/1bd50b61ebb10b7d09b3612c2e2767c41cca3b78),
507
+ [`4e102b1a1`](https://github.com/graphile/crystal/commit/4e102b1a1cd232e6f6703df0706415f01831dab2),
508
+ [`7bb1573ba`](https://github.com/graphile/crystal/commit/7bb1573ba45a4d8b7fa9ad53cdd79686d2641383),
509
+ [`18addb385`](https://github.com/graphile/crystal/commit/18addb3852525aa91019a36d58fa2fecd8b5b443),
510
+ [`6ed615e55`](https://github.com/graphile/crystal/commit/6ed615e557b2ab1fb57f1e68c06730a8e3da7175),
511
+ [`b25cc539c`](https://github.com/graphile/crystal/commit/b25cc539c00aeda7a943c37509aaae4dc7812317),
512
+ [`867f33136`](https://github.com/graphile/crystal/commit/867f331365346fc46ed1e0d23c79719846e398f4),
513
+ [`cf535c210`](https://github.com/graphile/crystal/commit/cf535c21078da06c14dd12f30e9b4378da4ded03),
514
+ [`acf99b190`](https://github.com/graphile/crystal/commit/acf99b190954e3c5926e820daed68dfe8eb3ee1f),
515
+ [`4967a197f`](https://github.com/graphile/crystal/commit/4967a197fd2c71ee2a581fe29470ee9f30e74de5),
516
+ [`1908e1ba1`](https://github.com/graphile/crystal/commit/1908e1ba11883a34dac66f985fc20ab160e572b1),
517
+ [`084d80be6`](https://github.com/graphile/crystal/commit/084d80be6e17187c9a9932bcf079e3f460368782)]:
518
+ - grafast@0.1.1-beta.12
519
+ - ruru@2.0.0-beta.14
520
+
521
+ ## 0.1.1-beta.13
522
+
523
+ ### Patch Changes
524
+
525
+ - [#2071](https://github.com/graphile/crystal/pull/2071)
526
+ [`582bd768f`](https://github.com/graphile/crystal/commit/582bd768fec403ce3284f293b85b9fd86e4d3f40)
527
+ Thanks [@benjie](https://github.com/benjie)! - `GrafastExecutionArgs` now
528
+ accepts `resolvedPreset` and `requestContext` directly; passing these through
529
+ additional arguments is now deprecated and support will be removed in a future
530
+ revision. This affects:
531
+ - `grafast()`
532
+ - `execute()`
533
+ - `subscribe()`
534
+ - `hookArgs()`
535
+
536
+ `graphile-config` has gained a middleware system which is more powerful than
537
+ it's AsyncHooks system. Old hooks can be emulated through the middleware
538
+ system safely since middleware is a superset of hooks' capabilities.
539
+ `applyHooks` has been renamed to `orderedApply` (because it applies to more
540
+ than just hooks), calling `applyHooks` will still work but is deprecated.
541
+
542
+ 🚨 `grafast` no longer automatically reads your `graphile.config.ts` or
543
+ similar; you must do that yourself and pass the `resolvedPreset` to grafast
544
+ via the `args`. This is to aid in bundling of grafast since it should not need
545
+ to read from filesystem or dynamically load modules.
546
+
547
+ `grafast` no longer outputs performance warning when you set
548
+ `GRAPHILE_ENV=development`.
549
+
550
+ 🚨 `plugin.grafast.hooks.args` is now `plugin.grafast.middleware.prepareArgs`,
551
+ and the signature has changed - you must be sure to call the `next()` function
552
+ and ctx/resolvedPreset can be extracted directly from `args`:
553
+
554
+ ```diff
555
+ const plugin = {
556
+ grafast: {
557
+ - hooks: {
558
+ + middleware: {
559
+ - args({ args, ctx, resolvedPreset }) {
560
+ + prepareArgs(next, { args }) {
561
+ + const { requestContext: ctx, resolvedPreset } = args;
562
+ // ...
563
+ + return next();
564
+ }
565
+ }
566
+ }
567
+ }
568
+ ```
569
+
570
+ Many more middleware have been added; use TypeScript's autocomplete to see
571
+ what's available until we have proper documentation for them.
572
+
573
+ `plugin.grafserv.hooks.*` are still supported but deprecated; instead use
574
+ middleware `plugin.grafserv.middleware.*` (note that call signatures have
575
+ changed slightly, similar to the diff above):
576
+ - `hooks.init` -> `middleware.setPreset`
577
+ - `hooks.processGraphQLRequestBody` -> `middleware.processGraphQLRequestBody`
578
+ - `hooks.ruruHTMLParts` -> `middleware.ruruHTMLParts`
579
+
580
+ A few TypeScript types related to Hooks have been renamed, but their old names
581
+ are still available, just deprecated. They will be removed in a future update:
582
+ - `HookObject` -> `FunctionalityObject`
583
+ - `PluginHook` -> `CallbackOrDescriptor`
584
+ - `PluginHookObject` -> `CallbackDescriptor`
585
+ - `PluginHookCallback` -> `UnwrapCallback`
586
+
587
+ - Updated dependencies
588
+ [[`582bd768f`](https://github.com/graphile/crystal/commit/582bd768fec403ce3284f293b85b9fd86e4d3f40)]:
589
+ - graphile-config@0.0.1-beta.9
590
+ - grafast@0.1.1-beta.11
591
+ - ruru@2.0.0-beta.13
592
+
593
+ ## 0.1.1-beta.12
594
+
595
+ ### Patch Changes
596
+
597
+ - Updated dependencies
598
+ [[`3c161f7e1`](https://github.com/graphile/crystal/commit/3c161f7e13375105b1035a7d5d1c0f2b507ca5c7),
599
+ [`a674a9923`](https://github.com/graphile/crystal/commit/a674a9923bc908c9315afa40e0cb256ee0953d16),
600
+ [`b7cfeffd1`](https://github.com/graphile/crystal/commit/b7cfeffd1019d61c713a5054c4f5929960a2a6ab)]:
601
+ - grafast@0.1.1-beta.10
602
+ - ruru@2.0.0-beta.12
603
+
604
+ ## 0.1.1-beta.11
605
+
606
+ ### Patch Changes
607
+
608
+ - Updated dependencies
609
+ [[`437570f97`](https://github.com/graphile/crystal/commit/437570f97e8520afaf3d0d0b514d1f4c31546b76)]:
610
+ - grafast@0.1.1-beta.9
611
+ - ruru@2.0.0-beta.12
612
+
613
+ ## 0.1.1-beta.10
614
+
615
+ ### Patch Changes
616
+
617
+ - Updated dependencies
618
+ [[`bd5a908a4`](https://github.com/graphile/crystal/commit/bd5a908a4d04310f90dfb46ad87398ffa993af3b)]:
619
+ - grafast@0.1.1-beta.8
620
+ - ruru@2.0.0-beta.12
621
+
622
+ ## 0.1.1-beta.9
623
+
624
+ ### Patch Changes
625
+
626
+ - [#2046](https://github.com/graphile/crystal/pull/2046)
627
+ [`a5a0816bd`](https://github.com/graphile/crystal/commit/a5a0816bddc85a841770202db57457ff13137852)
628
+ Thanks [@benjie](https://github.com/benjie)! - Massive refactor of Grafserv
629
+ internals.
630
+
631
+ - Updated dependencies
632
+ [[`357d475f5`](https://github.com/graphile/crystal/commit/357d475f54fecc8c51892e0346d6872b34132430),
633
+ [`3551725e7`](https://github.com/graphile/crystal/commit/3551725e71c3ed876554e19e5ab2c1dcb0fb1143),
634
+ [`80836471e`](https://github.com/graphile/crystal/commit/80836471e5cedb29dee63bc5002550c4f1713cfd),
635
+ [`a5c20fefb`](https://github.com/graphile/crystal/commit/a5c20fefb571dea6d1187515dc48dd547e9e6204),
636
+ [`1ce08980e`](https://github.com/graphile/crystal/commit/1ce08980e2a52ed9bc81564d248c19648ecd3616),
637
+ [`dff4f2535`](https://github.com/graphile/crystal/commit/dff4f2535ac6ce893089b312fcd5fffcd98573a5),
638
+ [`a287a57c2`](https://github.com/graphile/crystal/commit/a287a57c2765da0fb6a132ea0953f64453210ceb),
639
+ [`2fe56f9a6`](https://github.com/graphile/crystal/commit/2fe56f9a6dac03484ace45c29c2223a65f9ca1db),
640
+ [`fed603d71`](https://github.com/graphile/crystal/commit/fed603d719c02f33e12190f925c9e3b06c581fac),
641
+ [`ed6e0d278`](https://github.com/graphile/crystal/commit/ed6e0d2788217a1c419634837f4208013eaf2923),
642
+ [`e82e4911e`](https://github.com/graphile/crystal/commit/e82e4911e32138df1b90ec0fde555ea963018d21),
643
+ [`42ece5aa6`](https://github.com/graphile/crystal/commit/42ece5aa6ca05345ebc17fb5c7d55df3b79b7612),
644
+ [`e0d69e518`](https://github.com/graphile/crystal/commit/e0d69e518a98c70f9b90f59d243ce33978c1b5a1),
645
+ [`db8ceed0f`](https://github.com/graphile/crystal/commit/db8ceed0f17923eb78ff09c9f3f28800a5c7e3b6),
646
+ [`6699388ec`](https://github.com/graphile/crystal/commit/6699388ec167d35c71220ce5d9113cac578da6cb),
647
+ [`966203504`](https://github.com/graphile/crystal/commit/96620350467ab8c65b56adf2f055e19450f8e772),
648
+ [`c1645b249`](https://github.com/graphile/crystal/commit/c1645b249aae949a548cd916e536ccfb63e5ab35),
649
+ [`ed8bbaa3c`](https://github.com/graphile/crystal/commit/ed8bbaa3cd1563a7601ca8c6b0412633b0ea4ce9),
650
+ [`a0e82b9c5`](https://github.com/graphile/crystal/commit/a0e82b9c5f4e585f1af1e147299cd07944ece6f8),
651
+ [`14e2412ee`](https://github.com/graphile/crystal/commit/14e2412ee368e8d53abf6774c7f0069f32d4e8a3),
652
+ [`57ab0e1e7`](https://github.com/graphile/crystal/commit/57ab0e1e72c01213b21d3efc539cd655d83d993a),
653
+ [`8442242e4`](https://github.com/graphile/crystal/commit/8442242e43cac7d89ca0c413cf42c9fabf6f247f),
654
+ [`64ce7b765`](https://github.com/graphile/crystal/commit/64ce7b7650530251aec38a51089da66f914c19b4),
655
+ [`cba842357`](https://github.com/graphile/crystal/commit/cba84235786acbd77ade53bae7a3fba4a9be1eb7),
656
+ [`2fa77d0f2`](https://github.com/graphile/crystal/commit/2fa77d0f237cdb98d3dafb6b5e4083a2c6c38673)]:
657
+ - grafast@0.1.1-beta.7
658
+ - graphile-config@0.0.1-beta.8
659
+ - ruru@2.0.0-beta.12
660
+
3
661
  ## 0.1.1-beta.8
4
662
 
5
663
  ### Patch Changes