payload 0.17.1 → 0.17.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/CHANGELOG.md +9 -0
- package/dist/admin/components/forms/field-types/Select/index.js +1 -1
- package/dist/globals/operations/update.js +3 -2
- package/dist/graphql/schema/buildWhereInputType.js +3 -3
- package/dist/graphql/schema/{fieldToSchemaMap.d.ts → fieldToWhereInputSchemaMap.d.ts} +0 -0
- package/dist/graphql/schema/fieldToWhereInputSchemaMap.js +164 -0
- package/dist/graphql/schema/recursivelyBuildNestedPaths.js +3 -3
- package/docs/access-control/collections.mdx +1 -1
- package/docs/access-control/overview.mdx +27 -0
- package/docs/plugins/overview.mdx +3 -3
- package/package.json +1 -1
- package/dist/graphql/schema/fieldToSchemaMap.js +0 -169
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [0.17.2](https://github.com/payloadcms/payload/compare/v0.17.1...v0.17.2) (2022-05-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* [#576](https://github.com/payloadcms/payload/issues/576), graphql where on hasMany relationship not working ([#582](https://github.com/payloadcms/payload/issues/582)) ([20d251f](https://github.com/payloadcms/payload/commit/20d251fd5dabd06f8d58ffcd5acec4dbd64ee515))
|
|
7
|
+
* adds optional chaining to safely read drafts setting on versions ([#577](https://github.com/payloadcms/payload/issues/577)) ([982b3f0](https://github.com/payloadcms/payload/commit/982b3f0582d9f64bd560e96b0df3cc505cc86a2a))
|
|
8
|
+
* passes required prop for select field ([#579](https://github.com/payloadcms/payload/issues/579)) ([734e905](https://github.com/payloadcms/payload/commit/734e905c186ebf96ff659008cb240f5adaa2b5b5))
|
|
9
|
+
|
|
1
10
|
## [0.17.1](https://github.com/payloadcms/payload/compare/v0.17.0...v0.17.1) (2022-05-17)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -48,6 +48,6 @@ const Select = (props) => {
|
|
|
48
48
|
hasMany,
|
|
49
49
|
setValue,
|
|
50
50
|
]);
|
|
51
|
-
return (React.createElement(SelectInput, { path: path, onChange: onChange, value: value, name: name, options: options, label: label, showError: showError, errorMessage: errorMessage, description: description, style: style, className: className, width: width, hasMany: hasMany }));
|
|
51
|
+
return (React.createElement(SelectInput, { path: path, onChange: onChange, value: value, name: name, options: options, label: label, showError: showError, errorMessage: errorMessage, required: required, description: description, style: style, className: className, width: width, hasMany: hasMany }));
|
|
52
52
|
};
|
|
53
53
|
export default withCondition(Select);
|
|
@@ -15,10 +15,11 @@ const beforeValidate_1 = require("../../fields/hooks/beforeValidate");
|
|
|
15
15
|
const afterChange_1 = require("../../fields/hooks/afterChange");
|
|
16
16
|
const afterRead_1 = require("../../fields/hooks/afterRead");
|
|
17
17
|
async function update(args) {
|
|
18
|
+
var _a;
|
|
18
19
|
const { globals: { Model } } = this;
|
|
19
20
|
const { globalConfig, slug, req, req: { locale, }, depth, overrideAccess, showHiddenFields, draft: draftArg, autosave, } = args;
|
|
20
21
|
let { data } = args;
|
|
21
|
-
const shouldSaveDraft = Boolean(draftArg && globalConfig.versions.drafts);
|
|
22
|
+
const shouldSaveDraft = Boolean(draftArg && ((_a = globalConfig.versions) === null || _a === void 0 ? void 0 : _a.drafts));
|
|
22
23
|
// /////////////////////////////////////
|
|
23
24
|
// 1. Retrieve and execute access
|
|
24
25
|
// /////////////////////////////////////
|
|
@@ -204,4 +205,4 @@ async function update(args) {
|
|
|
204
205
|
return global;
|
|
205
206
|
}
|
|
206
207
|
exports.default = update;
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvb3BlcmF0aW9ucy91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSw2RUFBcUQ7QUFDckQsb0dBQTRFO0FBQzVFLHdFQUFxRTtBQUNyRSwyRUFBd0U7QUFDeEUsOEZBQTJGO0FBQzNGLCtGQUF1RTtBQUN2RSxxQ0FBa0Q7QUFDbEQsa0VBQStEO0FBQy9ELHNFQUFtRTtBQUNuRSxnRUFBNkQ7QUFDN0QsNERBQXlEO0FBRXpELEtBQUssVUFBVSxNQUFNLENBQTRDLElBQUk7O0lBQ25FLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQztJQUVwQyxNQUFNLEVBQ0osWUFBWSxFQUNaLElBQUksRUFDSixHQUFHLEVBQ0gsR0FBRyxFQUFFLEVBQ0gsTUFBTSxHQUNQLEVBQ0QsS0FBSyxFQUNMLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsS0FBSyxFQUFFLFFBQVEsRUFDZixRQUFRLEdBQ1QsR0FBRyxJQUFJLENBQUM7SUFFVCxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRXBCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEtBQUksTUFBQSxZQUFZLENBQUMsUUFBUSwwQ0FBRSxNQUFNLENBQUEsQ0FBQyxDQUFDO0lBRTNFLHdDQUF3QztJQUN4QyxpQ0FBaUM7SUFDakMsd0NBQXdDO0lBRXhDLE1BQU0sYUFBYSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUEsdUJBQWEsRUFBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFOUcsd0NBQXdDO0lBQ3hDLG9CQUFvQjtJQUNwQix3Q0FBd0M7SUFFeEMsTUFBTSxZQUFZLEdBQXFC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
|
|
@@ -11,7 +11,7 @@ const types_1 = require("../../fields/config/types");
|
|
|
11
11
|
const formatName_1 = __importDefault(require("../utilities/formatName"));
|
|
12
12
|
const withOperators_1 = __importDefault(require("./withOperators"));
|
|
13
13
|
const operators_1 = __importDefault(require("./operators"));
|
|
14
|
-
const
|
|
14
|
+
const fieldToWhereInputSchemaMap_1 = __importDefault(require("./fieldToWhereInputSchemaMap"));
|
|
15
15
|
// buildWhereInputType is similar to buildObjectType and operates
|
|
16
16
|
// on a field basis with a few distinct differences.
|
|
17
17
|
//
|
|
@@ -24,7 +24,7 @@ const buildWhereInputType = (name, fields, parentName) => {
|
|
|
24
24
|
// field types with nested paths.
|
|
25
25
|
const fieldTypes = fields.reduce((schema, field) => {
|
|
26
26
|
if (!(0, types_1.fieldIsPresentationalOnly)(field) && !field.hidden) {
|
|
27
|
-
const getFieldSchema = (0,
|
|
27
|
+
const getFieldSchema = (0, fieldToWhereInputSchemaMap_1.default)(parentName)[field.type];
|
|
28
28
|
if (getFieldSchema) {
|
|
29
29
|
const fieldSchema = getFieldSchema(field);
|
|
30
30
|
if ((0, types_1.fieldHasSubFields)(field)) {
|
|
@@ -68,4 +68,4 @@ const buildWhereInputType = (name, fields, parentName) => {
|
|
|
68
68
|
});
|
|
69
69
|
};
|
|
70
70
|
exports.default = buildWhereInputType;
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRXaGVyZUlucHV0VHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZFdoZXJlSW5wdXRUeXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNERBQTREO0FBQzVELHlDQUF5QztBQUN6QyxxQ0FFaUI7QUFFakIseURBQWdEO0FBRWhELHFEQUttQztBQUNuQyx5RUFBaUQ7QUFDakQsb0VBQTRDO0FBQzVDLDREQUFvQztBQUNwQyw4RkFBNEQ7QUFFNUQsaUVBQWlFO0FBQ2pFLG9EQUFvRDtBQUNwRCxFQUFFO0FBQ0Ysc0VBQXNFO0FBQ3RFLCtEQUErRDtBQUMvRCx1RUFBdUU7QUFDdkUsbUVBQW1FO0FBQ25FLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFZLEVBQUUsTUFBZSxFQUFFLFVBQWtCLEVBQTBCLEVBQUU7SUFDeEcsd0RBQXdEO0lBQ3hELGlDQUFpQztJQUVqQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pELElBQUksQ0FBQyxJQUFBLGlDQUF5QixFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0RCxNQUFNLGNBQWMsR0FBRyxJQUFBLG9DQUFnQixFQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoRSxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUxQyxJQUFJLElBQUEseUJBQWlCLEVBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzVCLE9BQU87d0JBQ0wsR0FBRyxNQUFNO3dCQUNULEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDL0MsR0FBRyxTQUFTOzRCQUNaLENBQUMsSUFBQSxvQkFBVSxFQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJO3lCQUMxQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7cUJBQ1QsQ0FBQztpQkFDSDtnQkFFRCxPQUFPO29CQUNMLEdBQUcsTUFBTTtvQkFDVCxDQUFDLElBQUEsb0JBQVUsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxXQUFXO2lCQUN0QyxDQUFDO2FBQ0g7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLFVBQVUsQ0FBQyxFQUFFLEdBQUc7UUFDZCxJQUFJLEVBQUUsSUFBQSx1QkFBYSxFQUNqQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQXdCLEVBQ3BDLCtCQUFXLEVBQ1gsVUFBVSxFQUNWLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLG1CQUFTLENBQUMsUUFBUSxDQUFDLENBQy9DO0tBQ0YsQ0FBQztJQUVGLE1BQU0sU0FBUyxHQUFHLElBQUEsb0JBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUVuQyxPQUFPLElBQUksZ0NBQXNCLENBQUM7UUFDaEMsSUFBSSxFQUFFLEdBQUcsU0FBUyxRQUFRO1FBQzFCLE1BQU0sRUFBRTtZQUNOLEdBQUcsVUFBVTtZQUNiLEVBQUUsRUFBRTtnQkFDRixJQUFJLEVBQUUsSUFBSSxxQkFBVyxDQUFDLElBQUksZ0NBQXNCLENBQUM7b0JBQy9DLElBQUksRUFBRSxHQUFHLFNBQVMsV0FBVztvQkFDN0IsTUFBTSxFQUFFLFVBQVU7aUJBQ25CLENBQUMsQ0FBQzthQUNKO1lBQ0QsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxJQUFJLHFCQUFXLENBQUMsSUFBSSxnQ0FBc0IsQ0FBQztvQkFDL0MsSUFBSSxFQUFFLEdBQUcsU0FBUyxZQUFZO29CQUM5QixNQUFNLEVBQUUsVUFBVTtpQkFDbkIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLGtCQUFlLG1CQUFtQixDQUFDIn0=
|
|
File without changes
|
|
@@ -0,0 +1,164 @@
|
|
|
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 graphql_1 = require("graphql");
|
|
7
|
+
const graphql_scalars_1 = require("graphql-scalars");
|
|
8
|
+
const graphql_type_json_1 = require("graphql-type-json");
|
|
9
|
+
const types_1 = require("../../fields/config/types");
|
|
10
|
+
const withOperators_1 = __importDefault(require("./withOperators"));
|
|
11
|
+
const operators_1 = __importDefault(require("./operators"));
|
|
12
|
+
const combineParentName_1 = __importDefault(require("../utilities/combineParentName"));
|
|
13
|
+
const formatName_1 = __importDefault(require("../utilities/formatName"));
|
|
14
|
+
const recursivelyBuildNestedPaths_1 = __importDefault(require("./recursivelyBuildNestedPaths"));
|
|
15
|
+
const fieldToSchemaMap = (parentName) => ({
|
|
16
|
+
number: (field) => {
|
|
17
|
+
const type = graphql_1.GraphQLFloat;
|
|
18
|
+
return {
|
|
19
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, ...operators_1.default.comparison]),
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
text: (field) => {
|
|
23
|
+
const type = graphql_1.GraphQLString;
|
|
24
|
+
return {
|
|
25
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
email: (field) => {
|
|
29
|
+
const type = graphql_scalars_1.EmailAddressResolver;
|
|
30
|
+
return {
|
|
31
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
textarea: (field) => {
|
|
35
|
+
const type = graphql_1.GraphQLString;
|
|
36
|
+
return {
|
|
37
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
richText: (field) => {
|
|
41
|
+
const type = graphql_type_json_1.GraphQLJSON;
|
|
42
|
+
return {
|
|
43
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
code: (field) => {
|
|
47
|
+
const type = graphql_1.GraphQLString;
|
|
48
|
+
return {
|
|
49
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
radio: (field) => ({
|
|
53
|
+
type: (0, withOperators_1.default)(field, new graphql_1.GraphQLEnumType({
|
|
54
|
+
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Input`,
|
|
55
|
+
values: field.options.reduce((values, option) => {
|
|
56
|
+
if ((0, types_1.optionIsObject)(option)) {
|
|
57
|
+
return {
|
|
58
|
+
...values,
|
|
59
|
+
[(0, formatName_1.default)(option.value)]: {
|
|
60
|
+
value: option.value,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
...values,
|
|
66
|
+
[(0, formatName_1.default)(option)]: {
|
|
67
|
+
value: option,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}, {}),
|
|
71
|
+
}), parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
72
|
+
}),
|
|
73
|
+
date: (field) => {
|
|
74
|
+
const type = graphql_scalars_1.DateTimeResolver;
|
|
75
|
+
return {
|
|
76
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, ...operators_1.default.comparison, 'like']),
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
point: (field) => {
|
|
80
|
+
const type = (0, graphql_1.GraphQLList)(graphql_1.GraphQLFloat);
|
|
81
|
+
return {
|
|
82
|
+
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, ...operators_1.default.comparison, ...operators_1.default.geo]),
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
relationship: (field) => {
|
|
86
|
+
let type = (0, withOperators_1.default)(field, graphql_1.GraphQLString, parentName, [...operators_1.default.equality, ...operators_1.default.contains]);
|
|
87
|
+
if (Array.isArray(field.relationTo)) {
|
|
88
|
+
type = new graphql_1.GraphQLInputObjectType({
|
|
89
|
+
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Relation`,
|
|
90
|
+
fields: {
|
|
91
|
+
relationTo: {
|
|
92
|
+
type: new graphql_1.GraphQLEnumType({
|
|
93
|
+
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Relation_RelationTo`,
|
|
94
|
+
values: field.relationTo.reduce((values, relation) => ({
|
|
95
|
+
...values,
|
|
96
|
+
[(0, formatName_1.default)(relation)]: {
|
|
97
|
+
value: relation,
|
|
98
|
+
},
|
|
99
|
+
}), {}),
|
|
100
|
+
}),
|
|
101
|
+
},
|
|
102
|
+
value: { type: graphql_1.GraphQLString },
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return { type };
|
|
107
|
+
},
|
|
108
|
+
upload: (field) => ({
|
|
109
|
+
type: (0, withOperators_1.default)(field, graphql_1.GraphQLString, parentName, [...operators_1.default.equality]),
|
|
110
|
+
}),
|
|
111
|
+
checkbox: (field) => ({
|
|
112
|
+
type: (0, withOperators_1.default)(field, graphql_1.GraphQLBoolean, parentName, [...operators_1.default.equality]),
|
|
113
|
+
}),
|
|
114
|
+
select: (field) => ({
|
|
115
|
+
type: (0, withOperators_1.default)(field, new graphql_1.GraphQLEnumType({
|
|
116
|
+
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Input`,
|
|
117
|
+
values: field.options.reduce((values, option) => {
|
|
118
|
+
if (typeof option === 'object' && option.value) {
|
|
119
|
+
return {
|
|
120
|
+
...values,
|
|
121
|
+
[(0, formatName_1.default)(option.value)]: {
|
|
122
|
+
value: option.value,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (typeof option === 'string') {
|
|
127
|
+
return {
|
|
128
|
+
...values,
|
|
129
|
+
[option]: {
|
|
130
|
+
value: option,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return values;
|
|
135
|
+
}, {}),
|
|
136
|
+
}), parentName, [...operators_1.default.equality, ...operators_1.default.contains]),
|
|
137
|
+
}),
|
|
138
|
+
array: (field) => (0, recursivelyBuildNestedPaths_1.default)(parentName, field),
|
|
139
|
+
group: (field) => (0, recursivelyBuildNestedPaths_1.default)(parentName, field),
|
|
140
|
+
row: (field) => field.fields.reduce((rowSchema, rowField) => {
|
|
141
|
+
const getFieldSchema = fieldToSchemaMap(parentName)[rowField.type];
|
|
142
|
+
if (getFieldSchema) {
|
|
143
|
+
const rowFieldSchema = getFieldSchema(rowField);
|
|
144
|
+
if ((0, types_1.fieldHasSubFields)(rowField)) {
|
|
145
|
+
return [
|
|
146
|
+
...rowSchema,
|
|
147
|
+
...rowFieldSchema,
|
|
148
|
+
];
|
|
149
|
+
}
|
|
150
|
+
if ((0, types_1.fieldAffectsData)(rowField)) {
|
|
151
|
+
return [
|
|
152
|
+
...rowSchema,
|
|
153
|
+
{
|
|
154
|
+
key: rowField.name,
|
|
155
|
+
type: rowFieldSchema,
|
|
156
|
+
},
|
|
157
|
+
];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return rowSchema;
|
|
161
|
+
}, []),
|
|
162
|
+
});
|
|
163
|
+
exports.default = fieldToSchemaMap;
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRUb1doZXJlSW5wdXRTY2hlbWFNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ3JhcGhxbC9zY2hlbWEvZmllbGRUb1doZXJlSW5wdXRTY2hlbWFNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FPaUI7QUFDakIscURBQXlFO0FBQ3pFLHlEQUFnRDtBQUNoRCxxREFVbUM7QUFDbkMsb0VBQTRDO0FBQzVDLDREQUFvQztBQUNwQyx1RkFBK0Q7QUFDL0QseUVBQWlEO0FBQ2pELGdHQUF3RTtBQUV4RSxNQUFNLGdCQUFnQixHQUFnQyxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsTUFBTSxFQUFFLENBQUMsS0FBa0IsRUFBRSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxHQUFHLHNCQUFZLENBQUM7UUFDMUIsT0FBTztZQUNMLElBQUksRUFBRSxJQUFBLHVCQUFhLEVBQ2pCLEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLG1CQUFTLENBQUMsVUFBVSxDQUFDLENBQ2pEO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFnQixFQUFFLEVBQUU7UUFDekIsTUFBTSxJQUFJLEdBQUcsdUJBQWEsQ0FBQztRQUMzQixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUEsdUJBQWEsRUFDakIsS0FBSyxFQUNMLElBQUksRUFDSixVQUFVLEVBQ1YsQ0FBQyxHQUFHLG1CQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FDNUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELEtBQUssRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRTtRQUMzQixNQUFNLElBQUksR0FBRyxzQ0FBb0IsQ0FBQztRQUNsQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUEsdUJBQWEsRUFDakIsS0FBSyxF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
|
|
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const types_1 = require("../../fields/config/types");
|
|
7
|
-
const
|
|
7
|
+
const fieldToWhereInputSchemaMap_1 = __importDefault(require("./fieldToWhereInputSchemaMap"));
|
|
8
8
|
const recursivelyBuildNestedPaths = (parentName, field) => {
|
|
9
9
|
const nestedPaths = field.fields.reduce((nestedFields, nestedField) => {
|
|
10
10
|
if (!(0, types_1.fieldIsPresentationalOnly)(nestedField)) {
|
|
11
|
-
const getFieldSchema = (0,
|
|
11
|
+
const getFieldSchema = (0, fieldToWhereInputSchemaMap_1.default)(parentName)[nestedField.type];
|
|
12
12
|
const nestedFieldName = (0, types_1.fieldAffectsData)(nestedField) ? `${field.name}__${nestedField.name}` : undefined;
|
|
13
13
|
if (getFieldSchema) {
|
|
14
14
|
const fieldSchema = getFieldSchema({
|
|
@@ -35,4 +35,4 @@ const recursivelyBuildNestedPaths = (parentName, field) => {
|
|
|
35
35
|
return nestedPaths;
|
|
36
36
|
};
|
|
37
37
|
exports.default = recursivelyBuildNestedPaths;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzaXZlbHlCdWlsZE5lc3RlZFBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dyYXBocWwvc2NoZW1hL3JlY3Vyc2l2ZWx5QnVpbGROZXN0ZWRQYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUttQztBQUNuQyw4RkFBNEQ7QUFFNUQsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFVBQWtCLEVBQUUsS0FBOEMsRUFBRSxFQUFFO0lBQ3pHLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFO1FBQ3BFLElBQUksQ0FBQyxJQUFBLGlDQUF5QixFQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUEsb0NBQWdCLEVBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sZUFBZSxHQUFHLElBQUEsd0JBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUV6RyxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDO29CQUNqQyxHQUFHLFdBQVc7b0JBQ2QsSUFBSSxFQUFFLGVBQWU7aUJBQ3RCLENBQUMsQ0FBQztnQkFFSCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzlCLE9BQU87d0JBQ0wsR0FBRyxZQUFZO3dCQUNmLEdBQUcsV0FBVztxQkFDZixDQUFDO2lCQUNIO2dCQUVELE9BQU87b0JBQ0wsR0FBRyxZQUFZO29CQUNmO3dCQUNFLEdBQUcsRUFBRSxlQUFlO3dCQUNwQixJQUFJLEVBQUUsV0FBVztxQkFDbEI7aUJBQ0YsQ0FBQzthQUNIO1NBQ0Y7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixrQkFBZSwyQkFBMkIsQ0FBQyJ9
|
|
@@ -62,7 +62,7 @@ Read access functions can return a boolean result or optionally return a [query
|
|
|
62
62
|
| Option | Description |
|
|
63
63
|
| --------- | ----------- |
|
|
64
64
|
| **`req`** | The Express `request` object containing the currently authenticated `user` |
|
|
65
|
-
| **`id`** | `id` of document requested, if within `findByID`.
|
|
65
|
+
| **`id`** | `id` of document requested, if within `findByID`. |
|
|
66
66
|
|
|
67
67
|
### Update
|
|
68
68
|
|
|
@@ -43,3 +43,30 @@ You can manage access within Payload on three different levels:
|
|
|
43
43
|
- [Collections](/docs/access-control/collections)
|
|
44
44
|
- [Fields](/docs/access-control/fields)
|
|
45
45
|
- [Globals](/docs/access-control/globals)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### When Access Control is Executed
|
|
49
|
+
|
|
50
|
+
<Banner type="success">
|
|
51
|
+
<strong>Note:</strong><br/>
|
|
52
|
+
Access control functions are utilized in two places. It's important to understand how and when your access control is executed.
|
|
53
|
+
<Banner />
|
|
54
|
+
|
|
55
|
+
#### As you execute operations
|
|
56
|
+
|
|
57
|
+
When you perform Payload operations like `create`, `read`, `update`, and `delete`, your access control functions will be executed before any changes or operations are completed.
|
|
58
|
+
|
|
59
|
+
#### Within the Admin UI
|
|
60
|
+
|
|
61
|
+
The Payload Admin UI responds dynamically to the access control that you define. For example, if you restrict editing a `ExampleCollection` to only users that feature a `role` of `admin`, the Payload Admin UI will **hide** the `ExampleCollection` from the Admin UI entirely. This is super powerful and allows you to control who can do what with your Admin UI.
|
|
62
|
+
|
|
63
|
+
To accomplish this, Payload ships with an `Access` operation, which is executed when a user logs into the Admin UI. Payload will execute each one of your access control functions, across all collections, globals, and fields, at the top level and return a response that contains a reflection of what the currently authenticated user can do with your application.
|
|
64
|
+
|
|
65
|
+
### Argument Availability
|
|
66
|
+
|
|
67
|
+
<Banner type="warning">
|
|
68
|
+
<strong>Important:</strong><br/>
|
|
69
|
+
When your access control functions are executed via the <strong>access</strong> operation, the <strong>id</strong> and <strong>data</strong> arguments will be <strong>undefined</strong>, because Payload is executing your functions without referencing a specific document.
|
|
70
|
+
<Banner />
|
|
71
|
+
|
|
72
|
+
If you use `id` or `data` within your access control functions, make sure to check that they are defined first. If they are not, then you can assume that your access control is being executed via the `access` operation, to determine solely what the user can do within the Admin UI.
|
|
@@ -91,7 +91,7 @@ const addLastModified = (incomingConfig: Config): Config => {
|
|
|
91
91
|
// Find all incoming auth-enabled collections
|
|
92
92
|
// so we can create a lastModifiedBy relationship field
|
|
93
93
|
// to all auth collections
|
|
94
|
-
const authEnabledCollections = incomingConfig.collections.
|
|
94
|
+
const authEnabledCollections = incomingConfig.collections.filter(
|
|
95
95
|
collection => Boolean(collection.auth)
|
|
96
96
|
);
|
|
97
97
|
|
|
@@ -125,8 +125,8 @@ const addLastModified = (incomingConfig: Config): Config => {
|
|
|
125
125
|
},
|
|
126
126
|
},
|
|
127
127
|
],
|
|
128
|
-
}
|
|
129
|
-
})
|
|
128
|
+
};
|
|
129
|
+
}),
|
|
130
130
|
};
|
|
131
131
|
|
|
132
132
|
return config;
|
package/package.json
CHANGED
|
@@ -1,169 +0,0 @@
|
|
|
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 graphql_1 = require("graphql");
|
|
7
|
-
const graphql_scalars_1 = require("graphql-scalars");
|
|
8
|
-
const graphql_type_json_1 = require("graphql-type-json");
|
|
9
|
-
const types_1 = require("../../fields/config/types");
|
|
10
|
-
const withOperators_1 = __importDefault(require("./withOperators"));
|
|
11
|
-
const operators_1 = __importDefault(require("./operators"));
|
|
12
|
-
const combineParentName_1 = __importDefault(require("../utilities/combineParentName"));
|
|
13
|
-
const formatName_1 = __importDefault(require("../utilities/formatName"));
|
|
14
|
-
const recursivelyBuildNestedPaths_1 = __importDefault(require("./recursivelyBuildNestedPaths"));
|
|
15
|
-
const fieldToSchemaMap = (parentName) => ({
|
|
16
|
-
number: (field) => {
|
|
17
|
-
const type = graphql_1.GraphQLFloat;
|
|
18
|
-
return {
|
|
19
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, ...operators_1.default.comparison]),
|
|
20
|
-
};
|
|
21
|
-
},
|
|
22
|
-
text: (field) => {
|
|
23
|
-
const type = graphql_1.GraphQLString;
|
|
24
|
-
return {
|
|
25
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
26
|
-
};
|
|
27
|
-
},
|
|
28
|
-
email: (field) => {
|
|
29
|
-
const type = graphql_scalars_1.EmailAddressResolver;
|
|
30
|
-
return {
|
|
31
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
32
|
-
};
|
|
33
|
-
},
|
|
34
|
-
textarea: (field) => {
|
|
35
|
-
const type = graphql_1.GraphQLString;
|
|
36
|
-
return {
|
|
37
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
38
|
-
};
|
|
39
|
-
},
|
|
40
|
-
richText: (field) => {
|
|
41
|
-
const type = graphql_type_json_1.GraphQLJSON;
|
|
42
|
-
return {
|
|
43
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
44
|
-
};
|
|
45
|
-
},
|
|
46
|
-
code: (field) => {
|
|
47
|
-
const type = graphql_1.GraphQLString;
|
|
48
|
-
return {
|
|
49
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
50
|
-
};
|
|
51
|
-
},
|
|
52
|
-
radio: (field) => ({
|
|
53
|
-
type: (0, withOperators_1.default)(field, new graphql_1.GraphQLEnumType({
|
|
54
|
-
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Input`,
|
|
55
|
-
values: field.options.reduce((values, option) => {
|
|
56
|
-
if ((0, types_1.optionIsObject)(option)) {
|
|
57
|
-
return {
|
|
58
|
-
...values,
|
|
59
|
-
[(0, formatName_1.default)(option.value)]: {
|
|
60
|
-
value: option.value,
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
return {
|
|
65
|
-
...values,
|
|
66
|
-
[(0, formatName_1.default)(option)]: {
|
|
67
|
-
value: option,
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
}, {}),
|
|
71
|
-
}), parentName, [...operators_1.default.equality, 'like', 'contains']),
|
|
72
|
-
}),
|
|
73
|
-
date: (field) => {
|
|
74
|
-
const type = graphql_scalars_1.DateTimeResolver;
|
|
75
|
-
return {
|
|
76
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, ...operators_1.default.comparison, 'like']),
|
|
77
|
-
};
|
|
78
|
-
},
|
|
79
|
-
point: (field) => {
|
|
80
|
-
const type = (0, graphql_1.GraphQLList)(graphql_1.GraphQLFloat);
|
|
81
|
-
return {
|
|
82
|
-
type: (0, withOperators_1.default)(field, type, parentName, [...operators_1.default.equality, ...operators_1.default.comparison, ...operators_1.default.geo]),
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
|
-
relationship: (field) => {
|
|
86
|
-
let type = (0, withOperators_1.default)(field, graphql_1.GraphQLString, parentName, [...operators_1.default.equality, ...operators_1.default.contains]);
|
|
87
|
-
if (Array.isArray(field.relationTo)) {
|
|
88
|
-
type = new graphql_1.GraphQLInputObjectType({
|
|
89
|
-
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Relation`,
|
|
90
|
-
fields: {
|
|
91
|
-
relationTo: {
|
|
92
|
-
type: new graphql_1.GraphQLEnumType({
|
|
93
|
-
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Relation_RelationTo`,
|
|
94
|
-
values: field.relationTo.reduce((values, relation) => ({
|
|
95
|
-
...values,
|
|
96
|
-
[(0, formatName_1.default)(relation)]: {
|
|
97
|
-
value: relation,
|
|
98
|
-
},
|
|
99
|
-
}), {}),
|
|
100
|
-
}),
|
|
101
|
-
},
|
|
102
|
-
value: { type: graphql_1.GraphQLString },
|
|
103
|
-
},
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
if (field.hasMany) {
|
|
107
|
-
return {
|
|
108
|
-
type: new graphql_1.GraphQLList(type),
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
return { type };
|
|
112
|
-
},
|
|
113
|
-
upload: (field) => ({
|
|
114
|
-
type: (0, withOperators_1.default)(field, graphql_1.GraphQLString, parentName, [...operators_1.default.equality]),
|
|
115
|
-
}),
|
|
116
|
-
checkbox: (field) => ({
|
|
117
|
-
type: (0, withOperators_1.default)(field, graphql_1.GraphQLBoolean, parentName, [...operators_1.default.equality]),
|
|
118
|
-
}),
|
|
119
|
-
select: (field) => ({
|
|
120
|
-
type: (0, withOperators_1.default)(field, new graphql_1.GraphQLEnumType({
|
|
121
|
-
name: `${(0, combineParentName_1.default)(parentName, field.name)}_Input`,
|
|
122
|
-
values: field.options.reduce((values, option) => {
|
|
123
|
-
if (typeof option === 'object' && option.value) {
|
|
124
|
-
return {
|
|
125
|
-
...values,
|
|
126
|
-
[(0, formatName_1.default)(option.value)]: {
|
|
127
|
-
value: option.value,
|
|
128
|
-
},
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
if (typeof option === 'string') {
|
|
132
|
-
return {
|
|
133
|
-
...values,
|
|
134
|
-
[option]: {
|
|
135
|
-
value: option,
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
return values;
|
|
140
|
-
}, {}),
|
|
141
|
-
}), parentName, [...operators_1.default.equality, ...operators_1.default.contains]),
|
|
142
|
-
}),
|
|
143
|
-
array: (field) => (0, recursivelyBuildNestedPaths_1.default)(parentName, field),
|
|
144
|
-
group: (field) => (0, recursivelyBuildNestedPaths_1.default)(parentName, field),
|
|
145
|
-
row: (field) => field.fields.reduce((rowSchema, rowField) => {
|
|
146
|
-
const getFieldSchema = fieldToSchemaMap(parentName)[rowField.type];
|
|
147
|
-
if (getFieldSchema) {
|
|
148
|
-
const rowFieldSchema = getFieldSchema(rowField);
|
|
149
|
-
if ((0, types_1.fieldHasSubFields)(rowField)) {
|
|
150
|
-
return [
|
|
151
|
-
...rowSchema,
|
|
152
|
-
...rowFieldSchema,
|
|
153
|
-
];
|
|
154
|
-
}
|
|
155
|
-
if ((0, types_1.fieldAffectsData)(rowField)) {
|
|
156
|
-
return [
|
|
157
|
-
...rowSchema,
|
|
158
|
-
{
|
|
159
|
-
key: rowField.name,
|
|
160
|
-
type: rowFieldSchema,
|
|
161
|
-
},
|
|
162
|
-
];
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return rowSchema;
|
|
166
|
-
}, []),
|
|
167
|
-
});
|
|
168
|
-
exports.default = fieldToSchemaMap;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRUb1NjaGVtYU1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9maWVsZFRvU2NoZW1hTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUNBT2lCO0FBQ2pCLHFEQUF5RTtBQUN6RSx5REFBZ0Q7QUFDaEQscURBVW1DO0FBQ25DLG9FQUE0QztBQUM1Qyw0REFBb0M7QUFDcEMsdUZBQStEO0FBQy9ELHlFQUFpRDtBQUNqRCxnR0FBd0U7QUFFeEUsTUFBTSxnQkFBZ0IsR0FBZ0MsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sRUFBRSxDQUFDLEtBQWtCLEVBQUUsRUFBRTtRQUM3QixNQUFNLElBQUksR0FBRyxzQkFBWSxDQUFDO1FBQzFCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBQSx1QkFBYSxFQUNqQixLQUFLLEVBQ0wsSUFBSSxFQUNKLFVBQVUsRUFDVixDQUFDLEdBQUcsbUJBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxtQkFBUyxDQUFDLFVBQVUsQ0FBQyxDQUNqRDtTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLHVCQUFhLENBQUM7UUFDM0IsT0FBTztZQUNMLElBQUksRUFBRSxJQUFBLHVCQUFhLEVBQ2pCLEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQzVDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDM0IsTUFBTSxJQUFJLEdBQUcsc0NBQW9CLENBQUM7UUFDbEMsT0FBTztZQUNMLElBQUksRUFBRSxJQUFBLHVCQUFhLEVBQ2pCLEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQzVDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFvQixFQUFFLEVBQUU7UUFDakMsTUFBTSxJQUFJLEdBQUcsdUJBQWEsQ0FBQztRQUMzQixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUEsdUJBQWEsRUFDakIsS0FBSyxFQUNMLElBQUksRUFDSixVQUFVLEVBQ1YsQ0FBQyxHQUFHLG1CQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FDNUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFFBQVEsRUFBRSxDQUFDLEtBQW9CLEVBQUUsRUFBRTtRQUNqQyxNQUFNLElBQUksR0FBRywrQkFBVyxDQUFDO1FBQ3pCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBQSx1QkFBYSxFQUNqQixLQUFLLEVBQ0wsSUFBSSxFQUNKLFVBQVUsRUFDVixDQUFDLEdBQUcsbUJBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUM1QztTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLHVCQUFhLENBQUM7UUFDM0IsT0FBTztZQUNMLElBQUksRUFBRSxJQUFBLHVCQUFhLEVBQ2pCLEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQzVDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksRUFBRSxJQUFBLHVCQUFhLEVBQ2pCLEtBQUssRUFDTCxJQUFJLHlCQUFlLENBQUM7WUFDbEIsSUFBSSxFQUFFLEdBQUcsSUFBQSwyQkFBaUIsRUFBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzFELE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxJQUFBLHNCQUFjLEVBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQzFCLE9BQU87d0JBQ0wsR0FBRyxNQUFNO3dCQUNULENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFOzRCQUMxQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7eUJBQ3BCO3FCQUNGLENBQUM7aUJBQ0g7Z0JBRUQsT0FBTztvQkFDTCxHQUFHLE1BQU07b0JBQ1QsQ0FBQyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTt3QkFDcEIsS0FBSyxFQUFFLE1BQU07cUJBQ2Q7aUJBQ0YsQ0FBQztZQUNKLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDUCxDQUFDLEVBQ0YsVUFBVSxFQUNWLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQzVDO0tBQ0YsQ0FBQztJQUNGLElBQUksRUFBRSxDQUFDLEtBQWdCLEVBQUUsRUFBRTtRQUN6QixNQUFNLElBQUksR0FBRyxrQ0FBZ0IsQ0FBQztRQUM5QixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUEsdUJBQWEsRUFDakIsS0FBSyxFQUNMLElBQUksRUFDSixVQUFVLEVBQ1YsQ0FBQyxHQUFHLG1CQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsbUJBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQ3pEO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBVyxFQUFDLHNCQUFZLENBQUMsQ0FBQztRQUN2QyxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUEsdUJBQWEsRUFDakIsS0FBSyxFQUNMLElBQUksRUFDSixVQUFVLEVBQ1YsQ0FBQyxHQUFHLG1CQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsbUJBQVMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxtQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUNuRTtTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsWUFBWSxFQUFFLENBQUMsS0FBd0IsRUFBRSxFQUFFO1FBQ3pDLElBQUksSUFBSSxHQUFHLElBQUEsdUJBQWEsRUFDdEIsS0FBSyxFQUNMLHVCQUFhLEVBQ2IsVUFBVSxFQUNWLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLG1CQUFTLENBQUMsUUFBUSxDQUFDLENBQy9DLENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ25DLElBQUksR0FBRyxJQUFJLGdDQUFzQixDQUFDO2dCQUNoQyxJQUFJLEVBQUUsR0FBRyxJQUFBLDJCQUFpQixFQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVc7Z0JBQzdELE1BQU0sRUFBRTtvQkFDTixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLElBQUkseUJBQWUsQ0FBQzs0QkFDeEIsSUFBSSxFQUFFLEdBQUcsSUFBQSwyQkFBaUIsRUFBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0I7NEJBQ3hFLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0NBQ3JELEdBQUcsTUFBTTtnQ0FDVCxDQUFDLElBQUEsb0JBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO29DQUN0QixLQUFLLEVBQUUsUUFBUTtpQ0FDaEI7NkJBQ0YsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt5QkFDUixDQUFDO3FCQUNIO29CQUNELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx1QkFBYSxFQUFFO2lCQUMvQjthQUNGLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUkscUJBQVcsQ0FBQyxJQUFJLENBQUM7YUFDNUIsQ0FBQztTQUNIO1FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxNQUFNLEVBQUUsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksRUFBRSxJQUFBLHVCQUFhLEVBQ2pCLEtBQUssRUFDTCx1QkFBYSxFQUNiLFVBQVUsRUFDVixDQUFDLEdBQUcsbUJBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDeEI7S0FDRixDQUFDO0lBQ0YsUUFBUSxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLEVBQUUsSUFBQSx1QkFBYSxFQUNqQixLQUFLLEVBQ0wsd0JBQWMsRUFDZCxVQUFVLEVBQ1YsQ0FBQyxHQUFHLG1CQUFTLENBQUMsUUFBUSxDQUFDLENBQ3hCO0tBQ0YsQ0FBQztJQUNGLE1BQU0sRUFBRSxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxFQUFFLElBQUEsdUJBQWEsRUFDakIsS0FBSyxFQUNMLElBQUkseUJBQWUsQ0FBQztZQUNsQixJQUFJLEVBQUUsR0FBRyxJQUFBLDJCQUFpQixFQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDMUQsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUM5QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO29CQUM5QyxPQUFPO3dCQUNMLEdBQUcsTUFBTTt3QkFDVCxDQUFDLElBQUEsb0JBQVUsRUFBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs0QkFDMUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO3lCQUNwQjtxQkFDRixDQUFDO2lCQUNIO2dCQUVELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO29CQUM5QixPQUFPO3dCQUNMLEdBQUcsTUFBTTt3QkFDVCxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUNSLEtBQUssRUFBRSxNQUFNO3lCQUNkO3FCQUNGLENBQUM7aUJBQ0g7Z0JBRUQsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUNQLENBQUMsRUFDRixVQUFVLEVBQ1YsQ0FBQyxHQUFHLG1CQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsbUJBQVMsQ0FBQyxRQUFRLENBQUMsQ0FDL0M7S0FDRixDQUFDO0lBQ0YsS0FBSyxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsSUFBQSxxQ0FBMkIsRUFBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO0lBQzVFLEtBQUssRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLElBQUEscUNBQTJCLEVBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztJQUM1RSxHQUFHLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRSxJQUFJLGNBQWMsRUFBRTtZQUNsQixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFaEQsSUFBSSxJQUFBLHlCQUFpQixFQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMvQixPQUFPO29CQUNMLEdBQUcsU0FBUztvQkFDWixHQUFHLGNBQWM7aUJBQ2xCLENBQUM7YUFDSDtZQUVELElBQUksSUFBQSx3QkFBZ0IsRUFBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUIsT0FBTztvQkFDTCxHQUFHLFNBQVM7b0JBQ1o7d0JBQ0UsR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJO3dCQUNsQixJQUFJLEVBQUUsY0FBYztxQkFDckI7aUJBQ0YsQ0FBQzthQUNIO1NBQ0Y7UUFHRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLEVBQUUsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFDO0FBRUgsa0JBQWUsZ0JBQWdCLENBQUMifQ==
|