postgraphile 5.0.0-beta.4 → 5.0.0-beta.41

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 (57) hide show
  1. package/CHANGELOG.md +1770 -0
  2. package/README.md +4 -11
  3. package/dist/cli.d.ts +2 -3
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +16 -15
  6. package/dist/cli.js.map +1 -1
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +12 -5
  10. package/dist/index.js.map +1 -1
  11. package/dist/plugins/PgV4BehaviorPlugin.d.ts +3 -0
  12. package/dist/plugins/PgV4BehaviorPlugin.d.ts.map +1 -1
  13. package/dist/plugins/PgV4BehaviorPlugin.js +36 -51
  14. package/dist/plugins/PgV4BehaviorPlugin.js.map +1 -1
  15. package/dist/plugins/PgV4InflectionPlugin.d.ts +3 -0
  16. package/dist/plugins/PgV4InflectionPlugin.d.ts.map +1 -1
  17. package/dist/plugins/PgV4InflectionPlugin.js +17 -4
  18. package/dist/plugins/PgV4InflectionPlugin.js.map +1 -1
  19. package/dist/plugins/PgV4SimpleSubscriptionsPlugin.d.ts +2 -0
  20. package/dist/plugins/PgV4SimpleSubscriptionsPlugin.d.ts.map +1 -0
  21. package/dist/plugins/PgV4SimpleSubscriptionsPlugin.js +81 -0
  22. package/dist/plugins/PgV4SimpleSubscriptionsPlugin.js.map +1 -0
  23. package/dist/plugins/PgV4SmartTagsPlugin.d.ts +6 -0
  24. package/dist/plugins/PgV4SmartTagsPlugin.d.ts.map +1 -1
  25. package/dist/plugins/PgV4SmartTagsPlugin.js +34 -15
  26. package/dist/plugins/PgV4SmartTagsPlugin.js.map +1 -1
  27. package/dist/presets/lazy-jwt.d.ts +7 -0
  28. package/dist/presets/lazy-jwt.d.ts.map +1 -1
  29. package/dist/presets/lazy-jwt.js +17 -10
  30. package/dist/presets/lazy-jwt.js.map +1 -1
  31. package/dist/presets/relay.d.ts +7 -0
  32. package/dist/presets/relay.d.ts.map +1 -1
  33. package/dist/presets/relay.js +99 -91
  34. package/dist/presets/relay.js.map +1 -1
  35. package/dist/presets/v4.d.ts +28 -4
  36. package/dist/presets/v4.d.ts.map +1 -1
  37. package/dist/presets/v4.js +165 -37
  38. package/dist/presets/v4.js.map +1 -1
  39. package/dist/version.d.ts +1 -1
  40. package/dist/version.d.ts.map +1 -1
  41. package/dist/version.js +1 -1
  42. package/dist/version.js.map +1 -1
  43. package/fwd/grafast/mermaid/index.d.ts +1 -0
  44. package/fwd/grafast/mermaid/index.js +1 -0
  45. package/fwd/grafserv/envelop/index.d.ts +1 -0
  46. package/fwd/grafserv/envelop/index.js +1 -0
  47. package/fwd/grafserv/h3/v1/index.d.ts +1 -0
  48. package/fwd/grafserv/h3/v1/index.js +1 -0
  49. package/fwd/grafserv/hono/v4/index.d.ts +1 -0
  50. package/fwd/grafserv/hono/v4/index.js +1 -0
  51. package/fwd/grafserv/lambda/v1/index.d.ts +1 -0
  52. package/fwd/grafserv/lambda/v1/index.js +1 -0
  53. package/fwd/grafserv/ruru/bundle/index.d.ts +1 -0
  54. package/fwd/grafserv/ruru/bundle/index.js +1 -0
  55. package/fwd/grafserv/whatwg-node__server/v4/index.d.ts +1 -0
  56. package/fwd/grafserv/whatwg-node__server/v4/index.js +1 -0
  57. package/package.json +83 -42
package/CHANGELOG.md CHANGED
@@ -1,5 +1,1775 @@
1
1
  # postgraphile
2
2
 
3
+ ## 5.0.0-beta.41
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2444](https://github.com/graphile/crystal/pull/2444)
8
+ [`192a27e08763ea26607344a2ea6c7f5c595cc2a3`](https://github.com/graphile/crystal/commit/192a27e08763ea26607344a2ea6c7f5c595cc2a3)
9
+ Thanks [@benjie](https://github.com/benjie)! - Upgrade to Mermaid 11, and
10
+ reduce verbosity of polymorphism in plan diagrams.
11
+
12
+ - [#2525](https://github.com/graphile/crystal/pull/2525)
13
+ [`09d95319be3e25e023dfbab9d1542dfe06f65355`](https://github.com/graphile/crystal/commit/09d95319be3e25e023dfbab9d1542dfe06f65355)
14
+ Thanks [@benjie](https://github.com/benjie)! - Plan computed column inputs
15
+ (particularly Node IDs) in the root layer plan, allowing for greater plan
16
+ deduplication and more efficient SQL generation.
17
+
18
+ - [#2478](https://github.com/graphile/crystal/pull/2478)
19
+ [`a830770e775a65ce1d09fa767f38e84f5c0e5139`](https://github.com/graphile/crystal/commit/a830770e775a65ce1d09fa767f38e84f5c0e5139)
20
+ Thanks [@benjie](https://github.com/benjie)! - Use new .addRef and .getRef
21
+ methods from grafast.
22
+
23
+ - [#2482](https://github.com/graphile/crystal/pull/2482)
24
+ [`459e1869a2ec58925b2bac5458af487c52a8ca37`](https://github.com/graphile/crystal/commit/459e1869a2ec58925b2bac5458af487c52a8ca37)
25
+ Thanks [@benjie](https://github.com/benjie)! - Minimum version of Node.js
26
+ bumped to Node 22 (the latest LTS).
27
+
28
+ - [#2521](https://github.com/graphile/crystal/pull/2521)
29
+ [`c43ed67b9d3acbadb172ee88ba9c2a4d32528a25`](https://github.com/graphile/crystal/commit/c43ed67b9d3acbadb172ee88ba9c2a4d32528a25)
30
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug in nullable nodeID
31
+ handling for computed column arguments with the Relay preset that was causing
32
+ the entire select to be inhibited on null/undefined.
33
+
34
+ - [#2527](https://github.com/graphile/crystal/pull/2527)
35
+ [`576fb8bad56cb940ab444574d752e914d462018a`](https://github.com/graphile/crystal/commit/576fb8bad56cb940ab444574d752e914d462018a)
36
+ Thanks [@{](https://github.com/{)! - In order to make the libraries more type
37
+ safe, `makeGrafastSchema` (from `grafast`) and `makeExtendSchemaPlugin` (from
38
+ `postgraphile/utils`) have deprecated the `typeDefs`/`plans` pattern since
39
+ `plans` (like `resolvers` in the traditional format) ended up being a
40
+ mish-mash of lots of different types and `__`-prefixed fields for special
41
+ cases.
42
+
43
+ Instead the configuration should be split into `typeDefs` with `objects`,
44
+ `interfaces`, `unions`, `inputObjects`, `scalars` and `enums`; and object and
45
+ input object fields should be specified via the `plans` entry within the type
46
+ to avoid conflicts with `resolveType`/`isTypeOf`/`planType`/`scope` and
47
+ similar type-level (rather than field-level) properties. Similarly, enum
48
+ values should be added under a `values` property. This also means these
49
+ type-level fields no longer have the `__` prefix.
50
+
51
+ Migration is quite straightforward:
52
+
53
+ 1. **Add new top-level properties**. Add `objects`, `interfaces`, `unions`,
54
+ `inputObjects`, `scalars`, and `enums` as top level properties alongside
55
+ `typeDefs` and `plans`. Each should be an empty object. You can skip any
56
+ where you're not defining types of that kind.
57
+ 1. **Split definitions based on type kind**. For each type defined in `plans`
58
+ move it into the appropriate new property based on the keyword used to
59
+ define the type in the `typeDefs` (`type` → `objects`, `interface`
60
+ → `interfaces`, `union` → `unions`, `input object` →
61
+ `inputObjects`, `scalar` → `scalars`, `enum` → `enums`).
62
+ 1. **Move field plans into nested `plans: {...}` object**. For each type
63
+ defined in the new `objects` and `inputObjects` maps: create a
64
+ `plans: { ... }` entry inside the type and move all fields (anything not
65
+ prefixed with `__`) inside this new (nested) property.
66
+ 1. **Move enum values into nested `values: {...}` object**. For each type
67
+ defined in the new `enums` map: create a `values: { ... }` entry inside the
68
+ type and move all values (anything not prefixed with `__`) inside this new
69
+ (nested) property.
70
+ 1. **Remove `__` prefixes**. For each type across
71
+ `objects`/`interfaces`/`unions`/`interfaceObjects`/`scalars` and `enums`:
72
+ remove the `__` prefix from any methods/properties.
73
+
74
+ Example:
75
+
76
+ ```diff
77
+ typeDefs: ...,
78
+ -plans: {
79
+ +objects: {
80
+
81
+ - __isTypeOf(v) {
82
+ + isTypeOf(v) {
83
+ return v.username != null;
84
+ },
85
+ + plans: {
86
+ fieldName($source, fieldArgs) {
87
+ // ...
88
+ },
89
+ + },
90
+ },
91
+ +},
92
+ +interfaces: {,
93
+ MyInterface: {
94
+ - __resolveType($specifier) {
95
+ + resolveType($specifier) {
96
+ // ...
97
+ }
98
+ }
99
+ +},
100
+ +enums: {
101
+ MyEnum: {
102
+ + values: {
103
+ ONE: {value: 1},
104
+ TWO: {value: 2},
105
+ THREE: {value: 3},
106
+ + }
107
+ }
108
+ },
109
+ ```
110
+
111
+ Other changes:
112
+
113
+ - `ObjectPlans`/`GrafastPlans`/`FieldPlans`/`InputObjectPlans`/`ScalarPlans`
114
+ all changed to signular
115
+ - `InterfaceOrUnionPlans` split to `InterfacePlan`/`UnionPlan` (identical
116
+ currently)
117
+ - Shape of `ObjectPlan`/`InterfacePlan`/`UnionPlan` has changed;
118
+ `DeprecatedObjectPlan`/etc exist for backcompat
119
+ - `FieldArgs` can now accept an input shape indicating the args and their
120
+ types
121
+ - `FieldPlanResolver<TArgs, TParentStep, TResultStep>` has switched the order
122
+ of the first two generic parameters:
123
+ `FieldPlanResolver<TParentStep, TArgs, TResultStep>` - this is to reflect
124
+ the order of the arguments to the function. Also null has been removed from
125
+ the generics.
126
+ - Various generics (including `GrafastFieldConfig`) that used to take a
127
+ GraphQL type instance as a generic parameter no longer do - you need to use
128
+ external code generation because TypeScript cannot handle the dynamic
129
+ creation.
130
+ - `GrafastFieldConfig` last two generics swapped order.
131
+ - `GrafastArgumentConfig` generics completely changed
132
+
133
+ - [#2548](https://github.com/graphile/crystal/pull/2548)
134
+ [`45adaff886e7cd72b864150927be6c0cb4a7dfe8`](https://github.com/graphile/crystal/commit/45adaff886e7cd72b864150927be6c0cb4a7dfe8)
135
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 Complete overhaul of
136
+ polymorphism:
137
+
138
+ - Centralized the responsibility of polymorphic resolution from field plan
139
+ resolvers into abstract types.
140
+ - Eliminated the concept of "polymorphic capable" steps: any step may now be
141
+ used for polymorphism.
142
+ - Steps such as `polymorphicBranch`, `pgPolymorphism`, and other polymorphism
143
+ related steps no longer exist as they are no longer supported in this new
144
+ paradigm.
145
+ - Abstract types gain a `planType` method: passed a `$specifier` step from the
146
+ field plan resolver, and returns an `AbstractTypePlanner` object which
147
+ returns a `$__typename` step indicating the concrete object type name for
148
+ this `$specifier` along with an (optional) `planForType(objectType)` method
149
+ to plan how to turn the `$specifier` into a step suitable for usage by the
150
+ given object type (assuming the `$__typename` matches).
151
+ - No more exponential branching: we now merge the previous polymorphic branch
152
+ into a single `$specifier` step before planning the next level of
153
+ polymorphism.
154
+
155
+ PostGraphile Postgres-level polymorphism users are unaffected (all changes
156
+ have been done for you); SQL queries are now slightly smaller, and in general
157
+ there may be fewer requests to the DB.
158
+
159
+ If you've written your own plan resolvers by hand, first: thanks for being
160
+ brave! Second, sorry... You're going to have to rewrite them. Hopefully the
161
+ result will be a net reduction in complexity though &mdash; you can move
162
+ repetative polymorphism handling code from the field plan resolvers themselves
163
+ to the new `planType` method on the abstract type. It's hard to explain all
164
+ the possible ways of re-writing these plans, so read the docs about the new
165
+ pattern first and, if you still need help, please do reach out
166
+ [on Discord](https://discord.gg/graphile)!
167
+
168
+ This is the last breaking change to hand written plan resolvers that we expect
169
+ to make before the v1.0 release (other than some improvements around
170
+ TypeScript types) and marks the completion of the fourth and final epic that
171
+ was outlined in the first Grafast Working Group. With this change, we're much
172
+ closer to moving to release candidate status!
173
+
174
+ - [#2523](https://github.com/graphile/crystal/pull/2523)
175
+ [`b05d57b932ea00d10715dcab9f79d443408881fc`](https://github.com/graphile/crystal/commit/b05d57b932ea00d10715dcab9f79d443408881fc)
176
+ Thanks [@Dacjan](https://github.com/Dacjan)! - Fix bug with `@ref ... plural`
177
+ smart tag where multiple `@refVia` are present but the target type is not
178
+ abstract.
179
+ - Updated dependencies
180
+ [[`0e36cb9077c76710d2e407830323f86c5038126e`](https://github.com/graphile/crystal/commit/0e36cb9077c76710d2e407830323f86c5038126e),
181
+ [`5a26196eff8fd1956d73e0b8fdf5cfcb7f01b7d3`](https://github.com/graphile/crystal/commit/5a26196eff8fd1956d73e0b8fdf5cfcb7f01b7d3),
182
+ [`c0c3f48fa9f60cb9a4436ea135979b779ecc71ec`](https://github.com/graphile/crystal/commit/c0c3f48fa9f60cb9a4436ea135979b779ecc71ec),
183
+ [`cef9a37f846b4af105ac20960530d65c9f44afa9`](https://github.com/graphile/crystal/commit/cef9a37f846b4af105ac20960530d65c9f44afa9),
184
+ [`56ce94a847c6a4094643665cbf5d3712f56140b6`](https://github.com/graphile/crystal/commit/56ce94a847c6a4094643665cbf5d3712f56140b6),
185
+ [`070467c4ea693a2516fc8006bebb88b1ab96fb26`](https://github.com/graphile/crystal/commit/070467c4ea693a2516fc8006bebb88b1ab96fb26),
186
+ [`192a27e08763ea26607344a2ea6c7f5c595cc2a3`](https://github.com/graphile/crystal/commit/192a27e08763ea26607344a2ea6c7f5c595cc2a3),
187
+ [`142e39f26ce329f09bee0b5427f1ddc5103e610e`](https://github.com/graphile/crystal/commit/142e39f26ce329f09bee0b5427f1ddc5103e610e),
188
+ [`6ef6abce15936a896156d5316020df55cf7d18e3`](https://github.com/graphile/crystal/commit/6ef6abce15936a896156d5316020df55cf7d18e3),
189
+ [`17b160d5450e20e0f5c6597d5cffe125ece49d65`](https://github.com/graphile/crystal/commit/17b160d5450e20e0f5c6597d5cffe125ece49d65),
190
+ [`0239c2d519300a72f545e0db7c371adae4ade2a9`](https://github.com/graphile/crystal/commit/0239c2d519300a72f545e0db7c371adae4ade2a9),
191
+ [`09d95319be3e25e023dfbab9d1542dfe06f65355`](https://github.com/graphile/crystal/commit/09d95319be3e25e023dfbab9d1542dfe06f65355),
192
+ [`873b24dc70cea68e236e5dcf5bc7ff8f46fa43fe`](https://github.com/graphile/crystal/commit/873b24dc70cea68e236e5dcf5bc7ff8f46fa43fe),
193
+ [`eb771be5e8b06a0cd53476cb36495e7e1aca56b7`](https://github.com/graphile/crystal/commit/eb771be5e8b06a0cd53476cb36495e7e1aca56b7),
194
+ [`0ea439d33ccef7f8d01ac5f54893ab2bbf1cbd4d`](https://github.com/graphile/crystal/commit/0ea439d33ccef7f8d01ac5f54893ab2bbf1cbd4d),
195
+ [`8034614d1078b1bd177b6e7fcc949420614e3245`](https://github.com/graphile/crystal/commit/8034614d1078b1bd177b6e7fcc949420614e3245),
196
+ [`a830770e775a65ce1d09fa767f38e84f5c0e5139`](https://github.com/graphile/crystal/commit/a830770e775a65ce1d09fa767f38e84f5c0e5139),
197
+ [`459e1869a2ec58925b2bac5458af487c52a8ca37`](https://github.com/graphile/crystal/commit/459e1869a2ec58925b2bac5458af487c52a8ca37),
198
+ [`c350e49e372ec12a4cbf04fb6b4260e01832d12b`](https://github.com/graphile/crystal/commit/c350e49e372ec12a4cbf04fb6b4260e01832d12b),
199
+ [`3176ea3e57d626b39613a73117ef97627370ec83`](https://github.com/graphile/crystal/commit/3176ea3e57d626b39613a73117ef97627370ec83),
200
+ [`46a42f5547c041289aa98657ebc6815f4b6c8539`](https://github.com/graphile/crystal/commit/46a42f5547c041289aa98657ebc6815f4b6c8539),
201
+ [`a87bbd76f1a8b60fd86de65922746d830cc160b4`](https://github.com/graphile/crystal/commit/a87bbd76f1a8b60fd86de65922746d830cc160b4),
202
+ [`be3f174c5aae8fe78a240e1bc4e1de7f18644b43`](https://github.com/graphile/crystal/commit/be3f174c5aae8fe78a240e1bc4e1de7f18644b43),
203
+ [`c43ed67b9d3acbadb172ee88ba9c2a4d32528a25`](https://github.com/graphile/crystal/commit/c43ed67b9d3acbadb172ee88ba9c2a4d32528a25),
204
+ [`576fb8bad56cb940ab444574d752e914d462018a`](https://github.com/graphile/crystal/commit/576fb8bad56cb940ab444574d752e914d462018a),
205
+ [`9f459101fa4428aa4bac71531e75f99e33da8e17`](https://github.com/graphile/crystal/commit/9f459101fa4428aa4bac71531e75f99e33da8e17),
206
+ [`921665df8babe2651ab3b5886ab68bb518f2125b`](https://github.com/graphile/crystal/commit/921665df8babe2651ab3b5886ab68bb518f2125b),
207
+ [`78bb1a615754d772a5fda000e96073c91fa9eba7`](https://github.com/graphile/crystal/commit/78bb1a615754d772a5fda000e96073c91fa9eba7),
208
+ [`c9cd0cc72a4db4b02b2bdf770161c9346cb4b174`](https://github.com/graphile/crystal/commit/c9cd0cc72a4db4b02b2bdf770161c9346cb4b174),
209
+ [`ab0bcda5fc3c136eea09493a7d9ed4542975858e`](https://github.com/graphile/crystal/commit/ab0bcda5fc3c136eea09493a7d9ed4542975858e),
210
+ [`455f4811d37ad8fff91183c7a88621bcf9d79acf`](https://github.com/graphile/crystal/commit/455f4811d37ad8fff91183c7a88621bcf9d79acf),
211
+ [`45adaff886e7cd72b864150927be6c0cb4a7dfe8`](https://github.com/graphile/crystal/commit/45adaff886e7cd72b864150927be6c0cb4a7dfe8),
212
+ [`b05d57b932ea00d10715dcab9f79d443408881fc`](https://github.com/graphile/crystal/commit/b05d57b932ea00d10715dcab9f79d443408881fc)]:
213
+ - grafast@0.1.1-beta.22
214
+ - pg-sql2@5.0.0-beta.9
215
+ - @dataplan/pg@0.0.1-beta.33
216
+ - grafserv@0.1.1-beta.25
217
+ - graphile-build-pg@5.0.0-beta.39
218
+ - @dataplan/json@0.0.1-beta.31
219
+ - graphile-build@5.0.0-beta.34
220
+ - graphile-utils@5.0.0-beta.39
221
+ - graphile-config@0.0.1-beta.16
222
+ - @graphile/lru@5.0.0-beta.4
223
+ - tamedevil@0.0.0-beta.8
224
+
225
+ ## 5.0.0-beta.40
226
+
227
+ ### Patch Changes
228
+
229
+ - Updated dependencies []:
230
+ - grafserv@0.1.1-beta.24
231
+ - graphile-build-pg@5.0.0-beta.38
232
+ - @dataplan/pg@0.0.1-beta.32
233
+ - graphile-utils@5.0.0-beta.38
234
+
235
+ ## 5.0.0-beta.39
236
+
237
+ ### Patch Changes
238
+
239
+ - [#2335](https://github.com/graphile/crystal/pull/2335)
240
+ [`2f31836cb89a7ab27a8919803fe12b53a46d77e4`](https://github.com/graphile/crystal/commit/2f31836cb89a7ab27a8919803fe12b53a46d77e4)
241
+ Thanks [@benjie](https://github.com/benjie)! - PgSelectStep and PgUnionAllStep
242
+ now return objects rather than arrays/streams; thanks to the new Grafast
243
+ .items() method and these classes being "opaque" steps this is _mostly_ a
244
+ non-breaking change.
245
+
246
+ - [#2424](https://github.com/graphile/crystal/pull/2424)
247
+ [`e6da5d956ab696932410e7172cedfacba71dbf5e`](https://github.com/graphile/crystal/commit/e6da5d956ab696932410e7172cedfacba71dbf5e)
248
+ Thanks [@benjie](https://github.com/benjie)! - Small tweaks to make exported
249
+ schemas have nicer formatting.
250
+
251
+ - [#2335](https://github.com/graphile/crystal/pull/2335)
252
+ [`72b300b436a7acedaa7d0e3a7a5458d15a0e5396`](https://github.com/graphile/crystal/commit/72b300b436a7acedaa7d0e3a7a5458d15a0e5396)
253
+ Thanks [@benjie](https://github.com/benjie)! - PgSelectStep's stream behavior
254
+ updated to match the latest logic in Grafast.
255
+
256
+ - [#2376](https://github.com/graphile/crystal/pull/2376)
257
+ [`da6f3c04efe3d8634c0bc3fcf93ac2518de85322`](https://github.com/graphile/crystal/commit/da6f3c04efe3d8634c0bc3fcf93ac2518de85322)
258
+ Thanks [@benjie](https://github.com/benjie)! - Overhaul Grafast to remove more
259
+ input planning - inputs should be evaluated at runtime - and remove more
260
+ plan-time step evaluation.
261
+
262
+ `FieldArgs.get` is no more; use `FieldArgs.getRaw` or use `bakedInput()`
263
+ (TODO: document) to get the "baked" version of a raw input value.
264
+
265
+ Input object fields no longer have `applyPlan`/`inputPlan`, instead having the
266
+ runtime equivalents `apply()` and `baked()`. `FieldArgs` is no longer
267
+ available on input object fields, since these fields are no longer called at
268
+ plantime; instead, the actual value is passed.
269
+
270
+ `FieldArgs` gains `.typeAt(path)` method that details the GraphQL input type
271
+ at the given path.
272
+
273
+ Field arguments are no longer passed `FieldArgs`, instead they're passed a
274
+ (similar) `FieldArg` object representing the argument value itself.
275
+
276
+ `autoApplyAfterParentPlan` is no more - instead if an argument has `applyPlan`
277
+ it will be called automatically unless it was called during the field plan
278
+ resolver itself.
279
+
280
+ `autoApplyAfterParentSubscribePlan` is no more - instead if an argument has
281
+ `applySubscribePlan` it will be called automatically unless it was called
282
+ during the field plan resolver itself.
283
+
284
+ Field arguments no longer support `inputPlan` - use `bakedInput()` if you need
285
+ that.
286
+
287
+ Input fields no longer support `inputPlan`, `applyPlan`,
288
+ `autoApplyAfterParentInputPlan` nor `autoApplyAfterParentApplyPlan`. Instead,
289
+ `apply()` (which is called by `applyStep()` at runtime) has been added.
290
+
291
+ `sqlValueWithCodec(value, codec)` can be used at runtime in places where
292
+ `$step.placeholder($value, codec)` would have been used previously.
293
+ `placeholder` has been removed from all places that are now runtime - namely
294
+ the list of modifiers below...
295
+
296
+ The following `ModifierStep` classes have all dropped their `Step` suffix,
297
+ these `Modifier` classes now all run at runtime, and are thus no longer steps;
298
+ they're invoked as part of the new `applyInput()` (TODO: document) step:
299
+
300
+ - `ModifierStep` &rArr; `Modifier`
301
+ - `PgBooleanFilterStep` &rArr; `PgBooleanFilter`
302
+ - `PgClassFilterStep` &rArr; `PgClassFilter`
303
+ - `PgConditionCapableParentStep` &rArr; `PgConditionCapableParent`
304
+ - `PgConditionLikeStep` &rArr; `PgConditionLike`
305
+ - `PgConditionStepMode` &rArr; `PgConditionMode`
306
+ - `PgConditionStep` &rArr; `PgCondition`
307
+ - `PgManyFilterStep` &rArr; `PgManyFilter`
308
+ - `PgOrFilterStep` &rArr; `PgOrFilter`
309
+ - `PgTempTableStep` &rArr; `PgTempTable`
310
+ - `SetterCapableStep` &rArr; `SetterCapable`
311
+ - `SetterStep` &rArr; `Setter`
312
+
313
+ (Interestingly, other than the removal of `placeholder` and the fact they deal
314
+ with runtime values rather than steps now, they're very similar to what they
315
+ were before.)
316
+
317
+ The deprecated forms of the above have been removed.
318
+
319
+ Methods that rely on these modifier plans have been removed:
320
+
321
+ - `PgUnionAllStep.wherePlan` - use
322
+ `fieldArg.apply($unionAll, qb => qb.whereBuilder())` instead
323
+ - `PgUnionAllStep.havingPlan` - use
324
+ `fieldArg.apply($unionAll, qb => qb.havingBuilder())` instead
325
+ - Same for PgSelectStep
326
+
327
+ The following gain query builders:
328
+
329
+ - `PgInsertSingle`
330
+ - `PgUpdateSingle`
331
+ - `PgDeleteSingle`
332
+
333
+ Query builders gain `meta`, an object that can be augmented with metadata
334
+ about the operation (typically this relates to cursors and similar
335
+ functionality). This is now used to implement `clientMutationId`.
336
+
337
+ Extends query builders with additional functionality.
338
+
339
+ Many of the types have had their generics changed, TypeScript should guide you
340
+ if you have issues here.
341
+
342
+ `NodeIdHandler` now requires a `getIdentifiers` method that runs at runtime
343
+ and returns the identifiers from a decoded NodeId string.
344
+
345
+ Types around GraphQL Global Object Identification (i.e. `Node` / `id`) have
346
+ changed.
347
+
348
+ - [#2357](https://github.com/graphile/crystal/pull/2357)
349
+ [`8026b982a81776fb3d1d808392970c2d678c4023`](https://github.com/graphile/crystal/commit/8026b982a81776fb3d1d808392970c2d678c4023)
350
+ Thanks [@benjie](https://github.com/benjie)! - Start migrating away from
351
+ `applyPlan`/`inputPlan`. ~~When adding an argument to a field you can now
352
+ augment the field's plan resolver via `context.addToPlanResolver` hook~~ (this
353
+ was later replaced with new `inputApply()` step, and arguments still keep
354
+ `applyPlan` though input object fields lose it). Use this and other changes to
355
+ move handling of orderBy to runtime from plantime.
356
+
357
+ Introduces runtime query builder for `PgSelectStep` and `PgUnionAllStep`, and
358
+ `PgSelectStep.apply()`/`PgUnionAllStep.apply()` so that you can register
359
+ callbacks that will augment the query builder at runtime.
360
+
361
+ - Updated dependencies
362
+ [[`d34014a9a3c469154cc796086ba13719954731e5`](https://github.com/graphile/crystal/commit/d34014a9a3c469154cc796086ba13719954731e5),
363
+ [`d3ae3415c230784fdfefc9d192ad93aca462bceb`](https://github.com/graphile/crystal/commit/d3ae3415c230784fdfefc9d192ad93aca462bceb),
364
+ [`98516379ac355a0833a64e002f3717cc3a1d6473`](https://github.com/graphile/crystal/commit/98516379ac355a0833a64e002f3717cc3a1d6473),
365
+ [`f8602d05eed3247c90b87c55d7af580d1698effc`](https://github.com/graphile/crystal/commit/f8602d05eed3247c90b87c55d7af580d1698effc),
366
+ [`65df25534fa3f787ba2ab7fd9547d295ff2b1288`](https://github.com/graphile/crystal/commit/65df25534fa3f787ba2ab7fd9547d295ff2b1288),
367
+ [`1b3c76efd27df73eab3a5a1d221ce13de4cd6b1a`](https://github.com/graphile/crystal/commit/1b3c76efd27df73eab3a5a1d221ce13de4cd6b1a),
368
+ [`f6e22692b628703b8ea48e580dc0b6f0bcbc9c5a`](https://github.com/graphile/crystal/commit/f6e22692b628703b8ea48e580dc0b6f0bcbc9c5a),
369
+ [`e10c372dafbe0d6014b1e946349b22f40aa87ef9`](https://github.com/graphile/crystal/commit/e10c372dafbe0d6014b1e946349b22f40aa87ef9),
370
+ [`c3538050abbb485cf1d43f7c870b89f1ad7c2218`](https://github.com/graphile/crystal/commit/c3538050abbb485cf1d43f7c870b89f1ad7c2218),
371
+ [`3c0a925f26f10cae627a23c49c75ccd8d76b60c8`](https://github.com/graphile/crystal/commit/3c0a925f26f10cae627a23c49c75ccd8d76b60c8),
372
+ [`fcaeb48844156e258a037f420ea1505edb50c52a`](https://github.com/graphile/crystal/commit/fcaeb48844156e258a037f420ea1505edb50c52a),
373
+ [`68926abc31c32ce527327ffbb1ede4b0b7be446b`](https://github.com/graphile/crystal/commit/68926abc31c32ce527327ffbb1ede4b0b7be446b),
374
+ [`98c5009e21e423b0da22c2cb70cdb62909578f50`](https://github.com/graphile/crystal/commit/98c5009e21e423b0da22c2cb70cdb62909578f50),
375
+ [`4b49dbd2df3b339a2ba3f1e9ff400fa1a125298b`](https://github.com/graphile/crystal/commit/4b49dbd2df3b339a2ba3f1e9ff400fa1a125298b),
376
+ [`d7950e8e28ec6106a4ce2f7fe5e35d88b10eac48`](https://github.com/graphile/crystal/commit/d7950e8e28ec6106a4ce2f7fe5e35d88b10eac48),
377
+ [`c8f1971ea4198633ec97f72f82abf65089f71a88`](https://github.com/graphile/crystal/commit/c8f1971ea4198633ec97f72f82abf65089f71a88),
378
+ [`182ed0564104f59b012e0f9ffd452556b0927750`](https://github.com/graphile/crystal/commit/182ed0564104f59b012e0f9ffd452556b0927750),
379
+ [`dd3d22eab73a8554715bf1111e30586251f69a88`](https://github.com/graphile/crystal/commit/dd3d22eab73a8554715bf1111e30586251f69a88),
380
+ [`a120a8e43b24dfc174950cdbb69e481272a0b45e`](https://github.com/graphile/crystal/commit/a120a8e43b24dfc174950cdbb69e481272a0b45e),
381
+ [`be1e558d6a1a8cae3bf4b5724c340469d8837504`](https://github.com/graphile/crystal/commit/be1e558d6a1a8cae3bf4b5724c340469d8837504),
382
+ [`3b0f5082b2272997ce33ce8823a4752513d19e28`](https://github.com/graphile/crystal/commit/3b0f5082b2272997ce33ce8823a4752513d19e28),
383
+ [`84f06eafa051e907a3050237ac6ee5aefb184652`](https://github.com/graphile/crystal/commit/84f06eafa051e907a3050237ac6ee5aefb184652),
384
+ [`4a3aeaa77c8b8d2e39c1a9d05581d0c613b812cf`](https://github.com/graphile/crystal/commit/4a3aeaa77c8b8d2e39c1a9d05581d0c613b812cf),
385
+ [`3789326b2e2fdb86519acc75e606c752ddefe590`](https://github.com/graphile/crystal/commit/3789326b2e2fdb86519acc75e606c752ddefe590),
386
+ [`12d3a7174949794a1679132635e196f5dadce8a2`](https://github.com/graphile/crystal/commit/12d3a7174949794a1679132635e196f5dadce8a2),
387
+ [`ab7658ac44e1a5a0a98c6bb688a26d94b1175cc1`](https://github.com/graphile/crystal/commit/ab7658ac44e1a5a0a98c6bb688a26d94b1175cc1),
388
+ [`bc2a00d35f0a1954dba22e857adc3f4e2f5118e5`](https://github.com/graphile/crystal/commit/bc2a00d35f0a1954dba22e857adc3f4e2f5118e5),
389
+ [`ceeb9a6b63e566b09298e0440a385943302ad0f9`](https://github.com/graphile/crystal/commit/ceeb9a6b63e566b09298e0440a385943302ad0f9),
390
+ [`3e8c64bef928295494119e15e1e55cbdadb696fa`](https://github.com/graphile/crystal/commit/3e8c64bef928295494119e15e1e55cbdadb696fa),
391
+ [`0fc2db95d90df918cf5c59ef85f22ac78d8000d3`](https://github.com/graphile/crystal/commit/0fc2db95d90df918cf5c59ef85f22ac78d8000d3),
392
+ [`d68c5831ed66dc8a7a79aab2100ca733409c6f72`](https://github.com/graphile/crystal/commit/d68c5831ed66dc8a7a79aab2100ca733409c6f72),
393
+ [`90e81a5deeae554a8be2dd55dcd01489860e96e6`](https://github.com/graphile/crystal/commit/90e81a5deeae554a8be2dd55dcd01489860e96e6),
394
+ [`836c8327a5ca1bd3c69f72055e71d00694de363e`](https://github.com/graphile/crystal/commit/836c8327a5ca1bd3c69f72055e71d00694de363e),
395
+ [`2f31836cb89a7ab27a8919803fe12b53a46d77e4`](https://github.com/graphile/crystal/commit/2f31836cb89a7ab27a8919803fe12b53a46d77e4),
396
+ [`c59132eb7a93bc82493d2f1ca050db8aaea9f4d1`](https://github.com/graphile/crystal/commit/c59132eb7a93bc82493d2f1ca050db8aaea9f4d1),
397
+ [`7c38cdeffe034c9b4f5cdd03a8f7f446bd52dcb7`](https://github.com/graphile/crystal/commit/7c38cdeffe034c9b4f5cdd03a8f7f446bd52dcb7),
398
+ [`728888b28fcd2a6fc481e0ccdfe20d41181a091f`](https://github.com/graphile/crystal/commit/728888b28fcd2a6fc481e0ccdfe20d41181a091f),
399
+ [`f4f39092d7a51517668384945895d3b450237cce`](https://github.com/graphile/crystal/commit/f4f39092d7a51517668384945895d3b450237cce),
400
+ [`5cf3dc9d158891eaf324b2cd4f485d1d4bbb6b5e`](https://github.com/graphile/crystal/commit/5cf3dc9d158891eaf324b2cd4f485d1d4bbb6b5e),
401
+ [`925689578ee9def403382df70f0e003bb299c166`](https://github.com/graphile/crystal/commit/925689578ee9def403382df70f0e003bb299c166),
402
+ [`83d3b533e702cc875b46ba2ca02bf3642b421be8`](https://github.com/graphile/crystal/commit/83d3b533e702cc875b46ba2ca02bf3642b421be8),
403
+ [`7001138c38e09822ad13db1018c62d2cac37941e`](https://github.com/graphile/crystal/commit/7001138c38e09822ad13db1018c62d2cac37941e),
404
+ [`e9e7e33665e22ec397e9ead054d2e4aad3eadc8c`](https://github.com/graphile/crystal/commit/e9e7e33665e22ec397e9ead054d2e4aad3eadc8c),
405
+ [`bb6ec8d834e3e630e28316196246f514114a2296`](https://github.com/graphile/crystal/commit/bb6ec8d834e3e630e28316196246f514114a2296),
406
+ [`3e188c2e981193d228ba3b7433f5e326336f629b`](https://github.com/graphile/crystal/commit/3e188c2e981193d228ba3b7433f5e326336f629b),
407
+ [`07a5469e5d3d050a7bcab928bb751c9e150d2e49`](https://github.com/graphile/crystal/commit/07a5469e5d3d050a7bcab928bb751c9e150d2e49),
408
+ [`e6da5d956ab696932410e7172cedfacba71dbf5e`](https://github.com/graphile/crystal/commit/e6da5d956ab696932410e7172cedfacba71dbf5e),
409
+ [`2b1918d053f590cdc534c8cb81f7e74e96c1bbe6`](https://github.com/graphile/crystal/commit/2b1918d053f590cdc534c8cb81f7e74e96c1bbe6),
410
+ [`037a1bcdc8ed8493d4748e08c18f258e4382a815`](https://github.com/graphile/crystal/commit/037a1bcdc8ed8493d4748e08c18f258e4382a815),
411
+ [`72b300b436a7acedaa7d0e3a7a5458d15a0e5396`](https://github.com/graphile/crystal/commit/72b300b436a7acedaa7d0e3a7a5458d15a0e5396),
412
+ [`770363214ee630746cddc9080dec22bbf38a3bb5`](https://github.com/graphile/crystal/commit/770363214ee630746cddc9080dec22bbf38a3bb5),
413
+ [`d1ecb39693a341f85762b27012ec4ea013857b0c`](https://github.com/graphile/crystal/commit/d1ecb39693a341f85762b27012ec4ea013857b0c),
414
+ [`042ebafe11fcf7e2ecac9b131265a55dddd42a6d`](https://github.com/graphile/crystal/commit/042ebafe11fcf7e2ecac9b131265a55dddd42a6d),
415
+ [`fa005eb0783c58a2476add984fbdd462e0e91dbe`](https://github.com/graphile/crystal/commit/fa005eb0783c58a2476add984fbdd462e0e91dbe),
416
+ [`7bb77961a38abea8a07980a3f47bc3ca22dac8f8`](https://github.com/graphile/crystal/commit/7bb77961a38abea8a07980a3f47bc3ca22dac8f8),
417
+ [`df0e5a0f968cf6f9ae97b68745a9a2f391324bf5`](https://github.com/graphile/crystal/commit/df0e5a0f968cf6f9ae97b68745a9a2f391324bf5),
418
+ [`ef4cf75acd80e6b9c700c2b5a7ace899e565ef7f`](https://github.com/graphile/crystal/commit/ef4cf75acd80e6b9c700c2b5a7ace899e565ef7f),
419
+ [`ba2bfa15deaaddd92757a56c2b761624afe940bd`](https://github.com/graphile/crystal/commit/ba2bfa15deaaddd92757a56c2b761624afe940bd),
420
+ [`c041fd250372c57601188b65a6411c8f440afab6`](https://github.com/graphile/crystal/commit/c041fd250372c57601188b65a6411c8f440afab6),
421
+ [`629b45aab49151810f6efc18ac18f7d735626433`](https://github.com/graphile/crystal/commit/629b45aab49151810f6efc18ac18f7d735626433),
422
+ [`6d19724330d50d076aab9442660fa8abddd095cb`](https://github.com/graphile/crystal/commit/6d19724330d50d076aab9442660fa8abddd095cb),
423
+ [`ca5bc1a834df7b894088fb8602a12f9fcff55b38`](https://github.com/graphile/crystal/commit/ca5bc1a834df7b894088fb8602a12f9fcff55b38),
424
+ [`da6f3c04efe3d8634c0bc3fcf93ac2518de85322`](https://github.com/graphile/crystal/commit/da6f3c04efe3d8634c0bc3fcf93ac2518de85322),
425
+ [`8026b982a81776fb3d1d808392970c2d678c4023`](https://github.com/graphile/crystal/commit/8026b982a81776fb3d1d808392970c2d678c4023),
426
+ [`d257a1a1e59a7d4da0bf67345c07b04c04a2f7da`](https://github.com/graphile/crystal/commit/d257a1a1e59a7d4da0bf67345c07b04c04a2f7da),
427
+ [`00d79e6f5608affc3f36bb0ce4ca2547230174e7`](https://github.com/graphile/crystal/commit/00d79e6f5608affc3f36bb0ce4ca2547230174e7),
428
+ [`412b92a0b1e03ad962521f630b57a996d8620cf6`](https://github.com/graphile/crystal/commit/412b92a0b1e03ad962521f630b57a996d8620cf6),
429
+ [`15854c5109114919b3d38fa675c539cda1f634a1`](https://github.com/graphile/crystal/commit/15854c5109114919b3d38fa675c539cda1f634a1),
430
+ [`f0bc64b71914dfdd3612f4b65370401fd85b97bc`](https://github.com/graphile/crystal/commit/f0bc64b71914dfdd3612f4b65370401fd85b97bc)]:
431
+ - grafast@0.1.1-beta.21
432
+ - @dataplan/pg@0.0.1-beta.32
433
+ - pg-sql2@5.0.0-beta.8
434
+ - graphile-build-pg@5.0.0-beta.38
435
+ - graphile-utils@5.0.0-beta.38
436
+ - graphile-build@5.0.0-beta.33
437
+ - @dataplan/json@0.0.1-beta.30
438
+ - graphile-config@0.0.1-beta.15
439
+ - grafserv@0.1.1-beta.23
440
+
441
+ ## 5.0.0-beta.38
442
+
443
+ ### Patch Changes
444
+
445
+ - Updated dependencies
446
+ [[`fc9d64eb8`](https://github.com/graphile/crystal/commit/fc9d64eb8002d3b72625bc505ed76c07f4296d68),
447
+ [`a2dbad945`](https://github.com/graphile/crystal/commit/a2dbad9457195bec797d72e4e6d45f45278f9f69),
448
+ [`31078842a`](https://github.com/graphile/crystal/commit/31078842ad0eeaa7111491fa9eb5e3bd026fb38a),
449
+ [`5a0ec31de`](https://github.com/graphile/crystal/commit/5a0ec31deae91f1dd17a77a4bb7c1a911a27e26a)]:
450
+ - @dataplan/pg@0.0.1-beta.31
451
+ - grafast@0.1.1-beta.20
452
+ - graphile-build-pg@5.0.0-beta.37
453
+ - graphile-utils@5.0.0-beta.37
454
+ - @dataplan/json@0.0.1-beta.29
455
+ - grafserv@0.1.1-beta.22
456
+ - graphile-build@5.0.0-beta.32
457
+
458
+ ## 5.0.0-beta.37
459
+
460
+ ### Patch Changes
461
+
462
+ - Updated dependencies
463
+ [[`83c546509`](https://github.com/graphile/crystal/commit/83c546509d24be2955a56120981363ad3c3a5f3f)]:
464
+ - graphile-config@0.0.1-beta.14
465
+ - @dataplan/pg@0.0.1-beta.30
466
+ - grafast@0.1.1-beta.19
467
+ - grafserv@0.1.1-beta.21
468
+ - graphile-build@5.0.0-beta.31
469
+ - graphile-build-pg@5.0.0-beta.36
470
+ - graphile-utils@5.0.0-beta.36
471
+ - @dataplan/json@0.0.1-beta.28
472
+
473
+ ## 5.0.0-beta.36
474
+
475
+ ### Patch Changes
476
+
477
+ - [#2279](https://github.com/graphile/crystal/pull/2279)
478
+ [`b336a5829`](https://github.com/graphile/crystal/commit/b336a58291cfec7aef884d3843172d408abfaf3c)
479
+ Thanks [@benjie](https://github.com/benjie)! - Introduce step caching to
480
+ reduce deduplication workload safely, thereby reducing planning time for many
481
+ larger queries.
482
+ - Updated dependencies
483
+ [[`7580bc16a`](https://github.com/graphile/crystal/commit/7580bc16a050fd8d916c6dabe9d1ded980090349),
484
+ [`b336a5829`](https://github.com/graphile/crystal/commit/b336a58291cfec7aef884d3843172d408abfaf3c)]:
485
+ - graphile-config@0.0.1-beta.13
486
+ - @dataplan/pg@0.0.1-beta.29
487
+ - grafast@0.1.1-beta.18
488
+ - grafserv@0.1.1-beta.20
489
+ - graphile-build@5.0.0-beta.30
490
+ - graphile-build-pg@5.0.0-beta.35
491
+ - graphile-utils@5.0.0-beta.35
492
+ - @dataplan/json@0.0.1-beta.27
493
+
494
+ ## 5.0.0-beta.35
495
+
496
+ ### Patch Changes
497
+
498
+ - [#2269](https://github.com/graphile/crystal/pull/2269)
499
+ [`bee1db4f4`](https://github.com/graphile/crystal/commit/bee1db4f442502b62cb05cd0f7092990328497b8)
500
+ Thanks [@benjie](https://github.com/benjie)! - Hotfix to inflection changes in
501
+ beta.34 - fixes behavior of `orderByAttributeEnum` and removes V4 override of
502
+ `_joinAttributeNames` which shouldn't be necessary (and seems to do more harm
503
+ than good).
504
+ - Updated dependencies
505
+ [[`bee1db4f4`](https://github.com/graphile/crystal/commit/bee1db4f442502b62cb05cd0f7092990328497b8)]:
506
+ - graphile-build-pg@5.0.0-beta.34
507
+ - graphile-utils@5.0.0-beta.34
508
+
509
+ ## 5.0.0-beta.34
510
+
511
+ ### Patch Changes
512
+
513
+ - [#2251](https://github.com/graphile/crystal/pull/2251)
514
+ [`555d65cce`](https://github.com/graphile/crystal/commit/555d65ccecb875f1e34cb40108176f0ddc11df64)
515
+ Thanks [@benjie](https://github.com/benjie)! - We now enforce GraphQL name
516
+ checks earlier and supply more information to better reveal where any invalid
517
+ names are originating.
518
+
519
+ - [#2251](https://github.com/graphile/crystal/pull/2251)
520
+ [`efa25d97d`](https://github.com/graphile/crystal/commit/efa25d97df2e00f13bc29806d396a8366a121031)
521
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 **Inflection changes!** V4
522
+ preset should be (mostly) unaffected, but Amber preset will likely have
523
+ changes between `ID` and `ROW_ID` in various places, plus missing underscores
524
+ may reappear/etc. Be sure to diff your schema before/after this update (as you
525
+ should with every update... and to be honest, with everything else that
526
+ changes your schema).
527
+
528
+ Normally `camelCase`/`upperCamelCase`/`constantCase`/etc are the final step
529
+ before we name a field/type/enumValue/etc; however it turns out that some
530
+ inflectors were using the camel-cased output as input to their own
531
+ inflection - for example, when calculating the name of a relation it would
532
+ take the column names _camel-cased_ and then combine them into a string which
533
+ was then camel-cased again. Even worse, when these values are then used in an
534
+ enum, it would then be _constant-cased_, so you end up with string 👉
535
+ camel-case 👉 concatenate 👉 camel-case 👉 concatenate 👉 constant-case. This
536
+ lead to certain edge cases where fields with numbers or underscores may come
537
+ out in unexpected ways.
538
+
539
+ This release creates "raw" backing inflectors for a few things that remove the
540
+ final step (camel-casing) so that later usage may choose to use the raw value
541
+ rather than the camel-cased value. And due to this, we've also moved the `id`
542
+ 👉 `rowId` tweaks from the `attribute()` inflector into the `_attributeName()`
543
+ inflector - which is where most of the changes have come from. We've undone
544
+ this change in the V4 preset, so if you don't use the V5 preset but need to
545
+ undo this change, please check out the V4 overrides of:
546
+
547
+ - [`_attributeName`](https://github.com/graphile/crystal/blob/ca9c872ff6c95915bd9e2f33c1370d86742ce815/postgraphile/postgraphile/src/presets/v4.ts#L135-L145)
548
+ - [`_joinAttributeNames`](https://github.com/graphile/crystal/blob/ca9c872ff6c95915bd9e2f33c1370d86742ce815/postgraphile/postgraphile/src/plugins/PgV4InflectionPlugin.ts#L131-L138)
549
+ - [`attribute`](https://github.com/graphile/crystal/blob/ca9c872ff6c95915bd9e2f33c1370d86742ce815/postgraphile/postgraphile/src/presets/v4.ts#L158-L169)
550
+
551
+ Note: the V4 preset is fairly stable, but the Amber preset is being constantly
552
+ iterated to improve the OOTB V5 experience - it will only be stable once
553
+ V5.0.0 is released.
554
+
555
+ - [#2252](https://github.com/graphile/crystal/pull/2252)
556
+ [`d88b69d05`](https://github.com/graphile/crystal/commit/d88b69d0591601fb44b3e6e71b137b8235e70157)
557
+ Thanks [@benjie](https://github.com/benjie)! - V4 preset now supports
558
+ extendedErrors, showErrorStack and bodySizeLimit options.
559
+
560
+ - [#2257](https://github.com/graphile/crystal/pull/2257)
561
+ [`2a37fb99a`](https://github.com/graphile/crystal/commit/2a37fb99a04784647dff6ab8c5bfffb072cc6e8a)
562
+ Thanks [@benjie](https://github.com/benjie)! - Overhaul how PostgreSQL arrays
563
+ are handled, and fix the "empty arrays become null" bug caused by using
564
+ `array_agg()`.
565
+
566
+ - [#2265](https://github.com/graphile/crystal/pull/2265)
567
+ [`5d9f2de85`](https://github.com/graphile/crystal/commit/5d9f2de8519b216732b17464d0b326ec8d7c58de)
568
+ Thanks [@benjie](https://github.com/benjie)! - Prevents inlining (via joins)
569
+ child PgSelect queries into parents when the parent is relying on implicit
570
+ ordering coming from a function or suitably flagged subquery.
571
+ - Updated dependencies
572
+ [[`555d65cce`](https://github.com/graphile/crystal/commit/555d65ccecb875f1e34cb40108176f0ddc11df64),
573
+ [`866673e14`](https://github.com/graphile/crystal/commit/866673e14f7ad76b6f6d83d1b4e3a4eff8fdba37),
574
+ [`69ab227b5`](https://github.com/graphile/crystal/commit/69ab227b5e1c057a6fc8ebba87bde80d5aa7f3c8),
575
+ [`efa25d97d`](https://github.com/graphile/crystal/commit/efa25d97df2e00f13bc29806d396a8366a121031),
576
+ [`9a0f9e78c`](https://github.com/graphile/crystal/commit/9a0f9e78c4ee46f50f49bb068baddef7e1de4119),
577
+ [`d13b76f0f`](https://github.com/graphile/crystal/commit/d13b76f0fef2a58466ecb44880af62d25910e83e),
578
+ [`b167bd849`](https://github.com/graphile/crystal/commit/b167bd8499be5866b71bac6594d55bd768fda1d0),
579
+ [`a202145c5`](https://github.com/graphile/crystal/commit/a202145c5af3e5467424e6772d532c2db1eb67c6),
580
+ [`7bf045282`](https://github.com/graphile/crystal/commit/7bf04528264c3b9c509f148253fed96d3394141d),
581
+ [`2a37fb99a`](https://github.com/graphile/crystal/commit/2a37fb99a04784647dff6ab8c5bfffb072cc6e8a),
582
+ [`5d9f2de85`](https://github.com/graphile/crystal/commit/5d9f2de8519b216732b17464d0b326ec8d7c58de),
583
+ [`6a13ecbd4`](https://github.com/graphile/crystal/commit/6a13ecbd45534c39c846c1d8bc58242108426dd1),
584
+ [`84f07626d`](https://github.com/graphile/crystal/commit/84f07626d9dd9e22f6ae6a1045053df046fbc4ea),
585
+ [`86e228299`](https://github.com/graphile/crystal/commit/86e22829996a745dc1f8cbaf32e709b1bd346e79),
586
+ [`933786868`](https://github.com/graphile/crystal/commit/9337868689f4f05ab5faf2d4bb18a8ad8e23e189),
587
+ [`cba6ee06d`](https://github.com/graphile/crystal/commit/cba6ee06d38ec5ae4ef4dafa58569fad61f239ac)]:
588
+ - graphile-build-pg@5.0.0-beta.33
589
+ - graphile-build@5.0.0-beta.29
590
+ - grafserv@0.1.1-beta.19
591
+ - grafast@0.1.1-beta.17
592
+ - graphile-config@0.0.1-beta.12
593
+ - pg-sql2@5.0.0-beta.7
594
+ - @dataplan/pg@0.0.1-beta.28
595
+ - graphile-utils@5.0.0-beta.33
596
+ - @dataplan/json@0.0.1-beta.26
597
+
598
+ ## 5.0.0-beta.33
599
+
600
+ ### Patch Changes
601
+
602
+ - [#2229](https://github.com/graphile/crystal/pull/2229)
603
+ [`87bdf9730`](https://github.com/graphile/crystal/commit/87bdf973036a3801e44b22cfc9f0feb639de4aa9)
604
+ Thanks [@benjie](https://github.com/benjie)! - Fixes bug handling optional
605
+ arguments to computed column functions.
606
+
607
+ - [#2230](https://github.com/graphile/crystal/pull/2230)
608
+ [`aa480f6a3`](https://github.com/graphile/crystal/commit/aa480f6a3db8b545ff113e7a3a4b479be42a0eab)
609
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug recognizing the
610
+ required-ness of arguments to functions using `out` args or `returns table` -
611
+ this particularly affects people using `pgStrictFunctions` and should result
612
+ in a couple of required arguments becoming nullable.
613
+ - Updated dependencies
614
+ [[`87bdf9730`](https://github.com/graphile/crystal/commit/87bdf973036a3801e44b22cfc9f0feb639de4aa9),
615
+ [`5626c7d36`](https://github.com/graphile/crystal/commit/5626c7d3649285e11fe9857dfa319d2883d027eb),
616
+ [`bf2a2e72a`](https://github.com/graphile/crystal/commit/bf2a2e72ab78a01f5aba6cda97b5a125563b1f3d),
617
+ [`76c7340b7`](https://github.com/graphile/crystal/commit/76c7340b74d257c454beec883384d19ef078b21e),
618
+ [`aa480f6a3`](https://github.com/graphile/crystal/commit/aa480f6a3db8b545ff113e7a3a4b479be42a0eab)]:
619
+ - graphile-build-pg@5.0.0-beta.32
620
+ - graphile-config@0.0.1-beta.11
621
+ - grafserv@0.1.1-beta.18
622
+ - grafast@0.1.1-beta.16
623
+ - graphile-utils@5.0.0-beta.32
624
+ - @dataplan/pg@0.0.1-beta.27
625
+ - graphile-build@5.0.0-beta.28
626
+ - @dataplan/json@0.0.1-beta.25
627
+
628
+ ## 5.0.0-beta.32
629
+
630
+ ### Patch Changes
631
+
632
+ - Updated dependencies
633
+ [[`632691409`](https://github.com/graphile/crystal/commit/6326914098af55f20ac85ccf3537e75910a7dafa)]:
634
+ - graphile-build-pg@5.0.0-beta.31
635
+ - graphile-build@5.0.0-beta.27
636
+ - graphile-utils@5.0.0-beta.31
637
+
638
+ ## 5.0.0-beta.31
639
+
640
+ ### Patch Changes
641
+
642
+ - Updated dependencies
643
+ [[`0b1f7b577`](https://github.com/graphile/crystal/commit/0b1f7b577114a49b8e3283823845ec6e37484240)]:
644
+ - graphile-build-pg@5.0.0-beta.30
645
+ - graphile-build@5.0.0-beta.26
646
+ - graphile-utils@5.0.0-beta.30
647
+
648
+ ## 5.0.0-beta.30
649
+
650
+ ### Patch Changes
651
+
652
+ - [#2197](https://github.com/graphile/crystal/pull/2197)
653
+ [`d7e6e714f`](https://github.com/graphile/crystal/commit/d7e6e714f0cc5656112703484298b77538b2dccc)
654
+ Thanks [@benjie](https://github.com/benjie)! - Amber preset now supports
655
+ `@resultFieldName` on mutation functions, like V4 preset does.
656
+
657
+ - [#2187](https://github.com/graphile/crystal/pull/2187)
658
+ [`bb006ec7b`](https://github.com/graphile/crystal/commit/bb006ec7bdab24192c84f093ce3f92969aeb7279)
659
+ Thanks [@benjie](https://github.com/benjie)! - Fix behavior inheritance
660
+ especially around functions incorrectly inheriting from their underlying
661
+ codecs, bugs in unlogged/temp table behavior, and incorrect skipping of
662
+ generating table types. You may find after this change you have fields
663
+ appearing in your schema that were not present before, typically these will
664
+ represent database functions where you `@omit`'d the underlying table -
665
+ omitting the table should not prevent a function from accessing it. Further,
666
+ fix behavior of `@omit read` emulation to add
667
+ `-connection -list -array -single`.
668
+
669
+ - [#2156](https://github.com/graphile/crystal/pull/2156)
670
+ [`6fdc6cad8`](https://github.com/graphile/crystal/commit/6fdc6cad8f8d1230202df533d05cc2bd80538f09)
671
+ Thanks [@benjie](https://github.com/benjie)! - Added `pgRegistry.pgExecutors`
672
+ so executors don't need to be looked up from a resource (this causes
673
+ confusion) - instead they can be referenced directly. By default there's one
674
+ executor called `main`, i.e. `build.input.pgRegistry.pgExecutors.main`.
675
+
676
+ - [#2175](https://github.com/graphile/crystal/pull/2175)
677
+ [`c69b2fdec`](https://github.com/graphile/crystal/commit/c69b2fdec2d73f1101440eb96fe126f9ad77db98)
678
+ Thanks [@benjie](https://github.com/benjie)! - Fix 'Container is falsy' error
679
+ message the latest Babel patch release would cause.
680
+
681
+ - [#2191](https://github.com/graphile/crystal/pull/2191)
682
+ [`1eac03ec2`](https://github.com/graphile/crystal/commit/1eac03ec2e9da65c64b7754c04292f43da82c40b)
683
+ Thanks [@benjie](https://github.com/benjie)! - Broaden types around
684
+ `pgSelectSingleFromRecord`
685
+
686
+ - [#2158](https://github.com/graphile/crystal/pull/2158)
687
+ [`dfac43992`](https://github.com/graphile/crystal/commit/dfac43992019b0b6c1d113d2490a87eb03d103d7)
688
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 Amber preset no longer
689
+ enables backward pagination options (`before`, `last`) on functions by
690
+ default - add `+backwards` behavior to these functions to enable. If you're
691
+ using the V4 preset you should be unaffected by this change because it enables
692
+ `+backwards` by default.
693
+
694
+ - [#2160](https://github.com/graphile/crystal/pull/2160)
695
+ [`426e9320e`](https://github.com/graphile/crystal/commit/426e9320e76ef95927eebb6fe4072050b6208771)
696
+ Thanks [@benjie](https://github.com/benjie)! - Massive overhaul of the
697
+ behavior system which now has a centralized registry of known behaviors and
698
+ applies behaviors in a more careful and nuanced way, removing many hacks and
699
+ workarounds, and ultimately meaning that `defaultBehavior: "-*"` should now
700
+ operate correctly. Importantly, `addBehaviorToTags()` has been removed - you
701
+ should use `plugin.schema.entityBehaviors` to indicate behaviors as shown in
702
+ this PR - do not mod the tags directly unless they're explicitly meant to be
703
+ overrides.
704
+
705
+ Technically this is a significant breaking change (besides the removal of the
706
+ `addBehaviorToTags()` helper) because the order in which behaviors are applied
707
+ has changed, and so a different behavior might ultimately "win". This shows up
708
+ in places where there is ambiguity, for example if you add `@filterable` to a
709
+ function that you don't have execute permissions on, that function will now
710
+ show up in the schema since user overrides (smart tags) "win" versus inferred
711
+ behaviors such as introspected permissions; this wasn't the case before.
712
+ Hopefully most users will not notice any difference, and for those who do, the
713
+ `graphile behavior debug` CLI may be able to help you figure out what's going
714
+ on.
715
+
716
+ Be sure to print your schema before and after this update and look for
717
+ changes; if there are changes then you likely need to fix the relevant
718
+ behaviors/smart tags. (Hopefully there's no changes for you!)
719
+
720
+ You'll also need to change any places where you're specifying behaviors that
721
+ will be type checked; you can either cast your existing strings e.g.
722
+ `defaultBehavior: "+connection -list" as GraphileBuild.BehaviorString`, or
723
+ preferably you can specify your behaviors as an array, which should give you
724
+ auto-complete on each entry; e.g. `defaultBehavior: ["connection", "-list"]`.
725
+
726
+ - [#2188](https://github.com/graphile/crystal/pull/2188)
727
+ [`282eb909f`](https://github.com/graphile/crystal/commit/282eb909f3e2dc74fb262714248d29056464fb1d)
728
+ Thanks [@benjie](https://github.com/benjie)! - PostGraphile V4 preset now
729
+ automatically includes the Amber preset on which it relies.
730
+
731
+ - [#2202](https://github.com/graphile/crystal/pull/2202)
732
+ [`2efadc0f8`](https://github.com/graphile/crystal/commit/2efadc0f80c3a0c172fb94c770afecc5447e832b)
733
+ Thanks [@benjie](https://github.com/benjie)! - Postgres v17 support
734
+
735
+ - [#2151](https://github.com/graphile/crystal/pull/2151)
736
+ [`e8a9fd424`](https://github.com/graphile/crystal/commit/e8a9fd4243981b892364148eca1df66620ddeb87)
737
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug preventing using
738
+ certain steps as input to `resource.find({...})` and `resource.get({...})`.
739
+
740
+ - [#2188](https://github.com/graphile/crystal/pull/2188)
741
+ [`cc0941731`](https://github.com/graphile/crystal/commit/cc0941731a1679bc04ce7b7fd4254009bb5f1f62)
742
+ Thanks [@benjie](https://github.com/benjie)! - Overhaul the way in which
743
+ `graphile-config` presets work such that including a preset at two different
744
+ layers shouldn't result in unexpected behavior.
745
+
746
+ - [#2157](https://github.com/graphile/crystal/pull/2157)
747
+ [`50f6ce456`](https://github.com/graphile/crystal/commit/50f6ce456de3edd084869b54ee9f2eaf51a7fa0c)
748
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 PostGraphile now ignores
749
+ unlogged database tables by default.
750
+
751
+ - [#2190](https://github.com/graphile/crystal/pull/2190)
752
+ [`b0865d169`](https://github.com/graphile/crystal/commit/b0865d1691105b5419009954c98c8109a27a5d81)
753
+ Thanks [@benjie](https://github.com/benjie)! - Apply `assertNotAsync` and
754
+ `assertNotPromise` in more places to detect plan resolvers returning promises.
755
+
756
+ - [#2199](https://github.com/graphile/crystal/pull/2199)
757
+ [`3b09b414f`](https://github.com/graphile/crystal/commit/3b09b414ff43c34593373fa1f242481b0c7ada70)
758
+ Thanks [@benjie](https://github.com/benjie)! - Database enum comments are now
759
+ reflected in the schema.
760
+
761
+ - [#2196](https://github.com/graphile/crystal/pull/2196)
762
+ [`b7b6dd64f`](https://github.com/graphile/crystal/commit/b7b6dd64fcc07f2ca15528fd39d61297d743dcc6)
763
+ Thanks [@benjie](https://github.com/benjie)! - 🚨 `@notNull` on a volatile
764
+ function now results in the field on the payload becoming non-null, not the
765
+ mutation field itself.
766
+
767
+ - [#2155](https://github.com/graphile/crystal/pull/2155)
768
+ [`8b472cd51`](https://github.com/graphile/crystal/commit/8b472cd51cd66d8227f9f2722d09c0a774792b0f)
769
+ Thanks [@benjie](https://github.com/benjie)! - `disablePlugins` now supports
770
+ TypeScript auto-completion of known plugin names. Other names are still
771
+ accepted without error, so this is just a minor DX improvement rather than
772
+ type safety.
773
+
774
+ - [#2198](https://github.com/graphile/crystal/pull/2198)
775
+ [`ba637b56d`](https://github.com/graphile/crystal/commit/ba637b56d79a14f82fe555739921724eab0c07f7)
776
+ Thanks [@benjie](https://github.com/benjie)! - Ensure that interface subtypes
777
+ are added to schema even if not referenced directly.
778
+ - Updated dependencies
779
+ [[`d7e6e714f`](https://github.com/graphile/crystal/commit/d7e6e714f0cc5656112703484298b77538b2dccc),
780
+ [`d5834def1`](https://github.com/graphile/crystal/commit/d5834def1fb84f3e2c0c0a6f146f8249a6df890a),
781
+ [`bb006ec7b`](https://github.com/graphile/crystal/commit/bb006ec7bdab24192c84f093ce3f92969aeb7279),
782
+ [`653929af0`](https://github.com/graphile/crystal/commit/653929af0a99a8a4d52b66e66c736be668b8700a),
783
+ [`6fdc6cad8`](https://github.com/graphile/crystal/commit/6fdc6cad8f8d1230202df533d05cc2bd80538f09),
784
+ [`42b982463`](https://github.com/graphile/crystal/commit/42b9824637a6c05e02935f2b05b5e8e0c61965a6),
785
+ [`eb69c7361`](https://github.com/graphile/crystal/commit/eb69c7361fc7bf8c5b1ce342eeb698bd28c9e013),
786
+ [`54054b873`](https://github.com/graphile/crystal/commit/54054b8733236ba7b2f2fa47d84e085f7196e3f9),
787
+ [`884a4b429`](https://github.com/graphile/crystal/commit/884a4b4297af90fdadaf73addd524f1fbbcfdcce),
788
+ [`0df171123`](https://github.com/graphile/crystal/commit/0df17112300a8ea391dfd220c5f05d362ceaa58a),
789
+ [`1eac03ec2`](https://github.com/graphile/crystal/commit/1eac03ec2e9da65c64b7754c04292f43da82c40b),
790
+ [`dfac43992`](https://github.com/graphile/crystal/commit/dfac43992019b0b6c1d113d2490a87eb03d103d7),
791
+ [`38835313a`](https://github.com/graphile/crystal/commit/38835313ad93445206dccdd4cf07b90c5a6e4377),
792
+ [`426e9320e`](https://github.com/graphile/crystal/commit/426e9320e76ef95927eebb6fe4072050b6208771),
793
+ [`e8a9fd424`](https://github.com/graphile/crystal/commit/e8a9fd4243981b892364148eca1df66620ddeb87),
794
+ [`cc0941731`](https://github.com/graphile/crystal/commit/cc0941731a1679bc04ce7b7fd4254009bb5f1f62),
795
+ [`50f6ce456`](https://github.com/graphile/crystal/commit/50f6ce456de3edd084869b54ee9f2eaf51a7fa0c),
796
+ [`b0865d169`](https://github.com/graphile/crystal/commit/b0865d1691105b5419009954c98c8109a27a5d81),
797
+ [`3b09b414f`](https://github.com/graphile/crystal/commit/3b09b414ff43c34593373fa1f242481b0c7ada70),
798
+ [`b7b6dd64f`](https://github.com/graphile/crystal/commit/b7b6dd64fcc07f2ca15528fd39d61297d743dcc6),
799
+ [`8b472cd51`](https://github.com/graphile/crystal/commit/8b472cd51cd66d8227f9f2722d09c0a774792b0f),
800
+ [`ba637b56d`](https://github.com/graphile/crystal/commit/ba637b56d79a14f82fe555739921724eab0c07f7),
801
+ [`9cd9bb522`](https://github.com/graphile/crystal/commit/9cd9bb5222a9f0398ee4b8bfa4f741b6de2a2192)]:
802
+ - graphile-build-pg@5.0.0-beta.29
803
+ - grafast@0.1.1-beta.15
804
+ - graphile-build@5.0.0-beta.25
805
+ - @dataplan/pg@0.0.1-beta.26
806
+ - graphile-config@0.0.1-beta.10
807
+ - graphile-utils@5.0.0-beta.29
808
+ - @dataplan/json@0.0.1-beta.24
809
+ - grafserv@0.1.1-beta.17
810
+
811
+ ## 5.0.0-beta.29
812
+
813
+ ### Patch Changes
814
+
815
+ - [#2149](https://github.com/graphile/crystal/pull/2149)
816
+ [`52ef49ca9`](https://github.com/graphile/crystal/commit/52ef49ca9357e63d0aa5c06ac089bf57ee991c73)
817
+ Thanks [@benjie](https://github.com/benjie)! - Fixed a bug in 'relational'
818
+ polymorphism where relations to each of the concrete types would
819
+ non-sensically be added to each of the concrete types.
820
+ - Updated dependencies
821
+ [[`52ef49ca9`](https://github.com/graphile/crystal/commit/52ef49ca9357e63d0aa5c06ac089bf57ee991c73),
822
+ [`82ce02cd9`](https://github.com/graphile/crystal/commit/82ce02cd93df3df3c9570c3528483c4f720ff9bb),
823
+ [`871d32b2a`](https://github.com/graphile/crystal/commit/871d32b2a18df0d257880fc54a61d9e68c4607d6),
824
+ [`e8a0c4441`](https://github.com/graphile/crystal/commit/e8a0c4441cd04402974cd0af6b80816c9cda91e7),
825
+ [`d9d07b97b`](https://github.com/graphile/crystal/commit/d9d07b97b41c928033b9a920931ae0ccccf88e82),
826
+ [`a26e3a30c`](https://github.com/graphile/crystal/commit/a26e3a30c02f963f8f5e9c9d021e871f33689e1b),
827
+ [`eca7e62e2`](https://github.com/graphile/crystal/commit/eca7e62e2a09af77f4f166a281dab81d009d9ec1),
828
+ [`02c11a4d4`](https://github.com/graphile/crystal/commit/02c11a4d42bf434dffc9354b300e8d791c4eeb2d)]:
829
+ - graphile-build-pg@5.0.0-beta.28
830
+ - @dataplan/pg@0.0.1-beta.25
831
+ - grafast@0.1.1-beta.14
832
+ - graphile-build@5.0.0-beta.24
833
+ - graphile-utils@5.0.0-beta.28
834
+ - @dataplan/json@0.0.1-beta.23
835
+ - grafserv@0.1.1-beta.16
836
+
837
+ ## 5.0.0-beta.28
838
+
839
+ ### Patch Changes
840
+
841
+ - Updated dependencies
842
+ [[`807650035`](https://github.com/graphile/crystal/commit/8076500354a3e2bc2de1b6c4e947bd710cc5bddc)]:
843
+ - @dataplan/pg@0.0.1-beta.24
844
+ - grafast@0.1.1-beta.13
845
+ - graphile-build-pg@5.0.0-beta.27
846
+ - graphile-utils@5.0.0-beta.27
847
+ - @dataplan/json@0.0.1-beta.22
848
+ - grafserv@0.1.1-beta.15
849
+ - graphile-build@5.0.0-beta.23
850
+
851
+ ## 5.0.0-beta.27
852
+
853
+ ### Patch Changes
854
+
855
+ - [#2129](https://github.com/graphile/crystal/pull/2129)
856
+ [`1f67999eb`](https://github.com/graphile/crystal/commit/1f67999eb11435562ca76e8e7349aaadc28390f6)
857
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug in orderBy planning
858
+ that caused a new plan to be required for every request.
859
+
860
+ - [#2121](https://github.com/graphile/crystal/pull/2121)
861
+ [`8bdc553b7`](https://github.com/graphile/crystal/commit/8bdc553b79aae21a27d22a4e1f1e57ee2e5d1d3f)
862
+ Thanks [@benjie](https://github.com/benjie)! - Add support for accepting
863
+ poolConfig via makePgService
864
+
865
+ - [#2128](https://github.com/graphile/crystal/pull/2128)
866
+ [`4e102b1a1`](https://github.com/graphile/crystal/commit/4e102b1a1cd232e6f6703df0706415f01831dab2)
867
+ Thanks [@adamni21](https://github.com/adamni21)! - Reduce planning cost of
868
+ large input object trees by evaluating keys up front (thanks to @adamni21).
869
+
870
+ - [#1985](https://github.com/graphile/crystal/pull/1985)
871
+ [`d6102714e`](https://github.com/graphile/crystal/commit/d6102714e4fec35952784c988c1617c789eee0cd)
872
+ Thanks [@hannesj](https://github.com/hannesj)! - 🚨 PostgreSQL adaptor is no
873
+ longer loaded via string value; instead you must pass the adaptor instance
874
+ directly. If you have `adaptor: "@dataplan/pg/adaptors/pg"` then replace it
875
+ with `adaptor: await import("@dataplan/pg/adaptors/pg")`. (This shouldn't
876
+ cause you issues because you _should_ be using `makePgService` to construct
877
+ your `pgServices` rather than building raw objects.)
878
+
879
+ 🚨 If you've implemented a custom PgAdaptor, talk to Benjie about how to port
880
+ it. (Should be straightforward, but no point me figuring it out if no-one has
881
+ done it yet 🤷)
882
+
883
+ This change improves bundle-ability by reducing the number of dynamic imports.
884
+
885
+ Also: `PgAdaptorOptions` has been renamed to `PgAdaptorSettings`, so please do
886
+ a global find and replace for that.
887
+
888
+ - [#2094](https://github.com/graphile/crystal/pull/2094)
889
+ [`c0e50a1b4`](https://github.com/graphile/crystal/commit/c0e50a1b4f1c95bfcafb5458dce0d5e56852d7d0)
890
+ Thanks [@benjie](https://github.com/benjie)! - makeWrapPlansPlugin more likely
891
+ to be exportable.
892
+
893
+ - Updated dependencies
894
+ [[`1f67999eb`](https://github.com/graphile/crystal/commit/1f67999eb11435562ca76e8e7349aaadc28390f6),
895
+ [`1bd50b61e`](https://github.com/graphile/crystal/commit/1bd50b61ebb10b7d09b3612c2e2767c41cca3b78),
896
+ [`8bdc553b7`](https://github.com/graphile/crystal/commit/8bdc553b79aae21a27d22a4e1f1e57ee2e5d1d3f),
897
+ [`61f8bbca5`](https://github.com/graphile/crystal/commit/61f8bbca5badda5b27872e0ee01a2d4c1372210d),
898
+ [`4e102b1a1`](https://github.com/graphile/crystal/commit/4e102b1a1cd232e6f6703df0706415f01831dab2),
899
+ [`1cabbd311`](https://github.com/graphile/crystal/commit/1cabbd311bdefd7ce78f8dacbf61a42237a6c73c),
900
+ [`7bb1573ba`](https://github.com/graphile/crystal/commit/7bb1573ba45a4d8b7fa9ad53cdd79686d2641383),
901
+ [`590b6fdf5`](https://github.com/graphile/crystal/commit/590b6fdf5d04a392c4cc9e8bdad83278377c547b),
902
+ [`18addb385`](https://github.com/graphile/crystal/commit/18addb3852525aa91019a36d58fa2fecd8b5b443),
903
+ [`d6102714e`](https://github.com/graphile/crystal/commit/d6102714e4fec35952784c988c1617c789eee0cd),
904
+ [`6ed615e55`](https://github.com/graphile/crystal/commit/6ed615e557b2ab1fb57f1e68c06730a8e3da7175),
905
+ [`b25cc539c`](https://github.com/graphile/crystal/commit/b25cc539c00aeda7a943c37509aaae4dc7812317),
906
+ [`867f33136`](https://github.com/graphile/crystal/commit/867f331365346fc46ed1e0d23c79719846e398f4),
907
+ [`925123497`](https://github.com/graphile/crystal/commit/925123497cf17b5e145ab80f62fa9de768a977ae),
908
+ [`cf535c210`](https://github.com/graphile/crystal/commit/cf535c21078da06c14dd12f30e9b4378da4ded03),
909
+ [`c0e50a1b4`](https://github.com/graphile/crystal/commit/c0e50a1b4f1c95bfcafb5458dce0d5e56852d7d0),
910
+ [`acf99b190`](https://github.com/graphile/crystal/commit/acf99b190954e3c5926e820daed68dfe8eb3ee1f),
911
+ [`4967a197f`](https://github.com/graphile/crystal/commit/4967a197fd2c71ee2a581fe29470ee9f30e74de5),
912
+ [`1908e1ba1`](https://github.com/graphile/crystal/commit/1908e1ba11883a34dac66f985fc20ab160e572b1),
913
+ [`084d80be6`](https://github.com/graphile/crystal/commit/084d80be6e17187c9a9932bcf079e3f460368782),
914
+ [`aa0474755`](https://github.com/graphile/crystal/commit/aa0474755142a758fc58c5c1a30b8c754bc84e7c)]:
915
+ - graphile-build-pg@5.0.0-beta.26
916
+ - grafast@0.1.1-beta.12
917
+ - @dataplan/pg@0.0.1-beta.23
918
+ - grafserv@0.1.1-beta.14
919
+ - graphile-utils@5.0.0-beta.26
920
+ - @dataplan/json@0.0.1-beta.21
921
+ - graphile-build@5.0.0-beta.22
922
+
923
+ ## 5.0.0-beta.26
924
+
925
+ ### Patch Changes
926
+
927
+ - [#2071](https://github.com/graphile/crystal/pull/2071)
928
+ [`582bd768f`](https://github.com/graphile/crystal/commit/582bd768fec403ce3284f293b85b9fd86e4d3f40)
929
+ Thanks [@benjie](https://github.com/benjie)! - `GrafastExecutionArgs` now
930
+ accepts `resolvedPreset` and `requestContext` directly; passing these through
931
+ additional arguments is now deprecated and support will be removed in a future
932
+ revision. This affects:
933
+
934
+ - `grafast()`
935
+ - `execute()`
936
+ - `subscribe()`
937
+ - `hookArgs()`
938
+
939
+ `graphile-config` has gained a middleware system which is more powerful than
940
+ it's AsyncHooks system. Old hooks can be emulated through the middleware
941
+ system safely since middleware is a superset of hooks' capabilities.
942
+ `applyHooks` has been renamed to `orderedApply` (because it applies to more
943
+ than just hooks), calling `applyHooks` will still work but is deprecated.
944
+
945
+ 🚨 `grafast` no longer automatically reads your `graphile.config.ts` or
946
+ similar; you must do that yourself and pass the `resolvedPreset` to grafast
947
+ via the `args`. This is to aid in bundling of grafast since it should not need
948
+ to read from filesystem or dynamically load modules.
949
+
950
+ `grafast` no longer outputs performance warning when you set
951
+ `GRAPHILE_ENV=development`.
952
+
953
+ 🚨 `plugin.grafast.hooks.args` is now `plugin.grafast.middleware.prepareArgs`,
954
+ and the signature has changed - you must be sure to call the `next()` function
955
+ and ctx/resolvedPreset can be extracted directly from `args`:
956
+
957
+ ```diff
958
+ const plugin = {
959
+ grafast: {
960
+ - hooks: {
961
+ + middleware: {
962
+ - args({ args, ctx, resolvedPreset }) {
963
+ + prepareArgs(next, { args }) {
964
+ + const { requestContext: ctx, resolvedPreset } = args;
965
+ // ...
966
+ + return next();
967
+ }
968
+ }
969
+ }
970
+ }
971
+ ```
972
+
973
+ Many more middleware have been added; use TypeScript's autocomplete to see
974
+ what's available until we have proper documentation for them.
975
+
976
+ `plugin.grafserv.hooks.*` are still supported but deprecated; instead use
977
+ middleware `plugin.grafserv.middleware.*` (note that call signatures have
978
+ changed slightly, similar to the diff above):
979
+
980
+ - `hooks.init` -> `middleware.setPreset`
981
+ - `hooks.processGraphQLRequestBody` -> `middleware.processGraphQLRequestBody`
982
+ - `hooks.ruruHTMLParts` -> `middleware.ruruHTMLParts`
983
+
984
+ A few TypeScript types related to Hooks have been renamed, but their old names
985
+ are still available, just deprecated. They will be removed in a future update:
986
+
987
+ - `HookObject` -> `FunctionalityObject`
988
+ - `PluginHook` -> `CallbackOrDescriptor`
989
+ - `PluginHookObject` -> `CallbackDescriptor`
990
+ - `PluginHookCallback` -> `UnwrapCallback`
991
+
992
+ - Updated dependencies
993
+ [[`582bd768f`](https://github.com/graphile/crystal/commit/582bd768fec403ce3284f293b85b9fd86e4d3f40)]:
994
+ - graphile-build@5.0.0-beta.21
995
+ - graphile-config@0.0.1-beta.9
996
+ - @dataplan/pg@0.0.1-beta.22
997
+ - grafserv@0.1.1-beta.13
998
+ - grafast@0.1.1-beta.11
999
+ - graphile-build-pg@5.0.0-beta.25
1000
+ - graphile-utils@5.0.0-beta.25
1001
+ - @dataplan/json@0.0.1-beta.20
1002
+
1003
+ ## 5.0.0-beta.25
1004
+
1005
+ ### Patch Changes
1006
+
1007
+ - Updated dependencies
1008
+ [[`3c161f7e1`](https://github.com/graphile/crystal/commit/3c161f7e13375105b1035a7d5d1c0f2b507ca5c7),
1009
+ [`a674a9923`](https://github.com/graphile/crystal/commit/a674a9923bc908c9315afa40e0cb256ee0953d16),
1010
+ [`b7cfeffd1`](https://github.com/graphile/crystal/commit/b7cfeffd1019d61c713a5054c4f5929960a2a6ab)]:
1011
+ - grafast@0.1.1-beta.10
1012
+ - @dataplan/json@0.0.1-beta.19
1013
+ - @dataplan/pg@0.0.1-beta.21
1014
+ - grafserv@0.1.1-beta.12
1015
+ - graphile-build@5.0.0-beta.20
1016
+ - graphile-build-pg@5.0.0-beta.24
1017
+ - graphile-utils@5.0.0-beta.24
1018
+
1019
+ ## 5.0.0-beta.24
1020
+
1021
+ ### Patch Changes
1022
+
1023
+ - [#2064](https://github.com/graphile/crystal/pull/2064)
1024
+ [`437570f97`](https://github.com/graphile/crystal/commit/437570f97e8520afaf3d0d0b514d1f4c31546b76)
1025
+ Thanks [@benjie](https://github.com/benjie)! - Fix a bug relating to Global
1026
+ Object Identifiers (specifically in update mutations, but probably elsewhere
1027
+ too) related to early exit.
1028
+ - Updated dependencies
1029
+ [[`437570f97`](https://github.com/graphile/crystal/commit/437570f97e8520afaf3d0d0b514d1f4c31546b76)]:
1030
+ - graphile-build-pg@5.0.0-beta.23
1031
+ - grafast@0.1.1-beta.9
1032
+ - graphile-utils@5.0.0-beta.23
1033
+ - @dataplan/json@0.0.1-beta.18
1034
+ - @dataplan/pg@0.0.1-beta.20
1035
+ - grafserv@0.1.1-beta.11
1036
+ - graphile-build@5.0.0-beta.19
1037
+
1038
+ ## 5.0.0-beta.23
1039
+
1040
+ ### Patch Changes
1041
+
1042
+ - [#2056](https://github.com/graphile/crystal/pull/2056)
1043
+ [`1842af661`](https://github.com/graphile/crystal/commit/1842af661950d5f962b65f6362a45a3b9c8f15e8)
1044
+ Thanks [@benjie](https://github.com/benjie)! - Improve exporting of resource
1045
+ options (neater export code)
1046
+
1047
+ - Updated dependencies
1048
+ [[`1842af661`](https://github.com/graphile/crystal/commit/1842af661950d5f962b65f6362a45a3b9c8f15e8),
1049
+ [`bd5a908a4`](https://github.com/graphile/crystal/commit/bd5a908a4d04310f90dfb46ad87398ffa993af3b)]:
1050
+ - graphile-build-pg@5.0.0-beta.22
1051
+ - graphile-build@5.0.0-beta.18
1052
+ - grafast@0.1.1-beta.8
1053
+ - graphile-utils@5.0.0-beta.22
1054
+ - @dataplan/json@0.0.1-beta.17
1055
+ - @dataplan/pg@0.0.1-beta.19
1056
+ - grafserv@0.1.1-beta.10
1057
+
1058
+ ## 5.0.0-beta.22
1059
+
1060
+ ### Patch Changes
1061
+
1062
+ - [#2015](https://github.com/graphile/crystal/pull/2015)
1063
+ [`5eca6d65a`](https://github.com/graphile/crystal/commit/5eca6d65a816bac3d0ceaa6cafa7df1a79c2be47)
1064
+ Thanks [@benjie](https://github.com/benjie)! - Use `inhibitOnNull` when
1065
+ decoding a spec ID to prevent it being consumed if invalid (e.g. don't allow
1066
+ using a 'Post' node ID to fetch a 'Person' record).
1067
+
1068
+ - [#1994](https://github.com/graphile/crystal/pull/1994)
1069
+ [`ab08cbf9c`](https://github.com/graphile/crystal/commit/ab08cbf9c504c3cc22495a99a965e7634c18a6a3)
1070
+ Thanks [@benjie](https://github.com/benjie)! - Introduce
1071
+ `interface SQLable {[$toSQL](): SQL}` to `pg-sql2` and use it to simplify SQL
1072
+ fragments in various places.
1073
+
1074
+ - [#1978](https://github.com/graphile/crystal/pull/1978)
1075
+ [`a287a57c2`](https://github.com/graphile/crystal/commit/a287a57c2765da0fb6a132ea0953f64453210ceb)
1076
+ Thanks [@benjie](https://github.com/benjie)! - Breaking: `connection()` step
1077
+ now accepts configuration object in place of 2nd argument onwards:
1078
+
1079
+ ```diff
1080
+ -return connection($list, nodePlan, cursorPlan);
1081
+ +return connection($list, { nodePlan, cursorPlan });
1082
+ ```
1083
+
1084
+ Feature: `edgeDataPlan` can be specified as part of this configuration object,
1085
+ allowing you to associate edge data with your connection edges:
1086
+
1087
+ ```ts
1088
+ return connection($list, {
1089
+ edgeDataPlan($item) {
1090
+ return object({ item: $item, otherThing: $otherThing });
1091
+ },
1092
+ });
1093
+
1094
+ // ...
1095
+
1096
+ const plans = {
1097
+ FooEdge: {
1098
+ otherThing($edge) {
1099
+ return $edge.data().get("otherThing");
1100
+ },
1101
+ },
1102
+ };
1103
+ ```
1104
+
1105
+ Feature: `ConnectionStep` and `EdgeStep` gain `get()` methods, so
1106
+ `*Connection.edges`, `*Connection.nodes`, `*Connection.pageInfo`, `*Edge.node`
1107
+ and `*Edge.cursor` no longer need plans to be defined.
1108
+
1109
+ - [#2006](https://github.com/graphile/crystal/pull/2006)
1110
+ [`7ad35fe4d`](https://github.com/graphile/crystal/commit/7ad35fe4d9b20f6ec82dc95c362390a87e25b42c)
1111
+ Thanks [@benjie](https://github.com/benjie)! - When replacing inflectors via
1112
+ `plugin.inflection.replace.<inflector_name>` the first argument is the
1113
+ previous inflector (or null). Previously this was typed including the
1114
+ `this: Inflection` argument which meant to appease TypeScript you needed to do
1115
+ `previous.call(this, arg1, arg2)`, but this was never necessary in JS. This is
1116
+ now fixed, and you can now issue `previous(arg1, arg2)` from TypeScript
1117
+ without error.
1118
+
1119
+ - [#2050](https://github.com/graphile/crystal/pull/2050)
1120
+ [`272608c13`](https://github.com/graphile/crystal/commit/272608c135e4ef0f76b8b5a9f764494a3f3ad779)
1121
+ Thanks [@benjie](https://github.com/benjie)! - Add missing EXPORTABLE (and
1122
+ remove excessive EXPORTABLE) to fix schema exports.
1123
+
1124
+ - [#1995](https://github.com/graphile/crystal/pull/1995)
1125
+ [`e0d69e518`](https://github.com/graphile/crystal/commit/e0d69e518a98c70f9b90f59d243ce33978c1b5a1)
1126
+ Thanks [@benjie](https://github.com/benjie)! - Refactoring of unary logic.
1127
+
1128
+ - [#2048](https://github.com/graphile/crystal/pull/2048)
1129
+ [`db8ceed0f`](https://github.com/graphile/crystal/commit/db8ceed0f17923eb78ff09c9f3f28800a5c7e3b6)
1130
+ Thanks [@benjie](https://github.com/benjie)! - Help detect more invalid
1131
+ presets and plugins (bad imports) by forbidding keys starting with a capital
1132
+ or the key `default`.
1133
+
1134
+ - [#2046](https://github.com/graphile/crystal/pull/2046)
1135
+ [`966203504`](https://github.com/graphile/crystal/commit/96620350467ab8c65b56adf2f055e19450f8e772)
1136
+ Thanks [@benjie](https://github.com/benjie)! - Envelop peer dependency
1137
+ upgraded to V5
1138
+
1139
+ - [#1973](https://github.com/graphile/crystal/pull/1973)
1140
+ [`a0e82b9c5`](https://github.com/graphile/crystal/commit/a0e82b9c5f4e585f1af1e147299cd07944ece6f8)
1141
+ Thanks [@benjie](https://github.com/benjie)! - Add 'unary steps' concept to
1142
+ codebase and refactor to using new executeV2 execution method which leverages
1143
+ them. Backwards compatibility maintained, but users should move to executeV2.
1144
+
1145
+ - [#1989](https://github.com/graphile/crystal/pull/1989)
1146
+ [`c48d3da7f`](https://github.com/graphile/crystal/commit/c48d3da7fe4fac2562fab5f085d252a0bfb6f0b6)
1147
+ Thanks [@benjie](https://github.com/benjie)! - Make it so that more pgSelect
1148
+ queries optimize themselves into parent queries via new step.canAddDependency
1149
+ helper.
1150
+
1151
+ - [#2006](https://github.com/graphile/crystal/pull/2006)
1152
+ [`bee0a0a68`](https://github.com/graphile/crystal/commit/bee0a0a68d48816f84b1a7f5ec69bd6069211426)
1153
+ Thanks [@benjie](https://github.com/benjie)! - Adopt improved inflection
1154
+ typings.
1155
+
1156
+ - [#2019](https://github.com/graphile/crystal/pull/2019)
1157
+ [`51a94417f`](https://github.com/graphile/crystal/commit/51a94417fb62b54d309be184f4be479bc267c2b7)
1158
+ Thanks [@benjie](https://github.com/benjie)! - Now possible to filter by relay
1159
+ node identifiers without weird results if you pass an incompatible node id
1160
+ (e.g. a 'Post' ID where a 'User' ID was expected) - significantly improves the
1161
+ Relay preset.
1162
+
1163
+ - [#1988](https://github.com/graphile/crystal/pull/1988)
1164
+ [`81d17460c`](https://github.com/graphile/crystal/commit/81d17460ced08608814635779c5cf997c19c101d)
1165
+ Thanks [@benjie](https://github.com/benjie)! - Fix issue with record types
1166
+ when attributes need to be cast; this previously caused errors with computed
1167
+ columns when passed particular arguments.
1168
+ - Updated dependencies
1169
+ [[`357d475f5`](https://github.com/graphile/crystal/commit/357d475f54fecc8c51892e0346d6872b34132430),
1170
+ [`30bcd6c12`](https://github.com/graphile/crystal/commit/30bcd6c12e59f878617ea987c35a2f589ce05cb8),
1171
+ [`3551725e7`](https://github.com/graphile/crystal/commit/3551725e71c3ed876554e19e5ab2c1dcb0fb1143),
1172
+ [`80836471e`](https://github.com/graphile/crystal/commit/80836471e5cedb29dee63bc5002550c4f1713cfd),
1173
+ [`b788dd868`](https://github.com/graphile/crystal/commit/b788dd86849e703cc3aa863fd9190c36a087b865),
1174
+ [`5eca6d65a`](https://github.com/graphile/crystal/commit/5eca6d65a816bac3d0ceaa6cafa7df1a79c2be47),
1175
+ [`a5c20fefb`](https://github.com/graphile/crystal/commit/a5c20fefb571dea6d1187515dc48dd547e9e6204),
1176
+ [`1ce08980e`](https://github.com/graphile/crystal/commit/1ce08980e2a52ed9bc81564d248c19648ecd3616),
1177
+ [`ab08cbf9c`](https://github.com/graphile/crystal/commit/ab08cbf9c504c3cc22495a99a965e7634c18a6a3),
1178
+ [`dff4f2535`](https://github.com/graphile/crystal/commit/dff4f2535ac6ce893089b312fcd5fffcd98573a5),
1179
+ [`a287a57c2`](https://github.com/graphile/crystal/commit/a287a57c2765da0fb6a132ea0953f64453210ceb),
1180
+ [`45e10950b`](https://github.com/graphile/crystal/commit/45e10950b533f97cdd986e5442e2e160a8e431a2),
1181
+ [`2fe56f9a6`](https://github.com/graphile/crystal/commit/2fe56f9a6dac03484ace45c29c2223a65f9ca1db),
1182
+ [`fed603d71`](https://github.com/graphile/crystal/commit/fed603d719c02f33e12190f925c9e3b06c581fac),
1183
+ [`ed6e0d278`](https://github.com/graphile/crystal/commit/ed6e0d2788217a1c419634837f4208013eaf2923),
1184
+ [`86168b740`](https://github.com/graphile/crystal/commit/86168b740510aef17bde7ae21f1d0eebb0c5c9b3),
1185
+ [`7ad35fe4d`](https://github.com/graphile/crystal/commit/7ad35fe4d9b20f6ec82dc95c362390a87e25b42c),
1186
+ [`e82e4911e`](https://github.com/graphile/crystal/commit/e82e4911e32138df1b90ec0fde555ea963018d21),
1187
+ [`94a05064e`](https://github.com/graphile/crystal/commit/94a05064ea05108685ff71174a9f871ab5b4c147),
1188
+ [`272608c13`](https://github.com/graphile/crystal/commit/272608c135e4ef0f76b8b5a9f764494a3f3ad779),
1189
+ [`42ece5aa6`](https://github.com/graphile/crystal/commit/42ece5aa6ca05345ebc17fb5c7d55df3b79b7612),
1190
+ [`e0d69e518`](https://github.com/graphile/crystal/commit/e0d69e518a98c70f9b90f59d243ce33978c1b5a1),
1191
+ [`e22cb4dfa`](https://github.com/graphile/crystal/commit/e22cb4dfa94b60d1b99c374e8c28943373bd8496),
1192
+ [`db8ceed0f`](https://github.com/graphile/crystal/commit/db8ceed0f17923eb78ff09c9f3f28800a5c7e3b6),
1193
+ [`a5a0816bd`](https://github.com/graphile/crystal/commit/a5a0816bddc85a841770202db57457ff13137852),
1194
+ [`6699388ec`](https://github.com/graphile/crystal/commit/6699388ec167d35c71220ce5d9113cac578da6cb),
1195
+ [`966203504`](https://github.com/graphile/crystal/commit/96620350467ab8c65b56adf2f055e19450f8e772),
1196
+ [`c1645b249`](https://github.com/graphile/crystal/commit/c1645b249aae949a548cd916e536ccfb63e5ab35),
1197
+ [`ed8bbaa3c`](https://github.com/graphile/crystal/commit/ed8bbaa3cd1563a7601ca8c6b0412633b0ea4ce9),
1198
+ [`a0e82b9c5`](https://github.com/graphile/crystal/commit/a0e82b9c5f4e585f1af1e147299cd07944ece6f8),
1199
+ [`14e2412ee`](https://github.com/graphile/crystal/commit/14e2412ee368e8d53abf6774c7f0069f32d4e8a3),
1200
+ [`c48d3da7f`](https://github.com/graphile/crystal/commit/c48d3da7fe4fac2562fab5f085d252a0bfb6f0b6),
1201
+ [`57ab0e1e7`](https://github.com/graphile/crystal/commit/57ab0e1e72c01213b21d3efc539cd655d83d993a),
1202
+ [`8442242e4`](https://github.com/graphile/crystal/commit/8442242e43cac7d89ca0c413cf42c9fabf6f247f),
1203
+ [`bee0a0a68`](https://github.com/graphile/crystal/commit/bee0a0a68d48816f84b1a7f5ec69bd6069211426),
1204
+ [`51a94417f`](https://github.com/graphile/crystal/commit/51a94417fb62b54d309be184f4be479bc267c2b7),
1205
+ [`64ce7b765`](https://github.com/graphile/crystal/commit/64ce7b7650530251aec38a51089da66f914c19b4),
1206
+ [`cba842357`](https://github.com/graphile/crystal/commit/cba84235786acbd77ade53bae7a3fba4a9be1eb7),
1207
+ [`2fa77d0f2`](https://github.com/graphile/crystal/commit/2fa77d0f237cdb98d3dafb6b5e4083a2c6c38673),
1208
+ [`81d17460c`](https://github.com/graphile/crystal/commit/81d17460ced08608814635779c5cf997c19c101d)]:
1209
+ - @dataplan/json@0.0.1-beta.16
1210
+ - @dataplan/pg@0.0.1-beta.18
1211
+ - grafast@0.1.1-beta.7
1212
+ - tamedevil@0.0.0-beta.7
1213
+ - graphile-build-pg@5.0.0-beta.21
1214
+ - pg-sql2@5.0.0-beta.6
1215
+ - graphile-build@5.0.0-beta.17
1216
+ - graphile-utils@5.0.0-beta.21
1217
+ - graphile-config@0.0.1-beta.8
1218
+ - grafserv@0.1.1-beta.9
1219
+
1220
+ ## 5.0.0-beta.21
1221
+
1222
+ ### Patch Changes
1223
+
1224
+ - [#1955](https://github.com/graphile/crystal/pull/1955)
1225
+ [`6c6be29f1`](https://github.com/graphile/crystal/commit/6c6be29f12b24782c926b2bc62ed2ede09ac05de)
1226
+ Thanks [@benjie](https://github.com/benjie)! - Steps are now prevented from
1227
+ calling other steps' lifecycle methods. GRAPHILE_ENV is actively encouraged,
1228
+ and falls back to NODE_ENV.
1229
+
1230
+ - [#1944](https://github.com/graphile/crystal/pull/1944)
1231
+ [`6c80c44b7`](https://github.com/graphile/crystal/commit/6c80c44b76a5eb30cc2b1555ba81a4b6236f4300)
1232
+ Thanks [@benjie](https://github.com/benjie)! - Fix accidental double-encoding
1233
+ of values on their way to postgres.
1234
+
1235
+ - [#1949](https://github.com/graphile/crystal/pull/1949)
1236
+ [`179d25b09`](https://github.com/graphile/crystal/commit/179d25b09bb3272eeef564067b8e512d8de0112f)
1237
+ Thanks [@benjie](https://github.com/benjie)! - Add support for registering
1238
+ PgCodecs via plugins, add support for ltree type, improve error messages, no
1239
+ longer need to set a gather namespace to use cache/state.
1240
+
1241
+ - [#1958](https://github.com/graphile/crystal/pull/1958)
1242
+ [`8315e8d01`](https://github.com/graphile/crystal/commit/8315e8d01c118cebc4ebbc53a2f264b958b252ad)
1243
+ Thanks [@benjie](https://github.com/benjie)! - EXPORTABLE now accepts a third
1244
+ argument, `nameHint`, which is used to hint what variable name to use for the
1245
+ given value. Used this in `graphile-export` along with some fixes and
1246
+ optimizations to improve the exports further.
1247
+
1248
+ - [#1946](https://github.com/graphile/crystal/pull/1946)
1249
+ [`9d53dde72`](https://github.com/graphile/crystal/commit/9d53dde726b7304962e921b88a159649e49156e5)
1250
+ Thanks [@benjie](https://github.com/benjie)! - Exporting a schema now performs
1251
+ ESLint 'no-use-before-define' check to catch even more invalid export
1252
+ conditions. Fix `registerNodeIdCodec` calls caught by this.
1253
+ - Updated dependencies
1254
+ [[`9f85c614d`](https://github.com/graphile/crystal/commit/9f85c614d48dc745c5fed15333dbb75af7fddc88),
1255
+ [`6c6be29f1`](https://github.com/graphile/crystal/commit/6c6be29f12b24782c926b2bc62ed2ede09ac05de),
1256
+ [`6c80c44b7`](https://github.com/graphile/crystal/commit/6c80c44b76a5eb30cc2b1555ba81a4b6236f4300),
1257
+ [`179d25b09`](https://github.com/graphile/crystal/commit/179d25b09bb3272eeef564067b8e512d8de0112f),
1258
+ [`8315e8d01`](https://github.com/graphile/crystal/commit/8315e8d01c118cebc4ebbc53a2f264b958b252ad),
1259
+ [`9d53dde72`](https://github.com/graphile/crystal/commit/9d53dde726b7304962e921b88a159649e49156e5)]:
1260
+ - @dataplan/pg@0.0.1-beta.17
1261
+ - grafast@0.1.1-beta.6
1262
+ - graphile-build-pg@5.0.0-beta.20
1263
+ - graphile-build@5.0.0-beta.16
1264
+ - graphile-utils@5.0.0-beta.20
1265
+ - tamedevil@0.0.0-beta.6
1266
+ - @dataplan/json@0.0.1-beta.15
1267
+ - grafserv@0.1.1-beta.8
1268
+
1269
+ ## 5.0.0-beta.20
1270
+
1271
+ ### Patch Changes
1272
+
1273
+ - [#1927](https://github.com/graphile/crystal/pull/1927)
1274
+ [`00d32d887`](https://github.com/graphile/crystal/commit/00d32d887a6ae01374a4fda1babab7c8f14832c0)
1275
+ Thanks [@benjie](https://github.com/benjie)! - Excludes table constraints on
1276
+ tables from extensions if configured to not include extensions.
1277
+
1278
+ - [#1927](https://github.com/graphile/crystal/pull/1927)
1279
+ [`c62eee10b`](https://github.com/graphile/crystal/commit/c62eee10b445f9455bf2a0524ad2b828bdf4ffa6)
1280
+ Thanks [@benjie](https://github.com/benjie)! - Add pg_am to pg-introspection
1281
+ to enable determining index access method
1282
+
1283
+ - [#1934](https://github.com/graphile/crystal/pull/1934)
1284
+ [`9ac0ddc01`](https://github.com/graphile/crystal/commit/9ac0ddc014bfceb60b4b5641d6e8db605cc6a79b)
1285
+ Thanks [@benjie](https://github.com/benjie)! - Automatically detect when a
1286
+ `graphile-export` export is invalid, and throw an error indicating which
1287
+ method needs to have `EXPORTABLE` added around it.
1288
+
1289
+ - [#1931](https://github.com/graphile/crystal/pull/1931)
1290
+ [`941e28003`](https://github.com/graphile/crystal/commit/941e280038a735014a9fe4e24fc534a197fac0f2)
1291
+ Thanks [@benjie](https://github.com/benjie)! - Add support for deprecated
1292
+ arguments to Ruru.
1293
+
1294
+ - [#1935](https://github.com/graphile/crystal/pull/1935)
1295
+ [`8ea67f891`](https://github.com/graphile/crystal/commit/8ea67f8910693edaf70daa9952e35d8396166f38)
1296
+ Thanks [@benjie](https://github.com/benjie)! - Fix lots of things related to
1297
+ exporting a schema with `graphile-export`.
1298
+
1299
+ - [#1931](https://github.com/graphile/crystal/pull/1931)
1300
+ [`068be2f51`](https://github.com/graphile/crystal/commit/068be2f51d7a9c17311f26c6c9451985397c9e1f)
1301
+ Thanks [@benjie](https://github.com/benjie)! - Fix issue typing into Ruru
1302
+ explorer plugin - characters no longer overwritten.
1303
+
1304
+ - [#1929](https://github.com/graphile/crystal/pull/1929)
1305
+ [`7587ca9e0`](https://github.com/graphile/crystal/commit/7587ca9e0f2bb93d0b22d1e2979d7b7912363600)
1306
+ Thanks [@benjie](https://github.com/benjie)! - PgLazyJWTPreset: return 401
1307
+ error when validation of JWT fails.
1308
+
1309
+ - [#1935](https://github.com/graphile/crystal/pull/1935)
1310
+ [`e20e66ed7`](https://github.com/graphile/crystal/commit/e20e66ed71b499ee5bbf05105f981809fd302212)
1311
+ Thanks [@benjie](https://github.com/benjie)! - Make even more of the schema
1312
+ exportable, including handling scalars with no parseLiteral definition.
1313
+
1314
+ - [#1931](https://github.com/graphile/crystal/pull/1931)
1315
+ [`ec3112c7b`](https://github.com/graphile/crystal/commit/ec3112c7b58d142b4b1d86cbb7de4ca80bbfda00)
1316
+ Thanks [@benjie](https://github.com/benjie)! - Add support for deprecating
1317
+ arguments to makeExtendSchemaPlugin
1318
+
1319
+ - Updated dependencies
1320
+ [[`49fd8afed`](https://github.com/graphile/crystal/commit/49fd8afed1afe573ea76a2a7a821dfa5d6288e2d),
1321
+ [`63dd7ea99`](https://github.com/graphile/crystal/commit/63dd7ea992d30ad711dd85a73a127484a0e35479),
1322
+ [`d801c9778`](https://github.com/graphile/crystal/commit/d801c9778a86d61e060896460af9fe62a733534a),
1323
+ [`c21252541`](https://github.com/graphile/crystal/commit/c212525410cb2d97a808964ad727d0a68dd15f8b),
1324
+ [`3a2ea80ee`](https://github.com/graphile/crystal/commit/3a2ea80ee470b2aef91366727d7d60a0c65067f5),
1325
+ [`ef44c29b2`](https://github.com/graphile/crystal/commit/ef44c29b24a1ad5a042ae1536a4546dd64b17195),
1326
+ [`8ea67f891`](https://github.com/graphile/crystal/commit/8ea67f8910693edaf70daa9952e35d8396166f38),
1327
+ [`5de3e86eb`](https://github.com/graphile/crystal/commit/5de3e86eba1ddfe5e07732d0325c63e5d72d4b5b),
1328
+ [`e20e66ed7`](https://github.com/graphile/crystal/commit/e20e66ed71b499ee5bbf05105f981809fd302212),
1329
+ [`ec3112c7b`](https://github.com/graphile/crystal/commit/ec3112c7b58d142b4b1d86cbb7de4ca80bbfda00)]:
1330
+ - tamedevil@0.0.0-beta.5
1331
+ - grafast@0.1.1-beta.5
1332
+ - grafserv@0.1.1-beta.7
1333
+ - graphile-build-pg@5.0.0-beta.19
1334
+ - graphile-build@5.0.0-beta.15
1335
+ - graphile-utils@5.0.0-beta.19
1336
+ - @dataplan/json@0.0.1-beta.14
1337
+ - @dataplan/pg@0.0.1-beta.16
1338
+ - pg-sql2@5.0.0-beta.5
1339
+ - graphile-config@0.0.1-beta.7
1340
+
1341
+ ## 5.0.0-beta.19
1342
+
1343
+ ### Patch Changes
1344
+
1345
+ - [#1895](https://github.com/graphile/crystal/pull/1895)
1346
+ [`555a2be03`](https://github.com/graphile/crystal/commit/555a2be037f49bd599abbaafe6e5d5ab190c96d6)
1347
+ Thanks [@enisdenjo](https://github.com/enisdenjo)! - Fix issue with aggregates
1348
+ for polymorphic connections.
1349
+
1350
+ - [#1917](https://github.com/graphile/crystal/pull/1917)
1351
+ [`886833e2e`](https://github.com/graphile/crystal/commit/886833e2e319f23d905d7184ca88fca701b94044)
1352
+ Thanks [@benjie](https://github.com/benjie)! - Add `polymorphicBranch` step to
1353
+ core to help users deal with simple polymorphic use cases.
1354
+
1355
+ - [#1904](https://github.com/graphile/crystal/pull/1904)
1356
+ [`5b2db0c75`](https://github.com/graphile/crystal/commit/5b2db0c7586182523015f8f79fa4d43f98679c1e)
1357
+ Thanks [@benjie](https://github.com/benjie)! - Add pgRefDetails to scope for
1358
+ some ref-generated fields, to enable plugins to hook them.
1359
+
1360
+ - [#1920](https://github.com/graphile/crystal/pull/1920)
1361
+ [`635af159f`](https://github.com/graphile/crystal/commit/635af159fd412171030dbaee3a82b661c516a9f8)
1362
+ Thanks [@benjie](https://github.com/benjie)! - Add ability to set (and infer)
1363
+ scopes to makeExtendSchemaPlugin
1364
+
1365
+ - [#1905](https://github.com/graphile/crystal/pull/1905)
1366
+ [`184773382`](https://github.com/graphile/crystal/commit/184773382f074a3b5339e4cfabec55173cd4f1e1)
1367
+ Thanks [@benjie](https://github.com/benjie)! - Enable specifying the
1368
+ polymorphic subtype a function returns via `@returnType MyType` smart tag.
1369
+
1370
+ - [#1901](https://github.com/graphile/crystal/pull/1901)
1371
+ [`f97d7976a`](https://github.com/graphile/crystal/commit/f97d7976a683a1e2cb0fed1ce0e30aeff8cc1886)
1372
+ Thanks [@benjie](https://github.com/benjie)! - Loosens step assertion from
1373
+ Query type so it can be served from `constant(true)`.
1374
+ - Updated dependencies
1375
+ [[`555a2be03`](https://github.com/graphile/crystal/commit/555a2be037f49bd599abbaafe6e5d5ab190c96d6),
1376
+ [`1b6c2f636`](https://github.com/graphile/crystal/commit/1b6c2f6360a316a8dc550c60e28c61deea538f19),
1377
+ [`de7add402`](https://github.com/graphile/crystal/commit/de7add402bd4a45c8782fce69bf210635360cbe8),
1378
+ [`a2176ea32`](https://github.com/graphile/crystal/commit/a2176ea324db0801249661b30e9c9d314c6fb159),
1379
+ [`886833e2e`](https://github.com/graphile/crystal/commit/886833e2e319f23d905d7184ca88fca701b94044),
1380
+ [`5b2db0c75`](https://github.com/graphile/crystal/commit/5b2db0c7586182523015f8f79fa4d43f98679c1e),
1381
+ [`635af159f`](https://github.com/graphile/crystal/commit/635af159fd412171030dbaee3a82b661c516a9f8),
1382
+ [`184773382`](https://github.com/graphile/crystal/commit/184773382f074a3b5339e4cfabec55173cd4f1e1),
1383
+ [`f97d7976a`](https://github.com/graphile/crystal/commit/f97d7976a683a1e2cb0fed1ce0e30aeff8cc1886)]:
1384
+ - @dataplan/pg@0.0.1-beta.15
1385
+ - tamedevil@0.0.0-beta.4
1386
+ - grafserv@0.1.1-beta.6
1387
+ - graphile-utils@5.0.0-beta.18
1388
+ - grafast@0.1.1-beta.4
1389
+ - graphile-build-pg@5.0.0-beta.18
1390
+ - graphile-build@5.0.0-beta.14
1391
+ - @dataplan/json@0.0.1-beta.13
1392
+
1393
+ ## 5.0.0-beta.18
1394
+
1395
+ ### Patch Changes
1396
+
1397
+ - [#1892](https://github.com/graphile/crystal/pull/1892)
1398
+ [`0df5511ac`](https://github.com/graphile/crystal/commit/0df5511ac8b79ea34f8d12ebf8feeb421f8fe971)
1399
+ Thanks [@benjie](https://github.com/benjie)! - Fix plugin ordering bug that
1400
+ ignored before/after when there was no provider; this now means
1401
+ PgSmartTagsPlugin is correctly loaded before PgFakeConstraintPlugin, fixing
1402
+ the `postgraphile.tags.json5` file.
1403
+
1404
+ - [#1894](https://github.com/graphile/crystal/pull/1894)
1405
+ [`7851d89ab`](https://github.com/graphile/crystal/commit/7851d89ab4216b0252583f0068a69900fa2ddc88)
1406
+ Thanks [@benjie](https://github.com/benjie)! - Fix logic around RBAC
1407
+ permissions for tables and sequences.
1408
+
1409
+ - Updated dependencies
1410
+ [[`0df5511ac`](https://github.com/graphile/crystal/commit/0df5511ac8b79ea34f8d12ebf8feeb421f8fe971)]:
1411
+ - graphile-config@0.0.1-beta.6
1412
+ - @dataplan/pg@0.0.1-beta.14
1413
+ - grafast@0.1.1-beta.3
1414
+ - grafserv@0.1.1-beta.5
1415
+ - graphile-build@5.0.0-beta.13
1416
+ - graphile-build-pg@5.0.0-beta.17
1417
+ - graphile-utils@5.0.0-beta.17
1418
+ - @dataplan/json@0.0.1-beta.12
1419
+
1420
+ ## 5.0.0-beta.17
1421
+
1422
+ ### Patch Changes
1423
+
1424
+ - [#1884](https://github.com/graphile/crystal/pull/1884)
1425
+ [`bce0636d4`](https://github.com/graphile/crystal/commit/bce0636d424476664672166193a181c83476423a)
1426
+ Thanks [@benjie](https://github.com/benjie)! - Fixes multiple pgServices codec
1427
+ name conflicts by prepending the service name if it's not 'main'.
1428
+
1429
+ - [#1867](https://github.com/graphile/crystal/pull/1867)
1430
+ [`004889258`](https://github.com/graphile/crystal/commit/004889258e22a19ffe9a641f57e4ddd5299db9bf)
1431
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug in CLI parser where
1432
+ omitting `--watch` would force `watch: false` even if config sets
1433
+ `watch: true`.
1434
+
1435
+ - [#1817](https://github.com/graphile/crystal/pull/1817)
1436
+ [`f305c3278`](https://github.com/graphile/crystal/commit/f305c327848eb7baef46c5384a7cc5af6f79db8d)
1437
+ Thanks [@benjie](https://github.com/benjie)! - Add support for limiting
1438
+ polymorphic plans (only some of them, specifically `pgUnionAll()` right now)
1439
+ to limit the types of their results; exposed via an experimental 'only'
1440
+ argument on fields, for example
1441
+ `allApplications(only: [GcpApplication, AwsApplication])` would limit the type
1442
+ of applications returned to only be the two specified.
1443
+
1444
+ - [#1885](https://github.com/graphile/crystal/pull/1885)
1445
+ [`9e1df08b7`](https://github.com/graphile/crystal/commit/9e1df08b702ae32870a8f1324bab37f447cba868)
1446
+ Thanks [@benjie](https://github.com/benjie)! - Fix `orderBy:null` regression
1447
+
1448
+ - [#1878](https://github.com/graphile/crystal/pull/1878)
1449
+ [`e04238c0a`](https://github.com/graphile/crystal/commit/e04238c0aee46cc86ba61d6461b6636c2f9d1183)
1450
+ Thanks [@benjie](https://github.com/benjie)! - Add emulation for
1451
+ `--simple-subscriptions` to V4 preset.
1452
+
1453
+ - [#1884](https://github.com/graphile/crystal/pull/1884)
1454
+ [`c66c3527c`](https://github.com/graphile/crystal/commit/c66c3527ce2bb38afa37242ecb5a22247efd6db9)
1455
+ Thanks [@benjie](https://github.com/benjie)! - List codecs can now have names.
1456
+
1457
+ - Updated dependencies
1458
+ [[`3fdc2bce4`](https://github.com/graphile/crystal/commit/3fdc2bce42418773f808c5b8309dfb361cd95ce9),
1459
+ [`aeef362b5`](https://github.com/graphile/crystal/commit/aeef362b5744816f01e4a6f714bbd77f92332bc5),
1460
+ [`8a76db07f`](https://github.com/graphile/crystal/commit/8a76db07f4c110cecc6225504f9a05ccbcbc7b92),
1461
+ [`bce0636d4`](https://github.com/graphile/crystal/commit/bce0636d424476664672166193a181c83476423a),
1462
+ [`f305c3278`](https://github.com/graphile/crystal/commit/f305c327848eb7baef46c5384a7cc5af6f79db8d),
1463
+ [`3b558e0c1`](https://github.com/graphile/crystal/commit/3b558e0c110dd49e5d51e49a5ad6463a9ed68ecb),
1464
+ [`2ae8d33aa`](https://github.com/graphile/crystal/commit/2ae8d33aa83955649dcd6e7489604b059ed2daf4),
1465
+ [`9e1df08b7`](https://github.com/graphile/crystal/commit/9e1df08b702ae32870a8f1324bab37f447cba868),
1466
+ [`8a0cdb95f`](https://github.com/graphile/crystal/commit/8a0cdb95f200b28b0ea1ab5caa12b23dce5f374f),
1467
+ [`dbd91fdd8`](https://github.com/graphile/crystal/commit/dbd91fdd836f041b6e2ff9d358c6a6f521f43914),
1468
+ [`995e25035`](https://github.com/graphile/crystal/commit/995e250352217fdf8f036b8ed6cad3fab520817f),
1469
+ [`f1d5ad18e`](https://github.com/graphile/crystal/commit/f1d5ad18e1cd0d59b9e74f619ec6b0de57f07b17),
1470
+ [`c66c3527c`](https://github.com/graphile/crystal/commit/c66c3527ce2bb38afa37242ecb5a22247efd6db9),
1471
+ [`f66cc40b3`](https://github.com/graphile/crystal/commit/f66cc40b3bc5bf2e7f92fe5a6bd5638e2a51ac2b),
1472
+ [`f18635a5c`](https://github.com/graphile/crystal/commit/f18635a5cf55845c9534d82bb483e5fbb9ed179e),
1473
+ [`1c9f1c0ed`](https://github.com/graphile/crystal/commit/1c9f1c0edf4e621a5b6345d3a41527a18143c6ae),
1474
+ [`9fb5cc06e`](https://github.com/graphile/crystal/commit/9fb5cc06ee52165378392969172e6ee8128833f6)]:
1475
+ - grafast@0.1.1-beta.2
1476
+ - graphile-utils@5.0.0-beta.16
1477
+ - graphile-build-pg@5.0.0-beta.16
1478
+ - @dataplan/pg@0.0.1-beta.13
1479
+ - graphile-build@5.0.0-beta.12
1480
+ - graphile-config@0.0.1-beta.5
1481
+ - grafserv@0.1.1-beta.4
1482
+ - @dataplan/json@0.0.1-beta.11
1483
+
1484
+ ## 5.0.0-beta.16
1485
+
1486
+ ### Patch Changes
1487
+
1488
+ - [#1834](https://github.com/graphile/crystal/pull/1834)
1489
+ [`2e7fc6449`](https://github.com/graphile/crystal/commit/2e7fc6449c2d08c44c32985811bb2e233a04056b)
1490
+ Thanks [@benjie](https://github.com/benjie)! - Fix issue with watch mode where
1491
+ schema omits database resources in some situations.
1492
+ - Updated dependencies
1493
+ [[`9696a1b08`](https://github.com/graphile/crystal/commit/9696a1b0885442f44e3a6ca6a4909ec96a445884),
1494
+ [`49fcb0d58`](https://github.com/graphile/crystal/commit/49fcb0d585b31b291c9072c339d6f5b550eefc9f),
1495
+ [`2e7fc6449`](https://github.com/graphile/crystal/commit/2e7fc6449c2d08c44c32985811bb2e233a04056b),
1496
+ [`7aef73319`](https://github.com/graphile/crystal/commit/7aef73319a8a147c700727be62427e1eefdefbf8)]:
1497
+ - grafserv@0.1.1-beta.3
1498
+ - grafast@0.1.1-beta.1
1499
+ - graphile-build-pg@5.0.0-beta.15
1500
+ - graphile-config@0.0.1-beta.4
1501
+ - @dataplan/pg@0.0.1-beta.12
1502
+ - @dataplan/json@0.0.1-beta.10
1503
+ - graphile-build@5.0.0-beta.11
1504
+ - graphile-utils@5.0.0-beta.15
1505
+
1506
+ ## 5.0.0-beta.15
1507
+
1508
+ ### Patch Changes
1509
+
1510
+ - [#1799](https://github.com/graphile/crystal/pull/1799)
1511
+ [`3dd5d86d6`](https://github.com/graphile/crystal/commit/3dd5d86d6c1ea7ba106c08e8a315ec47ed6cfa2d)
1512
+ Thanks [@jvandermey](https://github.com/jvandermey)! - Can now pass onEdit
1513
+ callbacks through the Ruru config via the plugin system; e.g. to update the
1514
+ URL search params with the current editor state.
1515
+
1516
+ - [#1801](https://github.com/graphile/crystal/pull/1801)
1517
+ [`2d447a6b4`](https://github.com/graphile/crystal/commit/2d447a6b45d7db2813bd957f412cd959e2185759)
1518
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug where the owner of a
1519
+ database object wasn't seen as having any privileges.
1520
+ - Updated dependencies
1521
+ [[`2d447a6b4`](https://github.com/graphile/crystal/commit/2d447a6b45d7db2813bd957f412cd959e2185759)]:
1522
+ - graphile-build-pg@5.0.0-beta.14
1523
+ - graphile-utils@5.0.0-beta.14
1524
+ - grafserv@0.1.1-beta.2
1525
+ - @dataplan/pg@0.0.1-beta.11
1526
+
1527
+ ## 5.0.0-beta.14
1528
+
1529
+ ### Patch Changes
1530
+
1531
+ - [#1796](https://github.com/graphile/crystal/pull/1796)
1532
+ [`ebb0b817e`](https://github.com/graphile/crystal/commit/ebb0b817e3efe210445d3f3396ff4bc53ebab3e7)
1533
+ Thanks [@benjie](https://github.com/benjie)! - Can now set initial query and
1534
+ variables in Ruru via the plugin system; e.g. to set query/variables based on
1535
+ query string.
1536
+
1537
+ - [#1797](https://github.com/graphile/crystal/pull/1797)
1538
+ [`26e0bc726`](https://github.com/graphile/crystal/commit/26e0bc72653cd8dcef4b6cfb3c76876a5e620a12)
1539
+ Thanks [@benjie](https://github.com/benjie)! - Fix that smart tags were not
1540
+ copied onto enum codecs.
1541
+
1542
+ - Updated dependencies
1543
+ [[`781a89758`](https://github.com/graphile/crystal/commit/781a89758fff2712f0080d8fafb4048da189b782),
1544
+ [`a38e650d6`](https://github.com/graphile/crystal/commit/a38e650d67d6c7ff0cf5b853377622090ede3a50),
1545
+ [`26e0bc726`](https://github.com/graphile/crystal/commit/26e0bc72653cd8dcef4b6cfb3c76876a5e620a12)]:
1546
+ - grafserv@0.1.1-beta.1
1547
+ - graphile-build-pg@5.0.0-beta.13
1548
+ - @dataplan/pg@0.0.1-beta.11
1549
+ - graphile-utils@5.0.0-beta.13
1550
+
1551
+ ## 5.0.0-beta.13
1552
+
1553
+ ### Patch Changes
1554
+
1555
+ - Updated dependencies
1556
+ [[`2805edc68`](https://github.com/graphile/crystal/commit/2805edc68b90546bf71ffd293af4d87a79345825)]:
1557
+ - pg-sql2@5.0.0-beta.4
1558
+ - @dataplan/pg@0.0.1-beta.10
1559
+ - grafast@0.1.1-beta.0
1560
+ - graphile-build-pg@5.0.0-beta.12
1561
+ - graphile-utils@5.0.0-beta.12
1562
+
1563
+ ## 5.0.0-beta.12
1564
+
1565
+ ### Patch Changes
1566
+
1567
+ - [#1779](https://github.com/graphile/crystal/pull/1779)
1568
+ [`4a4d26d87`](https://github.com/graphile/crystal/commit/4a4d26d87ce74589429b8ca5126a7bfdf30351b8)
1569
+ Thanks [@benjie](https://github.com/benjie)! - Fix a polymorphic planning
1570
+ issue.
1571
+
1572
+ - [#1778](https://github.com/graphile/crystal/pull/1778)
1573
+ [`b2bce88da`](https://github.com/graphile/crystal/commit/b2bce88da26c7a8965468be16fc2d935eadd3434)
1574
+ Thanks [@benjie](https://github.com/benjie)! - Enable source maps in modules
1575
+ where it was disabled.
1576
+
1577
+ - [#1780](https://github.com/graphile/crystal/pull/1780)
1578
+ [`861a8a306`](https://github.com/graphile/crystal/commit/861a8a306ef42a821da19e77903ddd7e8130bfb3)
1579
+ Thanks [@benjie](https://github.com/benjie)! - Fix an issue with side effect
1580
+ plans and polymorphism
1581
+
1582
+ - [#1770](https://github.com/graphile/crystal/pull/1770)
1583
+ [`9a84bc6dd`](https://github.com/graphile/crystal/commit/9a84bc6dd5b33c1919f75f867df1f61c78686695)
1584
+ Thanks [@benjie](https://github.com/benjie)! - Fix issues around enum tables:
1585
+ indicate when an enum table codec replaces a regular attribute codec, expose
1586
+ helpers for working with enum tables, and don't exclude enum table references
1587
+ when using the Relay preset.
1588
+
1589
+ - [#1774](https://github.com/graphile/crystal/pull/1774)
1590
+ [`7d55d2c34`](https://github.com/graphile/crystal/commit/7d55d2c343880d7e665f9743f6ae7e39343c22cc)
1591
+ Thanks [@benjie](https://github.com/benjie)! - Add
1592
+ `preset.gather.pgIdentifiers` setting (values: 'qualified' or 'unqualified');
1593
+ if set to 'unqualified' then we will not add the schema name to table or
1594
+ function identifiers - it's up to you to ensure they're present in the
1595
+ `search_path` (which you can set via `pgSettings` on a per-request basis).
1596
+ - Updated dependencies
1597
+ [[`eeccfd675`](https://github.com/graphile/crystal/commit/eeccfd67585a79330197886fdc98335562e08c0a),
1598
+ [`4a4d26d87`](https://github.com/graphile/crystal/commit/4a4d26d87ce74589429b8ca5126a7bfdf30351b8),
1599
+ [`b2bce88da`](https://github.com/graphile/crystal/commit/b2bce88da26c7a8965468be16fc2d935eadd3434),
1600
+ [`861a8a306`](https://github.com/graphile/crystal/commit/861a8a306ef42a821da19e77903ddd7e8130bfb3),
1601
+ [`9a84bc6dd`](https://github.com/graphile/crystal/commit/9a84bc6dd5b33c1919f75f867df1f61c78686695),
1602
+ [`b728d7fb9`](https://github.com/graphile/crystal/commit/b728d7fb91eb29fbb21d955af5fd9cb4278f6222),
1603
+ [`264158f03`](https://github.com/graphile/crystal/commit/264158f034e7b6ebc1a9a94d92b7e4fb746c5fac),
1604
+ [`2d31f058b`](https://github.com/graphile/crystal/commit/2d31f058b34d3f5ef11699582b9a4960a4ebc471),
1605
+ [`7d55d2c34`](https://github.com/graphile/crystal/commit/7d55d2c343880d7e665f9743f6ae7e39343c22cc)]:
1606
+ - graphile-utils@5.0.0-beta.11
1607
+ - grafast@0.1.1-beta.0
1608
+ - @dataplan/json@0.0.1-beta.9
1609
+ - @dataplan/pg@0.0.1-beta.9
1610
+ - graphile-build-pg@5.0.0-beta.11
1611
+ - graphile-build@5.0.0-beta.10
1612
+ - grafserv@0.1.1-beta.0
1613
+
1614
+ ## 5.0.0-beta.11
1615
+
1616
+ ### Patch Changes
1617
+
1618
+ - [#514](https://github.com/graphile/crystal-pre-merge/pull/514)
1619
+ [`c9848f693`](https://github.com/graphile/crystal-pre-merge/commit/c9848f6936a5abd7740c0638bfb458fb5551f03b)
1620
+ Thanks [@benjie](https://github.com/benjie)! - Update package.json repository
1621
+ information
1622
+
1623
+ - Updated dependencies
1624
+ [[`c9848f693`](https://github.com/graphile/crystal-pre-merge/commit/c9848f6936a5abd7740c0638bfb458fb5551f03b),
1625
+ [`ede1092fe`](https://github.com/graphile/crystal-pre-merge/commit/ede1092fe197719b6fa786f4cfa75f6a1f4c56c1),
1626
+ [`566983fbd`](https://github.com/graphile/crystal-pre-merge/commit/566983fbd99c4b2df8c4ebd6260521670a2b7dfc),
1627
+ [`409bf6071`](https://github.com/graphile/crystal-pre-merge/commit/409bf607180d4d8faec658c803e5ec4d1a00c451)]:
1628
+ - graphile-build-pg@5.0.0-beta.10
1629
+ - graphile-build@5.0.0-beta.9
1630
+ - graphile-utils@5.0.0-beta.10
1631
+ - @dataplan/json@0.0.1-beta.8
1632
+ - graphile-config@0.0.1-beta.3
1633
+ - @dataplan/pg@0.0.1-beta.8
1634
+ - grafserv@0.0.1-beta.9
1635
+ - grafast@0.0.1-beta.8
1636
+ - tamedevil@0.0.0-beta.3
1637
+ - pg-sql2@5.0.0-beta.3
1638
+ - @graphile/lru@5.0.0-beta.3
1639
+
1640
+ ## 5.0.0-beta.10
1641
+
1642
+ ### Patch Changes
1643
+
1644
+ - Updated dependencies []:
1645
+ - grafserv@0.0.1-beta.8
1646
+ - graphile-build-pg@5.0.0-beta.9
1647
+ - @dataplan/pg@0.0.1-beta.7
1648
+ - graphile-utils@5.0.0-beta.9
1649
+
1650
+ ## 5.0.0-beta.9
1651
+
1652
+ ### Patch Changes
1653
+
1654
+ - Updated dependencies
1655
+ [[`3700e204f`](https://github.com/benjie/crystal/commit/3700e204f430db182c92ca7abc82017c81fa1f9b)]:
1656
+ - grafast@0.0.1-beta.7
1657
+ - @dataplan/json@0.0.1-beta.7
1658
+ - @dataplan/pg@0.0.1-beta.7
1659
+ - grafserv@0.0.1-beta.7
1660
+ - graphile-build@5.0.0-beta.8
1661
+ - graphile-build-pg@5.0.0-beta.9
1662
+ - graphile-utils@5.0.0-beta.9
1663
+
1664
+ ## 5.0.0-beta.8
1665
+
1666
+ ### Patch Changes
1667
+
1668
+ - [#496](https://github.com/benjie/crystal/pull/496)
1669
+ [`ac092e021`](https://github.com/benjie/crystal/commit/ac092e0217d1385967dcdf39c9c1a390ebf6add8)
1670
+ Thanks [@benjie](https://github.com/benjie)! - PostGraphile no longer exports
1671
+ `GraphileBuild` nor `GraphileConfig` - these are global namespaces.
1672
+
1673
+ - [#496](https://github.com/benjie/crystal/pull/496)
1674
+ [`c9bfd9892`](https://github.com/benjie/crystal/commit/c9bfd989247f9433fb5b18c5175c9d8d64cd21a1)
1675
+ Thanks [@benjie](https://github.com/benjie)! - Update dependencies (sometimes
1676
+ through major versions).
1677
+
1678
+ - Updated dependencies
1679
+ [[`c9bfd9892`](https://github.com/benjie/crystal/commit/c9bfd989247f9433fb5b18c5175c9d8d64cd21a1),
1680
+ [`e613b476d`](https://github.com/benjie/crystal/commit/e613b476d6ee867d1f7509c895dabee40e7f9a31)]:
1681
+ - graphile-build-pg@5.0.0-beta.8
1682
+ - graphile-build@5.0.0-beta.7
1683
+ - graphile-utils@5.0.0-beta.8
1684
+ - @dataplan/json@0.0.1-beta.6
1685
+ - graphile-config@0.0.1-beta.2
1686
+ - @dataplan/pg@0.0.1-beta.6
1687
+ - grafserv@0.0.1-beta.6
1688
+ - grafast@0.0.1-beta.6
1689
+ - tamedevil@0.0.0-beta.2
1690
+ - pg-sql2@5.0.0-beta.2
1691
+ - @graphile/lru@5.0.0-beta.2
1692
+
1693
+ ## 5.0.0-beta.7
1694
+
1695
+ ### Patch Changes
1696
+
1697
+ - [#488](https://github.com/benjie/crystal/pull/488)
1698
+ [`e916b7412`](https://github.com/benjie/crystal/commit/e916b7412fc1fbbcb1578dbe07684189c2a720ad)
1699
+ Thanks [@benjie](https://github.com/benjie)! - Fix issues with polymorphism
1700
+ when interacting with nodeIds, particularly in mutations and SQL functions.
1701
+ - Updated dependencies
1702
+ [[`95e902f54`](https://github.com/benjie/crystal/commit/95e902f5403c16895e874692f7650293d77590dd),
1703
+ [`53186213a`](https://github.com/benjie/crystal/commit/53186213ade962f4b66cb0d5ea8b57b5ce7ea85f),
1704
+ [`e916b7412`](https://github.com/benjie/crystal/commit/e916b7412fc1fbbcb1578dbe07684189c2a720ad),
1705
+ [`73f1b5218`](https://github.com/benjie/crystal/commit/73f1b52187b2e009d502afa1db8a4e8f702e2958),
1706
+ [`109c8ec67`](https://github.com/benjie/crystal/commit/109c8ec6784dc74f4c4c4c43cc61516cc12401c8)]:
1707
+ - @dataplan/pg@0.0.1-beta.5
1708
+ - grafast@0.0.1-beta.5
1709
+ - graphile-build-pg@5.0.0-beta.7
1710
+ - graphile-build@5.0.0-beta.6
1711
+ - grafserv@0.0.1-beta.5
1712
+ - @dataplan/json@0.0.1-beta.5
1713
+ - graphile-utils@5.0.0-beta.7
1714
+
1715
+ ## 5.0.0-beta.6
1716
+
1717
+ ### Patch Changes
1718
+
1719
+ - [#462](https://github.com/benjie/crystal/pull/462)
1720
+ [`53f0488b1`](https://github.com/benjie/crystal/commit/53f0488b1c060fe9f5dfcd67ad5c0bd932a4b7aa)
1721
+ Thanks [@benjie](https://github.com/benjie)! - Allow 'null' to be passed to
1722
+ `withPgClient`/`withPgClientTransaction`
1723
+
1724
+ - [#460](https://github.com/benjie/crystal/pull/460)
1725
+ [`07883a1a5`](https://github.com/benjie/crystal/commit/07883a1a5eac63bdc0541d6a2b562fc97342c439)
1726
+ Thanks [@benjie](https://github.com/benjie)! - Fix makeExtendSchemaPlugin: now
1727
+ calls callback in 'init' phase, so `Build` type is used (rather than
1728
+ `Partial<Build>`) and other types/handlers/etc should already be registered.
1729
+
1730
+ - [#463](https://github.com/benjie/crystal/pull/463)
1731
+ [`22fa6230a`](https://github.com/benjie/crystal/commit/22fa6230aa7c7271e5360e619ec9e1f52c6ea49c)
1732
+ Thanks [@benjie](https://github.com/benjie)! - Add experimental support for h3
1733
+ server to grafserv.
1734
+
1735
+ - [#459](https://github.com/benjie/crystal/pull/459)
1736
+ [`d17dd1cd4`](https://github.com/benjie/crystal/commit/d17dd1cd47d6cb125fbc84c38a8c004857e1bdd2)
1737
+ Thanks [@benjie](https://github.com/benjie)! - Disable mutations for
1738
+ `@interface mode:relational` tables. (They shouldn't have been enabled, and
1739
+ they don't work yet.)
1740
+
1741
+ - [#464](https://github.com/benjie/crystal/pull/464)
1742
+ [`00d026409`](https://github.com/benjie/crystal/commit/00d0264090f90914eac881b34918fa3370782adc)
1743
+ Thanks [@benjie](https://github.com/benjie)! - `@dataplan/pg/adaptors/pg` now
1744
+ adds `rawClient` property which is the underlying Postgres client for use with
1745
+ `pgTyped`, `zapatos`, and other libraries that can use a raw postgres client.
1746
+ This is exposed via `NodePostgresPgClient` interface which is a subtype of
1747
+ `PgClient`.
1748
+ - Updated dependencies
1749
+ [[`53f0488b1`](https://github.com/benjie/crystal/commit/53f0488b1c060fe9f5dfcd67ad5c0bd932a4b7aa),
1750
+ [`f9cc88dc4`](https://github.com/benjie/crystal/commit/f9cc88dc442d371aee154a28d4e63c6da39f6b2e),
1751
+ [`07883a1a5`](https://github.com/benjie/crystal/commit/07883a1a5eac63bdc0541d6a2b562fc97342c439),
1752
+ [`22fa6230a`](https://github.com/benjie/crystal/commit/22fa6230aa7c7271e5360e619ec9e1f52c6ea49c),
1753
+ [`d17dd1cd4`](https://github.com/benjie/crystal/commit/d17dd1cd47d6cb125fbc84c38a8c004857e1bdd2),
1754
+ [`fa8cfcf9b`](https://github.com/benjie/crystal/commit/fa8cfcf9b4ce0c3e12511f3f6392051924a719e5),
1755
+ [`00d026409`](https://github.com/benjie/crystal/commit/00d0264090f90914eac881b34918fa3370782adc)]:
1756
+ - @dataplan/pg@0.0.1-beta.4
1757
+ - grafast@0.0.1-beta.4
1758
+ - graphile-utils@5.0.0-beta.6
1759
+ - grafserv@0.0.1-beta.4
1760
+ - graphile-build-pg@5.0.0-beta.6
1761
+ - @dataplan/json@0.0.1-beta.4
1762
+ - graphile-build@5.0.0-beta.5
1763
+
1764
+ ## 5.0.0-beta.5
1765
+
1766
+ ### Patch Changes
1767
+
1768
+ - Updated dependencies
1769
+ [[`22ecd1e5d`](https://github.com/benjie/crystal/commit/22ecd1e5de1dcd094be3085cba56b705446413f9)]:
1770
+ - graphile-build-pg@5.0.0-beta.5
1771
+ - graphile-utils@5.0.0-beta.5
1772
+
3
1773
  ## 5.0.0-beta.4
4
1774
 
5
1775
  ### Patch Changes