@payloadcms/db-mongodb 1.0.0-beta.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 (124) hide show
  1. package/dist/connect.d.ts +3 -0
  2. package/dist/connect.d.ts.map +1 -0
  3. package/dist/connect.js +63 -0
  4. package/dist/create.d.ts +3 -0
  5. package/dist/create.d.ts.map +1 -0
  6. package/dist/create.js +29 -0
  7. package/dist/createGlobal.d.ts +3 -0
  8. package/dist/createGlobal.d.ts.map +1 -0
  9. package/dist/createGlobal.js +35 -0
  10. package/dist/createGlobalVersion.d.ts +3 -0
  11. package/dist/createGlobalVersion.d.ts.map +1 -0
  12. package/dist/createGlobalVersion.js +58 -0
  13. package/dist/createVersion.d.ts +3 -0
  14. package/dist/createVersion.d.ts.map +1 -0
  15. package/dist/createVersion.js +58 -0
  16. package/dist/deleteMany.d.ts +3 -0
  17. package/dist/deleteMany.d.ts.map +1 -0
  18. package/dist/deleteMany.js +25 -0
  19. package/dist/deleteOne.d.ts +3 -0
  20. package/dist/deleteOne.d.ts.map +1 -0
  21. package/dist/deleteOne.js +33 -0
  22. package/dist/deleteVersions.d.ts +3 -0
  23. package/dist/deleteVersions.d.ts.map +1 -0
  24. package/dist/deleteVersions.js +26 -0
  25. package/dist/destroy.d.ts +3 -0
  26. package/dist/destroy.d.ts.map +1 -0
  27. package/dist/destroy.js +27 -0
  28. package/dist/find.d.ts +3 -0
  29. package/dist/find.d.ts.map +1 -0
  30. package/dist/find.js +71 -0
  31. package/dist/findGlobal.d.ts +3 -0
  32. package/dist/findGlobal.d.ts.map +1 -0
  33. package/dist/findGlobal.js +48 -0
  34. package/dist/findGlobalVersions.d.ts +3 -0
  35. package/dist/findGlobalVersions.d.ts.map +1 -0
  36. package/dist/findGlobalVersions.js +78 -0
  37. package/dist/findOne.d.ts +3 -0
  38. package/dist/findOne.d.ts.map +1 -0
  39. package/dist/findOne.js +40 -0
  40. package/dist/findVersions.d.ts +3 -0
  41. package/dist/findVersions.d.ts.map +1 -0
  42. package/dist/findVersions.js +77 -0
  43. package/dist/index.d.ts +34 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +91 -0
  46. package/dist/init.d.ts +3 -0
  47. package/dist/init.d.ts.map +1 -0
  48. package/dist/init.js +98 -0
  49. package/dist/mock.js +13 -0
  50. package/dist/models/buildCollectionSchema.d.ts +6 -0
  51. package/dist/models/buildCollectionSchema.d.ts.map +1 -0
  52. package/dist/models/buildCollectionSchema.js +51 -0
  53. package/dist/models/buildGlobalModel.d.ts +4 -0
  54. package/dist/models/buildGlobalModel.d.ts.map +1 -0
  55. package/dist/models/buildGlobalModel.js +41 -0
  56. package/dist/models/buildSchema.d.ts +14 -0
  57. package/dist/models/buildSchema.d.ts.map +1 -0
  58. package/dist/models/buildSchema.js +438 -0
  59. package/dist/queries/buildAndOrConditions.d.ts +11 -0
  60. package/dist/queries/buildAndOrConditions.d.ts.map +1 -0
  61. package/dist/queries/buildAndOrConditions.js +37 -0
  62. package/dist/queries/buildQuery.d.ts +15 -0
  63. package/dist/queries/buildQuery.d.ts.map +1 -0
  64. package/dist/queries/buildQuery.js +49 -0
  65. package/dist/queries/buildSearchParams.d.ts +21 -0
  66. package/dist/queries/buildSearchParams.d.ts.map +1 -0
  67. package/dist/queries/buildSearchParams.js +219 -0
  68. package/dist/queries/buildSortParam.d.ts +18 -0
  69. package/dist/queries/buildSortParam.d.ts.map +1 -0
  70. package/dist/queries/buildSortParam.js +42 -0
  71. package/dist/queries/getLocalizedSortProperty.d.ts +12 -0
  72. package/dist/queries/getLocalizedSortProperty.d.ts.map +1 -0
  73. package/dist/queries/getLocalizedSortProperty.js +76 -0
  74. package/dist/queries/getLocalizedSortProperty.spec.js +195 -0
  75. package/dist/queries/mock.js +3 -0
  76. package/dist/queries/operatorMap.d.ts +16 -0
  77. package/dist/queries/operatorMap.d.ts.map +1 -0
  78. package/dist/queries/operatorMap.js +27 -0
  79. package/dist/queries/parseParams.d.ts +12 -0
  80. package/dist/queries/parseParams.d.ts.map +1 -0
  81. package/dist/queries/parseParams.js +80 -0
  82. package/dist/queries/sanitizeQueryValue.d.ts +11 -0
  83. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -0
  84. package/dist/queries/sanitizeQueryValue.js +128 -0
  85. package/dist/queryDrafts.d.ts +3 -0
  86. package/dist/queryDrafts.d.ts.map +1 -0
  87. package/dist/queryDrafts.js +82 -0
  88. package/dist/testCredentials.d.ts +8 -0
  89. package/dist/testCredentials.d.ts.map +1 -0
  90. package/dist/testCredentials.js +30 -0
  91. package/dist/transactions/beginTransaction.d.ts +3 -0
  92. package/dist/transactions/beginTransaction.d.ts.map +1 -0
  93. package/dist/transactions/beginTransaction.js +38 -0
  94. package/dist/transactions/commitTransaction.d.ts +3 -0
  95. package/dist/transactions/commitTransaction.d.ts.map +1 -0
  96. package/dist/transactions/commitTransaction.js +24 -0
  97. package/dist/transactions/rollbackTransaction.d.ts +3 -0
  98. package/dist/transactions/rollbackTransaction.d.ts.map +1 -0
  99. package/dist/transactions/rollbackTransaction.js +21 -0
  100. package/dist/types.d.ts +70 -0
  101. package/dist/types.d.ts.map +1 -0
  102. package/dist/types.js +6 -0
  103. package/dist/updateGlobal.d.ts +3 -0
  104. package/dist/updateGlobal.d.ts.map +1 -0
  105. package/dist/updateGlobal.js +36 -0
  106. package/dist/updateGlobalVersion.d.ts +5 -0
  107. package/dist/updateGlobalVersion.d.ts.map +1 -0
  108. package/dist/updateGlobalVersion.js +35 -0
  109. package/dist/updateOne.d.ts +3 -0
  110. package/dist/updateOne.d.ts.map +1 -0
  111. package/dist/updateOne.js +55 -0
  112. package/dist/updateVersion.d.ts +3 -0
  113. package/dist/updateVersion.d.ts.map +1 -0
  114. package/dist/updateVersion.js +35 -0
  115. package/dist/utilities/sanitizeInternalFields.d.ts +3 -0
  116. package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -0
  117. package/dist/utilities/sanitizeInternalFields.js +31 -0
  118. package/dist/webpack.d.ts +3 -0
  119. package/dist/webpack.d.ts.map +1 -0
  120. package/dist/webpack.js +30 -0
  121. package/dist/withSession.d.ts +10 -0
  122. package/dist/withSession.d.ts.map +1 -0
  123. package/dist/withSession.js +17 -0
  124. package/package.json +43 -0
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _errors = require("payload/errors");
12
+ const _parseParams = require("./parseParams");
13
+ // This plugin asynchronously builds a list of Mongoose query constraints
14
+ // which can then be used in subsequent Mongoose queries.
15
+ const getBuildQueryPlugin = ({ collectionSlug, versionsFields } = {})=>{
16
+ return function buildQueryPlugin(schema) {
17
+ const modifiedSchema = schema;
18
+ async function buildQuery({ globalSlug, locale, payload, where }) {
19
+ let fields = versionsFields;
20
+ if (!fields) {
21
+ if (globalSlug) {
22
+ const globalConfig = payload.globals.config.find(({ slug })=>slug === globalSlug);
23
+ fields = globalConfig.fields;
24
+ }
25
+ if (collectionSlug) {
26
+ const collectionConfig = payload.collections[collectionSlug].config;
27
+ fields = collectionConfig.fields;
28
+ }
29
+ }
30
+ const errors = [];
31
+ const result = await (0, _parseParams.parseParams)({
32
+ collectionSlug,
33
+ fields,
34
+ globalSlug,
35
+ locale,
36
+ payload,
37
+ where
38
+ });
39
+ if (errors.length > 0) {
40
+ throw new _errors.QueryError(errors);
41
+ }
42
+ return result;
43
+ }
44
+ modifiedSchema.statics.buildQuery = buildQuery;
45
+ };
46
+ };
47
+ const _default = getBuildQueryPlugin;
48
+
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuXG5pbXBvcnQgeyBwYXJzZVBhcmFtcyB9IGZyb20gJy4vcGFyc2VQYXJhbXMnXG5cbnR5cGUgR2V0QnVpbGRRdWVyeVBsdWdpbkFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25TbHVnPzogc3RyaW5nXG4gIHZlcnNpb25zRmllbGRzPzogRmllbGRbXVxufVxuXG5leHBvcnQgdHlwZSBCdWlsZFF1ZXJ5QXJncyA9IHtcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgcGF5bG9hZDogUGF5bG9hZFxuICB3aGVyZTogV2hlcmVcbn1cblxuLy8gVGhpcyBwbHVnaW4gYXN5bmNocm9ub3VzbHkgYnVpbGRzIGEgbGlzdCBvZiBNb25nb29zZSBxdWVyeSBjb25zdHJhaW50c1xuLy8gd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCBpbiBzdWJzZXF1ZW50IE1vbmdvb3NlIHF1ZXJpZXMuXG5jb25zdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luID0gKHsgY29sbGVjdGlvblNsdWcsIHZlcnNpb25zRmllbGRzIH06IEdldEJ1aWxkUXVlcnlQbHVnaW5BcmdzID0ge30pID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGJ1aWxkUXVlcnlQbHVnaW4oc2NoZW1hKSB7XG4gICAgY29uc3QgbW9kaWZpZWRTY2hlbWEgPSBzY2hlbWFcbiAgICBhc3luYyBmdW5jdGlvbiBidWlsZFF1ZXJ5KHtcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBsb2NhbGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgd2hlcmUsXG4gICAgfTogQnVpbGRRdWVyeUFyZ3MpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgICBsZXQgZmllbGRzID0gdmVyc2lvbnNGaWVsZHNcbiAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmIChnbG9iYWxTbHVnKSB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gcGF5bG9hZC5nbG9iYWxzLmNvbmZpZy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gZ2xvYmFsU2x1ZylcbiAgICAgICAgICBmaWVsZHMgPSBnbG9iYWxDb25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbGxlY3Rpb25TbHVnKSB7XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkNvbmZpZyA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvblNsdWddLmNvbmZpZ1xuICAgICAgICAgIGZpZWxkcyA9IGNvbGxlY3Rpb25Db25maWcuZmllbGRzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJzZVBhcmFtcyh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHMsXG4gICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgd2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoZXJyb3JzKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIG1vZGlmaWVkU2NoZW1hLnN0YXRpY3MuYnVpbGRRdWVyeSA9IGJ1aWxkUXVlcnlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRCdWlsZFF1ZXJ5UGx1Z2luXG4iXSwibmFtZXMiOlsiZ2V0QnVpbGRRdWVyeVBsdWdpbiIsImNvbGxlY3Rpb25TbHVnIiwidmVyc2lvbnNGaWVsZHMiLCJidWlsZFF1ZXJ5UGx1Z2luIiwic2NoZW1hIiwibW9kaWZpZWRTY2hlbWEiLCJidWlsZFF1ZXJ5IiwiZ2xvYmFsU2x1ZyIsImxvY2FsZSIsInBheWxvYWQiLCJ3aGVyZSIsImZpZWxkcyIsImdsb2JhbENvbmZpZyIsImdsb2JhbHMiLCJjb25maWciLCJmaW5kIiwic2x1ZyIsImNvbGxlY3Rpb25Db25maWciLCJjb2xsZWN0aW9ucyIsImVycm9ycyIsInJlc3VsdCIsInBhcnNlUGFyYW1zIiwibGVuZ3RoIiwiUXVlcnlFcnJvciIsInN0YXRpY3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBNkRBOzs7ZUFBQTs7O3dCQTFEMkI7NkJBRUM7QUFjNUIseUVBQXlFO0FBQ3pFLHlEQUF5RDtBQUN6RCxNQUFNQSxzQkFBc0IsQ0FBQyxFQUFFQyxjQUFjLEVBQUVDLGNBQWMsRUFBMkIsR0FBRyxDQUFDLENBQUM7SUFDM0YsT0FBTyxTQUFTQyxpQkFBaUJDLE1BQU07UUFDckMsTUFBTUMsaUJBQWlCRDtRQUN2QixlQUFlRSxXQUFXLEVBQ3hCQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxLQUFLLEVBQ1U7WUFDZixJQUFJQyxTQUFTVDtZQUNiLElBQUksQ0FBQ1MsUUFBUTtnQkFDWCxJQUFJSixZQUFZO29CQUNkLE1BQU1LLGVBQWVILFFBQVFJLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxFQUFFQyxJQUFJLEVBQUUsR0FBS0EsU0FBU1Q7b0JBQ3hFSSxTQUFTQyxhQUFhRCxNQUFNO2dCQUM5QjtnQkFDQSxJQUFJVixnQkFBZ0I7b0JBQ2xCLE1BQU1nQixtQkFBbUJSLFFBQVFTLFdBQVcsQ0FBQ2pCLGVBQWUsQ0FBQ2EsTUFBTTtvQkFDbkVILFNBQVNNLGlCQUFpQk4sTUFBTTtnQkFDbEM7WUFDRjtZQUNBLE1BQU1RLFNBQVMsRUFBRTtZQUNqQixNQUFNQyxTQUFTLE1BQU1DLElBQUFBLHdCQUFXLEVBQUM7Z0JBQy9CcEI7Z0JBQ0FVO2dCQUNBSjtnQkFDQUM7Z0JBQ0FDO2dCQUNBQztZQUNGO1lBRUEsSUFBSVMsT0FBT0csTUFBTSxHQUFHLEdBQUc7Z0JBQ3JCLE1BQU0sSUFBSUMsa0JBQVUsQ0FBQ0o7WUFDdkI7WUFFQSxPQUFPQztRQUNUO1FBQ0FmLGVBQWVtQixPQUFPLENBQUNsQixVQUFVLEdBQUdBO0lBQ3RDO0FBQ0Y7TUFFQSxXQUFlTiJ9
@@ -0,0 +1,21 @@
1
+ import type { Payload } from 'payload';
2
+ import type { Field } from 'payload/types';
3
+ type SearchParam = {
4
+ path?: string;
5
+ value: unknown;
6
+ };
7
+ /**
8
+ * Convert the Payload key / value / operator into a MongoDB query
9
+ */
10
+ export declare function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPath, locale, operator, payload, val, }: {
11
+ collectionSlug?: string;
12
+ fields: Field[];
13
+ globalSlug?: string;
14
+ incomingPath: string;
15
+ locale?: string;
16
+ operator: string;
17
+ payload: Payload;
18
+ val: unknown;
19
+ }): Promise<SearchParam>;
20
+ export {};
21
+ //# sourceMappingURL=buildSearchParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSearchParams.d.ts","sourceRoot":"","sources":["../../src/queries/buildSearchParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAc1C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAOD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,cAAc,EACd,MAAM,EACN,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,GAAG,GACJ,EAAE;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb,GAAG,OAAO,CAAC,WAAW,CAAC,CAuNvB"}
@@ -0,0 +1,219 @@
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
+ }
22
+ const subQueryOptions = {
23
+ lean: true,
24
+ limit: 50
25
+ };
26
+ async function buildSearchParam({ collectionSlug, fields, globalSlug, incomingPath, locale, operator, payload, val }) {
27
+ // Replace GraphQL nested field double underscore formatting
28
+ let sanitizedPath = incomingPath.replace(/__/g, '.');
29
+ if (sanitizedPath === 'id') sanitizedPath = '_id';
30
+ let paths = [];
31
+ let hasCustomID = false;
32
+ if (sanitizedPath === '_id') {
33
+ const customIDfield = payload.collections[collectionSlug]?.config.fields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
34
+ let idFieldType = 'text';
35
+ if (customIDfield) {
36
+ if (customIDfield?.type === 'text' || customIDfield?.type === 'number') {
37
+ idFieldType = customIDfield.type;
38
+ }
39
+ hasCustomID = true;
40
+ }
41
+ paths.push({
42
+ collectionSlug,
43
+ complete: true,
44
+ field: {
45
+ name: 'id',
46
+ type: idFieldType
47
+ },
48
+ path: '_id'
49
+ });
50
+ } else {
51
+ paths = await (0, _database.getLocalizedPaths)({
52
+ collectionSlug,
53
+ fields,
54
+ globalSlug,
55
+ incomingPath: sanitizedPath,
56
+ locale,
57
+ payload
58
+ });
59
+ }
60
+ const [{ field, path }] = paths;
61
+ if (path) {
62
+ const formattedValue = (0, _sanitizeQueryValue.sanitizeQueryValue)({
63
+ field,
64
+ hasCustomID,
65
+ operator,
66
+ path,
67
+ val
68
+ });
69
+ // If there are multiple collections to search through,
70
+ // Recursively build up a list of query constraints
71
+ if (paths.length > 1) {
72
+ // Remove top collection and reverse array
73
+ // to work backwards from top
74
+ const pathsToQuery = paths.slice(1).reverse();
75
+ const initialRelationshipQuery = {
76
+ value: {}
77
+ };
78
+ const relationshipQuery = await pathsToQuery.reduce(async (priorQuery, { collectionSlug: slug, path: subPath }, i)=>{
79
+ const priorQueryResult = await priorQuery;
80
+ const SubModel = payload.db.collections[slug];
81
+ // On the "deepest" collection,
82
+ // Search on the value passed through the query
83
+ if (i === 0) {
84
+ const subQuery = await SubModel.buildQuery({
85
+ locale,
86
+ payload,
87
+ where: {
88
+ [subPath]: {
89
+ [operator]: val
90
+ }
91
+ }
92
+ });
93
+ const result = await SubModel.find(subQuery, subQueryOptions);
94
+ const $in = [];
95
+ result.forEach((doc)=>{
96
+ const stringID = doc._id.toString();
97
+ $in.push(stringID);
98
+ if (_mongoose.default.Types.ObjectId.isValid(stringID)) {
99
+ $in.push(doc._id);
100
+ }
101
+ });
102
+ if (pathsToQuery.length === 1) {
103
+ return {
104
+ path,
105
+ value: {
106
+ $in
107
+ }
108
+ };
109
+ }
110
+ const nextSubPath = pathsToQuery[i + 1].path;
111
+ return {
112
+ value: {
113
+ [nextSubPath]: {
114
+ $in
115
+ }
116
+ }
117
+ };
118
+ }
119
+ const subQuery = priorQueryResult.value;
120
+ const result = await SubModel.find(subQuery, subQueryOptions);
121
+ const $in = result.map((doc)=>doc._id.toString());
122
+ // If it is the last recursion
123
+ // then pass through the search param
124
+ if (i + 1 === pathsToQuery.length) {
125
+ return {
126
+ path,
127
+ value: {
128
+ $in
129
+ }
130
+ };
131
+ }
132
+ return {
133
+ value: {
134
+ _id: {
135
+ $in
136
+ }
137
+ }
138
+ };
139
+ }, Promise.resolve(initialRelationshipQuery));
140
+ return relationshipQuery;
141
+ }
142
+ if (operator && _types.validOperators.includes(operator)) {
143
+ const operatorKey = _operatorMap.operatorMap[operator];
144
+ if (field.type === 'relationship' || field.type === 'upload') {
145
+ let hasNumberIDRelation;
146
+ const result = {
147
+ value: {
148
+ $or: [
149
+ {
150
+ [path]: {
151
+ [operatorKey]: formattedValue
152
+ }
153
+ }
154
+ ]
155
+ }
156
+ };
157
+ if (typeof formattedValue === 'string') {
158
+ if (_mongoose.default.Types.ObjectId.isValid(formattedValue)) {
159
+ result.value.$or.push({
160
+ [path]: {
161
+ [operatorKey]: (0, _bsonobjectid.default)(formattedValue)
162
+ }
163
+ });
164
+ } else {
165
+ (Array.isArray(field.relationTo) ? field.relationTo : [
166
+ field.relationTo
167
+ ]).forEach((relationTo)=>{
168
+ const isRelatedToCustomNumberID = payload.collections[relationTo]?.config?.fields.find((relatedField)=>{
169
+ return (0, _types.fieldAffectsData)(relatedField) && relatedField.name === 'id' && relatedField.type === 'number';
170
+ });
171
+ if (isRelatedToCustomNumberID) {
172
+ if (isRelatedToCustomNumberID.type === 'number') hasNumberIDRelation = true;
173
+ }
174
+ });
175
+ if (hasNumberIDRelation) result.value.$or.push({
176
+ [path]: {
177
+ [operatorKey]: parseFloat(formattedValue)
178
+ }
179
+ });
180
+ }
181
+ }
182
+ if (result.value.$or.length > 1) {
183
+ return result;
184
+ }
185
+ }
186
+ if (operator === 'like' && typeof formattedValue === 'string') {
187
+ const words = formattedValue.split(' ');
188
+ const result = {
189
+ value: {
190
+ $and: words.map((word)=>({
191
+ [path]: {
192
+ $options: 'i',
193
+ $regex: word.replace(/[\\^$*+?.()|[\]{}]/g, '\\$&')
194
+ }
195
+ }))
196
+ }
197
+ };
198
+ return result;
199
+ }
200
+ // Some operators like 'near' need to define a full query
201
+ // so if there is no operator key, just return the value
202
+ if (!operatorKey) {
203
+ return {
204
+ path,
205
+ value: formattedValue
206
+ };
207
+ }
208
+ return {
209
+ path,
210
+ value: {
211
+ [operatorKey]: formattedValue
212
+ }
213
+ };
214
+ }
215
+ }
216
+ return undefined;
217
+ }
218
+
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkU2VhcmNoUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFBhdGhUb1F1ZXJ5IH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRvciB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBvYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgZ2V0TG9jYWxpemVkUGF0aHMgfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgeyB2YWxpZE9wZXJhdG9ycyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgTW9uZ29vc2VBZGFwdGVyIH0gZnJvbSAnLi4nXG5cbmltcG9ydCB7IG9wZXJhdG9yTWFwIH0gZnJvbSAnLi9vcGVyYXRvck1hcCdcbmltcG9ydCB7IHNhbml0aXplUXVlcnlWYWx1ZSB9IGZyb20gJy4vc2FuaXRpemVRdWVyeVZhbHVlJ1xuXG50eXBlIFNlYXJjaFBhcmFtID0ge1xuICBwYXRoPzogc3RyaW5nXG4gIHZhbHVlOiB1bmtub3duXG59XG5cbmNvbnN0IHN1YlF1ZXJ5T3B0aW9ucyA9IHtcbiAgbGVhbjogdHJ1ZSxcbiAgbGltaXQ6IDUwLFxufVxuXG4vKipcbiAqIENvbnZlcnQgdGhlIFBheWxvYWQga2V5IC8gdmFsdWUgLyBvcGVyYXRvciBpbnRvIGEgTW9uZ29EQiBxdWVyeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRTZWFyY2hQYXJhbSh7XG4gIGNvbGxlY3Rpb25TbHVnLFxuICBmaWVsZHMsXG4gIGdsb2JhbFNsdWcsXG4gIGluY29taW5nUGF0aCxcbiAgbG9jYWxlLFxuICBvcGVyYXRvcixcbiAgcGF5bG9hZCxcbiAgdmFsLFxufToge1xuICBjb2xsZWN0aW9uU2x1Zz86IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBpbmNvbWluZ1BhdGg6IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgb3BlcmF0b3I6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG4gIHZhbDogdW5rbm93blxufSk6IFByb21pc2U8U2VhcmNoUGFyYW0+IHtcbiAgLy8gUmVwbGFjZSBHcmFwaFFMIG5lc3RlZCBmaWVsZCBkb3VibGUgdW5kZXJzY29yZSBmb3JtYXR0aW5nXG4gIGxldCBzYW5pdGl6ZWRQYXRoID0gaW5jb21pbmdQYXRoLnJlcGxhY2UoL19fL2csICcuJylcbiAgaWYgKHNhbml0aXplZFBhdGggPT09ICdpZCcpIHNhbml0aXplZFBhdGggPSAnX2lkJ1xuXG4gIGxldCBwYXRoczogUGF0aFRvUXVlcnlbXSA9IFtdXG5cbiAgbGV0IGhhc0N1c3RvbUlEID0gZmFsc2VcblxuICBpZiAoc2FuaXRpemVkUGF0aCA9PT0gJ19pZCcpIHtcbiAgICBjb25zdCBjdXN0b21JRGZpZWxkID0gcGF5bG9hZC5jb2xsZWN0aW9uc1tjb2xsZWN0aW9uU2x1Z10/LmNvbmZpZy5maWVsZHMuZmluZChcbiAgICAgIChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICApXG5cbiAgICBsZXQgaWRGaWVsZFR5cGU6ICdudW1iZXInIHwgJ3RleHQnID0gJ3RleHQnXG5cbiAgICBpZiAoY3VzdG9tSURmaWVsZCkge1xuICAgICAgaWYgKGN1c3RvbUlEZmllbGQ/LnR5cGUgPT09ICd0ZXh0JyB8fCBjdXN0b21JRGZpZWxkPy50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICBpZEZpZWxkVHlwZSA9IGN1c3RvbUlEZmllbGQudHlwZVxuICAgICAgfVxuXG4gICAgICBoYXNDdXN0b21JRCA9IHRydWVcbiAgICB9XG5cbiAgICBwYXRocy5wdXNoKHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgY29tcGxldGU6IHRydWUsXG4gICAgICBmaWVsZDoge1xuICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICB0eXBlOiBpZEZpZWxkVHlwZSxcbiAgICAgIH0gYXMgRmllbGQsXG4gICAgICBwYXRoOiAnX2lkJyxcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIHBhdGhzID0gYXdhaXQgZ2V0TG9jYWxpemVkUGF0aHMoe1xuICAgICAgY29sbGVjdGlvblNsdWcsXG4gICAgICBmaWVsZHMsXG4gICAgICBnbG9iYWxTbHVnLFxuICAgICAgaW5jb21pbmdQYXRoOiBzYW5pdGl6ZWRQYXRoLFxuICAgICAgbG9jYWxlLFxuICAgICAgcGF5bG9hZCxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgW3sgZmllbGQsIHBhdGggfV0gPSBwYXRoc1xuXG4gIGlmIChwYXRoKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBzYW5pdGl6ZVF1ZXJ5VmFsdWUoe1xuICAgICAgZmllbGQsXG4gICAgICBoYXNDdXN0b21JRCxcbiAgICAgIG9wZXJhdG9yLFxuICAgICAgcGF0aCxcbiAgICAgIHZhbCxcbiAgICB9KVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG11bHRpcGxlIGNvbGxlY3Rpb25zIHRvIHNlYXJjaCB0aHJvdWdoLFxuICAgIC8vIFJlY3Vyc2l2ZWx5IGJ1aWxkIHVwIGEgbGlzdCBvZiBxdWVyeSBjb25zdHJhaW50c1xuICAgIGlmIChwYXRocy5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBSZW1vdmUgdG9wIGNvbGxlY3Rpb24gYW5kIHJldmVyc2UgYXJyYXlcbiAgICAgIC8vIHRvIHdvcmsgYmFja3dhcmRzIGZyb20gdG9wXG4gICAgICBjb25zdCBwYXRoc1RvUXVlcnkgPSBwYXRocy5zbGljZSgxKS5yZXZlcnNlKClcblxuICAgICAgY29uc3QgaW5pdGlhbFJlbGF0aW9uc2hpcFF1ZXJ5ID0ge1xuICAgICAgICB2YWx1ZToge30sXG4gICAgICB9IGFzIFNlYXJjaFBhcmFtXG5cbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcFF1ZXJ5ID0gYXdhaXQgcGF0aHNUb1F1ZXJ5LnJlZHVjZShcbiAgICAgICAgYXN5bmMgKHByaW9yUXVlcnksIHsgY29sbGVjdGlvblNsdWc6IHNsdWcsIHBhdGg6IHN1YlBhdGggfSwgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHByaW9yUXVlcnlSZXN1bHQgPSBhd2FpdCBwcmlvclF1ZXJ5XG5cbiAgICAgICAgICBjb25zdCBTdWJNb2RlbCA9IChwYXlsb2FkLmRiIGFzIE1vbmdvb3NlQWRhcHRlcikuY29sbGVjdGlvbnNbc2x1Z11cblxuICAgICAgICAgIC8vIE9uIHRoZSBcImRlZXBlc3RcIiBjb2xsZWN0aW9uLFxuICAgICAgICAgIC8vIFNlYXJjaCBvbiB0aGUgdmFsdWUgcGFzc2VkIHRocm91Z2ggdGhlIHF1ZXJ5XG4gICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YlF1ZXJ5ID0gYXdhaXQgU3ViTW9kZWwuYnVpbGRRdWVyeSh7XG4gICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgICAgICBbc3ViUGF0aF06IHtcbiAgICAgICAgICAgICAgICAgIFtvcGVyYXRvcl06IHZhbCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgU3ViTW9kZWwuZmluZChzdWJRdWVyeSwgc3ViUXVlcnlPcHRpb25zKVxuXG4gICAgICAgICAgICBjb25zdCAkaW46IHVua25vd25bXSA9IFtdXG5cbiAgICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKChkb2MpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nSUQgPSBkb2MuX2lkLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgJGluLnB1c2goc3RyaW5nSUQpXG5cbiAgICAgICAgICAgICAgaWYgKG1vbmdvb3NlLlR5cGVzLk9iamVjdElkLmlzVmFsaWQoc3RyaW5nSUQpKSB7XG4gICAgICAgICAgICAgICAgJGluLnB1c2goZG9jLl9pZClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKHBhdGhzVG9RdWVyeS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB7ICRpbiB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5leHRTdWJQYXRoID0gcGF0aHNUb1F1ZXJ5W2kgKyAxXS5wYXRoXG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7IFtuZXh0U3ViUGF0aF06IHsgJGluIH0gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzdWJRdWVyeSA9IHByaW9yUXVlcnlSZXN1bHQudmFsdWVcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBTdWJNb2RlbC5maW5kKHN1YlF1ZXJ5LCBzdWJRdWVyeU9wdGlvbnMpXG5cbiAgICAgICAgICBjb25zdCAkaW4gPSByZXN1bHQubWFwKChkb2MpID0+IGRvYy5faWQudG9TdHJpbmcoKSlcblxuICAgICAgICAgIC8vIElmIGl0IGlzIHRoZSBsYXN0IHJlY3Vyc2lvblxuICAgICAgICAgIC8vIHRoZW4gcGFzcyB0aHJvdWdoIHRoZSBzZWFyY2ggcGFyYW1cbiAgICAgICAgICBpZiAoaSArIDEgPT09IHBhdGhzVG9RdWVyeS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgIHZhbHVlOiB7ICRpbiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICBfaWQ6IHsgJGluIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKGluaXRpYWxSZWxhdGlvbnNoaXBRdWVyeSksXG4gICAgICApXG5cbiAgICAgIHJldHVybiByZWxhdGlvbnNoaXBRdWVyeVxuICAgIH1cblxuICAgIGlmIChvcGVyYXRvciAmJiB2YWxpZE9wZXJhdG9ycy5pbmNsdWRlcyhvcGVyYXRvciBhcyBPcGVyYXRvcikpIHtcbiAgICAgIGNvbnN0IG9wZXJhdG9yS2V5ID0gb3BlcmF0b3JNYXBbb3BlcmF0b3JdXG5cbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykge1xuICAgICAgICBsZXQgaGFzTnVtYmVySURSZWxhdGlvblxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgJG9yOiBbeyBbcGF0aF06IHsgW29wZXJhdG9yS2V5XTogZm9ybWF0dGVkVmFsdWUgfSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpZiAobW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQuaXNWYWxpZChmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC52YWx1ZS4kb3IucHVzaCh7IFtwYXRoXTogeyBbb3BlcmF0b3JLZXldOiBvYmplY3RJRChmb3JtYXR0ZWRWYWx1ZSkgfSB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7KEFycmF5LmlzQXJyYXkoZmllbGQucmVsYXRpb25UbykgPyBmaWVsZC5yZWxhdGlvblRvIDogW2ZpZWxkLnJlbGF0aW9uVG9dKS5mb3JFYWNoKFxuICAgICAgICAgICAgICAocmVsYXRpb25UbykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQgPSBwYXlsb2FkLmNvbGxlY3Rpb25zW1xuICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ub1xuICAgICAgICAgICAgICAgIF0/LmNvbmZpZz8uZmllbGRzLmZpbmQoKHJlbGF0ZWRGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShyZWxhdGVkRmllbGQpICYmXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZC5uYW1lID09PSAnaWQnICYmXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0ZWRGaWVsZC50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9DdXN0b21OdW1iZXJJRCkge1xuICAgICAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvQ3VzdG9tTnVtYmVySUQudHlwZSA9PT0gJ251bWJlcicpIGhhc051bWJlcklEUmVsYXRpb24gPSB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAoaGFzTnVtYmVySURSZWxhdGlvbilcbiAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlLiRvci5wdXNoKHsgW3BhdGhdOiB7IFtvcGVyYXRvcktleV06IHBhcnNlRmxvYXQoZm9ybWF0dGVkVmFsdWUpIH0gfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzdWx0LnZhbHVlLiRvci5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChvcGVyYXRvciA9PT0gJ2xpa2UnICYmIHR5cGVvZiBmb3JtYXR0ZWRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3Qgd29yZHMgPSBmb3JtYXR0ZWRWYWx1ZS5zcGxpdCgnICcpXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAkYW5kOiB3b3Jkcy5tYXAoKHdvcmQpID0+ICh7XG4gICAgICAgICAgICAgIFtwYXRoXToge1xuICAgICAgICAgICAgICAgICRvcHRpb25zOiAnaScsXG4gICAgICAgICAgICAgICAgJHJlZ2V4OiB3b3JkLnJlcGxhY2UoL1tcXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH1cblxuICAgICAgLy8gU29tZSBvcGVyYXRvcnMgbGlrZSAnbmVhcicgbmVlZCB0byBkZWZpbmUgYSBmdWxsIHF1ZXJ5XG4gICAgICAvLyBzbyBpZiB0aGVyZSBpcyBubyBvcGVyYXRvciBrZXksIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgICAgaWYgKCFvcGVyYXRvcktleSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgdmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdGgsXG4gICAgICAgIHZhbHVlOiB7IFtvcGVyYXRvcktleV06IGZvcm1hdHRlZFZhbHVlIH0sXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJidWlsZFNlYXJjaFBhcmFtIiwic3ViUXVlcnlPcHRpb25zIiwibGVhbiIsImxpbWl0IiwiY29sbGVjdGlvblNsdWciLCJmaWVsZHMiLCJnbG9iYWxTbHVnIiwiaW5jb21pbmdQYXRoIiwibG9jYWxlIiwib3BlcmF0b3IiLCJwYXlsb2FkIiwidmFsIiwic2FuaXRpemVkUGF0aCIsInJlcGxhY2UiLCJwYXRocyIsImhhc0N1c3RvbUlEIiwiY3VzdG9tSURmaWVsZCIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwiZmluZCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJpZEZpZWxkVHlwZSIsInR5cGUiLCJwdXNoIiwiY29tcGxldGUiLCJwYXRoIiwiZ2V0TG9jYWxpemVkUGF0aHMiLCJmb3JtYXR0ZWRWYWx1ZSIsInNhbml0aXplUXVlcnlWYWx1ZSIsImxlbmd0aCIsInBhdGhzVG9RdWVyeSIsInNsaWNlIiwicmV2ZXJzZSIsImluaXRpYWxSZWxhdGlvbnNoaXBRdWVyeSIsInZhbHVlIiwicmVsYXRpb25zaGlwUXVlcnkiLCJyZWR1Y2UiLCJwcmlvclF1ZXJ5Iiwic2x1ZyIsInN1YlBhdGgiLCJpIiwicHJpb3JRdWVyeVJlc3VsdCIsIlN1Yk1vZGVsIiwiZGIiLCJzdWJRdWVyeSIsImJ1aWxkUXVlcnkiLCJ3aGVyZSIsInJlc3VsdCIsIiRpbiIsImZvckVhY2giLCJkb2MiLCJzdHJpbmdJRCIsIl9pZCIsInRvU3RyaW5nIiwibW9uZ29vc2UiLCJUeXBlcyIsIk9iamVjdElkIiwiaXNWYWxpZCIsIm5leHRTdWJQYXRoIiwibWFwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ2YWxpZE9wZXJhdG9ycyIsImluY2x1ZGVzIiwib3BlcmF0b3JLZXkiLCJvcGVyYXRvck1hcCIsImhhc051bWJlcklEUmVsYXRpb24iLCIkb3IiLCJvYmplY3RJRCIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJpc1JlbGF0ZWRUb0N1c3RvbU51bWJlcklEIiwicmVsYXRlZEZpZWxkIiwicGFyc2VGbG9h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
@@ -0,0 +1,18 @@
1
+ import type { PaginateOptions } from 'mongoose';
2
+ import type { SanitizedConfig } from 'payload/config';
3
+ import type { Field } from 'payload/types';
4
+ type Args = {
5
+ config: SanitizedConfig;
6
+ fields: Field[];
7
+ locale: string;
8
+ sort: string;
9
+ timestamps: boolean;
10
+ };
11
+ export type SortArgs = {
12
+ direction: SortDirection;
13
+ property: string;
14
+ }[];
15
+ export type SortDirection = 'asc' | 'desc';
16
+ export declare const buildSortParam: ({ config, fields, locale, sort, timestamps, }: Args) => PaginateOptions['sort'];
17
+ export {};
18
+ //# sourceMappingURL=buildSortParam.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,42 @@
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 })=>{
13
+ let sortProperty;
14
+ let sortDirection = 'desc';
15
+ if (!sort) {
16
+ if (timestamps) {
17
+ sortProperty = 'createdAt';
18
+ } else {
19
+ sortProperty = '_id';
20
+ }
21
+ } else if (sort.indexOf('-') === 0) {
22
+ sortProperty = sort.substring(1);
23
+ } else {
24
+ sortProperty = sort;
25
+ sortDirection = 'asc';
26
+ }
27
+ if (sortProperty === 'id') {
28
+ sortProperty = '_id';
29
+ } else {
30
+ sortProperty = (0, _getLocalizedSortProperty.getLocalizedSortProperty)({
31
+ config,
32
+ fields,
33
+ locale,
34
+ segments: sortProperty.split('.')
35
+ });
36
+ }
37
+ return {
38
+ [sortProperty]: sortDirection
39
+ };
40
+ };
41
+
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2J1aWxkU29ydFBhcmFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFnaW5hdGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5J1xuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIGZpZWxkczogRmllbGRbXVxuICBsb2NhbGU6IHN0cmluZ1xuICBzb3J0OiBzdHJpbmdcbiAgdGltZXN0YW1wczogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBTb3J0QXJncyA9IHtcbiAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uXG4gIHByb3BlcnR5OiBzdHJpbmdcbn1bXVxuXG5leHBvcnQgdHlwZSBTb3J0RGlyZWN0aW9uID0gJ2FzYycgfCAnZGVzYydcblxuZXhwb3J0IGNvbnN0IGJ1aWxkU29ydFBhcmFtID0gKHtcbiAgY29uZmlnLFxuICBmaWVsZHMsXG4gIGxvY2FsZSxcbiAgc29ydCxcbiAgdGltZXN0YW1wcyxcbn06IEFyZ3MpOiBQYWdpbmF0ZU9wdGlvbnNbJ3NvcnQnXSA9PiB7XG4gIGxldCBzb3J0UHJvcGVydHk6IHN0cmluZ1xuICBsZXQgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdkZXNjJ1xuXG4gIGlmICghc29ydCkge1xuICAgIGlmICh0aW1lc3RhbXBzKSB7XG4gICAgICBzb3J0UHJvcGVydHkgPSAnY3JlYXRlZEF0J1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3J0UHJvcGVydHkgPSAnX2lkJ1xuICAgIH1cbiAgfSBlbHNlIGlmIChzb3J0LmluZGV4T2YoJy0nKSA9PT0gMCkge1xuICAgIHNvcnRQcm9wZXJ0eSA9IHNvcnQuc3Vic3RyaW5nKDEpXG4gIH0gZWxzZSB7XG4gICAgc29ydFByb3BlcnR5ID0gc29ydFxuICAgIHNvcnREaXJlY3Rpb24gPSAnYXNjJ1xuICB9XG5cbiAgaWYgKHNvcnRQcm9wZXJ0eSA9PT0gJ2lkJykge1xuICAgIHNvcnRQcm9wZXJ0eSA9ICdfaWQnXG4gIH0gZWxzZSB7XG4gICAgc29ydFByb3BlcnR5ID0gZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5KHtcbiAgICAgIGNvbmZpZyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHNlZ21lbnRzOiBzb3J0UHJvcGVydHkuc3BsaXQoJy4nKSxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHsgW3NvcnRQcm9wZXJ0eV06IHNvcnREaXJlY3Rpb24gfVxufVxuIl0sIm5hbWVzIjpbImJ1aWxkU29ydFBhcmFtIiwiY29uZmlnIiwiZmllbGRzIiwibG9jYWxlIiwic29ydCIsInRpbWVzdGFtcHMiLCJzb3J0UHJvcGVydHkiLCJzb3J0RGlyZWN0aW9uIiwiaW5kZXhPZiIsInN1YnN0cmluZyIsImdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSIsInNlZ21lbnRzIiwic3BsaXQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBcUJhQTs7O2VBQUFBOzs7MENBakI0QjtBQWlCbEMsTUFBTUEsaUJBQWlCLENBQUMsRUFDN0JDLE1BQU0sRUFDTkMsTUFBTSxFQUNOQyxNQUFNLEVBQ05DLElBQUksRUFDSkMsVUFBVSxFQUNMO0lBQ0wsSUFBSUM7SUFDSixJQUFJQyxnQkFBK0I7SUFFbkMsSUFBSSxDQUFDSCxNQUFNO1FBQ1QsSUFBSUMsWUFBWTtZQUNkQyxlQUFlO1FBQ2pCLE9BQU87WUFDTEEsZUFBZTtRQUNqQjtJQUNGLE9BQU8sSUFBSUYsS0FBS0ksT0FBTyxDQUFDLFNBQVMsR0FBRztRQUNsQ0YsZUFBZUYsS0FBS0ssU0FBUyxDQUFDO0lBQ2hDLE9BQU87UUFDTEgsZUFBZUY7UUFDZkcsZ0JBQWdCO0lBQ2xCO0lBRUEsSUFBSUQsaUJBQWlCLE1BQU07UUFDekJBLGVBQWU7SUFDakIsT0FBTztRQUNMQSxlQUFlSSxJQUFBQSxrREFBd0IsRUFBQztZQUN0Q1Q7WUFDQUM7WUFDQUM7WUFDQVEsVUFBVUwsYUFBYU0sS0FBSyxDQUFDO1FBQy9CO0lBQ0Y7SUFFQSxPQUFPO1FBQUUsQ0FBQ04sYUFBYSxFQUFFQztJQUFjO0FBQ3pDIn0=
@@ -0,0 +1,12 @@
1
+ import type { SanitizedConfig } from 'payload/config';
2
+ import type { Field } from 'payload/types';
3
+ type Args = {
4
+ config: SanitizedConfig;
5
+ fields: Field[];
6
+ locale: string;
7
+ result?: string;
8
+ segments: string[];
9
+ };
10
+ export declare const getLocalizedSortProperty: ({ config, fields: incomingFields, locale, result: incomingResult, segments: incomingSegments, }: Args) => string;
11
+ export {};
12
+ //# sourceMappingURL=getLocalizedSortProperty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLocalizedSortProperty.d.ts","sourceRoot":"","sources":["../../src/queries/getLocalizedSortProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAK1C,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,wBAAwB,oGAMlC,IAAI,KAAG,MAkFT,CAAA"}
@@ -0,0 +1,76 @@
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 })=>{
14
+ // If localization is not enabled, accept exactly
15
+ // what is sent in
16
+ if (!config.localization) {
17
+ return incomingSegments.join('.');
18
+ }
19
+ // Flatten incoming fields (row, etc)
20
+ const fields = (0, _utilities.flattenTopLevelFields)(incomingFields);
21
+ const segments = [
22
+ ...incomingSegments
23
+ ];
24
+ // Retrieve first segment, and remove from segments
25
+ const firstSegment = segments.shift();
26
+ // 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)) {
29
+ let nextFields;
30
+ const remainingSegments = [
31
+ ...segments
32
+ ];
33
+ let localizedSegment = matchedField.name;
34
+ if (matchedField.localized) {
35
+ // Check to see if next segment is a locale
36
+ if (segments.length > 0) {
37
+ const nextSegmentIsLocale = config.localization.localeCodes.includes(remainingSegments[0]);
38
+ // If next segment is locale, remove it from remaining segments
39
+ // and use it to localize the current segment
40
+ if (nextSegmentIsLocale) {
41
+ const nextSegment = remainingSegments.shift();
42
+ localizedSegment = `${matchedField.name}.${nextSegment}`;
43
+ }
44
+ } else {
45
+ // If no more segments, but field is localized, use default locale
46
+ localizedSegment = `${matchedField.name}.${locale}`;
47
+ }
48
+ }
49
+ // If there are subfields, pass them through
50
+ if (matchedField.type === 'tab' || matchedField.type === 'group' || matchedField.type === 'array') {
51
+ nextFields = matchedField.fields;
52
+ }
53
+ if (matchedField.type === 'blocks') {
54
+ nextFields = matchedField.blocks.reduce((flattenedBlockFields, block)=>{
55
+ return [
56
+ ...flattenedBlockFields,
57
+ ...block.fields.filter((blockField)=>(0, _types.fieldAffectsData)(blockField) && blockField.name !== 'blockType' && blockField.name !== 'blockName' || !(0, _types.fieldAffectsData)(blockField))
58
+ ];
59
+ }, []);
60
+ }
61
+ const result = incomingResult ? `${incomingResult}.${localizedSegment}` : localizedSegment;
62
+ if (nextFields) {
63
+ return getLocalizedSortProperty({
64
+ config,
65
+ fields: nextFields,
66
+ locale,
67
+ result,
68
+ segments: remainingSegments
69
+ });
70
+ }
71
+ return result;
72
+ }
73
+ return incomingSegments.join('.');
74
+ };
75
+
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL2dldExvY2FsaXplZFNvcnRQcm9wZXJ0eS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHsgZmxhdHRlblRvcExldmVsRmllbGRzIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZmllbGRzOiBGaWVsZFtdXG4gIGxvY2FsZTogc3RyaW5nXG4gIHJlc3VsdD86IHN0cmluZ1xuICBzZWdtZW50czogc3RyaW5nW11cbn1cblxuZXhwb3J0IGNvbnN0IGdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSA9ICh7XG4gIGNvbmZpZyxcbiAgZmllbGRzOiBpbmNvbWluZ0ZpZWxkcyxcbiAgbG9jYWxlLFxuICByZXN1bHQ6IGluY29taW5nUmVzdWx0LFxuICBzZWdtZW50czogaW5jb21pbmdTZWdtZW50cyxcbn06IEFyZ3MpOiBzdHJpbmcgPT4ge1xuICAvLyBJZiBsb2NhbGl6YXRpb24gaXMgbm90IGVuYWJsZWQsIGFjY2VwdCBleGFjdGx5XG4gIC8vIHdoYXQgaXMgc2VudCBpblxuICBpZiAoIWNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICByZXR1cm4gaW5jb21pbmdTZWdtZW50cy5qb2luKCcuJylcbiAgfVxuXG4gIC8vIEZsYXR0ZW4gaW5jb21pbmcgZmllbGRzIChyb3csIGV0YylcbiAgY29uc3QgZmllbGRzID0gZmxhdHRlblRvcExldmVsRmllbGRzKGluY29taW5nRmllbGRzKVxuXG4gIGNvbnN0IHNlZ21lbnRzID0gWy4uLmluY29taW5nU2VnbWVudHNdXG5cbiAgLy8gUmV0cmlldmUgZmlyc3Qgc2VnbWVudCwgYW5kIHJlbW92ZSBmcm9tIHNlZ21lbnRzXG4gIGNvbnN0IGZpcnN0U2VnbWVudCA9IHNlZ21lbnRzLnNoaWZ0KClcblxuICAvLyBBdHRlbXB0IHRvIGZpbmQgYSBtYXRjaGVkIGZpZWxkXG4gIGNvbnN0IG1hdGNoZWRGaWVsZCA9IGZpZWxkcy5maW5kKFxuICAgIChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gZmlyc3RTZWdtZW50LFxuICApXG5cbiAgaWYgKG1hdGNoZWRGaWVsZCAmJiAhZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShtYXRjaGVkRmllbGQpKSB7XG4gICAgbGV0IG5leHRGaWVsZHM6IEZpZWxkW11cbiAgICBjb25zdCByZW1haW5pbmdTZWdtZW50cyA9IFsuLi5zZWdtZW50c11cbiAgICBsZXQgbG9jYWxpemVkU2VnbWVudCA9IG1hdGNoZWRGaWVsZC5uYW1lXG5cbiAgICBpZiAobWF0Y2hlZEZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIG5leHQgc2VnbWVudCBpcyBhIGxvY2FsZVxuICAgICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbmV4dFNlZ21lbnRJc0xvY2FsZSA9IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuaW5jbHVkZXMocmVtYWluaW5nU2VnbWVudHNbMF0pXG5cbiAgICAgICAgLy8gSWYgbmV4dCBzZWdtZW50IGlzIGxvY2FsZSwgcmVtb3ZlIGl0IGZyb20gcmVtYWluaW5nIHNlZ21lbnRzXG4gICAgICAgIC8vIGFuZCB1c2UgaXQgdG8gbG9jYWxpemUgdGhlIGN1cnJlbnQgc2VnbWVudFxuICAgICAgICBpZiAobmV4dFNlZ21lbnRJc0xvY2FsZSkge1xuICAgICAgICAgIGNvbnN0IG5leHRTZWdtZW50ID0gcmVtYWluaW5nU2VnbWVudHMuc2hpZnQoKVxuICAgICAgICAgIGxvY2FsaXplZFNlZ21lbnQgPSBgJHttYXRjaGVkRmllbGQubmFtZX0uJHtuZXh0U2VnbWVudH1gXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIG1vcmUgc2VnbWVudHMsIGJ1dCBmaWVsZCBpcyBsb2NhbGl6ZWQsIHVzZSBkZWZhdWx0IGxvY2FsZVxuICAgICAgICBsb2NhbGl6ZWRTZWdtZW50ID0gYCR7bWF0Y2hlZEZpZWxkLm5hbWV9LiR7bG9jYWxlfWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgc3ViZmllbGRzLCBwYXNzIHRoZW0gdGhyb3VnaFxuICAgIGlmIChcbiAgICAgIG1hdGNoZWRGaWVsZC50eXBlID09PSAndGFiJyB8fFxuICAgICAgbWF0Y2hlZEZpZWxkLnR5cGUgPT09ICdncm91cCcgfHxcbiAgICAgIG1hdGNoZWRGaWVsZC50eXBlID09PSAnYXJyYXknXG4gICAgKSB7XG4gICAgICBuZXh0RmllbGRzID0gbWF0Y2hlZEZpZWxkLmZpZWxkc1xuICAgIH1cblxuICAgIGlmIChtYXRjaGVkRmllbGQudHlwZSA9PT0gJ2Jsb2NrcycpIHtcbiAgICAgIG5leHRGaWVsZHMgPSBtYXRjaGVkRmllbGQuYmxvY2tzLnJlZHVjZSgoZmxhdHRlbmVkQmxvY2tGaWVsZHMsIGJsb2NrKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4uZmxhdHRlbmVkQmxvY2tGaWVsZHMsXG4gICAgICAgICAgLi4uYmxvY2suZmllbGRzLmZpbHRlcihcbiAgICAgICAgICAgIChibG9ja0ZpZWxkKSA9PlxuICAgICAgICAgICAgICAoZmllbGRBZmZlY3RzRGF0YShibG9ja0ZpZWxkKSAmJlxuICAgICAgICAgICAgICAgIGJsb2NrRmllbGQubmFtZSAhPT0gJ2Jsb2NrVHlwZScgJiZcbiAgICAgICAgICAgICAgICBibG9ja0ZpZWxkLm5hbWUgIT09ICdibG9ja05hbWUnKSB8fFxuICAgICAgICAgICAgICAhZmllbGRBZmZlY3RzRGF0YShibG9ja0ZpZWxkKSxcbiAgICAgICAgICApLFxuICAgICAgICBdXG4gICAgICB9LCBbXSlcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBpbmNvbWluZ1Jlc3VsdCA/IGAke2luY29taW5nUmVzdWx0fS4ke2xvY2FsaXplZFNlZ21lbnR9YCA6IGxvY2FsaXplZFNlZ21lbnRcblxuICAgIGlmIChuZXh0RmllbGRzKSB7XG4gICAgICByZXR1cm4gZ2V0TG9jYWxpemVkU29ydFByb3BlcnR5KHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBmaWVsZHM6IG5leHRGaWVsZHMsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgICBzZWdtZW50czogcmVtYWluaW5nU2VnbWVudHMsXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHJldHVybiBpbmNvbWluZ1NlZ21lbnRzLmpvaW4oJy4nKVxufVxuIl0sIm5hbWVzIjpbImdldExvY2FsaXplZFNvcnRQcm9wZXJ0eSIsImNvbmZpZyIsImZpZWxkcyIsImluY29taW5nRmllbGRzIiwibG9jYWxlIiwicmVzdWx0IiwiaW5jb21pbmdSZXN1bHQiLCJzZWdtZW50cyIsImluY29taW5nU2VnbWVudHMiLCJsb2NhbGl6YXRpb24iLCJqb2luIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwiZmlyc3RTZWdtZW50Iiwic2hpZnQiLCJtYXRjaGVkRmllbGQiLCJmaW5kIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJuZXh0RmllbGRzIiwicmVtYWluaW5nU2VnbWVudHMiLCJsb2NhbGl6ZWRTZWdtZW50IiwibG9jYWxpemVkIiwibGVuZ3RoIiwibmV4dFNlZ21lbnRJc0xvY2FsZSIsImxvY2FsZUNvZGVzIiwiaW5jbHVkZXMiLCJuZXh0U2VnbWVudCIsInR5cGUiLCJibG9ja3MiLCJyZWR1Y2UiLCJm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