postgraphile 5.0.0-beta.4 → 5.0.0-beta.40

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