@payloadcms/db-mongodb 3.0.0-alpha.6 → 3.0.0-alpha.60

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 (120) hide show
  1. package/README.md +0 -2
  2. package/dist/connect.d.ts.map +1 -1
  3. package/dist/connect.js +20 -25
  4. package/dist/connect.js.map +1 -0
  5. package/dist/create.js +6 -21
  6. package/dist/create.js.map +1 -0
  7. package/dist/createGlobal.js +6 -21
  8. package/dist/createGlobal.js.map +1 -0
  9. package/dist/createGlobalVersion.js +4 -14
  10. package/dist/createGlobalVersion.js.map +1 -0
  11. package/dist/createMigration.d.ts.map +1 -1
  12. package/dist/createMigration.js +15 -25
  13. package/dist/createMigration.js.map +1 -0
  14. package/dist/createVersion.js +4 -14
  15. package/dist/createVersion.js.map +1 -0
  16. package/dist/deleteMany.js +4 -14
  17. package/dist/deleteMany.js.map +1 -0
  18. package/dist/deleteOne.js +6 -21
  19. package/dist/deleteOne.js.map +1 -0
  20. package/dist/deleteVersions.js +4 -14
  21. package/dist/deleteVersions.js.map +1 -0
  22. package/dist/destroy.js +5 -21
  23. package/dist/destroy.js.map +1 -0
  24. package/dist/find.js +10 -25
  25. package/dist/find.js.map +1 -0
  26. package/dist/findGlobal.js +8 -23
  27. package/dist/findGlobal.js.map +1 -0
  28. package/dist/findGlobalVersions.js +12 -27
  29. package/dist/findGlobalVersions.js.map +1 -0
  30. package/dist/findOne.js +6 -21
  31. package/dist/findOne.js.map +1 -0
  32. package/dist/findVersions.js +10 -25
  33. package/dist/findVersions.js.map +1 -0
  34. package/dist/index.d.ts +36 -7
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +65 -80
  37. package/dist/index.js.map +1 -0
  38. package/dist/init.d.ts.map +1 -1
  39. package/dist/init.js +33 -39
  40. package/dist/init.js.map +1 -0
  41. package/dist/migrateFresh.d.ts +1 -1
  42. package/dist/migrateFresh.d.ts.map +1 -1
  43. package/dist/migrateFresh.js +13 -26
  44. package/dist/migrateFresh.js.map +1 -0
  45. package/dist/models/buildCollectionSchema.d.ts +25 -0
  46. package/dist/models/buildCollectionSchema.d.ts.map +1 -1
  47. package/dist/models/buildCollectionSchema.js +8 -23
  48. package/dist/models/buildCollectionSchema.js.map +1 -0
  49. package/dist/models/buildGlobalModel.d.ts +1 -1
  50. package/dist/models/buildGlobalModel.d.ts.map +1 -1
  51. package/dist/models/buildGlobalModel.js +9 -24
  52. package/dist/models/buildGlobalModel.js.map +1 -0
  53. package/dist/models/buildSchema.d.ts +26 -2
  54. package/dist/models/buildSchema.d.ts.map +1 -1
  55. package/dist/models/buildSchema.js +23 -33
  56. package/dist/models/buildSchema.js.map +1 -0
  57. package/dist/queries/buildAndOrConditions.js +4 -14
  58. package/dist/queries/buildAndOrConditions.js.map +1 -0
  59. package/dist/queries/buildQuery.js +6 -16
  60. package/dist/queries/buildQuery.js.map +1 -0
  61. package/dist/queries/buildSearchParams.d.ts.map +1 -1
  62. package/dist/queries/buildSearchParams.js +21 -32
  63. package/dist/queries/buildSearchParams.js.map +1 -0
  64. package/dist/queries/buildSortParam.d.ts +25 -0
  65. package/dist/queries/buildSortParam.d.ts.map +1 -1
  66. package/dist/queries/buildSortParam.js +4 -14
  67. package/dist/queries/buildSortParam.js.map +1 -0
  68. package/dist/queries/getLocalizedSortProperty.js +8 -18
  69. package/dist/queries/getLocalizedSortProperty.js.map +1 -0
  70. package/dist/queries/getLocalizedSortProperty.spec.js +19 -23
  71. package/dist/queries/getLocalizedSortProperty.spec.js.map +1 -0
  72. package/dist/queries/mock.js +1 -2
  73. package/dist/queries/mock.js.map +1 -0
  74. package/dist/queries/operatorMap.js +2 -12
  75. package/dist/queries/operatorMap.js.map +1 -0
  76. package/dist/queries/parseParams.js +12 -27
  77. package/dist/queries/parseParams.js.map +1 -0
  78. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  79. package/dist/queries/sanitizeQueryValue.js +9 -24
  80. package/dist/queries/sanitizeQueryValue.js.map +1 -0
  81. package/dist/queryDrafts.js +11 -26
  82. package/dist/queryDrafts.js.map +1 -0
  83. package/dist/testCredentials.js +4 -25
  84. package/dist/testCredentials.js.map +1 -0
  85. package/dist/transactions/beginTransaction.js +6 -16
  86. package/dist/transactions/beginTransaction.js.map +1 -0
  87. package/dist/transactions/commitTransaction.js +2 -12
  88. package/dist/transactions/commitTransaction.js.map +1 -0
  89. package/dist/transactions/rollbackTransaction.js +2 -12
  90. package/dist/transactions/rollbackTransaction.js.map +1 -0
  91. package/dist/types.d.ts +26 -1
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/types.js +2 -5
  94. package/dist/types.js.map +1 -0
  95. package/dist/updateGlobal.js +6 -21
  96. package/dist/updateGlobal.js.map +1 -0
  97. package/dist/updateGlobalVersion.d.ts +1 -1
  98. package/dist/updateGlobalVersion.d.ts.map +1 -1
  99. package/dist/updateGlobalVersion.js +4 -14
  100. package/dist/updateGlobalVersion.js.map +1 -0
  101. package/dist/updateOne.d.ts.map +1 -1
  102. package/dist/updateOne.js +8 -23
  103. package/dist/updateOne.js.map +1 -0
  104. package/dist/updateVersion.js +4 -14
  105. package/dist/updateVersion.js.map +1 -0
  106. package/dist/utilities/getDBName.d.ts +19 -0
  107. package/dist/utilities/getDBName.d.ts.map +1 -0
  108. package/dist/utilities/getDBName.js +19 -0
  109. package/dist/utilities/getDBName.js.map +1 -0
  110. package/dist/utilities/handleError.js +6 -21
  111. package/dist/utilities/handleError.js.map +1 -0
  112. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
  113. package/dist/utilities/sanitizeInternalFields.js +2 -12
  114. package/dist/utilities/sanitizeInternalFields.js.map +1 -0
  115. package/dist/withSession.d.ts +26 -1
  116. package/dist/withSession.d.ts.map +1 -1
  117. package/dist/withSession.js +5 -12
  118. package/dist/withSession.js.map +1 -0
  119. package/package.json +17 -9
  120. package/src/index.ts +198 -0
@@ -1,36 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "buildSearchParam", {
6
- enumerable: true,
7
- get: function() {
8
- return buildSearchParam;
9
- }
10
- });
11
- const _bsonobjectid = /*#__PURE__*/ _interop_require_default(require("bson-objectid"));
12
- const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
13
- const _database = require("payload/database");
14
- const _types = require("payload/types");
15
- const _operatorMap = require("./operatorMap");
16
- const _sanitizeQueryValue = require("./sanitizeQueryValue");
17
- function _interop_require_default(obj) {
18
- return obj && obj.__esModule ? obj : {
19
- default: obj
20
- };
21
- }
1
+ import ObjectIdImport from 'bson-objectid';
2
+ import mongoose from 'mongoose';
3
+ import { getLocalizedPaths } from 'payload/database';
4
+ import { fieldAffectsData } from 'payload/types';
5
+ import { validOperators } from 'payload/types';
6
+ import { operatorMap } from './operatorMap.js';
7
+ import { sanitizeQueryValue } from './sanitizeQueryValue.js';
8
+ const ObjectId = ObjectIdImport.default || ObjectIdImport;
22
9
  const subQueryOptions = {
23
10
  lean: true,
24
11
  limit: 50
25
12
  };
26
- async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPath, locale, operator, payload, val }) {
13
+ /**
14
+ * Convert the Payload key / value / operator into a MongoDB query
15
+ */ export async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPath, locale, operator, payload, val }) {
27
16
  // Replace GraphQL nested field double underscore formatting
28
17
  let sanitizedPath = incomingPath.replace(/__/g, '.');
29
18
  if (sanitizedPath === 'id') sanitizedPath = '_id';
30
19
  let paths = [];
31
20
  let hasCustomID = false;
32
21
  if (sanitizedPath === '_id') {
33
- const customIDfield = payload.collections[collectionSlug]?.config.fields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
22
+ const customIDfield = payload.collections[collectionSlug]?.config.fields.find((field)=>fieldAffectsData(field) && field.name === 'id');
34
23
  let idFieldType = 'text';
35
24
  if (customIDfield) {
36
25
  if (customIDfield?.type === 'text' || customIDfield?.type === 'number') {
@@ -48,7 +37,7 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
48
37
  path: '_id'
49
38
  });
50
39
  } else {
51
- paths = await (0, _database.getLocalizedPaths)({
40
+ paths = await getLocalizedPaths({
52
41
  collectionSlug,
53
42
  fields,
54
43
  globalSlug,
@@ -59,7 +48,7 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
59
48
  }
60
49
  const [{ field, path }] = paths;
61
50
  if (path) {
62
- const { operator: formattedOperator, rawQuery, val: formattedValue } = (0, _sanitizeQueryValue.sanitizeQueryValue)({
51
+ const { operator: formattedOperator, rawQuery, val: formattedValue } = sanitizeQueryValue({
63
52
  field,
64
53
  hasCustomID,
65
54
  operator,
@@ -98,7 +87,7 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
98
87
  result.forEach((doc)=>{
99
88
  const stringID = doc._id.toString();
100
89
  $in.push(stringID);
101
- if (_mongoose.default.Types.ObjectId.isValid(stringID)) {
90
+ if (mongoose.Types.ObjectId.isValid(stringID)) {
102
91
  $in.push(doc._id);
103
92
  }
104
93
  });
@@ -142,8 +131,8 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
142
131
  }, Promise.resolve(initialRelationshipQuery));
143
132
  return relationshipQuery;
144
133
  }
145
- if (formattedOperator && _types.validOperators.includes(formattedOperator)) {
146
- const operatorKey = _operatorMap.operatorMap[formattedOperator];
134
+ if (formattedOperator && validOperators.includes(formattedOperator)) {
135
+ const operatorKey = operatorMap[formattedOperator];
147
136
  if (field.type === 'relationship' || field.type === 'upload') {
148
137
  let hasNumberIDRelation;
149
138
  const result = {
@@ -158,10 +147,10 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
158
147
  }
159
148
  };
160
149
  if (typeof formattedValue === 'string') {
161
- if (_mongoose.default.Types.ObjectId.isValid(formattedValue)) {
150
+ if (mongoose.Types.ObjectId.isValid(formattedValue)) {
162
151
  result.value.$or.push({
163
152
  [path]: {
164
- [operatorKey]: new _bsonobjectid.default(formattedValue)
153
+ [operatorKey]: new ObjectId(formattedValue)
165
154
  }
166
155
  });
167
156
  } else {
@@ -169,7 +158,7 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
169
158
  field.relationTo
170
159
  ]).forEach((relationTo)=>{
171
160
  const isRelatedToCustomNumberID = payload.collections[relationTo]?.config?.fields.find((relatedField)=>{
172
- return (0, _types.fieldAffectsData)(relatedField) && relatedField.name === 'id' && relatedField.type === 'number';
161
+ return fieldAffectsData(relatedField) && relatedField.name === 'id' && relatedField.type === 'number';
173
162
  });
174
163
  if (isRelatedToCustomNumberID) {
175
164
  if (isRelatedToCustomNumberID.type === 'number') hasNumberIDRelation = true;
@@ -219,4 +208,4 @@ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPa
219
208
  return undefined;
220
209
  }
221
210
 
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkU2VhcmNoUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFBhdGhUb1F1ZXJ5IH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRvciB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBPYmplY3RJZCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgZ2V0TG9jYWxpemVkUGF0aHMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgeyB2YWxpZE9wZXJhdG9ycyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgTW9uZ29vc2VBZGFwdGVyIH0gZnJvbSAnLi4nXG5cbmltcG9ydCB7IG9wZXJhdG9yTWFwIH0gZnJvbSAnLi9vcGVyYXRvck1hcCdcbmltcG9ydCB7IHNhbml0aXplUXVlcnlWYWx1ZSB9IGZyb20gJy4vc2FuaXRpemVRdWVyeVZhbHVlJ1xuXG50eXBlIFNlYXJjaFBhcmFtID0ge1xuICBwYXRoPzogc3RyaW5nXG4gIHJhd1F1ZXJ5PzogdW5rbm93blxuICB2YWx1ZT86IHVua25vd25cbn1cblxuY29uc3Qgc3ViUXVlcnlPcHRpb25zID0ge1xuICBsZWFuOiB0cnVlLFxuICBsaW1pdDogNTAsXG59XG5cbi8qKlxuICogQ29udmVydCB0aGUgUGF5bG9hZCBrZXkgLyB2YWx1ZSAvIG9wZXJhdG9yIGludG8gYSBNb25nb0RCIHF1ZXJ5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZFNlYXJjaFBhcmFtKHtcbiAgY29sbGVjdGlvblNsdWcsXG4gIGZpZWxkcyxcbiAgZ2xvYmFsU2x1ZyxcbiAgaW5jb21pbmdQYXRoLFxuICBsb2NhbGUsXG4gIG9wZXJhdG9yLFxuICBwYXlsb2FkLFxuICB2YWwsXG59OiB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIGZpZWxkczogRmllbGRbXVxuICBnbG9iYWxTbHVnPzogc3RyaW5nXG4gIGluY29taW5nUGF0aDogc3RyaW5nXG4gIGxvY2FsZT86IHN0cmluZ1xuICBvcGVyYXRvcjogc3RyaW5nXG4gIHBheWxvYWQ6IFBheWxvYWRcbiAgdmFsOiB1bmtub3duXG59KTogUHJvbWlzZTxTZWFyY2hQYXJhbT4ge1xuICAvLyBSZXBsYWNlIEdyYXBoUUwgbmVzdGVkIGZpZWxkIGRvdWJsZSB1bmRlcnNjb3JlIGZvcm1hdHRpbmdcbiAgbGV0IHNhbml0aXplZFBhdGggPSBpbmNvbWluZ1BhdGgucmVwbGFjZSgvX18vZywgJy4nKVxuICBpZiAoc2FuaXRpemVkUGF0aCA9PT0gJ2lkJykgc2FuaXRpemVkUGF0aCA9ICdfaWQnXG5cbiAgbGV0IHBhdGhzOiBQYXRoVG9RdWVyeVtdID0gW11cblxuICBsZXQgaGFzQ3VzdG9tSUQgPSBmYWxzZVxuXG4gIGlmIChzYW5pdGl6ZWRQYXRoID09PSAnX2lkJykge1xuICAgIGNvbnN0IGN1c3RvbUlEZmllbGQgPSBwYXlsb2FkLmNvbGxlY3Rpb25zW2NvbGxlY3Rpb25TbHVnXT8uY29uZmlnLmZpZWxkcy5maW5kKFxuICAgICAgKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnLFxuICAgIClcblxuICAgIGxldCBpZEZpZWxkVHlwZTogJ251bWJlcicgfCAndGV4dCcgPSAndGV4dCdcblxuICAgIGlmIChjdXN0b21JRGZpZWxkKSB7XG4gICAgICBpZiAoY3VzdG9tSURmaWVsZD8udHlwZSA9PT0gJ3RleHQnIHx8IGN1c3RvbUlEZmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlkRmllbGRUeXBlID0gY3VzdG9tSURmaWVsZC50eXBlXG4gICAgICB9XG5cbiAgICAgIGhhc0N1c3RvbUlEID0gdHJ1ZVxuICAgIH1cblxuICAgIHBhdGhzLnB1c2goe1xuICAgICAgY29sbGVjdGlvblNsdWcsXG4gICAgICBjb21wbGV0ZTogdHJ1ZSxcbiAgICAgIGZpZWxkOiB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6IGlkRmllbGRUeXBlLFxuICAgICAgfSBhcyBGaWVsZCxcbiAgICAgIHBhdGg6ICdfaWQnLFxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgcGF0aHMgPSBhd2FpdCBnZXRMb2NhbGl6ZWRQYXRocyh7XG4gICAgICBjb2xsZWN0aW9uU2x1ZyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBpbmNvbWluZ1BhdGg6IHNhbml0aXplZFBhdGgsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBbeyBmaWVsZCwgcGF0aCB9XSA9IHBhdGhzXG5cbiAgaWYgKHBhdGgpIHtcbiAgICBjb25zdCB7XG4gICAgICBvcGVyYXRvcjogZm9ybWF0dGVkT3BlcmF0b3IsXG4gICAgICByYXdRdWVyeSxcbiAgICAgIHZhbDogZm9ybWF0dGVkVmFsdWUsXG4gICAgfSA9IHNhbml0aXplUXVlcnlWYWx1ZSh7XG4gICAgICBmaWVsZCxcbiAgICAgIGhhc0N1c3RvbUlELFxuICAgICAgb3BlcmF0b3IsXG4gICAgICBwYXRoLFxuICAgICAgdmFsLFxuICAgIH0pXG5cbiAgICBpZiAocmF3UXVlcnkpIHJldHVybiB7IHZhbHVlOiByYXdRdWVyeSB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgY29sbGVjdGlvbnMgdG8gc2VhcmNoIHRocm91Z2gsXG4gICAgLy8gUmVjdXJzaXZlbHkgYnVpbGQgdXAgYSBsaXN0IG9mIHF1ZXJ5IGNvbnN0cmFpbnRzXG4gICAgaWYgKHBhdGhzLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIFJlbW92ZSB0b3AgY29sbGVjdGlvbiBhbmQgcmV2ZXJzZSBhcnJheVxuICAgICAgLy8gdG8gd29yayBiYWNrd2FyZHMgZnJvbSB0b3BcbiAgICAgIGNvbnN0IHBhdGhzVG9RdWVyeSA9IHBhdGhzLnNsaWNlKDEpLnJldmVyc2UoKVxuXG4gICAgICBjb25zdCBpbml0aWFsUmVsYXRpb25zaGlwUXVlcnkgPSB7XG4gICAgICAgIHZhbHVlOiB7fSxcbiAgICAgIH0gYXMgU2VhcmNoUGFyYW1cblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwUXVlcnkgPSBhd2FpdCBwYXRoc1RvUXVlcnkucmVkdWNlKFxuICAgICAgICBhc3luYyAocHJpb3JRdWVyeSwgeyBjb2xsZWN0aW9uU2x1Zzogc2x1ZywgcGF0aDogc3ViUGF0aCB9LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJpb3JRdWVyeVJlc3VsdCA9IGF3YWl0IHByaW9yUXVlcnlcblxuICAgICAgICAgIGNvbnN0IFN1Yk1vZGVsID0gKHBheWxvYWQuZGIgYXMgTW9uZ29vc2VBZGFwdGVyKS5jb2xsZWN0aW9uc1tzbHVnXVxuXG4gICAgICAgICAgLy8gT24gdGhlIFwiZGVlcGVzdFwiIGNvbGxlY3Rpb24sXG4gICAgICAgICAgLy8gU2VhcmNoIG9uIHRoZSB2YWx1ZSBwYXNzZWQgdGhyb3VnaCB0aGUgcXVlcnlcbiAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3Qgc3ViUXVlcnkgPSBhd2FpdCBTdWJNb2RlbC5idWlsZFF1ZXJ5KHtcbiAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAgIFtzdWJQYXRoXToge1xuICAgICAgICAgICAgICAgICAgW2Zvcm1hdHRlZE9wZXJhdG9yXTogdmFsLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBTdWJNb2RlbC5maW5kKHN1YlF1ZXJ5LCBzdWJRdWVyeU9wdGlvbnMpXG5cbiAgICAgICAgICAgIGNvbnN0ICRpbjogdW5rbm93bltdID0gW11cblxuICAgICAgICAgICAgcmVzdWx0LmZvckVhY2goKGRvYykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzdHJpbmdJRCA9IGRvYy5faWQudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAkaW4ucHVzaChzdHJpbmdJRClcblxuICAgICAgICAgICAgICBpZiAobW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZChzdHJpbmdJRCkpIHtcbiAgICAgICAgICAgICAgICAkaW4ucHVzaChkb2MuX2lkKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAocGF0aHNUb1F1ZXJ5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHsgJGluIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbmV4dFN1YlBhdGggPSBwYXRoc1RvUXVlcnlbaSArIDFdLnBhdGhcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHsgW25leHRTdWJQYXRoXTogeyAkaW4gfSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN1YlF1ZXJ5ID0gcHJpb3JRdWVyeVJlc3VsdC52YWx1ZVxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFN1Yk1vZGVsLmZpbmQoc3ViUXVlcnksIHN1YlF1ZXJ5T3B0aW9ucylcblxuICAgICAgICAgIGNvbnN0ICRpbiA9IHJlc3VsdC5tYXAoKGRvYykgPT4gZG9jLl9pZC50b1N0cmluZygpKVxuXG4gICAgICAgICAgLy8gSWYgaXQgaXMgdGhlIGxhc3QgcmVjdXJzaW9uXG4gICAgICAgICAgLy8gdGhlbiBwYXNzIHRocm91Z2ggdGhlIHNlYXJjaCBwYXJhbVxuICAgICAgICAgIGlmIChpICsgMSA9PT0gcGF0aHNUb1F1ZXJ5Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgdmFsdWU6IHsgJGluIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIF9pZDogeyAkaW4gfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBQcm9taXNlLnJlc29sdmUoaW5pdGlhbFJlbGF0aW9uc2hpcFF1ZXJ5KSxcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHJlbGF0aW9uc2hpcFF1ZXJ5XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdHRlZE9wZXJhdG9yICYmIHZhbGlkT3BlcmF0b3JzLmluY2x1ZGVzKGZvcm1hdHRlZE9wZXJhdG9yIGFzIE9wZXJhdG9yKSkge1xuICAgICAgY29uc3Qgb3BlcmF0b3JLZXkgPSBvcGVyYXRvck1hcFtmb3JtYXR0ZWRPcGVyYXRvcl1cblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSB7XG4gICAgICAgIGxldCBoYXNOdW1iZXJJRFJlbGF0aW9uXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAkb3I6IFt7IFtwYXRoXTogeyBbb3BlcmF0b3JLZXldOiBmb3JtYXR0ZWRWYWx1ZSB9IH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlmIChtb25nb29zZS5UeXBlcy5PYmplY3RJZC5pc1ZhbGlkKGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgICAgICAgcmVzdWx0LnZhbHVlLiRvci5wdXNoKHsgW3BhdGhdOiB7IFtvcGVyYXRvcktleV06IG5ldyBPYmplY3RJZChmb3JtYXR0ZWRWYWx1ZSkgfSB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7KEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbykgPyBmaWVsZC5yZWxhdGlvblRvIDogW2ZpZWxkLnJlbGF0aW9uVG9dKS5mb3JFYWNoKFxuICAgICAgICAgICAgICAocmVsYXRpb25UbykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQgPSBwYXlsb2FkLmNvbGxlY3Rpb25zW1xuICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ub1xuICAgICAgICAgICAgICAgIF0/LmNvbmZpZz8uZmllbGRzLmZpbmQoKHJlbGF0ZWRGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShyZWxhdGVkRmllbGQpICYmXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZC5uYW1lID09PSAnaWQnICYmXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZC50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9DdXN0b21OdW1iZXJJRCkge1xuICAgICAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQudHlwZSA9PT0gJ251bWJlcicpIGhhc051bWJlcklEUmVsYXRpb24gPSB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAoaGFzTnVtYmVySURSZWxhdGlvbilcbiAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlLiRvci5wdXNoKHsgW3BhdGhdOiB7IFtvcGVyYXRvcktleV06IHBhcnNlRmxvYXQoZm9ybWF0dGVkVmFsdWUpIH0gfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzdWx0LnZhbHVlLiRvci5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3JtYXR0ZWRPcGVyYXRvciA9PT0gJ2xpa2UnICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3Qgd29yZHMgPSBmb3JtYXR0ZWRWYWx1ZS5zcGxpdCgnICcpXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAkYW5kOiB3b3Jkcy5tYXAoKHdvcmQpID0+ICh7XG4gICAgICAgICAgICAgIFtwYXRoXToge1xuICAgICAgICAgICAgICAgICRvcHRpb25zOiAnaScsXG4gICAgICAgICAgICAgICAgJHJlZ2V4OiB3b3JkLnJlcGxhY2UoL1tcXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH1cblxuICAgICAgLy8gU29tZSBvcGVyYXRvcnMgbGlrZSAnbmVhcicgbmVlZCB0byBkZWZpbmUgYSBmdWxsIHF1ZXJ5XG4gICAgICAvLyBzbyBpZiB0aGVyZSBpcyBubyBvcGVyYXRvciBrZXksIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgICAgaWYgKCFvcGVyYXRvcktleSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgdmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHZhbHVlOiB7IFtvcGVyYXRvcktleV06IGZvcm1hdHRlZFZhbHVlIH0sXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJidWlsZFNlYXJjaFBhcmFtIiwic3ViUXVlcnlPcHRpb25zIiwibGVhbiIsImxpbWl0IiwiY29sbGVjdGlvblNsdWciLCJmaWVsZHMiLCJnbG9iYWxTbHVnIiwiaW5jb21pbmdQYXRoIiwibG9jYWxlIiwib3BlcmF0b3IiLCJwYXlsb2FkIiwidmFsIiwic2FuaXRpemVkUGF0aCIsInJlcGxhY2UiLCJwYXRocyIsImhhc0N1c3RvbUlEIiwiY3VzdG9tSURmaWVsZCIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwiZmluZCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJpZEZpZWxkVHlwZSIsInR5cGUiLCJwdXNoIiwiY29tcGxldGUiLCJwYXRoIiwiZ2V0TG9jYWxpemVkUGF0aHMiLCJmb3JtYXR0ZWRPcGVyYXRvciIsInJhd1F1ZXJ5IiwiZm9ybWF0dGVkVmFsdWUiLCJzYW5pdGl6ZVF1ZXJ5VmFsdWUiLCJ2YWx1ZSIsImxlbmd0aCIsInBhdGhzVG9RdWVyeSIsInNsaWNlIiwicmV2ZXJzZSIsImluaXRpYWxSZWxhdGlvbnNoaXBRdWVyeSIsInJlbGF0aW9uc2hpcFF1ZXJ5IiwicmVkdWNlIiwicHJpb3JRdWVyeSIsInNsdWciLCJzdWJQYXRoIiwiaSIsInByaW9yUXVlcnlSZXN1bHQiLCJTdWJNb2RlbCIsImRiIiwic3ViUXVlcnkiLCJidWlsZFF1ZXJ5Iiwid2hlcmUiLCJyZXN1bHQiLCIkaW4iLCJmb3JFYWNoIiwiZG9jIiwic3RyaW5nSUQiLCJfaWQiLCJ0b1N0cmluZyIsIm1vbmdvb3NlIiwiVHlwZXMiLCJPYmplY3RJZCIsImlzVmFsaWQiLCJuZXh0U3ViUGF0aCIsIm1hcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidmFsaWRPcGVyYXRvcnMiLCJpbmNsdWRlcyIsIm9wZXJhdG9yS2V5Iiwib3BlcmF0b3JNYXAiLCJoYXNOdW1iZXJJRFJlbGF0aW9uIiwiJG9yIiwiQXJyYXkiLCJpc0FycmF5IiwicmVsYXRpb25UbyIsImlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQiLCJyZWxhdGVkRmllbGQiLCJwYXJzZUZsb2F0Iiwid29yZHMiLCJzcGxpdCIsIiRhbmQiLCJ3b3JkIiwiJG9wdGlvbnMiLCIkcmVnZXgiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBOEJzQkE7OztlQUFBQTs7O3FFQXpCRDtpRUFDQTswQkFDYTt1QkFDRDs2QkFLTDtvQ0FDTzs7Ozs7O0FBUW5DLE1BQU1DLGtCQUFrQjtJQUN0QkMsTUFBTTtJQUNOQyxPQUFPO0FBQ1Q7QUFLTyxlQUFlSCxpQkFBaUIsRUFDckNJLGNBQWMsRUFDZEMsTUFBTSxFQUNOQyxVQUFVLEVBQ1ZDLFlBQVksRUFDWkMsTUFBTSxFQUNOQyxRQUFRLEVBQ1JDLE9BQU8sRUFDUEMsR0FBRyxFQVVKO0lBQ0MsNERBQTREO0lBQzVELElBQUlDLGdCQUFnQkwsYUFBYU0sT0FBTyxDQUFDLE9BQU87SUFDaEQsSUFBSUQsa0JBQWtCLE1BQU1BLGdCQUFnQjtJQUU1QyxJQUFJRSxRQUF1QixFQUFFO0lBRTdCLElBQUlDLGNBQWM7SUFFbEIsSUFBSUgsa0JBQWtCLE9BQU87UUFDM0IsTUFBTUksZ0JBQWdCTixRQUFRTyxXQUFXLENBQUNiLGVBQWUsRUFBRWMsT0FBT2IsT0FBT2MsS0FDdkUsQ0FBQ0MsUUFBVUMsSUFBQUEsdUJBQWdCLEVBQUNELFVBQVVBLE1BQU1FLElBQUksS0FBSztRQUd2RCxJQUFJQyxjQUFpQztRQUVyQyxJQUFJUCxlQUFlO1lBQ2pCLElBQUlBLGVBQWVRLFNBQVMsVUFBVVIsZUFBZVEsU0FBUyxVQUFVO2dCQUN0RUQsY0FBY1AsY0FBY1EsSUFBSTtZQUNsQztZQUVB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
211
+ //# sourceMappingURL=buildSearchParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/buildSearchParams.ts"],"sourcesContent":["import type { Payload } from 'payload'\nimport type { PathToQuery } from 'payload/database'\nimport type { Field } from 'payload/types'\nimport type { Operator } from 'payload/types'\n\nimport ObjectIdImport from 'bson-objectid'\nimport mongoose from 'mongoose'\nimport { getLocalizedPaths } from 'payload/database'\nimport { fieldAffectsData } from 'payload/types'\nimport { validOperators } from 'payload/types'\n\nimport type { MongooseAdapter } from '../index.js'\n\nimport { operatorMap } from './operatorMap.js'\nimport { sanitizeQueryValue } from './sanitizeQueryValue.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\ntype SearchParam = {\n path?: string\n rawQuery?: unknown\n value?: unknown\n}\n\nconst subQueryOptions = {\n lean: true,\n limit: 50,\n}\n\n/**\n * Convert the Payload key / value / operator into a MongoDB query\n */\nexport async function buildSearchParam({\n collectionSlug,\n fields,\n globalSlug,\n incomingPath,\n locale,\n operator,\n payload,\n val,\n}: {\n collectionSlug?: string\n fields: Field[]\n globalSlug?: string\n incomingPath: string\n locale?: string\n operator: string\n payload: Payload\n val: unknown\n}): Promise<SearchParam> {\n // Replace GraphQL nested field double underscore formatting\n let sanitizedPath = incomingPath.replace(/__/g, '.')\n if (sanitizedPath === 'id') sanitizedPath = '_id'\n\n let paths: PathToQuery[] = []\n\n let hasCustomID = false\n\n if (sanitizedPath === '_id') {\n const customIDfield = payload.collections[collectionSlug]?.config.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n\n let idFieldType: 'number' | 'text' = 'text'\n\n if (customIDfield) {\n if (customIDfield?.type === 'text' || customIDfield?.type === 'number') {\n idFieldType = customIDfield.type\n }\n\n hasCustomID = true\n }\n\n paths.push({\n collectionSlug,\n complete: true,\n field: {\n name: 'id',\n type: idFieldType,\n } as Field,\n path: '_id',\n })\n } else {\n paths = await getLocalizedPaths({\n collectionSlug,\n fields,\n globalSlug,\n incomingPath: sanitizedPath,\n locale,\n payload,\n })\n }\n\n const [{ field, path }] = paths\n\n if (path) {\n const {\n operator: formattedOperator,\n rawQuery,\n val: formattedValue,\n } = sanitizeQueryValue({\n field,\n hasCustomID,\n operator,\n path,\n val,\n })\n\n if (rawQuery) return { value: rawQuery }\n\n // If there are multiple collections to search through,\n // Recursively build up a list of query constraints\n if (paths.length > 1) {\n // Remove top collection and reverse array\n // to work backwards from top\n const pathsToQuery = paths.slice(1).reverse()\n\n const initialRelationshipQuery = {\n value: {},\n } as SearchParam\n\n const relationshipQuery = await pathsToQuery.reduce(\n async (priorQuery, { collectionSlug: slug, path: subPath }, i) => {\n const priorQueryResult = await priorQuery\n\n const SubModel = (payload.db as MongooseAdapter).collections[slug]\n\n // On the \"deepest\" collection,\n // Search on the value passed through the query\n if (i === 0) {\n const subQuery = await SubModel.buildQuery({\n locale,\n payload,\n where: {\n [subPath]: {\n [formattedOperator]: val,\n },\n },\n })\n\n const result = await SubModel.find(subQuery, subQueryOptions)\n\n const $in: unknown[] = []\n\n result.forEach((doc) => {\n const stringID = doc._id.toString()\n $in.push(stringID)\n\n if (mongoose.Types.ObjectId.isValid(stringID)) {\n $in.push(doc._id)\n }\n })\n\n if (pathsToQuery.length === 1) {\n return {\n path,\n value: { $in },\n }\n }\n\n const nextSubPath = pathsToQuery[i + 1].path\n\n return {\n value: { [nextSubPath]: { $in } },\n }\n }\n\n const subQuery = priorQueryResult.value\n const result = await SubModel.find(subQuery, subQueryOptions)\n\n const $in = result.map((doc) => doc._id.toString())\n\n // If it is the last recursion\n // then pass through the search param\n if (i + 1 === pathsToQuery.length) {\n return {\n path,\n value: { $in },\n }\n }\n\n return {\n value: {\n _id: { $in },\n },\n }\n },\n Promise.resolve(initialRelationshipQuery),\n )\n\n return relationshipQuery\n }\n\n if (formattedOperator && validOperators.includes(formattedOperator as Operator)) {\n const operatorKey = operatorMap[formattedOperator]\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let hasNumberIDRelation\n\n const result = {\n value: {\n $or: [{ [path]: { [operatorKey]: formattedValue } }],\n },\n }\n\n if (typeof formattedValue === 'string') {\n if (mongoose.Types.ObjectId.isValid(formattedValue)) {\n result.value.$or.push({\n [path]: { [operatorKey]: new ObjectId(formattedValue) },\n })\n } else {\n ;(Array.isArray(field.relationTo) ? field.relationTo : [field.relationTo]).forEach(\n (relationTo) => {\n const isRelatedToCustomNumberID = payload.collections[\n relationTo\n ]?.config?.fields.find((relatedField) => {\n return (\n fieldAffectsData(relatedField) &&\n relatedField.name === 'id' &&\n relatedField.type === 'number'\n )\n })\n\n if (isRelatedToCustomNumberID) {\n if (isRelatedToCustomNumberID.type === 'number') hasNumberIDRelation = true\n }\n },\n )\n\n if (hasNumberIDRelation)\n result.value.$or.push({ [path]: { [operatorKey]: parseFloat(formattedValue) } })\n }\n }\n\n if (result.value.$or.length > 1) {\n return result\n }\n }\n\n if (formattedOperator === 'like' && typeof formattedValue === 'string') {\n const words = formattedValue.split(' ')\n\n const result = {\n value: {\n $and: words.map((word) => ({\n [path]: {\n $options: 'i',\n $regex: word.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'),\n },\n })),\n },\n }\n\n return result\n }\n\n // Some operators like 'near' need to define a full query\n // so if there is no operator key, just return the value\n if (!operatorKey) {\n return {\n path,\n value: formattedValue,\n }\n }\n\n return {\n path,\n value: { [operatorKey]: formattedValue },\n }\n }\n }\n return undefined\n}\n"],"names":["ObjectIdImport","mongoose","getLocalizedPaths","fieldAffectsData","validOperators","operatorMap","sanitizeQueryValue","ObjectId","default","subQueryOptions","lean","limit","buildSearchParam","collectionSlug","fields","globalSlug","incomingPath","locale","operator","payload","val","sanitizedPath","replace","paths","hasCustomID","customIDfield","collections","config","find","field","name","idFieldType","type","push","complete","path","formattedOperator","rawQuery","formattedValue","value","length","pathsToQuery","slice","reverse","initialRelationshipQuery","relationshipQuery","reduce","priorQuery","slug","subPath","i","priorQueryResult","SubModel","db","subQuery","buildQuery","where","result","$in","forEach","doc","stringID","_id","toString","Types","isValid","nextSubPath","map","Promise","resolve","includes","operatorKey","hasNumberIDRelation","$or","Array","isArray","relationTo","isRelatedToCustomNumberID","relatedField","parseFloat","words","split","$and","word","$options","$regex","undefined"],"mappings":"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"}
@@ -1,3 +1,28 @@
1
+ /// <reference types="mongoose/types/aggregate.js" />
2
+ /// <reference types="mongoose/types/callback.js" />
3
+ /// <reference types="mongoose/types/collection.js" />
4
+ /// <reference types="mongoose/types/connection.js" />
5
+ /// <reference types="mongoose/types/cursor.js" />
6
+ /// <reference types="mongoose/types/document.js" />
7
+ /// <reference types="mongoose/types/error.js" />
8
+ /// <reference types="mongoose/types/expressions.js" />
9
+ /// <reference types="mongoose/types/helpers.js" />
10
+ /// <reference types="mongoose/types/middlewares.js" />
11
+ /// <reference types="mongoose/types/indexes.js" />
12
+ /// <reference types="mongoose/types/models.js" />
13
+ /// <reference types="mongoose/types/mongooseoptions.js" />
14
+ /// <reference types="mongoose/types/pipelinestage.js" />
15
+ /// <reference types="mongoose/types/populate.js" />
16
+ /// <reference types="mongoose/types/query.js" />
17
+ /// <reference types="mongoose/types/schemaoptions.js" />
18
+ /// <reference types="mongoose/types/schematypes.js" />
19
+ /// <reference types="mongoose/types/session.js" />
20
+ /// <reference types="mongoose/types/types.js" />
21
+ /// <reference types="mongoose/types/utility.js" />
22
+ /// <reference types="mongoose/types/validation.js" />
23
+ /// <reference types="mongoose/types/virtuals.js" />
24
+ /// <reference types="mongoose/types/inferschematype.js" />
25
+ /// <reference types="mongoose-paginate-v2" />
1
26
  import type { PaginateOptions } from 'mongoose';
2
27
  import type { SanitizedConfig } from 'payload/config';
3
28
  import type { Field } from 'payload/types';
@@ -1 +1 @@
1
- {"version":3,"file":"buildSortParam.d.ts","sourceRoot":"","sources":["../../src/queries/buildSortParam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAI1C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB,EAAE,CAAA;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAA;AAE1C,eAAO,MAAM,cAAc,kDAMxB,IAAI,KAAG,eAAe,CAAC,MAAM,CA6B/B,CAAA"}
1
+ {"version":3,"file":"buildSortParam.d.ts","sourceRoot":"","sources":["../../src/queries/buildSortParam.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAI1C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB,EAAE,CAAA;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAA;AAE1C,eAAO,MAAM,cAAc,kDAMxB,IAAI,KAAG,eAAe,CAAC,MAAM,CA6B/B,CAAA"}
@@ -1,15 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "buildSortParam", {
6
- enumerable: true,
7
- get: function() {
8
- return buildSortParam;
9
- }
10
- });
11
- const _getLocalizedSortProperty = require("./getLocalizedSortProperty");
12
- const buildSortParam = ({ config, fields, locale, sort, timestamps })=>{
1
+ import { getLocalizedSortProperty } from './getLocalizedSortProperty.js';
2
+ export const buildSortParam = ({ config, fields, locale, sort, timestamps })=>{
13
3
  let sortProperty;
14
4
  let sortDirection = 'desc';
15
5
  if (!sort) {
@@ -27,7 +17,7 @@ const buildSortParam = ({ config, fields, locale, sort, timestamps })=>{
27
17
  if (sortProperty === 'id') {
28
18
  sortProperty = '_id';
29
19
  } else {
30
- sortProperty = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
20
+ sortProperty = getLocalizedSortProperty({
31
21
  config,
32
22
  fields,
33
23
  locale,
@@ -39,4 +29,4 @@ const buildSortParam = ({ config, fields, locale, sort, timestamps })=>{
39
29
  };
40
30
  };
41
31
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkU29ydFBhcmFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFnaW5hdGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5J1xuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIGZpZWxkczogRmllbGRbXVxuICBsb2NhbGU6IHN0cmluZ1xuICBzb3J0OiBzdHJpbmdcbiAgdGltZXN0YW1wczogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBTb3J0QXJncyA9IHtcbiAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uXG4gIHByb3BlcnR5OiBzdHJpbmdcbn1bXVxuXG5leHBvcnQgdHlwZSBTb3J0RGlyZWN0aW9uID0gJ2FzYycgfCAnZGVzYydcblxuZXhwb3J0IGNvbnN0IGJ1aWxkU29ydFBhcmFtID0gKHtcbiAgY29uZmlnLFxuICBmaWVsZHMsXG4gIGxvY2FsZSxcbiAgc29ydCxcbiAgdGltZXN0YW1wcyxcbn06IEFyZ3MpOiBQYWdpbmF0ZU9wdGlvbnNbJ3NvcnQnXSA9PiB7XG4gIGxldCBzb3J0UHJvcGVydHk6IHN0cmluZ1xuICBsZXQgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdkZXNjJ1xuXG4gIGlmICghc29ydCkge1xuICAgIGlmICh0aW1lc3RhbXBzKSB7XG4gICAgICBzb3J0UHJvcGVydHkgPSAnY3JlYXRlZEF0J1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3J0UHJvcGVydHkgPSAnX2lkJ1xuICAgIH1cbiAgfSBlbHNlIGlmIChzb3J0LmluZGV4T2YoJy0nKSA9PT0gMCkge1xuICAgIHNvcnRQcm9wZXJ0eSA9IHNvcnQuc3Vic3RyaW5nKDEpXG4gIH0gZWxzZSB7XG4gICAgc29ydFByb3BlcnR5ID0gc29ydFxuICAgIHNvcnREaXJlY3Rpb24gPSAnYXNjJ1xuICB9XG5cbiAgaWYgKHNvcnRQcm9wZXJ0eSA9PT0gJ2lkJykge1xuICAgIHNvcnRQcm9wZXJ0eSA9ICdfaWQnXG4gIH0gZWxzZSB7XG4gICAgc29ydFByb3BlcnR5ID0gZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5KHtcbiAgICAgIGNvbmZpZyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHNlZ21lbnRzOiBzb3J0UHJvcGVydHkuc3BsaXQoJy4nKSxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHsgW3NvcnRQcm9wZXJ0eV06IHNvcnREaXJlY3Rpb24gfVxufVxuIl0sIm5hbWVzIjpbImJ1aWxkU29ydFBhcmFtIiwiY29uZmlnIiwiZmllbGRzIiwibG9jYWxlIiwic29ydCIsInRpbWVzdGFtcHMiLCJzb3J0UHJvcGVydHkiLCJzb3J0RGlyZWN0aW9uIiwiaW5kZXhPZiIsInN1YnN0cmluZyIsImdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSIsInNlZ21lbnRzIiwic3BsaXQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBcUJhQTs7O2VBQUFBOzs7MENBakI0QjtBQWlCbEMsTUFBTUEsaUJBQWlCLENBQUMsRUFDN0JDLE1BQU0sRUFDTkMsTUFBTSxFQUNOQyxNQUFNLEVBQ05DLElBQUksRUFDSkMsVUFBVSxFQUNMO0lBQ0wsSUFBSUM7SUFDSixJQUFJQyxnQkFBK0I7SUFFbkMsSUFBSSxDQUFDSCxNQUFNO1FBQ1QsSUFBSUMsWUFBWTtZQUNkQyxlQUFlO1FBQ2pCLE9BQU87WUFDTEEsZUFBZTtRQUNqQjtJQUNGLE9BQU8sSUFBSUYsS0FBS0ksT0FBTyxDQUFDLFNBQVMsR0FBRztRQUNsQ0YsZUFBZUYsS0FBS0ssU0FBUyxDQUFDO0lBQ2hDLE9BQU87UUFDTEgsZUFBZUY7UUFDZkcsZ0JBQWdCO0lBQ2xCO0lBRUEsSUFBSUQsaUJBQWlCLE1BQU07UUFDekJBLGVBQWU7SUFDakIsT0FBTztRQUNMQSxlQUFlSSxJQUFBQSxrREFBd0IsRUFBQztZQUN0Q1Q7WUFDQUM7WUFDQUM7WUFDQVEsVUFBVUwsYUFBYU0sS0FBSyxDQUFDO1FBQy9CO0lBQ0Y7SUFFQSxPQUFPO1FBQUUsQ0FBQ04sYUFBYSxFQUFFQztJQUFjO0FBQ3pDIn0=
32
+ //# sourceMappingURL=buildSortParam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/buildSortParam.ts"],"sourcesContent":["import type { PaginateOptions } from 'mongoose'\nimport type { SanitizedConfig } from 'payload/config'\nimport type { Field } from 'payload/types'\n\nimport { getLocalizedSortProperty } from './getLocalizedSortProperty.js'\n\ntype Args = {\n config: SanitizedConfig\n fields: Field[]\n locale: string\n sort: string\n timestamps: boolean\n}\n\nexport type SortArgs = {\n direction: SortDirection\n property: string\n}[]\n\nexport type SortDirection = 'asc' | 'desc'\n\nexport const buildSortParam = ({\n config,\n fields,\n locale,\n sort,\n timestamps,\n}: Args): PaginateOptions['sort'] => {\n let sortProperty: string\n let sortDirection: SortDirection = 'desc'\n\n if (!sort) {\n if (timestamps) {\n sortProperty = 'createdAt'\n } else {\n sortProperty = '_id'\n }\n } else if (sort.indexOf('-') === 0) {\n sortProperty = sort.substring(1)\n } else {\n sortProperty = sort\n sortDirection = 'asc'\n }\n\n if (sortProperty === 'id') {\n sortProperty = '_id'\n } else {\n sortProperty = getLocalizedSortProperty({\n config,\n fields,\n locale,\n segments: sortProperty.split('.'),\n })\n }\n\n return { [sortProperty]: sortDirection }\n}\n"],"names":["getLocalizedSortProperty","buildSortParam","config","fields","locale","sort","timestamps","sortProperty","sortDirection","indexOf","substring","segments","split"],"mappings":"AAIA,SAASA,wBAAwB,QAAQ,gCAA+B;AAiBxE,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,UAAU,EACL;IACL,IAAIC;IACJ,IAAIC,gBAA+B;IAEnC,IAAI,CAACH,MAAM;QACT,IAAIC,YAAY;YACdC,eAAe;QACjB,OAAO;YACLA,eAAe;QACjB;IACF,OAAO,IAAIF,KAAKI,OAAO,CAAC,SAAS,GAAG;QAClCF,eAAeF,KAAKK,SAAS,CAAC;IAChC,OAAO;QACLH,eAAeF;QACfG,gBAAgB;IAClB;IAEA,IAAID,iBAAiB,MAAM;QACzBA,eAAe;IACjB,OAAO;QACLA,eAAeP,yBAAyB;YACtCE;YACAC;YACAC;YACAO,UAAUJ,aAAaK,KAAK,CAAC;QAC/B;IACF;IAEA,OAAO;QAAE,CAACL,aAAa,EAAEC;IAAc;AACzC,EAAC"}
@@ -1,31 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getLocalizedSortProperty", {
6
- enumerable: true,
7
- get: function() {
8
- return getLocalizedSortProperty;
9
- }
10
- });
11
- const _types = require("payload/types");
12
- const _utilities = require("payload/utilities");
13
- const getLocalizedSortProperty = ({ config, fields: incomingFields, locale, result: incomingResult, segments: incomingSegments })=>{
1
+ import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types';
2
+ import { flattenTopLevelFields } from 'payload/utilities';
3
+ export const getLocalizedSortProperty = ({ config, fields: incomingFields, locale, result: incomingResult, segments: incomingSegments })=>{
14
4
  // If localization is not enabled, accept exactly
15
5
  // what is sent in
16
6
  if (!config.localization) {
17
7
  return incomingSegments.join('.');
18
8
  }
19
9
  // Flatten incoming fields (row, etc)
20
- const fields = (0, _utilities.flattenTopLevelFields)(incomingFields);
10
+ const fields = flattenTopLevelFields(incomingFields);
21
11
  const segments = [
22
12
  ...incomingSegments
23
13
  ];
24
14
  // Retrieve first segment, and remove from segments
25
15
  const firstSegment = segments.shift();
26
16
  // Attempt to find a matched field
27
- const matchedField = fields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === firstSegment);
28
- if (matchedField && !(0, _types.fieldIsPresentationalOnly)(matchedField)) {
17
+ const matchedField = fields.find((field)=>fieldAffectsData(field) && field.name === firstSegment);
18
+ if (matchedField && !fieldIsPresentationalOnly(matchedField)) {
29
19
  let nextFields;
30
20
  const remainingSegments = [
31
21
  ...segments
@@ -54,7 +44,7 @@ const getLocalizedSortProperty = ({ config, fields: incomingFields, locale, resu
54
44
  nextFields = matchedField.blocks.reduce((flattenedBlockFields, block)=>{
55
45
  return [
56
46
  ...flattenedBlockFields,
57
- ...block.fields.filter((blockField)=>(0, _types.fieldAffectsData)(blockField) && blockField.name !== 'blockType' && blockField.name !== 'blockName' || !(0, _types.fieldAffectsData)(blockField))
47
+ ...block.fields.filter((blockField)=>fieldAffectsData(blockField) && blockField.name !== 'blockType' && blockField.name !== 'blockName' || !fieldAffectsData(blockField))
58
48
  ];
59
49
  }, []);
60
50
  }
@@ -73,4 +63,4 @@ const getLocalizedSortProperty = ({ config, fields: incomingFields, locale, resu
73
63
  return incomingSegments.join('.');
74
64
  };
75
65
 
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2dldExvY2FsaXplZFNvcnRQcm9wZXJ0eS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHsgZmxhdHRlblRvcExldmVsRmllbGRzIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGxvY2FsZTogc3RyaW5nXG4gIHJlc3VsdD86IHN0cmluZ1xuICBzZWdtZW50czogc3RyaW5nW11cbn1cblxuZXhwb3J0IGNvbnN0IGdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSA9ICh7XG4gIGNvbmZpZyxcbiAgZmllbGRzOiBpbmNvbWluZ0ZpZWxkcyxcbiAgbG9jYWxlLFxuICByZXN1bHQ6IGluY29taW5nUmVzdWx0LFxuICBzZWdtZW50czogaW5jb21pbmdTZWdtZW50cyxcbn06IEFyZ3MpOiBzdHJpbmcgPT4ge1xuICAvLyBJZiBsb2NhbGl6YXRpb24gaXMgbm90IGVuYWJsZWQsIGFjY2VwdCBleGFjdGx5XG4gIC8vIHdoYXQgaXMgc2VudCBpblxuICBpZiAoIWNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICByZXR1cm4gaW5jb21pbmdTZWdtZW50cy5qb2luKCcuJylcbiAgfVxuXG4gIC8vIEZsYXR0ZW4gaW5jb21pbmcgZmllbGRzIChyb3csIGV0YylcbiAgY29uc3QgZmllbGRzID0gZmxhdHRlblRvcExldmVsRmllbGRzKGluY29taW5nRmllbGRzKVxuXG4gIGNvbnN0IHNlZ21lbnRzID0gWy4uLmluY29taW5nU2VnbWVudHNdXG5cbiAgLy8gUmV0cmlldmUgZmlyc3Qgc2VnbWVudCwgYW5kIHJlbW92ZSBmcm9tIHNlZ21lbnRzXG4gIGNvbnN0IGZpcnN0U2VnbWVudCA9IHNlZ21lbnRzLnNoaWZ0KClcblxuICAvLyBBdHRlbXB0IHRvIGZpbmQgYSBtYXRjaGVkIGZpZWxkXG4gIGNvbnN0IG1hdGNoZWRGaWVsZCA9IGZpZWxkcy5maW5kKFxuICAgIChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gZmlyc3RTZWdtZW50LFxuICApXG5cbiAgaWYgKG1hdGNoZWRGaWVsZCAmJiAhZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShtYXRjaGVkRmllbGQpKSB7XG4gICAgbGV0IG5leHRGaWVsZHM6IEZpZWxkW11cbiAgICBjb25zdCByZW1haW5pbmdTZWdtZW50cyA9IFsuLi5zZWdtZW50c11cbiAgICBsZXQgbG9jYWxpemVkU2VnbWVudCA9IG1hdGNoZWRGaWVsZC5uYW1lXG5cbiAgICBpZiAobWF0Y2hlZEZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIG5leHQgc2VnbWVudCBpcyBhIGxvY2FsZVxuICAgICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbmV4dFNlZ21lbnRJc0xvY2FsZSA9IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuaW5jbHVkZXMocmVtYWluaW5nU2VnbWVudHNbMF0pXG5cbiAgICAgICAgLy8gSWYgbmV4dCBzZWdtZW50IGlzIGxvY2FsZSwgcmVtb3ZlIGl0IGZyb20gcmVtYWluaW5nIHNlZ21lbnRzXG4gICAgICAgIC8vIGFuZCB1c2UgaXQgdG8gbG9jYWxpemUgdGhlIGN1cnJlbnQgc2VnbWVudFxuICAgICAgICBpZiAobmV4dFNlZ21lbnRJc0xvY2FsZSkge1xuICAgICAgICAgIGNvbnN0IG5leHRTZWdtZW50ID0gcmVtYWluaW5nU2VnbWVudHMuc2hpZnQoKVxuICAgICAgICAgIGxvY2FsaXplZFNlZ21lbnQgPSBgJHttYXRjaGVkRmllbGQubmFtZX0uJHtuZXh0U2VnbWVudH1gXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIG1vcmUgc2VnbWVudHMsIGJ1dCBmaWVsZCBpcyBsb2NhbGl6ZWQsIHVzZSBkZWZhdWx0IGxvY2FsZVxuICAgICAgICBsb2NhbGl6ZWRTZWdtZW50ID0gYCR7bWF0Y2hlZEZpZWxkLm5hbWV9LiR7bG9jYWxlfWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgc3ViZmllbGRzLCBwYXNzIHRoZW0gdGhyb3VnaFxuICAgIGlmIChcbiAgICAgIG1hdGNoZWRGaWVsZC50eXBlID09PSAndGFiJyB8fFxuICAgICAgbWF0Y2hlZEZpZWxkLnR5cGUgPT09ICdncm91cCcgfHxcbiAgICAgIG1hdGNoZWRGaWVsZC50eXBlID09PSAnYXJyYXknXG4gICAgKSB7XG4gICAgICBuZXh0RmllbGRzID0gbWF0Y2hlZEZpZWxkLmZpZWxkc1xuICAgIH1cblxuICAgIGlmIChtYXRjaGVkRmllbGQudHlwZSA9PT0gJ2Jsb2NrcycpIHtcbiAgICAgIG5leHRGaWVsZHMgPSBtYXRjaGVkRmllbGQuYmxvY2tzLnJlZHVjZSgoZmxhdHRlbmVkQmxvY2tGaWVsZHMsIGJsb2NrKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4uZmxhdHRlbmVkQmxvY2tGaWVsZHMsXG4gICAgICAgICAgLi4uYmxvY2suZmllbGRzLmZpbHRlcihcbiAgICAgICAgICAgIChibG9ja0ZpZWxkKSA9PlxuICAgICAgICAgICAgICAoZmllbGRBZmZlY3RzRGF0YShibG9ja0ZpZWxkKSAmJlxuICAgICAgICAgICAgICAgIGJsb2NrRmllbGQubmFtZSAhPT0gJ2Jsb2NrVHlwZScgJiZcbiAgICAgICAgICAgICAgICBibG9ja0ZpZWxkLm5hbWUgIT09ICdibG9ja05hbWUnKSB8fFxuICAgICAgICAgICAgICAhZmllbGRBZmZlY3RzRGF0YShibG9ja0ZpZWxkKSxcbiAgICAgICAgICApLFxuICAgICAgICBdXG4gICAgICB9LCBbXSlcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBpbmNvbWluZ1Jlc3VsdCA/IGAke2luY29taW5nUmVzdWx0fS4ke2xvY2FsaXplZFNlZ21lbnR9YCA6IGxvY2FsaXplZFNlZ21lbnRcblxuICAgIGlmIChuZXh0RmllbGRzKSB7XG4gICAgICByZXR1cm4gZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5KHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBmaWVsZHM6IG5leHRGaWVsZHMsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgICBzZWdtZW50czogcmVtYWluaW5nU2VnbWVudHMsXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHJldHVybiBpbmNvbWluZ1NlZ21lbnRzLmpvaW4oJy4nKVxufVxuIl0sIm5hbWVzIjpbImdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSIsImNvbmZpZyIsImZpZWxkcyIsImluY29taW5nRmllbGRzIiwibG9jYWxlIiwicmVzdWx0IiwiaW5jb21pbmdSZXN1bHQiLCJzZWdtZW50cyIsImluY29taW5nU2VnbWVudHMiLCJsb2NhbGl6YXRpb24iLCJqb2luIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwiZmlyc3RTZWdtZW50Iiwic2hpZnQiLCJtYXRjaGVkRmllbGQiLCJmaW5kIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJuZXh0RmllbGRzIiwicmVtYWluaW5nU2VnbWVudHMiLCJsb2NhbGl6ZWRTZWdtZW50IiwibG9jYWxpemVkIiwibGVuZ3RoIiwibmV4dFNlZ21lbnRJc0xvY2FsZSIsImxvY2FsZUNvZGVzIiwiaW5jbHVkZXMiLCJuZXh0U2VnbWVudCIsInR5cGUiLCJibG9ja3MiLCJyZWR1Y2UiLCJm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
66
+ //# sourceMappingURL=getLocalizedSortProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/getLocalizedSortProperty.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload/config'\nimport type { Field } from 'payload/types'\n\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types'\nimport { flattenTopLevelFields } from 'payload/utilities'\n\ntype Args = {\n config: SanitizedConfig\n fields: Field[]\n locale: string\n result?: string\n segments: string[]\n}\n\nexport const getLocalizedSortProperty = ({\n config,\n fields: incomingFields,\n locale,\n result: incomingResult,\n segments: incomingSegments,\n}: Args): string => {\n // If localization is not enabled, accept exactly\n // what is sent in\n if (!config.localization) {\n return incomingSegments.join('.')\n }\n\n // Flatten incoming fields (row, etc)\n const fields = flattenTopLevelFields(incomingFields)\n\n const segments = [...incomingSegments]\n\n // Retrieve first segment, and remove from segments\n const firstSegment = segments.shift()\n\n // Attempt to find a matched field\n const matchedField = fields.find(\n (field) => fieldAffectsData(field) && field.name === firstSegment,\n )\n\n if (matchedField && !fieldIsPresentationalOnly(matchedField)) {\n let nextFields: Field[]\n const remainingSegments = [...segments]\n let localizedSegment = matchedField.name\n\n if (matchedField.localized) {\n // Check to see if next segment is a locale\n if (segments.length > 0) {\n const nextSegmentIsLocale = config.localization.localeCodes.includes(remainingSegments[0])\n\n // If next segment is locale, remove it from remaining segments\n // and use it to localize the current segment\n if (nextSegmentIsLocale) {\n const nextSegment = remainingSegments.shift()\n localizedSegment = `${matchedField.name}.${nextSegment}`\n }\n } else {\n // If no more segments, but field is localized, use default locale\n localizedSegment = `${matchedField.name}.${locale}`\n }\n }\n\n // If there are subfields, pass them through\n if (\n matchedField.type === 'tab' ||\n matchedField.type === 'group' ||\n matchedField.type === 'array'\n ) {\n nextFields = matchedField.fields\n }\n\n if (matchedField.type === 'blocks') {\n nextFields = matchedField.blocks.reduce((flattenedBlockFields, block) => {\n return [\n ...flattenedBlockFields,\n ...block.fields.filter(\n (blockField) =>\n (fieldAffectsData(blockField) &&\n blockField.name !== 'blockType' &&\n blockField.name !== 'blockName') ||\n !fieldAffectsData(blockField),\n ),\n ]\n }, [])\n }\n\n const result = incomingResult ? `${incomingResult}.${localizedSegment}` : localizedSegment\n\n if (nextFields) {\n return getLocalizedSortProperty({\n config,\n fields: nextFields,\n locale,\n result,\n segments: remainingSegments,\n })\n }\n\n return result\n }\n\n return incomingSegments.join('.')\n}\n"],"names":["fieldAffectsData","fieldIsPresentationalOnly","flattenTopLevelFields","getLocalizedSortProperty","config","fields","incomingFields","locale","result","incomingResult","segments","incomingSegments","localization","join","firstSegment","shift","matchedField","find","field","name","nextFields","remainingSegments","localizedSegment","localized","length","nextSegmentIsLocale","localeCodes","includes","nextSegment","type","blocks","reduce","flattenedBlockFields","block","filter","blockField"],"mappings":"AAGA,SAASA,gBAAgB,EAAEC,yBAAyB,QAAQ,gBAAe;AAC3E,SAASC,qBAAqB,QAAQ,oBAAmB;AAUzD,OAAO,MAAMC,2BAA2B,CAAC,EACvCC,MAAM,EACNC,QAAQC,cAAc,EACtBC,MAAM,EACNC,QAAQC,cAAc,EACtBC,UAAUC,gBAAgB,EACrB;IACL,iDAAiD;IACjD,kBAAkB;IAClB,IAAI,CAACP,OAAOQ,YAAY,EAAE;QACxB,OAAOD,iBAAiBE,IAAI,CAAC;IAC/B;IAEA,qCAAqC;IACrC,MAAMR,SAASH,sBAAsBI;IAErC,MAAMI,WAAW;WAAIC;KAAiB;IAEtC,mDAAmD;IACnD,MAAMG,eAAeJ,SAASK,KAAK;IAEnC,kCAAkC;IAClC,MAAMC,eAAeX,OAAOY,IAAI,CAC9B,CAACC,QAAUlB,iBAAiBkB,UAAUA,MAAMC,IAAI,KAAKL;IAGvD,IAAIE,gBAAgB,CAACf,0BAA0Be,eAAe;QAC5D,IAAII;QACJ,MAAMC,oBAAoB;eAAIX;SAAS;QACvC,IAAIY,mBAAmBN,aAAaG,IAAI;QAExC,IAAIH,aAAaO,SAAS,EAAE;YAC1B,2CAA2C;YAC3C,IAAIb,SAASc,MAAM,GAAG,GAAG;gBACvB,MAAMC,sBAAsBrB,OAAOQ,YAAY,CAACc,WAAW,CAACC,QAAQ,CAACN,iBAAiB,CAAC,EAAE;gBAEzF,+DAA+D;gBAC/D,6CAA6C;gBAC7C,IAAII,qBAAqB;oBACvB,MAAMG,cAAcP,kBAAkBN,KAAK;oBAC3CO,mBAAmB,CAAC,EAAEN,aAAaG,IAAI,CAAC,CAAC,EAAES,YAAY,CAAC;gBAC1D;YACF,OAAO;gBACL,kEAAkE;gBAClEN,mBAAmB,CAAC,EAAEN,aAAaG,IAAI,CAAC,CAAC,EAAEZ,OAAO,CAAC;YACrD;QACF;QAEA,4CAA4C;QAC5C,IACES,aAAaa,IAAI,KAAK,SACtBb,aAAaa,IAAI,KAAK,WACtBb,aAAaa,IAAI,KAAK,SACtB;YACAT,aAAaJ,aAAaX,MAAM;QAClC;QAEA,IAAIW,aAAaa,IAAI,KAAK,UAAU;YAClCT,aAAaJ,aAAac,MAAM,CAACC,MAAM,CAAC,CAACC,sBAAsBC;gBAC7D,OAAO;uBACFD;uBACAC,MAAM5B,MAAM,CAAC6B,MAAM,CACpB,CAACC,aACC,AAACnC,iBAAiBmC,eAChBA,WAAWhB,IAAI,KAAK,eACpBgB,WAAWhB,IAAI,KAAK,eACtB,CAACnB,iBAAiBmC;iBAEvB;YACH,GAAG,EAAE;QACP;QAEA,MAAM3B,SAASC,iBAAiB,CAAC,EAAEA,eAAe,CAAC,EAAEa,iBAAiB,CAAC,GAAGA;QAE1E,IAAIF,YAAY;YACd,OAAOjB,yBAAyB;gBAC9BC;gBACAC,QAAQe;gBACRb;gBACAC;gBACAE,UAAUW;YACZ;QACF;QAEA,OAAOb;IACT;IAEA,OAAOG,iBAAiBE,IAAI,CAAC;AAC/B,EAAC"}
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _config = require("payload/config");
6
- const _getLocalizedSortProperty = require("./getLocalizedSortProperty");
1
+ import { sanitizeConfig } from 'payload/config';
2
+ import { getLocalizedSortProperty } from './getLocalizedSortProperty.js';
7
3
  const config = {
8
4
  localization: {
9
5
  locales: [
@@ -14,11 +10,11 @@ const config = {
14
10
  };
15
11
  describe('get localized sort property', ()=>{
16
12
  it('passes through a non-localized sort property', ()=>{
17
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
13
+ const result = getLocalizedSortProperty({
18
14
  segments: [
19
15
  'title'
20
16
  ],
21
- config: (0, _config.sanitizeConfig)(config),
17
+ config: sanitizeConfig(config),
22
18
  fields: [
23
19
  {
24
20
  name: 'title',
@@ -30,11 +26,11 @@ describe('get localized sort property', ()=>{
30
26
  expect(result).toStrictEqual('title');
31
27
  });
32
28
  it('properly localizes an un-localized sort property', ()=>{
33
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
29
+ const result = getLocalizedSortProperty({
34
30
  segments: [
35
31
  'title'
36
32
  ],
37
- config: (0, _config.sanitizeConfig)(config),
33
+ config: sanitizeConfig(config),
38
34
  fields: [
39
35
  {
40
36
  name: 'title',
@@ -47,12 +43,12 @@ describe('get localized sort property', ()=>{
47
43
  expect(result).toStrictEqual('title.en');
48
44
  });
49
45
  it('keeps specifically asked-for localized sort properties', ()=>{
50
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
46
+ const result = getLocalizedSortProperty({
51
47
  segments: [
52
48
  'title',
53
49
  'es'
54
50
  ],
55
- config: (0, _config.sanitizeConfig)(config),
51
+ config: sanitizeConfig(config),
56
52
  fields: [
57
53
  {
58
54
  name: 'title',
@@ -65,12 +61,12 @@ describe('get localized sort property', ()=>{
65
61
  expect(result).toStrictEqual('title.es');
66
62
  });
67
63
  it('properly localizes nested sort properties', ()=>{
68
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
64
+ const result = getLocalizedSortProperty({
69
65
  segments: [
70
66
  'group',
71
67
  'title'
72
68
  ],
73
- config: (0, _config.sanitizeConfig)(config),
69
+ config: sanitizeConfig(config),
74
70
  fields: [
75
71
  {
76
72
  name: 'group',
@@ -89,13 +85,13 @@ describe('get localized sort property', ()=>{
89
85
  expect(result).toStrictEqual('group.title.en');
90
86
  });
91
87
  it('keeps requested locale with nested sort properties', ()=>{
92
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
88
+ const result = getLocalizedSortProperty({
93
89
  segments: [
94
90
  'group',
95
91
  'title',
96
92
  'es'
97
93
  ],
98
- config: (0, _config.sanitizeConfig)(config),
94
+ config: sanitizeConfig(config),
99
95
  fields: [
100
96
  {
101
97
  name: 'group',
@@ -114,11 +110,11 @@ describe('get localized sort property', ()=>{
114
110
  expect(result).toStrictEqual('group.title.es');
115
111
  });
116
112
  it('properly localizes field within row', ()=>{
117
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
113
+ const result = getLocalizedSortProperty({
118
114
  segments: [
119
115
  'title'
120
116
  ],
121
- config: (0, _config.sanitizeConfig)(config),
117
+ config: sanitizeConfig(config),
122
118
  fields: [
123
119
  {
124
120
  type: 'row',
@@ -136,12 +132,12 @@ describe('get localized sort property', ()=>{
136
132
  expect(result).toStrictEqual('title.en');
137
133
  });
138
134
  it('properly localizes field within named tab', ()=>{
139
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
135
+ const result = getLocalizedSortProperty({
140
136
  segments: [
141
137
  'tab',
142
138
  'title'
143
139
  ],
144
- config: (0, _config.sanitizeConfig)(config),
140
+ config: sanitizeConfig(config),
145
141
  fields: [
146
142
  {
147
143
  type: 'tabs',
@@ -164,11 +160,11 @@ describe('get localized sort property', ()=>{
164
160
  expect(result).toStrictEqual('tab.title.en');
165
161
  });
166
162
  it('properly localizes field within unnamed tab', ()=>{
167
- const result = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
163
+ const result = getLocalizedSortProperty({
168
164
  segments: [
169
165
  'title'
170
166
  ],
171
- config: (0, _config.sanitizeConfig)(config),
167
+ config: sanitizeConfig(config),
172
168
  fields: [
173
169
  {
174
170
  type: 'tabs',
@@ -192,4 +188,4 @@ describe('get localized sort property', ()=>{
192
188
  });
193
189
  });
194
190
 
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2dldExvY2FsaXplZFNvcnRQcm9wZXJ0eS5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNhbml0aXplQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB7IGdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5J1xuXG5jb25zdCBjb25maWcgPSB7XG4gIGxvY2FsaXphdGlvbjoge1xuICAgIGxvY2FsZXM6IFsnZW4nLCAnZXMnXSxcbiAgfSxcbn0gYXMgQ29uZmlnXG5cbmRlc2NyaWJlKCdnZXQgbG9jYWxpemVkIHNvcnQgcHJvcGVydHknLCAoKSA9PiB7XG4gIGl0KCdwYXNzZXMgdGhyb3VnaCBhIG5vbi1sb2NhbGl6ZWQgc29ydCBwcm9wZXJ0eScsICgpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBnZXRMb2NhbGl6ZWRTb3J0UHJvcGVydHkoe1xuICAgICAgc2VnbWVudHM6IFsndGl0bGUnXSxcbiAgICAgIGNvbmZpZzogc2FuaXRpemVDb25maWcoY29uZmlnKSxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbG9jYWxlOiAnZW4nLFxuICAgIH0pXG5cbiAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKCd0aXRsZScpXG4gIH0pXG5cbiAgaXQoJ3Byb3Blcmx5IGxvY2FsaXplcyBhbiB1bi1sb2NhbGl6ZWQgc29ydCBwcm9wZXJ0eScsICgpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBnZXRMb2NhbGl6ZWRTb3J0UHJvcGVydHkoe1xuICAgICAgc2VnbWVudHM6IFsndGl0bGUnXSxcbiAgICAgIGNvbmZpZzogc2FuaXRpemVDb25maWcoY29uZmlnKSxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGxvY2FsZTogJ2VuJyxcbiAgICB9KVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCgndGl0bGUuZW4nKVxuICB9KVxuXG4gIGl0KCdrZWVwcyBzcGVjaWZpY2FsbHkgYXNrZWQtZm9yIGxvY2FsaXplZCBzb3J0IHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5KHtcbiAgICAgIHNlZ21lbnRzOiBbJ3RpdGxlJywgJ2VzJ10sXG4gICAgICBjb25maWc6IHNhbml0aXplQ29uZmlnKGNvbmZpZyksXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBsb2NhbGU6ICdlbicsXG4gICAgfSlcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvU3RyaWN0RXF1YWwoJ3RpdGxlLmVzJylcbiAgfSlcblxuICBpdCgncHJvcGVybHkgbG9jYWxpemVzIG5lc3RlZCBzb3J0IHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5KHtcbiAgICAgIHNlZ21lbnRzOiBbJ2dyb3VwJywgJ3RpdGxlJ10sXG4gICAgICBjb25maWc6IHNhbml0aXplQ29uZmlnKGNvbmZpZyksXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdncm91cCcsXG4gICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbG9jYWxlOiAnZW4nLFxuICAgIH0pXG5cbiAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKCdncm91cC50aXRsZS5lbicpXG4gIH0pXG5cbiAgaXQoJ2tlZXBzIHJlcXVlc3RlZCBsb2NhbGUgd2l0aCBuZXN0ZWQgc29ydCBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSh7XG4gICAgICBzZWdtZW50czogWydncm91cCcsICd0aXRsZScsICdlcyddLFxuICAgICAgY29uZmlnOiBzYW5pdGl6ZUNvbmZpZyhjb25maWcpLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnZ3JvdXAnLFxuICAgICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGxvY2FsZTogJ2VuJyxcbiAgICB9KVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCgnZ3JvdXAudGl0bGUuZXMnKVxuICB9KVxuXG4gIGl0KCdwcm9wZXJseSBsb2NhbGl6ZXMgZmllbGQgd2l0aGluIHJvdycsICgpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBnZXRMb2NhbGl6ZWRTb3J0UHJvcGVydHkoe1xuICAgICAgc2VnbWVudHM6IFsndGl0bGUnXSxcbiAgICAgIGNvbmZpZzogc2FuaXRpemVDb25maWcoY29uZmlnKSxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3JvdycsXG4gICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGxvY2FsZTogJ2VuJyxcbiAgICB9KVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCgndGl0bGUuZW4nKVxuICB9KVxuXG4gIGl0KCdwcm9wZXJseSBsb2NhbGl6ZXMgZmllbGQgd2l0aGluIG5hbWVkIHRhYicsICgpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBnZXRMb2NhbGl6ZWRTb3J0UHJvcGVydHkoe1xuICAgICAgc2VnbWVudHM6IFsndGFiJywgJ3RpdGxlJ10sXG4gICAgICBjb25maWc6IHNhbml0aXplQ29uZmlnKGNvbmZpZyksXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICd0YWJzJyxcbiAgICAgICAgICB0YWJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0YWInLFxuICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgbG9jYWxlOiAnZW4nLFxuICAgIH0pXG5cbiAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKCd0YWIudGl0bGUuZW4nKVxuICB9KVxuXG4gIGl0KCdwcm9wZXJseSBsb2NhbGl6ZXMgZmllbGQgd2l0aGluIHVubmFtZWQgdGFiJywgKCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSh7XG4gICAgICBzZWdtZW50czogWyd0aXRsZSddLFxuICAgICAgY29uZmlnOiBzYW5pdGl6ZUNvbmZpZyhjb25maWcpLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGFicycsXG4gICAgICAgICAgdGFiczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ1RhYicsXG4gICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBsb2NhbGU6ICdlbicsXG4gICAgfSlcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvU3RyaWN0RXF1YWwoJ3RpdGxlLmVuJylcbiAgfSlcbn0pXG4iXSwibmFtZXMiOlsiY29uZmlnIiwibG9jYWxpemF0aW9uIiwibG9jYWxlcyIsImRlc2NyaWJlIiwiaXQiLCJyZXN1bHQiLCJnZXRMb2NhbGl6ZWRTb3J0UHJvcGVydHkiLCJzZWdtZW50cyIsInNhbml0aXplQ29uZmlnIiwiZmllbGRzIiwibmFtZSIsInR5cGUi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
191
+ //# sourceMappingURL=getLocalizedSortProperty.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/getLocalizedSortProperty.spec.ts"],"sourcesContent":["import { sanitizeConfig } from 'payload/config'\nimport { Config } from 'payload/config'\nimport { getLocalizedSortProperty } from './getLocalizedSortProperty.js'\n\nconst config = {\n localization: {\n locales: ['en', 'es'],\n },\n} as Config\n\ndescribe('get localized sort property', () => {\n it('passes through a non-localized sort property', () => {\n const result = getLocalizedSortProperty({\n segments: ['title'],\n config: sanitizeConfig(config),\n fields: [\n {\n name: 'title',\n type: 'text',\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('title')\n })\n\n it('properly localizes an un-localized sort property', () => {\n const result = getLocalizedSortProperty({\n segments: ['title'],\n config: sanitizeConfig(config),\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('title.en')\n })\n\n it('keeps specifically asked-for localized sort properties', () => {\n const result = getLocalizedSortProperty({\n segments: ['title', 'es'],\n config: sanitizeConfig(config),\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('title.es')\n })\n\n it('properly localizes nested sort properties', () => {\n const result = getLocalizedSortProperty({\n segments: ['group', 'title'],\n config: sanitizeConfig(config),\n fields: [\n {\n name: 'group',\n type: 'group',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('group.title.en')\n })\n\n it('keeps requested locale with nested sort properties', () => {\n const result = getLocalizedSortProperty({\n segments: ['group', 'title', 'es'],\n config: sanitizeConfig(config),\n fields: [\n {\n name: 'group',\n type: 'group',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('group.title.es')\n })\n\n it('properly localizes field within row', () => {\n const result = getLocalizedSortProperty({\n segments: ['title'],\n config: sanitizeConfig(config),\n fields: [\n {\n type: 'row',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('title.en')\n })\n\n it('properly localizes field within named tab', () => {\n const result = getLocalizedSortProperty({\n segments: ['tab', 'title'],\n config: sanitizeConfig(config),\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'tab',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('tab.title.en')\n })\n\n it('properly localizes field within unnamed tab', () => {\n const result = getLocalizedSortProperty({\n segments: ['title'],\n config: sanitizeConfig(config),\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'Tab',\n fields: [\n {\n name: 'title',\n type: 'text',\n localized: true,\n },\n ],\n },\n ],\n },\n ],\n locale: 'en',\n })\n\n expect(result).toStrictEqual('title.en')\n })\n})\n"],"names":["sanitizeConfig","getLocalizedSortProperty","config","localization","locales","describe","it","result","segments","fields","name","type","locale","expect","toStrictEqual","localized","tabs","label"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
1
 
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
2
+ //# sourceMappingURL=mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/mock.js"],"names":[],"mappings":""}
@@ -1,14 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "operatorMap", {
6
- enumerable: true,
7
- get: function() {
8
- return operatorMap;
9
- }
10
- });
11
- const operatorMap = {
1
+ export const operatorMap = {
12
2
  all: '$all',
13
3
  equals: '$eq',
14
4
  exists: '$exists',
@@ -24,4 +14,4 @@ const operatorMap = {
24
14
  within: '$geoWithin'
25
15
  };
26
16
 
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL29wZXJhdG9yTWFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBvcGVyYXRvck1hcCA9IHtcbiAgYWxsOiAnJGFsbCcsXG4gIGVxdWFsczogJyRlcScsXG4gIGV4aXN0czogJyRleGlzdHMnLFxuICBncmVhdGVyX3RoYW46ICckZ3QnLFxuICBncmVhdGVyX3RoYW5fZXF1YWw6ICckZ3RlJyxcbiAgaW46ICckaW4nLFxuICBpbnRlcnNlY3RzOiAnJGdlb0ludGVyc2VjdHMnLFxuICBsZXNzX3RoYW46ICckbHQnLFxuICBsZXNzX3RoYW5fZXF1YWw6ICckbHRlJyxcbiAgbmVhcjogJyRuZWFyJyxcbiAgbm90X2VxdWFsczogJyRuZScsXG4gIG5vdF9pbjogJyRuaW4nLFxuICB3aXRoaW46ICckZ2VvV2l0aGluJyxcbn1cbiJdLCJuYW1lcyI6WyJvcGVyYXRvck1hcCIsImFsbCIsImVxdWFscyIsImV4aXN0cyIsImdyZWF0ZXJfdGhhbiIsImdyZWF0ZXJfdGhhbl9lcXVhbCIsImluIiwiaW50ZXJzZWN0cyIsImxlc3NfdGhhbiIsImxlc3NfdGhhbl9lcXVhbCIsIm5lYXIiLCJub3RfZXF1YWxzIiwibm90X2luIiwid2l0aGluIl0sIm1hcHBpbmdzIjoiOzs7OytCQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxjQUFjO0lBQ3pCQyxLQUFLO0lBQ0xDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxjQUFjO0lBQ2RDLG9CQUFvQjtJQUNwQkMsSUFBSTtJQUNKQyxZQUFZO0lBQ1pDLFdBQVc7SUFDWEMsaUJBQWlCO0lBQ2pCQyxNQUFNO0lBQ05DLFlBQVk7SUFDWkMsUUFBUTtJQUNSQyxRQUFRO0FBQ1YifQ==
17
+ //# sourceMappingURL=operatorMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/operatorMap.ts"],"sourcesContent":["export const operatorMap = {\n all: '$all',\n equals: '$eq',\n exists: '$exists',\n greater_than: '$gt',\n greater_than_equal: '$gte',\n in: '$in',\n intersects: '$geoIntersects',\n less_than: '$lt',\n less_than_equal: '$lte',\n near: '$near',\n not_equals: '$ne',\n not_in: '$nin',\n within: '$geoWithin',\n}\n"],"names":["operatorMap","all","equals","exists","greater_than","greater_than_equal","in","intersects","less_than","less_than_equal","near","not_equals","not_in","within"],"mappings":"AAAA,OAAO,MAAMA,cAAc;IACzBC,KAAK;IACLC,QAAQ;IACRC,QAAQ;IACRC,cAAc;IACdC,oBAAoB;IACpBC,IAAI;IACJC,YAAY;IACZC,WAAW;IACXC,iBAAiB;IACjBC,MAAM;IACNC,YAAY;IACZC,QAAQ;IACRC,QAAQ;AACV,EAAC"}