-
#### Notes
+
- It is recommended to add the test credentials (located in `test/credentials.ts`) to your autofill for `localhost:3000/admin` as this will be required on every nodemon restart. The default credentials are `dev@payloadcms.com` as email and `test` as password.
diff --git a/.migrations/drizzle-snapshot.json b/.migrations/drizzle-snapshot.json
index 7011c2298..801558cbd 100644
--- a/.migrations/drizzle-snapshot.json
+++ b/.migrations/drizzle-snapshot.json
@@ -1,922 +1,10 @@
{
- "id": "4b6f2243-b055-45d8-9afa-53cd2b729a12",
- "prevId": "00000000-0000-0000-0000-000000000000",
- "version": "5",
- "dialect": "pg",
- "tables": {
- "posts_my_array_my_sub_array": {
- "name": "posts_my_array_my_sub_array",
- "schema": "",
- "columns": {
- "_order": {
- "name": "_order",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "varchar",
- "primaryKey": false,
- "notNull": true
- },
- "id": {
- "name": "id",
- "type": "varchar",
- "primaryKey": true,
- "notNull": true
- },
- "sub_sub_field": {
- "name": "sub_sub_field",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_my_array_my_sub_array__parent_id_posts_my_array_id_fk": {
- "name": "posts_my_array_my_sub_array__parent_id_posts_my_array_id_fk",
- "tableFrom": "posts_my_array_my_sub_array",
- "tableTo": "posts_my_array",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_my_array": {
- "name": "posts_my_array",
- "schema": "",
- "columns": {
- "_order": {
- "name": "_order",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "id": {
- "name": "id",
- "type": "varchar",
- "primaryKey": true,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_my_array__parent_id_posts_id_fk": {
- "name": "posts_my_array__parent_id_posts_id_fk",
- "tableFrom": "posts_my_array",
- "tableTo": "posts",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_my_array_locales": {
- "name": "posts_my_array_locales",
- "schema": "",
- "columns": {
- "sub_field": {
- "name": "sub_field",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "_locale": {
- "name": "_locale",
- "type": "_locales",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "varchar",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_my_array_locales__parent_id_posts_my_array_id_fk": {
- "name": "posts_my_array_locales__parent_id_posts_my_array_id_fk",
- "tableFrom": "posts_my_array_locales",
- "tableTo": "posts_my_array",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_block1": {
- "name": "posts_block1",
- "schema": "",
- "columns": {
- "_order": {
- "name": "_order",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "_path": {
- "name": "_path",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "id": {
- "name": "id",
- "type": "varchar",
- "primaryKey": true,
- "notNull": true
- },
- "non_localized_text": {
- "name": "non_localized_text",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "block_name": {
- "name": "block_name",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_block1__parent_id_posts_id_fk": {
- "name": "posts_block1__parent_id_posts_id_fk",
- "tableFrom": "posts_block1",
- "tableTo": "posts",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_block1_locales": {
- "name": "posts_block1_locales",
- "schema": "",
- "columns": {
- "localized_text": {
- "name": "localized_text",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "_locale": {
- "name": "_locale",
- "type": "_locales",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "varchar",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_block1_locales__parent_id_posts_block1_id_fk": {
- "name": "posts_block1_locales__parent_id_posts_block1_id_fk",
- "tableFrom": "posts_block1_locales",
- "tableTo": "posts_block1",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_block2_block_array": {
- "name": "posts_block2_block_array",
- "schema": "",
- "columns": {
- "_order": {
- "name": "_order",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "varchar",
- "primaryKey": false,
- "notNull": true
- },
- "id": {
- "name": "id",
- "type": "varchar",
- "primaryKey": true,
- "notNull": true
- },
- "sub_block_array": {
- "name": "sub_block_array",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_block2_block_array__parent_id_posts_block2_id_fk": {
- "name": "posts_block2_block_array__parent_id_posts_block2_id_fk",
- "tableFrom": "posts_block2_block_array",
- "tableTo": "posts_block2",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_block2": {
- "name": "posts_block2",
- "schema": "",
- "columns": {
- "_order": {
- "name": "_order",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "_path": {
- "name": "_path",
- "type": "text",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "id": {
- "name": "id",
- "type": "varchar",
- "primaryKey": true,
- "notNull": true
- },
- "number": {
- "name": "number",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "block_name": {
- "name": "block_name",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_block2__parent_id_posts_id_fk": {
- "name": "posts_block2__parent_id_posts_id_fk",
- "tableFrom": "posts_block2",
- "tableTo": "posts",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_my_group_group_array": {
- "name": "posts_my_group_group_array",
- "schema": "",
- "columns": {
- "_order": {
- "name": "_order",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "id": {
- "name": "id",
- "type": "varchar",
- "primaryKey": true,
- "notNull": true
- },
- "group_array_text": {
- "name": "group_array_text",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_my_group_group_array__parent_id_posts_id_fk": {
- "name": "posts_my_group_group_array__parent_id_posts_id_fk",
- "tableFrom": "posts_my_group_group_array",
- "tableTo": "posts",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts": {
- "name": "posts",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "my_group_sub_field": {
- "name": "my_group_sub_field",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "my_group_sub_group_sub_sub_field": {
- "name": "my_group_sub_group_sub_sub_field",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_locales": {
- "name": "posts_locales",
- "schema": "",
- "columns": {
- "title": {
- "name": "title",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "number": {
- "name": "number",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "my_group_sub_field_localized": {
- "name": "my_group_sub_field_localized",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "my_group_sub_group_sub_sub_field_localized": {
- "name": "my_group_sub_group_sub_sub_field_localized",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "_locale": {
- "name": "_locale",
- "type": "_locales",
- "primaryKey": false,
- "notNull": true
- },
- "_parent_id": {
- "name": "_parent_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_locales__parent_id_posts_id_fk": {
- "name": "posts_locales__parent_id_posts_id_fk",
- "tableFrom": "posts_locales",
- "tableTo": "posts",
- "columnsFrom": [
- "_parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "posts_relationships": {
- "name": "posts_relationships",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "parent_id": {
- "name": "parent_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "path": {
- "name": "path",
- "type": "varchar",
- "primaryKey": false,
- "notNull": true
- },
- "order": {
- "name": "order",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "pages_id": {
- "name": "pages_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "people_id": {
- "name": "people_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "posts_id": {
- "name": "posts_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "posts_relationships_parent_id_posts_id_fk": {
- "name": "posts_relationships_parent_id_posts_id_fk",
- "tableFrom": "posts_relationships",
- "tableTo": "posts",
- "columnsFrom": [
- "parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "posts_relationships_pages_id_pages_id_fk": {
- "name": "posts_relationships_pages_id_pages_id_fk",
- "tableFrom": "posts_relationships",
- "tableTo": "pages",
- "columnsFrom": [
- "pages_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "posts_relationships_people_id_people_id_fk": {
- "name": "posts_relationships_people_id_people_id_fk",
- "tableFrom": "posts_relationships",
- "tableTo": "people",
- "columnsFrom": [
- "people_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "posts_relationships_posts_id_posts_id_fk": {
- "name": "posts_relationships_posts_id_posts_id_fk",
- "tableFrom": "posts_relationships",
- "tableTo": "posts",
- "columnsFrom": [
- "posts_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "pages": {
- "name": "pages",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "slug": {
- "name": "slug",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "people": {
- "name": "people",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "full_name": {
- "name": "full_name",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "users": {
- "name": "users",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "reset_password_token": {
- "name": "reset_password_token",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "salt": {
- "name": "salt",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "hash": {
- "name": "hash",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "login_attempts": {
- "name": "login_attempts",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {
- "email_idx": {
- "name": "email_idx",
- "columns": [
- "email"
- ],
- "isUnique": true
- }
- },
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "payload_preferences": {
- "name": "payload_preferences",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "key": {
- "name": "key",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "value": {
- "name": "value",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "payload_preferences_relationships": {
- "name": "payload_preferences_relationships",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "parent_id": {
- "name": "parent_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": true
- },
- "path": {
- "name": "path",
- "type": "varchar",
- "primaryKey": false,
- "notNull": true
- },
- "order": {
- "name": "order",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "users_id": {
- "name": "users_id",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "payload_preferences_relationships_parent_id_payload_preferences_id_fk": {
- "name": "payload_preferences_relationships_parent_id_payload_preferences_id_fk",
- "tableFrom": "payload_preferences_relationships",
- "tableTo": "payload_preferences",
- "columnsFrom": [
- "parent_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- },
- "payload_preferences_relationships_users_id_users_id_fk": {
- "name": "payload_preferences_relationships_users_id_users_id_fk",
- "tableFrom": "payload_preferences_relationships",
- "tableTo": "users",
- "columnsFrom": [
- "users_id"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "payload_migrations": {
- "name": "payload_migrations",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "serial",
- "primaryKey": true,
- "notNull": true
- },
- "name": {
- "name": "name",
- "type": "varchar",
- "primaryKey": false,
- "notNull": false
- },
- "batch": {
- "name": "batch",
- "type": "numeric",
- "primaryKey": false,
- "notNull": false
- },
- "schema": {
- "name": "schema",
- "type": "jsonb",
- "primaryKey": false,
- "notNull": false
- },
- "created_at": {
- "name": "created_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- },
- "updated_at": {
- "name": "updated_at",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": true,
- "default": "now()"
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- }
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
},
+ "dialect": "pg",
"enums": {
"_locales": {
"name": "_locales",
@@ -926,10 +14,860 @@
}
}
},
+ "id": "4b6f2243-b055-45d8-9afa-53cd2b729a12",
+ "prevId": "00000000-0000-0000-0000-000000000000",
"schemas": {},
- "_meta": {
- "schemas": {},
- "tables": {},
- "columns": {}
- }
-}
\ No newline at end of file
+ "tables": {
+ "pages": {
+ "columns": {
+ "created_at": {
+ "default": "now()",
+ "name": "created_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "slug": {
+ "name": "slug",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "updated_at": {
+ "default": "now()",
+ "name": "updated_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {},
+ "indexes": {},
+ "name": "pages",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "payload_migrations": {
+ "columns": {
+ "batch": {
+ "name": "batch",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "numeric"
+ },
+ "created_at": {
+ "default": "now()",
+ "name": "created_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "name": {
+ "name": "name",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "schema": {
+ "name": "schema",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "jsonb"
+ },
+ "updated_at": {
+ "default": "now()",
+ "name": "updated_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {},
+ "indexes": {},
+ "name": "payload_migrations",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "payload_preferences": {
+ "columns": {
+ "created_at": {
+ "default": "now()",
+ "name": "created_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "key": {
+ "name": "key",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "updated_at": {
+ "default": "now()",
+ "name": "updated_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ },
+ "value": {
+ "name": "value",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "jsonb"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {},
+ "indexes": {},
+ "name": "payload_preferences",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "payload_preferences_relationships": {
+ "columns": {
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "order": {
+ "name": "order",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "parent_id": {
+ "name": "parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "path": {
+ "name": "path",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "users_id": {
+ "name": "users_id",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "integer"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "payload_preferences_relationships_parent_id_payload_preferences_id_fk": {
+ "columnsFrom": ["parent_id"],
+ "columnsTo": ["id"],
+ "name": "payload_preferences_relationships_parent_id_payload_preferences_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "payload_preferences_relationships",
+ "tableTo": "payload_preferences"
+ },
+ "payload_preferences_relationships_users_id_users_id_fk": {
+ "columnsFrom": ["users_id"],
+ "columnsTo": ["id"],
+ "name": "payload_preferences_relationships_users_id_users_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "payload_preferences_relationships",
+ "tableTo": "users"
+ }
+ },
+ "indexes": {},
+ "name": "payload_preferences_relationships",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "people": {
+ "columns": {
+ "created_at": {
+ "default": "now()",
+ "name": "created_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ },
+ "full_name": {
+ "name": "full_name",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "updated_at": {
+ "default": "now()",
+ "name": "updated_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {},
+ "indexes": {},
+ "name": "people",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts": {
+ "columns": {
+ "created_at": {
+ "default": "now()",
+ "name": "created_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "my_group_sub_field": {
+ "name": "my_group_sub_field",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "my_group_sub_group_sub_sub_field": {
+ "name": "my_group_sub_group_sub_sub_field",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "updated_at": {
+ "default": "now()",
+ "name": "updated_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {},
+ "indexes": {},
+ "name": "posts",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_block1": {
+ "columns": {
+ "_order": {
+ "name": "_order",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_path": {
+ "name": "_path",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "text"
+ },
+ "block_name": {
+ "name": "block_name",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "varchar"
+ },
+ "non_localized_text": {
+ "name": "non_localized_text",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_block1__parent_id_posts_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_block1__parent_id_posts_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_block1",
+ "tableTo": "posts"
+ }
+ },
+ "indexes": {},
+ "name": "posts_block1",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_block1_locales": {
+ "columns": {
+ "_locale": {
+ "name": "_locale",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "_locales"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "localized_text": {
+ "name": "localized_text",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_block1_locales__parent_id_posts_block1_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_block1_locales__parent_id_posts_block1_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_block1_locales",
+ "tableTo": "posts_block1"
+ }
+ },
+ "indexes": {},
+ "name": "posts_block1_locales",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_block2": {
+ "columns": {
+ "_order": {
+ "name": "_order",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_path": {
+ "name": "_path",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "text"
+ },
+ "block_name": {
+ "name": "block_name",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "varchar"
+ },
+ "number": {
+ "name": "number",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "numeric"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_block2__parent_id_posts_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_block2__parent_id_posts_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_block2",
+ "tableTo": "posts"
+ }
+ },
+ "indexes": {},
+ "name": "posts_block2",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_block2_block_array": {
+ "columns": {
+ "_order": {
+ "name": "_order",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "varchar"
+ },
+ "sub_block_array": {
+ "name": "sub_block_array",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_block2_block_array__parent_id_posts_block2_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_block2_block_array__parent_id_posts_block2_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_block2_block_array",
+ "tableTo": "posts_block2"
+ }
+ },
+ "indexes": {},
+ "name": "posts_block2_block_array",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_locales": {
+ "columns": {
+ "_locale": {
+ "name": "_locale",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "_locales"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "my_group_sub_field_localized": {
+ "name": "my_group_sub_field_localized",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "my_group_sub_group_sub_sub_field_localized": {
+ "name": "my_group_sub_group_sub_sub_field_localized",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "number": {
+ "name": "number",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "numeric"
+ },
+ "title": {
+ "name": "title",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_locales__parent_id_posts_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_locales__parent_id_posts_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_locales",
+ "tableTo": "posts"
+ }
+ },
+ "indexes": {},
+ "name": "posts_locales",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_my_array": {
+ "columns": {
+ "_order": {
+ "name": "_order",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_my_array__parent_id_posts_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_my_array__parent_id_posts_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_my_array",
+ "tableTo": "posts"
+ }
+ },
+ "indexes": {},
+ "name": "posts_my_array",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_my_array_locales": {
+ "columns": {
+ "_locale": {
+ "name": "_locale",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "_locales"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "sub_field": {
+ "name": "sub_field",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_my_array_locales__parent_id_posts_my_array_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_my_array_locales__parent_id_posts_my_array_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_my_array_locales",
+ "tableTo": "posts_my_array"
+ }
+ },
+ "indexes": {},
+ "name": "posts_my_array_locales",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_my_array_my_sub_array": {
+ "columns": {
+ "_order": {
+ "name": "_order",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "varchar"
+ },
+ "sub_sub_field": {
+ "name": "sub_sub_field",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_my_array_my_sub_array__parent_id_posts_my_array_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_my_array_my_sub_array__parent_id_posts_my_array_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_my_array_my_sub_array",
+ "tableTo": "posts_my_array"
+ }
+ },
+ "indexes": {},
+ "name": "posts_my_array_my_sub_array",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_my_group_group_array": {
+ "columns": {
+ "_order": {
+ "name": "_order",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "_parent_id": {
+ "name": "_parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "group_array_text": {
+ "name": "group_array_text",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "varchar"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_my_group_group_array__parent_id_posts_id_fk": {
+ "columnsFrom": ["_parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_my_group_group_array__parent_id_posts_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_my_group_group_array",
+ "tableTo": "posts"
+ }
+ },
+ "indexes": {},
+ "name": "posts_my_group_group_array",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "posts_relationships": {
+ "columns": {
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "order": {
+ "name": "order",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "pages_id": {
+ "name": "pages_id",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "parent_id": {
+ "name": "parent_id",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "path": {
+ "name": "path",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "people_id": {
+ "name": "people_id",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "integer"
+ },
+ "posts_id": {
+ "name": "posts_id",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "integer"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {
+ "posts_relationships_pages_id_pages_id_fk": {
+ "columnsFrom": ["pages_id"],
+ "columnsTo": ["id"],
+ "name": "posts_relationships_pages_id_pages_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_relationships",
+ "tableTo": "pages"
+ },
+ "posts_relationships_parent_id_posts_id_fk": {
+ "columnsFrom": ["parent_id"],
+ "columnsTo": ["id"],
+ "name": "posts_relationships_parent_id_posts_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_relationships",
+ "tableTo": "posts"
+ },
+ "posts_relationships_people_id_people_id_fk": {
+ "columnsFrom": ["people_id"],
+ "columnsTo": ["id"],
+ "name": "posts_relationships_people_id_people_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_relationships",
+ "tableTo": "people"
+ },
+ "posts_relationships_posts_id_posts_id_fk": {
+ "columnsFrom": ["posts_id"],
+ "columnsTo": ["id"],
+ "name": "posts_relationships_posts_id_posts_id_fk",
+ "onDelete": "no action",
+ "onUpdate": "no action",
+ "tableFrom": "posts_relationships",
+ "tableTo": "posts"
+ }
+ },
+ "indexes": {},
+ "name": "posts_relationships",
+ "schema": "",
+ "uniqueConstraints": {}
+ },
+ "users": {
+ "columns": {
+ "created_at": {
+ "default": "now()",
+ "name": "created_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ },
+ "email": {
+ "name": "email",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "hash": {
+ "name": "hash",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "id": {
+ "name": "id",
+ "notNull": true,
+ "primaryKey": true,
+ "type": "serial"
+ },
+ "login_attempts": {
+ "name": "login_attempts",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "numeric"
+ },
+ "reset_password_token": {
+ "name": "reset_password_token",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "salt": {
+ "name": "salt",
+ "notNull": false,
+ "primaryKey": false,
+ "type": "varchar"
+ },
+ "updated_at": {
+ "default": "now()",
+ "name": "updated_at",
+ "notNull": true,
+ "primaryKey": false,
+ "type": "timestamp"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "foreignKeys": {},
+ "indexes": {
+ "email_idx": {
+ "columns": ["email"],
+ "isUnique": true,
+ "name": "email_idx"
+ }
+ },
+ "name": "users",
+ "schema": "",
+ "uniqueConstraints": {}
+ }
+ },
+ "version": "5"
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 3f3cdb2f9..6cd7d7fae 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -1,112 +1,112 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
"configurations": [
{
"command": "pnpm run dev _community",
+ "cwd": "${workspaceFolder}",
"name": "Run Dev Community",
"request": "launch",
- "type": "node-terminal",
- "cwd": "${workspaceFolder}"
+ "type": "node-terminal"
},
{
"command": "pnpm run dev fields",
+ "cwd": "${workspaceFolder}",
"name": "Run Dev Fields",
"request": "launch",
- "type": "node-terminal",
- "cwd": "${workspaceFolder}"
+ "type": "node-terminal"
},
{
"command": "pnpm run dev:postgres postgres -- -I", // Allow input
+ "cwd": "${workspaceFolder}",
"name": "Run Dev Postgres",
"request": "launch",
- "type": "node-terminal",
- "cwd": "${workspaceFolder}"
+ "type": "node-terminal"
},
{
"command": "pnpm run dev versions",
+ "cwd": "${workspaceFolder}",
"name": "Run Dev Versions",
"request": "launch",
- "type": "node-terminal",
- "cwd": "${workspaceFolder}"
+ "type": "node-terminal"
},
{
- "type": "node-terminal",
"command": "ts-node src/bin/migrate.ts migrate",
- "request": "launch",
+ "env": {
+ "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
+ "PAYLOAD_DATABASE": "postgres"
+ // "PAYLOAD_DROP_DATABASE": "true",
+ },
"name": "Migrate CLI - migrate",
- "env": {
- "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
- "PAYLOAD_DATABASE": "postgres",
- // "PAYLOAD_DROP_DATABASE": "true",
- },
"outputCapture": "std",
+ "request": "launch",
+ "type": "node-terminal"
},
{
- "type": "node-terminal",
"command": "ts-node src/bin/migrate.ts migrate:status",
- "request": "launch",
- "name": "Migrate CLI - status",
"env": {
"PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
- "PAYLOAD_DATABASE": "postgres",
+ "PAYLOAD_DATABASE": "postgres"
// "PAYLOAD_DROP_DATABASE": "true",
},
+ "name": "Migrate CLI - status",
"outputCapture": "std",
+ "request": "launch",
+ "type": "node-terminal"
},
{
- "type": "node-terminal",
"command": "ts-node src/bin/migrate.ts migrate:create yass",
- "request": "launch",
+ "env": {
+ // "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
+ "PAYLOAD_CONFIG_PATH": "test/postgres/config.ts",
+ "PAYLOAD_DATABASE": "postgres"
+ // "PAYLOAD_DROP_DATABASE": "true",
+ },
"name": "Migrate CLI - create",
- "env": {
- // "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
- "PAYLOAD_CONFIG_PATH": "test/postgres/config.ts",
- "PAYLOAD_DATABASE": "postgres",
- // "PAYLOAD_DROP_DATABASE": "true",
- },
"outputCapture": "std",
+ "request": "launch",
+ "type": "node-terminal"
},
{
- "type": "node-terminal",
"command": "ts-node src/bin/migrate.ts migrate:down",
- "request": "launch",
+ "env": {
+ // "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
+ "PAYLOAD_CONFIG_PATH": "test/postgres/config.ts",
+ "PAYLOAD_DATABASE": "postgres"
+ // "PAYLOAD_DROP_DATABASE": "true",
+ },
"name": "Migrate CLI - down",
- "env": {
- // "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
- "PAYLOAD_CONFIG_PATH": "test/postgres/config.ts",
- "PAYLOAD_DATABASE": "postgres",
- // "PAYLOAD_DROP_DATABASE": "true",
- },
"outputCapture": "std",
+ "request": "launch",
+ "type": "node-terminal"
},
{
- "type": "node-terminal",
"command": "ts-node src/bin/migrate.ts migrate:reset",
- "request": "launch",
- "name": "Migrate CLI - reset",
"env": {
// "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
"PAYLOAD_CONFIG_PATH": "test/postgres/config.ts",
- "PAYLOAD_DATABASE": "postgres",
+ "PAYLOAD_DATABASE": "postgres"
// "PAYLOAD_DROP_DATABASE": "true",
},
+ "name": "Migrate CLI - reset",
"outputCapture": "std",
+ "request": "launch",
+ "type": "node-terminal"
},
{
- "type": "node-terminal",
"command": "ts-node src/bin/migrate.ts migrate:refresh",
- "request": "launch",
- "name": "Migrate CLI - refresh",
"env": {
// "PAYLOAD_CONFIG_PATH": "test/migrations-cli/config.ts",
"PAYLOAD_CONFIG_PATH": "test/postgres/config.ts",
- "PAYLOAD_DATABASE": "postgres",
+ "PAYLOAD_DATABASE": "postgres"
// "PAYLOAD_DROP_DATABASE": "true",
},
+ "name": "Migrate CLI - refresh",
"outputCapture": "std",
- },
- ]
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ],
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 088e1af90..495fe69a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,457 +1,402 @@
-
-
# [1.14.0](https://github.com/payloadcms/payload/compare/v1.13.4...v1.14.0) (2023-08-16)
-
### Bug Fixes
-* DatePicker showing only selected day by default ([#3169](https://github.com/payloadcms/payload/issues/3169)) ([edcb393](https://github.com/payloadcms/payload/commit/edcb3933cfb4532180c822135ea6a8be928e0fdc))
-* only allow redirects to /admin sub-routes ([c0f05a1](https://github.com/payloadcms/payload/commit/c0f05a1c38fb9c958de920fabb698b5ecfb661f0))
-* passes in height to resizeOptions upload option to allow height resize ([#3171](https://github.com/payloadcms/payload/issues/3171)) ([7963d04](https://github.com/payloadcms/payload/commit/7963d04a27888eb5a12d0ab37f2082cd33638abd))
-* WhereBuilder component does not accept all valid Where queries ([#3087](https://github.com/payloadcms/payload/issues/3087)) ([fdfdfc8](https://github.com/payloadcms/payload/commit/fdfdfc83f36a958971f8e4e4f9f5e51560cb26e0))
-
+- DatePicker showing only selected day by default ([#3169](https://github.com/payloadcms/payload/issues/3169)) ([edcb393](https://github.com/payloadcms/payload/commit/edcb3933cfb4532180c822135ea6a8be928e0fdc))
+- only allow redirects to /admin sub-routes ([c0f05a1](https://github.com/payloadcms/payload/commit/c0f05a1c38fb9c958de920fabb698b5ecfb661f0))
+- passes in height to resizeOptions upload option to allow height resize ([#3171](https://github.com/payloadcms/payload/issues/3171)) ([7963d04](https://github.com/payloadcms/payload/commit/7963d04a27888eb5a12d0ab37f2082cd33638abd))
+- WhereBuilder component does not accept all valid Where queries ([#3087](https://github.com/payloadcms/payload/issues/3087)) ([fdfdfc8](https://github.com/payloadcms/payload/commit/fdfdfc83f36a958971f8e4e4f9f5e51560cb26e0))
### Features
-* add afterOperation hook ([#2697](https://github.com/payloadcms/payload/issues/2697)) ([33686c6](https://github.com/payloadcms/payload/commit/33686c6db8373a16d7f6b0192e0701bf15881aa4))
-* add support for hotkeys ([#1821](https://github.com/payloadcms/payload/issues/1821)) ([942cfec](https://github.com/payloadcms/payload/commit/942cfec286ff050e13417b037cca64b9d757d868))
-* Added Azerbaijani language file ([#3164](https://github.com/payloadcms/payload/issues/3164)) ([63e3063](https://github.com/payloadcms/payload/commit/63e3063b9ecc1afd62d7a287a798d41215008f2a))
-* allow async relationship filter options ([#2951](https://github.com/payloadcms/payload/issues/2951)) ([bad3638](https://github.com/payloadcms/payload/commit/bad363882c9d00d3c73547ca3329eba988e728ff))
-* Improve admin dashboard accessibility ([#3053](https://github.com/payloadcms/payload/issues/3053)) ([e03a8e6](https://github.com/payloadcms/payload/commit/e03a8e6b030e82a17e1cdae5b4032433cf9c75a4))
-* improve field ops ([#3172](https://github.com/payloadcms/payload/issues/3172)) ([d91b44c](https://github.com/payloadcms/payload/commit/d91b44cbb3fd526caca2a6f4bd30fd06ede3a5da))
-* make PAYLOAD_CONFIG_PATH optional ([#2839](https://github.com/payloadcms/payload/issues/2839)) ([5744de7](https://github.com/payloadcms/payload/commit/5744de7ec63e3f17df7e02a7cc827818a79dbbb8))
-* text alignment for richtext editor ([#2803](https://github.com/payloadcms/payload/issues/2803)) ([a0b13a5](https://github.com/payloadcms/payload/commit/a0b13a5b01fa0d7f4c4dffd1895bfe507e5c676d))
+- add afterOperation hook ([#2697](https://github.com/payloadcms/payload/issues/2697)) ([33686c6](https://github.com/payloadcms/payload/commit/33686c6db8373a16d7f6b0192e0701bf15881aa4))
+- add support for hotkeys ([#1821](https://github.com/payloadcms/payload/issues/1821)) ([942cfec](https://github.com/payloadcms/payload/commit/942cfec286ff050e13417b037cca64b9d757d868))
+- Added Azerbaijani language file ([#3164](https://github.com/payloadcms/payload/issues/3164)) ([63e3063](https://github.com/payloadcms/payload/commit/63e3063b9ecc1afd62d7a287a798d41215008f2a))
+- allow async relationship filter options ([#2951](https://github.com/payloadcms/payload/issues/2951)) ([bad3638](https://github.com/payloadcms/payload/commit/bad363882c9d00d3c73547ca3329eba988e728ff))
+- Improve admin dashboard accessibility ([#3053](https://github.com/payloadcms/payload/issues/3053)) ([e03a8e6](https://github.com/payloadcms/payload/commit/e03a8e6b030e82a17e1cdae5b4032433cf9c75a4))
+- improve field ops ([#3172](https://github.com/payloadcms/payload/issues/3172)) ([d91b44c](https://github.com/payloadcms/payload/commit/d91b44cbb3fd526caca2a6f4bd30fd06ede3a5da))
+- make PAYLOAD_CONFIG_PATH optional ([#2839](https://github.com/payloadcms/payload/issues/2839)) ([5744de7](https://github.com/payloadcms/payload/commit/5744de7ec63e3f17df7e02a7cc827818a79dbbb8))
+- text alignment for richtext editor ([#2803](https://github.com/payloadcms/payload/issues/2803)) ([a0b13a5](https://github.com/payloadcms/payload/commit/a0b13a5b01fa0d7f4c4dffd1895bfe507e5c676d))
## [1.13.4](https://github.com/payloadcms/payload/compare/v1.13.3...v1.13.4) (2023-08-11)
-
### Bug Fixes
-* correctly passes block path inside buildFieldSchemaMap ([#3162](https://github.com/payloadcms/payload/issues/3162)) ([3c60abd](https://github.com/payloadcms/payload/commit/3c60abd61aaf24d49712c80bcbd0f1113c22b85a))
+- correctly passes block path inside buildFieldSchemaMap ([#3162](https://github.com/payloadcms/payload/issues/3162)) ([3c60abd](https://github.com/payloadcms/payload/commit/3c60abd61aaf24d49712c80bcbd0f1113c22b85a))
## [1.13.3](https://github.com/payloadcms/payload/compare/v1.13.2...v1.13.3) (2023-08-11)
-
### Bug Fixes
-* unable to add arrays inside secondary named tabs ([#3158](https://github.com/payloadcms/payload/issues/3158)) ([cb04d4a](https://github.com/payloadcms/payload/commit/cb04d4a82a68a764330582b93882d422b32c2527))
+- unable to add arrays inside secondary named tabs ([#3158](https://github.com/payloadcms/payload/issues/3158)) ([cb04d4a](https://github.com/payloadcms/payload/commit/cb04d4a82a68a764330582b93882d422b32c2527))
## [1.13.2](https://github.com/payloadcms/payload/compare/v1.13.1...v1.13.2) (2023-08-10)
## [1.13.1](https://github.com/payloadcms/payload/compare/v1.13.0...v1.13.1) (2023-08-08)
-
### Bug Fixes
-* updates addFieldRow and replaceFieldRow rowIndex insertion ([#3145](https://github.com/payloadcms/payload/issues/3145)) ([f5cf546](https://github.com/payloadcms/payload/commit/f5cf546e1918de66998d5f0e5410bfbc1f054567))
+- updates addFieldRow and replaceFieldRow rowIndex insertion ([#3145](https://github.com/payloadcms/payload/issues/3145)) ([f5cf546](https://github.com/payloadcms/payload/commit/f5cf546e1918de66998d5f0e5410bfbc1f054567))
# [1.13.0](https://github.com/payloadcms/payload/compare/v1.12.0...v1.13.0) (2023-08-08)
-
### Bug Fixes
-* `setPreference()` return type ([#3125](https://github.com/payloadcms/payload/issues/3125)) ([463d6bb](https://github.com/payloadcms/payload/commit/463d6bbec66e61523bae3869df88bd98e7617390))
-* absolute staticURL admin thumbnails ([#3135](https://github.com/payloadcms/payload/issues/3135)) ([1039f39](https://github.com/payloadcms/payload/commit/1039f39c09260537616b22228080466e8df6e981))
-* adding and replacing similarly shaped block configs ([#3140](https://github.com/payloadcms/payload/issues/3140)) ([8e188cf](https://github.com/payloadcms/payload/commit/8e188cfe61db808c94d726967affdadf2e5abb9f))
-
+- `setPreference()` return type ([#3125](https://github.com/payloadcms/payload/issues/3125)) ([463d6bb](https://github.com/payloadcms/payload/commit/463d6bbec66e61523bae3869df88bd98e7617390))
+- absolute staticURL admin thumbnails ([#3135](https://github.com/payloadcms/payload/issues/3135)) ([1039f39](https://github.com/payloadcms/payload/commit/1039f39c09260537616b22228080466e8df6e981))
+- adding and replacing similarly shaped block configs ([#3140](https://github.com/payloadcms/payload/issues/3140)) ([8e188cf](https://github.com/payloadcms/payload/commit/8e188cfe61db808c94d726967affdadf2e5abb9f))
### Features
-* default tab labels from name ([#3129](https://github.com/payloadcms/payload/issues/3129)) ([e8f0516](https://github.com/payloadcms/payload/commit/e8f05165eb3a28c00deb11931db01ad1f8c75c74))
-* radio and select fields are filterable by options ([#3136](https://github.com/payloadcms/payload/issues/3136)) ([b117e73](https://github.com/payloadcms/payload/commit/b117e7346434bfc8edbfa92f5db45f63c57bab08))
-* recursive saveToJWT field support ([#3130](https://github.com/payloadcms/payload/issues/3130)) ([c6e0908](https://github.com/payloadcms/payload/commit/c6e09080767dad2ab8128ba330b2b344bb25ac6f))
+- default tab labels from name ([#3129](https://github.com/payloadcms/payload/issues/3129)) ([e8f0516](https://github.com/payloadcms/payload/commit/e8f05165eb3a28c00deb11931db01ad1f8c75c74))
+- radio and select fields are filterable by options ([#3136](https://github.com/payloadcms/payload/issues/3136)) ([b117e73](https://github.com/payloadcms/payload/commit/b117e7346434bfc8edbfa92f5db45f63c57bab08))
+- recursive saveToJWT field support ([#3130](https://github.com/payloadcms/payload/issues/3130)) ([c6e0908](https://github.com/payloadcms/payload/commit/c6e09080767dad2ab8128ba330b2b344bb25ac6f))
# [1.12.0](https://github.com/payloadcms/payload/compare/v1.11.8...v1.12.0) (2023-08-04)
-
### Bug Fixes
-* excludes useAsTitle field from searchableFields in collection view ([#3105](https://github.com/payloadcms/payload/issues/3105)) ([8c4d251](https://github.com/payloadcms/payload/commit/8c4d2514b0f195e0059c6063346199785979c70c))
-* relationship field filter long titles ([#3113](https://github.com/payloadcms/payload/issues/3113)) ([da27a8a](https://github.com/payloadcms/payload/commit/da27a8aadbb103c5f6fe0ccc62c032876851b88f))
-* wrong links in verification and forgot password emails if serverURL not set ([#3010](https://github.com/payloadcms/payload/issues/3010)) ([6a189c6](https://github.com/payloadcms/payload/commit/6a189c6548b233aba64598af8804a56ec47e45f0))
-
+- excludes useAsTitle field from searchableFields in collection view ([#3105](https://github.com/payloadcms/payload/issues/3105)) ([8c4d251](https://github.com/payloadcms/payload/commit/8c4d2514b0f195e0059c6063346199785979c70c))
+- relationship field filter long titles ([#3113](https://github.com/payloadcms/payload/issues/3113)) ([da27a8a](https://github.com/payloadcms/payload/commit/da27a8aadbb103c5f6fe0ccc62c032876851b88f))
+- wrong links in verification and forgot password emails if serverURL not set ([#3010](https://github.com/payloadcms/payload/issues/3010)) ([6a189c6](https://github.com/payloadcms/payload/commit/6a189c6548b233aba64598af8804a56ec47e45f0))
### Features
-* add support for sharp resize options ([#2844](https://github.com/payloadcms/payload/issues/2844)) ([144bb81](https://github.com/payloadcms/payload/commit/144bb81721814c19eb4957d4c8fcc845c73e2aa4))
-* allows for upload relationship drawer to be opened ([#3108](https://github.com/payloadcms/payload/issues/3108)) ([ea73e68](https://github.com/payloadcms/payload/commit/ea73e689ac46f2a7ba3b6c34e7a190944b5d5868))
-* option to pre-fill login credentials automatically ([#3021](https://github.com/payloadcms/payload/issues/3021)) ([c5756ed](https://github.com/payloadcms/payload/commit/c5756ed4a13b46bc73ae7b23309d6e9980fc81bf))
-* programmatic control over array and block rows inside the form ([#3110](https://github.com/payloadcms/payload/issues/3110)) ([a78c463](https://github.com/payloadcms/payload/commit/a78c4631b4aabb5b57448ab21ef98749b1cf1935))
-* set JWT token field name with saveToJWT ([#3126](https://github.com/payloadcms/payload/issues/3126)) ([356f174](https://github.com/payloadcms/payload/commit/356f174b9ff601facb0062d0b65db18803ef2aa2))
+- add support for sharp resize options ([#2844](https://github.com/payloadcms/payload/issues/2844)) ([144bb81](https://github.com/payloadcms/payload/commit/144bb81721814c19eb4957d4c8fcc845c73e2aa4))
+- allows for upload relationship drawer to be opened ([#3108](https://github.com/payloadcms/payload/issues/3108)) ([ea73e68](https://github.com/payloadcms/payload/commit/ea73e689ac46f2a7ba3b6c34e7a190944b5d5868))
+- option to pre-fill login credentials automatically ([#3021](https://github.com/payloadcms/payload/issues/3021)) ([c5756ed](https://github.com/payloadcms/payload/commit/c5756ed4a13b46bc73ae7b23309d6e9980fc81bf))
+- programmatic control over array and block rows inside the form ([#3110](https://github.com/payloadcms/payload/issues/3110)) ([a78c463](https://github.com/payloadcms/payload/commit/a78c4631b4aabb5b57448ab21ef98749b1cf1935))
+- set JWT token field name with saveToJWT ([#3126](https://github.com/payloadcms/payload/issues/3126)) ([356f174](https://github.com/payloadcms/payload/commit/356f174b9ff601facb0062d0b65db18803ef2aa2))
## [1.11.8](https://github.com/payloadcms/payload/compare/v1.11.7...v1.11.8) (2023-07-31)
## [1.11.7](https://github.com/payloadcms/payload/compare/v1.11.6...v1.11.7) (2023-07-27)
-
### Bug Fixes
-* [#3062](https://github.com/payloadcms/payload/issues/3062) ([0280953](https://github.com/payloadcms/payload/commit/02809532b484d9018c6528cfbbbb43abfd55a540))
-* array row deletion ([#3062](https://github.com/payloadcms/payload/issues/3062)) ([cf9795b](https://github.com/payloadcms/payload/commit/cf9795b8d8b53c48335ff4c32c6c51b3de4f7bc9))
-* incorrect image rotation after being processed by sharp ([#3081](https://github.com/payloadcms/payload/issues/3081)) ([0a91950](https://github.com/payloadcms/payload/commit/0a91950f052ce40427801e6561a0f676354a2ca4))
-
+- [#3062](https://github.com/payloadcms/payload/issues/3062) ([0280953](https://github.com/payloadcms/payload/commit/02809532b484d9018c6528cfbbbb43abfd55a540))
+- array row deletion ([#3062](https://github.com/payloadcms/payload/issues/3062)) ([cf9795b](https://github.com/payloadcms/payload/commit/cf9795b8d8b53c48335ff4c32c6c51b3de4f7bc9))
+- incorrect image rotation after being processed by sharp ([#3081](https://github.com/payloadcms/payload/issues/3081)) ([0a91950](https://github.com/payloadcms/payload/commit/0a91950f052ce40427801e6561a0f676354a2ca4))
### Features
-* ability to add context to payload's request object ([#2796](https://github.com/payloadcms/payload/issues/2796)) ([67ba131](https://github.com/payloadcms/payload/commit/67ba131cc61f3d3b30ef9ef7fc150344ca82da2f))
+- ability to add context to payload's request object ([#2796](https://github.com/payloadcms/payload/issues/2796)) ([67ba131](https://github.com/payloadcms/payload/commit/67ba131cc61f3d3b30ef9ef7fc150344ca82da2f))
## [1.11.6](https://github.com/payloadcms/payload/compare/v1.11.5...v1.11.6) (2023-07-25)
-
### Bug Fixes
-* **collections:admin:** Enable adminThumbnail fn execution on all types ([2c74e93](https://github.com/payloadcms/payload/commit/2c74e9396a216a033e2bacdf189b7f28a0f97505))
-* threads hasMaxRows into ArrayAction components within blocks and arrays ([#3066](https://github.com/payloadcms/payload/issues/3066)) ([d43c83d](https://github.com/payloadcms/payload/commit/d43c83dad1bab5b05f4fcbae7d41de369905797c))
+- **collections:admin:** Enable adminThumbnail fn execution on all types ([2c74e93](https://github.com/payloadcms/payload/commit/2c74e9396a216a033e2bacdf189b7f28a0f97505))
+- threads hasMaxRows into ArrayAction components within blocks and arrays ([#3066](https://github.com/payloadcms/payload/issues/3066)) ([d43c83d](https://github.com/payloadcms/payload/commit/d43c83dad1bab5b05f4fcbae7d41de369905797c))
## [1.11.5](https://github.com/payloadcms/payload/compare/v1.11.4...v1.11.5) (2023-07-25)
-
### Bug Fixes
-* admin route not mounting on production serve ([#3071](https://github.com/payloadcms/payload/issues/3071)) ([e718668](https://github.com/payloadcms/payload/commit/e71866856fffefcfb61dd3d29135cccb66939a62))
+- admin route not mounting on production serve ([#3071](https://github.com/payloadcms/payload/issues/3071)) ([e718668](https://github.com/payloadcms/payload/commit/e71866856fffefcfb61dd3d29135cccb66939a62))
## [1.11.4](https://github.com/payloadcms/payload/compare/v1.11.3...v1.11.4) (2023-07-25)
-
### Bug Fixes
-* if arrayFieldType rows are undefined, page would crash ([#3049](https://github.com/payloadcms/payload/issues/3049)) ([08377cc](https://github.com/payloadcms/payload/commit/08377cc5a7ea9d02350177e2e1d69390ee97af78))
-
+- if arrayFieldType rows are undefined, page would crash ([#3049](https://github.com/payloadcms/payload/issues/3049)) ([08377cc](https://github.com/payloadcms/payload/commit/08377cc5a7ea9d02350177e2e1d69390ee97af78))
### Features
-* bump mongoose and mongoose-paginate versions ([#3025](https://github.com/payloadcms/payload/issues/3025)) ([41d3eee](https://github.com/payloadcms/payload/commit/41d3eee35f3855798a5c3372f8ad7c742a7810f7))
-* improve keyboard focus styles ([#3011](https://github.com/payloadcms/payload/issues/3011)) ([080e619](https://github.com/payloadcms/payload/commit/080e6195ef39ec858fbb115e8f554a8dfc436438))
-* solidifies bundler adapter pattern ([#3044](https://github.com/payloadcms/payload/issues/3044)) ([641c765](https://github.com/payloadcms/payload/commit/641c765fb921e162c98f09218929348037dd0f88))
+- bump mongoose and mongoose-paginate versions ([#3025](https://github.com/payloadcms/payload/issues/3025)) ([41d3eee](https://github.com/payloadcms/payload/commit/41d3eee35f3855798a5c3372f8ad7c742a7810f7))
+- improve keyboard focus styles ([#3011](https://github.com/payloadcms/payload/issues/3011)) ([080e619](https://github.com/payloadcms/payload/commit/080e6195ef39ec858fbb115e8f554a8dfc436438))
+- solidifies bundler adapter pattern ([#3044](https://github.com/payloadcms/payload/issues/3044)) ([641c765](https://github.com/payloadcms/payload/commit/641c765fb921e162c98f09218929348037dd0f88))
## [1.11.3](https://github.com/payloadcms/payload/compare/v1.11.2...v1.11.3) (2023-07-19)
-
### Bug Fixes
-* adds backdrop blur to button ([#3006](https://github.com/payloadcms/payload/issues/3006)) ([4233426](https://github.com/payloadcms/payload/commit/42334263bbc6219be92c5728f1a4ac6c8d2d1306))
-* rich text link element not validating on create ([#3014](https://github.com/payloadcms/payload/issues/3014)) ([60fca40](https://github.com/payloadcms/payload/commit/60fca40780d4ddd8e684a455de55c566ec91e223))
-
+- adds backdrop blur to button ([#3006](https://github.com/payloadcms/payload/issues/3006)) ([4233426](https://github.com/payloadcms/payload/commit/42334263bbc6219be92c5728f1a4ac6c8d2d1306))
+- rich text link element not validating on create ([#3014](https://github.com/payloadcms/payload/issues/3014)) ([60fca40](https://github.com/payloadcms/payload/commit/60fca40780d4ddd8e684a455de55c566ec91e223))
### Features
-* auto-login in config capability ([#3009](https://github.com/payloadcms/payload/issues/3009)) ([733fc0b](https://github.com/payloadcms/payload/commit/733fc0b2d0cf0f2d58c8a28e84776f883774b0e0))
-* returns queried user alongside refreshed token ([#2813](https://github.com/payloadcms/payload/issues/2813)) ([2fc03f1](https://github.com/payloadcms/payload/commit/2fc03f196e4e5fa0ad3369ec976c0b6889ebda88))
-* support logger destination ([#2896](https://github.com/payloadcms/payload/issues/2896)) ([cd0bf68](https://github.com/payloadcms/payload/commit/cd0bf68a6150b1adbdb9ee318ac0a06c4476aa4d))
+- auto-login in config capability ([#3009](https://github.com/payloadcms/payload/issues/3009)) ([733fc0b](https://github.com/payloadcms/payload/commit/733fc0b2d0cf0f2d58c8a28e84776f883774b0e0))
+- returns queried user alongside refreshed token ([#2813](https://github.com/payloadcms/payload/issues/2813)) ([2fc03f1](https://github.com/payloadcms/payload/commit/2fc03f196e4e5fa0ad3369ec976c0b6889ebda88))
+- support logger destination ([#2896](https://github.com/payloadcms/payload/issues/2896)) ([cd0bf68](https://github.com/payloadcms/payload/commit/cd0bf68a6150b1adbdb9ee318ac0a06c4476aa4d))
## [1.11.2](https://github.com/payloadcms/payload/compare/v1.11.1...v1.11.2) (2023-07-14)
-
### Features
-* adds array, collapsible, tab and group error states ([4925f90](https://github.com/payloadcms/payload/commit/4925f90b5f5c8fb8092bf4e8d88d5e0c1846b094))
+- adds array, collapsible, tab and group error states ([4925f90](https://github.com/payloadcms/payload/commit/4925f90b5f5c8fb8092bf4e8d88d5e0c1846b094))
## [1.11.1](https://github.com/payloadcms/payload/compare/v1.11.0...v1.11.1) (2023-07-11)
-
### Bug Fixes
-* [#2980](https://github.com/payloadcms/payload/issues/2980), locale=all was not iterating through arrays / blocks ([d6bfba7](https://github.com/payloadcms/payload/commit/d6bfba72a6b1a84bc5bb9dd14c7ce31d7afcbc1c))
-* anchor Button component respect margins ([#2648](https://github.com/payloadcms/payload/issues/2648)) ([1877d22](https://github.com/payloadcms/payload/commit/1877d2247c89ca5c8e1f0e1f989154d54768fed8))
+- [#2980](https://github.com/payloadcms/payload/issues/2980), locale=all was not iterating through arrays / blocks ([d6bfba7](https://github.com/payloadcms/payload/commit/d6bfba72a6b1a84bc5bb9dd14c7ce31d7afcbc1c))
+- anchor Button component respect margins ([#2648](https://github.com/payloadcms/payload/issues/2648)) ([1877d22](https://github.com/payloadcms/payload/commit/1877d2247c89ca5c8e1f0e1f989154d54768fed8))
# [1.11.0](https://github.com/payloadcms/payload/compare/v1.10.5...v1.11.0) (2023-07-05)
-
### Bug Fixes
-* ensures fields within blocks respect field level access control ([#2969](https://github.com/payloadcms/payload/issues/2969)) ([5b79067](https://github.com/payloadcms/payload/commit/5b79067cc14874abbd1e1a5b6e619d41571b187f))
-* ensures rows always have id's ([#2968](https://github.com/payloadcms/payload/issues/2968)) ([04851d0](https://github.com/payloadcms/payload/commit/04851d0dc99e4a3df0a1ac642e9a4b9a3c06d8a1))
-* GraphQL type for number field ([#2954](https://github.com/payloadcms/payload/issues/2954)) ([29d8bf0](https://github.com/payloadcms/payload/commit/29d8bf0927038d2305218e5a6b811e0c4039d617))
-* nested richtext bug and test ([#2966](https://github.com/payloadcms/payload/issues/2966)) ([801f609](https://github.com/payloadcms/payload/commit/801f60939b1bb4e33fbabe1f9a3c4a04a47912db))
-* properly threads custom react-select props through relationship field ([#2973](https://github.com/payloadcms/payload/issues/2973)) ([79393e8](https://github.com/payloadcms/payload/commit/79393e8cf0b79b31fa711536e0bc22b1a251468a))
-
+- ensures fields within blocks respect field level access control ([#2969](https://github.com/payloadcms/payload/issues/2969)) ([5b79067](https://github.com/payloadcms/payload/commit/5b79067cc14874abbd1e1a5b6e619d41571b187f))
+- ensures rows always have id's ([#2968](https://github.com/payloadcms/payload/issues/2968)) ([04851d0](https://github.com/payloadcms/payload/commit/04851d0dc99e4a3df0a1ac642e9a4b9a3c06d8a1))
+- GraphQL type for number field ([#2954](https://github.com/payloadcms/payload/issues/2954)) ([29d8bf0](https://github.com/payloadcms/payload/commit/29d8bf0927038d2305218e5a6b811e0c4039d617))
+- nested richtext bug and test ([#2966](https://github.com/payloadcms/payload/issues/2966)) ([801f609](https://github.com/payloadcms/payload/commit/801f60939b1bb4e33fbabe1f9a3c4a04a47912db))
+- properly threads custom react-select props through relationship field ([#2973](https://github.com/payloadcms/payload/issues/2973)) ([79393e8](https://github.com/payloadcms/payload/commit/79393e8cf0b79b31fa711536e0bc22b1a251468a))
### Features
-* improve typing of ExtendableError and APIError ([#2864](https://github.com/payloadcms/payload/issues/2864)) ([7c47e4b](https://github.com/payloadcms/payload/commit/7c47e4b0d3c63f6f7800daaf424935d6067ffcc4))
-* narrow endpoint.method type ([#1880](https://github.com/payloadcms/payload/issues/1880)) ([b734a1c](https://github.com/payloadcms/payload/commit/b734a1c422d200cad1085b7e92f8540df4238e32))
+- improve typing of ExtendableError and APIError ([#2864](https://github.com/payloadcms/payload/issues/2864)) ([7c47e4b](https://github.com/payloadcms/payload/commit/7c47e4b0d3c63f6f7800daaf424935d6067ffcc4))
+- narrow endpoint.method type ([#1880](https://github.com/payloadcms/payload/issues/1880)) ([b734a1c](https://github.com/payloadcms/payload/commit/b734a1c422d200cad1085b7e92f8540df4238e32))
## [1.10.5](https://github.com/payloadcms/payload/compare/v1.10.4...v1.10.5) (2023-06-30)
-
### Bug Fixes
-* fields in drawer cannot be edited ([#2949](https://github.com/payloadcms/payload/issues/2949)) ([0c2e41c](https://github.com/payloadcms/payload/commit/0c2e41c4bef9333c47a9b1db0de807696b3f3872)), closes [#2945](https://github.com/payloadcms/payload/issues/2945)
-* improve versions test suite ([#2941](https://github.com/payloadcms/payload/issues/2941)) ([1d4df99](https://github.com/payloadcms/payload/commit/1d4df99ea78c5f682074ae824dcd8dea18b774e0))
-* incorrect graphql type generation ([#2898](https://github.com/payloadcms/payload/issues/2898)) ([b36deb4](https://github.com/payloadcms/payload/commit/b36deb4640cad4f494a12ab74b4e4d9a918cd94b))
+- fields in drawer cannot be edited ([#2949](https://github.com/payloadcms/payload/issues/2949)) ([0c2e41c](https://github.com/payloadcms/payload/commit/0c2e41c4bef9333c47a9b1db0de807696b3f3872)), closes [#2945](https://github.com/payloadcms/payload/issues/2945)
+- improve versions test suite ([#2941](https://github.com/payloadcms/payload/issues/2941)) ([1d4df99](https://github.com/payloadcms/payload/commit/1d4df99ea78c5f682074ae824dcd8dea18b774e0))
+- incorrect graphql type generation ([#2898](https://github.com/payloadcms/payload/issues/2898)) ([b36deb4](https://github.com/payloadcms/payload/commit/b36deb4640cad4f494a12ab74b4e4d9a918cd94b))
## [1.10.4](https://github.com/payloadcms/payload/compare/v1.10.3...v1.10.4) (2023-06-30)
-
### Features
-* add locale to displayed API URL ([b22d157](https://github.com/payloadcms/payload/commit/b22d157bd2f1c1a857e2d42bdc5b893549e3db9e))
+- add locale to displayed API URL ([b22d157](https://github.com/payloadcms/payload/commit/b22d157bd2f1c1a857e2d42bdc5b893549e3db9e))
## [1.10.3](https://github.com/payloadcms/payload/compare/v1.10.2...v1.10.3) (2023-06-30)
-
### Bug Fixes
-* [#2937](https://github.com/payloadcms/payload/issues/2937), depth not being respected in graphql rich text fields ([f84b432](https://github.com/payloadcms/payload/commit/f84b4323e2fce57e2e14b181e486ed72cc09ded5))
-* shows updatedAt date when selecting a version to compare from dropdown ([3c9dab3](https://github.com/payloadcms/payload/commit/3c9dab3b9d5302d8bdf5792f0384cd5aeeb13839))
+- [#2937](https://github.com/payloadcms/payload/issues/2937), depth not being respected in graphql rich text fields ([f84b432](https://github.com/payloadcms/payload/commit/f84b4323e2fce57e2e14b181e486ed72cc09ded5))
+- shows updatedAt date when selecting a version to compare from dropdown ([3c9dab3](https://github.com/payloadcms/payload/commit/3c9dab3b9d5302d8bdf5792f0384cd5aeeb13839))
## [1.10.2](https://github.com/payloadcms/payload/compare/v1.10.1...v1.10.2) (2023-06-26)
-
### Bug Fixes
-* adjusts swc loader to only exclude non ts/tsx files - [#2888](https://github.com/payloadcms/payload/issues/2888) ([#2907](https://github.com/payloadcms/payload/issues/2907)) ([a2d9ef3](https://github.com/payloadcms/payload/commit/a2d9ef3ca618934df58102a7e02e86dbe0ed63da))
-* autosave on localized fields, adds test ([6893231](https://github.com/payloadcms/payload/commit/6893231f85f702189089a6d78d3f3af63aaa0d82))
-* broken export of entityToJSONSchema ([#2894](https://github.com/payloadcms/payload/issues/2894)) ([837dccc](https://github.com/payloadcms/payload/commit/837dcccefeffe7bb6e674713b4184c4eb92db8dc))
-* correctly scopes data variable within bulk update - [#2901](https://github.com/payloadcms/payload/issues/2901) ([#2904](https://github.com/payloadcms/payload/issues/2904)) ([f627277](https://github.com/payloadcms/payload/commit/f627277479e6a4a847e79f54c545712a7186abb9))
-* safely check for tempFilePath when updating media document ([#2899](https://github.com/payloadcms/payload/issues/2899)) ([8206c0f](https://github.com/payloadcms/payload/commit/8206c0fe8be78a5e0f7c8e64996d73d135b1fcc2))
+- adjusts swc loader to only exclude non ts/tsx files - [#2888](https://github.com/payloadcms/payload/issues/2888) ([#2907](https://github.com/payloadcms/payload/issues/2907)) ([a2d9ef3](https://github.com/payloadcms/payload/commit/a2d9ef3ca618934df58102a7e02e86dbe0ed63da))
+- autosave on localized fields, adds test ([6893231](https://github.com/payloadcms/payload/commit/6893231f85f702189089a6d78d3f3af63aaa0d82))
+- broken export of entityToJSONSchema ([#2894](https://github.com/payloadcms/payload/issues/2894)) ([837dccc](https://github.com/payloadcms/payload/commit/837dcccefeffe7bb6e674713b4184c4eb92db8dc))
+- correctly scopes data variable within bulk update - [#2901](https://github.com/payloadcms/payload/issues/2901) ([#2904](https://github.com/payloadcms/payload/issues/2904)) ([f627277](https://github.com/payloadcms/payload/commit/f627277479e6a4a847e79f54c545712a7186abb9))
+- safely check for tempFilePath when updating media document ([#2899](https://github.com/payloadcms/payload/issues/2899)) ([8206c0f](https://github.com/payloadcms/payload/commit/8206c0fe8be78a5e0f7c8e64996d73d135b1fcc2))
## [1.10.1](https://github.com/payloadcms/payload/compare/v1.10.0...v1.10.1) (2023-06-22)
-
### Bug Fixes
-* conditional fields perf bug - [#2886](https://github.com/payloadcms/payload/issues/2886) ([#2890](https://github.com/payloadcms/payload/issues/2890)) ([b83d788](https://github.com/payloadcms/payload/commit/b83d788d3cfe12f87dcd63a9df20b939a6f4681e))
-* cutoff tooltips in relationship field ([#2873](https://github.com/payloadcms/payload/issues/2873)) ([09c6cad](https://github.com/payloadcms/payload/commit/09c6cad3e8462dc3d8b1b6424aafd336c1d7828c))
-* Relationship hasMany and filterOptions fails above 10 items ([#2891](https://github.com/payloadcms/payload/issues/2891)) ([8128de6](https://github.com/payloadcms/payload/commit/8128de64dff98fdbcf053faef9de3c3f9a733071))
+- conditional fields perf bug - [#2886](https://github.com/payloadcms/payload/issues/2886) ([#2890](https://github.com/payloadcms/payload/issues/2890)) ([b83d788](https://github.com/payloadcms/payload/commit/b83d788d3cfe12f87dcd63a9df20b939a6f4681e))
+- cutoff tooltips in relationship field ([#2873](https://github.com/payloadcms/payload/issues/2873)) ([09c6cad](https://github.com/payloadcms/payload/commit/09c6cad3e8462dc3d8b1b6424aafd336c1d7828c))
+- Relationship hasMany and filterOptions fails above 10 items ([#2891](https://github.com/payloadcms/payload/issues/2891)) ([8128de6](https://github.com/payloadcms/payload/commit/8128de64dff98fdbcf053faef9de3c3f9a733071))
# [1.10.0](https://github.com/payloadcms/payload/compare/v1.9.5...v1.10.0) (2023-06-20)
-
### Bug Fixes
-* [#2831](https://github.com/payloadcms/payload/issues/2831), persists payloadAPI through local operations that accept req ([85d2467](https://github.com/payloadcms/payload/commit/85d2467d73582a372ee34e3ce93403847a1f0689))
-* [#2842](https://github.com/payloadcms/payload/issues/2842), querying number custom ids with in ([116e9ff](https://github.com/payloadcms/payload/commit/116e9ffe81f44c4b40fa578b4a8fe4bb70fd110c))
-* default sort with near operator ([#2862](https://github.com/payloadcms/payload/issues/2862)) ([99f3809](https://github.com/payloadcms/payload/commit/99f38098dd4a386437c469becc975ca86c54601f))
-* deprecate min/max in exchange for minRows and maxRows for relationship field ([#2826](https://github.com/payloadcms/payload/issues/2826)) ([0d8d7f3](https://github.com/payloadcms/payload/commit/0d8d7f358d390184f6f888d77858b4a145e94214))
-* drawer close on backspace ([#2869](https://github.com/payloadcms/payload/issues/2869)) ([a110ba2](https://github.com/payloadcms/payload/commit/a110ba2dc09cd0824a9b1eb8e011604388277bd8))
-* drawer fields are read-only if opened from a hasMany relationship ([#2843](https://github.com/payloadcms/payload/issues/2843)) ([542b536](https://github.com/payloadcms/payload/commit/542b5362d3ec8741aff6b1672fab7d2250e7b854))
-* fields in relationship drawer not usable [#2815](https://github.com/payloadcms/payload/issues/2815) ([#2870](https://github.com/payloadcms/payload/issues/2870)) ([8626dc6](https://github.com/payloadcms/payload/commit/8626dc6b1a926143e7ba505f3edd924432168675))
-* mobile loading overlay width [#2866](https://github.com/payloadcms/payload/issues/2866) ([#2867](https://github.com/payloadcms/payload/issues/2867)) ([ba9d633](https://github.com/payloadcms/payload/commit/ba9d6336acc779cfec0db312c8e2da912ce58cd4))
-* near query sorting by distance and pagination ([#2861](https://github.com/payloadcms/payload/issues/2861)) ([1611896](https://github.com/payloadcms/payload/commit/16118960aa6d63f7a429f168ff4305f336b1b1e6))
-* relationship field query pagination ([#2871](https://github.com/payloadcms/payload/issues/2871)) ([ce84174](https://github.com/payloadcms/payload/commit/ce84174554d9d828cbaaaa9548e5defc0feb4e2b))
-* slow like queries with lots of records ([4dd703a](https://github.com/payloadcms/payload/commit/4dd703a6bff0ab7d06af234baa975553bd62f176))
-
+- [#2831](https://github.com/payloadcms/payload/issues/2831), persists payloadAPI through local operations that accept req ([85d2467](https://github.com/payloadcms/payload/commit/85d2467d73582a372ee34e3ce93403847a1f0689))
+- [#2842](https://github.com/payloadcms/payload/issues/2842), querying number custom ids with in ([116e9ff](https://github.com/payloadcms/payload/commit/116e9ffe81f44c4b40fa578b4a8fe4bb70fd110c))
+- default sort with near operator ([#2862](https://github.com/payloadcms/payload/issues/2862)) ([99f3809](https://github.com/payloadcms/payload/commit/99f38098dd4a386437c469becc975ca86c54601f))
+- deprecate min/max in exchange for minRows and maxRows for relationship field ([#2826](https://github.com/payloadcms/payload/issues/2826)) ([0d8d7f3](https://github.com/payloadcms/payload/commit/0d8d7f358d390184f6f888d77858b4a145e94214))
+- drawer close on backspace ([#2869](https://github.com/payloadcms/payload/issues/2869)) ([a110ba2](https://github.com/payloadcms/payload/commit/a110ba2dc09cd0824a9b1eb8e011604388277bd8))
+- drawer fields are read-only if opened from a hasMany relationship ([#2843](https://github.com/payloadcms/payload/issues/2843)) ([542b536](https://github.com/payloadcms/payload/commit/542b5362d3ec8741aff6b1672fab7d2250e7b854))
+- fields in relationship drawer not usable [#2815](https://github.com/payloadcms/payload/issues/2815) ([#2870](https://github.com/payloadcms/payload/issues/2870)) ([8626dc6](https://github.com/payloadcms/payload/commit/8626dc6b1a926143e7ba505f3edd924432168675))
+- mobile loading overlay width [#2866](https://github.com/payloadcms/payload/issues/2866) ([#2867](https://github.com/payloadcms/payload/issues/2867)) ([ba9d633](https://github.com/payloadcms/payload/commit/ba9d6336acc779cfec0db312c8e2da912ce58cd4))
+- near query sorting by distance and pagination ([#2861](https://github.com/payloadcms/payload/issues/2861)) ([1611896](https://github.com/payloadcms/payload/commit/16118960aa6d63f7a429f168ff4305f336b1b1e6))
+- relationship field query pagination ([#2871](https://github.com/payloadcms/payload/issues/2871)) ([ce84174](https://github.com/payloadcms/payload/commit/ce84174554d9d828cbaaaa9548e5defc0feb4e2b))
+- slow like queries with lots of records ([4dd703a](https://github.com/payloadcms/payload/commit/4dd703a6bff0ab7d06af234baa975553bd62f176))
### Features
-* automatically redirect a user back to their originally requested URL after login ([#2838](https://github.com/payloadcms/payload/issues/2838)) ([e910688](https://github.com/payloadcms/payload/commit/e9106882f721d43bcc05a1690bda7754b450404e))
-* hasMany for number field ([#2517](https://github.com/payloadcms/payload/issues/2517)) ([8f086e3](https://github.com/payloadcms/payload/commit/8f086e315cb30be9d399fd3022c16952fb81cb2e)), closes [#2812](https://github.com/payloadcms/payload/issues/2812) [#2821](https://github.com/payloadcms/payload/issues/2821) [#2823](https://github.com/payloadcms/payload/issues/2823) [#2824](https://github.com/payloadcms/payload/issues/2824) [#2814](https://github.com/payloadcms/payload/issues/2814) [#2793](https://github.com/payloadcms/payload/issues/2793) [#2835](https://github.com/payloadcms/payload/issues/2835)
-* optimizes conditional logic performance ([967f217](https://github.com/payloadcms/payload/commit/967f21734600de1fec8c1227a354ef5a417e54c5))
+- automatically redirect a user back to their originally requested URL after login ([#2838](https://github.com/payloadcms/payload/issues/2838)) ([e910688](https://github.com/payloadcms/payload/commit/e9106882f721d43bcc05a1690bda7754b450404e))
+- hasMany for number field ([#2517](https://github.com/payloadcms/payload/issues/2517)) ([8f086e3](https://github.com/payloadcms/payload/commit/8f086e315cb30be9d399fd3022c16952fb81cb2e)), closes [#2812](https://github.com/payloadcms/payload/issues/2812) [#2821](https://github.com/payloadcms/payload/issues/2821) [#2823](https://github.com/payloadcms/payload/issues/2823) [#2824](https://github.com/payloadcms/payload/issues/2824) [#2814](https://github.com/payloadcms/payload/issues/2814) [#2793](https://github.com/payloadcms/payload/issues/2793) [#2835](https://github.com/payloadcms/payload/issues/2835)
+- optimizes conditional logic performance ([967f217](https://github.com/payloadcms/payload/commit/967f21734600de1fec8c1227a354ef5a417e54c5))
## [1.9.5](https://github.com/payloadcms/payload/compare/v1.9.4...v1.9.5) (2023-06-16)
## [1.9.4](https://github.com/payloadcms/payload/compare/v1.9.3...v1.9.4) (2023-06-16)
-
### Bug Fixes
-* incorrectly return totalDocs=1 instead of the correct count when pagination=false ([2e73938](https://github.com/payloadcms/payload/commit/2e7393853447d2da41ddef79f73e9026719a674b))
+- incorrectly return totalDocs=1 instead of the correct count when pagination=false ([2e73938](https://github.com/payloadcms/payload/commit/2e7393853447d2da41ddef79f73e9026719a674b))
## [1.9.3](https://github.com/payloadcms/payload/compare/v1.9.2...v1.9.3) (2023-06-16)
-
### Bug Fixes
-* adds custom property to ui field in joi validation ([#2835](https://github.com/payloadcms/payload/issues/2835)) ([56d7745](https://github.com/payloadcms/payload/commit/56d7745139e31c5d42c5191477f409f12589a952))
-* ensures relations to object ids can be queried on ([c3d6e1b](https://github.com/payloadcms/payload/commit/c3d6e1b490a69f0aadb00e54e46a8774732e6658))
+- adds custom property to ui field in joi validation ([#2835](https://github.com/payloadcms/payload/issues/2835)) ([56d7745](https://github.com/payloadcms/payload/commit/56d7745139e31c5d42c5191477f409f12589a952))
+- ensures relations to object ids can be queried on ([c3d6e1b](https://github.com/payloadcms/payload/commit/c3d6e1b490a69f0aadb00e54e46a8774732e6658))
## [1.9.2](https://github.com/payloadcms/payload/compare/v1.9.1...v1.9.2) (2023-06-14)
-
### Bug Fixes
-* [#2821](https://github.com/payloadcms/payload/issues/2821) i18n ui field label ([#2823](https://github.com/payloadcms/payload/issues/2823)) ([63cd7fb](https://github.com/payloadcms/payload/commit/63cd7fbd0c91bbf5120e95fd33388a38e593b341))
-* adds missing dark-mode styles for version differences view ([#2812](https://github.com/payloadcms/payload/issues/2812)) ([346a48f](https://github.com/payloadcms/payload/commit/346a48f871e09a3d5e25b7ff9e45689a104b0f9f))
-* sanitize reset password result - [#2805](https://github.com/payloadcms/payload/issues/2805) ([#2808](https://github.com/payloadcms/payload/issues/2808)) ([46a5f41](https://github.com/payloadcms/payload/commit/46a5f417217313b049f4b412abb3319634f27262))
-* user can be created without having to specify an email - [#2801](https://github.com/payloadcms/payload/issues/2801) ([abe3852](https://github.com/payloadcms/payload/commit/abe38520aaaefdfaea4c47130eea04a42a82627b))
+- [#2821](https://github.com/payloadcms/payload/issues/2821) i18n ui field label ([#2823](https://github.com/payloadcms/payload/issues/2823)) ([63cd7fb](https://github.com/payloadcms/payload/commit/63cd7fbd0c91bbf5120e95fd33388a38e593b341))
+- adds missing dark-mode styles for version differences view ([#2812](https://github.com/payloadcms/payload/issues/2812)) ([346a48f](https://github.com/payloadcms/payload/commit/346a48f871e09a3d5e25b7ff9e45689a104b0f9f))
+- sanitize reset password result - [#2805](https://github.com/payloadcms/payload/issues/2805) ([#2808](https://github.com/payloadcms/payload/issues/2808)) ([46a5f41](https://github.com/payloadcms/payload/commit/46a5f417217313b049f4b412abb3319634f27262))
+- user can be created without having to specify an email - [#2801](https://github.com/payloadcms/payload/issues/2801) ([abe3852](https://github.com/payloadcms/payload/commit/abe38520aaaefdfaea4c47130eea04a42a82627b))
## [1.9.1](https://github.com/payloadcms/payload/compare/v1.9.0...v1.9.1) (2023-06-09)
-
### Features
-* adds option to customize filename on upload ([596eea1](https://github.com/payloadcms/payload/commit/596eea1f0a42628464e5269c496360b808c35f97))
-* collection list view custom components: BeforeList, BeforeListTable, AfterListTable, AfterList ([#2792](https://github.com/payloadcms/payload/issues/2792)) ([38e962f](https://github.com/payloadcms/payload/commit/38e962f2cbcaf9eaa72276969289efdbf670c7c7))
+- adds option to customize filename on upload ([596eea1](https://github.com/payloadcms/payload/commit/596eea1f0a42628464e5269c496360b808c35f97))
+- collection list view custom components: BeforeList, BeforeListTable, AfterListTable, AfterList ([#2792](https://github.com/payloadcms/payload/issues/2792)) ([38e962f](https://github.com/payloadcms/payload/commit/38e962f2cbcaf9eaa72276969289efdbf670c7c7))
# [1.9.0](https://github.com/payloadcms/payload/compare/v1.8.6...v1.9.0) (2023-06-07)
-
### Features
-* custom type interfaces ([#2709](https://github.com/payloadcms/payload/issues/2709)) ([8458a98](https://github.com/payloadcms/payload/commit/8458a98eff0eedf1abfd9ec065a084955a9b8149))
+- custom type interfaces ([#2709](https://github.com/payloadcms/payload/issues/2709)) ([8458a98](https://github.com/payloadcms/payload/commit/8458a98eff0eedf1abfd9ec065a084955a9b8149))
## [1.8.6](https://github.com/payloadcms/payload/compare/v1.8.5...v1.8.6) (2023-06-07)
-
### Bug Fixes
-* [#2711](https://github.com/payloadcms/payload/issues/2711) index sortable field global versions fields ([#2775](https://github.com/payloadcms/payload/issues/2775)) ([576af01](https://github.com/payloadcms/payload/commit/576af01b6f81d24621d522e8d8b9c496eafa6df0))
-* [#2767](https://github.com/payloadcms/payload/issues/2767) bulk operations missing locales in admin requests ([e30871a](https://github.com/payloadcms/payload/commit/e30871a96ff25f12401a3cc3bc5e12c064eeff3f))
-* [#2771](https://github.com/payloadcms/payload/issues/2771) relationship field not querying all collections ([#2774](https://github.com/payloadcms/payload/issues/2774)) ([8b767a1](https://github.com/payloadcms/payload/commit/8b767a166aa16659d8880cc68da546251725b20b))
-* adjusts activation constraint of draggable nodes ([#2773](https://github.com/payloadcms/payload/issues/2773)) ([863be3d](https://github.com/payloadcms/payload/commit/863be3d852af6c6a76021695f895badf23e776ae))
-* flattens relationships in the update operation for globals [#2766](https://github.com/payloadcms/payload/issues/2766) ([#2776](https://github.com/payloadcms/payload/issues/2776)) ([3677cf6](https://github.com/payloadcms/payload/commit/3677cf688d0e456c42068b4eab0086e64407d938))
-* improperly typing optional arrays with required fields as required ([f1fc305](https://github.com/payloadcms/payload/commit/f1fc305ac443ecb247622bc89067b129e96146fc))
-* read-only Auth fields ([#2781](https://github.com/payloadcms/payload/issues/2781)) ([3c72f33](https://github.com/payloadcms/payload/commit/3c72f3303c57e88256266c343225157e0b081bba))
-* read-only Auth fields ([#2781](https://github.com/payloadcms/payload/issues/2781)) ([60f5522](https://github.com/payloadcms/payload/commit/60f5522e67acb353e6d5ce05f0012241c192d4b4))
-* recursiveNestedPaths not merging existing fields when hoisting row/collapsible fields ([#2769](https://github.com/payloadcms/payload/issues/2769)) ([536d701](https://github.com/payloadcms/payload/commit/536d7017eebd5a8e14b2936c55a7fccc90d3f530))
+- [#2711](https://github.com/payloadcms/payload/issues/2711) index sortable field global versions fields ([#2775](https://github.com/payloadcms/payload/issues/2775)) ([576af01](https://github.com/payloadcms/payload/commit/576af01b6f81d24621d522e8d8b9c496eafa6df0))
+- [#2767](https://github.com/payloadcms/payload/issues/2767) bulk operations missing locales in admin requests ([e30871a](https://github.com/payloadcms/payload/commit/e30871a96ff25f12401a3cc3bc5e12c064eeff3f))
+- [#2771](https://github.com/payloadcms/payload/issues/2771) relationship field not querying all collections ([#2774](https://github.com/payloadcms/payload/issues/2774)) ([8b767a1](https://github.com/payloadcms/payload/commit/8b767a166aa16659d8880cc68da546251725b20b))
+- adjusts activation constraint of draggable nodes ([#2773](https://github.com/payloadcms/payload/issues/2773)) ([863be3d](https://github.com/payloadcms/payload/commit/863be3d852af6c6a76021695f895badf23e776ae))
+- flattens relationships in the update operation for globals [#2766](https://github.com/payloadcms/payload/issues/2766) ([#2776](https://github.com/payloadcms/payload/issues/2776)) ([3677cf6](https://github.com/payloadcms/payload/commit/3677cf688d0e456c42068b4eab0086e64407d938))
+- improperly typing optional arrays with required fields as required ([f1fc305](https://github.com/payloadcms/payload/commit/f1fc305ac443ecb247622bc89067b129e96146fc))
+- read-only Auth fields ([#2781](https://github.com/payloadcms/payload/issues/2781)) ([3c72f33](https://github.com/payloadcms/payload/commit/3c72f3303c57e88256266c343225157e0b081bba))
+- read-only Auth fields ([#2781](https://github.com/payloadcms/payload/issues/2781)) ([60f5522](https://github.com/payloadcms/payload/commit/60f5522e67acb353e6d5ce05f0012241c192d4b4))
+- recursiveNestedPaths not merging existing fields when hoisting row/collapsible fields ([#2769](https://github.com/payloadcms/payload/issues/2769)) ([536d701](https://github.com/payloadcms/payload/commit/536d7017eebd5a8e14b2936c55a7fccc90d3f530))
## [1.8.5](https://github.com/payloadcms/payload/compare/v1.8.4...v1.8.5) (2023-06-03)
-
### Features
-* allows objectid through relationship validation ([42afa6b](https://github.com/payloadcms/payload/commit/42afa6b48aa924fa0dfc9defadf08ddb029da6c1))
+- allows objectid through relationship validation ([42afa6b](https://github.com/payloadcms/payload/commit/42afa6b48aa924fa0dfc9defadf08ddb029da6c1))
## [1.8.4](https://github.com/payloadcms/payload/compare/v1.8.3...v1.8.4) (2023-06-02)
-
### Features
-* Add Bulgarian translation ([#2753](https://github.com/payloadcms/payload/issues/2753)) ([51108c0](https://github.com/payloadcms/payload/commit/51108c02ea346fd41c1b94ef7c339feec8383dd1))
-
+- Add Bulgarian translation ([#2753](https://github.com/payloadcms/payload/issues/2753)) ([51108c0](https://github.com/payloadcms/payload/commit/51108c02ea346fd41c1b94ef7c339feec8383dd1))
### Bug Fixes
-* group row hoisting ([#2683](https://github.com/payloadcms/payload/issues/2683)) ([1626e17](https://github.com/payloadcms/payload/commit/1626e173b7eced83c59e8eb4f70b0bb68fdb0e7a))
-* graphql where types on rows and collapsible's ([#2758](https://github.com/payloadcms/payload/issues/2758)) ([f978299](https://github.com/payloadcms/payload/commit/f978299868bf352e147070afdf556bf1153bac56))
-* RichText link custom fields ([#2756](https://github.com/payloadcms/payload/issues/2756)) ([23be263](https://github.com/payloadcms/payload/commit/23be263dd2e75dca448019b1c66d7f6dd3558b37))
-* adds timestamps to global schemas ([#2738](https://github.com/payloadcms/payload/issues/2738)) ([0986282](https://github.com/payloadcms/payload/commit/0986282f13d8a3b5596c4a241b4da35e6fac6aa1))
-* adjusts code field joi schema to allow editorOptions ([ed136fb](https://github.com/payloadcms/payload/commit/ed136fbc5146889cd30c641d4947da58b66dfb2f))
-* fix locale popup overflow ([#2737](https://github.com/payloadcms/payload/issues/2737)) ([8ee9724](https://github.com/payloadcms/payload/commit/8ee9724277d419de78b27a8ffa22f3a599361251))
-* fix tests by hard-coding the URL in the logger ([2697974](https://github.com/payloadcms/payload/commit/2697974694112440bf1737c4ce535ba77bf4b194))
-* mongoose connection ([#2754](https://github.com/payloadcms/payload/issues/2754)) ([69b97bb](https://github.com/payloadcms/payload/commit/69b97bbc590c62fffbcd03a42f0e9737e3f7ca01))
-* removes payload dependency inception ([#2717](https://github.com/payloadcms/payload/issues/2717)) ([6125b66](https://github.com/payloadcms/payload/commit/6125b66286e5315725ca0ae365c81a04c1c1a54c))
-* searches on correct useAsTitle field in polymorphic list drawers [#2710](https://github.com/payloadcms/payload/issues/2710) ([9ec2a40](https://github.com/payloadcms/payload/commit/9ec2a40274ea9b3a32e43cb992df3897baf62e63))
-* typing of sendMail function ([e3ff4c4](https://github.com/payloadcms/payload/commit/e3ff4c46cbecf731c9a3c688682bcb33012cb234))
-* corrects relationship field schema from pr [#2696](https://github.com/payloadcms/payload/issues/2696) ([#2714](https://github.com/payloadcms/payload/issues/2714)) ([8285bac](https://github.com/payloadcms/payload/commit/8285bac2f5eb443b6af160b21726edf3f828a52f))
-
+- group row hoisting ([#2683](https://github.com/payloadcms/payload/issues/2683)) ([1626e17](https://github.com/payloadcms/payload/commit/1626e173b7eced83c59e8eb4f70b0bb68fdb0e7a))
+- graphql where types on rows and collapsible's ([#2758](https://github.com/payloadcms/payload/issues/2758)) ([f978299](https://github.com/payloadcms/payload/commit/f978299868bf352e147070afdf556bf1153bac56))
+- RichText link custom fields ([#2756](https://github.com/payloadcms/payload/issues/2756)) ([23be263](https://github.com/payloadcms/payload/commit/23be263dd2e75dca448019b1c66d7f6dd3558b37))
+- adds timestamps to global schemas ([#2738](https://github.com/payloadcms/payload/issues/2738)) ([0986282](https://github.com/payloadcms/payload/commit/0986282f13d8a3b5596c4a241b4da35e6fac6aa1))
+- adjusts code field joi schema to allow editorOptions ([ed136fb](https://github.com/payloadcms/payload/commit/ed136fbc5146889cd30c641d4947da58b66dfb2f))
+- fix locale popup overflow ([#2737](https://github.com/payloadcms/payload/issues/2737)) ([8ee9724](https://github.com/payloadcms/payload/commit/8ee9724277d419de78b27a8ffa22f3a599361251))
+- fix tests by hard-coding the URL in the logger ([2697974](https://github.com/payloadcms/payload/commit/2697974694112440bf1737c4ce535ba77bf4b194))
+- mongoose connection ([#2754](https://github.com/payloadcms/payload/issues/2754)) ([69b97bb](https://github.com/payloadcms/payload/commit/69b97bbc590c62fffbcd03a42f0e9737e3f7ca01))
+- removes payload dependency inception ([#2717](https://github.com/payloadcms/payload/issues/2717)) ([6125b66](https://github.com/payloadcms/payload/commit/6125b66286e5315725ca0ae365c81a04c1c1a54c))
+- searches on correct useAsTitle field in polymorphic list drawers [#2710](https://github.com/payloadcms/payload/issues/2710) ([9ec2a40](https://github.com/payloadcms/payload/commit/9ec2a40274ea9b3a32e43cb992df3897baf62e63))
+- typing of sendMail function ([e3ff4c4](https://github.com/payloadcms/payload/commit/e3ff4c46cbecf731c9a3c688682bcb33012cb234))
+- corrects relationship field schema from pr [#2696](https://github.com/payloadcms/payload/issues/2696) ([#2714](https://github.com/payloadcms/payload/issues/2714)) ([8285bac](https://github.com/payloadcms/payload/commit/8285bac2f5eb443b6af160b21726edf3f828a52f))
## [1.8.3](https://github.com/payloadcms/payload/compare/v1.8.3...v1.8.3) (2023-05-24)
-
### Bug Fixes
-* [#2662](https://github.com/payloadcms/payload/issues/2662), draft=true querying by id ([3b78ab0](https://github.com/payloadcms/payload/commit/3b78ab04c7a68e39afa9936ac692169ed2c8fb74))
-* [#2685](https://github.com/payloadcms/payload/issues/2685), graphql querying relationships with custom id ([9bb5470](https://github.com/payloadcms/payload/commit/9bb54703423b3f0fdb242a5e63f322d346323b06))
-* adds credentials to doc access request ([#2705](https://github.com/payloadcms/payload/issues/2705)) ([c716954](https://github.com/payloadcms/payload/commit/c716954e89b0aef976cbcbef9ece981ec9bab233))
-* prevents add new relationship modal from adding duplicative values to the parent doc [#2688](https://github.com/payloadcms/payload/issues/2688) ([a2a8ac9](https://github.com/payloadcms/payload/commit/a2a8ac9549bd67e6ab578772689684fd2bc64872))
-* unable to clear relationships or open relationship drawer on mobile [#2691](https://github.com/payloadcms/payload/issues/2691) [#2692](https://github.com/payloadcms/payload/issues/2692) ([782f8ca](https://github.com/payloadcms/payload/commit/782f8ca047178cadb4214702854a0e0cb2d9eaab))
+- [#2662](https://github.com/payloadcms/payload/issues/2662), draft=true querying by id ([3b78ab0](https://github.com/payloadcms/payload/commit/3b78ab04c7a68e39afa9936ac692169ed2c8fb74))
+- [#2685](https://github.com/payloadcms/payload/issues/2685), graphql querying relationships with custom id ([9bb5470](https://github.com/payloadcms/payload/commit/9bb54703423b3f0fdb242a5e63f322d346323b06))
+- adds credentials to doc access request ([#2705](https://github.com/payloadcms/payload/issues/2705)) ([c716954](https://github.com/payloadcms/payload/commit/c716954e89b0aef976cbcbef9ece981ec9bab233))
+- prevents add new relationship modal from adding duplicative values to the parent doc [#2688](https://github.com/payloadcms/payload/issues/2688) ([a2a8ac9](https://github.com/payloadcms/payload/commit/a2a8ac9549bd67e6ab578772689684fd2bc64872))
+- unable to clear relationships or open relationship drawer on mobile [#2691](https://github.com/payloadcms/payload/issues/2691) [#2692](https://github.com/payloadcms/payload/issues/2692) ([782f8ca](https://github.com/payloadcms/payload/commit/782f8ca047178cadb4214702854a0e0cb2d9eaab))
## [1.8.2](https://github.com/payloadcms/payload/compare/v1.8.1...v1.8.2) (2023-05-10)
-
### Bug Fixes
-* react webpack alias ([1732bb8](https://github.com/payloadcms/payload/commit/1732bb877ca9688fc87cf44fbf63d05b6be23de2))
+- react webpack alias ([1732bb8](https://github.com/payloadcms/payload/commit/1732bb877ca9688fc87cf44fbf63d05b6be23de2))
## [1.8.1](https://github.com/payloadcms/payload/compare/v1.8.0...v1.8.1) (2023-05-10)
-
### Bug Fixes
-* add dotenv.config() to test/dev.ts ([#2646](https://github.com/payloadcms/payload/issues/2646)) ([7963e75](https://github.com/payloadcms/payload/commit/7963e7540f4899c16a49b47cf5145f46ea0c71cf))
-
+- add dotenv.config() to test/dev.ts ([#2646](https://github.com/payloadcms/payload/issues/2646)) ([7963e75](https://github.com/payloadcms/payload/commit/7963e7540f4899c16a49b47cf5145f46ea0c71cf))
### Features
-* allow users to manipulate images without needing to resize them ([#2574](https://github.com/payloadcms/payload/issues/2574)) ([8531687](https://github.com/payloadcms/payload/commit/85316879cd97933ed34588b0cee72798964de281))
-* export additional graphql types ([#2610](https://github.com/payloadcms/payload/issues/2610)) ([3f185cb](https://github.com/payloadcms/payload/commit/3f185cb18b9677654b92921267ffef408388d0d1))
+- allow users to manipulate images without needing to resize them ([#2574](https://github.com/payloadcms/payload/issues/2574)) ([8531687](https://github.com/payloadcms/payload/commit/85316879cd97933ed34588b0cee72798964de281))
+- export additional graphql types ([#2610](https://github.com/payloadcms/payload/issues/2610)) ([3f185cb](https://github.com/payloadcms/payload/commit/3f185cb18b9677654b92921267ffef408388d0d1))
# [1.8.0](https://github.com/payloadcms/payload/compare/v1.7.5...v1.8.0) (2023-05-09)
-
### Bug Fixes
-* correct casing on graphql type ([219f50b](https://github.com/payloadcms/payload/commit/219f50b0bc7a520655a5ae4f1d8b08fd04c8a3dd))
-* defaultValue missing from Upload field schema ([7b21eaf](https://github.com/payloadcms/payload/commit/7b21eaf12da64778568b45e56fa8d39e81f11c29))
-* ensures nested querying works when querying across collections ([09974fa](https://github.com/payloadcms/payload/commit/09974fa68677586c727943cc234311f87bf6da75))
-* query custom text id fields ([967f2ac](https://github.com/payloadcms/payload/commit/967f2ace0ea1a65570f69e85920f2f55626efde0))
-* removes deprecated queryHiddenFIelds from local API docs ([5f30dbb](https://github.com/payloadcms/payload/commit/5f30dbb1a5b7c7ab6752c114710f92c159319d3d))
-* removes queryHiddenFields from example Find operation ([fb4f822](https://github.com/payloadcms/payload/commit/fb4f822d34d0235a537f96515073e2662680412f))
-* resolve process/browser package in webpack config ([02f27f3](https://github.com/payloadcms/payload/commit/02f27f3de6fdaf5dd0023298fc671a8ae9a1b758))
-* Row groups in tabs vertical alignment ([#2593](https://github.com/payloadcms/payload/issues/2593)) ([54fac4a](https://github.com/payloadcms/payload/commit/54fac4a5d793b534e25600d2f9470c449f40df1d))
-* softens columns and filters pill colors ([#2642](https://github.com/payloadcms/payload/issues/2642)) ([9072096](https://github.com/payloadcms/payload/commit/90720964953d392d85982052b3a4843a5450681e))
-* webp upload formatting ([ccd6ca2](https://github.com/payloadcms/payload/commit/ccd6ca298e69faf04709535df3fcb18eb3d40f1b))
-
+- correct casing on graphql type ([219f50b](https://github.com/payloadcms/payload/commit/219f50b0bc7a520655a5ae4f1d8b08fd04c8a3dd))
+- defaultValue missing from Upload field schema ([7b21eaf](https://github.com/payloadcms/payload/commit/7b21eaf12da64778568b45e56fa8d39e81f11c29))
+- ensures nested querying works when querying across collections ([09974fa](https://github.com/payloadcms/payload/commit/09974fa68677586c727943cc234311f87bf6da75))
+- query custom text id fields ([967f2ac](https://github.com/payloadcms/payload/commit/967f2ace0ea1a65570f69e85920f2f55626efde0))
+- removes deprecated queryHiddenFIelds from local API docs ([5f30dbb](https://github.com/payloadcms/payload/commit/5f30dbb1a5b7c7ab6752c114710f92c159319d3d))
+- removes queryHiddenFields from example Find operation ([fb4f822](https://github.com/payloadcms/payload/commit/fb4f822d34d0235a537f96515073e2662680412f))
+- resolve process/browser package in webpack config ([02f27f3](https://github.com/payloadcms/payload/commit/02f27f3de6fdaf5dd0023298fc671a8ae9a1b758))
+- Row groups in tabs vertical alignment ([#2593](https://github.com/payloadcms/payload/issues/2593)) ([54fac4a](https://github.com/payloadcms/payload/commit/54fac4a5d793b534e25600d2f9470c449f40df1d))
+- softens columns and filters pill colors ([#2642](https://github.com/payloadcms/payload/issues/2642)) ([9072096](https://github.com/payloadcms/payload/commit/90720964953d392d85982052b3a4843a5450681e))
+- webp upload formatting ([ccd6ca2](https://github.com/payloadcms/payload/commit/ccd6ca298e69faf04709535df3fcb18eb3d40f1b))
### Features
-* add Arabic translations ([#2641](https://github.com/payloadcms/payload/issues/2641)) ([7d04cf1](https://github.com/payloadcms/payload/commit/7d04cf14fb0587f2208745bb77ed4fd17e99c8d5))
-* allow full URL in staticURL ([#2562](https://github.com/payloadcms/payload/issues/2562)) ([a9b5dff](https://github.com/payloadcms/payload/commit/a9b5dffa00623eb48302d51b88c3449920c10f46))
+- add Arabic translations ([#2641](https://github.com/payloadcms/payload/issues/2641)) ([7d04cf1](https://github.com/payloadcms/payload/commit/7d04cf14fb0587f2208745bb77ed4fd17e99c8d5))
+- allow full URL in staticURL ([#2562](https://github.com/payloadcms/payload/issues/2562)) ([a9b5dff](https://github.com/payloadcms/payload/commit/a9b5dffa00623eb48302d51b88c3449920c10f46))
## [1.7.5](https://github.com/payloadcms/payload/compare/v1.7.4...v1.7.5) (2023-05-04)
-
### Bug Fixes
-* make incrementName match multiple digits ([#2609](https://github.com/payloadcms/payload/issues/2609)) ([8dbf0a2](https://github.com/payloadcms/payload/commit/8dbf0a2bd88db1b361ce16bb730613de489f2ed2))
-
+- make incrementName match multiple digits ([#2609](https://github.com/payloadcms/payload/issues/2609)) ([8dbf0a2](https://github.com/payloadcms/payload/commit/8dbf0a2bd88db1b361ce16bb730613de489f2ed2))
### Features
-* collection admin.enableRichTextLink property ([#2560](https://github.com/payloadcms/payload/issues/2560)) ([9678992](https://github.com/payloadcms/payload/commit/967899229f458d06a3931d086bcc49299dc310b7))
-* custom admin buttons ([#2618](https://github.com/payloadcms/payload/issues/2618)) ([1d58007](https://github.com/payloadcms/payload/commit/1d58007606fa7e34007f2a56a3ca653d2cd3404d))
+- collection admin.enableRichTextLink property ([#2560](https://github.com/payloadcms/payload/issues/2560)) ([9678992](https://github.com/payloadcms/payload/commit/967899229f458d06a3931d086bcc49299dc310b7))
+- custom admin buttons ([#2618](https://github.com/payloadcms/payload/issues/2618)) ([1d58007](https://github.com/payloadcms/payload/commit/1d58007606fa7e34007f2a56a3ca653d2cd3404d))
## [1.7.4](https://github.com/payloadcms/payload/compare/v1.7.3...v1.7.4) (2023-05-02)
-
### Bug Fixes
-* properly import SwcMinifyWebpackPlugin ([#2600](https://github.com/payloadcms/payload/issues/2600)) ([802deac](https://github.com/payloadcms/payload/commit/802deaca03f8506fa4a7adb8fc008205c2c4f013))
+- properly import SwcMinifyWebpackPlugin ([#2600](https://github.com/payloadcms/payload/issues/2600)) ([802deac](https://github.com/payloadcms/payload/commit/802deaca03f8506fa4a7adb8fc008205c2c4f013))
## [1.7.3](https://github.com/payloadcms/payload/compare/v1.7.2...v1.7.3) (2023-05-01)
-
### Bug Fixes
-* [#2592](https://github.com/payloadcms/payload/issues/2592), allows usage of hidden fields within access query constraints ([#2599](https://github.com/payloadcms/payload/issues/2599)) ([a0bb13a](https://github.com/payloadcms/payload/commit/a0bb13a4123b51d770b364ddaee3dde1c5a3da53))
-* addds workaround for slate isBlock function issue ([#2596](https://github.com/payloadcms/payload/issues/2596)) ([8f6f13d](https://github.com/payloadcms/payload/commit/8f6f13dc93f49f5ba5384a9168ced5baec85e1fb))
-* bulk operations result type ([#2588](https://github.com/payloadcms/payload/issues/2588)) ([8382faa](https://github.com/payloadcms/payload/commit/8382faa0afc8118f4fb873c657a52c48abb2a6ad))
-* query on id throws 500 ([#2587](https://github.com/payloadcms/payload/issues/2587)) ([0ba22c3](https://github.com/payloadcms/payload/commit/0ba22c3aafca67be78814357edc668ed11ec4a97))
-* timestamp queries ([#2583](https://github.com/payloadcms/payload/issues/2583)) ([9c5107e](https://github.com/payloadcms/payload/commit/9c5107e86d70e36ac181c9d3ad51edacf9fc529a))
-
+- [#2592](https://github.com/payloadcms/payload/issues/2592), allows usage of hidden fields within access query constraints ([#2599](https://github.com/payloadcms/payload/issues/2599)) ([a0bb13a](https://github.com/payloadcms/payload/commit/a0bb13a4123b51d770b364ddaee3dde1c5a3da53))
+- addds workaround for slate isBlock function issue ([#2596](https://github.com/payloadcms/payload/issues/2596)) ([8f6f13d](https://github.com/payloadcms/payload/commit/8f6f13dc93f49f5ba5384a9168ced5baec85e1fb))
+- bulk operations result type ([#2588](https://github.com/payloadcms/payload/issues/2588)) ([8382faa](https://github.com/payloadcms/payload/commit/8382faa0afc8118f4fb873c657a52c48abb2a6ad))
+- query on id throws 500 ([#2587](https://github.com/payloadcms/payload/issues/2587)) ([0ba22c3](https://github.com/payloadcms/payload/commit/0ba22c3aafca67be78814357edc668ed11ec4a97))
+- timestamp queries ([#2583](https://github.com/payloadcms/payload/issues/2583)) ([9c5107e](https://github.com/payloadcms/payload/commit/9c5107e86d70e36ac181c9d3ad51edacf9fc529a))
### Features
-* Add new translation for romanian language ([#2556](https://github.com/payloadcms/payload/issues/2556)) ([fbf3a2a](https://github.com/payloadcms/payload/commit/fbf3a2a1b4633e704e467d9aec05f3ae0b900bae))
-* add persian translations ([#2553](https://github.com/payloadcms/payload/issues/2553)) ([c80f68a](https://github.com/payloadcms/payload/commit/c80f68af943c730996c9cdad87cf84d4d06a5777))
-* adjust stack trace for api error ([#2598](https://github.com/payloadcms/payload/issues/2598)) ([870838e](https://github.com/payloadcms/payload/commit/870838e7563b6767c53f4dc0288119087e3f9486))
-* allow customizing the link fields ([#2559](https://github.com/payloadcms/payload/issues/2559)) ([bf65228](https://github.com/payloadcms/payload/commit/bf6522898db353e75db11525ea5a1b58243333d8))
-* supports collection compound indexes ([#2529](https://github.com/payloadcms/payload/issues/2529)) ([85b3d57](https://github.com/payloadcms/payload/commit/85b3d579d3054aad2de793957cf6454332361327))
+- Add new translation for romanian language ([#2556](https://github.com/payloadcms/payload/issues/2556)) ([fbf3a2a](https://github.com/payloadcms/payload/commit/fbf3a2a1b4633e704e467d9aec05f3ae0b900bae))
+- add persian translations ([#2553](https://github.com/payloadcms/payload/issues/2553)) ([c80f68a](https://github.com/payloadcms/payload/commit/c80f68af943c730996c9cdad87cf84d4d06a5777))
+- adjust stack trace for api error ([#2598](https://github.com/payloadcms/payload/issues/2598)) ([870838e](https://github.com/payloadcms/payload/commit/870838e7563b6767c53f4dc0288119087e3f9486))
+- allow customizing the link fields ([#2559](https://github.com/payloadcms/payload/issues/2559)) ([bf65228](https://github.com/payloadcms/payload/commit/bf6522898db353e75db11525ea5a1b58243333d8))
+- supports collection compound indexes ([#2529](https://github.com/payloadcms/payload/issues/2529)) ([85b3d57](https://github.com/payloadcms/payload/commit/85b3d579d3054aad2de793957cf6454332361327))
## [1.7.2](https://github.com/payloadcms/payload/compare/v1.7.1...v1.7.2) (2023-04-25)
-
### Bug Fixes
-* [#2521](https://github.com/payloadcms/payload/issues/2521), graphql AND not working with drafts ([e67ca20](https://github.com/payloadcms/payload/commit/e67ca2010831c14938d3f639fcb5374ca62747ba))
-* document drawer access control [#2545](https://github.com/payloadcms/payload/issues/2545) ([439caf8](https://github.com/payloadcms/payload/commit/439caf815fc99538f14b3a59835dcf49185759dc))
-* prevent floating point number in image sizes ([#1935](https://github.com/payloadcms/payload/issues/1935)) ([7fcde11](https://github.com/payloadcms/payload/commit/7fcde11fa0b232537de606e44c0af68b122daed2))
-* prevent sharp toFormat settings fallthrough by using clone ([#2547](https://github.com/payloadcms/payload/issues/2547)) ([90dab3c](https://github.com/payloadcms/payload/commit/90dab3c445d4bdbab0eff286a2b66861d04f2a93))
-* query localized fields without localization configured ([12edb1c](https://github.com/payloadcms/payload/commit/12edb1cc4b2675d9b0948fb7f3439f61c6e2015d))
-* read-only styles ([823d022](https://github.com/payloadcms/payload/commit/823d0228c949fe58a7e0f11f95354b240c3ea876))
-
+- [#2521](https://github.com/payloadcms/payload/issues/2521), graphql AND not working with drafts ([e67ca20](https://github.com/payloadcms/payload/commit/e67ca2010831c14938d3f639fcb5374ca62747ba))
+- document drawer access control [#2545](https://github.com/payloadcms/payload/issues/2545) ([439caf8](https://github.com/payloadcms/payload/commit/439caf815fc99538f14b3a59835dcf49185759dc))
+- prevent floating point number in image sizes ([#1935](https://github.com/payloadcms/payload/issues/1935)) ([7fcde11](https://github.com/payloadcms/payload/commit/7fcde11fa0b232537de606e44c0af68b122daed2))
+- prevent sharp toFormat settings fallthrough by using clone ([#2547](https://github.com/payloadcms/payload/issues/2547)) ([90dab3c](https://github.com/payloadcms/payload/commit/90dab3c445d4bdbab0eff286a2b66861d04f2a93))
+- query localized fields without localization configured ([12edb1c](https://github.com/payloadcms/payload/commit/12edb1cc4b2675d9b0948fb7f3439f61c6e2015d))
+- read-only styles ([823d022](https://github.com/payloadcms/payload/commit/823d0228c949fe58a7e0f11f95354b240c3ea876))
### Features
-* add rich-text blockquote element, change quote node type to blockquote ([ed230a4](https://github.com/payloadcms/payload/commit/ed230a42e0315dc2492b4a26e3bf8b5334e89380))
-* add user to field conditional logic ([274edc7](https://github.com/payloadcms/payload/commit/274edc74a70202e8c771c5111507b585c3f69377))
-* exposes id in conditional logic ([c117b32](https://github.com/payloadcms/payload/commit/c117b321474b8318c3a0ddf544e49568e461f0d8))
-* **imageresizer:** add trim options ([#2073](https://github.com/payloadcms/payload/issues/2073)) ([0406548](https://github.com/payloadcms/payload/commit/0406548fe6127e091db9926ee42e59f9158eff5a))
+- add rich-text blockquote element, change quote node type to blockquote ([ed230a4](https://github.com/payloadcms/payload/commit/ed230a42e0315dc2492b4a26e3bf8b5334e89380))
+- add user to field conditional logic ([274edc7](https://github.com/payloadcms/payload/commit/274edc74a70202e8c771c5111507b585c3f69377))
+- exposes id in conditional logic ([c117b32](https://github.com/payloadcms/payload/commit/c117b321474b8318c3a0ddf544e49568e461f0d8))
+- **imageresizer:** add trim options ([#2073](https://github.com/payloadcms/payload/issues/2073)) ([0406548](https://github.com/payloadcms/payload/commit/0406548fe6127e091db9926ee42e59f9158eff5a))
## [1.7.1](https://github.com/payloadcms/payload/compare/v1.7.0...v1.7.1) (2023-04-18)
-
### Bug Fixes
-* adds 'use client' for next 13 compatibility ([5e02985](https://github.com/payloadcms/payload/commit/5e029852060d6475eccada35ffbcdd0178d5e690))
-* graphql variables not being passed properly ([72be80a](https://github.com/payloadcms/payload/commit/72be80abc4082013e052aef1152a5de749a6f3c4))
-
+- adds 'use client' for next 13 compatibility ([5e02985](https://github.com/payloadcms/payload/commit/5e029852060d6475eccada35ffbcdd0178d5e690))
+- graphql variables not being passed properly ([72be80a](https://github.com/payloadcms/payload/commit/72be80abc4082013e052aef1152a5de749a6f3c4))
### Features
-* configuration extension points ([023719d](https://github.com/payloadcms/payload/commit/023719d77554a70493d779ba94bf55058d4caf98))
+- configuration extension points ([023719d](https://github.com/payloadcms/payload/commit/023719d77554a70493d779ba94bf55058d4caf98))
## [1.7.0](https://github.com/payloadcms/payload/compare/v1.6.32...v1.7.0) (2023-04-17)
@@ -829,47 +774,43 @@ We are pulling off a bandaid here and enforcing that `payload.init` is now async
To migrate, you need to convert your code everywhere that you run `payload.init` to be asynchronous instead. For example, here is an example of a traditional `payload.init` call which needs to be migrated:
```js
-const express = require("express");
-const payload = require("payload");
+const express = require('express')
+const payload = require('payload')
-const app = express();
+const app = express()
payload.init({
- secret: "SECRET_KEY",
- mongoURL: "mongodb://localhost/payload",
+ secret: 'SECRET_KEY',
+ mongoURL: 'mongodb://localhost/payload',
express: app,
-});
+})
app.listen(3000, async () => {
- console.log(
- "Express is now listening for incoming connections on port 3000."
- );
-});
+ console.log('Express is now listening for incoming connections on port 3000.')
+})
```
Your `payload.init` call will need to be converted into the following:
```js
-const express = require("express");
-const payload = require("payload");
+const express = require('express')
+const payload = require('payload')
-const app = express();
+const app = express()
const start = async () => {
await payload.init({
- secret: "SECRET_KEY",
- mongoURL: "mongodb://localhost/payload",
+ secret: 'SECRET_KEY',
+ mongoURL: 'mongodb://localhost/payload',
express: app,
- });
+ })
app.listen(3000, async () => {
- console.log(
- "Express is now listening for incoming connections on port 3000."
- );
- });
-};
+ console.log('Express is now listening for incoming connections on port 3000.')
+ })
+}
-start();
+start()
```
Notice that all we've done is wrapped the `payload.init` and `app.listen` calls with a `start` function that is asynchronous.
@@ -880,18 +821,18 @@ Before this release, the Local API methods were configured as generics. For exam
```ts
const post = await payload.findByID
-
#### Notes
+
- It is recommended to add the test credentials (located in `test/credentials.ts`) to your autofill for `localhost:3000/admin` as this will be required on every nodemon restart. The default credentials are `dev@payloadcms.com` as email and `test` as password.
diff --git a/README.md b/README.md
index 892120d67..5bcbf1f36 100644
--- a/README.md
+++ b/README.md
@@ -39,6 +39,7 @@
## ☁️ Deploy instantly with Payload Cloud.
+
Create a cloud account, connect your GitHub, and [deploy in minutes](https://payloadcms.com/new).
## 🚀 Get started by self-hosting completely free, forever.
@@ -52,7 +53,9 @@ npx create-payload-app
Alternatively, it only takes about five minutes to [create an app from scratch](https://payloadcms.com/docs/getting-started/installation#from-scratch).
## 🖱️ One-click templates
+
### 🛒 [E-Commerce](https://github.com/payloadcms/payload/tree/master/templates/ecommerce)
+
Eliminate the need to combine Shopify and a CMS, and instead do it all with Payload + Stripe. Best of all, you can extend it as much as you need.
[All Official Templates](https://github.com/orgs/payloadcms/repositories?q=topic%3Apayload-template) · [Community Templates](https://github.com/topics/payload-template)
diff --git a/docs/access-control/collections.mdx b/docs/access-control/collections.mdx
index 9b0969de1..2fa681add 100644
--- a/docs/access-control/collections.mdx
+++ b/docs/access-control/collections.mdx
@@ -10,23 +10,24 @@ You can define Collection-level Access Control within each Collection's `access`
## Available Controls
-| Function | Allows/Denies Access |
-| ------------------------ | -------------------- |
-| **[`create`](#create)** | Used in the `create` operation |
-| **[`read`](#read)** | Used in the `find` and `findByID` operations |
-| **[`update`](#update)** | Used in the `update` operation |
-| **[`delete`](#delete)** | Used in the `delete` operation |
+| Function | Allows/Denies Access |
+| ----------------------- | -------------------------------------------- |
+| **[`create`](#create)** | Used in the `create` operation |
+| **[`read`](#read)** | Used in the `find` and `findByID` operations |
+| **[`update`](#update)** | Used in the `update` operation |
+| **[`delete`](#delete)** | Used in the `delete` operation |
#### Auth-enabled Controls
If a Collection supports [`Authentication`](/docs/authentication/overview), the following Access Controls become available:
-| Function | Allows/Denies Access |
-| ----------------------- | -------------------- |
-| **[`admin`](#admin)** | Used to restrict access to the Payload Admin panel |
+| Function | Allows/Denies Access |
+| ----------------------- | -------------------------------------------------------------- |
+| **[`admin`](#admin)** | Used to restrict access to the Payload Admin panel |
| **[`unlock`](#unlock)** | Used to restrict which users can access the `unlock` operation |
**Example Collection config:**
+
```ts
import { CollectionConfig } from 'payload/types';
@@ -50,10 +51,10 @@ Returns a boolean which allows/denies access to the `create` request.
**Available argument properties:**
-| Option | Description |
-| ---------- | ----------- |
+| Option | Description |
+| ---------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
-| **`data`** | The data passed to create the document with. |
+| **`data`** | The data passed to create the document with. |
**Example:**
@@ -77,20 +78,20 @@ Read access functions can return a boolean result or optionally return a [query
**Available argument properties:**
-| Option | Description |
-| --------- | ----------- |
+| Option | Description |
+| --------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
-| **`id`** | `id` of document requested, if within `findByID` |
+| **`id`** | `id` of document requested, if within `findByID` |
**Example:**
```ts
-import { Access } from 'payload/config';
+import { Access } from 'payload/config'
const canReadPage: Access = ({ req: { user } }) => {
// allow authenticated users
if (user) {
- return true;
+ return true
}
// using a query constraint, guest users can access when a field named 'isPublic' is set to true
return {
@@ -99,7 +100,7 @@ const canReadPage: Access = ({ req: { user } }) => {
equals: true,
},
}
-};
+}
```
### Update
@@ -108,25 +109,25 @@ Update access functions can return a boolean result or optionally return a [quer
**Available argument properties:**
-| Option | Description |
-| ---------- | ----------- |
+| Option | Description |
+| ---------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
-| **`id`** | `id` of document requested to update |
-| **`data`** | The data passed to update the document with |
+| **`id`** | `id` of document requested to update |
+| **`data`** | The data passed to update the document with |
**Example:**
```ts
-import { Access } from 'payload/config';
+import { Access } from 'payload/config'
const canUpdateUser: Access = ({ req: { user }, id }) => {
// allow users with a role of 'admin'
- if (user.roles && user.roles.some(role => role === 'admin')) {
- return true;
+ if (user.roles && user.roles.some((role) => role === 'admin')) {
+ return true
}
// allow any other users to update only oneself
- return user.id === id;
-};
+ return user.id === id
+}
```
### Delete
@@ -135,10 +136,10 @@ Similarly to the Update function, returns a boolean or a [query constraint](/doc
**Available argument properties:**
-| Option | Description |
-| --------- | ----------- |
+| Option | Description |
+| --------- | --------------------------------------------------------------------------------------------------- |
| **`req`** | The Express `request` object with additional `user` property, which is the currently logged in user |
-| **`id`** | `id` of document requested to delete |
+| **`id`** | `id` of document requested to delete |
**Example:**
@@ -148,7 +149,7 @@ import { Access } from 'payload/config'
const canDeleteCustomer: Access = async ({ req, id }) => {
if (!id) {
// allow the admin UI to show controls to delete since it is indeterminate without the id
- return true;
+ return true
}
// query another collection using the id
const result = await req.payload.find({
@@ -158,10 +159,10 @@ const canDeleteCustomer: Access = async ({ req, id }) => {
where: {
customer: { equals: id },
},
- });
+ })
- return result.totalDocs === 0;
-};
+ return result.totalDocs === 0
+}
```
### Admin
@@ -170,8 +171,8 @@ If the Collection is [used to access the Payload Admin panel](/docs/admin/overvi
**Available argument properties:**
-| Option | Description |
-| --------- | ----------- |
+| Option | Description |
+| --------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
### Unlock
@@ -180,6 +181,6 @@ Determines which users can [unlock](/docs/authentication/operations#unlock) othe
**Available argument properties:**
-| Option | Description |
-| --------- | ----------- |
+| Option | Description |
+| --------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
diff --git a/docs/access-control/fields.mdx b/docs/access-control/fields.mdx
index 513f140e9..68cc782ed 100644
--- a/docs/access-control/fields.mdx
+++ b/docs/access-control/fields.mdx
@@ -10,13 +10,14 @@ Field Access Control is specified with functions inside a field's config. All fi
## Available Controls
-| Function | Purpose |
-| ------------------------ | ------- |
-| **[`create`](#create)** | Allows or denies the ability to set a field's value when creating a new document |
-| **[`read`](#read)** | Allows or denies the ability to read a field's value |
-| **[`update`](#update)** | Allows or denies the ability to update a field's value |
+| Function | Purpose |
+| ----------------------- | -------------------------------------------------------------------------------- |
+| **[`create`](#create)** | Allows or denies the ability to set a field's value when creating a new document |
+| **[`read`](#read)** | Allows or denies the ability to read a field's value |
+| **[`update`](#update)** | Allows or denies the ability to update a field's value |
**Example Collection config:**
+
```ts
import { CollectionConfig } from 'payload/types';
@@ -44,11 +45,11 @@ Returns a boolean which allows or denies the ability to set a field's value when
**Available argument properties:**
-| Option | Description |
-| ----------------- | ----------- |
+| Option | Description |
+| ----------------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
-| **`data`** | The full data passed to create the document. |
-| **`siblingData`** | Immediately adjacent field data passed to create the document. |
+| **`data`** | The full data passed to create the document. |
+| **`siblingData`** | Immediately adjacent field data passed to create the document. |
### Read
@@ -56,12 +57,12 @@ Returns a boolean which allows or denies the ability to read a field's value. If
**Available argument properties:**
-| Option | Description |
-| ----------------- | ----------- |
+| Option | Description |
+| ----------------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
-| **`id`** | `id` of the document being read |
-| **`doc`** | The full document data. |
-| **`siblingData`** | Immediately adjacent field data of the document being read. |
+| **`id`** | `id` of the document being read |
+| **`doc`** | The full document data. |
+| **`siblingData`** | Immediately adjacent field data of the document being read. |
### Update
@@ -71,10 +72,10 @@ If `false` is returned and you attempt to update the field's value, the operatio
**Available argument properties:**
-| Option | Description |
-| ----------------- | ----------- |
+| Option | Description |
+| ----------------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
-| **`id`** | `id` of the document being updated |
-| **`data`** | The full data passed to update the document. |
-| **`siblingData`** | Immediately adjacent field data passed to update the document with. |
-| **`doc`** | The full document data, before the update is applied. |
+| **`id`** | `id` of the document being updated |
+| **`data`** | The full data passed to update the document. |
+| **`siblingData`** | Immediately adjacent field data passed to update the document with. |
+| **`doc`** | The full document data, before the update is applied. |
diff --git a/docs/access-control/globals.mdx b/docs/access-control/globals.mdx
index bdb73b9fa..cd8f8673e 100644
--- a/docs/access-control/globals.mdx
+++ b/docs/access-control/globals.mdx
@@ -8,30 +8,35 @@ keywords: globals, access control, permissions, documentation, Content Managemen
You can define Global-level Access Control within each Global's `access` property. All Access Control functions accept one `args` argument.
-**Available argument properties:
+\*\*Available argument properties:
## Available Controls
-| Function | Allows/Denies Access |
-| ------------------------ | -------------------- |
-| **[`read`](#read)** | Used in the `findOne` Global operation |
-| **[`update`](#update)** | Used in the `update` Global operation |
+| Function | Allows/Denies Access |
+| ----------------------- | -------------------------------------- |
+| **[`read`](#read)** | Used in the `findOne` Global operation |
+| **[`update`](#update)** | Used in the `update` Global operation |
**Example Global config:**
+
```ts
-import { GlobalConfig } from 'payload/types';
+import { GlobalConfig } from 'payload/types'
const Header: GlobalConfig = {
- slug: "header",
+ slug: 'header',
// highlight-start
access: {
- read: ({ req: { user } }) => { /* */ },
- update: ({ req: { user } }) => { /* */ },
+ read: ({ req: { user } }) => {
+ /* */
+ },
+ update: ({ req: { user } }) => {
+ /* */
+ },
},
// highlight-end
-};
+}
-export default Header;
+export default Header
```
### Read
@@ -40,8 +45,8 @@ Returns a boolean result or optionally a [query constraint](/docs/queries/overvi
**Available argument properties:**
-| Option | Description |
-| --------- | ----------- |
+| Option | Description |
+| --------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
### Update
@@ -50,7 +55,7 @@ Returns a boolean result or optionally a [query constraint](/docs/queries/overvi
**Available argument properties:**
-| Option | Description |
-| ---------- | ----------- |
+| Option | Description |
+| ---------- | -------------------------------------------------------------------------- |
| **`req`** | The Express `request` object containing the currently authenticated `user` |
-| **`data`** | The data passed to update the global with. |
+| **`data`** | The data passed to update the global with. |
diff --git a/docs/access-control/overview.mdx b/docs/access-control/overview.mdx
index 7d5a51106..03d8596a2 100644
--- a/docs/access-control/overview.mdx
+++ b/docs/access-control/overview.mdx
@@ -8,10 +8,7 @@ keywords: overview, access control, permissions, documentation, Content Manageme
Access control within Payload is extremely powerful while remaining easy and intuitive to manage. Declaring who should have access to what documents is no more complex than writing a simple JavaScript function that either returns a `boolean` or a [`query`](/docs/queries/overview) constraint to restrict which documents users can interact with.
-- Some text before the default list view component. If you just want to do - that, you can also use the admin.components.list.BeforeList hook + Some text before the default list view component. If you just want to do that, you can also + use the admin.components.list.BeforeList hook
-{`import { useForm } from "payload/components/forms";
+
+
+{' '}
+
+
+ {`import { useForm } from "payload/components/forms";
export const CustomArrayManager = () => {
const { addFieldRow } = useForm()
@@ -385,7 +392,7 @@ export const CustomArrayManager = () => {
)
}`}
-
+
An example config to go along with the custom component
@@ -456,10 +463,14 @@ export const CustomArrayManager = () => {
]}
/>
-
+{' '}
-
-{`import { useForm } from "payload/components/forms";
+
+
+{' '}
+
+
+ {`import { useForm } from "payload/components/forms";
export const CustomArrayManager = () => {
const { removeFieldRow } = useForm()
@@ -478,7 +489,7 @@ export const CustomArrayManager = () => {
)
}`}
-
+
An example config to go along with the custom component
@@ -557,10 +568,14 @@ export const CustomArrayManager = () => {
]}
/>
-
+{' '}
-
-{`import { useForm } from "payload/components/forms";
+
+
+{' '}
+
+
+ {`import { useForm } from "payload/components/forms";
export const CustomArrayManager = () => {
const { replaceFieldRow } = useForm()
@@ -584,7 +599,7 @@ export const CustomArrayManager = () => {
)
}`}
-
+
An example config to go along with the custom component
@@ -624,40 +639,40 @@ export const CustomArrayManager = () => {
The `useDocumentInfo` hook provides lots of information about the document currently being edited, including the following:
-| Property | Description |
-|---------------------------|--------------------------------------------------------------------------------------------------------------------| |
-| **`collection`** | If the doc is a collection, its collection config will be returned |
-| **`global`** | If the doc is a global, its global config will be returned |
-| **`id`** | If the doc is a collection, its ID will be returned |
-| **`preferencesKey`** | The `preferences` key to use when interacting with document-level user preferences |
-| **`versions`** | Versions of the current doc |
-| **`unpublishedVersions`** | Unpublished versions of the current doc |
-| **`publishedDoc`** | The currently published version of the doc being edited |
-| **`getVersions`** | Method to trigger the retrieval of document versions |
-| **`docPermissions`** | The current documents permissions. Collection document permissions fallback when no id is present (i.e. on create) |
-| **`getDocPermissions`** | Method to trigger the retrieval of document level permissions |
+| Property | Description |
+|---------------------------|--------------------------------------------------------------------------------------------------------------------| |
+| **`collection`** | If the doc is a collection, its collection config will be returned |
+| **`global`** | If the doc is a global, its global config will be returned |
+| **`id`** | If the doc is a collection, its ID will be returned |
+| **`preferencesKey`** | The `preferences` key to use when interacting with document-level user preferences |
+| **`versions`** | Versions of the current doc |
+| **`unpublishedVersions`** | Unpublished versions of the current doc |
+| **`publishedDoc`** | The currently published version of the doc being edited |
+| **`getVersions`** | Method to trigger the retrieval of document versions |
+| **`docPermissions`** | The current documents permissions. Collection document permissions fallback when no id is present (i.e. on create) |
+| **`getDocPermissions`** | Method to trigger the retrieval of document level permissions |
**Example:**
```tsx
-import { useDocumentInfo } from 'payload/components/utilities';
+import { useDocumentInfo } from 'payload/components/utilities'
const LinkFromCategoryToPosts: React.FC = () => {
// highlight-start
- const { id } = useDocumentInfo();
+ const { id } = useDocumentInfo()
// highlight-end
// id will be undefined on the create form
if (!id) {
- return null;
+ return null
}
return (
-
+
View posts
)
-};
+}
```
### useLocale
@@ -665,22 +680,20 @@ const LinkFromCategoryToPosts: React.FC = () => {
In any custom component you can get the selected locale object with the `useLocale` hook. `useLocale`gives you the full locale object, consisting of a `label`, `rtl`(right-to-left) property, and then `code`. Here is a simple example:
```tsx
-import { useLocale } from 'payload/components/utilities';
+import { useLocale } from 'payload/components/utilities'
const Greeting: React.FC = () => {
// highlight-start
- const locale = useLocale();
+ const locale = useLocale()
// highlight-end
const trans = {
en: 'Hello',
es: 'Hola',
- };
+ }
- return (
- { trans[locale.code] }
- );
-};
+ return {trans[locale.code]}
+}
```
### useAuth
@@ -688,7 +701,7 @@ const Greeting: React.FC = () => {
Useful to retrieve info about the currently logged in user as well as methods for interacting with it. It sends back an object with the following properties:
| Property | Description |
-|--------------------------|-----------------------------------------------------------------------------------------|
+| ------------------------ | --------------------------------------------------------------------------------------- |
| **`user`** | The currently logged in user |
| **`logOut`** | A method to log out the currently logged in user |
| **`refreshCookie`** | A method to trigger the silent refreshing of a user's auth token |
@@ -698,18 +711,16 @@ Useful to retrieve info about the currently logged in user as well as methods fo
| **`permissions`** | The permissions of the current user |
```tsx
-import { useAuth } from 'payload/components/utilities';
-import { User } from '../payload-types.ts';
+import { useAuth } from 'payload/components/utilities'
+import { User } from '../payload-types.ts'
const Greeting: React.FC = () => {
// highlight-start
- const { user } = useAuth();
+ const { user } = useAuth()
// highlight-end
- return (
- Hi, {user.email}!
- );
-};
+ return Hi, {user.email}!
+}
```
### useConfig
@@ -717,17 +728,15 @@ const Greeting: React.FC = () => {
Used to easily fetch the full Payload config.
```tsx
-import { useConfig } from 'payload/components/utilities';
+import { useConfig } from 'payload/components/utilities'
const MyComponent: React.FC = () => {
// highlight-start
- const config = useConfig();
+ const config = useConfig()
// highlight-end
- return (
- {config.serverURL}
- );
-};
+ return {config.serverURL}
+}
```
### useEditDepth
@@ -735,16 +744,14 @@ const MyComponent: React.FC = () => {
Sends back how many editing levels "deep" the current component is. Edit depth is relevant while adding new documents / editing documents in modal windows and other cases.
```tsx
-import { useEditDepth } from 'payload/components/utilities';
+import { useEditDepth } from 'payload/components/utilities'
const MyComponent: React.FC = () => {
// highlight-start
- const editDepth = useEditDepth();
+ const editDepth = useEditDepth()
// highlight-end
- return (
- My component is {editDepth} levels deep
- )
+ return My component is {editDepth} levels deep
}
```
diff --git a/docs/admin/overview.mdx b/docs/admin/overview.mdx
index c042974b0..420d9ee74 100644
--- a/docs/admin/overview.mdx
+++ b/docs/admin/overview.mdx
@@ -11,9 +11,9 @@ Payload dynamically generates a beautiful, fully functional React admin panel to
The Payload Admin panel is built with Webpack, code-split, highly performant (even with 100+ fields), and written fully in TypeScript.
- The Admin panel is meant to be simple enough to give you a starting point but
- not bring too much complexity, so that you can easily customize it to suit the
- needs of your application and your editors.
+ The Admin panel is meant to be simple enough to give you a starting point but not bring too much
+ complexity, so that you can easily customize it to suit the needs of your application and your
+ editors.

@@ -25,7 +25,7 @@ _Screenshot of the Admin panel while editing a document from an example `AllFiel
All options for the Admin panel are defined in your base Payload config file.
| Option | Description |
-|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `user` | The `slug` of a Collection that you want be used to log in to the Admin dashboard. [More](/docs/admin/overview#the-admin-user-collection) |
| `buildPath` | Specify an absolute path for where to store the built Admin panel bundle used in production. Defaults to `path.resolve(process.cwd(), 'build')`. |
| `meta` | Base meta data to use for the Admin panel. Included properties are `titleSuffix`, `ogImage`, and `favicon`. |
@@ -55,13 +55,13 @@ To specify which Collection to use to log in to the Admin panel, pass the `admin
`payload.config.js`:
```ts
-import { buildConfig } from "payload/config";
+import { buildConfig } from 'payload/config'
const config = buildConfig({
admin: {
- user: "admins", // highlight-line
+ user: 'admins', // highlight-line
},
-});
+})
```
By default, if you have not specified a Collection, Payload will automatically provide you with a `User` Collection which will be used to access the Admin panel. You can customize or override the fields and settings of the default `User` Collection by passing your own collection using `users` as its `slug` to Payload. When this is done, Payload will use your provided `User` Collection instead of its default version.
diff --git a/docs/admin/preferences.mdx b/docs/admin/preferences.mdx
index 4343acde6..b4f8ce491 100644
--- a/docs/admin/preferences.mdx
+++ b/docs/admin/preferences.mdx
@@ -15,8 +15,10 @@ Out of the box, Payload handles the persistence of your users' preferences in a
1. The "collapsed" state of blocks, on a document level, as users edit or interact with documents
- Important:
- All preferences are stored on an individual user basis. Payload automatically recognizes the user that is reading or setting a preference via all provided authentication methods.
+ Important:
+
+ All preferences are stored on an individual user basis. Payload automatically recognizes the user
+ that is reading or setting a preference via all provided authentication methods.
### Use cases
@@ -33,7 +35,7 @@ This API is used significantly for internal operations of the Admin panel, as me
Payload automatically creates an internally used `payload-preferences` collection that stores user preferences. Each document in the `payload-preferences` collection contains the following shape:
| Key | Value |
-|-------------------|-------------------------------------------------------------------|
+| ----------------- | ----------------------------------------------------------------- |
| `id` | A unique ID for each preference stored. |
| `key` | A unique `key` that corresponds to the preference. |
| `user.value` | The ID of the `user` that is storing its preference. |
diff --git a/docs/admin/webpack.mdx b/docs/admin/webpack.mdx
index ddfa1599f..5e87c4f28 100644
--- a/docs/admin/webpack.mdx
+++ b/docs/admin/webpack.mdx
@@ -11,20 +11,21 @@ Payload uses Webpack 5 to build the Admin panel. It comes with support for many
To extend the Webpack config, add the `webpack` key to your base Payload config, and provide a function that accepts the default Webpack config as its only argument:
`payload.config.ts`
+
```ts
-import { buildConfig } from 'payload/config';
+import { buildConfig } from 'payload/config'
export default buildConfig({
- admin: {
- // highlight-start
- webpack: (config) => {
- // Do something with the config here
+ admin: {
+ // highlight-start
+ webpack: (config) => {
+ // Do something with the config here
- return config;
- }
- // highlight-end
- }
-});
+ return config
+ },
+ // highlight-end
+ },
+})
```
### Aliasing server-only modules
@@ -43,73 +44,84 @@ Examples of **non** browser-friendly packages:
You may rely on server-only packages such as the above to perform logic in access control functions, hooks, and other contexts (which is great!) but when you boot up your Payload app and try to view it in the browser, you'll likely run into missing dependency issues or other general incompatibilities.
- Tip:
- To avoid problems with server code making it to your Webpack bundle, you can use the alias Webpack feature to tell Webpack to avoid importing the modules you want to restrict to server-only.
+ Tip:
+
+ To avoid problems with server code making it to your Webpack bundle, you can use the{' '}
+ alias Webpack feature to tell Webpack to avoid importing the modules you want to
+ restrict to server-only.
-For example, let's say that you have a Collection called `Subscriptions` which relies on Stripe:
+
+ For example, let's say that you have a Collection called `Subscriptions` which relies on Stripe:
+
-
+
+
`collections/Subscriptions/index.js`
+
```ts
-import { CollectionConfig } from 'payload/types';
-import createStripeSubscription from './hooks/createStripeSubscription';
+import { CollectionConfig } from 'payload/types'
+import createStripeSubscription from './hooks/createStripeSubscription'
export const Subscription: CollectionConfig = {
- slug: 'subscriptions',
- hooks: {
- beforeChange: [
- createStripeSubscription,
- ]
- },
- fields: [
- {
- name: 'stripeSubscriptionID',
- type: 'text',
- required: true,
- }
- ]
-};
+ slug: 'subscriptions',
+ hooks: {
+ beforeChange: [createStripeSubscription],
+ },
+ fields: [
+ {
+ name: 'stripeSubscriptionID',
+ type: 'text',
+ required: true,
+ },
+ ],
+}
```
The collection above features a `beforeChange` hook that creates a Stripe subscription whenever a Subscription document is created in Payload.
That hook might look something like this:
-
+
+
`collections/Subscriptions/hooks/createStripeSubscription.js`
-```js
-import Stripe from 'stripe';
-const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
+```js
+import Stripe from 'stripe'
+
+const stripe = new Stripe(process.env.STRIPE_SECRET_KEY)
const createStripeSubscription = async ({ data, operation }) => {
- if (operation === 'create') {
- const dataWithStripeID = {...data};
+ if (operation === 'create') {
+ const dataWithStripeID = { ...data }
- // use Stripe to create a Stripe subscription
- const subscription = await stripe.subscriptions.create({
- // Configure the subscription accordingly
- });
+ // use Stripe to create a Stripe subscription
+ const subscription = await stripe.subscriptions.create({
+ // Configure the subscription accordingly
+ })
- // Automatically add the Stripe subscription ID
- // to the data that will be saved to this Subscription doc
- dataWithStripeID.stripeSubscriptionID = subscription.id;
+ // Automatically add the Stripe subscription ID
+ // to the data that will be saved to this Subscription doc
+ dataWithStripeID.stripeSubscriptionID = subscription.id
return dataWithStripeID
- }
+ }
- return data;
+ return data
}
-export default createStripeSubscription;
+export default createStripeSubscription
```
- Warning:
- The above code is NOT production-ready and should not be referenced to create Stripe subscriptions. Although creating a beforeChange hook is a completely valid spot to do things like create subscriptions, the code above is incomplete and insecure, meant for explanation purposes only.
+ Warning:
+
+ The above code is NOT production-ready and should not be referenced to create Stripe
+ subscriptions. Although creating a beforeChange hook is a completely valid spot to do things like
+ create subscriptions, the code above is incomplete and insecure, meant for explanation purposes
+ only.
**As-is, this collection will prevent your Admin panel from bundling or loading correctly, because Stripe relies on some Node-only packages.**
@@ -117,52 +129,61 @@ export default createStripeSubscription;
To remedy this issue you can extend the Payload Webpack config to alias your entire `createStripeSubscription` hook to a separate, empty mock file.
Example in `payload.config.js`:
-```js
-import { buildConfig } from 'payload/config';
-import path from 'path';
-import Subscription from './collections/Subscription';
-const createStripeSubscriptionPath = path.resolve(__dirname, 'collections/Subscription/hooks/createStripeSubscription.js');
-const mockModulePath = path.resolve(__dirname, 'mocks/emptyObject.js');
+```js
+import { buildConfig } from 'payload/config'
+import path from 'path'
+import Subscription from './collections/Subscription'
+
+const createStripeSubscriptionPath = path.resolve(
+ __dirname,
+ 'collections/Subscription/hooks/createStripeSubscription.js',
+)
+const mockModulePath = path.resolve(__dirname, 'mocks/emptyObject.js')
export default buildConfig({
- collections: [
- Subscription
- ],
- admin: {
- webpack: (config) => ({
- ...config,
- resolve: {
- ...config.resolve,
- alias: {
- ...config.resolve.alias,
- [createStripeSubscriptionPath]: mockModulePath,
- }
- }
- })
- }
-});
+ collections: [Subscription],
+ admin: {
+ webpack: (config) => ({
+ ...config,
+ resolve: {
+ ...config.resolve,
+ alias: {
+ ...config.resolve.alias,
+ [createStripeSubscriptionPath]: mockModulePath,
+ },
+ },
+ }),
+ },
+})
```
The above code will alias the file at path `createStripeSubscriptionPath` to a mocked module, which might look like this:
`mocks/emptyObject.js`
+
```js
-export default {};
+export default {}
```
Now, when Webpack sees that you're attempting to import your `createStripeSubscriptionPath` file, it'll disregard that actual file and load your mock file instead. Not only will your Admin panel now bundle successfully, you will have optimized its filesize by removing unnecessary code! And you might have learned something about Webpack, too.
- Tip:
- If changes to your Webpack aliases are not surfacing, they might be [cached](https://webpack.js.org/configuration/cache/) in `node_modules/.cache/webpack`. Try deleting that folder and restarting your server.
+ Tip:
+
+ If changes to your Webpack aliases are not surfacing, they might be
+ [cached](https://webpack.js.org/configuration/cache/) in `node_modules/.cache/webpack`. Try
+ deleting that folder and restarting your server.
## Admin environment vars
- Important:
- Be careful about what variables you provide to your client-side code. Analyze every single one to make sure that you're not accidentally leaking anything that an attacker could exploit. Only keys that are safe to be available to everyone in plain text should be provided to your Admin panel.
+ Important:
+
+ Be careful about what variables you provide to your client-side code. Analyze every single one to
+ make sure that you're not accidentally leaking anything that an attacker could exploit. Only keys
+ that are safe to be available to everyone in plain text should be provided to your Admin panel.
By default, `env` variables are **not** provided to the Admin panel for security and safety reasons. But, Payload provides you with a way to still provide `env` vars to your frontend code.
diff --git a/docs/authentication/config.mdx b/docs/authentication/config.mdx
index 92b6d0a31..5e1f92bc4 100644
--- a/docs/authentication/config.mdx
+++ b/docs/authentication/config.mdx
@@ -41,8 +41,8 @@ Technically, both of these options will work for third-party integrations but th
To enable API keys on a collection, set the `useAPIKey` auth option to `true`. From there, a new interface will appear in the Admin panel for each document within the collection that allows you to generate an API key for each user in the Collection.
- User API keys are encrypted within the database, meaning that if your database
- is compromised, your API keys will not be.
+ User API keys are encrypted within the database, meaning that if your database is compromised,
+ your API keys will not be.
#### Authenticating via API Key
@@ -52,31 +52,31 @@ To authenticate REST or GraphQL API requests using an API key, set the `Authoriz
**For example, using Fetch:**
```ts
-import User from '../collections/User';
+import User from '../collections/User'
-const response = await fetch("http://localhost:3000/api/pages", {
+const response = await fetch('http://localhost:3000/api/pages', {
headers: {
Authorization: `${User.slug} API-Key ${YOUR_API_KEY}`,
},
-});
+})
```
Payload ensures that the same, uniform access control is used across all authentication strategies. This enables you to utilize your existing access control configurations with both API keys and the standard email/password authentication. This consistency can aid in maintaining granular control over your API keys.
-#### API Key *Only* Authentication
+#### API Key _Only_ Authentication
If you want to use API keys as the only authentication method for a collection, you can disable the default local strategy by setting `disableLocalStrategy` to `true` on the collection's `auth` property. This will disable the ability to authenticate with email and password, and will only allow for authentication via API key.
```ts
-import { CollectionConfig } from 'payload/types';
+import { CollectionConfig } from 'payload/types'
export const Customers: CollectionConfig = {
slug: 'customers',
auth: {
useAPIKey: true,
disableLocalStrategy: true,
- }
-};
+ },
+}
```
### Forgot Password
@@ -90,17 +90,16 @@ Function that accepts one argument, containing `{ req, token, user }`, that allo
Tip:
- HTML templating can be used to create custom email templates, inline CSS
- automatically, and more. You can make a reusable function that standardizes
- all email sent from Payload, which makes sending custom emails more DRY.
- Payload doesn't ship with an HTML templating engine, so you are free to choose
- your own.
+ HTML templating can be used to create custom email templates, inline CSS automatically, and more.
+ You can make a reusable function that standardizes all email sent from Payload, which makes
+ sending custom emails more DRY. Payload doesn't ship with an HTML templating engine, so you are
+ free to choose your own.
Example:
```ts
-import { CollectionConfig } from 'payload/types';
+import { CollectionConfig } from 'payload/types'
export const Customers: CollectionConfig = {
slug: 'customers',
@@ -109,7 +108,7 @@ export const Customers: CollectionConfig = {
// highlight-start
generateEmailHTML: ({ req, token, user }) => {
// Use the token provided to allow your user to reset their password
- const resetPasswordURL = `https://yourfrontend.com/reset-password?token=${token}`;
+ const resetPasswordURL = `https://yourfrontend.com/reset-password?token=${token}`
return `
@@ -123,22 +122,21 @@ export const Customers: CollectionConfig = {