@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.
- package/dist/connect.d.ts +3 -0
- package/dist/connect.d.ts.map +1 -0
- package/dist/connect.js +63 -0
- package/dist/create.d.ts +3 -0
- package/dist/create.d.ts.map +1 -0
- package/dist/create.js +29 -0
- package/dist/createGlobal.d.ts +3 -0
- package/dist/createGlobal.d.ts.map +1 -0
- package/dist/createGlobal.js +35 -0
- package/dist/createGlobalVersion.d.ts +3 -0
- package/dist/createGlobalVersion.d.ts.map +1 -0
- package/dist/createGlobalVersion.js +58 -0
- package/dist/createVersion.d.ts +3 -0
- package/dist/createVersion.d.ts.map +1 -0
- package/dist/createVersion.js +58 -0
- package/dist/deleteMany.d.ts +3 -0
- package/dist/deleteMany.d.ts.map +1 -0
- package/dist/deleteMany.js +25 -0
- package/dist/deleteOne.d.ts +3 -0
- package/dist/deleteOne.d.ts.map +1 -0
- package/dist/deleteOne.js +33 -0
- package/dist/deleteVersions.d.ts +3 -0
- package/dist/deleteVersions.d.ts.map +1 -0
- package/dist/deleteVersions.js +26 -0
- package/dist/destroy.d.ts +3 -0
- package/dist/destroy.d.ts.map +1 -0
- package/dist/destroy.js +27 -0
- package/dist/find.d.ts +3 -0
- package/dist/find.d.ts.map +1 -0
- package/dist/find.js +71 -0
- package/dist/findGlobal.d.ts +3 -0
- package/dist/findGlobal.d.ts.map +1 -0
- package/dist/findGlobal.js +48 -0
- package/dist/findGlobalVersions.d.ts +3 -0
- package/dist/findGlobalVersions.d.ts.map +1 -0
- package/dist/findGlobalVersions.js +78 -0
- package/dist/findOne.d.ts +3 -0
- package/dist/findOne.d.ts.map +1 -0
- package/dist/findOne.js +40 -0
- package/dist/findVersions.d.ts +3 -0
- package/dist/findVersions.d.ts.map +1 -0
- package/dist/findVersions.js +77 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +91 -0
- package/dist/init.d.ts +3 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +98 -0
- package/dist/mock.js +13 -0
- package/dist/models/buildCollectionSchema.d.ts +6 -0
- package/dist/models/buildCollectionSchema.d.ts.map +1 -0
- package/dist/models/buildCollectionSchema.js +51 -0
- package/dist/models/buildGlobalModel.d.ts +4 -0
- package/dist/models/buildGlobalModel.d.ts.map +1 -0
- package/dist/models/buildGlobalModel.js +41 -0
- package/dist/models/buildSchema.d.ts +14 -0
- package/dist/models/buildSchema.d.ts.map +1 -0
- package/dist/models/buildSchema.js +438 -0
- package/dist/queries/buildAndOrConditions.d.ts +11 -0
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -0
- package/dist/queries/buildAndOrConditions.js +37 -0
- package/dist/queries/buildQuery.d.ts +15 -0
- package/dist/queries/buildQuery.d.ts.map +1 -0
- package/dist/queries/buildQuery.js +49 -0
- package/dist/queries/buildSearchParams.d.ts +21 -0
- package/dist/queries/buildSearchParams.d.ts.map +1 -0
- package/dist/queries/buildSearchParams.js +219 -0
- package/dist/queries/buildSortParam.d.ts +18 -0
- package/dist/queries/buildSortParam.d.ts.map +1 -0
- package/dist/queries/buildSortParam.js +42 -0
- package/dist/queries/getLocalizedSortProperty.d.ts +12 -0
- package/dist/queries/getLocalizedSortProperty.d.ts.map +1 -0
- package/dist/queries/getLocalizedSortProperty.js +76 -0
- package/dist/queries/getLocalizedSortProperty.spec.js +195 -0
- package/dist/queries/mock.js +3 -0
- package/dist/queries/operatorMap.d.ts +16 -0
- package/dist/queries/operatorMap.d.ts.map +1 -0
- package/dist/queries/operatorMap.js +27 -0
- package/dist/queries/parseParams.d.ts +12 -0
- package/dist/queries/parseParams.d.ts.map +1 -0
- package/dist/queries/parseParams.js +80 -0
- package/dist/queries/sanitizeQueryValue.d.ts +11 -0
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -0
- package/dist/queries/sanitizeQueryValue.js +128 -0
- package/dist/queryDrafts.d.ts +3 -0
- package/dist/queryDrafts.d.ts.map +1 -0
- package/dist/queryDrafts.js +82 -0
- package/dist/testCredentials.d.ts +8 -0
- package/dist/testCredentials.d.ts.map +1 -0
- package/dist/testCredentials.js +30 -0
- package/dist/transactions/beginTransaction.d.ts +3 -0
- package/dist/transactions/beginTransaction.d.ts.map +1 -0
- package/dist/transactions/beginTransaction.js +38 -0
- package/dist/transactions/commitTransaction.d.ts +3 -0
- package/dist/transactions/commitTransaction.d.ts.map +1 -0
- package/dist/transactions/commitTransaction.js +24 -0
- package/dist/transactions/rollbackTransaction.d.ts +3 -0
- package/dist/transactions/rollbackTransaction.d.ts.map +1 -0
- package/dist/transactions/rollbackTransaction.js +21 -0
- package/dist/types.d.ts +70 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/updateGlobal.d.ts +3 -0
- package/dist/updateGlobal.d.ts.map +1 -0
- package/dist/updateGlobal.js +36 -0
- package/dist/updateGlobalVersion.d.ts +5 -0
- package/dist/updateGlobalVersion.d.ts.map +1 -0
- package/dist/updateGlobalVersion.js +35 -0
- package/dist/updateOne.d.ts +3 -0
- package/dist/updateOne.d.ts.map +1 -0
- package/dist/updateOne.js +55 -0
- package/dist/updateVersion.d.ts +3 -0
- package/dist/updateVersion.d.ts.map +1 -0
- package/dist/updateVersion.js +35 -0
- package/dist/utilities/sanitizeInternalFields.d.ts +3 -0
- package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -0
- package/dist/utilities/sanitizeInternalFields.js +31 -0
- package/dist/webpack.d.ts +3 -0
- package/dist/webpack.d.ts.map +1 -0
- package/dist/webpack.js +30 -0
- package/dist/withSession.d.ts +10 -0
- package/dist/withSession.d.ts.map +1 -0
- package/dist/withSession.js +17 -0
- 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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
|