What's New
A major milestone in the path to a General Availability status for Keystone 6, this release includes:
- A new and improved GraphQL API 🎉 ✨
- Enhancements to Custom Admin UI Pages
- Better deletion notifications
- And more…
⚠️ This release contains breaking changes, please see below!
"@keystone-ui/notice": "4.0.1",
"@keystone-ui/segmented-control": "4.0.2",
"@keystone-ui/toast": "4.0.2",
"@keystone-next/admin-ui-utils": "5.0.6",
"@keystone-next/auth": "31.0.0",
"@keystone-next/cloudinary": "6.0.6",
"@keystone-next/fields": "14.0.0",
"@keystone-next/fields-document": "8.0.0",
"@keystone-next/keystone": "24.0.0",
"@keystone-next/testing": "1.1.1",
"@keystone-next/types": "24.0.0",
"@keystone-next/utils": "1.0.4",A new & improved GraphQL API ✨
We’ve made the experience of working with Keystone’s GraphQL API easier to program and reason about:
- Queries: the names of top-level queries are now easier to understand. We also removed deprecated and unused legacy features.
- Filters: the arguments used in queries have been updated to accept a filter object for each field, rather than having all the filter options available at the top level.
- Mutations: all generated CRUD mutations have the same names and return types, but their inputs have changed.
- Input Types: we’ve updated the input types used for relationship fields in
updateandcreateoperations, removing obsolete options and making the syntax between the two operations easier to differentiate.
Upgrade guidance
We've written a complete guide to the improvements we've made, and it includes a checklist of the steps you need to take to upgrade your Keystone projects. Be sure to check it out!
💡 While there are a lot of changes to this API, if you approach the upgrade process systematically your experience should be pretty smooth. If you get stuck or have questions, reach out to us in the Keystone community slack to get the help you need.
Custom Admin UI Pages 📃
Our Custom Admin UI Pages guide has been expanded, with an example to make your custom pages look more like the Admin UI, as well as adding links to your custom pages from the Admin UI Navigation!
Improved Deletion Notifications 🗑
When items are deleted via the Admin UI, we now display all the items that were successfully deleted, and any that failed, instead of displaying multiple notifications without any context.
Deeper GraphQL Errors 🚧
A config.graphql.debug option has been added, which can be used to control whether debug information such as stack traces are included in the errors returned by the GraphQL API.
Prisma Update ⬆️
Updated Prisma dependencies from 2.27.0 to 2.29.0, check out the Prisma releases page for more details.
Credits 💫
Added option for Bearer token auth when using session, thanks to @gautamsi!
Enjoying Keystone?
Star this repo 🌟 ☝️ or connect to Keystone on Twitter and in Slack.
#6211 If you have a list called #6310 Updated dependencies [ #6280 #6196 #6266 #6196 #6095 #6196 #6217 If you have a list called #6224 If you have a list called #6211 If you have a list called #6237 #6197 If you have a list called Also, the input type used in the Updated dependencies [ #6095 #6250 #6318 #6207 #6197 If you have a list called Also, the input type used in the Updated dependencies [ #6196 #6196 #6266 #6208 If you have a list called #6196 #6095 #6198 #6196 #6312 #6217 If you have a list called #6224 If you have a list called #6197 If you have a list called Also, the input type used in the #6211 If you have a list called #6206 If you have a list called #6276 #6267 #6317 #6250 #6334 #6219 #6269 #6218 #6316 #6310 #6292 #6263 #6259 #6239 #6248 #6203 #6296 #6200 Updated dependencies [ #6196 #6196 #6266 #6208 If you have a list called #6196 #6095 #6196 #6312 #6217 If you have a list called #6224 If you have a list called #6197 If you have a list called Also, the input type used in the #6211 If you have a list called #6206 If you have a list called #6249 Updated dependencies [ #6264 Updated dependencies [ #6310 Updated dependencies [ #6310 Updated dependencies [ #6250 #6310 Updated dependencies [ #6310 Updated dependencies [ #6310 Updated dependencies [View verbose release notes
Releases
@keystone-next/auth@31.0.0
Major Changes
d214e2f72 Thanks @mitchellhamilton! - The update mutations now accept where unique inputs instead of only an id and the where and data arguments are non-null.
Item, the update mutations now look like this:
type Mutation {
updateItem(where: ItemWhereUniqueInput!, data: ItemUpdateInput!): Item
updateItems(data: [ItemUpdateArgs!]!): [Item]
}
input ItemUpdateArgs {
where: ItemWhereUniqueInput!
data: ItemUpdateInput!
}
Patch Changes
399561b27 Thanks @timleslie! - Updated dependencies to use mergeSchemas from @graphql-tools/schema, rather than its old location in @graphql-tools/merge. You might see a reordering of the contents of your graphql.schema file.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, c2bb6a9a5, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/fields@14.0.0
Major Changes
e9f3c42d5 Thanks @mitchellhamilton! - Removed gqlType option to autoIncrement field type. The field type will now always be represented with an Int in GraphQL
5cd8ffd6c Thanks @mitchellhamilton! - Removed _ListKeyMeta and _toManyRelationshipFieldMeta fields. You should use listKeyCount and toManyRelationshipFieldCount instead
b696a9579 Thanks @mitchellhamilton! - Renamed first argument in find many queries to take to align with Prisma.
type Query {
users(
where: UserWhereInput! = {}
orderBy: [UserOrderByInput!]! = []
# previously was first: Int
take: Int
skip: Int! = 0
): [User!]
# ...
}
type User {
# ...
posts(
where: PostWhereInput! = {}
orderBy: [PostOrderByInput!]! = []
# previously was first: Int
take: Int
skip: Int! = 0
): [Post!]
# ...
}
5cd8ffd6c Thanks @mitchellhamilton! - Removed search argument from the GraphQL API for finding many items, Lists/DB API and to-many relationship fields. You should use contains filters instead.
272b97b3a Thanks @mitchellhamilton! - Updated filters to be nested instead of flattened and add top-level NOT operator. See the Query Filter API docs and the upgrade guide for more information.
query {
posts(where: { title: { contains: "Something" } }) {
title
content
}
}
5cd8ffd6c Thanks @mitchellhamilton! - Removed sortBy argument from the GraphQL API for finding many items, Lists/DB API and to-many relationship fields. You should use orderBy instead.
874f2c405 Thanks @mitchellhamilton! - disconnectAll has been renamed to disconnect in to-one relationship inputs and the old disconnect field has been removed. There are also seperate input types for create and update where the input for create doesn't have disconnect. It's also now required that if you provide a to-one relationship input, you must provide exactly one field to the input.
Item, the to-one relationship inputs now look like this:
input ItemRelateToOneForCreateInput {
create: ItemCreateInput
connect: ItemWhereUniqueInput
}
input ItemRelateToOneForUpdateInput {
create: ItemCreateInput
connect: ItemWhereUniqueInput
disconnect: Boolean
}
3564b342d Thanks @mitchellhamilton! - disconnectAll has been replaced by set in to-many relationship inputs, the equivalent to disconnectAll: true is now set: []. There are also seperate input types for create and update where the input for create doesn't have disconnect or set. The inputs in the lists in the input field are now also non-null.
Item, the to-many relationship inputs now look like this:
input ItemRelateToManyForCreateInput {
create: [ItemCreateInput!]
connect: [ItemWhereUniqueInput!]
}
input ItemRelateToManyForUpdateInput {
disconnect: [ItemWhereUniqueInput!]
set: [ItemWhereUniqueInput!]
create: [ItemCreateInput!]
connect: [ItemWhereUniqueInput!]
}
d214e2f72 Thanks @mitchellhamilton! - The update mutations now accept where unique inputs instead of only an id and the where and data arguments are non-null.
Item, the update mutations now look like this:
type Mutation {
updateItem(where: ItemWhereUniqueInput!, data: ItemUpdateInput!): Item
updateItems(data: [ItemUpdateArgs!]!): [Item]
}
input ItemUpdateArgs {
where: ItemWhereUniqueInput!
data: ItemUpdateInput!
}
Patch Changes
4f4f0351a Thanks @gwyneplaine! - Updated timestamp field to default time to 00:00 when no time is selected.
4d9f89f88 Thanks @mitchellhamilton! - The generated CRUD queries, and some of the input types, in the GraphQL API have been renamed.
Item, the query for multiple values, allItems will be renamed to items. The query for a single value, Item, will be renamed to item.
updateItems mutation has been renamed from ItemsUpdateInput to ItemUpdateArgs.
5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, c2bb6a9a5, 6da56b80e, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 6cd7ab78e, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/fields-document@8.0.0
Major Changes
272b97b3a Thanks @mitchellhamilton! - Updated filters to be nested instead of flattened and add top-level NOT operator. See the Query Filter API docs and the upgrade guide for more information.
query {
posts(where: { title: { contains: "Something" } }) {
title
content
}
}
Patch Changes
a92169d04 Thanks @timleslie! - Updated internal type definitions.
e985aa010 Thanks @raveling! - Updated the document editor's expanded view so that you can click on any of the empty space below the content to focus the editor
69f47bfed Thanks @timleslie! - Suppressed error logging during tests.
4d9f89f88 Thanks @mitchellhamilton! - The generated CRUD queries, and some of the input types, in the GraphQL API have been renamed.
Item, the query for multiple values, allItems will be renamed to items. The query for a single value, Item, will be renamed to item.
updateItems mutation has been renamed from ItemsUpdateInput to ItemUpdateArgs.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/keystone@24.0.0
Major Changes
5cd8ffd6c Thanks @mitchellhamilton! - Removed _ListKeyMeta and _toManyRelationshipFieldMeta fields. You should use listKeyCount and toManyRelationshipFieldCount instead
5cd8ffd6c Thanks @mitchellhamilton! - Removed all arguments from context.lists.List.count and context.db.lists.List.count except for where.
b696a9579 Thanks @mitchellhamilton! - Renamed first argument in find many queries to take to align with Prisma.
type Query {
users(
where: UserWhereInput! = {}
orderBy: [UserOrderByInput!]! = []
# previously was first: Int
take: Int
skip: Int! = 0
): [User!]
# ...
}
type User {
# ...
posts(
where: PostWhereInput! = {}
orderBy: [PostOrderByInput!]! = []
# previously was first: Int
take: Int
skip: Int! = 0
): [Post!]
# ...
}
092df6678 Thanks @mitchellhamilton! - The create one mutation now requires a non-null data argument and the create many mutation accepts a list of ItemCreateInput directly instead of being nested inside of an object with the ItemCreateInput in a data field.
Item, createItem now looks like createItem(data: ItemCreateInput!): Item and createItems now looks like createItems(data: [ItemCreateInput!]!): [Item].
5cd8ffd6c Thanks @mitchellhamilton! - Removed search argument from the GraphQL API for finding many items, Lists/DB API and to-many relationship fields. You should use contains filters instead.
272b97b3a Thanks @mitchellhamilton! - Updated filters to be nested instead of flattened and add top-level NOT operator. See the Query Filter API docs and the upgrade guide for more information.
query {
posts(where: { title: { contains: "Something" } }) {
title
content
}
}
9d361c1c8 Thanks @timleslie! - Removed the uid and name properties from the errors returned by the GraphQL API.
5cd8ffd6c Thanks @mitchellhamilton! - Removed sortBy argument from the GraphQL API for finding many items, Lists/DB API and to-many relationship fields. You should use orderBy instead.
56044e2a4 Thanks @mitchellhamilton! - Updated @graphql-ts/schema. The second type parameter of schema.Arg exported from @keystone-next/types is now a boolean that defines whether or not the arg has a default value to make it easier to define circular input objects.
874f2c405 Thanks @mitchellhamilton! - disconnectAll has been renamed to disconnect in to-one relationship inputs and the old disconnect field has been removed. There are also seperate input types for create and update where the input for create doesn't have disconnect. It's also now required that if you provide a to-one relationship input, you must provide exactly one field to the input.
Item, the to-one relationship inputs now look like this:
input ItemRelateToOneForCreateInput {
create: ItemCreateInput
connect: ItemWhereUniqueInput
}
input ItemRelateToOneForUpdateInput {
create: ItemCreateInput
connect: ItemWhereUniqueInput
disconnect: Boolean
}
3564b342d Thanks @mitchellhamilton! - disconnectAll has been replaced by set in to-many relationship inputs, the equivalent to disconnectAll: true is now set: []. There are also seperate input types for create and update where the input for create doesn't have disconnect or set. The inputs in the lists in the input field are now also non-null.
Item, the to-many relationship inputs now look like this:
input ItemRelateToManyForCreateInput {
create: [ItemCreateInput!]
connect: [ItemWhereUniqueInput!]
}
input ItemRelateToManyForUpdateInput {
disconnect: [ItemWhereUniqueInput!]
set: [ItemWhereUniqueInput!]
create: [ItemCreateInput!]
connect: [ItemWhereUniqueInput!]
}
4d9f89f88 Thanks @mitchellhamilton! - The generated CRUD queries, and some of the input types, in the GraphQL API have been renamed.
Item, the query for multiple values, allItems will be renamed to items. The query for a single value, Item, will be renamed to item.
updateItems mutation has been renamed from ItemsUpdateInput to ItemUpdateArgs.
d214e2f72 Thanks @mitchellhamilton! - The update mutations now accept where unique inputs instead of only an id and the where and data arguments are non-null.
Item, the update mutations now look like this:
type Mutation {
updateItem(where: ItemWhereUniqueInput!, data: ItemUpdateInput!): Item
updateItems(data: [ItemUpdateArgs!]!): [Item]
}
input ItemUpdateArgs {
where: ItemWhereUniqueInput!
data: ItemUpdateInput!
}
f5e64af37 Thanks @mitchellhamilton! - The delete mutations now accept where unique inputs instead of only an id.
Item, deleteItem now looks like deleteItem(where: ItemWhereUniqueInput!): Item and deleteItems now looks like deleteItems(where: [ItemWhereUniqueInput!]!): [Item]
Minor Changes
3a7a06b2c Thanks @gautamsi! - Added option for Bearer token auth when using session.
1030296d1 Thanks @timleslie! - Added config.graphql.debug option, which can be used to control whether debug information such as stack traces are included in the errors returned by the GraphQL API.
Patch Changes
1cbcf54cb Thanks @timleslie! - Separated the resolving of non-relationship field from relationship fields in create/update inputs to allow for better error handling.
a92169d04 Thanks @timleslie! - Updated internal type definitions.
f3014a627 Thanks @gwyneplaine! - Resolved bug with visually hidden elements in ListView checkboxes expanding to fill the whole body on click of elements near the bottom of the screen.
6da56b80e Thanks @timleslie! - Removed unused code path in Admin UI error display.
697efa354 Thanks @gwyneplaine! - Added ignoreBuildErrors flag to next-config.js file, to negate false positive errors in keystone builds with imported components.
c7e331d90 Thanks @timleslie! - Added more details to validation failure error messages.
78dac764e Thanks @timleslie! - Updated handling of errors in resolveInput hooks to provide developers with appropriate debug information.
399561b27 Thanks @timleslie! - Updated dependencies to use mergeSchemas from @graphql-tools/schema, rather than its old location in @graphql-tools/merge. You might see a reordering of the contents of your graphql.schema file.
0dcb1c95b Thanks @renovate! - Updated Prisma dependencies to 2.29.1.
94435ffee Thanks @timleslie! - Made the original stacktraces for before/after hooks available on error.extension.errors.
f46fd32b7 Thanks @gwyneplaine! - Bumped @apollo/client dependency to ^3.4.5, the update resolves the following useQuery issue.
8ea4eed55 Thanks @timleslie! - Added more details to before/after change/delete hook error messages.
e3fe6498d Thanks @timleslie! - Removed unused dependency @graphql-tools/schema.
8b2d179b2 Thanks @renovate! - Updated Prisma dependencies to 2.28.0.
e3fefafcc Thanks @gwyneplaine! - Fixed delete success notifications in the Admin UI appearing on failed deletes in List view and Item view.
686c0f1c4 Thanks @timleslie! - Updated internal error handling to use the apollo-server-errors package instead of apollo-errors.
e9f3c42d5, 5cd8ffd6c, 5cd8ffd6c, b696a9579, 092df6678, 5cd8ffd6c, c2bb6a9a5, 4f4f0351a, 272b97b3a, 5cd8ffd6c, 56044e2a4, 874f2c405, 1030296d1, 3564b342d, 4d9f89f88, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/types@24.0.0
Major Changes
5cd8ffd6c Thanks @mitchellhamilton! - Removed _ListKeyMeta and _toManyRelationshipFieldMeta fields. You should use listKeyCount and toManyRelationshipFieldCount instead
5cd8ffd6c Thanks @mitchellhamilton! - Removed all arguments from context.lists.List.count and context.db.lists.List.count except for where.
b696a9579 Thanks @mitchellhamilton! - Renamed first argument in find many queries to take to align with Prisma.
type Query {
users(
where: UserWhereInput! = {}
orderBy: [UserOrderByInput!]! = []
# previously was first: Int
take: Int
skip: Int! = 0
): [User!]
# ...
}
type User {
# ...
posts(
where: PostWhereInput! = {}
orderBy: [PostOrderByInput!]! = []
# previously was first: Int
take: Int
skip: Int! = 0
): [Post!]
# ...
}
092df6678 Thanks @mitchellhamilton! - The create one mutation now requires a non-null data argument and the create many mutation accepts a list of ItemCreateInput directly instead of being nested inside of an object with the ItemCreateInput in a data field.
Item, createItem now looks like createItem(data: ItemCreateInput!): Item and createItems now looks like createItems(data: [ItemCreateInput!]!): [Item].
5cd8ffd6c Thanks @mitchellhamilton! - Removed search argument from the GraphQL API for finding many items, Lists/DB API and to-many relationship fields. You should use contains filters instead.
272b97b3a Thanks @mitchellhamilton! - Updated filters to be nested instead of flattened and add top-level NOT operator. See the Query Filter API docs and the upgrade guide for more information.
query {
posts(where: { title: { contains: "Something" } }) {
title
content
}
}
5cd8ffd6c Thanks @mitchellhamilton! - Removed sortBy argument from the GraphQL API for finding many items, Lists/DB API and to-many relationship fields. You should use orderBy instead.
56044e2a4 Thanks @mitchellhamilton! - Updated @graphql-ts/schema. The second type parameter of schema.Arg exported from @keystone-next/types is now a boolean that defines whether or not the arg has a default value to make it easier to define circular input objects.
874f2c405 Thanks @mitchellhamilton! - disconnectAll has been renamed to disconnect in to-one relationship inputs and the old disconnect field has been removed. There are also seperate input types for create and update where the input for create doesn't have disconnect. It's also now required that if you provide a to-one relationship input, you must provide exactly one field to the input.
Item, the to-one relationship inputs now look like this:
input ItemRelateToOneForCreateInput {
create: ItemCreateInput
connect: ItemWhereUniqueInput
}
input ItemRelateToOneForUpdateInput {
create: ItemCreateInput
connect: ItemWhereUniqueInput
disconnect: Boolean
}
3564b342d Thanks @mitchellhamilton! - disconnectAll has been replaced by set in to-many relationship inputs, the equivalent to disconnectAll: true is now set: []. There are also seperate input types for create and update where the input for create doesn't have disconnect or set. The inputs in the lists in the input field are now also non-null.
Item, the to-many relationship inputs now look like this:
input ItemRelateToManyForCreateInput {
create: [ItemCreateInput!]
connect: [ItemWhereUniqueInput!]
}
input ItemRelateToManyForUpdateInput {
disconnect: [ItemWhereUniqueInput!]
set: [ItemWhereUniqueInput!]
create: [ItemCreateInput!]
connect: [ItemWhereUniqueInput!]
}
4d9f89f88 Thanks @mitchellhamilton! - The generated CRUD queries, and some of the input types, in the GraphQL API have been renamed.
Item, the query for multiple values, allItems will be renamed to items. The query for a single value, Item, will be renamed to item.
updateItems mutation has been renamed from ItemsUpdateInput to ItemUpdateArgs.
d214e2f72 Thanks @mitchellhamilton! - The update mutations now accept where unique inputs instead of only an id and the where and data arguments are non-null.
Item, the update mutations now look like this:
type Mutation {
updateItem(where: ItemWhereUniqueInput!, data: ItemUpdateInput!): Item
updateItems(data: [ItemUpdateArgs!]!): [Item]
}
input ItemUpdateArgs {
where: ItemWhereUniqueInput!
data: ItemUpdateInput!
}
f5e64af37 Thanks @mitchellhamilton! - The delete mutations now accept where unique inputs instead of only an id.
Item, deleteItem now looks like deleteItem(where: ItemWhereUniqueInput!): Item and deleteItems now looks like deleteItems(where: [ItemWhereUniqueInput!]!): [Item]
Minor Changes
1030296d1 Thanks @timleslie! - Added config.graphql.debug option, which can be used to control whether debug information such as stack traces are included in the errors returned by the GraphQL API.
Patch Changes
8187ea019 Thanks @timleslie! - Updated types to allow the 'id' field in ui.labelField, ui.listView.initialColumns, and ui.listView.initialSort.
e9f3c42d5, 5cd8ffd6c, b696a9579, 5cd8ffd6c, 4f4f0351a, 272b97b3a, 5cd8ffd6c, 874f2c405, 3564b342d, 4d9f89f88, d214e2f72]:
@keystone-ui/notice@4.0.1
Patch Changes
c2bb6a9a5 Thanks @timleslie! - Updated css to preserve whitespace formatting of error messages.
@keystone-ui/segmented-control@4.0.2
Patch Changes
6cd7ab78e Thanks @gwyneplaine! - Fixed segmented-control focus style.
@keystone-ui/toast@4.0.2
Patch Changes
c2bb6a9a5 Thanks @timleslie! - Updated css to preserve whitespace formatting of error messages.
@keystone-next/admin-ui-utils@5.0.6
Patch Changes
5cd8ffd6c, 5cd8ffd6c, b696a9579, 092df6678, 5cd8ffd6c, 272b97b3a, 5cd8ffd6c, 56044e2a4, 874f2c405, 1030296d1, 3564b342d, 4d9f89f88, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/cloudinary@6.0.6
Patch Changes
e9f3c42d5, 5cd8ffd6c, 5cd8ffd6c, b696a9579, 092df6678, 5cd8ffd6c, 4f4f0351a, 272b97b3a, 5cd8ffd6c, 56044e2a4, 874f2c405, 1030296d1, 3564b342d, 4d9f89f88, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/testing@1.1.1
Patch Changes
5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/utils@1.0.4
Patch Changes
5cd8ffd6c, 5cd8ffd6c, b696a9579, 092df6678, 5cd8ffd6c, 272b97b3a, 5cd8ffd6c, 56044e2a4, 874f2c405, 1030296d1, 3564b342d, 4d9f89f88, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/example-custom-admin-ui-navigation@5.0.0
Major Changes
bc00c0a17 Thanks @gwyneplaine! - Initial version of the custom-admin-ui-navigation example.
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/example-custom-admin-ui-pages@1.0.0
Major Changes
e0b9e8d38 Thanks @gwyneplaine! - Initial version of the custom-admin-ui-pages example.
Patch Changes
df10c42a2 Thanks @gwyneplaine! - Additional content added to example for making the custom-page look more like the Admin UI, as well as adding a route to the custom page to the Admin UI Navigation.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/api-tests-legacy@11.1.0
Minor Changes
Patch Changes
5cd8ffd6c, 5cd8ffd6c, b696a9579, 092df6678, 5cd8ffd6c, 272b97b3a, 5cd8ffd6c, 56044e2a4, 874f2c405, 1030296d1, 3564b342d, 4d9f89f88, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/website@3.1.4
Patch Changes
a92169d04, e985aa010, 272b97b3a, 69f47bfed, 4d9f89f88]:
@keystone-next/example-assets-cloud@1.0.4
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/example-assets-local@1.0.4
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/example-auth@4.0.6
Patch Changes
399561b27 Thanks @timleslie! - Updated dependencies to use mergeSchemas from @graphql-tools/schema, rather than its old location in @graphql-tools/merge. You might see a reordering of the contents of your graphql.schema file.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/examples-app-basic@4.0.6
Patch Changes
399561b27 Thanks @timleslie! - Updated dependencies to use mergeSchemas from @graphql-tools/schema, rather than its old location in @graphql-tools/merge. You might see a reordering of the contents of your graphql.schema file.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, e985aa010, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 69f47bfed, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/example-ecommerce@4.0.7
Patch Changes
a92169d04 Thanks @timleslie! - Updated internal type definitions.
399561b27 Thanks @timleslie! - Updated dependencies to use mergeSchemas from @graphql-tools/schema, rather than its old location in @graphql-tools/merge. You might see a reordering of the contents of your graphql.schema file.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/example-embedded-nextjs@3.0.6
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
keystone-next-app@1.0.6
Patch Changes
399561b27 Thanks @timleslie! - Updated dependencies to use mergeSchemas from @graphql-tools/schema, rather than its old location in @graphql-tools/merge. You might see a reordering of the contents of your graphql.schema file.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, e985aa010, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 69f47bfed, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/example-playground@1.0.5
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/example-roles@4.0.6
Patch Changes
399561b27 Thanks @timleslie! - Updated dependencies to use mergeSchemas from @graphql-tools/schema, rather than its old location in @graphql-tools/merge. You might see a reordering of the contents of your graphql.schema file.
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/example-sandbox@3.0.6
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/example-blog@2.0.6
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, d214e2f72, f5e64af37]:
@keystone-next/example-custom-admin-ui-logo@1.0.1
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:
@keystone-next/example-custom-field@0.0.3
Patch Changes
e9f3c42d5, 5cd8ffd6c, 1cbcf54cb, a92169d04, 5cd8ffd6c, b696a9579, f3014a627, 092df6678, 5cd8ffd6c, 6da56b80e, 4f4f0351a, 697efa354, c7e331d90, 3a7a06b2c, 272b97b3a, 78dac764e, 399561b27, 9d361c1c8, 0dcb1c95b, 94435ffee, 5cd8ffd6c, 56044e2a4, f46fd32b7, 874f2c405, 8ea4eed55, e3fe6498d, 1030296d1, 3564b342d, 8b2d179b2, e3fefafcc, 4d9f89f88, 686c0f1c4, 8187ea019, d214e2f72, f5e64af37]:


