payload 0.14.31-beta.0 → 0.15.2
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/.eslintrc.js +6 -0
- package/CHANGELOG.md +60 -71
- package/dist/admin/components/elements/elements.spec.d.ts +1 -0
- package/dist/admin/components/elements/elements.spec.js +12 -0
- package/dist/admin/components/forms/field-types/RichText/RichText.js +1 -1
- package/dist/admin/components/forms/field-types/RichText/index.scss +4 -1
- package/dist/admin/components/forms/field-types/Select/index.js +1 -1
- package/dist/admin/components/utilities/CustomProvider/index.d.ts +4 -0
- package/dist/admin/components/utilities/CustomProvider/index.js +18 -0
- package/dist/admin/index.js +3 -1
- package/dist/auth/auth.spec.d.ts +1 -0
- package/dist/auth/auth.spec.js +198 -0
- package/dist/collections/graphql/resolvers/resolvers.spec.d.ts +1 -0
- package/dist/collections/graphql/resolvers/resolvers.spec.js +360 -0
- package/dist/collections/operations/find.d.ts +1 -0
- package/dist/collections/operations/find.js +4 -2
- package/dist/collections/operations/local/find.d.ts +1 -0
- package/dist/collections/operations/local/find.js +3 -2
- package/dist/collections/operations/local/local.spec.d.ts +1 -0
- package/dist/collections/operations/local/local.spec.js +175 -0
- package/dist/collections/tests/collections.spec.d.ts +1 -0
- package/dist/collections/tests/collections.spec.js +725 -0
- package/dist/collections/tests/hooks.spec.d.ts +1 -0
- package/dist/collections/tests/hooks.spec.js +152 -0
- package/dist/collections/tests/pointField.spec.d.ts +1 -0
- package/dist/collections/tests/pointField.spec.js +208 -0
- package/dist/collections/tests/relationships.spec.d.ts +1 -0
- package/dist/collections/tests/relationships.spec.js +174 -0
- package/dist/collections/tests/uploads.spec.d.ts +1 -0
- package/dist/collections/tests/uploads.spec.js +328 -0
- package/dist/config/sanitize.js +4 -1
- package/dist/config/schema.js +2 -1
- package/dist/config/types.d.ts +2 -1
- package/dist/errors/errors.spec.d.ts +1 -0
- package/dist/errors/errors.spec.js +29 -0
- package/dist/express/middleware/errorHandler.spec.d.ts +1 -0
- package/dist/express/middleware/errorHandler.spec.js +91 -0
- package/dist/fields/config/schema.js +5 -5
- package/dist/fields/validations.js +6 -5
- package/dist/fields/validations.spec.js +120 -1
- package/dist/globals/requestHandlers/globals.spec.d.ts +4 -0
- package/dist/globals/requestHandlers/globals.spec.js +161 -0
- package/dist/graphql/errorHandler.d.ts +2 -1
- package/dist/graphql/errorHandler.js +9 -6
- package/dist/graphql/index.d.ts +2 -1
- package/dist/graphql/index.js +13 -4
- package/dist/graphql/schema/buildObjectType.js +6 -36
- package/dist/graphql/utilities/formatName.js +3 -3
- package/dist/graphql/utilities/formatOptions.d.ts +3 -0
- package/dist/graphql/utilities/formatOptions.js +27 -0
- package/dist/preferences/graphql/resolvers.spec.d.ts +1 -0
- package/dist/preferences/graphql/resolvers.spec.js +115 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.js +8 -5
- package/docs/admin/components.mdx +10 -2
- package/docs/getting-started/installation.mdx +12 -0
- package/docs/local-api/overview.mdx +1 -0
- package/docs/versions/overview.mdx +2 -2
- package/package.json +1 -1
package/dist/graphql/index.js
CHANGED
|
@@ -41,6 +41,7 @@ class InitializeGraphQL {
|
|
|
41
41
|
constructor(init) {
|
|
42
42
|
this.Query = { name: 'Query', fields: {} };
|
|
43
43
|
this.Mutation = { name: 'Mutation', fields: {} };
|
|
44
|
+
this.errorResponses = [];
|
|
44
45
|
Object.assign(this, init);
|
|
45
46
|
this.init = this.init.bind(this);
|
|
46
47
|
this.types = {
|
|
@@ -104,12 +105,20 @@ class InitializeGraphQL {
|
|
|
104
105
|
this.extensions = async (info) => {
|
|
105
106
|
const { result } = info;
|
|
106
107
|
if (result.errors) {
|
|
108
|
+
this.errorIndex = 0;
|
|
107
109
|
const afterErrorHook = typeof this.config.hooks.afterError === 'function' ? this.config.hooks.afterError : null;
|
|
108
|
-
|
|
110
|
+
this.errorResponses = await (0, errorHandler_1.default)(info, this.config.debug, afterErrorHook);
|
|
109
111
|
}
|
|
110
112
|
return null;
|
|
111
113
|
};
|
|
112
|
-
this.customFormatErrorFn = (error) =>
|
|
114
|
+
this.customFormatErrorFn = (error) => {
|
|
115
|
+
if (this.errorResponses && this.errorResponses[this.errorIndex]) {
|
|
116
|
+
const response = this.errorResponses[this.errorIndex];
|
|
117
|
+
this.errorIndex += 1;
|
|
118
|
+
return response;
|
|
119
|
+
}
|
|
120
|
+
return error;
|
|
121
|
+
};
|
|
113
122
|
this.validationRules = (variables) => ([
|
|
114
123
|
(0, graphql_query_complexity_1.default)({
|
|
115
124
|
estimators: [
|
|
@@ -123,7 +132,7 @@ class InitializeGraphQL {
|
|
|
123
132
|
]);
|
|
124
133
|
}
|
|
125
134
|
init(req, res) {
|
|
126
|
-
this.
|
|
135
|
+
this.errorResponses = null;
|
|
127
136
|
return (0, express_graphql_1.graphqlHTTP)(async (request, response, { variables }) => ({
|
|
128
137
|
schema: this.schema,
|
|
129
138
|
customFormatErrorFn: this.customFormatErrorFn,
|
|
@@ -134,4 +143,4 @@ class InitializeGraphQL {
|
|
|
134
143
|
}
|
|
135
144
|
}
|
|
136
145
|
exports.default = InitializeGraphQL;
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ3JhcGhxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBbUM7QUFDbkMscUNBQWdHO0FBQ2hHLHFEQUE4QztBQUM5QyxxRkFBc0c7QUFDdEcsK0VBQXVEO0FBQ3ZELDZGQUFxRTtBQUNyRSxrRUFBMEM7QUFDMUMsNkVBQXFEO0FBQ3JELG1GQUEyRDtBQUMzRCx5RkFBaUU7QUFDakUseUdBQWlGO0FBQ2pGLHVFQUEwRDtBQUMxRCxtRUFBa0Q7QUFDbEQsdUVBQTBEO0FBRTFELHVGQUErRDtBQVUvRCxNQUFNLGlCQUFpQjtJQXlDckIsWUFBWSxJQUFJO1FBaENoQixVQUFLLEdBQXFELEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFeEYsYUFBUSxHQUFxRCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBMEI5RixtQkFBYyxHQUE0QixFQUFFLENBQUM7UUFLM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsVUFBVSxFQUFFLEVBQUU7WUFDZCxlQUFlLEVBQUUsRUFBRTtTQUNKLENBQUM7UUFFbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxJQUFBLDhCQUFvQixFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxJQUFBLHNDQUE0QixFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0Y7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsSUFBSSxFQUFFLE9BQU87WUFDYixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsSUFBSSxFQUFFLFVBQVU7WUFDaEIsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsR0FBRyx3QkFBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsZ0NBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyw2QkFBbUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLHlCQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsR0FBRywyQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTTtTQUN4RCxDQUFDO1FBRUYsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsS0FBSyxHQUFHO2dCQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO29CQUNwQixHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztpQkFDekI7YUFDRixDQUFDO1NBQ0g7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUN2RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUc7Z0JBQ2QsR0FBRyxJQUFJLENBQUMsUUFBUTtnQkFDaEIsTUFBTSxFQUFFO29CQUNOLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO29CQUN2QixHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztpQkFDM0I7YUFDRixDQUFDO1NBQ0g7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLDJCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLDJCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0RCxNQUFNLE1BQU0sR0FBRztZQUNiLEtBQUs7WUFDTCxRQUFRO1NBQ1QsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx1QkFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQy9CLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDcEIsTUFBTSxjQUFjLEdBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDaEgsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLElBQUEsc0JBQVksRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7YUFDbkY7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO2dCQUNyQixPQUFPLFFBQVEsQ0FBQzthQUNqQjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFBLGtDQUFlLEVBQUM7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLElBQUEsbURBQXdCLEdBQUU7b0JBQzFCLElBQUEsMENBQWUsRUFBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsaUNBQWlDO2lCQUM3RTtnQkFDRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhO2dCQUNwRCxTQUFTO2dCQUNULGlGQUFpRjthQUNsRixDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRztRQUNYLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE9BQU8sSUFBQSw2QkFBVyxFQUNoQixLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzdDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztTQUNqRCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELGtCQUFlLGlCQUFpQixDQUFDIn0=
|
|
@@ -16,6 +16,7 @@ const combineParentName_1 = __importDefault(require("../utilities/combineParentN
|
|
|
16
16
|
const withNullableType_1 = __importDefault(require("./withNullableType"));
|
|
17
17
|
const formatLabels_1 = require("../../utilities/formatLabels");
|
|
18
18
|
const relationshipPromise_1 = __importDefault(require("../../fields/richText/relationshipPromise"));
|
|
19
|
+
const formatOptions_1 = __importDefault(require("../utilities/formatOptions"));
|
|
19
20
|
function buildObjectType(name, fields, parentName, baseFields = {}) {
|
|
20
21
|
const recursiveBuildObjectType = buildObjectType.bind(this);
|
|
21
22
|
const fieldToSchemaMap = {
|
|
@@ -94,6 +95,7 @@ function buildObjectType(name, fields, parentName, baseFields = {}) {
|
|
|
94
95
|
fallbackLocale,
|
|
95
96
|
},
|
|
96
97
|
depth: 0,
|
|
98
|
+
pagination: false,
|
|
97
99
|
};
|
|
98
100
|
const relatedDocument = await find(relatedDocumentQuery);
|
|
99
101
|
if (relatedDocument.docs[0])
|
|
@@ -112,22 +114,7 @@ function buildObjectType(name, fields, parentName, baseFields = {}) {
|
|
|
112
114
|
radio: (field) => ({
|
|
113
115
|
type: (0, withNullableType_1.default)(field, new graphql_1.GraphQLEnumType({
|
|
114
116
|
name: (0, combineParentName_1.default)(parentName, field.name),
|
|
115
|
-
values:
|
|
116
|
-
if ((0, types_1.optionIsObject)(option)) {
|
|
117
|
-
return {
|
|
118
|
-
...values,
|
|
119
|
-
[(0, formatName_1.default)(option.value)]: {
|
|
120
|
-
value: option.value,
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
...values,
|
|
126
|
-
[(0, formatName_1.default)(option)]: {
|
|
127
|
-
value: option,
|
|
128
|
-
},
|
|
129
|
-
};
|
|
130
|
-
}, {}),
|
|
117
|
+
values: (0, formatOptions_1.default)(field),
|
|
131
118
|
})),
|
|
132
119
|
}),
|
|
133
120
|
checkbox: (field) => ({ type: (0, withNullableType_1.default)(field, graphql_1.GraphQLBoolean) }),
|
|
@@ -135,25 +122,7 @@ function buildObjectType(name, fields, parentName, baseFields = {}) {
|
|
|
135
122
|
const fullName = (0, combineParentName_1.default)(parentName, field.name);
|
|
136
123
|
let type = new graphql_1.GraphQLEnumType({
|
|
137
124
|
name: fullName,
|
|
138
|
-
values:
|
|
139
|
-
if (typeof option === 'object' && option.value) {
|
|
140
|
-
return {
|
|
141
|
-
...values,
|
|
142
|
-
[(0, formatName_1.default)(option.value)]: {
|
|
143
|
-
value: option.value,
|
|
144
|
-
},
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
if (typeof option === 'string') {
|
|
148
|
-
return {
|
|
149
|
-
...values,
|
|
150
|
-
[(0, formatName_1.default)(option)]: {
|
|
151
|
-
value: option,
|
|
152
|
-
},
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
return values;
|
|
156
|
-
}, {}),
|
|
125
|
+
values: (0, formatOptions_1.default)(field),
|
|
157
126
|
});
|
|
158
127
|
type = field.hasMany ? new graphql_1.GraphQLList(type) : type;
|
|
159
128
|
type = (0, withNullableType_1.default)(field, type);
|
|
@@ -247,6 +216,7 @@ function buildObjectType(name, fields, parentName, baseFields = {}) {
|
|
|
247
216
|
fallbackLocale,
|
|
248
217
|
},
|
|
249
218
|
depth: 0,
|
|
219
|
+
pagination: false,
|
|
250
220
|
});
|
|
251
221
|
if (result.docs.length === 1) {
|
|
252
222
|
if (isRelatedToManyCollections) {
|
|
@@ -392,4 +362,4 @@ function buildObjectType(name, fields, parentName, baseFields = {}) {
|
|
|
392
362
|
return newlyCreatedBlockType;
|
|
393
363
|
}
|
|
394
364
|
exports.default = buildObjectType;
|
|
395
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRPYmplY3RUeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBocWwvc2NoZW1hL2J1aWxkT2JqZWN0VHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDREQUE0RDtBQUM1RCxxQ0FBcUM7QUFDckMseUNBQXlDO0FBQ3pDLHlDQUF5QztBQUN6Qyx5REFBZ0Q7QUFDaEQscUNBU2lCO0FBQ2pCLHFEQUF5RTtBQUN6RSxxREFBeVU7QUFDelUseUVBQWlEO0FBQ2pELHVGQUErRDtBQUMvRCwwRUFBa0Q7QUFFbEQsK0RBQXVEO0FBQ3ZELG9HQUEwRjtBQWMxRixTQUFTLGVBQWUsQ0FBQyxJQUFZLEVBQUUsTUFBZSxFQUFFLFVBQWtCLEVBQUUsYUFBeUIsRUFBRTtJQUNyRyxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUQsTUFBTSxnQkFBZ0IsR0FBRztRQUN2QixNQUFNLEVBQUUsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUEsMEJBQWdCLEVBQUMsS0FBSyxFQUFFLHNCQUFZLENBQUMsRUFBRSxDQUFDO1FBQ2pGLElBQUksRUFBRSxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBQSwwQkFBZ0IsRUFBQyxLQUFLLEVBQUUsdUJBQWEsQ0FBQyxFQUFFLENBQUM7UUFDOUUsS0FBSyxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFBLDBCQUFnQixFQUFDLEtBQUssRUFBRSxzQ0FBb0IsQ0FBQyxFQUFFLENBQUM7UUFDdkYsUUFBUSxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFBLDBCQUFnQixFQUFDLEtBQUssRUFBRSx1QkFBYSxDQUFDLEVBQUUsQ0FBQztR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
|
|
365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRPYmplY3RUeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBocWwvc2NoZW1hL2J1aWxkT2JqZWN0VHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDREQUE0RDtBQUM1RCxxQ0FBcUM7QUFDckMseUNBQXlDO0FBQ3pDLHlDQUF5QztBQUN6Qyx5REFBZ0Q7QUFDaEQscUNBU2lCO0FBQ2pCLHFEQUF5RTtBQUN6RSxxREFBeVU7QUFDelUseUVBQWlEO0FBQ2pELHVGQUErRDtBQUMvRCwwRUFBa0Q7QUFFbEQsK0RBQXVEO0FBQ3ZELG9HQUEwRjtBQUMxRiwrRUFBdUQ7QUFjdkQsU0FBUyxlQUFlLENBQUMsSUFBWSxFQUFFLE1BQWUsRUFBRSxVQUFrQixFQUFFLGFBQXlCLEVBQUU7SUFDckcsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVELE1BQU0sZ0JBQWdCLEdBQUc7UUFDdkIsTUFBTSxFQUFFLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFBLDBCQUFnQixFQUFDLEtBQUssRUFBRSxzQkFBWSxDQUFDLEVBQUUsQ0FBQztRQUNqRixJQUFJLEVBQUUsQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUEsMEJBQWdCLEVBQUMsS0FBSyxFQUFFLHVCQUFhLENBQUMsRUFBRSxDQUFDO1FBQzlFLEtBQUssRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBQSwwQkFBZ0IsRUFBQyxLQUFLLEVBQUUsc0NBQW9CLENBQUMsRUFBRSxDQUFDO1FBQ3ZGLFFBQVEsRUFBRSxDQUFDLEtBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBQSwwQkFBZ0IsRUFBQyxLQUFLLEVBQUUsdUJBQWEsQ0FB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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
|
|
3
|
+
const numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
|
|
4
4
|
const formatName = (string) => {
|
|
5
5
|
let sanitizedString = String(string);
|
|
6
6
|
const firstLetter = sanitizedString.substring(0, 1);
|
|
@@ -16,7 +16,7 @@ const formatName = (string) => {
|
|
|
16
16
|
.replace(/\)/g, '_')
|
|
17
17
|
.replace(/'/g, '_')
|
|
18
18
|
.replace(/ /g, '');
|
|
19
|
-
return formatted;
|
|
19
|
+
return formatted || '_';
|
|
20
20
|
};
|
|
21
21
|
exports.default = formatName;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0TmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3V0aWxpdGllcy9mb3JtYXROYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVuRSxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO0lBQzVDLElBQUksZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyQyxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVwRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDckMsZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7S0FDekM7SUFFRCxNQUFNLFNBQVMsR0FBRyxlQUFlO1NBQzlCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1NBQ2xCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1NBQ2xCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFckIsT0FBTyxTQUFTLElBQUksR0FBRyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLGtCQUFlLFVBQVUsQ0FBQyJ9
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const types_1 = require("../../fields/config/types");
|
|
7
|
+
const formatName_1 = __importDefault(require("./formatName"));
|
|
8
|
+
const formatOptions = (field) => {
|
|
9
|
+
return field.options.reduce((values, option) => {
|
|
10
|
+
if ((0, types_1.optionIsObject)(option)) {
|
|
11
|
+
return {
|
|
12
|
+
...values,
|
|
13
|
+
[(0, formatName_1.default)(option.value)]: {
|
|
14
|
+
value: option.value,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
...values,
|
|
20
|
+
[(0, formatName_1.default)(option)]: {
|
|
21
|
+
value: option,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}, {});
|
|
25
|
+
};
|
|
26
|
+
exports.default = formatOptions;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0T3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3V0aWxpdGllcy9mb3JtYXRPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQW9GO0FBQ3BGLDhEQUFzQztBQUV0QyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQStCLEVBQUUsRUFBRTtJQUN4RCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzdDLElBQUksSUFBQSxzQkFBYyxFQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUMxQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7aUJBQ3BCO2FBQ0YsQ0FBQztTQUNIO1FBRUQsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUNULENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BCLEtBQUssRUFBRSxNQUFNO2FBQ2Q7U0FDRixDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDO0FBR0Ysa0JBQWUsYUFBYSxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/**
|
|
7
|
+
* @jest-environment node
|
|
8
|
+
*/
|
|
9
|
+
const graphql_request_1 = require("graphql-request");
|
|
10
|
+
const load_1 = __importDefault(require("../../config/load"));
|
|
11
|
+
const testCredentials_1 = require("../../mongoose/testCredentials");
|
|
12
|
+
require('isomorphic-fetch');
|
|
13
|
+
const config = (0, load_1.default)();
|
|
14
|
+
const url = `${config.serverURL}${config.routes.api}${config.routes.graphQL}`;
|
|
15
|
+
let client = null;
|
|
16
|
+
let token = null;
|
|
17
|
+
describe('GrahpQL Preferences', () => {
|
|
18
|
+
beforeAll(async (done) => {
|
|
19
|
+
const query = `
|
|
20
|
+
mutation {
|
|
21
|
+
loginAdmin(
|
|
22
|
+
email: "${testCredentials_1.email}",
|
|
23
|
+
password: "${testCredentials_1.password}"
|
|
24
|
+
) {
|
|
25
|
+
token
|
|
26
|
+
}
|
|
27
|
+
}`;
|
|
28
|
+
const response = await (0, graphql_request_1.request)(url, query);
|
|
29
|
+
token = response.loginAdmin.token;
|
|
30
|
+
client = new graphql_request_1.GraphQLClient(url, { headers: { Authorization: `JWT ${token}` } });
|
|
31
|
+
done();
|
|
32
|
+
});
|
|
33
|
+
describe('Update', () => {
|
|
34
|
+
it('should allow a preference to be saved', async () => {
|
|
35
|
+
const key = 'preference-key';
|
|
36
|
+
const value = 'preference-value';
|
|
37
|
+
// language=graphQL
|
|
38
|
+
const query = `mutation {
|
|
39
|
+
updatePreference(key: "${key}", value: "${value}") {
|
|
40
|
+
key
|
|
41
|
+
value
|
|
42
|
+
}
|
|
43
|
+
}`;
|
|
44
|
+
const response = await client.request(query);
|
|
45
|
+
const data = response.updatePreference;
|
|
46
|
+
expect(data.key).toBe(key);
|
|
47
|
+
expect(data.value).toBe(value);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('Read', () => {
|
|
51
|
+
it('should be able to read user preference', async () => {
|
|
52
|
+
const key = 'preference-key';
|
|
53
|
+
const value = 'preference-value';
|
|
54
|
+
// language=graphQL
|
|
55
|
+
const query = `mutation {
|
|
56
|
+
updatePreference(key: "${key}", value: "${value}") {
|
|
57
|
+
key
|
|
58
|
+
value
|
|
59
|
+
}
|
|
60
|
+
}`;
|
|
61
|
+
const response = await client.request(query);
|
|
62
|
+
const { key: responseKey, value: responseValue } = response.updatePreference;
|
|
63
|
+
// language=graphQL
|
|
64
|
+
const readQuery = `query {
|
|
65
|
+
Preference(key: "${responseKey}") {
|
|
66
|
+
key
|
|
67
|
+
value
|
|
68
|
+
}
|
|
69
|
+
}`;
|
|
70
|
+
const readResponse = await client.request(readQuery);
|
|
71
|
+
expect(responseKey).toStrictEqual(key);
|
|
72
|
+
expect(readResponse.Preference.key).toStrictEqual(key);
|
|
73
|
+
expect(responseValue).toStrictEqual(value);
|
|
74
|
+
expect(readResponse.Preference.value).toStrictEqual(value);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe('Delete', () => {
|
|
78
|
+
it('should be able to delete a preference', async () => {
|
|
79
|
+
const key = 'gql-delete';
|
|
80
|
+
const value = 'description';
|
|
81
|
+
// language=graphQL
|
|
82
|
+
const query = `mutation {
|
|
83
|
+
updatePreference(key: "${key}" value: "${value}") {
|
|
84
|
+
key
|
|
85
|
+
value
|
|
86
|
+
}
|
|
87
|
+
}`;
|
|
88
|
+
const response = await client.request(query);
|
|
89
|
+
const { key: responseKey } = response.updatePreference;
|
|
90
|
+
// language=graphQL
|
|
91
|
+
const deleteMutation = `mutation {
|
|
92
|
+
deletePreference(key: "${key}") {
|
|
93
|
+
key
|
|
94
|
+
value
|
|
95
|
+
}
|
|
96
|
+
}`;
|
|
97
|
+
const deleteResponse = await client.request(deleteMutation);
|
|
98
|
+
const deleteKey = deleteResponse.deletePreference.key;
|
|
99
|
+
expect(responseKey).toStrictEqual(key);
|
|
100
|
+
expect(deleteKey).toStrictEqual(key);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
it('should return null when query key is not found', async () => {
|
|
104
|
+
const key = 'bad-key';
|
|
105
|
+
const readQuery = `query {
|
|
106
|
+
Preference(key: "${key}") {
|
|
107
|
+
key
|
|
108
|
+
value
|
|
109
|
+
}
|
|
110
|
+
}`;
|
|
111
|
+
const response = await client.request(readQuery);
|
|
112
|
+
expect(response.Preference).toBeNull();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJzLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJlZmVyZW5jZXMvZ3JhcGhxbC9yZXNvbHZlcnMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gscURBQXlEO0FBQ3pELDZEQUEwQztBQUMxQyxvRUFBaUU7QUFFakUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFNUIsTUFBTSxNQUFNLEdBQUcsSUFBQSxjQUFTLEdBQUUsQ0FBQztBQUUzQixNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUU5RSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDbEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBRWpCLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDbkMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRzs7O29CQUdFLHVCQUFLO3VCQUNGLDBCQUFROzs7O1FBSXZCLENBQUM7UUFFTCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEseUJBQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFM0MsS0FBSyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRWxDLE1BQU0sR0FBRyxJQUFJLCtCQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFaEYsSUFBSSxFQUFFLENBQUM7SUFDVCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3RCLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQztZQUM3QixNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztZQUVqQyxtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7bUNBQ2UsR0FBRyxjQUFjLEtBQUs7Ozs7UUFJakQsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFFdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBQ3BCLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0RCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQztZQUM3QixNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztZQUVqQyxtQkFBbUI7WUFDbkIsTUFBTSxLQUFLLEdBQUc7bUNBQ2UsR0FBRyxjQUFjLEtBQUs7Ozs7UUFJakQsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1lBQzdFLG1CQUFtQjtZQUNuQixNQUFNLFNBQVMsR0FBRzsyQkFDRyxXQUFXOzs7O1FBSTlCLENBQUM7WUFDSCxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFckQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3RCLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDO1lBRTVCLG1CQUFtQjtZQUNuQixNQUFNLEtBQUssR0FBRztxQ0FDaUIsR0FBRyxhQUFhLEtBQUs7Ozs7VUFJaEQsQ0FBQztZQUVMLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2RCxtQkFBbUI7WUFDbkIsTUFBTSxjQUFjLEdBQUc7aUNBQ0ksR0FBRzs7OztRQUk1QixDQUFDO1lBQ0gsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7WUFFdEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZ0RBQWdELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUQsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLE1BQU0sU0FBUyxHQUFHOzJCQUNLLEdBQUc7Ozs7UUFJdEIsQ0FBQztRQUNMLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqRCxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Document as MongooseDocument } from 'mongoose';
|
|
2
2
|
import { TypeWithTimestamps } from '../collections/config/types';
|
|
3
3
|
import { FileData } from '../uploads/types';
|
|
4
|
-
export declare type Operator = 'equals' | 'not_equals' | 'in' | 'not_in' | 'exists' | 'greater_than' | '
|
|
4
|
+
export declare type Operator = 'equals' | 'not_equals' | 'in' | 'not_in' | 'exists' | 'greater_than' | 'greater_than_equal' | 'less_than' | 'less_than_equal' | 'like' | 'near';
|
|
5
5
|
export declare type WhereField = {
|
|
6
6
|
[key in Operator]?: unknown;
|
|
7
7
|
};
|
|
@@ -9,11 +9,14 @@ const appendVersionToQueryKey = (query) => {
|
|
|
9
9
|
[key]: val.map((subQuery) => (0, exports.appendVersionToQueryKey)(subQuery)),
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
if (key !== 'id') {
|
|
13
|
+
return {
|
|
14
|
+
...res,
|
|
15
|
+
[`version.${key}`]: val,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return res;
|
|
16
19
|
}, {});
|
|
17
20
|
};
|
|
18
21
|
exports.appendVersionToQueryKey = appendVersionToQueryKey;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmVyc2lvbnMvZHJhZnRzL2FwcGVuZFZlcnNpb25Ub1F1ZXJ5S2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFZLEVBQVMsRUFBRTtJQUM3RCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyRCxPQUFPO2dCQUNMLEdBQUcsR0FBRztnQkFDTixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUEsK0JBQXVCLEVBQUMsUUFBUSxDQUFDLENBQUM7YUFDaEUsQ0FBQztTQUNIO1FBRUQsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE9BQU87Z0JBQ0wsR0FBRyxHQUFHO2dCQUNOLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUc7YUFDeEIsQ0FBQztTQUNIO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUM7QUFsQlcsUUFBQSx1QkFBdUIsMkJBa0JsQyJ9
|
|
@@ -33,13 +33,14 @@ You can override a set of admin panel-wide components by providing a component t
|
|
|
33
33
|
| **`graphics.Icon`** | Used as a graphic within the `Nav` component. Often represents a condensed version of a full logo. |
|
|
34
34
|
| **`graphics.Logo`** | The full logo to be used in contexts like the `Login` view. |
|
|
35
35
|
| **`routes`** | Define your own routes to add to the Payload Admin UI. [More](#custom-routes) |
|
|
36
|
+
| **`providers`** | Define your own provider components that will wrap the Payload Admin UI. [More](#custom-providers) |
|
|
36
37
|
|
|
37
38
|
#### Full example:
|
|
38
39
|
|
|
39
40
|
`payload.config.js`
|
|
40
41
|
```js
|
|
41
42
|
import { buildConfig } from 'payload/config';
|
|
42
|
-
import { MyCustomNav, MyCustomLogo, MyCustomIcon, MyCustomAccount, MyCustomDashboard } from './customComponents.js';
|
|
43
|
+
import { MyCustomNav, MyCustomLogo, MyCustomIcon, MyCustomAccount, MyCustomDashboard, MyProvider } from './customComponents.js';
|
|
43
44
|
|
|
44
45
|
export default buildConfig({
|
|
45
46
|
admin: {
|
|
@@ -52,7 +53,8 @@ export default buildConfig({
|
|
|
52
53
|
views: {
|
|
53
54
|
Account: MyCustomAccount,
|
|
54
55
|
Dashboard: MyCustomDashboard,
|
|
55
|
-
}
|
|
56
|
+
},
|
|
57
|
+
providers: [MyProvider],
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
})
|
|
@@ -152,6 +154,12 @@ You can find examples of custom route views in the [Payload source code `/demo/c
|
|
|
152
154
|
|
|
153
155
|
To see how to pass in your custom views to create custom routes of your own, take a look at the `admin.components.routes` property of the [Payload demo config](https://github.com/payloadcms/payload/blob/master/demo/payload.config.ts).
|
|
154
156
|
|
|
157
|
+
## Custom providers
|
|
158
|
+
|
|
159
|
+
As your admin customizations gets more complex you may want to share state between fields or other components. You can add custom providers to do add your own context to any Payload app for use in other custom components within the admin panel. Within your config add `admin.components.providers`, these can be used to share context or provide other custom functionality. Read the [React context](https://reactjs.org/docs/context.html) docs to learn more.
|
|
160
|
+
|
|
161
|
+
<Banner>Remember to pass the `children` prop in to your provider component and return it within to render the admin UI</Banner>
|
|
162
|
+
|
|
155
163
|
### Styling Custom Components
|
|
156
164
|
|
|
157
165
|
Payload exports its SCSS variables and mixins for reuse in your own custom components. This is helpful in cases where you might want to style a custom input similarly to Payload's built-ini styling so it blends more thoroughly into the existing admin UI.
|
|
@@ -114,6 +114,18 @@ This is your Express app as shown above. Payload will tie into your existing `ap
|
|
|
114
114
|
|
|
115
115
|
Your Payload license key. Not needed for development purposes, but when it's time to deploy to production, you need to add your license key here. More info about how Payload licensing works can be found [here](/docs/production/licensing).
|
|
116
116
|
|
|
117
|
+
##### `email`
|
|
118
|
+
|
|
119
|
+
An Optional object used to configure SMTP. [Read more](/docs/email/overview).
|
|
120
|
+
|
|
121
|
+
##### `local`
|
|
122
|
+
|
|
123
|
+
A boolean that when set to `true` tells Payload to start in local-only mode which will bypass setting up API routes. When set to `true`, `express` is not required. This is useful when running scripts that need to use Payload's [local-api](/docs/local-api/overview).
|
|
124
|
+
|
|
125
|
+
##### `onInit`
|
|
126
|
+
|
|
127
|
+
An optional function that is called immediately following startup that receives the Payload instance as it's only argument.
|
|
128
|
+
|
|
117
129
|
### Test it out
|
|
118
130
|
|
|
119
131
|
After you've gotten this far, it's time to boot up Payload. At the command line, run `npm install` and then `node server.js` in your application's folder to start up your app and initialize Payload.
|
|
@@ -65,6 +65,7 @@ You can specify more options within the Local API vs. REST or GraphQL due to the
|
|
|
65
65
|
| `overrideAccess` | Skip access control. By default, this property is set to false. |
|
|
66
66
|
| `user` | If you re-enable access control, you can specify a user to use against the access control checks. |
|
|
67
67
|
| `showHiddenFields` | Opt-in to receiving hidden fields. By default, they are hidden from returned documents in accordance to your config. |
|
|
68
|
+
| `pagination` | Set to false to return all documents and avoid querying for document counts. |
|
|
68
69
|
|
|
69
70
|
*There are more options available on an operation by operation basis outlined below.*
|
|
70
71
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
title: Versions
|
|
3
3
|
label: Overview
|
|
4
4
|
order: 10
|
|
5
|
-
desc: Keep a
|
|
5
|
+
desc: Keep a version history or audit log of changes and publish collection documents and globals.
|
|
6
6
|
keywords: version history, revisions, audit log, draft, publish, restore, autosave, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<Banner>
|
|
10
|
-
Payload's powerful Versions functionality allows you to keep a running history of changes over time
|
|
10
|
+
Payload's powerful Versions functionality allows you to keep a running history of changes over time and extensible to fit any content publishing workflow.
|
|
11
11
|
</Banner>
|
|
12
12
|
|
|
13
13
|
When enabled, Payload will automatically scaffold a new Collection in your database to store versions of your document(s) over time, and the Admin UI will be extended with additional views that allow you to browse document versions, view diffs in order to see exactly what has changed in your documents (and when they changed), and restore documents back to prior versions easily.
|