payload 1.6.32 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/Root.js +1 -0
- package/dist/admin/Root.js.map +1 -1
- package/dist/admin/components/Routes.js +8 -3
- package/dist/admin/components/Routes.js.map +1 -1
- package/dist/admin/components/elements/Nav/index.js +8 -4
- package/dist/admin/components/elements/Nav/index.js.map +1 -1
- package/dist/admin/components/elements/PreviewButton/index.js +30 -12
- package/dist/admin/components/elements/PreviewButton/index.js.map +1 -1
- package/dist/admin/components/elements/Status/index.js +5 -4
- package/dist/admin/components/elements/Status/index.js.map +1 -1
- package/dist/admin/components/forms/Form/index.js +7 -0
- package/dist/admin/components/forms/Form/index.js.map +1 -1
- package/dist/admin/components/forms/Form/initContextState.js +1 -0
- package/dist/admin/components/forms/Form/initContextState.js.map +1 -1
- package/dist/admin/components/forms/Form/types.d.ts +1 -0
- package/dist/admin/components/forms/field-types/Array/index.js +1 -2
- package/dist/admin/components/forms/field-types/Array/index.js.map +1 -1
- package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/index.js +11 -1
- package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/admin/components/forms/field-types/Blocks/index.js +1 -2
- package/dist/admin/components/forms/field-types/Blocks/index.js.map +1 -1
- package/dist/admin/components/forms/field-types/Textarea/index.scss +6 -5
- package/dist/admin/components/utilities/DocumentInfo/index.d.ts +1 -1
- package/dist/admin/components/utilities/DocumentInfo/index.js +18 -12
- package/dist/admin/components/utilities/DocumentInfo/index.js.map +1 -1
- package/dist/admin/components/utilities/DocumentInfo/types.d.ts +0 -3
- package/dist/admin/components/views/Dashboard/Default.js +8 -4
- package/dist/admin/components/views/Dashboard/Default.js.map +1 -1
- package/dist/admin/components/views/Dashboard/index.js +2 -1
- package/dist/admin/components/views/Dashboard/index.js.map +1 -1
- package/dist/admin/components/views/Dashboard/types.d.ts +2 -1
- package/dist/admin/components/views/Global/index.scss +15 -5
- package/dist/admin/components/views/Version/Version.js +5 -2
- package/dist/admin/components/views/Version/Version.js.map +1 -1
- package/dist/admin/components/views/collections/Edit/Default.js +5 -2
- package/dist/admin/components/views/collections/Edit/Default.js.map +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +7 -4
- package/dist/admin/components/views/collections/Edit/Upload/index.js.map +1 -1
- package/dist/admin/components/views/collections/Edit/index.scss +11 -3
- package/dist/admin/components/views/collections/List/RelationshipProvider/index.js +11 -4
- package/dist/admin/components/views/collections/List/RelationshipProvider/index.js.map +1 -1
- package/dist/auth/getExecuteStaticAccess.js +17 -15
- package/dist/auth/getExecuteStaticAccess.js.map +1 -1
- package/dist/auth/strategies/apiKey.js +0 -1
- package/dist/auth/strategies/apiKey.js.map +1 -1
- package/dist/collections/buildSchema.js +1 -1
- package/dist/collections/buildSchema.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +1 -0
- package/dist/collections/config/defaults.js +1 -0
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/sanitize.js +5 -4
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/schema.js +2 -0
- package/dist/collections/config/schema.js.map +1 -1
- package/dist/collections/config/types.d.ts +13 -3
- package/dist/collections/initLocal.js +3 -2
- package/dist/collections/initLocal.js.map +1 -1
- package/dist/collections/operations/delete.js +11 -9
- package/dist/collections/operations/delete.js.map +1 -1
- package/dist/collections/operations/deleteByID.js +13 -11
- package/dist/collections/operations/deleteByID.js.map +1 -1
- package/dist/collections/operations/find.d.ts +0 -1
- package/dist/collections/operations/find.js +14 -11
- package/dist/collections/operations/find.js.map +1 -1
- package/dist/collections/operations/findByID.js +15 -12
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/collections/operations/findVersionByID.js +13 -11
- package/dist/collections/operations/findVersionByID.js.map +1 -1
- package/dist/collections/operations/findVersions.js +9 -5
- package/dist/collections/operations/findVersions.js.map +1 -1
- package/dist/collections/operations/local/find.d.ts +0 -1
- package/dist/collections/operations/local/find.js +1 -2
- package/dist/collections/operations/local/find.js.map +1 -1
- package/dist/collections/operations/restoreVersion.js +12 -10
- package/dist/collections/operations/restoreVersion.js.map +1 -1
- package/dist/collections/operations/update.js +13 -10
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.js +12 -10
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.js +3 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +13 -2
- package/dist/email/build.d.ts +1 -1
- package/dist/email/build.js +6 -3
- package/dist/email/build.js.map +1 -1
- package/dist/email/defaults.d.ts +2 -0
- package/dist/email/defaults.js +8 -0
- package/dist/email/defaults.js.map +1 -0
- package/dist/email/mockHandler.js +3 -2
- package/dist/email/mockHandler.js.map +1 -1
- package/dist/email/sendEmail.js +1 -1
- package/dist/email/sendEmail.js.map +1 -1
- package/dist/errors/QueryError.d.ts +8 -0
- package/dist/errors/QueryError.js +15 -0
- package/dist/errors/QueryError.js.map +1 -0
- package/dist/fields/config/schema.js +1 -0
- package/dist/fields/config/schema.js.map +1 -1
- package/dist/fields/config/types.d.ts +4 -0
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/validations.d.ts +1 -1
- package/dist/globals/buildModel.js +1 -1
- package/dist/globals/buildModel.js.map +1 -1
- package/dist/globals/config/sanitize.js +7 -5
- package/dist/globals/config/sanitize.js.map +1 -1
- package/dist/globals/config/schema.js +2 -0
- package/dist/globals/config/schema.js.map +1 -1
- package/dist/globals/config/types.d.ts +12 -2
- package/dist/globals/initLocal.js +3 -2
- package/dist/globals/initLocal.js.map +1 -1
- package/dist/globals/operations/findOne.js +15 -11
- package/dist/globals/operations/findOne.js.map +1 -1
- package/dist/globals/operations/findVersionByID.js +14 -11
- package/dist/globals/operations/findVersionByID.js.map +1 -1
- package/dist/globals/operations/findVersions.js +10 -5
- package/dist/globals/operations/findVersions.js.map +1 -1
- package/dist/globals/operations/update.js +14 -11
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/graphql/errorHandler.d.ts +1 -8
- package/dist/graphql/errorHandler.js +2 -9
- package/dist/graphql/errorHandler.js.map +1 -1
- package/dist/graphql/graphQLHandler.d.ts +1 -6
- package/dist/graphql/graphQLHandler.js +24 -7
- package/dist/graphql/graphQLHandler.js.map +1 -1
- package/dist/graphql/registerSchema.js +2 -20
- package/dist/graphql/registerSchema.js.map +1 -1
- package/dist/initHTTP.js +1 -1
- package/dist/initHTTP.js.map +1 -1
- package/dist/mongoose/buildQuery.d.ts +76 -2
- package/dist/mongoose/buildQuery.js +274 -149
- package/dist/mongoose/buildQuery.js.map +1 -1
- package/dist/mongoose/sanitizeQueryValue.d.ts +12 -0
- package/dist/mongoose/{sanitizeFormattedValue.js → sanitizeQueryValue.js} +27 -26
- package/dist/mongoose/sanitizeQueryValue.js.map +1 -0
- package/dist/payload.d.ts +8 -6
- package/dist/payload.js +6 -2
- package/dist/payload.js.map +1 -1
- package/dist/translations/cs.json +1 -0
- package/dist/translations/de.json +1 -0
- package/dist/translations/en.json +1 -0
- package/dist/translations/es.json +1 -0
- package/dist/translations/fr.json +1 -0
- package/dist/translations/hr.json +1 -0
- package/dist/translations/hu.json +1 -0
- package/dist/translations/index.d.ts +21 -0
- package/dist/translations/it.json +1 -0
- package/dist/translations/ja.json +1 -0
- package/dist/translations/my.json +1 -0
- package/dist/translations/nb.json +1 -0
- package/dist/translations/nl.json +1 -0
- package/dist/translations/pl.json +1 -0
- package/dist/translations/pt.json +1 -0
- package/dist/translations/ru.json +1 -0
- package/dist/translations/sv.json +1 -0
- package/dist/translations/th.json +1 -0
- package/dist/translations/tr.json +1 -0
- package/dist/translations/ua.json +1 -0
- package/dist/translations/vi.json +1 -0
- package/dist/translations/zh.json +1 -0
- package/dist/uploads/generateFileData.js +4 -2
- package/dist/uploads/generateFileData.js.map +1 -1
- package/dist/utilities/flattenWhereConstraints.d.ts +2 -2
- package/dist/utilities/flattenWhereConstraints.js +12 -13
- package/dist/utilities/flattenWhereConstraints.js.map +1 -1
- package/dist/utilities/getEntityPolicies.d.ts +6 -10
- package/dist/utilities/getEntityPolicies.js +25 -15
- package/dist/utilities/getEntityPolicies.js.map +1 -1
- package/dist/versions/drafts/queryDrafts.d.ts +4 -3
- package/dist/versions/drafts/queryDrafts.js +11 -9
- package/dist/versions/drafts/queryDrafts.js.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +4 -2
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +16 -13
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
- package/docs/access-control/collections.mdx +1 -1
- package/docs/admin/hooks.mdx +0 -1
- package/docs/configuration/collections.mdx +15 -13
- package/docs/configuration/express.mdx +34 -0
- package/docs/configuration/globals.mdx +6 -4
- package/docs/configuration/localization.mdx +9 -0
- package/docs/configuration/overview.mdx +1 -0
- package/docs/fields/array.mdx +2 -1
- package/docs/fields/blocks.mdx +1 -0
- package/docs/fields/checkbox.mdx +1 -0
- package/docs/fields/code.mdx +1 -0
- package/docs/fields/collapsible.mdx +1 -0
- package/docs/fields/date.mdx +33 -32
- package/docs/fields/email.mdx +1 -0
- package/docs/fields/group.mdx +1 -0
- package/docs/fields/json.mdx +1 -0
- package/docs/fields/number.mdx +1 -0
- package/docs/fields/point.mdx +1 -0
- package/docs/fields/radio.mdx +1 -0
- package/docs/fields/relationship.mdx +2 -1
- package/docs/fields/rich-text.mdx +1 -0
- package/docs/fields/row.mdx +1 -0
- package/docs/fields/select.mdx +1 -0
- package/docs/fields/tabs.mdx +1 -0
- package/docs/fields/text.mdx +1 -0
- package/docs/fields/textarea.mdx +2 -1
- package/docs/fields/ui.mdx +1 -0
- package/docs/fields/upload.mdx +1 -0
- package/docs/getting-started/installation.mdx +2 -0
- package/docs/hooks/collections.mdx +7 -1
- package/docs/queries/overview.mdx +1 -1
- package/docs/rest-api/overview.mdx +2 -1
- package/package.json +4 -5
- package/dist/mongoose/sanitizeFormattedValue.d.ts +0 -2
- package/dist/mongoose/sanitizeFormattedValue.js.map +0 -1
- package/dist/versions/defaults.d.ts +0 -3
- package/dist/versions/defaults.js +0 -18
- package/dist/versions/defaults.js.map +0 -1
package/docs/fields/date.mdx
CHANGED
|
@@ -18,7 +18,7 @@ This field uses [`react-datepicker`](https://www.npmjs.com/package/react-datepic
|
|
|
18
18
|
| Option | Description |
|
|
19
19
|
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
20
20
|
| **`name`** \* | To be used as the property name when stored and retrieved from the database. [More](/docs/fields/overview#field-names) |
|
|
21
|
-
| **`label`** | Text used as a field label in the Admin panel or an object with keys for each language.
|
|
21
|
+
| **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
|
|
22
22
|
| **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
|
|
23
23
|
| **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
|
|
24
24
|
| **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
|
|
@@ -28,7 +28,8 @@ This field uses [`react-datepicker`](https://www.npmjs.com/package/react-datepic
|
|
|
28
28
|
| **`defaultValue`** | Provide data to be used for this field's default value. [More](/docs/fields/overview#default-values) |
|
|
29
29
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
30
30
|
| **`required`** | Require this field to have a value. |
|
|
31
|
-
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config).
|
|
31
|
+
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
32
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
32
33
|
|
|
33
34
|
_\* An asterisk denotes that a property is required._
|
|
34
35
|
|
|
@@ -36,19 +37,19 @@ _\* An asterisk denotes that a property is required._
|
|
|
36
37
|
|
|
37
38
|
In addition to the default [field admin config](/docs/fields/overview#admin-config), you can customize the following fields that will adjust how the component displays in the admin panel via the `date` property.
|
|
38
39
|
|
|
39
|
-
| Property
|
|
40
|
-
|
|
|
41
|
-
| **`placeholder`**
|
|
42
|
-
| **`date`**
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
40
|
+
| Property | Description |
|
|
41
|
+
| ------------------------------ | ------------------------------------------------------------------------------------------- |
|
|
42
|
+
| **`placeholder`** | Placeholder text for the field. |
|
|
43
|
+
| **`date`** | Pass options to customize date field appearance. |
|
|
44
|
+
| **`date.displayFormat`** | Format date to be shown in field **cell**. |
|
|
45
|
+
| **`date.pickerAppearance`** \* | Determines the appearance of the datepicker: `dayAndTime` `timeOnly` `dayOnly` `monthOnly`. |
|
|
46
|
+
| **`date.monthsToShow`** \* | Number of months to display max is 2. Defaults to 1. |
|
|
47
|
+
| **`date.minDate`** \* | Min date value to allow. |
|
|
48
|
+
| **`date.maxDate`** \* | Max date value to allow. |
|
|
49
|
+
| **`date.minTime`** \* | Min time value to allow. |
|
|
50
|
+
| **`date.maxTime`** \* | Max date value to allow. |
|
|
51
|
+
| **`date.timeIntervals`** \* | Time intervals to display. Defaults to 30 minutes. |
|
|
52
|
+
| **`date.timeFormat`** \* | Determines time format. Defaults to `'h:mm aa'`. |
|
|
52
53
|
|
|
53
54
|
_\* This property is passed directly to [react-datepicker](https://github.com/Hacker0x01/react-datepicker/blob/master/docs/datepicker.md). ._
|
|
54
55
|
|
|
@@ -60,48 +61,48 @@ These properties only affect how the date is displayed in the UI. The full date
|
|
|
60
61
|
|
|
61
62
|
`pickerAppearance` sets the appearance of the **react datepicker**, the options available are `dayAndTime`, `dayOnly`, `timeOnly`, and `monthOnly`. By default, the datepicker will display `dayOnly`.
|
|
62
63
|
|
|
63
|
-
When only `pickerAppearance
|
|
64
|
+
When only `pickerAppearance` is set, an equivalent format will be rendered in the date field cell. To overwrite this format, set `displayFormat`.
|
|
64
65
|
|
|
65
66
|
### Example
|
|
66
67
|
|
|
67
68
|
`collections/ExampleCollection.ts`
|
|
68
69
|
|
|
69
70
|
```ts
|
|
70
|
-
import { CollectionConfig } from
|
|
71
|
+
import { CollectionConfig } from "payload/types";
|
|
71
72
|
|
|
72
73
|
const ExampleCollection: CollectionConfig = {
|
|
73
|
-
slug:
|
|
74
|
+
slug: "example-collection",
|
|
74
75
|
fields: [
|
|
75
|
-
|
|
76
|
-
name:
|
|
77
|
-
type:
|
|
76
|
+
{
|
|
77
|
+
name: "dateOnly",
|
|
78
|
+
type: "date",
|
|
78
79
|
admin: {
|
|
79
80
|
date: {
|
|
80
|
-
pickerAppearance:
|
|
81
|
-
displayFormat:
|
|
81
|
+
pickerAppearance: "dayOnly",
|
|
82
|
+
displayFormat: "d MMM yyy",
|
|
82
83
|
},
|
|
83
84
|
},
|
|
84
85
|
},
|
|
85
86
|
{
|
|
86
|
-
name:
|
|
87
|
-
type:
|
|
87
|
+
name: "timeOnly",
|
|
88
|
+
type: "date",
|
|
88
89
|
admin: {
|
|
89
90
|
date: {
|
|
90
|
-
pickerAppearance:
|
|
91
|
-
displayFormat:
|
|
91
|
+
pickerAppearance: "timeOnly",
|
|
92
|
+
displayFormat: "h:mm:ss a",
|
|
92
93
|
},
|
|
93
94
|
},
|
|
94
95
|
},
|
|
95
96
|
{
|
|
96
|
-
name:
|
|
97
|
-
type:
|
|
97
|
+
name: "monthOnly",
|
|
98
|
+
type: "date",
|
|
98
99
|
admin: {
|
|
99
100
|
date: {
|
|
100
|
-
pickerAppearance:
|
|
101
|
-
displayFormat:
|
|
101
|
+
pickerAppearance: "monthOnly",
|
|
102
|
+
displayFormat: "MMMM yyyy",
|
|
102
103
|
},
|
|
103
104
|
},
|
|
104
105
|
},
|
|
105
|
-
]
|
|
106
|
+
],
|
|
106
107
|
};
|
|
107
108
|
```
|
package/docs/fields/email.mdx
CHANGED
|
@@ -27,6 +27,7 @@ keywords: email, fields, config, configuration, documentation, Content Managemen
|
|
|
27
27
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
28
28
|
| **`required`** | Require this field to have a value. |
|
|
29
29
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
30
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
30
31
|
|
|
31
32
|
*\* An asterisk denotes that a property is required.*
|
|
32
33
|
|
package/docs/fields/group.mdx
CHANGED
|
@@ -25,6 +25,7 @@ keywords: group, fields, config, configuration, documentation, Content Managemen
|
|
|
25
25
|
| **`defaultValue`** | Provide an object of data to be used for this field's default value. [More](/docs/fields/overview#default-values) |
|
|
26
26
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. If enabled, a separate, localized set of all data within this Group will be kept, so there is no need to specify each nested field as `localized`. |
|
|
27
27
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
28
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
28
29
|
|
|
29
30
|
*\* An asterisk denotes that a property is required.*
|
|
30
31
|
|
package/docs/fields/json.mdx
CHANGED
|
@@ -30,6 +30,7 @@ This field uses the `monaco-react` editor syntax highlighting.
|
|
|
30
30
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
31
31
|
| **`required`** | Require this field to have a value. |
|
|
32
32
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
33
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
33
34
|
|
|
34
35
|
_\* An asterisk denotes that a property is required._
|
|
35
36
|
|
package/docs/fields/number.mdx
CHANGED
|
@@ -29,6 +29,7 @@ keywords: number, fields, config, configuration, documentation, Content Manageme
|
|
|
29
29
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
30
30
|
| **`required`** | Require this field to have a value. |
|
|
31
31
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
32
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
32
33
|
|
|
33
34
|
*\* An asterisk denotes that a property is required.*
|
|
34
35
|
|
package/docs/fields/point.mdx
CHANGED
|
@@ -30,6 +30,7 @@ The data structure in the database matches the GeoJSON structure to represent po
|
|
|
30
30
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
31
31
|
| **`required`** | Require this field to have a value. |
|
|
32
32
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
33
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
33
34
|
|
|
34
35
|
*\* An asterisk denotes that a property is required.*
|
|
35
36
|
|
package/docs/fields/radio.mdx
CHANGED
|
@@ -27,6 +27,7 @@ keywords: radio, fields, config, configuration, documentation, Content Managemen
|
|
|
27
27
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
28
28
|
| **`required`** | Require this field to have a value. |
|
|
29
29
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
30
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
30
31
|
|
|
31
32
|
*\* An asterisk denotes that a property is required.*
|
|
32
33
|
|
|
@@ -26,7 +26,7 @@ keywords: relationship, fields, config, configuration, documentation, Content Ma
|
|
|
26
26
|
| **`filterOptions`** | A query to filter which options appear in the UI and validate against. [More](#filtering-relationship-options). |
|
|
27
27
|
| **`hasMany`** | Boolean when, if set to `true`, allows this field to have many relations instead of only one. |
|
|
28
28
|
| **`min`** | A number for the fewest allowed items during validation when a value is present. Used with `hasMany`. |
|
|
29
|
-
| **`max`** | A number for the most allowed items during validation when a value is present. Used with `hasMany`.
|
|
29
|
+
| **`max`** | A number for the most allowed items during validation when a value is present. Used with `hasMany`. |
|
|
30
30
|
| **`maxDepth`** | Sets a number limit on iterations of related documents to populate when queried. [Depth](/docs/getting-started/concepts#depth) |
|
|
31
31
|
| **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
|
|
32
32
|
| **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
|
|
@@ -40,6 +40,7 @@ keywords: relationship, fields, config, configuration, documentation, Content Ma
|
|
|
40
40
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
41
41
|
| **`required`** | Require this field to have a value. |
|
|
42
42
|
| **`admin`** | Admin-specific configuration. See the [default field admin config](/docs/fields/overview#admin-config) for more details. |
|
|
43
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
43
44
|
|
|
44
45
|
_\* An asterisk denotes that a property is required._
|
|
45
46
|
|
|
@@ -31,6 +31,7 @@ The Admin component is built on the powerful [`slatejs`](https://docs.slatejs.or
|
|
|
31
31
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
32
32
|
| **`required`** | Require this field to have a value. |
|
|
33
33
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
34
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
34
35
|
|
|
35
36
|
*\* An asterisk denotes that a property is required.*
|
|
36
37
|
|
package/docs/fields/row.mdx
CHANGED
|
@@ -16,6 +16,7 @@ keywords: row, fields, config, configuration, documentation, Content Management
|
|
|
16
16
|
| ---------------- | ----------- |
|
|
17
17
|
| **`fields`** * | Array of field types to nest within this Row. |
|
|
18
18
|
| **`admin`** | Admin-specific configuration excluding `description`, `readOnly`, and `hidden`. See the [default field admin config](/docs/fields/overview#admin-config) for more details. |
|
|
19
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
19
20
|
|
|
20
21
|
*\* An asterisk denotes that a property is required.*
|
|
21
22
|
|
package/docs/fields/select.mdx
CHANGED
|
@@ -30,6 +30,7 @@ keywords: select, multi-select, fields, config, configuration, documentation, Co
|
|
|
30
30
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
31
31
|
| **`required`** | Require this field to have a value. |
|
|
32
32
|
| **`admin`** | Admin-specific configuration. See the [default field admin config](/docs/fields/overview#admin-config) for more details. |
|
|
33
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
33
34
|
|
|
34
35
|
_\* An asterisk denotes that a property is required._
|
|
35
36
|
|
package/docs/fields/tabs.mdx
CHANGED
|
@@ -19,6 +19,7 @@ keywords: tabs, fields, config, configuration, documentation, Content Management
|
|
|
19
19
|
| ---------------- | ----------- |
|
|
20
20
|
| **`tabs`** * | Array of tabs to render within this Tabs field. |
|
|
21
21
|
| **`admin`** | Admin-specific configuration. See the [default field admin config](/docs/fields/overview#admin-config) for more details. |
|
|
22
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
22
23
|
|
|
23
24
|
#### Tab-specific Config
|
|
24
25
|
|
package/docs/fields/text.mdx
CHANGED
|
@@ -29,6 +29,7 @@ keywords: text, fields, config, configuration, documentation, Content Management
|
|
|
29
29
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
30
30
|
| **`required`** | Require this field to have a value. |
|
|
31
31
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
32
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
32
33
|
|
|
33
34
|
*\* An asterisk denotes that a property is required.*
|
|
34
35
|
|
package/docs/fields/textarea.mdx
CHANGED
|
@@ -25,10 +25,11 @@ keywords: textarea, fields, config, configuration, documentation, Content Manage
|
|
|
25
25
|
| **`hooks`** | Provide field-based hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) |
|
|
26
26
|
| **`access`** | Provide field-based access control to denote what users can see and do with this field's data. [More](/docs/fields/overview#field-level-access-control) |
|
|
27
27
|
| **`hidden`** | Restrict this field's visibility from all APIs entirely. Will still be saved to the database, but will not appear in any API or the Admin panel. |
|
|
28
|
-
| **`defaultValue`** | Provide data to be used for this field's default value. [More](/docs/fields/overview#default-values)
|
|
28
|
+
| **`defaultValue`** | Provide data to be used for this field's default value. [More](/docs/fields/overview#default-values)|
|
|
29
29
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
30
30
|
| **`required`** | Require this field to have a value. |
|
|
31
31
|
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
32
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
32
33
|
|
|
33
34
|
*\* An asterisk denotes that a property is required.*
|
|
34
35
|
|
package/docs/fields/ui.mdx
CHANGED
|
@@ -29,6 +29,7 @@ With this field, you can also inject custom `Cell` components that appear as add
|
|
|
29
29
|
| **`label`** | Human-readable label for this UI field. |
|
|
30
30
|
| **`admin.components.Field`** | React component to be rendered for this field within the Edit view. [More](/docs/admin/components/#field-component) |
|
|
31
31
|
| **`admin.components.Cell`** | React component to be rendered as a Cell within collection List views. [More](/docs/admin/components/#field-component) |
|
|
32
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
32
33
|
|
|
33
34
|
*\* An asterisk denotes that a property is required.*
|
|
34
35
|
|
package/docs/fields/upload.mdx
CHANGED
|
@@ -41,6 +41,7 @@ keywords: upload, images media, fields, config, configuration, documentation, Co
|
|
|
41
41
|
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. |
|
|
42
42
|
| **`required`** | Require this field to have a value. |
|
|
43
43
|
| **`admin`** | Admin-specific configuration. See the [default field admin config](/docs/fields/overview#admin-config) for more details. |
|
|
44
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
44
45
|
|
|
45
46
|
*\* An asterisk denotes that a property is required.*
|
|
46
47
|
|
|
@@ -106,6 +106,8 @@ Here is a list of all properties available to pass through `payload.init`:
|
|
|
106
106
|
|
|
107
107
|
**Required**. This is a secure string that will be used to authenticate with Payload. It can be random but should be at least 14 characters and be very difficult to guess. Often, it's smart to store this value in an `env` and set different values for each of your environments (local, stage, prod, etc). The `dotenv` package is very handy and works well alongside of Payload.
|
|
108
108
|
|
|
109
|
+
Payload uses this secret key to generate secure user tokens (JWT). Behind the scenes, we do not use your secret key to encrypt directly - instead, we first take the secret key and create an encrypted string using the SHA-256 hash function. Then, we reduce the encrypted string to its first 32 characters. This final value is what Payload uses for encryption.
|
|
110
|
+
|
|
109
111
|
##### `mongoURL`
|
|
110
112
|
|
|
111
113
|
**Required**. This is a fully qualified MongoDB connection string that points to your Mongo database. If you don't have Mongo installed locally, you can [follow these steps for Mac OSX](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/) and [these steps](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/) for Windows 10. If you want to use a local database and you know you have MongoDB installed locally, a typical connection string will look like this:
|
|
@@ -79,7 +79,13 @@ const beforeOperationHook: CollectionBeforeOperationHook = async ({
|
|
|
79
79
|
|
|
80
80
|
### beforeValidate
|
|
81
81
|
|
|
82
|
-
Runs before the `create` and `update` operations. This hook allows you to add or format data before the incoming data is validated.
|
|
82
|
+
Runs before the `create` and `update` operations. This hook allows you to add or format data before the incoming data is validated server-side.
|
|
83
|
+
|
|
84
|
+
Please do note that this does not run before the client-side validation. If you added a `validate` function, this would be the lifecycle:
|
|
85
|
+
|
|
86
|
+
1. `validate` runs on the client
|
|
87
|
+
2. if successful, `beforeValidate` runs on the server
|
|
88
|
+
3. `validate` runs on the server
|
|
83
89
|
|
|
84
90
|
```ts
|
|
85
91
|
import { CollectionBeforeOperationHook } from 'payload/types';
|
|
@@ -75,7 +75,7 @@ The above example demonstrates a simple query but you can get much more complex.
|
|
|
75
75
|
|
|
76
76
|
### And / Or Logic
|
|
77
77
|
|
|
78
|
-
In addition to defining simple queries, you can join multiple queries together using simple AND / OR logic. Let's take the above `Post` collection for example and write a more complex query
|
|
78
|
+
In addition to defining simple queries, you can join multiple queries together using simple AND / OR logic. Let's take the above `Post` collection for example and write a more complex query using AND / OR:
|
|
79
79
|
|
|
80
80
|
```js
|
|
81
81
|
const query = {
|
|
@@ -32,7 +32,7 @@ Note: Collection slugs must be formatted in kebab-case
|
|
|
32
32
|
| `GET` | `/api/{collection-slug}/:id` | Find a specific document by ID |
|
|
33
33
|
| `POST` | `/api/{collection-slug}` | Create a new document |
|
|
34
34
|
| `PATCH` | `/api/{collection-slug}` | Update all documents matching the `where` query |
|
|
35
|
-
| `PATCH` | `/api/{collection-slug}`
|
|
35
|
+
| `PATCH` | `/api/{collection-slug}/:id` | Update a document by ID |
|
|
36
36
|
| `DELETE` | `/api/{collection-slug}` | Delete all documents matching the `where` query |
|
|
37
37
|
| `DELETE` | `/api/{collection-sldug}/:id` | Delete an existing document by ID |
|
|
38
38
|
|
|
@@ -91,6 +91,7 @@ Each endpoint object needs to have:
|
|
|
91
91
|
| **`method`** | The lowercase HTTP verb to use: 'get', 'head', 'post', 'put', 'delete', 'connect' or 'options' |
|
|
92
92
|
| **`handler`** | A function or array of functions to be called with **req**, **res** and **next** arguments. [Express](https://expressjs.com/en/guide/routing.html#route-handlers) |
|
|
93
93
|
| **`root`** | When `true`, defines the endpoint on the root Express app, bypassing Payload handlers and the `routes.api` subpath. Note: this only applies to top-level endpoints of your Payload config, endpoints defined on `collections` or `globals` cannot be root. |
|
|
94
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
94
95
|
|
|
95
96
|
Example:
|
|
96
97
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "Node, React and MongoDB Headless CMS and Application Framework",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
"test:components": "cross-env jest --config=jest.components.config.js",
|
|
49
49
|
"clean:cache": "rimraf node_modules/.cache",
|
|
50
50
|
"clean": "rimraf dist",
|
|
51
|
-
"release": "release-it",
|
|
52
51
|
"release:patch": "release-it patch",
|
|
53
52
|
"release:minor": "release-it minor",
|
|
54
53
|
"release:major": "release-it major",
|
|
@@ -106,7 +105,6 @@
|
|
|
106
105
|
"dotenv": "^8.6.0",
|
|
107
106
|
"express": "^4.18.2",
|
|
108
107
|
"express-fileupload": "1.4.0",
|
|
109
|
-
"express-graphql": "0.12.0",
|
|
110
108
|
"express-rate-limit": "^5.5.1",
|
|
111
109
|
"file-loader": "^6.2.0",
|
|
112
110
|
"file-type": "16.5.4",
|
|
@@ -115,6 +113,7 @@
|
|
|
115
113
|
"fs-extra": "^10.1.0",
|
|
116
114
|
"get-tsconfig": "^4.4.0",
|
|
117
115
|
"graphql": "^16.6.0",
|
|
116
|
+
"graphql-http": "^1.17.1",
|
|
118
117
|
"graphql-playground-middleware-express": "^1.7.23",
|
|
119
118
|
"graphql-query-complexity": "^0.12.0",
|
|
120
119
|
"graphql-scalars": "^1.20.1",
|
|
@@ -186,7 +185,7 @@
|
|
|
186
185
|
"url-loader": "^4.1.1",
|
|
187
186
|
"use-context-selector": "^1.4.1",
|
|
188
187
|
"uuid": "^8.3.2",
|
|
189
|
-
"webpack": "^5.
|
|
188
|
+
"webpack": "^5.78.0",
|
|
190
189
|
"webpack-bundle-analyzer": "^4.8.0",
|
|
191
190
|
"webpack-cli": "^4.10.0",
|
|
192
191
|
"webpack-dev-middleware": "6.0.1",
|
|
@@ -278,7 +277,7 @@
|
|
|
278
277
|
"node-fetch": "2",
|
|
279
278
|
"nodemon": "^2.0.20",
|
|
280
279
|
"passport-strategy": "^1.0.0",
|
|
281
|
-
"release-it": "^15.
|
|
280
|
+
"release-it": "^15.10.1",
|
|
282
281
|
"rimraf": "^3.0.2",
|
|
283
282
|
"serve-static": "^1.15.0",
|
|
284
283
|
"shelljs": "^0.8.5",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeFormattedValue.js","sourceRoot":"","sources":["../../src/mongoose/sanitizeFormattedValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.versionGlobalDefaults = exports.versionCollectionDefaults = void 0;
|
|
4
|
-
exports.versionCollectionDefaults = {
|
|
5
|
-
drafts: {
|
|
6
|
-
autosave: {
|
|
7
|
-
interval: 2000, // in milliseconds
|
|
8
|
-
},
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
exports.versionGlobalDefaults = {
|
|
12
|
-
drafts: {
|
|
13
|
-
autosave: {
|
|
14
|
-
interval: 2000, // in milliseconds
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/versions/defaults.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAA+B;IACnE,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI,EAAE,kBAAkB;SACnC;KACF;CACF,CAAC;AAEW,QAAA,qBAAqB,GAA2B;IAC3D,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI,EAAE,kBAAkB;SACnC;KACF;CACF,CAAC"}
|