payload 1.6.32 → 1.7.0

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.
Files changed (181) hide show
  1. package/dist/admin/components/Routes.js +8 -3
  2. package/dist/admin/components/Routes.js.map +1 -1
  3. package/dist/admin/components/elements/Nav/index.js +8 -4
  4. package/dist/admin/components/elements/Nav/index.js.map +1 -1
  5. package/dist/admin/components/elements/PreviewButton/index.js +30 -12
  6. package/dist/admin/components/elements/PreviewButton/index.js.map +1 -1
  7. package/dist/admin/components/elements/Status/index.js +5 -4
  8. package/dist/admin/components/elements/Status/index.js.map +1 -1
  9. package/dist/admin/components/forms/Form/index.js +7 -0
  10. package/dist/admin/components/forms/Form/index.js.map +1 -1
  11. package/dist/admin/components/forms/Form/initContextState.js +1 -0
  12. package/dist/admin/components/forms/Form/initContextState.js.map +1 -1
  13. package/dist/admin/components/forms/Form/types.d.ts +1 -0
  14. package/dist/admin/components/forms/field-types/Array/index.js +1 -2
  15. package/dist/admin/components/forms/field-types/Array/index.js.map +1 -1
  16. package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/index.js +11 -1
  17. package/dist/admin/components/forms/field-types/Blocks/BlocksDrawer/index.js.map +1 -1
  18. package/dist/admin/components/forms/field-types/Blocks/index.js +1 -2
  19. package/dist/admin/components/forms/field-types/Blocks/index.js.map +1 -1
  20. package/dist/admin/components/forms/field-types/Textarea/index.scss +6 -5
  21. package/dist/admin/components/utilities/DocumentInfo/index.d.ts +1 -1
  22. package/dist/admin/components/utilities/DocumentInfo/index.js +18 -12
  23. package/dist/admin/components/utilities/DocumentInfo/index.js.map +1 -1
  24. package/dist/admin/components/utilities/DocumentInfo/types.d.ts +0 -3
  25. package/dist/admin/components/views/Dashboard/Default.js +8 -4
  26. package/dist/admin/components/views/Dashboard/Default.js.map +1 -1
  27. package/dist/admin/components/views/Dashboard/index.js +2 -1
  28. package/dist/admin/components/views/Dashboard/index.js.map +1 -1
  29. package/dist/admin/components/views/Dashboard/types.d.ts +2 -1
  30. package/dist/admin/components/views/Global/index.scss +15 -5
  31. package/dist/admin/components/views/Version/Version.js +5 -2
  32. package/dist/admin/components/views/Version/Version.js.map +1 -1
  33. package/dist/admin/components/views/collections/Edit/Default.js +5 -2
  34. package/dist/admin/components/views/collections/Edit/Default.js.map +1 -1
  35. package/dist/admin/components/views/collections/Edit/Upload/index.js +7 -4
  36. package/dist/admin/components/views/collections/Edit/Upload/index.js.map +1 -1
  37. package/dist/admin/components/views/collections/Edit/index.scss +11 -3
  38. package/dist/admin/components/views/collections/List/RelationshipProvider/index.js +11 -4
  39. package/dist/admin/components/views/collections/List/RelationshipProvider/index.js.map +1 -1
  40. package/dist/auth/getExecuteStaticAccess.js +17 -15
  41. package/dist/auth/getExecuteStaticAccess.js.map +1 -1
  42. package/dist/auth/strategies/apiKey.js +0 -1
  43. package/dist/auth/strategies/apiKey.js.map +1 -1
  44. package/dist/collections/buildSchema.js +1 -1
  45. package/dist/collections/buildSchema.js.map +1 -1
  46. package/dist/collections/config/sanitize.js +5 -4
  47. package/dist/collections/config/sanitize.js.map +1 -1
  48. package/dist/collections/config/schema.js +1 -0
  49. package/dist/collections/config/schema.js.map +1 -1
  50. package/dist/collections/config/types.d.ts +9 -2
  51. package/dist/collections/initLocal.js +3 -2
  52. package/dist/collections/initLocal.js.map +1 -1
  53. package/dist/collections/operations/delete.js +11 -9
  54. package/dist/collections/operations/delete.js.map +1 -1
  55. package/dist/collections/operations/deleteByID.js +13 -11
  56. package/dist/collections/operations/deleteByID.js.map +1 -1
  57. package/dist/collections/operations/find.d.ts +0 -1
  58. package/dist/collections/operations/find.js +14 -11
  59. package/dist/collections/operations/find.js.map +1 -1
  60. package/dist/collections/operations/findByID.js +15 -12
  61. package/dist/collections/operations/findByID.js.map +1 -1
  62. package/dist/collections/operations/findVersionByID.js +13 -11
  63. package/dist/collections/operations/findVersionByID.js.map +1 -1
  64. package/dist/collections/operations/findVersions.js +9 -5
  65. package/dist/collections/operations/findVersions.js.map +1 -1
  66. package/dist/collections/operations/local/find.d.ts +0 -1
  67. package/dist/collections/operations/local/find.js +1 -2
  68. package/dist/collections/operations/local/find.js.map +1 -1
  69. package/dist/collections/operations/restoreVersion.js +12 -10
  70. package/dist/collections/operations/restoreVersion.js.map +1 -1
  71. package/dist/collections/operations/update.js +13 -10
  72. package/dist/collections/operations/update.js.map +1 -1
  73. package/dist/collections/operations/updateByID.js +12 -10
  74. package/dist/collections/operations/updateByID.js.map +1 -1
  75. package/dist/config/schema.js +1 -0
  76. package/dist/config/schema.js.map +1 -1
  77. package/dist/config/types.d.ts +7 -1
  78. package/dist/email/build.d.ts +1 -1
  79. package/dist/email/build.js +6 -3
  80. package/dist/email/build.js.map +1 -1
  81. package/dist/email/defaults.d.ts +2 -0
  82. package/dist/email/defaults.js +8 -0
  83. package/dist/email/defaults.js.map +1 -0
  84. package/dist/email/mockHandler.js +3 -2
  85. package/dist/email/mockHandler.js.map +1 -1
  86. package/dist/email/sendEmail.js +1 -1
  87. package/dist/email/sendEmail.js.map +1 -1
  88. package/dist/errors/QueryError.d.ts +8 -0
  89. package/dist/errors/QueryError.js +15 -0
  90. package/dist/errors/QueryError.js.map +1 -0
  91. package/dist/fields/validations.d.ts +1 -1
  92. package/dist/globals/buildModel.js +1 -1
  93. package/dist/globals/buildModel.js.map +1 -1
  94. package/dist/globals/config/sanitize.js +5 -5
  95. package/dist/globals/config/sanitize.js.map +1 -1
  96. package/dist/globals/config/schema.js +1 -0
  97. package/dist/globals/config/schema.js.map +1 -1
  98. package/dist/globals/config/types.d.ts +8 -1
  99. package/dist/globals/initLocal.js +3 -2
  100. package/dist/globals/initLocal.js.map +1 -1
  101. package/dist/globals/operations/findOne.js +15 -11
  102. package/dist/globals/operations/findOne.js.map +1 -1
  103. package/dist/globals/operations/findVersionByID.js +14 -11
  104. package/dist/globals/operations/findVersionByID.js.map +1 -1
  105. package/dist/globals/operations/findVersions.js +10 -5
  106. package/dist/globals/operations/findVersions.js.map +1 -1
  107. package/dist/globals/operations/update.js +14 -11
  108. package/dist/globals/operations/update.js.map +1 -1
  109. package/dist/graphql/errorHandler.d.ts +1 -8
  110. package/dist/graphql/errorHandler.js +2 -9
  111. package/dist/graphql/errorHandler.js.map +1 -1
  112. package/dist/graphql/graphQLHandler.d.ts +1 -6
  113. package/dist/graphql/graphQLHandler.js +24 -7
  114. package/dist/graphql/graphQLHandler.js.map +1 -1
  115. package/dist/graphql/registerSchema.js +0 -18
  116. package/dist/graphql/registerSchema.js.map +1 -1
  117. package/dist/initHTTP.js +1 -1
  118. package/dist/initHTTP.js.map +1 -1
  119. package/dist/mongoose/buildQuery.d.ts +76 -2
  120. package/dist/mongoose/buildQuery.js +274 -149
  121. package/dist/mongoose/buildQuery.js.map +1 -1
  122. package/dist/mongoose/sanitizeQueryValue.d.ts +12 -0
  123. package/dist/mongoose/{sanitizeFormattedValue.js → sanitizeQueryValue.js} +27 -26
  124. package/dist/mongoose/sanitizeQueryValue.js.map +1 -0
  125. package/dist/payload.d.ts +8 -6
  126. package/dist/payload.js +6 -2
  127. package/dist/payload.js.map +1 -1
  128. package/dist/translations/cs.json +1 -0
  129. package/dist/translations/de.json +1 -0
  130. package/dist/translations/en.json +1 -0
  131. package/dist/translations/es.json +1 -0
  132. package/dist/translations/fr.json +1 -0
  133. package/dist/translations/hr.json +1 -0
  134. package/dist/translations/hu.json +1 -0
  135. package/dist/translations/index.d.ts +21 -0
  136. package/dist/translations/it.json +1 -0
  137. package/dist/translations/ja.json +1 -0
  138. package/dist/translations/my.json +1 -0
  139. package/dist/translations/nb.json +1 -0
  140. package/dist/translations/nl.json +1 -0
  141. package/dist/translations/pl.json +1 -0
  142. package/dist/translations/pt.json +1 -0
  143. package/dist/translations/ru.json +1 -0
  144. package/dist/translations/sv.json +1 -0
  145. package/dist/translations/th.json +1 -0
  146. package/dist/translations/tr.json +1 -0
  147. package/dist/translations/ua.json +1 -0
  148. package/dist/translations/vi.json +1 -0
  149. package/dist/translations/zh.json +1 -0
  150. package/dist/uploads/generateFileData.js +4 -2
  151. package/dist/uploads/generateFileData.js.map +1 -1
  152. package/dist/utilities/flattenWhereConstraints.d.ts +2 -2
  153. package/dist/utilities/flattenWhereConstraints.js +12 -13
  154. package/dist/utilities/flattenWhereConstraints.js.map +1 -1
  155. package/dist/utilities/getEntityPolicies.d.ts +6 -10
  156. package/dist/utilities/getEntityPolicies.js +25 -15
  157. package/dist/utilities/getEntityPolicies.js.map +1 -1
  158. package/dist/versions/drafts/queryDrafts.d.ts +4 -3
  159. package/dist/versions/drafts/queryDrafts.js +11 -9
  160. package/dist/versions/drafts/queryDrafts.js.map +1 -1
  161. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +4 -2
  162. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +16 -13
  163. package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
  164. package/docs/access-control/collections.mdx +1 -1
  165. package/docs/admin/hooks.mdx +0 -1
  166. package/docs/configuration/collections.mdx +12 -11
  167. package/docs/configuration/express.mdx +34 -0
  168. package/docs/configuration/globals.mdx +5 -4
  169. package/docs/configuration/localization.mdx +9 -0
  170. package/docs/fields/date.mdx +32 -32
  171. package/docs/fields/textarea.mdx +1 -1
  172. package/docs/getting-started/installation.mdx +2 -0
  173. package/docs/hooks/collections.mdx +7 -1
  174. package/docs/queries/overview.mdx +1 -1
  175. package/docs/rest-api/overview.mdx +1 -1
  176. package/package.json +4 -4
  177. package/dist/mongoose/sanitizeFormattedValue.d.ts +0 -2
  178. package/dist/mongoose/sanitizeFormattedValue.js.map +0 -1
  179. package/dist/versions/defaults.d.ts +0 -3
  180. package/dist/versions/defaults.js +0 -18
  181. package/dist/versions/defaults.js.map +0 -1
@@ -3,43 +3,53 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ParamParser = void 0;
7
+ /* eslint-disable no-continue */
6
8
  /* eslint-disable no-await-in-loop */
7
9
  /* eslint-disable no-restricted-syntax */
8
10
  const deepmerge_1 = __importDefault(require("deepmerge"));
9
- const mongoose_1 = __importDefault(require("mongoose"));
10
11
  const combineMerge_1 = require("../utilities/combineMerge");
11
- const getSchemaTypeOptions_1 = require("./getSchemaTypeOptions");
12
12
  const operatorMap_1 = require("./operatorMap");
13
- const sanitizeFormattedValue_1 = require("./sanitizeFormattedValue");
13
+ const sanitizeQueryValue_1 = require("./sanitizeQueryValue");
14
+ const types_1 = require("../fields/config/types");
15
+ const flattenTopLevelFields_1 = __importDefault(require("../utilities/flattenTopLevelFields"));
16
+ const getEntityPolicies_1 = require("../utilities/getEntityPolicies");
17
+ const QueryError_1 = __importDefault(require("../errors/QueryError"));
14
18
  const validOperators = ['like', 'contains', 'in', 'all', 'not_in', 'greater_than_equal', 'greater_than', 'less_than_equal', 'less_than', 'not_equals', 'equals', 'exists', 'near'];
15
19
  const subQueryOptions = {
16
20
  limit: 50,
17
21
  lean: true,
18
22
  };
19
23
  class ParamParser {
20
- constructor(model, rawParams, locale, queryHiddenFields) {
24
+ constructor({ req, collectionSlug, globalSlug, versionsFields, model, where, overrideAccess, }) {
25
+ this.req = req;
26
+ this.collectionSlug = collectionSlug;
27
+ this.globalSlug = globalSlug;
21
28
  this.parse = this.parse.bind(this);
22
29
  this.model = model;
23
- this.rawParams = rawParams;
24
- this.locale = locale;
25
- this.queryHiddenFields = queryHiddenFields;
26
- this.query = {
27
- searchParams: {},
28
- sort: false,
30
+ this.where = where;
31
+ this.overrideAccess = overrideAccess;
32
+ this.localizationConfig = req.payload.config.localization;
33
+ this.policies = {
34
+ collections: {},
35
+ globals: {},
29
36
  };
37
+ this.errors = [];
38
+ // Get entity fields
39
+ if (globalSlug) {
40
+ const globalConfig = req.payload.globals.config.find(({ slug }) => slug === globalSlug);
41
+ this.fields = versionsFields || globalConfig.fields;
42
+ }
43
+ if (collectionSlug) {
44
+ const collectionConfig = req.payload.collections[collectionSlug].config;
45
+ this.fields = versionsFields || collectionConfig.fields;
46
+ }
30
47
  }
31
48
  // Entry point to the ParamParser class
32
49
  async parse() {
33
- if (typeof this.rawParams === 'object') {
34
- for (const key of Object.keys(this.rawParams)) {
35
- if (key === 'where') {
36
- this.query.searchParams = await this.parsePathOrRelation(this.rawParams.where);
37
- }
38
- else if (key === 'sort') {
39
- this.query.sort = this.rawParams[key];
40
- }
41
- }
42
- return this.query;
50
+ if (typeof this.where === 'object') {
51
+ const query = await this.parsePathOrRelation(this.where);
52
+ return query;
43
53
  }
44
54
  return {};
45
55
  }
@@ -67,7 +77,12 @@ class ParamParser {
67
77
  if (typeof pathOperators === 'object') {
68
78
  for (const operator of Object.keys(pathOperators)) {
69
79
  if (validOperators.includes(operator)) {
70
- const searchParam = await this.buildSearchParam(this.model.schema, relationOrPath, pathOperators[operator], operator);
80
+ const searchParam = await this.buildSearchParam({
81
+ fields: this.fields,
82
+ incomingPath: relationOrPath,
83
+ val: pathOperators[operator],
84
+ operator,
85
+ });
71
86
  if ((searchParam === null || searchParam === void 0 ? void 0 : searchParam.value) && (searchParam === null || searchParam === void 0 ? void 0 : searchParam.path)) {
72
87
  result = {
73
88
  ...result,
@@ -99,96 +114,64 @@ class ParamParser {
99
114
  }
100
115
  return completedConditions;
101
116
  }
102
- // Build up an array of auto-localized paths to search on
103
- // Multiple paths may be possible if searching on properties of relationship fields
104
- getLocalizedPaths(Model, incomingPath, operator) {
105
- const { schema } = Model;
106
- const pathSegments = incomingPath.split('.');
107
- let paths = [
108
- {
109
- path: '',
110
- complete: false,
111
- Model,
112
- },
113
- ];
114
- pathSegments.every((segment, i) => {
115
- const lastIncompletePath = paths.find(({ complete }) => !complete);
116
- const { path } = lastIncompletePath;
117
- const currentPath = path ? `${path}.${segment}` : segment;
118
- const currentSchemaType = schema.path(currentPath);
119
- const currentSchemaPathType = schema.pathType(currentPath);
120
- if (currentSchemaPathType === 'nested') {
121
- lastIncompletePath.path = currentPath;
122
- return true;
123
- }
124
- const upcomingSegment = pathSegments[i + 1];
125
- if (currentSchemaType && currentSchemaPathType !== 'adhocOrUndefined') {
126
- const currentSchemaTypeOptions = (0, getSchemaTypeOptions_1.getSchemaTypeOptions)(currentSchemaType);
127
- if (currentSchemaTypeOptions.localized) {
128
- const upcomingLocalizedPath = `${currentPath}.${upcomingSegment}`;
129
- const upcomingSchemaTypeWithLocale = schema.path(upcomingLocalizedPath);
130
- if (upcomingSchemaTypeWithLocale) {
131
- lastIncompletePath.path = currentPath;
132
- return true;
133
- }
134
- const localePath = `${currentPath}.${this.locale}`;
135
- const localizedSchemaType = schema.path(localePath);
136
- if (localizedSchemaType || operator === 'near') {
137
- lastIncompletePath.path = localePath;
138
- return true;
139
- }
140
- }
141
- lastIncompletePath.path = currentPath;
142
- return true;
143
- }
144
- const priorSchemaType = schema.path(path);
145
- if (priorSchemaType) {
146
- const priorSchemaTypeOptions = (0, getSchemaTypeOptions_1.getSchemaTypeOptions)(priorSchemaType);
147
- if (typeof priorSchemaTypeOptions.ref === 'string') {
148
- const RefModel = mongoose_1.default.model(priorSchemaTypeOptions.ref);
149
- lastIncompletePath.complete = true;
150
- const remainingPath = pathSegments.slice(i).join('.');
151
- paths = [
152
- ...paths,
153
- ...this.getLocalizedPaths(RefModel, remainingPath, operator),
154
- ];
155
- return false;
156
- }
157
- }
158
- if (operator === 'near' || currentSchemaPathType === 'adhocOrUndefined') {
159
- lastIncompletePath.path = currentPath;
160
- }
161
- return true;
162
- });
163
- return paths;
164
- }
165
117
  // Convert the Payload key / value / operator into a MongoDB query
166
- async buildSearchParam(schema, incomingPath, val, operator) {
118
+ async buildSearchParam({ fields, incomingPath, val, operator, }) {
167
119
  var _a;
168
120
  // Replace GraphQL nested field double underscore formatting
169
121
  let sanitizedPath = incomingPath.replace(/__/gi, '.');
170
122
  if (sanitizedPath === 'id')
171
123
  sanitizedPath = '_id';
172
- const collectionPaths = this.getLocalizedPaths(this.model, sanitizedPath, operator);
173
- const [{ path }] = collectionPaths;
174
- if (path) {
175
- const schemaType = schema.path(path);
176
- const schemaOptions = (0, getSchemaTypeOptions_1.getSchemaTypeOptions)(schemaType);
177
- const formattedValue = (0, sanitizeFormattedValue_1.sanitizeQueryValue)(schemaType, path, operator, val);
178
- if (!this.queryHiddenFields && (['salt', 'hash'].includes(path) || ((_a = schemaType === null || schemaType === void 0 ? void 0 : schemaType.options) === null || _a === void 0 ? void 0 : _a.hidden))) {
179
- return undefined;
124
+ let paths = [];
125
+ let hasCustomID = false;
126
+ if (sanitizedPath === '_id') {
127
+ const customIDfield = (_a = this.req.payload.collections[this.collectionSlug]) === null || _a === void 0 ? void 0 : _a.config.fields.find((field) => (0, types_1.fieldAffectsData)(field) && field.name === 'id');
128
+ let idFieldType = 'text';
129
+ if (customIDfield) {
130
+ if ((customIDfield === null || customIDfield === void 0 ? void 0 : customIDfield.type) === 'text' || (customIDfield === null || customIDfield === void 0 ? void 0 : customIDfield.type) === 'number') {
131
+ idFieldType = customIDfield.type;
132
+ }
133
+ hasCustomID = true;
180
134
  }
135
+ paths.push({
136
+ path: '_id',
137
+ field: {
138
+ name: 'id',
139
+ type: idFieldType,
140
+ },
141
+ complete: true,
142
+ collectionSlug: this.collectionSlug,
143
+ });
144
+ }
145
+ else {
146
+ paths = await this.getLocalizedPaths({
147
+ collectionSlug: this.collectionSlug,
148
+ globalSlug: this.globalSlug,
149
+ fields,
150
+ incomingPath: sanitizedPath,
151
+ });
152
+ }
153
+ const [{ path, field }] = paths;
154
+ if (path) {
155
+ const formattedValue = (0, sanitizeQueryValue_1.sanitizeQueryValue)({
156
+ ctx: this,
157
+ field,
158
+ path,
159
+ operator,
160
+ val,
161
+ hasCustomID,
162
+ });
181
163
  // If there are multiple collections to search through,
182
164
  // Recursively build up a list of query constraints
183
- if (collectionPaths.length > 1) {
165
+ if (paths.length > 1) {
184
166
  // Remove top collection and reverse array
185
167
  // to work backwards from top
186
- const collectionPathsToSearch = collectionPaths.slice(1).reverse();
168
+ const pathsToQuery = paths.slice(1).reverse();
187
169
  const initialRelationshipQuery = {
188
170
  value: {},
189
171
  };
190
- const relationshipQuery = await collectionPathsToSearch.reduce(async (priorQuery, { Model: SubModel, path: subPath }, i) => {
172
+ const relationshipQuery = await pathsToQuery.reduce(async (priorQuery, { path: subPath, collectionSlug }, i) => {
191
173
  const priorQueryResult = await priorQuery;
174
+ const SubModel = this.req.payload.collections[collectionSlug].Model;
192
175
  // On the "deepest" collection,
193
176
  // Search on the value passed through the query
194
177
  if (i === 0) {
@@ -198,12 +181,14 @@ class ParamParser {
198
181
  [operator]: val,
199
182
  },
200
183
  },
201
- }, this.locale);
184
+ req: this.req,
185
+ overrideAccess: this.overrideAccess,
186
+ });
202
187
  const result = await SubModel.find(subQuery, subQueryOptions);
203
188
  const $in = result.map((doc) => doc._id.toString());
204
- if (collectionPathsToSearch.length === 1)
189
+ if (pathsToQuery.length === 1)
205
190
  return { path, value: { $in } };
206
- const nextSubPath = collectionPathsToSearch[i + 1].path;
191
+ const nextSubPath = pathsToQuery[i + 1].path;
207
192
  return {
208
193
  value: { [nextSubPath]: { $in } },
209
194
  };
@@ -213,7 +198,7 @@ class ParamParser {
213
198
  const $in = result.map((doc) => doc._id.toString());
214
199
  // If it is the last recursion
215
200
  // then pass through the search param
216
- if (i + 1 === collectionPathsToSearch.length) {
201
+ if (i + 1 === pathsToQuery.length) {
217
202
  return { path, value: { $in } };
218
203
  }
219
204
  return {
@@ -226,45 +211,6 @@ class ParamParser {
226
211
  }
227
212
  if (operator && validOperators.includes(operator)) {
228
213
  const operatorKey = operatorMap_1.operatorMap[operator];
229
- let overrideQuery = false;
230
- let query;
231
- // If there is a ref, this is a relationship or upload field
232
- // IDs can be either string, number, or ObjectID
233
- // So we need to build an `or` query for all these types
234
- if (schemaOptions && (schemaOptions.ref || schemaOptions.refPath)) {
235
- overrideQuery = true;
236
- query = {
237
- $or: [
238
- {
239
- [path]: {
240
- [operatorKey]: formattedValue,
241
- },
242
- },
243
- ],
244
- };
245
- if (typeof formattedValue === 'number' || (typeof formattedValue === 'string' && mongoose_1.default.Types.ObjectId.isValid(formattedValue))) {
246
- query.$or.push({
247
- [path]: {
248
- [operatorKey]: formattedValue.toString(),
249
- },
250
- });
251
- }
252
- if (typeof formattedValue === 'string') {
253
- if (!Number.isNaN(formattedValue)) {
254
- query.$or.push({
255
- [path]: {
256
- [operatorKey]: parseFloat(formattedValue),
257
- },
258
- });
259
- }
260
- }
261
- }
262
- // If forced query
263
- if (overrideQuery) {
264
- return {
265
- value: query,
266
- };
267
- }
268
214
  // Some operators like 'near' need to define a full query
269
215
  // so if there is no operator key, just return the value
270
216
  if (!operatorKey) {
@@ -281,17 +227,196 @@ class ParamParser {
281
227
  }
282
228
  return undefined;
283
229
  }
230
+ // Build up an array of auto-localized paths to search on
231
+ // Multiple paths may be possible if searching on properties of relationship fields
232
+ async getLocalizedPaths({ collectionSlug, globalSlug, fields, incomingPath, }) {
233
+ var _a;
234
+ const pathSegments = incomingPath.split('.');
235
+ let paths = [
236
+ {
237
+ path: '',
238
+ complete: false,
239
+ field: undefined,
240
+ fields: (0, flattenTopLevelFields_1.default)(fields, false),
241
+ fieldPolicies: undefined,
242
+ collectionSlug,
243
+ },
244
+ ];
245
+ if (!this.overrideAccess) {
246
+ if (collectionSlug) {
247
+ const collection = { ...this.req.payload.collections[collectionSlug].config };
248
+ collection.fields = fields;
249
+ if (!this.policies.collections[collectionSlug]) {
250
+ const [policy, promises] = (0, getEntityPolicies_1.getEntityPolicies)({
251
+ req: this.req,
252
+ entity: collection,
253
+ operations: ['read'],
254
+ type: 'collection',
255
+ });
256
+ await Promise.all(promises);
257
+ this.policies.collections[collectionSlug] = policy;
258
+ }
259
+ paths[0].fieldPolicies = this.policies.collections[collectionSlug].fields;
260
+ if (['salt', 'hash'].includes(incomingPath) && collection.auth && !((_a = collection.auth) === null || _a === void 0 ? void 0 : _a.disableLocalStrategy)) {
261
+ this.errors.push({ path: incomingPath });
262
+ return [];
263
+ }
264
+ }
265
+ if (globalSlug) {
266
+ if (!this.policies.globals[globalSlug]) {
267
+ const global = { ...this.req.payload.globals.config.find(({ slug }) => slug === globalSlug) };
268
+ global.fields = fields;
269
+ const [policy, promises] = (0, getEntityPolicies_1.getEntityPolicies)({
270
+ req: this.req,
271
+ entity: global,
272
+ operations: ['read'],
273
+ type: 'global',
274
+ });
275
+ await Promise.all(promises);
276
+ this.policies.globals[globalSlug] = policy;
277
+ }
278
+ paths[0].fieldPolicies = this.policies.globals[globalSlug].fields;
279
+ }
280
+ }
281
+ // Use a 'some' so that we can bail out
282
+ // if a relationship query is found
283
+ // or if Rich Text / JSON
284
+ let done = false;
285
+ for (let i = 0; i < pathSegments.length; i += 1) {
286
+ if (done)
287
+ continue;
288
+ const segment = pathSegments[i];
289
+ const lastIncompletePath = paths.find(({ complete }) => !complete);
290
+ if (lastIncompletePath) {
291
+ const { path } = lastIncompletePath;
292
+ let currentPath = path ? `${path}.${segment}` : segment;
293
+ const matchedField = lastIncompletePath.fields.find((field) => (0, types_1.fieldAffectsData)(field) && field.name === segment);
294
+ lastIncompletePath.field = matchedField;
295
+ if (currentPath === 'globalType' && this.globalSlug) {
296
+ lastIncompletePath.path = currentPath;
297
+ lastIncompletePath.complete = true;
298
+ lastIncompletePath.field = {
299
+ name: 'globalType',
300
+ type: 'text',
301
+ };
302
+ done = true;
303
+ continue;
304
+ }
305
+ if (matchedField) {
306
+ if (!this.overrideAccess) {
307
+ const fieldAccess = lastIncompletePath.fieldPolicies[matchedField.name].read.permission;
308
+ if (!fieldAccess || ('hidden' in matchedField && matchedField.hidden)) {
309
+ this.errors.push({ path: currentPath });
310
+ done = true;
311
+ continue;
312
+ }
313
+ }
314
+ const nextSegment = pathSegments[i + 1];
315
+ const nextSegmentIsLocale = this.localizationConfig && this.localizationConfig.locales.includes(nextSegment);
316
+ if (nextSegmentIsLocale) {
317
+ // Skip the next iteration, because it's a locale
318
+ i += 1;
319
+ currentPath = `${currentPath}.${nextSegment}`;
320
+ }
321
+ else if ('localized' in matchedField && matchedField.localized) {
322
+ currentPath = `${currentPath}.${this.req.locale}`;
323
+ }
324
+ switch (matchedField.type) {
325
+ case 'blocks':
326
+ case 'richText':
327
+ case 'json': {
328
+ const upcomingSegments = pathSegments.slice(i + 1).join('.');
329
+ lastIncompletePath.complete = true;
330
+ lastIncompletePath.path = upcomingSegments ? `${currentPath}.${upcomingSegments}` : currentPath;
331
+ done = true;
332
+ continue;
333
+ }
334
+ case 'relationship':
335
+ case 'upload': {
336
+ // If this is a polymorphic relation,
337
+ // We only support querying directly (no nested querying)
338
+ if (typeof matchedField.relationTo !== 'string') {
339
+ const lastSegmentIsValid = ['value', 'relationTo'].includes(pathSegments[pathSegments.length - 1]);
340
+ if (lastSegmentIsValid) {
341
+ lastIncompletePath.complete = true;
342
+ lastIncompletePath.path = pathSegments.join('.');
343
+ }
344
+ else {
345
+ this.errors.push({ path: currentPath });
346
+ done = true;
347
+ continue;
348
+ }
349
+ }
350
+ else {
351
+ lastIncompletePath.complete = true;
352
+ lastIncompletePath.collectionSlug = matchedField.relationTo;
353
+ lastIncompletePath.path = currentPath;
354
+ const nestedPathToQuery = pathSegments.slice(nextSegmentIsLocale ? i + 2 : i + 1).join('.');
355
+ if (nestedPathToQuery) {
356
+ const relatedCollection = this.req.payload.collections[matchedField.relationTo].config;
357
+ const remainingPaths = await this.getLocalizedPaths({
358
+ collectionSlug: relatedCollection.slug,
359
+ fields: relatedCollection.fields,
360
+ incomingPath: nestedPathToQuery,
361
+ });
362
+ paths = [
363
+ ...paths,
364
+ ...remainingPaths,
365
+ ];
366
+ }
367
+ done = true;
368
+ continue;
369
+ }
370
+ break;
371
+ }
372
+ default: {
373
+ if ('fields' in lastIncompletePath.field) {
374
+ lastIncompletePath.fields = (0, flattenTopLevelFields_1.default)(lastIncompletePath.field.fields, false);
375
+ }
376
+ if (!this.overrideAccess && 'fields' in lastIncompletePath.fieldPolicies[lastIncompletePath.field.name]) {
377
+ lastIncompletePath.fieldPolicies = lastIncompletePath.fieldPolicies[lastIncompletePath.field.name].fields;
378
+ }
379
+ if (i + 1 === pathSegments.length)
380
+ lastIncompletePath.complete = true;
381
+ lastIncompletePath.path = currentPath;
382
+ continue;
383
+ }
384
+ }
385
+ }
386
+ else {
387
+ this.errors.push({ path: currentPath });
388
+ done = true;
389
+ continue;
390
+ }
391
+ }
392
+ }
393
+ return paths;
394
+ }
284
395
  }
396
+ exports.ParamParser = ParamParser;
285
397
  // This plugin asynchronously builds a list of Mongoose query constraints
286
398
  // which can then be used in subsequent Mongoose queries.
287
- function buildQueryPlugin(schema) {
288
- const modifiedSchema = schema;
289
- async function buildQuery(rawParams, locale, queryHiddenFields = false) {
290
- const paramParser = new ParamParser(this, rawParams, locale, queryHiddenFields);
291
- const params = await paramParser.parse();
292
- return params.searchParams;
293
- }
294
- modifiedSchema.statics.buildQuery = buildQuery;
295
- }
296
- exports.default = buildQueryPlugin;
399
+ const getBuildQueryPlugin = ({ collectionSlug, versionsFields, } = {}) => {
400
+ return function buildQueryPlugin(schema) {
401
+ const modifiedSchema = schema;
402
+ async function buildQuery({ req, where, overrideAccess = false, globalSlug }) {
403
+ const paramParser = new ParamParser({
404
+ req,
405
+ collectionSlug,
406
+ globalSlug,
407
+ versionsFields,
408
+ model: this,
409
+ where,
410
+ overrideAccess,
411
+ });
412
+ const result = await paramParser.parse();
413
+ if (paramParser.errors.length > 0) {
414
+ throw new QueryError_1.default(paramParser.errors);
415
+ }
416
+ return result;
417
+ }
418
+ modifiedSchema.statics.buildQuery = buildQuery;
419
+ };
420
+ };
421
+ exports.default = getBuildQueryPlugin;
297
422
  //# sourceMappingURL=buildQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildQuery.js","sourceRoot":"","sources":["../../src/mongoose/buildQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildQuery.js","sourceRoot":"","sources":["../../src/mongoose/buildQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Field, TabAsField } from '../fields/config/types';
2
+ import { ParamParser } from './buildQuery';
3
+ type SanitizeQueryValueArgs = {
4
+ ctx: ParamParser;
5
+ field: Field | TabAsField;
6
+ path: string;
7
+ operator: string;
8
+ val: any;
9
+ hasCustomID: boolean;
10
+ };
11
+ export declare const sanitizeQueryValue: ({ ctx, field, path, operator, val, hasCustomID }: SanitizeQueryValueArgs) => unknown;
12
+ export {};